Process data from a barcode scanner
Download a Free Trial Version. It allows you to try all features! Plugins can be downloaded separately here
Task:
We are receiving barcodes (EAN-13) from a serial port. We have some barcode
scanners connected. Each one sends data when read. Data contains an identification
number (the first character) and barcode information (thirteen digits).
When the Data Logger receives the information from the serial
port, he adds a date and time stamp. This information is registered in a log file correctly,
but we should create another ASCII file with different structure in
the CSV format.
Fig.1. Barcode scanner data captured by the serial data logger software
Requirements:
It is assumed that:
You've configured communication parameters (baud rate, the number of data
bits, flow control, etc.) in the data logger and can receive any data without communication
errors.
Solution:
The figure above shows that the data flow is very simple. Each record has a
fixed size and a fixed position of each item. We need to recognize the ending characters of each data record. Please, enable display output for non-printable characters with a character code below than 0x20h. Please,
set the following options.
Fig.2. Data view setup
Then click the "OK" button and try to receive data from
a port. You should receive the data as in the figure below.
Fig.3. Barcode scanner data logger. Data received.
It is another view of the received data. All non-printable characters
were replaced with their code like #0D. Now, it is clear that a data packet
(in a green rectangle) ends with #0D (underlined
by red).
Now, we are ready for configuring modules. First, please,
select the "ASCII data parser and query" plug-in (fig.4a, pos.1) from
a drop-down list. Then, enable a parsing option for data received (fig. 4a, pos.
2) and select necessary data export plug-ins. The DDE server (fig.4b, pos.3) will help us check that the data packet is parsed and exported. The "Local
database" plug-in
will write data to an ASCII file with the CSV format.
Pic.4a. Barcode scanner data logger. The data parser plug-in.
Pic.4b. Barcode scanner data logger. Data export plug-ins.
Now, please, open a configuration window
of the ASCII parser and query plug-in (click the "Setup" button near a drop-down box fig.4a, pos.1). The
dialog window will appear on the desktop (fig.5).
Fig.5. Barcode scanner data logger. The configuration window of the parser.
The configuration process will be very simple if you've examined
your data flow in the data logger window (fig.3). You should type in the same as in the data logger window in fields 1 and 2. Field #1 marks the beginning of the data block, and field #2 marks the end. In the example, our data block does not contain a start marker. You should type a value from figure 3, which is underlined by red. Field #3 is empty because our data packet doesn't contain characters,
which should be ignored.
Ok. We are going to the next page. It is a very important part
of the parser configuration. The parser uses this information to extract
parser items (variables) from a data packet. Our data packet contains two data items, which should be split into different variables. Later, these variables will be used in the data export and data filter plug-ins. In our case, variables' values will be placed on different columns of a target CSV file.
Fig.6. Barcode scanner data logger. Parser items.
You should add two new items by clicking the "Add item" button
(fig.6, pos.7). Before adding an item, the program will ask you about an item
description. You can type any characters here, which will help you to remember
a variable's content. We've added all variables with corresponding descriptions on the fig.6
Each parser item has few properties:
- Item name - this name will be bound to a column in the data export plug-in. It is a limited text description and cannot contain spaces and a few other characters;
- Parser's type - it is a method, which the program will
use for data extraction. Our parser has few methods from simple to most powerful.
In our case, where data is placed in a fixed place,
we can use the simple method - "fixed position."
This method allows extracting any number of characters from any fixed
position of the data packet;
- Data type - it is the data type of the extracted value. If you specify a data type other than the "STRING" data type, then the module will try to convert the string value to the specified data type. The module allows you to configure several options that will be used at the conversion (see the "Data format" tab);
- Default value - this value will be used when data can't
be extracted from a data packet (or can't be converted to the specified data type);
- Fixed position - is the position of the first variable's character in our data block. The minimum value is 1;
- Fixed length - is the number of characters, which will be transferred to a variable. The minimum value is 1.
The second item has the same parameters, just the position and the length are different.
On the next page (fig.7), you can specify basic format options. Because we've specified the "String" data type for both parser variables, then the first two options allow removing blank spaces from a
value. Other options are not applicable in our case.
Fig.7. Barcode scanner data logger. Format options.
Please, click the "OK" button and close the configuration window and then click the "OK" button again in the options window.
Now, our parser is ready, and we can test it. Connect your
device and power it on and try to receive a data packet from a port.
If the parser is configured correctly, then the DDE server window will display our variables name and value (fig.8).
Fig.8. Barcode scanner data logger. The DDE server window.
How to write data to a log file with the necessary format is described in the second part.
Related articles: Process data from a barcode scanner