SpaIot Library
Loading...
Searching...
No Matches
framedecoder.h
1/*
2 SpaIot Library (c) by epsilonrt - epsilonrt@epsilonrt.fr
3 This file is part of SpaIot library <https://github.com/epsilonrt/spaiot-lib>
4 This file is based on DIYSCIP (c) by Geoffroy HUBERT
5
6 SPDX-License-Identifier: BSD-3-Clause
7
8 SpaIot library is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY;
10*/
11#pragma once
12
13#include <map>
14#include "bussettings.h"
15#include "ledsettings.h"
16
17namespace SpaIot {
18
31 public:
39
49 const std::map <int, LedSettings> &leds);
50
56 virtual ~FrameDecoder();
57
68 virtual void begin (unsigned long waitingTimeMs = BeginWaitingTimeMs);
69
75 virtual void begin (const BusSettings &settings,
76 const std::map <int, LedSettings> &leds,
77 unsigned long waitingTimeMs = BeginWaitingTimeMs);
78
82 virtual void end();
83
90 virtual bool isOpen() const;
91
95 virtual bool isReady() const;
96
102 bool hasLed (int key) const;
103
108 const BusSettings &busSettings() const;
109
115 const std::map <int, LedSettings> ledSettings() const;
116
125 uint16_t rawStatus() const;
126
133 uint8_t isLedOn (int key) const;
134
140 inline uint8_t isPowerOn() const;
141
149 inline uint8_t isFilterOn() const;
150
158 inline uint8_t isBubbleOn() const;
159
168 inline uint8_t isHeatReached() const;
169
177 inline uint8_t isJetOn() const;
178
186 inline uint8_t isSanitizerOn() const;
187
197 uint8_t isHeaterOn() const;
198
211 uint16_t waterTemp() const;
212
224 uint16_t desiredTemp() const;
225
231 uint16_t sanitizerTime() const;
232
238 uint32_t frameCounter() const;
239
251 uint32_t frameDropped() const;
252
263 uint16_t error() const;
264
275
281 uint8_t isDisplayBlink() const;
282
289 uint8_t waitUntilDisplayBlink (unsigned long MaxWaitingTimeMs = 5000) const;
290
301 uint16_t waitForWaterTemp (unsigned long MaxWaitingTimeMs = 25000) const;
302
312
313 protected:
314 class Private;
315 FrameDecoder (Private &dd);
316 std::unique_ptr<Private> d_ptr;
317 private:
318 PIMPL_DECLARE_PRIVATE (FrameDecoder)
319 };
320
321 //----------------------------------------------------------------------------
322 inline uint8_t FrameDecoder::isPowerOn() const {
323
324 return isLedOn (Power);
325 }
326
327 //----------------------------------------------------------------------------
328 inline uint8_t FrameDecoder::isFilterOn() const {
329
330 return isLedOn (Filter);
331 }
332
333 //----------------------------------------------------------------------------
334 inline uint8_t FrameDecoder::isBubbleOn() const {
335
336 return isLedOn (Bubble);
337 }
338
339 //----------------------------------------------------------------------------
340 inline uint8_t FrameDecoder::isHeatReached() const {
341
342 return isLedOn (HeatReached);
343 }
344
345 //----------------------------------------------------------------------------
346 inline uint8_t FrameDecoder::isJetOn() const {
347
348 return isLedOn (Jet);
349 }
350
351 //----------------------------------------------------------------------------
352 inline uint8_t FrameDecoder::isSanitizerOn() const {
353
354 return isLedOn (Sanitizer);
355 }
356
357}
SPI 2840X Bus settings.
Definition bussettings.h:25
This class decodes information from the technical block of the spa.
Definition framedecoder.h:30
FrameDecoder()
Default constructor.
uint32_t frameDropped() const
Number of dropped frames.
uint16_t waterTemp() const
Water temperature in °C.
uint8_t isPowerOn() const
Last state of the Power LED.
Definition framedecoder.h:322
uint8_t isBubbleOn() const
Last state of the Bubble LED.
Definition framedecoder.h:334
void clearTempUnitChangeCounter()
Clear the setup mode trigger counter.
uint8_t isHeaterOn() const
State of water heating.
virtual bool isReady() const
Check if communication with the spa is ready, that is to say if a frame has been received.
uint8_t isDisplayBlink() const
Check if the display blink.
const BusSettings & busSettings() const
Bus settings provides at the instantiation.
uint8_t isJetOn() const
Last state of the Jet LED.
Definition framedecoder.h:346
bool isSetupModeTriggered() const
Reset request triggered.
virtual ~FrameDecoder()
Destructor.
uint16_t error() const
Error code displayed by the control panel.
virtual bool isOpen() const
Indicates whether the connection with the spa is established.
uint8_t isLedOn(int key) const
Last state received from an LED.
uint16_t rawStatus() const
Last state of the LEDs received.
uint32_t frameCounter() const
Number of frames received from startup.
uint8_t isFilterOn() const
Last state of the Filter LED.
Definition framedecoder.h:328
FrameDecoder(const BusSettings &bus, const std::map< int, LedSettings > &leds)
Construct a new Frame Decoder object.
const std::map< int, LedSettings > ledSettings() const
Leds settings provides at the instantiation.
virtual void begin(unsigned long waitingTimeMs=BeginWaitingTimeMs)
Initializes and connect with the spa.
uint8_t isHeatReached() const
Last state of the HeatReached LED.
Definition framedecoder.h:340
virtual void begin(const BusSettings &settings, const std::map< int, LedSettings > &leds, unsigned long waitingTimeMs=BeginWaitingTimeMs)
uint8_t isSanitizerOn() const
Last state of the Sanitizer LED.
Definition framedecoder.h:352
uint16_t desiredTemp() const
Water temperature desired in °C.
uint8_t waitUntilDisplayBlink(unsigned long MaxWaitingTimeMs=5000) const
Wait until the display blink.
uint16_t sanitizerTime() const
Remaining sanitation time.
virtual void end()
Close the FrameDecoder.
bool hasLed(int key) const
Check if the hardware configuration has the LED.
uint16_t waitForWaterTemp(unsigned long MaxWaitingTimeMs=25000) const
Wait until the water temperature could be read.
SpaIot name space.
Definition bussettings.h:15
@ Jet
Jet Led or Button.
Definition global.h:37
@ Filter
Filter Led or Button.
Definition global.h:35
@ Sanitizer
Sanitizer Led or Button.
Definition global.h:38
@ HeatReached
Heat Reached Led (Green)
Definition global.h:40
@ Bubble
Bubble Led or Button.
Definition global.h:36
@ Power
Power Led or Button.
Definition global.h:34
const unsigned long BeginWaitingTimeMs
begin() waiting time in milliseconds
Definition global.h:85