The FNC1 codeword is used to mark that the barcode contains a 'UCC/EAN Application Identifier'.
The FNC1 codeword (value 232) is placed as the first character before the AI, and as a separator between AI's (who's lengths are not know/not fixed).
An example of datamatrix containing an AI is attached, more can be found on page 41, of:
On the encode side, other barcode software uses '^E' (value 202, or 212, 213, 214... when you want to define the length of AI to place brackets on text under linear barcode) to mark where the user wants the FNC1 code. This character is rarely seen in ASCII data, however might exist in binary.
I would suggest a command line flag to indicate the request for the FNC1 code, with an uncommon value (202?) used in the input string to indicate FNC1 separators.
On the decode side the same command line option could be used to replace the FNC1 separator with (say) a newline.
Maybe the command line flag could take a character/string which would be used as a substitution for FNC1 on both encode and decode.
A problem exists on decode that when a fixed length AI is used, the seperator is not required. If we wanted libdmtx to handle this condition we would have to include a look up of each AI code.
They can be found here:
Thanks for your efforts with libdmtx, it's a very interesting little project.
Log in to post a comment.