aboutsummaryrefslogtreecommitdiff
path: root/src/modules/sdlog2/sdlog2.c
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2014-05-13 10:53:18 +0200
committerLorenz Meier <lm@inf.ethz.ch>2014-05-13 10:53:18 +0200
commitc04064fd6a40bc8ac9f396d4d0ba565b26eda6db (patch)
treeb003213cc409d1a227d1497b932bfcef1d15ef93 /src/modules/sdlog2/sdlog2.c
parent15e65fda267b7e3b30305bb0aa1f00b7ee9314cb (diff)
downloadpx4-firmware-c04064fd6a40bc8ac9f396d4d0ba565b26eda6db.tar.gz
px4-firmware-c04064fd6a40bc8ac9f396d4d0ba565b26eda6db.tar.bz2
px4-firmware-c04064fd6a40bc8ac9f396d4d0ba565b26eda6db.zip
sdlog2: Log minimalistic GPS SNR for first 16 satellites
Diffstat (limited to 'src/modules/sdlog2/sdlog2.c')
-rw-r--r--src/modules/sdlog2/sdlog2.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/modules/sdlog2/sdlog2.c b/src/modules/sdlog2/sdlog2.c
index b74d4183b..d680833f8 100644
--- a/src/modules/sdlog2/sdlog2.c
+++ b/src/modules/sdlog2/sdlog2.c
@@ -834,6 +834,8 @@ int sdlog2_thread_main(int argc, char *argv[])
struct log_ESTM_s log_ESTM;
struct log_PWR_s log_PWR;
struct log_VICN_s log_VICN;
+ struct log_GSN0_s log_GSN0;
+ struct log_GSN1_s log_GSN1;
} body;
} log_msg = {
LOG_PACKET_HEADER_INIT(0)
@@ -982,6 +984,18 @@ int sdlog2_thread_main(int argc, char *argv[])
log_msg.body.log_GPS.vel_d = buf_gps_pos.vel_d_m_s;
log_msg.body.log_GPS.cog = buf_gps_pos.cog_rad;
LOGBUFFER_WRITE_AND_COUNT(GPS);
+
+ /* log the SNR of each satellite for a detailed view of signal quality */
+ log_msg.msg_type = LOG_GSN0_MSG;
+ /* pick the smaller number so we do not overflow any of the arrays */
+ unsigned gps_msg_max_snr = sizeof(buf_gps_pos.satellite_snr) / sizeof(buf_gps_pos.satellite_snr[0]);
+ unsigned log_max_snr = sizeof(log_msg.body.log_GSN0.satellite_snr) / sizeof(log_msg.body.log_GSN0.satellite_snr[0]);
+ unsigned sat_max_snr = (gps_msg_max_snr < log_max_snr) ? gps_msg_max_snr : log_max_snr;
+
+ for (unsigned i = 0; i < sat_max_snr; i++) {
+ log_msg.body.log_GSN0.satellite_snr[i] = buf_gps_pos.satellite_snr[i];
+ }
+ LOGBUFFER_WRITE_AND_COUNT(GSN0);
}
/* --- SENSOR COMBINED --- */