IRremote
Sending IR data for multiple protocols

Functions

 IRsend::IRsend ()
 
 IRsend::IRsend (uint_fast8_t aSendPin)
 
void IRsend::begin (uint_fast8_t aSendPin)
 Initializes the send pin and enable LED feedback with board specific LED_BUILTIN pin if it is defined as macro. More...
 
void IRsend::setSendPin (uint_fast8_t aSendPin)
 
void IRsend::begin (uint_fast8_t aSendPin, uint_fast8_t aFeedbackLEDPin)
 Initializes the send and feedback pin. More...
 
void IRsend::begin (uint_fast8_t aSendPin, bool aEnableLEDFeedback, uint_fast8_t aFeedbackLEDPin) size_t write(IRData *aIRSendData
 
size_t IRsend::write (decode_type_t aProtocol, uint16_t aAddress, uint16_t aCommand, int_fast8_t aNumberOfRepeats=NO_REPEATS)
 Interprets and sends a IRData structure. More...
 
void IRsend::sendRaw (const uint16_t aBufferWithMicroseconds[], uint_fast16_t aLengthOfBuffer, uint_fast8_t aIRFrequencyKilohertz)
 Sends a 16 byte microsecond timing array. More...
 
void IRsend::sendRaw (const uint16_t aBufferWithMicroseconds[], uint_fast16_t aLengthOfBuffer, uint_fast8_t aIRFrequencyKilohertz, uint_fast16_t aRepeatPeriodMillis, int_fast8_t aNumberOfRepeats)
 
void IRsend::sendRaw (const uint8_t aBufferWithTicks[], uint_fast16_t aLengthOfBuffer, uint_fast8_t aIRFrequencyKilohertz)
 Sends an 8 byte tick timing array to save program memory. More...
 
void IRsend::sendRaw (const uint8_t aBufferWithTicks[], uint_fast16_t aLengthOfBuffer, uint_fast8_t aIRFrequencyKilohertz, uint_fast16_t aRepeatPeriodMillis, int_fast8_t aNumberOfRepeats)
 
void IRsend::sendRaw_P (const uint16_t aPGMBufferWithMicroseconds[], uint_fast16_t aLengthOfBuffer, uint_fast8_t aIRFrequencyKilohertz)
 Function using an 16 byte microsecond timing array in FLASH for every purpose. More...
 
void IRsend::sendRaw_P (const uint16_t aPGMBufferWithMicroseconds[], uint_fast16_t aLengthOfBuffer, uint_fast8_t aIRFrequencyKilohertz, uint_fast16_t aRepeatPeriodMillis, int_fast8_t aNumberOfRepeats)
 
void IRsend::sendRaw_P (const uint8_t aPGMBufferWithTicks[], uint_fast16_t aLengthOfBuffer, uint_fast8_t aIRFrequencyKilohertz)
 New function using an 8 byte tick (50 us) timing array in FLASH to save program memory Raw data starts with a Mark. More...
 
void IRsend::sendRaw_P (const uint8_t aPGMBufferWithTicks[], uint_fast16_t aLengthOfBuffer, uint_fast8_t aIRFrequencyKilohertz, uint_fast16_t aRepeatPeriodMillis, int_fast8_t aNumberOfRepeats)
 
void IRsend::sendPulseDistanceWidthData (uint16_t aOneMarkMicros, uint16_t aOneSpaceMicros, uint16_t aZeroMarkMicros, uint16_t aZeroSpaceMicros, IRDecodedRawDataType aData, uint_fast8_t aNumberOfBits, uint8_t aFlags)
 Sends PulseDistance data with timing parameters and flag parameters. More...
 
void IRsend::sendPulseDistanceWidthData (PulseDistanceWidthProtocolConstants *aProtocolConstants, IRDecodedRawDataType aData, uint_fast8_t aNumberOfBits)
 Sends PulseDistance from data contained in parameter using ProtocolConstants structure for timing etc. More...
 
void IRsend::sendPulseDistanceWidthData_P (PulseDistanceWidthProtocolConstants const *aProtocolConstantsPGM, IRDecodedRawDataType aData, uint_fast8_t aNumberOfBits)
 
void IRsend::sendPulseDistanceWidth (uint_fast8_t aFrequencyKHz, uint16_t aHeaderMarkMicros, uint16_t aHeaderSpaceMicros, uint16_t aOneMarkMicros, uint16_t aOneSpaceMicros, uint16_t aZeroMarkMicros, uint16_t aZeroSpaceMicros, IRDecodedRawDataType aData, uint_fast8_t aNumberOfBits, uint8_t aFlags, uint16_t aRepeatPeriodMillis, int_fast8_t aNumberOfRepeats, void(*aSpecialSendRepeatFunction)()=nullptr)
 Sends PulseDistance frames and repeats. More...
 
void IRsend::sendPulseDistanceWidthFromArray (uint_fast8_t aFrequencyKHz, uint16_t aHeaderMarkMicros, uint16_t aHeaderSpaceMicros, uint16_t aOneMarkMicros, uint16_t aOneSpaceMicros, uint16_t aZeroMarkMicros, uint16_t aZeroSpaceMicros, IRDecodedRawDataType *aDecodedRawDataArray, uint16_t aNumberOfBits, uint8_t aFlags, uint16_t aRepeatPeriodMillis, int_fast8_t aNumberOfRepeats)
 
void IRsend::sendPulseDistanceWidthFromPGMArray (uint_fast8_t aFrequencyKHz, uint16_t aHeaderMarkMicros, uint16_t aHeaderSpaceMicros, uint16_t aOneMarkMicros, uint16_t aOneSpaceMicros, uint16_t aZeroMarkMicros, uint16_t aZeroSpaceMicros, IRDecodedRawDataType const *aDecodedRawDataPGMArray, uint16_t aNumberOfBits, uint8_t aFlags, uint16_t aRepeatPeriodMillis, int_fast8_t aNumberOfRepeats)
 
void IRsend::sendPulseDistanceWidthFromArray (uint_fast8_t aFrequencyKHz, DistanceWidthTimingInfoStruct *aDistanceWidthTimingInfo, IRDecodedRawDataType *aDecodedRawDataArray, uint16_t aNumberOfBits, uint8_t aFlags, uint16_t aRepeatPeriodMillis, int_fast8_t aNumberOfRepeats)
 Sends PulseDistance data from array For LSB First the LSB of array[0] is sent first then all bits until MSB of array[0]. More...
 
void IRsend::sendPulseDistanceWidthFromArray_P (uint_fast8_t aFrequencyKHz, DistanceWidthTimingInfoStruct const *aDistanceWidthTimingInfoPGM, IRDecodedRawDataType *aDecodedRawDataArray, uint16_t aNumberOfBits, uint8_t aFlags, uint16_t aRepeatPeriodMillis, int_fast8_t aNumberOfRepeats)
 
void IRsend::sendPulseDistanceWidth (PulseDistanceWidthProtocolConstants *aProtocolConstants, IRDecodedRawDataType aData, uint_fast8_t aNumberOfBits, int_fast8_t aNumberOfRepeats)
 Sends PulseDistance frames and repeats. More...
 
void IRsend::sendPulseDistanceWidthFromArray (PulseDistanceWidthProtocolConstants *aProtocolConstants, IRDecodedRawDataType *aDecodedRawDataArray, uint16_t aNumberOfBits, int_fast8_t aNumberOfRepeats)
 Sends PulseDistance data from array using PulseDistanceWidthProtocolConstants For LSB First the LSB of array[0] is sent first then all bits until MSB of array[0]. More...
 
void IRsend::sendPulseDistanceWidthFromPGMArray (PulseDistanceWidthProtocolConstants *aProtocolConstants, IRDecodedRawDataType const *aDecodedRawDataPGMArray, uint16_t aNumberOfBits, int_fast8_t aNumberOfRepeats)
 
void IRsend::sendPulseDistanceWidthFromArray_P (PulseDistanceWidthProtocolConstants const *aProtocolConstantsPGM, IRDecodedRawDataType *aDecodedRawDataArray, uint16_t aNumberOfBits, int_fast8_t aNumberOfRepeats)
 
void IRsend::sendPulseDistanceWidthFromPGMArray_P (PulseDistanceWidthProtocolConstants const *aProtocolConstantsPGM, IRDecodedRawDataType const *aDecodedRawDataPGMArray, uint16_t aNumberOfBits, int_fast8_t aNumberOfRepeats)
 
void IRsend::sendPulseDistanceWidth_P (PulseDistanceWidthProtocolConstants const *aProtocolConstantsPGM, IRDecodedRawDataType aData, uint_fast8_t aNumberOfBits, int_fast8_t aNumberOfRepeats)
 
void IRsend::sendBiphaseData (uint16_t aBiphaseTimeUnit, uint32_t aData, uint_fast8_t aNumberOfBits, bool aSendStartBit=true)
 Sends Biphase (Manchester) coded data MSB first This function concatenates two marks to one longer mark, thus avoiding the programmatically pause between the generation of two separate marks. More...
 
void IRsend::mark (uint16_t aMarkMicros)
 Sends an IR mark for the specified number of microseconds. More...
 
void IRsend::IRLedOff ()
 Just switch the IR sending LED off to send an IR space A space is "no output", so the PWM output is disabled. More...
 
static void IRsend::space (uint16_t aSpaceMicros)
 Sends an IR space for the specified number of microseconds. More...
 
static void IRsend::customDelayMicroseconds (unsigned long aMicroseconds)
 Custom delay function that circumvents Arduino's delayMicroseconds 16 bit limit and is (mostly) not extended by the duration of interrupt codes like the millis() interrupt. More...
 
void IRsend::enableIROut (uint_fast8_t aFrequencyKHz)
 Enables IR output. More...
 
uint16_t IRsend::getPulseCorrectionNanos ()
 

Variables

IRsend IrSender
 

Detailed Description

Function Documentation

◆ IRsend() [1/2]

IRsend::IRsend ( )

Definition at line 64 of file IRSend.hpp.

◆ IRsend() [2/2]

IRsend::IRsend ( uint_fast8_t  aSendPin)

Definition at line 92 of file IRSend.hpp.

◆ begin() [1/3]

void IRsend::begin ( uint_fast8_t  aSendPin)

Initializes the send pin and enable LED feedback with board specific LED_BUILTIN pin if it is defined as macro.

Parameters
aSendPinThe Arduino pin number, where a IR sender diode is connected.

Definition at line 100 of file IRSend.hpp.

Here is the caller graph for this function:

◆ begin() [2/3]

void IRsend::begin ( uint_fast8_t  aSendPin,
bool  aEnableLEDFeedback,
uint_fast8_t  aFeedbackLEDPin 
)

Definition at line 129 of file IRSend.hpp.

Here is the call graph for this function:

◆ begin() [3/3]

void IRsend::begin ( uint_fast8_t  aSendPin,
uint_fast8_t  aFeedbackLEDPin 
)

Initializes the send and feedback pin.

Parameters
aSendPinThe Arduino pin number, where a IR sender diode is connected.
aFeedbackLEDPinIf 0xFF, then take board specific LED_BUILTIN pin if it is defined as macro

Definition at line 113 of file IRSend.hpp.

Here is the call graph for this function:

◆ customDelayMicroseconds()

void IRsend::customDelayMicroseconds ( unsigned long  aMicroseconds)
static

Custom delay function that circumvents Arduino's delayMicroseconds 16 bit limit and is (mostly) not extended by the duration of interrupt codes like the millis() interrupt.

Definition at line 1466 of file IRSend.hpp.

Here is the caller graph for this function:

◆ enableIROut()

void IRsend::enableIROut ( uint_fast8_t  aFrequencyKHz)

Enables IR output.

The kHz value controls the modulation frequency in kilohertz. IF PWM should be generated by a timer, it uses the platform specific timerConfigForSend() function, otherwise it computes the delays used by the mark() function. If IR_SEND_PIN is defined, maximum PWM frequency for an AVR @16 MHz is 170 kHz (180 kHz if NO_LED_SEND_FEEDBACK_CODE is defined)

Definition at line 1498 of file IRSend.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getPulseCorrectionNanos()

uint16_t IRsend::getPulseCorrectionNanos ( )

Definition at line 1555 of file IRSend.hpp.

◆ IRLedOff()

void IRsend::IRLedOff ( )

Just switch the IR sending LED off to send an IR space A space is "no output", so the PWM output is disabled.

This function may affect the state of feedback LED.

Definition at line 1416 of file IRSend.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mark()

void IRsend::mark ( uint16_t  aMarkMicros)

Sends an IR mark for the specified number of microseconds.

The mark output is modulated at the PWM frequency if USE_NO_SEND_PWM is not defined. The output is guaranteed to be OFF / inactive after after the call of the function. This function may affect the state of feedback LED. Period time is 26 us for 38.46 kHz, 27 us for 37.04 kHz, 25 us for 40 kHz. On time is 8 us for 30% duty cycle

The mark() function relies on the correct implementation of: delayMicroseconds() for pulse time, and micros() for pause time. The delayMicroseconds() of pulse time is guarded on AVR CPU's with noInterrupts() / interrupts(). At the start of pause time, interrupts are enabled once, the rest of the pause is also guarded on AVR CPU's with noInterrupts() / interrupts(). The maximum length of an interrupt during sending should not exceed 26 us - 8 us = 18 us, otherwise timing is disturbed. This disturbance is no problem, if the exceedance is small and does not happen too often.

Definition at line 1247 of file IRSend.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sendBiphaseData()

void IRsend::sendBiphaseData ( uint16_t  aBiphaseTimeUnit,
uint32_t  aData,
uint_fast8_t  aNumberOfBits,
bool  aSendStartBit = true 
)

Sends Biphase (Manchester) coded data MSB first This function concatenates two marks to one longer mark, thus avoiding the programmatically pause between the generation of two separate marks.

Send an additional start bit if specified 0 -> mark+space 1 -> space+mark The output always ends with a space / inactive level

Parameters
aDatauint32 holding the bits to be sent.
aNumberOfBitsNumber of bits from aData to be actually sent.
aSendStartBitif true sends an additional start bit with value 1 as MSB, if false no start bit is sent and data may start with 0 or 1.

Definition at line 1178 of file IRSend.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sendPulseDistanceWidth() [1/2]

void IRsend::sendPulseDistanceWidth ( PulseDistanceWidthProtocolConstants aProtocolConstants,
IRDecodedRawDataType  aData,
uint_fast8_t  aNumberOfBits,
int_fast8_t  aNumberOfRepeats 
)

Sends PulseDistance frames and repeats.

Parameters
aProtocolConstantsThe constants to use for sending this protocol.
aDatauint32 or uint64 holding the bits to be sent.
aNumberOfBitsNumber of bits from aData to be actually sent.
aNumberOfRepeatsIf < 0 and a aProtocolConstants->SpecialSendRepeatFunction() is specified then it is called without leading and trailing space.

Definition at line 917 of file IRSend.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sendPulseDistanceWidth() [2/2]

void IRsend::sendPulseDistanceWidth ( uint_fast8_t  aFrequencyKHz,
uint16_t  aHeaderMarkMicros,
uint16_t  aHeaderSpaceMicros,
uint16_t  aOneMarkMicros,
uint16_t  aOneSpaceMicros,
uint16_t  aZeroMarkMicros,
uint16_t  aZeroSpaceMicros,
IRDecodedRawDataType  aData,
uint_fast8_t  aNumberOfBits,
uint8_t  aFlags,
uint16_t  aRepeatPeriodMillis,
int_fast8_t  aNumberOfRepeats,
void(*)()  aSpecialSendRepeatFunction = nullptr 
)

Sends PulseDistance frames and repeats.

Parameters
aFrequencyKHz,aHeaderMarkMicros,aHeaderSpaceMicros,aOneMarkMicros,aOneSpaceMicros,aZeroMarkMicros,aZeroSpaceMicros,aFlags,aRepeatPeriodMillisValues to use for sending this protocol, also contained in the PulseDistanceWidthProtocolConstants of this protocol.
aDatauint32 or uint64 holding the bits to be sent.
aNumberOfBitsNumber of bits from aData to be actually sent.
aFlagsEvaluated flags are PROTOCOL_IS_MSB_FIRST and SUPPRESS_STOP_BIT. Stop bit is otherwise sent for all pulse distance protocols.
aNumberOfRepeatsIf < 0 and a aProtocolConstants->SpecialSendRepeatFunction() is specified then it is called without leading and trailing space.
aSpecialSendRepeatFunctionIf nullptr, the first frame is repeated completely, otherwise this function is used for sending the repeat frame.

Definition at line 693 of file IRSend.hpp.

Here is the call graph for this function:

◆ sendPulseDistanceWidth_P()

void IRsend::sendPulseDistanceWidth_P ( PulseDistanceWidthProtocolConstants const *  aProtocolConstantsPGM,
IRDecodedRawDataType  aData,
uint_fast8_t  aNumberOfBits,
int_fast8_t  aNumberOfRepeats 
)

Definition at line 1158 of file IRSend.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sendPulseDistanceWidthData() [1/2]

void IRsend::sendPulseDistanceWidthData ( PulseDistanceWidthProtocolConstants aProtocolConstants,
IRDecodedRawDataType  aData,
uint_fast8_t  aNumberOfBits 
)

Sends PulseDistance from data contained in parameter using ProtocolConstants structure for timing etc.

The output always ends with a space Each additional call costs 16 bytes program memory

Parameters
aProtocolConstantsThe constants to use for sending this protocol.
aDatauint32 or uint64 holding the bits to be sent.
aNumberOfBitsNumber of bits from aData to be actually sent.

Definition at line 662 of file IRSend.hpp.

Here is the caller graph for this function:

◆ sendPulseDistanceWidthData() [2/2]

void IRsend::sendPulseDistanceWidthData ( uint16_t  aOneMarkMicros,
uint16_t  aOneSpaceMicros,
uint16_t  aZeroMarkMicros,
uint16_t  aZeroSpaceMicros,
IRDecodedRawDataType  aData,
uint_fast8_t  aNumberOfBits,
uint8_t  aFlags 
)

Sends PulseDistance data with timing parameters and flag parameters.

The output always ends with a space

Parameters
aOneMarkMicrosTiming for sending this protocol.
aDatauint32 or uint64 holding the bits to be sent.
aNumberOfBitsNumber of bits from aData to be actually sent.
aFlagsEvaluated flags are PROTOCOL_IS_MSB_FIRST and SUPPRESS_STOP_BIT. Stop bit is otherwise sent for all pulse distance protocols.

Definition at line 611 of file IRSend.hpp.

Here is the call graph for this function:

◆ sendPulseDistanceWidthData_P()

void IRsend::sendPulseDistanceWidthData_P ( PulseDistanceWidthProtocolConstants const *  aProtocolConstantsPGM,
IRDecodedRawDataType  aData,
uint_fast8_t  aNumberOfBits 
)

Definition at line 670 of file IRSend.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sendPulseDistanceWidthFromArray() [1/3]

void IRsend::sendPulseDistanceWidthFromArray ( PulseDistanceWidthProtocolConstants aProtocolConstants,
IRDecodedRawDataType aDecodedRawDataArray,
uint16_t  aNumberOfBits,
int_fast8_t  aNumberOfRepeats 
)

Sends PulseDistance data from array using PulseDistanceWidthProtocolConstants For LSB First the LSB of array[0] is sent first then all bits until MSB of array[0].

Next is LSB of array[1] and so on. The output always ends with a space Stop bit is always sent

Parameters
aNumberOfBitsNumber of bits from aDecodedRawDataArray to be actually sent.
aNumberOfRepeatsIf < 0 and a aProtocolConstants->SpecialSendRepeatFunction() is specified then it is called without leading and trailing space.

Definition at line 982 of file IRSend.hpp.

Here is the call graph for this function:

◆ sendPulseDistanceWidthFromArray() [2/3]

void IRsend::sendPulseDistanceWidthFromArray ( uint_fast8_t  aFrequencyKHz,
DistanceWidthTimingInfoStruct aDistanceWidthTimingInfo,
IRDecodedRawDataType aDecodedRawDataArray,
uint16_t  aNumberOfBits,
uint8_t  aFlags,
uint16_t  aRepeatPeriodMillis,
int_fast8_t  aNumberOfRepeats 
)

Sends PulseDistance data from array For LSB First the LSB of array[0] is sent first then all bits until MSB of array[0].

Next is LSB of array[1] and so on. The output always ends with a space Stop bit is always sent

Parameters
aFlagsEvaluated flags are PROTOCOL_IS_MSB_FIRST and SUPPRESS_STOP_BIT. Stop bit is otherwise sent for all pulse distance protocols.

Definition at line 886 of file IRSend.hpp.

Here is the call graph for this function:

◆ sendPulseDistanceWidthFromArray() [3/3]

void IRsend::sendPulseDistanceWidthFromArray ( uint_fast8_t  aFrequencyKHz,
uint16_t  aHeaderMarkMicros,
uint16_t  aHeaderSpaceMicros,
uint16_t  aOneMarkMicros,
uint16_t  aOneSpaceMicros,
uint16_t  aZeroMarkMicros,
uint16_t  aZeroSpaceMicros,
IRDecodedRawDataType aDecodedRawDataArray,
uint16_t  aNumberOfBits,
uint8_t  aFlags,
uint16_t  aRepeatPeriodMillis,
int_fast8_t  aNumberOfRepeats 
)

Definition at line 739 of file IRSend.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sendPulseDistanceWidthFromArray_P() [1/2]

void IRsend::sendPulseDistanceWidthFromArray_P ( PulseDistanceWidthProtocolConstants const *  aProtocolConstantsPGM,
IRDecodedRawDataType aDecodedRawDataArray,
uint16_t  aNumberOfBits,
int_fast8_t  aNumberOfRepeats 
)

Definition at line 1139 of file IRSend.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sendPulseDistanceWidthFromArray_P() [2/2]

void IRsend::sendPulseDistanceWidthFromArray_P ( uint_fast8_t  aFrequencyKHz,
DistanceWidthTimingInfoStruct const *  aDistanceWidthTimingInfoPGM,
IRDecodedRawDataType aDecodedRawDataArray,
uint16_t  aNumberOfBits,
uint8_t  aFlags,
uint16_t  aRepeatPeriodMillis,
int_fast8_t  aNumberOfRepeats 
)

Definition at line 896 of file IRSend.hpp.

Here is the call graph for this function:

◆ sendPulseDistanceWidthFromPGMArray() [1/2]

void IRsend::sendPulseDistanceWidthFromPGMArray ( PulseDistanceWidthProtocolConstants aProtocolConstants,
IRDecodedRawDataType const *  aDecodedRawDataPGMArray,
uint16_t  aNumberOfBits,
int_fast8_t  aNumberOfRepeats 
)

Definition at line 1056 of file IRSend.hpp.

Here is the call graph for this function:

◆ sendPulseDistanceWidthFromPGMArray() [2/2]

void IRsend::sendPulseDistanceWidthFromPGMArray ( uint_fast8_t  aFrequencyKHz,
uint16_t  aHeaderMarkMicros,
uint16_t  aHeaderSpaceMicros,
uint16_t  aOneMarkMicros,
uint16_t  aOneSpaceMicros,
uint16_t  aZeroMarkMicros,
uint16_t  aZeroSpaceMicros,
IRDecodedRawDataType const *  aDecodedRawDataPGMArray,
uint16_t  aNumberOfBits,
uint8_t  aFlags,
uint16_t  aRepeatPeriodMillis,
int_fast8_t  aNumberOfRepeats 
)

Definition at line 804 of file IRSend.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sendPulseDistanceWidthFromPGMArray_P()

void IRsend::sendPulseDistanceWidthFromPGMArray_P ( PulseDistanceWidthProtocolConstants const *  aProtocolConstantsPGM,
IRDecodedRawDataType const *  aDecodedRawDataPGMArray,
uint16_t  aNumberOfBits,
int_fast8_t  aNumberOfRepeats 
)

Definition at line 1148 of file IRSend.hpp.

Here is the call graph for this function:

◆ sendRaw() [1/4]

void IRsend::sendRaw ( const uint16_t  aBufferWithMicroseconds[],
uint_fast16_t  aLengthOfBuffer,
uint_fast8_t  aIRFrequencyKilohertz 
)

Sends a 16 byte microsecond timing array.

Raw data starts with a Mark. No leading space as in received timing data!

Definition at line 400 of file IRSend.hpp.

Here is the call graph for this function:

◆ sendRaw() [2/4]

void IRsend::sendRaw ( const uint16_t  aBufferWithMicroseconds[],
uint_fast16_t  aLengthOfBuffer,
uint_fast8_t  aIRFrequencyKilohertz,
uint_fast16_t  aRepeatPeriodMillis,
int_fast8_t  aNumberOfRepeats 
)

Definition at line 426 of file IRSend.hpp.

Here is the call graph for this function:

◆ sendRaw() [3/4]

void IRsend::sendRaw ( const uint8_t  aBufferWithTicks[],
uint_fast16_t  aLengthOfBuffer,
uint_fast8_t  aIRFrequencyKilohertz 
)

Sends an 8 byte tick timing array to save program memory.

Raw data starts with a Mark. No leading space as in received timing data!

Definition at line 453 of file IRSend.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sendRaw() [4/4]

void IRsend::sendRaw ( const uint8_t  aBufferWithTicks[],
uint_fast16_t  aLengthOfBuffer,
uint_fast8_t  aIRFrequencyKilohertz,
uint_fast16_t  aRepeatPeriodMillis,
int_fast8_t  aNumberOfRepeats 
)

Definition at line 466 of file IRSend.hpp.

Here is the call graph for this function:

◆ sendRaw_P() [1/4]

void IRsend::sendRaw_P ( const uint16_t  aPGMBufferWithMicroseconds[],
uint_fast16_t  aLengthOfBuffer,
uint_fast8_t  aIRFrequencyKilohertz 
)

Function using an 16 byte microsecond timing array in FLASH for every purpose.

Raw data starts with a Mark. No leading space as in received timing data!

Definition at line 493 of file IRSend.hpp.

Here is the call graph for this function:

◆ sendRaw_P() [2/4]

void IRsend::sendRaw_P ( const uint16_t  aPGMBufferWithMicroseconds[],
uint_fast16_t  aLengthOfBuffer,
uint_fast8_t  aIRFrequencyKilohertz,
uint_fast16_t  aRepeatPeriodMillis,
int_fast8_t  aNumberOfRepeats 
)

Definition at line 523 of file IRSend.hpp.

Here is the call graph for this function:

◆ sendRaw_P() [3/4]

void IRsend::sendRaw_P ( const uint8_t  aPGMBufferWithTicks[],
uint_fast16_t  aLengthOfBuffer,
uint_fast8_t  aIRFrequencyKilohertz 
)

New function using an 8 byte tick (50 us) timing array in FLASH to save program memory Raw data starts with a Mark.

No leading space as in received timing data!

Definition at line 556 of file IRSend.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sendRaw_P() [4/4]

void IRsend::sendRaw_P ( const uint8_t  aPGMBufferWithTicks[],
uint_fast16_t  aLengthOfBuffer,
uint_fast8_t  aIRFrequencyKilohertz,
uint_fast16_t  aRepeatPeriodMillis,
int_fast8_t  aNumberOfRepeats 
)

Definition at line 577 of file IRSend.hpp.

Here is the call graph for this function:

◆ setSendPin()

void IRsend::setSendPin ( uint_fast8_t  aSendPin)

Definition at line 104 of file IRSend.hpp.

◆ space()

void IRsend::space ( uint16_t  aSpaceMicros)
static

Sends an IR space for the specified number of microseconds.

A space is "no output", so just wait. Executing program between end of mark and start of next mark uses around 15 to 20 us @ 16 MHz. This time is adds to the space delay here.

Definition at line 1458 of file IRSend.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ write()

size_t IRsend::write ( decode_type_t  aProtocol,
uint16_t  aAddress,
uint16_t  aCommand,
int_fast8_t  aNumberOfRepeats = NO_REPEATS 
)

Interprets and sends a IRData structure.

Simple version of write without support for MAGIQUEST and numberOfBits for SONY protocol.

Parameters
aIRSendDataThe values of protocol, address, command and repeat flag are taken for sending.
aNumberOfRepeatsNumber of repeats to send after the initial data if data is no repeat.
Returns
1 if data sent, 0 if no data sent (i.e. for BANG_OLUFSEN, which is currently not supported here) Interprets and sends a IRData structure.
Parameters
aIRSendDataThe values of protocol, address, command and repeat flag are taken for sending.
aNumberOfRepeatsNumber of repeats to send after the initial data if data is no repeat.
Returns
1 if data sent, 0 if no data sent (i.e. for BANG_OLUFSEN, which is currently not supported here)
Parameters
aNumberOfRepeatsIf aNumberOfRepeats < 0 then only a special repeat frame without leading and trailing space will be sent by calling NECProtocolConstants.SpecialSendRepeatFunction().

Definition at line 146 of file IRSend.hpp.

Here is the call graph for this function:

Variable Documentation

◆ IrSender

IRsend IrSender

Definition at line 62 of file IRSend.hpp.