DTR- und RTS- Leitung mit Visual Basic setzen

Gast #385498
Hallo zusammen,

momentan beschäftige ich mich mit der seriellen Schnittstelle. Um Daten
zu senden und zu empfangen (Tx/Rx) verwende ich das XMComm- Modul von
Richard Grier. Mein Problem besteht nun darin, dass ich für meine
Anwendung die RTS- und DTR- Leitung ansteuern muss. Microsoft zeigt
zwar wie man die Leitungen enablen und disablen kann, aber nicht wie
ich die Leitung High/Low setzen kann.

Ich hoffe, dass mir hier irgend jeman weiterhelfen kann. Weiss jemand
wie das funktioniert? Oder geht das gar nicht?

Vielen Dank schon im Voraus für eure Bemühungen!

Der Gast
Gast
Ich habe gerade in einem anderen Forum ein C- Code gefunden, mit welchem
die RTS- Leitung gesetzt werden kann. Dies scheint relativ einfach zu
funktionieren. Weiss jemand wie man diesen Code in VB übersetzt? Oder
kennt jemand einen ähnlichen Code in VB? Das müsste doch auch mit VB
realisierbar sein.

Hier noch der C- Code:

#include <windows.h>

int main (void)
{
   HANDLE hPort;

   hPort =  CreateFile ("COM1",
      GENERIC_WRITE,
      0,
      0,
      OPEN_EXISTING,
      0,
      0);

   EscapeCommFunction (hPort, SETRTS); // RTS setzten
   Sleep (2000);
   EscapeCommFunction (hPort, CLRRTS); // RTS rücksetzten
   Sleep (2000);
   EscapeCommFunction (hPort, SETRTS); // RTS setzten
   Sleep (2000);

   CloseHandle (hPort);

   return (0);
}
Gast
Du solltest dir darüber klar werden ob du ein Handshakeprotokoll
benutzt
(dann wird die DTR/RTS automatisch bei richtiger Protokollwahl
gemacht)
oder ob du die Leitungen selber setzen willst.
>Weiss jemand wie man diesen Code in VB übersetzt? Oder
>kennt jemand einen ähnlichen Code in VB? Das müsste doch auch mit VB
>realisierbar sein

Ist alles in der MSDN hervorragend erklärt. Sogar mit Beispielen. Must
du nur noch rauskopieren.
Gast
Ich möchte die Leitungen selber setzen. In der MSDN ist einfach erklärt,
wie man die Leitungen enabled, aber nicht wie man sie High/Low setzt.
Programmbeispiele gibt es für den "normalen" Gebrauch, mit Rx und Tx.
Du hast das Beispiel eh oben.
Das steht prinzipiell alles drin was du brauchst.
CreateFile ist eine normale Funktion aus der WinAPI. Beispiele dafür
gibts en masse.
Selbiges gilt für die EscapeComm. Müsste eigentlich in der kernel32.dll
zu finden sein.
Gast
>In der MSDN ist einfach erklärt,
>wie man die Leitungen enabled, aber nicht wie man sie High/Low setzt
bei RS232 gibt es kein High/low sondern nur Mark/Space
in der MSDN gibt es einen Artikel wie man in VB die ganzen C Funktionen
der seriellen benutzt.
Gast
>Könntest du mir noch schreiben, wie dieser Artikel heisst. Das würde
>mir die Suche etwas erleichtern
das ist keine Suche das ist kopieren...
Der effektive Umgang mit der Hilfe deiner Programmiersprache ist eine
der wichtigsten Sachen die du lernen solltest. Dies ist das erste was
man selbst macht, bevor man ein Forum benutzt. Auch die Suchfunktion
des Forum ist eine sehr wichtige Hilfe und glaube mir da wirst du mehr
als fündig. Das Thema Serialport kommt nämlich immer wieder auf, sobald
es von der ersten Seite verschwunden ist.
Also effektive Suchworte wären SerialPort ,VB ,Visual Basic
Auf den Artikel wurde schon mehrfach in diesem Forum hingewiesen.
und auch unter Codeguru wirst du fündig.
Die Benutzng von C Funktionen in Visual Basic findest du in VB-Büchern
gewöhnlich unter Systemprogrammierung. Wenn du diese benutzen willst
schau dir DCB, und CreateFile an.
Ansonsten gibt es in VB2005 auch eine sehr leistungsfähige Serialport
klasse.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.