summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorukw2012-07-11 13:14:36 +0000
committerukw2012-07-11 13:14:36 +0000
commit3a7e26e1f87a0e738f763d2df005d5da1690696d (patch)
treed48381acd034c546fb3e9af6010bbb17b6c85701
parent21a4e0eeeb70b7312cc252d8b471dd24663151e5 (diff)
downloadirmp-3a7e26e1f87a0e738f763d2df005d5da1690696d.zip
Version 2.2.4: added BOSE protocol
git-svn-id: svn://mikrocontroller.net/irmp@103 aeb2e35e-bfc4-4214-b83c-9e8de998ed28
-rw-r--r--IR-Data/bose_wave_system_15khz.txt18
-rw-r--r--IR-Data/test-suite.sh21
-rw-r--r--IR-Data/tp400vt-15kHz.txt67
-rw-r--r--README.txt2
-rw-r--r--irmp.c69
-rw-r--r--irmpconfig.h3
-rw-r--r--irmpprotocols.h20
7 files changed, 184 insertions, 16 deletions
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_