Index: firmware/App/Tasks/TaskGeneral.c =================================================================== diff -u -rf6016459473bdb85aebe393c07cd580b973d7247 -r7f68a672cbc13227f557ec7ddeecd4cc5b706a99 --- firmware/App/Tasks/TaskGeneral.c (.../TaskGeneral.c) (revision f6016459473bdb85aebe393c07cd580b973d7247) +++ firmware/App/Tasks/TaskGeneral.c (.../TaskGeneral.c) (revision 7f68a672cbc13227f557ec7ddeecd4cc5b706a99) @@ -21,14 +21,17 @@ #include "ConcentratePumps.h" #include "DrainPump.h" #include "Fans.h" -#include "Heaters.h" +#include "Heaters.h" +#include "NVDataMgmt.h" #include "OperationModes.h" #include "Reservoirs.h" -#include "ROPump.h" +#include "ROPump.h" +#include "RTC.h" #include "SystemComm.h" #include "SystemCommMessages.h" #include "TaskGeneral.h" #include "Thermistors.h" +#include "UVReactors.h" #include "WatchdogMgmt.h" /** @@ -53,7 +56,15 @@ * @return none *************************************************************************/ void taskGeneral( void ) -{ +{ + /* Order of exec functions + * 1. Comm Rx + * 2. Monitors + * 3. Op modes + * 4. Controllers + * 5. Comm Tx + * */ + #ifdef TASK_TIMING_OUTPUT_ENABLED // SET_TASK_ON(); // TODO - uncomment and define TASK_TIMING_OUTPUT_ENABLED to monitor this tasks timing #endif @@ -62,8 +73,12 @@ checkInWithWatchdogMgmt( TASK_GENERAL ); // do this first to keep timing consistent with watchdog management // manage data received from other sub-systems - execSystemCommRx(); + execSystemCommRx(); + // Control and monitor RTC + execRTC(); + +#ifndef BOARD_WITH_NO_HARDWARE // monitor concentrate pumps execConcentratePumpMonitor(); @@ -83,7 +98,11 @@ execFans(); // manage time-based reservoir tasks - execReservoirs(); + execReservoirs(); + + // Manage UV reactors controller + execUVReactors(); +#endif #ifndef DISABLE_HEATERS_AND_TEMPS // Primary heaters state machine @@ -93,7 +112,11 @@ execTrimmerHeater(); #endif // run operation mode state machine - execOperationModes(); + execOperationModes(); + + // Run non-volatile data management state machine that sends the data record + // to Dialin + execNVDataMgmtProcessRecord(); // manage data to be transmitted to other sub-systems execSystemCommTx();