gps file dump: re-implement with an uORB topic & write to the log file (#4987)

Drawbacks of the previous method: when writing to the SD card, there are
high delays in the write() call of several 100ms, every now and then. The
frequency and length of these events depend on:
- SD card
- used logger bandwidth
- bandwidth of gps data (RTCM)
Since the whole gps thread was blocked during this period, it lead to
gps timeouts and lost module.

What we do now is: publish an orb topic with queuing. This makes it async
and the logger takes care of buffering. This means it's best to:
- use high logger rate
- use large logger buffer
- reduce logger bandwith by disabling unused topics
This commit is contained in:
Beat Küng
2016-07-06 09:32:37 +02:00
committed by Lorenz Meier
parent 7e883809e3
commit 09ecc84cc7
5 changed files with 71 additions and 118 deletions
+1
View File
@@ -469,6 +469,7 @@ void Logger::add_default_topics()
add_topic("servorail_status", 200);
add_topic("mc_att_ctrl_status", 50);
add_topic("vehicle_status", 200);
add_topic("gps_dump"); //this will only be published if GPS_DUMP_COMM is set
}
int Logger::add_topics_from_file(const char *fname)