File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 44
55#include " LoadConfig.hpp"
66#include " LoadTasks.hpp"
7+ #include " MCP23008T.hpp"
78
89/* *
910 * @brief Class to manage the container for load data
@@ -51,7 +52,7 @@ class LoadContainer {
5152 TID_LOG
5253 };
5354
54- LoadContainer () = default ;
55+ LoadContainer (MCP23008T &loadDevice) : loadDevice(loadDevice) {}
5556 ~LoadContainer () = default ;
5657
5758 inline bool getSafetyFlag () const { return safetyFlag; }
@@ -66,10 +67,13 @@ class LoadContainer {
6667 inline void updatePowerPositive (bool powerPositive) {
6768 this ->powerPositive = powerPositive;
6869 }
70+ inline void setLoadGPIO (uint_fast8_t value) {
71+ loadDevice.setGPIO ((uint32_t )value);
72+ }
6973
7074 private:
7175 // INA260&
72- // loa&
76+ MCP23008T &loadDevice;
7377
7478 bool safetyFlag = false ; // todo
7579 bool powerPositive = false ;
Original file line number Diff line number Diff line change @@ -78,7 +78,7 @@ class LoadFSM {
7878 vTaskSuspend (load.mainTaskDescriptions
7979 [LoadContainer::TASK_IDS ::TID_ADJUST_LOAD ]
8080 .pxHandle );
81- // todo: turn off load
81+ load. setLoadGPIO ( 0b0000'0000 ); // todo: one inverted?
8282
8383 return UPDATE_RESULT ::STATE_CHANGED ;
8484 } else if ((currentState == FSMCommon::States::sESTOP ) &&
@@ -97,7 +97,7 @@ class LoadFSM {
9797 vTaskSuspend (load.mainTaskDescriptions
9898 [LoadContainer::TASK_IDS ::TID_ADJUST_LOAD ]
9999 .pxHandle );
100- // todo: turn off load (possibly a second time)
100+ load. setLoadGPIO ( 0b0000'0000 ); // todo: one inverted?
101101
102102 return UPDATE_RESULT ::STATE_CHANGED ;
103103 } else if ((currentState == FSMCommon::States::sRST ) &&
@@ -123,8 +123,7 @@ class LoadFSM {
123123 currentState = FSMCommon::States::sRunLoad ;
124124
125125 // Nacelle can detect this on it's own
126- // TODO: enable load
127- vTaskResume (
126+ vTaskResume ( // todo: check load logic
128127 load.mainTaskDescriptions
129128 [LoadContainer::TASK_IDS ::TID_ADJUST_LOAD ]
130129 .pxHandle ); // todo: better way to signal load task?
Original file line number Diff line number Diff line change @@ -42,14 +42,15 @@ AdapterWLAN adapterWLAN;
4242AdapterESPNow adapterESPNow;
4343// SyncedClock netClock = SyncedClock(adapterESPNow); // todo
4444SyncedClock netClock (adapterESPNow); // todo
45- LoadContainer load;
46- LoadFSM loadFSM (load);
4745
4846Adafruit_NeoPixel leds (1 , UM_PROS3 ::LED_DATA_PIN , NEO_GRB + NEO_KHZ800 );
4947MCP23008T loadDevice (static_cast <MCP23008T ::I2C_ADDRESS >(LOAD ::I2C_ADDRESS ),
5048 &Wire);
5149bool loadConfigured = false ;
5250
51+ LoadContainer load (loadDevice);
52+ LoadFSM loadFSM (load);
53+
5354// todo: move
5455bool configureLoad () {
5556 if (!loadDevice.begin ()) {
You can’t perform that action at this time.
0 commit comments