Название: [РЕШЕНО]QSerialPort сигнал errorOccurred Отправлено: Larry от Июнь 17, 2017, 09:12 Добрый день, Форумчане.
Возник вопрос по поводу сигнала errorOccurred. Никак не получается его перехватить - интересует ошибка ParityError. Есть устройство которое шлет 9 бит (знаю, что эта тема уже подымалась и 9 бит это нехорошо, но поставлен перед фактом ;D) и с помощью MarkParity и SpaceParity я отсылаю нужный мне 9ый бит на устройство и все хорошо, но чтобы принять 9ый бит нужно обрабатывать эту ошибку, но этот сигнал никак не испускается и неважно что я задаю в setParity - Mark или Space. Подскажите пожалуйста...Спасибо. Код: m_serial_port->setPortName(ui->cboxComPortList->currentText()); Слот error(QSerialPort::SerialPortError) просто выводит номер ошибки, но в него не попадает... Название: Re: QSerialPort сигнал errorOccurred Отправлено: kuzulis от Июнь 17, 2017, 10:38 Никогда это не работало должным образом (да и невозможно реализовать, например, под Windows), в будущем будет удалено:
Цитировать This value is obsolete. We strongly advise against using it in new code. Если же работа идет в Linux - то там можно попробовать через QSP::handle() установить в termios специальные настройки для байт-стаффинга, где сбойный байт будет обрамляться некими маркерами. Тем самым, парся входной стрим, можно обнаружить эти байты и определить что за ошибка была (паритета или кадра, вроде бы). Соответствующие куски кода, еще есть в старых версиях QSP, но сейчас они выброшены за ненадобностью. Название: Re: QSerialPort сигнал errorOccurred Отправлено: Larry от Июнь 17, 2017, 11:52 Спасибо. Жаль, что не работает...и работа идет в винде...посмотрю в сторону библиотеки ftd2xx для ftdi, может там что нарою. Спасибо.
|