PanasonicAltDKE fixes, removed code for other models which caused compile errors

This commit is contained in:
N-Storm 2019-03-29 13:06:23 +03:00
parent 489f6eaa43
commit 24d6f32fda
2 changed files with 14 additions and 32 deletions

View File

@ -1,25 +1,22 @@
#include <PanasonicAltDKEHeatpumpIR.h> #include <PanasonicAltDKEHeatpumpIR.h>
// This is a protected method, i.e. generic Panasonic instances cannot be created
PanasonicAltDKEHeatpumpIR::PanasonicAltDKEHeatpumpIR() : HeatpumpIR() PanasonicAltDKEHeatpumpIR::PanasonicAltDKEHeatpumpIR() : HeatpumpIR()
{ {
static const char model[] PROGMEM = "panasonic_dke"; static const char model[] PROGMEM = "panasonic_altdke";
static const char info[] PROGMEM = "{\"mdl\":\"panasonic_dke\",\"dn\":\"Panasonic DKE\",\"mT\":16,\"xT\":30,\"fs\":6}"; static const char info[] PROGMEM = "{\"mdl\":\"panasonic_altdke\",\"dn\":\"Panasonic DKE\",\"mT\":16,\"xT\":30,\"fs\":6}";
_model = model; _model = model;
_info = info; _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) 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); 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) 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 // Sensible defaults for the heat pump mode
@ -148,7 +145,7 @@ void PanasonicAltDKEHeatpumpIR::send(IRSender& IR, bool quiet, bool powerful)
sendPanasonicShort(IR, quiet, 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) 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 // 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]; uint8_t panasonicTemplate[27];
memcpy_P(panasonicTemplate, panasonicProgmemTemplate, sizeof(panasonicTemplate)); memcpy_P(panasonicTemplate, panasonicProgmemTemplate, sizeof(panasonicTemplate));
switch(_panasonicModel) panasonicTemplate[17] = swingH; // Only the DKE model has a setting for the horizontal air flow
{ panasonicTemplate[23] = 0x01;
case PANASONIC_DKE: panasonicTemplate[25] = 0x06;
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[13] |= operatingMode; panasonicTemplate[13] |= operatingMode;
panasonicTemplate[14] = temperature << 1; panasonicTemplate[14] = temperature << 1;
panasonicTemplate[16] = fanSpeed | swingV; panasonicTemplate[16] = fanSpeed | swingV;

View File

@ -55,14 +55,14 @@ class PanasonicAltDKEHeatpumpIR : public HeatpumpIR
{ {
public: public:
PanasonicAltDKEHeatpumpIR(); 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);
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, 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, bool quiet, bool powerful);
private: private:
void sendPanasonicLong(IRSender& IR, uint8_t operatingMode, uint8_t fanSpeed, uint8_t temperature, uint8_t swingV, uint8_t swingH, uint8_t ionizer); 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 sendPanasonicShort(IRSender& IR, bool quiet, bool powerful);
void sendPanasonic(IRSender& IR, uint8_t * panasonicTemplate, uint8_t templateLength); void sendPanasonic(IRSender& IR, uint8_t * panasonicTemplate, uint8_t templateLength);
}; };
#endif #endif