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

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

#include <ir_Fujitsu.h>

Collaboration diagram for IRFujitsuAC:
Collaboration graph
[legend]

Public Member Functions

 IRFujitsuAC (const uint16_t pin, const fujitsu_ac_remote_model_t model=ARRAH2E, const bool inverted=false, const bool use_modulation=true)
 Class Constructor. More...
 
void setModel (const fujitsu_ac_remote_model_t model)
 Set the currently emulated model of the A/C. More...
 
fujitsu_ac_remote_model_t getModel (void) const
 Get the currently emulated/detected model of the A/C. More...
 
void stateReset (void)
 Reset the state of the remote to a known good state/sequence. More...
 
void send (const uint16_t repeat=kFujitsuAcMinRepeat)
 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 stepHoriz (void)
 Request the A/C to step the Horizontal Swing. More...
 
void toggleSwingHoriz (const bool update=true)
 Request the A/C to toggle the Horizontal Swing mode. More...
 
void stepVert (void)
 Request the A/C to step the Vertical Swing. More...
 
void toggleSwingVert (const bool update=true)
 Request the A/C to toggle the Vertical Swing mode. More...
 
void setCmd (const uint8_t cmd)
 Set the requested (special) command part for the A/C message. More...
 
uint8_t getCmd (void) const
 Set the requested (special) command part for the A/C message. More...
 
void setTemp (const float temp, const bool useCelsius=true)
 Set the temperature. More...
 
float getTemp (void) const
 Get the current temperature setting. More...
 
void setFanSpeed (const uint8_t fan)
 Set the speed of the fan. More...
 
uint8_t getFanSpeed (void) const
 Get the current fan speed setting. More...
 
void setMode (const uint8_t mode)
 Set the operating mode of the A/C. More...
 
uint8_t getMode (void) const
 Get the operating mode setting of the A/C. More...
 
void setSwing (const uint8_t mode)
 Set the requested swing operation mode of the A/C unit. More...
 
uint8_t getSwing (void) const
 Get the requested swing operation mode of the A/C unit. More...
 
uint8_t * getRaw (void)
 Get a PTR to the internal state/code for this protocol. More...
 
bool setRaw (const uint8_t newState[], const uint16_t length)
 Set the internal state from a valid code for this protocol. More...
 
uint8_t getStateLength (void)
 Get the length (size) of the state code for the current configuration. More...
 
bool isLongCode (void) const
 Is the current binary state representation a long or a short code? More...
 
void setPower (const bool on)
 Change the power setting. More...
 
void off (void)
 Set the requested power state of the A/C to off. More...
 
void on (void)
 Set the requested power state of the A/C to on. More...
 
bool getPower (void) const
 Get the value of the current power setting. More...
 
void setClean (const bool on)
 Set the Clean mode of the A/C. More...
 
bool getClean (void) const
 Get the Clean mode status of the A/C. More...
 
void setFilter (const bool on)
 Set the Filter mode status of the A/C. More...
 
bool getFilter (void) const
 Get the Filter mode status of the A/C. More...
 
void set10CHeat (const bool on)
 Set the 10C heat status of the A/C. More...
 
bool get10CHeat (void) const
 Get the 10C heat status of the A/C. More...
 
void setOutsideQuiet (const bool on)
 Set the Outside Quiet mode of the A/C. More...
 
bool getOutsideQuiet (void) const
 Get the Outside Quiet mode status of the A/C. More...
 
uint8_t getTimerType (void) const
 Get the Timer type of the A/C message. More...
 
void setTimerType (const uint8_t timertype)
 Set the Timer type of the A/C message. More...
 
uint16_t getOnTimer (void) const
 Get the On Timer setting of the A/C. More...
 
void setOnTimer (const uint16_t nr_mins)
 Set the On Timer setting of the A/C. More...
 
uint16_t getOffSleepTimer (void) const
 Get the Off/Sleep Timer setting of the A/C. More...
 
void setOffTimer (const uint16_t nr_mins)
 Set the Off Timer time for the A/C. More...
 
void setSleepTimer (const uint16_t nr_mins)
 Set the Sleep Timer time for the A/C. More...
 
void setId (const uint8_t num)
 Set the device's remote ID number. More...
 
uint8_t getId (void) const
 Get the current device's remote ID number. More...
 
void setCelsius (const bool on)
 Set the Temperature units for the A/C. More...
 
bool getCelsius (void) const
 Get the Clean mode status of the A/C. More...
 
stdAc::state_t toCommon (const stdAc::state_t *prev=NULL)
 Convert the current internal state into its stdAc::state_t equivalent. More...
 
String toString (void) const
 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)
 Verify the checksum is valid for a given state. More...
 
static uint8_t convertMode (const stdAc::opmode_t mode)
 Convert a stdAc::opmode_t enum into its native mode. More...
 
static uint8_t convertFan (stdAc::fanspeed_t speed)
 Convert a stdAc::fanspeed_t enum into it's native speed. More...
 
static stdAc::opmode_t toCommonMode (const uint8_t mode)
 Convert a native mode into its stdAc equivalent. More...
 
static stdAc::fanspeed_t toCommonFanSpeed (const uint8_t speed)
 Convert a native fan speed into its stdAc equivalent. More...
 

Private Member Functions

void checkSum (void)
 Calculate and set the checksum values for the internal state. More...
 
bool updateUseLongOrShort (void)
 Update the length (size) of the state code for the current configuration. More...
 
void buildFromState (const uint16_t length)
 Build the internal state/config from the current (raw) A/C message. More...
 
void setOffSleepTimer (const uint16_t nr_mins)
 Set the Off/Sleep Timer time for the A/C. More...
 

Private Attributes

IRsend _irsend
 Instance of the IR send class. More...
 
FujitsuProtocol _
 
uint8_t _cmd
 
fujitsu_ac_remote_model_t _model
 
uint8_t _state_length
 
uint8_t _state_length_short
 
bool _rawstatemodified
 

Detailed Description

Class for handling detailed Fujitsu A/C messages.

Constructor & Destructor Documentation

◆ IRFujitsuAC()

IRFujitsuAC::IRFujitsuAC ( const uint16_t  pin,
const fujitsu_ac_remote_model_t  model = ARRAH2E,
const bool  inverted = false,
const bool  use_modulation = true 
)
explicit

Class Constructor.

Parameters
[in]pinGPIO to be used when sending.
[in]modelThe enum for the model of A/C to be emulated.
[in]invertedIs the output signal to be inverted?
[in]use_modulationIs frequency modulation to be used?

Member Function Documentation

◆ begin()

void IRFujitsuAC::begin ( void  )

Set up hardware to be able to send a message.

◆ buildFromState()

void IRFujitsuAC::buildFromState ( const uint16_t  length)
private

Build the internal state/config from the current (raw) A/C message.

Parameters
[in]lengthSize of the current/used (raw) A/C message array.

◆ calibrate()

int8_t IRFujitsuAC::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.

◆ checkSum()

void IRFujitsuAC::checkSum ( void  )
private

Calculate and set the checksum values for the internal state.

◆ convertFan()

uint8_t IRFujitsuAC::convertFan ( stdAc::fanspeed_t  speed)
static

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

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

◆ convertMode()

uint8_t IRFujitsuAC::convertMode ( const stdAc::opmode_t  mode)
static

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

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

◆ get10CHeat()

bool IRFujitsuAC::get10CHeat ( void  ) const

Get the 10C heat status of the A/C.

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

◆ getCelsius()

bool IRFujitsuAC::getCelsius ( void  ) const

Get the Clean mode status of the A/C.

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

◆ getClean()

bool IRFujitsuAC::getClean ( void  ) const

Get the Clean mode status of the A/C.

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

◆ getCmd()

uint8_t IRFujitsuAC::getCmd ( void  ) const

Set the requested (special) command part for the A/C message.

Returns
The special command code.

◆ getFanSpeed()

uint8_t IRFujitsuAC::getFanSpeed ( void  ) const

Get the current fan speed setting.

Returns
The current fan speed.

◆ getFilter()

bool IRFujitsuAC::getFilter ( void  ) const

Get the Filter mode status of the A/C.

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

◆ getId()

uint8_t IRFujitsuAC::getId ( void  ) const

Get the current device's remote ID number.

Returns
The current device's remote ID number.

◆ getMode()

uint8_t IRFujitsuAC::getMode ( void  ) const

Get the operating mode setting of the A/C.

Returns
The current operating mode setting.

◆ getModel()

fujitsu_ac_remote_model_t IRFujitsuAC::getModel ( void  ) const

Get the currently emulated/detected model of the A/C.

Returns
The enum representing the model of A/C.

◆ getOffSleepTimer()

uint16_t IRFujitsuAC::getOffSleepTimer ( void  ) const

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

Returns
nr of minutes left on the timer. 0 means disabled/not supported.

◆ getOnTimer()

uint16_t IRFujitsuAC::getOnTimer ( void  ) const

Get the On Timer setting of the A/C.

Returns
nr of minutes left on the timer. 0 means disabled/not supported.

◆ getOutsideQuiet()

bool IRFujitsuAC::getOutsideQuiet ( void  ) const

Get the Outside Quiet mode status of the A/C.

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

◆ getPower()

bool IRFujitsuAC::getPower ( void  ) const

Get the value of the current power setting.

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

◆ getRaw()

uint8_t * IRFujitsuAC::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.

◆ getStateLength()

uint8_t IRFujitsuAC::getStateLength ( void  )

Get the length (size) of the state code for the current configuration.

Returns
The length of the state array required for this config.

◆ getSwing()

uint8_t IRFujitsuAC::getSwing ( void  ) const

Get the requested swing operation mode of the A/C unit.

Returns
The contents of the swing state/mode.

◆ getTemp()

float IRFujitsuAC::getTemp ( void  ) const

Get the current temperature setting.

Returns
The current setting for temp. in degrees of the currently set units.

◆ getTimerType()

uint8_t IRFujitsuAC::getTimerType ( void  ) const

Get the Timer type of the A/C message.

Returns
The current timer type in numeric form.

◆ isLongCode()

bool IRFujitsuAC::isLongCode ( void  ) const

Is the current binary state representation a long or a short code?

Returns
true, if long; false, if short.

◆ off()

void IRFujitsuAC::off ( void  )

Set the requested power state of the A/C to off.

◆ on()

void IRFujitsuAC::on ( void  )

Set the requested power state of the A/C to on.

◆ send()

void IRFujitsuAC::send ( const uint16_t  repeat = kFujitsuAcMinRepeat)

Send the current internal state as an IR message.

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

◆ set10CHeat()

void IRFujitsuAC::set10CHeat ( const bool  on)

Set the 10C heat status of the A/C.

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

◆ setCelsius()

void IRFujitsuAC::setCelsius ( const bool  on)

Set the Temperature units for the A/C.

Parameters
[in]ontrue, use Celsius. false, use Fahrenheit.

◆ setClean()

void IRFujitsuAC::setClean ( const bool  on)

Set the Clean mode of the A/C.

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

◆ setCmd()

void IRFujitsuAC::setCmd ( const uint8_t  cmd)

Set the requested (special) command part for the A/C message.

Parameters
[in]cmdThe special command code.

◆ setFanSpeed()

void IRFujitsuAC::setFanSpeed ( const uint8_t  fanSpeed)

Set the speed of the fan.

Parameters
[in]fanSpeedThe desired setting.

◆ setFilter()

void IRFujitsuAC::setFilter ( const bool  on)

Set the Filter mode status of the A/C.

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

◆ setId()

void IRFujitsuAC::setId ( const uint8_t  num)

Set the device's remote ID number.

Parameters
[in]numThe ID for the remote. Valid number range is 0 to 3.

◆ setMode()

void IRFujitsuAC::setMode ( const uint8_t  mode)

Set the operating mode of the A/C.

Parameters
[in]modeThe desired operating mode.

◆ setModel()

void IRFujitsuAC::setModel ( const fujitsu_ac_remote_model_t  model)

Set the currently emulated model of the A/C.

Parameters
[in]modelAn enum representing the model to support/emulate.

◆ setOffSleepTimer()

void IRFujitsuAC::setOffSleepTimer ( const uint16_t  nr_mins)
inlineprivate

Set the Off/Sleep Timer time for the A/C.

Parameters
[in]nr_minsNr. of minutes to set the timer to. 0 means disabled.

◆ setOffTimer()

void IRFujitsuAC::setOffTimer ( const uint16_t  nr_mins)

Set the Off Timer time for the A/C.

Parameters
[in]nr_minsNr. of minutes to set the timer to. 0 means disabled.

◆ setOnTimer()

void IRFujitsuAC::setOnTimer ( const uint16_t  nr_mins)

Set the On Timer setting of the A/C.

Parameters
[in]nr_minsNr. of minutes to set the timer to. 0 means disabled.

◆ setOutsideQuiet()

void IRFujitsuAC::setOutsideQuiet ( const bool  on)

Set the Outside Quiet mode of the A/C.

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

◆ setPower()

void IRFujitsuAC::setPower ( const bool  on)

Change the power setting.

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

◆ setRaw()

bool IRFujitsuAC::setRaw ( const uint8_t  newState[],
const uint16_t  length 
)

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

Parameters
[in]newStateA valid code for this protocol.
[in]lengthSize of the newState array.
Returns
true, if successful; Otherwise false. (i.e. size check)

◆ setSleepTimer()

void IRFujitsuAC::setSleepTimer ( const uint16_t  nr_mins)

Set the Sleep Timer time for the A/C.

Parameters
[in]nr_minsNr. of minutes to set the timer to. 0 means disabled.

◆ setSwing()

void IRFujitsuAC::setSwing ( const uint8_t  swingMode)

Set the requested swing operation mode of the A/C unit.

Parameters
[in]swingModeThe swingMode code for the A/C. Vertical, Horizon, or Both. See constants for details.
Note
Not all models support all possible swing modes.

◆ setTemp()

void IRFujitsuAC::setTemp ( const float  temp,
const bool  useCelsius = true 
)

Set the temperature.

Parameters
[in]tempThe temperature in degrees.
[in]useCelsiusUse Celsius or Fahrenheit?

◆ setTimerType()

void IRFujitsuAC::setTimerType ( const uint8_t  timertype)

Set the Timer type of the A/C message.

Parameters
[in]timertypeThe kind of timer to use for the message.

◆ stateReset()

void IRFujitsuAC::stateReset ( void  )

Reset the state of the remote to a known good state/sequence.

◆ stepHoriz()

void IRFujitsuAC::stepHoriz ( void  )

Request the A/C to step the Horizontal Swing.

◆ stepVert()

void IRFujitsuAC::stepVert ( void  )

Request the A/C to step the Vertical Swing.

◆ toCommon()

stdAc::state_t IRFujitsuAC::toCommon ( const stdAc::state_t prev = NULL)

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

Parameters
[in]prevPtr to a previous state.
Returns
The stdAc equivalent of the native settings.

◆ toCommonFanSpeed()

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

Convert a native fan speed into its stdAc equivalent.

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

◆ toCommonMode()

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

Convert a native mode into its stdAc equivalent.

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

◆ toggleSwingHoriz()

void IRFujitsuAC::toggleSwingHoriz ( const bool  update = true)

Request the A/C to toggle the Horizontal Swing mode.

Parameters
[in]updateDo we need to update the general swing config?

◆ toggleSwingVert()

void IRFujitsuAC::toggleSwingVert ( const bool  update = true)

Request the A/C to toggle the Vertical Swing mode.

Parameters
[in]updateDo we need to update the general swing config?

◆ toString()

String IRFujitsuAC::toString ( void  ) const

Convert the current internal state into a human readable string.

Returns
A human readable string.

◆ updateUseLongOrShort()

bool IRFujitsuAC::updateUseLongOrShort ( void  )
private

Update the length (size) of the state code for the current configuration.

Returns
true, if use long codes; false, use short codes.

◆ validChecksum()

bool IRFujitsuAC::validChecksum ( uint8_t *  state,
const uint16_t  length 
)
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

◆ _

FujitsuProtocol IRFujitsuAC::_
private

◆ _cmd

uint8_t IRFujitsuAC::_cmd
private

◆ _irsend

IRsend IRFujitsuAC::_irsend
private

Instance of the IR send class.

◆ _model

fujitsu_ac_remote_model_t IRFujitsuAC::_model
private

◆ _rawstatemodified

bool IRFujitsuAC::_rawstatemodified
private

◆ _state_length

uint8_t IRFujitsuAC::_state_length
private

◆ _state_length_short

uint8_t IRFujitsuAC::_state_length_short
private

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