Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement a RCA architecture #81

Open
abagali1 opened this issue Jan 10, 2020 · 0 comments
Open

Implement a RCA architecture #81

abagali1 opened this issue Jan 10, 2020 · 0 comments
Assignees

Comments

@abagali1
Copy link
Member

abagali1 commented Jan 10, 2020

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants