Forum: PC-Programmierung Steuerzeichen zum Mini-Drucker


von Thomas R. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo alle,
ich habe mir einen Thermodrucker gegönnt, weil sowas zum Debuggen 
einfach praktisch ist.
https://www.berrybase.de/bauelemente/elektromagnetische-bauelemente/thermodrucker/adafruit-mini-thermobondrucker
Im Standard-Druck funktioniert das wunderbar.
Ich schaffe es aber nicht, Steuerzeichen zum Drucker zum Laufen zu 
bringen.
Ich verwende plain C und kein Anduino und schicke als einfaches 
Beispiel:

\doubleHeighOn()

Er passiert aber nix, es bleibt beim Normaldruck.
Anbei die Dokumentation von Adafruit_Thermo.h
Was mache ich falsch?

Besten Dank fürs Lesen,
Thomas

von foobar (Gast)


Lesenswert?

Was verstehst du unter "Ich schicke \doubleHeighOn()"?

Wenn du das Library nicht nutzen willst, hast du dir das Datenblatt des 
Druckers[1], u.a. Kapitel 8, bestimmt durchgelesen, oder?

[1] https://adafru.it/C5P

von Thomas R. (Gast)


Lesenswert?

Hallo,
danke für den Hinweis, ich schaue mir das mal morgen an.
Das was ich geschickt hatte steht auf der Anlage meines Textes:


     * @brief Enables double-height text
     */
    doubleHeightOn(),

Ich hatte nur ein \ vorgesetzt, für das ESC

von foobar (Gast)


Lesenswert?

Ehem, das sind keine Texte, die du dem Drucker schickst, sondern 
Funktionen der Library (die du ja nicht benutzen willst).

von cppbert (Gast)


Lesenswert?

du musst die Steuerzeichen selbst senden:

z.B. auf Seite 15 von https://adafru.it/C5P

Printing command: "Print and feed paper"
1
ESC J n
2
  [Name] Print and feed paper
3
  [Format] ASCII: ESC J n
4
           Decimal: 27 74 n
5
           Hexadecimal: 1B 4A n
6
  [Range] 0≤n≤255
7
  [Description] Prints the data in the print buffer and feeds the paper [n×0.125 mm(0.0049”)].
8
  [Notes] 
9
          * After printing is completed, this command sets the print starting
10
                  position to the beginning of the line.
11
          * The paper feed amount set by this command does not affect the
12
            values set by ESC 2 or ESC 3.
13
          * In standard mode, the printer uses the vertical motion unit (y).

d.h. wenn du deinen Text printen willst und am Ende 0.25mm (2*0.125) 
feed willst

musst du:
1
0x1B 0x4A 0x02

ueber die Leitung schicken

ich würde erst mal mit 
Hercules(https://www.hw-group.com/software/hercules-setup-utility) oder 
HTerm(https://www.der-hammer.info/pages/terminal.html) von Hand testen 
bis dir das Protokoll ganz klar ist

von Thomas R. (Gast)


Lesenswert?

Hallo alle,

inzwischen habe ich das Ding zum Laufen gekriegt - besten Dank eurer 
Tipps.
Der Drucker hat ja eine Unmenge Funktionen und die Steuerzeichen, die 
ich ausprobierte, funktionieren.

Aber bitte aufpassen:
hier im offiziellen *.cpp-Script steht:

// Printer performance may vary based on the power supply voltage,
// thickness of paper, phase of the moon and other seemingly random
// variables.
...
// Datasheet recommends a 50 mS delay before issuing further commands,
// but in practice this alone isn't sufficient (e.g. text size/style
// commands may still be misinterpreted on wake).  A slightly longer
// delay, interspersed with NUL chars (no-ops) seems to help.

Das sagt viel aus, oder ist das chinesische Ingenieurkunst?

Besten Dank für eure Hilfen,
Thomas

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.