Russian Qt Forum
Май 03, 2024, 11:58 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QSerialPort  (Прочитано 4568 раз)
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« : Ноябрь 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,

не могу понять почему?
Записан
Johnik
Крякер
****
Offline Offline

Сообщений: 339


Просмотр профиля
« Ответ #1 : Ноябрь 28, 2013, 13:25 »

Они же определены в классе QSerialPort, следовательно:

Код:
CLayer0::CLayer0(QString name, QSerialPort::BaudRate baud, QSerialPort::Parity parity,QObject *parent)
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« Ответ #2 : Ноябрь 28, 2013, 13:34 »

Точно, Спсб
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« Ответ #3 : Декабрь 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);
 
   }
 

не подключает Непонимающий
Не могу понять почему?
Записан
Bepec
Гость
« Ответ #4 : Декабрь 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();
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.085 секунд. Запросов: 23.