Skip to content

Flight executive managing app subprocesses #6

Description

@ivogeorg

Description

Use case

The FlightExecutive (hereon FE) should not execute complex code. It should be the most stable process in the flight stack. It will offload work to "app" subprocesses or separate processes and manage them.

Design notes

  1. The main "apps" are RemoteCommunications, Telemetry, and Vision. These have sufficiently different dynamics that they should be different processes. Various inter-process communications will be necessary.
  2. The main dynamic between the FE and the apps processes is as follows:
    1. The FE starts first upon power on.
    2. The FE starts the app processes.
    3. When the FE performs the pre-flight check, it offloads to the app processes and receives a status from each. If all is good, it continues.
    4. The FE monitors the health of the app processes. If one is down, it restarts it.
    5. When time comes to shut down, the FE sends a message to each app process to "finish what it's doing". This may be known as the "poison-pill technique" because it causes a break out of the app process loop.
    6. The FE finally loops on join-ing each of the processes.

Metadata

Metadata

Assignees

Labels

requirementsBasic required functionality (not enhancement)

Type

No type

Fields

No fields configured for issues without a type.

Projects

Status
In Progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions