{
    "version": 1,
    "structs": {
        "FsmCommands::NextStatePayload": {
            "id": 32,
            "kind": "struct",
            "type": "FsmCommands::NextStatePayload",
            "fields": [
                {
                    "name": "current_state",
                    "kind": "enum",
                    "type": "StateId",
                    "format_string": "<B"
                }
            ],
            "format_string": "<B"
        },
        "FsmCommands::PreviousStatePayload": {
            "id": 33,
            "kind": "struct",
            "type": "FsmCommands::PreviousStatePayload",
            "fields": [
                {
                    "name": "current_state",
                    "kind": "enum",
                    "type": "StateId",
                    "format_string": "<B"
                }
            ],
            "format_string": "<B"
        },
        "FsmCommands::AbortPayload": {
            "id": 34,
            "kind": "struct",
            "type": "FsmCommands::AbortPayload",
            "fields": [
                {
                    "name": "reserved",
                    "kind": "primitive",
                    "type": "unsigned char",
                    "format_string": "<B"
                }
            ],
            "format_string": "<B"
        },
        "FsmCommands::StatusPayload": {
            "id": 35,
            "kind": "struct",
            "type": "FsmCommands::StatusPayload",
            "fields": [
                {
                    "name": "reserved",
                    "kind": "primitive",
                    "type": "unsigned char",
                    "format_string": "<B"
                }
            ],
            "format_string": "<B"
        },
        "LinkMonitorCommands::MarkSeenPayload": {
            "id": 128,
            "kind": "struct",
            "type": "LinkMonitorCommands::MarkSeenPayload",
            "fields": [
                {
                    "name": "payload",
                    "kind": "primitive",
                    "type": "unsigned char",
                    "format_string": "<B"
                }
            ],
            "format_string": "<B"
        },
        "ServoCommands::OpenCloseServoPayload": {
            "id": 48,
            "kind": "struct",
            "type": "ServoCommands::OpenCloseServoPayload",
            "fields": [
                {
                    "name": "servo_id",
                    "kind": "enum",
                    "type": "actuators::servo::Id",
                    "format_string": "<B"
                },
                {
                    "name": "open_close",
                    "kind": "enum",
                    "type": "ServoCommands::OpenClose",
                    "format_string": "<B"
                },
                {
                    "name": "duration_ms",
                    "kind": "primitive",
                    "type": "unsigned short",
                    "format_string": "<H"
                },
                {
                    "name": "delay_ms",
                    "kind": "primitive",
                    "type": "unsigned short",
                    "format_string": "<H"
                },
                {
                    "name": "position_mode",
                    "kind": "enum",
                    "type": "actuators::servo::PositionMode",
                    "format_string": "<B"
                },
                {
                    "name": "start_policy",
                    "kind": "enum",
                    "type": "actuators::servo::StartPolicy",
                    "format_string": "<B"
                }
            ],
            "format_string": "<BBHHBB"
        },
        "ServoCommands::SetServoPayload": {
            "id": 49,
            "kind": "struct",
            "type": "ServoCommands::SetServoPayload",
            "fields": [
                {
                    "name": "servo_id",
                    "kind": "enum",
                    "type": "actuators::servo::Id",
                    "format_string": "<B"
                },
                {
                    "name": "angle_deg",
                    "kind": "primitive",
                    "type": "float",
                    "format_string": "<f"
                },
                {
                    "name": "duration_ms",
                    "kind": "primitive",
                    "type": "unsigned short",
                    "format_string": "<H"
                },
                {
                    "name": "delay_ms",
                    "kind": "primitive",
                    "type": "unsigned short",
                    "format_string": "<H"
                },
                {
                    "name": "position_mode",
                    "kind": "enum",
                    "type": "actuators::servo::PositionMode",
                    "format_string": "<B"
                },
                {
                    "name": "start_policy",
                    "kind": "enum",
                    "type": "actuators::servo::StartPolicy",
                    "format_string": "<B"
                }
            ],
            "format_string": "<BfHHBB"
        },
        "SolenoidCommands::OpenCloseSolenoidPayload": {
            "id": 80,
            "kind": "struct",
            "type": "SolenoidCommands::OpenCloseSolenoidPayload",
            "fields": [
                {
                    "name": "solenoid_id",
                    "kind": "enum",
                    "type": "actuators::solenoid::Id",
                    "format_string": "<B"
                },
                {
                    "name": "opening_type",
                    "kind": "enum",
                    "type": "SolenoidCommands::OpeningType",
                    "format_string": "<B"
                }
            ],
            "format_string": "<BB"
        }
    },
    "enums": {
        "StateId": {
            "Safe": 0,
            "FuelFill": 1,
            "PostFuelFill": 2,
            "RecoveryFill": 3,
            "PostRecoveryFill": 4,
            "N2Fill": 5,
            "PostN2Fill": 6,
            "OxFill": 7,
            "PostOxFill": 8,
            "QDDisconnect": 9,
            "Hold": 10
        },
        "actuators::servo::Id": {
            "OxSupply": 0,
            "Count": 1
        },
        "ServoCommands::OpenClose": {
            "Open": 0,
            "Close": 1
        },
        "actuators::servo::PositionMode": {
            "Absolute": 0,
            "Relative": 1
        },
        "actuators::servo::StartPolicy": {
            "Preempt": 0,
            "NoInterrupt": 1
        },
        "actuators::solenoid::Id": {
            "OxBleed": 0,
            "N2_200_Supply": 1,
            "N2_200_Bleed": 2,
            "N2_300_Supply": 3,
            "N2_300_Bleed": 4,
            "QD_1": 5,
            "QD_2": 6,
            "Count": 7
        },
        "SolenoidCommands::OpeningType": {
            "Open": 0,
            "Close": 1
        }
    }
}
