Seite 1 von 1

Gerät an Com-Port ansprechen

Verfasst: So 9. Mär 2008, 21:15
von pm4488
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!

Verfasst: Mo 10. Mär 2008, 00:07
von Shockwav3
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).

Verfasst: Mo 10. Mär 2008, 09:16
von pm4488
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?

Verfasst: Mo 10. Mär 2008, 09:19
von elianda
Ganz simple Methode:
Mache eine Datei, in die Du die Steuerzeichen als Hex reinschreibst. Oeffne den COM Port mit den korrekten Einstellungen mit einem Terminal Programm und gehe in die Shell wobei der Port dabei offen gelassen wird.
Dann z.B.
copy test.dat COM1
bzw. wahlweise mit /B

Verfasst: Mo 10. Mär 2008, 11:04
von pm4488
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.

Verfasst: Di 11. Mär 2008, 17:03
von Jinsu
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?

Verfasst: Di 11. Mär 2008, 17:48
von pm4488
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.

Verfasst: Di 11. Mär 2008, 18:10
von Shockwav3
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).

Verfasst: Mi 12. Mär 2008, 08:19
von pm4488
Leider hat das auch nicht funktioniert, der Befehl ist weiterhin als Klartext im Display zu lesen.

Aber so schwierig kann es doch nicht sein, in primitives Display anzusteuern?

Verfasst: Di 18. Mär 2008, 14:31
von Jinsu
Hast du es mal mit dem ASCII-Format versucht?
In deinen Erläuterungen erzählst du nur von hex und dezimal, also weiss ich nicht, ob du den verbleibenden Code genutzt hast.