1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- #ifndef __TOSHIBA_IR__
- #define __TOSHIBA_IR__
- #include <stdbool.h>
- #include <stdint.h>
- // Toshiba A/C
- /*
- #define kToshibaAcHdrMark ((uint32_t)4420)
- #define kToshibaAcHdrSpace ((uint32_t)4450)
- #define kToshibaAcBitMark ((uint32_t)570)
- #define kToshibaAcOneSpace ((uint32_t)1600)
- #define kToshibaAcZeroSpace ((uint32_t)510)
- #define kToshibaAcUsualGap ((uint32_t)7960)
- */
- /*
- Between two Panasonic IR Resends:
- I (8094) D: 410
- I (8094) D: 460
- I (8094) D: 9900
- I (8104) D: 3580
- I (8104) D: 1630
- I (8104) D: 500
- I (8104) D: 410
- I (8114) D: 460*/
- // Panasonic LZ35 A/C
- #define kPanasonicAcHdrMark ((uint32_t)3456)
- #define kPanasonicAcHdrSpace ((uint32_t)1728)
- #define kPanasonicAcBitMark ((uint32_t)432)
- #define kPanasonicAcOneSpace ((uint32_t)1296)
- #define kPanasonicAcZeroSpace ((uint32_t)432)
- #define kPanasonicAcUsualGap ((uint32_t)9940)
- #define kPanasonicNumberOfBits 152
- #define kPanasonicNumberOfBytes (kPanasonicNumberOfBits/8) // 19 Bytes
- void Toshiba_ir_ResetDecoder ();
- uint8_t* nextPulseToshiba_ir(uint32_t width);
- //#define kToshibaNumberOfBits 72
- //#define kToshibaNumberOfBytes (kToshibaNumberOfBits/8)
- struct toshibaDataBits {
- // Byte[0] - 0xF2
- uint8_t :8;
- // Byte[1] - 0x0D (inverted previous byte's value)
- uint8_t :8;
- // Byte[2] - The expected payload length (in bytes) past the Byte[4].
- ///< Known lengths are:
- ///< 1 (56 bit message)
- ///< 3 (72 bit message)
- ///< 4 (80 bit message)
- uint8_t Length :8;
- // Byte[3] - The bit-inverted value of the "length" byte.
- uint8_t :8;
- // Byte[4]
- uint8_t :3;
- uint8_t LongMsg :1;
- uint8_t :1;
- uint8_t ShortMsg :1;
- uint8_t :2;
- // Byte[5]
- uint8_t Swing :3;
- uint8_t :1;
- uint8_t Temp :4;
- // Byte[6]
- uint8_t Mode :3;
- uint8_t :2;
- uint8_t Fan :3;
- // Byte[7]
- uint8_t :4;
- uint8_t Filter :1;
- uint8_t :3;
- // Byte[8]
- // (Checksum for 72 bit messages, Eco/Turbo for long 80 bit messages)
- uint8_t EcoTurbo :8;
- };
- union ToshibaProtocolU {
- uint8_t raw[kPanasonicNumberOfBytes]; ///< The state in code form.
- struct toshibaDataBits data;
- };
- #endif
|