Hallo,
ich habe mir eine Widgetklasse abgeleitet zum testen. Hier die
Implementation:
1 | #include "Window.h"
|
2 | #include <QWidget>
|
3 |
|
4 | Window::Window(QWidget *parent):QWidget(parent){
|
5 | port=new QextSerialPort;
|
6 | layout=new QHBoxLayout;
|
7 | button_connect=new QPushButton("Verbinden");
|
8 | button_send=new QPushButton("Hallo Senden");
|
9 | button_send->setEnabled(0);
|
10 | layout->addWidget(button_connect);
|
11 | layout->addWidget(button_send);
|
12 | setLayout(layout);
|
13 | port->setPortName("/dev/tty.serial1");
|
14 | port->setBaudRate(BAUD9600);
|
15 | port->setFlowControl(FLOW_OFF);
|
16 | port->setParity(PAR_NONE);
|
17 | port->setDataBits(DATA_8);
|
18 | port->setStopBits(STOP_1);
|
19 | connect(button_connect,SIGNAL(clicked()),this,SLOT(serial_connect()));
|
20 | }
|
21 |
|
22 | void Window::serial_connect() {
|
23 | if(!port->isOpen()){
|
24 | port->open(QIODevice::ReadWrite);
|
25 | if(port->isOpen()) {
|
26 | button_connect->setText("Trennen");
|
27 | button_send->setEnabled(1);
|
28 |
|
29 | }
|
30 | } else {
|
31 | port->close();
|
32 | button_connect->setText("Verbinden");
|
33 | button_send->setEnabled(0);
|
34 | }
|
35 | }
|
36 |
|
37 | void Window::serial_send() {
|
38 | port->write("Hallo",6);
|
39 | }
|
Aber irgendwie will er die Schnittstelle nicht öffnen, und hängt sich da
auf. Unter Windows mit Name COMx geht es aber auf. Woran kann das
liegen? muss ich bei Linux noch etwas beachten?