Russian Qt Forum

Qt => Общие вопросы => Тема начата: demaker от Ноябрь 28, 2013, 13:01



Название: QSerialPort
Отправлено: demaker от Ноябрь 28, 2013, 13:01
Установил QSerialPort
Подцепил библиотеку в проект.
Вроде все ок...

Но почему-то он не видит
Код:
enum BaudRate {
        Baud1200 = 1200,
        Baud2400 = 2400,
        Baud4800 = 4800,
        Baud9600 = 9600,
        Baud19200 = 19200,
        Baud38400 = 38400,
        Baud57600 = 57600,
        Baud115200 = 115200,
        UnknownBaud = -1
    };

и т.д.

т.е.
пишу код
Код
C++ (Qt)
CLayer0::CLayer0(QString name, BaudRate baud, Parity parity,QObject *parent):
   QObject(parent){
}
 

, а он не может определить тип
Код:
BaudRate baud, 
Parity parity,

не могу понять почему?


Название: Re: QSerialPort
Отправлено: Johnik от Ноябрь 28, 2013, 13:25
Они же определены в классе QSerialPort, следовательно:

Код:
CLayer0::CLayer0(QString name, QSerialPort::BaudRate baud, QSerialPort::Parity parity,QObject *parent)


Название: Re: QSerialPort
Отправлено: demaker от Ноябрь 28, 2013, 13:34
Точно, Спсб


Название: Re: QSerialPort
Отправлено: demaker от Декабрь 03, 2013, 12:19
Пытаюсь подключить порт
Код
C++ (Qt)
 
   port = new QSerialPort;
   connect(port,SIGNAL(readyRead()),this,SLOT(received()));
 
   if(!port->open(QIODevice::ReadWrite))
   {
       connected = false;
       qDebug()<<"port not open!";
   }
   else
   {
       connected = true;
 
       port->setPortName(namePort);
       port->setBaudRate(baudPort,QSerialPort::AllDirections);
       port->setParity(parityPort);
       port->setDataBits(QSerialPort::Data8);
       port->setStopBits(QSerialPort::OneStop);
       port->setFlowControl(QSerialPort::NoFlowControl);
 
   }
 

не подключает ???
Не могу понять почему?


Название: Re: QSerialPort
Отправлено: Bepec от Декабрь 03, 2013, 12:26
Ты пытаешься открыть порт без названия? Это какой? COM****?

Вот код из примера библиотеки (из проекта дёрнул).
Код:
        port_ = new QSerialPort;

QString portName("COM2");//currentPortName

port_->setPortName(portName);

if (!port_->open(QIODevice::ReadWrite)) {
emit error(tr("Can't open %1, error code %2")
.arg(portName).arg(port_->error()));
return;
}

if (!port_->setBaudRate(QSerialPort::Baud115200)) {
emit error(tr("Can't set baud rate 9600 baud to port %1, error code %2")
.arg(portName).arg(port_->error()));
return;
}

if (!port_->setDataBits(QSerialPort::Data8)) {
emit error(tr("Can't set 8 data bits to port %1, error code %2")
.arg(portName).arg(port_->error()));
return;
}

if (!port_->setParity(QSerialPort::NoParity)) {
emit error(tr("Can't set no parity to port %1, error code %2")
.arg(portName).arg(port_->error()));
return;
}

if (!port_->setStopBits(QSerialPort::OneStop)) {
emit error(tr("Can't set 1 stop bit to port %1, error code %2")
.arg(portName).arg(port_->error()));
return;
}

if (!port_->setFlowControl(QSerialPort::NoFlowControl)) {
emit error(tr("Can't set no flow control to port %1, error code %2")
.arg(portName).arg(port_->error()));
return;
}
emit openPort(port_);
exec();