IRremoteESP8266
Loading...
Searching...
No Matches
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-Z24RKR A/C (PANASONIC_AC RKR/6)
22// Brand: Panasonic, Model: CS-YW9MKD A/C (PANASONIC_AC JKE/4)
23// Brand: Panasonic, Model: CS-E12QKEW A/C (PANASONIC_AC DKE/3)
24// Brand: Panasonic, Model: A75C2311 remote (PANASONIC_AC CKP/5)
25// Brand: Panasonic, Model: A75C2616-1 remote (PANASONIC_AC DKE/3)
26// Brand: Panasonic, Model: A75C3704 remote (PANASONIC_AC DKE/3)
27// Brand: Panasonic, Model: PN1122V remote (PANASONIC_AC DKE/3)
28// Brand: Panasonic, Model: A75C3747 remote (PANASONIC_AC JKE/4)
29// Brand: Panasonic, Model: CS-E9CKP series A/C (PANASONIC_AC32)
30// Brand: Panasonic, Model: A75C2295 remote (PANASONIC_AC32)
31// Brand: Panasonic, Model: A75C4762 remote (PANASONIC_AC RKR/6)
32
33#ifndef IR_PANASONIC_H_
34#define IR_PANASONIC_H_
35
36#define __STDC_LIMIT_MACROS
37#include <stdint.h>
38#ifdef ARDUINO
39#include <Arduino.h>
40#endif
41#include "IRremoteESP8266.h"
42#include "IRsend.h"
43#ifdef UNIT_TEST
44#include "IRsend_test.h"
45#endif
46
47// Constants
48const uint16_t kPanasonicFreq = 36700;
49const uint16_t kPanasonicAcExcess = 0;
50// Much higher than usual. See issue #540.
51const uint16_t kPanasonicAcTolerance = 40;
52
53const uint8_t kPanasonicAcAuto = 0; // 0b000
54const uint8_t kPanasonicAcDry = 2; // 0b010
55const uint8_t kPanasonicAcCool = 3; // 0b011
56const uint8_t kPanasonicAcHeat = 4; // 0b010
57const uint8_t kPanasonicAcFan = 6; // 0b110
58const uint8_t kPanasonicAcFanMin = 0;
59const uint8_t kPanasonicAcFanLow = 1;
60const uint8_t kPanasonicAcFanMed = 2;
61const uint8_t kPanasonicAcFanHigh = 3;
62const uint8_t kPanasonicAcFanMax = 4;
63const uint8_t kPanasonicAcFanAuto = 7;
64const uint8_t kPanasonicAcFanDelta = 3;
65const uint8_t kPanasonicAcPowerOffset = 0;
66const uint8_t kPanasonicAcTempOffset = 1; // Bits
67const uint8_t kPanasonicAcTempSize = 5; // Bits
68const uint8_t kPanasonicAcMinTemp = 16; // Celsius
69const uint8_t kPanasonicAcMaxTemp = 30; // Celsius
70const uint8_t kPanasonicAcFanModeTemp = 27; // Celsius
71const uint8_t kPanasonicAcQuietOffset = 0;
72const uint8_t kPanasonicAcPowerfulOffset = 5; // 0b100000
73// CKP & RKR models have Powerful and Quiet bits swapped.
76const uint8_t kPanasonicAcSwingVHighest = 0x1; // 0b0001
77const uint8_t kPanasonicAcSwingVHigh = 0x2; // 0b0010
78const uint8_t kPanasonicAcSwingVMiddle = 0x3; // 0b0011
79const uint8_t kPanasonicAcSwingVLow = 0x4; // 0b0100
80const uint8_t kPanasonicAcSwingVLowest = 0x5; // 0b0101
81const uint8_t kPanasonicAcSwingVAuto = 0xF; // 0b1111
82
83const uint8_t kPanasonicAcSwingHMiddle = 0x6; // 0b0110
84const uint8_t kPanasonicAcSwingHFullLeft = 0x9; // 0b1001
85const uint8_t kPanasonicAcSwingHLeft = 0xA; // 0b1010
86const uint8_t kPanasonicAcSwingHRight = 0xB; // 0b1011
87const uint8_t kPanasonicAcSwingHFullRight = 0xC; // 0b1100
88const uint8_t kPanasonicAcSwingHAuto = 0xD; // 0b1101
89const uint8_t kPanasonicAcChecksumInit = 0xF4;
90const uint8_t kPanasonicAcOnTimerOffset = 1;
92const uint8_t kPanasonicAcTimeSize = 11; // Bits
93const uint8_t kPanasonicAcTimeOverflowSize = 3; // Bits
94const uint16_t kPanasonicAcTimeMax = 23 * 60 + 59; // Mins since midnight.
95const uint16_t kPanasonicAcTimeSpecial = 0x600;
96
97const uint8_t kPanasonicAcIonFilterByte = 22; // Byte
98const uint8_t kPanasonicAcIonFilterOffset = 0; // Bit
99
101 0x02, 0x20, 0xE0, 0x04, 0x00, 0x00, 0x00, 0x06, 0x02,
102 0x20, 0xE0, 0x04, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00,
103 0x00, 0x0E, 0xE0, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00};
104
107 public:
108 explicit IRPanasonicAc(const uint16_t pin, const bool inverted = false,
109 const bool use_modulation = true);
110 void stateReset(void);
111#if SEND_PANASONIC_AC
112 void send(const uint16_t repeat = kPanasonicAcDefaultRepeat);
117 int8_t calibrate(void) { return _irsend.calibrate(); }
118#endif // SEND_PANASONIC_AC
119 void begin(void);
120 void on(void);
121 void off(void);
122 void setPower(const bool on);
123 bool getPower(void);
124 void setTemp(const uint8_t temp, const bool remember = true);
125 uint8_t getTemp(void);
126 void setFan(const uint8_t fan);
127 uint8_t getFan(void);
128 void setMode(const uint8_t mode);
129 uint8_t getMode(void);
130 void setRaw(const uint8_t state[]);
131 uint8_t *getRaw(void);
132 static bool validChecksum(const uint8_t *state,
133 const uint16_t length = kPanasonicAcStateLength);
134 static uint8_t calcChecksum(const uint8_t *state,
135 const uint16_t length = kPanasonicAcStateLength);
136 void setQuiet(const bool on);
137 bool getQuiet(void);
138 void setPowerful(const bool on);
139 bool getPowerful(void);
140 void setIon(const bool on);
141 bool getIon(void);
142 void setModel(const panasonic_ac_remote_model_t model);
144 void setSwingVertical(const uint8_t elevation);
145 uint8_t getSwingVertical(void);
146 void setSwingHorizontal(const uint8_t direction);
147 uint8_t getSwingHorizontal(void);
148 static uint16_t encodeTime(const uint8_t hours, const uint8_t mins);
149 uint16_t getClock(void);
150 void setClock(const uint16_t mins_since_midnight);
151 uint16_t getOnTimer(void);
152 void setOnTimer(const uint16_t mins_since_midnight, const bool enable = true);
153 void cancelOnTimer(void);
154 bool isOnTimerEnabled(void);
155 uint16_t getOffTimer(void);
156 void setOffTimer(const uint16_t mins_since_midnight,
157 const bool enable = true);
158 void cancelOffTimer(void);
159 bool isOffTimerEnabled(void);
160 static uint8_t convertMode(const stdAc::opmode_t mode);
161 static uint8_t convertFan(const stdAc::fanspeed_t speed);
162 static uint8_t convertSwingV(const stdAc::swingv_t position);
163 static uint8_t convertSwingH(const stdAc::swingh_t position);
164 static stdAc::opmode_t toCommonMode(const uint8_t mode);
165 static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed);
166 static stdAc::swingv_t toCommonSwingV(const uint8_t pos);
167 static stdAc::swingh_t toCommonSwingH(const uint8_t pos);
169 String toString(void);
170#ifndef UNIT_TEST
171
172 private:
174#else // UNIT_TEST
176 IRsendTest _irsend;
178#endif // UNIT_TEST
180 uint8_t _swingh;
181 uint8_t _temp;
182 void fixChecksum(const uint16_t length = kPanasonicAcStateLength);
183 static uint16_t _getTime(const uint8_t ptr[]);
184 static void _setTime(uint8_t * const ptr, const uint16_t mins_since_midnight,
185 const bool round_down);
186};
187
190 uint32_t raw;
191 struct {
192 // Byte 0
193 uint8_t :3;
194 uint8_t SwingH :1;
195 uint8_t SwingV :3;
196 uint8_t :1;
197 // Byte 1
198 uint8_t :8; // Always seems to be 0x36.
199 // Byte 2
200 uint8_t Temp :4;
201 uint8_t Fan :4;
202 // Byte 3
203 uint8_t Mode :3;
204 uint8_t PowerToggle :1; // 0 means toggle, 1 = keep the same.
205 uint8_t :4;
206 };
207};
208
209const uint8_t kPanasonicAc32Fan = 1; // 0b001
210const uint8_t kPanasonicAc32Cool = 2; // 0b010
211const uint8_t kPanasonicAc32Dry = 3; // 0b011
212const uint8_t kPanasonicAc32Heat = 4; // 0b010
213const uint8_t kPanasonicAc32Auto = 6; // 0b110
214
215const uint8_t kPanasonicAc32FanMin = 2;
216const uint8_t kPanasonicAc32FanLow = 3;
217const uint8_t kPanasonicAc32FanMed = 4;
218const uint8_t kPanasonicAc32FanHigh = 5;
219const uint8_t kPanasonicAc32FanMax = 6;
220const uint8_t kPanasonicAc32FanAuto = 0xF;
221const uint8_t kPanasonicAc32SwingVAuto = 0x7; // 0b111
222const uint32_t kPanasonicAc32KnownGood = 0x0AF136FC;
223
226 public:
227 explicit IRPanasonicAc32(const uint16_t pin, const bool inverted = false,
228 const bool use_modulation = true);
229 void stateReset(void);
230#if SEND_PANASONIC_AC32
231 void send(const uint16_t repeat = kPanasonicAcDefaultRepeat);
236 int8_t calibrate(void) { return _irsend.calibrate(); }
237#endif // SEND_PANASONIC_AC32
238 void begin(void);
239 void setPowerToggle(const bool on);
240 bool getPowerToggle(void) const;
241 void setTemp(const uint8_t temp);
242 uint8_t getTemp(void) const;
243 void setFan(const uint8_t fan);
244 uint8_t getFan(void) const;
245 void setMode(const uint8_t mode);
246 uint8_t getMode(void) const;
247 void setRaw(const uint32_t state);
248 uint32_t getRaw(void) const;
249 void setSwingVertical(const uint8_t pos);
250 uint8_t getSwingVertical(void) const;
251 void setSwingHorizontal(const bool on);
252 bool getSwingHorizontal(void) const;
253 static uint8_t convertMode(const stdAc::opmode_t mode);
254 static uint8_t convertFan(const stdAc::fanspeed_t speed);
255 static uint8_t convertSwingV(const stdAc::swingv_t position);
256 static stdAc::opmode_t toCommonMode(const uint8_t mode);
257 static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed);
258 static stdAc::swingv_t toCommonSwingV(const uint8_t pos);
259 stdAc::state_t toCommon(const stdAc::state_t *prev = NULL) const;
260 String toString(void) const;
261#ifndef UNIT_TEST
262
263 private:
265#else // UNIT_TEST
267 IRsendTest _irsend;
269#endif // UNIT_TEST
271};
272
273#endif // IR_PANASONIC_H_
const uint16_t kPanasonicAcStateLength
Definition IRremoteESP8266.h:1370
const uint16_t kPanasonicAcDefaultRepeat
Definition IRremoteESP8266.h:1374
std::string String
Definition IRremoteESP8266.h:1564
panasonic_ac_remote_model_t
Panasonic A/C model numbers.
Definition IRsend.h:181
Class for handling detailed Panasonic 32bit A/C messages.
Definition ir_Panasonic.h:225
uint8_t getFan(void) const
Get the current fan speed setting.
Definition ir_Panasonic.cpp:1213
static uint8_t convertSwingV(const stdAc::swingv_t position)
Convert a standard A/C vertical swing into its native setting.
Definition ir_Panasonic.cpp:1276
uint8_t getTemp(void) const
Get the current desired temperature setting.
Definition ir_Panasonic.cpp:1145
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition ir_Panasonic.cpp:1172
static stdAc::swingv_t toCommonSwingV(const uint8_t pos)
Convert a native vertical swing postion to it's common equivalent.
Definition ir_Panasonic.cpp:1269
void setSwingHorizontal(const bool on)
Control the horizontal swing setting.
Definition ir_Panasonic.cpp:1249
void setRaw(const uint32_t state)
Set the internal state from a valid code for this protocol.
Definition ir_Panasonic.cpp:1122
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition ir_Panasonic.cpp:1151
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition ir_Panasonic.cpp:1232
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivalent.
Definition ir_Panasonic.cpp:1185
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition ir_Panasonic.cpp:1156
stdAc::state_t toCommon(const stdAc::state_t *prev=NULL) const
Convert the current internal state into its stdAc::state_t equivalent.
Definition ir_Panasonic.cpp:1321
String toString(void) const
Convert the current internal state into a human readable string.
Definition ir_Panasonic.cpp:1289
void setTemp(const uint8_t temp)
Set the desired temperature.
Definition ir_Panasonic.cpp:1137
void begin(void)
Set up hardware to be able to send a message.
Definition ir_Panasonic.cpp:1114
uint32_t getRaw(void) const
Get a copy of the internal state/code for this protocol.
Definition ir_Panasonic.cpp:1118
uint8_t getSwingVertical(void) const
Get the current vertical swing setting.
Definition ir_Panasonic.cpp:1253
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition ir_Panasonic.h:236
PanasonicAc32Protocol _
The state in code form.
Definition ir_Panasonic.h:270
bool getSwingHorizontal(void) const
Get the current horizontal swing setting.
Definition ir_Panasonic.cpp:1245
void setFan(const uint8_t fan)
Set the speed of the fan.
Definition ir_Panasonic.cpp:1197
void send(const uint16_t repeat=kPanasonicAcDefaultRepeat)
Send the current internal state as IR messages.
Definition ir_Panasonic.cpp:1108
void setSwingVertical(const uint8_t pos)
Control the vertical swing setting.
Definition ir_Panasonic.cpp:1257
void stateReset(void)
Reset the state of the remote to a known good state/sequence.
Definition ir_Panasonic.cpp:1125
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivalent.
Definition ir_Panasonic.cpp:1218
IRsend _irsend
Instance of the IR send class.
Definition ir_Panasonic.h:264
void setPowerToggle(const bool on)
Set the Power Toggle setting of the A/C.
Definition ir_Panasonic.cpp:1129
bool getPowerToggle(void) const
Get the Power Toggle setting of the A/C.
Definition ir_Panasonic.cpp:1133
Class for handling detailed Panasonic A/C messages.
Definition ir_Panasonic.h:106
static uint8_t convertSwingV(const stdAc::swingv_t position)
Convert a standard A/C vertical swing into its native setting.
Definition ir_Panasonic.cpp:696
void off(void)
Change the power setting to Off.
Definition ir_Panasonic.cpp:362
bool isOnTimerEnabled(void)
Check if the On Timer is Enabled.
Definition ir_Panasonic.cpp:607
IRsend _irsend
Instance of the IR send class.
Definition ir_Panasonic.h:173
uint16_t getClock(void)
Get the current clock time value.
Definition ir_Panasonic.cpp:562
void setOffTimer(const uint16_t mins_since_midnight, const bool enable=true)
Set/Enable the Off Timer.
Definition ir_Panasonic.cpp:623
static uint8_t calcChecksum(const uint8_t *state, const uint16_t length=kPanasonicAcStateLength)
Calculate the checksum for a given state.
Definition ir_Panasonic.cpp:235
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:544
void cancelOnTimer(void)
Cancel the On Timer.
Definition ir_Panasonic.cpp:603
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivalent.
Definition ir_Panasonic.cpp:724
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivalent.
Definition ir_Panasonic.cpp:737
bool getPower(void)
Get the A/C power state of the remote.
Definition ir_Panasonic.cpp:354
uint8_t getFan(void)
Get the current fan speed setting.
Definition ir_Panasonic.cpp:484
void setSwingHorizontal(const uint8_t direction)
Control the horizontal swing setting.
Definition ir_Panasonic.cpp:438
void setModel(const panasonic_ac_remote_model_t model)
Set the model of the A/C to emulate.
Definition ir_Panasonic.cpp:256
uint8_t getSwingHorizontal(void)
Get the current horizontal swing setting.
Definition ir_Panasonic.cpp:432
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition ir_Panasonic.cpp:669
void setClock(const uint16_t mins_since_midnight)
Set the current clock time value.
Definition ir_Panasonic.cpp:583
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition ir_Panasonic.h:117
void setSwingVertical(const uint8_t elevation)
Control the vertical swing setting.
Definition ir_Panasonic.cpp:421
uint16_t getOffTimer(void)
Get the Off Timer time value.
Definition ir_Panasonic.cpp:613
void setQuiet(const bool on)
Set the Quiet setting of the A/C.
Definition ir_Panasonic.cpp:503
uint16_t getOnTimer(void)
Get the On Timer time value.
Definition ir_Panasonic.cpp:589
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:569
void setOnTimer(const uint16_t mins_since_midnight, const bool enable=true)
Set/Enable the On Timer.
Definition ir_Panasonic.cpp:594
void setTemp(const uint8_t temp, const bool remember=true)
Set the temperature.
Definition ir_Panasonic.cpp:404
void setIon(const bool on)
Set the Ion (filter) setting of the A/C.
Definition ir_Panasonic.cpp:660
uint8_t getMode(void)
Get the operating mode setting of the A/C.
Definition ir_Panasonic.cpp:366
panasonic_ac_remote_model_t getModel(void)
Get/Detect the model of the A/C.
Definition ir_Panasonic.cpp:306
void setRaw(const uint8_t state[])
Set the internal state from a valid code for this protocol.
Definition ir_Panasonic.cpp:332
void setPowerful(const bool on)
Set the Powerful (Turbo) setting of the A/C.
Definition ir_Panasonic.cpp:528
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:225
void cancelOffTimer(void)
Cancel the Off Timer.
Definition ir_Panasonic.cpp:638
bool getIon(void)
Get the Ion (filter) setting of the A/C.
Definition ir_Panasonic.cpp:648
bool getPowerful(void)
Get the Powerful (Turbo) setting of the A/C.
Definition ir_Panasonic.cpp:516
void send(const uint16_t repeat=kPanasonicAcDefaultRepeat)
Send the current internal state as an IR message.
Definition ir_Panasonic.cpp:249
uint8_t getSwingVertical(void)
Get the current vertical swing setting.
Definition ir_Panasonic.cpp:415
uint8_t remote_state[kPanasonicAcStateLength]
The state in code form.
Definition ir_Panasonic.h:179
void on(void)
Change the power setting to On.
Definition ir_Panasonic.cpp:359
void setFan(const uint8_t fan)
Set the speed of the fan.
Definition ir_Panasonic.cpp:467
bool getQuiet(void)
Get the Quiet setting of the A/C.
Definition ir_Panasonic.cpp:491
void stateReset(void)
Reset the state of the remote to a known good state/sequence.
Definition ir_Panasonic.cpp:212
void fixChecksum(const uint16_t length=kPanasonicAcStateLength)
Calculate and set the checksum values for the internal state.
Definition ir_Panasonic.cpp:242
static stdAc::swingh_t toCommonSwingH(const uint8_t pos)
Convert a native horizontal swing postion to it's common equivalent.
Definition ir_Panasonic.cpp:751
static uint16_t _getTime(const uint8_t ptr[])
Get the time from a given pointer location.
Definition ir_Panasonic.cpp:552
static uint8_t convertSwingH(const stdAc::swingh_t position)
Convert a standard A/C horizontal swing into its native setting.
Definition ir_Panasonic.cpp:710
bool isOffTimerEnabled(void)
Check if the Off Timer is Enabled.
Definition ir_Panasonic.cpp:642
uint8_t _swingh
Definition ir_Panasonic.h:180
void setPower(const bool on)
Control the power state of the A/C unit.
Definition ir_Panasonic.cpp:346
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition ir_Panasonic.cpp:325
String toString(void)
Convert the internal state into a human readable string.
Definition ir_Panasonic.cpp:800
static stdAc::swingv_t toCommonSwingV(const uint8_t pos)
Convert a native vertical swing postion to it's common equivalent.
Definition ir_Panasonic.cpp:765
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition ir_Panasonic.cpp:372
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition ir_Panasonic.cpp:682
stdAc::state_t toCommon(void)
Convert the current internal state into its stdAc::state_t equivalent.
Definition ir_Panasonic.cpp:774
void begin(void)
Set up hardware to be able to send a message.
Definition ir_Panasonic.cpp:219
uint8_t _temp
Definition ir_Panasonic.h:181
uint8_t getTemp(void)
Get the current temperature setting.
Definition ir_Panasonic.cpp:395
Class for sending all basic IR protocols.
Definition IRsend.h:249
int8_t calibrate(uint16_t hz=38000U)
Calculate & set any offsets to account for execution times during sending.
Definition IRsend.cpp:209
const uint8_t kPanasonicAc32FanHigh
Definition ir_Panasonic.h:218
const uint8_t kPanasonicAcSwingHFullRight
Definition ir_Panasonic.h:87
const uint8_t kPanasonicAcTimeSize
Definition ir_Panasonic.h:92
const uint8_t kPanasonicAcIonFilterByte
Definition ir_Panasonic.h:97
const uint8_t kPanasonicAcQuietOffset
Definition ir_Panasonic.h:71
const uint8_t kPanasonicAcTempOffset
Definition ir_Panasonic.h:66
const uint8_t kPanasonicAcSwingVAuto
Definition ir_Panasonic.h:81
const uint8_t kPanasonicAcFanDelta
Definition ir_Panasonic.h:64
const uint8_t kPanasonicAcFanLow
Definition ir_Panasonic.h:59
const uint8_t kPanasonicAcSwingVHigh
Definition ir_Panasonic.h:77
const uint8_t kPanasonicAcPowerfulOffset
Definition ir_Panasonic.h:72
const uint8_t kPanasonicAcSwingHRight
Definition ir_Panasonic.h:86
const uint8_t kPanasonicAcDry
Definition ir_Panasonic.h:54
const uint8_t kPanasonicAcSwingVLow
Definition ir_Panasonic.h:79
const uint8_t kPanasonicAc32FanMin
Definition ir_Panasonic.h:215
const uint8_t kPanasonicAc32Auto
Definition ir_Panasonic.h:213
const uint8_t kPanasonicAcFanMin
Definition ir_Panasonic.h:58
const uint8_t kPanasonicAcOffTimerOffset
Definition ir_Panasonic.h:91
const uint8_t kPanasonicAcChecksumInit
Definition ir_Panasonic.h:89
const uint16_t kPanasonicAcTolerance
Definition ir_Panasonic.h:51
const uint8_t kPanasonicAcQuietCkpOffset
Definition ir_Panasonic.h:74
const uint8_t kPanasonicAcIonFilterOffset
Definition ir_Panasonic.h:98
const uint8_t kPanasonicAcSwingVMiddle
Definition ir_Panasonic.h:78
const uint16_t kPanasonicAcTimeMax
Definition ir_Panasonic.h:94
const uint8_t kPanasonicAcOnTimerOffset
Definition ir_Panasonic.h:90
const uint8_t kPanasonicAc32SwingVAuto
Definition ir_Panasonic.h:221
const uint8_t kPanasonicAcFanModeTemp
Definition ir_Panasonic.h:70
const uint8_t kPanasonicAcMinTemp
Definition ir_Panasonic.h:68
const uint8_t kPanasonicAcFanAuto
Definition ir_Panasonic.h:63
const uint8_t kPanasonicAc32FanMax
Definition ir_Panasonic.h:219
const uint8_t kPanasonicAcSwingHLeft
Definition ir_Panasonic.h:85
const uint8_t kPanasonicAcFan
Definition ir_Panasonic.h:57
const uint8_t kPanasonicKnownGoodState[kPanasonicAcStateLength]
Definition ir_Panasonic.h:100
const uint8_t kPanasonicAc32Heat
Definition ir_Panasonic.h:212
const uint8_t kPanasonicAcSwingHAuto
Definition ir_Panasonic.h:88
const uint8_t kPanasonicAc32Dry
Definition ir_Panasonic.h:211
const uint8_t kPanasonicAcMaxTemp
Definition ir_Panasonic.h:69
const uint8_t kPanasonicAcFanMed
Definition ir_Panasonic.h:60
const uint8_t kPanasonicAcPowerOffset
Definition ir_Panasonic.h:65
const uint8_t kPanasonicAc32FanAuto
Definition ir_Panasonic.h:220
const uint8_t kPanasonicAcFanMax
Definition ir_Panasonic.h:62
const uint8_t kPanasonicAcAuto
Definition ir_Panasonic.h:53
const uint8_t kPanasonicAcPowerfulCkpOffset
Definition ir_Panasonic.h:75
const uint8_t kPanasonicAc32Fan
Definition ir_Panasonic.h:209
const uint8_t kPanasonicAcFanHigh
Definition ir_Panasonic.h:61
const uint8_t kPanasonicAcSwingHFullLeft
Definition ir_Panasonic.h:84
const uint8_t kPanasonicAcSwingVHighest
Definition ir_Panasonic.h:76
const uint8_t kPanasonicAcHeat
Definition ir_Panasonic.h:56
const uint8_t kPanasonicAcCool
Definition ir_Panasonic.h:55
const uint8_t kPanasonicAc32FanMed
Definition ir_Panasonic.h:217
const uint8_t kPanasonicAcTimeOverflowSize
Definition ir_Panasonic.h:93
const uint16_t kPanasonicAcExcess
Definition ir_Panasonic.h:49
const uint32_t kPanasonicAc32KnownGood
Cool, Auto, 16C.
Definition ir_Panasonic.h:222
const uint16_t kPanasonicAcTimeSpecial
Definition ir_Panasonic.h:95
const uint8_t kPanasonicAcSwingVLowest
Definition ir_Panasonic.h:80
const uint8_t kPanasonicAcTempSize
Definition ir_Panasonic.h:67
const uint16_t kPanasonicFreq
Definition ir_Panasonic.h:48
const uint8_t kPanasonicAc32FanLow
Definition ir_Panasonic.h:216
const uint8_t kPanasonicAcSwingHMiddle
Definition ir_Panasonic.h:83
const uint8_t kPanasonicAc32Cool
Definition ir_Panasonic.h:210
fanspeed_t
Common A/C settings for Fan Speeds.
Definition IRsend.h:61
opmode_t
Common A/C settings for A/C operating modes.
Definition IRsend.h:49
swingh_t
Common A/C settings for Horizontal Swing.
Definition IRsend.h:100
swingv_t
Common A/C settings for Vertical Swing.
Definition IRsend.h:74
Structure to hold a common A/C state.
Definition IRsend.h:114
Native representation of a Panasonic 32-bit A/C message.
Definition ir_Panasonic.h:189
uint32_t raw
The state in IR code form.
Definition ir_Panasonic.h:190
uint8_t PowerToggle
Definition ir_Panasonic.h:204
uint8_t Temp
Definition ir_Panasonic.h:200
uint8_t SwingH
Definition ir_Panasonic.h:194
uint8_t SwingV
Definition ir_Panasonic.h:195
uint8_t Mode
Definition ir_Panasonic.h:203
uint8_t Fan
Definition ir_Panasonic.h:201