15#define __STDC_LIMIT_MACROS
26#include "IRsend_test.h"
128 0xB2, 0x4D, 0x7B, 0x84, 0xE0, 0x1F};
132 0xB2, 0x4D, 0x1F, 0xE0, 0xC8, 0x37,
133 0xB2, 0x4D, 0x1F, 0xE0, 0xC8, 0x37,
134 0xD5, 0x65, 0x00, 0x00, 0x00, 0x3A};
181 explicit IRBosch144AC(
const uint16_t pin,
const bool inverted =
false,
182 const bool use_modulation =
true);
185 void send(
const uint16_t repeat = 0);
195 void setTemp(
const uint8_t temp,
const bool fahrenheit =
false);
199 void setFan(
const uint16_t speed);
200 uint16_t
getFan(
void)
const;
201 void setMode(
const uint8_t mode);
206 void setRaw(
const uint8_t new_code[],
const uint16_t kBosch144StateLength
Definition IRremoteESP8266.h:1196
Class for handling detailed Bosch144 A/C messages.
Definition ir_Bosch.h:179
bool getUseFahrenheit(void) const
Definition ir_Bosch.cpp:145
uint8_t getTempRaw(void) const
void setRaw(const uint8_t new_code[], const uint16_t length=kBosch144StateLength)
Set the internal state from a valid code for this protocol.
Definition ir_Bosch.cpp:78
static stdAc::fanspeed_t toCommonFanSpeed(const uint16_t speed)
Convert a native fan speed into its stdAc equivalent.
Definition ir_Bosch.cpp:241
IRsend _irsend
Instance of the IR send class.
Definition ir_Bosch.h:217
void setUseFahrenheit(const bool on)
Definition ir_Bosch.cpp:141
Bosch144Protocol _
The state of the IR remote in IR code form.
Definition ir_Bosch.h:223
void stateReset(void)
Reset the internal state to a fixed known good state.
Definition ir_Bosch.cpp:47
uint8_t getTemp(void) const
Definition ir_Bosch.cpp:122
void setTempRaw(const uint8_t code)
Definition ir_Bosch.cpp:97
uint16_t getFan(void) const
Definition ir_Bosch.cpp:156
bool getPower(void) const
Definition ir_Bosch.cpp:93
void setInvertBytes()
Definition ir_Bosch.cpp:298
uint8_t getMode(void) const
Definition ir_Bosch.cpp:171
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivalent.
Definition ir_Bosch.cpp:228
void setQuiet(const bool on)
Set the Quiet mode of the A/C.
Definition ir_Bosch.cpp:177
void setMode(const uint8_t mode)
Set the desired operation mode.
Definition ir_Bosch.cpp:162
uint8_t * getRaw(void)
Get a copy of the internal state as a valid code for this protocol.
Definition ir_Bosch.cpp:69
bool powerFlag
Definition ir_Bosch.h:226
void setCheckSumS3()
Definition ir_Bosch.cpp:304
void begin()
Set up hardware to be able to send a message.
Definition ir_Bosch.cpp:53
void setTemp(const uint8_t temp, const bool fahrenheit=false)
Set the temp. in degrees.
Definition ir_Bosch.cpp:107
static uint16_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition ir_Bosch.cpp:208
void send(const uint16_t repeat=0)
Send the current internal state as an IR message.
Definition ir_Bosch.cpp:58
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition ir_Bosch.h:190
void setFan(const uint16_t speed)
Set the speed of the fan.
Definition ir_Bosch.cpp:151
String toString(void) const
Convert the current internal state into a human readable string.
Definition ir_Bosch.cpp:280
bool getQuiet(void) const
Get the Quiet mode of the A/C.
Definition ir_Bosch.cpp:185
stdAc::state_t toCommon(void) const
Convert the current internal state into its stdAc::state_t equivalent.
Definition ir_Bosch.cpp:254
void setPower(const bool state)
Definition ir_Bosch.cpp:89
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition ir_Bosch.cpp:190
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 uint16_t kBoschOneSpace
Definition ir_Bosch.h:33
const uint8_t kBosch144FahrenheitMin
Definition ir_Bosch.h:91
const uint8_t kBosch144Fan
Definition ir_Bosch.h:55
const uint16_t kBoschZeroSpace
Definition ir_Bosch.h:34
const uint16_t kBosch144BytesPerSection
Definition ir_Bosch.h:38
const uint16_t kBoschFreq
Definition ir_Bosch.h:36
const uint8_t kBosch144Off[]
Definition ir_Bosch.h:127
const uint8_t kBosch144CelsiusMin
Definition ir_Bosch.h:68
const uint8_t kBosch144Dry
Definition ir_Bosch.h:52
const uint16_t kBoschFooterSpace
Definition ir_Bosch.h:35
const uint8_t kBosch144CelsiusMap[]
Definition ir_Bosch.h:70
const uint16_t kBosch144Fan100
Definition ir_Bosch.h:63
const uint16_t kBosch144Fan80
Definition ir_Bosch.h:62
const uint16_t kBosch144Fan40
Definition ir_Bosch.h:60
const uint16_t kBosch144Fan60
Definition ir_Bosch.h:61
const uint8_t kBosch144CelsiusMax
Definition ir_Bosch.h:69
const uint8_t kBosch144Heat
Definition ir_Bosch.h:54
const uint16_t kBoschHdrMark
Definition ir_Bosch.h:30
const uint16_t kBosch144FanAuto0
Definition ir_Bosch.h:65
const uint16_t kBosch144Fan20
Definition ir_Bosch.h:59
const uint16_t kBosch144NrOfSections
Definition ir_Bosch.h:37
const uint16_t kBoschHdrSpace
Definition ir_Bosch.h:32
const uint8_t kBosch144FahrenheitMap[]
Definition ir_Bosch.h:93
const uint8_t kBosch144DefaultState[kBosch144StateLength]
Definition ir_Bosch.h:131
const uint8_t kBosch144FahrenheitMax
Definition ir_Bosch.h:92
const uint8_t kBosch144Cool
Definition ir_Bosch.h:51
const uint16_t kBoschBitMark
Definition ir_Bosch.h:31
const uint8_t kBosch144Auto
Definition ir_Bosch.h:53
const uint16_t kBosch144FanAuto
Definition ir_Bosch.h:64
String addBoolToString(const bool value, const String label, const bool precomma=true)
Create a String with a colon separated flag suitable for Humans. e.g. "Power: On".
Definition IRutils.cpp:554
String addFanToString(const uint8_t speed, const uint8_t high, const uint8_t low, const uint8_t automatic, const uint8_t quiet, const uint8_t medium, const uint8_t maximum=0xFF, const uint8_t medium_high=0xFF)
Create a String of human output for the given fan speed. e.g. "Fan: 0 (Auto)".
Definition IRutils.cpp:843
String addTempToString(const uint16_t degrees, const bool celsius=true, const bool precomma=true, const bool isSensorTemp=false)
Create a String of human output for a given temperature. e.g. "Temp: 25C".
Definition IRutils.cpp:743
String addModeToString(const uint8_t mode, const uint8_t automatic, const uint8_t cool, const uint8_t heat, const uint8_t dry, const uint8_t fan)
Create a String of human output for the given operating mode. e.g. "Mode: 1 (Cool)".
Definition IRutils.cpp:781
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
Structure to hold a common A/C state.
Definition IRsend.h:120
Definition ir_Bosch.h:136
uint8_t TempS2
Definition ir_Bosch.h:156
uint8_t FanS1
Definition ir_Bosch.h:142
uint8_t FanS3
Definition ir_Bosch.h:161
uint8_t TempS4
Definition ir_Bosch.h:164
uint8_t ModeS3
Definition ir_Bosch.h:160
uint8_t ChecksumS3
Definition ir_Bosch.h:172
uint8_t InnvertS2_1
Definition ir_Bosch.h:150
uint8_t InnvertS1_1
Definition ir_Bosch.h:140
uint8_t FanS2
Definition ir_Bosch.h:152
uint8_t InnvertS1_3
Definition ir_Bosch.h:147
uint8_t ModeS1
Definition ir_Bosch.h:145
uint8_t Quiet
Definition ir_Bosch.h:166
uint8_t TempS1
Definition ir_Bosch.h:146
uint8_t InnvertS2_3
Definition ir_Bosch.h:157
uint8_t InnvertS1_2
Definition ir_Bosch.h:143
uint8_t TempS3
Definition ir_Bosch.h:169
uint8_t ModeS2
Definition ir_Bosch.h:155
uint8_t InnvertS2_2
Definition ir_Bosch.h:153
uint8_t raw[kBosch144StateLength]
The state in IR code form.
Definition ir_Bosch.h:137
uint8_t UseFahrenheit
Definition ir_Bosch.h:167