From 55efa2d1c6ea161a19f5fa4729eb406bb173af11 Mon Sep 17 00:00:00 2001 From: Visualapproach Date: Fri, 9 Aug 2024 18:02:27 +0200 Subject: [PATCH 1/8] Rearranging files. No changes. --- Code/lib/BWC_unified/FW_VERSION.h | 2 +- Code/lib/BWC_unified/bwc.h | 24 +- Code/lib/cio/CIO_2021.cpp | 15 -- Code/lib/cio/CIO_2021.h | 29 -- Code/lib/cio/CIO_2021HJT.cpp | 15 -- Code/lib/cio/CIO_2021HJT.h | 29 -- Code/lib/cio/CIO_4W.h | 5 +- Code/lib/cio/CIO_4W_MODEL_SPECIFIC.h | 254 ++++++++++++++++++ Code/lib/cio/CIO_54123.h | 51 ---- Code/lib/cio/CIO_54138.h | 55 ---- Code/lib/cio/CIO_54144.h | 56 ---- Code/lib/cio/CIO_54154.h | 51 ---- Code/lib/cio/CIO_54173.h | 57 ---- Code/lib/cio/CIO_PRE2021.cpp | 15 -- Code/lib/cio/CIO_PRE2021.h | 22 -- Code/lib/cio/CIO_TYPE1_MODEL_SPECIFIC.cpp | 43 +++ Code/lib/cio/CIO_TYPE1_MODEL_SPECIFIC.h | 72 +++++ ...4149E.cpp => CIO_TYPE2_MODEL_SPECIFIC.cpp} | 2 +- ...IO_54149E.h => CIO_TYPE2_MODEL_SPECIFIC.h} | 0 Code/lib/dsp/DSP_2021.cpp | 9 - Code/lib/dsp/DSP_2021.h | 18 -- Code/lib/dsp/DSP_2021HJT.cpp | 9 - Code/lib/dsp/DSP_2021HJT.h | 18 -- Code/lib/dsp/DSP_4W_MODEL_SPECIFIC.h | 253 +++++++++++++++++ Code/lib/dsp/DSP_54123.h | 49 ---- Code/lib/dsp/DSP_54138.h | 55 ---- Code/lib/dsp/DSP_54144.h | 55 ---- Code/lib/dsp/DSP_54154.h | 52 ---- Code/lib/dsp/DSP_54173.h | 58 ---- Code/lib/dsp/DSP_PRE2021.cpp | 9 - Code/lib/dsp/DSP_PRE2021.h | 18 -- Code/lib/dsp/DSP_TYPE1_MODEL_SPECIFIC.cpp | 25 ++ Code/lib/dsp/DSP_TYPE1_MODEL_SPECIFIC.h | 46 ++++ ...4149E.cpp => DSP_TYPE2_MODEL_SPECIFIC.cpp} | 2 +- ...SP_54149E.h => DSP_TYPE2_MODEL_SPECIFIC.h} | 0 35 files changed, 703 insertions(+), 770 deletions(-) delete mode 100644 Code/lib/cio/CIO_2021.cpp delete mode 100644 Code/lib/cio/CIO_2021.h delete mode 100644 Code/lib/cio/CIO_2021HJT.cpp delete mode 100644 Code/lib/cio/CIO_2021HJT.h create mode 100644 Code/lib/cio/CIO_4W_MODEL_SPECIFIC.h delete mode 100644 Code/lib/cio/CIO_54123.h delete mode 100644 Code/lib/cio/CIO_54138.h delete mode 100644 Code/lib/cio/CIO_54144.h delete mode 100644 Code/lib/cio/CIO_54154.h delete mode 100644 Code/lib/cio/CIO_54173.h delete mode 100644 Code/lib/cio/CIO_PRE2021.cpp delete mode 100644 Code/lib/cio/CIO_PRE2021.h create mode 100644 Code/lib/cio/CIO_TYPE1_MODEL_SPECIFIC.cpp create mode 100644 Code/lib/cio/CIO_TYPE1_MODEL_SPECIFIC.h rename Code/lib/cio/{CIO_54149E.cpp => CIO_TYPE2_MODEL_SPECIFIC.cpp} (90%) rename Code/lib/cio/{CIO_54149E.h => CIO_TYPE2_MODEL_SPECIFIC.h} (100%) delete mode 100644 Code/lib/dsp/DSP_2021.cpp delete mode 100644 Code/lib/dsp/DSP_2021.h delete mode 100644 Code/lib/dsp/DSP_2021HJT.cpp delete mode 100644 Code/lib/dsp/DSP_2021HJT.h create mode 100644 Code/lib/dsp/DSP_4W_MODEL_SPECIFIC.h delete mode 100644 Code/lib/dsp/DSP_54123.h delete mode 100644 Code/lib/dsp/DSP_54138.h delete mode 100644 Code/lib/dsp/DSP_54144.h delete mode 100644 Code/lib/dsp/DSP_54154.h delete mode 100644 Code/lib/dsp/DSP_54173.h delete mode 100644 Code/lib/dsp/DSP_PRE2021.cpp delete mode 100644 Code/lib/dsp/DSP_PRE2021.h create mode 100644 Code/lib/dsp/DSP_TYPE1_MODEL_SPECIFIC.cpp create mode 100644 Code/lib/dsp/DSP_TYPE1_MODEL_SPECIFIC.h rename Code/lib/dsp/{DSP_54149E.cpp => DSP_TYPE2_MODEL_SPECIFIC.cpp} (85%) rename Code/lib/dsp/{DSP_54149E.h => DSP_TYPE2_MODEL_SPECIFIC.h} (100%) diff --git a/Code/lib/BWC_unified/FW_VERSION.h b/Code/lib/BWC_unified/FW_VERSION.h index db8781ed..b700a281 100644 --- a/Code/lib/BWC_unified/FW_VERSION.h +++ b/Code/lib/BWC_unified/FW_VERSION.h @@ -1 +1 @@ -#define FW_VERSION "2024-07-23-1743" +#define FW_VERSION "2024-08-09-1800" diff --git a/Code/lib/BWC_unified/bwc.h b/Code/lib/BWC_unified/bwc.h index 77af1401..75ae743c 100644 --- a/Code/lib/BWC_unified/bwc.h +++ b/Code/lib/BWC_unified/bwc.h @@ -16,25 +16,13 @@ #include #include #include "enums.h" -#include "CIO_PRE2021.h" -#include "CIO_2021.h" -#include "CIO_2021HJT.h" -#include "CIO_54149E.h" -#include "CIO_54173.h" -#include "CIO_54154.h" -#include "CIO_54144.h" -#include "CIO_54138.h" -#include "CIO_54123.h" +#include "CIO_4W_MODEL_SPECIFIC.h" +#include "CIO_TYPE1_MODEL_SPECIFIC.h" +#include "CIO_TYPE2_MODEL_SPECIFIC.h" -#include "DSP_PRE2021.h" -#include "DSP_2021.h" -#include "DSP_2021HJT.h" -#include "DSP_54149E.h" -#include "DSP_54173.h" -#include "DSP_54154.h" -#include "DSP_54144.h" -#include "DSP_54138.h" -#include "DSP_54123.h" +#include "DSP_4W_MODEL_SPECIFIC.h" +#include "DSP_TYPE1_MODEL_SPECIFIC.h" +#include "DSP_TYPE2_MODEL_SPECIFIC.h" #include "FW_VERSION.h" #include "bwc_debug.h" diff --git a/Code/lib/cio/CIO_2021.cpp b/Code/lib/cio/CIO_2021.cpp deleted file mode 100644 index 4e03c2e1..00000000 --- a/Code/lib/cio/CIO_2021.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#include "CIO_2021.h" - -uint16_t CIO_2021::getButtonCode(Buttons index) -{ - if(index >= sizeof(button_codes)/sizeof(uint16_t)) return 0; - return button_codes[index]; -} - -Buttons CIO_2021::getButton(uint16_t code) -{ - for(unsigned int i = 0; i < sizeof(button_codes)/sizeof(uint16_t); i++){ - if(_button_code == button_codes[i]) return (Buttons)i; - } - return (Buttons)0; -} diff --git a/Code/lib/cio/CIO_2021.h b/Code/lib/cio/CIO_2021.h deleted file mode 100644 index b9d7fa75..00000000 --- a/Code/lib/cio/CIO_2021.h +++ /dev/null @@ -1,29 +0,0 @@ -#pragma once -#include -#include "enums.h" -#include "CIO_TYPE1.h" - -class CIO_2021: public CIO_6_TYPE1 -{ - /*These must be declared for the API to work*/ - public: - String getModel(){return _MYMODEL;}; - - /*internal use*/ - public: - /*Only use for debugging*/ - uint16_t getButtonCode(Buttons button_index) override; - Buttons getButton(uint16_t code) override; - bool getHasjets() override {return _HASJETS;}; - bool getHasair() override {return _HASAIR;}; - - /*These must be declared for the API to work*/ - public: - const String _MYMODEL = "MIAMI2021"; - const bool _HASJETS = false; - const bool _HASAIR = true; - - private: - /*Binary representation of button presses on the display, like 0x1B1B.*/ - uint16_t button_codes[10] = { 0x1B1B, 0x0100, 0x0300, 0x1212, 0x0809, 0x1012, 0x1112, 0x1312, 0x0200, 0x0000 }; -}; diff --git a/Code/lib/cio/CIO_2021HJT.cpp b/Code/lib/cio/CIO_2021HJT.cpp deleted file mode 100644 index cbee9d38..00000000 --- a/Code/lib/cio/CIO_2021HJT.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#include "CIO_2021HJT.h" - -uint16_t CIO_2021_HJT::getButtonCode(Buttons index) -{ - if(index >= sizeof(button_codes)/sizeof(uint16_t)) return 0; - return button_codes[index]; -} - -Buttons CIO_2021_HJT::getButton(uint16_t code) -{ - for(unsigned int i = 0; i < sizeof(button_codes)/sizeof(uint16_t); i++){ - if(_button_code == button_codes[i]) return (Buttons)i; - } - return (Buttons)0; -} \ No newline at end of file diff --git a/Code/lib/cio/CIO_2021HJT.h b/Code/lib/cio/CIO_2021HJT.h deleted file mode 100644 index 9ac132d8..00000000 --- a/Code/lib/cio/CIO_2021HJT.h +++ /dev/null @@ -1,29 +0,0 @@ -#pragma once -#include -#include "enums.h" -#include "CIO_TYPE1.h" - -class CIO_2021_HJT: public CIO_6_TYPE1 -{ - /*These must be declared for the API to work*/ - public: - String getModel(){return _MYMODEL;}; - - /*internal use*/ - public: - /*Only use for debugging*/ - uint16_t getButtonCode(Buttons button_index) override; - Buttons getButton(uint16_t code) override; - bool getHasjets() override {return _HASJETS;}; - bool getHasair() override {return _HASAIR;}; - - /*These must be declared for the API to work*/ - public: - const String _MYMODEL = "MALDIVES2021"; - const bool _HASJETS = true; - const bool _HASAIR = true; - - private: - /*Binary representation of button presses on the display, like 0x1B1B.*/ - uint16_t button_codes[11] = { 0x1B1B, 0x0100, 0x0300, 0x1212, 0x0a09, 0x1012, 0x1312, 0x0809, 0x0200, 0x0000, 0x1112 }; -}; diff --git a/Code/lib/cio/CIO_4W.h b/Code/lib/cio/CIO_4W.h index f6c903fc..c2f67f0c 100644 --- a/Code/lib/cio/CIO_4W.h +++ b/Code/lib/cio/CIO_4W.h @@ -2,11 +2,8 @@ #include #include #include "enums.h" -#include "CIO_BASE.h" #include - - -class BWC; +#include "CIO_BASE.h" class CIO_4W : public CIO { diff --git a/Code/lib/cio/CIO_4W_MODEL_SPECIFIC.h b/Code/lib/cio/CIO_4W_MODEL_SPECIFIC.h new file mode 100644 index 00000000..e3f7fc13 --- /dev/null +++ b/Code/lib/cio/CIO_4W_MODEL_SPECIFIC.h @@ -0,0 +1,254 @@ +#pragma once +#include +#include "enums.h" +#include "CIO_4W.h" + +class CIO_54123: public CIO_4W +{ + public: + String getModel(){return _MYMODEL;}; + uint8_t getPumpBitmask() override {return PUMPBITMASK;} ; + uint8_t getBubblesBitmask() override {return BUBBLESBITMASK;} ; + uint8_t getJetsBitmask() override {return JETSBITMASK;} ; + uint8_t getHeatBitmask1() override {return HEATBITMASK1;} ; + uint8_t getHeatBitmask2() override {return HEATBITMASK2;} ; + uint8_t getPowerBitmask() override {return POWERBITMASK;} ; + uint8_t getJumptable(int row, int col) override {return JUMPTABLE[row][col];}; + uint8_t getAllowedstates(int row, int col) override {return ALLOWEDSTATES[row][col];}; + bool getHasjets() override {return _HASJETS;}; + bool getHasair() override {return _HASAIR;}; + + private: + const String _MYMODEL = "NO54123"; + //WARNING: THIS DEVICE HAS DIFFERENT PINOUTS!!! CHECK BEFORE USING + //#NO54112 - @jenswalit: "this is the Version Vegas 4Pin Pump 1->5V+ 2->Data 3->Data 4->5V-" + //what row in allowedstates to go to when pressing Bubbles, Jets, Pump, Heat (columns in that order) + //Example: We are in state zero (first row). If we press Bubbles (first column) then there is a 6 + //meaning current state (row) is now 6. According to ALLOWEDSTATES table, we turn on Bubbles and keep + //everything else off. (1,0,0,0) + const uint8_t JUMPTABLE[4][4] = { + {1,0,2,3}, + {0,1,2,3}, + {1,2,0,3}, + {1,3,0,2} + }; + //Bubbles, Jets, Pump, Heat + const uint8_t ALLOWEDSTATES[4][4] = { + {0,0,0,0}, + {1,0,0,0}, + {0,0,1,0}, + {0,0,1,2} //the "2" means both heater elements + }; + + const uint8_t PUMPBITMASK = B00010000; //1 << 4; + const uint8_t BUBBLESBITMASK = B00100000; //1 << 5; + const uint8_t JETSBITMASK = B00000000; //0; //no jets on this machine. + const uint8_t HEATBITMASK1 = B00000010; //(1 << 1) "stage 1" + const uint8_t HEATBITMASK2 = B00001000; //(1 << 3) "stage 2" (thanks @dietmar-1 for testing and reporting this) + const uint8_t POWERBITMASK = B00000001; //1; + const bool _HASJETS = false; + const bool _HASAIR = true; +}; + +class CIO_54138: public CIO_4W +{ + public: + String getModel(){return _MYMODEL;}; + uint8_t getPumpBitmask() override {return PUMPBITMASK;} ; + uint8_t getBubblesBitmask() override {return BUBBLESBITMASK;} ; + uint8_t getJetsBitmask() override {return JETSBITMASK;} ; + uint8_t getHeatBitmask1() override {return HEATBITMASK1;} ; + uint8_t getHeatBitmask2() override {return HEATBITMASK2;} ; + uint8_t getPowerBitmask() override {return POWERBITMASK;} ; + uint8_t getJumptable(int row, int col) override {return JUMPTABLE[row][col];}; + uint8_t getAllowedstates(int row, int col) override {return ALLOWEDSTATES[row][col];}; + bool getHasjets() override {return _HASJETS;}; + bool getHasair() override {return _HASAIR;}; + + private: + const String _MYMODEL = "NO54138"; + //what row in allowedstates to go to when pressing Bubbles, Jets, Pump, Heat (columns in that order) + //Example: We are in state zero (first row). If we press Bubbles (first column) then there is a 6 + //meaning current state (row) is now 6. According to ALLOWEDSTATES table, we turn on Bubbles and keep + //everything else off. (1,0,0,0) + const uint8_t JUMPTABLE[5][4] = { + {1,2,3,4}, + {0,2,3,4}, + {1,0,3,4}, + {1,2,0,4}, + {1,2,0,3} + }; + //Bubbles, Jets, Pump, Heat + const uint8_t ALLOWEDSTATES[5][4] = { + {0,0,0,0}, + {1,0,0,0}, + {0,1,0,0}, + {0,0,1,0}, + {0,0,1,2} //the "2" means both heater elements + }; + + const uint8_t PUMPBITMASK = B00000101; //5 + const uint8_t BUBBLESBITMASK = B00000010; //2 + const uint8_t JETSBITMASK = B00001000; //8 + const uint8_t HEATBITMASK1 = B00110000; //48 heater stage 1 = 50% + const uint8_t HEATBITMASK2 = B01000000; //64 heater stage 2 = 100% + //lines below should be tested. It would be consistent with 54173 model. + //If heating is slow this is probably the cause but I don't want to change it before someone tests it. + //const uint8_t HEATBITMASK1 = B00000000; //00 heater stage 1 = off + //const uint8_t HEATBITMASK2 = B00110000; //48 heater stage 2 = on + const uint8_t POWERBITMASK = B10000000; //128 + const bool _HASJETS = true; + const bool _HASAIR = true; +}; + +class CIO_54144: public CIO_4W +{ + public: + String getModel(){return _MYMODEL;}; + uint8_t getPumpBitmask() override {return PUMPBITMASK;} ; + uint8_t getBubblesBitmask() override {return BUBBLESBITMASK;} ; + uint8_t getJetsBitmask() override {return JETSBITMASK;} ; + uint8_t getHeatBitmask1() override {return HEATBITMASK1;} ; + uint8_t getHeatBitmask2() override {return HEATBITMASK2;} ; + uint8_t getPowerBitmask() override {return POWERBITMASK;} ; + uint8_t getJumptable(int row, int col) override {return JUMPTABLE[row][col];}; + uint8_t getAllowedstates(int row, int col) override {return ALLOWEDSTATES[row][col];}; + bool getHasjets() override {return _HASJETS;}; + bool getHasair() override {return _HASAIR;}; + + private: + const String _MYMODEL = "NO54144"; + //what row in allowedstates to go to when pressing Bubbles, Jets, Pump, Heat (columns in that order) + //Example: We are in state zero (first row). If we press Bubbles (first column) then there is a 6 + //meaning current state (row) is now 6. According to ALLOWEDSTATES table, we turn on Bubbles and keep + //everything else off. (1,0,0,0) + const uint8_t JUMPTABLE[5][4] = { + // b,j,p,h + {1,2,3,4}, + {0,2,3,4}, + {1,0,3,4}, + {1,2,0,4}, + {1,2,0,3} + }; + //Bubbles, Jets, Pump, Heat + const uint8_t ALLOWEDSTATES[5][4] = { + {0,0,0,0}, + {1,0,0,0}, + {0,1,0,0}, + {0,0,1,0}, + {0,0,1,2} //the "2" means both heater elements + }; + + const uint8_t PUMPBITMASK = B00000101; //5 + const uint8_t BUBBLESBITMASK = B00000010; //2 + const uint8_t JETSBITMASK = B00001000; //8 + // const uint8_t HEATBITMASK1 = B00000000; //0 heater stage 1 = off + // const uint8_t HEATBITMASK2 = B00110000; //48 heater stage 2 = on + //lines below should be tested. It would be consistent with 54173 model. + //If heating is slow this is probably the cause but I don't want to change it before someone tests it. + const uint8_t HEATBITMASK1 = B00110000; //48 heater stage 1 = 50% + const uint8_t HEATBITMASK2 = B01000000; //64 heater stage 2 = 100% + const uint8_t POWERBITMASK = B10000000; //128 + const bool _HASJETS = true; + const bool _HASAIR = false; +}; + +class CIO_54154: public CIO_4W +{ + public: + String getModel(){return _MYMODEL;}; + uint8_t getPumpBitmask() override {return PUMPBITMASK;} ; + uint8_t getBubblesBitmask() override {return BUBBLESBITMASK;} ; + uint8_t getJetsBitmask() override {return JETSBITMASK;} ; + uint8_t getHeatBitmask1() override {return HEATBITMASK1;} ; + uint8_t getHeatBitmask2() override {return HEATBITMASK2;} ; + uint8_t getPowerBitmask() override {return POWERBITMASK;} ; + uint8_t getJumptable(int row, int col) override {return JUMPTABLE[row][col];}; + uint8_t getAllowedstates(int row, int col) override {return ALLOWEDSTATES[row][col];}; + bool getHasjets() override {return _HASJETS;}; + bool getHasair() override {return _HASAIR;}; + + private: + const String _MYMODEL = "NO54154"; + //WARNING: THIS DEVICE HAS DIFFERENT PINOUTS!!! CHECK BEFORE USING + //Requested by @chunkysteveo + const uint8_t JUMPTABLE[6][4] = { + {3,0,1,2}, + {4,1,0,2}, + {5,2,0,1}, + {0,3,4,5}, + {1,4,3,5}, + {2,5,3,4} + }; + //Bubbles, Jets, Pump, Heat + const uint8_t ALLOWEDSTATES[6][4] = { + {0,0,0,0}, + {0,0,1,0}, + {0,0,1,2}, + {1,0,0,0}, //the "2" means both heater elements + {1,0,1,0}, + {1,0,1,1} + }; + + const uint8_t PUMPBITMASK = B00010000; //1 << 4; + const uint8_t BUBBLESBITMASK = B00100000; //1 << 5; + const uint8_t JETSBITMASK = B00000000; //0; //no jets on this machine. + const uint8_t HEATBITMASK1 = B00000010; //(1 << 1) "stage 1" + const uint8_t HEATBITMASK2 = B00001000; //(1 << 3) "stage 2" (thanks @dietmar-1 for testing and reporting this) + const uint8_t POWERBITMASK = B00000001; //1; + const bool _HASJETS = false; + const bool _HASAIR = true; +}; + +class CIO_54173: public CIO_4W +{ + public: + String getModel(){return _MYMODEL;} + uint8_t getPumpBitmask() override {return PUMPBITMASK;} + uint8_t getBubblesBitmask() override {return BUBBLESBITMASK;} + uint8_t getJetsBitmask() override {return JETSBITMASK;} + uint8_t getHeatBitmask1() override {return HEATBITMASK1;} + uint8_t getHeatBitmask2() override {return HEATBITMASK2;} + uint8_t getPowerBitmask() override {return POWERBITMASK;} + uint8_t getJumptable(int row, int col) override {return JUMPTABLE[row][col];} + uint8_t getAllowedstates(int row, int col) override {return ALLOWEDSTATES[row][col];} + bool getHasjets() override {return _HASJETS;} + bool getHasair() override {return _HASAIR;} + + private: + const String _MYMODEL = "NO54173"; + //what row in allowedstates to go to when pressing Bubbles, Jets, Pump, Heat (columns in that order) + //Example: We are in state zero (first row). If we press Bubbles (first column) then there is a 6 + //meaning current state (row) is now 6. According to ALLOWEDSTATES table, we turn on Bubbles and keep + //everything else off. (1,0,0,0) + const uint8_t JUMPTABLE[8][4] = { + {6,4,1,3}, + {7,4,0,3}, + {3,5,6,7}, + {2,4,0,1}, + {5,0,1,3}, + {4,6,1,3}, + {0,5,7,2}, + {1,5,6,2} + }; + //Bubbles, Jets, Pump, Heat + const uint8_t ALLOWEDSTATES[8][4] = { + {0,0,0,0}, + {0,0,1,0}, + {1,0,1,1}, + {0,0,1,2}, //the "2" means both heater elements + {0,1,0,0}, + {1,1,0,0}, + {1,0,0,0}, + {1,0,1,0} + }; + + const uint8_t PUMPBITMASK = B00000101; //5 + const uint8_t BUBBLESBITMASK = B00000010; //2 + const uint8_t JETSBITMASK = B00001000; //8 + const uint8_t HEATBITMASK1 = B00110000; //48 heater stage 1 = 50% + const uint8_t HEATBITMASK2 = B01000000; //64 heater stage 2 = 100% + const uint8_t POWERBITMASK = B10000000; //128 + const bool _HASJETS = true; + const bool _HASAIR = true; +}; \ No newline at end of file diff --git a/Code/lib/cio/CIO_54123.h b/Code/lib/cio/CIO_54123.h deleted file mode 100644 index c646256d..00000000 --- a/Code/lib/cio/CIO_54123.h +++ /dev/null @@ -1,51 +0,0 @@ -#pragma once -#include -#include "enums.h" -#include "CIO_4W.h" - -class CIO_54123: public CIO_4W -{ - public: - String getModel(){return _MYMODEL;}; - uint8_t getPumpBitmask() override {return PUMPBITMASK;} ; - uint8_t getBubblesBitmask() override {return BUBBLESBITMASK;} ; - uint8_t getJetsBitmask() override {return JETSBITMASK;} ; - uint8_t getHeatBitmask1() override {return HEATBITMASK1;} ; - uint8_t getHeatBitmask2() override {return HEATBITMASK2;} ; - uint8_t getPowerBitmask() override {return POWERBITMASK;} ; - uint8_t getJumptable(int row, int col) override {return JUMPTABLE[row][col];}; - uint8_t getAllowedstates(int row, int col) override {return ALLOWEDSTATES[row][col];}; - bool getHasjets() override {return _HASJETS;}; - bool getHasair() override {return _HASAIR;}; - - private: - const String _MYMODEL = "NO54123"; - //WARNING: THIS DEVICE HAS DIFFERENT PINOUTS!!! CHECK BEFORE USING - //#NO54112 - @jenswalit: "this is the Version Vegas 4Pin Pump 1->5V+ 2->Data 3->Data 4->5V-" - //what row in allowedstates to go to when pressing Bubbles, Jets, Pump, Heat (columns in that order) - //Example: We are in state zero (first row). If we press Bubbles (first column) then there is a 6 - //meaning current state (row) is now 6. According to ALLOWEDSTATES table, we turn on Bubbles and keep - //everything else off. (1,0,0,0) - const uint8_t JUMPTABLE[4][4] = { - {1,0,2,3}, - {0,1,2,3}, - {1,2,0,3}, - {1,3,0,2} - }; - //Bubbles, Jets, Pump, Heat - const uint8_t ALLOWEDSTATES[4][4] = { - {0,0,0,0}, - {1,0,0,0}, - {0,0,1,0}, - {0,0,1,2} //the "2" means both heater elements - }; - - const uint8_t PUMPBITMASK = B00010000; //1 << 4; - const uint8_t BUBBLESBITMASK = B00100000; //1 << 5; - const uint8_t JETSBITMASK = B00000000; //0; //no jets on this machine. - const uint8_t HEATBITMASK1 = B00000010; //(1 << 1) "stage 1" - const uint8_t HEATBITMASK2 = B00001000; //(1 << 3) "stage 2" (thanks @dietmar-1 for testing and reporting this) - const uint8_t POWERBITMASK = B00000001; //1; - const bool _HASJETS = false; - const bool _HASAIR = true; -}; diff --git a/Code/lib/cio/CIO_54138.h b/Code/lib/cio/CIO_54138.h deleted file mode 100644 index 6a146e87..00000000 --- a/Code/lib/cio/CIO_54138.h +++ /dev/null @@ -1,55 +0,0 @@ -#pragma once -#include -#include "enums.h" -#include "CIO_4W.h" - -class CIO_54138: public CIO_4W -{ - public: - String getModel(){return _MYMODEL;}; - uint8_t getPumpBitmask() override {return PUMPBITMASK;} ; - uint8_t getBubblesBitmask() override {return BUBBLESBITMASK;} ; - uint8_t getJetsBitmask() override {return JETSBITMASK;} ; - uint8_t getHeatBitmask1() override {return HEATBITMASK1;} ; - uint8_t getHeatBitmask2() override {return HEATBITMASK2;} ; - uint8_t getPowerBitmask() override {return POWERBITMASK;} ; - uint8_t getJumptable(int row, int col) override {return JUMPTABLE[row][col];}; - uint8_t getAllowedstates(int row, int col) override {return ALLOWEDSTATES[row][col];}; - bool getHasjets() override {return _HASJETS;}; - bool getHasair() override {return _HASAIR;}; - - private: - const String _MYMODEL = "NO54138"; - //what row in allowedstates to go to when pressing Bubbles, Jets, Pump, Heat (columns in that order) - //Example: We are in state zero (first row). If we press Bubbles (first column) then there is a 6 - //meaning current state (row) is now 6. According to ALLOWEDSTATES table, we turn on Bubbles and keep - //everything else off. (1,0,0,0) - const uint8_t JUMPTABLE[5][4] = { - {1,2,3,4}, - {0,2,3,4}, - {1,0,3,4}, - {1,2,0,4}, - {1,2,0,3} - }; - //Bubbles, Jets, Pump, Heat - const uint8_t ALLOWEDSTATES[5][4] = { - {0,0,0,0}, - {1,0,0,0}, - {0,1,0,0}, - {0,0,1,0}, - {0,0,1,2} //the "2" means both heater elements - }; - - const uint8_t PUMPBITMASK = B00000101; //5 - const uint8_t BUBBLESBITMASK = B00000010; //2 - const uint8_t JETSBITMASK = B00001000; //8 - const uint8_t HEATBITMASK1 = B00110000; //48 heater stage 1 = 50% - const uint8_t HEATBITMASK2 = B01000000; //64 heater stage 2 = 100% - //lines below should be tested. It would be consistent with 54173 model. - //If heating is slow this is probably the cause but I don't want to change it before someone tests it. - //const uint8_t HEATBITMASK1 = B00000000; //00 heater stage 1 = off - //const uint8_t HEATBITMASK2 = B00110000; //48 heater stage 2 = on - const uint8_t POWERBITMASK = B10000000; //128 - const bool _HASJETS = true; - const bool _HASAIR = true; -}; \ No newline at end of file diff --git a/Code/lib/cio/CIO_54144.h b/Code/lib/cio/CIO_54144.h deleted file mode 100644 index 6ff05ed1..00000000 --- a/Code/lib/cio/CIO_54144.h +++ /dev/null @@ -1,56 +0,0 @@ -#pragma once -#include -#include "enums.h" -#include "CIO_4W.h" - -class CIO_54144: public CIO_4W -{ - public: - String getModel(){return _MYMODEL;}; - uint8_t getPumpBitmask() override {return PUMPBITMASK;} ; - uint8_t getBubblesBitmask() override {return BUBBLESBITMASK;} ; - uint8_t getJetsBitmask() override {return JETSBITMASK;} ; - uint8_t getHeatBitmask1() override {return HEATBITMASK1;} ; - uint8_t getHeatBitmask2() override {return HEATBITMASK2;} ; - uint8_t getPowerBitmask() override {return POWERBITMASK;} ; - uint8_t getJumptable(int row, int col) override {return JUMPTABLE[row][col];}; - uint8_t getAllowedstates(int row, int col) override {return ALLOWEDSTATES[row][col];}; - bool getHasjets() override {return _HASJETS;}; - bool getHasair() override {return _HASAIR;}; - - private: - const String _MYMODEL = "NO54144"; - //what row in allowedstates to go to when pressing Bubbles, Jets, Pump, Heat (columns in that order) - //Example: We are in state zero (first row). If we press Bubbles (first column) then there is a 6 - //meaning current state (row) is now 6. According to ALLOWEDSTATES table, we turn on Bubbles and keep - //everything else off. (1,0,0,0) - const uint8_t JUMPTABLE[5][4] = { - // b,j,p,h - {1,2,3,4}, - {0,2,3,4}, - {1,0,3,4}, - {1,2,0,4}, - {1,2,0,3} - }; - //Bubbles, Jets, Pump, Heat - const uint8_t ALLOWEDSTATES[5][4] = { - {0,0,0,0}, - {1,0,0,0}, - {0,1,0,0}, - {0,0,1,0}, - {0,0,1,2} //the "2" means both heater elements - }; - - const uint8_t PUMPBITMASK = B00000101; //5 - const uint8_t BUBBLESBITMASK = B00000010; //2 - const uint8_t JETSBITMASK = B00001000; //8 - // const uint8_t HEATBITMASK1 = B00000000; //0 heater stage 1 = off - // const uint8_t HEATBITMASK2 = B00110000; //48 heater stage 2 = on - //lines below should be tested. It would be consistent with 54173 model. - //If heating is slow this is probably the cause but I don't want to change it before someone tests it. - const uint8_t HEATBITMASK1 = B00110000; //48 heater stage 1 = 50% - const uint8_t HEATBITMASK2 = B01000000; //64 heater stage 2 = 100% - const uint8_t POWERBITMASK = B10000000; //128 - const bool _HASJETS = true; - const bool _HASAIR = false; -}; \ No newline at end of file diff --git a/Code/lib/cio/CIO_54154.h b/Code/lib/cio/CIO_54154.h deleted file mode 100644 index 2fcd6117..00000000 --- a/Code/lib/cio/CIO_54154.h +++ /dev/null @@ -1,51 +0,0 @@ -#pragma once -#include -#include "enums.h" -#include "CIO_4W.h" - -class CIO_54154: public CIO_4W -{ - public: - String getModel(){return _MYMODEL;}; - uint8_t getPumpBitmask() override {return PUMPBITMASK;} ; - uint8_t getBubblesBitmask() override {return BUBBLESBITMASK;} ; - uint8_t getJetsBitmask() override {return JETSBITMASK;} ; - uint8_t getHeatBitmask1() override {return HEATBITMASK1;} ; - uint8_t getHeatBitmask2() override {return HEATBITMASK2;} ; - uint8_t getPowerBitmask() override {return POWERBITMASK;} ; - uint8_t getJumptable(int row, int col) override {return JUMPTABLE[row][col];}; - uint8_t getAllowedstates(int row, int col) override {return ALLOWEDSTATES[row][col];}; - bool getHasjets() override {return _HASJETS;}; - bool getHasair() override {return _HASAIR;}; - - private: - const String _MYMODEL = "NO54154"; - //WARNING: THIS DEVICE HAS DIFFERENT PINOUTS!!! CHECK BEFORE USING - //Requested by @chunkysteveo - const uint8_t JUMPTABLE[6][4] = { - {3,0,1,2}, - {4,1,0,2}, - {5,2,0,1}, - {0,3,4,5}, - {1,4,3,5}, - {2,5,3,4} - }; - //Bubbles, Jets, Pump, Heat - const uint8_t ALLOWEDSTATES[6][4] = { - {0,0,0,0}, - {0,0,1,0}, - {0,0,1,2}, - {1,0,0,0}, //the "2" means both heater elements - {1,0,1,0}, - {1,0,1,1} - }; - - const uint8_t PUMPBITMASK = B00010000; //1 << 4; - const uint8_t BUBBLESBITMASK = B00100000; //1 << 5; - const uint8_t JETSBITMASK = B00000000; //0; //no jets on this machine. - const uint8_t HEATBITMASK1 = B00000010; //(1 << 1) "stage 1" - const uint8_t HEATBITMASK2 = B00001000; //(1 << 3) "stage 2" (thanks @dietmar-1 for testing and reporting this) - const uint8_t POWERBITMASK = B00000001; //1; - const bool _HASJETS = false; - const bool _HASAIR = true; -}; diff --git a/Code/lib/cio/CIO_54173.h b/Code/lib/cio/CIO_54173.h deleted file mode 100644 index 9b2dc605..00000000 --- a/Code/lib/cio/CIO_54173.h +++ /dev/null @@ -1,57 +0,0 @@ -#pragma once -#include -#include "enums.h" -#include "CIO_4W.h" - -class CIO_54173: public CIO_4W -{ - public: - String getModel(){return _MYMODEL;} - uint8_t getPumpBitmask() override {return PUMPBITMASK;} - uint8_t getBubblesBitmask() override {return BUBBLESBITMASK;} - uint8_t getJetsBitmask() override {return JETSBITMASK;} - uint8_t getHeatBitmask1() override {return HEATBITMASK1;} - uint8_t getHeatBitmask2() override {return HEATBITMASK2;} - uint8_t getPowerBitmask() override {return POWERBITMASK;} - uint8_t getJumptable(int row, int col) override {return JUMPTABLE[row][col];} - uint8_t getAllowedstates(int row, int col) override {return ALLOWEDSTATES[row][col];} - bool getHasjets() override {return _HASJETS;} - bool getHasair() override {return _HASAIR;} - - private: - const String _MYMODEL = "NO54173"; - //what row in allowedstates to go to when pressing Bubbles, Jets, Pump, Heat (columns in that order) - //Example: We are in state zero (first row). If we press Bubbles (first column) then there is a 6 - //meaning current state (row) is now 6. According to ALLOWEDSTATES table, we turn on Bubbles and keep - //everything else off. (1,0,0,0) - const uint8_t JUMPTABLE[8][4] = { - {6,4,1,3}, - {7,4,0,3}, - {3,5,6,7}, - {2,4,0,1}, - {5,0,1,3}, - {4,6,1,3}, - {0,5,7,2}, - {1,5,6,2} - }; - //Bubbles, Jets, Pump, Heat - const uint8_t ALLOWEDSTATES[8][4] = { - {0,0,0,0}, - {0,0,1,0}, - {1,0,1,1}, - {0,0,1,2}, //the "2" means both heater elements - {0,1,0,0}, - {1,1,0,0}, - {1,0,0,0}, - {1,0,1,0} - }; - - const uint8_t PUMPBITMASK = B00000101; //5 - const uint8_t BUBBLESBITMASK = B00000010; //2 - const uint8_t JETSBITMASK = B00001000; //8 - const uint8_t HEATBITMASK1 = B00110000; //48 heater stage 1 = 50% - const uint8_t HEATBITMASK2 = B01000000; //64 heater stage 2 = 100% - const uint8_t POWERBITMASK = B10000000; //128 - const bool _HASJETS = true; - const bool _HASAIR = true; -}; \ No newline at end of file diff --git a/Code/lib/cio/CIO_PRE2021.cpp b/Code/lib/cio/CIO_PRE2021.cpp deleted file mode 100644 index be6677b4..00000000 --- a/Code/lib/cio/CIO_PRE2021.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#include "CIO_PRE2021.h" - -Buttons CIO_PRE2021::getButton(uint16_t code) -{ - for(unsigned int i = 0; i < sizeof(button_codes)/sizeof(uint16_t); i++){ - if(_button_code == button_codes[i]) return (Buttons)i; - } - return (Buttons)0; -} - -uint16_t CIO_PRE2021::getButtonCode(Buttons index) -{ - if(index >= sizeof(button_codes)/sizeof(uint16_t)) return 0; - return button_codes[index]; -} \ No newline at end of file diff --git a/Code/lib/cio/CIO_PRE2021.h b/Code/lib/cio/CIO_PRE2021.h deleted file mode 100644 index af6d9791..00000000 --- a/Code/lib/cio/CIO_PRE2021.h +++ /dev/null @@ -1,22 +0,0 @@ -#pragma once -#include -#include "enums.h" -#include "CIO_TYPE1.h" - -class CIO_PRE2021 : public CIO_6_TYPE1 -{ - public: - String getModel(){return _MYMODEL;}; - uint16_t getButtonCode(Buttons button_index) override; - Buttons getButton(uint16_t code) override; - bool getHasjets() override {return _HASJETS;}; - bool getHasair() override {return _HASAIR;}; - - private: - const String _MYMODEL = "PRE2021"; - /*Binary representation of button presses on the display, like 0x1B1B.*/ - uint16_t button_codes[10] = { 0x1B1B, 0x0200, 0x0100, 0x0300, 0x1012, 0x1212, 0x1112, 0x1312, 0x0809, 0x0000 }; - const bool _HASJETS = false; - const bool _HASAIR = true; - -}; diff --git a/Code/lib/cio/CIO_TYPE1_MODEL_SPECIFIC.cpp b/Code/lib/cio/CIO_TYPE1_MODEL_SPECIFIC.cpp new file mode 100644 index 00000000..445b494d --- /dev/null +++ b/Code/lib/cio/CIO_TYPE1_MODEL_SPECIFIC.cpp @@ -0,0 +1,43 @@ +#include "CIO_TYPE1_MODEL_SPECIFIC.h" + +Buttons CIO_PRE2021::getButton(uint16_t code) +{ + for(unsigned int i = 0; i < sizeof(button_codes)/sizeof(uint16_t); i++){ + if(_button_code == button_codes[i]) return (Buttons)i; + } + return (Buttons)0; +} + +uint16_t CIO_PRE2021::getButtonCode(Buttons index) +{ + if(index >= sizeof(button_codes)/sizeof(uint16_t)) return 0; + return button_codes[index]; +} + +uint16_t CIO_2021_HJT::getButtonCode(Buttons index) +{ + if(index >= sizeof(button_codes)/sizeof(uint16_t)) return 0; + return button_codes[index]; +} + +Buttons CIO_2021_HJT::getButton(uint16_t code) +{ + for(unsigned int i = 0; i < sizeof(button_codes)/sizeof(uint16_t); i++){ + if(_button_code == button_codes[i]) return (Buttons)i; + } + return (Buttons)0; +} + +uint16_t CIO_2021::getButtonCode(Buttons index) +{ + if(index >= sizeof(button_codes)/sizeof(uint16_t)) return 0; + return button_codes[index]; +} + +Buttons CIO_2021::getButton(uint16_t code) +{ + for(unsigned int i = 0; i < sizeof(button_codes)/sizeof(uint16_t); i++){ + if(_button_code == button_codes[i]) return (Buttons)i; + } + return (Buttons)0; +} \ No newline at end of file diff --git a/Code/lib/cio/CIO_TYPE1_MODEL_SPECIFIC.h b/Code/lib/cio/CIO_TYPE1_MODEL_SPECIFIC.h new file mode 100644 index 00000000..211fabc7 --- /dev/null +++ b/Code/lib/cio/CIO_TYPE1_MODEL_SPECIFIC.h @@ -0,0 +1,72 @@ +#pragma once +#include +#include "enums.h" +#include "CIO_TYPE1.h" + +class CIO_PRE2021 : public CIO_6_TYPE1 +{ + public: + String getModel(){return _MYMODEL;}; + uint16_t getButtonCode(Buttons button_index) override; + Buttons getButton(uint16_t code) override; + bool getHasjets() override {return _HASJETS;}; + bool getHasair() override {return _HASAIR;}; + + private: + const String _MYMODEL = "PRE2021"; + /*Binary representation of button presses on the display, like 0x1B1B.*/ + uint16_t button_codes[10] = { 0x1B1B, 0x0200, 0x0100, 0x0300, 0x1012, 0x1212, 0x1112, 0x1312, 0x0809, 0x0000 }; + const bool _HASJETS = false; + const bool _HASAIR = true; + +}; + +class CIO_2021_HJT: public CIO_6_TYPE1 +{ + /*These must be declared for the API to work*/ + public: + String getModel(){return _MYMODEL;}; + + /*internal use*/ + public: + /*Only use for debugging*/ + uint16_t getButtonCode(Buttons button_index) override; + Buttons getButton(uint16_t code) override; + bool getHasjets() override {return _HASJETS;}; + bool getHasair() override {return _HASAIR;}; + + /*These must be declared for the API to work*/ + public: + const String _MYMODEL = "MALDIVES2021"; + const bool _HASJETS = true; + const bool _HASAIR = true; + + private: + /*Binary representation of button presses on the display, like 0x1B1B.*/ + uint16_t button_codes[11] = { 0x1B1B, 0x0100, 0x0300, 0x1212, 0x0a09, 0x1012, 0x1312, 0x0809, 0x0200, 0x0000, 0x1112 }; +}; + +class CIO_2021: public CIO_6_TYPE1 +{ + /*These must be declared for the API to work*/ + public: + String getModel(){return _MYMODEL;}; + + /*internal use*/ + public: + /*Only use for debugging*/ + uint16_t getButtonCode(Buttons button_index) override; + Buttons getButton(uint16_t code) override; + bool getHasjets() override {return _HASJETS;}; + bool getHasair() override {return _HASAIR;}; + + /*These must be declared for the API to work*/ + public: + const String _MYMODEL = "MIAMI2021"; + const bool _HASJETS = false; + const bool _HASAIR = true; + + private: + /*Binary representation of button presses on the display, like 0x1B1B.*/ + uint16_t button_codes[10] = { 0x1B1B, 0x0100, 0x0300, 0x1212, 0x0809, 0x1012, 0x1112, 0x1312, 0x0200, 0x0000 }; +}; \ No newline at end of file diff --git a/Code/lib/cio/CIO_54149E.cpp b/Code/lib/cio/CIO_TYPE2_MODEL_SPECIFIC.cpp similarity index 90% rename from Code/lib/cio/CIO_54149E.cpp rename to Code/lib/cio/CIO_TYPE2_MODEL_SPECIFIC.cpp index 87b6a81c..a03dc180 100644 --- a/Code/lib/cio/CIO_54149E.cpp +++ b/Code/lib/cio/CIO_TYPE2_MODEL_SPECIFIC.cpp @@ -1,4 +1,4 @@ -#include "CIO_54149E.h" +#include "CIO_TYPE2_MODEL_SPECIFIC.h" uint16_t CIO_54149E::getButtonCode(Buttons index) { diff --git a/Code/lib/cio/CIO_54149E.h b/Code/lib/cio/CIO_TYPE2_MODEL_SPECIFIC.h similarity index 100% rename from Code/lib/cio/CIO_54149E.h rename to Code/lib/cio/CIO_TYPE2_MODEL_SPECIFIC.h diff --git a/Code/lib/dsp/DSP_2021.cpp b/Code/lib/dsp/DSP_2021.cpp deleted file mode 100644 index 353fba4a..00000000 --- a/Code/lib/dsp/DSP_2021.cpp +++ /dev/null @@ -1,9 +0,0 @@ -#include "DSP_2021.h" - -Buttons DSP_2021::buttonCodeToIndex(uint16_t code) -{ - for(unsigned int i = 0; i < sizeof(_button_codes)/sizeof(uint16_t); i++){ - if(code == _button_codes[i]) return (Buttons)i; - } - return (Buttons)0; -} \ No newline at end of file diff --git a/Code/lib/dsp/DSP_2021.h b/Code/lib/dsp/DSP_2021.h deleted file mode 100644 index c252a6c4..00000000 --- a/Code/lib/dsp/DSP_2021.h +++ /dev/null @@ -1,18 +0,0 @@ -#pragma once -#include -#include "enums.h" -#include "DSP_TYPE1.h" - -class DSP_2021 : public DSP_6_TYPE1 -{ - public: - String getModel() {return _MYMODEL;}; - Buttons buttonCodeToIndex(uint16_t code); - bool getHasjets() {return _HASJETS;}; - - private: - String _MYMODEL = "2021"; - uint16_t _button_codes[10] = { 0x1B1B, 0x0100, 0x0300, 0x1212, 0x0809, 0x1012, 0x1112, 0x1312, 0x0200, 0x0000 }; - uint16_t _oldButtonCode = _button_codes[NOBTN]; - bool _HASJETS; -}; diff --git a/Code/lib/dsp/DSP_2021HJT.cpp b/Code/lib/dsp/DSP_2021HJT.cpp deleted file mode 100644 index 23b1df0f..00000000 --- a/Code/lib/dsp/DSP_2021HJT.cpp +++ /dev/null @@ -1,9 +0,0 @@ -#include "DSP_2021HJT.h" - -Buttons DSP_2021_HJT::buttonCodeToIndex(uint16_t code) -{ - for(unsigned int i = 0; i < sizeof(_button_codes)/sizeof(uint16_t); i++){ - if(code == _button_codes[i]) return (Buttons)i; - } - return (Buttons)0; -} \ No newline at end of file diff --git a/Code/lib/dsp/DSP_2021HJT.h b/Code/lib/dsp/DSP_2021HJT.h deleted file mode 100644 index 05b19ed5..00000000 --- a/Code/lib/dsp/DSP_2021HJT.h +++ /dev/null @@ -1,18 +0,0 @@ -#pragma once -#include -#include "enums.h" -#include "DSP_TYPE1.h" - -class DSP_2021_HJT : public DSP_6_TYPE1 -{ - public: - String getModel() {return _MYMODEL;}; - Buttons buttonCodeToIndex(uint16_t code); - bool getHasjets() {return _HASJETS;}; - - private: - String _MYMODEL = "2021HJT"; - uint16_t _button_codes[11] = { 0x1B1B, 0x0100, 0x0300, 0x1212, 0x0a09, 0x1012, 0x1312, 0x0809, 0x0200, 0x0000, 0x1112 }; - uint16_t _oldButtonCode = _button_codes[NOBTN]; - bool _HASJETS; -}; \ No newline at end of file diff --git a/Code/lib/dsp/DSP_4W_MODEL_SPECIFIC.h b/Code/lib/dsp/DSP_4W_MODEL_SPECIFIC.h new file mode 100644 index 00000000..b48f6f0f --- /dev/null +++ b/Code/lib/dsp/DSP_4W_MODEL_SPECIFIC.h @@ -0,0 +1,253 @@ +#pragma once +#include +#include "enums.h" +#include "DSP_4W.h" + +class DSP_54123 : public DSP_4W +{ + public: + virtual ~DSP_54123(){}; + uint8_t getPumpBitmask() override {return PUMPBITMASK;} ; + uint8_t getBubblesBitmask() override {return BUBBLESBITMASK;} ; + uint8_t getJetsBitmask() override {return JETSBITMASK;} ; + uint8_t getHeatBitmask1() override {return HEATBITMASK1;} ; + uint8_t getHeatBitmask2() override {return HEATBITMASK2;} ; + uint8_t getPowerBitmask() override {return POWERBITMASK;} ; + uint8_t getJumptable(int row, int col) override {return JUMPTABLE[row][col];}; + uint8_t getAllowedstates(int row, int col) override {return ALLOWEDSTATES[row][col];}; + String getModel(){return _MYMODEL;}; + bool getHasjets() override {return _HASJETS;}; + bool getHasair() override {return _HASAIR;}; + + private: + const String _MYMODEL = "NO54123"; + //WARNING: THIS DEVICE HAS DIFFERENT PINOUTS!!! CHECK BEFORE USING + //Requested by @chunkysteveo + const uint8_t JUMPTABLE[4][4] = { + // b,j,p,h + {1,0,2,3}, + {0,1,2,3}, + {1,2,0,3}, + {1,3,0,2} + }; + //Bubbles, Jets, Pump, Heat + const uint8_t ALLOWEDSTATES[4][4] = { + {0,0,0,0}, + {1,0,0,0}, + {0,0,1,0}, + {0,0,1,2} //the "2" means both heater elements + }; + + const uint8_t PUMPBITMASK = B00010000; //1 << 4; + const uint8_t BUBBLESBITMASK = B00100000; //1 << 5; + const uint8_t JETSBITMASK = B00000000; //0; //no jets on this machine. + const uint8_t HEATBITMASK1 = B00000010; //(1 << 1) "stage 1" + const uint8_t HEATBITMASK2 = B00001000; //(1 << 3) "stage 2" (thanks @dietmar-1 for testing and reporting this) + const uint8_t POWERBITMASK = B00000001; //1; + const bool _HASJETS = false; + const bool _HASAIR = true; +}; + +class DSP_54138 : public DSP_4W +{ + public: + virtual ~DSP_54138(){}; + uint8_t getPumpBitmask() override {return PUMPBITMASK;} ; + uint8_t getBubblesBitmask() override {return BUBBLESBITMASK;} ; + uint8_t getJetsBitmask() override {return JETSBITMASK;} ; + uint8_t getHeatBitmask1() override {return HEATBITMASK1;} ; + uint8_t getHeatBitmask2() override {return HEATBITMASK2;} ; + uint8_t getPowerBitmask() override {return POWERBITMASK;} ; + uint8_t getJumptable(int row, int col) override {return JUMPTABLE[row][col];}; + uint8_t getAllowedstates(int row, int col) override {return ALLOWEDSTATES[row][col];}; + String getModel(){return _MYMODEL;}; + bool getHasjets() override {return _HASJETS;}; + bool getHasair() override {return _HASAIR;}; + + private: + const String _MYMODEL = "NO54138"; + //WARNING: THIS DEVICE HAS DIFFERENT PINOUTS!!! CHECK BEFORE USING + //Requested by @chunkysteveo + const uint8_t JUMPTABLE[5][4] = { + // b,j,p,h + {1,2,3,4}, + {0,2,3,4}, + {1,0,3,4}, + {1,2,0,4}, + {1,2,0,3} + }; + //Bubbles, Jets, Pump, Heat + const uint8_t ALLOWEDSTATES[5][4] = { + {0,0,0,0}, + {1,0,0,0}, + {0,1,0,0}, + {0,0,1,0}, + {0,0,1,2} //the "2" means both heater elements + }; + + const uint8_t PUMPBITMASK = B00000101; //5 + const uint8_t BUBBLESBITMASK = B00000010; //2 + const uint8_t JETSBITMASK = B00001000; //8 + const uint8_t HEATBITMASK1 = B00110000; //48 heater stage 1 = 50% + const uint8_t HEATBITMASK2 = B01000000; //64 heater stage 2 = 100% + //lines below should be tested. It would be consistent with 54173 model. + //If heating is slow this is probably the cause but I don't want to change it before someone tests it. + //const uint8_t HEATBITMASK1 = B00000000; //00 heater stage 1 = off + //const uint8_t HEATBITMASK2 = B00110000; //48 heater stage 2 = on + const uint8_t POWERBITMASK = B10000000; //128 + const bool _HASJETS = true; + const bool _HASAIR = true; +}; + +class DSP_54144 : public DSP_4W +{ + public: + virtual ~DSP_54144(){}; + uint8_t getPumpBitmask() override {return PUMPBITMASK;} ; + uint8_t getBubblesBitmask() override {return BUBBLESBITMASK;} ; + uint8_t getJetsBitmask() override {return JETSBITMASK;} ; + uint8_t getHeatBitmask1() override {return HEATBITMASK1;} ; + uint8_t getHeatBitmask2() override {return HEATBITMASK2;} ; + uint8_t getPowerBitmask() override {return POWERBITMASK;} ; + uint8_t getJumptable(int row, int col) override {return JUMPTABLE[row][col];}; + uint8_t getAllowedstates(int row, int col) override {return ALLOWEDSTATES[row][col];}; + String getModel(){return _MYMODEL;}; + bool getHasjets() override {return _HASJETS;}; + bool getHasair() override {return _HASAIR;}; + + private: + const String _MYMODEL = "NO54144"; + //WARNING: THIS DEVICE HAS DIFFERENT PINOUTS!!! CHECK BEFORE USING + //Requested by @chunkysteveo + const uint8_t JUMPTABLE[5][4] = { + // b,j,p,h + {1,2,3,4}, + {0,2,3,4}, + {1,0,3,4}, + {1,2,0,4}, + {1,2,0,3} + }; + //Bubbles, Jets, Pump, Heat + const uint8_t ALLOWEDSTATES[5][4] = { + {0,0,0,0}, + {1,0,0,0}, + {0,1,0,0}, + {0,0,1,0}, + {0,0,1,2} //the "2" means both heater elements + }; + + const uint8_t PUMPBITMASK = B00000101; //5 + const uint8_t BUBBLESBITMASK = B00000010; //2 + const uint8_t JETSBITMASK = B00001000; //8 + // const uint8_t HEATBITMASK1 = B00000000; //0 heater stage 1 = off + // const uint8_t HEATBITMASK2 = B00110000; //48 heater stage 2 = on + //lines below should be tested. It would be consistent with 54173 model. + //If heating is slow this is probably the cause but I don't want to change it before someone tests it. + const uint8_t HEATBITMASK1 = B00110000; //48 heater stage 1 = 50% + const uint8_t HEATBITMASK2 = B01000000; //64 heater stage 2 = 100% + const uint8_t POWERBITMASK = B10000000; //128 + const bool _HASJETS = true; + const bool _HASAIR = false; +}; + +class DSP_54154 : public DSP_4W +{ + public: + virtual ~DSP_54154(){}; + uint8_t getPumpBitmask() override {return PUMPBITMASK;} ; + uint8_t getBubblesBitmask() override {return BUBBLESBITMASK;} ; + uint8_t getJetsBitmask() override {return JETSBITMASK;} ; + uint8_t getHeatBitmask1() override {return HEATBITMASK1;} ; + uint8_t getHeatBitmask2() override {return HEATBITMASK2;} ; + uint8_t getPowerBitmask() override {return POWERBITMASK;} ; + uint8_t getJumptable(int row, int col) override {return JUMPTABLE[row][col];}; + uint8_t getAllowedstates(int row, int col) override {return ALLOWEDSTATES[row][col];}; + String getModel(){return _MYMODEL;}; + bool getHasjets() override {return _HASJETS;}; + bool getHasair() override {return _HASAIR;}; + + private: + const String _MYMODEL = "NO54154"; + //WARNING: THIS DEVICE HAS DIFFERENT PINOUTS!!! CHECK BEFORE USING + //Requested by @chunkysteveo + const uint8_t JUMPTABLE[6][4] = { + {3,0,1,2}, + {4,1,0,2}, + {5,2,0,1}, + {0,3,4,5}, + {1,4,3,5}, + {2,5,3,4} + }; + //Bubbles, Jets, Pump, Heat + const uint8_t ALLOWEDSTATES[6][4] = { + {0,0,0,0}, + {0,0,1,0}, + {0,0,1,2}, + {1,0,0,0}, //the "2" means both heater elements + {1,0,1,0}, + {1,0,1,1} + }; + + const uint8_t PUMPBITMASK = B00010000; //1 << 4; + const uint8_t BUBBLESBITMASK = B00100000; //1 << 5; + const uint8_t JETSBITMASK = B00000000; //0; //no jets on this machine. + const uint8_t HEATBITMASK1 = B00000010; //(1 << 1) "stage 1" + const uint8_t HEATBITMASK2 = B00001000; //(1 << 3) "stage 2" (thanks @dietmar-1 for testing and reporting this) + const uint8_t POWERBITMASK = B00000001; //1; + const bool _HASJETS = false; + const bool _HASAIR = true; +}; + +class DSP_54173 : public DSP_4W +{ + public: + virtual ~DSP_54173(){}; + uint8_t getPumpBitmask() override {return PUMPBITMASK;} ; + uint8_t getBubblesBitmask() override {return BUBBLESBITMASK;} ; + uint8_t getJetsBitmask() override {return JETSBITMASK;} ; + uint8_t getHeatBitmask1() override {return HEATBITMASK1;} ; + uint8_t getHeatBitmask2() override {return HEATBITMASK2;} ; + uint8_t getPowerBitmask() override {return POWERBITMASK;} ; + uint8_t getJumptable(int row, int col) override {return JUMPTABLE[row][col];}; + uint8_t getAllowedstates(int row, int col) override {return ALLOWEDSTATES[row][col];}; + String getModel(){return _MYMODEL;}; + bool getHasjets() override {return _HASJETS;}; + bool getHasair() override {return _HASAIR;}; + + private: + const String _MYMODEL = "NO54173"; + //what row in allowedstates to go to when pressing Bubbles, Jets, Pump, Heat (columns in that order) + //Example: We are in state zero (first row). If we press Bubbles (first column) then there is a 6 + //meaning current state (row) is now 6. According to ALLOWEDSTATES table, we turn on Bubbles and keep + //everything else off. (1,0,0,0) + const uint8_t JUMPTABLE[8][4] = { + {6,4,1,3}, + {7,4,0,3}, + {3,5,6,7}, + {2,4,0,1}, + {5,0,1,3}, + {4,6,1,3}, + {0,5,7,2}, + {1,5,6,2} + }; + //Bubbles, Jets, Pump, Heat + const uint8_t ALLOWEDSTATES[8][4] = { + {0,0,0,0}, + {0,0,1,0}, + {1,0,1,1}, + {0,0,1,2}, //the "2" means both heater elements + {0,1,0,0}, + {1,1,0,0}, + {1,0,0,0}, + {1,0,1,0} + }; + + const uint8_t PUMPBITMASK = B00000101; //5 + const uint8_t BUBBLESBITMASK = B00000010; //2 + const uint8_t JETSBITMASK = B00001000; //8 + const uint8_t HEATBITMASK1 = B00110000; //48 heater stage 1 = 50% + const uint8_t HEATBITMASK2 = B01000000; //64 heater stage 2 = 100% + const uint8_t POWERBITMASK = B10000000; //128 + const bool _HASJETS = true; + const bool _HASAIR = true; +}; \ No newline at end of file diff --git a/Code/lib/dsp/DSP_54123.h b/Code/lib/dsp/DSP_54123.h deleted file mode 100644 index ad9d7512..00000000 --- a/Code/lib/dsp/DSP_54123.h +++ /dev/null @@ -1,49 +0,0 @@ -#pragma once -#include -#include "enums.h" -#include "DSP_4W.h" - -class DSP_54123 : public DSP_4W -{ - public: - virtual ~DSP_54123(){}; - uint8_t getPumpBitmask() override {return PUMPBITMASK;} ; - uint8_t getBubblesBitmask() override {return BUBBLESBITMASK;} ; - uint8_t getJetsBitmask() override {return JETSBITMASK;} ; - uint8_t getHeatBitmask1() override {return HEATBITMASK1;} ; - uint8_t getHeatBitmask2() override {return HEATBITMASK2;} ; - uint8_t getPowerBitmask() override {return POWERBITMASK;} ; - uint8_t getJumptable(int row, int col) override {return JUMPTABLE[row][col];}; - uint8_t getAllowedstates(int row, int col) override {return ALLOWEDSTATES[row][col];}; - String getModel(){return _MYMODEL;}; - bool getHasjets() override {return _HASJETS;}; - bool getHasair() override {return _HASAIR;}; - - private: - const String _MYMODEL = "NO54123"; - //WARNING: THIS DEVICE HAS DIFFERENT PINOUTS!!! CHECK BEFORE USING - //Requested by @chunkysteveo - const uint8_t JUMPTABLE[4][4] = { - // b,j,p,h - {1,0,2,3}, - {0,1,2,3}, - {1,2,0,3}, - {1,3,0,2} - }; - //Bubbles, Jets, Pump, Heat - const uint8_t ALLOWEDSTATES[4][4] = { - {0,0,0,0}, - {1,0,0,0}, - {0,0,1,0}, - {0,0,1,2} //the "2" means both heater elements - }; - - const uint8_t PUMPBITMASK = B00010000; //1 << 4; - const uint8_t BUBBLESBITMASK = B00100000; //1 << 5; - const uint8_t JETSBITMASK = B00000000; //0; //no jets on this machine. - const uint8_t HEATBITMASK1 = B00000010; //(1 << 1) "stage 1" - const uint8_t HEATBITMASK2 = B00001000; //(1 << 3) "stage 2" (thanks @dietmar-1 for testing and reporting this) - const uint8_t POWERBITMASK = B00000001; //1; - const bool _HASJETS = false; - const bool _HASAIR = true; -}; \ No newline at end of file diff --git a/Code/lib/dsp/DSP_54138.h b/Code/lib/dsp/DSP_54138.h deleted file mode 100644 index c5147c65..00000000 --- a/Code/lib/dsp/DSP_54138.h +++ /dev/null @@ -1,55 +0,0 @@ -#pragma once -#include -#include "enums.h" -#include "DSP_4W.h" - -class DSP_54138 : public DSP_4W -{ - public: - virtual ~DSP_54138(){}; - uint8_t getPumpBitmask() override {return PUMPBITMASK;} ; - uint8_t getBubblesBitmask() override {return BUBBLESBITMASK;} ; - uint8_t getJetsBitmask() override {return JETSBITMASK;} ; - uint8_t getHeatBitmask1() override {return HEATBITMASK1;} ; - uint8_t getHeatBitmask2() override {return HEATBITMASK2;} ; - uint8_t getPowerBitmask() override {return POWERBITMASK;} ; - uint8_t getJumptable(int row, int col) override {return JUMPTABLE[row][col];}; - uint8_t getAllowedstates(int row, int col) override {return ALLOWEDSTATES[row][col];}; - String getModel(){return _MYMODEL;}; - bool getHasjets() override {return _HASJETS;}; - bool getHasair() override {return _HASAIR;}; - - private: - const String _MYMODEL = "NO54138"; - //WARNING: THIS DEVICE HAS DIFFERENT PINOUTS!!! CHECK BEFORE USING - //Requested by @chunkysteveo - const uint8_t JUMPTABLE[5][4] = { - // b,j,p,h - {1,2,3,4}, - {0,2,3,4}, - {1,0,3,4}, - {1,2,0,4}, - {1,2,0,3} - }; - //Bubbles, Jets, Pump, Heat - const uint8_t ALLOWEDSTATES[5][4] = { - {0,0,0,0}, - {1,0,0,0}, - {0,1,0,0}, - {0,0,1,0}, - {0,0,1,2} //the "2" means both heater elements - }; - - const uint8_t PUMPBITMASK = B00000101; //5 - const uint8_t BUBBLESBITMASK = B00000010; //2 - const uint8_t JETSBITMASK = B00001000; //8 - const uint8_t HEATBITMASK1 = B00110000; //48 heater stage 1 = 50% - const uint8_t HEATBITMASK2 = B01000000; //64 heater stage 2 = 100% - //lines below should be tested. It would be consistent with 54173 model. - //If heating is slow this is probably the cause but I don't want to change it before someone tests it. - //const uint8_t HEATBITMASK1 = B00000000; //00 heater stage 1 = off - //const uint8_t HEATBITMASK2 = B00110000; //48 heater stage 2 = on - const uint8_t POWERBITMASK = B10000000; //128 - const bool _HASJETS = true; - const bool _HASAIR = true; -}; \ No newline at end of file diff --git a/Code/lib/dsp/DSP_54144.h b/Code/lib/dsp/DSP_54144.h deleted file mode 100644 index b8b81ea8..00000000 --- a/Code/lib/dsp/DSP_54144.h +++ /dev/null @@ -1,55 +0,0 @@ -#pragma once -#include -#include "enums.h" -#include "DSP_4W.h" - -class DSP_54144 : public DSP_4W -{ - public: - virtual ~DSP_54144(){}; - uint8_t getPumpBitmask() override {return PUMPBITMASK;} ; - uint8_t getBubblesBitmask() override {return BUBBLESBITMASK;} ; - uint8_t getJetsBitmask() override {return JETSBITMASK;} ; - uint8_t getHeatBitmask1() override {return HEATBITMASK1;} ; - uint8_t getHeatBitmask2() override {return HEATBITMASK2;} ; - uint8_t getPowerBitmask() override {return POWERBITMASK;} ; - uint8_t getJumptable(int row, int col) override {return JUMPTABLE[row][col];}; - uint8_t getAllowedstates(int row, int col) override {return ALLOWEDSTATES[row][col];}; - String getModel(){return _MYMODEL;}; - bool getHasjets() override {return _HASJETS;}; - bool getHasair() override {return _HASAIR;}; - - private: - const String _MYMODEL = "NO54144"; - //WARNING: THIS DEVICE HAS DIFFERENT PINOUTS!!! CHECK BEFORE USING - //Requested by @chunkysteveo - const uint8_t JUMPTABLE[5][4] = { - // b,j,p,h - {1,2,3,4}, - {0,2,3,4}, - {1,0,3,4}, - {1,2,0,4}, - {1,2,0,3} - }; - //Bubbles, Jets, Pump, Heat - const uint8_t ALLOWEDSTATES[5][4] = { - {0,0,0,0}, - {1,0,0,0}, - {0,1,0,0}, - {0,0,1,0}, - {0,0,1,2} //the "2" means both heater elements - }; - - const uint8_t PUMPBITMASK = B00000101; //5 - const uint8_t BUBBLESBITMASK = B00000010; //2 - const uint8_t JETSBITMASK = B00001000; //8 - // const uint8_t HEATBITMASK1 = B00000000; //0 heater stage 1 = off - // const uint8_t HEATBITMASK2 = B00110000; //48 heater stage 2 = on - //lines below should be tested. It would be consistent with 54173 model. - //If heating is slow this is probably the cause but I don't want to change it before someone tests it. - const uint8_t HEATBITMASK1 = B00110000; //48 heater stage 1 = 50% - const uint8_t HEATBITMASK2 = B01000000; //64 heater stage 2 = 100% - const uint8_t POWERBITMASK = B10000000; //128 - const bool _HASJETS = true; - const bool _HASAIR = false; -}; \ No newline at end of file diff --git a/Code/lib/dsp/DSP_54154.h b/Code/lib/dsp/DSP_54154.h deleted file mode 100644 index add94546..00000000 --- a/Code/lib/dsp/DSP_54154.h +++ /dev/null @@ -1,52 +0,0 @@ -#pragma once -#include -#include "enums.h" -#include "DSP_4W.h" - -class DSP_54154 : public DSP_4W -{ - public: - virtual ~DSP_54154(){}; - uint8_t getPumpBitmask() override {return PUMPBITMASK;} ; - uint8_t getBubblesBitmask() override {return BUBBLESBITMASK;} ; - uint8_t getJetsBitmask() override {return JETSBITMASK;} ; - uint8_t getHeatBitmask1() override {return HEATBITMASK1;} ; - uint8_t getHeatBitmask2() override {return HEATBITMASK2;} ; - uint8_t getPowerBitmask() override {return POWERBITMASK;} ; - uint8_t getJumptable(int row, int col) override {return JUMPTABLE[row][col];}; - uint8_t getAllowedstates(int row, int col) override {return ALLOWEDSTATES[row][col];}; - String getModel(){return _MYMODEL;}; - bool getHasjets() override {return _HASJETS;}; - bool getHasair() override {return _HASAIR;}; - - private: - const String _MYMODEL = "NO54154"; - //WARNING: THIS DEVICE HAS DIFFERENT PINOUTS!!! CHECK BEFORE USING - //Requested by @chunkysteveo - const uint8_t JUMPTABLE[6][4] = { - {3,0,1,2}, - {4,1,0,2}, - {5,2,0,1}, - {0,3,4,5}, - {1,4,3,5}, - {2,5,3,4} - }; - //Bubbles, Jets, Pump, Heat - const uint8_t ALLOWEDSTATES[6][4] = { - {0,0,0,0}, - {0,0,1,0}, - {0,0,1,2}, - {1,0,0,0}, //the "2" means both heater elements - {1,0,1,0}, - {1,0,1,1} - }; - - const uint8_t PUMPBITMASK = B00010000; //1 << 4; - const uint8_t BUBBLESBITMASK = B00100000; //1 << 5; - const uint8_t JETSBITMASK = B00000000; //0; //no jets on this machine. - const uint8_t HEATBITMASK1 = B00000010; //(1 << 1) "stage 1" - const uint8_t HEATBITMASK2 = B00001000; //(1 << 3) "stage 2" (thanks @dietmar-1 for testing and reporting this) - const uint8_t POWERBITMASK = B00000001; //1; - const bool _HASJETS = false; - const bool _HASAIR = true; -}; \ No newline at end of file diff --git a/Code/lib/dsp/DSP_54173.h b/Code/lib/dsp/DSP_54173.h deleted file mode 100644 index 1d0a14d6..00000000 --- a/Code/lib/dsp/DSP_54173.h +++ /dev/null @@ -1,58 +0,0 @@ -#pragma once -#include -#include "enums.h" -#include "DSP_4W.h" - -class DSP_54173 : public DSP_4W -{ - public: - virtual ~DSP_54173(){}; - uint8_t getPumpBitmask() override {return PUMPBITMASK;} ; - uint8_t getBubblesBitmask() override {return BUBBLESBITMASK;} ; - uint8_t getJetsBitmask() override {return JETSBITMASK;} ; - uint8_t getHeatBitmask1() override {return HEATBITMASK1;} ; - uint8_t getHeatBitmask2() override {return HEATBITMASK2;} ; - uint8_t getPowerBitmask() override {return POWERBITMASK;} ; - uint8_t getJumptable(int row, int col) override {return JUMPTABLE[row][col];}; - uint8_t getAllowedstates(int row, int col) override {return ALLOWEDSTATES[row][col];}; - String getModel(){return _MYMODEL;}; - bool getHasjets() override {return _HASJETS;}; - bool getHasair() override {return _HASAIR;}; - - private: - const String _MYMODEL = "NO54173"; - //what row in allowedstates to go to when pressing Bubbles, Jets, Pump, Heat (columns in that order) - //Example: We are in state zero (first row). If we press Bubbles (first column) then there is a 6 - //meaning current state (row) is now 6. According to ALLOWEDSTATES table, we turn on Bubbles and keep - //everything else off. (1,0,0,0) - const uint8_t JUMPTABLE[8][4] = { - {6,4,1,3}, - {7,4,0,3}, - {3,5,6,7}, - {2,4,0,1}, - {5,0,1,3}, - {4,6,1,3}, - {0,5,7,2}, - {1,5,6,2} - }; - //Bubbles, Jets, Pump, Heat - const uint8_t ALLOWEDSTATES[8][4] = { - {0,0,0,0}, - {0,0,1,0}, - {1,0,1,1}, - {0,0,1,2}, //the "2" means both heater elements - {0,1,0,0}, - {1,1,0,0}, - {1,0,0,0}, - {1,0,1,0} - }; - - const uint8_t PUMPBITMASK = B00000101; //5 - const uint8_t BUBBLESBITMASK = B00000010; //2 - const uint8_t JETSBITMASK = B00001000; //8 - const uint8_t HEATBITMASK1 = B00110000; //48 heater stage 1 = 50% - const uint8_t HEATBITMASK2 = B01000000; //64 heater stage 2 = 100% - const uint8_t POWERBITMASK = B10000000; //128 - const bool _HASJETS = true; - const bool _HASAIR = true; -}; \ No newline at end of file diff --git a/Code/lib/dsp/DSP_PRE2021.cpp b/Code/lib/dsp/DSP_PRE2021.cpp deleted file mode 100644 index e8abff4f..00000000 --- a/Code/lib/dsp/DSP_PRE2021.cpp +++ /dev/null @@ -1,9 +0,0 @@ -#include "DSP_PRE2021.h" - -Buttons DSP_PRE2021::buttonCodeToIndex(uint16_t code) -{ - for(unsigned int i = 0; i < sizeof(_button_codes)/sizeof(uint16_t); i++){ - if(code == _button_codes[i]) return (Buttons)i; - } - return (Buttons)0; -} diff --git a/Code/lib/dsp/DSP_PRE2021.h b/Code/lib/dsp/DSP_PRE2021.h deleted file mode 100644 index 77fe5fed..00000000 --- a/Code/lib/dsp/DSP_PRE2021.h +++ /dev/null @@ -1,18 +0,0 @@ -#pragma once -#include -#include "enums.h" -#include "DSP_TYPE1.h" - -class DSP_PRE2021 : public DSP_6_TYPE1 -{ - public: - DSP_PRE2021(){}; - Buttons buttonCodeToIndex(uint16_t code) override; - bool getHasjets() {return _HASJETS;}; - String getModel() {return _MYMODEL;}; - - private: - String _MYMODEL = "PRE2021"; - uint16_t _button_codes[10] = { 0x1B1B, 0x0200, 0x0100, 0x0300, 0x1012, 0x1212, 0x1112, 0x1312, 0x0809, 0x0000 }; - bool _HASJETS = 0; -}; diff --git a/Code/lib/dsp/DSP_TYPE1_MODEL_SPECIFIC.cpp b/Code/lib/dsp/DSP_TYPE1_MODEL_SPECIFIC.cpp new file mode 100644 index 00000000..72be3b66 --- /dev/null +++ b/Code/lib/dsp/DSP_TYPE1_MODEL_SPECIFIC.cpp @@ -0,0 +1,25 @@ +#include "DSP_TYPE1_MODEL_SPECIFIC.h" + +Buttons DSP_PRE2021::buttonCodeToIndex(uint16_t code) +{ + for(unsigned int i = 0; i < sizeof(_button_codes)/sizeof(uint16_t); i++){ + if(code == _button_codes[i]) return (Buttons)i; + } + return (Buttons)0; +} + +Buttons DSP_2021_HJT::buttonCodeToIndex(uint16_t code) +{ + for(unsigned int i = 0; i < sizeof(_button_codes)/sizeof(uint16_t); i++){ + if(code == _button_codes[i]) return (Buttons)i; + } + return (Buttons)0; +} + +Buttons DSP_2021::buttonCodeToIndex(uint16_t code) +{ + for(unsigned int i = 0; i < sizeof(_button_codes)/sizeof(uint16_t); i++){ + if(code == _button_codes[i]) return (Buttons)i; + } + return (Buttons)0; +} \ No newline at end of file diff --git a/Code/lib/dsp/DSP_TYPE1_MODEL_SPECIFIC.h b/Code/lib/dsp/DSP_TYPE1_MODEL_SPECIFIC.h new file mode 100644 index 00000000..3aa5006f --- /dev/null +++ b/Code/lib/dsp/DSP_TYPE1_MODEL_SPECIFIC.h @@ -0,0 +1,46 @@ +#pragma once +#include +#include "enums.h" +#include "DSP_TYPE1.h" + +class DSP_PRE2021 : public DSP_6_TYPE1 +{ + public: + DSP_PRE2021(){}; + Buttons buttonCodeToIndex(uint16_t code) override; + bool getHasjets() {return _HASJETS;}; + String getModel() {return _MYMODEL;}; + + private: + String _MYMODEL = "PRE2021"; + uint16_t _button_codes[10] = { 0x1B1B, 0x0200, 0x0100, 0x0300, 0x1012, 0x1212, 0x1112, 0x1312, 0x0809, 0x0000 }; + bool _HASJETS = 0; +}; + +class DSP_2021_HJT : public DSP_6_TYPE1 +{ + public: + String getModel() {return _MYMODEL;}; + Buttons buttonCodeToIndex(uint16_t code); + bool getHasjets() {return _HASJETS;}; + + private: + String _MYMODEL = "2021HJT"; + uint16_t _button_codes[11] = { 0x1B1B, 0x0100, 0x0300, 0x1212, 0x0a09, 0x1012, 0x1312, 0x0809, 0x0200, 0x0000, 0x1112 }; + uint16_t _oldButtonCode = _button_codes[NOBTN]; + bool _HASJETS; +}; + +class DSP_2021 : public DSP_6_TYPE1 +{ + public: + String getModel() {return _MYMODEL;}; + Buttons buttonCodeToIndex(uint16_t code); + bool getHasjets() {return _HASJETS;}; + + private: + String _MYMODEL = "2021"; + uint16_t _button_codes[10] = { 0x1B1B, 0x0100, 0x0300, 0x1212, 0x0809, 0x1012, 0x1112, 0x1312, 0x0200, 0x0000 }; + uint16_t _oldButtonCode = _button_codes[NOBTN]; + bool _HASJETS; +}; \ No newline at end of file diff --git a/Code/lib/dsp/DSP_54149E.cpp b/Code/lib/dsp/DSP_TYPE2_MODEL_SPECIFIC.cpp similarity index 85% rename from Code/lib/dsp/DSP_54149E.cpp rename to Code/lib/dsp/DSP_TYPE2_MODEL_SPECIFIC.cpp index 8abf151e..5bded662 100644 --- a/Code/lib/dsp/DSP_54149E.cpp +++ b/Code/lib/dsp/DSP_TYPE2_MODEL_SPECIFIC.cpp @@ -1,4 +1,4 @@ -#include "DSP_54149E.h" +#include "DSP_TYPE2_MODEL_SPECIFIC.h" Buttons DSP_54149E::buttonCodeToIndex(uint16_t code) { diff --git a/Code/lib/dsp/DSP_54149E.h b/Code/lib/dsp/DSP_TYPE2_MODEL_SPECIFIC.h similarity index 100% rename from Code/lib/dsp/DSP_54149E.h rename to Code/lib/dsp/DSP_TYPE2_MODEL_SPECIFIC.h From f4d136adb5f7866bd41590d8080099b635d8bae6 Mon Sep 17 00:00:00 2001 From: Visualapproach Date: Wed, 14 Aug 2024 21:01:59 +0200 Subject: [PATCH 2/8] Update manual --- bwc-manual.pdf | Bin 1326222 -> 1327636 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/bwc-manual.pdf b/bwc-manual.pdf index 6bd82dbddcb2884786abfe2752a17a6d5511d311..0324bc9e4c67a36db1a3f4736dab4b2c0e49f846 100644 GIT binary patch delta 118360 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 JoqERl{~u=}!`}b^ delta 117064 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%0A~a7>^|Ab3i<%$Hj7*SCI}g{R-aWo^7OOXW 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

4R{a7;q@i_>kWg`mzRdv8 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 z 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

12;{5A9 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 N3Gl94XJTpkzW~$Nbrk>r From 3001fbf84780ab53f63fefed862d0390844df485 Mon Sep 17 00:00:00 2001 From: Visualapproach Date: Thu, 22 Aug 2024 11:45:53 +0200 Subject: [PATCH 3/8] MQTT host Input field takes FQDN in addition to IP --- Code/data/mqtt.html | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/Code/data/mqtt.html b/Code/data/mqtt.html index 23cea464..f19b6e3f 100644 --- a/Code/data/mqtt.html +++ b/Code/data/mqtt.html @@ -46,12 +46,9 @@ - IP Address: + MQTT host addr: - - . - . - . + @@ -179,10 +176,10 @@ var json = JSON.parse(req.responseText); console.log(json); document.getElementById('enableMqtt').checked = json.enableMqtt; - document.getElementById('mqttIpAddress1').value = json.mqttIpAddress[0]; - document.getElementById('mqttIpAddress2').value = json.mqttIpAddress[1]; - document.getElementById('mqttIpAddress3').value = json.mqttIpAddress[2]; - document.getElementById('mqttIpAddress4').value = json.mqttIpAddress[3]; + document.getElementById('mqttHost').value = json.mqttHost; + // document.getElementById('mqttIpAddress2').value = json.mqttIpAddress[1]; + // document.getElementById('mqttIpAddress3').value = json.mqttIpAddress[2]; + // document.getElementById('mqttIpAddress4').value = json.mqttIpAddress[3]; document.getElementById('mqttPort').value = json.mqttPort; document.getElementById('mqttUsername').value = json.mqttUsername; document.getElementById('mqttPassword').value = json.mqttPassword; @@ -203,12 +200,13 @@ req.open('POST', '/setmqtt/'); var json = { 'enableMqtt':(document.getElementById('enableMqtt').checked), - 'mqttIpAddress':[ - parseInt(document.getElementById('mqttIpAddress1').value), - parseInt(document.getElementById('mqttIpAddress2').value), - parseInt(document.getElementById('mqttIpAddress3').value), - parseInt(document.getElementById('mqttIpAddress4').value) - ], + // 'mqttIpAddress':[ + // parseInt(document.getElementById('mqttIpAddress1').value), + // parseInt(document.getElementById('mqttIpAddress2').value), + // parseInt(document.getElementById('mqttIpAddress3').value), + // parseInt(document.getElementById('mqttIpAddress4').value) + // ], + 'mqttHost':(document.getElementById('mqttHost').value), 'mqttPort':parseInt(document.getElementById('mqttPort').value), 'mqttUsername':(document.getElementById('mqttUsername').value), 'mqttPassword':(document.getElementById('mqttPassword').value), From 5b9a35b392e04817f1bc4dd1a4d7393c1ab3c3a4 Mon Sep 17 00:00:00 2001 From: Visualapproach Date: Thu, 22 Aug 2024 11:47:03 +0200 Subject: [PATCH 4/8] WiFi AP more stable at the cost of reconnection time to station. --- Code/lib/BWC_unified/bwc.cpp | 2 +- Code/src/config.h | 2 +- Code/src/main.cpp | 55 ++++++++++++++++-------------------- Code/src/main.h | 1 + 4 files changed, 28 insertions(+), 32 deletions(-) diff --git a/Code/lib/BWC_unified/bwc.cpp b/Code/lib/BWC_unified/bwc.cpp index 62b6b737..e9e3e487 100644 --- a/Code/lib/BWC_unified/bwc.cpp +++ b/Code/lib/BWC_unified/bwc.cpp @@ -1528,7 +1528,7 @@ void BWC::_saveCommandQueue(){ BWC_LOG_P(PSTR("Failed to save cmdq.json\n"),0); return; } else { - BWC_LOG_P(PSTR("Writing cmdq.json: "),0); + BWC_LOG_P(PSTR("Writing cmdq.json\n"),0); } /*Do not save instant reboot command. Don't ask me how I know.*/ if(_command_que.size()) diff --git a/Code/src/config.h b/Code/src/config.h index 9a783b3a..ad58f99e 100644 --- a/Code/src/config.h +++ b/Code/src/config.h @@ -153,7 +153,7 @@ bool useControlSelector = false; struct sMQTT_info { - IPAddress mqttIpAddress; + String mqttHost; int mqttTelemetryInterval; int mqttPort; String mqttUsername; diff --git a/Code/src/main.cpp b/Code/src/main.cpp index a9b550b4..3fb01a39 100644 --- a/Code/src/main.cpp +++ b/Code/src/main.cpp @@ -72,7 +72,7 @@ void setup() mqtt_info = new sMQTT_info; mqtt_info->mqttBaseTopic = MQTT_BASE_TOPIC_F; mqtt_info->mqttClientId = MQTT_CLIENT_ID_F; - mqtt_info->mqttIpAddress = IPAddress(192,168,0,20); + mqtt_info->mqttHost = F("192.168.0.20"); mqtt_info->mqttPassword = MQTT_PASSWORD_F; mqtt_info->mqttPort = 1883; mqtt_info->mqttTelemetryInterval = 600; @@ -171,12 +171,14 @@ void loop() if (periodicTimerFlag) { periodicTimerFlag = false; + if(WiFi.getMode() == WIFI_AP_STA) { - if (enableMqtt && !mqttClient->loop() && (WiFi.status() == WL_CONNECTED)) - { - BWC_LOG_P(PSTR("MQTT > Not connected\n"),0); - mqttConnect(); - } + wifi_manual_reconnect(); + } + if (enableMqtt && !mqttClient->loop() && (WiFi.status() == WL_CONNECTED)) + { + BWC_LOG_P(PSTR("MQTT > Not connected\n"),0); + mqttConnect(); } // Leverage the pre-existing periodicTimerFlag to also set temperature, if enabled setTemperatureFromSensor(); @@ -324,7 +326,7 @@ void startWiFi() { BWC_LOG_P(PSTR("startWiFi() @ millis: %d\n"), millis()); //WiFi.mode(WIFI_STA); - WiFi.setAutoReconnect(true); + WiFi.setAutoReconnect(false); WiFi.persistent(true); WiFi.hostname(DEVICE_NAME_F); WiFi.mode(WIFI_STA); //WiFi.setOutputPower(15.0); @@ -347,6 +349,12 @@ void startWiFi() WiFi.config(ip4Address, ip4Gateway, ip4Subnet, ip4DnsPrimary, ip4DnsSecondary); } + wifi_manual_reconnect(); + BWC_YIELD; +} + +void wifi_manual_reconnect() +{ /* Connect in station mode to the AP given (your router/ap) */ if (wifi_info->enableAp) { @@ -354,14 +362,13 @@ void startWiFi() WiFi.begin(wifi_info->apSsid.c_str(), wifi_info->apPwd.c_str()); // checkWifi_ticker->attach(2.0, checkWiFi_ISR); - BWC_LOG_P(PSTR("WiFi > AP info loaded. Waiting for connection ...\n"),0); + BWC_LOG_P(PSTR("WiFi > AP info loaded. Waiting for connection ...\n"), 0); } - else + else { - BWC_LOG_P(PSTR("WiFi > AP info not found. Using last known AP ...\n"),0); + BWC_LOG_P(PSTR("WiFi > AP info not found. Using last known AP ...\n"), 0); WiFi.begin(); } - BWC_YIELD; } /** @@ -371,7 +378,7 @@ void startSoftAp() { disconnected_flag = false; if(WiFi.getMode() == WIFI_AP_STA) { - BWC_LOG_P(PSTR("Soft AP IP: %s\n"),WiFi.softAPIP().toString().c_str()); + BWC_LOG_P(PSTR("Soft AP IP: %s.\n"),WiFi.softAPIP().toString().c_str()); return; } BWC_LOG_P(PSTR("Station > disconnected. Starting soft AP\n"),0); @@ -1465,7 +1472,7 @@ void loadMqtt() File file = LittleFS.open("mqtt.json", "r"); if (!file) { - BWC_LOG_P(PSTR("MQTT > Failed to read mqtt.json. Using defaults."),0); + BWC_LOG_P(PSTR("MQTT > Failed to read mqtt.json. Using defaults.\n"),0); return; } @@ -1481,10 +1488,7 @@ void loadMqtt() mqtt_info->useMqtt = doc[F("enableMqtt")]; // enableMqtt = useMqtt; //will be set with start complete timer - mqtt_info->mqttIpAddress[0] = doc[F("mqttIpAddress")][0]; - mqtt_info->mqttIpAddress[1] = doc[F("mqttIpAddress")][1]; - mqtt_info->mqttIpAddress[2] = doc[F("mqttIpAddress")][2]; - mqtt_info->mqttIpAddress[3] = doc[F("mqttIpAddress")][3]; + mqtt_info->mqttHost = doc[F("mqttHost")].as(); mqtt_info->mqttPort = doc[F("mqttPort")]; mqtt_info->mqttUsername = doc[F("mqttUsername")].as(); mqtt_info->mqttPassword = doc[F("mqttPassword")].as(); @@ -1509,10 +1513,7 @@ void saveMqtt() DynamicJsonDocument doc(1024); doc[F("enableMqtt")] = mqtt_info->useMqtt; - doc[F("mqttIpAddress")][0] = mqtt_info->mqttIpAddress[0]; - doc[F("mqttIpAddress")][1] = mqtt_info->mqttIpAddress[1]; - doc[F("mqttIpAddress")][2] = mqtt_info->mqttIpAddress[2]; - doc[F("mqttIpAddress")][3] = mqtt_info->mqttIpAddress[3]; + doc[F("mqttHost")] = mqtt_info->mqttHost; doc[F("mqttPort")] = mqtt_info->mqttPort; doc[F("mqttUsername")] = mqtt_info->mqttUsername; doc[F("mqttPassword")] = mqtt_info->mqttPassword; @@ -1539,10 +1540,7 @@ void handleGetMqtt() DynamicJsonDocument doc(1024); doc[F("enableMqtt")] = mqtt_info->useMqtt; - doc[F("mqttIpAddress")][0] = mqtt_info->mqttIpAddress[0]; - doc[F("mqttIpAddress")][1] = mqtt_info->mqttIpAddress[1]; - doc[F("mqttIpAddress")][2] = mqtt_info->mqttIpAddress[2]; - doc[F("mqttIpAddress")][3] = mqtt_info->mqttIpAddress[3]; + doc[F("mqttHost")] = mqtt_info->mqttHost; doc[F("mqttPort")] = mqtt_info->mqttPort; doc[F("mqttUsername")] = mqtt_info->mqttUsername; doc[F("mqttPassword")] = ""; @@ -1583,10 +1581,7 @@ void handleSetMqtt() mqtt_info->useMqtt = doc[F("enableMqtt")]; enableMqtt = mqtt_info->useMqtt; - mqtt_info->mqttIpAddress[0] = doc[F("mqttIpAddress")][0]; - mqtt_info->mqttIpAddress[1] = doc[F("mqttIpAddress")][1]; - mqtt_info->mqttIpAddress[2] = doc[F("mqttIpAddress")][2]; - mqtt_info->mqttIpAddress[3] = doc[F("mqttIpAddress")][3]; + mqtt_info->mqttHost = doc[F("mqttHost")].as(); mqtt_info->mqttPort = doc[F("mqttPort")]; mqtt_info->mqttUsername = doc[F("mqttUsername")].as(); mqtt_info->mqttPassword = doc[F("mqttPassword")].as(); @@ -1795,7 +1790,7 @@ void startMqtt() mqttClient->disconnect(); // setup MQTT broker information as defined earlier - mqttClient->setServer(mqtt_info->mqttIpAddress, mqtt_info->mqttPort); + mqttClient->setServer(mqtt_info->mqttHost.c_str(), mqtt_info->mqttPort); // set buffer for larger messages, new to library 2.8.0 // if (mqttClient->setBufferSize(1536)) { diff --git a/Code/src/main.h b/Code/src/main.h index fb2adaba..439c90a7 100644 --- a/Code/src/main.h +++ b/Code/src/main.h @@ -89,6 +89,7 @@ void getOtherInfo(String &rtn); void sendMQTT(); void sendMQTTConfig(); void startWiFi(); +void wifi_manual_reconnect(); void startSoftAp(); void checkNTP_ISR(); void checkNTP(); From a5f06bd9b86d294de031774a34f34a5db7e1a5a9 Mon Sep 17 00:00:00 2001 From: Visualapproach Date: Thu, 22 Aug 2024 11:47:35 +0200 Subject: [PATCH 5/8] FW version update --- Code/lib/BWC_unified/FW_VERSION.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Code/lib/BWC_unified/FW_VERSION.h b/Code/lib/BWC_unified/FW_VERSION.h index b700a281..fc4251cd 100644 --- a/Code/lib/BWC_unified/FW_VERSION.h +++ b/Code/lib/BWC_unified/FW_VERSION.h @@ -1 +1 @@ -#define FW_VERSION "2024-08-09-1800" +#define FW_VERSION "2024-08-22-1200" From e25041348578f28c058460d21198247ac068fb2c Mon Sep 17 00:00:00 2001 From: Visualapproach Date: Mon, 16 Sep 2024 14:39:12 +0200 Subject: [PATCH 6/8] Templates in text field "

Command queue

const setR = 21; const resetrinsefiltertimer = 22; const resetcleanfiltertimer = 23; +const setpower = 24; const commandlist = [ 'Set target', 'Set unit', 'Set bubbles', 'Set heat', 'Set pump', 'Reset queue', 'Reboot ESP', 'Internal cmd', 'Reset times', 'Reset Cl timer', 'Reset change filter timer', 'Set jets', 'Set brightness', 'Beep', 'Set ambient temp F.', 'Set ambient temp C.', 'Reset daily meter', 'Take control', 'Full power', - 'Print text', 'Set ready', 'Set R', 'Reset rinse filter timer', 'Reset clean filter timer' + 'Print text', 'Set ready', 'Set R', 'Reset rinse filter timer', 'Reset clean filter timer', 'Set power' ]; function totimestamp() diff --git a/Code/lib/BWC_unified/FW_VERSION.h b/Code/lib/BWC_unified/FW_VERSION.h index c5b9e482..65c1e10c 100644 --- a/Code/lib/BWC_unified/FW_VERSION.h +++ b/Code/lib/BWC_unified/FW_VERSION.h @@ -1 +1 @@ -#define FW_VERSION "2024-09-16-1430" +#define FW_VERSION "2024-10-06-1151" diff --git a/Code/lib/BWC_unified/bwc.cpp b/Code/lib/BWC_unified/bwc.cpp index 5216761f..4f8a2c26 100644 --- a/Code/lib/BWC_unified/bwc.cpp +++ b/Code/lib/BWC_unified/bwc.cpp @@ -595,6 +595,10 @@ bool BWC::_handlecommand(Commands cmd, int64_t val, const String& txt="") _vt_calibrated = true; _save_settings_needed = true; break; + case SETPOWER: + val = std::clamp((int)val, 0, 1); + cio->cio_toggles.power_change = (val != cio->cio_states.power); + break; default: break; } diff --git a/Code/lib/BWC_unified/enums.h b/Code/lib/BWC_unified/enums.h index d4e75bb6..a552e5d5 100644 --- a/Code/lib/BWC_unified/enums.h +++ b/Code/lib/BWC_unified/enums.h @@ -81,7 +81,8 @@ enum Commands: byte SETREADY, SETR, RESETFRINSETIMER, - RESETFCLEANTIMER + RESETFCLEANTIMER, + SETPOWER }; enum ToggleButtons: byte From 8f49a28d160addfe22858f3f6168f3e7254daa50 Mon Sep 17 00:00:00 2001 From: Visualapproach Date: Mon, 7 Oct 2024 19:17:21 +0200 Subject: [PATCH 8/8] Added HA power switch To dim the green LED on some pumps. --- Code/lib/BWC_unified/FW_VERSION.h | 2 +- Code/lib/smarthomes/ha.hpp | 35 +++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/Code/lib/BWC_unified/FW_VERSION.h b/Code/lib/BWC_unified/FW_VERSION.h index 65c1e10c..2335b3d7 100644 --- a/Code/lib/BWC_unified/FW_VERSION.h +++ b/Code/lib/BWC_unified/FW_VERSION.h @@ -1 +1 @@ -#define FW_VERSION "2024-10-06-1151" +#define FW_VERSION "2024-10-07-1913" diff --git a/Code/lib/smarthomes/ha.hpp b/Code/lib/smarthomes/ha.hpp index 52e8cf80..c3a3a7bd 100644 --- a/Code/lib/smarthomes/ha.hpp +++ b/Code/lib/smarthomes/ha.hpp @@ -1273,6 +1273,41 @@ void setupHA() Serial.println(F("switch")); + /* spa power switch */ + doc[(_dev)] = devicedoc[(_dev)]; + payload.clear(); + unique_id = mqtt_info->mqttBaseTopic + F("_powerswitch")+mychipid; + topic = HA_PREFIX_F; + topic += F("/switch/"); + topic += unique_id; + topic += F("/config"); + doc[(_name)] = F("Power switch"); + doc[(_uniq_id)] = unique_id; + doc[(_stat_t)] = mqtt_info->mqttBaseTopic+F("/message"); + doc[(_cmd_t)] = mqtt_info->mqttBaseTopic+F("/command"); + doc[(_val_tpl)] = F("{{ value_json.PWR }}"); + doc[_expire_after] = 700; + doc[_icon] = F("mdi:power"); + doc[(_avty_t)] = mqtt_info->mqttBaseTopic+F("/Status"); + doc[(_pl_avail)] = _alive; + doc[(_pl_not_avail)] = _dead; + doc["pl_on"] = F("{CMD:24,VALUE:true,XTIME:0,INTERVAL:0}"); + doc["pl_off"] = F("{CMD:24,VALUE:false,XTIME:0,INTERVAL:0}"); + doc["state_on"] = 1; + doc["state_off"] = 0; + if (serializeJson(doc, payload) == 0) + { + // Serial.println(F("Failed to serialize HA message!")); + return; + } + mqttClient->publish(topic.c_str(), payload.c_str(), true); + mqttClient->loop(); + // Serial.println(payload); + doc.clear(); + doc.garbageCollect(); + + + /* spa heat regulation switch */ doc[(_dev)] = devicedoc[(_dev)]; payload.clear();