IRremoteESP8266: IRSharpAc Class Reference (original) (raw)

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

#include <[ir_Sharp.h](ir%5F%5FSharp%5F8h%5Fsource.html)>

Public Member Functions
IRSharpAc (const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor. More...
void send (const uint16_t repeat=kSharpAcDefaultRepeat)
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 setModel (const sharp_ac_remote_model_t model)
Set the model of the A/C to emulate. More...
sharp_ac_remote_model_t getModel (const bool raw=false) const
Get/Detect the model of the A/C. More...
void on (void)
Set the requested power state of the A/C to on. More...
void off (void)
Set the requested power state of the A/C to off. More...
void setPower (const bool on, const bool prev_on=true)
Change the power setting, including the previous power state. More...
bool getPower (void) const
Get the value of the current power setting. More...
bool isPowerSpecial (void) const
Is one of the special power states in use? More...
void setTemp (const uint8_t temp, const bool save=true)
Set the temperature. More...
uint8_t getTemp (void) const
Get the current temperature setting. More...
void setFan (const uint8_t fan, const bool save=true)
Set the speed of the fan. More...
uint8_t getFan (void) const
Get the current fan speed setting. More...
void setMode (const uint8_t mode, const bool save=true)
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 setSpecial (const uint8_t mode)
Set the value of the Special (button/command?) setting. More...
uint8_t getSpecial (void) const
Get the value of the Special (button/command?) setting. More...
bool getTurbo (void) const
Get the Turbo setting of the A/C. More...
void setTurbo (const bool on)
Set the Turbo setting of the A/C. More...
bool getSwingToggle (void) const
Get the (vertical) Swing Toggle setting of the A/C. More...
void setSwingToggle (const bool on)
Set the (vertical) Swing Toggle setting of the A/C. More...
uint8_t getSwingV (void) const
Get the Vertical Swing setting of the A/C. More...
void setSwingV (const uint8_t position, const bool force=false)
Set the Vertical Swing setting of the A/C. More...
bool getIon (void) const
Get the Ion (Filter) setting of the A/C. More...
void setIon (const bool on)
Set the Ion (Filter) setting of the A/C. More...
bool getEconoToggle (void) const
Get the Economical mode toggle setting of the A/C. More...
void setEconoToggle (const bool on)
Set the Economical mode toggle setting of the A/C. More...
bool getLightToggle (void) const
Get the Light toggle setting of the A/C. More...
void setLightToggle (const bool on)
Set the Light mode toggle setting of the A/C. More...
uint16_t getTimerTime (void) const
Get how long the timer is set for, in minutes. More...
bool getTimerEnabled (void) const
Is the Timer enabled? More...
bool getTimerType (void) const
Get the current timer type. More...
void setTimer (bool enable, bool timer_type, uint16_t mins)
Set or cancel the timer function. More...
bool getClean (void) const
Get the Clean setting of the A/C. More...
void setClean (const bool on)
Set the Economical mode toggle setting 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[], const uint16_t length=kSharpAcStateLength)
Set the internal state from a valid code for this protocol. More...
stdAc::opmode_t toCommonMode (const uint8_t mode) const
Convert a native mode into its stdAc equivalent. More...
stdAc::fanspeed_t toCommonFanSpeed (const uint8_t speed) const
Convert a native fan speed into its stdAc equivalent. More...
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. More...
stdAc::state_t toCommon (const stdAc::state_t *prev=NULL) const
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=kSharpAcStateLength)
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 (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. More...
static uint8_t convertSwingV (const stdAc::swingv_t position)
Convert a standard A/C vertical swing into its native setting. More...
Private Member Functions
void stateReset (void)
Reset the state of the remote to a known good state/sequence. More...
void checksum (void)
Calculate and set the checksum values for the internal state. More...
void setPowerSpecial (const uint8_t value)
Set the value of the Power Special setting without any checks. More...
uint8_t getPowerSpecial (void) const
Get the value of the Power Special setting. More...
void clearPowerSpecial (void)
Clear the "special"/non-normal bits in the power section. e.g. for normal/common command modes. More...
bool _getEconoToggle (void) const
Get the Economical mode toggle setting of the A/C. More...
void _setEconoToggle (const bool on)
Set the Economical mode toggle setting of the A/C. More...
Private Attributes
IRsend _irsend
Instance of the IR send class. More...
SharpProtocol _
uint8_t _temp
Saved copy of the desired temp. More...
uint8_t _mode
Saved copy of the desired mode. More...
uint8_t _fan
Saved copy of the desired fan speed. More...
sharp_ac_remote_model_t _model
Saved copy of the model. More...

Class for handling detailed Sharp A/C messages.

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

Class constructor.

Parameters

[in] pin GPIO to be used when sending.
[in] inverted Is the output signal to be inverted?
[in] use_modulation Is frequency modulation to be used?

_getEconoToggle()

bool IRSharpAc::_getEconoToggle ( void ) const private

Get the Economical mode toggle setting of the A/C.

Returns

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

Note

Shares the same location as the Light setting on A705.

_setEconoToggle()

void IRSharpAc::_setEconoToggle ( const bool on) private

Set the Economical mode toggle setting of the A/C.

Parameters

[in] on true, the setting is on. false, the setting is off.

Warning

Probably incompatible with [setTurbo()](classIRSharpAc.html#a8a184ae8eeb07704b9b69849421e3172 "Set the Turbo setting of the A/C.")

Note

Shares the same location as the Light setting on A705.

begin()

void IRSharpAc::begin ( void )

Set up hardware to be able to send a message.

calcChecksum()

uint8_t IRSharpAc::calcChecksum ( uint8_t _state_[], const uint16_t length = kSharpAcStateLength ) staticprivate

Calculate the checksum for a given state.

Parameters

[in] state The array to calc the checksum of.
[in] length The length/size of the array.

Returns

The calculated 4-bit checksum value.

calibrate()

int8_t IRSharpAc::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 IRSharpAc::checksum ( void ) private

Calculate and set the checksum values for the internal state.

clearPowerSpecial()

void IRSharpAc::clearPowerSpecial ( void ) private

Clear the "special"/non-normal bits in the power section. e.g. for normal/common command modes.

convertFan()

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

Parameters

[in] speed The enum to be converted.
[in] model The enum of the appropriate model.

Returns

The native equivalent of the enum.

convertMode()

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

Parameters

[in] mode The enum to be converted.

Returns

The native equivalent of the enum.

convertSwingV()

Convert a standard A/C vertical swing into its native setting.

Parameters

Returns

The equivalent native horizontal swing position.

getClean()

bool IRSharpAc::getClean ( void ) const

Get the Clean setting of the A/C.

Returns

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

getEconoToggle()

bool IRSharpAc::getEconoToggle ( void ) const

Get the Economical mode toggle setting of the A/C.

Returns

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

Note

Available on the A907 models.

getFan()

uint8_t IRSharpAc::getFan ( void ) const

Get the current fan speed setting.

Returns

The current fan speed/mode.

getIon()

bool IRSharpAc::getIon ( void ) const

Get the Ion (Filter) setting of the A/C.

Returns

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

getLightToggle()

bool IRSharpAc::getLightToggle ( void ) const

Get the Light toggle setting of the A/C.

Returns

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

Note

Not available on the A907 model.

getMode()

uint8_t IRSharpAc::getMode ( void ) const

Get the operating mode setting of the A/C.

Returns

The current operating mode setting.

getModel()

Get/Detect the model of the A/C.

Parameters

[in] raw Try to determine the model from the raw code only.

Returns

The enum of the compatible model.

getPower()

bool IRSharpAc::getPower ( void ) const

Get the value of the current power setting.

Returns

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

getPowerSpecial()

uint8_t IRSharpAc::getPowerSpecial ( void ) const private

Get the value of the Power Special setting.

Returns

The setting's value.

getRaw()

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

getSpecial()

uint8_t IRSharpAc::getSpecial ( void ) const

Get the value of the Special (button/command?) setting.

Returns

The setting's value.

getSwingToggle()

bool IRSharpAc::getSwingToggle ( void ) const

Get the (vertical) Swing Toggle setting of the A/C.

Returns

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

getSwingV()

uint8_t IRSharpAc::getSwingV ( void ) const

Get the Vertical Swing setting of the A/C.

Returns

The position of the Vertical Swing setting.

getTemp()

uint8_t IRSharpAc::getTemp ( void ) const

Get the current temperature setting.

Returns

The current setting for temp. in degrees celsius.

getTimerEnabled()

bool IRSharpAc::getTimerEnabled ( void ) const

Is the Timer enabled?

Returns

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

getTimerTime()

uint16_t IRSharpAc::getTimerTime ( void ) const

Get how long the timer is set for, in minutes.

Returns

The time in nr of minutes.

getTimerType()

bool IRSharpAc::getTimerType ( void ) const

Get the current timer type.

Returns

true, It's an "On" timer. false, It's an "Off" timer.

getTurbo()

bool IRSharpAc::getTurbo ( void ) const

Get the Turbo setting of the A/C.

Returns

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

isPowerSpecial()

bool IRSharpAc::isPowerSpecial ( void ) const

Is one of the special power states in use?

Returns

true, it is. false, it isn't.

off()

void IRSharpAc::off ( void )

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

on()

void IRSharpAc::on ( void )

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

send()

Send the current internal state as an IR message.

Parameters

[in] repeat Nr. of times the message will be repeated.

setClean()

void IRSharpAc::setClean ( const bool on )

Set the Economical mode toggle setting of the A/C.

Parameters

[in] on true, the setting is on. false, the setting is off.

Note

Officially A/C unit needs to be "Off" before clean mode can be entered

setEconoToggle()

void IRSharpAc::setEconoToggle ( const bool on )

Set the Economical mode toggle setting of the A/C.

Parameters

[in] on true, the setting is on. false, the setting is off.

Warning

Probably incompatible with [setTurbo()](classIRSharpAc.html#a8a184ae8eeb07704b9b69849421e3172 "Set the Turbo setting of the A/C.")

Note

Available on the A907 models.

setFan()

void IRSharpAc::setFan ( const uint8_t speed,
const bool save = true
)

Set the speed of the fan.

Parameters

[in] speed The desired setting.
[in] save Do we save this setting as a user set one?

setIon()

void IRSharpAc::setIon ( const bool on )

Set the Ion (Filter) setting of the A/C.

Parameters

[in] on true, the setting is on. false, the setting is off.

setLightToggle()

void IRSharpAc::setLightToggle ( const bool on )

Set the Light mode toggle setting of the A/C.

Parameters

[in] on true, the setting is on. false, the setting is off.

Warning

Probably incompatible with [setTurbo()](classIRSharpAc.html#a8a184ae8eeb07704b9b69849421e3172 "Set the Turbo setting of the A/C.")

Note

Not available on the A907 model.

setMode()

void IRSharpAc::setMode ( const uint8_t mode,
const bool save = true
)

Set the operating mode of the A/C.

Parameters

[in] mode The desired operating mode.
[in] save Do we save this setting as a user set one?

setModel()

Set the model of the A/C to emulate.

Parameters

[in] model The enum of the appropriate model.

setPower()

void IRSharpAc::setPower ( const bool on,
const bool prev_on = true
)

Change the power setting, including the previous power state.

Parameters

[in] on true, the setting is on. false, the setting is off.
[in] prev_on true, the setting is on. false, the setting is off.

setPowerSpecial()

void IRSharpAc::setPowerSpecial ( const uint8_t value) inlineprivate

Set the value of the Power Special setting without any checks.

Parameters

[in] value The value to set Power Special to.

setRaw()

void IRSharpAc::setRaw ( const uint8_t _new_code_[],
const uint16_t length = kSharpAcStateLength
)

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

Parameters

[in] new_code A valid code for this protocol.
[in] length The length/size of the new_code array.

setSpecial()

void IRSharpAc::setSpecial ( const uint8_t mode )

Set the value of the Special (button/command?) setting.

Parameters

[in] mode The value to set Special to.

setSwingToggle()

void IRSharpAc::setSwingToggle ( const bool on )

Set the (vertical) Swing Toggle setting of the A/C.

Parameters

[in] on true, the setting is on. false, the setting is off.

setSwingV()

void IRSharpAc::setSwingV ( const uint8_t position,
const bool force = false
)

Set the Vertical Swing setting of the A/C.

Note

Some positions may not work on all models.

Parameters

[in] position The desired position/setting.

Note

setSwingV(kSharpAcSwingVLowest) will only allow the Lowest setting in Heat mode, it will default to kSharpAcSwingVLow otherwise. If you want to set this value in other modes e.g. Cool, you must use setSwingVs optional force parameter.

Parameters

[in] force Do we override the safety checks and just do it?

setTemp()

void IRSharpAc::setTemp ( const uint8_t temp,
const bool save = true
)

Set the temperature.

Parameters

[in] temp The temperature in degrees celsius.
[in] save Do we save this setting as a user set one?

setTimer()

void IRSharpAc::setTimer ( bool enable,
bool timer_type,
uint16_t mins
)

Set or cancel the timer function.

Parameters

[in] enable Is the timer to be enabled (true) or canceled(false)?
[in] timer_type An On (true) or an Off (false). Ignored if canceled.
[in] mins Nr. of minutes the timer is to be set to.

Note

Rounds down to 30 min increments. (max: 720 mins (12h), 0 is Off)

setTurbo()

void IRSharpAc::setTurbo ( const bool on )

Set the Turbo setting of the A/C.

Parameters

[in] on true, the setting is on. false, the setting is off.

Note

If you use this method, you will need to send it before making other changes to the settings, as they may overwrite some of the bits used by this setting.

stateReset()

void IRSharpAc::stateReset ( void ) private

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

toCommon()

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

Parameters

[in] prev Ptr to the previous state if required.

Returns

The stdAc equivalent of the native settings.

toCommonFanSpeed()

Convert a native fan speed into its stdAc equivalent.

Parameters

[in] speed The native setting to be converted.

Returns

The stdAc equivalent of the native setting.

toCommonMode()

Convert a native mode into its stdAc equivalent.

Parameters

[in] mode The native setting to be converted.

Returns

The stdAc equivalent of the native setting.

toCommonSwingV()

Convert a native vertical swing postion to it's common equivalent.

Parameters

[in] pos A native position to convert.
[in] mode What operating mode are we in?

Returns

The common vertical swing position.

toString()

String IRSharpAc::toString ( void ) const

Convert the current internal state into a human readable string.

Returns

A human readable string.

validChecksum()

bool IRSharpAc::validChecksum ( uint8_t _state_[], const uint16_t length = kSharpAcStateLength ) static

Verify the checksum is valid for a given state.

Parameters

[in] state The array to verify the checksum of.
[in] length The length/size of the array.

Returns

true, if the state has a valid checksum. Otherwise, false.

_

_fan

Saved copy of the desired fan speed.

_irsend

Instance of the IR send class.

_mode

Saved copy of the desired mode.

_model

_temp

Saved copy of the desired temp.


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