gnss(septentrio): fix incorrect heading offset configuration

Heading offset was configured as radians but should be configured as
degrees on Septentrio receivers. The parameter was already in degrees
but the configuration logic was changing it into radians. Also allow the
entire allowed range of heading offset values for Septentrio receivers.
This commit is contained in:
Thomas Frans
2024-07-03 11:21:34 -04:00
committed by Daniel Agar
parent 49dc896d20
commit e27b252433
2 changed files with 4 additions and 4 deletions
+1 -1
View File
@@ -71,7 +71,7 @@ parameters:
type: float type: float
decimal: 3 decimal: 3
default: 0 default: 0
min: 0 min: -360
max: 360 max: 360
unit: deg unit: deg
reboot_required: true reboot_required: true
+3 -3
View File
@@ -153,8 +153,6 @@ SeptentrioDriver::SeptentrioDriver(const char *device_path, Instance instance, u
// Enforce null termination. // Enforce null termination.
_port[sizeof(_port) - 1] = '\0'; _port[sizeof(_port) - 1] = '\0';
reset_gps_state_message();
int32_t enable_sat_info {0}; int32_t enable_sat_info {0};
get_parameter("SEP_SAT_INFO", &enable_sat_info); get_parameter("SEP_SAT_INFO", &enable_sat_info);
@@ -211,6 +209,8 @@ SeptentrioDriver::SeptentrioDriver(const char *device_path, Instance instance, u
} }
set_device_type(DRV_GPS_DEVTYPE_SBF); set_device_type(DRV_GPS_DEVTYPE_SBF);
reset_gps_state_message();
} }
SeptentrioDriver::~SeptentrioDriver() SeptentrioDriver::~SeptentrioDriver()
@@ -948,7 +948,7 @@ SeptentrioDriver::ConfigureResult SeptentrioDriver::configure()
} }
// Specify the offsets that the receiver applies to the computed attitude angles. // Specify the offsets that the receiver applies to the computed attitude angles.
snprintf(msg, sizeof(msg), k_command_set_attitude_offset, (double)(_heading_offset * 180 / M_PI_F), (double)_pitch_offset); snprintf(msg, sizeof(msg), k_command_set_attitude_offset, static_cast<double>(_heading_offset), static_cast<double>(_pitch_offset));
if (!send_message_and_wait_for_ack(msg, k_receiver_ack_timeout_fast)) { if (!send_message_and_wait_for_ack(msg, k_receiver_ack_timeout_fast)) {
return ConfigureResult::FailedCompletely; return ConfigureResult::FailedCompletely;