# Data Formatter

The Data Formatter is used to change the device’s output. For example, you can use the Data Formatter to insert characters at certain points in bar code data as it is scanned. The Data Formatter should be used only if you wish to alter the output.

Multiple formats may be programmed into the scanner. They are stacked in the order in which they are entered. However, the following list presents the order in which formats are applied:

1. Specific Term ID, Actual Code ID, Actual Length

2. Specific Term ID, Actual Code ID, Universal Length

3. Specific Term ID, Universal Code ID, Actual Length

4. Specific Term ID, Universal Code ID, Universal Length

5. Universal Term ID, Actual Code ID, Actual Length

6. Universal Term ID, Actual Code ID, Universal Length

7. Universal Term ID, Universal Code ID, Actual Length

8. Universal Term ID, Universal Code ID, Universal Length

If a bar code is read that fails the first data format, the next data format, if there is one, will be used on the bar code data. If there is no other data format, the raw data is output. You may change the order of data formats you have created by clicking on the up and down arrows to the left in the Data Formatter screen:

### Data Formatter Settings

Note: Not all of the following Data Formatter Settings may apply to your device. For a list of the Data Formatter commands that apply to your device, please refer to your User's Guide on our website, www.honeywellaidc.com.

At the top of the Data Formatter window is a drop down list that is used to select the on/off settings.

When Data Formatter is Off, the bar code data is output to the host as read, including prefixes and suffixes.

You may wish to require the data to conform to a data format you have created and saved. The following settings can be applied to your data format:

Data Formatter On, Not Required, Keep Prefix/Suffix: Scanned data is modified according to your data format, and prefixes and suffixes are transmitted.

Data Format Required, Keep Prefix/Suffix: Scanned data is modified according to your data format, and prefixes and suffixes are transmitted. Any data that does not match your data format requirements generates an error beep and the data in that bar code is not transmitted. If you wish to process this type of bar code without generating a beep, click on Data Format Non-Match Beep.

Data Formatter On, Not Required, Drop Prefix/Suffix: Scanned data is modified according to your data format. If a data format is found for a particular symbol, those prefixes and suffixes are not transmitted. If a data format is not found for that symbol, the prefixes and suffixes are transmitted.

Data Format Required, Drop Prefix/Suffix: Scanned data is modified according to your data format. If a data format is found for a particular symbol, those prefixes and suffixes are not transmitted. Any data that does not match your data format requirements generates an error beep.

### Data Format Non-Match Error Tone

When a bar code is encountered that doesn’t match your required data format, the scanner normally generates an error tone. However, you may want to continue scanning bar codes without hearing the error tone. When you select Data Format Non-Match Error Tone Off, data that doesn’t conform to your data format is not transmitted, and no error tone sounds.

## Data Format Table

### Format Type

You can save up to four different data formats and switch between these formats. You may select the primary data format or three alternate formats, saved under 1, 2, and 3. Click on the drop down and select which format (Primary or an Alternate) you would like to program.

### Interface Type

Click on the drop down and locate the Terminal ID for your PC. Use Any Terminal if you want this data format to apply to all terminal types.

### Symbology

Use the drop down to select the symbology to which you want to apply the data format.

### Length

Specify what length (up to 9999 characters) of data will be acceptable for this symbology. Use a 4 digit format. For example, 50 characters is entered as 0050.

Note: 9999 indicates all lengths.

### Command Sequence

Click on the Editor button to display the actions that allow you to build a command sequence:

The Action determines what type of command you are using. The rest of the entries on the screen are based on the requirements of that command. For example, if you click on a Send function, the next entries (sub-actions) will prompt you for what you want to send. The Command Sequence text box displays the command string as you build your data format. Each time you click on the Add/Update button, that segment of the data format sequence is added to your Command Sequence line. You can continue to add segments until your entire data format is built. If you decide you want to delete a particular segment, click on the X button for that segment to delete it while still retaining the rest of the data format:

Click on the Finish button to save the entire data format. You can then either edit this format, or build another new data format.

#### Editing Command Sequences

As you compose your data format, your data format string is displayed in the Command Sequence box. Any part of this sequence may be edited or deleted as you build your format. Click on the segment of the command in the Command Sequence box to view and edit that portion of the sequence. .

The Action descriptions follow, along with examples for each action.

## Data Format Editor Examples

When working with the Data Format Editor, a virtual cursor is moved along your input data string. The following commands are used to both move this cursor to different positions, and to select, replace, and insert data into the final output.

### Send Commands

#### Send All Characters

Include in the output message all of the characters from the input message, starting from current cursor position, followed by an insert character.

#### Send a Number of Characters

Include in the output message a number of characters followed by an insert character. Start from the current cursor position and continue for “nn” characters or through the last character in the input message, followed by character “xx.” Syntax = {F2}nnxx where nn stands for the numeric value (00-99) for the number of characters, and xx stands for the insert character.

Example 1: Send a number of characters

Send the first 10 characters from the bar code above, followed by a carriage return.

Click the Editor button to start the Command Sequence Builder.

Click on Send, then on A Number of Characters.

Enter 10 in the text box and press the Enter key.

The last character to send is a carriage return. On the Control Characters keypad, click on the CR key.

Click Add/Update.

Click Finish to finish this format.

The data is output as: 1234567890

Example 2: Split characters into 2 lines

Send the first 10 characters from the bar code above, followed by a carriage return, followed by the rest of the characters.

Click the Editor button to start the Command Sequence Builder.

Click on the Send button, then on A Number of Characters.

Enter 10 in the text box and press Enter.

The next character to send is carriage return. On the Control Characters keypad, click on the CR key.

Click Add/Update.

Click on the Send button again, then on All Characters.

The last character to send is also a carriage return. On the Control Characters keypad, click on the CR key.

Click Add/Update.

Click Finish to finish this format.

The data is output as: 1234567890
ABCDEFGHIJ
<CR>

#### Send a Character Multiple Times

Send “xx” character “nn” times in the output message, leaving the cursor in the current position. Syntax = {F4}xxnn where xx stands for the insert character and nn is the numeric value (00-99) for the number of times it should be sent.

#### Send All but Exclude

Include in the output message all but the last “nn” characters, starting from the current cursor position. The cursor is moved forward to one position past the last input message character included. Syntax = {E9}nn where nn stands for the numeric value (00-99) for the number of characters that will not be sent at the end of the message.

Example 3: Send all but the last characters, followed by 2 tabs

Send all characters except for the last 8 from the bar code above, followed by 2 tabs.

Click the Editor button to start the Command Sequence Builder.

Click on the Send button, then on All but Exclude.

Type 8 in the text box and press Enter.

Click Add/Update.

Click on the Send button, then on A Character multiple times.

You want to send 2 tabs. Type 2 in the text box and press Enter.

The character to send is a horizontal tab. On the Control Characters keypad, click on the HT key.

Click Add/Update.

Click Finish to finish this format.

The data is output as: 1234567890AB <tab><tab>

#### Send Up to a Character

Include in the output message all characters from the input message, starting with the character at the current cursor position and continuing to, but not including, the search character “ss,” followed by an insert character. The cursor is moved forward to the “ss” character. Syntax = {F3}ssxx where ss stands for the search character, and xx stands for the insert character.

Example 4: Send all characters up to a particular character

Using the bar code above, send all characters up to but not including “D,” followed by a carriage return.

Click the Editor button to start the Command Sequence Builder.

Click on the Send button, then on Up to a Character.

Type a D in the text box and press Enter.

The last character to send is a carriage return. On the Control Characters keypad, click on the CR key.

Click Add/Update.

Click Finish to finish this format.

The data is output as: 1234567890ABC
<CR>

#### Send all Characters up to a String

Include in the output message all characters from the input message, starting with the character at the current cursor position and continuing to, but not including, the search string “s...s.” The cursor is moved forward to the beginning of the “s...s” string. Syntax = {B9}nnnns...s where nnnn stands for the length of the string, and s...s stands for the string to be matched.

Example 5: Send all characters up to a defined string

Using the bar code above, send all characters up to but not including “AB.”

Click the Editor button to start the Command Sequence Builder.

Click on the Send button, then on Up to a String.

Type AB in the text box and click Add/Update.

Click Finish to finish this format.

The data is output as: 1234567890

### Search Commands

#### Search Forward for a Matching Character

Search the input message forward for “xx” character from the current cursor position, leaving the cursor pointing to the “xx” character. Syntax = {F8}xx where xx stands for the search character’s hex value for its ASCII code.

Example 6: Send bar code data that starts after a particular character

Search for the letter “D” in bar codes and send all the data that follows, including the “D.” Using the bar code above:

Click the Editor button to start the Command Sequence Builder.

Click on Search Forward, then on Matching Character.

You need to look for a D. Type D in the text box and press Enter.

Click Add/Update.

Click on the Send button, then on All Characters.

The last character to send is a carriage return. On the Control Characters keypad, click on the CR key.

Click Add/Update.

Click Finish to finish this format.

The data is output as: DEFGHIJ
<CR>

#### Search Backward for a Matching Character

Search the input message backward for “xx” character from the current cursor position, leaving the cursor pointing to the “xx” character. Syntax = {F9}xx where xx stands for the search character’s hex value for its ASCII code.

#### Search Forward for a Non-Matching Character

Search the input message forward for the first non-“xx” character from the current cursor position, leaving the cursor pointing to the non-“xx” character. Syntax = {E6}xx where xx stands for the search character’s hex value for its ASCII code.

Example 7: Remove zeroes at the beginning of bar code data

This example shows a bar code that has been zero filled. You may want to ignore the zeroes and send all the data that follows. E6 searches forward for the first character that is not zero, then sends all the data after, followed by a carriage return. Using the bar code above:

Click the Editor button to start the Command Sequence Builder.

Click on Search Forward, then on Non-Matching Character.

You need to look for a 0. Type 0 (zero) in the text box and press Enter.

Click Add/Update.

Click on the Send button, then on All Characters.

The last character to send is a carriage return. On the Control Characters keypad, click on the CR key.

Click Add/Update.

Click Finish to finish this format.

The data is output as: 37692
<CR>

#### Search Backward for a Non-Matching Character

Search the input message backward for the first non-“xx” character from the current cursor position, leaving the cursor pointing to the non-“xx” character. Syntax = {E7}xx where xx stands for the search character’s hex value for its ASCII code.

#### Search Forward for a String

Search forward for “s” string from the current cursor position, leaving cursor pointing to “s” string. Syntax = {B0}nnnnS where nnnn is the string length (up to 9999), and S consists of the ASCII hex value of each character in the match string. For example, B0000454657374 will search forward for the first occurrence of the 4 character string “Test.”

Example 8: Send bar code data that starts after a string of characters

Search for the letters “FGH” in bar codes and send all the data that follows, including “FGH.” Using the bar code above:

Click the Editor button to start the Command Sequence Builder.

Click on Search Forward, then on String.

You need to look for FGH. Type FGH in the text box and press Enter.

Click Add/Update.

Click on the Send button, then on All Characters.

The last character to send is a carriage return. On the Control Characters keypad, click on the CR key.

Click Add/Update.

Click Finish to finish this format.

The data is output as: FGHIJ
<CR>

#### Search Backward for a String

Search backward for “s” string from the current cursor position, leaving cursor pointing to “s” string. Syntax = {B1}nnnnS where nnnn is the string length (up to 9999), and S consists of the ASCII hex value of each character in the match string. For example, B1000454657374 will search backward for the first occurrence of the 4 character string “Test.”

### Move the Pointer Commands

#### Move the Pointer Forward

Move the cursor ahead “nn” characters from current cursor position.
Syntax = {F5}nn where nn is the numeric value (00-99) for the number of characters the cursor should be moved ahead.

Example 9: Move the cursor forward and send the data

Move the cursor forward 3 characters, then send the rest of the bar code data from the bar code above. End with a carriage return.

Click the Editor button to start the Command Sequence Builder.

Scroll down the Actions list to Move the Pointer and click on it. Then click on Forward.

You need to move the cursor forward 3 characters. Type 3 in the text box and press Enter.

Click Add/Update.

Click on the Send button, then on All Characters.

The last character to send is a carriage return. On the Control Characters keypad, click on the CR key.

Click Add/Update.

Click Finish to finish this format.

The data is output as: 4567890ABCDEFGHIJ
<CR>

#### Move the Pointer Backward

Move the cursor back “nn” characters from current cursor position.
Syntax = {F6}nn where nn is the numeric value (00-99) for the number of characters the cursor should be moved back.

#### Move the Pointer to the Beginning of String

Move the cursor to the first character in the input message. Syntax = {F7}.

Example 10: Manipulate bar codes that begin with a 1

Search for bar codes that begin with a 1. If a bar code matches, move the cursor back to the beginning of the data and send 6 characters followed by a carriage return. Using the bar code above:

Click the Editor button to start the Command Sequence Builder.

Scroll down the Actions list to Compare and click on it. Then click on Character.

You need to look for a 1. Type 1 in the text box and press Enter.

Click Add/Update.

Scroll down the Actions list to Move the Pointer and click on it. Then click on Forward.

You need to move the cursor forward one position after locating a 1. Type 1 in the text box and press Enter.

Click Add/Update.

Now you must move the cursor to the beginning of the data string.

Scroll down the Actions list to Move the Pointer and click on it. Then click on Beginning of String.

Click Add/Update.

Click on the Send button, then on A Number of Characters.

You need to send 6 characters. Type 6 in the text box and press Enter.

The last character to send is a carriage return. On the Control Characters keypad, click on the CR key.

Click Add/Update.

Click Finish to finish this format.

The data is output as: 123456
<CR>

#### Move the Pointer to the End of String

Move the cursor to the last character in the input message. Syntax = {EA}.

### Insert Commands

#### Insert a Delay

Inserts a delay of up to 49,995 milliseconds (in multiples of 5), starting from the current cursor position. Syntax = {EF}nnnn where nnnn stands for the delay in 5ms increments, up to 9999. This command can only be used with keyboard emulation.

#### Insert Key Strokes

Insert a key stroke or combination of key strokes. Key strokes are dependent on your keyboard. Any key can be inserted, including arrows and functions. Once you click on Insert Key Strokes, a Keyboard Layout window appears. Select either a US Keyboard or a European Keyboard. Click on the key(s) you want to insert. Click Add/Update when you have finished selecting the keys.

#### Insert Symbology Name

Insert the name of the bar code’s symbology in the output message, without moving the cursor. Only symbologies with a Honeywell ID are included.

#### Insert Bar Code Length

Insert the bar code’s length in the output message, without moving the cursor. The length is expressed as a numeric string and does not include leading zeroes.

Example 11: Insert the symbology name and length

Send the symbology name and length before the bar code data from the bar code above. Break up these insertions with spaces. End with a carriage return.

Click the Editor button to start the Command Sequence Builder.

Click on Insert, then on Symbology Name.

Click Add/Update.

Click on Insert, then on Barcode Length.

Click Add/Update.

Click on the Send button, then on A Character multiple times.

You want to send one space. Type 1 in the text box and press Enter.

The character to send is a space. Click on the Printable Chars tab to display a keypad with the printable ASCII characters.

Click on the SPC key and click Add/Update.

Click on the Send button, then on All Characters.

The last character to send is a carriage return. On the Control Characters keypad, click on the CR key.

Click Add/Update.

Click Finish to finish this format.

The data is output as: Code128 20 1234567890ABCDEFGHIJ
<CR>

#### Insert a String

Send “ss” string of “nn” length in the output message, leaving the cursor in the current position. Syntax = {BA}nnnns...s where nnnn stands for the length of the string, and s...s stands for the string.

Example 12: Look for the string “AB” and insert 2 asterisks (**)

Using the bar code above, send all characters up to but not including “AB.” Insert 2 asterisks at that point, and send the rest of the data with a carriage return after.

Click the Editor button to start the Command Sequence Builder.

Click on the Send button, then scroll through the sub-actions list to find Up to a String and click on it.

Type AB in the Search String box and click Add/Update.

Click on Insert, then on String.

Type ** in the text box and click on Add/Update.

Click on the Send button, then on All Characters.

The last character to send is a carriage return. On the Control Characters keypad, click on the CR key.

Click Add/Update.

Click Finish to finish this format.

The data is output as: 1234567890**ABCDEFGHIJ
<CR>

### Compare Commands

#### Check for a Number

Check to make sure there is an ASCII number at the current cursor position. The format is aborted if the character is not numeric.

Example 13: Only output the data if the bar code begins with a number

If you want only data from bar codes that begin with a number, you can use EC to check for the number.

Click the Editor button to start the Command Sequence Builder.

Scroll down the Actions list to Compare and click on it. Then click on Numeric.

Click Add/Update.

Click on the Send button, then on All Characters.

The last character to send is a carriage return. On the Control Characters keypad, click on the CR key.

Click Add/Update.

Click Finish to finish this format.

If this bar code is read,

the next data format, if there is one, will be used on the data. If there is no other format, the format fails and the raw data is output as AB1234. If this bar code is read:

the data is output as: 1234AB

<CR>

#### Check for Non-Numeric Character

Check to make sure there is a non-numeric ASCII character at the current cursor position. The format is aborted if the character is numeric.

Example 14: Only output the data if the bar code begins with a letter

If you want only data from bar codes that begin with a letter, you can use ED to check for the number.

Click the Editor button to start the Command Sequence Builder.

Scroll down the Actions list to Compare and click on it. Then click on Non-Numeric.

Click Add/Update.

Click on the Send button, then on All Characters.

The last character to send is a carriage return. On the Control Characters keypad, click on the CR key.

Click Add/Update.

Click Finish to finish this format.

If this bar code is read,

the next data format, if there is one, will be used on this data. If there is no other format, the format fails and the raw data is output as 1234AB.

If this bar code is read:

the data is output as: AB1234

<CR>

#### Compare Character

Compare the character in the current cursor position to the character “xx.” If characters are equal, move the cursor forward one position. Syntax = {FE}xx where xx stands for the comparison character’s hex value for its ASCII code.

#### Compare String

Compare the string in the input message to the string "s." If the strings are equal, move the cursor forward past the end of the string. Syntax = {B2}nnnnS where nnnn is the string length (up to 9999), and S consists of the ASCII hex value of each character in the match string. For example, B2000454657374 will compare the string at the current cursor position with the 4-character string "Test."

### Suppress Commands

#### Suppress characters

Suppress all occurrences of up to 15 different characters, starting at the current cursor position, as the cursor is advanced by other commands. When the FC command is encountered, the suppress function is terminated. The cursor is not moved by this command. Syntax = {FB}nnxxyy . .zz where nn is a count of the number of suppressed characters in the list, and xxyy .. zz is the list of characters to be suppressed.

Example 15: Remove spaces in bar code data

This example shows a bar code that has spaces in the data. You may want to remove the spaces before sending the data. Using the bar code above:

Click the Editor button to start the Command Sequence Builder.

Click on Suppress, then on Characters.

The character to suppress is a space. Click on the Printable Chars tab to display a keypad with the printable ASCII characters.

On the Printable Characters keypad, click on the SPC key.

Click Add/Update.

Click on the Send button, then on All Characters.

The last character to send is a carriage return. On the Control Characters keypad, click on the CR key.

Click Add/Update.

Click Finish to finish this format.

The data is output as: 34567890
<CR>

#### Terminate Suppress

Disables suppress filter and clear all suppressed characters. Syntax = {FC}.

### Replace Commands

#### Replace Characters

Replaces up to 15 characters in the output message, without moving the cursor. Replacement continues until the Terminate Character Replacement (E5) command is encountered. Syntax = {E4}nnxx1xx2yy1yy2...zz1zz2 where nn is the total count of the number of characters in the list (characters to be replaced plus replacement characters); xx1 defines characters to be replaced and xx2 defines replacement characters, continuing through zz1 and zz2.

Example 16: Replace zeroes with CRs in bar code data

If the bar code has characters that the host application does not want included, you can use the E4 command to replace those characters with something else. In this example, you will replace the zeroes in the bar code above with carriage returns.

Click the Editor button to start the Command Sequence Builder.

Click on Replace, then on Characters.

You will replace a 0 (zero) with a carriage return. Type 0 (zero) in the text box then, on the Control Characters keypad, click on the CR key..

Click Add/Update.

Click on the Send button, then on All Characters.

You simply want to send all characters, so a null character can be selected. On the Control Characters keypad, click on the NUL key.

Click Add/Update.

Click Finish to finish this format.

The data is output as: 1234

5678

ABC

<CR>

#### Terminate Replace

Terminates character replacement. Syntax = {E5}.

#### Discard Data

Discards types of data. For example, you may want to discard Code 128 bar codes that begin with the letter A. You would change the Symbology to Code 128, then use Compare Characters, and select an A to compare. Last, you would click on Discard Data. This format would discard Code 128 bar codes that begin with the letter A. Syntax = {B8}.

This command must be entered after all other commands.

In the main Data Formatter Control window, you must select Required in order for the Discard Data command to work. If Data Format is On, but Not Required, bar code data that meets the Discard Data format is scanned and output as usual.

Because the data format needs to be On and Required for the Discard Data command, you must input data formats for all bar codes you wish to discard as well as all bar codes you wish to output.

Other data format settings impact the Discard Data command. If the Data Format Non-Match Error Tone is On, the scanner emits an error tone. If the Data Format Non-Match Error Tone is Off, the code is disabled for reading and no tone is sounded.