#include "CommMap.h" uint8_t JudgeTransMethod(uint8_t src_id, uint8_t dst_id) { uint8_t comm_method = SEND_FROM_CAN; //ÏÂÃæÁгöËùÓÐͨ¹ý´®¿Ú·¢ËÍÊý¾ÝµÄÇé¿ö switch(src_id) { case ID_VIO_UP_CTRLLER: if(dst_id == ID_UWB_ANCHOR || dst_id == ID_UWB_TAG) comm_method = SEND_FROM_UART; break; case ID_UWB_ANCHOR: comm_method = SEND_FROM_UART; break; case ID_VIO_MAIN_CTRLLER: //To do...ÇëÎâÒ«ÌîдºÎʱÖ÷¿Ø»áͨ¹ý´®¿Ú·¢ËÍÊý¾Ý if(dst_id == ID_VIO_BLE || dst_id == ID_VIO_BMS) comm_method = SEND_FROM_UART; break; case ID_VIO_BLE: comm_method = SEND_FROM_UART; break; case ID_VIO_BMS: comm_method = SEND_FROM_UART; break; default: break; } return comm_method; } uint32_t count_temp = 0; void SendFrame(uint8_t data_length, uint8_t src_id, uint8_t dst_id, uint8_t cmd, uint8_t index, uint8_t* data) { uint16_t checksum = 0; uint8_t send_method = SEND_FROM_CAN; static uint8_t send_frame[COM_FRAME_MAX_SIZE]; send_method = SEND_FROM_UART;//JudgeTransMethod(src_id, dst_id); if(send_method == SEND_FROM_UART) { //ͨ¹ý´®¿Ú·¢ËÍ send_frame[COM_HEAD0] = 0x5a; send_frame[COM_HEAD1] = 0xa5; send_frame[COM_LENGTH] = data_length; send_frame[COM_SRC_ID] = src_id; send_frame[COM_DST_ID] = dst_id; send_frame[COM_CMD] = cmd; send_frame[COM_INDEX] = index; memcpy(&send_frame[COM_DATA], data, data_length); checksum = Checksum_u16(&send_frame[COM_LENGTH], data_length+5); memcpy(&send_frame[COM_DATA+data_length], &checksum, 2); count_temp++; // UART_PushFrame(send_frame, send_frame[COM_LENGTH]+9); uart_send(TRACE_PORT_UART0,send_frame,send_frame[COM_LENGTH]+9,NULL); } } void WriteCtrlPara(uint8_t index,uint8_t* p,uint8_t len) { SendFrame(len*2,ID_UWB_ANCHOR,ID_VIO_UP_CTRLLER,CMD_CMAP_WR_NR,index,p); }