我经常在Linux上使用QextSerialPort进行串行通信(Ubuntu);我想将我的代码转移到Windows,但它似乎是与QExtSerialPort库使用相关的问题。
这是我的功能:
void ts400 :: EsuPortSetupDNI()
{
this-> EsuPort = new QextSerialSleeperThread :: msleep(TIME_STEP); Port(" / dev / ttyS0",QextSerialPort :: EventDriven); //串口
EsuPort->flush();
EsuPort->setBaudRate((BaudRateType)BAUD4800);
EsuPort->setFlowControl((FlowType)FLOW_OFF);
EsuPort->setParity((ParityType)PAR_NONE);
EsuPort->setDataBits((DataBitsType)DATA_8);
EsuPort->setStopBits((StopBitsType)STOP_1);
if (EsuPort->open(QIODevice::ReadWrite) == true)
{
connect(EsuPort, SIGNAL(readyRead()), this, SLOT(onReadyReadDNI()));
ui->EsuReturnLabel->setText("Ready to receive serial data");
EsuPortFlag = SET;
}
else
ui->EsuIdentlineEdit->setText("SERIAL NOT PRESENT!");
}
我试图替换第一行:
this->EsuPort = new QextSerialSleeperThread::msleep(TIME_STEP);Port("/dev/ttyS0", QextSerialPort::EventDriven); // Serial Port
在我看来,对于Windows,只有一个:
this-> EsuPort = new QextSerialPort(" COM1",QextSerialPort :: EventDriven); // COM1
编译,结果是很多错误;似乎与Linux的使用有关......
有什么想法吗?