Доброго времени суток.
Пилю форму настройки COM порта, столкнулся со странным поведением методов задания количества бит данных и стоп-бит.
Есть форма с настройками порта в ComboBox`ах.
Для пользователя они отображаются в привычном виде, например, бит данных - от 5 до 8, стоп-биты: 1, 1,5 и 2. В методы задания значения передаются, в виде Int, соответствующих Value нужного элемента перечисления, например, для 7 бит данных - 7, для 1,5 стоп-бит - 3 (в соответствии с документацией на Qt).
Столкнулся с тем, что не все значения принимаются, так для бит данных принимаются только 7 и 8, для остальных возвращается errorString "Параметр задан неверно."
Для стоп-бит та-же история с 1,5.
bool TSerialPort::SetDataBits(int bits)
{
qDebug()<<bits;
qDebug()<<(QSerialPort::DataBits)bits;
bool isOk = port->setDataBits((QSerialPort::DataBits)bits);
qDebug() << (isOk ? "Data OK" : port->errorString());
return isOk;
}
bool TSerialPort::SetStopBit(int stopBit)
{
qDebug()<<stopBit;
bool isOk = port->setStopBits((QSerialPort::StopBits)stopBit);
qDebug() << (isOk ? "Stop OK" : port->errorString());
return isOk;
}
QT 5.7. Компилятор MinGW 5.3.0