IRremoteESP8266: irutils Namespace Reference (original) (raw)

Namespace for covering common functions & procedures for advancd protocol handlers. More...

Functions
String addLabeledString (const String value, const String label, const bool precomma)
Create a String with a colon separated "label: value" pair suitable for Humans. More...
String addBoolToString (const bool value, const String label, const bool precomma)
Create a String with a colon separated flag suitable for Humans. e.g. "Power: On". More...
String addToggleToString (const bool toggle, const String label, const bool precomma)
Create a String with a colon separated toggle flag suitable for Humans. e.g. "Light: Toggle", "Light: -". More...
String addIntToString (const uint16_t value, const String label, const bool precomma)
Create a String with a colon separated labeled Integer suitable for Humans. e.g. "Foo: 23". More...
String addSignedIntToString (const int16_t value, const String label, const bool precomma)
Create a String with a colon separated labeled Integer suitable for Humans. e.g. "Foo: 23". More...
String modelToStr (const decode_type_t protocol, const int16_t model)
Generate the model string for a given Protocol/Model pair. More...
String addModelToString (const decode_type_t protocol, const int16_t model, const bool precomma)
Create a String of human output for a given protocol model number. e.g. "Model: JKE". More...
String addTempToString (const uint16_t degrees, const bool celsius, const bool precomma, const bool isSensorTemp)
Create a String of human output for a given temperature. e.g. "Temp: 25C". More...
String addTempFloatToString (const float degrees, const bool celsius, const bool precomma, const bool isSensorTemp)
Create a String of human output for a given temperature. e.g. "Temp: 25.5C". More...
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)". More...
String addDayToString (const uint8_t day_of_week, const int8_t offset, const bool precomma)
Create a String of the 3-letter day of the week from a numerical day of the week. e.g. "Day: 1 (Mon)". More...
String dayToString (const uint8_t day_of_week, const int8_t offset)
Create a String of the 3-letter day of the week from a numerical day of the week. e.g. "Mon". More...
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, const uint8_t medium_high)
Create a String of human output for the given fan speed. e.g. "Fan: 0 (Auto)". More...
String addSwingHToString (const uint8_t position, const uint8_t automatic, const uint8_t maxleft, const uint8_t left, const uint8_t middle, const uint8_t right, const uint8_t maxright, const uint8_t off, const uint8_t leftright, const uint8_t rightleft, const uint8_t threed, const uint8_t wide)
Create a String of human output for the given horizontal swing setting. e.g. "Swing(H): 0 (Auto)". More...
String addSwingVToString (const uint8_t position, const uint8_t automatic, const uint8_t highest, const uint8_t high, const uint8_t uppermiddle, const uint8_t middle, const uint8_t lowermiddle, const uint8_t low, const uint8_t lowest, const uint8_t off, const uint8_t swing, const uint8_t breeze, const uint8_t circulate)
Create a String of human output for the given vertical swing setting. e.g. "Swing(V): 0 (Auto)". More...
String addTimerModeToString (const uint8_t timerMode, const uint8_t noTimer, const uint8_t delayTimer, const uint8_t schedule1, const uint8_t schedule2, const uint8_t schedule3, const bool precomma)
Create a String of human output for the given timer setting. e.g. "Timer Mode: 2 (Schedule 1)". More...
String channelToString (const uint8_t channel)
Create a String of human output for the given channel e.g. "[CH#0]". More...
String irCommandTypeToString (uint8_t irCommandType, uint8_t acControlCmd, uint8_t iFeelReportCmd, uint8_t timerCmd, uint8_t configCmd)
Create a String of human output for the given command type e.g. "IFeel Report". More...
String daysBitmaskToString (uint8_t daysBitmap, uint8_t offset)
Create a String of the 3-letter day of the week bitmap. More...
String htmlEscape (const String unescaped)
Escape any special HTML (unsafe) characters in a string. e.g. anti-XSS. More...
String msToString (uint32_t const msecs)
Convert a nr. of milliSeconds into a Human-readable string. e.g. "1 Day 6 Hours 34 Minutes 17 Seconds". More...
String minsToString (const uint16_t mins)
Convert a nr. of minutes into a 24h clock format Human-readable string. e.g. "23:59". More...
uint8_t sumNibbles (const uint8_t *const start, const uint16_t length, const uint8_t init)
Sum all the nibbles together in a series of bytes. More...
uint8_t sumNibbles (const uint64_t data, const uint8_t count, const uint8_t init, const bool nibbleonly)
Sum all the nibbles together in an integer. More...
uint16_t sumBytes (const uint64_t data, const uint8_t count, const uint8_t init, const bool byteonly)
Sum all the bytes together in an integer. More...
uint8_t bcdToUint8 (const uint8_t bcd)
Convert a byte of Binary Coded Decimal(BCD) into an Integer. More...
uint8_t uint8ToBcd (const uint8_t integer)
Convert an Integer into a byte of Binary Coded Decimal(BCD). More...
bool getBit (const uint64_t data, const uint8_t position, const uint8_t size)
Return the value of positionth bit of an Integer. More...
bool getBit (const uint8_t data, const uint8_t position)
Return the value of positionth bit of an Integer. More...
uint64_t setBit (const uint64_t data, const uint8_t position, const bool on, const uint8_t size)
Return the value of an Integer with the positionth bit changed. More...
uint8_t setBit (const uint8_t data, const uint8_t position, const bool on)
Return the value of an Integer with the positionth bit changed. More...
void setBit (uint8_t *const data, const uint8_t position, const bool on)
Alter the value of an Integer with the positionth bit changed. More...
void setBit (uint32_t *const data, const uint8_t position, const bool on)
Alter the value of an Integer with the positionth bit changed. More...
void setBit (uint64_t *const data, const uint8_t position, const bool on)
Alter the value of an Integer with the positionth bit changed. More...
void setBits (uint8_t *const dst, const uint8_t offset, const uint8_t nbits, const uint8_t data)
Alter an uint8_t value by overwriting an arbitrary given number of bits. More...
void setBits (uint32_t *const dst, const uint8_t offset, const uint8_t nbits, const uint32_t data)
Alter an uint32_t value by overwriting an arbitrary given number of bits. More...
void setBits (uint64_t *const dst, const uint8_t offset, const uint8_t nbits, const uint64_t data)
Alter an uint64_t value by overwriting an arbitrary given number of bits. More...
uint8_t * invertBytePairs (uint8_t *ptr, const uint16_t length)
Create byte pairs where the second byte of the pair is a bit inverted/flipped copy of the first/previous byte of the pair. More...
bool checkInvertedBytePairs (const uint8_t *const ptr, const uint16_t length)
Check an array to see if every second byte of a pair is a bit inverted/flipped copy of the first/previous byte of the pair. More...
uint8_t lowLevelSanityCheck (void)
Perform a low level bit manipulation sanity check for the given cpu architecture and the compiler operation. Calls to this should return 0 if everything is as expected, anything else means the library won't work as expected. More...

Namespace for covering common functions & procedures for advancd protocol handlers.

addBoolToString()

String irutils::addBoolToString ( const bool value,
const String label,
const bool precomma
)

Create a String with a colon separated flag suitable for Humans. e.g. "Power: On".

Parameters

[in] value The value to come after the label.
[in] label The label to precede the value.
[in] precomma Should the output string start with ", " or not?

Returns

The resulting String.

addDayToString()

String irutils::addDayToString ( const uint8_t day_of_week,
const int8_t offset,
const bool precomma
)

Create a String of the 3-letter day of the week from a numerical day of the week. e.g. "Day: 1 (Mon)".

Parameters

[in] day_of_week A numerical version of the sequential day of the week. e.g. Saturday = 7 etc.
[in] offset Days to offset by. e.g. For different day starting the week.
[in] precomma Should the output string start with ", " or not?

Returns

The resulting String.

addFanToString()

String irutils::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,
const uint8_t medium_high
)

Create a String of human output for the given fan speed. e.g. "Fan: 0 (Auto)".

Parameters

[in] speed The numeric speed of the fan to display.
[in] high The numeric value for High speed. (second highest)
[in] low The numeric value for Low speed.
[in] automatic The numeric value for Auto speed.
[in] quiet The numeric value for Quiet speed.
[in] medium The numeric value for Medium speed.
[in] maximum The numeric value for Highest speed. (if > high)
[in] medium_high The numeric value for third-highest speed. (if > medium)

Returns

The resulting String.

addIntToString()

String irutils::addIntToString ( const uint16_t value,
const String label,
const bool precomma
)

Create a String with a colon separated labeled Integer suitable for Humans. e.g. "Foo: 23".

Parameters

[in] value The value to come after the label.
[in] label The label to precede the value.
[in] precomma Should the output string start with ", " or not?

Returns

The resulting String.

addLabeledString()

String irutils::addLabeledString ( const String value,
const String label,
const bool precomma
)

Create a String with a colon separated "label: value" pair suitable for Humans.

Parameters

[in] value The value to come after the label.
[in] label The label to precede the value.
[in] precomma Should the output string start with ", " or not?

Returns

The resulting String.

addModelToString()

String irutils::addModelToString ( const decode_type_t protocol,
const int16_t model,
const bool precomma
)

Create a String of human output for a given protocol model number. e.g. "Model: JKE".

Parameters

[in] protocol The IR protocol.
[in] model The model number for that protocol.
[in] precomma Should the output string start with ", " or not?

Returns

The resulting String.

addModeToString()

String irutils::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)".

Parameters

[in] mode The operating mode to display.
[in] automatic The numeric value for Auto mode.
[in] cool The numeric value for Cool mode.
[in] heat The numeric value for Heat mode.
[in] dry The numeric value for Dry mode.
[in] fan The numeric value for Fan mode.

Returns

The resulting String.

addSignedIntToString()

String irutils::addSignedIntToString ( const int16_t value,
const String label,
const bool precomma
)

Create a String with a colon separated labeled Integer suitable for Humans. e.g. "Foo: 23".

Parameters

[in] value The value to come after the label.
[in] label The label to precede the value.
[in] precomma Should the output string start with ", " or not?

Returns

The resulting String.

addSwingHToString()

String irutils::addSwingHToString ( const uint8_t position,
const uint8_t automatic,
const uint8_t maxleft,
const uint8_t left,
const uint8_t middle,
const uint8_t right,
const uint8_t maxright,
const uint8_t off,
const uint8_t leftright,
const uint8_t rightleft,
const uint8_t threed,
const uint8_t wide
)

Create a String of human output for the given horizontal swing setting. e.g. "Swing(H): 0 (Auto)".

Parameters

[in] position The numeric position of the swing to display.
[in] automatic The numeric value for Auto position.
[in] maxleft The numeric value for most left position.
[in] left The numeric value for Left position.
[in] middle The numeric value for Middle position.
[in] right The numeric value for Right position.
[in] maxright The numeric value for most right position.
[in] off The numeric value for Off position.
[in] leftright The numeric value for "left right" position.
[in] rightleft The numeric value for "right left" position.
[in] threed The numeric value for 3D setting.
[in] wide The numeric value for Wide position.

Returns

The resulting String.

addSwingVToString()

String irutils::addSwingVToString ( const uint8_t position,
const uint8_t automatic,
const uint8_t highest,
const uint8_t high,
const uint8_t uppermiddle,
const uint8_t middle,
const uint8_t lowermiddle,
const uint8_t low,
const uint8_t lowest,
const uint8_t off,
const uint8_t swing,
const uint8_t breeze,
const uint8_t circulate
)

Create a String of human output for the given vertical swing setting. e.g. "Swing(V): 0 (Auto)".

Parameters

[in] position The numeric position of the swing to display.
[in] automatic The numeric value for Auto position.
[in] highest The numeric value for Highest position.
[in] high The numeric value for High position.
[in] uppermiddle The numeric value for Upper Middle position.
[in] middle The numeric value for Middle position.
[in] lowermiddle The numeric value for Lower Middle position.
[in] low The numeric value for Low position.
[in] lowest The numeric value for Low position.
[in] off The numeric value for Off position.
[in] swing The numeric value for Swing setting.
[in] breeze The numeric value for Breeze setting.
[in] circulate The numeric value for Circulate setting.

Returns

The resulting String.

addTempFloatToString()

String irutils::addTempFloatToString ( const float degrees,
const bool celsius,
const bool precomma,
const bool isSensorTemp
)

Create a String of human output for a given temperature. e.g. "Temp: 25.5C".

Parameters

[in] degrees The temperature in degrees.
[in] celsius Is the temp Celsius or Fahrenheit. true is C, false is F
[in] precomma Should the output string start with ", " or not?
[in] isSensorTemp Is the value a room (ambient) temp. or target?

Returns

The resulting String.

addTempToString()

String irutils::addTempToString ( const uint16_t degrees,
const bool celsius,
const bool precomma,
const bool isSensorTemp
)

Create a String of human output for a given temperature. e.g. "Temp: 25C".

Parameters

[in] degrees The temperature in degrees.
[in] celsius Is the temp Celsius or Fahrenheit. true is C, false is F
[in] precomma Should the output string start with ", " or not?
[in] isSensorTemp Is the value a room (ambient) temp. or target?

Returns

The resulting String.

addTimerModeToString()

String irutils::addTimerModeToString ( const uint8_t timerMode,
const uint8_t noTimer,
const uint8_t delayTimer,
const uint8_t schedule1,
const uint8_t schedule2,
const uint8_t schedule3,
const bool precomma
)

Create a String of human output for the given timer setting. e.g. "Timer Mode: 2 (Schedule 1)".

Parameters

[in] timerMode The numeric value of the timer mode to display.
[in] noTimer The numeric value for no timer (off)
[in] delayTimer The numeric value for delay (sleep) timer
[in] schedule1 The numeric value for schedule timer #1
[in] schedule2 The numeric value for schedule timer #2
[in] schedule3 The numeric value for schedule timer #3
[in] precomma Should the output string start with ", " or not?

Returns

String representation

addToggleToString()

String irutils::addToggleToString ( const bool toggle,
const String label,
const bool precomma
)

Create a String with a colon separated toggle flag suitable for Humans. e.g. "Light: Toggle", "Light: -".

Parameters

[in] toggle The value of the toggle to come after the label.
[in] label The label to precede the value.
[in] precomma Should the output string start with ", " or not?

Returns

The resulting String.

bcdToUint8()

uint8_t irutils::bcdToUint8 ( const uint8_t bcd )

Convert a byte of Binary Coded Decimal(BCD) into an Integer.

Parameters

Returns

A normal Integer value.

channelToString()

String irutils::channelToString ( const uint8_t channel )

Create a String of human output for the given channel e.g. "[CH#0]".

Parameters

channel The numeric value of the channel to display.

Returns

String representation

checkInvertedBytePairs()

bool irutils::checkInvertedBytePairs ( const uint8_t *const ptr,
const uint16_t length
)

Check an array to see if every second byte of a pair is a bit inverted/flipped copy of the first/previous byte of the pair.

Parameters

[in] ptr A pointer to the start of array to check.
[in] length The byte size of the array.

Note

A length of <= 1 will always return true.

Returns

true, if every second byte is inverted. Otherwise false.

daysBitmaskToString()

String irutils::daysBitmaskToString ( uint8_t daysBitmap,
uint8_t offset
)

Create a String of the 3-letter day of the week bitmap.

Parameters

[in] daysBitmap The bitmap representing days of week to represent e.g bit[0]=Sunday, bit[1]=Monday, ...
[in] offset Days to offset by. e.g. For different day starting the week.

Returns

String representation.

dayToString()

String irutils::dayToString ( const uint8_t day_of_week,
const int8_t offset
)

Create a String of the 3-letter day of the week from a numerical day of the week. e.g. "Mon".

Parameters

[in] day_of_week A numerical version of the sequential day of the week. e.g. Sunday = 1, Monday = 2, ..., Saturday = 7
[in] offset Days to offset by. e.g. For different day starting the week.

Returns

The resulting String.

getBit() [1/2]

bool irutils::getBit ( const uint64_t data,
const uint8_t position,
const uint8_t size
)

Return the value of positionth bit of an Integer.

Parameters

[in] data Value to be examined.
[in] position Nr. of the Nth bit to be examined. 0 is the LSB.
[in] size Nr. of bits in data.

Returns

The bit's value.

getBit() [2/2]

bool irutils::getBit ( const uint8_t data,
const uint8_t position
)

Return the value of positionth bit of an Integer.

Parameters

[in] data Value to be examined.
[in] position Nr. of the Nth bit to be examined. 0 is the LSB.

Returns

The bit's value.

htmlEscape()

Escape any special HTML (unsafe) characters in a string. e.g. anti-XSS.

Parameters

[in] unescaped A String containing text to make HTML safe.

Returns

A string that is HTML safe.

invertBytePairs()

uint8_t * irutils::invertBytePairs ( uint8_t * ptr,
const uint16_t length
)

Create byte pairs where the second byte of the pair is a bit inverted/flipped copy of the first/previous byte of the pair.

Parameters

[in,out] ptr A pointer to the start of array to modify.
[in] length The byte size of the array.

Note

A length of <= 1 will do nothing.

Returns

A ptr to the modified array.

irCommandTypeToString()

String irutils::irCommandTypeToString ( uint8_t irCommandType,
uint8_t acControlCmd,
uint8_t iFeelReportCmd,
uint8_t timerCmd,
uint8_t configCmd
)

Create a String of human output for the given command type e.g. "IFeel Report".

Parameters

irCommandType The numeric value of the command type to display.
acControlCmd The numeric value of the "control" (default) command
iFeelReportCmd The numeric value of the sensor temperature command
timerCmd The numeric value of the timer config IR command
configCmd The numeric value of the config param set IR command

Returns

String representation

lowLevelSanityCheck()

uint8_t irutils::lowLevelSanityCheck ( void )

Perform a low level bit manipulation sanity check for the given cpu architecture and the compiler operation. Calls to this should return 0 if everything is as expected, anything else means the library won't work as expected.

Returns

A bit mask value of potential issues. 0: (e.g. 0b00000000) Everything appears okay. 0th bit set: (0b1) Unexpected bit field/packing encountered. Try a different compiler. 1st bit set: (0b10) Unexpected Endianness. Try a different compiler flag or use a CPU different architecture. e.g. A result of 3 (0b11) would mean both a bit field and an Endianness issue has been found.

minsToString()

String irutils::minsToString ( const uint16_t mins )

Convert a nr. of minutes into a 24h clock format Human-readable string. e.g. "23:59".

Parameters

Returns

A human readable string.

modelToStr()

Generate the model string for a given Protocol/Model pair.

Parameters

[in] protocol The IR protocol.
[in] model The model number for that protocol.

Returns

The resulting String.

Note

After adding a new model you should update IRac::strToModel() too.

msToString()

String irutils::msToString ( uint32_t const msecs )

Convert a nr. of milliSeconds into a Human-readable string. e.g. "1 Day 6 Hours 34 Minutes 17 Seconds".

Parameters

[in] msecs Nr. of milliSeconds (ms).

Returns

A human readable string.

setBit() [1/5]

uint64_t irutils::setBit ( const uint64_t data,
const uint8_t position,
const bool on,
const uint8_t size
)

Return the value of an Integer with the positionth bit changed.

Parameters

[in] data Value to be changed.
[in] position Nr. of the bit to be changed. 0 is the LSB.
[in] on Value to set the position'th bit to.
[in] size Nr. of bits in data.

Returns

A suitably modified integer.

setBit() [2/5]

uint8_t irutils::setBit ( const uint8_t data,
const uint8_t position,
const bool on
)

Return the value of an Integer with the positionth bit changed.

Parameters

[in] data Value to be changed.
[in] position Nr. of the bit to be changed. 0 is the LSB.
[in] on Value to set the position'th bit to.

Returns

A suitably modified integer.

setBit() [3/5]

void irutils::setBit ( uint32_t *const data,
const uint8_t position,
const bool on
)

Alter the value of an Integer with the positionth bit changed.

Parameters

[in,out] data A pointer to the 32-bit integer to be changed.
[in] position Nr. of the bit to be changed. 0 is the LSB.
[in] on Value to set the position'th bit to.

setBit() [4/5]

void irutils::setBit ( uint64_t *const data,
const uint8_t position,
const bool on
)

Alter the value of an Integer with the positionth bit changed.

Parameters

[in,out] data A pointer to the 64-bit integer to be changed.
[in] position Nr. of the bit to be changed. 0 is the LSB.
[in] on Value to set the position'th bit to.

setBit() [5/5]

void irutils::setBit ( uint8_t *const data,
const uint8_t position,
const bool on
)

Alter the value of an Integer with the positionth bit changed.

Parameters

[in,out] data A pointer to the 8-bit integer to be changed.
[in] position Nr. of the bit to be changed. 0 is the LSB.
[in] on Value to set the position'th bit to.

setBits() [1/3]

void irutils::setBits ( uint32_t *const dst,
const uint8_t offset,
const uint8_t nbits,
const uint32_t data
)

Alter an uint32_t value by overwriting an arbitrary given number of bits.

Parameters

[in,out] dst A pointer to the value to be changed.
[in] offset Nr. of bits from the Least Significant Bit to be ignored
[in] nbits Nr of bits of data to be placed into the destination.
[in] data The value to be placed.

setBits() [2/3]

void irutils::setBits ( uint64_t *const dst,
const uint8_t offset,
const uint8_t nbits,
const uint64_t data
)

Alter an uint64_t value by overwriting an arbitrary given number of bits.

Parameters

[in,out] dst A pointer to the value to be changed.
[in] offset Nr. of bits from the Least Significant Bit to be ignored
[in] nbits Nr of bits of data to be placed into the destination.
[in] data The value to be placed.

setBits() [3/3]

void irutils::setBits ( uint8_t *const dst,
const uint8_t offset,
const uint8_t nbits,
const uint8_t data
)

Alter an uint8_t value by overwriting an arbitrary given number of bits.

Parameters

[in,out] dst A pointer to the value to be changed.
[in] offset Nr. of bits from the Least Significant Bit to be ignored
[in] nbits Nr of bits of data to be placed into the destination.
[in] data The value to be placed.

sumBytes()

uint16_t irutils::sumBytes ( const uint64_t data,
const uint8_t count,
const uint8_t init,
const bool byteonly
)

Sum all the bytes together in an integer.

Parameters

[in] data The integer to be summed.
[in] count The number of bytes to sum. Starts from LSB. Max of 8.
[in] init Starting value of the calculation to use. (Default is 0)
[in] byteonly true, the result is 8 bits. false, it's 16 bits.

Returns

The 8/16-bit calculated result of all the bytes and init value.

sumNibbles() [1/2]

uint8_t irutils::sumNibbles ( const uint64_t data,
const uint8_t count,
const uint8_t init,
const bool nibbleonly
)

Sum all the nibbles together in an integer.

Parameters

[in] data The integer to be summed.
[in] count The number of nibbles to sum. Starts from LSB. Max of 16.
[in] init Starting value of the calculation to use. (Default is 0)
[in] nibbleonly true, the result is 4 bits. false, it's 8 bits.

Returns

The 4/8-bit calculated result of all the nibbles and init value.

sumNibbles() [2/2]

uint8_t irutils::sumNibbles ( const uint8_t *const start,
const uint16_t length,
const uint8_t init
)

Sum all the nibbles together in a series of bytes.

Parameters

[in] start A ptr to the start of the byte array to calculate over.
[in] length How many bytes to use in the calculation.
[in] init Starting value of the calculation to use. (Default is 0)

Returns

The 8-bit calculated result of all the bytes and init value.

uint8ToBcd()

uint8_t irutils::uint8ToBcd ( const uint8_t integer )

Convert an Integer into a byte of Binary Coded Decimal(BCD).

Parameters

[in] integer The number to convert.

Returns

An 8-bit BCD value.