I have a code that looks like this:
(01)123456789012345(21)AA1BB1001
which has the raw stream data, when encoded in a datamatrix image, as
0112345678901234521AA1BB1001
it is interpreted by the library as:
(01)123456789012345(21)AA1BB(10)01
which has the same data matrix.
From what I understood, I have a variable-length field identifier (21) which runs until the end of the data string. In this case, there's no FNC1 field so decoding shall go up to the very end of the string.
Is there a problem in the data being encoded or is this a decoder bug? The GS1 matrix checker Android application produces the proper result.