cu29-runtime 1.3.0

Copper Runtime Runtime crate. Copper is an engine for robotics.
Documentation
(
    missions: [
        (id: "EdgeSelfLoop"),
        (id: "EdgeSelfLoopMulti"),
        (id: "EdgeBackEdge"),
        (id: "EdgeBackEdgeMulti"),
        (id: "EdgeBackEdgeOver"),
        (id: "EdgeCrossingSingle"),
        (id: "EdgeCrossingMulti"),
    ],
    tasks: [
        (
            id: "back_src",
            type: "tasks::BackSrc",
            missions: ["EdgeBackEdge", "EdgeBackEdgeMulti", "EdgeBackEdgeOver"],
            config: {
                "alpha": 1,
                "beta": 22,
                "gamma": "long-config-value",
                "delta": true,
                "epsilon": 3.14,
            },
        ),
        (
            id: "back_mid",
            type: "tasks::BackMid",
            missions: ["EdgeBackEdge", "EdgeBackEdgeMulti", "EdgeBackEdgeOver"],
            config: {
                "alpha": 1,
                "beta": 22,
                "gamma": "long-config-value",
                "delta": true,
                "epsilon": 3.14,
            },
        ),
        (
            id: "back_dst",
            type: "tasks::BackDst",
            missions: ["EdgeBackEdge", "EdgeBackEdgeMulti", "EdgeBackEdgeOver"],
            config: {
                "alpha": 1,
                "beta": 22,
                "gamma": "long-config-value",
                "delta": true,
                "epsilon": 3.14,
            },
        ),
        (
            id: "cross_a",
            type: "tasks::CrossA",
            missions: ["EdgeCrossingSingle", "EdgeCrossingMulti"],
            config: {
                "alpha": 1,
                "beta": 22,
                "gamma": "long-config-value",
                "delta": true,
                "epsilon": 3.14,
            },
        ),
        (
            id: "cross_b",
            type: "tasks::CrossB",
            missions: ["EdgeCrossingSingle", "EdgeCrossingMulti"],
            config: {
                "alpha": 1,
                "beta": 22,
                "gamma": "long-config-value",
                "delta": true,
                "epsilon": 3.14,
            },
        ),
        (
            id: "cross_c",
            type: "tasks::CrossC",
            missions: ["EdgeCrossingSingle", "EdgeCrossingMulti"],
            config: {
                "alpha": 1,
                "beta": 22,
                "gamma": "long-config-value",
                "delta": true,
                "epsilon": 3.14,
            },
        ),
        (
            id: "cross_d",
            type: "tasks::CrossD",
            missions: ["EdgeCrossingSingle", "EdgeCrossingMulti"],
            config: {
                "alpha": 1,
                "beta": 22,
                "gamma": "long-config-value",
                "delta": true,
                "epsilon": 3.14,
            },
        ),
    ],
    bridges: [
        (
            id: "self_one",
            type: "bridges::SelfOne",
            missions: ["EdgeSelfLoop"],
            config: {
                "alpha": 1,
                "beta": 22,
                "gamma": "long-config-value",
                "delta": true,
                "epsilon": 3.14,
            },
            channels: [
                Rx(id: "in1", route: "self_one/in1"),
                Tx(id: "out1", route: "self_one/out1"),
            ],
        ),
        (
            id: "self_multi",
            type: "bridges::SelfMulti",
            missions: ["EdgeSelfLoopMulti"],
            config: {
                "alpha": 1,
                "beta": 22,
                "gamma": "long-config-value",
                "delta": true,
                "epsilon": 3.14,
            },
            channels: [
                Rx(id: "in1", route: "self_multi/in1"),
                Rx(id: "in2", route: "self_multi/in2"),
                Rx(id: "in3", route: "self_multi/in3"),
                Tx(id: "out1", route: "self_multi/out1"),
                Tx(id: "out2", route: "self_multi/out2"),
            ],
        ),
    ],
    cnx: [
        (
            src: "self_one/in1",
            dst: "self_one/out1",
            msg: "messages::SelfLoop",
            missions: ["EdgeSelfLoop"],
        ),
        (
            src: "self_multi/in1",
            dst: "self_multi/out1",
            msg: "messages::SelfLoop",
            missions: ["EdgeSelfLoopMulti"],
        ),
        (
            src: "self_multi/in2",
            dst: "self_multi/out2",
            msg: "messages::SelfLoop",
            missions: ["EdgeSelfLoopMulti"],
        ),
        (
            src: "self_multi/in3",
            dst: "self_multi/out1",
            msg: "messages::SelfLoop",
            missions: ["EdgeSelfLoopMulti"],
        ),
        (
            src: "back_src",
            dst: "back_mid",
            msg: "messages::Forward",
            missions: ["EdgeBackEdge", "EdgeBackEdgeMulti", "EdgeBackEdgeOver"],
        ),
        (
            src: "back_mid",
            dst: "back_dst",
            msg: "messages::Forward",
            missions: ["EdgeBackEdge", "EdgeBackEdgeMulti", "EdgeBackEdgeOver"],
        ),
        (src: "back_dst", dst: "back_src", msg: "messages::Back", missions: ["EdgeBackEdge"]),
        (
            src: "back_dst",
            dst: "back_src",
            msg: "messages::BackAlt",
            missions: ["EdgeBackEdgeMulti", "EdgeBackEdgeOver"],
        ),
        (
            src: "back_dst",
            dst: "back_mid",
            msg: "messages::BackAlt",
            missions: ["EdgeBackEdgeMulti", "EdgeBackEdgeOver"],
        ),
        (
            src: "back_mid",
            dst: "back_src",
            msg: "messages::BackAlt",
            missions: ["EdgeBackEdgeMulti", "EdgeBackEdgeOver"],
        ),
        (
            src: "cross_a",
            dst: "cross_d",
            msg: "messages::CrossOne",
            missions: ["EdgeCrossingSingle", "EdgeCrossingMulti"],
        ),
        (
            src: "cross_b",
            dst: "cross_c",
            msg: "messages::CrossTwo",
            missions: ["EdgeCrossingSingle", "EdgeCrossingMulti"],
        ),
        (
            src: "cross_a",
            dst: "cross_c",
            msg: "messages::CrossThree",
            missions: ["EdgeCrossingMulti"],
        ),
        (
            src: "cross_b",
            dst: "cross_d",
            msg: "messages::CrossFour",
            missions: ["EdgeCrossingMulti"],
        ),
    ],
)