ASCII Type Classification
The following table shows the classification of ASCII values according to these categories:
- NOPRINT - Non Printable ASCII value
- WHITESPACE - Tabs, Spaces, Line Feeds, Vertical Tabs, Carriage Returns
- NUMERIC - Values 0 to 9
- ALPHA - Values A to Z and a to z
- OTHER - ASCII values greater than 127
- SPECIAL - Everything else
The categories are used by the “Include” criteria and the “Filter Output Data” action, as well as the Modify Data action to replace Non-Printable characters with a printable one.
Table 1: ASCII Type Classification
| ASCII Category | ASCII Value |
|---|---|
| NOPRINT | 00 NUL |
| NOPRINT | 01 SOH |
| NOPRINT | 02 STX |
| NOPRINT | 03 ETX |
| NOPRINT | 04 EOT |
| NOPRINT | 05 ENQ |
| NOPRINT | 06 ACK |
| NOPRINT | 07 BEL |
| NOPRINT | 08 BS |
| WHITESPACE | 09 TAB |
| WHITESPACE | 10 LF |
| WHITESPACE | 11 VT |
| WHITESPACE | 12 FF |
| WHITESPACE | 13 CR |
| NOPRINT | 14 SO |
| NOPRINT | 15 SI |
| NOPRINT | 16 DLE |
| NOPRINT | 17 DC1 |
| NOPRINT | 18 DC2 |
| NOPRINT | 19 DC3 |
| NOPRINT | 20 DC4 |
| NOPRINT | 21 NAK |
| NOPRINT | 22 SYN |
| NOPRINT | 23 ETB |
| NOPRINT | 24 CAN |
| NOPRINT | 25 EM |
| NOPRINT | 26 SUB |
| NOPRINT | 27 ESC |
| NOPRINT | 28 FS |
| NOPRINT | 29 GS |
| NOPRINT | 30 RS |
| NOPRINT | 31 US |
| WHITESPACE | Space |
| SPECIAL | ! |
| SPECIAL | " |
| SPECIAL | # |
| SPECIAL | $ |
| SPECIAL | % |
| SPECIAL | & |
| SPECIAL | ' |
| SPECIAL | ( |
| SPECIAL | ) |
| SPECIAL | * |
| SPECIAL | + |
| SPECIAL | , |
| SPECIAL | - |
| SPECIAL | . |
| SPECIAL | / |
| NUMERIC | 0 |
| NUMERIC | 1 |
| NUMERIC | 2 |
| NUMERIC | 3 |
| NUMERIC | 4 |
| NUMERIC | 5 |
| NUMERIC | 6 |
| NUMERIC | 7 |
| NUMERIC | 8 |
| NUMERIC | 9 |
| SPECIAL | : |
| SPECIAL | ; |
| SPECIAL | < |
| SPECIAL | = |
| SPECIAL | > |
| SPECIAL | ? |
| SPECIAL | @ |
| ALPHA | A |
| ALPHA | B |
| ALPHA | C |
| ALPHA | D |
| ALPHA | E |
| ALPHA | F |
| ALPHA | G |
| ALPHA | H |
| ALPHA | I |
| ALPHA | J |
| ALPHA | K |
| ALPHA | L |
| ALPHA | M |
| ALPHA | N |
| ALPHA | O |
| ALPHA | P |
| ALPHA | Q |
| ALPHA | R |
| ALPHA | S |
| ALPHA | T |
| ALPHA | U |
| ALPHA | V |
| ALPHA | W |
| ALPHA | X |
| ALPHA | Y |
| ALPHA | Z |
| SPECIAL | [ |
| SPECIAL | \ |
| SPECIAL | ] |
| SPECIAL | ^ |
| SPECIAL | _ |
| SPECIAL | ` |
| ALPHA | a |
| ALPHA | b |
| ALPHA | c |
| ALPHA | d |
| ALPHA | e |
| ALPHA | f |
| ALPHA | g |
| ALPHA | h |
| ALPHA | i |
| ALPHA | j |
| ALPHA | k |
| ALPHA | l |
| ALPHA | m |
| ALPHA | n |
| ALPHA | o |
| ALPHA | p |
| ALPHA | q |
| ALPHA | r |
| ALPHA | s |
| ALPHA | t |
| ALPHA | u |
| ALPHA | v |
| ALPHA | w |
| ALPHA | x |
| ALPHA | y |
| ALPHA | z |
| SPECIAL | { |
| SPECIAL | | |
| SPECIAL | } |
| SPECIAL | ~ |
| NOPRINT | 127 DEL |
| OTHER | 128-255 |
Action Failures and Recovery
The following table shows how the ADF interpreter will recover in various Action Failure cases when “Partial Action Recovery” is selected in General Settings. The Ignore recovery is applied if there is no partial recovery available, see table.
Table 2: Action Failures and Recovery
| Action | Failure | Partial Action Recovery |
|---|---|---|
| Send all data that remains | Output buffer full | Only insert data up to what can fit, discard the rest |
| Send up to char X | No match | Ignore Action |
| Send up to char X | Output buffer full | Only insert data up to what can fit, discard the rest |
| No match | Ignore Action | |
| Send next N chars | Out of bounds | Send data up to end |
| Output buffer full | Only insert data up to what can fit, discard the rest | |
| Select mag data | Message source is not magstripe data | Ignore Action |
| Select mag data | Track number in rule out of range | Ignore Action |
| Move cursor to Char X | No match | Ignore Action |
| Move cursor to position | Out of bounds | Move cursor to last character in data |
| Move cursor ahead | Out of bounds | Move cursor to last character in data |
| Move cursor back | Out of bounds | Move cursor to first character in data |
| Move cursor to Pattern | No match | Ignore Action |
| Replace first Pattern | No match | Ignore Action |
| Output buffer full | Only insert data up to what can fit, discard the rest | |
| Replace all Patterns | No match | Ignore Action |
| Output buffer full | Only insert data up to what can fit, discard the rest | |
| Move cursor to position from end | Out of bounds | Move cursor to first character in data |
| Move cursor in reverse to char X | No match | Ignore Action |
| Move cursor in reverse past string X | No match | Ignore Action |
| Send Keystroke | Output buffer full | Ignore Action |
| Send pause N seconds | Output buffer full | Ignore Action |
| Send pause indirect | Output buffer full | Ignore Action |
| Replace Character | Keycat value in rule not supported | Ignore Action |
| Replace Non Printable | The ASCII value that replaces unprintable data is also unprintable | Ignore Action |
| Trim Outside Positions | The start and end indexes are the same or the end index is less than the start | Ignore Action |
| Filter Output Data | Filter Mask has undefined bits set | Ignore Action |
| Erase next N characters | Out of bounds | Ignore Action |
| Erase N characters from End | Out of bounds | Ignore Action |
| Delete First Pattern | No match | Ignore Action |
| Delete all Patterns | No match | Ignore Action |
| Beep Indication | UIF code out of range | Ignore Action |
| Rule Set Control | Flag number out of range | Ignore Action |
| Send Value (Prefix Suffix) | Invalid param index (>6) or Out of Memory | Ignore Action |
| Change Input Source | Invalid Source Type or Unsupported Attribute number | Ignore Action |
| LED indication | Product does not support the requested LED or duration exceeds 10 seconds | Ignore Action |
| Vibrate Indication | Vibrator motor is not present or Haptics feature is not installed | Ignore Action |
| Repeat Send | Repeat count is greater than 10 | Coerce count to 10 and do the repeat |
List of Features by ADF Version
Criteria
The following table shows a list of criteria supported in the legacy version of ADF and the latest version ADF2.
Table 3: List of Criteria Supported by ADF Version
| Criteria | Criteria Type | Legacy ADF (ADF1) | ADF2 |
|---|---|---|---|
| Barcode Content | Alphabetic Characters | ✔ | |
| Custom Character Set | ✔ | ||
| Extended ASCII Codes (128-255) | ✔ | ||
| Non-Printable | ✔ | ||
| Numeric Characters | ✔ | ||
| Special Characters | ✔ | ||
| Whitespace | ✔ | ||
| Barcode Length | Equal | ✔ | ✔ |
| Greater than | ✔ | ✔ | |
| Less than | ✔ | ✔ | |
| Multiple lengths (3) | ✔ | ✔ | |
| Not equal | ✔ | ✔ | |
| Range | ✔ | ✔ | |
| Single length | ✔ | ✔ | |
| Barcode Trigger Mode | Handsfree | ✔ | |
| Primary Trigger | ✔ | ||
| Secondary Trigger | ✔ | ||
| Software Trigger | ✔ | ||
| Barcode Type | Code type | ✔ | ✔ |
| Host Mode | ✔ | ||
| Input Source | Any scanner | ✔ | ✔ |
| Aux serial input | ✔ | ✔ | |
| Auxiliary scanner | ✔ | ✔ | |
| Primary scanner | ✔ | ✔ | |
| Match String | Match any location | ✔ | ✔ |
| Match at position | ✔ | ✔ | |
| Match end | ✔ | ||
| Match start | ✔ | ✔ |
Actions
The following table shows a list of actions supported in the legacy version of ADF and the latest version ADF2.
Table 4: List of Actions Supported by ADF Version
| Action | Action Type | Legacy ADF (ADF1) | ADF2 | |
|---|---|---|---|---|
| Skip (Input Data) | Ahead N characters | ✔ | ✔ | |
| Back N characters | ✔ | ✔ | ||
| To end | ✔ | ✔ | ||
| To position N from end | ✔ | |||
| To position N from start | ✔ | ✔ | ||
| To start | ✔ | ✔ | ||
| Move Cursor Location (Input Data) | Cursor back to pattern X | ✔ | ||
| Past character X | ✔ | ✔ | ||
| To character X | ✔ | ✔ | ||
| To character X from end | ✔ | |||
| To pattern X | ✔ | ✔ | ||
| Edit (Input Data) | Delete all pattern X | ✔ | ||
| Delete first pattern X | ✔ | |||
| Erase next N characters | ✔ | |||
| Erase next N characters from end | ✔ | |||
| Remove leading character X | ✔ | |||
| Remove trailing character X | ✔ | |||
| Replace all pattern X | ✔ | ✔ | ||
| Replace first pattern | ✔ | ✔ | ||
| Trim outside positions | ✔ | |||
| Send (Output Data) | Pause Specified amount of time | ✔ | ✔ | |
| Send All Data | ✔ | ✔ | ||
| Send next N characters | ✔ | ✔ | ||
| Send up to character X | ✔ | ✔ | ||
| Send Value (Output Data) | Send constant value | Alphanumeric | ✔ | ✔ |
| ALT Shifted | ✔ | ✔ | ||
| Command (GUI) | ✔ | ✔ | ||
| Extended Keypad | ✔ | ✔ | ||
| F Keys | ✔ | ✔ | ||
| Numeric Keypad | ✔ | ✔ | ||
| Send value stored in Parameter | Suffix/Prefix Values | ✔ | ✔ | |
| Modify (Output Data) | Remove Padding | Remove all Spaces | ✔ | ✔ |
| Crunch all Spaces | ✔ | ✔ | ||
| Stop Space Removal | ✔ | ✔ | ||
| Remove Leading Zeros | ✔ | ✔ | ||
| Stop Leading Zero Removal | ✔ | ✔ | ||
| Add Padding | Stop Pad Spaces | ✔ | ✔ | |
| Pad Spaces Left | ✔ | ✔ | ||
| Pad Zeros Left | ✔ | ✔ | ||
| Stop Pad Zeros | ✔ | ✔ | ||
| Filter Output Data | Alphabetic Characters | ✔ | ||
| Custom Character Set | ✔ | |||
| Extended ASCII Codes (128-255) | ✔ | |||
| Non-Printable | ✔ | |||
| Numeric Characters | ✔ | |||
| Special Characters | ✔ | |||
| Whitespace | ✔ | |||
| Repeat Send Action | ✔ | |||
| Replace character | ✔ | |||
| Replace non-printable | ✔ | |||
| Change Input Source | Asset Tracking Information | ✔ | ||
| Barcode Data | ✔ | |||
| User Defined String | ✔ | |||
| User Feedback | Beep Indication | ✔ | ✔ | |
| LED Indication | ✔ | |||
| Vibrate Indication | ✔ | |||
| Rule Set Control | Disable/Turn Off | Sets 1 to 4 | ✔ | ✔ |
| Sets 5 to 8 | ✔ | |||
| Enable/Turn On | Sets 1 to 4 | ✔ | ✔ | |
| Sets 5 to 8 | ✔ | |||
General Settings
For every rule in ADF2, there is a General Settings section. This section is used to customize how the rule is built, how Action errors are recovered and special settings such as an optional Custom ASCII Set. The Custom ASCII Set is used by the Barcode Content criterion and the Filter Output Data action.
Legacy ADF1 does not have a general settings section, but the ADF interpreter has default values shown here.
Table 5: List of General Settings Supported by ADF Version
| General Settings | Sub Action | Legacy ADF (ADF1) | ADF2 |
|---|---|---|---|
| ADF Version | Version of ADF Rule Format | Always 1 | Always 2 |
| Number of Criteria Sections | Maximum number of criteria sections in a rule | Always 1 | Up to 4 |
| Error Recovery | Action Ignore | N/A | Optional |
| Action Exit | Default | Default | |
| Action Partial | N/A | Optional | |
| String Lengths | Full Size | N/A | Default |
| Compact Size | Default | Optional | |
| Custom ASCII Set | Up to 16 ASCII Values | N/A | Optional |
| Data Recovery | Restore Input Data upon Action Failure | N/A | Default |
| Keep data changes after a rule fails for next rule | Default | Optional |