|
|
|
@ -595,34 +595,34 @@ void AP_Camera::send_camera_zr_status(mavlink_channel_t chan)
@@ -595,34 +595,34 @@ void AP_Camera::send_camera_zr_status(mavlink_channel_t chan)
|
|
|
|
|
uint8_t feedback_error_fixed = 0; |
|
|
|
|
uint8_t feedback_format = 0; |
|
|
|
|
// struct AP_Camera::Cam_ZR_Info status = {};
|
|
|
|
|
static uint8_t last_delt = 0; |
|
|
|
|
static uint8_t delt_cnt = 0; |
|
|
|
|
uint16_t num = camera_state.num[0]; |
|
|
|
|
uint16_t delt_pic_num = 0; |
|
|
|
|
if (camera_state.id < 0x10 || (camera_state.id >= 0x50 &&camera_state.id <= 0x5F)) |
|
|
|
|
{ |
|
|
|
|
for (size_t i = 1; i < 5; i++) |
|
|
|
|
{ |
|
|
|
|
delt_pic_num += abs(num - camera_state.num[i]); // 判断各个相机照片数是否相等
|
|
|
|
|
} |
|
|
|
|
if(delt_pic_num == 0){
|
|
|
|
|
delt_cnt = 0; |
|
|
|
|
last_delt = 0; |
|
|
|
|
} |
|
|
|
|
if(last_delt != delt_pic_num){ |
|
|
|
|
delt_cnt+=1; |
|
|
|
|
if(delt_cnt > 5){ // Mavlink一次可能会发两三个chan,取5确保是两次计算差值满足条件
|
|
|
|
|
// gcs().send_text(MAV_SEVERITY_INFO, "照片数差异(%d):%d,%d,%d,%d,%d",delt_pic_num,camera_state.num[0],camera_state.num[1],camera_state.num[2],camera_state.num[3],camera_state.num[4]);
|
|
|
|
|
if(delt_pic_num > 5){ |
|
|
|
|
gcs().send_text(MAV_SEVERITY_CRITICAL, "%d:照片数差异大,总差值:%d",camera_state.num[0],delt_pic_num); |
|
|
|
|
feedback_gimbal = 20; |
|
|
|
|
}else |
|
|
|
|
{ |
|
|
|
|
gcs().send_text(MAV_SEVERITY_INFO, "照片数差异(%d):%d",delt_pic_num,camera_state.num[0]); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
// static uint8_t last_delt = 0;
|
|
|
|
|
// static uint8_t delt_cnt = 0;
|
|
|
|
|
// uint16_t num = camera_state.num[0];
|
|
|
|
|
// uint16_t delt_pic_num = 0;
|
|
|
|
|
// if (camera_state.id < 0x10 || (camera_state.id >= 0x50 &&camera_state.id <= 0x5F))
|
|
|
|
|
// {
|
|
|
|
|
// for (size_t i = 1; i < 5; i++)
|
|
|
|
|
// {
|
|
|
|
|
// delt_pic_num += abs(num - camera_state.num[i]); // 判断各个相机照片数是否相等
|
|
|
|
|
// }
|
|
|
|
|
// if(delt_pic_num == 0){
|
|
|
|
|
// delt_cnt = 0;
|
|
|
|
|
// last_delt = 0;
|
|
|
|
|
// }
|
|
|
|
|
// if(last_delt != delt_pic_num){
|
|
|
|
|
// delt_cnt+=1;
|
|
|
|
|
// if(delt_cnt > 5){ // Mavlink一次可能会发两三个chan,取5确保是两次计算差值满足条件
|
|
|
|
|
// // gcs().send_text(MAV_SEVERITY_INFO, "照片数差异(%d):%d,%d,%d,%d,%d",delt_pic_num,camera_state.num[0],camera_state.num[1],camera_state.num[2],camera_state.num[3],camera_state.num[4]);
|
|
|
|
|
// if(delt_pic_num > 5){
|
|
|
|
|
// gcs().send_text(MAV_SEVERITY_CRITICAL, "%d:照片数差异大,总差值:%d",camera_state.num[0],delt_pic_num);
|
|
|
|
|
// feedback_gimbal = 20;
|
|
|
|
|
// }else
|
|
|
|
|
// {
|
|
|
|
|
// gcs().send_text(MAV_SEVERITY_INFO, "照片数差异(%d):%d",delt_pic_num,camera_state.num[0]);
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
mavlink_camera_zr_status_t msg; |
|
|
|
|
memset(&msg, 0, sizeof(msg)); |
|
|
|
|
msg.temperature = camera_state.temperature; |
|
|
|
|