echo -n "testing $j ... "
if tmpsrc/irmp-10kHz -v < $j | grep -q error
then
- tmpsrc/irmp-10kHz -v < $j | grep error
- echo "test failed"
- exit 1
+ tmpsrc/irmp-10kHz -v < $j | grep error
+ echo "test failed"
+ exit 1
else
- if tmpsrc/irmp-10kHz -v < $j | grep -q checked
- then
- echo "checked!"
- else
- echo "successful"
- fi
+ if tmpsrc/irmp-10kHz -v < $j | grep -q checked
+ then
+ echo "checked!"
+ else
+ echo "successful"
+ fi
fi
done
kathrein-15kHz.txt \
lg-air-15kHz.txt \
merlin-15kHz.txt \
- panasonic-vcr-15kHz.txt \
- pentax-15kHz.txt \
- rc5-philipps-15kHz.txt \
- rc6a-siemens-15kHz.txt \
+ panasonic-vcr-15kHz.txt \
+ pentax-15kHz.txt \
+ rc5-philipps-15kHz.txt \
+ rc6a-siemens-15kHz.txt \
recs80-15kHz.txt \
saa3004-15kHz.txt \
- samsung-br-15kHz.txt \
- samsung32-tv-15kHz.txt \
+ samsung-br-15kHz.txt \
+ samsung32-tv-15kHz.txt \
samsung32-15kHz.txt \
samsung48-15kHz.txt \
sharp_15khz.txt \
- technics-15kHz.txt \
+ technics-15kHz.txt \
thomson-mb100-15kHz.txt \
tp400vt-15kHz.txt \
universal-15kHz.txt \
- vincent-flash-15kHz.txt \
+ vincent-15kHz.txt \
+ vincent-flash-15kHz.txt \
xbox360-15kHz.txt
do
echo -n "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
else
- if tmpsrc/irmp-15kHz -v < $j | grep -q checked
- then
- echo "checked!"
- else
- echo "successful"
- fi
+ if tmpsrc/irmp-15kHz -v < $j | grep -q checked
+ then
+ echo "checked!"
+ else
+ echo "successful"
+ fi
fi
done
echo -n "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
else
- if tmpsrc/irmp-20kHz -v < $j | grep -q checked
- then
- echo "checked!"
- else
- echo "successful"
- fi
+ if tmpsrc/irmp-20kHz -v < $j | grep -q checked
+ then
+ echo "checked!"
+ else
+ echo "successful"
+ fi
fi
done
IRMP - Infrared Multi Protocol Decoder\r
--------------------------------------\r
\r
-Version IRMP: 3.0.2 2016-09-09\r
-Version IRSND: 3.0.2 2016-09-09\r
+Version IRMP: 3.0.3 2016-09-19\r
+Version IRSND: 3.0.3 2016-09-19\r
\r
Documentation:\r
\r
*\r
* Copyright (c) 2009-2016 Frank Meyer - frank(at)fli4l.de\r
*\r
- * $Id: irmp.c,v 1.187 2016/09/09 07:53:29 fm Exp $\r
+ * $Id: irmp.c,v 1.188 2016/09/14 06:31:48 fm Exp $\r
*\r
* Supported AVR mikrocontrollers:\r
*\r
#define MITSU_HEAVY_0_PAUSE_LEN_MIN ((uint_fast8_t)(F_INTERRUPTS * MITSU_HEAVY_0_PAUSE_TIME * MIN_TOLERANCE_20 + 0.5) - 1)\r
#define MITSU_HEAVY_0_PAUSE_LEN_MAX ((uint_fast8_t)(F_INTERRUPTS * MITSU_HEAVY_0_PAUSE_TIME * MAX_TOLERANCE_20 + 0.5) + 1)\r
\r
+#define VINCENT_START_BIT_PULSE_LEN_MIN ((uint_fast8_t)(F_INTERRUPTS * VINCENT_START_BIT_PULSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1)\r
+#define VINCENT_START_BIT_PULSE_LEN_MAX ((uint_fast8_t)(F_INTERRUPTS * VINCENT_START_BIT_PULSE_TIME * MAX_TOLERANCE_10 + 0.5) + 1)\r
+#define VINCENT_START_BIT_PAUSE_LEN_MIN ((uint_fast8_t)(F_INTERRUPTS * VINCENT_START_BIT_PAUSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1)\r
+#define VINCENT_START_BIT_PAUSE_LEN_MAX ((uint_fast8_t)(F_INTERRUPTS * VINCENT_START_BIT_PAUSE_TIME * MAX_TOLERANCE_10 + 0.5) + 1)\r
+#define VINCENT_PULSE_LEN_MIN ((uint_fast8_t)(F_INTERRUPTS * VINCENT_PULSE_TIME * MIN_TOLERANCE_40 + 0.5) - 1)\r
+#define VINCENT_PULSE_LEN_MAX ((uint_fast8_t)(F_INTERRUPTS * VINCENT_PULSE_TIME * MAX_TOLERANCE_40 + 0.5) + 1)\r
+#define VINCENT_1_PAUSE_LEN_MIN ((uint_fast8_t)(F_INTERRUPTS * VINCENT_1_PAUSE_TIME * MIN_TOLERANCE_20 + 0.5) - 1)\r
+#define VINCENT_1_PAUSE_LEN_MAX ((uint_fast8_t)(F_INTERRUPTS * VINCENT_1_PAUSE_TIME * MAX_TOLERANCE_20 + 0.5) + 1)\r
+#define VINCENT_0_PAUSE_LEN_MIN ((uint_fast8_t)(F_INTERRUPTS * VINCENT_0_PAUSE_TIME * MIN_TOLERANCE_20 + 0.5) - 1)\r
+#define VINCENT_0_PAUSE_LEN_MAX ((uint_fast8_t)(F_INTERRUPTS * VINCENT_0_PAUSE_TIME * MAX_TOLERANCE_20 + 0.5) + 1)\r
+\r
#define PANASONIC_START_BIT_PULSE_LEN_MIN ((uint_fast8_t)(F_INTERRUPTS * PANASONIC_START_BIT_PULSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1)\r
#define PANASONIC_START_BIT_PULSE_LEN_MAX ((uint_fast8_t)(F_INTERRUPTS * PANASONIC_START_BIT_PULSE_TIME * MAX_TOLERANCE_10 + 0.5) + 1)\r
#define PANASONIC_START_BIT_PAUSE_LEN_MIN ((uint_fast8_t)(F_INTERRUPTS * PANASONIC_START_BIT_PAUSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1)\r
static const char proto_technics[] PROGMEM = "TECHNICS";\r
static const char proto_panasonic[] PROGMEM = "PANASONIC";\r
static const char proto_mitsu_heavy[] PROGMEM = "MITSU_HEAVY";\r
+static const char proto_vincent[] PROGMEM = "VINCENT";\r
\r
static const char proto_radio1[] PROGMEM = "RADIO1";\r
\r
proto_technics,\r
proto_panasonic,\r
proto_mitsu_heavy,\r
+ proto_vincent,\r
proto_radio1\r
};\r
\r
\r
#endif\r
\r
+#if IRMP_SUPPORT_VINCENT_PROTOCOL == 1\r
+\r
+static const PROGMEM IRMP_PARAMETER vincent_param =\r
+{\r
+ IRMP_VINCENT_PROTOCOL, // protocol: ir protocol\r
+ VINCENT_PULSE_LEN_MIN, // pulse_1_len_min: minimum length of pulse with bit value 1\r
+ VINCENT_PULSE_LEN_MAX, // pulse_1_len_max: maximum length of pulse with bit value 1\r
+ VINCENT_1_PAUSE_LEN_MIN, // pause_1_len_min: minimum length of pause with bit value 1\r
+ VINCENT_1_PAUSE_LEN_MAX, // pause_1_len_max: maximum length of pause with bit value 1\r
+ VINCENT_PULSE_LEN_MIN, // pulse_0_len_min: minimum length of pulse with bit value 0\r
+ VINCENT_PULSE_LEN_MAX, // pulse_0_len_max: maximum length of pulse with bit value 0\r
+ VINCENT_0_PAUSE_LEN_MIN, // pause_0_len_min: minimum length of pause with bit value 0\r
+ VINCENT_0_PAUSE_LEN_MAX, // pause_0_len_max: maximum length of pause with bit value 0\r
+ VINCENT_ADDRESS_OFFSET, // address_offset: address offset\r
+ VINCENT_ADDRESS_OFFSET + VINCENT_ADDRESS_LEN, // address_end: end of address\r
+ VINCENT_COMMAND_OFFSET, // command_offset: command offset\r
+ VINCENT_COMMAND_OFFSET + VINCENT_COMMAND_LEN, // command_end: end of command\r
+ VINCENT_COMPLETE_DATA_LEN, // complete_len: complete length of frame\r
+ VINCENT_STOP_BIT, // stop_bit: flag: frame has stop bit\r
+ VINCENT_LSB, // lsb_first: flag: LSB first\r
+ VINCENT_FLAGS // flags: some flags\r
+};\r
+\r
+#endif\r
+\r
#if IRMP_SUPPORT_RECS80_PROTOCOL == 1\r
\r
static const PROGMEM IRMP_PARAMETER recs80_param =\r
}\r
break;\r
#endif\r
+\r
+\r
+#if IRMP_SUPPORT_NEC_PROTOCOL == 1\r
+ case IRMP_VINCENT_PROTOCOL:\r
+ if ((irmp_command >> 8) == (irmp_command & 0x00FF))\r
+ {\r
+ irmp_command &= 0xff;\r
+ rtc = TRUE;\r
+ }\r
+ break;\r
+#endif\r
+\r
#if IRMP_SUPPORT_BOSE_PROTOCOL == 1\r
case IRMP_BOSE_PROTOCOL:\r
if ((irmp_command >> 8) == (~irmp_command & 0x00FF))\r
else\r
#endif // IRMP_SUPPORT_MITSU_HEAVY_PROTOCOL == 1\r
\r
+#if IRMP_SUPPORT_VINCENT_PROTOCOL == 1\r
+ if (irmp_pulse_time >= VINCENT_START_BIT_PULSE_LEN_MIN && irmp_pulse_time <= VINCENT_START_BIT_PULSE_LEN_MAX &&\r
+ irmp_pause_time >= VINCENT_START_BIT_PAUSE_LEN_MIN && irmp_pause_time <= VINCENT_START_BIT_PAUSE_LEN_MAX)\r
+ { // it's VINCENT\r
+#ifdef ANALYZE\r
+ ANALYZE_PRINTF ("protocol = VINCENT, start bit timings: pulse: %3d - %3d, pause: %3d - %3d\n",\r
+ VINCENT_START_BIT_PULSE_LEN_MIN, VINCENT_START_BIT_PULSE_LEN_MAX,\r
+ VINCENT_START_BIT_PAUSE_LEN_MIN, VINCENT_START_BIT_PAUSE_LEN_MAX);\r
+#endif // ANALYZE\r
+ irmp_param_p = (IRMP_PARAMETER *) &vincent_param;\r
+ }\r
+ else\r
+#endif // IRMP_SUPPORT_VINCENT_PROTOCOL == 1\r
+\r
#if IRMP_SUPPORT_RADIO1_PROTOCOL == 1\r
if (irmp_pulse_time >= RADIO1_START_BIT_PULSE_LEN_MIN && irmp_pulse_time <= RADIO1_START_BIT_PULSE_LEN_MAX &&\r
irmp_pause_time >= RADIO1_START_BIT_PAUSE_LEN_MIN && irmp_pause_time <= RADIO1_START_BIT_PAUSE_LEN_MAX)\r
* Copyright (c) 2009-2016 Frank Meyer - frank(at)fli4l.de\r
* Extensions for PIC 12F1820 W.Strobl 2014-07-20\r
*\r
- * $Id: irmpconfig.h,v 1.148 2016/09/09 07:53:29 fm Exp $\r
+ * $Id: irmpconfig.h,v 1.150 2016/09/19 14:28:24 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
#define IRMP_SUPPORT_TECHNICS_PROTOCOL 0 // TECHNICS >= 10000 ~250 bytes\r
#define IRMP_SUPPORT_PANASONIC_PROTOCOL 0 // PANASONIC Beamer >= 10000 ~250 bytes\r
#define IRMP_SUPPORT_MITSU_HEAVY_PROTOCOL 0 // Mitsubishi Aircond >= 10000 ~250 bytes\r
+#define IRMP_SUPPORT_VINCENT_PROTOCOL 0 // VINCENT >= 10000 ~250 bytes\r
#define IRMP_SUPPORT_RADIO1_PROTOCOL 0 // RADIO, e.g. TEVION >= 10000 ~250 bytes (experimental)\r
\r
/*---------------------------------------------------------------------------------------------------------------------------------------------------\r
*\r
* Copyright (c) 2013-2016 Frank Meyer - frank(at)fli4l.de\r
*\r
- * $Id: irmpprotocols.h,v 1.46 2016/09/09 07:53:29 fm Exp $\r
+ * $Id: irmpprotocols.h,v 1.47 2016/09/14 06:31:48 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
#define IRMP_TECHNICS_PROTOCOL 47 // Technics, similar to Matsushita, but 22 instead of 24 bits\r
#define IRMP_PANASONIC_PROTOCOL 48 // Panasonic (Beamer), start bits similar to KASEIKYO\r
#define IRMP_MITSU_HEAVY_PROTOCOL 49 // Mitsubishi-Heavy Aircondition, similar timing as Panasonic beamer\r
+#define IRMP_VINCENT_PROTOCOL 50 // Vincent\r
\r
-#define IRMP_RADIO1_PROTOCOL 50 // Radio protocol (experimental status), do not use it yet!\r
+#define IRMP_RADIO1_PROTOCOL 51 // Radio protocol (experimental status), do not use it yet!\r
\r
-#define IRMP_N_PROTOCOLS 51 // number of supported protocols\r
+#define IRMP_N_PROTOCOLS 52 // number of supported protocols\r
\r
/*---------------------------------------------------------------------------------------------------------------------------------------------------\r
* timing constants:\r
#define MITSU_HEAVY_FRAMES 1 // PANASONIC sends 1 frame\r
#define MITSU_HEAVY_FLAGS 0 // flags\r
\r
+/*---------------------------------------------------------------------------------------------------------------------------------------------------\r
+ * VINCENT\r
+ *---------------------------------------------------------------------------------------------------------------------------------------------------\r
+ */\r
+#define VINCENT_START_BIT_PULSE_TIME 2500.0e-6 // 2500 usec pulse\r
+#define VINCENT_START_BIT_PAUSE_TIME 4600.0e-6 // 4600 usec pause\r
+#define VINCENT_PULSE_TIME 550.0e-6 // 550 usec pulse\r
+#define VINCENT_1_PAUSE_TIME 1540.0e-6 // 1540 usec pause\r
+#define VINCENT_0_PAUSE_TIME 550.0e-6 // 550 usec pause\r
+#define VINCENT_FRAME_REPEAT_PAUSE_TIME 40.0e-3 // frame repeat after 40 ms ?\r
+#define VINCENT_ADDRESS_OFFSET 0 // skip 0 bits\r
+#define VINCENT_ADDRESS_LEN 16 // read 16 address bits\r
+#define VINCENT_COMMAND_OFFSET 16 // skip 16 bits\r
+#define VINCENT_COMMAND_LEN 16 // read 16 command bits\r
+#define VINCENT_COMPLETE_DATA_LEN 32 // complete length\r
+#define VINCENT_STOP_BIT 1 // has stop bit\r
+#define VINCENT_LSB 0 // LSB...MSB?\r
+#define VINCENT_FRAMES 1 // VINCENT sends 1 frame\r
+#define VINCENT_FLAGS 0 // flags\r
+\r
/*---------------------------------------------------------------------------------------------------------------------------------------------------\r
* RECS80:\r
*---------------------------------------------------------------------------------------------------------------------------------------------------\r