|
@@ -106,6 +106,7 @@ uint8_t DM4d_recv_flag = 0;
|
|
|
Connect_check DM_status;
|
|
Connect_check DM_status;
|
|
|
Connect_check DM_4dstatus;
|
|
Connect_check DM_4dstatus;
|
|
|
uavr_terrain DM_ter_info;
|
|
uavr_terrain DM_ter_info;
|
|
|
|
|
+uint8_t DM4d_to_fmu_flag = 0;
|
|
|
void DM_terrain_recieved_hookfuction(uint32_t cellCanID,uint8_t data[], uint8_t len)
|
|
void DM_terrain_recieved_hookfuction(uint32_t cellCanID,uint8_t data[], uint8_t len)
|
|
|
{
|
|
{
|
|
|
if(cellCanID == 0x901300) //多点协议
|
|
if(cellCanID == 0x901300) //多点协议
|
|
@@ -222,45 +223,45 @@ int dm_4df_i = 0;
|
|
|
DM_4DRADAR FMU_4D_info;
|
|
DM_4DRADAR FMU_4D_info;
|
|
|
void DM_Fobs_recieved_hookfuction(uint32_t cellCanID,uint8_t data[], uint8_t len)
|
|
void DM_Fobs_recieved_hookfuction(uint32_t cellCanID,uint8_t data[], uint8_t len)
|
|
|
{
|
|
{
|
|
|
- if(cellCanID == 0XA01300) //多点协议
|
|
|
|
|
|
|
+ if (cellCanID == 0XA01300) // 多点协议
|
|
|
{
|
|
{
|
|
|
DM_T_info.byte7.frame_flag = data[7];
|
|
DM_T_info.byte7.frame_flag = data[7];
|
|
|
|
|
|
|
|
DM_status.connect_status = COMP_NORMAL;
|
|
DM_status.connect_status = COMP_NORMAL;
|
|
|
DM_status.recv_time = HAL_GetTick();
|
|
DM_status.recv_time = HAL_GetTick();
|
|
|
-
|
|
|
|
|
- if(DM_T_info.byte7.flag.head != 0 ) //头
|
|
|
|
|
|
|
+
|
|
|
|
|
+ if (DM_T_info.byte7.flag.head != 0) // 头
|
|
|
{
|
|
{
|
|
|
- memcpy(&DM_T_info.target_num,&data[0],7);
|
|
|
|
|
|
|
+ memcpy(&DM_T_info.target_num, &data[0], 7);
|
|
|
dm_i = 0;
|
|
dm_i = 0;
|
|
|
- if(DM_T_info.target_num == 0 && DM_recv_flag == 0)
|
|
|
|
|
|
|
+ if (DM_T_info.target_num == 0 && DM_recv_flag == 0)
|
|
|
{
|
|
{
|
|
|
FMU_DM_info.target_num = 0;
|
|
FMU_DM_info.target_num = 0;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- else if(DM_T_info.byte7.flag.tail != 0) //尾
|
|
|
|
|
|
|
+ else if (DM_T_info.byte7.flag.tail != 0) // 尾
|
|
|
{
|
|
{
|
|
|
- if(DM_T_info.target_num != 1)
|
|
|
|
|
|
|
+ if (DM_T_info.target_num != 1)
|
|
|
{
|
|
{
|
|
|
- memcpy(&DM_T_info.buf[dm_i],&data[0],DM_T_info.target_num*4%7);
|
|
|
|
|
|
|
+ memcpy(&DM_T_info.buf[dm_i], &data[0], DM_T_info.target_num * 4 % 7);
|
|
|
}
|
|
}
|
|
|
else
|
|
else
|
|
|
{
|
|
{
|
|
|
- memcpy(&DM_T_info.buf[dm_i],&data[0],4);
|
|
|
|
|
|
|
+ memcpy(&DM_T_info.buf[dm_i], &data[0], 4);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- if(DM_T_info.crc == Get_Crc16(&DM_T_info.buf[0],DM_T_info.target_num * 4) && DM_recv_flag == 0)
|
|
|
|
|
|
|
+ if (DM_T_info.crc == Get_Crc16(&DM_T_info.buf[0], DM_T_info.target_num * 4) && DM_recv_flag == 0)
|
|
|
{
|
|
{
|
|
|
- memcpy(&FMU_DM_info.target_num,&DM_T_info.target_num,DM_T_info.target_num * 4 + 8);
|
|
|
|
|
- //memcpy(&FMU_DM_info.buf[0], &DM_T_info.buf[0], DM_T_info.target_num * 4);
|
|
|
|
|
|
|
+ memcpy(&FMU_DM_info.target_num, &DM_T_info.target_num, DM_T_info.target_num * 4 + 8);
|
|
|
|
|
+ // memcpy(&FMU_DM_info.buf[0], &DM_T_info.buf[0], DM_T_info.target_num * 4);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
else
|
|
else
|
|
|
{
|
|
{
|
|
|
- memcpy(&DM_T_info.buf[dm_i],&data[0],7);
|
|
|
|
|
|
|
+ memcpy(&DM_T_info.buf[dm_i], &data[0], 7);
|
|
|
dm_i += 7;
|
|
dm_i += 7;
|
|
|
}
|
|
}
|
|
|
- if(dm_i >= 255 -7)
|
|
|
|
|
|
|
+ if (dm_i >= 255 - 7)
|
|
|
{
|
|
{
|
|
|
dm_i = 0;
|
|
dm_i = 0;
|
|
|
}
|
|
}
|
|
@@ -274,49 +275,57 @@ void DM_Fobs_recieved_hookfuction(uint32_t cellCanID,uint8_t data[], uint8_t len
|
|
|
DM_f_info.distance_y = data[3] + data[4] * 256;
|
|
DM_f_info.distance_y = data[3] + data[4] * 256;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- //4D前避障雷达协议 点云
|
|
|
|
|
- if(cellCanID == 0XA01310)
|
|
|
|
|
|
|
+ // 4D前避障雷达协议 点云
|
|
|
|
|
+ if (cellCanID == 0XA01310)
|
|
|
{
|
|
{
|
|
|
DM_4dstatus.connect_status = COMP_NORMAL;
|
|
DM_4dstatus.connect_status = COMP_NORMAL;
|
|
|
DM_status.recv_time = HAL_GetTick();
|
|
DM_status.recv_time = HAL_GetTick();
|
|
|
Dev.Part_radarF.facid = FAC_DM_RF;
|
|
Dev.Part_radarF.facid = FAC_DM_RF;
|
|
|
|
|
|
|
|
DM_F4d.byte7.frame_flag = data[7];
|
|
DM_F4d.byte7.frame_flag = data[7];
|
|
|
-
|
|
|
|
|
- if(DM_F4d.byte7.flag.head!= 0 ) //头
|
|
|
|
|
|
|
+
|
|
|
|
|
+ if (DM_F4d.byte7.flag.head != 0) // 头
|
|
|
{
|
|
{
|
|
|
- memcpy(&DM_F4d.target_num,&data[0],7);
|
|
|
|
|
|
|
+ memcpy(&DM_F4d.target_num, &data[0], 7);
|
|
|
dm_4df_i = 0;
|
|
dm_4df_i = 0;
|
|
|
}
|
|
}
|
|
|
- else if(DM_F4d.byte7.flag.tail != 0) //尾
|
|
|
|
|
|
|
+ else if (DM_F4d.byte7.flag.tail != 0) // 尾
|
|
|
{
|
|
{
|
|
|
- if(DM_F4d.target_num != 1)
|
|
|
|
|
|
|
+ if (DM_F4d.target_num != 1)
|
|
|
{
|
|
{
|
|
|
- memcpy(&DM_F4d.RawData[dm_4df_i],&data[0],(DM_F4d.target_num * 5) % 7);
|
|
|
|
|
|
|
+ if ((DM_F4d.target_num * 5) % 7 != 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ memcpy(&DM_F4d.RawData[dm_4df_i], &data[0], (DM_F4d.target_num * 5) % 7);
|
|
|
|
|
+ dm_4df_i += (DM_F4d.target_num * 5) % 7;
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ memcpy(&DM_F4d.RawData[dm_4df_i], &data[0], 7);
|
|
|
|
|
+ dm_4df_i += 7;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
else
|
|
else
|
|
|
{
|
|
{
|
|
|
- memcpy(&DM_F4d.RawData[dm_4df_i],&data[0],5);
|
|
|
|
|
|
|
+ memcpy(&DM_F4d.RawData[dm_4df_i], &data[0], 5);
|
|
|
|
|
+ dm_4df_i += 5;
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
- if(DM_F4d.crc == Get_Crc16(&DM_F4d.RawData[0],DM_F4d.target_num * 5) && DM4d_recv_flag == 0)
|
|
|
|
|
|
|
+ if (DM_F4d.crc == Get_Crc16(&DM_F4d.RawData[0], DM_F4d.target_num * 5) && DM4d_recv_flag == 0)
|
|
|
{
|
|
{
|
|
|
FMU_4D_info.target_num = DM_F4d.target_num;
|
|
FMU_4D_info.target_num = DM_F4d.target_num;
|
|
|
- memcpy(&FMU_4D_info.buf,&DM_F4d.RawData,DM_F4d.target_num *5);
|
|
|
|
|
|
|
+ memcpy(&FMU_4D_info.buf, &DM_F4d.RawData, DM_F4d.target_num * 5);
|
|
|
|
|
+ DM4d_to_fmu_flag = 1;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
else
|
|
else
|
|
|
{
|
|
{
|
|
|
- memcpy(&DM_F4d.RawData[dm_4df_i],&data[0],7);
|
|
|
|
|
|
|
+ memcpy(&DM_F4d.RawData[dm_4df_i], &data[0], 7);
|
|
|
dm_4df_i += 7;
|
|
dm_4df_i += 7;
|
|
|
}
|
|
}
|
|
|
- if(dm_4df_i >= 254 * 5)
|
|
|
|
|
|
|
+ if (dm_4df_i >= 254 * 5)
|
|
|
{
|
|
{
|
|
|
dm_4df_i = 0;
|
|
dm_4df_i = 0;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
//4D前避障雷达协议 单点
|
|
//4D前避障雷达协议 单点
|
|
|
if(cellCanID == 0XA01302)
|
|
if(cellCanID == 0XA01302)
|
|
|
{
|
|
{
|