From 3a7e26e1f87a0e738f763d2df005d5da1690696d Mon Sep 17 00:00:00 2001 From: ukw Date: Wed, 11 Jul 2012 13:14:36 +0000 Subject: [PATCH 1/1] Version 2.2.4: added BOSE protocol git-svn-id: svn://mikrocontroller.net/irmp@103 aeb2e35e-bfc4-4214-b83c-9e8de998ed28 --- IR-Data/bose_wave_system_15khz.txt | 18 ++++++++ IR-Data/test-suite.sh | 21 ++++----- IR-Data/tp400vt-15kHz.txt | 67 +++++++++++++++++++++++++++++ README.txt | 2 +- irmp.c | 69 +++++++++++++++++++++++++++++- irmpconfig.h | 3 +- irmpprotocols.h | 20 ++++++++- 7 files changed, 184 insertions(+), 16 deletions(-) create mode 100644 IR-Data/bose_wave_system_15khz.txt create mode 100644 IR-Data/tp400vt-15kHz.txt diff --git a/IR-Data/bose_wave_system_15khz.txt b/IR-Data/bose_wave_system_15khz.txt new file mode 100644 index 0000000..d807a55 --- /dev/null +++ b/IR-Data/bose_wave_system_15khz.txt @@ -0,0 +1,18 @@ +#1 +0000000000000000111111111111111111111000000001111111111111111111111000000001111111111111111111110000000001111111111111111111110000000011111110000000011111110000000011111110000000011111100000000011111100000000111111100000000111111100000000111111100000000111111111111111111111000000001111111111111111111111000000001111111111111111111110000000001111111111111111111110000000011111111111111111111110000000011111111111111111 +#2 +0000000000000000111111111111111111111100000000111111100000000111111000000000111111000000001111111111111111111111000000001111111000000001111110000000001111110000000001111110000000011111111111111111111110000000011111111111111111111100000000011111111111111111111100000000111111100000000111111111111111111111000000000111111111111111111111000000001111111111111111111111000000001111111111111111111110000000011111111111111111 +#3 +0000000000000000111111111111111111111000000000111111111111111111111000000001111111000000001111111000000001111111111111111111110000000001111110000000011111110000000011111110000000011111110000000011111100000000011111111111111111111100000000111111111111111111111100000000111111000000000111111111111111111111000000001111111111111111111111000000001111111111111111111110000000011111111111111111111110000000011111111111111111 +#4 +0000000000000000111111111111111111111000000000111111000000001111111111111111111111000000001111111000000001111111111111111111110000000001111110000000011111110000000011111110000000011111110000000011111111111111111111100000000111111100000000111111111111111111111100000000111111000000000111111111111111111111000000001111111111111111111111000000001111111111111111111110000000011111111111111111111110000000011111111111111111 +#5 +0000000000000000111111111111111111111100000000111111111111111111111000000000111111111111111111111000000001111111000000001111111111111111111111000000001111110000000001111110000000011111110000000011111110000000011111110000000011111100000000011111111111111111111100000000111111100000000111111111111111111111000000000111111111111111111111000000001111111111111111111111000000001111111111111111111110000000001111111111111111 +#6 +0000000000000000111111111111111111111100000000111111100000000111111000000000111111111111111111111000000001111111111111111111111000000001111111000000001111110000000001111110000000011111110000000011111111111111111111110000000011111111111111111111100000000111111100000000111111100000000111111111111111111111000000000111111111111111111111000000001111111111111111111111000000001111111111111111111110000000011111111111111111 +#Play/Pause +0000000000000000111111111111111111111000000000111111111111111111111000000001111111111111111111111000000001111110000000001111111111111111111110000000011111111111111111111110000000011111100000000011111100000000111111100000000111111100000000111111100000000111111111111111111111000000001111111000000001111111000000001111111111111111111110000000001111111111111111111110000000011111111111111111111110000000011111111111111111 +#Stop/Eject +000000000000000111111111111111111111100000000111111000000000111111111111111111111000000001111111000000001111111111111111111110000000001111111111111111111110000000011111110000000011111110000000011111110000000011111111111111111111100000000111111100000000111111111111111111111100000000111111000000000111111000000001111111111111111111111000000001111111111111111111110000000001111111111111111111110000000011111111111111111 +#Power On/Off +0000000000000000111111111111111111111000000000111111000000000111111000000001111111111111111111111000000001111111111111111111110000000001111110000000011111110000000011111111111111111111110000000011111100000000011111111111111111111100000000111111111111111111111100000000111111000000000111111000000001111111111111111111111000000001111111111111111111110000000001111110000000001111111111111111111110000000011111111111111111 diff --git a/IR-Data/test-suite.sh b/IR-Data/test-suite.sh index 8ce239a..3d167df 100644 --- a/IR-Data/test-suite.sh +++ b/IR-Data/test-suite.sh @@ -68,9 +68,9 @@ do echo "testing $j ..." if tmpsrc/irmp -v < $j | grep -q error then - tmpsrc/irmp -v < $j | grep error - echo "test failed" - exit 1 + tmpsrc/irmp -v < $j | grep error + echo "test failed" + exit 1 fi done @@ -78,8 +78,9 @@ done for j in \ bo_beolink1000-15kHz.txt \ + bose_wave_system_15khz.txt \ denon-15kHz.txt \ - denon-rc-176-15kHz.txt \ + denon-rc-176-15kHz.txt \ irc-15kHz.txt \ kathrein-15kHz.txt \ recs80-15kHz.txt \ @@ -92,9 +93,9 @@ do echo "testing $j ..." if tmpsrc/irmp-15kHz -v < $j | grep -q error then - tmpsrc/irmp-15kHz -v < $j | grep error - echo "test failed" - exit 1 + tmpsrc/irmp-15kHz -v < $j | grep error + echo "test failed" + exit 1 fi done @@ -106,9 +107,9 @@ do echo "testing $j ..." if tmpsrc/irmp-20kHz -v < $j | grep -q error then - tmpsrc/irmp-20kHz -v < $j | grep error - echo "test failed" - exit 1 + tmpsrc/irmp-20kHz -v < $j | grep error + echo "test failed" + exit 1 fi done diff --git a/IR-Data/tp400vt-15kHz.txt b/IR-Data/tp400vt-15kHz.txt new file mode 100644 index 0000000..2307a30 --- /dev/null +++ b/IR-Data/tp400vt-15kHz.txt @@ -0,0 +1,67 @@ +#Grundig TP 400 VT +#Traeger: 29.5kHz +#F_INTERRUPTS 15000 +#Taste 1 +0000000011111111111111111111111111111111111111111000000001111111100000000111111111111111100000000011111111000000001111111100000000000000000111111111111111100000000111111111111111 +#Taste 2 +0000000011111111111111111111111111111111111111110000000001111111111111111000000000000000011111111111111111000000001111111100000000000000000111111111111111100000000111111111111111 +#Taste 3 +0000000001111111111111111111111111111111111111111000000000111111110000000011111111000000001111111111111111100000000111111110000000000000000111111111111111110000000011111111111111 +#Taste 4 +0000000001111111111111111111111111111111111111111000000000111111111111111100000000111111110000000000000000011111111111111110000000000000000011111111111111110000000011111111111111 +#Taste 5 +0000000001111111111111111111111111111111111111111000000001111111110000000011111111111111110000000000000000011111111111111110000000000000000111111111111111100000000011111111111111 +#Taste 6 +0000000001111111111111111111111111111111111111111000000000111111111111111100000000000000001111111100000000011111111111111110000000000000000111111111111111110000000011111111111111 +#Taste 7 +0000000001111111111111111111111111111111111111111000000000111111110000000011111111000000001111111100000000011111111111111110000000000000000111111111111111110000000011111111111111 +#Taste 8 +0000000011111111111111111111111111111111111111111000000001111111111111111000000001111111100000000011111111000000000000000011111111000000000111111111111111100000000111111111111111 +#Taste 9 +0000000001111111111111111111111111111111111111111000000000111111100000000011111111111111110000000011111111000000000000000001111111100000000111111111111111100000000011111111111111 +#Taste 10 +0000000001111111111111111111111111111111111111111000000000111111111111111100000000000000000111111111111111000000000000000001111111100000000011111111111111100000000011111111111111 +#Taste 0/AV +0000000011111111111111111111111111111111111111111000000001111111111111111000000000111111110000000011111111000000001111111100000000000000000111111111111111100000000111111111111111 +#Taste 20 +0000000001111111111111111111111111111111111111111000000000111111110000000001111111000000000111111111111111100000000000000000111111100000000011111111111111110000000011111111111111 +#Taste MIX +0000000001111111111111111111111111111111111111111000000000111111111111111100000000000000000111111100000000011111111000000000111111100000000011111111111111110000000011111111111111 +#Taste AKT +0000000001111111111111111111111111111111111111111000000000111111110000000011111111111111110000000000000000011111111000000001111111100000000011111111111111110000000011111111111111 +#Taste NORM +0000000001111111111111111111111111111111111111111000000000111111110000000001111111000000000111111100000000011111111000000000111111100000000011111111111111110000000011111111111111 +#Taste KLEIN +00000000111111111111111111111111111111111111111110000000011111111111111110000000000000000011111111111111110000000001111111000000000111111110000000000000000111111111111111 +#Taste GROSS +00000000111111111111111111111111111111111111111110000000001111111000000000111111110000000011111111111111110000000001111111100000000111111110000000000000000111111111111111 +#Taste ANTW +0000000011111111111111111111111111111111111111111000000001111111100000000111111110000000001111111111111111000000001111111100000000111111111000000001111111100000000111111111111111 +#Taste HALT +0000000011111111111111111111111111111111111111111000000001111111111111111000000000111111100000000000000000111111110000000011111111000000000111111111111111100000000111111111111111 +#Taste INHALT +00000000011111111111111111111111111111111111111110000000001111111100000000111111110000000011111111000000001111111111111111100000000111111110000000000000000111111111111111 +#Taste VT/TV +0000000011111111111111111111111111111111111111111000000001111111100000000011111111111111110000000000000000111111111111111110000000011111111000000001111111100000000011111111111111 +#TASTE CHROM - +0000000011111111111111111111111111111111111111111000000001111111100000000111111111111111100000000000000000111111110000000011111111111111110000000001111111100000000111111111111111 +#Taste CHROM + +0000000001111111111111111111111111111111111111111000000000111111111111111100000000111111110000000000000000011111111000000001111111111111111000000001111111100000000011111111111111 +#Taste HELL - +0000000001111111111111111111111111111111111111111000000000111111110000000011111111000000000111111111111111100000000000000001111111111111111000000000111111110000000011111111111111 +#Taste HELL + +0000000001111111111111111111111111111111111111111000000000111111111111111000000000000000001111111111111111000000000000000001111111111111111000000001111111100000000011111111111111 +#Taste VOL - +0000000011111111111111111111111111111111111111111000000001111111100000000011111111111111110000000011111111000000000000000001111111111111111000000001111111100000000111111111111111 +#Taste VOL + +0000000001111111111111111111111111111111111111111000000000111111111111111100000000011111110000000001111111000000000000000001111111111111111000000000111111100000000011111111111111 +#Taste SW +0000000011111111111111111111111111111111111111111000000001111111100000000111111110000000001111111111111111000000001111111100000000111111110000000001111111100000000111111111111111 +#Taste Center +0000000001111111111111111111111111111111111111111000000000111111111111111100000000111111110000000001111111100000000111111110000000011111111000000001111111110000000011111111111111 +#Taste Mute +0000000011111111111111111111111111111111111111111000000001111111100000000111111111111111100000000011111111000000001111111100000000111111110000000001111111100000000111111111111111 +#Taste UHR +0000000011111111111111111111111111111111111111111000000001111111111111111000000001111111100000000000000000111111111111111100000000111111110000000001111111100000000111111111111111 +#Taste Power +00000000011111111111111111111111111111111111111110000000001111111111111111000000000000000011111111000000000111111110000000011111111000000001111111100000000011111111111111 diff --git a/README.txt b/README.txt index 7cede7b..3882add 100644 --- a/README.txt +++ b/README.txt @@ -1,7 +1,7 @@ IRMP - Infrared Multi Protocol Decoder -------------------------------------- -Version IRMP: 2.2.3 18.06.2012 +Version IRMP: 2.2.4 11.07.2012 Version IRSND: 2.2.3 18.06.2012 Dokumentation: diff --git a/irmp.c b/irmp.c index 136662d..5cd0c72 100644 --- a/irmp.c +++ b/irmp.c @@ -3,7 +3,7 @@ * * Copyright (c) 2009-2012 Frank Meyer - frank(at)fli4l.de * - * $Id: irmp.c,v 1.125 2012/06/18 09:00:45 fm Exp $ + * $Id: irmp.c,v 1.127 2012/07/11 13:13:50 fm Exp $ * * ATMEGA88 @ 8 MHz * @@ -165,8 +165,14 @@ #define RECS80_0_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * RECS80_0_PAUSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1) #define RECS80_0_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * RECS80_0_PAUSE_TIME * MAX_TOLERANCE_10 + 0.5) + 1) + +#if IRMP_SUPPORT_BOSE_PROTOCOL == 1 // BOSE conflicts with RC5, so keep tolerance for RC5 minimal here: +#define RC5_START_BIT_LEN_MIN ((uint8_t)(F_INTERRUPTS * RC5_BIT_TIME * MIN_TOLERANCE_05 + 0.5) - 1) +#define RC5_START_BIT_LEN_MAX ((uint8_t)(F_INTERRUPTS * RC5_BIT_TIME * MAX_TOLERANCE_05 + 0.5) + 1) +#else #define RC5_START_BIT_LEN_MIN ((uint8_t)(F_INTERRUPTS * RC5_BIT_TIME * MIN_TOLERANCE_10 + 0.5) - 1) #define RC5_START_BIT_LEN_MAX ((uint8_t)(F_INTERRUPTS * RC5_BIT_TIME * MAX_TOLERANCE_10 + 0.5) + 1) +#endif #define RC5_BIT_LEN_MIN ((uint8_t)(F_INTERRUPTS * RC5_BIT_TIME * MIN_TOLERANCE_10 + 0.5) - 1) #define RC5_BIT_LEN_MAX ((uint8_t)(F_INTERRUPTS * RC5_BIT_TIME * MAX_TOLERANCE_10 + 0.5) + 1) @@ -354,6 +360,18 @@ #define LEGO_0_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * LEGO_0_PAUSE_TIME * MIN_TOLERANCE_40 + 0.5) - 1) #define LEGO_0_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * LEGO_0_PAUSE_TIME * MAX_TOLERANCE_40 + 0.5) + 1) +#define BOSE_START_BIT_PULSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * BOSE_START_BIT_PULSE_TIME * MIN_TOLERANCE_30 + 0.5) - 1) +#define BOSE_START_BIT_PULSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * BOSE_START_BIT_PULSE_TIME * MAX_TOLERANCE_30 + 0.5) + 1) +#define BOSE_START_BIT_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * BOSE_START_BIT_PAUSE_TIME * MIN_TOLERANCE_30 + 0.5) - 1) +#define BOSE_START_BIT_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * BOSE_START_BIT_PAUSE_TIME * MAX_TOLERANCE_30 + 0.5) + 1) +#define BOSE_PULSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * BOSE_PULSE_TIME * MIN_TOLERANCE_30 + 0.5) - 1) +#define BOSE_PULSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * BOSE_PULSE_TIME * MAX_TOLERANCE_30 + 0.5) + 1) +#define BOSE_1_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * BOSE_1_PAUSE_TIME * MIN_TOLERANCE_30 + 0.5) - 1) +#define BOSE_1_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * BOSE_1_PAUSE_TIME * MAX_TOLERANCE_30 + 0.5) + 1) +#define BOSE_0_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * BOSE_0_PAUSE_TIME * MIN_TOLERANCE_30 + 0.5) - 1) +#define BOSE_0_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * BOSE_0_PAUSE_TIME * MAX_TOLERANCE_30 + 0.5) + 1) +#define BOSE_FRAME_REPEAT_PAUSE_LEN_MAX (uint16_t)(F_INTERRUPTS * 100.0e-3 * MAX_TOLERANCE_20 + 0.5) + #define AUTO_FRAME_REPETITION_LEN (uint16_t)(F_INTERRUPTS * AUTO_FRAME_REPETITION_TIME + 0.5) // use uint16_t! #ifdef ANALYZE @@ -413,7 +431,8 @@ irmp_protocol_names[IRMP_N_PROTOCOLS + 1] = "NEC16", "NEC42", "LEGO", - "THOMSON" + "THOMSON", + "BOSE" }; #endif @@ -1194,6 +1213,31 @@ static const PROGMEM IRMP_PARAMETER thomson_param = #endif +#if IRMP_SUPPORT_BOSE_PROTOCOL == 1 + +static const PROGMEM IRMP_PARAMETER bose_param = +{ + IRMP_BOSE_PROTOCOL, // protocol: ir protocol + BOSE_PULSE_LEN_MIN, // pulse_1_len_min: minimum length of pulse with bit value 1 + BOSE_PULSE_LEN_MAX, // pulse_1_len_max: maximum length of pulse with bit value 1 + BOSE_1_PAUSE_LEN_MIN, // pause_1_len_min: minimum length of pause with bit value 1 + BOSE_1_PAUSE_LEN_MAX, // pause_1_len_max: maximum length of pause with bit value 1 + BOSE_PULSE_LEN_MIN, // pulse_0_len_min: minimum length of pulse with bit value 0 + BOSE_PULSE_LEN_MAX, // pulse_0_len_max: maximum length of pulse with bit value 0 + BOSE_0_PAUSE_LEN_MIN, // pause_0_len_min: minimum length of pause with bit value 0 + BOSE_0_PAUSE_LEN_MAX, // pause_0_len_max: maximum length of pause with bit value 0 + BOSE_ADDRESS_OFFSET, // address_offset: address offset + BOSE_ADDRESS_OFFSET + BOSE_ADDRESS_LEN, // address_end: end of address + BOSE_COMMAND_OFFSET, // command_offset: command offset + BOSE_COMMAND_OFFSET + BOSE_COMMAND_LEN, // command_end: end of command + BOSE_COMPLETE_DATA_LEN, // complete_len: complete length of frame + BOSE_STOP_BIT, // stop_bit: flag: frame has stop bit + BOSE_LSB, // lsb_first: flag: LSB first + BOSE_FLAGS // flags: some flags +}; + +#endif + static uint8_t irmp_bit; // current bit position static IRMP_PARAMETER irmp_param; @@ -1301,6 +1345,15 @@ irmp_get_data (IRMP_DATA * irmp_data_p) } break; #endif +#if IRMP_SUPPORT_BOSE_PROTOCOL == 1 + case IRMP_BOSE_PROTOCOL: + if ((irmp_command >> 8) == (~irmp_command & 0x00FF)) + { + irmp_command &= 0xff; + rtc = TRUE; + } + break; +#endif #if IRMP_SUPPORT_SIEMENS_OR_RUWIDO_PROTOCOL == 1 case IRMP_SIEMENS_PROTOCOL: case IRMP_RUWIDO_PROTOCOL: @@ -1957,6 +2010,18 @@ irmp_ISR (void) else #endif // IRMP_SUPPORT_THOMSON_PROTOCOL == 1 +#if IRMP_SUPPORT_BOSE_PROTOCOL == 1 + if (irmp_pulse_time >= BOSE_START_BIT_PULSE_LEN_MIN && irmp_pulse_time <= BOSE_START_BIT_PULSE_LEN_MAX && + irmp_pause_time >= BOSE_START_BIT_PAUSE_LEN_MIN && irmp_pause_time <= BOSE_START_BIT_PAUSE_LEN_MAX) + { + ANALYZE_PRINTF ("protocol = BOSE, start bit timings: pulse: %3d - %3d, pause: %3d - %3d\n", + BOSE_START_BIT_PULSE_LEN_MIN, BOSE_START_BIT_PULSE_LEN_MAX, + BOSE_START_BIT_PAUSE_LEN_MIN, BOSE_START_BIT_PAUSE_LEN_MAX); + irmp_param_p = (IRMP_PARAMETER *) &bose_param; + } + else +#endif // IRMP_SUPPORT_BOSE_PROTOCOL == 1 + #if IRMP_SUPPORT_RC6_PROTOCOL == 1 if (irmp_pulse_time >= RC6_START_BIT_PULSE_LEN_MIN && irmp_pulse_time <= RC6_START_BIT_PULSE_LEN_MAX && irmp_pause_time >= RC6_START_BIT_PAUSE_LEN_MIN && irmp_pause_time <= RC6_START_BIT_PAUSE_LEN_MAX) diff --git a/irmpconfig.h b/irmpconfig.h index db0f5e4..de6e3ff 100644 --- a/irmpconfig.h +++ b/irmpconfig.h @@ -5,7 +5,7 @@ * * Copyright (c) 2009-2012 Frank Meyer - frank(at)fli4l.de * - * $Id: irmpconfig.h,v 1.90 2012/05/23 12:26:26 fm Exp $ + * $Id: irmpconfig.h,v 1.92 2012/07/11 13:14:08 fm Exp $ * * ATMEGA88 @ 8 MHz * @@ -69,6 +69,7 @@ #define IRMP_SUPPORT_NOKIA_PROTOCOL 0 // Nokia >= 10000 ~300 bytes // exotic protocols, enable here! Enable Remarks F_INTERRUPTS Program Space +#define IRMP_SUPPORT_BOSE_PROTOCOL 0 // BOSE >= 10000 ~150 bytes #define IRMP_SUPPORT_KATHREIN_PROTOCOL 0 // Kathrein >= 10000 ~200 bytes #define IRMP_SUPPORT_NUBERT_PROTOCOL 0 // NUBERT >= 10000 ~50 bytes #define IRMP_SUPPORT_BANG_OLUFSEN_PROTOCOL 0 // Bang & Olufsen >= 10000 ~200 bytes diff --git a/irmpprotocols.h b/irmpprotocols.h index 6544591..89b6226 100644 --- a/irmpprotocols.h +++ b/irmpprotocols.h @@ -5,7 +5,7 @@ * * Copyright (c) 2012 Frank Meyer - frank(at)fli4l.de * - * $Id: irmpprotocols.h,v 1.4 2012/05/23 12:26:26 fm Exp $ + * $Id: irmpprotocols.h,v 1.5 2012/07/11 12:44:30 fm Exp $ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -55,8 +55,9 @@ #define IRMP_NEC42_PROTOCOL 28 // NEC with 42 bits #define IRMP_LEGO_PROTOCOL 29 // LEGO Power Functions RC #define IRMP_THOMSON_PROTOCOL 30 // Thomson +#define IRMP_BOSE_PROTOCOL 31 // BOSE -#define IRMP_N_PROTOCOLS 30 // number of supported protocols +#define IRMP_N_PROTOCOLS 31 // number of supported protocols /*--------------------------------------------------------------------------------------------------------------------------------------------------- * timing constants: @@ -482,6 +483,21 @@ typedef uint8_t PAUSE_LEN; #define THOMSON_LSB 0 // MSB...LSB #define THOMSON_FLAGS 0 // flags +#define BOSE_START_BIT_PULSE_TIME 1060.0e-6 // 1060 usec pulse +#define BOSE_START_BIT_PAUSE_TIME 1430.0e-6 // 1430 usec pause +#define BOSE_PULSE_TIME 550.0e-6 // 550 usec pulse +#define BOSE_1_PAUSE_TIME 1425.0e-6 // 1425 usec pause +#define BOSE_0_PAUSE_TIME 437.0e-6 // 437 usec pause +#define BOSE_FRAME_REPEAT_PAUSE_TIME 40.0e-3 // frame repeat after 40ms??? +#define BOSE_ADDRESS_OFFSET 0 // skip 0 bits +#define BOSE_ADDRESS_LEN 0 // read 16 address bits +#define BOSE_COMMAND_OFFSET 0 // skip 16 bits (8 address + 8 /address) +#define BOSE_COMMAND_LEN 16 // read 16 bits (8 command + 8 /command) +#define BOSE_COMPLETE_DATA_LEN 16 // complete length +#define BOSE_STOP_BIT 1 // has stop bit +#define BOSE_LSB 1 // LSB...MSB +#define BOSE_FLAGS 0 // flags + #define AUTO_FRAME_REPETITION_TIME 80.0e-3 // SIRCS/SAMSUNG32/NUBERT: automatic repetition after 25-50ms #endif // _IRMP_PROTOCOLS_H_ -- 2.39.2