From 106034e4a3592aca328f595d1e565bb900d40c0c Mon Sep 17 00:00:00 2001 From: Luca Erbetta <lucaerbetta105@gmail.com> Date: Tue, 26 Nov 2019 23:14:08 +0100 Subject: [PATCH] Hermes V1 flight telemetry --- src/mavdecoder.cpp | 2 +- src/messages.h | 4 +- src/messages_generated.h | 551 +++++++++++++++++++++++---------------- 3 files changed, 326 insertions(+), 231 deletions(-) diff --git a/src/mavdecoder.cpp b/src/mavdecoder.cpp index 977ee29..3945c27 100755 --- a/src/mavdecoder.cpp +++ b/src/mavdecoder.cpp @@ -34,7 +34,7 @@ using namespace std; -static constexpr bool USE_MAVLINK_PARSER = true; +static constexpr bool USE_MAVLINK_PARSER = false; int main(int argc, char** argv) { diff --git a/src/messages.h b/src/messages.h index 23eae20..e70fb3d 100755 --- a/src/messages.h +++ b/src/messages.h @@ -357,9 +357,9 @@ struct MavHrTmData p.unpackGyroZ(&f, i); os << f << ","; p.unpackGpsLat(&d, i); - os << d << ","; + os << (float)d << ","; p.unpackGpsLon(&d, i); - os << d << ","; + os << (float)d << ","; p.unpackGpsAlt(&f, i); os << f << ","; p.unpackTemperature(&f, i); diff --git a/src/messages_generated.h b/src/messages_generated.h index a7ccce3..9a7b7a5 100755 --- a/src/messages_generated.h +++ b/src/messages_generated.h @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) 2019 Skyward Experimental Rocketry * Author: Erbetta Luca * @@ -29,7 +29,7 @@ ****************************************************************************** */ -// Generation date: 2019-09-11 16:12:10.827357 +// Generation date: 2019-11-06 01:44:05.542490 #pragma once @@ -58,276 +58,294 @@ struct MavData void print(ostream &os) { - os << (int)start << "," << (int)len << "," << (int)seq << "," + os << (int)start << "," << (int)len << "," << (int)seq << "," << (int)sys_id << "," << (int)comp_id << "," << (int)msg_id; } }; -struct MavAckTmData +struct MavLoggerTmData { - mavlink_ack_tm_t mav_pkt; + mavlink_logger_tm_t mav_pkt; - static void header(ostream &os) { os << "recv_msgid,seq_ack\n"; } + static void header(ostream &os) + { + os << "timestamp,statTooLargeSamples,statDroppedSamples,statQueuedSamples,statBufferFilled,statBufferWritten,statWriteFailed,statWriteError,statWriteTime,statMaxWriteTime,statLogNumber\n"; + } - void print(ostream &os) + void print(ostream &os, unsigned int index = 0) { - os << (int)mav_pkt.recv_msgid << "," << (int)mav_pkt.seq_ack << "\n"; + (void)index; // Avoid unused warnings + + os << mav_pkt.timestamp << "," << mav_pkt.statTooLargeSamples << "," << mav_pkt.statDroppedSamples << "," << mav_pkt.statQueuedSamples << "," << mav_pkt.statBufferFilled << "," << mav_pkt.statBufferWritten << "," << mav_pkt.statWriteFailed << "," << mav_pkt.statWriteError << "," << mav_pkt.statWriteTime << "," << mav_pkt.statMaxWriteTime << "," << mav_pkt.statLogNumber << "\n"; + } + + static unsigned int messagesPerPacket() + { + return 1; } }; -struct MavAdaTmData +struct MavAckTmData { - mavlink_ada_tm_t mav_pkt; + mavlink_ack_tm_t mav_pkt; static void header(ostream &os) { - os << "timestamp,target_dpl_altitude,kalman_x0,kalman_x1,kalman_x2,ref_" - "pressure,msl_pressure,ref_pressure_mean,ref_pressure_stddev,ref_" - "pressure_nsamples,ref_altitude,ref_temperature,msl_temperature," - "state\n"; + os << "recv_msgid,seq_ack\n"; } - void print(ostream &os) + void print(ostream &os, unsigned int index = 0) + { + (void)index; // Avoid unused warnings + + os << (int)mav_pkt.recv_msgid << "," << (int)mav_pkt.seq_ack << "\n"; + } + + static unsigned int messagesPerPacket() { - os << mav_pkt.timestamp << "," << mav_pkt.target_dpl_altitude << "," - << mav_pkt.kalman_x0 << "," << mav_pkt.kalman_x1 << "," - << mav_pkt.kalman_x2 << "," << mav_pkt.ref_pressure << "," - << mav_pkt.msl_pressure << "," << mav_pkt.ref_pressure_mean << "," - << mav_pkt.ref_pressure_stddev << "," - << mav_pkt.ref_pressure_nsamples << "," << mav_pkt.ref_altitude - << "," << mav_pkt.ref_temperature << "," << mav_pkt.msl_temperature - << "," << (int)mav_pkt.state << "\n"; + return 1; } }; -struct MavAdcTmData +struct MavNoargTcData { - mavlink_adc_tm_t mav_pkt; + mavlink_noarg_tc_t mav_pkt; static void header(ostream &os) { - os << "timestamp,hw_baro_volt,nxp_baro_volt,hw_baro_pressure,nxp_baro_" - "pressure,battery_voltage,current_sense_1,current_sense_2,hw_" - "baro_flag,nxp_baro_flag\n"; + os << "command_id\n"; } - void print(ostream &os) + void print(ostream &os, unsigned int index = 0) { - os << mav_pkt.timestamp << "," << mav_pkt.hw_baro_volt << "," - << mav_pkt.nxp_baro_volt << "," << mav_pkt.hw_baro_pressure << "," - << mav_pkt.nxp_baro_pressure << "," << mav_pkt.battery_voltage << "," - << mav_pkt.current_sense_1 << "," << mav_pkt.current_sense_2 << "," - << (int)mav_pkt.hw_baro_flag << "," << (int)mav_pkt.nxp_baro_flag - << "\n"; + (void)index; // Avoid unused warnings + + os << (int)mav_pkt.command_id << "\n"; + } + + static unsigned int messagesPerPacket() + { + return 1; } }; -struct MavAdisTmData +struct MavSysTmData { - mavlink_adis_tm_t mav_pkt; + mavlink_sys_tm_t mav_pkt; static void header(ostream &os) { - os << "timestamp,acc_x,acc_y,acc_z,gyro_x,gyro_y,gyro_z,compass_x," - "compass_y,compass_z,temp,supply_out,aux_adc\n"; + os << "timestamp,death_stack,logger,ev_broker,pin_obs,fmm,sensor_manager,ada,tmtc,ign,dpl\n"; } - void print(ostream &os) + void print(ostream &os, unsigned int index = 0) + { + (void)index; // Avoid unused warnings + + os << mav_pkt.timestamp << "," << (int)mav_pkt.death_stack << "," << (int)mav_pkt.logger << "," << (int)mav_pkt.ev_broker << "," << (int)mav_pkt.pin_obs << "," << (int)mav_pkt.fmm << "," << (int)mav_pkt.sensor_manager << "," << (int)mav_pkt.ada << "," << (int)mav_pkt.tmtc << "," << (int)mav_pkt.ign << "," << (int)mav_pkt.dpl << "\n"; + } + + static unsigned int messagesPerPacket() { - os << mav_pkt.timestamp << "," << mav_pkt.acc_x << "," << mav_pkt.acc_y - << "," << mav_pkt.acc_z << "," << mav_pkt.gyro_x << "," - << mav_pkt.gyro_y << "," << mav_pkt.gyro_z << "," - << mav_pkt.compass_x << "," << mav_pkt.compass_y << "," - << mav_pkt.compass_z << "," << mav_pkt.temp << "," - << mav_pkt.supply_out << "," << mav_pkt.aux_adc << "\n"; + return 1; } }; -struct MavCanTmData +struct MavAdaTmData { - mavlink_can_tm_t mav_pkt; + mavlink_ada_tm_t mav_pkt; static void header(ostream &os) { - os << "last_sent_ts,last_rcv_ts,n_sent,n_rcv,last_sent,last_rcv\n"; + os << "timestamp,target_dpl_altitude,kalman_x0,kalman_x1,kalman_x2,kalman_acc_x0,kalman_acc_x1,kalman_acc_x2,ref_pressure,msl_pressure,ref_pressure_mean,ref_pressure_stddev,ref_pressure_nsamples,ref_altitude,ref_temperature,msl_temperature,state\n"; } - void print(ostream &os) + void print(ostream &os, unsigned int index = 0) + { + (void)index; // Avoid unused warnings + + os << mav_pkt.timestamp << "," << mav_pkt.target_dpl_altitude << "," << mav_pkt.kalman_x0 << "," << mav_pkt.kalman_x1 << "," << mav_pkt.kalman_x2 << "," << mav_pkt.kalman_acc_x0 << "," << mav_pkt.kalman_acc_x1 << "," << mav_pkt.kalman_acc_x2 << "," << mav_pkt.ref_pressure << "," << mav_pkt.msl_pressure << "," << mav_pkt.ref_pressure_mean << "," << mav_pkt.ref_pressure_stddev << "," << mav_pkt.ref_pressure_nsamples << "," << mav_pkt.ref_altitude << "," << mav_pkt.ref_temperature << "," << mav_pkt.msl_temperature << "," << (int)mav_pkt.state << "\n"; + } + + static unsigned int messagesPerPacket() { - os << mav_pkt.last_sent_ts << "," << mav_pkt.last_rcv_ts << "," - << mav_pkt.n_sent << "," << mav_pkt.n_rcv << "," - << (int)mav_pkt.last_sent << "," << (int)mav_pkt.last_rcv << "\n"; + return 1; } }; -struct MavDplTmData +struct MavPingTcData { - mavlink_dpl_tm_t mav_pkt; + mavlink_ping_tc_t mav_pkt; static void header(ostream &os) { - os << "timestamp,fsm_state,motor_active,motor_last_direction,cutter_" - "state\n"; + os << "timestamp\n"; } - void print(ostream &os) + void print(ostream &os, unsigned int index = 0) { - os << mav_pkt.timestamp << "," << (int)mav_pkt.fsm_state << "," - << (int)mav_pkt.motor_active << "," - << (int)mav_pkt.motor_last_direction << "," - << (int)mav_pkt.cutter_state << "\n"; + (void)index; // Avoid unused warnings + + os << mav_pkt.timestamp << "\n"; + } + + static unsigned int messagesPerPacket() + { + return 1; } }; -struct MavFmmTmData +struct MavRawEventTcData { - mavlink_fmm_tm_t mav_pkt; + mavlink_raw_event_tc_t mav_pkt; static void header(ostream &os) { - os << "timestamp,pin_launch_last_change,pin_nosecone_last_change,state," - "pin_launch_num_changes,pin_launch_state,pin_nosecone_num_" - "changes,pin_nosecone_state\n"; + os << "Event_id,Topic_id\n"; } - void print(ostream &os) + void print(ostream &os, unsigned int index = 0) + { + (void)index; // Avoid unused warnings + + os << (int)mav_pkt.Event_id << "," << (int)mav_pkt.Topic_id << "\n"; + } + + static unsigned int messagesPerPacket() { - os << mav_pkt.timestamp << "," << mav_pkt.pin_launch_last_change << "," - << mav_pkt.pin_nosecone_last_change << "," << (int)mav_pkt.state - << "," << (int)mav_pkt.pin_launch_num_changes << "," - << (int)mav_pkt.pin_launch_state << "," - << (int)mav_pkt.pin_nosecone_num_changes << "," - << (int)mav_pkt.pin_nosecone_state << "\n"; + return 1; } }; -struct MavGpsTmData +struct MavFmmTmData { - mavlink_gps_tm_t mav_pkt; + mavlink_fmm_tm_t mav_pkt; static void header(ostream &os) { - os << "timestamp,lat,lon,altitude,vel_north,vel_east,vel_down,vel_mag," - "n_satellites,fix\n"; + os << "timestamp,pin_launch_last_change,pin_nosecone_last_change,state,pin_launch_num_changes,pin_launch_state,pin_nosecone_num_changes,pin_nosecone_state\n"; } - void print(ostream &os) + void print(ostream &os, unsigned int index = 0) + { + (void)index; // Avoid unused warnings + + os << mav_pkt.timestamp << "," << mav_pkt.pin_launch_last_change << "," << mav_pkt.pin_nosecone_last_change << "," << (int)mav_pkt.state << "," << (int)mav_pkt.pin_launch_num_changes << "," << (int)mav_pkt.pin_launch_state << "," << (int)mav_pkt.pin_nosecone_num_changes << "," << (int)mav_pkt.pin_nosecone_state << "\n"; + } + + static unsigned int messagesPerPacket() { - os << mav_pkt.timestamp << "," << mav_pkt.lat << "," << mav_pkt.lon - << "," << mav_pkt.altitude << "," << mav_pkt.vel_north << "," - << mav_pkt.vel_east << "," << mav_pkt.vel_down << "," - << mav_pkt.vel_mag << "," << mav_pkt.n_satellites << "," - << (int)mav_pkt.fix << "\n"; + return 1; } }; -struct MavHrTmData +struct MavLrTmData { - mavlink_hr_tm_t mav_pkt; + mavlink_lr_tm_t mav_pkt; static void header(ostream &os) { - os << "timestamp,pressure,z_acc,gps_lat,gps_lon,kal_alt,kal_v_speed," - "temperature,bitfield_1,bitfield_2\n"; + os << "payload\n"; } - void print(ostream &os) + void print(ostream &os, unsigned int index = 0) + { + (void)index; // Avoid unused warnings + + os << (int)mav_pkt.payload << "\n"; + } + + static unsigned int messagesPerPacket() { - os << mav_pkt.timestamp << "," << mav_pkt.pressure << "," - << mav_pkt.z_acc << "," << mav_pkt.gps_lat << "," << mav_pkt.gps_lon - << "," << mav_pkt.kal_alt << "," << mav_pkt.kal_v_speed << "," - << (int)mav_pkt.temperature << "," << (int)mav_pkt.bitfield_1 << "," - << (int)mav_pkt.bitfield_2 << "\n"; + return 1; } }; -struct MavIgnTmData +struct MavHrTmData { - mavlink_ign_tm_t mav_pkt; + mavlink_hr_tm_t mav_pkt; static void header(ostream &os) { - os << "timestamp,n_sent_messages,n_rcv_message,fsm_state,last_event," - "cmd_bitfield,stm32_bitfield,avr_bitfield\n"; + os << "payload\n"; } - void print(ostream &os) + void print(ostream &os, unsigned int index = 0) { - os << mav_pkt.timestamp << "," << mav_pkt.n_sent_messages << "," - << mav_pkt.n_rcv_message << "," << (int)mav_pkt.fsm_state << "," - << (int)mav_pkt.last_event << "," << (int)mav_pkt.cmd_bitfield << "," - << (int)mav_pkt.stm32_bitfield << "," << (int)mav_pkt.avr_bitfield - << "\n"; + (void)index; // Avoid unused warnings + + os << (int)mav_pkt.payload << "\n"; + } + + static unsigned int messagesPerPacket() + { + return 1; } }; -struct MavLoggerTmData +struct MavCanTmData { - mavlink_logger_tm_t mav_pkt; + mavlink_can_tm_t mav_pkt; static void header(ostream &os) { - os << "timestamp,statTooLargeSamples,statDroppedSamples," - "statQueuedSamples,statBufferFilled,statBufferWritten," - "statWriteFailed,statWriteError,statWriteTime,statMaxWriteTime," - "statLogNumber\n"; + os << "last_sent_ts,last_rcv_ts,n_sent,n_rcv,last_sent,last_rcv\n"; + } + + void print(ostream &os, unsigned int index = 0) + { + (void)index; // Avoid unused warnings + + os << mav_pkt.last_sent_ts << "," << mav_pkt.last_rcv_ts << "," << mav_pkt.n_sent << "," << mav_pkt.n_rcv << "," << (int)mav_pkt.last_sent << "," << (int)mav_pkt.last_rcv << "\n"; } - void print(ostream &os) + static unsigned int messagesPerPacket() { - os << mav_pkt.timestamp << "," << mav_pkt.statTooLargeSamples << "," - << mav_pkt.statDroppedSamples << "," << mav_pkt.statQueuedSamples - << "," << mav_pkt.statBufferFilled << "," - << mav_pkt.statBufferWritten << "," << mav_pkt.statWriteFailed << "," - << mav_pkt.statWriteError << "," << mav_pkt.statWriteTime << "," - << mav_pkt.statMaxWriteTime << "," << mav_pkt.statLogNumber << "\n"; + return 1; } }; -struct MavLrTmData +struct MavAdcTmData { - mavlink_lr_tm_t mav_pkt; + mavlink_adc_tm_t mav_pkt; static void header(ostream &os) { - os << "t_liftoff,t_max_acc,acc_pf,t_max_speed,v_speed_max,alt_max_" - "speed,t_apogee,hw_min_press,nxp_min_press,kal_min_press,kal_max_" - "alt,gps_max_alt,lat_apogee,lon_apogee,t_drogue_dpl,max_drogue_" - "acc,t_main_dpl,alt_main_dpl,v_speed_main_dpl,max_main_acc\n"; + os << "timestamp,hw_baro_volt,nxp_baro_volt,hw_baro_pressure,nxp_baro_pressure,battery_voltage,current_sense_1,current_sense_2,hw_baro_flag,nxp_baro_flag\n"; } - void print(ostream &os) + void print(ostream &os, unsigned int index = 0) { - os << mav_pkt.t_liftoff << "," << mav_pkt.t_max_acc << "," - << mav_pkt.acc_pf << "," << mav_pkt.t_max_speed << "," - << mav_pkt.v_speed_max << "," << mav_pkt.alt_max_speed << "," - << mav_pkt.t_apogee << "," << mav_pkt.hw_min_press << "," - << mav_pkt.nxp_min_press << "," << mav_pkt.kal_min_press << "," - << mav_pkt.kal_max_alt << "," << mav_pkt.gps_max_alt << "," - << mav_pkt.lat_apogee << "," << mav_pkt.lon_apogee << "," - << mav_pkt.t_drogue_dpl << "," << mav_pkt.max_drogue_acc << "," - << mav_pkt.t_main_dpl << "," << mav_pkt.alt_main_dpl << "," - << mav_pkt.v_speed_main_dpl << "," << mav_pkt.max_main_acc << "\n"; + (void)index; // Avoid unused warnings + + os << mav_pkt.timestamp << "," << mav_pkt.hw_baro_volt << "," << mav_pkt.nxp_baro_volt << "," << mav_pkt.hw_baro_pressure << "," << mav_pkt.nxp_baro_pressure << "," << mav_pkt.battery_voltage << "," << mav_pkt.current_sense_1 << "," << mav_pkt.current_sense_2 << "," << (int)mav_pkt.hw_baro_flag << "," << (int)mav_pkt.nxp_baro_flag << "\n"; + } + + static unsigned int messagesPerPacket() + { + return 1; } }; -struct MavMpuTmData +struct MavTmtcTmData { - mavlink_mpu_tm_t mav_pkt; + mavlink_tmtc_tm_t mav_pkt; static void header(ostream &os) { - os << "timestamp,acc_x,acc_y,acc_z,gyro_x,gyro_y,gyro_z,compass_x," - "compass_y,compass_z,temp\n"; + os << "timestamp,parse_state,n_send_queue,max_send_queue,n_send_errors,packet_rx_success_count,packet_rx_drop_count,msg_received,buffer_overrun,parse_error,packet_idx,current_rx_seq,current_tx_seq\n"; } - void print(ostream &os) + void print(ostream &os, unsigned int index = 0) { - os << mav_pkt.timestamp << "," << mav_pkt.acc_x << "," << mav_pkt.acc_y - << "," << mav_pkt.acc_z << "," << mav_pkt.gyro_x << "," - << mav_pkt.gyro_y << "," << mav_pkt.gyro_z << "," - << mav_pkt.compass_x << "," << mav_pkt.compass_y << "," - << mav_pkt.compass_z << "," << mav_pkt.temp << "\n"; + (void)index; // Avoid unused warnings + + os << mav_pkt.timestamp << "," << mav_pkt.parse_state << "," << mav_pkt.n_send_queue << "," << mav_pkt.max_send_queue << "," << mav_pkt.n_send_errors << "," << mav_pkt.packet_rx_success_count << "," << mav_pkt.packet_rx_drop_count << "," << (int)mav_pkt.msg_received << "," << (int)mav_pkt.buffer_overrun << "," << (int)mav_pkt.parse_error << "," << (int)mav_pkt.packet_idx << "," << (int)mav_pkt.current_rx_seq << "," << (int)mav_pkt.current_tx_seq << "\n"; + } + + static unsigned int messagesPerPacket() + { + return 1; } }; @@ -335,168 +353,245 @@ struct MavNackTmData { mavlink_nack_tm_t mav_pkt; - static void header(ostream &os) { os << "recv_msgid,seq_ack\n"; } + static void header(ostream &os) + { + os << "recv_msgid,seq_ack\n"; + } - void print(ostream &os) + void print(ostream &os, unsigned int index = 0) { + (void)index; // Avoid unused warnings + os << (int)mav_pkt.recv_msgid << "," << (int)mav_pkt.seq_ack << "\n"; } + + static unsigned int messagesPerPacket() + { + return 1; + } }; -struct MavNoargTcData +struct MavAdisTmData { - mavlink_noarg_tc_t mav_pkt; + mavlink_adis_tm_t mav_pkt; - static void header(ostream &os) { os << "command_id\n"; } + static void header(ostream &os) + { + os << "timestamp,acc_x,acc_y,acc_z,gyro_x,gyro_y,gyro_z,compass_x,compass_y,compass_z,temp,supply_out,aux_adc\n"; + } - void print(ostream &os) { os << (int)mav_pkt.command_id << "\n"; } + void print(ostream &os, unsigned int index = 0) + { + (void)index; // Avoid unused warnings + + os << mav_pkt.timestamp << "," << mav_pkt.acc_x << "," << mav_pkt.acc_y << "," << mav_pkt.acc_z << "," << mav_pkt.gyro_x << "," << mav_pkt.gyro_y << "," << mav_pkt.gyro_z << "," << mav_pkt.compass_x << "," << mav_pkt.compass_y << "," << mav_pkt.compass_z << "," << mav_pkt.temp << "," << mav_pkt.supply_out << "," << mav_pkt.aux_adc << "\n"; + } + + static unsigned int messagesPerPacket() + { + return 1; + } }; -struct MavPingTcData +struct MavMpuTmData { - mavlink_ping_tc_t mav_pkt; + mavlink_mpu_tm_t mav_pkt; - static void header(ostream &os) { os << "timestamp\n"; } + static void header(ostream &os) + { + os << "timestamp,acc_x,acc_y,acc_z,gyro_x,gyro_y,gyro_z,compass_x,compass_y,compass_z,temp\n"; + } - void print(ostream &os) { os << mav_pkt.timestamp << "\n"; } + void print(ostream &os, unsigned int index = 0) + { + (void)index; // Avoid unused warnings + + os << mav_pkt.timestamp << "," << mav_pkt.acc_x << "," << mav_pkt.acc_y << "," << mav_pkt.acc_z << "," << mav_pkt.gyro_x << "," << mav_pkt.gyro_y << "," << mav_pkt.gyro_z << "," << mav_pkt.compass_x << "," << mav_pkt.compass_y << "," << mav_pkt.compass_z << "," << mav_pkt.temp << "\n"; + } + + static unsigned int messagesPerPacket() + { + return 1; + } }; -struct MavRawEventTcData +struct MavTestTmData { - mavlink_raw_event_tc_t mav_pkt; + mavlink_test_tm_t mav_pkt; + + static void header(ostream &os) + { + os << "timestamp,pressure_hw,temp_analog,temp_imu,battery_volt,th_cut_1,th_cut_2,gps_nsats\n"; + } - static void header(ostream &os) { os << "Event_id,Topic_id\n"; } + void print(ostream &os, unsigned int index = 0) + { + (void)index; // Avoid unused warnings + + os << mav_pkt.timestamp << "," << mav_pkt.pressure_hw << "," << mav_pkt.temp_analog << "," << mav_pkt.temp_imu << "," << mav_pkt.battery_volt << "," << mav_pkt.th_cut_1 << "," << mav_pkt.th_cut_2 << "," << (int)mav_pkt.gps_nsats << "\n"; + } - void print(ostream &os) + static unsigned int messagesPerPacket() { - os << (int)mav_pkt.Event_id << "," << (int)mav_pkt.Topic_id << "\n"; + return 1; } }; -struct MavSmTmData +struct MavTelemetryRequestTcData { - mavlink_sm_tm_t mav_pkt; + mavlink_telemetry_request_tc_t mav_pkt; static void header(ostream &os) { - os << "timestamp,task_10hz_min,task_10hz_max,task_10hz_mean,task_10hz_" - "stddev,task_20hz_min,task_20hz_max,task_20hz_mean,task_20hz_" - "stddev,task_250hz_min,task_250hz_max,task_250hz_mean,task_250hz_" - "stddev,sensor_state,state\n"; + os << "board_id\n"; } - void print(ostream &os) + void print(ostream &os, unsigned int index = 0) + { + (void)index; // Avoid unused warnings + + os << (int)mav_pkt.board_id << "\n"; + } + + static unsigned int messagesPerPacket() { - os << mav_pkt.timestamp << "," << mav_pkt.task_10hz_min << "," - << mav_pkt.task_10hz_max << "," << mav_pkt.task_10hz_mean << "," - << mav_pkt.task_10hz_stddev << "," << mav_pkt.task_20hz_min << "," - << mav_pkt.task_20hz_max << "," << mav_pkt.task_20hz_mean << "," - << mav_pkt.task_20hz_stddev << "," << mav_pkt.task_250hz_min << "," - << mav_pkt.task_250hz_max << "," << mav_pkt.task_250hz_mean << "," - << mav_pkt.task_250hz_stddev << "," << mav_pkt.sensor_state << "," - << (int)mav_pkt.state << "\n"; + return 1; } }; -struct MavStartLaunchTcData +struct MavDplTmData { - mavlink_start_launch_tc_t mav_pkt; + mavlink_dpl_tm_t mav_pkt; + + static void header(ostream &os) + { + os << "timestamp,cutter_1_test_current,cutter_2_test_current,fsm_state,cutter_state\n"; + } - static void header(ostream &os) { os << "launch_code\n"; } + void print(ostream &os, unsigned int index = 0) + { + (void)index; // Avoid unused warnings + + os << mav_pkt.timestamp << "," << mav_pkt.cutter_1_test_current << "," << mav_pkt.cutter_2_test_current << "," << (int)mav_pkt.fsm_state << "," << (int)mav_pkt.cutter_state << "\n"; + } - void print(ostream &os) { os << mav_pkt.launch_code << "\n"; } + static unsigned int messagesPerPacket() + { + return 1; + } }; -struct MavSysTmData +struct MavIgnTmData { - mavlink_sys_tm_t mav_pkt; + mavlink_ign_tm_t mav_pkt; static void header(ostream &os) { - os << "timestamp,death_stack,logger,ev_broker,pin_obs,fmm,sensor_" - "manager,ada,tmtc,ign,dpl\n"; + os << "timestamp,n_sent_messages,n_rcv_message,fsm_state,last_event,cmd_bitfield,stm32_bitfield,avr_bitfield\n"; } - void print(ostream &os) + void print(ostream &os, unsigned int index = 0) { - os << mav_pkt.timestamp << "," << (int)mav_pkt.death_stack << "," - << (int)mav_pkt.logger << "," << (int)mav_pkt.ev_broker << "," - << (int)mav_pkt.pin_obs << "," << (int)mav_pkt.fmm << "," - << (int)mav_pkt.sensor_manager << "," << (int)mav_pkt.ada << "," - << (int)mav_pkt.tmtc << "," << (int)mav_pkt.ign << "," - << (int)mav_pkt.dpl << "\n"; + (void)index; // Avoid unused warnings + + os << mav_pkt.timestamp << "," << mav_pkt.n_sent_messages << "," << mav_pkt.n_rcv_message << "," << (int)mav_pkt.fsm_state << "," << (int)mav_pkt.last_event << "," << (int)mav_pkt.cmd_bitfield << "," << (int)mav_pkt.stm32_bitfield << "," << (int)mav_pkt.avr_bitfield << "\n"; + } + + static unsigned int messagesPerPacket() + { + return 1; } }; -struct MavTelemetryRequestTcData +struct MavSmTmData { - mavlink_telemetry_request_tc_t mav_pkt; + mavlink_sm_tm_t mav_pkt; - static void header(ostream &os) { os << "board_id\n"; } + static void header(ostream &os) + { + os << "timestamp,task_10hz_min,task_10hz_max,task_10hz_mean,task_10hz_stddev,task_20hz_min,task_20hz_max,task_20hz_mean,task_20hz_stddev,task_250hz_min,task_250hz_max,task_250hz_mean,task_250hz_stddev,sensor_state,state\n"; + } + + void print(ostream &os, unsigned int index = 0) + { + (void)index; // Avoid unused warnings + + os << mav_pkt.timestamp << "," << mav_pkt.task_10hz_min << "," << mav_pkt.task_10hz_max << "," << mav_pkt.task_10hz_mean << "," << mav_pkt.task_10hz_stddev << "," << mav_pkt.task_20hz_min << "," << mav_pkt.task_20hz_max << "," << mav_pkt.task_20hz_mean << "," << mav_pkt.task_20hz_stddev << "," << mav_pkt.task_250hz_min << "," << mav_pkt.task_250hz_max << "," << mav_pkt.task_250hz_mean << "," << mav_pkt.task_250hz_stddev << "," << mav_pkt.sensor_state << "," << (int)mav_pkt.state << "\n"; + } - void print(ostream &os) { os << (int)mav_pkt.board_id << "\n"; } + static unsigned int messagesPerPacket() + { + return 1; + } }; -struct MavTestTmData +struct MavUploadSettingTcData { - mavlink_test_tm_t mav_pkt; + mavlink_upload_setting_tc_t mav_pkt; static void header(ostream &os) { - os << "timestamp,pressure_nxp,pressure_hw,x_acc,z_acc,gps_lat,gps_lon," - "gps_altitude,temp_analog,temp_imu,battery_volt,th_cut_1,th_cut_" - "2,gps_fix,gps_nsats,pin_nosecone,pin_launch\n"; + os << "setting,setting_id\n"; } - void print(ostream &os) + void print(ostream &os, unsigned int index = 0) { - os << mav_pkt.timestamp << "," << mav_pkt.pressure_nxp << "," - << mav_pkt.pressure_hw << "," << mav_pkt.x_acc << "," - << mav_pkt.z_acc << "," << mav_pkt.gps_lat << "," << mav_pkt.gps_lon - << "," << mav_pkt.gps_altitude << "," << mav_pkt.temp_analog << "," - << mav_pkt.temp_imu << "," << mav_pkt.battery_volt << "," - << mav_pkt.th_cut_1 << "," << mav_pkt.th_cut_2 << "," - << (int)mav_pkt.gps_fix << "," << (int)mav_pkt.gps_nsats << "," - << (int)mav_pkt.pin_nosecone << "," << (int)mav_pkt.pin_launch - << "\n"; + (void)index; // Avoid unused warnings + + os << mav_pkt.setting << "," << (int)mav_pkt.setting_id << "\n"; + } + + static unsigned int messagesPerPacket() + { + return 1; } }; -struct MavTmtcTmData +struct MavGpsTmData { - mavlink_tmtc_tm_t mav_pkt; + mavlink_gps_tm_t mav_pkt; static void header(ostream &os) { - os << "timestamp,parse_state,n_send_queue,max_send_queue,n_send_errors," - "packet_rx_success_count,packet_rx_drop_count,msg_received," - "buffer_overrun,parse_error,packet_idx,current_rx_seq,current_tx_" - "seq\n"; + os << "timestamp,lat,lon,altitude,vel_north,vel_east,vel_down,vel_mag,n_satellites,fix\n"; } - void print(ostream &os) + void print(ostream &os, unsigned int index = 0) { - os << mav_pkt.timestamp << "," << mav_pkt.parse_state << "," - << mav_pkt.n_send_queue << "," << mav_pkt.max_send_queue << "," - << mav_pkt.n_send_errors << "," << mav_pkt.packet_rx_success_count - << "," << mav_pkt.packet_rx_drop_count << "," - << (int)mav_pkt.msg_received << "," << (int)mav_pkt.buffer_overrun - << "," << (int)mav_pkt.parse_error << "," << (int)mav_pkt.packet_idx - << "," << (int)mav_pkt.current_rx_seq << "," - << (int)mav_pkt.current_tx_seq << "\n"; + (void)index; // Avoid unused warnings + + os << mav_pkt.timestamp << "," << mav_pkt.lat << "," << mav_pkt.lon << "," << mav_pkt.altitude << "," << mav_pkt.vel_north << "," << mav_pkt.vel_east << "," << mav_pkt.vel_down << "," << mav_pkt.vel_mag << "," << mav_pkt.n_satellites << "," << (int)mav_pkt.fix << "\n"; + } + + static unsigned int messagesPerPacket() + { + return 1; } }; -struct MavUploadSettingTcData +struct MavStartLaunchTcData { - mavlink_upload_setting_tc_t mav_pkt; + mavlink_start_launch_tc_t mav_pkt; - static void header(ostream &os) { os << "setting,setting_id\n"; } + static void header(ostream &os) + { + os << "launch_code\n"; + } - void print(ostream &os) + void print(ostream &os, unsigned int index = 0) { - os << mav_pkt.setting << "," << (int)mav_pkt.setting_id << "\n"; + (void)index; // Avoid unused warnings + + os << mav_pkt.launch_code << "\n"; + } + + static unsigned int messagesPerPacket() + { + return 1; } }; + + #pragma pack(pop) + -- GitLab