X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fkernel%2Fao_log.h;h=103cb70b46597988f21eb07aedb17bc327b3155d;hb=eb77758b7dcdd0bcef12cd1d56cf4d447cbe5c8c;hp=0ab574483993dd50a537d9b95e45c55b00fc77bc;hpb=0800970a4c9c6ed38bb76bfed6374093ca16b459;p=fw%2Faltos diff --git a/src/kernel/ao_log.h b/src/kernel/ao_log.h index 0ab57448..103cb70b 100644 --- a/src/kernel/ao_log.h +++ b/src/kernel/ao_log.h @@ -57,6 +57,10 @@ extern enum ao_flight_state ao_log_state; #define AO_LOG_FORMAT_TELEMEGA_3 15 /* 32 byte typed telemega records with 32 bit gyro cal and mpu9250 */ #define AO_LOG_FORMAT_EASYMEGA_2 16 /* 32 byte typed telemega records with 32 bit gyro cal, mpu9250 rotated 90° and adxl375 */ #define AO_LOG_FORMAT_TELESTATIC 17 /* 32 byte typed telestatic records */ +#define AO_LOG_FORMAT_MICROPEAK2 18 /* 2-byte baro values with header */ +#define AO_LOG_FORMAT_TELEMEGA_4 19 /* 32 byte typed telemega records with 32 bit gyro cal and Bmx160 */ +#define AO_LOG_FORMAT_EASYMOTOR 20 /* ? byte typed easymotor records with pressure sensor and adxl375 */ +#define AO_LOG_FORMAT_TELEMEGA_5 21 /* 32 byte typed telemega records with 32 bit gyro cal, mpu6000 and mmc5983 */ #define AO_LOG_FORMAT_NONE 127 /* No log at all */ /* Return the flight number from the given log slot, 0 if none, -slot on failure */ @@ -94,10 +98,6 @@ ao_log(void); uint8_t ao_log_scan(void); -/* Return the position of the start of the given log slot */ -uint32_t -ao_log_pos(uint8_t slot); - /* Start logging to eeprom */ void ao_log_start(void); @@ -503,7 +503,38 @@ struct ao_log_gps { } u; }; -#if AO_LOG_FORMAT == AO_LOG_FOMAT_TELEMEGA_OLD || AO_LOG_FORMAT == AO_LOG_FORMAT_TELEMEGA || AO_LOG_FORMAT == AO_LOG_FORMAT_TELEMEGA_3 || AO_LOG_FORMAT == AO_LOG_FORMAT_EASYMEGA_2 +struct ao_log_motor { + char type; /* 0 */ + uint8_t csum; /* 1 */ + uint16_t tick; /* 2 */ + union { /* 4 */ + /* AO_LOG_FLIGHT */ + struct { + uint16_t flight; /* 4 */ + int16_t ground_accel; /* 6 */ + int16_t ground_accel_along; /* 8 */ + int16_t ground_accel_across; /* 10 */ + int16_t ground_accel_through; /* 12 */ + int16_t ground_motor_pressure; /* 14 */ + } flight; /* 16 */ + /* AO_LOG_STATE */ + struct { + uint16_t state; /* 4 */ + uint16_t reason; /* 6 */ + } state; + /* AO_LOG_SENSOR */ + struct { + uint16_t pressure; /* 4 */ + uint16_t v_batt; /* 6 */ + int16_t accel; /* 8 */ + int16_t accel_across; /* 10 */ + int16_t accel_along; /* 12 */ + int16_t accel_through; /* 14 */ + } sensor; /* 16 */ + } u; +}; + +#if AO_LOG_FORMAT == AO_LOG_FOMAT_TELEMEGA_OLD || AO_LOG_FORMAT == AO_LOG_FORMAT_TELEMEGA || AO_LOG_FORMAT == AO_LOG_FORMAT_TELEMEGA_3 || AO_LOG_FORMAT == AO_LOG_FORMAT_EASYMEGA_2 || AO_LOG_FORMAT == AO_LOG_FORMAT_TELEMEGA_4 || AO_LOG_FORMAT == AO_LOG_FORMAT_TELEMEGA_5 typedef struct ao_log_mega ao_log_type; #endif @@ -519,6 +550,10 @@ typedef struct ao_log_firetwo ao_log_type; typedef struct ao_log_mini ao_log_type; #endif +#if AO_LOG_FORMAT == AO_LOG_FORMAT_EASYMOTOR +typedef struct ao_log_motor ao_log_type; +#endif + #if AO_LOG_FORMAT == AO_LOG_FORMAT_TELEGPS typedef struct ao_log_gps ao_log_type; #endif @@ -539,6 +574,10 @@ typedef struct ao_log_record ao_log_type; #define AO_LOG_UNCOMMON 1 #endif +#if AO_LOG_FORMAT == AO_LOG_FORMAT_MICROPEAK2 +#define AO_LOG_UNCOMMON 1 +#endif + #ifndef AO_LOG_UNCOMMON extern ao_log_type ao_log_data;