]> cloudbase.mooo.com Git - irmp.git/commitdiff
Version 2.2.4: added BOSE protocol
authorukw <ukw@aeb2e35e-bfc4-4214-b83c-9e8de998ed28>
Wed, 11 Jul 2012 13:14:36 +0000 (13:14 +0000)
committerukw <ukw@aeb2e35e-bfc4-4214-b83c-9e8de998ed28>
Wed, 11 Jul 2012 13:14:36 +0000 (13:14 +0000)
git-svn-id: svn://mikrocontroller.net/irmp@103 aeb2e35e-bfc4-4214-b83c-9e8de998ed28

IR-Data/bose_wave_system_15khz.txt [new file with mode: 0644]
IR-Data/test-suite.sh
IR-Data/tp400vt-15kHz.txt [new file with mode: 0644]
README.txt
irmp.c
irmpconfig.h
irmpprotocols.h

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