mikrocontroller.net

Forum: PC-Programmierung RTS bzw. DTR Ausgang eines COM-Ports toggeln


Autor: Andreas Wulf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: *.* (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
if(rts) dcb.fRtsControl = RTS_CONTROL_ENABLE;
else dcb.fRtsControl = RTS_CONTROL_DISABLE;
if(dtr) dcb.fDtrControl = DTR_CONTROL_ENABLE;
else dcb.fDtrControl = DTR_CONTROL_DISABLE;
SetCommState (hCom, &dcb);

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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);

Autor: *.* (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja und das Handle brauchen wir auch noch irgendwoher ;)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.