SpaIot Library
controlpanel.h
1/*
2 * SpaIot Library (c) by espilonrt - epsilonrt@gmail.com
3 * This file is part of SpaIot library <https://github.com/epsilonrt/spaiot-lib>
4 *
5 * SpaIot library is licensed under a
6 * Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
7 *
8 * You should have received a copy of the license along with this
9 * work. If not, see <http://creativecommons.org/licenses/by-nc-sa/4.0/>.
10 *
11 * SpaIot library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY;
13 */
14#pragma once
15
16#include "hardwaresettings.h"
17#include "framedecoder.h"
18#include "button.h"
19
20namespace SpaIot {
21
30 class ControlPanel : public FrameDecoder {
31 public:
37 static ControlPanel * getInstance (const HardwareSettings & hwsettings);
42 static ControlPanel * getInstance (const std::string & hwSettingsName);
48 void begin();
55 bool isOpened() const;
61 bool hasButton (int key) const;
67 bool pushButton (int key);
73 const std::map <int, ButtonSettings> buttonSettings() const;
79 uint8_t setPower (bool v = true);
85 uint8_t setFilter (bool v = true);
91 uint8_t setHeater (bool v = true);
97 uint8_t setBubble (bool v = true);
103 uint8_t setJet (bool v = true);
109 bool setDesiredTemp (uint16_t temp);
116 bool setSanitizerTime (uint16_t time);
123 uint16_t waitForDesiredTemp (unsigned long MaxWaitingTimeMs = 5000);
124
125 protected:
126 ControlPanel (const HardwareSettings & hwsettings);
127 uint8_t setKeyOn (int key, bool v);
128
129 private:
130 const std::map <int, ButtonSettings> & m_buttonSettings;
131 bool m_isopened;
132 std::map <int, Button> m_button;
133 static ControlPanel * m_instance;
134 };
135
136}
Control Panel.
Definition: controlpanel.h:30
bool setSanitizerTime(uint16_t time)
Set the water sanitation time.
bool pushButton(int key)
Press and release a button.
uint16_t waitForDesiredTemp(unsigned long MaxWaitingTimeMs=5000)
Press the TempUp button to read the desired temperature.
bool setDesiredTemp(uint16_t temp)
Setting the desired water temperature.
uint8_t setHeater(bool v=true)
Start or stop water heating.
uint8_t setPower(bool v=true)
Start or stop the spa.
bool hasButton(int key) const
Check if the hardware configuration has the button.
uint8_t setFilter(bool v=true)
Start or stop the water filtration.
bool isOpened() const
Indicates whether the connection with the spa is established.
static ControlPanel * getInstance(const std::string &hwSettingsName)
uint8_t setBubble(bool v=true)
Start or stop the the bubble generator.
const std::map< int, ButtonSettings > buttonSettings() const
Buttons settings provides at the instantiation.
static ControlPanel * getInstance(const HardwareSettings &hwsettings)
Create the control panel instance with the provided settings.
void begin()
Configures each of the buttons and initializes and connect with the spa.
uint8_t setJet(bool v=true)
Start or stop the water jets.
This class decodes information from the technical block of the spa.
Definition: framedecoder.h:35
SpaIot name space.
Definition: bussettings.h:21