|
|
@ -312,30 +312,59 @@ void Rover::one_second_loop(void) |
|
|
|
#if DUAL_ANT_HEADING |
|
|
|
#if DUAL_ANT_HEADING |
|
|
|
static uint8_t prt_cnt; |
|
|
|
static uint8_t prt_cnt; |
|
|
|
prt_cnt++; |
|
|
|
prt_cnt++; |
|
|
|
if(prt_cnt > 3 && gps.gps_heading_enable()){ |
|
|
|
if(prt_cnt > 5 && gps.gps_heading_enable()){ |
|
|
|
prt_cnt = 0; |
|
|
|
prt_cnt = 0; |
|
|
|
float heading = gps.gps_heading()*0.01f; |
|
|
|
float heading = gps.gps_heading()*0.01f; |
|
|
|
float gps_heading_rad = ToRad(heading); |
|
|
|
float gps_heading_rad = ToRad(heading); |
|
|
|
gcs().send_text(MAV_SEVERITY_INFO, "[Nova]:heading:%3.2f , heading_rad:%3.2f ", heading, gps_heading_rad); |
|
|
|
gcs().send_text(MAV_SEVERITY_INFO, "[GNSS]:heading:%3.2f , heading_rad:%3.2f ", heading, gps_heading_rad); |
|
|
|
} |
|
|
|
} |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
#if DUAL_ANT_HEADING |
|
|
|
#if DUAL_ANT_HEADING |
|
|
|
|
|
|
|
|
|
|
|
uint16_t rc6_in = RC_Channels::rc_channel(CH_6)->get_radio_in(); |
|
|
|
uint16_t rc14_in = RC_Channels::rc_channel(CH_14)->get_radio_in(); |
|
|
|
uint8_t ch_flag = rc6_in>1500?1:0; |
|
|
|
uint8_t ch_flag ; |
|
|
|
|
|
|
|
if(rc14_in < 1400){ |
|
|
|
|
|
|
|
ch_flag = 0; |
|
|
|
|
|
|
|
}else if(rc14_in < 1700){ |
|
|
|
|
|
|
|
ch_flag = 1; |
|
|
|
|
|
|
|
}else |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
ch_flag = 2; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static uint8_t last_type = 3; |
|
|
|
switch (ch_flag) { |
|
|
|
switch (ch_flag) { |
|
|
|
|
|
|
|
case 2: { |
|
|
|
|
|
|
|
if(last_type != 2){ |
|
|
|
|
|
|
|
gps.set_gps_heading_enable(1); |
|
|
|
|
|
|
|
compass.set_use_for_yaw(0,0); |
|
|
|
|
|
|
|
type_yaw = 2; |
|
|
|
|
|
|
|
compass.set_alway_healthy(true); |
|
|
|
|
|
|
|
gcs().send_text(MAV_SEVERITY_INFO, "[INFO]:定向模式:抗磁(%d)",type_yaw); |
|
|
|
|
|
|
|
last_type = type_yaw; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
case 1: { |
|
|
|
case 1: { |
|
|
|
gps.set_gps_heading_enable(1); |
|
|
|
if(last_type != 1){ |
|
|
|
compass.set_use_for_yaw(0,0); |
|
|
|
gps.set_gps_heading_enable(0); |
|
|
|
gcs().send_text(MAV_SEVERITY_INFO, "[INFO]:Yaw Switch to GPS"); |
|
|
|
compass.set_use_for_yaw(0,1); |
|
|
|
|
|
|
|
type_yaw = 1; |
|
|
|
|
|
|
|
compass.set_alway_healthy(false); |
|
|
|
|
|
|
|
gcs().send_text(MAV_SEVERITY_INFO, "[INFO]:定向模式:普通(%d)",type_yaw); |
|
|
|
|
|
|
|
last_type = type_yaw; |
|
|
|
|
|
|
|
} |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
case 0: { |
|
|
|
case 0: { |
|
|
|
gps.set_gps_heading_enable(0); |
|
|
|
if(last_type != 0){ |
|
|
|
compass.set_use_for_yaw(0,1); |
|
|
|
// gcs().send_text(MAV_SEVERITY_INFO, "[INFO]:Yaw Switch auto");
|
|
|
|
gcs().send_text(MAV_SEVERITY_INFO, "[INFO]:Yaw Switch to Compass"); |
|
|
|
type_yaw = 0; |
|
|
|
|
|
|
|
last_type = type_yaw; |
|
|
|
|
|
|
|
} |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|