IRremoteIDF
Infrared send & receive for ESP-IDF
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#include "IRplatform.h"
39#include "IRremoteESP8266.h"
40#include "IRsend.h"
41#ifdef UNIT_TEST
42#include "IRsend_test.h"
43#endif
44
45// Constants
46const uint16_t kPanasonicFreq = 36700;
47const uint16_t kPanasonicAcExcess = 0;
48// Much higher than usual. See issue #540.
49const uint16_t kPanasonicAcTolerance = 40;
50
51const uint8_t kPanasonicAcAuto = 0; // 0b000
52const uint8_t kPanasonicAcDry = 2; // 0b010
53const uint8_t kPanasonicAcCool = 3; // 0b011
54const uint8_t kPanasonicAcHeat = 4; // 0b010
55const uint8_t kPanasonicAcFan = 6; // 0b110
56const uint8_t kPanasonicAcFanMin = 0;
57const uint8_t kPanasonicAcFanLow = 1;
58const uint8_t kPanasonicAcFanMed = 2;
59const uint8_t kPanasonicAcFanHigh = 3;
60const uint8_t kPanasonicAcFanMax = 4;
61const uint8_t kPanasonicAcFanAuto = 7;
62const uint8_t kPanasonicAcFanDelta = 3;
63const uint8_t kPanasonicAcPowerOffset = 0;
64const uint8_t kPanasonicAcTempOffset = 1; // Bits
65const uint8_t kPanasonicAcTempSize = 5; // Bits
66const uint8_t kPanasonicAcMinTemp = 16; // Celsius
67const uint8_t kPanasonicAcMaxTemp = 30; // Celsius
68const uint8_t kPanasonicAcFanModeTemp = 27; // Celsius
69const uint8_t kPanasonicAcQuietOffset = 0;
70const uint8_t kPanasonicAcPowerfulOffset = 5; // 0b100000
71// CKP & RKR models have Powerful and Quiet bits swapped.
74const uint8_t kPanasonicAcSwingVHighest = 0x1; // 0b0001
75const uint8_t kPanasonicAcSwingVHigh = 0x2; // 0b0010
76const uint8_t kPanasonicAcSwingVMiddle = 0x3; // 0b0011
77const uint8_t kPanasonicAcSwingVLow = 0x4; // 0b0100
78const uint8_t kPanasonicAcSwingVLowest = 0x5; // 0b0101
79const uint8_t kPanasonicAcSwingVAuto = 0xF; // 0b1111
80
81const uint8_t kPanasonicAcSwingHMiddle = 0x6; // 0b0110
82const uint8_t kPanasonicAcSwingHFullLeft = 0x9; // 0b1001
83const uint8_t kPanasonicAcSwingHLeft = 0xA; // 0b1010
84const uint8_t kPanasonicAcSwingHRight = 0xB; // 0b1011
85const uint8_t kPanasonicAcSwingHFullRight = 0xC; // 0b1100
86const uint8_t kPanasonicAcSwingHAuto = 0xD; // 0b1101
87const uint8_t kPanasonicAcChecksumInit = 0xF4;
88const uint8_t kPanasonicAcOnTimerOffset = 1;
90const uint8_t kPanasonicAcTimeSize = 11; // Bits
91const uint8_t kPanasonicAcTimeOverflowSize = 3; // Bits
92const uint16_t kPanasonicAcTimeMax = 23 * 60 + 59; // Mins since midnight.
93const uint16_t kPanasonicAcTimeSpecial = 0x600;
94
95const uint8_t kPanasonicAcIonFilterByte = 22; // Byte
96const uint8_t kPanasonicAcIonFilterOffset = 0; // Bit
97
99 0x02, 0x20, 0xE0, 0x04, 0x00, 0x00, 0x00, 0x06, 0x02,
100 0x20, 0xE0, 0x04, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00,
101 0x00, 0x0E, 0xE0, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00};
102
105 public:
106 explicit IRPanasonicAc(const uint16_t pin, const bool inverted = false,
107 const bool use_modulation = true);
108 void stateReset(void);
109#if SEND_PANASONIC_AC
110 void send(const uint16_t repeat = kPanasonicAcDefaultRepeat);
115 int8_t calibrate(void) { return _irsend.calibrate(); }
116#endif // SEND_PANASONIC_AC
117 void begin(void);
118 void on(void);
119 void off(void);
120 void setPower(const bool on);
121 bool getPower(void);
122 void setTemp(const uint8_t temp, const bool remember = true);
123 uint8_t getTemp(void);
124 void setFan(const uint8_t fan);
125 uint8_t getFan(void);
126 void setMode(const uint8_t mode);
127 uint8_t getMode(void);
128 void setRaw(const uint8_t state[]);
129 uint8_t *getRaw(void);
130 static bool validChecksum(const uint8_t *state,
131 const uint16_t length = kPanasonicAcStateLength);
132 static uint8_t calcChecksum(const uint8_t *state,
133 const uint16_t length = kPanasonicAcStateLength);
134 void setQuiet(const bool on);
135 bool getQuiet(void);
136 void setPowerful(const bool on);
137 bool getPowerful(void);
138 void setIon(const bool on);
139 bool getIon(void);
140 void setModel(const panasonic_ac_remote_model_t model);
142 void setSwingVertical(const uint8_t elevation);
143 uint8_t getSwingVertical(void);
144 void setSwingHorizontal(const uint8_t direction);
145 uint8_t getSwingHorizontal(void);
146 static uint16_t encodeTime(const uint8_t hours, const uint8_t mins);
147 uint16_t getClock(void);
148 void setClock(const uint16_t mins_since_midnight);
149 uint16_t getOnTimer(void);
150 void setOnTimer(const uint16_t mins_since_midnight, const bool enable = true);
151 void cancelOnTimer(void);
152 bool isOnTimerEnabled(void);
153 uint16_t getOffTimer(void);
154 void setOffTimer(const uint16_t mins_since_midnight,
155 const bool enable = true);
156 void cancelOffTimer(void);
157 bool isOffTimerEnabled(void);
158 static uint8_t convertMode(const stdAc::opmode_t mode);
159 static uint8_t convertFan(const stdAc::fanspeed_t speed);
160 static uint8_t convertSwingV(const stdAc::swingv_t position);
161 static uint8_t convertSwingH(const stdAc::swingh_t position);
162 static stdAc::opmode_t toCommonMode(const uint8_t mode);
163 static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed);
164 static stdAc::swingv_t toCommonSwingV(const uint8_t pos);
165 static stdAc::swingh_t toCommonSwingH(const uint8_t pos);
167 String toString(void);
168#ifndef UNIT_TEST
169
170 private:
172#else // UNIT_TEST
174 IRsendTest _irsend;
176#endif // UNIT_TEST
178 uint8_t _swingh;
179 uint8_t _temp;
180 void fixChecksum(const uint16_t length = kPanasonicAcStateLength);
181 static uint16_t _getTime(const uint8_t ptr[]);
182 static void _setTime(uint8_t * const ptr, const uint16_t mins_since_midnight,
183 const bool round_down);
184};
185
188 uint32_t raw;
189 struct {
190 // Byte 0
191 uint8_t :3;
192 uint8_t SwingH :1;
193 uint8_t SwingV :3;
194 uint8_t :1;
195 // Byte 1
196 uint8_t :8; // Always seems to be 0x36.
197 // Byte 2
198 uint8_t Temp :4;
199 uint8_t Fan :4;
200 // Byte 3
201 uint8_t Mode :3;
202 uint8_t PowerToggle :1; // 0 means toggle, 1 = keep the same.
203 uint8_t :4;
204 };
205};
206
207const uint8_t kPanasonicAc32Fan = 1; // 0b001
208const uint8_t kPanasonicAc32Cool = 2; // 0b010
209const uint8_t kPanasonicAc32Dry = 3; // 0b011
210const uint8_t kPanasonicAc32Heat = 4; // 0b010
211const uint8_t kPanasonicAc32Auto = 6; // 0b110
212
213const uint8_t kPanasonicAc32FanMin = 2;
214const uint8_t kPanasonicAc32FanLow = 3;
215const uint8_t kPanasonicAc32FanMed = 4;
216const uint8_t kPanasonicAc32FanHigh = 5;
217const uint8_t kPanasonicAc32FanMax = 6;
218const uint8_t kPanasonicAc32FanAuto = 0xF;
219const uint8_t kPanasonicAc32SwingVAuto = 0x7; // 0b111
220const uint32_t kPanasonicAc32KnownGood = 0x0AF136FC;
221
224 public:
225 explicit IRPanasonicAc32(const uint16_t pin, const bool inverted = false,
226 const bool use_modulation = true);
227 void stateReset(void);
228#if SEND_PANASONIC_AC32
229 void send(const uint16_t repeat = kPanasonicAcDefaultRepeat);
234 int8_t calibrate(void) { return _irsend.calibrate(); }
235#endif // SEND_PANASONIC_AC32
236 void begin(void);
237 void setPowerToggle(const bool on);
238 bool getPowerToggle(void) const;
239 void setTemp(const uint8_t temp);
240 uint8_t getTemp(void) const;
241 void setFan(const uint8_t fan);
242 uint8_t getFan(void) const;
243 void setMode(const uint8_t mode);
244 uint8_t getMode(void) const;
245 void setRaw(const uint32_t state);
246 uint32_t getRaw(void) const;
247 void setSwingVertical(const uint8_t pos);
248 uint8_t getSwingVertical(void) const;
249 void setSwingHorizontal(const bool on);
250 bool getSwingHorizontal(void) const;
251 static uint8_t convertMode(const stdAc::opmode_t mode);
252 static uint8_t convertFan(const stdAc::fanspeed_t speed);
253 static uint8_t convertSwingV(const stdAc::swingv_t position);
254 static stdAc::opmode_t toCommonMode(const uint8_t mode);
255 static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed);
256 static stdAc::swingv_t toCommonSwingV(const uint8_t pos);
257 stdAc::state_t toCommon(const stdAc::state_t *prev = NULL) const;
258 String toString(void) const;
259#ifndef UNIT_TEST
260
261 private:
263#else // UNIT_TEST
265 IRsendTest _irsend;
267#endif // UNIT_TEST
269};
270
271#endif // IR_PANASONIC_H_
std::string String
The protocol code builds human readable output with String. On ESP-IDF that is just std::string.
Definition IRplatform.h:21
const uint16_t kPanasonicAcStateLength
Definition IRremoteESP8266.h:1369
const uint16_t kPanasonicAcDefaultRepeat
Definition IRremoteESP8266.h:1373
panasonic_ac_remote_model_t
Panasonic A/C model numbers.
Definition IRsend.h:187
Class for handling detailed Panasonic 32bit A/C messages.
Definition ir_Panasonic.h:223
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:234
PanasonicAc32Protocol _
The state in code form.
Definition ir_Panasonic.h:268
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:262
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:104
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:171
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:115
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:177
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:178
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:179
uint8_t getTemp(void)
Get the current temperature setting.
Definition ir_Panasonic.cpp:395
Class for sending all basic IR protocols.
Definition IRsend.h:256
int8_t calibrate(uint16_t hz=38000U)
Calculate & set any offsets to account for execution times during sending.
Definition IRsend.cpp:286
const uint8_t kPanasonicAc32FanHigh
Definition ir_Panasonic.h:216
const uint8_t kPanasonicAcSwingHFullRight
Definition ir_Panasonic.h:85
const uint8_t kPanasonicAcTimeSize
Definition ir_Panasonic.h:90
const uint8_t kPanasonicAcIonFilterByte
Definition ir_Panasonic.h:95
const uint8_t kPanasonicAcQuietOffset
Definition ir_Panasonic.h:69
const uint8_t kPanasonicAcTempOffset
Definition ir_Panasonic.h:64
const uint8_t kPanasonicAcSwingVAuto
Definition ir_Panasonic.h:79
const uint8_t kPanasonicAcFanDelta
Definition ir_Panasonic.h:62
const uint8_t kPanasonicAcFanLow
Definition ir_Panasonic.h:57
const uint8_t kPanasonicAcSwingVHigh
Definition ir_Panasonic.h:75
const uint8_t kPanasonicAcPowerfulOffset
Definition ir_Panasonic.h:70
const uint8_t kPanasonicAcSwingHRight
Definition ir_Panasonic.h:84
const uint8_t kPanasonicAcDry
Definition ir_Panasonic.h:52
const uint8_t kPanasonicAcSwingVLow
Definition ir_Panasonic.h:77
const uint8_t kPanasonicAc32FanMin
Definition ir_Panasonic.h:213
const uint8_t kPanasonicAc32Auto
Definition ir_Panasonic.h:211
const uint8_t kPanasonicAcFanMin
Definition ir_Panasonic.h:56
const uint8_t kPanasonicAcOffTimerOffset
Definition ir_Panasonic.h:89
const uint8_t kPanasonicAcChecksumInit
Definition ir_Panasonic.h:87
const uint16_t kPanasonicAcTolerance
Definition ir_Panasonic.h:49
const uint8_t kPanasonicAcQuietCkpOffset
Definition ir_Panasonic.h:72
const uint8_t kPanasonicAcIonFilterOffset
Definition ir_Panasonic.h:96
const uint8_t kPanasonicAcSwingVMiddle
Definition ir_Panasonic.h:76
const uint16_t kPanasonicAcTimeMax
Definition ir_Panasonic.h:92
const uint8_t kPanasonicAcOnTimerOffset
Definition ir_Panasonic.h:88
const uint8_t kPanasonicAc32SwingVAuto
Definition ir_Panasonic.h:219
const uint8_t kPanasonicAcFanModeTemp
Definition ir_Panasonic.h:68
const uint8_t kPanasonicAcMinTemp
Definition ir_Panasonic.h:66
const uint8_t kPanasonicAcFanAuto
Definition ir_Panasonic.h:61
const uint8_t kPanasonicAc32FanMax
Definition ir_Panasonic.h:217
const uint8_t kPanasonicAcSwingHLeft
Definition ir_Panasonic.h:83
const uint8_t kPanasonicAcFan
Definition ir_Panasonic.h:55
const uint8_t kPanasonicKnownGoodState[kPanasonicAcStateLength]
Definition ir_Panasonic.h:98
const uint8_t kPanasonicAc32Heat
Definition ir_Panasonic.h:210
const uint8_t kPanasonicAcSwingHAuto
Definition ir_Panasonic.h:86
const uint8_t kPanasonicAc32Dry
Definition ir_Panasonic.h:209
const uint8_t kPanasonicAcMaxTemp
Definition ir_Panasonic.h:67
const uint8_t kPanasonicAcFanMed
Definition ir_Panasonic.h:58
const uint8_t kPanasonicAcPowerOffset
Definition ir_Panasonic.h:63
const uint8_t kPanasonicAc32FanAuto
Definition ir_Panasonic.h:218
const uint8_t kPanasonicAcFanMax
Definition ir_Panasonic.h:60
const uint8_t kPanasonicAcAuto
Definition ir_Panasonic.h:51
const uint8_t kPanasonicAcPowerfulCkpOffset
Definition ir_Panasonic.h:73
const uint8_t kPanasonicAc32Fan
Definition ir_Panasonic.h:207
const uint8_t kPanasonicAcFanHigh
Definition ir_Panasonic.h:59
const uint8_t kPanasonicAcSwingHFullLeft
Definition ir_Panasonic.h:82
const uint8_t kPanasonicAcSwingVHighest
Definition ir_Panasonic.h:74
const uint8_t kPanasonicAcHeat
Definition ir_Panasonic.h:54
const uint8_t kPanasonicAcCool
Definition ir_Panasonic.h:53
const uint8_t kPanasonicAc32FanMed
Definition ir_Panasonic.h:215
const uint8_t kPanasonicAcTimeOverflowSize
Definition ir_Panasonic.h:91
const uint16_t kPanasonicAcExcess
Definition ir_Panasonic.h:47
const uint32_t kPanasonicAc32KnownGood
Cool, Auto, 16C.
Definition ir_Panasonic.h:220
const uint16_t kPanasonicAcTimeSpecial
Definition ir_Panasonic.h:93
const uint8_t kPanasonicAcSwingVLowest
Definition ir_Panasonic.h:78
const uint8_t kPanasonicAcTempSize
Definition ir_Panasonic.h:65
const uint16_t kPanasonicFreq
Definition ir_Panasonic.h:46
const uint8_t kPanasonicAc32FanLow
Definition ir_Panasonic.h:214
const uint8_t kPanasonicAcSwingHMiddle
Definition ir_Panasonic.h:81
const uint8_t kPanasonicAc32Cool
Definition ir_Panasonic.h:208
fanspeed_t
Common A/C settings for Fan Speeds.
Definition IRsend.h:67
opmode_t
Common A/C settings for A/C operating modes.
Definition IRsend.h:55
swingh_t
Common A/C settings for Horizontal Swing.
Definition IRsend.h:106
swingv_t
Common A/C settings for Vertical Swing.
Definition IRsend.h:80
Structure to hold a common A/C state.
Definition IRsend.h:120
Native representation of a Panasonic 32-bit A/C message.
Definition ir_Panasonic.h:187
uint32_t raw
The state in IR code form.
Definition ir_Panasonic.h:188
uint8_t PowerToggle
Definition ir_Panasonic.h:202
uint8_t Temp
Definition ir_Panasonic.h:198
uint8_t SwingH
Definition ir_Panasonic.h:192
uint8_t SwingV
Definition ir_Panasonic.h:193
uint8_t Mode
Definition ir_Panasonic.h:201
uint8_t Fan
Definition ir_Panasonic.h:199