1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
(
missions: [
(id: "Alpha"),
(id: "Beta"),
],
resources: [
(
id: "board",
provider: "demo::BoardBundle",
),
(
id: "memory",
provider: "demo::MemoryBundle",
),
(
id: "radio",
provider: "demo::RadioBundle",
missions: ["Beta"],
),
(
id: "unused",
provider: "demo::UnusedBundle",
),
],
tasks: [
(
id: "sensor",
type: "tasks::Sensor",
missions: ["Alpha", "Beta"],
resources: {
"spi": "board.spi1",
"adc": "board.adc1",
},
),
(
id: "control",
type: "tasks::Control",
missions: ["Alpha"],
resources: {
"spi": "board.spi1",
},
),
(
id: "logger",
type: "tasks::Logger",
missions: ["Beta"],
resources: {
"cfg": "memory.cfg",
},
),
],
bridges: [
(
id: "telemetry",
type: "bridges::Telemetry",
missions: ["Beta"],
resources: {
"serial": "radio.uart1",
},
channels: [
Tx(id: "tx"),
Rx(id: "rx"),
],
),
],
cnx: [
(
src: "sensor",
dst: "control",
msg: "messages::Sensor",
missions: ["Alpha"],
),
(
src: "sensor",
dst: "logger",
msg: "messages::Sensor",
missions: ["Beta"],
),
(
src: "logger",
dst: "telemetry/tx",
msg: "messages::Log",
missions: ["Beta"],
),
],
)