/* * msp_DC_CAN.h * * Created on: 2024年6月21日 * Author: SQ-X */ #ifndef INC_MSP_MSP_DC_CAN_SWING_CONTROLLER_H_ #define INC_MSP_MSP_DC_CAN_SWING_CONTROLLER_H_ #include "BSP/bsp_include.h" typedef struct _DHCANopenData0x2E4 { uint8_t EmergencyStop :1; //first byte uint8_t Forwards :1; uint8_t BackWards :1; uint8_t TurnLeft :1; uint8_t TurnRight :1; uint8_t Speed1 :1; uint8_t Speed2 :1; uint8_t Speed3 :1; //8 bit uint8_t Speed4 :1; uint8_t Speed5 :1; uint8_t Speed6 :1; uint8_t Speed7 :1; uint8_t Speed8 :1; uint8_t Speed9 :1; uint8_t Speed10 :1; uint8_t Mode0 :1; //8 bit uint8_t Mode1 :1; uint8_t Mode2 :1; uint8_t Mode3 :1; uint8_t Mode4 :1; uint8_t Mode5 :1; uint8_t Mode6 :1; uint8_t Mode7 :1; uint8_t Mode8 :1; //8 bit uint8_t Mode9 :1; // third byte uint8_t Mode10 :1; uint8_t Incresss :1; uint8_t Decresss :1; uint8_t TaskStart :1; //作业开始 uint8_t LaneChnge :1; uint8_t UpWards :1; uint8_t DownWards :1; //8 bit uint8_t SwingLeft :1; uint8_t SwingRight :1; uint8_t None4 :6; //8 bit uint8_t None5 :8; uint8_t None6 :8; uint8_t None7 :6; uint8_t HeartBeat :1; uint8_t WireState :1; //8 bit } DHCANopenData0x2E4; //region 对外数据接口 extern DH_CAN_Remote *DH_CAN; //对外数据接口 extern int32_t *Send_Left_Compensation; extern int32_t *Send_Right_Compensation; extern int32_t *Send_BackwardDistance; extern int32_t *Send_LaneChangeDistance; extern int32_t *Send_Swing_Speed; extern int32_t *Send_Swing_Angle; extern int32_t *Send_Move_Speed; extern int32_t *Send_Robot_Angle; extern int32_t *Robot_Move_Speed; // Region 对外函数接口 void DecodeCAN(uint32_t canID, uint8_t *buffer, uint32_t length); void SendCANTest(); void SendRobtDataToController_0x364(); //Send 换道距离, 0x364 void SendRobtDataToController_0x264(); int32_t GetMode(DHCANopenData0x2E4 dHCANopenData0x2E4); int32_t GetSpeed(DHCANopenData0x2E4 dHCANopenData0x2E4); #endif /* INC_MSP_MSP_DC_CAN_SWING_CONTROLLER_H_ */