IRremoteESP8266
ir_Sharp.h
Go to the documentation of this file.
1 // Copyright 2019 crankyoldgit
2 
14 
15 // Supports:
16 // Brand: Sharp, Model: LC-52D62U TV
17 // Brand: Sharp, Model: AY-ZP40KR A/C (A907)
18 // Brand: Sharp, Model: AH-AxSAY A/C (A907)
19 // Brand: Sharp, Model: CRMC-A907 JBEZ remote (A907)
20 // Brand: Sharp, Model: CRMC-A950 JBEZ (A907)
21 // Brand: Sharp, Model: AH-PR13-GL A/C (A903)
22 // Brand: Sharp, Model: CRMC-A903JBEZ remote (A903)
23 // Brand: Sharp, Model: AH-XP10NRY A/C (A903)
24 // Brand: Sharp, Model: CRMC-820 JBEZ remote (A903)
25 // Brand: Sharp, Model: CRMC-A705 JBEZ remote (A705)
26 // Brand: Sharp, Model: AH-A12REVP-1 A/C (A903)
27 // Brand: Sharp, Model: CRMC-A863 JBEZ remote (A903)
28 
29 #ifndef IR_SHARP_H_
30 #define IR_SHARP_H_
31 
32 #ifndef UNIT_TEST
33 #include <Arduino.h>
34 #endif
35 #include "IRrecv.h"
36 #include "IRremoteESP8266.h"
37 #include "IRsend.h"
38 #ifdef UNIT_TEST
39 #include "IRsend_test.h"
40 #endif
41 #include "IRutils.h"
42 
46  struct {
47  // Byte 0~3
48  uint8_t pad[4];
49  // Byte 4
50  uint8_t Temp :4;
51  uint8_t Model :1;
52  uint8_t :3;
53  // Byte 5
54  uint8_t :4;
55  uint8_t PowerSpecial :4;
56  // Byte 6
57  uint8_t Mode :2;
58  uint8_t :1;
59  uint8_t Clean :1;
60  uint8_t Fan :3;
61  uint8_t :1;
62  // Byte 7
63  uint8_t TimerHours :4;
64  uint8_t :2;
65  uint8_t TimerType :1;
66  uint8_t TimerEnabled:1;
67  // Byte 8
68  uint8_t Swing :3;
69  uint8_t :5;
70  // Byte 9
71  uint8_t :8;
72  // Byte 10
73  uint8_t Special :8;
74  // Byte 11
75  uint8_t :2;
76  uint8_t Ion :1;
77  uint8_t :1;
78  uint8_t Model2 :1;
79  uint8_t :3;
80  // Byte 12
81  uint8_t :4;
82  uint8_t Sum :4;
83  };
84 };
85 
86 // Constants
87 const uint16_t kSharpAcHdrMark = 3800;
88 const uint16_t kSharpAcHdrSpace = 1900;
89 const uint16_t kSharpAcBitMark = 470;
90 const uint16_t kSharpAcZeroSpace = 500;
91 const uint16_t kSharpAcOneSpace = 1400;
93 
94 const uint8_t kSharpAcByteTemp = 4;
95 const uint8_t kSharpAcMinTemp = 15; // Celsius
96 const uint8_t kSharpAcMaxTemp = 30; // Celsius
97 
98 const uint8_t kSharpAcPowerUnknown = 0; // 0b0000
99 const uint8_t kSharpAcPowerOnFromOff = 1; // 0b0001
100 const uint8_t kSharpAcPowerOff = 2; // 0b0010
101 const uint8_t kSharpAcPowerOn = 3; // 0b0011 (Normal)
102 const uint8_t kSharpAcPowerSetSpecialOn = 6; // 0b0110
103 const uint8_t kSharpAcPowerSetSpecialOff = 7; // 0b0111
104 const uint8_t kSharpAcPowerTimerSetting = 8; // 0b1000
105 
106 const uint8_t kSharpAcAuto = 0b00; // A907 only
107 const uint8_t kSharpAcFan = 0b00; // A705 only
108 const uint8_t kSharpAcDry = 0b11;
109 const uint8_t kSharpAcCool = 0b10;
110 const uint8_t kSharpAcHeat = 0b01; // A907 only
111 const uint8_t kSharpAcFanAuto = 0b010; // 2
112 const uint8_t kSharpAcFanMin = 0b100; // 4 (FAN1)
113 const uint8_t kSharpAcFanMed = 0b011; // 3 (FAN2)
114 const uint8_t kSharpAcFanA705Low = 0b011; // 3 (A903 too)
115 const uint8_t kSharpAcFanHigh = 0b101; // 5 (FAN3)
116 const uint8_t kSharpAcFanA705Med = 0b101; // 5 (A903 too)
117 const uint8_t kSharpAcFanMax = 0b111; // 7 (FAN4)
118 
119 const uint8_t kSharpAcTimerIncrement = 30; // Mins
120 const uint8_t kSharpAcTimerHoursOff = 0b0000;
121 const uint8_t kSharpAcTimerHoursMax = 0b1100; // 12
122 const uint8_t kSharpAcOffTimerType = 0b0;
123 const uint8_t kSharpAcOnTimerType = 0b1;
124 
125 // Ref: https://github.com/crankyoldgit/IRremoteESP8266/discussions/1590#discussioncomment-1260213
126 const uint8_t kSharpAcSwingVIgnore = 0b000; // Don't change the swing setting.
127 const uint8_t kSharpAcSwingVHigh = 0b001; // 0° down. Similar to Cool Coanda.
128 const uint8_t kSharpAcSwingVOff = 0b010; // Stop & Go to last fixed pos.
129 const uint8_t kSharpAcSwingVMid = 0b011; // 30° down
130 const uint8_t kSharpAcSwingVLow = 0b100; // 45° down
131 const uint8_t kSharpAcSwingVLast = 0b101; // Same as kSharpAcSwingVOff.
132 // Toggles between last fixed pos & either 75° down (Heat) or 0° down (Cool)
133 // i.e. alternate between last pos <-> 75° down if in Heat mode, AND
134 // alternate between last pos <-> 0° down if in Cool mode.
135 // Note: `setSwingV(kSharpAcSwingVLowest)` will only allow the Lowest setting in
136 // Heat mode, it will default to `kSharpAcSwingVLow` otherwise.
137 // If you want to set this value in other modes e.g. Cool, you must
138 // use `setSwingV`s optional `force` parameter.
139 const uint8_t kSharpAcSwingVLowest = 0b110;
141 const uint8_t kSharpAcSwingVToggle = 0b111; // Toggle Constant swinging on/off.
142 
143 const uint8_t kSharpAcSpecialPower = 0x00;
144 const uint8_t kSharpAcSpecialTurbo = 0x01;
145 const uint8_t kSharpAcSpecialTempEcono = 0x04;
146 const uint8_t kSharpAcSpecialFan = 0x05;
147 const uint8_t kSharpAcSpecialSwing = 0x06;
148 const uint8_t kSharpAcSpecialTimer = 0xC0;
149 const uint8_t kSharpAcSpecialTimerHalfHour = 0xDE;
150 
151 // Classes
153 class IRSharpAc {
154  public:
155  explicit IRSharpAc(const uint16_t pin, const bool inverted = false,
156  const bool use_modulation = true);
157 #if SEND_SHARP_AC
158  void send(const uint16_t repeat = kSharpAcDefaultRepeat);
163  int8_t calibrate(void) { return _irsend.calibrate(); }
164 #endif // SEND_SHARP_AC
165  void begin(void);
166  void setModel(const sharp_ac_remote_model_t model);
167  sharp_ac_remote_model_t getModel(const bool raw = false) const;
168  void on(void);
169  void off(void);
170  void setPower(const bool on, const bool prev_on = true);
171  bool getPower(void) const;
172  bool isPowerSpecial(void) const;
173  void setTemp(const uint8_t temp, const bool save = true);
174  uint8_t getTemp(void) const;
175  void setFan(const uint8_t fan, const bool save = true);
176  uint8_t getFan(void) const;
177  void setMode(const uint8_t mode, const bool save = true);
178  uint8_t getMode(void) const;
179  void setSpecial(const uint8_t mode);
180  uint8_t getSpecial(void) const;
181  bool getTurbo(void) const;
182  void setTurbo(const bool on);
183  bool getSwingToggle(void) const;
184  void setSwingToggle(const bool on);
185  uint8_t getSwingV(void) const;
186  void setSwingV(const uint8_t position, const bool force = false);
187  bool getIon(void) const;
188  void setIon(const bool on);
189  bool getEconoToggle(void) const;
190  void setEconoToggle(const bool on);
191  bool getLightToggle(void) const;
192  void setLightToggle(const bool on);
193  uint16_t getTimerTime(void) const;
194  bool getTimerEnabled(void) const;
195  bool getTimerType(void) const;
196  void setTimer(bool enable, bool timer_type, uint16_t mins);
197  bool getClean(void) const;
198  void setClean(const bool on);
199  uint8_t* getRaw(void);
200  void setRaw(const uint8_t new_code[],
201  const uint16_t length = kSharpAcStateLength);
202  static bool validChecksum(uint8_t state[],
203  const uint16_t length = kSharpAcStateLength);
204  static uint8_t convertMode(const stdAc::opmode_t mode);
205  static uint8_t convertFan(const stdAc::fanspeed_t speed,
206  const sharp_ac_remote_model_t model =
208  static uint8_t convertSwingV(const stdAc::swingv_t position);
209  stdAc::opmode_t toCommonMode(const uint8_t mode) const;
210  stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed) const;
212  const uint8_t pos,
213  const stdAc::opmode_t mode = stdAc::opmode_t::kHeat) const;
214  stdAc::state_t toCommon(const stdAc::state_t *prev = NULL) const;
215  String toString(void) const;
216 #ifndef UNIT_TEST
217 
218  private:
220 #else // UNIT_TEST
221  IRsendTest _irsend;
223 #endif // UNIT_TEST
226  uint8_t _temp;
227  uint8_t _mode;
228  uint8_t _fan;
230  void stateReset(void);
231  void checksum(void);
232  static uint8_t calcChecksum(uint8_t state[],
233  const uint16_t length = kSharpAcStateLength);
234  void setPowerSpecial(const uint8_t value);
235  uint8_t getPowerSpecial(void) const;
236  void clearPowerSpecial(void);
237  bool _getEconoToggle(void) const;
238  void _setEconoToggle(const bool on);
239 };
240 
241 #endif // IR_SHARP_H_
IRSharpAc::getEconoToggle
bool getEconoToggle(void) const
Get the Economical mode toggle setting of the A/C.
Definition: ir_Sharp.cpp:653
kSharpAcSwingVLowest
const uint8_t kSharpAcSwingVLowest
Definition: ir_Sharp.h:139
kSharpAcHeat
const uint8_t kSharpAcHeat
Definition: ir_Sharp.h:110
kSharpAcSpecialTempEcono
const uint8_t kSharpAcSpecialTempEcono
Definition: ir_Sharp.h:145
IRSharpAc::calibrate
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition: ir_Sharp.h:163
IRSharpAc::getLightToggle
bool getLightToggle(void) const
Get the Light toggle setting of the A/C.
Definition: ir_Sharp.cpp:668
IRSharpAc::setTimer
void setTimer(bool enable, bool timer_type, uint16_t mins)
Set or cancel the timer function.
Definition: ir_Sharp.cpp:693
IRSharpAc::toCommon
stdAc::state_t toCommon(const stdAc::state_t *prev=NULL) const
Convert the current internal state into its stdAc::state_t equivalent.
Definition: ir_Sharp.cpp:839
IRSharpAc::setTemp
void setTemp(const uint8_t temp, const bool save=true)
Set the temperature.
Definition: ir_Sharp.cpp:428
kSharpAcPowerOnFromOff
const uint8_t kSharpAcPowerOnFromOff
Definition: ir_Sharp.h:99
IRSharpAc::getSwingV
uint8_t getSwingV(void) const
Get the Vertical Swing setting of the A/C.
Definition: ir_Sharp.cpp:551
stdAc::swingv_t
swingv_t
Common A/C settings for Vertical Swing.
Definition: IRsend.h:74
IRSharpAc::off
void off(void)
Set the requested power state of the A/C to off.
Definition: ir_Sharp.cpp:380
kSharpAcOneSpace
const uint16_t kSharpAcOneSpace
Definition: ir_Sharp.h:91
stdAc::fanspeed_t
fanspeed_t
Common A/C settings for Fan Speeds.
Definition: IRsend.h:61
IRSharpAc::_temp
uint8_t _temp
Saved copy of the desired temp.
Definition: ir_Sharp.h:226
kDefaultMessageGap
const uint32_t kDefaultMessageGap
Definition: IRsend.h:41
IRSharpAc::calcChecksum
static uint8_t calcChecksum(uint8_t state[], const uint16_t length=kSharpAcStateLength)
Calculate the checksum for a given state.
Definition: ir_Sharp.cpp:264
kSharpAcFanA705Low
const uint8_t kSharpAcFanA705Low
Definition: ir_Sharp.h:114
IRSharpAc::toCommonFanSpeed
stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed) const
Convert a native fan speed into its stdAc equivalent.
Definition: ir_Sharp.cpp:795
kSharpAcSpecialTimer
const uint8_t kSharpAcSpecialTimer
Definition: ir_Sharp.h:148
kSharpAcOnTimerType
const uint8_t kSharpAcOnTimerType
Definition: ir_Sharp.h:123
kSharpAcCool
const uint8_t kSharpAcCool
Definition: ir_Sharp.h:109
IRSharpAc::setSwingV
void setSwingV(const uint8_t position, const bool force=false)
Set the Vertical Swing setting of the A/C.
Definition: ir_Sharp.cpp:561
kSharpAcSwingVToggle
const uint8_t kSharpAcSwingVToggle
Definition: ir_Sharp.h:141
SharpProtocol::Model2
uint8_t Model2
Definition: ir_Sharp.h:78
IRsend.h
kSharpAcSpecialFan
const uint8_t kSharpAcSpecialFan
Definition: ir_Sharp.h:146
kSharpAcSpecialSwing
const uint8_t kSharpAcSpecialSwing
Definition: ir_Sharp.h:147
IRSharpAc::getIon
bool getIon(void) const
Get the Ion (Filter) setting of the A/C.
Definition: ir_Sharp.cpp:615
IRSharpAc::toCommonSwingV
stdAc::swingv_t toCommonSwingV(const uint8_t pos, const stdAc::opmode_t mode=stdAc::opmode_t::kHeat) const
Convert a native vertical swing postion to it's common equivalent.
Definition: ir_Sharp.cpp:819
kSharpAcOffTimerType
const uint8_t kSharpAcOffTimerType
Definition: ir_Sharp.h:122
IRsend
Class for sending all basic IR protocols.
Definition: IRsend.h:237
kSharpAcSwingVOff
const uint8_t kSharpAcSwingVOff
Definition: ir_Sharp.h:128
kSharpAcMaxTemp
const uint8_t kSharpAcMaxTemp
Definition: ir_Sharp.h:96
IRSharpAc::setFan
void setFan(const uint8_t fan, const bool save=true)
Set the speed of the fan.
Definition: ir_Sharp.cpp:507
IRsend::calibrate
int8_t calibrate(uint16_t hz=38000U)
Calculate & set any offsets to account for execution times during sending.
Definition: IRsend.cpp:207
IRSharpAc::_model
sharp_ac_remote_model_t _model
Saved copy of the model.
Definition: ir_Sharp.h:229
IRSharpAc::IRSharpAc
IRSharpAc(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: ir_Sharp.cpp:245
kSharpAcZeroSpace
const uint16_t kSharpAcZeroSpace
Definition: ir_Sharp.h:90
IRSharpAc::setPower
void setPower(const bool on, const bool prev_on=true)
Change the power setting, including the previous power state.
Definition: ir_Sharp.cpp:385
kSharpAcDry
const uint8_t kSharpAcDry
Definition: ir_Sharp.h:108
String
std::string String
Definition: IRremoteESP8266.h:1521
kSharpAcTimerHoursMax
const uint8_t kSharpAcTimerHoursMax
Definition: ir_Sharp.h:121
kSharpAcPowerOff
const uint8_t kSharpAcPowerOff
Definition: ir_Sharp.h:100
IRSharpAc::getFan
uint8_t getFan(void) const
Get the current fan speed setting.
Definition: ir_Sharp.cpp:527
SharpProtocol
Native representation of a Sharp A/C message.
Definition: ir_Sharp.h:44
kSharpAcTimerIncrement
const uint8_t kSharpAcTimerIncrement
Definition: ir_Sharp.h:119
IRremoteESP8266.h
stdAc::opmode_t::kHeat
@ kHeat
kSharpAcPowerSetSpecialOn
const uint8_t kSharpAcPowerSetSpecialOn
Definition: ir_Sharp.h:102
IRSharpAc::convertMode
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition: ir_Sharp.cpp:736
IRSharpAc::setTurbo
void setTurbo(const bool on)
Set the Turbo setting of the A/C.
Definition: ir_Sharp.cpp:543
IRSharpAc::setModel
void setModel(const sharp_ac_remote_model_t model)
Set the model of the A/C to emulate.
Definition: ir_Sharp.cpp:314
IRSharpAc::validChecksum
static bool validChecksum(uint8_t state[], const uint16_t length=kSharpAcStateLength)
Verify the checksum is valid for a given state.
Definition: ir_Sharp.cpp:275
kSharpAcSpecialTimerHalfHour
const uint8_t kSharpAcSpecialTimerHalfHour
Definition: ir_Sharp.h:149
kSharpAcSwingVHigh
const uint8_t kSharpAcSwingVHigh
Definition: ir_Sharp.h:127
kSharpAcTimerHoursOff
const uint8_t kSharpAcTimerHoursOff
Definition: ir_Sharp.h:120
IRSharpAc::getTurbo
bool getTurbo(void) const
Get the Turbo setting of the A/C.
Definition: ir_Sharp.cpp:533
kSharpAcSwingVLast
const uint8_t kSharpAcSwingVLast
Definition: ir_Sharp.h:131
SharpProtocol::Model
uint8_t Model
Definition: ir_Sharp.h:51
kSharpAcSwingVLow
const uint8_t kSharpAcSwingVLow
Definition: ir_Sharp.h:130
SharpProtocol::Clean
uint8_t Clean
Definition: ir_Sharp.h:59
SharpProtocol::TimerType
uint8_t TimerType
Definition: ir_Sharp.h:65
kSharpAcSwingVMid
const uint8_t kSharpAcSwingVMid
Definition: ir_Sharp.h:129
IRSharpAc::setPowerSpecial
void setPowerSpecial(const uint8_t value)
Set the value of the Power Special setting without any checks.
Definition: ir_Sharp.cpp:349
kSharpAcFanAuto
const uint8_t kSharpAcFanAuto
Definition: ir_Sharp.h:111
SharpProtocol::Ion
uint8_t Ion
Definition: ir_Sharp.h:76
IRSharpAc::send
void send(const uint16_t repeat=kSharpAcDefaultRepeat)
Send the current internal state as an IR message.
Definition: ir_Sharp.cpp:255
IRSharpAc::_irsend
IRsend _irsend
Instance of the IR send class.
Definition: ir_Sharp.h:219
IRSharpAc::convertSwingV
static uint8_t convertSwingV(const stdAc::swingv_t position)
Convert a standard A/C vertical swing into its native setting.
Definition: ir_Sharp.cpp:587
IRSharpAc::checksum
void checksum(void)
Calculate and set the checksum values for the internal state.
Definition: ir_Sharp.cpp:281
kSharpAcSwingVIgnore
const uint8_t kSharpAcSwingVIgnore
Definition: ir_Sharp.h:126
kSharpAcGap
const uint32_t kSharpAcGap
Definition: ir_Sharp.h:92
IRSharpAc::isPowerSpecial
bool isPowerSpecial(void) const
Is one of the special power states in use?
Definition: ir_Sharp.cpp:367
IRSharpAc::convertFan
static uint8_t convertFan(const stdAc::fanspeed_t speed, const sharp_ac_remote_model_t model=sharp_ac_remote_model_t::A907)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition: ir_Sharp.cpp:750
IRSharpAc::getRaw
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition: ir_Sharp.cpp:299
IRSharpAc::_getEconoToggle
bool _getEconoToggle(void) const
Get the Economical mode toggle setting of the A/C.
Definition: ir_Sharp.cpp:628
IRSharpAc::getTemp
uint8_t getTemp(void) const
Get the current temperature setting.
Definition: ir_Sharp.cpp:454
kSharpAcPowerUnknown
const uint8_t kSharpAcPowerUnknown
Definition: ir_Sharp.h:98
IRrecv.h
kSharpAcPowerOn
const uint8_t kSharpAcPowerOn
Definition: ir_Sharp.h:101
IRSharpAc::getPowerSpecial
uint8_t getPowerSpecial(void) const
Get the value of the Power Special setting.
Definition: ir_Sharp.cpp:355
IRSharpAc::_setEconoToggle
void _setEconoToggle(const bool on)
Set the Economical mode toggle setting of the A/C.
Definition: ir_Sharp.cpp:637
IRSharpAc::setSpecial
void setSpecial(const uint8_t mode)
Set the value of the Special (button/command?) setting.
Definition: ir_Sharp.cpp:405
IRSharpAc::begin
void begin(void)
Set up hardware to be able to send a message.
Definition: ir_Sharp.cpp:250
kSharpAcStateLength
const uint16_t kSharpAcStateLength
Definition: IRremoteESP8266.h:1377
kSharpAcFanMax
const uint8_t kSharpAcFanMax
Definition: ir_Sharp.h:117
IRutils.h
IRSharpAc::_mode
uint8_t _mode
Saved copy of the desired mode.
Definition: ir_Sharp.h:227
SharpProtocol::PowerSpecial
uint8_t PowerSpecial
Definition: ir_Sharp.h:55
IRSharpAc
Class for handling detailed Sharp A/C messages.
Definition: ir_Sharp.h:153
SharpProtocol::Sum
uint8_t Sum
Definition: ir_Sharp.h:82
IRSharpAc::getClean
bool getClean(void) const
Get the Clean setting of the A/C.
Definition: ir_Sharp.cpp:712
SharpProtocol::TimerEnabled
uint8_t TimerEnabled
Definition: ir_Sharp.h:66
SharpProtocol::Swing
uint8_t Swing
Definition: ir_Sharp.h:68
SharpProtocol::Special
uint8_t Special
Definition: ir_Sharp.h:73
kSharpAcPowerTimerSetting
const uint8_t kSharpAcPowerTimerSetting
Definition: ir_Sharp.h:104
kSharpAcFanHigh
const uint8_t kSharpAcFanHigh
Definition: ir_Sharp.h:115
kSharpAcFanMin
const uint8_t kSharpAcFanMin
Definition: ir_Sharp.h:112
IRSharpAc::setClean
void setClean(const bool on)
Set the Economical mode toggle setting of the A/C.
Definition: ir_Sharp.cpp:719
IRSharpAc::toCommonMode
stdAc::opmode_t toCommonMode(const uint8_t mode) const
Convert a native mode into its stdAc equivalent.
Definition: ir_Sharp.cpp:777
IRSharpAc::getMode
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition: ir_Sharp.cpp:460
kSharpAcFan
const uint8_t kSharpAcFan
Definition: ir_Sharp.h:107
kSharpAcFanMed
const uint8_t kSharpAcFanMed
Definition: ir_Sharp.h:113
kSharpAcDefaultRepeat
const uint16_t kSharpAcDefaultRepeat
Definition: IRremoteESP8266.h:1379
IRSharpAc::getModel
sharp_ac_remote_model_t getModel(const bool raw=false) const
Get/Detect the model of the A/C.
Definition: ir_Sharp.cpp:333
IRSharpAc::getSpecial
uint8_t getSpecial(void) const
Get the value of the Special (button/command?) setting.
Definition: ir_Sharp.cpp:423
IRSharpAc::getTimerEnabled
bool getTimerEnabled(void) const
Is the Timer enabled?
Definition: ir_Sharp.cpp:682
IRSharpAc::getTimerType
bool getTimerType(void) const
Get the current timer type.
Definition: ir_Sharp.cpp:686
kSharpAcFanA705Med
const uint8_t kSharpAcFanA705Med
Definition: ir_Sharp.h:116
IRSharpAc::_fan
uint8_t _fan
Saved copy of the desired fan speed.
Definition: ir_Sharp.h:228
IRSharpAc::setEconoToggle
void setEconoToggle(const bool on)
Set the Economical mode toggle setting of the A/C.
Definition: ir_Sharp.cpp:646
SharpProtocol::Mode
uint8_t Mode
Definition: ir_Sharp.h:57
SharpProtocol::TimerHours
uint8_t TimerHours
Definition: ir_Sharp.h:63
IRSharpAc::getTimerTime
uint16_t getTimerTime(void) const
Get how long the timer is set for, in minutes.
Definition: ir_Sharp.cpp:674
kSharpAcHdrSpace
const uint16_t kSharpAcHdrSpace
Definition: ir_Sharp.h:88
kSharpAcAuto
const uint8_t kSharpAcAuto
Definition: ir_Sharp.h:106
IRSharpAc::_
SharpProtocol _
Definition: ir_Sharp.h:225
kSharpAcSwingVCoanda
const uint8_t kSharpAcSwingVCoanda
Definition: ir_Sharp.h:140
IRSharpAc::setLightToggle
void setLightToggle(const bool on)
Set the Light mode toggle setting of the A/C.
Definition: ir_Sharp.cpp:661
IRSharpAc::setSwingToggle
void setSwingToggle(const bool on)
Set the (vertical) Swing Toggle setting of the A/C.
Definition: ir_Sharp.cpp:608
SharpProtocol::Fan
uint8_t Fan
Definition: ir_Sharp.h:60
kSharpAcPowerSetSpecialOff
const uint8_t kSharpAcPowerSetSpecialOff
Definition: ir_Sharp.h:103
IRSharpAc::on
void on(void)
Set the requested power state of the A/C to on.
Definition: ir_Sharp.cpp:377
IRSharpAc::getSwingToggle
bool getSwingToggle(void) const
Get the (vertical) Swing Toggle setting of the A/C.
Definition: ir_Sharp.cpp:602
IRSharpAc::setMode
void setMode(const uint8_t mode, const bool save=true)
Set the operating mode of the A/C.
Definition: ir_Sharp.cpp:467
IRSharpAc::getPower
bool getPower(void) const
Get the value of the current power setting.
Definition: ir_Sharp.cpp:395
A907
@ A907
Definition: IRsend.h:193
kSharpAcBitMark
const uint16_t kSharpAcBitMark
Definition: ir_Sharp.h:89
SharpProtocol::raw
uint8_t raw[kSharpAcStateLength]
State of the remote in IR code form.
Definition: ir_Sharp.h:45
kSharpAcMinTemp
const uint8_t kSharpAcMinTemp
Definition: ir_Sharp.h:95
SharpProtocol::Temp
uint8_t Temp
Definition: ir_Sharp.h:50
kSharpAcSpecialTurbo
const uint8_t kSharpAcSpecialTurbo
Definition: ir_Sharp.h:144
IRSharpAc::stateReset
void stateReset(void)
Reset the state of the remote to a known good state/sequence.
Definition: ir_Sharp.cpp:286
kSharpAcByteTemp
const uint8_t kSharpAcByteTemp
Definition: ir_Sharp.h:94
IRSharpAc::setIon
void setIon(const bool on)
Set the Ion (Filter) setting of the A/C.
Definition: ir_Sharp.cpp:619
stdAc::state_t
Structure to hold a common A/C state.
Definition: IRsend.h:114
IRSharpAc::clearPowerSpecial
void clearPowerSpecial(void)
Clear the "special"/non-normal bits in the power section. e.g. for normal/common command modes.
Definition: ir_Sharp.cpp:361
kSharpAcHdrMark
const uint16_t kSharpAcHdrMark
Definition: ir_Sharp.h:87
IRSharpAc::setRaw
void setRaw(const uint8_t new_code[], const uint16_t length=kSharpAcStateLength)
Set the internal state from a valid code for this protocol.
Definition: ir_Sharp.cpp:307
kSharpAcSpecialPower
const uint8_t kSharpAcSpecialPower
Definition: ir_Sharp.h:143
SharpProtocol::pad
uint8_t pad[4]
Definition: ir_Sharp.h:48
sharp_ac_remote_model_t
sharp_ac_remote_model_t
Sharp A/C model numbers.
Definition: IRsend.h:192
IRSharpAc::toString
String toString(void) const
Convert the current internal state into a human readable string.
Definition: ir_Sharp.cpp:868
stdAc::opmode_t
opmode_t
Common A/C settings for A/C operating modes.
Definition: IRsend.h:49