Automatic Curtain  MVP
Software repository for an automatic curtain using stepper motor, TMC2209 and ESP32
controller.h
Go to the documentation of this file.
1 
12 #ifndef _CONTROLLER_INCLUDE_GUARD
13 #define _CONTROLLER_INCLUDE_GUARD
14 
15 #include <memory>
16 
17 #include "../alexa_interaction/alexa_interaction.h"
18 #include "../config/config.h"
19 #include "../connectivity/connectivity.h"
20 #include "../indicator/indicator.h"
21 #include "../logging/logging.h"
22 #include "../manual_interaction/manual_interaction.h"
23 #include "../motor_driver/motor_driver.h"
24 #include "../storage/storage.h"
25 
26 class Controller {
27  public:
32  Controller();
33 
38  ~Controller();
39 
52  void Handle();
53 
54  private:
55  // Device parameter initialization
64 
65  // Device class objects initialization
66  std::shared_ptr<Logging> logger_{nullptr};
67  std::unique_ptr<Storage> store_{nullptr};
68  std::unique_ptr<Indicator> indicator_{nullptr};
69  std::unique_ptr<Connectivity> connectivity_{nullptr};
70  std::unique_ptr<AlexaInteraction> alexa_interaction_{nullptr};
71  std::unique_ptr<MotorDriver> motor_driver_{nullptr};
72  std::unique_ptr<ManualInteraction> manual_interaction_{nullptr};
73 
78  bool LoadParameters();
79 
84  bool SaveParameters();
85 
90  void InitializeResetMode();
91 
96  void HandleResetMode();
97 
103 
108  void HandleMaintenanceMode();
109 
115 
120  void HandleOperationMode();
121 
126  void RestartDevice();
127 
132  void StopOperationMode();
133 
138  void StopResetMode();
139 
146  bool Calibrate();
147 };
148 
149 #endif
OPERATION_MODE
Definition: config.h:75
std::unique_ptr< Indicator > indicator_
Definition: controller.h:68
void HandleMaintenanceMode()
Handle reset mode.
Definition: controller.cpp:135
Definition: controller.h:26
~Controller()
Destroy the Controller object.
Definition: controller.cpp:64
std::chrono::time_point< std::chrono::system_clock > time_var
Definition: config.h:176
CONFIG_SET::DEVICE_CRED device_cred_
Definition: controller.h:56
void HandleResetMode()
Handle reset mode.
Definition: controller.cpp:94
void RestartDevice()
Restarts device.
Definition: controller.cpp:352
std::shared_ptr< Logging > logger_
Definition: controller.h:66
bool LoadParameters()
Mounts all the parameters from the storage.
Definition: controller.cpp:262
void InitializeMaintenanceMode()
Initialize maintenance mode.
Definition: controller.cpp:127
std::unique_ptr< Connectivity > connectivity_
Definition: controller.h:69
CONFIG_SET::DRIVER_STATUS last_motor_status_
Definition: controller.h:61
CONFIG_SET::time_var mode_start_time_
Definition: controller.h:60
Controller()
Construct a new Controller object, initializes the device.
Definition: controller.cpp:30
std::unique_ptr< AlexaInteraction > alexa_interaction_
Definition: controller.h:70
void InitializeOperationMode()
Initialize operation mode.
Definition: controller.cpp:146
Definition: config.h:170
CONFIG_SET::CALIB_PARAMS calib_params_
Definition: controller.h:57
int last_blind_percentage_
Definition: controller.h:62
bool Calibrate()
Calibrate the motor driver, determine the stall value and total step count, updates internal calib_pa...
Definition: controller.cpp:274
void StopOperationMode()
Call when exiting operation mode.
Definition: controller.cpp:338
bool long_press_enabled_
Definition: controller.h:63
void InitializeResetMode()
Initialize reset mode.
Definition: controller.cpp:84
std::unique_ptr< MotorDriver > motor_driver_
Definition: controller.h:71
CONFIG_SET::DEVICE_STATUS indicator_status_
Definition: controller.h:59
CONFIG_SET::OPERATION_MODE operation_mode_
Definition: controller.h:58
Definition: config.h:164
bool SaveParameters()
Save all the parameters to storage.
Definition: controller.cpp:269
void StopResetMode()
Call when exiting reset mode.
Definition: controller.cpp:346
void Handle()
Continous loop after initialization, handles the controlling of the device Performs following functio...
Definition: controller.cpp:66
std::unique_ptr< ManualInteraction > manual_interaction_
Definition: controller.h:72
DRIVER_STATUS
Definition: config.h:154
std::unique_ptr< Storage > store_
Definition: controller.h:67
DEVICE_STATUS
Definition: config.h:147
void HandleOperationMode()
Handle operation mode.
Definition: controller.cpp:162