Seite 1 von 2

RS-422 Schnittstelle mit Thread abfragen?

Verfasst: 19. August 2008 11:57
von bassjupp2oo8
Hallo!
In meinem Programm wird eine Oberfläche angezeigt und parallel muss eine Rs 422 Schnittstelle auf neue Nachrichten überprüft werden.
Sollte man die Schnittstellen-Abfrage separat in einem Thread machen?
Kenne mich damit noch nicht aus!

Auch habe ich noch keine Vorstellung davon, wie ich die Schnittstelle abfragen soll. In den Qt Beispielen gibts ja nur TCP... und so.
Oder kennt jemand ein geeignetes Beispiel zum luschern???
:?:

Verfasst: 19. August 2008 13:16
von CaptnChaos
für RS232 gibts QExtSerialPort. Das auslesen ist platformabhängig. So sachen implementiert man immer in einem seperaten thread, sonst friert der GUI-Thread ein und das ist nicht schön.

Verfasst: 19. August 2008 14:51
von bassjupp2oo8
also die Hilfe (Qt Assistant) QT 4.0 kennt kein QExtSerialPort... ???!!!

Verfasst: 19. August 2008 14:54
von bassjupp2oo8
okay, aber Google :lol:
Inwieweit sind RS 422 und RS 232 denn da vergleichbar?

Verfasst: 19. August 2008 15:09
von bassjupp2oo8
Ich mein, die differenzielle Übertraugung und so ist doch für das Programm an sich nicht relevant, oder?

Wie teile ich dem Computer aber mit, dass er an COM 1 auslesen soll (zB) ?

Verfasst: 19. August 2008 16:09
von CaptnChaos
warum genau muss es rs422 sein? was ahst du denn vor?
RS232 ist unsymmetrisch. RS422 ist symmetrisch und kann höhere Datenraten als RS232. Sonst erfüllen beide den gleichen Zweck.

Verfasst: 20. August 2008 07:51
von bassjupp2oo8
...weil es so gefordert ist (muss ich RS 422 nehmen)
und die Nachrichten, die dort ankommen, kommen auch recht schnell / oft dort an. (bis zu 50 Hz = 20 ms)
Darum! 8)

UNd wie spreche ich nun COM1 an???

Verfasst: 20. August 2008 10:20
von CaptnChaos
Welches System?

Verfasst: 20. August 2008 15:43
von bassjupp2oo8
Hm, eigentlich nutze ich nun Qt damit das Programm auf Windows und Linux laufen kann später.
Ist das etwa unterschiedlich bei beiden?

Sorry, wenn ich mich etwas doof anstelle, aber ich bin echt noch ziemliche Anfängerin!
Bin fleißig in Büchern und Hilfen am Lesen, aber das dauert eben auch seine Zeit...

Verfasst: 20. August 2008 15:58
von CaptnChaos
aha, anfängerin :wink: .
Der Schnittstellenzugriff ist auf jedem System anders.
konkrete Codebeispiele für rs422 habe ich aber noch nirgendwo gefunden. ich weiss das es umsetzer gibt, solche kleine kisten in die du mit einem rs232 signal reingehst und die dir dann ein rs422 oder rs485 signal ausgeben. das würde die sache programmtechnnisch ungemein vereinfachen.

Verfasst: 21. August 2008 08:08
von bassjupp2oo8
Ja, ich weiß was du für einen Umsetzer meinst. Vielleicht ist das in dem System möglich, da für die RS 422 Schnittstelle eh eine eigene kleine Platine gebaut werden muss. Dann könnte man auch auf Rs 232 gehen.
Wenn´s denn leichter sein soll... ?!

Aber ich glaub kaum, dass ich die Erste bin, die eine RS 422 Schn.st. abfragen will. Warum gibt´s da bloß keine Bibliotheken für?

Beim Borland Builder gab es für RS232 zB eine "DCB-Struktur" ("The DCB structure defines the control setting for a serial communications device.")
Mit der war / ist das wohl relativ einfach zu bauen.

Gibt´s denn gar nichts ähnliches???

Verfasst: 21. August 2008 08:09
von bassjupp2oo8
Warum wird hier das Abosthrop (schreibt man das so?) nicht richtig dargestellt???

Verfasst: 21. August 2008 08:52
von CaptnChaos
Wie gesagt für rs232 gibts QExtSerialPort. Wenn du das mit einem Umsetzer machen möchtest kann ich dir dafür auch eine klasse geben, die in einem Thread sendet und empfängt.

Verfasst: 21. August 2008 09:12
von upsala
Kein Rechner hat eine RS485/RS422-Schnittstelle. Also hast du dir eine separate Karte in den Rechner eingebaut. Für diese Karte gibt es Treiber, Doku und Bibliotheken und im Idealfall C++-Beispiele. Dort must du suchen, nicht bei Qt...

Verfasst: 21. August 2008 10:31
von bassjupp2oo8
Letztendlich wird es kein "richtiger" PC sein, auf dem da laufen soll, sondern auf einem extra Board, das an einer Platine angeschlossen ist.

Aber danke für den Tipp, dass ich mal direkt bei C++ Programmierung gucken soll!

Aber ich könnte doch so einen Umsetzer nehmen, an die RS 232 vom PC anschließen, um von dort aus "Test-Messages" an ein System mit RS 422 Schnittstelle zu senden, oder? (das Programm dann natürlich für RS232!)