【Apollo】【driver】【canbus】适配非canbus设备的方式
首先,要明白只有can_client才会与设备通信,在apollo中can_client提供了三种通信方式 enum CANCardBrand { FAKE_CAN = 0 ; //假的数据通信,一般模拟使用 ESD_CAN = 1 ; //esd canbus卡通信 SOCKET_CAN_RAW = 2 ; //socket 通信,在gem车上使用 } 需要新增的通信方式,以serial为例 1.在 modules/drivers/canbus/proto/can_card_parameter.proto 中新增如下 enum CANCardBrand { FAKE_CAN = 0 ; ESD_CAN = 1 ; SOCKET_CAN_RAW = 2 ; SERIAL_CAN = 3 ; //新的通讯方式 } 2.在 modules/drivers/canbus/can_client/ 下新增文件夹serial,并实现如下文件。 socket_can_client_raw.h 内容 class **SerialCanClientRaw** : public CanClient { public : bool Init( const CANCardParameter ¶meter) override; virtual ~SocketCanClientRaw();