Go to the documentation of this file.
35 #ifndef _IR_OTHERS_HPP
36 #define _IR_OTHERS_HPP
54 #define DISH_HEADER_MARK 400
55 #define DISH_HEADER_SPACE 6100
56 #define DISH_BIT_MARK 400
57 #define DISH_ONE_SPACE 1700
58 #define DISH_ZERO_SPACE 2800
59 #define DISH_REPEAT_SPACE 6200 // really?
80 #define WHYNTER_BITS 32
81 #define WHYNTER_HEADER_MARK 2850
82 #define WHYNTER_HEADER_SPACE 2850
83 #define WHYNTER_BIT_MARK 750
84 #define WHYNTER_ONE_SPACE 2150
85 #define WHYNTER_ZERO_SPACE 750
156 #define VELUX_BITS 24 // We have pulse width, so we have no stop bit
157 #define VELUX_HEADER_MARK 0
158 #define VELUX_HEADER_SPACE 0
159 #define VELUX_UNIT 425
160 #define VELUX_ONE_MARK (3*VELUX_UNIT) // 1275
161 #define VELUX_ONE_SPACE VELUX_UNIT
162 #define VELUX_ZERO_MARK VELUX_UNIT
163 #define VELUX_ZERO_SPACE (3*VELUX_UNIT)
164 #define VELUX_PERIOD ((23 * 4) + 1 ) * VELUX_UNIT) // 39525
165 #define VELUX_AUTOREPEAT_SPACE 27000 // 27ms
166 #define VELUX_REPEAT_SPACE 100000 // 100ms, which is just a guess
168 #define VELUX_COMMAND_AUTO_UP 0x1
169 #define VELUX_COMMAND_AUTO_DOWN 0x3
170 #define VELUX_COMMAND_STOP 0x5
181 void IRsend::sendVelux(uint8_t aCommand, uint8_t aMotorNumber, uint8_t aMotorSet, uint16_t aSecurityCode,
182 int_fast8_t aNumberOfRepeats) {
184 if (aMotorNumber == 3) {
191 uint8_t tChecksum = 8;
199 uint8_t tXORForMotor = 0;
200 if (aMotorNumber == 2) {
203 if (aMotorNumber == 4) {
207 tChecksum ^= aMotorSet;
208 tChecksum ^= tXORForMotor;
211 ((uint32_t)
aCommand << 21) | ((uint32_t) aMotorNumber << 18) | (aMotorSet << 14) | ((uint32_t) aSecurityCode << 4)
225 #endif // _IR_OTHERS_HPP
#define VELUX_BITS
VELUX see https://github.com/XPModder/Velux-IR-protocol see https://github.com/Arduino-IRremote/Ardui...
#define PROTOCOL_IS_MSB_FIRST
void sendDish(uint16_t aData)
#define PROTOCOL_IS_PULSE_WIDTH
#define WHYNTER_ONE_SPACE
uint16_t numberOfBits
Number of bits received for data (address + command + parity) - to determine protocol length if diffe...
void int_fast8_t aNumberOfRepeats
#define WHYNTER_HEADER_SPACE
void decodePulseDistanceWidthData_P(PulseDistanceWidthProtocolConstants const *aProtocolConstantsPGM, uint_fast8_t aNumberOfBits, IRRawlenType aStartOffset=3)
#define MICROS_IN_ONE_MILLI
bool checkHeader_P(PulseDistanceWidthProtocolConstants const *aProtocolConstantsPGM)
#define VELUX_AUTOREPEAT_SPACE
#define PROTOCOL_IS_PULSE_DISTANCE
void sendPulseDistanceWidth_P(PulseDistanceWidthProtocolConstants const *aProtocolConstantsPGM, IRRawDataType aData, uint_fast8_t aNumberOfBits, int_fast8_t aNumberOfRepeats)
struct PulseDistanceWidthProtocolConstants const DishProtocolConstants PROGMEM
#define VELUX_REPEAT_SPACE
#define VELUX_COMMAND_STOP
#define WHYNTER_HEADER_MARK
#define WHYNTER_ZERO_SPACE
#define VELUX_COMMAND_AUTO_DOWN
#define VELUX_HEADER_SPACE
uint8_t flags
IRDATA_FLAGS_IS_REPEAT, IRDATA_FLAGS_WAS_OVERFLOW etc. See IRDATA_FLAGS_* definitions above.
#define IRDATA_FLAGS_IS_MSB_FIRST
Value is mainly determined by the (known) protocol.
IRRawlenType rawlen
Counter of entries in rawbuf of last received frame.
#define DISH_HEADER_SPACE
void sendWhynter(uint32_t aData, int_fast8_t aNumberOfRepeats)
#define VELUX_HEADER_MARK
decode_type_t protocol
UNKNOWN, NEC, SONY, RC5, PULSE_DISTANCE, ...
void sendVelux(uint8_t aCommand, uint8_t aMotorNumber, uint8_t aMotorSet, uint16_t aSecurityCode, int_fast8_t aNumberOfRepeats)