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

Я пытаюсь написать библиотеку для чтения данных с последовательного устройства, датчика газа 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), что теоретически соответствует параметрам, установленным в коде.

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

0 ответов

Другие вопросы по тегам