Datamatrix Encoder Source für kleinen Speicher

OP #7488534
Lesenswert?

Hallo Forum, ich suche einen Sourcecode in C um eine Datamatrix-2D Code auf einem µC zu berechnen. Leider habe ich bislang nur recht speicherhungrige Implementationen gefunden. Ich habe leider nur begrenzt RAM frei, etwa 10k bis 15k. Flash ist genügend vorhanden.

Im Code von Adrian Kennard, Andrews & Arnold Ltd (iec16022ecc200.c) finde ich:

1
struct {
2
  short s;                 /* 2 Byte */
3
  short t;                 /* 2 Byte */
4
} enc[MAXBARCODE][E_MAX];  /* 3116 * 6 * 2 * 2 = 74784 Bytes */

Was würdet ihr empfehlen?

#7488564
Lesenswert?

Was ist das Ausgabemedium und wie erfolgt die Ausgabe?

Ich frage das weil eventuell erst später die eigentliche Berechnung stattfinden muss. Wenn beispielsweise der Drucker PostScript-fähig ist, könnte man die Matrix erst auf dem Drucker berechnen lassen (PostScript ist Turing-mächtig). Der µC sendet dann nur die PostScript Funktion und f(data) an geeigneter Stelle.

#7488574
Lesenswert?

Rangi J. schrieb:

Kommt auf ein SW-Display. Also 1 Bit pro Pixel.

Kannst du aus dem Display zurücklesen? Hab den Code nicht gelesen, vermute aber dass die ganze Matrix nur im RAM gehalten wird, um Checksums zu berechnen und einzufügen. Könnte man dann vmtl. speichersparend umschreiben, und direkt auf dem Display arbeiten lassen. Gibt dann u.U. eine interessante Animation, und man kann beim Erstellen des Codes zuschauen.

OP #7488583
Lesenswert?

Ich befürchte, so einfach ist der DataMatrixCode nicht aufgebaut. In dem Fall mit dem riesigen Struct heisst die Funktion "encmake" und die codiert erstmal nur den Datenstring. Da werden noch keine Pixel erstellt. Zudem wäre mein Display nicht in der Lage so große Datenmengen zu speichern. Es muss schon irgendwie in den RAM passen. QR-Code funktioniert ja auch ohne solche Anforderungen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren