Gerät an Com-Port ansprechen
Gerät an Com-Port ansprechen
Hallo,
ich möchte für ein Kassensystem ein Kundendisplay von Epson testweise über DOS ansprechen.
Konkret möchte ich die Steuerbefehle an das Display senden; die Befehle gibt es in HEX und Dezimalform.
Wie stelle ich es an, daß ich z.B. den Befehl "1B 40" (Initialisierung) an das Display sende?
Wenn ich es über die Funktion
"echo 1B 40 >COM1"
mache, erscheint der Befehl als Text im Display, es tut sich aber nichts an dem Verhalten des Displays.
Ich möchte z.B. das Display löschen oder den Cursor nach links/rechts bewegen.
Wie kann ich also diese primitiven Steuerbefehle an das Display senden, ohne daß der Befehl als Text auf der Anzeige erscheint, sondern einfach nur die Funktion ausgeführt wird?
Schonmal Danke!
ich möchte für ein Kassensystem ein Kundendisplay von Epson testweise über DOS ansprechen.
Konkret möchte ich die Steuerbefehle an das Display senden; die Befehle gibt es in HEX und Dezimalform.
Wie stelle ich es an, daß ich z.B. den Befehl "1B 40" (Initialisierung) an das Display sende?
Wenn ich es über die Funktion
"echo 1B 40 >COM1"
mache, erscheint der Befehl als Text im Display, es tut sich aber nichts an dem Verhalten des Displays.
Ich möchte z.B. das Display löschen oder den Cursor nach links/rechts bewegen.
Wie kann ich also diese primitiven Steuerbefehle an das Display senden, ohne daß der Befehl als Text auf der Anzeige erscheint, sondern einfach nur die Funktion ausgeführt wird?
Schonmal Danke!
Handbuch lesen.
Mit echo (Textausgabe) in Kombination mit > (Umleitung) ist es logisch, dass das Display dies als einfachen Text erkennt. Versuch einfach mal das echo weg zu lassen oder such dir ein Programm mit dem du Befehle über die serielle Schnittstelle senden kannst (sofern es unter DOS nicht direkt geht, hab damit ehrlich gesagt nie mit seriellen Schnittstellen gearbeitet).
Mit echo (Textausgabe) in Kombination mit > (Umleitung) ist es logisch, dass das Display dies als einfachen Text erkennt. Versuch einfach mal das echo weg zu lassen oder such dir ein Programm mit dem du Befehle über die serielle Schnittstelle senden kannst (sofern es unter DOS nicht direkt geht, hab damit ehrlich gesagt nie mit seriellen Schnittstellen gearbeitet).
Hauptsystem: Asus VL/I-486SV2GX4, DX2 @ 66MHz, 1MB L2 Cache, 64MB RAM, 1GB CF HDD, Cirrus Logic 5428 VLB, ARGUS Prototype Rev. 02 #0, umschaltbarer Covox/DSS-DAC, 2x LPT, DOS 6.22 + Win 3.11
Im Handbuch ist leider nichts zu finden, es sind nur die Befehle aufgelistet.
Ich suche schon seit Tagen nach einem Programm um Befehle an den Port zu senden, konnte aber nichts geeignetes finden.
Ich hab bisher nur Terminalsoftware gefunden, aber die macht im Prinzip dasselbe wie der echo-Befehl oder Hyperterminal unter Windows.
Könnt ihr mir nicht eine Software empfehlen, die nur die reinen Steuerzeichen am Com-Port ausgibt?
Ich suche schon seit Tagen nach einem Programm um Befehle an den Port zu senden, konnte aber nichts geeignetes finden.
Ich hab bisher nur Terminalsoftware gefunden, aber die macht im Prinzip dasselbe wie der echo-Befehl oder Hyperterminal unter Windows.
Könnt ihr mir nicht eine Software empfehlen, die nur die reinen Steuerzeichen am Com-Port ausgibt?
Erstmal danke für die Antwort!
Kannst du mir das vielleicht etwas genauer erklärren, am besten Schritt für Schritt?
Ich hab folgendes probiert:
1. Mit DOS-Editor die Datei TEST.DAT erstellt mit dem Inhalt "1B1F" als Steuerzeichen.
2. Com-Port gesetzt mit mode com2:9600,1,8
3. Datei an port gesendet mit copy test.dat >com2:
Und wieder das gleiche Resultat: der Text wird im Display angezeigt, ansonsten passiert nichts.
Kannst du mir das vielleicht etwas genauer erklärren, am besten Schritt für Schritt?
Ich hab folgendes probiert:
1. Mit DOS-Editor die Datei TEST.DAT erstellt mit dem Inhalt "1B1F" als Steuerzeichen.
2. Com-Port gesetzt mit mode com2:9600,1,8
3. Datei an port gesendet mit copy test.dat >com2:
Und wieder das gleiche Resultat: der Text wird im Display angezeigt, ansonsten passiert nichts.
Muss man vielleicht vor dem Befehl noch ein Sonderzeichen senden, so dass der Befehl auch tatsächlich als solcher erkannt wird?
Denn so wie es aussieht, scheint das Display zumindest so komfortabel zu funktionieren, dass es die Texteingabe sofort ausgibt.
Aber es muss ja möglich sein, Befehle von Text unterscheiden zu können. Da diese nunmal im selben Format vorkommen, muss es eine Konvention geben, welche die Möglichkeit einer Unterscheidung gibt.
Es kann natürlich auch sein, dass das Display das generelle Format des String nicht erkennen kann und alternativ einfach nur den Text ausgibt.
Hast du vielleicht auch mal mit den Parameter für den COM-Port experimentiert, ob das Display eventuell einen etwas anderen Betriebsmodus benötigt?
Denn so wie es aussieht, scheint das Display zumindest so komfortabel zu funktionieren, dass es die Texteingabe sofort ausgibt.
Aber es muss ja möglich sein, Befehle von Text unterscheiden zu können. Da diese nunmal im selben Format vorkommen, muss es eine Konvention geben, welche die Möglichkeit einer Unterscheidung gibt.
Es kann natürlich auch sein, dass das Display das generelle Format des String nicht erkennen kann und alternativ einfach nur den Text ausgibt.
Hast du vielleicht auch mal mit den Parameter für den COM-Port experimentiert, ob das Display eventuell einen etwas anderen Betriebsmodus benötigt?
Die Einstellungen des COM-Ports sind relativ egal, laut Anleitung ist fast alles zugelassen.
Es wird aber auch kein Sonderzeichen genannt, mitdem die Funktinen ausgelöst werden.
Zum Steuern werden
- Dazimale Daten
- Hexadezimaldaten
- Epson ESC/POS Befehle akzeptiert.
Die dezimalen Daten sollen in ASCII-Codierung gesendet werden.
Es muß doch einen Unterschied dazwischen geben, ob Steuerdaten oder Text gesendet wird, oder? Das Display muß wissen, ob eine Zahlenfolge als Text angezeigt werden soll oder nicht.
Hier ist die Anleitung zum Display:
https://www.dhtechnology.com.au/pdfs/cu ... MD110s.pdf
Die Befehle fangen an ab Seite 44.
Es wird aber auch kein Sonderzeichen genannt, mitdem die Funktinen ausgelöst werden.
Zum Steuern werden
- Dazimale Daten
- Hexadezimaldaten
- Epson ESC/POS Befehle akzeptiert.
Die dezimalen Daten sollen in ASCII-Codierung gesendet werden.
Es muß doch einen Unterschied dazwischen geben, ob Steuerdaten oder Text gesendet wird, oder? Das Display muß wissen, ob eine Zahlenfolge als Text angezeigt werden soll oder nicht.
Hier ist die Anleitung zum Display:
https://www.dhtechnology.com.au/pdfs/cu ... MD110s.pdf
Die Befehle fangen an ab Seite 44.
Ich hab die Anleitung jetzt nur überflogen, da ich PDFs chronisch ungerne am PC lese. Aber versuch mal den Befehl als "0x1B1F" zu schicken. Eben jenes 0x ist ein gängiges Steuerzeichen für Daten im Hex-Format (jedenfalls in vielen Programmiersprachen).
Hauptsystem: Asus VL/I-486SV2GX4, DX2 @ 66MHz, 1MB L2 Cache, 64MB RAM, 1GB CF HDD, Cirrus Logic 5428 VLB, ARGUS Prototype Rev. 02 #0, umschaltbarer Covox/DSS-DAC, 2x LPT, DOS 6.22 + Win 3.11