#pragma once #include #define LOG_IDS_FROM_BATTMONITOR \ LOG_BAT_MSG, \ LOG_BCL_MSG // @LoggerMessage: BAT // @Description: Gathered battery data // @Field: TimeUS: Time since system startup // @Field: Instance: battery instance number // @Field: Volt: measured voltage // @Field: VoltR: estimated resting voltage // @Field: Curr: measured current // @Field: CurrTot: consumed Ah, current * time // @Field: EnrgTot: consumed Wh, energy this battery has expended // @Field: Temp: measured temperature // @Field: Res: estimated battery resistance // @Field: RemPct: remaining percentage struct PACKED log_BAT { LOG_PACKET_HEADER; uint64_t time_us; uint8_t instance; float voltage; float voltage_resting; float current_amps; float current_total; float consumed_wh; int16_t temperature; // degrees C * 100 float resistance; uint8_t rem_percent; }; // @LoggerMessage: BCL // @Description: Battery cell voltage information // @Field: TimeUS: Time since system startup // @Field: Instance: battery instance number // @Field: Volt: battery voltage // @Field: V1: first cell voltage // @Field: V2: second cell voltage // @Field: V3: third cell voltage // @Field: V4: fourth cell voltage // @Field: V5: fifth cell voltage // @Field: V6: sixth cell voltage // @Field: V7: seventh cell voltage // @Field: V8: eighth cell voltage // @Field: V9: ninth cell voltage // @Field: V10: tenth cell voltage // @Field: V11: eleventh cell voltage // @Field: V12: twelfth cell voltage struct PACKED log_BCL { LOG_PACKET_HEADER; uint64_t time_us; uint8_t instance; float voltage; uint16_t cell_voltages[12]; // the format does not support more than 12 cells, the remaining cells are reported in the BCL2 message }; #define LOG_STRUCTURE_FROM_BATTMONITOR \ { LOG_BAT_MSG, sizeof(log_BAT), \ "BAT", "QBfffffcfB", "TimeUS,Instance,Volt,VoltR,Curr,CurrTot,EnrgTot,Temp,Res,RemPct", "s#vvAaXOw%", "F-000C0?00" }, \ { LOG_BCL_MSG, sizeof(log_BCL), \ "BCL", "QBfHHHHHHHHHHHH", "TimeUS,Instance,Volt,V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,V11,V12", "s#vvvvvvvvvvvvv", "F-0CCCCCCCCCCCC" },