Hallo, ich stehe vor einem Problem, daß ich einen der COM-Ausgänge(RTS oder DTR ist egal) ein und ausschalten möchte. Das soll so Funktionieren: In einer Batch Datei mit ein paar Anweisungen soll dazwischen paar mal ein Programmaufruf auftauchen, zum Programm , daß für so 2 sekunden einen der COM Ausgänge auf High schaltet und dann wieder auf LOW. Dann wieder ein paar Zeilen schon vorhandener Stapelverarbeitung und wieder ein kurzer Impuls auf rts oder dtr. Der COM Port selbst wird mit RX TX für die serielle Übertragung zu einem Gerät in dieser bereits vorhandener Batch bereits verwendet. Deshalb wäre ich "glaube" nicht so gut wenn dieses (Toggle RTS DTR - Programmchen) auf der TX Leitung in diesen 2 Sekunden etwas sendet. Der COM-Port ist während der Abarbeitung der Batch mit eine Gerät nur über RX TX verbunden. Impuls an der RTS oder DTR brauche ich um dazwischen etwas anderes zu schalten. OS : Win 2000 ohne Admin Rechte (Könnte ein Problem sein um einfach zu realisieren? Zugriff auf die Register gespert?) Programmiersprache: C++ oder Visualbasic oder wenn es etwas einfacheres (vielleicht schon fertiges) gibt, das. Wer sich etwas mit der Materie auskennt, bitte um Hilfe :) mfg
1 | if(rts) dcb.fRtsControl = RTS_CONTROL_ENABLE; |
2 | else dcb.fRtsControl = RTS_CONTROL_DISABLE; |
3 | if(dtr) dcb.fDtrControl = DTR_CONTROL_ENABLE; |
4 | else dcb.fDtrControl = DTR_CONTROL_DISABLE; |
5 | SetCommState (hCom, &dcb); |
Vor obigem Aufruf sollte aber unbedingt der aktuelle Zustand des DCB mit GetCommState() bestimmt werden. Alternative: EscapeCommFunction(hCom, CLRDTR); EscapeCommFunction(hCom, SETDTR); EscapeCommFunction(hCom, CLRRTS); EscapeCommFunction(hCom, SETRTS);
Ja und das Handle brauchen wir auch noch irgendwoher ;)
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.