с последовательными портами. не могу найти ошибку в коде. или не понимаю как ядро через termio правильно настроить. Неделю гуглю без результата.
нужно подключить считыватель по компорту
на винде он работает. на линуксе на тойже машине на том же алгоритме, но реализованном через C# - работает.
Но когда через термиос пробую делать данные приходят в ответ искаженными. уже неделю бьюсь мозг сломал.
вот даже сегодня делал через libserialport который даже не компилировал и установил из репозитория. тоже не срабатывает, хотя скорость выставляю правильно. если бы скорость была не правильная то считыватель бы не отвечал на команду. а он отвечает. но в ответе меняется в случайных местах несколько бит. ответ 14 байт.
https://pastebin.com/Zf28RFjN
https://pastebin.com/9E9YhKN2 вот пример кода работающего нормально. на дотнете. на том же пк.
еще сильно смущает то, что если ставлю убунту на винду внутри WSL и там это же код запускаю все срабатывает без сбоев, но там контветор ethernet в ком порт, т.к. аппаратного нет. а тут видимо бага т.к. он все пины подключаются.
https://pastebin.com/bgbaK4vf вот вывод программы на libserialport
https://pastebin.com/QXK2rAw8 так порт инициализирует C# не могу понять в чем отличие от моего кода на голых сисколах.
Обсуждают сегодня