qextserialport unter windows und linux
qextserialport unter windows und linux
Hallo zusammen!
Ich versuch gerade eine Applikation, die unter windows bereits läuft auf Linux zu portieren. Diese App verwendet qextserialport, um über die RS232 mit anderer Hardware zu kommunizieren. Unter windows funktioniert das auch Sang und Klanglos, aber unter Linux passieren seltsame Dinge...
Ich hab als name "/dev/ttyS0" angegeben. Im Ordner, in dem die App liegt, findet man nach dem Start der Applikation einen Datei yS0. Die App scheint in diese Datei zu schreiben, anstatt /dev/ttyS0 zu verwenden. Wenn ich einen Link auf /dev/ttyS0 mit Namen yS0 anlege, dann hängt sich die App auf. Wie muss ich die qextserialport initialisieren, damit das auch unter Linux funzt?
Danke im Voraus!
Sumpi
Ich versuch gerade eine Applikation, die unter windows bereits läuft auf Linux zu portieren. Diese App verwendet qextserialport, um über die RS232 mit anderer Hardware zu kommunizieren. Unter windows funktioniert das auch Sang und Klanglos, aber unter Linux passieren seltsame Dinge...
Ich hab als name "/dev/ttyS0" angegeben. Im Ordner, in dem die App liegt, findet man nach dem Start der Applikation einen Datei yS0. Die App scheint in diese Datei zu schreiben, anstatt /dev/ttyS0 zu verwenden. Wenn ich einen Link auf /dev/ttyS0 mit Namen yS0 anlege, dann hängt sich die App auf. Wie muss ich die qextserialport initialisieren, damit das auch unter Linux funzt?
Danke im Voraus!
Sumpi
Why geeks like computers:
unzip, strip, touch, finger, grep, mount, fsck,
more, yes,fsck,fsck,fsck,
umount, sleep
unzip, strip, touch, finger, grep, mount, fsck,
more, yes,fsck,fsck,fsck,
umount, sleep
hallo sumpi,
unter linux öffne ich eine serielle schnittstelle mit qextserialport so:
der aufruf erfolgt über z.B.
überprüfe doch einmal die file permissions deiner seriellen schnittstelle mittels :
als nutzer solltest du dann der gruppe uucp angehören ...
gruss,
andy.
unter linux öffne ich eine serielle schnittstelle mit qextserialport so:
Code: Alles auswählen
void SerialInterface::OpenPort (QString portname) {
CommPort -> setPortName (portname);
CommPort -> setBaudRate (BAUD38400);
CommPort -> setDataBits (DATA_8);
CommPort -> setParity (PAR_NONE);
CommPort -> setStopBits (STOP_1);
CommPort -> setFlowControl (FLOW_OFF);
OpenOK = CommPort -> open ();
if (OpenOK) {
emit SignalUpdateMessage ("Port erfolgreich geoeffnet!");
}
}
Code: Alles auswählen
serial_if -> OpenPort ("/dev/ttyUSB0");
Code: Alles auswählen
aopen:/home/andy/tmp/qwt # ls -ls /dev/ttyUSB0 /dev/ttyS0
0 crw-rw---- 1 root uucp 4, 64 2006-03-09 09:29 /dev/ttyS0
0 crw-rw---- 1 root uucp 188, 0 2006-03-09 09:26 /dev/ttyUSB0
aopen:/home/andy/tmp/qwt #
gruss,
andy.
naja, das öffnen funzt mittlerweile, aber aus welchem seltsamen Grund auch immer, kann ich nicht lesen. Ich öffne das Interface mit ReadWrite, aber es kommt anscheinend nix daher. Kannst Du mir vielleicht ein Code-Beispiel schicken, wie ich das Teil auch dazu bringen kann, dass es etwas vom Interface lesen kann? Im Übrigen hab ich versucht, die Settings mitzuübergeben (Als struct), aber genau das war das Problem *sigh*
Danke auf jeden Fall!
lg,
Sumpi
Danke auf jeden Fall!
lg,
Sumpi
Why geeks like computers:
unzip, strip, touch, finger, grep, mount, fsck,
more, yes,fsck,fsck,fsck,
umount, sleep
unzip, strip, touch, finger, grep, mount, fsck,
more, yes,fsck,fsck,fsck,
umount, sleep
in der vergangenheit befand sich ein beispielprogramm auf der homepage von qextserialport - auf die schnelle konnte ich es aber nicht finden 
so funktioniert es bei mir: (vereinfacht)
vielleicht hilft es dir ein stück weiter.
gruss,
andy.
so funktioniert es bei mir: (vereinfacht)
Code: Alles auswählen
...
OpenOK = CommPort -> open ();
if (OpenOK) {
receiveTimer = new QTimer (this);
connect (receiveTimer, SIGNAL (timeout ()), SLOT (receiveMsg ()));
receiveTimer -> start (10);
...
Code: Alles auswählen
void Serial::receiveMsg () {
...
ulong lasterror = CommPort -> lastError ();
int numBytes = CommPort -> readLine (buff, 80);
...
if (numBytes > 0) {
msg.append (buff);
ausgabe << msg << endl;
...
gruss,
andy.
-
Massimo B.
- Beiträge: 45
- Registriert: 14. Juni 2006 11:05
- Wohnort: Bonn, Germany
Worum handelt es sich bei QextSerialPort? Ist das eine Qt Klasse? In den Standard docs kann ich darüber nichts finden. Die Homepage hat auch keine richtige Dokumentation und verweist auf QIODevice.
Ich möchte auch RS232 programmieren und suchte vergeblich nach einer Qt eigenen Lösung.
Ich möchte auch RS232 programmieren und suchte vergeblich nach einer Qt eigenen Lösung.
Gentoo (x86,ppc), KDevelop, Qt3, Qt4
QExtSerialPort ist ein Sourceforge-Projekt, bei dem sich jemand hingesetzt hat und endlich mal die RS232 abstrahiert bzw. gekapselt hat. Man arbeitet damit im Prinzip wie mit QIODevices (also open, close, read, ...)paoleela hat geschrieben:Worum handelt es sich bei QextSerialPort? Ist das eine Qt Klasse? In den Standard docs kann ich darüber nichts finden. Die Homepage hat auch keine richtige Dokumentation und verweist auf QIODevice.
Ich möchte auch RS232 programmieren und suchte vergeblich nach einer Qt eigenen Lösung.
Eigentlich könnte man die Sache auch "direkt" schreiben, allerdings müsste man das dann für jede Zielplattform machen. Nicht nur für eine. Such einfach mal nach Sourceforge und QExtSerialPort im google...
Why geeks like computers:
unzip, strip, touch, finger, grep, mount, fsck,
more, yes,fsck,fsck,fsck,
umount, sleep
unzip, strip, touch, finger, grep, mount, fsck,
more, yes,fsck,fsck,fsck,
umount, sleep
-
Massimo B.
- Beiträge: 45
- Registriert: 14. Juni 2006 11:05
- Wohnort: Bonn, Germany
Das ist eine Klasse Idee und ganz im Sinne von Qt. Ich programmiere eine Oberfläche mit TCP und RS232 Anbindung, nutze dafür QKlassen, und die Plattformumsetzung erledigt Qt.
Wäre Trolltech denn so offen und würde solche Opensourceprojekte aufnehmen? Im Zweifelsfall könnte der Author auch die Lizenz völlig an Trolltech abgeben, im Sinne der Verbreitung. Mit einer offiziellen und dokumentierten QKlasse wäre mir wohler, werde mir aber auf jeden Fall das Projekt anschauen, bevor ich mir selbst die Mühe mache, RS232 zu implementieren.
Wäre Trolltech denn so offen und würde solche Opensourceprojekte aufnehmen? Im Zweifelsfall könnte der Author auch die Lizenz völlig an Trolltech abgeben, im Sinne der Verbreitung. Mit einer offiziellen und dokumentierten QKlasse wäre mir wohler, werde mir aber auf jeden Fall das Projekt anschauen, bevor ich mir selbst die Mühe mache, RS232 zu implementieren.
Gentoo (x86,ppc), KDevelop, Qt3, Qt4
Keine Ahnung. Du findest allerdings auf der hp von Trolltech zumindest einen Link auf das Projekt iirc...paoleela hat geschrieben: Wäre Trolltech denn so offen und würde solche Opensourceprojekte aufnehmen? Im Zweifelsfall könnte der Author auch die Lizenz völlig an Trolltech abgeben, im Sinne der Verbreitung.
Why geeks like computers:
unzip, strip, touch, finger, grep, mount, fsck,
more, yes,fsck,fsck,fsck,
umount, sleep
unzip, strip, touch, finger, grep, mount, fsck,
more, yes,fsck,fsck,fsck,
umount, sleep
QextSerialPort 1.0.x kompatibel zu QT 4.1 ist im CVS runterzuladen.
hier: http://qextserialport.sourceforge.net/
Best regards,
http://www.uzumcu.de/
hier: http://qextserialport.sourceforge.net/
Best regards,
http://www.uzumcu.de/