{
    "version": 1,
    "structs": {
        "HeartBeatTelemetry": {
            "port": 57005,
            "kind": "struct",
            "type": "HeartBeatTelemetry",
            "fields": [
                {
                    "name": "message",
                    "kind": "array",
                    "type": "char[8]",
                    "element": {
                        "kind": "primitive",
                        "type": "char",
                        "format_string": "<c"
                    },
                    "count": 8,
                    "format_string": "<cccccccc"
                },
                {
                    "name": "device_id",
                    "kind": "primitive",
                    "type": "unsigned int",
                    "format_string": "<I"
                },
                {
                    "name": "boot_counter",
                    "kind": "primitive",
                    "type": "unsigned int",
                    "format_string": "<I"
                },
                {
                    "name": "status_flags",
                    "kind": "primitive",
                    "type": "unsigned char",
                    "format_string": "<B"
                }
            ],
            "format_string": "<ccccccccIIB"
        },
        "BldcTelemetryPacket": {
            "port": 5000,
            "fragment": "bldc_id",
            "kind": "struct",
            "type": "BldcTelemetryPacket",
            "fields": [
                {
                    "name": "bldc_id",
                    "kind": "enum",
                    "type": "actuators::bldc::Id",
                    "format_string": "<B"
                },
                {
                    "name": "fsm_state",
                    "kind": "enum",
                    "type": "StateId",
                    "format_string": "<B"
                },
                {
                    "name": "timestamp_ms",
                    "kind": "primitive",
                    "type": "unsigned int",
                    "format_string": "<I"
                },
                {
                    "name": "telemetry",
                    "kind": "struct",
                    "type": "actuators::bldc::BldcTelemetry",
                    "fields": [
                        {
                            "name": "valve_position",
                            "kind": "primitive",
                            "type": "float",
                            "format_string": "<f"
                        },
                        {
                            "name": "motor_position",
                            "kind": "primitive",
                            "type": "float",
                            "format_string": "<f"
                        },
                        {
                            "name": "current_draw",
                            "kind": "primitive",
                            "type": "float",
                            "format_string": "<f"
                        },
                        {
                            "name": "u_p",
                            "kind": "primitive",
                            "type": "float",
                            "format_string": "<f"
                        },
                        {
                            "name": "u_i",
                            "kind": "primitive",
                            "type": "float",
                            "format_string": "<f"
                        },
                        {
                            "name": "u_d",
                            "kind": "primitive",
                            "type": "float",
                            "format_string": "<f"
                        },
                        {
                            "name": "u_total",
                            "kind": "primitive",
                            "type": "float",
                            "format_string": "<f"
                        },
                        {
                            "name": "u_raw",
                            "kind": "primitive",
                            "type": "float",
                            "format_string": "<f"
                        },
                        {
                            "name": "status_flags",
                            "kind": "primitive",
                            "type": "unsigned char",
                            "format_string": "<B"
                        }
                    ],
                    "format_string": "<ffffffffB"
                }
            ],
            "format_string": "<BBIffffffffB"
        },
        "FsmStatusPacket": {
            "port": 5001,
            "kind": "struct",
            "type": "FsmStatusPacket",
            "fields": [
                {
                    "name": "status",
                    "kind": "struct",
                    "type": "fsm::FsmStatus",
                    "fields": [
                        {
                            "name": "state_entry_time_ms",
                            "kind": "primitive",
                            "type": "unsigned long long",
                            "format_string": "<Q"
                        },
                        {
                            "name": "state_time_ms",
                            "kind": "primitive",
                            "type": "unsigned long long",
                            "format_string": "<Q"
                        },
                        {
                            "name": "current_state",
                            "kind": "enum",
                            "type": "StateId",
                            "format_string": "<B"
                        },
                        {
                            "name": "previous_state",
                            "kind": "enum",
                            "type": "StateId",
                            "format_string": "<B"
                        },
                        {
                            "name": "last_event",
                            "kind": "enum",
                            "type": "Event",
                            "format_string": "<B"
                        },
                        {
                            "name": "last_abort_reason",
                            "kind": "enum",
                            "type": "fsm::AbortReason",
                            "format_string": "<B"
                        }
                    ],
                    "format_string": "<QQBBBB"
                },
                {
                    "name": "timestamp_ms",
                    "kind": "primitive",
                    "type": "unsigned int",
                    "format_string": "<I"
                }
            ],
            "format_string": "<QQBBBBI"
        },
        "PressureSensorPacket": {
            "port": 5002,
            "fragment": "sensor_id",
            "packed": null,
            "kind": "struct",
            "type": "PressureSensorPacket",
            "fields": [
                {
                    "name": "sensor_id",
                    "kind": "enum",
                    "type": "sensors::pressure::Id",
                    "format_string": "<B"
                },
                {
                    "name": "data",
                    "packed": null,
                    "kind": "struct",
                    "type": "sensors::pressure::PressureBatch",
                    "fields": [
                        {
                            "name": "t0_us",
                            "kind": "primitive",
                            "type": "unsigned long long",
                            "format_string": "<Q"
                        },
                        {
                            "name": "dt_us",
                            "kind": "primitive",
                            "type": "unsigned int",
                            "format_string": "<I"
                        },
                        {
                            "name": "count",
                            "kind": "primitive",
                            "type": "unsigned char",
                            "format_string": "<B"
                        },
                        {
                            "name": "seq",
                            "kind": "primitive",
                            "type": "unsigned char",
                            "format_string": "<B"
                        },
                        {
                            "name": "samples",
                            "kind": "array",
                            "type": "short[20]",
                            "element": {
                                "kind": "primitive",
                                "type": "short",
                                "format_string": "<h"
                            },
                            "count": 20,
                            "format_string": "<hhhhhhhhhhhhhhhhhhhh"
                        }
                    ],
                    "format_string": "<QIBBhhhhhhhhhhhhhhhhhhhh"
                }
            ],
            "format_string": "<BQIBBhhhhhhhhhhhhhhhhhhhh"
        },
        "CapacitanceSensorPacket": {
            "port": 5011,
            "fragment": "sensor_id",
            "packed": null,
            "kind": "struct",
            "type": "CapacitanceSensorPacket",
            "fields": [
                {
                    "name": "sensor_id",
                    "kind": "enum",
                    "type": "sensors::capacitance::Id",
                    "format_string": "<B"
                },
                {
                    "name": "data",
                    "packed": null,
                    "kind": "struct",
                    "type": "sensors::capacitance::CapacitanceBatch",
                    "fields": [
                        {
                            "name": "t0_us",
                            "kind": "primitive",
                            "type": "unsigned long long",
                            "format_string": "<Q"
                        },
                        {
                            "name": "dt_us",
                            "kind": "primitive",
                            "type": "unsigned int",
                            "format_string": "<I"
                        },
                        {
                            "name": "count",
                            "kind": "primitive",
                            "type": "unsigned char",
                            "format_string": "<B"
                        },
                        {
                            "name": "seq",
                            "kind": "primitive",
                            "type": "unsigned char",
                            "format_string": "<B"
                        },
                        {
                            "name": "samples",
                            "kind": "array",
                            "type": "sensors::capacitance::CapacitanceSample[8]",
                            "element": {
                                "packed": null,
                                "kind": "struct",
                                "type": "sensors::capacitance::CapacitanceSample",
                                "fields": [
                                    {
                                        "name": "offset_cpf",
                                        "kind": "primitive",
                                        "type": "short",
                                        "format_string": "<h"
                                    },
                                    {
                                        "name": "raw_cpf",
                                        "kind": "primitive",
                                        "type": "short",
                                        "format_string": "<h"
                                    },
                                    {
                                        "name": "adjusted_cpf",
                                        "kind": "primitive",
                                        "type": "short",
                                        "format_string": "<h"
                                    }
                                ],
                                "format_string": "<hhh"
                            },
                            "count": 8,
                            "format_string": "<hhhhhhhhhhhhhhhhhhhhhhhh"
                        }
                    ],
                    "format_string": "<QIBBhhhhhhhhhhhhhhhhhhhhhhhh"
                }
            ],
            "format_string": "<BQIBBhhhhhhhhhhhhhhhhhhhhhhhh"
        },
        "LevelTelemetryPacket": {
            "port": 5010,
            "packed": null,
            "kind": "struct",
            "type": "LevelTelemetryPacket",
            "fields": [
                {
                    "name": "timestamp_ms",
                    "kind": "primitive",
                    "type": "unsigned int",
                    "format_string": "<I"
                },
                {
                    "name": "data",
                    "kind": "struct",
                    "type": "sensors::capacitance::LevelBatch",
                    "fields": [
                        {
                            "name": "t0_us",
                            "kind": "primitive",
                            "type": "unsigned long long",
                            "format_string": "<Q"
                        },
                        {
                            "name": "dt_us",
                            "kind": "primitive",
                            "type": "unsigned int",
                            "format_string": "<I"
                        },
                        {
                            "name": "count",
                            "kind": "primitive",
                            "type": "unsigned char",
                            "format_string": "<B"
                        },
                        {
                            "name": "seq",
                            "kind": "primitive",
                            "type": "unsigned char",
                            "format_string": "<B"
                        },
                        {
                            "name": "heights_m",
                            "kind": "array",
                            "type": "float[10]",
                            "element": {
                                "kind": "primitive",
                                "type": "float",
                                "format_string": "<f"
                            },
                            "count": 10,
                            "format_string": "<ffffffffff"
                        }
                    ],
                    "format_string": "<QIBBffffffffff"
                }
            ],
            "format_string": "<IQIBBffffffffff"
        },
        "ServoStatusPacket": {
            "port": 5003,
            "fragment": "servo_id",
            "kind": "struct",
            "type": "ServoStatusPacket",
            "fields": [
                {
                    "name": "servo_id",
                    "kind": "enum",
                    "type": "actuators::servo::Id",
                    "format_string": "<B"
                },
                {
                    "name": "timestamp_ms",
                    "kind": "primitive",
                    "type": "unsigned int",
                    "format_string": "<I"
                },
                {
                    "name": "status",
                    "kind": "struct",
                    "type": "actuators::servo::ServoStatus",
                    "fields": [
                        {
                            "name": "commanded_angle_deg",
                            "kind": "primitive",
                            "type": "float",
                            "format_string": "<f"
                        },
                        {
                            "name": "target_angle_deg",
                            "kind": "primitive",
                            "type": "float",
                            "format_string": "<f"
                        },
                        {
                            "name": "measured_angle_deg",
                            "kind": "primitive",
                            "type": "float",
                            "format_string": "<f"
                        },
                        {
                            "name": "current_ma",
                            "kind": "primitive",
                            "type": "float",
                            "format_string": "<f"
                        },
                        {
                            "name": "power_state",
                            "kind": "enum",
                            "type": "actuators::servo::PowerState",
                            "format_string": "<B"
                        }
                    ],
                    "format_string": "<ffffB"
                }
            ],
            "format_string": "<BIffffB"
        },
        "SolenoidStatusPacket": {
            "port": 5004,
            "fragment": "solenoid_id",
            "kind": "struct",
            "type": "SolenoidStatusPacket",
            "fields": [
                {
                    "name": "solenoid_id",
                    "kind": "enum",
                    "type": "actuators::solenoid::Id",
                    "format_string": "<B"
                },
                {
                    "name": "timestamp_ms",
                    "kind": "primitive",
                    "type": "unsigned int",
                    "format_string": "<I"
                },
                {
                    "name": "status",
                    "kind": "struct",
                    "type": "actuators::solenoid::SolenoidStatus",
                    "fields": [
                        {
                            "name": "power_state",
                            "kind": "enum",
                            "type": "actuators::solenoid::PowerState",
                            "format_string": "<B"
                        },
                        {
                            "name": "opening",
                            "kind": "enum",
                            "type": "actuators::solenoid::Opening",
                            "format_string": "<B"
                        },
                        {
                            "name": "current_ma",
                            "kind": "primitive",
                            "type": "float",
                            "format_string": "<f"
                        }
                    ],
                    "format_string": "<BBf"
                }
            ],
            "format_string": "<BIBBf"
        },
        "RegulatorStatusPacket": {
            "port": 5005,
            "fragment": "regulator_id",
            "kind": "struct",
            "type": "RegulatorStatusPacket",
            "fields": [
                {
                    "name": "regulator_id",
                    "kind": "enum",
                    "type": "regulator::Id",
                    "format_string": "<B"
                },
                {
                    "name": "timestamp_ms",
                    "kind": "primitive",
                    "type": "unsigned int",
                    "format_string": "<I"
                },
                {
                    "name": "status",
                    "kind": "struct",
                    "type": "regulators::RegulatorStatus",
                    "fields": [
                        {
                            "name": "operator_enabled",
                            "kind": "primitive",
                            "type": "bool",
                            "format_string": "<?"
                        },
                        {
                            "name": "policy_enabled",
                            "kind": "primitive",
                            "type": "bool",
                            "format_string": "<?"
                        },
                        {
                            "name": "active",
                            "kind": "primitive",
                            "type": "bool",
                            "format_string": "<?"
                        },
                        {
                            "name": "reserved",
                            "kind": "primitive",
                            "type": "bool",
                            "format_string": "<?"
                        },
                        {
                            "name": "valveSetpoint",
                            "kind": "primitive",
                            "type": "float",
                            "format_string": "<f"
                        },
                        {
                            "name": "setpoint",
                            "kind": "primitive",
                            "type": "float",
                            "format_string": "<f"
                        },
                        {
                            "name": "kp",
                            "kind": "primitive",
                            "type": "float",
                            "format_string": "<f"
                        },
                        {
                            "name": "ki",
                            "kind": "primitive",
                            "type": "float",
                            "format_string": "<f"
                        },
                        {
                            "name": "kd",
                            "kind": "primitive",
                            "type": "float",
                            "format_string": "<f"
                        },
                        {
                            "name": "integral",
                            "kind": "primitive",
                            "type": "float",
                            "format_string": "<f"
                        },
                        {
                            "name": "previous_error",
                            "kind": "primitive",
                            "type": "float",
                            "format_string": "<f"
                        },
                        {
                            "name": "last_measurement",
                            "kind": "primitive",
                            "type": "float",
                            "format_string": "<f"
                        },
                        {
                            "name": "last_output",
                            "kind": "primitive",
                            "type": "float",
                            "format_string": "<f"
                        },
                        {
                            "name": "last_servo_command_",
                            "kind": "primitive",
                            "type": "float",
                            "format_string": "<f"
                        },
                        {
                            "name": "last_update_ms",
                            "kind": "primitive",
                            "type": "unsigned int",
                            "format_string": "<I"
                        }
                    ],
                    "format_string": "<????ffffffffffI"
                }
            ],
            "format_string": "<BI????ffffffffffI"
        },
        "ThermocouplePacket": {
            "port": 5006,
            "fragment": "thermocouple_id",
            "kind": "struct",
            "type": "ThermocouplePacket",
            "fields": [
                {
                    "name": "thermocouple_id",
                    "kind": "enum",
                    "type": "proto::can::thermocouple::Id",
                    "format_string": "<B"
                },
                {
                    "name": "timestamp_ms",
                    "kind": "primitive",
                    "type": "unsigned int",
                    "format_string": "<I"
                },
                {
                    "name": "data",
                    "kind": "struct",
                    "type": "proto::can::thermocouple::ThermocoupleSample",
                    "fields": [
                        {
                            "name": "id",
                            "kind": "enum",
                            "type": "proto::can::thermocouple::Id",
                            "format_string": "<B"
                        },
                        {
                            "name": "timestamp_us",
                            "kind": "primitive",
                            "type": "unsigned long long",
                            "format_string": "<Q"
                        },
                        {
                            "name": "interval_us",
                            "kind": "primitive",
                            "type": "float",
                            "format_string": "<f"
                        },
                        {
                            "name": "temperature_c",
                            "kind": "array",
                            "type": "float[8]",
                            "element": {
                                "kind": "primitive",
                                "type": "float",
                                "format_string": "<f"
                            },
                            "count": 8,
                            "format_string": "<ffffffff"
                        }
                    ],
                    "format_string": "<BQfffffffff"
                }
            ],
            "format_string": "<BIBQfffffffff"
        },
        "BldcConfigTelmetryPacket": {
            "port": 5008,
            "fragment": "bldc_id",
            "kind": "struct",
            "type": "BldcConfigTelmetryPacket",
            "fields": [
                {
                    "name": "bldc_id",
                    "kind": "enum",
                    "type": "actuators::bldc::Id",
                    "format_string": "<B"
                },
                {
                    "name": "config",
                    "kind": "struct",
                    "type": "actuators::bldc::ControllerConfig",
                    "fields": [
                        {
                            "name": "pressurize_pid_gains",
                            "kind": "struct",
                            "type": "actuators::bldc::PidGains",
                            "fields": [
                                {
                                    "name": "p",
                                    "kind": "primitive",
                                    "type": "double",
                                    "format_string": "<d"
                                },
                                {
                                    "name": "i",
                                    "kind": "primitive",
                                    "type": "double",
                                    "format_string": "<d"
                                },
                                {
                                    "name": "d",
                                    "kind": "primitive",
                                    "type": "double",
                                    "format_string": "<d"
                                },
                                {
                                    "name": "normalization_factor",
                                    "kind": "primitive",
                                    "type": "double",
                                    "format_string": "<d"
                                },
                                {
                                    "name": "integral_clamp",
                                    "kind": "primitive",
                                    "type": "bool",
                                    "format_string": "<?"
                                },
                                {
                                    "name": "integral_clamp_max",
                                    "kind": "primitive",
                                    "type": "double",
                                    "format_string": "<d"
                                },
                                {
                                    "name": "integral_clamp_min",
                                    "kind": "primitive",
                                    "type": "double",
                                    "format_string": "<d"
                                }
                            ],
                            "format_string": "<dddd?dd"
                        },
                        {
                            "name": "run_pid_gains",
                            "kind": "struct",
                            "type": "actuators::bldc::PidGains",
                            "fields": [
                                {
                                    "name": "p",
                                    "kind": "primitive",
                                    "type": "double",
                                    "format_string": "<d"
                                },
                                {
                                    "name": "i",
                                    "kind": "primitive",
                                    "type": "double",
                                    "format_string": "<d"
                                },
                                {
                                    "name": "d",
                                    "kind": "primitive",
                                    "type": "double",
                                    "format_string": "<d"
                                },
                                {
                                    "name": "normalization_factor",
                                    "kind": "primitive",
                                    "type": "double",
                                    "format_string": "<d"
                                },
                                {
                                    "name": "integral_clamp",
                                    "kind": "primitive",
                                    "type": "bool",
                                    "format_string": "<?"
                                },
                                {
                                    "name": "integral_clamp_max",
                                    "kind": "primitive",
                                    "type": "double",
                                    "format_string": "<d"
                                },
                                {
                                    "name": "integral_clamp_min",
                                    "kind": "primitive",
                                    "type": "double",
                                    "format_string": "<d"
                                }
                            ],
                            "format_string": "<dddd?dd"
                        },
                        {
                            "name": "minimum_position",
                            "kind": "primitive",
                            "type": "double",
                            "format_string": "<d"
                        },
                        {
                            "name": "maximum_position",
                            "kind": "primitive",
                            "type": "double",
                            "format_string": "<d"
                        },
                        {
                            "name": "valve_encoder_offset",
                            "kind": "primitive",
                            "type": "double",
                            "format_string": "<d"
                        },
                        {
                            "name": "can_watchdog_timeout",
                            "kind": "primitive",
                            "type": "unsigned long long",
                            "format_string": "<Q"
                        },
                        {
                            "name": "end_pressure_ref",
                            "kind": "primitive",
                            "type": "double",
                            "format_string": "<d"
                        },
                        {
                            "name": "pressurizing_time",
                            "kind": "primitive",
                            "type": "double",
                            "format_string": "<d"
                        },
                        {
                            "name": "gear_ratio",
                            "kind": "primitive",
                            "type": "float",
                            "format_string": "<f"
                        },
                        {
                            "name": "max_torque",
                            "kind": "primitive",
                            "type": "double",
                            "format_string": "<d"
                        },
                        {
                            "name": "dvdt_nominal",
                            "kind": "primitive",
                            "type": "double",
                            "format_string": "<d"
                        },
                        {
                            "name": "cv_max",
                            "kind": "primitive",
                            "type": "double",
                            "format_string": "<d"
                        },
                        {
                            "name": "control_valve_curve_pressurization",
                            "kind": "struct",
                            "type": "SigmoidParameters",
                            "fields": [
                                {
                                    "name": "a",
                                    "kind": "primitive",
                                    "type": "double",
                                    "format_string": "<d"
                                },
                                {
                                    "name": "b",
                                    "kind": "primitive",
                                    "type": "double",
                                    "format_string": "<d"
                                }
                            ],
                            "format_string": "<dd"
                        },
                        {
                            "name": "control_valve_curve_run",
                            "kind": "struct",
                            "type": "SigmoidParameters",
                            "fields": [
                                {
                                    "name": "a",
                                    "kind": "primitive",
                                    "type": "double",
                                    "format_string": "<d"
                                },
                                {
                                    "name": "b",
                                    "kind": "primitive",
                                    "type": "double",
                                    "format_string": "<d"
                                }
                            ],
                            "format_string": "<dd"
                        },
                        {
                            "name": "main_valve_curve",
                            "kind": "struct",
                            "type": "SigmoidParameters",
                            "fields": [
                                {
                                    "name": "a",
                                    "kind": "primitive",
                                    "type": "double",
                                    "format_string": "<d"
                                },
                                {
                                    "name": "b",
                                    "kind": "primitive",
                                    "type": "double",
                                    "format_string": "<d"
                                }
                            ],
                            "format_string": "<dd"
                        }
                    ],
                    "format_string": "<dddd?dddddd?dddddQddfddddddddd"
                }
            ],
            "format_string": "<Bdddd?dddddd?dddddQddfddddddddd"
        },
        "BatteryMonitorTelemetryPacket": {
            "port": 5009,
            "kind": "struct",
            "type": "BatteryMonitorTelemetryPacket",
            "fields": [
                {
                    "name": "timestamp_ms",
                    "kind": "primitive",
                    "type": "unsigned int",
                    "format_string": "<I"
                },
                {
                    "name": "voltages",
                    "kind": "array",
                    "type": "float[2]",
                    "element": {
                        "kind": "primitive",
                        "type": "float",
                        "format_string": "<f"
                    },
                    "count": 2,
                    "format_string": "<ff"
                }
            ],
            "format_string": "<Iff"
        },
        "BmsTelemetryPacket": {
            "port": 5012,
            "kind": "struct",
            "type": "BmsTelemetryPacket",
            "fields": [
                {
                    "name": "timestamp_ms",
                    "kind": "primitive",
                    "type": "unsigned int",
                    "format_string": "<I"
                },
                {
                    "name": "rail",
                    "kind": "struct",
                    "type": "sensors::bms::RailData",
                    "fields": [
                        {
                            "name": "vbat",
                            "kind": "struct",
                            "type": "sensors::bms::RailMeasurement",
                            "fields": [
                                {
                                    "name": "current",
                                    "kind": "primitive",
                                    "type": "float",
                                    "format_string": "<f"
                                },
                                {
                                    "name": "volts",
                                    "kind": "primitive",
                                    "type": "float",
                                    "format_string": "<f"
                                },
                                {
                                    "name": "shunt_voltage",
                                    "kind": "primitive",
                                    "type": "float",
                                    "format_string": "<f"
                                },
                                {
                                    "name": "power",
                                    "kind": "primitive",
                                    "type": "float",
                                    "format_string": "<f"
                                }
                            ],
                            "format_string": "<ffff"
                        },
                        {
                            "name": "v_12",
                            "kind": "struct",
                            "type": "sensors::bms::RailMeasurement",
                            "fields": [
                                {
                                    "name": "current",
                                    "kind": "primitive",
                                    "type": "float",
                                    "format_string": "<f"
                                },
                                {
                                    "name": "volts",
                                    "kind": "primitive",
                                    "type": "float",
                                    "format_string": "<f"
                                },
                                {
                                    "name": "shunt_voltage",
                                    "kind": "primitive",
                                    "type": "float",
                                    "format_string": "<f"
                                },
                                {
                                    "name": "power",
                                    "kind": "primitive",
                                    "type": "float",
                                    "format_string": "<f"
                                }
                            ],
                            "format_string": "<ffff"
                        },
                        {
                            "name": "v_24",
                            "kind": "struct",
                            "type": "sensors::bms::RailMeasurement",
                            "fields": [
                                {
                                    "name": "current",
                                    "kind": "primitive",
                                    "type": "float",
                                    "format_string": "<f"
                                },
                                {
                                    "name": "volts",
                                    "kind": "primitive",
                                    "type": "float",
                                    "format_string": "<f"
                                },
                                {
                                    "name": "shunt_voltage",
                                    "kind": "primitive",
                                    "type": "float",
                                    "format_string": "<f"
                                },
                                {
                                    "name": "power",
                                    "kind": "primitive",
                                    "type": "float",
                                    "format_string": "<f"
                                }
                            ],
                            "format_string": "<ffff"
                        }
                    ],
                    "format_string": "<ffffffffffff"
                },
                {
                    "name": "battery_pack",
                    "kind": "struct",
                    "type": "sensors::bms::BatteryPackData",
                    "fields": [
                        {
                            "name": "cell",
                            "kind": "array",
                            "type": "float[6]",
                            "element": {
                                "kind": "primitive",
                                "type": "float",
                                "format_string": "<f"
                            },
                            "count": 6,
                            "format_string": "<ffffff"
                        },
                        {
                            "name": "voltage",
                            "kind": "primitive",
                            "type": "float",
                            "format_string": "<f"
                        },
                        {
                            "name": "current",
                            "kind": "primitive",
                            "type": "float",
                            "format_string": "<f"
                        },
                        {
                            "name": "die_temperature",
                            "kind": "primitive",
                            "type": "float",
                            "format_string": "<f"
                        },
                        {
                            "name": "thermistor_volts",
                            "kind": "primitive",
                            "type": "float",
                            "format_string": "<f"
                        },
                        {
                            "name": "vbatSense_volts",
                            "kind": "primitive",
                            "type": "float",
                            "format_string": "<f"
                        },
                        {
                            "name": "balancing_mask",
                            "kind": "primitive",
                            "type": "unsigned char",
                            "format_string": "<B"
                        },
                        {
                            "name": "alert",
                            "kind": "primitive",
                            "type": "bool",
                            "format_string": "<?"
                        },
                        {
                            "name": "comms_ok",
                            "kind": "primitive",
                            "type": "bool",
                            "format_string": "<?"
                        }
                    ],
                    "format_string": "<fffffffffffB??"
                },
                {
                    "name": "charger",
                    "kind": "struct",
                    "type": "sensors::bms::ChargerData",
                    "fields": [
                        {
                            "name": "vac",
                            "kind": "primitive",
                            "type": "double",
                            "format_string": "<d"
                        },
                        {
                            "name": "vbat",
                            "kind": "primitive",
                            "type": "double",
                            "format_string": "<d"
                        },
                        {
                            "name": "vsys",
                            "kind": "primitive",
                            "type": "double",
                            "format_string": "<d"
                        },
                        {
                            "name": "iac",
                            "kind": "primitive",
                            "type": "double",
                            "format_string": "<d"
                        },
                        {
                            "name": "ibat",
                            "kind": "primitive",
                            "type": "double",
                            "format_string": "<d"
                        },
                        {
                            "name": "temperature",
                            "kind": "primitive",
                            "type": "double",
                            "format_string": "<d"
                        },
                        {
                            "name": "charging",
                            "kind": "primitive",
                            "type": "bool",
                            "format_string": "<?"
                        },
                        {
                            "name": "powerGood",
                            "kind": "primitive",
                            "type": "bool",
                            "format_string": "<?"
                        },
                        {
                            "name": "faults",
                            "kind": "primitive",
                            "type": "unsigned char",
                            "format_string": "<B"
                        },
                        {
                            "name": "state",
                            "kind": "enum",
                            "type": "sensors::bms::ChargingStatus",
                            "format_string": "<B"
                        }
                    ],
                    "format_string": "<dddddd??BB"
                }
            ],
            "format_string": "<IfffffffffffffffffffffffB??dddddd??BB"
        },
        "StorageTelemetryPacket": {
            "port": 5014,
            "fragment": "id",
            "kind": "struct",
            "type": "StorageTelemetryPacket",
            "fields": [
                {
                    "name": "id",
                    "kind": "enum",
                    "type": "storage::Id",
                    "format_string": "<B"
                },
                {
                    "name": "timestamp_ms",
                    "kind": "primitive",
                    "type": "unsigned int",
                    "format_string": "<I"
                },
                {
                    "name": "storage",
                    "kind": "struct",
                    "type": "StorageTelemetry",
                    "fields": [
                        {
                            "name": "total_bytes",
                            "kind": "primitive",
                            "type": "unsigned long long",
                            "format_string": "<Q"
                        },
                        {
                            "name": "free_bytes",
                            "kind": "primitive",
                            "type": "unsigned long long",
                            "format_string": "<Q"
                        },
                        {
                            "name": "read_bps",
                            "kind": "primitive",
                            "type": "unsigned int",
                            "format_string": "<I"
                        },
                        {
                            "name": "write_bps",
                            "kind": "primitive",
                            "type": "unsigned int",
                            "format_string": "<I"
                        },
                        {
                            "name": "state",
                            "kind": "enum",
                            "type": "StorageState",
                            "format_string": "<B"
                        },
                        {
                            "name": "device_present",
                            "kind": "primitive",
                            "type": "unsigned char",
                            "format_string": "<B"
                        }
                    ],
                    "format_string": "<QQIIBB"
                }
            ],
            "format_string": "<BIQQIIBB"
        },
        "TransferTelemetryPacket": {
            "port": 5015,
            "kind": "struct",
            "type": "TransferTelemetryPacket",
            "fields": [
                {
                    "name": "timestamp_ms",
                    "kind": "primitive",
                    "type": "unsigned int",
                    "format_string": "<I"
                },
                {
                    "name": "transfer",
                    "kind": "struct",
                    "type": "TransferTelemetry",
                    "fields": [
                        {
                            "name": "total_bytes",
                            "kind": "primitive",
                            "type": "unsigned long long",
                            "format_string": "<Q"
                        },
                        {
                            "name": "bytes_copied",
                            "kind": "primitive",
                            "type": "unsigned long long",
                            "format_string": "<Q"
                        },
                        {
                            "name": "state",
                            "kind": "enum",
                            "type": "TransferState",
                            "format_string": "<B"
                        }
                    ],
                    "format_string": "<QQB"
                }
            ],
            "format_string": "<IQQB"
        }
    },
    "enums": {
        "actuators::bldc::Id": {
            "Fuel": 0,
            "Ox": 1,
            "Count": 2
        },
        "StateId": {
            "Safe": 0,
            "N2Fill": 1,
            "PostN2Fill": 2,
            "OxFill": 3,
            "PostOxFill": 4,
            "Pressurized": 5,
            "Armed": 6,
            "Burn": 7,
            "Shutdown": 8,
            "Purge": 9,
            "Hold": 10
        },
        "Event": {
            "Boot": 0,
            "NextState": 1,
            "PreviousState": 2,
            "Timeout": 3,
            "CalibrateRequest": 4,
            "BurnwireCut": 5,
            "Abort": 6,
            "None": 7,
            "Count": 8
        },
        "fsm::AbortReason": {
            "None": 0,
            "Manual": 1,
            "FuelTankOverpressure": 2,
            "OxTankOverpressure": 3,
            "ChamberUnderpressure": 4,
            "ConnectionLost": 5
        },
        "sensors::pressure::Id": {
            "N2Tank": 0,
            "OxTank": 1,
            "OxInjector": 2,
            "FuelTank": 3,
            "FuelInjector": 4,
            "FuelInlet": 5,
            "Chamber": 6,
            "Count": 7
        },
        "sensors::capacitance::Id": {
            "Main": 0,
            "LiquidRef": 1,
            "GasRef": 2,
            "Count": 3
        },
        "actuators::servo::Id": {
            "MainFuel": 0,
            "MainOx": 1,
            "OxFill": 2,
            "OxBoiloff": 3,
            "OxPrechill": 4,
            "Purge": 5,
            "Count": 6
        },
        "actuators::servo::PowerState": {
            "Unknown": 0,
            "Off": 1,
            "Booting": 2,
            "On": 3
        },
        "actuators::solenoid::Id": {
            "FuelVent": 0,
            "OxVent": 1,
            "N2Fill": 2,
            "Count": 3
        },
        "actuators::solenoid::PowerState": {
            "Unknown": 0,
            "Off": 1,
            "On": 2
        },
        "actuators::solenoid::Opening": {
            "Unknown": 0,
            "Closed": 1,
            "Open": 2
        },
        "regulator::Id": {
            "OxBoiloff": 0,
            "Count": 1
        },
        "proto::can::thermocouple::Id": {
            "OxTankBottom": 0,
            "OxTankTop": 1,
            "FuelTank": 2,
            "OxInjector": 3,
            "FuelInjector": 5,
            "Chamber0": 8,
            "Chamber1": 9,
            "Chamber2": 10,
            "Chamber3": 11,
            "Count": 12
        },
        "sensors::bms::ChargingStatus": {
            "NotCharging": 0,
            "TrickleCharge": 1,
            "PreCharge": 2,
            "FastCharge": 3,
            "TaperCharge": 4,
            "Reserved": 5,
            "TopOffTimerCharge": 6,
            "ChargeTermination": 7
        },
        "storage::Id": {
            "SdCard": 0,
            "NandFlash": 1,
            "Count": 2
        },
        "StorageState": {
            "NotStarted": 0,
            "NoDevice": 1,
            "Formatting": 2,
            "Running": 3,
            "PeripheralError": 4,
            "FormattingError": 5,
            "OpenError": 6
        },
        "TransferState": {
            "Idle": 0,
            "InProgress": 1,
            "Success": 2,
            "SourceNotReady": 3,
            "SourceOpenError": 4,
            "DestinationNotReady": 5,
            "DestinationCreateError": 6,
            "DestinationOpenError": 7,
            "ReadError": 8,
            "WriteError": 9
        }
    }
}
