mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-04-14 10:07:39 +08:00
Fixed and improved error messages for MAVLink param read / write
This commit is contained in:
parent
14e60e9b4d
commit
89f36087da
@ -147,7 +147,9 @@ int mavlink_pm_send_param(param_t param)
|
||||
}
|
||||
|
||||
static const char *mavlink_parameter_file = "/eeprom/parameters";
|
||||
|
||||
/**
|
||||
* @return 0 on success, -1 if device open failed, -2 if writing parameters failed
|
||||
*/
|
||||
static int
|
||||
mavlink_pm_save_eeprom()
|
||||
{
|
||||
@ -156,7 +158,7 @@ mavlink_pm_save_eeprom()
|
||||
int fd = open(mavlink_parameter_file, O_WRONLY | O_CREAT | O_EXCL);
|
||||
|
||||
if (fd < 0) {
|
||||
warn(1, "opening '%s' failed", mavlink_parameter_file);
|
||||
warn("opening '%s' failed", mavlink_parameter_file);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -165,20 +167,23 @@ mavlink_pm_save_eeprom()
|
||||
|
||||
if (result < 0) {
|
||||
unlink(mavlink_parameter_file);
|
||||
warn(1, "error exporting to '%s'", mavlink_parameter_file);
|
||||
return -1;
|
||||
warn("error exporting to '%s'", mavlink_parameter_file);
|
||||
return -2;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return 0 on success, -1 if device open failed, -2 if writing parameters failed
|
||||
*/
|
||||
static int
|
||||
mavlink_pm_load_eeprom()
|
||||
{
|
||||
int fd = open(mavlink_parameter_file, O_RDONLY);
|
||||
|
||||
if (fd < 0) {
|
||||
warn(1, "open '%s' failed", mavlink_parameter_file);
|
||||
warn("open '%s' failed", mavlink_parameter_file);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -186,8 +191,8 @@ mavlink_pm_load_eeprom()
|
||||
close(fd);
|
||||
|
||||
if (result < 0) {
|
||||
warn(1, "error importing from '%s'", mavlink_parameter_file);
|
||||
return -1;
|
||||
warn("error importing from '%s'", mavlink_parameter_file);
|
||||
return -2;
|
||||
}
|
||||
|
||||
return 0;
|
||||
@ -269,35 +274,42 @@ void mavlink_pm_message_handler(const mavlink_channel_t chan, const mavlink_mess
|
||||
|
||||
if (((int)(cmd_mavlink.param1)) == 0) {
|
||||
|
||||
if (OK == mavlink_pm_load_eeprom()) {
|
||||
/* read all parameters from EEPROM to RAM */
|
||||
int read_ret = mavlink_pm_load_eeprom();
|
||||
if (read_ret == OK) {
|
||||
//printf("[mavlink pm] Loaded EEPROM params in RAM\n");
|
||||
mavlink_missionlib_send_gcs_string("[mavlink pm] CMD Loaded EEPROM params in RAM");
|
||||
mavlink_missionlib_send_gcs_string("[mavlink pm] OK loaded EEPROM params");
|
||||
result = MAV_RESULT_ACCEPTED;
|
||||
|
||||
} else {
|
||||
//fprintf(stderr, "[mavlink pm] ERROR loading EEPROM params in RAM\n");
|
||||
mavlink_missionlib_send_gcs_string("[mavlink pm] ERROR loading EEPROM params in RAM");
|
||||
if (read_ret < -1) {
|
||||
mavlink_missionlib_send_gcs_string("[mavlink pm] ERR loading params from EEPROM");
|
||||
} else {
|
||||
mavlink_missionlib_send_gcs_string("[mavlink pm] ERR loading params, no EEPROM found");
|
||||
}
|
||||
result = MAV_RESULT_FAILED;
|
||||
}
|
||||
|
||||
/* Write all parameters from RAM to EEPROM */
|
||||
|
||||
} else if (((int)(cmd_mavlink.param1)) == 1) {
|
||||
|
||||
if (OK == mavlink_pm_save_eeprom()) {
|
||||
//printf("[mavlink pm] RAM params written to EEPROM\n");
|
||||
mavlink_missionlib_send_gcs_string("[mavlink pm] RAM params written to EEPROM");
|
||||
/* write all parameters from RAM to EEPROM */
|
||||
int write_ret = mavlink_pm_save_eeprom();
|
||||
if (write_ret == OK) {
|
||||
mavlink_missionlib_send_gcs_string("[mavlink pm] OK params written to EEPROM");
|
||||
result = MAV_RESULT_ACCEPTED;
|
||||
|
||||
} else {
|
||||
//fprintf(stderr, "[mavlink pm] ERROR writing RAM params to EEPROM\n");
|
||||
mavlink_missionlib_send_gcs_string("[mavlink pm] ERROR writing RAM params to EEPROM");
|
||||
if (write_ret < -1) {
|
||||
mavlink_missionlib_send_gcs_string("[mavlink pm] ERR writing params to EEPROM");
|
||||
} else {
|
||||
mavlink_missionlib_send_gcs_string("[mavlink pm] ERR writing params, no EEPROM found");
|
||||
}
|
||||
result = MAV_RESULT_FAILED;
|
||||
}
|
||||
|
||||
} else {
|
||||
//fprintf(stderr, "[mavlink pm] refusing unsupported storage request\n");
|
||||
mavlink_missionlib_send_gcs_string("[mavlink pm] refusing unsupported storage request");
|
||||
mavlink_missionlib_send_gcs_string("[mavlink pm] refusing unsupported STOR request");
|
||||
result = MAV_RESULT_UNSUPPORTED;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user