PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Serielle Schnittstelle und Kundendisplay



rawfire
04.11.05, 16:31
Hallo Hilfbereite!

Ich Programmiere gerade eine Kassensoftware unter der ich ein LCD-Kundendisplay ansprechen will, und zwar das hier:
http://www.jarltech.com/ger_new/new/php/show_product.php?prod=j8034

Unter MS-Dos und Windows nimmt man das LCD-Display ganz einfach mit
MODE COM1: 19200, N, 8, 1
ECHO Hallo! >COM1:
in betrieb und sendet "Hallo!" Direkt auf das display.
der mode befehl stellt die serielle schnittstelle auf eine baud rate von 19200, keine parität, 8 datenbits und 1 stopbit.
das funktioniert einwandfrei.

ehe ich es versucht habe hätte ich meinen arsch verwettet das es unter linux mindestens genauso einfach ist, doch ich stehe nach 2 tagen nonstop-fummeln und nach der befragung all meiner technikfreaks immernoch so da wie am anfang: keine ahnung warum es nicht geht.

Sobald ich mit echo hallo > /late einen text sende erscheint nur ein cryptischer zeichenhaufen der mich etwas an den matrix-code aus dem film erinnert.
( /late is nen symlink zu /dev/ttyS0 )

ich habe schon mit setserial und stty rumgespielt, allerdings ohne irgendeinen erfolg zu erkennen.

[root@creed ~]# stty -a -F /late
speed 19200 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc -ixany -imaxbel
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke

-----------------------------------

[root@creed ~]# setserial -a /late
/late, Line 0, UART: 16550A, Port: 0x03f8, IRQ: 4
Baud_base: 19200, close_delay: 50, divisor: 0
closing_wait: 3000
Flags: spd_normal skip_test

hat jemand irgendeine idee was das linux anders macht als das windows oder sonst irgendeinen tip? ich bin am verzeifeln, ohne das display ist meine ganze kassensoftware nicht zu gebrauchen :(

ich danke für jede hilfe!

rawfire
04.11.05, 16:36
ich habe das übrigens sowohl unter arch linux als unter knoppix probiert, kein unterschied.
Kernel 2.6.10 bzw 2.6.12

derguteweka
04.11.05, 17:16
Moin,

Koennte es evtl. etwas mit den unterschiedlichen Zeilenenden bei DOS und Linux zu tun haben?

Gruss
WK

geronet
04.11.05, 17:25
Oder die Baudrate stimmt nicht..

rawfire
04.11.05, 17:35
die baudrate stimmt, das gerät lässt sich per jumper einstellen und zeigt die eingestellte baudrate beim einschalten an... die baudrate ist das einzige wo ich mir sicher bin das es stimmt :/

die unterschiedlichen zeilenumbrüche... glaub ich irgendwie nicht, nur wegen so etwas würde kein matrixcode rauskommen.
den drucker spreche ich auf selbe weise an und da gibts keine probleme.

ich vermute das irgendwas bei der übertragung schiefläuft, das irgendwie die bits falsch übertragen werden und dadurch so ein chaos entsteht.

hat noch jemand eine idee?

derguteweka
04.11.05, 17:43
Moin,


hat noch jemand eine idee?
eine habbich noch :) Der HW-Handshake. Koennte sein, dass der bei DOS automatisch eingeschaltet ist. Nach deinem stty Kommando ist der aber ausgeschaltet (-crtscts). Vielleicht muss das Display nach jedem gesendeten Byte erstmal bisschen verschnaufen und wird ohne HW-Handshake etwas ueberfahren?

Gruss
WK

rawfire
04.11.05, 23:16
Problem gelöst!

also für die nachwelt:
ich habe mit setserial die baud_base von 115200 auf 19200 gestellt
und auch mit stty die baudrate auf 19200 gestellt. damit ging es nicht.

die baud_base im setserial muss auf default (also 115200) bleiben und die baudrate im stty an das gerät angepasst werden. keine ahnung warum und was das im setserial für eine baud_base ist, aber so funktionierts!

danke für die hilfe *wink*