Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
minLevel1
maxLevel6
outlinefalse
styledefault
typelist
separatorbrackets
printablefalse

🤔 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 purpose of this rearchitecture is to introduce dependency injection such that it is no longer hardware dependant. Will support a gtest friendly build and a hardware friendly build via injection.

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 interface

  • Stucture of respond currently unknown, for now assume it has roll, pitch, yaw, throttle

  • Will also support a ->is_data_new() method in the interface

Inter-Manager Queue Driver:

  • Will support a ->pop(), ->get() and a ->push()

  • Only ->push() is relevant for SM

  • Will 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
languagecpp
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

Link to a simple SysManager https://github.com/UWARG/SimpleSystemManager/blob/master/Core/Src/main.cpp

...