chen
2025-05-07 c8c1cf5223f0576d4c378ac627d6eeed6caf04d5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#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);
}