Forum: PC-Programmierung Fehlerhafte Antworten bei Schnittstellenansteuerung


von Smilie (Gast)


Lesenswert?

Hallo,

ich programmiere seit einer Woche an einem Programm das mit einem Gerät, 
das an meine COM1 Schnittstelle angeschlossen ist, kommunizieren soll.
Ich habe eine Schleife eingebaut, damit der Befehl öfter abgerufen wird, 
da ich dies benötige. Leider kommen nicht immer richtige Antworten 
zurück. Ich habe in einem andern, schon 3 Jahre alten Forenbeitrag 
gelesen das es etwas mit dem Handshake zu tun haben könnte. Leider 
versteh ich die Angaben für mein Gerät nicht ganz. Ich hoffe mir kann 
hier jemand helfen.

Es sind folgende Angaben zum Handshake gemacht:
CTS Clear to send  CD RSSI-threshold  RTS Ignored

Ich bin für jede Hilfe dankbar

von MeinerEiner (Gast)


Lesenswert?

Was heisst denn "nicht richtige Antwort"? Was wird erwartet und was 
kommt stattdessen?

von Karl H. (kbuchegg)


Lesenswert?

Smilie schrieb:

> Es sind folgende Angaben zum Handshake gemacht:
> CTS Clear to send

Das könnte die entscheidende Leitung sein.
Deine Gegenstelle signalisiert auf dieser Leitung, ob sie bereit ist, 
Daten von dir entgegen zu nehmen.

von Smilie (Gast)


Lesenswert?

Zu MeinerEiner:
Ich senden den Befehl der die Frequenz des Gerätes anfordert. Zurück 
kommt beispielsweise ?NNNNNNN??NMHz oder ?85.12345MHz.

zu  Karl heinz Buchegger (kbuchegg) (Moderator)
Aber welcher Einstellung entspricht das in VB. Die Einstellungen, die 
zur Auswahl stehen sind:
None
XOnXOff
Requesttosend
RequesttosendXOnXOff
Die letzen beiden kann man ja eigentlich ausschließen weil das Gerät ja 
RTS also Request to send nicht unterstützt. Hat mir mein Kollege gesagt. 
Aber die andern beiden zeigen auch keinen Unterschied.

von Karl H. (kbuchegg)


Lesenswert?

Smilie schrieb:

> Die letzen beiden kann man ja eigentlich ausschließen weil das Gerät ja
> RTS also Request to send nicht unterstützt. Hat mir mein Kollege gesagt.

RTS ist auch egal.
Ist zwar ungewöhnlich, aber warum nicht.

Wichtig ist, ob dir das Gerät über die CTS signalisiert, ob du Senden 
darfst. Und ein Kollege ist keine gute Quelle. Das Datenblatt des 
Gerätes wäre besser. Wenn dein Problem etwas mit Handshake zu tun hat, 
dann ist es im Datenblatt dokumentiert.

von Smilie (Gast)


Lesenswert?

Also zu Handshake steht da nur das hier:
CTS Clear to send  CD RSSI-threshold  RTS Ignored

Ich hab da was entdeckt das heißt CTSHolding. Wenn ich das abfrage kommt 
False zurück. Bedeutet das, dass CTS nicht aktiv ist? Wenn ja wie 
schalte ich das ein? Und kann ich das überhaupt einschalten?

von Karl H. (kbuchegg)


Lesenswert?

Smilie schrieb:
> Also zu Handshake steht da nur das hier:
> CTS Clear to send  CD RSSI-threshold  RTS Ignored
>
> Ich hab da was entdeckt das heißt CTSHolding. Wenn ich das abfrage kommt
> False zurück. Bedeutet das, dass CTS nicht aktiv ist?

Woher soll ich das wissen?
(Wo hast du das entdeckt?)

> Wenn ja wie
> schalte ich das ein? Und kann ich das überhaupt einschalten?

Du wahrscheinlich gar nicht.
Das klingt eher nach einer Abfrage, ob zur Zeit CTS aktiv ist oder 
nicht.


Aber machs nicht so kompliziert. Früher hat man sich mit ein paar Leds 
beholfen. Das kannst du auch.
Mach einen Stecker deines Kabels auf und klemme eine LED (samt 300 Ohm 
vorwiderstand) an die CTS Leitung auf PC Seite. Wenn die Led brennt, 
drehst du sie um (bzw. umgekehrt: wenn sie nicht brennt, dann drehst du 
sie probehalber um um zu sehen ob sie funktioniert und baust sie in 
Nicht-erleuchtetet Richtung ein.

Und dann lässt du dein Programm werken. Wenn die LED ab und zu 
aufblitzt, dann versucht das Gerät deinem Programm ein CTS zukommen zu 
lassen.

Früher hatte man dafür eigene RS232-Zwischenstecker, bei denen Rx, Tx, 
CTS, RTS über je eine LED visualisiert wurden. Ungemein praktisch, um zu 
sehen ob und wenn ja was sich auf der Leitung tut.

von Smilie (Gast)


Lesenswert?

Das CTSHolding hab ich beim durchgehen der Methoden und Eigenschaften 
von der Klasse SerialPorts entdeckt. Habs mal einfach eingegeben in der 
Hoffung es könnte helfen. Ok danke ich versuchs mal.

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
Noch kein Account? Hier anmelden.