В наших продуктах используется хорошо известный стек CANopen, в котором используется socketCAN, во встроенной системе на базе Beaglebone Black, работающей под управлением Ubuntu 14.04 LTS.Но по какой-то причине, даже если используемый нами стек будет определять, когда шина CAN переходит в состояние PASSIVE или даже в состояние OFF шины, он никогда не указывает, когда шина CAN восстанавливается после ошибок и выходит из состояния PASSIVE или предупреждения.и входит в состояние без ошибок.
Если бы я запросил драйвер socketCAN напрямую (через вызовы ioctl), смог бы я определить, когда шина CAN входит и выходит из состояния предупреждения (котороеменее 127 ошибок), вход и выход из состояния PASSIVE (более 127 ошибок) или отключение шины (более 255 ошибок)?
Я хотел бы знать, тратит ли я свое время на это или есть лучший способ точно и в реальном времени обнаружить все состояния шины CAN?