port = new QextSerialPort("COM4");
port->open(QIODevice::ReadWrite | QIODevice::Unbuffered);
if(!port->isOpen())
{
QMessageBox::warning(this, "port error", "Impossible to open the port!");
}
else if(port->isOpen());
This is dangerous code.
It makes assumption COM4 exists and is not in use.
Also port->isOpen test is ignored.
It would be better to write:
port = NULL;
port = new QextSerialPort("COM4");
if(port)
{
port->open(QIODevice::ReadWrite | QIODevice::Unbuffered);
if(port->isOpen())
{
port->setBaudRate(BAUD9600);
port->setFlowControl(FLOW_OFF);
port->setParity(PAR_NONE);
port->setDataBits(DATA_8);
port->setStopBits(STOP_1);
}
else
{
QMessageBox::warning(this, "port error", "Impossible to open the port!");
}
}
else
GetError()....
init_port() should not return void but an error value.