Notify: add pre_arm_gps_check flag

RGB LED will remain flashing blue when vehicle is disarmed and this
check has failed (i.e. false).
This commit is contained in:
Randy Mackay 2014-12-24 22:23:00 +09:00
parent 59350821a3
commit 44c5fdffdf
2 changed files with 14 additions and 11 deletions

View File

@ -38,6 +38,7 @@ public:
uint16_t baro_glitching : 1; // 1 if baro altitude is not good
uint16_t armed : 1; // 0 = disarmed, 1 = armed
uint16_t pre_arm_check : 1; // 0 = failing checks, 1 = passed
uint16_t pre_arm_gps_check : 1; // 0 = failing pre-arm GPS checks, 1 = passed
uint16_t save_trim : 1; // 1 if gathering trim data
uint16_t esc_calibration : 1; // 1 if calibrating escs
uint16_t failsafe_radio : 1; // 1 if radio failsafe

View File

@ -223,32 +223,34 @@ void ToshibaLED::update_colours(void)
break;
}
}else{
// flashing green if disarmed with GPS 3d lock
// flashing blue if disarmed with no gps lock
// fast flashing green if disarmed with GPS 3D lock and DGPS
// slow flashing green if disarmed with GPS 3d lock (and no DGPS)
// flashing blue if disarmed with no gps lock or gps pre_arm checks have failed
bool fast_green = AP_Notify::flags.gps_status >= AP_GPS::GPS_OK_FIX_3D_DGPS && AP_Notify::flags.pre_arm_gps_check;
switch(step) {
case 0:
if (AP_Notify::flags.gps_status >= AP_GPS::GPS_OK_FIX_3D_DGPS) {
if (fast_green) {
_green_des = brightness;
}
break;
case 1:
if (AP_Notify::flags.gps_status >= AP_GPS::GPS_OK_FIX_3D_DGPS) {
if (fast_green) {
_green_des = TOSHIBA_LED_OFF;
}
break;
case 2:
if (AP_Notify::flags.gps_status >= AP_GPS::GPS_OK_FIX_3D_DGPS) {
if (fast_green) {
_green_des = brightness;
}
break;
case 3:
if (AP_Notify::flags.gps_status >= AP_GPS::GPS_OK_FIX_3D_DGPS) {
if (fast_green) {
_green_des = TOSHIBA_LED_OFF;
}
break;
case 4:
_red_des = TOSHIBA_LED_OFF;
if (AP_Notify::flags.gps_status >= AP_GPS::GPS_OK_FIX_3D) {
if (AP_Notify::flags.gps_status >= AP_GPS::GPS_OK_FIX_3D && AP_Notify::flags.pre_arm_gps_check) {
// flashing green if disarmed with GPS 3d lock
_blue_des = TOSHIBA_LED_OFF;
_green_des = brightness;
@ -259,24 +261,24 @@ void ToshibaLED::update_colours(void)
}
break;
case 5:
if (AP_Notify::flags.gps_status >= AP_GPS::GPS_OK_FIX_3D_DGPS) {
if (fast_green) {
_green_des = TOSHIBA_LED_OFF;
}
break;
case 6:
if (AP_Notify::flags.gps_status >= AP_GPS::GPS_OK_FIX_3D_DGPS) {
if (fast_green) {
_green_des = brightness;
}
break;
case 7:
if (AP_Notify::flags.gps_status >= AP_GPS::GPS_OK_FIX_3D_DGPS) {
if (fast_green) {
_green_des = TOSHIBA_LED_OFF;
}
break;
case 8:
if (AP_Notify::flags.gps_status >= AP_GPS::GPS_OK_FIX_3D_DGPS) {
if (fast_green) {
_green_des = brightness;
}
break;