IRremoteESP8266
ir_Panasonic.h
Go to the documentation of this file.
1 // Copyright 2018 David Conran
2 
6 
7 // Supports:
8 // Brand: Panasonic, Model: TV (PANASONIC)
9 // Brand: Panasonic, Model: NKE series A/C (PANASONIC_AC NKE/2)
10 // Brand: Panasonic, Model: DKE series A/C (PANASONIC_AC DKE/3)
11 // Brand: Panasonic, Model: DKW series A/C (PANASONIC_AC DKE/3)
12 // Brand: Panasonic, Model: PKR series A/C (PANASONIC_AC DKE/3)
13 // Brand: Panasonic, Model: JKE series A/C (PANASONIC_AC JKE/4)
14 // Brand: Panasonic, Model: CKP series A/C (PANASONIC_AC CKP/5)
15 // Brand: Panasonic, Model: RKR series A/C (PANASONIC_AC RKR/6)
16 // Brand: Panasonic, Model: CS-ME10CKPG A/C (PANASONIC_AC CKP/5)
17 // Brand: Panasonic, Model: CS-ME12CKPG A/C (PANASONIC_AC CKP/5)
18 // Brand: Panasonic, Model: CS-ME14CKPG A/C (PANASONIC_AC CKP/5)
19 // Brand: Panasonic, Model: CS-E7PKR A/C (PANASONIC_AC DKE/2)
20 // Brand: Panasonic, Model: CS-Z9RKR A/C (PANASONIC_AC RKR/6)
21 // Brand: Panasonic, Model: CS-YW9MKD A/C (PANASONIC_AC JKE/4)
22 // Brand: Panasonic, Model: A75C2311 remote (PANASONIC_AC CKP/5)
23 // Brand: Panasonic, Model: A75C2616-1 remote (PANASONIC_AC DKE/3)
24 // Brand: Panasonic, Model: A75C3704 remote (PANASONIC_AC DKE/3)
25 // Brand: Panasonic, Model: A75C3747 remote (PANASONIC_AC JKE/4)
26 // Brand: Panasonic, Model: CS-E9CKP series A/C (PANASONIC_AC32)
27 // Brand: Panasonic, Model: A75C2295 remote (PANASONIC_AC32)
28 
29 #ifndef IR_PANASONIC_H_
30 #define IR_PANASONIC_H_
31 
32 #define __STDC_LIMIT_MACROS
33 #include <stdint.h>
34 #ifdef ARDUINO
35 #include <Arduino.h>
36 #endif
37 #include "IRremoteESP8266.h"
38 #include "IRsend.h"
39 #ifdef UNIT_TEST
40 #include "IRsend_test.h"
41 #endif
42 
43 // Constants
44 const uint16_t kPanasonicFreq = 36700;
45 const uint16_t kPanasonicAcExcess = 0;
46 // Much higher than usual. See issue #540.
47 const uint16_t kPanasonicAcTolerance = 40;
48 
49 const uint8_t kPanasonicAcAuto = 0; // 0b000
50 const uint8_t kPanasonicAcDry = 2; // 0b010
51 const uint8_t kPanasonicAcCool = 3; // 0b011
52 const uint8_t kPanasonicAcHeat = 4; // 0b010
53 const uint8_t kPanasonicAcFan = 6; // 0b110
54 const uint8_t kPanasonicAcFanMin = 0;
55 const uint8_t kPanasonicAcFanMed = 2;
56 const uint8_t kPanasonicAcFanMax = 4;
57 const uint8_t kPanasonicAcFanAuto = 7;
58 const uint8_t kPanasonicAcFanDelta = 3;
59 const uint8_t kPanasonicAcPowerOffset = 0;
60 const uint8_t kPanasonicAcTempOffset = 1; // Bits
61 const uint8_t kPanasonicAcTempSize = 5; // Bits
62 const uint8_t kPanasonicAcMinTemp = 16; // Celsius
63 const uint8_t kPanasonicAcMaxTemp = 30; // Celsius
64 const uint8_t kPanasonicAcFanModeTemp = 27; // Celsius
65 const uint8_t kPanasonicAcQuietOffset = 0;
66 const uint8_t kPanasonicAcPowerfulOffset = 5; // 0b100000
67 // CKP & RKR models have Powerful and Quiet bits swapped.
70 const uint8_t kPanasonicAcSwingVHighest = 0x1; // 0b0001
71 const uint8_t kPanasonicAcSwingVHigh = 0x2; // 0b0010
72 const uint8_t kPanasonicAcSwingVMiddle = 0x3; // 0b0011
73 const uint8_t kPanasonicAcSwingVLow = 0x4; // 0b0100
74 const uint8_t kPanasonicAcSwingVLowest = 0x5; // 0b0101
75 const uint8_t kPanasonicAcSwingVAuto = 0xF; // 0b1111
76 
77 const uint8_t kPanasonicAcSwingHMiddle = 0x6; // 0b0110
78 const uint8_t kPanasonicAcSwingHFullLeft = 0x9; // 0b1001
79 const uint8_t kPanasonicAcSwingHLeft = 0xA; // 0b1010
80 const uint8_t kPanasonicAcSwingHRight = 0xB; // 0b1011
81 const uint8_t kPanasonicAcSwingHFullRight = 0xC; // 0b1100
82 const uint8_t kPanasonicAcSwingHAuto = 0xD; // 0b1101
83 const uint8_t kPanasonicAcChecksumInit = 0xF4;
84 const uint8_t kPanasonicAcOnTimerOffset = 1;
85 const uint8_t kPanasonicAcOffTimerOffset = 2;
86 const uint8_t kPanasonicAcTimeSize = 11; // Bits
87 const uint8_t kPanasonicAcTimeOverflowSize = 3; // Bits
88 const uint16_t kPanasonicAcTimeMax = 23 * 60 + 59; // Mins since midnight.
89 const uint16_t kPanasonicAcTimeSpecial = 0x600;
90 
91 const uint8_t kPanasonicAcIonFilterByte = 22; // Byte
92 const uint8_t kPanasonicAcIonFilterOffset = 0; // Bit
93 
95  0x02, 0x20, 0xE0, 0x04, 0x00, 0x00, 0x00, 0x06, 0x02,
96  0x20, 0xE0, 0x04, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00,
97  0x00, 0x0E, 0xE0, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00};
98 
101  public:
102  explicit IRPanasonicAc(const uint16_t pin, const bool inverted = false,
103  const bool use_modulation = true);
104  void stateReset(void);
105 #if SEND_PANASONIC
106  void send(const uint16_t repeat = kPanasonicAcDefaultRepeat);
111  int8_t calibrate(void) { return _irsend.calibrate(); }
112 #endif // SEND_PANASONIC
113  void begin(void);
114  void on(void);
115  void off(void);
116  void setPower(const bool on);
117  bool getPower(void);
118  void setTemp(const uint8_t temp, const bool remember = true);
119  uint8_t getTemp(void);
120  void setFan(const uint8_t fan);
121  uint8_t getFan(void);
122  void setMode(const uint8_t mode);
123  uint8_t getMode(void);
124  void setRaw(const uint8_t state[]);
125  uint8_t *getRaw(void);
126  static bool validChecksum(const uint8_t *state,
127  const uint16_t length = kPanasonicAcStateLength);
128  static uint8_t calcChecksum(const uint8_t *state,
129  const uint16_t length = kPanasonicAcStateLength);
130  void setQuiet(const bool on);
131  bool getQuiet(void);
132  void setPowerful(const bool on);
133  bool getPowerful(void);
134  void setIon(const bool on);
135  bool getIon(void);
136  void setModel(const panasonic_ac_remote_model_t model);
138  void setSwingVertical(const uint8_t elevation);
139  uint8_t getSwingVertical(void);
140  void setSwingHorizontal(const uint8_t direction);
141  uint8_t getSwingHorizontal(void);
142  static uint16_t encodeTime(const uint8_t hours, const uint8_t mins);
143  uint16_t getClock(void);
144  void setClock(const uint16_t mins_since_midnight);
145  uint16_t getOnTimer(void);
146  void setOnTimer(const uint16_t mins_since_midnight, const bool enable = true);
147  void cancelOnTimer(void);
148  bool isOnTimerEnabled(void);
149  uint16_t getOffTimer(void);
150  void setOffTimer(const uint16_t mins_since_midnight,
151  const bool enable = true);
152  void cancelOffTimer(void);
153  bool isOffTimerEnabled(void);
154  static uint8_t convertMode(const stdAc::opmode_t mode);
155  static uint8_t convertFan(const stdAc::fanspeed_t speed);
156  static uint8_t convertSwingV(const stdAc::swingv_t position);
157  static uint8_t convertSwingH(const stdAc::swingh_t position);
158  static stdAc::opmode_t toCommonMode(const uint8_t mode);
159  static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed);
160  static stdAc::swingv_t toCommonSwingV(const uint8_t pos);
161  static stdAc::swingh_t toCommonSwingH(const uint8_t pos);
162  stdAc::state_t toCommon(void);
163  String toString(void);
164 #ifndef UNIT_TEST
165 
166  private:
168 #else // UNIT_TEST
169  IRsendTest _irsend;
171 #endif // UNIT_TEST
174  uint8_t _swingh;
175  uint8_t _temp;
176  void fixChecksum(const uint16_t length = kPanasonicAcStateLength);
177  static uint16_t _getTime(const uint8_t ptr[]);
178  static void _setTime(uint8_t * const ptr, const uint16_t mins_since_midnight,
179  const bool round_down);
180 };
181 
182 #endif // IR_PANASONIC_H_
kPanasonicAcFanAuto
const uint8_t kPanasonicAcFanAuto
Definition: ir_Panasonic.h:57
IRPanasonicAc::_getTime
static uint16_t _getTime(const uint8_t ptr[])
Get the time from a given pointer location.
Definition: ir_Panasonic.cpp:536
IRPanasonicAc
Class for handling detailed Panasonic A/C messages.
Definition: ir_Panasonic.h:100
IRPanasonicAc::getTemp
uint8_t getTemp(void)
Get the current temperature setting.
Definition: ir_Panasonic.cpp:381
kPanasonicAcIonFilterOffset
const uint8_t kPanasonicAcIonFilterOffset
Definition: ir_Panasonic.h:92
kPanasonicAcAuto
const uint8_t kPanasonicAcAuto
Definition: ir_Panasonic.h:49
kPanasonicAcTimeSize
const uint8_t kPanasonicAcTimeSize
Definition: ir_Panasonic.h:86
IRPanasonicAc::setRaw
void setRaw(const uint8_t state[])
Set the internal state from a valid code for this protocol.
Definition: ir_Panasonic.cpp:318
kPanasonicAcSwingHRight
const uint8_t kPanasonicAcSwingHRight
Definition: ir_Panasonic.h:80
stdAc::swingv_t
swingv_t
Common A/C settings for Vertical Swing.
Definition: IRsend.h:70
kPanasonicAcFanMin
const uint8_t kPanasonicAcFanMin
Definition: ir_Panasonic.h:54
IRPanasonicAc::getOffTimer
uint16_t getOffTimer(void)
Get the Off Timer time value.
Definition: ir_Panasonic.cpp:597
kPanasonicAcQuietOffset
const uint8_t kPanasonicAcQuietOffset
Definition: ir_Panasonic.h:65
kPanasonicAcOffTimerOffset
const uint8_t kPanasonicAcOffTimerOffset
Definition: ir_Panasonic.h:85
kPanasonicAcTolerance
const uint16_t kPanasonicAcTolerance
Definition: ir_Panasonic.h:47
stdAc::fanspeed_t
fanspeed_t
Common A/C settings for Fan Speeds.
Definition: IRsend.h:58
kPanasonicAcExcess
const uint16_t kPanasonicAcExcess
Definition: ir_Panasonic.h:45
IRPanasonicAc::_swingh
uint8_t _swingh
Definition: ir_Panasonic.h:174
IRPanasonicAc::convertSwingV
static uint8_t convertSwingV(const stdAc::swingv_t position)
Convert a standard A/C vertical swing into its native setting.
Definition: ir_Panasonic.cpp:680
kPanasonicAcPowerfulOffset
const uint8_t kPanasonicAcPowerfulOffset
Definition: ir_Panasonic.h:66
IRPanasonicAc::encodeTime
static uint16_t encodeTime(const uint8_t hours, const uint8_t mins)
Convert standard (military/24hr) time to nr. of minutes since midnight.
Definition: ir_Panasonic.cpp:528
kPanasonicAcTimeOverflowSize
const uint8_t kPanasonicAcTimeOverflowSize
Definition: ir_Panasonic.h:87
kPanasonicAcFanMed
const uint8_t kPanasonicAcFanMed
Definition: ir_Panasonic.h:55
IRsend.h
IRPanasonicAc::setFan
void setFan(const uint8_t fan)
Set the speed of the fan.
Definition: ir_Panasonic.cpp:453
IRPanasonicAc::getFan
uint8_t getFan(void)
Get the current fan speed setting.
Definition: ir_Panasonic.cpp:468
IRPanasonicAc::setQuiet
void setQuiet(const bool on)
Set the Quiet setting of the A/C.
Definition: ir_Panasonic.cpp:487
IRPanasonicAc::_temp
uint8_t _temp
Definition: ir_Panasonic.h:175
IRsend
Class for sending all basic IR protocols.
Definition: IRsend.h:182
IRsend::calibrate
int8_t calibrate(uint16_t hz=38000U)
Calculate & set any offsets to account for execution times during sending.
Definition: IRsend.cpp:207
IRPanasonicAc::setSwingVertical
void setSwingVertical(const uint8_t elevation)
Control the vertical swing setting.
Definition: ir_Panasonic.cpp:407
String
std::string String
Definition: IRremoteESP8266.h:1178
IRPanasonicAc::toCommonFanSpeed
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivalent.
Definition: ir_Panasonic.cpp:721
IRPanasonicAc::setIon
void setIon(const bool on)
Set the Ion (filter) setting of the A/C.
Definition: ir_Panasonic.cpp:644
kPanasonicAcPowerfulCkpOffset
const uint8_t kPanasonicAcPowerfulCkpOffset
Definition: ir_Panasonic.h:69
kPanasonicAcSwingHAuto
const uint8_t kPanasonicAcSwingHAuto
Definition: ir_Panasonic.h:82
kPanasonicAcMinTemp
const uint8_t kPanasonicAcMinTemp
Definition: ir_Panasonic.h:62
kPanasonicAcPowerOffset
const uint8_t kPanasonicAcPowerOffset
Definition: ir_Panasonic.h:59
kPanasonicAcHeat
const uint8_t kPanasonicAcHeat
Definition: ir_Panasonic.h:52
IRPanasonicAc::send
void send(const uint16_t repeat=kPanasonicAcDefaultRepeat)
Send the current internal state as an IR message.
Definition: ir_Panasonic.cpp:235
IRPanasonicAc::getClock
uint16_t getClock(void)
Get the current clock time value.
Definition: ir_Panasonic.cpp:546
IRPanasonicAc::getPower
bool getPower(void)
Get the A/C power state of the remote.
Definition: ir_Panasonic.cpp:340
IRPanasonicAc::getQuiet
bool getQuiet(void)
Get the Quiet setting of the A/C.
Definition: ir_Panasonic.cpp:475
panasonic_ac_remote_model_t
panasonic_ac_remote_model_t
Panasonic A/C model numbers.
Definition: IRsend.h:141
IRremoteESP8266.h
stdAc::swingh_t
swingh_t
Common A/C settings for Horizontal Swing.
Definition: IRsend.h:83
IRPanasonicAc::setOffTimer
void setOffTimer(const uint16_t mins_since_midnight, const bool enable=true)
Set/Enable the Off Timer.
Definition: ir_Panasonic.cpp:607
IRPanasonicAc::toCommon
stdAc::state_t toCommon(void)
Convert the current internal state into its stdAc::state_t equivalent.
Definition: ir_Panasonic.cpp:758
IRPanasonicAc::calcChecksum
static uint8_t calcChecksum(const uint8_t *state, const uint16_t length=kPanasonicAcStateLength)
Calculate the checksum for a given state.
Definition: ir_Panasonic.cpp:221
IRPanasonicAc::convertMode
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition: ir_Panasonic.cpp:653
kPanasonicAcChecksumInit
const uint8_t kPanasonicAcChecksumInit
Definition: ir_Panasonic.h:83
IRPanasonicAc::_setTime
static void _setTime(uint8_t *const ptr, const uint16_t mins_since_midnight, const bool round_down)
Set the time at a given pointer location.
Definition: ir_Panasonic.cpp:553
IRPanasonicAc::getSwingVertical
uint8_t getSwingVertical(void)
Get the current vertical swing setting.
Definition: ir_Panasonic.cpp:401
kPanasonicAcDefaultRepeat
const uint16_t kPanasonicAcDefaultRepeat
Definition: IRremoteESP8266.h:1032
kPanasonicAcSwingHFullRight
const uint8_t kPanasonicAcSwingHFullRight
Definition: ir_Panasonic.h:81
kPanasonicAcSwingHLeft
const uint8_t kPanasonicAcSwingHLeft
Definition: ir_Panasonic.h:79
IRPanasonicAc::getPowerful
bool getPowerful(void)
Get the Powerful (Turbo) setting of the A/C.
Definition: ir_Panasonic.cpp:500
IRPanasonicAc::setSwingHorizontal
void setSwingHorizontal(const uint8_t direction)
Control the horizontal swing setting.
Definition: ir_Panasonic.cpp:424
IRPanasonicAc::getRaw
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition: ir_Panasonic.cpp:311
kPanasonicAcStateLength
const uint16_t kPanasonicAcStateLength
Definition: IRremoteESP8266.h:1028
kPanasonicAcSwingHMiddle
const uint8_t kPanasonicAcSwingHMiddle
Definition: ir_Panasonic.h:77
kPanasonicAcCool
const uint8_t kPanasonicAcCool
Definition: ir_Panasonic.h:51
kPanasonicFreq
const uint16_t kPanasonicFreq
Definition: ir_Panasonic.h:44
IRPanasonicAc::toCommonSwingH
static stdAc::swingh_t toCommonSwingH(const uint8_t pos)
Convert a native horizontal swing postion to it's common equivalent.
Definition: ir_Panasonic.cpp:735
IRPanasonicAc::_irsend
IRsend _irsend
Instance of the IR send class.
Definition: ir_Panasonic.h:167
IRPanasonicAc::setOnTimer
void setOnTimer(const uint16_t mins_since_midnight, const bool enable=true)
Set/Enable the On Timer.
Definition: ir_Panasonic.cpp:578
IRPanasonicAc::on
void on(void)
Change the power setting to On.
Definition: ir_Panasonic.cpp:345
IRPanasonicAc::IRPanasonicAc
IRPanasonicAc(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: ir_Panasonic.cpp:193
IRPanasonicAc::toString
String toString(void)
Convert the internal state into a human readable string.
Definition: ir_Panasonic.cpp:784
kPanasonicAcQuietCkpOffset
const uint8_t kPanasonicAcQuietCkpOffset
Definition: ir_Panasonic.h:68
kPanasonicKnownGoodState
const uint8_t kPanasonicKnownGoodState[kPanasonicAcStateLength]
Definition: ir_Panasonic.h:94
kPanasonicAcSwingVAuto
const uint8_t kPanasonicAcSwingVAuto
Definition: ir_Panasonic.h:75
kPanasonicAcSwingVHigh
const uint8_t kPanasonicAcSwingVHigh
Definition: ir_Panasonic.h:71
IRPanasonicAc::isOnTimerEnabled
bool isOnTimerEnabled(void)
Check if the On Timer is Enabled.
Definition: ir_Panasonic.cpp:591
IRPanasonicAc::begin
void begin(void)
Set up hardware to be able to send a message.
Definition: ir_Panasonic.cpp:205
IRPanasonicAc::fixChecksum
void fixChecksum(const uint16_t length=kPanasonicAcStateLength)
Calculate and set the checksum values for the internal state.
Definition: ir_Panasonic.cpp:228
IRPanasonicAc::calibrate
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition: ir_Panasonic.h:111
IRPanasonicAc::setPower
void setPower(const bool on)
Control the power state of the A/C unit.
Definition: ir_Panasonic.cpp:332
kPanasonicAcTempOffset
const uint8_t kPanasonicAcTempOffset
Definition: ir_Panasonic.h:60
IRPanasonicAc::setClock
void setClock(const uint16_t mins_since_midnight)
Set the current clock time value.
Definition: ir_Panasonic.cpp:567
kPanasonicAcTimeSpecial
const uint16_t kPanasonicAcTimeSpecial
Definition: ir_Panasonic.h:89
IRPanasonicAc::setMode
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition: ir_Panasonic.cpp:358
kPanasonicAcSwingVLow
const uint8_t kPanasonicAcSwingVLow
Definition: ir_Panasonic.h:73
IRPanasonicAc::cancelOnTimer
void cancelOnTimer(void)
Cancel the On Timer.
Definition: ir_Panasonic.cpp:587
IRPanasonicAc::getSwingHorizontal
uint8_t getSwingHorizontal(void)
Get the current horizontal swing setting.
Definition: ir_Panasonic.cpp:418
kPanasonicAcFan
const uint8_t kPanasonicAcFan
Definition: ir_Panasonic.h:53
IRPanasonicAc::off
void off(void)
Change the power setting to Off.
Definition: ir_Panasonic.cpp:348
kPanasonicAcDry
const uint8_t kPanasonicAcDry
Definition: ir_Panasonic.h:50
IRPanasonicAc::remote_state
uint8_t remote_state[kPanasonicAcStateLength]
The state in code form.
Definition: ir_Panasonic.h:173
IRPanasonicAc::cancelOffTimer
void cancelOffTimer(void)
Cancel the Off Timer.
Definition: ir_Panasonic.cpp:622
kPanasonicAcIonFilterByte
const uint8_t kPanasonicAcIonFilterByte
Definition: ir_Panasonic.h:91
IRPanasonicAc::convertFan
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition: ir_Panasonic.cpp:666
kPanasonicAcSwingVMiddle
const uint8_t kPanasonicAcSwingVMiddle
Definition: ir_Panasonic.h:72
IRPanasonicAc::validChecksum
static bool validChecksum(const uint8_t *state, const uint16_t length=kPanasonicAcStateLength)
Verify the checksum is valid for a given state.
Definition: ir_Panasonic.cpp:211
kPanasonicAcFanDelta
const uint8_t kPanasonicAcFanDelta
Definition: ir_Panasonic.h:58
kPanasonicAcSwingVHighest
const uint8_t kPanasonicAcSwingVHighest
Definition: ir_Panasonic.h:70
IRPanasonicAc::stateReset
void stateReset(void)
Reset the state of the remote to a known good state/sequence.
Definition: ir_Panasonic.cpp:198
kPanasonicAcTempSize
const uint8_t kPanasonicAcTempSize
Definition: ir_Panasonic.h:61
IRPanasonicAc::getMode
uint8_t getMode(void)
Get the operating mode setting of the A/C.
Definition: ir_Panasonic.cpp:352
IRPanasonicAc::setPowerful
void setPowerful(const bool on)
Set the Powerful (Turbo) setting of the A/C.
Definition: ir_Panasonic.cpp:512
kPanasonicAcFanModeTemp
const uint8_t kPanasonicAcFanModeTemp
Definition: ir_Panasonic.h:64
kPanasonicAcFanMax
const uint8_t kPanasonicAcFanMax
Definition: ir_Panasonic.h:56
IRPanasonicAc::toCommonMode
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivalent.
Definition: ir_Panasonic.cpp:708
IRPanasonicAc::isOffTimerEnabled
bool isOffTimerEnabled(void)
Check if the Off Timer is Enabled.
Definition: ir_Panasonic.cpp:626
kPanasonicAcTimeMax
const uint16_t kPanasonicAcTimeMax
Definition: ir_Panasonic.h:88
kPanasonicAcSwingHFullLeft
const uint8_t kPanasonicAcSwingHFullLeft
Definition: ir_Panasonic.h:78
IRPanasonicAc::getModel
panasonic_ac_remote_model_t getModel(void)
Get/Detect the model of the A/C.
Definition: ir_Panasonic.cpp:292
IRPanasonicAc::getIon
bool getIon(void)
Get the Ion (filter) setting of the A/C.
Definition: ir_Panasonic.cpp:632
IRPanasonicAc::getOnTimer
uint16_t getOnTimer(void)
Get the On Timer time value.
Definition: ir_Panasonic.cpp:573
stdAc::state_t
Structure to hold a common A/C state.
Definition: IRsend.h:97
IRPanasonicAc::setModel
void setModel(const panasonic_ac_remote_model_t model)
Set the model of the A/C to emulate.
Definition: ir_Panasonic.cpp:242
kPanasonicAcMaxTemp
const uint8_t kPanasonicAcMaxTemp
Definition: ir_Panasonic.h:63
IRPanasonicAc::convertSwingH
static uint8_t convertSwingH(const stdAc::swingh_t position)
Convert a standard A/C horizontal swing into its native setting.
Definition: ir_Panasonic.cpp:694
IRPanasonicAc::setTemp
void setTemp(const uint8_t temp, const bool remember=true)
Set the temperature.
Definition: ir_Panasonic.cpp:390
kPanasonicAcSwingVLowest
const uint8_t kPanasonicAcSwingVLowest
Definition: ir_Panasonic.h:74
kPanasonicAcOnTimerOffset
const uint8_t kPanasonicAcOnTimerOffset
Definition: ir_Panasonic.h:84
IRPanasonicAc::toCommonSwingV
static stdAc::swingv_t toCommonSwingV(const uint8_t pos)
Convert a native vertical swing postion to it's common equivalent.
Definition: ir_Panasonic.cpp:749
stdAc::opmode_t
opmode_t
Common A/C settings for A/C operating modes.
Definition: IRsend.h:46