#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);
|
}
|