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 baro_glitching : 1; // 1 if baro altitude is not good
uint16_t armed : 1; // 0 = disarmed, 1 = armed uint16_t armed : 1; // 0 = disarmed, 1 = armed
uint16_t pre_arm_check : 1; // 0 = failing checks, 1 = passed 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 save_trim : 1; // 1 if gathering trim data
uint16_t esc_calibration : 1; // 1 if calibrating escs uint16_t esc_calibration : 1; // 1 if calibrating escs
uint16_t failsafe_radio : 1; // 1 if radio failsafe uint16_t failsafe_radio : 1; // 1 if radio failsafe

View File

@ -223,32 +223,34 @@ void ToshibaLED::update_colours(void)
break; break;
} }
}else{ }else{
// flashing green if disarmed with GPS 3d lock // fast flashing green if disarmed with GPS 3D lock and DGPS
// flashing blue if disarmed with no gps lock // 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) { switch(step) {
case 0: case 0:
if (AP_Notify::flags.gps_status >= AP_GPS::GPS_OK_FIX_3D_DGPS) { if (fast_green) {
_green_des = brightness; _green_des = brightness;
} }
break; break;
case 1: case 1:
if (AP_Notify::flags.gps_status >= AP_GPS::GPS_OK_FIX_3D_DGPS) { if (fast_green) {
_green_des = TOSHIBA_LED_OFF; _green_des = TOSHIBA_LED_OFF;
} }
break; break;
case 2: case 2:
if (AP_Notify::flags.gps_status >= AP_GPS::GPS_OK_FIX_3D_DGPS) { if (fast_green) {
_green_des = brightness; _green_des = brightness;
} }
break; break;
case 3: case 3:
if (AP_Notify::flags.gps_status >= AP_GPS::GPS_OK_FIX_3D_DGPS) { if (fast_green) {
_green_des = TOSHIBA_LED_OFF; _green_des = TOSHIBA_LED_OFF;
} }
break; break;
case 4: case 4:
_red_des = TOSHIBA_LED_OFF; _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 // flashing green if disarmed with GPS 3d lock
_blue_des = TOSHIBA_LED_OFF; _blue_des = TOSHIBA_LED_OFF;
_green_des = brightness; _green_des = brightness;
@ -259,24 +261,24 @@ void ToshibaLED::update_colours(void)
} }
break; break;
case 5: case 5:
if (AP_Notify::flags.gps_status >= AP_GPS::GPS_OK_FIX_3D_DGPS) { if (fast_green) {
_green_des = TOSHIBA_LED_OFF; _green_des = TOSHIBA_LED_OFF;
} }
break; break;
case 6: case 6:
if (AP_Notify::flags.gps_status >= AP_GPS::GPS_OK_FIX_3D_DGPS) { if (fast_green) {
_green_des = brightness; _green_des = brightness;
} }
break; break;
case 7: case 7:
if (AP_Notify::flags.gps_status >= AP_GPS::GPS_OK_FIX_3D_DGPS) { if (fast_green) {
_green_des = TOSHIBA_LED_OFF; _green_des = TOSHIBA_LED_OFF;
} }
break; break;
case 8: case 8:
if (AP_Notify::flags.gps_status >= AP_GPS::GPS_OK_FIX_3D_DGPS) { if (fast_green) {
_green_des = brightness; _green_des = brightness;
} }
break; break;