Skip to content

Implement a RCA architecture #81

@abagali1

Description

@abagali1

Description

Change the current, multithreaded system architecture to a singled threaded Main Control Loop system implementing a Read-Control-Actuate structure. In addition to changing the system architecture, also ensure that all new system states are implemented properly and completely according to the following ConOps.

Related Issues
State Flow: #79
Removing continuous Radio read threads: #80

RCA

Instead of starting each submodule and letting them go off into their own tasks, the system should run completely linearly. This is a simplified loop process:

1 (R). Read data from all sensors, store into variables
2 (C). Given all data decide what should be done
  (switch states, send messages, execute commands, etc.)
3 (A). Actually execute previously queued tasks

Reading

Examples of data that should be collected in this phase:
leave functionality for more data

  • EPS
    • Power!
    • Telemetry data
  • Time
  • Antenna Deployer state
  • APRS
    • Heartbeat/Telemetry data?
    • Received Messages
  • Iridium
    • Received Messages

Controlling

Everything that used to be threaded(core processes) should transition over to this stage
i.e

  • Process Data
  • Decide states
    • do not explicitly change states in Control
    • execute state flow commands before finally saying mode = [new mode]
  • check power
  • Decide what to beacon via APRS
  • Decide what to dump via APRS
  • Decide what toTX through Iridium

Actuating

This is the stage where everything decided in Controlling is actually executed

  • Beacon APRS
  • Dump APRS
  • TX through Iridium
  • Turn hardware on/off

Diagrams

State Flow:
https://files.slack.com/files-pri/T2CHTKKKR-FS5208D2P/image_from_ios.jpg

RCA Overview:
https://files.slack.com/files-pri/T2CHTKKKR-FSG2B88JG/image_from_ios.jpg

Preliminary Planning:
https://files.slack.com/files-pri/T2CHTKKKR-FSJPBPY94/image_from_ios.jpg
https://files.slack.com/files-pri/T2CHTKKKR-FSGH91DU0/image_from_ios.jpg

Metadata

Metadata

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions