From 24d6f32fda8c541baa078ca6c01664051649d709 Mon Sep 17 00:00:00 2001 From: N-Storm Date: Fri, 29 Mar 2019 13:06:23 +0300 Subject: [PATCH] PanasonicAltDKE fixes, removed code for other models which caused compile errors --- PanasonicAltDKEHeatpumpIR.cpp | 34 ++++++++-------------------------- PanasonicAltDKEHeatpumpIR.h | 12 ++++++------ 2 files changed, 14 insertions(+), 32 deletions(-) diff --git a/PanasonicAltDKEHeatpumpIR.cpp b/PanasonicAltDKEHeatpumpIR.cpp index f1b5df3..108b4ed 100644 --- a/PanasonicAltDKEHeatpumpIR.cpp +++ b/PanasonicAltDKEHeatpumpIR.cpp @@ -1,25 +1,22 @@ #include -// This is a protected method, i.e. generic Panasonic instances cannot be created PanasonicAltDKEHeatpumpIR::PanasonicAltDKEHeatpumpIR() : HeatpumpIR() { - static const char model[] PROGMEM = "panasonic_dke"; - static const char info[] PROGMEM = "{\"mdl\":\"panasonic_dke\",\"dn\":\"Panasonic DKE\",\"mT\":16,\"xT\":30,\"fs\":6}"; + static const char model[] PROGMEM = "panasonic_altdke"; + static const char info[] PROGMEM = "{\"mdl\":\"panasonic_altdke\",\"dn\":\"Panasonic DKE\",\"mT\":16,\"xT\":30,\"fs\":6}"; _model = model; _info = info; - - _panasonicModel = PANASONIC_DKE; } -// Panasonic DKE/NKE/JKE numeric values to command bytes +// Panasonic DKE numeric values to command bytes void PanasonicAltDKEHeatpumpIR::send(IRSender& IR, uint8_t powerModeCmd, uint8_t operatingModeCmd, uint8_t fanSpeedCmd, uint8_t temperatureCmd, uint8_t swingVCmd, uint8_t swingHCmd) { send(IR, powerModeCmd, operatingModeCmd, fanSpeedCmd, temperatureCmd, swingVCmd, swingHCmd, false); } -// Panasonic DKE/NKE/JKE numeric values to command bytes +// Panasonic DKE numeric values to command bytes void PanasonicAltDKEHeatpumpIR::send(IRSender& IR, uint8_t powerModeCmd, uint8_t operatingModeCmd, uint8_t fanSpeedCmd, uint8_t temperatureCmd, uint8_t swingVCmd, uint8_t swingHCmd, bool ionizerCmd) { // Sensible defaults for the heat pump mode @@ -148,7 +145,7 @@ void PanasonicAltDKEHeatpumpIR::send(IRSender& IR, bool quiet, bool powerful) sendPanasonicShort(IR, quiet, powerful); } -// Send the Panasonic DKE/JKE/NKE/LKE code +// Send the Panasonic DKE code void PanasonicAltDKEHeatpumpIR::sendPanasonicLong(IRSender& IR, uint8_t operatingMode, uint8_t fanSpeed, uint8_t temperature, uint8_t swingV, uint8_t swingH, uint8_t ionizer) { // Only bytes 13, 14, 16, 17 and 26 are modified @@ -161,24 +158,9 @@ void PanasonicAltDKEHeatpumpIR::sendPanasonicLong(IRSender& IR, uint8_t operatin uint8_t panasonicTemplate[27]; memcpy_P(panasonicTemplate, panasonicProgmemTemplate, sizeof(panasonicTemplate)); - switch(_panasonicModel) - { - case PANASONIC_DKE: - panasonicTemplate[17] = swingH; // Only the DKE model has a setting for the horizontal air flow - panasonicTemplate[23] = 0x01; - panasonicTemplate[25] = 0x06; - break; - case PANASONIC_JKE: - break; - case PANASONIC_NKE: - panasonicTemplate[17] = 0x06; - break; - case PANASONIC_LKE: - panasonicTemplate[17] = 0x06; - panasonicTemplate[13] = 0x02; - break; - } - + panasonicTemplate[17] = swingH; // Only the DKE model has a setting for the horizontal air flow + panasonicTemplate[23] = 0x01; + panasonicTemplate[25] = 0x06; panasonicTemplate[13] |= operatingMode; panasonicTemplate[14] = temperature << 1; panasonicTemplate[16] = fanSpeed | swingV; diff --git a/PanasonicAltDKEHeatpumpIR.h b/PanasonicAltDKEHeatpumpIR.h index 88d8009..a6bd4a7 100644 --- a/PanasonicAltDKEHeatpumpIR.h +++ b/PanasonicAltDKEHeatpumpIR.h @@ -55,14 +55,14 @@ class PanasonicAltDKEHeatpumpIR : public HeatpumpIR { public: PanasonicAltDKEHeatpumpIR(); - void send(IRSender& IR, uint8_t powerModeCmd, uint8_t operatingModeCmd, uint8_t fanSpeedCmd, uint8_t temperatureCmd, uint8_t swingVCmd, uint8_t swingHCmd); - void send(IRSender& IR, uint8_t powerModeCmd, uint8_t operatingModeCmd, uint8_t fanSpeedCmd, uint8_t temperatureCmd, uint8_t swingVCmd, uint8_t swingHCmd, bool ionizerCmd); - void send(IRSender& IR, bool quiet, bool powerful); + void send(IRSender& IR, uint8_t powerModeCmd, uint8_t operatingModeCmd, uint8_t fanSpeedCmd, uint8_t temperatureCmd, uint8_t swingVCmd, uint8_t swingHCmd); + void send(IRSender& IR, uint8_t powerModeCmd, uint8_t operatingModeCmd, uint8_t fanSpeedCmd, uint8_t temperatureCmd, uint8_t swingVCmd, uint8_t swingHCmd, bool ionizerCmd); + void send(IRSender& IR, bool quiet, bool powerful); private: - void sendPanasonicLong(IRSender& IR, uint8_t operatingMode, uint8_t fanSpeed, uint8_t temperature, uint8_t swingV, uint8_t swingH, uint8_t ionizer); - void sendPanasonicShort(IRSender& IR, bool quiet, bool powerful); - void sendPanasonic(IRSender& IR, uint8_t * panasonicTemplate, uint8_t templateLength); + void sendPanasonicLong(IRSender& IR, uint8_t operatingMode, uint8_t fanSpeed, uint8_t temperature, uint8_t swingV, uint8_t swingH, uint8_t ionizer); + void sendPanasonicShort(IRSender& IR, bool quiet, bool powerful); + void sendPanasonic(IRSender& IR, uint8_t * panasonicTemplate, uint8_t templateLength); }; #endif