diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/commander/commander.c | 4 | ||||
-rw-r--r-- | apps/mavlink/mavlink_parameters.c | 4 | ||||
-rw-r--r-- | apps/uORB/topics/vehicle_status.h | 8 |
3 files changed, 15 insertions, 1 deletions
diff --git a/apps/commander/commander.c b/apps/commander/commander.c index f7e93db6c..8323932c7 100644 --- a/apps/commander/commander.c +++ b/apps/commander/commander.c @@ -1253,6 +1253,8 @@ int commander_thread_main(int argc, char *argv[]) current_status.flag_external_manual_override_ok = true; /* flag position info as bad, do not allow auto mode */ current_status.flag_vector_flight_mode_ok = false; + /* set battery warning flag */ + current_status.battery_warning = VEHICLE_BATTERY_WARNING_NONE; /* advertise to ORB */ stat_pub = orb_advertise(ORB_ID(vehicle_status), ¤t_status); @@ -1510,6 +1512,7 @@ int commander_thread_main(int argc, char *argv[]) if (low_voltage_counter > LOW_VOLTAGE_BATTERY_COUNTER_LIMIT) { low_battery_voltage_actions_done = true; mavlink_log_critical(mavlink_fd, "[cmd] WARNING! LOW BATTERY!"); + current_status.battery_warning = VEHICLE_BATTERY_WARNING_WARNING; } low_voltage_counter++; @@ -1520,6 +1523,7 @@ int commander_thread_main(int argc, char *argv[]) if (critical_voltage_counter > CRITICAL_VOLTAGE_BATTERY_COUNTER_LIMIT) { critical_battery_voltage_actions_done = true; mavlink_log_critical(mavlink_fd, "[cmd] EMERGENCY! CRITICAL BATTERY!"); + current_status.battery_warning = VEHICLE_BATTERY_WARNING_ALERT; state_machine_emergency(stat_pub, ¤t_status, mavlink_fd); } diff --git a/apps/mavlink/mavlink_parameters.c b/apps/mavlink/mavlink_parameters.c index 9d9b9914a..f7638550d 100644 --- a/apps/mavlink/mavlink_parameters.c +++ b/apps/mavlink/mavlink_parameters.c @@ -143,7 +143,9 @@ int mavlink_pm_send_param(param_t param) */ int ret; - if ((ret = param_get(param, &val_buf)) != OK) return ret; + if ((ret = param_get(param, &val_buf)) != OK) { + return ret; + } mavlink_msg_param_value_pack_chan(mavlink_system.sysid, mavlink_system.compid, diff --git a/apps/uORB/topics/vehicle_status.h b/apps/uORB/topics/vehicle_status.h index ccd00c52f..06b4c5ca5 100644 --- a/apps/uORB/topics/vehicle_status.h +++ b/apps/uORB/topics/vehicle_status.h @@ -131,6 +131,13 @@ enum VEHICLE_TYPE { VEHICLE_TYPE_ENUM_END=18, /* | */ }; +enum VEHICLE_BATTERY_WARNING { + VEHICLE_BATTERY_WARNING_NONE = 0, /**< no battery low voltage warning active */ + VEHICLE_BATTERY_WARNING_WARNING, /**< warning of low voltage 1. stage */ + VEHICLE_BATTERY_WARNING_ALERT /**< aleting of low voltage 2. stage */ +}; + + /** * state machine / state of vehicle. * @@ -188,6 +195,7 @@ struct vehicle_status_s float voltage_battery; float current_battery; float battery_remaining; + enum VEHICLE_BATTERY_WARNING battery_warning; /**< current battery warning mode, as defined by VEHICLE_BATTERY_WARNING enum */ uint16_t drop_rate_comm; uint16_t errors_comm; uint16_t errors_count1; |