Merge pull request 'improve system view' (#279) from improve-system-view into main
Reviewed-on: #279
This commit was merged in pull request #279.
This commit is contained in:
@@ -7,3 +7,7 @@
|
||||
- [Modelling space systems](./modelling-space-systems.md)
|
||||
- [Ground Segments](./ground-segments.md)
|
||||
|
||||
Refer to new sections in the system view page:
|
||||
|
||||
- [Fault, Detection, Isolation and Recovery (FDIR)](./fdir.md)
|
||||
- and the [mode tree](./mode-tree.md)
|
||||
|
||||
@@ -2,3 +2,95 @@
|
||||
|
||||
Events are an important mechanism used for remote systems to monitor unexpected
|
||||
or expected anomalies and events occuring on these systems.
|
||||
They can improve the observability of a system significantly and provide a
|
||||
"paper trail" of what is happening or has happened on a satellite where regular
|
||||
housekeeping packets might not be sufficient. They can also be used for fault
|
||||
detection, isolation and recovery (FDIR) purposes. For example, higher level
|
||||
system objects can listen on certain high criticality events to initiate
|
||||
custom system responses.
|
||||
|
||||
|
||||
## Event Severity
|
||||
|
||||
Generally, it also makes sense to classify events according to a severity system
|
||||
so operators can quickly judge the importance of an event. `sat-rs` does not
|
||||
constrain the severity classes or enforce their usage, but a severity
|
||||
classification like this can make sense:
|
||||
|
||||
- INFO
|
||||
- LOW ERROR
|
||||
- MEDIUM ERROR
|
||||
- HIGH ERROR
|
||||
|
||||
## Modelling Events with Rust
|
||||
|
||||
Usually, events will be associated with certain software objects or handlers.
|
||||
Oftentimes, developers and operators want to supply parameters or metadata
|
||||
associated with an event. This can all be done using the Rust `enum` type.
|
||||
|
||||
Let's start with an example: a camera device
|
||||
handler might have the following events:
|
||||
|
||||
- Image taken event
|
||||
- Communication error event including an error classifier
|
||||
- Communication timeout event with the configured timeout
|
||||
- Overheating event
|
||||
|
||||
You can model these events using the following data structure, also including
|
||||
a `severity` method.
|
||||
|
||||
```rust
|
||||
#[derive(Debug, serde::Serialize, serde::Deserialize, Clone)]
|
||||
pub enum Event {
|
||||
ImageTaken,
|
||||
CommunicationError(ErrorType),
|
||||
CommunicationTimeout(core::time::Duration),
|
||||
Overheating
|
||||
}
|
||||
|
||||
impl Event {
|
||||
pub fn severity(&self) -> Severity {
|
||||
match self {
|
||||
Event::ImageTaken => Severity::Info,
|
||||
Event::CommunicationError(_) => Severity::Low,
|
||||
Event::CommunicationTimeout(_) => Severity::Low,
|
||||
Event::Overheating => Severity::High,
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Depending on the requirements of your system, you might want to filter which
|
||||
events are packaged and sent as telemetry. This requires an identification
|
||||
system. A simple scheme would be to add something like this:
|
||||
|
||||
```rust
|
||||
impl Event {
|
||||
pub fn id(&self) -> u32 {
|
||||
match self {
|
||||
Event::ImageTaken => 0,
|
||||
Event::CommunicationError(_) => 1,
|
||||
Event::CommunicationTimeout(_) => 2,
|
||||
Event::Overheating => 3,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
## Handling events
|
||||
|
||||
When an event occurs in the system, you want to trigger the event.
|
||||
This usually includes sending the event to a centralized event funnel. The funnel
|
||||
takes care of packing the event into a telemetry packet as well as forwarding
|
||||
the event to any other objects which are interested in the event. A message
|
||||
queue system is the best solution for this. For example, on an embedded Linux
|
||||
system, you might have an event sender handle like this inside your camera
|
||||
device handler:
|
||||
|
||||
```rust
|
||||
pub struct CameraHandler {
|
||||
// (...)
|
||||
event_sender: std::sync::mpsc::SyncSender<Event>
|
||||
}
|
||||
```
|
||||
|
||||
@@ -1,80 +1,97 @@
|
||||
<mxfile host="Electron">
|
||||
<diagram name="Page-1" id="L7hDkg9csFOap1jIF0ey">
|
||||
<mxGraphModel dx="849" dy="1586" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
|
||||
<mxGraphModel dx="808" dy="1600" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-28" parent="1" style="rounded=0;arcSize=20;strokeWidth=3;fillColor=#E2E8F0;strokeColor=#475569;fontColor=#1E293B;labelBackgroundColor=none;fontStyle=1;fontSize=14;perimeterSpacing=1;" value="Hardware" vertex="1">
|
||||
<mxGeometry height="40" width="430" x="480" y="420" as="geometry" />
|
||||
<mxCell id="Et7Is9MkKvAT9IauE9_I-4" connectable="0" parent="1" style="group" value="" vertex="1">
|
||||
<mxGeometry height="114" width="443" x="482" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-31" edge="1" parent="1" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;labelBackgroundColor=none;strokeColor=#969696;fontColor=default;endArrow=classic;endFill=1;edgeStyle=orthogonalEdgeStyle;">
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-27" parent="Et7Is9MkKvAT9IauE9_I-4" style="rounded=0;arcSize=20;strokeWidth=3;fillColor=#BFDCEC;strokeColor=#0072B2;fontSize=14;fontColor=#003A5D;labelBackgroundColor=none;fontStyle=1;labelPosition=center;verticalLabelPosition=middle;align=center;verticalAlign=top;spacingTop=0;perimeterSpacing=1;" value="Application" vertex="1">
|
||||
<mxGeometry height="117" width="430" y="-3" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-46" parent="Et7Is9MkKvAT9IauE9_I-4" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;">Mission Logic</span>" vertex="1">
|
||||
<mxGeometry height="22" width="113.16" x="13" y="25" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-47" parent="Et7Is9MkKvAT9IauE9_I-4" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;"><font face="Courier New">sat-rs</font></span>" vertex="1">
|
||||
<mxGeometry height="22" width="93" x="238" y="25" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="eFmRNKLwCo7I2zrsRzJH-1" parent="Et7Is9MkKvAT9IauE9_I-4" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;"><font face="Courier New">spacepackets</font></span>" vertex="1">
|
||||
<mxGeometry height="22" width="113.16" x="13" y="55" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wZbC1GPg-bVreQhl9PIS-1" parent="Et7Is9MkKvAT9IauE9_I-4" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;">Events</span>" vertex="1">
|
||||
<mxGeometry height="22" width="86.24" x="136" y="55" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Et7Is9MkKvAT9IauE9_I-3" parent="Et7Is9MkKvAT9IauE9_I-4" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;"><font face="Courier New">cfdp</font></span>" vertex="1">
|
||||
<mxGeometry height="22" width="93" x="231" y="55" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wZbC1GPg-bVreQhl9PIS-7" parent="Et7Is9MkKvAT9IauE9_I-4" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;">Device Drivers</span>" vertex="1">
|
||||
<mxGeometry height="22" width="115" x="12.999999999999968" y="85" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wZbC1GPg-bVreQhl9PIS-5" parent="Et7Is9MkKvAT9IauE9_I-4" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;">Mode Tree</span>" vertex="1">
|
||||
<mxGeometry height="22" width="105.48" x="135.99999999999997" y="85" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wZbC1GPg-bVreQhl9PIS-6" parent="Et7Is9MkKvAT9IauE9_I-4" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;">Controllers</span>" vertex="1">
|
||||
<mxGeometry height="22" width="86.24" x="333" y="55" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wZbC1GPg-bVreQhl9PIS-8" parent="Et7Is9MkKvAT9IauE9_I-4" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;">TMTC</span>" vertex="1">
|
||||
<mxGeometry height="22" width="93" x="133.67" y="25" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wZbC1GPg-bVreQhl9PIS-20" parent="Et7Is9MkKvAT9IauE9_I-4" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;"><font face="Courier New">FDIR</font></span>" vertex="1">
|
||||
<mxGeometry height="22" width="79" x="342" y="25" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-28" parent="1" style="rounded=0;arcSize=20;strokeWidth=3;fillColor=#E2E8F0;strokeColor=#475569;fontColor=#1E293B;labelBackgroundColor=none;fontStyle=1;fontSize=14;perimeterSpacing=1;" value="Hardware" vertex="1">
|
||||
<mxGeometry height="40" width="430" x="482" y="385" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-31" edge="1" parent="1" source="mcy6J03i3kvHfejOpHHr-16" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;labelBackgroundColor=none;strokeColor=#969696;fontColor=default;endArrow=classic;endFill=1;edgeStyle=orthogonalEdgeStyle;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.506;entryY=0.034;entryDx=0;entryDy=0;entryPerimeter=0;" target="mcy6J03i3kvHfejOpHHr-28">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="700" y="359" />
|
||||
<mxPoint x="700" y="370" />
|
||||
<mxPoint x="699.6" y="370" />
|
||||
</Array>
|
||||
<mxPoint x="700" y="370" as="sourcePoint" />
|
||||
<mxPoint x="700.16" y="420" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-32" edge="1" parent="1" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=-0.006;entryDx=0;entryDy=0;entryPerimeter=0;strokeWidth=2;labelBackgroundColor=none;fontColor=default;exitX=0.445;exitY=0.994;exitDx=0;exitDy=0;exitPerimeter=0;edgeStyle=orthogonalEdgeStyle;curved=0;strokeColor=#969696;" target="mcy6J03i3kvHfejOpHHr-16">
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-32" edge="1" parent="1" source="mcy6J03i3kvHfejOpHHr-27" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=-0.006;entryDx=0;entryDy=0;entryPerimeter=0;strokeWidth=2;labelBackgroundColor=none;fontColor=default;exitX=0.502;exitY=0.992;exitDx=0;exitDy=0;exitPerimeter=0;edgeStyle=orthogonalEdgeStyle;curved=0;strokeColor=#969696;" target="mcy6J03i3kvHfejOpHHr-16">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="680" y="104.48999999999998" as="sourcePoint" />
|
||||
<mxPoint x="680.4399999999998" y="140.00000000000003" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-43" connectable="0" parent="1" style="group;fillColor=#FFF7ED;rounded=0;labelBackgroundColor=none;fontColor=#6B2F00;strokeColor=#D55E00;strokeWidth=3;perimeterSpacing=1;" value="" vertex="1">
|
||||
<mxGeometry height="250" width="432" x="482" y="140" as="geometry" />
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-43" connectable="0" parent="1" style="group;fillColor=#FFF7ED;rounded=0;labelBackgroundColor=none;fontColor=#6B2F00;strokeColor=#D55E00;strokeWidth=3;perimeterSpacing=1;verticalAlign=middle;" value="" vertex="1">
|
||||
<mxGeometry height="219" width="432" x="482" y="140" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-16" parent="mcy6J03i3kvHfejOpHHr-43" style="whiteSpace=wrap;strokeWidth=2;verticalAlign=top;fillColor=#FED7AA;strokeColor=#EA580C;fontColor=#6B2F00;fontSize=14;rounded=0;labelBackgroundColor=none;fontStyle=1" value="System / platform
async-centric, embassy or RTICv2" vertex="1">
|
||||
<mxGeometry height="250" width="432" as="geometry" />
|
||||
<mxGeometry height="219" width="432" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-35" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Logging<br></span><div><span style="font-weight: normal;"><font face="Courier New" style="font-size: 12px;">defmt + defmt-rtt</font></span></div>" vertex="1">
|
||||
<mxGeometry height="48.657391304347826" width="133.52063580591187" x="9.000332775608848" y="56.73391304347825" as="geometry" />
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-35" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Logging<br></span><div><span style="font-weight: normal;"><font face="Courier New" style="font-size: 12px;">defmt + defmt-rtt</font></span></div>" vertex="1">
|
||||
<mxGeometry height="40" width="133.52063580591187" x="9.000332775608848" y="56.73391304347825" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-36" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Serialization<br><font face="Courier New" style="font-size: 12px;">serde + postcard</font></span>" vertex="1">
|
||||
<mxGeometry height="48.05" width="128" x="155" y="57.34" as="geometry" />
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-36" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Serialization<br><font face="Courier New" style="font-size: 12px;">serde + postcard</font></span>" vertex="1">
|
||||
<mxGeometry height="40" width="128" x="155" y="57.34" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-37" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Containers<br><font face="Courier New" style="font-size: 12px;">heapless</font></span>" vertex="1">
|
||||
<mxGeometry height="47.61" width="122" x="295" y="57" as="geometry" />
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-37" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Containers<br><font face="Courier New" style="font-size: 12px;">heapless</font></span>" vertex="1">
|
||||
<mxGeometry height="40" width="122" x="295" y="57" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-38" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Time<br><font style="font-size: 12px;" face="Courier New">embassy-time</font></span>" vertex="1">
|
||||
<mxGeometry height="50.127272727272725" width="131.43389604559735" x="8.994190097896517" y="114.77833992094861" as="geometry" />
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-38" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Time<br><font style="font-size: 12px;" face="Courier New">embassy-time</font></span>" vertex="1">
|
||||
<mxGeometry height="40" width="131.43389604559735" x="9.004190097896517" y="104.99833992094861" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-39" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">IPC / Sync<br><font face="Courier New" style="font-size: 12px;">embassy-sync</font></span>" vertex="1">
|
||||
<mxGeometry height="51.34" width="130.29" x="153" y="116" as="geometry" />
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-39" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">IPC / Sync<br><font face="Courier New" style="font-size: 12px;">embassy-sync</font></span>" vertex="1">
|
||||
<mxGeometry height="40" width="130.29" x="153" y="105" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-40" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Memory<br><font face="Courier New" style="font-size: 12px;">embedded-alloc</font></span>" vertex="1">
|
||||
<mxGeometry height="52.17" width="123.45" x="296" y="115" as="geometry" />
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-40" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Memory<br><font face="Courier New" style="font-size: 12px;">embedded-alloc</font></span>" vertex="1">
|
||||
<mxGeometry height="40" width="123.45" x="296" y="105" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-41" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Tasks<br><font style="font-size: 12px;" face="Courier New">embassy-executor </font><font style="font-size: 12px;" face="Helvetica">or</font><font style="font-size: 12px;" face="Courier New"> rtic</font></span>" vertex="1">
|
||||
<mxGeometry height="60.61" width="130.29303773935672" x="8.99793084216397" y="177.39" as="geometry" />
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-41" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Tasks<br><font style="font-size: 12px;" face="Courier New">embassy-executor </font><font style="font-size: 12px;" face="Helvetica">or&nbsp;</font><font style="font-size: 12px;" face="Courier New">rtic</font></span>" vertex="1">
|
||||
<mxGeometry height="55" width="130.29303773935672" x="8.99793084216397" y="153" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-42" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Hardware API</span><div><span style="font-weight: normal;"><font style="font-size: 12px;">BSP + HAL + PAC</font></span></div>" vertex="1">
|
||||
<mxGeometry height="43.61" width="133" x="152" y="178" as="geometry" />
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-42" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Hardware API</span><div><span style="font-weight: normal;"><font style="font-size: 12px;">BSP + HAL + PAC</font></span></div>" vertex="1">
|
||||
<mxGeometry height="40" width="130.5" x="152" y="153" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Et7Is9MkKvAT9IauE9_I-2" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Filesystem</span><div><span style="font-weight: normal;"><font style="font-size: 12px;"><font face="Courier New">embedded-sdmmc</font> or<br><font face="Courier New">embedded-fatfs</font></font></span></div>" vertex="1">
|
||||
<mxGeometry height="61" width="123.45" x="298" y="178" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Et7Is9MkKvAT9IauE9_I-3" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;"><font face="Courier New">cfdp</font></span>" vertex="1">
|
||||
<mxGeometry height="31" width="113.16" x="639" y="69" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Et7Is9MkKvAT9IauE9_I-4" connectable="0" parent="1" style="group" value="" vertex="1">
|
||||
<mxGeometry height="109" width="430" x="480" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-27" parent="Et7Is9MkKvAT9IauE9_I-4" style="rounded=0;arcSize=20;strokeWidth=3;fillColor=#BFDCEC;strokeColor=#0072B2;fontSize=14;fontColor=#003A5D;labelBackgroundColor=none;fontStyle=1;labelPosition=center;verticalLabelPosition=middle;align=center;verticalAlign=top;spacingTop=0;perimeterSpacing=1;" value="Application" vertex="1">
|
||||
<mxGeometry height="109" width="430" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-46" parent="Et7Is9MkKvAT9IauE9_I-4" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;">Mission Logic</span>" vertex="1">
|
||||
<mxGeometry height="30" width="113.16" x="15" y="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-47" parent="Et7Is9MkKvAT9IauE9_I-4" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;"><font face="Courier New">sat-rs</font></span>" vertex="1">
|
||||
<mxGeometry height="31" width="113.16" x="293.64" y="29" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-48" parent="Et7Is9MkKvAT9IauE9_I-4" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;">Mission Types</span>" vertex="1">
|
||||
<mxGeometry height="31" width="113.16" x="158.42" y="29" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="eFmRNKLwCo7I2zrsRzJH-1" parent="Et7Is9MkKvAT9IauE9_I-4" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;"><font face="Courier New">spacepackets</font></span>" vertex="1">
|
||||
<mxGeometry height="31" width="113.16" x="15" y="69" as="geometry" />
|
||||
<mxCell id="Et7Is9MkKvAT9IauE9_I-2" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Filesystem</span><div><span style="font-weight: normal;"><font style="font-size: 12px;"><font face="Courier New">embedded-sdmmc</font> or<br><font face="Courier New">embedded-fatfs</font></font></span></div>" vertex="1">
|
||||
<mxGeometry height="55" width="123.45" x="296" y="153" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 318 KiB After Width: | Height: | Size: 330 KiB |
@@ -1,14 +1,14 @@
|
||||
<mxfile host="Electron">
|
||||
<diagram name="Page-1" id="L7hDkg9csFOap1jIF0ey">
|
||||
<mxGraphModel dx="713" dy="408" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
|
||||
<mxGraphModel dx="975" dy="1703" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-27" parent="1" style="rounded=0;arcSize=20;strokeWidth=3;fillColor=#BFDCEC;strokeColor=#0072B2;fontSize=14;fontColor=#003A5D;labelBackgroundColor=none;fontStyle=1;labelPosition=center;verticalLabelPosition=middle;align=center;verticalAlign=top;spacingTop=0;perimeterSpacing=1;" value="Application" vertex="1">
|
||||
<mxGeometry height="104" width="426.0214285714286" x="490.97857142857146" y="12" as="geometry" />
|
||||
<mxGeometry height="122" width="426.02" x="490.98" y="-10" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-28" parent="1" style="rounded=0;arcSize=20;strokeWidth=3;fillColor=#E2E8F0;strokeColor=#475569;fontColor=#1E293B;labelBackgroundColor=none;fontStyle=1;fontSize=14;perimeterSpacing=1;" value="Hardware" vertex="1">
|
||||
<mxGeometry height="40" width="420" x="490.5" y="303" as="geometry" />
|
||||
<mxGeometry height="40" width="420" x="490.5" y="290" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-32" edge="1" parent="1" source="mcy6J03i3kvHfejOpHHr-27" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=-0.006;entryDx=0;entryDy=0;entryPerimeter=0;strokeWidth=2;labelBackgroundColor=none;strokeColor=#969696;fontColor=default;exitX=0.496;exitY=0.984;exitDx=0;exitDy=0;exitPerimeter=0;edgeStyle=orthogonalEdgeStyle;curved=0;" target="mcy6J03i3kvHfejOpHHr-16">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
@@ -17,58 +17,67 @@
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-43" connectable="0" parent="1" style="group;fillColor=#FFF7ED;rounded=0;labelBackgroundColor=none;fontColor=#6B2F00;strokeColor=#D55E00;strokeWidth=3;perimeterSpacing=1;" value="" vertex="1">
|
||||
<mxGeometry height="140" width="423" x="490.5" y="140" as="geometry" />
|
||||
<mxGeometry height="124" width="423" x="490.5" y="140" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-16" parent="mcy6J03i3kvHfejOpHHr-43" style="whiteSpace=wrap;strokeWidth=2;verticalAlign=top;fillColor=#FED7AA;strokeColor=#EA580C;fontColor=#6B2F00;fontSize=14;rounded=0;labelBackgroundColor=none;fontStyle=1" value="System / platform" vertex="1">
|
||||
<mxGeometry height="140" width="423" as="geometry" />
|
||||
<mxGeometry height="124" width="423" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-35" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Logging<br></span>" vertex="1">
|
||||
<mxGeometry height="27.63" width="117.5" x="15" y="31" as="geometry" />
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-35" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Logging<br></span>" vertex="1">
|
||||
<mxGeometry height="22" width="117.5" x="15" y="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-36" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Serialization</span>" vertex="1">
|
||||
<mxGeometry height="27.63" width="117.5" x="146.5" y="31" as="geometry" />
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-36" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Serialization</span>" vertex="1">
|
||||
<mxGeometry height="22" width="117.5" x="146.5" y="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-37" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Containers</span>" vertex="1">
|
||||
<mxGeometry height="27.63" width="125.64" x="278" y="31" as="geometry" />
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-37" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Containers</span>" vertex="1">
|
||||
<mxGeometry height="22" width="117.5" x="278.5" y="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-39" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">IPC / Sync</span>" vertex="1">
|
||||
<mxGeometry height="27.63" width="117.5" x="15" y="66" as="geometry" />
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-39" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">IPC / Sync</span>" vertex="1">
|
||||
<mxGeometry height="22" width="117.5" x="14.5" y="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-40" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Memory</span>" vertex="1">
|
||||
<mxGeometry height="27.63" width="125.64" x="278" y="65" as="geometry" />
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-40" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Memory</span>" vertex="1">
|
||||
<mxGeometry height="22" width="117.5" x="278" y="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-41" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Tasks</span>" vertex="1">
|
||||
<mxGeometry height="27.63" width="117.5" x="146.5" y="65" as="geometry" />
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-41" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Tasks</span>" vertex="1">
|
||||
<mxGeometry height="22" width="117.5" x="146.5" y="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-42" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Hardware API</span>" vertex="1">
|
||||
<mxGeometry height="27.63" width="117.5" x="15" y="101" as="geometry" />
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-42" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Hardware API</span>" vertex="1">
|
||||
<mxGeometry height="22" width="117.5" x="15" y="90" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="QQywTSC8lEcqjhdOS4oo-1" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Filesystem</span>" vertex="1">
|
||||
<mxGeometry height="27.63" width="117.5" x="146.5" y="99" as="geometry" />
|
||||
<mxCell id="QQywTSC8lEcqjhdOS4oo-1" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Filesystem</span>" vertex="1">
|
||||
<mxGeometry height="22" width="117.5" x="146.5" y="90" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-38" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Time</span>" vertex="1">
|
||||
<mxGeometry height="27.63" width="124.5" x="278.5" y="99" as="geometry" />
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-38" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Time</span>" vertex="1">
|
||||
<mxGeometry height="22" width="117.5" x="278.5" y="90" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="_ne4E4OgUf3ctT-MU7S6-3" edge="1" parent="1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fontColor=#000000;strokeColor=#969696;strokeWidth=2;exitX=0.46;exitY=1.008;exitDx=0;exitDy=0;exitPerimeter=0;">
|
||||
<mxCell id="_ne4E4OgUf3ctT-MU7S6-3" edge="1" parent="1" source="mcy6J03i3kvHfejOpHHr-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.506;entryY=0.031;entryDx=0;entryDy=0;fontColor=#000000;strokeColor=#969696;strokeWidth=2;exitX=0.503;exitY=1.009;exitDx=0;exitDy=0;entryPerimeter=0;exitPerimeter=0;" target="mcy6J03i3kvHfejOpHHr-28">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="702.54" y="281.12" as="sourcePoint" />
|
||||
<mxPoint x="701.46" y="303" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="_ne4E4OgUf3ctT-MU7S6-4" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;">Command Scheduling</span>" vertex="1">
|
||||
<mxGeometry height="29.1" width="185" x="499" y="79" as="geometry" />
|
||||
<mxCell id="_ne4E4OgUf3ctT-MU7S6-4" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;">Command Scheduling</span>" vertex="1">
|
||||
<mxGeometry height="22" width="171" x="499" y="50" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-46" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;">Mission Logic</span>" vertex="1">
|
||||
<mxGeometry height="29.999838101251477" width="105.48496240601504" x="499.03783458646615" y="41.99987048100118" as="geometry" />
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-46" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;">Mission Logic</span>" vertex="1">
|
||||
<mxGeometry height="22" width="105.48496240601504" x="498.9978345864661" y="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-47" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;">Events</span>" vertex="1">
|
||||
<mxGeometry height="29.1" width="94.67142857142858" x="718.5928571428572" y="41.9" as="geometry" />
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-47" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;">Events</span>" vertex="1">
|
||||
<mxGeometry height="22" width="94.67142857142858" x="719.0028571428571" y="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="nZ8_NfAIOoxuCbflcZYr-2" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;">FDIR</span>" vertex="1">
|
||||
<mxGeometry height="29.1" width="80.57142857142857" x="824.3428571428572" y="42" as="geometry" />
|
||||
<mxCell id="nZ8_NfAIOoxuCbflcZYr-2" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;">FDIR</span>" vertex="1">
|
||||
<mxGeometry height="22" width="80.57142857142857" x="824.0028571428571" y="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="nZ8_NfAIOoxuCbflcZYr-4" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;">TMTC</span>" vertex="1">
|
||||
<mxGeometry height="29.1" width="94.67142857142858" x="612.8428571428572" y="41.9" as="geometry" />
|
||||
<mxCell id="nZ8_NfAIOoxuCbflcZYr-4" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;">TMTC</span>" vertex="1">
|
||||
<mxGeometry height="22" width="94.67142857142858" x="614.0028571428571" y="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="932u3wCXrdYco77gi_Ax-1" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;">Mode Tree</span>" vertex="1">
|
||||
<mxGeometry height="22" width="105.48" x="680" y="50" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="932u3wCXrdYco77gi_Ax-2" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;">Controllers</span>" vertex="1">
|
||||
<mxGeometry height="22" width="104.57" x="800" y="50" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="932u3wCXrdYco77gi_Ax-5" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;">Device Drivers</span>" vertex="1">
|
||||
<mxGeometry height="22" width="115" x="499" y="80" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 187 KiB After Width: | Height: | Size: 205 KiB |
@@ -1,78 +1,98 @@
|
||||
<mxfile host="Electron">
|
||||
<diagram name="Page-1" id="L7hDkg9csFOap1jIF0ey">
|
||||
<mxGraphModel dx="1019" dy="583" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
|
||||
<mxGraphModel dx="571" dy="1434" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-28" parent="1" style="rounded=0;arcSize=20;strokeWidth=3;fillColor=#E2E8F0;strokeColor=#475569;fontColor=#1E293B;labelBackgroundColor=none;fontStyle=1;fontSize=14;perimeterSpacing=1;" value="Hardware" vertex="1">
|
||||
<mxGeometry height="40" width="430" x="480" y="383" as="geometry" />
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-43" connectable="0" parent="1" style="group;fillColor=#FFF7ED;rounded=0;labelBackgroundColor=none;fontColor=#6B2F00;strokeColor=#D55E00;strokeWidth=3;perimeterSpacing=1;container=0;" value="" vertex="1">
|
||||
<mxGeometry height="190" width="428" x="482" y="140" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-31" edge="1" parent="1" source="mcy6J03i3kvHfejOpHHr-16" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;labelBackgroundColor=none;strokeColor=#969696;fontColor=default;entryX=0.513;entryY=-0.015;entryDx=0;entryDy=0;entryPerimeter=0;endArrow=classic;endFill=1;edgeStyle=orthogonalEdgeStyle;exitX=0.51;exitY=1.006;exitDx=0;exitDy=0;exitPerimeter=0;" target="mcy6J03i3kvHfejOpHHr-28">
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-28" parent="1" style="rounded=0;arcSize=20;strokeWidth=3;fillColor=#E2E8F0;strokeColor=#475569;fontColor=#1E293B;labelBackgroundColor=none;fontStyle=1;fontSize=14;perimeterSpacing=1;" value="Hardware" vertex="1">
|
||||
<mxGeometry height="40" width="430" x="482" y="352" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-31" edge="1" parent="1" source="mcy6J03i3kvHfejOpHHr-16" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;labelBackgroundColor=none;strokeColor=#969696;fontColor=default;entryX=0.52;entryY=-0.019;entryDx=0;entryDy=0;entryPerimeter=0;endArrow=classic;endFill=1;edgeStyle=orthogonalEdgeStyle;exitX=0.518;exitY=1.002;exitDx=0;exitDy=0;exitPerimeter=0;" target="mcy6J03i3kvHfejOpHHr-28">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="700.3" y="370" />
|
||||
<mxPoint x="700.6" y="370" />
|
||||
<mxPoint x="703.6" y="330.4" />
|
||||
</Array>
|
||||
<mxPoint x="700" y="370" as="sourcePoint" />
|
||||
<mxPoint x="680.36" y="340.24" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-32" edge="1" parent="1" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=-0.006;entryDx=0;entryDy=0;entryPerimeter=0;strokeWidth=2;labelBackgroundColor=none;fontColor=default;exitX=0.445;exitY=0.994;exitDx=0;exitDy=0;exitPerimeter=0;edgeStyle=orthogonalEdgeStyle;curved=0;strokeColor=#969696;" target="mcy6J03i3kvHfejOpHHr-16">
|
||||
<mxCell id="T22fa2qrIJ5I1ijH7CBO-27" connectable="0" parent="1" style="group" value=" " vertex="1">
|
||||
<mxGeometry height="139" width="443" x="481" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="T22fa2qrIJ5I1ijH7CBO-14" connectable="0" parent="T22fa2qrIJ5I1ijH7CBO-27" style="group" value="" vertex="1">
|
||||
<mxGeometry height="114" width="443" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="T22fa2qrIJ5I1ijH7CBO-15" parent="T22fa2qrIJ5I1ijH7CBO-14" style="rounded=0;arcSize=20;strokeWidth=3;fillColor=#BFDCEC;strokeColor=#0072B2;fontSize=14;fontColor=#003A5D;labelBackgroundColor=none;fontStyle=1;labelPosition=center;verticalLabelPosition=middle;align=center;verticalAlign=top;spacingTop=0;perimeterSpacing=1;" value="Application" vertex="1">
|
||||
<mxGeometry height="117" width="430" y="-3" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="T22fa2qrIJ5I1ijH7CBO-16" parent="T22fa2qrIJ5I1ijH7CBO-14" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;">Mission Logic</span>" vertex="1">
|
||||
<mxGeometry height="22" width="113.16" x="13" y="25" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="T22fa2qrIJ5I1ijH7CBO-17" parent="T22fa2qrIJ5I1ijH7CBO-14" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;"><font face="Courier New">sat-rs</font></span>" vertex="1">
|
||||
<mxGeometry height="22" width="93" x="238" y="25" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="T22fa2qrIJ5I1ijH7CBO-18" parent="T22fa2qrIJ5I1ijH7CBO-14" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;"><font face="Courier New">spacepackets</font></span>" vertex="1">
|
||||
<mxGeometry height="22" width="113.16" x="14" y="55" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="T22fa2qrIJ5I1ijH7CBO-19" parent="T22fa2qrIJ5I1ijH7CBO-14" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;">Events</span>" vertex="1">
|
||||
<mxGeometry height="22" width="86.24" x="136" y="55" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="T22fa2qrIJ5I1ijH7CBO-20" parent="T22fa2qrIJ5I1ijH7CBO-14" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;"><font face="Courier New">cfdp</font></span>" vertex="1">
|
||||
<mxGeometry height="22" width="93" x="231" y="55" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="T22fa2qrIJ5I1ijH7CBO-21" parent="T22fa2qrIJ5I1ijH7CBO-14" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;">Device Drivers</span>" vertex="1">
|
||||
<mxGeometry height="22" width="114.16" x="13" y="85" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="T22fa2qrIJ5I1ijH7CBO-22" parent="T22fa2qrIJ5I1ijH7CBO-14" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;">Mode Tree</span>" vertex="1">
|
||||
<mxGeometry height="22" width="105.48" x="135.99999999999997" y="85" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="T22fa2qrIJ5I1ijH7CBO-23" parent="T22fa2qrIJ5I1ijH7CBO-14" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;">Controllers</span>" vertex="1">
|
||||
<mxGeometry height="22" width="86.24" x="333" y="55" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="T22fa2qrIJ5I1ijH7CBO-24" parent="T22fa2qrIJ5I1ijH7CBO-14" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;">TMTC</span>" vertex="1">
|
||||
<mxGeometry height="22" width="93" x="133.67" y="25" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="T22fa2qrIJ5I1ijH7CBO-25" parent="T22fa2qrIJ5I1ijH7CBO-14" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;"><font face="Courier New">FDIR</font></span>" vertex="1">
|
||||
<mxGeometry height="22" width="79" x="342" y="25" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="T22fa2qrIJ5I1ijH7CBO-26" edge="1" parent="T22fa2qrIJ5I1ijH7CBO-27" source="T22fa2qrIJ5I1ijH7CBO-15" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=-0.006;entryDx=0;entryDy=0;entryPerimeter=0;strokeWidth=2;labelBackgroundColor=none;fontColor=default;exitX=0.502;exitY=0.992;exitDx=0;exitDy=0;exitPerimeter=0;edgeStyle=orthogonalEdgeStyle;curved=0;strokeColor=#969696;">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="680" y="104.48999999999998" as="sourcePoint" />
|
||||
<mxPoint x="680.4399999999998" y="140.00000000000003" as="targetPoint" />
|
||||
<mxPoint x="198" y="104.49000000000001" as="sourcePoint" />
|
||||
<mxPoint x="216" y="139" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-43" connectable="0" parent="1" style="group;fillColor=#FFF7ED;rounded=0;labelBackgroundColor=none;fontColor=#6B2F00;strokeColor=#D55E00;strokeWidth=3;perimeterSpacing=1;" value="" vertex="1">
|
||||
<mxGeometry height="220" width="428" x="482" y="140" as="geometry" />
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-16" parent="1" style="whiteSpace=wrap;strokeWidth=2;verticalAlign=top;fillColor=#FED7AA;strokeColor=#EA580C;fontColor=#6B2F00;fontSize=14;rounded=0;labelBackgroundColor=none;fontStyle=1" value="System / platform
Embedded Linux" vertex="1">
|
||||
<mxGeometry height="190" width="428" x="482" y="140" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-16" parent="mcy6J03i3kvHfejOpHHr-43" style="whiteSpace=wrap;strokeWidth=2;verticalAlign=top;fillColor=#FED7AA;strokeColor=#EA580C;fontColor=#6B2F00;fontSize=14;rounded=0;labelBackgroundColor=none;fontStyle=1" value="System / platform
Embedded Linux" vertex="1">
|
||||
<mxGeometry height="220" width="428" as="geometry" />
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-35" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;aspect=fixed;" value="<span style="font-weight: normal;">Logging<br></span><div><span style="font-weight: normal;"><font face="Courier New" style="font-size: 12px;">log + fern</font></span></div>" vertex="1">
|
||||
<mxGeometry height="40" width="125" x="495" y="189.49" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-35" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Logging<br></span><div><span style="font-weight: normal;"><font face="Courier New" style="font-size: 12px;">log + fern</font></span></div>" vertex="1">
|
||||
<mxGeometry height="43.67" width="125" x="13" y="49.49" as="geometry" />
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-36" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;aspect=fixed;" value="<span style="font-weight: normal;">Serialization<br><font face="Courier New" style="font-size: 12px;">serde + postcard</font></span>" vertex="1">
|
||||
<mxGeometry height="40" width="134.66" x="634" y="189.18367088607596" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-36" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Serialization<br><font face="Courier New" style="font-size: 12px;">serde + postcard</font></span>" vertex="1">
|
||||
<mxGeometry height="44.689873417721515" width="134.66" x="152" y="50.00367088607595" as="geometry" />
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-37" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;aspect=fixed;" value="<span style="font-weight: normal;">Containers<br><font face="Courier New" style="font-size: 12px;">heapless + std</font></span>" vertex="1">
|
||||
<mxGeometry height="40" width="115" x="782.79" y="189.18" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-37" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Containers<br><font face="Courier New" style="font-size: 12px;">heapless + std</font></span>" vertex="1">
|
||||
<mxGeometry height="44.28" width="115" x="300.79" y="49.18" as="geometry" />
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-38" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;aspect=fixed;" value="<span style="font-weight: normal;">Time<br><font style="font-size: 12px;" face="Courier New">std</font></span>" vertex="1">
|
||||
<mxGeometry height="40" width="125" x="494" y="236" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-38" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Time<br><font style="font-size: 12px;" face="Courier New">std</font></span>" vertex="1">
|
||||
<mxGeometry height="46.58" width="125" x="13" y="105.78" as="geometry" />
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-39" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;aspect=fixed;" value="<span style="font-weight: normal;">IPC / Sync<br></span><div><span style="font-weight: normal;"><font style="font-size: 12px;" face="Courier New">std</font></span></div>" vertex="1">
|
||||
<mxGeometry height="40" width="135" x="633" y="236" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-39" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">IPC / Sync<br></span><div><span style="font-weight: normal;"><font style="font-size: 12px;" face="Courier New">std</font></span></div>" vertex="1">
|
||||
<mxGeometry height="45.61" width="135" x="152" y="107" as="geometry" />
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-40" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;aspect=fixed;" value="<span style="font-weight: normal;">Memory<br><font face="Courier New" style="font-size: 12px;">alloc</font></span>" vertex="1">
|
||||
<mxGeometry height="40" width="113.79" x="782" y="235.99628691983122" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-40" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Memory<br><font face="Courier New" style="font-size: 12px;">alloc</font></span>" vertex="1">
|
||||
<mxGeometry height="46.09704641350211" width="113.79" x="302.21" y="107.23628691983123" as="geometry" />
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-41" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;aspect=fixed;" value="<span style="font-weight: normal;">Tasks<br><font face="Courier New"><span style="font-size: 12px;">std</span></font></span>" vertex="1">
|
||||
<mxGeometry height="40" width="125" x="495" y="283" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-41" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Tasks<br><font face="Courier New"><span style="font-size: 12px;">std</span></font></span>" vertex="1">
|
||||
<mxGeometry height="43.67" width="125" x="13" y="164.01" as="geometry" />
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-42" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;aspect=fixed;" value="<span style="font-weight: normal;">Hardware API</span><div><span style="font-weight: normal;"><font style="font-size: 12px;">Linux + <font face="Courier New">uio</font></font></span></div>" vertex="1">
|
||||
<mxGeometry height="40" width="137.7" x="633" y="282.9989029535865" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-42" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Hardware API</span><div><span style="font-weight: normal;"><font style="font-size: 12px;">Linux + <font face="Courier New">uio</font></font></span></div>" vertex="1">
|
||||
<mxGeometry height="42.70042194092827" width="137.7" x="151" y="164.9989029535865" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="6sRxE-k6t311zxd993k4-5" parent="mcy6J03i3kvHfejOpHHr-43" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;" value="<span style="font-weight: normal;">Filesystem<br><font face="Courier New" style="font-size: 12px;">std</font></span>" vertex="1">
|
||||
<mxGeometry height="44.69" width="113.79" x="302" y="163.5" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-27" parent="1" style="rounded=0;arcSize=20;strokeWidth=3;fillColor=#BFDCEC;strokeColor=#0072B2;fontSize=14;fontColor=#003A5D;labelBackgroundColor=none;fontStyle=1;labelPosition=center;verticalLabelPosition=middle;align=center;verticalAlign=top;spacingTop=0;" value="Application" vertex="1">
|
||||
<mxGeometry height="107.41" width="430" x="480" y="4.59" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-46" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;">Mission Logic</span>" vertex="1">
|
||||
<mxGeometry height="30.95" width="121" x="499" y="36.05" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-47" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;"><font face="Courier New">sat-rs</font></span>" vertex="1">
|
||||
<mxGeometry height="32.554621848739494" width="113.16" x="770" y="35.25042016806722" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mcy6J03i3kvHfejOpHHr-48" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;">Mission Types</span>" vertex="1">
|
||||
<mxGeometry height="32.55" width="121" x="634.5" y="34.449999999999996" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="6sRxE-k6t311zxd993k4-3" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;"><font face="Courier New">spacepackets</font></span>" vertex="1">
|
||||
<mxGeometry height="29.8" width="121" x="499" y="74" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="6sRxE-k6t311zxd993k4-4" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BFDCEC;fontColor=#003A5D;strokeColor=#0072B2;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=top;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacingTop=0;arcSize=20;" value="<span style="font-weight: normal;"><font face="Courier New">cfdp</font></span>" vertex="1">
|
||||
<mxGeometry height="29.8" width="121" x="634.5" y="74" as="geometry" />
|
||||
<mxCell id="6sRxE-k6t311zxd993k4-5" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;fontColor=#6B2F00;strokeColor=#EA580C;labelBackgroundColor=none;strokeWidth=2;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=14;fontStyle=1;aspect=fixed;" value="<span style="font-weight: normal;">Filesystem<br><font face="Courier New" style="font-size: 12px;">std</font></span>" vertex="1">
|
||||
<mxGeometry height="40" width="113.79" x="782" y="283" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 256 KiB After Width: | Height: | Size: 271 KiB |
@@ -13,9 +13,7 @@ Flight software built with `sat-rs` is generally structured into three layers.
|
||||

|
||||
|
||||
- **Application**: The mission specific logic. This is the code a developer writes for a
|
||||
particular mission. It covers mission logic, TMTC handling, event handling, FDIR and command
|
||||
scheduling. `sat-rs` provides re-usable building blocks for all of these, but the concrete
|
||||
wiring and mission behaviour lives here.
|
||||
particular mission.
|
||||
- **System / platform**: The set of services the application is built on. This covers
|
||||
concepts like logging, serialization, IPC, task and memory management, hardware
|
||||
access, filesystem access and time. Most of these components are provided by external libraries
|
||||
@@ -25,6 +23,12 @@ Flight software built with `sat-rs` is generally structured into three layers.
|
||||
The application layer stays largely the same across missions and targets. The system / platform
|
||||
layer is where the target environment determines which concrete crates and mechanisms are used.
|
||||
|
||||
The book has specified chapters for some of the topics:
|
||||
|
||||
- [TMTC handling and Serialization](./tmtc-modelling.md)
|
||||
- [Events](./events.md)
|
||||
- [Modes](./modes-and-health.md)
|
||||
|
||||
## Embedded Linux
|
||||
|
||||
On an embedded Linux target, the platform layer is provided by the Rust standard library and a
|
||||
|
||||
Reference in New Issue
Block a user