Не правильная инициализация ком порта при автозагрузке

Написал WebSocket сервер, который принимает сообщения от браузера, и отдает его ком портам arduino. Ардуинка в свою очередь выполняет необходимую работу. Сервер стоит на распбери пи. При загрузке сервера с терминала все роботает правильно. Но при автозагрузке сервера, который является бинарным файлом, возникает проблема. Сообщения на ардуино приходят(желтый светодиод мигает), но необходимой работы не выполняется. Сначала я думал, что проблема в алгоритме снятия маски с Ws сообщений(WS сообщения от клиента приходят в маске), но вряд ли такое возможно, так как при запуске из терминала все работает корректно и расшифровка производится внутри самой программы и без запусков сторонних файлов. Я решил проверить, какие сообщения приходят самой ардуинке с помощью монитора порта , предоставляемого arduinoIDE и заметил, что на "малинке" есть два варианта одного порта /dev/ttyACM0 и dev/ttyACM0(Arduino uno). При проверке сообщений, приходящих на ардуинку(отправлял пришедшее на ардуино сообщение обратно в порт), я увидел, что сообщения от ардуино приходят в порт dev/ttyACM0(Arduino uno), после этого,я таким же образом попытался протестировать вариант с автозагрузкой, но у меня ничего не получилось, так как arduinoIDE выдавало ошибку(ком порт занят). После этого всего, я пришел к выводу, что при запуски из консоли и автозапуске программа инициализирует два разных варианта одного ком порта(но я в этом не уверен), при том что в самой программе всегда указан вариант /dev/ttyACM0.

Что это может быть и как возможно исправить данный баг?


Ответы (0 шт):