Table of Contents | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
🤔 Problem Statement
...
Make sure to allocate enough time for each manager so that its processes have enough time to execute
May have to implement a queue for data
May have to implement interrupts
ZP 3.5b SM Rearchitecture
The following are the list of present assumptions in place for each interface rearchitectured SM will deal with.
RC Driver:
Will support a
->get()
method in the interfaceStucture of respond currently unknown, for now assume it has roll, pitch, yaw, throttle
Inter-Manager Queue Driver:
Will support a
->pop()
and a->push()
Only
->push()
is relevant for SMWill push any messages that need to go to AM
Attitude Manager:
Agreed structure for queue messages from SM to AM is attached below:
Code Block | ||
---|---|---|
| ||
typedef struct {
int8_t roll; // Roll percentage
int8_t yaw; // Yaw percentage
int8_t pitch; // Pitch percentage
int8_t throttle; // Throttle percentage
} RCMotorControlMessage_t; |
Reference Material
Link to previous SysManager SysManagers
https://github.com/UWARG/ZeroPilot-SW-3/tree/main/SystemManager
https://github.com/UWARG/efs-zeropilot-3.5/blob/main/SystemManager/Src/SystemManager.cpp
Link to a simple SysManager https://github.com/UWARG/SimpleSystemManager/blob/master/Core/Src/main.cpp
...