From: ukw Date: Mon, 12 Sep 2011 08:31:58 +0000 (+0000) Subject: Removed support for IMON & Merlin keyboards X-Git-Tag: irmp-libopencm3-pre-1~111 X-Git-Url: http://cloudbase.mooo.com/gitweb/irmp.git/commitdiff_plain/93570cd97cecf623cf97269629090259826f93ee?hp=7644ac04e209441d89d900125995b2d398cfd4b4 Removed support for IMON & Merlin keyboards git-svn-id: svn://mikrocontroller.net/irmp@78 aeb2e35e-bfc4-4214-b83c-9e8de998ed28 --- diff --git a/irmp.c b/irmp.c index db87cc3..13e7a1e 100644 --- a/irmp.c +++ b/irmp.c @@ -373,9 +373,7 @@ typedef unsigned int16 uint16_t; #define IRMP_SUPPORT_MANCHESTER 0 #endif -#if IRMP_SUPPORT_NETBOX_PROTOCOL == 1 || \ - IRMP_SUPPORT_MERLIN_PROTOCOL == 1 || \ - IRMP_SUPPORT_IMON_PROTOCOL == 1 +#if IRMP_SUPPORT_NETBOX_PROTOCOL == 1 #define IRMP_SUPPORT_SERIAL 1 #else #define IRMP_SUPPORT_SERIAL 0 @@ -683,24 +681,6 @@ typedef unsigned int16 uint16_t; #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 MERLIN_START_BIT_PULSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * MERLIN_START_BIT_PULSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1) -#define MERLIN_START_BIT_PULSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * MERLIN_START_BIT_PULSE_TIME * MAX_TOLERANCE_10 + 0.5) + 1) -#define MERLIN_START_BIT_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * MERLIN_START_BIT_PAUSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1) -#define MERLIN_START_BIT_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * MERLIN_START_BIT_PAUSE_TIME * MAX_TOLERANCE_10 + 0.5) + 1) -#define MERLIN_PULSE_LEN ((uint8_t)(F_INTERRUPTS * MERLIN_PULSE_TIME)) -#define MERLIN_PAUSE_LEN ((uint8_t)(F_INTERRUPTS * MERLIN_PAUSE_TIME)) -#define MERLIN_PULSE_REST_LEN ((uint8_t)(F_INTERRUPTS * MERLIN_PULSE_TIME / 4)) -#define MERLIN_PAUSE_REST_LEN ((uint8_t)(F_INTERRUPTS * MERLIN_PAUSE_TIME / 4)) - -#define IMON_START_BIT_PULSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * IMON_START_BIT_PULSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1) -#define IMON_START_BIT_PULSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * IMON_START_BIT_PULSE_TIME * MAX_TOLERANCE_10 + 0.5) + 1) -#define IMON_START_BIT_PAUSE_LEN_MIN ((uint8_t)(F_INTERRUPTS * IMON_START_BIT_PAUSE_TIME * MIN_TOLERANCE_10 + 0.5) - 1) -#define IMON_START_BIT_PAUSE_LEN_MAX ((uint8_t)(F_INTERRUPTS * IMON_START_BIT_PAUSE_TIME * MAX_TOLERANCE_10 + 0.5) + 1) -#define IMON_PULSE_LEN ((uint8_t)(F_INTERRUPTS * IMON_PULSE_TIME)) -#define IMON_PAUSE_LEN ((uint8_t)(F_INTERRUPTS * IMON_PAUSE_TIME)) -#define IMON_PULSE_REST_LEN ((uint8_t)(F_INTERRUPTS * IMON_PULSE_TIME / 4)) -#define IMON_PAUSE_REST_LEN ((uint8_t)(F_INTERRUPTS * IMON_PAUSE_TIME / 4)) - #define AUTO_FRAME_REPETITION_LEN (uint16_t)(F_INTERRUPTS * AUTO_FRAME_REPETITION_TIME + 0.5) // use uint16_t! #ifdef ANALYZE @@ -760,8 +740,7 @@ irmp_protocol_names[IRMP_N_PROTOCOLS + 1] = "NEC16", "NEC42", "LEGO", - "THOMSON", - "MERLIN" + "THOMSON" }; #endif @@ -1504,31 +1483,6 @@ static const PROGMEM IRMP_PARAMETER lego_param = #endif -#if IRMP_SUPPORT_MERLIN_PROTOCOL == 1 - -static const PROGMEM IRMP_PARAMETER merlin_param = -{ - IRMP_MERLIN_PROTOCOL, // protocol: ir protocol - MERLIN_PULSE_LEN, // pulse_1_len_min: minimum length of pulse with bit value 1, here: exact value - MERLIN_PULSE_REST_LEN, // pulse_1_len_max: maximum length of pulse with bit value 1, here: rest value - MERLIN_PAUSE_LEN, // pause_1_len_min: minimum length of pause with bit value 1, here: exact value - MERLIN_PAUSE_REST_LEN, // pause_1_len_max: maximum length of pause with bit value 1, here: rest value - MERLIN_PULSE_LEN, // pulse_0_len_min: minimum length of pulse with bit value 0, here: exact value - MERLIN_PULSE_REST_LEN, // pulse_0_len_max: maximum length of pulse with bit value 0, here: rest value - MERLIN_PAUSE_LEN, // pause_0_len_min: minimum length of pause with bit value 0, here: exact value - MERLIN_PAUSE_REST_LEN, // pause_0_len_max: maximum length of pause with bit value 0, here: rest value - MERLIN_ADDRESS_OFFSET, // address_offset: address offset - MERLIN_ADDRESS_OFFSET + MERLIN_ADDRESS_LEN, // address_end: end of address - MERLIN_COMMAND_OFFSET, // command_offset: command offset - MERLIN_COMMAND_OFFSET + MERLIN_COMMAND_LEN, // command_end: end of command - MERLIN_COMPLETE_DATA_LEN, // complete_len: complete length of frame - MERLIN_STOP_BIT, // stop_bit: flag: frame has stop bit - MERLIN_LSB, // lsb_first: flag: LSB first - MERLIN_FLAGS // flags: some flags -}; - -#endif - #if IRMP_SUPPORT_THOMSON_PROTOCOL == 1 static const PROGMEM IRMP_PARAMETER thomson_param = @@ -1554,31 +1508,6 @@ static const PROGMEM IRMP_PARAMETER thomson_param = #endif -#if IRMP_SUPPORT_IMON_PROTOCOL == 1 - -static const PROGMEM IRMP_PARAMETER imon_param = -{ - IRMP_IMON_PROTOCOL, // protocol: ir protocol - IMON_PULSE_LEN, // pulse_1_len_min: minimum length of pulse with bit value 1 - IMON_PULSE_REST_LEN, // pulse_1_len_max: maximum length of pulse with bit value 1 - IMON_PAUSE_LEN, // pause_1_len_min: minimum length of pause with bit value 1 - IMON_PAUSE_REST_LEN, // pause_1_len_max: maximum length of pause with bit value 1 - IMON_PULSE_LEN, // pulse_0_len_min: minimum length of pulse with bit value 0 - IMON_PULSE_REST_LEN, // pulse_0_len_max: maximum length of pulse with bit value 0 - IMON_PAUSE_LEN, // pause_0_len_min: minimum length of pause with bit value 0 - IMON_PAUSE_REST_LEN, // pause_0_len_max: maximum length of pause with bit value 0 - IMON_ADDRESS_OFFSET, // address_offset: address offset - IMON_ADDRESS_OFFSET + IMON_ADDRESS_LEN, // address_end: end of address - IMON_COMMAND_OFFSET, // command_offset: command offset - IMON_COMMAND_OFFSET + IMON_COMMAND_LEN, // command_end: end of command - IMON_COMPLETE_DATA_LEN, // complete_len: complete length of frame - IMON_STOP_BIT, // stop_bit: flag: frame has stop bit - IMON_LSB, // lsb_first: flag: LSB first - IMON_FLAGS // flags: some flags -}; - -#endif - static uint8_t irmp_bit; // current bit position static IRMP_PARAMETER irmp_param; @@ -2399,18 +2328,6 @@ irmp_ISR (void) else #endif // IRMP_SUPPORT_NETBOX_PROTOCOL == 1 -#if IRMP_SUPPORT_MERLIN_PROTOCOL == 1 - if (irmp_pulse_time >= MERLIN_START_BIT_PULSE_LEN_MIN && irmp_pulse_time <= MERLIN_START_BIT_PULSE_LEN_MAX && - irmp_pause_time >= MERLIN_START_BIT_PAUSE_LEN_MIN && irmp_pause_time <= MERLIN_START_BIT_PAUSE_LEN_MAX) - { // it's MERLIN - ANALYZE_PRINTF ("protocol = MERLIN, start bit timings: pulse: %3d - %3d, pause: %3d - %3d\n", - MERLIN_START_BIT_PULSE_LEN_MIN, MERLIN_START_BIT_PULSE_LEN_MAX, - MERLIN_START_BIT_PAUSE_LEN_MIN, MERLIN_START_BIT_PAUSE_LEN_MAX); - irmp_param_p = (IRMP_PARAMETER *) &merlin_param; - } - else -#endif // IRMP_SUPPORT_MERLIN_PROTOCOL == 1 - #if IRMP_SUPPORT_LEGO_PROTOCOL == 1 if (irmp_pulse_time >= LEGO_START_BIT_PULSE_LEN_MIN && irmp_pulse_time <= LEGO_START_BIT_PULSE_LEN_MAX && irmp_pause_time >= LEGO_START_BIT_PAUSE_LEN_MIN && irmp_pause_time <= LEGO_START_BIT_PAUSE_LEN_MAX) @@ -2423,18 +2340,6 @@ irmp_ISR (void) else #endif // IRMP_SUPPORT_NEC_PROTOCOL == 1 -#if IRMP_SUPPORT_IMON_PROTOCOL == 1 - if (irmp_pulse_time >= IMON_START_BIT_PULSE_LEN_MIN && irmp_pulse_time <= IMON_START_BIT_PULSE_LEN_MAX && - irmp_pause_time >= IMON_START_BIT_PAUSE_LEN_MIN && irmp_pause_time <= IMON_START_BIT_PAUSE_LEN_MAX) - { // it's IMON - ANALYZE_PRINTF ("protocol = IMON, start bit timings: pulse: %3d - %3d, pause: %3d - %3d\n", - IMON_START_BIT_PULSE_LEN_MIN, IMON_START_BIT_PULSE_LEN_MAX, - IMON_START_BIT_PAUSE_LEN_MIN, IMON_START_BIT_PAUSE_LEN_MAX); - irmp_param_p = (IRMP_PARAMETER *) &imon_param; - } - else -#endif // IRMP_SUPPORT_IMON_PROTOCOL == 1 - { ANALYZE_PRINTF ("protocol = UNKNOWN\n"); // irmp_busy_flag = FALSE; @@ -2642,15 +2547,6 @@ irmp_ISR (void) got_light = TRUE; // this is a lie, but helps (generates stop bit) } else -#if 1 - // MERLIN generates no stop bit, here is the timeout condition: - if ((irmp_param.flags & IRMP_PARAM_FLAG_IS_SERIAL) && irmp_param.protocol == IRMP_MERLIN_PROTOCOL && - irmp_pause_time >= MERLIN_PULSE_LEN * (MERLIN_COMPLETE_DATA_LEN - irmp_bit)) - { - got_light = TRUE; // this is a lie, but helps (generates stop bit) - } - else -#endif #endif #if IRMP_SUPPORT_GRUNDIG_NOKIA_IR60_PROTOCOL == 1 if (irmp_param.protocol == IRMP_GRUNDIG_PROTOCOL && !irmp_param.stop_bit) diff --git a/irmp.h b/irmp.h index 7504907..b694e26 100644 --- a/irmp.h +++ b/irmp.h @@ -73,11 +73,8 @@ typedef uint8_t PAUSE_LEN; #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_MERLIN_PROTOCOL 31 // Pollin Merlin keyboard (bitserial) -#define IRMP_N_PROTOCOLS 31 // number of supported protocols - -#define IRMP_IMON_PROTOCOL 99 // Imon (bitserial) PROTOTYPE! +#define IRMP_N_PROTOCOLS 30 // number of supported protocols // some flags of struct IRMP_PARAMETER: #define IRMP_PARAM_FLAG_IS_MANCHESTER 0x01 @@ -447,22 +444,6 @@ typedef uint8_t PAUSE_LEN; #define NETBOX_LSB 1 // LSB #define NETBOX_FLAGS IRMP_PARAM_FLAG_IS_SERIAL // flags -#define MERLIN_START_BIT_PULSE_TIME 340.0e-6 // 340 usec pulse -#define MERLIN_START_BIT_PAUSE_TIME 300.0e-6 // 300 usec pause -#define MERLIN_PULSE_TIME 380.0e-6 // 380 usec pulse -#define MERLIN_PAUSE_TIME 310.0e-6 // 310 usec pause -#define MERLIN_FRAMES 1 // Merlin sends 1 frame -#define MERLIN_AUTO_REPETITION_PAUSE_TIME 35.0e-3 // auto repetition after 35ms -#define MERLIN_FRAME_REPEAT_PAUSE_TIME 35.0e-3 // frame repeat after 35ms -#define MERLIN_ADDRESS_OFFSET 0 // skip 0 bits -#define MERLIN_ADDRESS_LEN 9 // read 16 address bits -#define MERLIN_COMMAND_OFFSET 9 // skip 16 bits -#define MERLIN_COMMAND_LEN 16 // read 9 bits -#define MERLIN_COMPLETE_DATA_LEN 25 // complete length -#define MERLIN_STOP_BIT 0 // has no stop bit -#define MERLIN_LSB 1 // LSB -#define MERLIN_FLAGS IRMP_PARAM_FLAG_IS_SERIAL // flags - #define LEGO_START_BIT_PULSE_TIME 158.0e-6 // 158 usec pulse ( 6 x 1/38kHz) #define LEGO_START_BIT_PAUSE_TIME 1026.0e-6 // 1026 usec pause (39 x 1/38kHz) #define LEGO_PULSE_TIME 158.0e-6 // 158 usec pulse ( 6 x 1/38kHz) @@ -493,22 +474,6 @@ typedef uint8_t PAUSE_LEN; #define THOMSON_LSB 0 // MSB...LSB #define THOMSON_FLAGS 0 // flags -#define IMON_START_BIT_PULSE_TIME 1333.0e-6 // 1333 usec pulse -#define IMON_START_BIT_PAUSE_TIME 1172.0e-6 // 1333 usec pause -#define IMON_PULSE_TIME 500.0e-6 // 500 usec pulse -#define IMON_PAUSE_TIME 500.0e-6 // 500 usec pause -#define IMON_FRAMES 1 // Imon sends 1 frame -#define IMON_AUTO_REPETITION_PAUSE_TIME 35.0e-3 // auto repetition after 35ms -#define IMON_FRAME_REPEAT_PAUSE_TIME 35.0e-3 // frame repeat after 35ms -#define IMON_ADDRESS_OFFSET 0 // skip 0 bits -#define IMON_ADDRESS_LEN 0 // read 0 address bits -#define IMON_COMMAND_OFFSET 26 // skip 26 bits -#define IMON_COMMAND_LEN 16 // read last 16 bits, ignore rest -#define IMON_COMPLETE_DATA_LEN 42 // complete length, last is stop bit -#define IMON_STOP_BIT 1 // has stop bit -#define IMON_LSB 1 // LSB -#define IMON_FLAGS IRMP_PARAM_FLAG_IS_SERIAL // flags - #define AUTO_FRAME_REPETITION_TIME 80.0e-3 // SIRCS/SAMSUNG32/NUBERT: automatic repetition after 25-50ms // KASEIKYO: automatic repetition after 75ms diff --git a/irmpconfig.h b/irmpconfig.h index 5958c8f..5afe094 100644 --- a/irmpconfig.h +++ b/irmpconfig.h @@ -70,8 +70,6 @@ #define IRMP_SUPPORT_THOMSON_PROTOCOL 0 // Thomson >= 10000 ~250 bytes #define IRMP_SUPPORT_NIKON_PROTOCOL 0 // NIKON camera >= 10000 ~250 bytes #define IRMP_SUPPORT_NETBOX_PROTOCOL 0 // Netbox keyboard >= 10000 ~400 bytes (PROTOTYPE!) -#define IRMP_SUPPORT_MERLIN_PROTOCOL 0 // Merlin keyboard >= 10000 ~400 bytes (PROTOTYPE!) -#define IRMP_SUPPORT_IMON_PROTOCOL 0 // IMON keyboard >= 10000 ~400 bytes (PROTOTYPE!) #define IRMP_SUPPORT_FDC_PROTOCOL 0 // FDC3402 keyboard >= 10000 (better 15000) ~150 bytes (~400 in combination with RC5) #define IRMP_SUPPORT_RCCAR_PROTOCOL 0 // RC Car >= 10000 (better 15000) ~150 bytes (~500 in combination with RC5) #define IRMP_SUPPORT_RUWIDO_PROTOCOL 0 // RUWIDO, T-Home >= 15000 ~550 bytes