Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Максим от Сентябрь 21, 2016, 09:30



Название: Странное поведение setDataBits и setStopBits
Отправлено: Максим от Сентябрь 21, 2016, 09:30
Доброго времени суток.
Пилю форму настройки 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


Название: Re: Странное поведение setDataBits и setStopBits
Отправлено: Максим от Сентябрь 21, 2016, 11:03
Странно всё это. Компьютер перезагрузил. Всё починилось.


Название: Re: Странное поведение setDataBits и setStopBits
Отправлено: kuzulis от Сентябрь 21, 2016, 12:10
Цитировать
errorString "Параметр задан неверно."

Ничо странного... глюки драйвера и прочее... может вообще эти режимы не поддерживаются.

А по-хорошему - нужно отлаживать, если снова такое будет повторяться, и смотреть где там что не нравится ему.