IRremote
|
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 FEEDBACK_LED_ON() and FEEDBACK_LED_OFF() functions. 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 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_P (const uint16_t aBufferWithMicroseconds[], 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 uint8_t aBufferWithTicks[], 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::sendPulseDistanceWidthData (uint16_t aOneMarkMicros, uint16_t aOneSpaceMicros, uint16_t aZeroMarkMicros, uint16_t aZeroSpaceMicros, IRRawDataType aData, uint_fast8_t aNumberOfBits, uint8_t aFlags) |
Sends PulseDistance data with timing parameters and flag parameters. More... | |
void | IRsend::sendPulseDistanceWidthData (PulseDistanceWidthProtocolConstants *aProtocolConstants, IRRawDataType 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, IRRawDataType 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, IRRawDataType 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, IRRawDataType *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, IRRawDataType const *aDecodedRawDataPGMArray, uint16_t aNumberOfBits, uint8_t aFlags, uint16_t aRepeatPeriodMillis, int_fast8_t aNumberOfRepeats) |
void | IRsend::sendPulseDistanceWidthFromArray (uint_fast8_t aFrequencyKHz, DistanceWidthTimingInfoStruct *aDistanceWidthTimingInfo, IRRawDataType *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, IRRawDataType *aDecodedRawDataArray, uint16_t aNumberOfBits, uint8_t aFlags, uint16_t aRepeatPeriodMillis, int_fast8_t aNumberOfRepeats) |
void | IRsend::sendPulseDistanceWidth (PulseDistanceWidthProtocolConstants *aProtocolConstants, IRRawDataType aData, uint_fast8_t aNumberOfBits, int_fast8_t aNumberOfRepeats) |
Sends PulseDistance frames and repeats. More... | |
void | IRsend::sendPulseDistanceWidthFromArray (PulseDistanceWidthProtocolConstants *aProtocolConstants, IRRawDataType *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, IRRawDataType const *aDecodedRawDataPGMArray, uint16_t aNumberOfBits, int_fast8_t aNumberOfRepeats) |
void | IRsend::sendPulseDistanceWidthFromArray_P (PulseDistanceWidthProtocolConstants const *aProtocolConstantsPGM, IRRawDataType *aDecodedRawDataArray, uint16_t aNumberOfBits, int_fast8_t aNumberOfRepeats) |
void | IRsend::sendPulseDistanceWidthFromPGMArray_P (PulseDistanceWidthProtocolConstants const *aProtocolConstantsPGM, IRRawDataType const *aDecodedRawDataPGMArray, uint16_t aNumberOfBits, int_fast8_t aNumberOfRepeats) |
void | IRsend::sendPulseDistanceWidth_P (PulseDistanceWidthProtocolConstants const *aProtocolConstantsPGM, IRRawDataType aData, uint_fast8_t aNumberOfBits, int_fast8_t aNumberOfRepeats) |
void | IRsend::sendBiphaseData (uint16_t aBiphaseTimeUnit, uint32_t aData, uint_fast8_t aNumberOfBits) |
Sends Biphase data MSB first Always send start bit, do not send the trailing space of the start bit 0 -> mark+space 1 -> space+mark The output always ends with a space can only send 31 bit data, since we put the start bit as 32th bit on front. 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 |
IRsend::IRsend | ( | ) |
Definition at line 71 of file IRSend.hpp.
IRsend::IRsend | ( | uint_fast8_t | aSendPin | ) |
Definition at line 99 of file IRSend.hpp.
void IRsend::begin | ( | uint_fast8_t | aSendPin | ) |
Initializes the send pin and enable LED feedback with board specific FEEDBACK_LED_ON() and FEEDBACK_LED_OFF() functions.
aSendPin | The Arduino pin number, where a IR sender diode is connected. |
Definition at line 107 of file IRSend.hpp.
void IRsend::begin | ( | uint_fast8_t | aSendPin, |
bool | aEnableLEDFeedback, | ||
uint_fast8_t | aFeedbackLEDPin | ||
) |
Definition at line 136 of file IRSend.hpp.
void IRsend::begin | ( | uint_fast8_t | aSendPin, |
uint_fast8_t | aFeedbackLEDPin | ||
) |
Initializes the send and feedback pin.
aSendPin | The Arduino pin number, where a IR sender diode is connected. |
aFeedbackLEDPin | If 0 / USE_DEFAULT_FEEDBACK_LED_PIN, then take board specific FEEDBACK_LED_ON() and FEEDBACK_LED_OFF() functions |
Definition at line 120 of file IRSend.hpp.
|
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 1372 of file IRSend.hpp.
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 1404 of file IRSend.hpp.
uint16_t IRsend::getPulseCorrectionNanos | ( | ) |
Definition at line 1461 of file IRSend.hpp.
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 1322 of file IRSend.hpp.
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 1153 of file IRSend.hpp.
void IRsend::sendBiphaseData | ( | uint16_t | aBiphaseTimeUnit, |
uint32_t | aData, | ||
uint_fast8_t | aNumberOfBits | ||
) |
Sends Biphase data MSB first Always send start bit, do not send the trailing space of the start bit 0 -> mark+space 1 -> space+mark The output always ends with a space can only send 31 bit data, since we put the start bit as 32th bit on front.
aData | uint32 or uint64 holding the bits to be sent. |
aNumberOfBits | Number of bits from aData to be actually sent. |
Definition at line 1093 of file IRSend.hpp.
void IRsend::sendPulseDistanceWidth | ( | PulseDistanceWidthProtocolConstants * | aProtocolConstants, |
IRRawDataType | aData, | ||
uint_fast8_t | aNumberOfBits, | ||
int_fast8_t | aNumberOfRepeats | ||
) |
Sends PulseDistance frames and repeats.
aProtocolConstants | The constants to use for sending this protocol. |
aData | uint32 or uint64 holding the bits to be sent. |
aNumberOfBits | Number of bits from aData to be actually sent. |
aNumberOfRepeats | If < 0 and a aProtocolConstants->SpecialSendRepeatFunction() is specified then it is called without leading and trailing space. |
Definition at line 833 of file IRSend.hpp.
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, | ||
IRRawDataType | aData, | ||
uint_fast8_t | aNumberOfBits, | ||
uint8_t | aFlags, | ||
uint16_t | aRepeatPeriodMillis, | ||
int_fast8_t | aNumberOfRepeats, | ||
void(*)() | aSpecialSendRepeatFunction = nullptr |
||
) |
Sends PulseDistance frames and repeats.
aFrequencyKHz,aHeaderMarkMicros,aHeaderSpaceMicros,aOneMarkMicros,aOneSpaceMicros,aZeroMarkMicros,aZeroSpaceMicros,aFlags,aRepeatPeriodMillis | Values to use for sending this protocol, also contained in the PulseDistanceWidthProtocolConstants of this protocol. |
aData | uint32 or uint64 holding the bits to be sent. |
aNumberOfBits | Number of bits from aData to be actually sent. |
aFlags | Evaluated flags are PROTOCOL_IS_MSB_FIRST and SUPPRESS_STOP_BIT. Stop bit is otherwise sent for all pulse distance protocols. |
aNumberOfRepeats | If < 0 and a aProtocolConstants->SpecialSendRepeatFunction() is specified then it is called without leading and trailing space. |
aSpecialSendRepeatFunction | If nullptr, the first frame is repeated completely, otherwise this function is used for sending the repeat frame. |
Definition at line 609 of file IRSend.hpp.
void IRsend::sendPulseDistanceWidth_P | ( | PulseDistanceWidthProtocolConstants const * | aProtocolConstantsPGM, |
IRRawDataType | aData, | ||
uint_fast8_t | aNumberOfBits, | ||
int_fast8_t | aNumberOfRepeats | ||
) |
Definition at line 1075 of file IRSend.hpp.
void IRsend::sendPulseDistanceWidthData | ( | PulseDistanceWidthProtocolConstants * | aProtocolConstants, |
IRRawDataType | 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
aProtocolConstants | The constants to use for sending this protocol. |
aData | uint32 or uint64 holding the bits to be sent. |
aNumberOfBits | Number of bits from aData to be actually sent. |
Definition at line 578 of file IRSend.hpp.
void IRsend::sendPulseDistanceWidthData | ( | uint16_t | aOneMarkMicros, |
uint16_t | aOneSpaceMicros, | ||
uint16_t | aZeroMarkMicros, | ||
uint16_t | aZeroSpaceMicros, | ||
IRRawDataType | aData, | ||
uint_fast8_t | aNumberOfBits, | ||
uint8_t | aFlags | ||
) |
Sends PulseDistance data with timing parameters and flag parameters.
The output always ends with a space
aOneMarkMicros | Timing for sending this protocol. |
aData | uint32 or uint64 holding the bits to be sent. |
aNumberOfBits | Number of bits from aData to be actually sent. |
aFlags | Evaluated flags are PROTOCOL_IS_MSB_FIRST and SUPPRESS_STOP_BIT. Stop bit is otherwise sent for all pulse distance protocols. |
Definition at line 517 of file IRSend.hpp.
void IRsend::sendPulseDistanceWidthData_P | ( | PulseDistanceWidthProtocolConstants const * | aProtocolConstantsPGM, |
IRRawDataType | aData, | ||
uint_fast8_t | aNumberOfBits | ||
) |
Definition at line 586 of file IRSend.hpp.
void IRsend::sendPulseDistanceWidthFromArray | ( | PulseDistanceWidthProtocolConstants * | aProtocolConstants, |
IRRawDataType * | 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
aNumberOfBits | Number of bits from aDecodedRawDataArray to be actually sent. |
aNumberOfRepeats | If < 0 and a aProtocolConstants->SpecialSendRepeatFunction() is specified then it is called without leading and trailing space. |
Definition at line 899 of file IRSend.hpp.
void IRsend::sendPulseDistanceWidthFromArray | ( | uint_fast8_t | aFrequencyKHz, |
DistanceWidthTimingInfoStruct * | aDistanceWidthTimingInfo, | ||
IRRawDataType * | 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
aFlags | Evaluated flags are PROTOCOL_IS_MSB_FIRST and SUPPRESS_STOP_BIT. Stop bit is otherwise sent for all pulse distance protocols. |
Definition at line 802 of file IRSend.hpp.
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, | ||
IRRawDataType * | aDecodedRawDataArray, | ||
uint16_t | aNumberOfBits, | ||
uint8_t | aFlags, | ||
uint16_t | aRepeatPeriodMillis, | ||
int_fast8_t | aNumberOfRepeats | ||
) |
Definition at line 655 of file IRSend.hpp.
void IRsend::sendPulseDistanceWidthFromArray_P | ( | PulseDistanceWidthProtocolConstants const * | aProtocolConstantsPGM, |
IRRawDataType * | aDecodedRawDataArray, | ||
uint16_t | aNumberOfBits, | ||
int_fast8_t | aNumberOfRepeats | ||
) |
Definition at line 1056 of file IRSend.hpp.
void IRsend::sendPulseDistanceWidthFromArray_P | ( | uint_fast8_t | aFrequencyKHz, |
DistanceWidthTimingInfoStruct const * | aDistanceWidthTimingInfoPGM, | ||
IRRawDataType * | aDecodedRawDataArray, | ||
uint16_t | aNumberOfBits, | ||
uint8_t | aFlags, | ||
uint16_t | aRepeatPeriodMillis, | ||
int_fast8_t | aNumberOfRepeats | ||
) |
Definition at line 812 of file IRSend.hpp.
void IRsend::sendPulseDistanceWidthFromPGMArray | ( | PulseDistanceWidthProtocolConstants * | aProtocolConstants, |
IRRawDataType const * | aDecodedRawDataPGMArray, | ||
uint16_t | aNumberOfBits, | ||
int_fast8_t | aNumberOfRepeats | ||
) |
Definition at line 973 of file IRSend.hpp.
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, | ||
IRRawDataType const * | aDecodedRawDataPGMArray, | ||
uint16_t | aNumberOfBits, | ||
uint8_t | aFlags, | ||
uint16_t | aRepeatPeriodMillis, | ||
int_fast8_t | aNumberOfRepeats | ||
) |
Definition at line 720 of file IRSend.hpp.
void IRsend::sendPulseDistanceWidthFromPGMArray_P | ( | PulseDistanceWidthProtocolConstants const * | aProtocolConstantsPGM, |
IRRawDataType const * | aDecodedRawDataPGMArray, | ||
uint16_t | aNumberOfBits, | ||
int_fast8_t | aNumberOfRepeats | ||
) |
Definition at line 1065 of file IRSend.hpp.
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 401 of file IRSend.hpp.
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 422 of file IRSend.hpp.
void IRsend::sendRaw_P | ( | const uint16_t | aBufferWithMicroseconds[], |
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 441 of file IRSend.hpp.
void IRsend::sendRaw_P | ( | const uint8_t | aBufferWithTicks[], |
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 476 of file IRSend.hpp.
void IRsend::setSendPin | ( | uint_fast8_t | aSendPin | ) |
Definition at line 111 of file IRSend.hpp.
|
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 1364 of file IRSend.hpp.
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.
aIRSendData | The values of protocol, address, command and repeat flag are taken for sending. |
aNumberOfRepeats | Number of repeats to send after the initial data if data is no repeat. |
aIRSendData | The values of protocol, address, command and repeat flag are taken for sending. |
aNumberOfRepeats | Number of repeats to send after the initial data if data is no repeat. |
aNumberOfRepeats | If aNumberOfRepeats < 0 then only a special repeat frame without leading and trailing space will be sent by calling NECProtocolConstants.SpecialSendRepeatFunction(). |
Definition at line 153 of file IRSend.hpp.
IRsend IrSender |
Definition at line 69 of file IRSend.hpp.