Не могу прочитать с последовательного устройства

Я пытаюсь написать библиотеку для чтения данных с последовательного устройства, Датчик газа Mipex-02. К сожалению, мой код, похоже, не открывает последовательное соединение должным образом, и я не могу понять, почему.

Полный исходный код доступен на GitHub, в частности, вот конфигурация последовательного соединения:

    MipexSensor::MipexSensor(string devpath) {
if (!check_dev_path(devpath))
throw "Invalid devpath";
this->path = devpath;
this->debugout_ = false;
this->sensor.SetBaudRate(SerialStreamBuf::BAUD_9600);
this->sensor.SetCharSize(SerialStreamBuf::CHAR_SIZE_8);
this->sensor.SetNumOfStopBits(1);
this->sensor.SetParity(SerialStreamBuf::PARITY_NONE);
this->sensor.SetFlowControl(SerialStreamBuf::FLOW_CONTROL_NONE);
this->last_concentration = this->last_um = this->last_ur = this->last_status = 0;
cout << "Connecting to "<< devpath << endl;
this->sensor.Open(devpath);
}

Я думаю, что значение перечислений здесь достаточно очевидно. Значения взяты из инструкции по эксплуатации:

Характеристики UART:
обменный курс — 9600 бод,
8-битное сообщение,
1 стоповый бит,
без проверки на паритет

Сначала я использовал перехват для проверки, и он работал отлично. Но когда я попытался подключиться к устройству напрямую, я ничего не мог прочитать. светодиод RX мигает на устройствах, поэтому программе удается что-то отправить, но, в отличие от перехвата, светодиод TX никогда не мигает.

Поэтому я не знаю, отправляет ли он данные неправильно, не отправляет ли он все это, и я даже не могу прослушать соединение, поскольку это происходит только тогда, когда перехват не находится в середине. Командная строка Interceptty interceptty -s 'ispeed 9600 ospeed 9600 -parenb -cstopb -ixon cs8' -l /dev/ttyUSB0 (параметры -s передаются в stty), что теоретически соответствует параметрам, установленным в коде.

Заранее спасибо.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]