From fc3ed61e670b2b0552acb24bb72b70c54c1cf66a Mon Sep 17 00:00:00 2001 From: Andrew Tridgell <tridge@samba.org> Date: Tue, 28 Jan 2014 10:35:18 +1100 Subject: [PATCH] DataFlash: added baro dataflash logging --- libraries/DataFlash/DataFlash.h | 15 ++++++++++++++- libraries/DataFlash/LogFile.cpp | 13 +++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/libraries/DataFlash/DataFlash.h b/libraries/DataFlash/DataFlash.h index f9a4761a1..5c8e82911 100644 --- a/libraries/DataFlash/DataFlash.h +++ b/libraries/DataFlash/DataFlash.h @@ -10,6 +10,7 @@ #include <AP_Param.h> #include <AP_GPS.h> #include <AP_InertialSensor.h> +#include <AP_Baro.h> #include <stdint.h> class DataFlash_Class @@ -49,6 +50,7 @@ public: void Log_Write_IMU(const AP_InertialSensor &ins); void Log_Write_RCIN(void); void Log_Write_RCOUT(void); + void Log_Write_Baro(AP_Baro &baro); void Log_Write_Message(const char *message); void Log_Write_Message_P(const prog_char_t *message); @@ -201,6 +203,14 @@ struct PACKED log_RCOUT { uint16_t chan8; }; +struct PACKED log_BARO { + LOG_PACKET_HEADER; + uint32_t timestamp; + float altitude; + float pressure; + int16_t temperature; +}; + #define LOG_COMMON_STRUCTURES \ { LOG_FORMAT_MSG, sizeof(log_Format), \ "FMT", "BBnNZ", "Type,Length,Name,Format" }, \ @@ -217,7 +227,9 @@ struct PACKED log_RCOUT { { LOG_RCIN_MSG, sizeof(log_RCIN), \ "RCIN", "Ihhhhhhhh", "TimeMS,Chan1,Chan2,Chan3,Chan4,Chan5,Chan6,Chan7,Chan8" }, \ { LOG_RCOUT_MSG, sizeof(log_RCOUT), \ - "RCOU", "Ihhhhhhhh", "TimeMS,Chan1,Chan2,Chan3,Chan4,Chan5,Chan6,Chan7,Chan8" } + "RCOU", "Ihhhhhhhh", "TimeMS,Chan1,Chan2,Chan3,Chan4,Chan5,Chan6,Chan7,Chan8" }, \ + { LOG_BARO_MSG, sizeof(log_BARO), \ + "BARO", "Iffc", "TimeMS,Alt,Press,Temp" } // message types for common messages #define LOG_FORMAT_MSG 128 @@ -228,6 +240,7 @@ struct PACKED log_RCOUT { #define LOG_RCIN_MSG 133 #define LOG_RCOUT_MSG 134 #define LOG_IMU2_MSG 135 +#define LOG_BARO_MSG 136 #include "DataFlash_Block.h" #include "DataFlash_File.h" diff --git a/libraries/DataFlash/LogFile.cpp b/libraries/DataFlash/LogFile.cpp index 86829a26c..055bfe4dc 100644 --- a/libraries/DataFlash/LogFile.cpp +++ b/libraries/DataFlash/LogFile.cpp @@ -5,6 +5,7 @@ #include <stdlib.h> #include <AP_Param.h> #include <AP_Math.h> +#include <AP_Baro.h> extern const AP_HAL::HAL& hal; @@ -707,6 +708,18 @@ void DataFlash_Class::Log_Write_RCOUT(void) WriteBlock(&pkt, sizeof(pkt)); } +// Write a BARO packet +void DataFlash_Class::Log_Write_Baro(AP_Baro &baro) +{ + struct log_BARO pkt = { + LOG_PACKET_HEADER_INIT(LOG_BARO_MSG), + timestamp : hal.scheduler->millis(), + altitude : baro.get_altitude(), + pressure : baro.get_pressure(), + temperature : (int16_t)(baro.get_temperature() * 100), + }; + WriteBlock(&pkt, sizeof(pkt)); +} // Write an raw accel/gyro data packet void DataFlash_Class::Log_Write_IMU(const AP_InertialSensor &ins) -- GitLab