Skip to content
Snippets Groups Projects
Commit 44c5fdff authored by Randy Mackay's avatar Randy Mackay
Browse files

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).
parent 59350821
No related branches found
No related tags found
No related merge requests found
...@@ -38,6 +38,7 @@ public: ...@@ -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
......
...@@ -223,32 +223,34 @@ void ToshibaLED::update_colours(void) ...@@ -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) ...@@ -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;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment