Jetzt habe ich es hingekriegt (fehlendes CREAD-Flag in termios.c_cflag war das Problem).
Jetzt zu der Library, hier ist die Ursach des Problems die Tatsache dass gleichzeitig /dev/ttyS0 und /dev/ttyS1 geöffnet sind, dann kann ich nichts empfangen, senden funkioniert aber immer. Ich habe aber auch nur eine serielle Schnittstelle.
Einschalten und ausschalten von RTS, DTR funktioniert auch einwandfrei.
Die Lib ist durchaus benutzbar wenn man nur auf ein ttySx gleichzeitig zugreift.
Also, Alles in Allem gute Arbeit matze.
Hier ist der Quellencode, der auf meinem
Rechner funktioniert:
Code: Alles auswählen
;guiteile habe ich weggelassen weil man unter linux nicht immer hat
CompilerIf #PB_Compiler_OS = #PB_OS_Linux
com1.s = "/dev/ttyS0"
com2.s = "/dev/ttyS1"
CompilerElse
com1.s = "com1"
com2.s = "com2"
OpenConsole()
CompilerEndIf
OpenConsole()
HCom1.l = ComOpen(com1 +":50,N,8,1",0,1024,1024);nur 50boud welt besser aussieht
ComSetDTR(HCom1,0)
ComSetRTS(HCom1,0)
string1.s=Input();
zeichen.l = ComOutput(HCom1,string1)
PrintN("<Zeichen gesendet: " +Str(zeichen) +">")
Delay(6500);kleine boudrate deshalb soll laenger warten
zeichen = ComInputBufferCount(HCom1)
PrintN("<Zeichen im Empfangs-Puffer: " +Str(zeichen) +">")
ComClose(HCom1)
CloseConsole()
End
Tja, es komm wohl darauf an wer das Kabel zusammenlötet.Bei selbsgebauten Kabeln....
Bei den Frequenzen die auf der seriellen Schnittstelle vorhanden sind und wenn man noch die brachialen Spannungsunterschiede zwischen H und L Zuständen (bei mir 24V) berücksichtigt, muss das Kabel locker über 10m lang sein um überhaupt irgendwelche Abschirmung zu brauchen.Ist die Schirmung des Kabels in Ordnung und ist es auch nicht zu lang?
Ja das habe ich auch gemacht (loopback).Es gibt sonst auch die Möglichkeit mit einem Stecker in dem TD und RD miteinander