IRremoteESP8266
Public Member Functions | Static Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
IRHaierAC Class Reference

Class for handling detailed Haier A/C messages. More...

#include <ir_Haier.h>

Collaboration diagram for IRHaierAC:
Collaboration graph
[legend]

Public Member Functions

 IRHaierAC (const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
 Class constructor. More...
 
void send (const uint16_t repeat=kHaierAcDefaultRepeat)
 Send the current internal state as an IR message. More...
 
int8_t calibrate (void)
 Run the calibration to calculate uSec timing offsets for this platform. More...
 
void begin (void)
 Set up hardware to be able to send a message. More...
 
void setCommand (const uint8_t command)
 Set the Command/Button setting of the A/C. More...
 
uint8_t getCommand (void)
 Get the Command/Button setting of the A/C. More...
 
void setTemp (const uint8_t temp)
 Set the temperature. More...
 
uint8_t getTemp (void)
 Get the current temperature setting. More...
 
void setFan (const uint8_t speed)
 Set the speed of the fan. More...
 
uint8_t getFan (void)
 Get the current fan speed setting. More...
 
uint8_t getMode (void)
 Get the operating mode setting of the A/C. More...
 
void setMode (const uint8_t mode)
 Set the operating mode of the A/C. More...
 
bool getSleep (void)
 Get the Sleep setting of the A/C. More...
 
void setSleep (const bool on)
 Set the Sleep setting of the A/C. More...
 
bool getHealth (void)
 Get the Health (filter) setting of the A/C. More...
 
void setHealth (const bool on)
 Set the Health (filter) setting of the A/C. More...
 
int16_t getOnTimer (void)
 Get the On Timer value/setting of the A/C. More...
 
void setOnTimer (const uint16_t mins)
 Set & enable the On Timer. More...
 
int16_t getOffTimer (void)
 Get the Off Timer value/setting of the A/C. More...
 
void setOffTimer (const uint16_t mins)
 Set & enable the Off Timer. More...
 
void cancelTimers (void)
 Cancel/disable the On & Off timers. More...
 
uint16_t getCurrTime (void)
 Get the clock value of the A/C. More...
 
void setCurrTime (const uint16_t mins)
 Set the clock value for the A/C. More...
 
uint8_t getSwing (void)
 Get the Vertical Swing position setting of the A/C. More...
 
void setSwing (const uint8_t state)
 Set the Vertical Swing mode of the A/C. More...
 
uint8_t * getRaw (void)
 Get a PTR to the internal state/code for this protocol. More...
 
void setRaw (const uint8_t new_code[])
 Set the internal state from a valid code for this protocol. More...
 
uint8_t convertMode (const stdAc::opmode_t mode)
 Convert a stdAc::opmode_t enum into its native mode. More...
 
uint8_t convertFan (const stdAc::fanspeed_t speed)
 Convert a stdAc::fanspeed_t enum into it's native speed. More...
 
uint8_t convertSwingV (const stdAc::swingv_t position)
 Convert a stdAc::swingv_t enum into it's native setting. More...
 
stdAc::state_t toCommon (void)
 Convert the current internal state into its stdAc::state_t equivilant. More...
 
String toString (void)
 Convert the current internal state into a human readable string. More...
 

Static Public Member Functions

static bool validChecksum (uint8_t state[], const uint16_t length=kHaierACStateLength)
 Verify the checksum is valid for a given state. More...
 
static stdAc::opmode_t toCommonMode (const uint8_t mode)
 Convert a native mode into its stdAc equivilant. More...
 
static stdAc::fanspeed_t toCommonFanSpeed (const uint8_t speed)
 Convert a native fan speed into its stdAc equivilant. More...
 
static stdAc::swingv_t toCommonSwingV (const uint8_t pos)
 Convert a stdAc::swingv_t enum into it's native setting. More...
 

Private Member Functions

void stateReset (void)
 Reset the internal state to a fixed known good state. More...
 
void checksum (void)
 Calculate and set the checksum values for the internal state. More...
 

Static Private Member Functions

static uint16_t getTime (const uint8_t ptr[])
 Get the Time value at the given pointer. More...
 
static void setTime (uint8_t ptr[], const uint16_t nr_mins)
 Set the Time value at the given pointer. More...
 

Private Attributes

IRsend _irsend
 Instance of the IR send class. More...
 
uint8_t remote_state [kHaierACStateLength]
 The state in native code form. More...
 

Detailed Description

Class for handling detailed Haier A/C messages.

Constructor & Destructor Documentation

◆ IRHaierAC()

IRHaierAC::IRHaierAC ( const uint16_t  pin,
const bool  inverted = false,
const bool  use_modulation = true 
)
explicit

Class constructor.

Parameters
[in]pinGPIO to be used when sending.
[in]invertedIs the output signal to be inverted?
[in]use_modulationIs frequency modulation to be used?

Member Function Documentation

◆ begin()

void IRHaierAC::begin ( void  )

Set up hardware to be able to send a message.

◆ calibrate()

int8_t IRHaierAC::calibrate ( void  )
inline

Run the calibration to calculate uSec timing offsets for this platform.

Returns
The uSec timing offset needed per modulation of the IR Led.
Note
This will produce a 65ms IR signal pulse at 38kHz. Only ever needs to be run once per object instantiation, if at all.

◆ cancelTimers()

void IRHaierAC::cancelTimers ( void  )

Cancel/disable the On & Off timers.

◆ checksum()

void IRHaierAC::checksum ( void  )
private

Calculate and set the checksum values for the internal state.

◆ convertFan()

uint8_t IRHaierAC::convertFan ( const stdAc::fanspeed_t  speed)

Convert a stdAc::fanspeed_t enum into it's native speed.

Parameters
[in]speedThe enum to be converted.
Returns
The native equivilant of the enum.

◆ convertMode()

uint8_t IRHaierAC::convertMode ( const stdAc::opmode_t  mode)

Convert a stdAc::opmode_t enum into its native mode.

Parameters
[in]modeThe enum to be converted.
Returns
The native equivilant of the enum.

◆ convertSwingV()

uint8_t IRHaierAC::convertSwingV ( const stdAc::swingv_t  position)

Convert a stdAc::swingv_t enum into it's native setting.

Parameters
[in]positionThe enum to be converted.
Returns
The native equivilant of the enum.

◆ getCommand()

uint8_t IRHaierAC::getCommand ( void  )

Get the Command/Button setting of the A/C.

Returns
The value of the command/button that was pressed.

◆ getCurrTime()

uint16_t IRHaierAC::getCurrTime ( void  )

Get the clock value of the A/C.

Returns
The clock time, in Nr of minutes past midnight.

◆ getFan()

uint8_t IRHaierAC::getFan ( void  )

Get the current fan speed setting.

Returns
The current fan speed.

◆ getHealth()

bool IRHaierAC::getHealth ( void  )

Get the Health (filter) setting of the A/C.

Returns
true, the setting is on. false, the setting is off.

◆ getMode()

uint8_t IRHaierAC::getMode ( void  )

Get the operating mode setting of the A/C.

Returns
The current operating mode setting.

◆ getOffTimer()

int16_t IRHaierAC::getOffTimer ( void  )

Get the Off Timer value/setting of the A/C.

Returns
Nr of minutes the timer is set to. -1 is Off/not set etc.

◆ getOnTimer()

int16_t IRHaierAC::getOnTimer ( void  )

Get the On Timer value/setting of the A/C.

Returns
Nr of minutes the timer is set to. -1 is Off/not set etc.

◆ getRaw()

uint8_t * IRHaierAC::getRaw ( void  )

Get a PTR to the internal state/code for this protocol.

Returns
PTR to a code for this protocol based on the current internal state.

◆ getSleep()

bool IRHaierAC::getSleep ( void  )

Get the Sleep setting of the A/C.

Returns
true, the setting is on. false, the setting is off.

◆ getSwing()

uint8_t IRHaierAC::getSwing ( void  )

Get the Vertical Swing position setting of the A/C.

Returns
The native swing mode.

◆ getTemp()

uint8_t IRHaierAC::getTemp ( void  )

Get the current temperature setting.

Returns
The current setting for temp. in degrees celsius.

◆ getTime()

uint16_t IRHaierAC::getTime ( const uint8_t  ptr[])
staticprivate

Get the Time value at the given pointer.

Parameters
[in]ptrA Ptr to a location in the internal state to get the time.

◆ send()

void IRHaierAC::send ( const uint16_t  repeat = kHaierAcDefaultRepeat)

Send the current internal state as an IR message.

Parameters
[in]repeatNr. of times the message will be repeated.

◆ setCommand()

void IRHaierAC::setCommand ( const uint8_t  command)

Set the Command/Button setting of the A/C.

Parameters
[in]commandThe value of the command/button that was pressed.

◆ setCurrTime()

void IRHaierAC::setCurrTime ( const uint16_t  nr_mins)

Set the clock value for the A/C.

Parameters
[in]nr_minsThe clock time, in Nr of minutes past midnight.

◆ setFan()

void IRHaierAC::setFan ( const uint8_t  speed)

Set the speed of the fan.

Parameters
[in]speedThe desired setting.

◆ setHealth()

void IRHaierAC::setHealth ( const bool  on)

Set the Health (filter) setting of the A/C.

Parameters
[in]ontrue, the setting is on. false, the setting is off.

◆ setMode()

void IRHaierAC::setMode ( const uint8_t  mode)

Set the operating mode of the A/C.

Parameters
[in]modeThe desired operating mode.

◆ setOffTimer()

void IRHaierAC::setOffTimer ( const uint16_t  nr_mins)

Set & enable the Off Timer.

Parameters
[in]nr_minsThe time expressed in total number of minutes.

◆ setOnTimer()

void IRHaierAC::setOnTimer ( const uint16_t  nr_mins)

Set & enable the On Timer.

Parameters
[in]nr_minsThe time expressed in total number of minutes.

◆ setRaw()

void IRHaierAC::setRaw ( const uint8_t  new_code[])

Set the internal state from a valid code for this protocol.

Parameters
[in]new_codeA valid code for this protocol.

◆ setSleep()

void IRHaierAC::setSleep ( const bool  on)

Set the Sleep setting of the A/C.

Parameters
[in]ontrue, the setting is on. false, the setting is off.

◆ setSwing()

void IRHaierAC::setSwing ( const uint8_t  cmd)

Set the Vertical Swing mode of the A/C.

Parameters
[in]cmdThe mode to set the vanes to.

◆ setTemp()

void IRHaierAC::setTemp ( const uint8_t  degrees)

Set the temperature.

Parameters
[in]degreesThe temperature in degrees celsius.

◆ setTime()

void IRHaierAC::setTime ( uint8_t  ptr[],
const uint16_t  nr_mins 
)
staticprivate

Set the Time value at the given pointer.

Parameters
[out]ptrA Ptr to a location in the internal state to set the time.
[in]nr_minsThe time expressed in total number of minutes.

◆ stateReset()

void IRHaierAC::stateReset ( void  )
private

Reset the internal state to a fixed known good state.

◆ toCommon()

stdAc::state_t IRHaierAC::toCommon ( void  )

Convert the current internal state into its stdAc::state_t equivilant.

Returns
The stdAc equivilant of the native settings.

◆ toCommonFanSpeed()

stdAc::fanspeed_t IRHaierAC::toCommonFanSpeed ( const uint8_t  speed)
static

Convert a native fan speed into its stdAc equivilant.

Parameters
[in]speedThe native setting to be converted.
Returns
The stdAc equivilant of the native setting.

◆ toCommonMode()

stdAc::opmode_t IRHaierAC::toCommonMode ( const uint8_t  mode)
static

Convert a native mode into its stdAc equivilant.

Parameters
[in]modeThe native setting to be converted.
Returns
The stdAc equivilant of the native setting.

◆ toCommonSwingV()

stdAc::swingv_t IRHaierAC::toCommonSwingV ( const uint8_t  pos)
static

Convert a stdAc::swingv_t enum into it's native setting.

Parameters
[in]posThe enum to be converted.
Returns
The native equivilant of the enum.

◆ toString()

String IRHaierAC::toString ( void  )

Convert the current internal state into a human readable string.

Returns
A human readable string.

◆ validChecksum()

bool IRHaierAC::validChecksum ( uint8_t  state[],
const uint16_t  length = kHaierACStateLength 
)
static

Verify the checksum is valid for a given state.

Parameters
[in]stateThe array to verify the checksum of.
[in]lengthThe length of the state array.
Returns
true, if the state has a valid checksum. Otherwise, false.

Member Data Documentation

◆ _irsend

IRsend IRHaierAC::_irsend
private

Instance of the IR send class.

◆ remote_state

uint8_t IRHaierAC::remote_state[kHaierACStateLength]
private

The state in native code form.


The documentation for this class was generated from the following files: