navigator/mission.cpp: check result of dm_lock

and remove duplicated output, mavlink_log_critical already outputs to the
console
This commit is contained in:
Beat Küng 2017-05-18 12:04:13 +02:00 committed by Lorenz Meier
parent 3d3e6428c2
commit cb580c5268
1 changed files with 9 additions and 6 deletions

View File

@ -373,7 +373,7 @@ Mission::update_offboard_mission()
_offboard_mission.current_seq = 0; _offboard_mission.current_seq = 0;
_current_offboard_mission_index = 0; _current_offboard_mission_index = 0;
PX4_WARN("mission check failed"); PX4_ERR("mission check failed");
} }
set_current_offboard_mission_item(); set_current_offboard_mission_item();
@ -1307,7 +1307,11 @@ Mission::save_offboard_mission_state()
mission_s mission_state = {}; mission_s mission_state = {};
/* lock MISSION_STATE item */ /* lock MISSION_STATE item */
dm_lock(DM_KEY_MISSION_STATE); int dm_lock_ret = dm_lock(DM_KEY_MISSION_STATE);
if (dm_lock_ret != 0) {
PX4_ERR("lock failed");
}
/* read current state */ /* read current state */
int read_res = dm_read(DM_KEY_MISSION_STATE, 0, &mission_state, sizeof(mission_s)); int read_res = dm_read(DM_KEY_MISSION_STATE, 0, &mission_state, sizeof(mission_s));
@ -1320,7 +1324,6 @@ Mission::save_offboard_mission_state()
if (dm_write(DM_KEY_MISSION_STATE, 0, DM_PERSIST_POWER_ON_RESET, &mission_state, if (dm_write(DM_KEY_MISSION_STATE, 0, DM_PERSIST_POWER_ON_RESET, &mission_state,
sizeof(mission_s)) != sizeof(mission_s)) { sizeof(mission_s)) != sizeof(mission_s)) {
warnx("ERROR: can't save mission state");
mavlink_log_critical(_navigator->get_mavlink_log_pub(), "Can't save mission state."); mavlink_log_critical(_navigator->get_mavlink_log_pub(), "Can't save mission state.");
} }
} }
@ -1332,21 +1335,21 @@ Mission::save_offboard_mission_state()
mission_state.count = _offboard_mission.count; mission_state.count = _offboard_mission.count;
mission_state.current_seq = _current_offboard_mission_index; mission_state.current_seq = _current_offboard_mission_index;
warnx("ERROR: invalid mission state");
mavlink_log_critical(_navigator->get_mavlink_log_pub(), "Invalid mission state."); mavlink_log_critical(_navigator->get_mavlink_log_pub(), "Invalid mission state.");
/* write modified state only if changed */ /* write modified state only if changed */
if (dm_write(DM_KEY_MISSION_STATE, 0, DM_PERSIST_POWER_ON_RESET, &mission_state, if (dm_write(DM_KEY_MISSION_STATE, 0, DM_PERSIST_POWER_ON_RESET, &mission_state,
sizeof(mission_s)) != sizeof(mission_s)) { sizeof(mission_s)) != sizeof(mission_s)) {
warnx("ERROR: can't save mission state");
mavlink_log_critical(_navigator->get_mavlink_log_pub(), "Can't save mission state."); mavlink_log_critical(_navigator->get_mavlink_log_pub(), "Can't save mission state.");
} }
} }
/* unlock MISSION_STATE item */ /* unlock MISSION_STATE item */
if (dm_lock_ret == 0) {
dm_unlock(DM_KEY_MISSION_STATE); dm_unlock(DM_KEY_MISSION_STATE);
} }
}
void void
Mission::report_do_jump_mission_changed(int index, int do_jumps_remaining) Mission::report_do_jump_mission_changed(int index, int do_jumps_remaining)