cu-flight-controller 1.2.1

This is a basic quadcopter Flight Controller implemented end to end using Copper components
(
    tasks: [
        (
            id: "attitude",
            type: "tasks::AttitudeController",
            logging: (enabled: false),
            config: {
                "angle_limit_deg": 60.0,
                "rate_limit_dps": 210.0,
                "acro_rate_dps": 500.0,
                "acro_expo": 0.4,
                "kp": {{attitude_kp}},
                "ki": 0.0,
                "kd": 0.0,
            },
        ),
    ],
    cnx: [
        (
            src: "{{control_source}}",
            dst: "attitude",
            msg: "crate::messages::ControlInputs",
        ),
        (
            src: "{{control_source}}",
            dst: "rate",
            msg: "crate::messages::ControlInputs",
        ),
        (
            src: "{{control_source}}",
            dst: "act_led",
            msg: "crate::messages::ControlInputs",
        ),
        (
            src: "{{control_source}}",
            dst: "mixer0",
            msg: "crate::messages::ControlInputs",
        ),
        (
            src: "{{control_source}}",
            dst: "mixer1",
            msg: "crate::messages::ControlInputs",
        ),
        (
            src: "{{control_source}}",
            dst: "mixer2",
            msg: "crate::messages::ControlInputs",
        ),
        (
            src: "{{control_source}}",
            dst: "mixer3",
            msg: "crate::messages::ControlInputs",
        ),
        (
            src: "{{control_source}}",
            dst: "vtx_osd",
            msg: "crate::messages::ControlInputs",
        ),
        (
            src: "dps310",
            dst: "vtx_osd",
            msg: "cu_sensor_payloads::BarometerPayload",
        ),
        (
            src: "mag_heading",
            dst: "vtx_osd",
            msg: "crate::messages::GeographicHeading",
        ),
        (
            src: "rate",
            dst: "mixer0",
            msg: "crate::messages::BodyCommand",
        ),
        (
            src: "rate",
            dst: "mixer1",
            msg: "crate::messages::BodyCommand",
        ),
        (
            src: "rate",
            dst: "mixer2",
            msg: "crate::messages::BodyCommand",
        ),
        (
            src: "rate",
            dst: "mixer3",
            msg: "crate::messages::BodyCommand",
        ),
        (
            src: "battery_adc",
            dst: "vtx_osd",
            msg: "crate::messages::BatteryVoltage",
        ),
        (
            src: "vtx_msp/incoming",
            dst: "vtx_osd",
            msg: "cu_msp_bridge::MspRequestBatch",
        ),
        (
            src: "gnss_ublox",
            dst: "__nc__",
            msg: "cu_gnss_payloads::GnssEpochTime",
        ),
        (
            src: "gnss_ublox",
            dst: "vtx_osd",
            msg: "cu_gnss_payloads::GnssFixSolution",
        ),
        (
            src: "gnss_ublox",
            dst: "gnss_fix_sink",
            msg: "cu_gnss_payloads::GnssFixSolution",
            missions: ["gnss"],
        ),
        (
            src: "gnss_ublox",
            dst: "__nc__",
            msg: "cu_gnss_payloads::GnssAccuracy",
        ),
        (
            src: "gnss_ublox",
            dst: "__nc__",
            msg: "cu_gnss_payloads::GnssSatsInView",
        ),
        (
            src: "gnss_ublox",
            dst: "__nc__",
            msg: "cu_gnss_payloads::GnssSatelliteState",
        ),
        (
            src: "gnss_ublox",
            dst: "__nc__",
            msg: "cu_gnss_payloads::GnssSignalState",
        ),
        (
            src: "gnss_ublox",
            dst: "__nc__",
            msg: "cu_gnss_payloads::GnssRfStatus",
        ),
        (
            src: "gnss_ublox",
            dst: "__nc__",
            msg: "cu_gnss_payloads::GnssInfoText",
        ),
        (
            src: "gnss_ublox",
            dst: "__nc__",
            msg: "cu_gnss_payloads::GnssCommandAck",
        ),
        (
            src: "gnss_ublox",
            dst: "__nc__",
            msg: "cu_gnss_payloads::GnssRawUbxFrame",
        ),
    ],
)