7 #define LOG_PACKET_HEADER uint8_t head1, head2, msgid; 8 #define LOG_PACKET_HEADER_INIT(id) head1 : HEAD_BYTE1, head2 : HEAD_BYTE2, msgid : id 9 #define LOG_PACKET_HEADER_LEN 3 // bytes required for LOG_PACKET_HEADER 13 #define HEAD_BYTE1 0xA3 // Decimal 163 14 #define HEAD_BYTE2 0x95 // Decimal 149 88 {
'D',
"deglatitude" },
92 {
'h',
"degheading" },
103 {
'S',
"satellites" },
107 {
'U',
"deglongitude" },
226 static_assert(
sizeof(
log_ISBH) < 256,
"log_ISBH is over-size");
237 static_assert(
sizeof(
log_ISBD) < 256,
"log_ISBD is over-size");
349 float q1, q2, q3,
q4;
691 uint16_t cell_voltages[10];
1071 #define ACC_LABELS "TimeUS,SampleUS,AccX,AccY,AccZ" 1072 #define ACC_FMT "QQfff" 1073 #define ACC_UNITS "ssnnn" 1074 #define ACC_MULTS "FF000" 1077 #define BARO_LABELS "TimeUS,Alt,Press,Temp,CRt,SMS,Offset,GndTemp" 1078 #define BARO_FMT "QffcfIff" 1079 #define BARO_UNITS "smPOnsmO" 1080 #define BARO_MULTS "F00B0C?0" 1082 #define ESC_LABELS "TimeUS,RPM,Volt,Curr,Temp,CTot" 1083 #define ESC_FMT "QeCCcH" 1084 #define ESC_UNITS "sqvAO-" 1085 #define ESC_MULTS "FBBBB-" 1087 #define GPA_LABELS "TimeUS,VDop,HAcc,VAcc,SAcc,VV,SMS,Delta" 1088 #define GPA_FMT "QCCCCBIH" 1089 #define GPA_UNITS "smmmn-ss" 1090 #define GPA_MULTS "FBBBB-CF" 1093 #define GPS_LABELS "TimeUS,Status,GMS,GWk,NSats,HDop,Lat,Lng,Alt,Spd,GCrs,VZ,U" 1094 #define GPS_FMT "QBIHBcLLefffB" 1095 #define GPS_UNITS "s---SmDUmnhn-" 1096 #define GPS_MULTS "F---0BGGBBB0-" 1098 #define GYR_LABELS "TimeUS,SampleUS,GyrX,GyrY,GyrZ" 1099 #define GYR_FMT "QQfff" 1100 #define GYR_UNITS "ssEEE" 1101 #define GYR_MULTS "FF000" 1103 #define IMT_LABELS "TimeUS,DelT,DelvT,DelaT,DelAX,DelAY,DelAZ,DelVX,DelVY,DelVZ" 1104 #define IMT_FMT "Qfffffffff" 1105 #define IMT_UNITS "ssssrrrnnn" 1106 #define IMT_MULTS "FF00000000" 1108 #define ISBH_LABELS "TimeUS,N,type,instance,mul,smp_cnt,SampleUS,smp_rate" 1109 #define ISBH_FMT "QHBBHHQf" 1110 #define ISBH_UNITS "s-----sz" 1111 #define ISBH_MULTS "F-----F-" 1113 #define ISBD_LABELS "TimeUS,N,seqno,x,y,z" 1114 #define ISBD_FMT "QHHaaa" 1115 #define ISBD_UNITS "s--ooo" 1116 #define ISBD_MULTS "F--???" 1118 #define IMU_LABELS "TimeUS,GyrX,GyrY,GyrZ,AccX,AccY,AccZ,EG,EA,T,GH,AH,GHz,AHz" 1119 #define IMU_FMT "QffffffIIfBBHH" 1120 #define IMU_UNITS "sEEEooo--O--zz" 1121 #define IMU_MULTS "F000000-----00" 1123 #define MAG_LABELS "TimeUS,MagX,MagY,MagZ,OfsX,OfsY,OfsZ,MOfsX,MOfsY,MOfsZ,Health,S" 1124 #define MAG_FMT "QhhhhhhhhhBI" 1125 #define MAG_UNITS "sGGGGGGGGG-s" 1126 #define MAG_MULTS "FCCCCCCCCC-F" 1128 #define PID_LABELS "TimeUS,Des,P,I,D,FF,AFF" 1129 #define PID_FMT "Qffffff" 1130 #define PID_UNITS "s------" 1131 #define PID_MULTS "F------" 1133 #define QUAT_LABELS "TimeUS,Q1,Q2,Q3,Q4" 1134 #define QUAT_FMT "Qffff" 1135 #define QUAT_UNITS "s????" 1136 #define QUAT_MULTS "F????" 1138 #define CURR_LABELS "TimeUS,Volt,VoltR,Curr,CurrTot,EnrgTot,Temp,Res" 1139 #define CURR_FMT "Qfffffcf" 1140 #define CURR_UNITS "svvA?JOw" 1141 #define CURR_MULTS "F000?/?0" 1143 #define CURR_CELL_LABELS "TimeUS,Volt,V1,V2,V3,V4,V5,V6,V7,V8,V9,V10" 1144 #define CURR_CELL_FMT "QfHHHHHHHHHH" 1145 #define CURR_CELL_UNITS "svvvvvvvvvvv" 1146 #define CURR_CELL_MULTS "F00000000000" 1148 #define ARSP_LABELS "TimeUS,Airspeed,DiffPress,Temp,RawPress,Offset,U,Health,Primary" 1149 #define ARSP_FMT "QffcffBBB" 1150 #define ARSP_UNITS "snPOPP---" 1151 #define ARSP_MULTS "F00B00---" 1178 #define LOG_BASE_STRUCTURES \ 1179 { LOG_FORMAT_MSG, sizeof(log_Format), \ 1180 "FMT", "BBnNZ", "Type,Length,Name,Format,Columns", "-b---", "-----" }, \ 1181 { LOG_UNIT_MSG, sizeof(log_Unit), \ 1182 "UNIT", "QbZ", "TimeUS,Id,Label", "s--","F--" }, \ 1183 { LOG_FORMAT_UNITS_MSG, sizeof(log_Format_Units), \ 1184 "FMTU", "QBNN", "TimeUS,FmtType,UnitIds,MultIds","s---", "F---" }, \ 1185 { LOG_MULT_MSG, sizeof(log_Format_Multiplier), \ 1186 "MULT", "Qbd", "TimeUS,Id,Mult", "s--","F--" }, \ 1187 { LOG_PARAMETER_MSG, sizeof(log_Parameter), \ 1188 "PARM", "QNf", "TimeUS,Name,Value", "s--", "F--" }, \ 1189 { LOG_GPS_MSG, sizeof(log_GPS), \ 1190 "GPS", GPS_FMT, GPS_LABELS, GPS_UNITS, GPS_MULTS }, \ 1191 { LOG_GPS2_MSG, sizeof(log_GPS), \ 1192 "GPS2", GPS_FMT, GPS_LABELS, GPS_UNITS, GPS_MULTS }, \ 1193 { LOG_GPSB_MSG, sizeof(log_GPS), \ 1194 "GPSB", GPS_FMT, GPS_LABELS, GPS_UNITS, GPS_MULTS }, \ 1195 { LOG_GPA_MSG, sizeof(log_GPA), \ 1196 "GPA", GPA_FMT, GPA_LABELS, GPA_UNITS, GPA_MULTS }, \ 1197 { LOG_GPA2_MSG, sizeof(log_GPA), \ 1198 "GPA2", GPA_FMT, GPA_LABELS, GPA_UNITS, GPA_MULTS }, \ 1199 { LOG_GPAB_MSG, sizeof(log_GPA), \ 1200 "GPAB", GPA_FMT, GPA_LABELS, GPA_UNITS, GPA_MULTS }, \ 1201 { LOG_IMU_MSG, sizeof(log_IMU), \ 1202 "IMU", IMU_FMT, IMU_LABELS, IMU_UNITS, IMU_MULTS }, \ 1203 { LOG_MESSAGE_MSG, sizeof(log_Message), \ 1204 "MSG", "QZ", "TimeUS,Message", "s-", "F-"}, \ 1205 { LOG_RCIN_MSG, sizeof(log_RCIN), \ 1206 "RCIN", "QHHHHHHHHHHHHHH", "TimeUS,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14", "sUUUUUUUUUUUUUU", "F--------------" }, \ 1207 { LOG_RCOUT_MSG, sizeof(log_RCOUT), \ 1208 "RCOU", "QHHHHHHHHHHHHHH", "TimeUS,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14", "sUUUUUUUUUUUUUU", "F--------------" }, \ 1209 { LOG_RSSI_MSG, sizeof(log_RSSI), \ 1210 "RSSI", "Qf", "TimeUS,RXRSSI", "s-", "F-" }, \ 1211 { LOG_BARO_MSG, sizeof(log_BARO), \ 1212 "BARO", BARO_FMT, BARO_LABELS, BARO_UNITS, BARO_MULTS }, \ 1213 { LOG_POWR_MSG, sizeof(log_POWR), \ 1214 "POWR","QffHB","TimeUS,Vcc,VServo,Flags,Safety", "svv--", "FBB--" }, \ 1215 { LOG_CMD_MSG, sizeof(log_Cmd), \ 1216 "CMD", "QHHHfffffffB","TimeUS,CTot,CNum,CId,Prm1,Prm2,Prm3,Prm4,Lat,Lng,Alt,Frame", "s-------DUm-", "F-------GG0-" }, \ 1217 { LOG_RADIO_MSG, sizeof(log_Radio), \ 1218 "RAD", "QBBBBBHH", "TimeUS,RSSI,RemRSSI,TxBuf,Noise,RemNoise,RxErrors,Fixed", "s-------", "F-------" }, \ 1219 { LOG_CAMERA_MSG, sizeof(log_Camera), \ 1220 "CAM", "QIHLLeeeccC","TimeUS,GPSTime,GPSWeek,Lat,Lng,Alt,RelAlt,GPSAlt,Roll,Pitch,Yaw", "s--DUmmmddd", "F--GGBBBBBB" }, \ 1221 { LOG_TRIGGER_MSG, sizeof(log_Camera), \ 1222 "TRIG", "QIHLLeeeccC","TimeUS,GPSTime,GPSWeek,Lat,Lng,Alt,RelAlt,GPSAlt,Roll,Pitch,Yaw", "s--DUmmmddd", "F--GGBBBBBB" }, \ 1223 { LOG_ARSP_MSG, sizeof(log_AIRSPEED), "ARSP", ARSP_FMT, ARSP_LABELS, ARSP_UNITS, ARSP_MULTS }, \ 1224 { LOG_ASP2_MSG, sizeof(log_AIRSPEED), "ASP2", ARSP_FMT, ARSP_LABELS, ARSP_UNITS, ARSP_MULTS }, \ 1225 { LOG_CURRENT_MSG, sizeof(log_Current), \ 1226 "BAT", CURR_FMT,CURR_LABELS,CURR_UNITS,CURR_MULTS }, \ 1227 { LOG_CURRENT2_MSG, sizeof(log_Current), \ 1228 "BAT2", CURR_FMT,CURR_LABELS,CURR_UNITS,CURR_MULTS }, \ 1229 { LOG_CURRENT_CELLS_MSG, sizeof(log_Current_Cells), \ 1230 "BCL", CURR_CELL_FMT, CURR_CELL_LABELS, CURR_CELL_UNITS, CURR_CELL_MULTS }, \ 1231 { LOG_CURRENT_CELLS2_MSG, sizeof(log_Current_Cells), \ 1232 "BCL2", CURR_CELL_FMT, CURR_CELL_LABELS, CURR_CELL_UNITS, CURR_CELL_MULTS }, \ 1233 { LOG_ATTITUDE_MSG, sizeof(log_Attitude),\ 1234 "ATT", "QccccCCCC", "TimeUS,DesRoll,Roll,DesPitch,Pitch,DesYaw,Yaw,ErrRP,ErrYaw", "sddddhhdh", "FBBBBBBBB" }, \ 1235 { LOG_COMPASS_MSG, sizeof(log_Compass), \ 1236 "MAG", MAG_FMT, MAG_LABELS, MAG_UNITS, MAG_MULTS }, \ 1237 { LOG_MODE_MSG, sizeof(log_Mode), \ 1238 "MODE", "QMBB", "TimeUS,Mode,ModeNum,Rsn", "s---", "F---" }, \ 1239 { LOG_RFND_MSG, sizeof(log_RFND), \ 1240 "RFND", "QCBCB", "TimeUS,Dist1,Orient1,Dist2,Orient2", "sm-m-", "FB-B-" }, \ 1241 { LOG_DF_MAV_STATS, sizeof(log_DF_MAV_Stats), \ 1242 "DMS", "IIIIIBBBBBBBBBB", "TimeMS,N,Dp,RT,RS,Er,Fa,Fmn,Fmx,Pa,Pmn,Pmx,Sa,Smn,Smx", "s--------------", "C--------------" }, \ 1243 { LOG_BEACON_MSG, sizeof(log_Beacon), \ 1244 "BCN", "QBBfffffff", "TimeUS,Health,Cnt,D0,D1,D2,D3,PosX,PosY,PosZ", "s--mmmmmmm", "F--BBBBBBB" }, \ 1245 { LOG_PROXIMITY_MSG, sizeof(log_Proximity), \ 1246 "PRX", "QBfffffffffff", "TimeUS,Health,D0,D45,D90,D135,D180,D225,D270,D315,DUp,CAn,CDis", "s-mmmmmmmmmhm", "F-BBBBBBBBB00" }, \ 1247 { LOG_PERFORMANCE_MSG, sizeof(log_Performance), \ 1248 "PM", "QHHIIH", "TimeUS,NLon,NLoop,MaxT,Mem,Load", "s---b%", "F---0A" }, \ 1249 { LOG_SRTL_MSG, sizeof(log_SRTL), \ 1250 "SRTL", "QBHHBfff", "TimeUS,Active,NumPts,MaxPts,Action,N,E,D", "s----mmm", "F----000" } 1253 #define LOG_EXTRA_STRUCTURES \ 1254 { LOG_IMU2_MSG, sizeof(log_IMU), \ 1255 "IMU2", IMU_FMT, IMU_LABELS, IMU_UNITS, IMU_MULTS }, \ 1256 { LOG_IMU3_MSG, sizeof(log_IMU), \ 1257 "IMU3", IMU_FMT, IMU_LABELS, IMU_UNITS, IMU_MULTS }, \ 1258 { LOG_AHR2_MSG, sizeof(log_AHRS), \ 1259 "AHR2","QccCfLLffff","TimeUS,Roll,Pitch,Yaw,Alt,Lat,Lng,Q1,Q2,Q3,Q4","sddhmDU????", "FBBB0GG????" }, \ 1260 { LOG_POS_MSG, sizeof(log_POS), \ 1261 "POS","QLLfff","TimeUS,Lat,Lng,Alt,RelHomeAlt,RelOriginAlt", "sDUmmm", "FGG000" }, \ 1262 { LOG_SIMSTATE_MSG, sizeof(log_AHRS), \ 1263 "SIM","QccCfLLffff","TimeUS,Roll,Pitch,Yaw,Alt,Lat,Lng,Q1,Q2,Q3,Q4", "sddhmDU????", "FBBB0GG????" }, \ 1264 { LOG_NKF1_MSG, sizeof(log_EKF1), \ 1265 "NKF1","QccCfffffffccce","TimeUS,Roll,Pitch,Yaw,VN,VE,VD,dPD,PN,PE,PD,GX,GY,GZ,OH", "sddhnnnnmmmkkkm", "FBBB0000000BBBB" }, \ 1266 { LOG_NKF2_MSG, sizeof(log_NKF2), \ 1267 "NKF2","QbccccchhhhhhB","TimeUS,AZbias,GSX,GSY,GSZ,VWN,VWE,MN,ME,MD,MX,MY,MZ,MI", "s----nnGGGGGG-", "F----BBCCCCCC-" }, \ 1268 { LOG_NKF3_MSG, sizeof(log_NKF3), \ 1269 "NKF3","Qcccccchhhcc","TimeUS,IVN,IVE,IVD,IPN,IPE,IPD,IMX,IMY,IMZ,IYAW,IVT", "snnnmmmGGG??", "FBBBBBBCCCBB" }, \ 1270 { LOG_NKF4_MSG, sizeof(log_NKF4), \ 1271 "NKF4","QcccccfbbHBHHb","TimeUS,SV,SP,SH,SM,SVT,errRP,OFN,OFE,FS,TS,SS,GPS,PI", "s------??-----", "F------??-----" }, \ 1272 { LOG_NKF5_MSG, sizeof(log_NKF5), \ 1273 "NKF5","QBhhhcccCCfff","TimeUS,NI,FIX,FIY,AFI,HAGL,offset,RI,rng,Herr,eAng,eVel,ePos", "s----m???mrnm", "F----BBBBB000" }, \ 1274 { LOG_NKF6_MSG, sizeof(log_EKF1), \ 1275 "NKF6","QccCfffffffccce","TimeUS,Roll,Pitch,Yaw,VN,VE,VD,dPD,PN,PE,PD,GX,GY,GZ,OH", "sddhnnn-mmmkkkm", "FBBB000-000BBBB" }, \ 1276 { LOG_NKF7_MSG, sizeof(log_NKF2), \ 1277 "NKF7","QbccccchhhhhhB","TimeUS,AZbias,GSX,GSY,GSZ,VWN,VWE,MN,ME,MD,MX,MY,MZ,MI", "s----nnGGGGGG-", "F----BBCCCCCC-" }, \ 1278 { LOG_NKF8_MSG, sizeof(log_NKF3), \ 1279 "NKF8","Qcccccchhhcc","TimeUS,IVN,IVE,IVD,IPN,IPE,IPD,IMX,IMY,IMZ,IYAW,IVT", "snnnmmmGGGd?", "FBBBBBBCCCBB" }, \ 1280 { LOG_NKF9_MSG, sizeof(log_NKF4), \ 1281 "NKF9","QcccccfbbHBHHb","TimeUS,SV,SP,SH,SM,SVT,errRP,OFN,OFE,FS,TS,SS,GPS,PI", "s-----???-----", "F-----???-----" }, \ 1282 { LOG_NKF10_MSG, sizeof(log_RngBcnDebug), \ 1283 "NKF0","QBccCCcccccccc","TimeUS,ID,rng,innov,SIV,TR,BPN,BPE,BPD,OFH,OFL,OFN,OFE,OFD", "s-m---mmmmmmmm", "F-B---BBBBBBBB" }, \ 1284 { LOG_NKQ1_MSG, sizeof(log_Quaternion), "NKQ1", QUAT_FMT, QUAT_LABELS, QUAT_UNITS, QUAT_MULTS }, \ 1285 { LOG_NKQ2_MSG, sizeof(log_Quaternion), "NKQ2", QUAT_FMT, QUAT_LABELS, QUAT_UNITS, QUAT_MULTS }, \ 1286 { LOG_XKF1_MSG, sizeof(log_EKF1), \ 1287 "XKF1","QccCfffffffccce","TimeUS,Roll,Pitch,Yaw,VN,VE,VD,dPD,PN,PE,PD,GX,GY,GZ,OH", "sddhnnnnmmmkkkm", "FBBB0000000BBBB" }, \ 1288 { LOG_XKF2_MSG, sizeof(log_NKF2a), \ 1289 "XKF2","QccccchhhhhhB","TimeUS,AX,AY,AZ,VWN,VWE,MN,ME,MD,MX,MY,MZ,MI", "s---nnGGGGGG-", "F---BBCCCCCC-" }, \ 1290 { LOG_XKF3_MSG, sizeof(log_NKF3), \ 1291 "XKF3","Qcccccchhhcc","TimeUS,IVN,IVE,IVD,IPN,IPE,IPD,IMX,IMY,IMZ,IYAW,IVT", "snnnmmmGGG??", "FBBBBBBCCCBB" }, \ 1292 { LOG_XKF4_MSG, sizeof(log_NKF4), \ 1293 "XKF4","QcccccfbbHBHHb","TimeUS,SV,SP,SH,SM,SVT,errRP,OFN,OFE,FS,TS,SS,GPS,PI", "s------??-----", "F------??-----" }, \ 1294 { LOG_XKF5_MSG, sizeof(log_NKF5), \ 1295 "XKF5","QBhhhcccCCfff","TimeUS,NI,FIX,FIY,AFI,HAGL,offset,RI,rng,Herr,eAng,eVel,ePos", "s----m???mrnm", "F----BBBBB000" }, \ 1296 { LOG_XKF6_MSG, sizeof(log_EKF1), \ 1297 "XKF6","QccCfffffffccce","TimeUS,Roll,Pitch,Yaw,VN,VE,VD,dPD,PN,PE,PD,GX,GY,GZ,OH", "sddhnnn-mmmkkkm", "FBBB000-000BBBB" }, \ 1298 { LOG_XKF7_MSG, sizeof(log_NKF2a), \ 1299 "XKF7","QccccchhhhhhB","TimeUS,AX,AY,AZ,VWN,VWE,MN,ME,MD,MX,MY,MZ,MI", "s---nnGGGGGG-", "F---BBCCCCCC-" }, \ 1300 { LOG_XKF8_MSG, sizeof(log_NKF3), \ 1301 "XKF8","Qcccccchhhcc","TimeUS,IVN,IVE,IVD,IPN,IPE,IPD,IMX,IMY,IMZ,IYAW,IVT", "snnnmmmGGGd?", "FBBBBBBCCCBB" }, \ 1302 { LOG_XKF9_MSG, sizeof(log_NKF4), \ 1303 "XKF9","QcccccfbbHBHHb","TimeUS,SV,SP,SH,SM,SVT,errRP,OFN,OFE,FS,TS,SS,GPS,PI", "s-----???-----", "F-----???-----" }, \ 1304 { LOG_XKF10_MSG, sizeof(log_RngBcnDebug), \ 1305 "XKF0","QBccCCcccccccc","TimeUS,ID,rng,innov,SIV,TR,BPN,BPE,BPD,OFH,OFL,OFN,OFE,OFD", "s-m---mmmmmmmm", "F-B---BBBBBBBB" }, \ 1306 { LOG_XKQ1_MSG, sizeof(log_Quaternion), "XKQ1", QUAT_FMT, QUAT_LABELS, QUAT_UNITS, QUAT_MULTS }, \ 1307 { LOG_XKQ2_MSG, sizeof(log_Quaternion), "XKQ2", QUAT_FMT, QUAT_LABELS, QUAT_UNITS, QUAT_MULTS }, \ 1308 { LOG_XKFD_MSG, sizeof(log_ekfBodyOdomDebug), \ 1309 "XKFD","Qffffff","TimeUS,IX,IY,IZ,IVX,IVY,IVZ", "s------", "F------" }, \ 1310 { LOG_XKV1_MSG, sizeof(log_ekfStateVar), \ 1311 "XKV1","Qffffffffffff","TimeUS,V00,V01,V02,V03,V04,V05,V06,V07,V08,V09,V10,V11", "s------------", "F------------" }, \ 1312 { LOG_XKV2_MSG, sizeof(log_ekfStateVar), \ 1313 "XKV2","Qffffffffffff","TimeUS,V12,V13,V14,V15,V16,V17,V18,V19,V20,V21,V22,V23", "s------------", "F------------" }, \ 1314 { LOG_TERRAIN_MSG, sizeof(log_TERRAIN), \ 1315 "TERR","QBLLHffHH","TimeUS,Status,Lat,Lng,Spacing,TerrH,CHeight,Pending,Loaded", "s-DU-mm--", "F-GG-00--" }, \ 1316 { LOG_GPS_UBX1_MSG, sizeof(log_Ubx1), \ 1317 "UBX1", "QBHBBHI", "TimeUS,Instance,noisePerMS,jamInd,aPower,agcCnt,config", "s------", "F------" }, \ 1318 { LOG_GPS_UBX2_MSG, sizeof(log_Ubx2), \ 1319 "UBX2", "QBbBbB", "TimeUS,Instance,ofsI,magI,ofsQ,magQ", "s-----", "F-----" }, \ 1320 { LOG_GPS2_UBX1_MSG, sizeof(log_Ubx1), \ 1321 "UBY1", "QBHBBHI", "TimeUS,Instance,noisePerMS,jamInd,aPower,agcCnt,config", "s------", "F------" }, \ 1322 { LOG_GPS2_UBX2_MSG, sizeof(log_Ubx2), \ 1323 "UBY2", "QBbBbB", "TimeUS,Instance,ofsI,magI,ofsQ,magQ", "s-----", "F-----" }, \ 1324 { LOG_GPS_RAW_MSG, sizeof(log_GPS_RAW), \ 1325 "GRAW", "QIHBBddfBbB", "TimeUS,WkMS,Week,numSV,sv,cpMes,prMes,doMes,mesQI,cno,lli", "s--S-------", "F--0-------" }, \ 1326 { LOG_GPS_RAWH_MSG, sizeof(log_GPS_RAWH), \ 1327 "GRXH", "QdHbBB", "TimeUS,rcvTime,week,leapS,numMeas,recStat", "s-----", "F-----" }, \ 1328 { LOG_GPS_RAWS_MSG, sizeof(log_GPS_RAWS), \ 1329 "GRXS", "QddfBBBHBBBBB", "TimeUS,prMes,cpMes,doMes,gnss,sv,freq,lock,cno,prD,cpD,doD,trk", "s------------", "F------------" }, \ 1330 { LOG_GPS_SBF_EVENT_MSG, sizeof(log_GPS_SBF_EVENT), \ 1331 "SBFE", "QIHBBdddfffff", "TimeUS,TOW,WN,Mode,Err,Lat,Lng,Height,Undul,Vn,Ve,Vu,COG", "s----DUm-nnnh", "F----000-0000" }, \ 1332 { LOG_ESC1_MSG, sizeof(log_Esc), \ 1333 "ESC1", ESC_FMT, ESC_LABELS, ESC_UNITS, ESC_MULTS }, \ 1334 { LOG_ESC2_MSG, sizeof(log_Esc), \ 1335 "ESC2", ESC_FMT, ESC_LABELS, ESC_UNITS, ESC_MULTS }, \ 1336 { LOG_ESC3_MSG, sizeof(log_Esc), \ 1337 "ESC3", ESC_FMT, ESC_LABELS, ESC_UNITS, ESC_MULTS }, \ 1338 { LOG_ESC4_MSG, sizeof(log_Esc), \ 1339 "ESC4", ESC_FMT, ESC_LABELS, ESC_UNITS, ESC_MULTS }, \ 1340 { LOG_ESC5_MSG, sizeof(log_Esc), \ 1341 "ESC5", ESC_FMT, ESC_LABELS, ESC_UNITS, ESC_MULTS }, \ 1342 { LOG_ESC6_MSG, sizeof(log_Esc), \ 1343 "ESC6", ESC_FMT, ESC_LABELS, ESC_UNITS, ESC_MULTS }, \ 1344 { LOG_ESC7_MSG, sizeof(log_Esc), \ 1345 "ESC7", ESC_FMT, ESC_LABELS, ESC_UNITS, ESC_MULTS }, \ 1346 { LOG_ESC8_MSG, sizeof(log_Esc), \ 1347 "ESC8", ESC_FMT, ESC_LABELS, ESC_UNITS, ESC_MULTS }, \ 1348 { LOG_COMPASS2_MSG, sizeof(log_Compass), \ 1349 "MAG2",MAG_FMT, MAG_LABELS, MAG_UNITS, MAG_MULTS }, \ 1350 { LOG_COMPASS3_MSG, sizeof(log_Compass), \ 1351 "MAG3",MAG_FMT, MAG_LABELS, MAG_UNITS, MAG_MULTS }, \ 1352 { LOG_ACC1_MSG, sizeof(log_ACCEL), \ 1353 "ACC1", ACC_FMT, ACC_LABELS, ACC_UNITS, ACC_MULTS }, \ 1354 { LOG_ACC2_MSG, sizeof(log_ACCEL), \ 1355 "ACC2", ACC_FMT, ACC_LABELS, ACC_UNITS, ACC_MULTS }, \ 1356 { LOG_ACC3_MSG, sizeof(log_ACCEL), \ 1357 "ACC3", ACC_FMT, ACC_LABELS, ACC_UNITS, ACC_MULTS }, \ 1358 { LOG_GYR1_MSG, sizeof(log_GYRO), \ 1359 "GYR1", GYR_FMT, GYR_LABELS, GYR_UNITS, GYR_MULTS }, \ 1360 { LOG_GYR2_MSG, sizeof(log_GYRO), \ 1361 "GYR2", GYR_FMT, GYR_LABELS, GYR_UNITS, GYR_MULTS }, \ 1362 { LOG_GYR3_MSG, sizeof(log_GYRO), \ 1363 "GYR3", GYR_FMT, GYR_LABELS, GYR_UNITS, GYR_MULTS }, \ 1364 { LOG_PIDR_MSG, sizeof(log_PID), \ 1365 "PIDR", PID_FMT, PID_LABELS, PID_UNITS, PID_MULTS }, \ 1366 { LOG_PIDP_MSG, sizeof(log_PID), \ 1367 "PIDP", PID_FMT, PID_LABELS, PID_UNITS, PID_MULTS }, \ 1368 { LOG_PIDY_MSG, sizeof(log_PID), \ 1369 "PIDY", PID_FMT, PID_LABELS, PID_UNITS, PID_MULTS }, \ 1370 { LOG_PIDA_MSG, sizeof(log_PID), \ 1371 "PIDA", PID_FMT, PID_LABELS, PID_UNITS, PID_MULTS }, \ 1372 { LOG_PIDS_MSG, sizeof(log_PID), \ 1373 "PIDS", PID_FMT, PID_LABELS, PID_UNITS, PID_MULTS }, \ 1374 { LOG_DSTL_MSG, sizeof(log_DSTL), \ 1375 "DSTL", "QBfLLeccfeffff", "TimeUS,Stg,THdg,Lat,Lng,Alt,XT,Travel,L1I,Loiter,Des,P,I,D", "s??DUm--------", "F??000--------" }, \ 1376 { LOG_BAR2_MSG, sizeof(log_BARO), \ 1377 "BAR2", BARO_FMT, BARO_LABELS, BARO_UNITS, BARO_MULTS }, \ 1378 { LOG_BAR3_MSG, sizeof(log_BARO), \ 1379 "BAR3", BARO_FMT, BARO_LABELS, BARO_UNITS, BARO_MULTS }, \ 1380 { LOG_VIBE_MSG, sizeof(log_Vibe), \ 1381 "VIBE", "QfffIII", "TimeUS,VibeX,VibeY,VibeZ,Clip0,Clip1,Clip2", "s------", "F------" }, \ 1382 { LOG_IMUDT_MSG, sizeof(log_IMUDT), \ 1383 "IMT",IMT_FMT,IMT_LABELS, IMT_UNITS, IMT_MULTS }, \ 1384 { LOG_IMUDT2_MSG, sizeof(log_IMUDT), \ 1385 "IMT2",IMT_FMT,IMT_LABELS, IMT_UNITS, IMT_MULTS }, \ 1386 { LOG_IMUDT3_MSG, sizeof(log_IMUDT), \ 1387 "IMT3",IMT_FMT,IMT_LABELS, IMT_UNITS, IMT_MULTS }, \ 1388 { LOG_ISBH_MSG, sizeof(log_ISBH), \ 1389 "ISBH",ISBH_FMT,ISBH_LABELS,ISBH_UNITS,ISBH_MULTS }, \ 1390 { LOG_ISBD_MSG, sizeof(log_ISBD), \ 1391 "ISBD",ISBD_FMT,ISBD_LABELS, ISBD_UNITS, ISBD_MULTS }, \ 1392 { LOG_ORGN_MSG, sizeof(log_ORGN), \ 1393 "ORGN","QBLLe","TimeUS,Type,Lat,Lng,Alt", "s-DUm", "F-GGB" }, \ 1394 { LOG_DF_FILE_STATS, sizeof(log_DSF), \ 1395 "DSF", "QIBHIIII", "TimeUS,Dp,IErr,Blk,Bytes,FMn,FMx,FAv", "s---b---", "F---0---" }, \ 1396 { LOG_RPM_MSG, sizeof(log_RPM), \ 1397 "RPM", "Qff", "TimeUS,rpm1,rpm2", "sqq", "F00" }, \ 1398 { LOG_GIMBAL1_MSG, sizeof(log_Gimbal1), \ 1399 "GMB1", "Iffffffffff", "TimeMS,dt,dax,day,daz,dvx,dvy,dvz,jx,jy,jz", "ssrrrEEELLL", "CC000000000" }, \ 1400 { LOG_GIMBAL2_MSG, sizeof(log_Gimbal2), \ 1401 "GMB2", "IBfffffffff", "TimeMS,es,ex,ey,ez,rx,ry,rz,tx,ty,tz", "s-rrrEEELLL", "C-000000000" }, \ 1402 { LOG_GIMBAL3_MSG, sizeof(log_Gimbal3), \ 1403 "GMB3", "Ihhh", "TimeMS,rl_torque_cmd,el_torque_cmd,az_torque_cmd", "s???", "C???" }, \ 1404 { LOG_RATE_MSG, sizeof(log_Rate), \ 1405 "RATE", "Qffffffffffff", "TimeUS,RDes,R,ROut,PDes,P,POut,YDes,Y,YOut,ADes,A,AOut", "skk-kk-kk-oo-", "F?????????BB-" }, \ 1406 { LOG_RALLY_MSG, sizeof(log_Rally), \ 1407 "RALY", "QBBLLh", "TimeUS,Tot,Seq,Lat,Lng,Alt", "s--DUm", "F--GGB" }, \ 1408 { LOG_VISUALODOM_MSG, sizeof(log_VisualOdom), \ 1409 "VISO", "Qffffffff", "TimeUS,dt,AngDX,AngDY,AngDZ,PosDX,PosDY,PosDZ,conf", "ssrrrmmm-", "FF000000-" } 1413 #define LOG_SBP_STRUCTURES \ 1414 { LOG_MSG_SBPHEALTH, sizeof(log_SbpHealth), \ 1415 "SBPH", "QIII", "TimeUS,CrcError,LastInject,IARhyp", "s---", "F---" }, \ 1416 { LOG_MSG_SBPRAWH, sizeof(log_SbpRAWH), \ 1417 "SBRH", "QQQQQQQQ", "TimeUS,msg_flag,1,2,3,4,5,6", "s--b----", "F--0----" }, \ 1418 { LOG_MSG_SBPRAWM, sizeof(log_SbpRAWM), \ 1419 "SBRM", "QQQQQQQQQQQQQQQ", "TimeUS,msg_flag,1,2,3,4,5,6,7,8,9,10,11,12,13", "s??????????????", "F??????????????" }, \ 1420 { LOG_MSG_SBPEVENT, sizeof(log_SbpEvent), \ 1421 "SBRE", "QHIiBB", "TimeUS,GWk,GMS,ns_residual,level,quality", "s?????", "F?????" } 1424 #define LOG_COMMON_STRUCTURES LOG_BASE_STRUCTURES, LOG_EXTRA_STRUCTURES, LOG_SBP_STRUCTURES 1564 static_assert(
_LOG_LAST_MSG_ <= 255,
"Too many message formats");
static const uint8_t LS_NAME_SIZE
uint8_t state_pending_min
uint32_t last_iar_num_hypotheses
static const uint8_t LS_MULTIPLIERS_SIZE
uint8_t state_pending_max
const struct UnitStructure log_Units[]
const struct MultiplierStructure log_Multipliers[]
uint32_t last_injected_data_ms
uint8_t state_pending_avg
static const uint8_t LS_LABELS_SIZE
uint32_t crc_error_counter
static const uint8_t LS_FORMAT_SIZE
static const uint8_t LS_UNITS_SIZE