|
|
@@ -18,7 +18,7 @@ UAVH30 uavh30_dist;
|
|
|
uavr_terrain uavr56_info = {.get_radar_sensi = 50};
|
|
|
uavr_terrain mimo_ter_info;
|
|
|
|
|
|
-_dev_par DM_4DRADARMAG;
|
|
|
+_dev_par Dev_parameter;
|
|
|
// muniu muniu_ter_info;
|
|
|
|
|
|
bool terrain_is_link = false;
|
|
|
@@ -102,7 +102,7 @@ uint8_t DM_recv_flag = 0;
|
|
|
uint8_t DM4d_recv_flag = 0;
|
|
|
Connect_check DM_status;
|
|
|
Connect_check DM_4dstatus;
|
|
|
-uavr_terrain DM_ter_info;
|
|
|
+uavr_terrain DM_ter_info,FourD_ter_info;
|
|
|
uint8_t DM4dt_recv_flag = 0;
|
|
|
uint8_t DM4dbt_recv_flag = 0;
|
|
|
void DM_terrain_recieved_hookfuction(uint32_t cellCanID, uint8_t data[], uint8_t len)
|
|
|
@@ -160,6 +160,14 @@ void DM_terrain_recieved_hookfuction(uint32_t cellCanID, uint8_t data[], uint8_t
|
|
|
|
|
|
DM_ter_info.height = data[3] + data[4] * 256;
|
|
|
}
|
|
|
+ else if (cellCanID == 0x901302) // 单点协议
|
|
|
+ {
|
|
|
+ FourD_ter_info.Link.connect_status = COMP_NORMAL;
|
|
|
+ FourD_ter_info.Link.recv_time = HAL_GetTick();
|
|
|
+ Dev.Radar.facid_T = FAC_DM_RT_4D;
|
|
|
+
|
|
|
+ FourD_ter_info.height = data[3] + data[4] * 256;
|
|
|
+ }
|
|
|
|
|
|
// 版本信息
|
|
|
if (cellCanID == 0x981301 && data[0] == 0x1)
|
|
|
@@ -215,6 +223,37 @@ void DM_terrain_recieved_hookfuction(uint32_t cellCanID, uint8_t data[], uint8_t
|
|
|
{
|
|
|
pmu_set_ack(_MSGID_SET, MSGID_SET_R_FUNC, 0, data[1] + data[2] * 256);
|
|
|
}
|
|
|
+
|
|
|
+ // 版本信息
|
|
|
+ if (cellCanID == 0x981302 && data[0] == 0x1)
|
|
|
+ {
|
|
|
+ uint32_t version_temp = 0;
|
|
|
+ DM_T_info.byte7.frame_flag = data[7];
|
|
|
+
|
|
|
+ if (DM_T_info.byte7.flag.head != 0) // 头
|
|
|
+ {
|
|
|
+ memcpy(&version_temp, &data[1], 4);
|
|
|
+ Int2String(version_temp, FourD_ter_info.sn, 9);
|
|
|
+
|
|
|
+ FourD_ter_info.version[3] = 'N';
|
|
|
+
|
|
|
+ regist_dev_info(&dev_ter, DEVICE_TERRA, false, FourD_ter_info.sn, 9, NULL, 0, NULL, 0, "dmter", 6);
|
|
|
+ }
|
|
|
+ else if (DM_T_info.byte7.flag.tail != 0) // 尾
|
|
|
+ {
|
|
|
+ memcpy(&version_temp, &data[1], 4);
|
|
|
+ Int2String(version_temp, &FourD_ter_info.version[4], 6);
|
|
|
+ FourD_ter_info.version[0] = 'D';
|
|
|
+ FourD_ter_info.version[1] = '4';
|
|
|
+ FourD_ter_info.version[2] = 'T';
|
|
|
+
|
|
|
+ regist_dev_info(&dev_ter, DEVICE_TERRA, false, NULL, 0, FourD_ter_info.version, 10, NULL, 0, "dmter", 6);
|
|
|
+
|
|
|
+ FourD_ter_info.get_radar_ver_flag = true;
|
|
|
+ pmu_send = PMU_SEND_VERSION; // 旧版APP
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
}
|
|
|
|
|
|
@@ -469,7 +508,6 @@ void DM_Fobs_recieved_hookfuction(uint32_t cellCanID, uint8_t data[], uint8_t le
|
|
|
{
|
|
|
memcpy(&version_temp, &data[1], 4);
|
|
|
Int2String(version_temp, DM_f_info.sn, 9);
|
|
|
- // 通过SN序号判断新旧boot
|
|
|
DM_f_info.version[3] = 'N';
|
|
|
regist_dev_info(&dev_obsf, DEVICE_OBSF, false, DM_f_info.sn, 9, NULL, 0, NULL, 0, "dmter", 6);
|
|
|
}
|
|
|
@@ -488,29 +526,29 @@ void DM_Fobs_recieved_hookfuction(uint32_t cellCanID, uint8_t data[], uint8_t le
|
|
|
else if (cellCanID == 0xA81302 && (data[0] == 0xD || data[0] == 0xC))
|
|
|
{
|
|
|
if (data[0] == 0xD)
|
|
|
- DM_4DRADARMAG.get_angel_4DF = true;
|
|
|
- DM_4DRADARMAG.angel_4DF = data[1] + data[2] * 256;
|
|
|
+ Dev_parameter.get_angel_4DF = true;
|
|
|
+ Dev_parameter.angel_4DF = data[1] + data[2] * 256;
|
|
|
DM4Dmsg_send_fmu = true;
|
|
|
}
|
|
|
else if (cellCanID == 0xA81302 && (data[0] == 0xF || data[0] == 0xE))
|
|
|
{
|
|
|
if (data[0] == 0xF)
|
|
|
- DM_4DRADARMAG.get_ground_filter_4DF = true;
|
|
|
- DM_4DRADARMAG.ground_filter_4DF = data[1] + data[2] * 256;
|
|
|
+ Dev_parameter.get_ground_filter_4DF = true;
|
|
|
+ Dev_parameter.ground_filter_4DF = data[1] + data[2] * 256;
|
|
|
DM4Dmsg_send_fmu = true;
|
|
|
}
|
|
|
else if (cellCanID == 0xA81302 && (data[0] == 0xA || data[0] == 0xB))
|
|
|
{
|
|
|
if (data[0] == 0xB)
|
|
|
- DM_4DRADARMAG.get_dotcloud_switch_4DF = true;
|
|
|
- DM_4DRADARMAG.dotcloud_switch_4DF = data[1] + data[2] * 256;
|
|
|
+ Dev_parameter.get_dotcloud_switch_4DF = true;
|
|
|
+ Dev_parameter.dotcloud_switch_4DF = data[1] + data[2] * 256;
|
|
|
DM4Dmsg_send_fmu = true;
|
|
|
}
|
|
|
else if (cellCanID == 0xA81302 && (data[0] == 0x8 || data[0] == 0x5))
|
|
|
{
|
|
|
if (data[0] == 0x8)
|
|
|
- DM_4DRADARMAG.get_DM4DF_Blind_spot_distance = true;
|
|
|
- DM_4DRADARMAG.DM4DF_Blind_spot_distance = data[1] + data[2] * 256;
|
|
|
+ Dev_parameter.get_DM4DF_Blind_spot_distance = true;
|
|
|
+ Dev_parameter.DM4DF_Blind_spot_distance = data[1] + data[2] * 256;
|
|
|
DM4Dmsg_send_fmu = true;
|
|
|
}
|
|
|
/*else if(cellCanID == 0xA81302 && (data[0] == 0x1))
|
|
|
@@ -673,29 +711,29 @@ void DM_Bobs_recieved_hookfuction(uint32_t cellCanID, uint8_t data[], uint8_t le
|
|
|
else if (cellCanID == 0xB81302 && (data[0] == 0xA || data[0] == 0xB))
|
|
|
{
|
|
|
if (data[0] == 0xB)
|
|
|
- DM_4DRADARMAG.get_dotcloud_switch_4DB = true;
|
|
|
- DM_4DRADARMAG.dotcloud_switch_4DB = data[1] + data[2] * 256;
|
|
|
+ Dev_parameter.get_dotcloud_switch_4DB = true;
|
|
|
+ Dev_parameter.dotcloud_switch_4DB = data[1] + data[2] * 256;
|
|
|
DM4Dmsg_send_fmu = true;
|
|
|
}
|
|
|
else if (cellCanID == 0xB81302 && (data[0] == 0xD || data[0] == 0xC))
|
|
|
{
|
|
|
if (data[0] == 0xD)
|
|
|
- DM_4DRADARMAG.get_angel_4DB = true;
|
|
|
- DM_4DRADARMAG.angel_4DB = data[1] + data[2] * 256;
|
|
|
+ Dev_parameter.get_angel_4DB = true;
|
|
|
+ Dev_parameter.angel_4DB = data[1] + data[2] * 256;
|
|
|
DM4Dmsg_send_fmu = true;
|
|
|
}
|
|
|
else if (cellCanID == 0xB81302 && (data[0] == 0xF || data[0] == 0xE))
|
|
|
{
|
|
|
if (data[0] == 0xF)
|
|
|
- DM_4DRADARMAG.get_ground_filter_4DB = true;
|
|
|
- DM_4DRADARMAG.ground_filter_4DB = data[1] + data[2] * 256;
|
|
|
+ Dev_parameter.get_ground_filter_4DB = true;
|
|
|
+ Dev_parameter.ground_filter_4DB = data[1] + data[2] * 256;
|
|
|
DM4Dmsg_send_fmu = true;
|
|
|
}
|
|
|
else if (cellCanID == 0xB81302 && (data[0] == 0x8 || data[0] == 0x5))
|
|
|
{
|
|
|
if (data[0] == 0x8)
|
|
|
- DM_4DRADARMAG.get_DM4DB_Blind_spot_distance = true;
|
|
|
- DM_4DRADARMAG.DM4DB_Blind_spot_distance = data[1] + data[2] * 256;
|
|
|
+ Dev_parameter.get_DM4DB_Blind_spot_distance = true;
|
|
|
+ Dev_parameter.DM4DB_Blind_spot_distance = data[1] + data[2] * 256;
|
|
|
DM4Dmsg_send_fmu = true;
|
|
|
}
|
|
|
}
|