Hallo Foraner, kann mir jemand bestätigen, dass wie Reinhard schreibt: Beitrag "Re: Windows XP RS-232, RTS high, wenn Port geschlossen!?" die RTS-Leitung unter Windows grundsätzlich macht was sie will? Momentan habe ich das Problem, dass eine Software Beitrag "Intellibox-Manager" und auch HTerm 0.8.1beta die RTS-Leitung nicht mehr (früher schon) bei Hardware-Handshake auf High legt. Das Problem lässt sich umgehen, wenn im Programm sowie im HTerm RTS manuell auf High gesetzt wird. Bei Intellibox-Manager hab ich es wieder rausgenommen, jetzt geht's auch ohne manuelles setzen. Manuelles Setzen mit mode com1: rts=on setzt RTS zwar kurz, erwirkt aber sonst nichts. OS ist Windows 10 und Schnittstelle ist nativ in Shuttle Barebone. Gruss Chregu
Christian M. schrieb: > die RTS-Leitung unter Windows grundsätzlich macht was sie will? Die RTS-Leitung macht grundsätzlich genau das, was ihr die benutzende Software sagt. Falls du einen USB-Seriell Adapter nutzt, muss der natürlich RTS unterstützen. (mit CH340 und HTerm unter Win10 getestet)
Christian M. schrieb: > Manuelles Setzen mit mode com1: rts=on setzt RTS zwar kurz, erwirkt aber > sonst nichts. Was du mit mode setzt ist irrelevant, sobald eine Software die Schnittstelle übernimmt, die selbst die Einstellungen vornimmt (also jede brauchbare). Das ist bloss von Interesse wenn du nachher mit copy sendest. Georg
Bis jetzt bin ich immer davon ausgegangen - und so lief es auch immer - dass eine Software, die die RS-232 Schnittstelle im RTS/CTS-Handshakemode öffnet, die RTS-Leitung automatisch gesetzt wird. Und bis gestern war das auch so. Leider sehe ich nicht hinter die Hochsprachen, aber sollte man dann RTS immer manuell setzen? Oder ist das in der Windows-API schon drinn? HTerm setzt RTS nicht automatisch! PureBasic gestern nicht, heute schon... Gruss Chregu
Eine Windows-Anwendung setzt seine gewünschten Einstellungen direkt nach Öffnen der Schnittstelle idealerweise via: https://docs.microsoft.com/de-de/windows/win32/api/winbase/nf-winbase-setcommstate Über die DCB-Struktur kann man den fRtsControl-Member passend setzen. Alternativ kann man RTS auch via https://docs.microsoft.com/de-de/windows/win32/api/winbase/nf-winbase-escapecommfunction manuell steuern. Windows reicht den meisten Serial-Port Kram nahezu 1:1 via ioctls direkt an den Treiber durch.
bluppdidupp schrieb: > Eine Windows-Anwendung setzt seine gewünschten Einstellungen direkt nach > Öffnen der Schnittstelle idealerweise via: > https://docs.microsoft.com/de-de/windows/win32/api/winbase/nf-winbase-setcommstate ja, sehe es, bei: DWORD fRtsControl : 2; Wenn jetzt die Anwendung diese Struktur nicht ordnungsgemäss initialisiert, wird halt irgendein Wert genommen. Beim mir verwendeten PureBasic sind bei OpenSerialPort() folgende Optionen möglich: #PB_SerialPort_NoHandshake : Kein "handshaking" #PB_SerialPort_RtsHandshake : Kein "handshaking", aber RTS wird auf 1 gesetzt #PB_SerialPort_RtsCtsHandshake : RTS/CTS #PB_SerialPort_XonXoffHandshake: Xon/Xoff Ich brauche ja die dritte Option, und da wird warscheinlich RTS nicht explizit gesetzt. Habe jetzt nach dem Oeffnen der Schnittstelle noch manuelles Setzen eingefügt. Das nutzt dann warscheinlich: bluppdidupp schrieb: > Alternativ kann man RTS auch via > https://docs.microsoft.com/de-de/windows/win32/api/winbase/nf-winbase-escapecommfunction > manuell steuern. Gruss Chregu
Christian M. schrieb: > Ich brauche ja die dritte Option, und da wird warscheinlich RTS nicht > explizit gesetzt Dann ist das ein Bug in der Funktion OpenSerialPort() von PureBasic. Es genügt ja auch nicht, am Anfang RTS manuell zu setzen, RTS soll aktiv werden wenn Daten zu senden sind und inaktiv wenn die Daten gesendet sind. Ein Sendeaufruf setzt daher RTS und wartet bis CTS aktiv wird. Georg
georg schrieb: > RTS soll aktiv > werden wenn Daten zu senden sind und inaktiv wenn die Daten gesendet > sind. Er sprach von Hardware-Handshake, da wird RTS faktisch als RTR verwendet, um anzuzeigen, dass das Endgerät gerade Daten entgegennehmen kann, während das Modem o.dgl. dafür CTS verwendet. Traditionelles RTS/CTS ist für Halbduplex-Betrieb gedacht und kommt in Senderichtung in RS232-RS485-Konvertern zum Einsatz.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.