IRremoteESP8266: IRSamsungAc Class Reference (original) (raw)

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

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

Public Member Functions
IRSamsungAc (const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor. More...
void stateReset (const bool extended=true, const bool initialPower=true)
Reset the internal state of the emulation. More...
void send (const uint16_t repeat=kSamsungAcDefaultRepeat)
Send the current internal state as an IR message. More...
void sendExtended (const uint16_t repeat=kSamsungAcDefaultRepeat)
Send the extended current internal state as an IR message. More...
void sendOn (const uint16_t repeat=kSamsungAcDefaultRepeat)
Send the special extended "On" message as the library can't seem to reproduce this message automatically. More...
void sendOff (const uint16_t repeat=kSamsungAcDefaultRepeat)
Send the special extended "Off" message as the library can't seem to reproduce this message automatically. 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 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)
Change the power setting. More...
bool getPower (void) const
Get the value of the current power setting. More...
void setTemp (const uint8_t temp)
Set the temperature. More...
uint8_t getTemp (void) const
Get the current temperature setting. More...
void setFan (const uint8_t speed)
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)
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 bool on)
Set the vertical swing setting of the A/C. More...
bool getSwing (void) const
Get the vertical swing setting of the A/C. More...
void setSwingH (const bool on)
Set the horizontal swing setting of the A/C. More...
bool getSwingH (void) const
Get the horizontal swing setting of the A/C. More...
void setBeep (const bool on)
Set the Beep toggle setting of the A/C. More...
bool getBeep (void) const
Get the Beep toggle setting of the A/C. More...
void setClean (const bool on)
Set the Clean toggle setting of the A/C. More...
bool getClean (void) const
Get the Clean toggle setting of the A/C. More...
void setQuiet (const bool on)
Set the Quiet setting of the A/C. More...
bool getQuiet (void) const
Get the Quiet setting of the A/C. More...
void setPowerful (const bool on)
Set the Powerful (Turbo) setting of the A/C. More...
bool getPowerful (void) const
Get the Powerful (Turbo) setting of the A/C. More...
void setBreeze (const bool on)
Closes the vanes over the fan outlet, to stop direct wind. Aka. WindFree. More...
bool getBreeze (void) const
Are the vanes closed over the fan outlet, to stop direct wind? Aka. WindFree. More...
void setEcono (const bool on)
Set the current Economy (Eco) setting of the A/C. More...
bool getEcono (void) const
Get the current Economy (Eco) setting of the A/C. More...
void setDisplay (const bool on)
Set the Display (Light/LED) setting of the A/C. More...
bool getDisplay (void) const
Get the Display (Light/LED) setting of the A/C. More...
void setIon (const bool on)
Set the Ion (Filter) setting of the A/C. More...
bool getIon (void) const
Get the Ion (Filter) setting of the A/C. More...
uint16_t getOnTimer (void) const
Get the On Timer setting of the A/C. More...
void setOnTimer (const uint16_t nr_of_mins)
Set the On Timer value of the A/C. More...
uint16_t getOffTimer (void) const
Get the Off Timer setting of the A/C. More...
void setOffTimer (const uint16_t nr_of_mins)
Set the Off Timer value of the A/C. More...
uint16_t getSleepTimer (void) const
Get the Sleep Timer setting of the A/C. More...
void setSleepTimer (const uint16_t nr_of_mins)
Set the Sleep Timer value 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=kSamsungAcStateLength)
Set the internal state from a valid code for this protocol. More...
stdAc::state_t toCommon (void) 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 uint8_t calcSectionChecksum (const uint8_t *section)
Calculate the checksum for a given state section. More...
static uint8_t getSectionChecksum (const uint8_t *section)
Get the existing checksum for a given state section. More...
static bool validChecksum (const uint8_t state[], const uint16_t length=kSamsungAcStateLength)
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)
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)
Update the checksum for the internal state. More...
uint16_t _getOnTimer (void) const
Get the On Timer setting of the A/C from a raw extended state. More...
uint16_t _getOffTimer (void) const
Get the Off Timer setting of the A/C from a raw extended state. More...
void _setOnTimer (void)
Set the current On Timer value of the A/C into the raw extended state. More...
void _setOffTimer (void)
Set the current Off Timer value of the A/C into the raw extended state. More...
void _setSleepTimer (void)
Private Attributes
IRsend _irsend
Instance of the IR send class. More...
SamsungProtocol _
bool _forceextended
Flag to know when we need to send an extended mesg. More...
bool _lastsentpowerstate
bool _OnTimerEnable
bool _OffTimerEnable
bool _Sleep
bool _lastSleep
uint16_t _OnTimer
uint16_t _OffTimer
uint16_t _lastOnTimer
uint16_t _lastOffTimer

Class for handling detailed Samsung A/C messages.

IRSamsungAc::IRSamsungAc ( 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?

_getOffTimer()

uint16_t IRSamsungAc::_getOffTimer ( void ) const private

Get the Off Timer setting of the A/C from a raw extended state.

Returns

The Nr. of minutes the Off Timer is set for.

_getOnTimer()

uint16_t IRSamsungAc::_getOnTimer ( void ) const private

Get the On Timer setting of the A/C from a raw extended state.

Returns

The Nr. of minutes the On Timer is set for.

_setOffTimer()

void IRSamsungAc::_setOffTimer ( void ) private

Set the current Off Timer value of the A/C into the raw extended state.

_setOnTimer()

void IRSamsungAc::_setOnTimer ( void ) private

Set the current On Timer value of the A/C into the raw extended state.

_setSleepTimer()

void IRSamsungAc::_setSleepTimer ( void ) private

begin()

void IRSamsungAc::begin ( void )

Set up hardware to be able to send a message.

calcSectionChecksum()

uint8_t IRSamsungAc::calcSectionChecksum ( const uint8_t * section) static

calibrate()

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

Update the checksum for the internal state.

convertFan()

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

Parameters

[in] speed The enum to be converted.

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.

getBeep()

bool IRSamsungAc::getBeep ( void ) const

Get the Beep toggle setting of the A/C.

Returns

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

getBreeze()

bool IRSamsungAc::getBreeze ( void ) const

getClean()

bool IRSamsungAc::getClean ( void ) const

Get the Clean toggle setting of the A/C.

Returns

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

getDisplay()

bool IRSamsungAc::getDisplay ( void ) const

Get the Display (Light/LED) setting of the A/C.

Returns

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

getEcono()

bool IRSamsungAc::getEcono ( void ) const

Get the current Economy (Eco) setting of the A/C.

Returns

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

getFan()

uint8_t IRSamsungAc::getFan ( void ) const

Get the current fan speed setting.

Returns

The current fan speed/mode.

getIon()

bool IRSamsungAc::getIon ( void ) const

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

Returns

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

getMode()

uint8_t IRSamsungAc::getMode ( void ) const

Get the operating mode setting of the A/C.

Returns

The current operating mode setting.

getOffTimer()

uint16_t IRSamsungAc::getOffTimer ( void ) const

Get the Off Timer setting of the A/C.

Returns

The Nr. of minutes the Off Timer is set for.

Note

Sleep & Off Timer share the same timer.

getOnTimer()

uint16_t IRSamsungAc::getOnTimer ( void ) const

Get the On Timer setting of the A/C.

Returns

The Nr. of minutes the On Timer is set for.

getPower()

bool IRSamsungAc::getPower ( void ) const

Get the value of the current power setting.

Returns

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

getPowerful()

bool IRSamsungAc::getPowerful ( void ) const

Get the Powerful (Turbo) setting of the A/C.

Returns

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

getQuiet()

bool IRSamsungAc::getQuiet ( void ) const

Get the Quiet setting of the A/C.

Returns

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

getRaw()

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

getSectionChecksum()

uint8_t IRSamsungAc::getSectionChecksum ( const uint8_t * section) static

getSleepTimer()

uint16_t IRSamsungAc::getSleepTimer ( void ) const

Get the Sleep Timer setting of the A/C.

Returns

The Nr. of minutes the Off Timer is set for.

Note

Sleep & Off Timer share the same timer.

getSwing()

bool IRSamsungAc::getSwing ( void ) const

Get the vertical swing setting of the A/C.

Returns

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

getSwingH()

bool IRSamsungAc::getSwingH ( void ) const

Get the horizontal swing setting of the A/C.

Returns

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

getTemp()

uint8_t IRSamsungAc::getTemp ( void ) const

Get the current temperature setting.

Returns

The current setting for temp. in degrees celsius.

off()

void IRSamsungAc::off ( void )

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

on()

void IRSamsungAc::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.

Note

Use for most function/mode/settings changes to the unit. i.e. When the device is already running.

sendExtended()

Send the extended current internal state as an IR message.

Parameters

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

Note

Samsung A/C requires an extended length message when you want to change the power operating mode, Timers, or Sleep setting of the A/C unit.

sendOff()

sendOn()

setBeep()

void IRSamsungAc::setBeep ( const bool on )

Set the Beep toggle setting of the A/C.

Parameters

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

setBreeze()

void IRSamsungAc::setBreeze ( const bool on )

setClean()

void IRSamsungAc::setClean ( const bool on )

Set the Clean toggle setting of the A/C.

Parameters

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

setDisplay()

void IRSamsungAc::setDisplay ( const bool on )

Set the Display (Light/LED) setting of the A/C.

Parameters

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

setEcono()

void IRSamsungAc::setEcono ( const bool on )

Set the current Economy (Eco) setting of the A/C.

Parameters

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

setFan()

void IRSamsungAc::setFan ( const uint8_t speed )

Set the speed of the fan.

Parameters

[in] speed The desired setting.

setIon()

void IRSamsungAc::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.

setMode()

void IRSamsungAc::setMode ( const uint8_t mode )

Set the operating mode of the A/C.

Parameters

[in] mode The desired operating mode.

setOffTimer()

void IRSamsungAc::setOffTimer ( const uint16_t nr_of_mins )

Set the Off Timer value of the A/C.

Parameters

[in] nr_of_mins The number of minutes the timer should be.

Note

The timer time only has a resolution of 10 mins.

Setting the Off Timer active will cancel the Sleep timer/setting.

setOnTimer()

void IRSamsungAc::setOnTimer ( const uint16_t nr_of_mins )

Set the On Timer value of the A/C.

Parameters

[in] nr_of_mins The number of minutes the timer should be.

Note

The timer time only has a resolution of 10 mins.

Setting the On Timer active will cancel the Sleep timer/setting.

setPower()

void IRSamsungAc::setPower ( const bool on )

Change the power setting.

Parameters

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

setPowerful()

void IRSamsungAc::setPowerful ( const bool on )

Set the Powerful (Turbo) setting of the A/C.

Parameters

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

setQuiet()

void IRSamsungAc::setQuiet ( const bool on )

Set the Quiet setting of the A/C.

Parameters

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

setRaw()

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.

setSleepTimer()

void IRSamsungAc::setSleepTimer ( const uint16_t nr_of_mins )

Set the Sleep Timer value of the A/C.

Parameters

[in] nr_of_mins The number of minutes the timer should be.

Note

The timer time only has a resolution of 10 mins.

Sleep timer acts as an Off timer, and cancels any On Timer.

setSwing()

void IRSamsungAc::setSwing ( const bool on )

Set the vertical swing setting of the A/C.

Parameters

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

setSwingH()

void IRSamsungAc::setSwingH ( const bool on )

Set the horizontal swing setting of the A/C.

Parameters

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

setTemp()

void IRSamsungAc::setTemp ( const uint8_t temp )

Set the temperature.

Parameters

[in] temp The temperature in degrees celsius.

stateReset()

void IRSamsungAc::stateReset ( const bool extended = true,
const bool initialPower = true
)

Reset the internal state of the emulation.

Parameters

[in] extended A flag indicating if force sending a special extended message with the first send() call.
[in] initialPower Set the initial power state. True, on. False, off.

toCommon()

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

Returns

The stdAc equivalent of the native settings.

toCommonFanSpeed()

Convert a native fan speed into its stdAc equivalent.

Parameters

[in] spd 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.

toString()

String IRSamsungAc::toString ( void ) const

Convert the current internal state into a human readable string.

Returns

A human readable string.

validChecksum()

bool IRSamsungAc::validChecksum ( const uint8_t _state_[], const uint16_t length = kSamsungAcStateLength ) 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.

_

_forceextended

bool IRSamsungAc::_forceextended private

Flag to know when we need to send an extended mesg.

_irsend

Instance of the IR send class.

_lastOffTimer

uint16_t IRSamsungAc::_lastOffTimer private

_lastOnTimer

uint16_t IRSamsungAc::_lastOnTimer private

_lastsentpowerstate

bool IRSamsungAc::_lastsentpowerstate private

_lastSleep

bool IRSamsungAc::_lastSleep private

_OffTimer

uint16_t IRSamsungAc::_OffTimer private

_OffTimerEnable

bool IRSamsungAc::_OffTimerEnable private

_OnTimer

uint16_t IRSamsungAc::_OnTimer private

_OnTimerEnable

bool IRSamsungAc::_OnTimerEnable private

_Sleep


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