You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Expanded the system architecture section to include detailed hardware and software functions for the cabin lights use case. Added use case descriptions, test items, and options for system architecture.
Signed-off-by: Martin Halle [email protected]
Signed-off-by: Weber (US), Matthew L <[email protected]>
Copy file name to clipboardExpand all lines: Aerospace-Uses-Cases.md
+64-57Lines changed: 64 additions & 57 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,16 +6,72 @@ This document is a work in progress and has not been approved for use outside of
6
6
7
7
Low DAL (D or lower) - blackbox level - functionally meets expectations
8
8
9
+
### System Architecture
10
+
11
+
Hardware:
12
+
* Switch (Sensor)
13
+
* Switch has two values (on/off)
14
+
* Cabin light (Actuator)
15
+
* Cabin light has two states (on/off), when a message is received on Ethernet, it updates its state to match
16
+
* Computing device (platform) running the Apps
17
+
* Connectivity is an Ethernet bus (messages can be lost or corrupted)
18
+
* Options for assuring communication
19
+
* Send periodic message of current state
20
+
* Or? acknowledge messages from application
21
+
* Or? poll both sensor and actuator
22
+
23
+
Software Functions ("Apps"):
24
+
* Switch App
25
+
* Cabin Lights App
26
+
* Application is waiting on the switch socket for a message, wakes up when message available
27
+
* When awoken,
28
+
* application creates a message with new light state and sends on the light socket
29
+
* log the event
30
+
* yield?, goes back to waiting on switch socket
31
+
* Logging App
32
+
* Monitoring App (CoPilot based)
33
+
* Continously monitors correct functionality (e.g. stay witihn time limits)
34
+
35
+
* Options/Scenarios to consider and enhance on
36
+
* "One Device": Switch and Cabin light connected to a single device, Apps are hosted on the same device
37
+
* "Two Devices": Switch and Cabin light are connected on 2 devices, connected via network, Apps are hosted on throse 2 devices respectively, too
38
+
* "Three/More Devices": Switch and Cabin light arte connected on 2 devices, Monitoring App hosted on another one, all connectd through a network
39
+
9
40
### System Requirements
10
41
11
42
* The Cabin Lights system shall turn lights on in less than 500 ms of the light switch turning on
12
43
* The Cabin Lights system shall turn lights off in less than 500 ms of the light switch turning off
13
44
45
+
### Use Case Description for scenario "One Device"
46
+
47
+
Single computer with single function (="APP")
48
+
49
+
[SENS] <-[ETH_MAC]-> [APP] <-[ETH_MAC]-> [ACT]
50
+
51
+
- Presume bidirectional connectivity from computing platform to sensor, and bidirectional connectivity from computing platform to actuator.
52
+
- Smart sensor/actor w/ software and stack?
53
+
- Best effort scheduling of IO processing that's tested for perceived worst case. (No monitor or scheduler based guarantee other then planned scheduler bandwidth/capacity margin)
54
+
- How would a system architecture look like to close the signal/application loop? (7 voters in total)
55
+
- Option A:
56
+
- Simulate sensor + actuator on the H/W device running the system application (1 application being the cabin application, 2 applications being the simulated sensor + actuator)
57
+
- A.1 Communication on software level (no physical ethernet cable) > Votes: 1
58
+
- A.2 Communication on hardware level using several network cards connected through H/W Ethernet (i.e. physical network-cable) > Votes: 1
59
+
- Thoughts: [Ivan]: Maybe we miss something because its too simplistic
60
+
- Option B: > Votes: 4 (SELECTED)
61
+
- Sensor + actuator on a general purpose computer as emulation (on non-Aerospace Linux)
62
+
- Attention: This probably means no real-time OS on sensor / actuator side
63
+
- Application computer w/ real-time Aerospace Linux running the system/cabin application(s)
64
+
- Option C:
65
+
- 3 pieces of H/W: Sensor, actuator + Computing Device
66
+
- Connected physically via Ethernet through switch or alike > Votes: 0
67
+
- Comment on votes: (1 non-voter)
68
+
- Comment: This use case would not necessarily need an OS, but even in this case there are some capabilities we can leverage from the OS. Furthermore, this may be one of several use cases (functionalities) supported by the OS. >> But an OS is implied for the Use-Case!
69
+
14
70
#### Test
15
71
16
72
Items to key on
17
-
-logging check
18
-
-ethernet message check - i.e., socket msg in / out analysis using time criteria
73
+
-Logging check
74
+
-Ethernet message check - i.e., socket msg in / out analysis using time criteria
19
75
- how do we test this, is it extra hardware or application running beside a emulation doing pkt analysis
20
76
- log data and post analysis?
21
77
- online - build a cicd scenario and get earlier feedback on individual test failure without post-analysis
@@ -25,7 +81,7 @@ Test environment
25
81
- start with emulation (is there a limitation in timing because of type of emulation?)
26
82
- qemu can we count cycles to see if we can bound it? maybe not realtime
27
83
- Architecture of Test Environment:
28
-
- Sim/Emulator (Combo of Containers and QEMU)
84
+
- Sim/Emulator (Combo of containers and QEMU)
29
85
- Here's the components involved and a sequence diagram of dataflow
30
86
- (To view these diagrams, make sure your vscode has the Markdown Preview Mermaid Ext - `bierner.markdown-mermaid` or view on Github)
31
87
@@ -35,8 +91,8 @@ Test environment
35
91
subgraph QEMU_Environment_Unit_Under_Test
36
92
direction TB
37
93
Ethernet_Bridge
38
-
App[2.Cabin Lights Application]
39
-
Log[Logging Function]
94
+
App[2.Cabin Lights App]
95
+
Log[Logging App]
40
96
Sensor[1.Switch App]
41
97
Actuator[3.Cabin Light]
42
98
@@ -65,9 +121,9 @@ Test environment
65
121
sequenceDiagram
66
122
participant Sensor as Switch
67
123
participant Ethernet as Switch Ethernet Bridge
68
-
participant App as Cabin Lights Application
124
+
participant App as Cabin Lights App
69
125
participant Actuator as Cabin Light
70
-
participant Log as Logging Function <br> (Syslog)
126
+
participant Log as Logging App <br> (Syslog)
71
127
participant CheckLog as CoPilot Log <br> Monitor
72
128
participant CheckEth as CoPilot Ethernet <br> Monitor
73
129
@@ -140,54 +196,6 @@ Emulation How-To
140
196
- Start the test apps bound to the right bridge interfaces / IPs
141
197
- Start the coPilot app last or have it do all this staging before telling the Switch app to toggle.
142
198
143
-
144
-
145
-
146
-
147
-
### System Architecture
148
-
149
-
Sensor=Switch; Function=Cabin Light Control; Function=Logging; Actuator=Cabin light (+ notification item in a log)
150
-
151
-
* Sensor is a switch with two values (on/off)
152
-
* Actuator is a light with two states (on/off), when a message is received on Ethernet, it updates its state to match
153
-
* Options for assuring comm
154
-
* send periodic message of current state
155
-
* Or? acknowledge messages from application
156
-
* Or? poll both sensor and actuator
157
-
* Connectivity is an Ethernet bus (messages can be lost or corrupted)
158
-
* Computing platform running an "cabin lights" application
159
-
* Cabin Lights Application
160
-
* Application is waiting on the switch socket for a message, wakes up when message available
161
-
* When awoken,
162
-
* application creates a message with new light state and sends on the light socket
163
-
* log the event
164
-
* yield?, goes back to waiting on switch socket
165
-
166
-
### Use Case Description
167
-
168
-
Single computer with single function (="APP")
169
-
170
-
[SENS] <-[ETH_MAC]-> [APP] <-[ETH_MAC]-> [ACT]
171
-
172
-
- Presume bidirectional connectivity from computing platform to sensor, and bidirectional connectivity from computing platform to actuator.
173
-
- Smart sensor/actor w/ software and stack?
174
-
- Best effort scheduling of IO processing that's tested for perceived worst case. (No monitor or scheduler based guarantee other then planned scheduler bandwidth/capacity margin)
175
-
- How would a system architecture look like to close the signal/application loop? (7 voters in total)
176
-
- Option A:
177
-
- Simulate sensor + actuator on the H/W device running the system application (1 application being the cabin application, 2 applications being the simulated sensor + actuator)
178
-
- A.1 Communication on software level (no physical ethernet cable) > Votes: 1
179
-
- A.2 Communication on hardware level using several network cards connected through H/W Ethernet (i.e. physical network-cable) > Votes: 1
180
-
- Thoughts: [Ivan]: Maybe we miss something because its too simplistic
181
-
- Option B: > Votes: 4 (SELECTED)
182
-
- Sensor + actuator on a general purpose computer as emulation (on non-Aerospace Linux)
183
-
- Attention: This probably means no real-time OS on sensor / actuator side
184
-
- Application computer w/ real-time Aerospace Linux running the system/cabin application(s)
185
-
- Option C:
186
-
- 3 pieces of H/W: Sensor, actuator + Computing Device
187
-
- Connected physically via Ethernet through switch or alike > Votes: 0
188
-
- Comment on votes: (1 non-voter)
189
-
- Comment: This use case would not necessarily need an OS, but even in this case there are some capabilities we can leverage from the OS. Furthermore, this may be one of several use cases (functionalities) supported by the OS. >> But an OS is implied for the Use-Case!
190
-
191
199
### Analysis of required (OS) features
192
200
193
201
- OS must provide for the application (at least):
@@ -286,7 +294,6 @@ What is the feedback approach / rollout for the use cases?
286
294
- cases that require runtime monitoring - watchdog / crc'n / bit checks / etc
287
295
- overlay of how containment strategies would apply
288
296
289
-
290
297
## References
291
298
292
299
### Space Frameworks comparison
@@ -331,4 +338,4 @@ Renode
331
338
- "the PolySat software architecture runs entirely on a custom Linux operating system"
332
339
- Maybe a group for user feedback for what we define (design, prototype)
0 commit comments