Go to the documentation of this file.
38 #if defined(DEBUG) && !defined(LOCAL_DEBUG)
82 while (tNumberOfCommands > 0) {
91 if (tNumberOfCommands > 0) {
116 #if defined(LOCAL_DEBUG)
117 Serial.print(F(
"FAST: "));
118 Serial.println(F(
"Decode failed"));
127 #if defined(LOCAL_DEBUG)
128 Serial.print(F(
"FAST: "));
129 Serial.print(F(
"8 bit parity is not correct. Expected=0x"));
131 Serial.print(F(
" received=0x"));
133 Serial.print(F(
" data=0x"));
134 Serial.println(tValue.
UWord, HEX);
152 #if defined(LOCAL_DEBUG)
155 #endif // _IR_FAST_HPP
uint16_t address
Decoded address, Distance protocol (tMarkTicksLong (if tMarkTicksLong == 0, then tMarkTicksShort) << ...
#define MICROS_PER_TICK
microseconds per clock interrupt tick
uint16_t numberOfBits
Number of bits received for data (address + command + parity) - to determine protocol length if diffe...
void int_fast8_t aNumberOfRepeats
Union to specify parts / manifestations of a 16 bit Word without casts and shifts.
#define MICROS_IN_ONE_MILLI
struct PulseDistanceWidthProtocolConstants FASTProtocolConstants
struct WordUnion::@2 UByte
void mark(uint16_t aMarkMicros)
Sends an IR mark for the specified number of microseconds.
IRRawDataType decodedRawData
Up to 32/64 bit decoded raw data, to be used for send functions.
void checkForRepeatSpaceTicksAndSetFlag(uint16_t aMaximumRepeatSpaceTicks)
#define IR_DEBUG_PRINT(...)
If DEBUG, print the arguments, otherwise do nothing.
#define IRDATA_FLAGS_PARITY_FAILED
The current (autorepeat) frame violated parity check.
uint8_t flags
IRDATA_FLAGS_IS_REPEAT, IRDATA_FLAGS_WAS_OVERFLOW etc. See IRDATA_FLAGS_* definitions above.
#define PROTOCOL_IS_LSB_FIRST
bool checkHeader(PulseDistanceWidthProtocolConstants *aProtocolConstants)
bool decodePulseDistanceWidthData(PulseDistanceWidthProtocolConstants *aProtocolConstants, uint_fast8_t aNumberOfBits, IRRawlenType aStartOffset=3)
Decode pulse distance protocols for PulseDistanceWidthProtocolConstants.
uint16_t command
Decoded command, Distance protocol (tMarkTicksShort << 8) | tSpaceTicksShort.
#define FAST_MAXIMUM_REPEAT_DISTANCE
#define FAST_REPEAT_PERIOD
static void space(uint16_t aSpaceMicros)
Sends an IR space for the specified number of microseconds.
#define FAST_KHZ
The FAST protocol is a proprietary modified JVC protocol without address, with parity and with a shor...
IRRawlenType rawlen
counter of entries in rawbuf of last received frame.
#define FAST_HEADER_SPACE
#define FAST_REPEAT_DISTANCE
void sendFAST(uint8_t aSendPin, uint16_t aCommand, uint_fast8_t aNumberOfRepeats=0)
void sendPulseDistanceWidthData(PulseDistanceWidthProtocolConstants *aProtocolConstants, IRRawDataType aData, uint_fast8_t aNumberOfBits)
Sends PulseDistance from data contained in parameter using ProtocolConstants structure for timing etc...
#define IR_DEBUG_PRINTLN(...)
If DEBUG, print the arguments as a line, otherwise do nothing.
decode_type_t protocol
UNKNOWN, NEC, SONY, RC5, PULSE_DISTANCE, ...
void enableIROut(uint_fast8_t aFrequencyKHz)
Enables IR output.