31#include <cRIO/Singleton.h>
33#include <Accelerometer.h>
34#include <BumpTestController.h>
35#include <Displacement.h>
36#include <ForceActuatorApplicationSettings.h>
37#include <ForceController.h>
39#include <HardpointActuatorApplicationSettings.h>
40#include <HardpointMonitorApplicationSettings.h>
41#include <HardpointTestController.h>
42#include <Inclinometer.h>
43#include <InclinometerSettings.h>
44#include <MirrorLowerController.h>
45#include <MirrorRaiseController.h>
46#include <PIDSettings.h>
47#include <PositionController.h>
48#include <PositionControllerSettings.h>
49#include <PowerController.h>
50#include <ProfileController.h>
52#include <SafetyController.h>
53#include <SlewController.h>
54#include <StartCommand.h>
55#include <StateTypes.h>
67class Model :
public cRIO::Singleton<Model> {
72 inline Displacement *getDisplacement() {
return _displacement; }
73 inline Inclinometer *getInclinometer() {
return _inclinometer; }
74 inline SSILCs *getILC() {
return _ilc; }
75 inline ForceController *getForceController() {
return _forceController; }
78 inline Accelerometer *getAccelerometer() {
return _accelerometer; }
79 inline PowerController *getPowerController() {
return _powerController; }
82 inline Gyro *getGyro() {
return _gyro; }
86 inline SlewController *getSlewController() {
return &_slewController; }
88 void setCachedTimestamp(
double timestamp) { this->_cachedTimestamp = timestamp; }
89 double getCachedTimestamp() {
return _cachedTimestamp; }
91 void loadSettings(
const char *settingsToApply);
94 void publishStateChange(States::Type newState);
95 void publishRecommendedSettings();
96 void publishOuterLoop(std::chrono::nanoseconds executionTime);
99 void waitForExitControl();
102 Model &operator=(
const Model &) =
delete;
103 Model(
const Model &) =
delete;
105 void _populateHardpointActuatorInfo(
107 void _populateHardpointMonitorInfo(
128 double _cachedTimestamp;
Definition Accelerometer.h:38
Performs bump test on single force actuator (FA).
Definition BumpTestController.h:93
Definition Displacement.h:42
Coordinate force actuators force calculcation.
Definition ForceController.h:128
Loads Hardpoint Settings.
Definition HardpointActuatorApplicationSettings.h:51
Definition HardpointMonitorApplicationSettings.h:40
Performs hardpoint test.
Definition HardpointTestController.h:41
Definition Inclinometer.h:42
Controls mirror raising operation.
Definition MirrorLowerController.h:44
Controls mirror raising peration.
Definition MirrorRaiseController.h:50
Controls M1M3 position.
Definition PositionController.h:61
Definition PowerController.h:45
Definition ProfileController.h:33
Controls mirror safety.
Definition SafetyController.h:50
Provides methods to enter and exit slew configuration.
Definition SlewController.h:36
Definition StartCommand.h:43