Skip to content

Commit f97bf71

Browse files
First step towards cFS-based use case.
Signed-off-by: Ivan Perez <[email protected]>
1 parent be7376b commit f97bf71

File tree

1 file changed

+39
-21
lines changed

1 file changed

+39
-21
lines changed

Aerospace-Uses-Cases.md

Lines changed: 39 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,34 @@
11
# Aerospace Uses Cases
22

3-
This document is a work in progress and has not been approved for use outside of the ELISA aerospace working group.
3+
This document is a work in progress and has not been approved for use outside of the ELISA aerospace working group.
44

5-
## Use Case: Cabin Lights
5+
The purpose of this use case is to implement an benchmark of a NASA's Core Flight System running on a custom kernel, inside QEMU, and determine whether messages are arriving to their destinations in time.
6+
7+
## Use Case: Cabin Lights with cFS
68

79
Low DAL (D or lower) - blackbox level - functionally meets expectations
810

911
### System Requirements
1012

13+
* The Cabin Lights system is implemented as a cFS application.
14+
* The light switching system is implemented as a cFS application.
1115
* The Cabin Lights system shall turn lights on in less than 500 ms of the light switch turning on
1216
* The Cabin Lights system shall turn lights off in less than 500 ms of the light switch turning off
1317

14-
#### Test
18+
#### Proposed plan
19+
20+
We propose to progressively work towards this implementation by turning each
21+
element from the current demonstration into a cFS element, one at a time.
22+
23+
1. Demonstrate sending a message to existing sample application in cFS.
24+
25+
2. Demonstrate monitoring event from that application from within cFS.
26+
27+
3. Make application for lights; send command from external system, monitor from within cFS.
28+
29+
4. Make application for switch; send command through the SB, monitor from within cFS.
30+
31+
#### Test
1532

1633
Items to key on
1734
- logging check
@@ -34,33 +51,34 @@ Test environment
3451
graph TD
3552
subgraph QEMU_Environment_Unit_Under_Test
3653
direction TB
37-
Ethernet_Bridge
38-
App[2.Cabin Lights Application]
39-
Log[Logging Function]
54+
Software_Bus[Software Bus]
55+
App[2.Cabin Lights Application]
4056
Sensor[1.Switch App]
4157
Actuator[3.Cabin Light]
4258
4359
subgraph Monitor
4460
direction TB
45-
Copilot[CoPilot]
61+
Copilot[Copilot]
4662
end
4763
4864
end
4965
50-
51-
52-
App -->|Interacts with| Log
53-
Sensor -->|Sends State Msg| Ethernet_Bridge
54-
Copilot -->|Sniffer| Ethernet_Bridge
55-
Ethernet_Bridge -->|Sends State Msg| App
56-
App -->|Control Msg| Ethernet_Bridge
57-
Ethernet_Bridge -->|Control Msg| Actuator
58-
Copilot -->|Log tail| Log
66+
Sensor -->|E#58; Switch status change| Software_Bus
67+
App -->|C#58; Turn lights on/off| Software_Bus
68+
Actuator -->|E#58; Turned lights on/off| Software_Bus
69+
Copilot -->|E#58; Violation| Software_Bus
70+
Software_Bus -->|E#58; Switch status change| App
71+
Software_Bus -->|C#58; Turn lights on/off| Actuator
72+
Software_Bus -->|C#58; Turn lights on/off| Copilot
73+
Software_Bus -->|E#58; Turned lights on/off| Copilot
5974
6075
style QEMU_Environment_Unit_Under_Test fill:#f9f,stroke:#333,stroke-width:2px;
6176
style Monitor fill:#bbf,stroke:#333,stroke-width:2px;
6277
```
6378
79+
---
80+
The following is outdated:
81+
6482
```mermaid
6583
sequenceDiagram
6684
participant Sensor as Switch
@@ -151,14 +169,14 @@ Sensor=Switch; Function=Cabin Light Control; Function=Logging; Actuator=Cabin li
151169
* Sensor is a switch with two values (on/off)
152170
* Actuator is a light with two states (on/off), when a message is received on Ethernet, it updates its state to match
153171
* Options for assuring comm
154-
* send periodic message of current state
172+
* send periodic message of current state
155173
* Or? acknowledge messages from application
156174
* Or? poll both sensor and actuator
157175
* Connectivity is an Ethernet bus (messages can be lost or corrupted)
158176
* Computing platform running an "cabin lights" application
159177
* Cabin Lights Application
160178
* Application is waiting on the switch socket for a message, wakes up when message available
161-
* When awoken,
179+
* When awoken,
162180
* application creates a message with new light state and sends on the light socket
163181
* log the event
164182
* yield?, goes back to waiting on switch socket
@@ -169,7 +187,7 @@ Single computer with single function (="APP")
169187
170188
[SENS] <-[ETH_MAC]-> [APP] <-[ETH_MAC]-> [ACT]
171189
172-
- Presume bidirectional connectivity from computing platform to sensor, and bidirectional connectivity from computing platform to actuator.
190+
- Presume bidirectional connectivity from computing platform to sensor, and bidirectional connectivity from computing platform to actuator.
173191
- Smart sensor/actor w/ software and stack?
174192
- 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)
175193
- How would a system architecture look like to close the signal/application loop? (7 voters in total)
@@ -330,5 +348,5 @@ Renode
330348
- From: https://digitalcommons.calpoly.edu/cgi/viewcontent.cgi?article=1720&context=eesp
331349
- "the PolySat software architecture runs entirely on a custom Linux operating system"
332350
- Maybe a group for user feedback for what we define (design, prototype)
333-
- https://www.jpl.nasa.gov/missions/mars-cube-one-marco/
334-
- https://www.asi.it/en/planets-stars-universe/solar-system-and-beyond/liciacube/
351+
- https://www.jpl.nasa.gov/missions/mars-cube-one-marco/
352+
- https://www.asi.it/en/planets-stars-universe/solar-system-and-beyond/liciacube/

0 commit comments

Comments
 (0)