Thema: (447)Datamatrixcode auf allen Briefmarken ab 2021 - Digitalisierungsoffensive
uli Am: 07.03.2021 19:45:21 Gelesen: 85789# 168@  
@ Ben 11 [#161] [#164]

Dann versuchen wir es mal mit Base-256, vielleicht bekommen wir den DMC irgendwie entschlüsselt. :-)

Der Base-256-Code nutzt den 255-state-Algorithmus:

CW = das Ergebnis (der Codewert) für ein Zeichen (Byte)
P = Position des zu codierenden Zeichens in der gesamten Zeichenkette (beginnend mit 1)
R = Pseudozufallszahl (... weil für eine Position immer identisch); diese dient ausschliesslich der Vermeidung von großen Flächen mit Leerfeldern = Fehllesungen
V = der Wert des zu codierenden Zeichens; bei ASCII also A=65, B=66, ...
N = Anzahl der Zeichen mit dieser Codierung

Die Berechnung:
R = ((149 * P) MOD 255) + 1
CW = (V + R) MOD 256

Mit dem CW 231 wird für die Länge N auf Base-256-Code gewechselt. Auf den CW 231 folgt die Anzahl N der Zeichen mit Base-256-Codierung. Wenn die Codierung bis zum Ende des DMC erfolgt, ist N = 0. Auch N wird wie oben beschrieben codiert.

Für uns hier nicht wichtig: Wenn N < 250, dann kommt die Länge in ein Byte, wenn N >= 250, dann in zwei Bytes: Byte 1 = (N \ 250) + 249 (Wert zwischen 250 und 255) und Byte 2 = N MOD 250 (Wert zwischen 0 und 249). Ebenso sind für uns die anderen "Schalterwerte" und deren Wirkung uninteressant.

Das ist alles, was wir brauchen und passt auch fast zu dem, was du aus deinem Ergebnis interpretiert hast. Fast, weil die 44 in Byte 2 des von dir ausgelesenen DMC die Längenangabe N ist und kein codiertes "D". Für das zweite Byte ist R = 44 und damit V = 0. N ist also 0 --> DMC bis zum Ende Base-256-codiert.

Für die von dir angegebene Zeichenfolge passt das aber ansonsten. Der Wert von Byte 3 ist 5, das ist der codierte Wert 68 und das ist in ASCII das "D". Byte 4: 156 / 69 / "E". Die CW des Strings DEA5:ff%]!wo3QDrP in der DMC müsste 231 - 44 - 5 - 156 - 45 - 183 - 82 - 19 - 169 - 253 - 203 - 37 - 16 - 158 - 247 - 171 - 51 - 247 - 107 - 176 - 70 - 219 - 113 - 7 - 156 sein.

Hast du Möglichkeit die Folge der dezimalen Codewerte in der DMC (231 - 44 - ....) auszulesen?

In der DMC deiner Mausmarke stehen doch mehr als nur die von dir genannten 19 Zeichen drin, oder? In eine DMC mit 16x48 Modulen passen 72 alphanumerische Zeichen.

Nächste Aufgabe: Warum ist der Beginn des Codestrings nicht bei allen Marken 231 - 44?

Die App von Cognex werde ich ausprobieren, danke.

Hast das Bild mit der DataMatrix aus der Mausmarke, den L-förmigen Byte-Kacheln darin und deren Anordnung selber erstellt?

Gruß
Uli

P.S.: An die Reed-Solomom-Fehlerkorrektur traue ich mich nicht ran ;-)
 
Quelle: www.philaseiten.de
https://www.philaseiten.de/thema/13966
https://www.philaseiten.de/beitrag/261262