Для скрипта bash, где я читаю информацию с Micoboard с помощью can, я использую команду Candump с фильтром для чтения определенного сообщения.
Моя проблема в том, что хотя сам фильтр работает правильно,иногда команда candump с фильтром не записывает конкретное сообщение на шину Can.
Я уже проверил, что ожидаемое сообщение отправляется, отображая все сообщения can can с Candump без фильтра.
Здесь отображается код сценария bash для получения конкретного сообщения can.:
CAN_PORT="can4"
CAN_ID_GET_VERSION=01500000
CAN_ID_SET_VERSION=01230000
candump -L ${CAN_PORT},${CAN_ID_SET_VERSION}:1ffffff | tee temp_candump.log &
candumpid=$!
cansend ${CAN_PORT} ${CAN_ID_GET_VERSION}#
sleep 0.5 # wait for an answer from microboard
kill $candumpid
cat temp_candump.log
Этот код дает мне ожидаемое сообщение о банке около 9 из 10 раз.У меня вопрос: есть ли проблема в коде или кто-то другой испытал подобную проблему и нашел решение?Любой ответ будет оценен.
С уважением