First release of porting 'Infrared Multiprotocol' library from mikrocontroller.net

Dependents:   IRMP_Receiver

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers irmpprotocols.h Source File

irmpprotocols.h

00001 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00002  * irmpprotocols.h - irmp protocols
00003  *
00004  * DO NOT INCLUDE THIS FILE, WILL BE INCLUDED BY IRMP.H or IRSND.H!
00005  *
00006  * Copyright (c) 2013-2015 Frank Meyer - frank(at)fli4l.de
00007  *
00008  * $Id: irmpprotocols.h,v 1.44 2015/11/30 09:31:54 fm Exp $
00009  *
00010  * This program is free software; you can redistribute it and/or modify
00011  * it under the terms of the GNU General Public License as published by
00012  * the Free Software Foundation; either version 2 of the License, or
00013  * (at your option) any later version.
00014  *---------------------------------------------------------------------------------------------------------------------------------------------------
00015  */
00016 
00017 #ifndef _IRMP_PROTOCOLS_H_
00018 #define _IRMP_PROTOCOLS_H_
00019 
00020 #if !defined(_IRMP_H_) && !defined(_IRSND_H_)
00021 #  error please include only irmp.h or irsnd.h, not irmpprotocols.h
00022 #endif
00023 
00024 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00025  * IR protocols:
00026  *---------------------------------------------------------------------------------------------------------------------------------------------------
00027  */
00028 #define IRMP_SIRCS_PROTOCOL                      1              // Sony
00029 #define IRMP_NEC_PROTOCOL                        2              // NEC, Pioneer, JVC, Toshiba, NoName etc.
00030 #define IRMP_SAMSUNG_PROTOCOL                    3              // Samsung
00031 #define IRMP_MATSUSHITA_PROTOCOL                 4              // Matsushita
00032 #define IRMP_KASEIKYO_PROTOCOL                   5              // Kaseikyo (Panasonic etc)
00033 #define IRMP_RECS80_PROTOCOL                     6              // Philips, Thomson, Nordmende, Telefunken, Saba
00034 #define IRMP_RC5_PROTOCOL                        7              // Philips etc
00035 #define IRMP_DENON_PROTOCOL                      8              // Denon, Sharp
00036 #define IRMP_RC6_PROTOCOL                        9              // Philips etc
00037 #define IRMP_SAMSUNG32_PROTOCOL                 10              // Samsung32: no sync pulse at bit 16, length 32 instead of 37
00038 #define IRMP_APPLE_PROTOCOL                     11              // Apple, very similar to NEC
00039 #define IRMP_RECS80EXT_PROTOCOL                 12              // Philips, Technisat, Thomson, Nordmende, Telefunken, Saba
00040 #define IRMP_NUBERT_PROTOCOL                    13              // Nubert
00041 #define IRMP_BANG_OLUFSEN_PROTOCOL              14              // Bang & Olufsen
00042 #define IRMP_GRUNDIG_PROTOCOL                   15              // Grundig
00043 #define IRMP_NOKIA_PROTOCOL                     16              // Nokia
00044 #define IRMP_SIEMENS_PROTOCOL                   17              // Siemens, e.g. Gigaset
00045 #define IRMP_FDC_PROTOCOL                       18              // FDC keyboard
00046 #define IRMP_RCCAR_PROTOCOL                     19              // RC Car
00047 #define IRMP_JVC_PROTOCOL                       20              // JVC (NEC with 16 bits)
00048 #define IRMP_RC6A_PROTOCOL                      21              // RC6A, e.g. Kathrein, XBOX
00049 #define IRMP_NIKON_PROTOCOL                     22              // Nikon
00050 #define IRMP_RUWIDO_PROTOCOL                    23              // Ruwido, e.g. T-Home Mediareceiver
00051 #define IRMP_IR60_PROTOCOL                      24              // IR60 (SDA2008)
00052 #define IRMP_KATHREIN_PROTOCOL                  25              // Kathrein
00053 #define IRMP_NETBOX_PROTOCOL                    26              // Netbox keyboard (bitserial)
00054 #define IRMP_NEC16_PROTOCOL                     27              // NEC with 16 bits (incl. sync)
00055 #define IRMP_NEC42_PROTOCOL                     28              // NEC with 42 bits
00056 #define IRMP_LEGO_PROTOCOL                      29              // LEGO Power Functions RC
00057 #define IRMP_THOMSON_PROTOCOL                   30              // Thomson
00058 #define IRMP_BOSE_PROTOCOL                      31              // BOSE
00059 #define IRMP_A1TVBOX_PROTOCOL                   32              // A1 TV Box
00060 #define IRMP_ORTEK_PROTOCOL                     33              // ORTEK - Hama
00061 #define IRMP_TELEFUNKEN_PROTOCOL                34              // Telefunken (1560)
00062 #define IRMP_ROOMBA_PROTOCOL                    35              // iRobot Roomba vacuum cleaner
00063 #define IRMP_RCMM32_PROTOCOL                    36              // Fujitsu-Siemens (Activy remote control)
00064 #define IRMP_RCMM24_PROTOCOL                    37              // Fujitsu-Siemens (Activy keyboard)
00065 #define IRMP_RCMM12_PROTOCOL                    38              // Fujitsu-Siemens (Activy keyboard)
00066 #define IRMP_SPEAKER_PROTOCOL                   39              // Another loudspeaker protocol, similar to Nubert
00067 #define IRMP_LGAIR_PROTOCOL                     40              // LG air conditioner
00068 #define IRMP_SAMSUNG48_PROTOCOL                 41              // air conditioner with SAMSUNG protocol (48 bits)
00069 #define IRMP_MERLIN_PROTOCOL                    42              // Merlin (Pollin 620 185)
00070 #define IRMP_PENTAX_PROTOCOL                    43              // Pentax camera
00071 #define IRMP_FAN_PROTOCOL                       44              // FAN (ventilator), very similar to NUBERT, but last bit is data bit instead of stop bit
00072 #define IRMP_S100_PROTOCOL                      45              // very similar to RC5, but 14 instead of 13 data bits
00073 #define IRMP_ACP24_PROTOCOL                     46              // Stiebel Eltron ACP24 air conditioner
00074 #define IRMP_TECHNICS_PROTOCOL                  47              // Technics, similar to Matsushita, but 22 instead of 24 bits
00075 #define IRMP_PANASONIC_PROTOCOL                 48              // Panasonic (Beamer), start bits similar to KASEIKYO
00076 
00077 #define IRMP_RADIO1_PROTOCOL                    49              // Radio protocol (experimental status), do not use it yet!
00078 
00079 #define IRMP_N_PROTOCOLS                        50              // number of supported protocols
00080 
00081 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00082  * timing constants:
00083  *---------------------------------------------------------------------------------------------------------------------------------------------------
00084  */
00085 // fm 22.09.2011: may not be more than 16000L, otherwise some JVC codes will not be accepted
00086 #define IRMP_TIMEOUT_TIME                       15500.0e-6                  // timeout after 15.5 ms darkness
00087 #define IRMP_TIMEOUT_TIME_MS                    15500L                      // timeout after 15.5 ms darkness
00088 
00089 #if IRMP_SUPPORT_NIKON_PROTOCOL == 1
00090 #  define IRMP_TIMEOUT_NIKON_TIME               29500.0e-6                  // 2nd timeout after 29.5 ms darkness (only for NIKON!)
00091 #  define IRMP_TIMEOUT_NIKON_TIME_MS            29500L                      // 2nd timeout after 29.5 ms darkness
00092 typedef uint16_t    PAUSE_LEN;
00093 #  define IRMP_TIMEOUT_NIKON_LEN                (PAUSE_LEN)(F_INTERRUPTS * IRMP_TIMEOUT_NIKON_TIME + 0.5)
00094 #else
00095 #  if (F_INTERRUPTS * IRMP_TIMEOUT_TIME_MS) / 1000000 >= 254
00096 typedef uint16_t    PAUSE_LEN;
00097 #  else
00098 typedef uint8_t     PAUSE_LEN;
00099 #  endif
00100 #endif
00101 
00102 #define IRMP_TIMEOUT_LEN                        (PAUSE_LEN)(F_INTERRUPTS * IRMP_TIMEOUT_TIME + 0.5)
00103 
00104 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00105  * flags of struct IRMP_PARAMETER:
00106  *---------------------------------------------------------------------------------------------------------------------------------------------------
00107  */
00108 #define IRMP_PARAM_FLAG_IS_MANCHESTER           0x01
00109 #define IRMP_PARAM_FLAG_1ST_PULSE_IS_1          0x02
00110 #define IRMP_PARAM_FLAG_IS_SERIAL               0x04
00111 
00112 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00113  * SIRCS:
00114  *---------------------------------------------------------------------------------------------------------------------------------------------------
00115  */
00116 #define SIRCS_START_BIT_PULSE_TIME              2400.0e-6                       // 2400 usec pulse
00117 #define SIRCS_START_BIT_PAUSE_TIME               600.0e-6                       //  600 usec pause
00118 #define SIRCS_1_PULSE_TIME                      1200.0e-6                       // 1200 usec pulse
00119 #define SIRCS_0_PULSE_TIME                       600.0e-6                       //  600 usec pulse
00120 #define SIRCS_PAUSE_TIME                         600.0e-6                       //  600 usec pause
00121 #define SIRCS_FRAMES                            3                               // SIRCS sends each frame 3 times
00122 #define SIRCS_AUTO_REPETITION_PAUSE_TIME          25.0e-3                       // auto repetition after 25ms
00123 #define SIRCS_FRAME_REPEAT_PAUSE_TIME             25.0e-3                       // frame repeat after 25ms
00124 #define SIRCS_ADDRESS_OFFSET                    15                              // skip 15 bits
00125 #define SIRCS_ADDRESS_LEN                       5                               // read up to 5 address bits
00126 #define SIRCS_COMMAND_OFFSET                    0                               // skip 0 bits
00127 #define SIRCS_COMMAND_LEN                       15                              // read 12-15 command bits
00128 #define SIRCS_MINIMUM_DATA_LEN                  12                              // minimum data length
00129 #define SIRCS_COMPLETE_DATA_LEN                 20                              // complete length - may be up to 20
00130 #define SIRCS_STOP_BIT                          0                               // has no stop bit
00131 #define SIRCS_LSB                               1                               // LSB...MSB
00132 #define SIRCS_FLAGS                             0                               // flags
00133 
00134 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00135  * NEC & NEC42 & NEC16 & LGAIR:
00136  *---------------------------------------------------------------------------------------------------------------------------------------------------
00137  */
00138 #define NEC_START_BIT_PULSE_TIME                9000.0e-6                       // 9000 usec pulse
00139 #define NEC_START_BIT_PAUSE_TIME                4500.0e-6                       // 4500 usec pause
00140 #define NEC_REPEAT_START_BIT_PAUSE_TIME         2250.0e-6                       // 2250 usec pause
00141 #define NEC_PULSE_TIME                           560.0e-6                       //  560 usec pulse
00142 #define NEC_1_PAUSE_TIME                        1690.0e-6                       // 1690 usec pause
00143 #define NEC_0_PAUSE_TIME                         560.0e-6                       //  560 usec pause
00144 #define NEC_FRAME_REPEAT_PAUSE_TIME               40.0e-3                       // frame repeat after 40ms
00145 #define NEC_ADDRESS_OFFSET                       0                              // skip 0 bits
00146 #define NEC_ADDRESS_LEN                         16                              // read 16 address bits
00147 #define NEC_COMMAND_OFFSET                      16                              // skip 16 bits (8 address + 8 /address)
00148 #define NEC_COMMAND_LEN                         16                              // read 16 bits (8 command + 8 /command)
00149 #define NEC_COMPLETE_DATA_LEN                   32                              // complete length
00150 #define NEC_STOP_BIT                            1                               // has stop bit
00151 #define NEC_LSB                                 1                               // LSB...MSB
00152 #define NEC_FLAGS                               0                               // flags
00153 
00154 #define NEC42_ADDRESS_OFFSET                    0                               // skip 0 bits
00155 #define NEC42_ADDRESS_LEN                      13                               // read 13 address bits
00156 #define NEC42_COMMAND_OFFSET                   26                               // skip 26 bits (2 x 13 address bits)
00157 #define NEC42_COMMAND_LEN                       8                               // read 8 command bits
00158 #define NEC42_COMPLETE_DATA_LEN                42                               // complete length (2 x 13 + 2 x 8)
00159 
00160 #define LGAIR_ADDRESS_OFFSET                    0                               // skip 0 bits
00161 #define LGAIR_ADDRESS_LEN                       8                               // read 8 address bits
00162 #define LGAIR_COMMAND_OFFSET                    8                               // skip 8 bits (8 address)
00163 #define LGAIR_COMMAND_LEN                      16                               // read 16 bits (16 command)
00164 #define LGAIR_COMPLETE_DATA_LEN                28                               // complete length (8 address + 16 command + 4 checksum)
00165 
00166 #define NEC16_ADDRESS_OFFSET                    0                               // skip 0 bits
00167 #define NEC16_ADDRESS_LEN                       8                               // read 8 address bits
00168 #define NEC16_COMMAND_OFFSET                    8                               // skip 8 bits (8 address)
00169 #define NEC16_COMMAND_LEN                       8                               // read 8 bits (8 command)
00170 #define NEC16_COMPLETE_DATA_LEN                 16                              // complete length
00171 
00172 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00173  * SAMSUNG & SAMSUNG32 & SAMSUNG48:
00174  *---------------------------------------------------------------------------------------------------------------------------------------------------
00175  */
00176 #define SAMSUNG_START_BIT_PULSE_TIME            4500.0e-6                       // 4500 usec pulse
00177 #define SAMSUNG_START_BIT_PAUSE_TIME            4500.0e-6                       // 4500 usec pause
00178 #define SAMSUNG_PULSE_TIME                       550.0e-6                       //  550 usec pulse
00179 #define SAMSUNG_1_PAUSE_TIME                    1500.0e-6                       // 1550 usec pause
00180 #define SAMSUNG_0_PAUSE_TIME                     500.0e-6                       //  500 usec pause
00181 
00182 #define SAMSUNG_FRAME_REPEAT_PAUSE_TIME           25.0e-3                       // frame repeat after 25ms
00183 #define SAMSUNG_ADDRESS_OFFSET                   0                              // skip 0 bits
00184 #define SAMSUNG_ADDRESS_LEN                     16                              // read 16 address bits
00185 #define SAMSUNG_ID_OFFSET                       17                              // skip 16 + 1 sync bit
00186 #define SAMSUNG_ID_LEN                          4                               // read 4 id bits
00187 #define SAMSUNG_COMMAND_OFFSET                  21                              // skip 16 + 1 sync + 4 data bits
00188 #define SAMSUNG_COMMAND_LEN                     16                              // read 16 command bits
00189 #define SAMSUNG_COMPLETE_DATA_LEN               37                              // complete length
00190 #define SAMSUNG_STOP_BIT                        1                               // has stop bit
00191 #define SAMSUNG_LSB                             1                               // LSB...MSB?
00192 #define SAMSUNG_FLAGS                           0                               // flags
00193 
00194 #define SAMSUNG32_COMMAND_OFFSET                16                              // skip 16 bits
00195 #define SAMSUNG32_COMMAND_LEN                   16                              // read 16 command bits
00196 #define SAMSUNG32_COMPLETE_DATA_LEN             32                              // complete length
00197 #define SAMSUNG32_FRAMES                        1                               // SAMSUNG32 sends one frame
00198 #define SAMSUNG32_AUTO_REPETITION_PAUSE_TIME    47.0e-3                         // repetition after 47 ms
00199 #define SAMSUNG32_FRAME_REPEAT_PAUSE_TIME       47.0e-3                         // frame repeat after 47ms
00200 
00201 #define SAMSUNG48_COMMAND_OFFSET                16                              // skip 16 bits
00202 #define SAMSUNG48_COMMAND_LEN                   32                              // read 32 command bits
00203 #define SAMSUNG48_COMPLETE_DATA_LEN             48                              // complete length
00204 #define SAMSUNG48_FRAMES                        2                               // SAMSUNG48 sends each frame 2 times
00205 #define SAMSUNG48_AUTO_REPETITION_PAUSE_TIME    5.0e-3                          // repetition after 5 ms
00206 #define SAMSUNG48_FRAME_REPEAT_PAUSE_TIME       47.0e-3                         // frame repeat after 47ms
00207 
00208 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00209  * MATSUSHITA:
00210  *---------------------------------------------------------------------------------------------------------------------------------------------------
00211  */
00212 #define MATSUSHITA_START_BIT_PULSE_TIME         3488.0e-6                       // 3488 usec pulse
00213 #define MATSUSHITA_START_BIT_PAUSE_TIME         3488.0e-6                       // 3488 usec pause
00214 #define MATSUSHITA_PULSE_TIME                    872.0e-6                       //  872 usec pulse
00215 #define MATSUSHITA_1_PAUSE_TIME                 2616.0e-6                       // 2616 usec pause
00216 #define MATSUSHITA_0_PAUSE_TIME                  872.0e-6                       //  872 usec pause
00217 #define MATSUSHITA_FRAME_REPEAT_PAUSE_TIME        40.0e-3                       // frame repeat after 40ms
00218 #define MATSUSHITA_ADDRESS_OFFSET               12                              // skip 12 bits
00219 #define MATSUSHITA_ADDRESS_LEN                  12                              // read 12 address bits
00220 #define MATSUSHITA_COMMAND_OFFSET               0                               // skip 0 bits
00221 #define MATSUSHITA_COMMAND_LEN                  12                              // read 12 bits (6 custom + 6 command)
00222 #define MATSUSHITA_COMPLETE_DATA_LEN            24                              // complete length
00223 #define MATSUSHITA_STOP_BIT                     1                               // has stop bit
00224 #define MATSUSHITA_LSB                          1                               // LSB...MSB?
00225 #define MATSUSHITA_FLAGS                        0                               // flags
00226 
00227 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00228  * TECHNICS: same timings as MATSUSHITA
00229  *---------------------------------------------------------------------------------------------------------------------------------------------------
00230  */
00231 #define TECHNICS_ADDRESS_LEN                    0                               // read 0 address bits
00232 #define TECHNICS_COMMAND_LEN                    11                              // read 11 bits
00233 #define TECHNICS_COMPLETE_DATA_LEN              22                              // complete length
00234 
00235 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00236  * KASEIKYO:
00237  *---------------------------------------------------------------------------------------------------------------------------------------------------
00238  */
00239 #define KASEIKYO_START_BIT_PULSE_TIME           3380.0e-6                       // 3380 usec pulse
00240 #define KASEIKYO_START_BIT_PAUSE_TIME           1690.0e-6                       // 1690 usec pause
00241 #define KASEIKYO_PULSE_TIME                      423.0e-6                       //  525 usec pulse
00242 #define KASEIKYO_1_PAUSE_TIME                   1269.0e-6                       //  525 usec pause
00243 #define KASEIKYO_0_PAUSE_TIME                    423.0e-6                       // 1690 usec pause
00244 #define KASEIKYO_AUTO_REPETITION_PAUSE_TIME       74.0e-3                       // repetition after 74 ms
00245 #define KASEIKYO_FRAME_REPEAT_PAUSE_TIME          74.0e-3                       // frame repeat after 74 ms
00246 #define KASEIKYO_ADDRESS_OFFSET                  0                              // skip 0 bits
00247 #define KASEIKYO_ADDRESS_LEN                    16                              // read 16 address bits
00248 #define KASEIKYO_COMMAND_OFFSET                 28                              // skip 28 bits (16 manufacturer & 4 parity & 8 genre)
00249 #define KASEIKYO_COMMAND_LEN                    12                              // read 12 command bits (10 real command & 2 id)
00250 #define KASEIKYO_COMPLETE_DATA_LEN              48                              // complete length
00251 #define KASEIKYO_STOP_BIT                       1                               // has stop bit
00252 #define KASEIKYO_LSB                            1                               // LSB...MSB?
00253 #define KASEIKYO_FRAMES                         1                               // KASEIKYO sends 1 frame
00254 #define KASEIKYO_FLAGS                          0                               // flags
00255 
00256 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00257  * PANASONIC (Beamer), start bit timings similar to KASEIKYO
00258  *---------------------------------------------------------------------------------------------------------------------------------------------------
00259  */
00260 #define PANASONIC_START_BIT_PULSE_TIME           3600.0e-6                       // 3600 usec pulse
00261 #define PANASONIC_START_BIT_PAUSE_TIME           1600.0e-6                       // 1690 usec pause
00262 #define PANASONIC_PULSE_TIME                      565.0e-6                       //  565 usec pulse
00263 #define PANASONIC_1_PAUSE_TIME                   1140.0e-6                       // 1140 usec pause
00264 #define PANASONIC_0_PAUSE_TIME                    316.0e-6                       //  316 usec pause
00265 #define PANASONIC_AUTO_REPETITION_PAUSE_TIME       40.0e-3                       // repetition after 40 ms?
00266 #define PANASONIC_FRAME_REPEAT_PAUSE_TIME          40.0e-3                       // frame repeat after 40 ms
00267 #define PANASONIC_ADDRESS_OFFSET                 24                              // skip 24 bits: 010000000000010000000001
00268 #define PANASONIC_ADDRESS_LEN                    16                              // read 16 address bits
00269 #define PANASONIC_COMMAND_OFFSET                 40                              // skip 40 bits
00270 #define PANASONIC_COMMAND_LEN                    16                              // read 16 command bits
00271 #define PANASONIC_COMPLETE_DATA_LEN              56                              // complete length
00272 #define PANASONIC_STOP_BIT                       1                               // has stop bit
00273 #define PANASONIC_LSB                            1                               // LSB...MSB?
00274 #define PANASONIC_FRAMES                         1                               // PANASONIC sends 1 frame
00275 #define PANASONIC_FLAGS                          0                               // flags
00276 
00277 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00278  * RECS80:
00279  *---------------------------------------------------------------------------------------------------------------------------------------------------
00280  */
00281 #define RECS80_START_BIT_PULSE_TIME              158.0e-6                       //  158 usec pulse
00282 #define RECS80_START_BIT_PAUSE_TIME             7432.0e-6                       // 7432 usec pause
00283 #define RECS80_PULSE_TIME                        158.0e-6                       //  158 usec pulse
00284 #define RECS80_1_PAUSE_TIME                     7432.0e-6                       // 7432 usec pause
00285 #define RECS80_0_PAUSE_TIME                     4902.0e-6                       // 4902 usec pause
00286 #define RECS80_FRAME_REPEAT_PAUSE_TIME            45.0e-3                       // frame repeat after 45ms
00287 #define RECS80_ADDRESS_OFFSET                   1                               // skip 1 bit (toggle bit)
00288 #define RECS80_ADDRESS_LEN                      3                               // read 3 address bits
00289 #define RECS80_COMMAND_OFFSET                   4                               // skip 4 bits (1 toggle + 3 address)
00290 #define RECS80_COMMAND_LEN                      6                               // read 6 command bits
00291 #define RECS80_COMPLETE_DATA_LEN                10                              // complete length
00292 #define RECS80_STOP_BIT                         1                               // has stop bit
00293 #define RECS80_LSB                              0                               // MSB...LSB
00294 #define RECS80_FLAGS                            0                               // flags
00295 
00296 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00297  * RC5:
00298  *---------------------------------------------------------------------------------------------------------------------------------------------------
00299  */
00300 #define RC5_BIT_TIME                             889.0e-6                       // 889 usec pulse/pause
00301 #define RC5_FRAME_REPEAT_PAUSE_TIME               88.9e-3                       // frame repeat after 88.9ms
00302 
00303 #define RC5_ADDRESS_OFFSET                      1                               // skip 1 bit (2nd start)
00304 #define RC5_ADDRESS_LEN                         6                               // read 1 toggle bit (for key repetition detection) + 5 address bits
00305 #define RC5_COMMAND_OFFSET                      7                               // skip 5 bits (2nd start + 1 toggle + 5 address)
00306 #define RC5_COMMAND_LEN                         6                               // read 6 command bits
00307 #define RC5_COMPLETE_DATA_LEN                   13                              // complete length
00308 #define RC5_STOP_BIT                            0                               // has no stop bit
00309 #define RC5_LSB                                 0                               // MSB...LSB
00310 #define RC5_FLAGS                               IRMP_PARAM_FLAG_IS_MANCHESTER   // flags
00311 
00312 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00313  * S100: very similar to RC5, but 14 insted of 13 bits
00314  *---------------------------------------------------------------------------------------------------------------------------------------------------
00315  */
00316 #define S100_BIT_TIME                             889.0e-6                       // 889 usec pulse/pause
00317 #define S100_FRAME_REPEAT_PAUSE_TIME               88.9e-3                       // frame repeat after 88.9ms
00318 
00319 #define S100_ADDRESS_OFFSET                      1                               // skip 1 bit (2nd start)
00320 #define S100_ADDRESS_LEN                         6                               // read 1 toggle bit (for key repetition detection) + 5 address bits
00321 #define S100_COMMAND_OFFSET                      7                               // skip 5 bits (2nd start + 1 toggle + 5 address)
00322 #define S100_COMMAND_LEN                         7                               // read 7 command bits
00323 #define S100_COMPLETE_DATA_LEN                   14                              // complete length
00324 #define S100_STOP_BIT                            0                               // has no stop bit
00325 #define S100_LSB                                 0                               // MSB...LSB
00326 #define S100_FLAGS                               IRMP_PARAM_FLAG_IS_MANCHESTER   // flags
00327 
00328 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00329  * DENON:
00330  *---------------------------------------------------------------------------------------------------------------------------------------------------
00331  */
00332 #define DENON_PULSE_TIME                         310.0e-6                       //  310 usec pulse in practice,  275 in theory
00333 #define DENON_1_PAUSE_TIME                      1780.0e-6                       // 1780 usec pause in practice, 1900 in theory
00334 #define DENON_0_PAUSE_TIME                       745.0e-6                       //  745 usec pause in practice,  775 in theory
00335 #define DENON_FRAMES                            2                               // DENON sends each frame 2 times
00336 #define DENON_AUTO_REPETITION_PAUSE_TIME          45.0e-3                       // inverted repetition after 45ms
00337 #define DENON_FRAME_REPEAT_PAUSE_TIME             45.0e-3                       // frame repeat after 45ms
00338 #define DENON_ADDRESS_OFFSET                    0                               // skip 0 bits
00339 #define DENON_ADDRESS_LEN                       5                               // read 5 address bits
00340 #define DENON_COMMAND_OFFSET                    5                               // skip 5
00341 #define DENON_COMMAND_LEN                       10                              // read 10 command bits
00342 #define DENON_COMPLETE_DATA_LEN                 15                              // complete length
00343 #define DENON_STOP_BIT                          1                               // has stop bit
00344 #define DENON_LSB                               0                               // MSB...LSB
00345 #define DENON_FLAGS                             0                               // flags
00346 
00347 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00348  * RC6:
00349  *---------------------------------------------------------------------------------------------------------------------------------------------------
00350  */
00351 #define RC6_START_BIT_PULSE_TIME                2666.0e-6                       // 2.666 msec pulse
00352 #define RC6_START_BIT_PAUSE_TIME                 889.0e-6                       // 889 usec pause
00353 #define RC6_TOGGLE_BIT_TIME                      889.0e-6                       // 889 msec pulse/pause
00354 #define RC6_BIT_TIME                             444.0e-6                       // 444 usec pulse/pause
00355 #define RC6_BIT_2_TIME                           889.0e-6                       // 889 usec pulse/pause
00356 #define RC6_BIT_3_TIME                          1333.0e-6                       // 1333 usec pulse/pause
00357 #define RC6_FRAME_REPEAT_PAUSE_TIME               45.0e-3                       // frame repeat after 45ms
00358 #define RC6_ADDRESS_OFFSET                      5                               // skip "1" + 3 mode bits + 1 toggle bit
00359 #define RC6_ADDRESS_LEN                         8                               // read 8 address bits
00360 #define RC6_COMMAND_OFFSET                      13                              // skip 12 bits ("1" + 3 mode + 1 toggle + 8 address)
00361 #define RC6_COMMAND_LEN                         8                               // read 8 command bits
00362 #define RC6_COMPLETE_DATA_LEN_SHORT             21                              // complete length
00363 #define RC6_COMPLETE_DATA_LEN_LONG              36                              // complete length
00364 #define RC6_STOP_BIT                            0                               // has no stop bit
00365 #define RC6_LSB                                 0                               // MSB...LSB
00366 #define RC6_FLAGS                               (IRMP_PARAM_FLAG_IS_MANCHESTER | IRMP_PARAM_FLAG_1ST_PULSE_IS_1)   // flags
00367 
00368 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00369  * RECS80EXT:
00370  *---------------------------------------------------------------------------------------------------------------------------------------------------
00371  */
00372 #define RECS80EXT_START_BIT_PULSE_TIME           158.0e-6                       //  158 usec pulse
00373 #define RECS80EXT_START_BIT_PAUSE_TIME          3637.0e-6                       // 3637 usec pause
00374 #define RECS80EXT_PULSE_TIME                     158.0e-6                       //  158 usec pulse
00375 #define RECS80EXT_1_PAUSE_TIME                  7432.0e-6                       // 7432 usec pause
00376 #define RECS80EXT_0_PAUSE_TIME                  4902.0e-6                       // 4902 usec pause
00377 #define RECS80EXT_FRAME_REPEAT_PAUSE_TIME         45.0e-3                       // frame repeat after 45ms
00378 #define RECS80EXT_ADDRESS_OFFSET                2                               // skip 2 bits (2nd start + 1 toggle)
00379 #define RECS80EXT_ADDRESS_LEN                   4                               // read 4 address bits
00380 #define RECS80EXT_COMMAND_OFFSET                6                               // skip 6 bits (2nd start + 1 toggle + 4 address)
00381 #define RECS80EXT_COMMAND_LEN                   6                               // read 6 command bits
00382 #define RECS80EXT_COMPLETE_DATA_LEN             12                              // complete length
00383 #define RECS80EXT_STOP_BIT                      1                               // has stop bit
00384 #define RECS80EXT_LSB                           0                               // MSB...LSB
00385 #define RECS80EXT_FLAGS                         0                               // flags
00386 
00387 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00388  * NUBERT:
00389  *---------------------------------------------------------------------------------------------------------------------------------------------------
00390  */
00391 #define NUBERT_START_BIT_PULSE_TIME             1340.0e-6                       // 1340 usec pulse
00392 #define NUBERT_START_BIT_PAUSE_TIME              340.0e-6                       //  340 usec pause
00393 #define NUBERT_1_PULSE_TIME                     1340.0e-6                       // 1340 usec pulse
00394 #define NUBERT_1_PAUSE_TIME                      340.0e-6                       //  340 usec pause
00395 #define NUBERT_0_PULSE_TIME                      500.0e-6                       //  500 usec pulse
00396 #define NUBERT_0_PAUSE_TIME                     1300.0e-6                       // 1300 usec pause
00397 #define NUBERT_FRAMES                           2                               // Nubert sends 2 frames
00398 #define NUBERT_AUTO_REPETITION_PAUSE_TIME         35.0e-3                       // auto repetition after 35ms
00399 #define NUBERT_FRAME_REPEAT_PAUSE_TIME            35.0e-3                       // frame repeat after 45ms
00400 #define NUBERT_ADDRESS_OFFSET                   0                               // skip 0 bits
00401 #define NUBERT_ADDRESS_LEN                      0                               // read 0 address bits
00402 #define NUBERT_COMMAND_OFFSET                   0                               // skip 0 bits
00403 #define NUBERT_COMMAND_LEN                      10                              // read 10 bits
00404 #define NUBERT_COMPLETE_DATA_LEN                10                              // complete length
00405 #define NUBERT_STOP_BIT                         1                               // has stop bit
00406 #define NUBERT_LSB                              0                               // MSB?
00407 #define NUBERT_FLAGS                            0                               // flags
00408 
00409 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00410  * FAN: (ventilator)
00411  *
00412  * Similar to NUBERT, but
00413  *   - has data bit instead of stop bit
00414  *   - has NO frame repetition
00415  *---------------------------------------------------------------------------------------------------------------------------------------------------
00416  */
00417 #define FAN_START_BIT_PULSE_TIME                1280.0e-6                       // 1280 usec pulse
00418 #define FAN_START_BIT_PAUSE_TIME                 380.0e-6                       //  380 usec pause
00419 #define FAN_1_PULSE_TIME                        1280.0e-6                       // 1280 usec pulse
00420 #define FAN_1_PAUSE_TIME                         380.0e-6                       //  380 usec pause
00421 #define FAN_0_PULSE_TIME                         380.0e-6                       //  380 usec pulse
00422 #define FAN_0_PAUSE_TIME                        1280.0e-6                       // 1280 usec pause
00423 #define FAN_FRAMES                              1                               // FAN sends only 1 frame (NUBERT sends 2)
00424 #define FAN_AUTO_REPETITION_PAUSE_TIME            6.6e-3                        // auto repetition after 6.6ms
00425 #define FAN_FRAME_REPEAT_PAUSE_TIME               6.6e-3                        // frame repeat after 6.6ms
00426 #define FAN_ADDRESS_OFFSET                      0                               // skip 0 bits
00427 #define FAN_ADDRESS_LEN                         0                               // read 0 address bits
00428 #define FAN_COMMAND_OFFSET                      0                               // skip 0 bits
00429 #define FAN_COMMAND_LEN                         11                              // read 10 bits
00430 #define FAN_COMPLETE_DATA_LEN                   11                              // complete length
00431 #define FAN_STOP_BIT                            0                               // has NO stop bit (fm: this seems to be wrong)
00432 #define FAN_LSB                                 0                               // MSB
00433 #define FAN_FLAGS                               0                               // flags
00434 
00435 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00436  * SPEAKER:
00437  *---------------------------------------------------------------------------------------------------------------------------------------------------
00438  */
00439 #define SPEAKER_START_BIT_PULSE_TIME             440.0e-6                       //  440 usec pulse
00440 #define SPEAKER_START_BIT_PAUSE_TIME            1250.0e-6                       // 1250 usec pause
00441 #define SPEAKER_1_PULSE_TIME                    1250.0e-6                       // 1250 usec pulse
00442 #define SPEAKER_1_PAUSE_TIME                     440.0e-6                       //  440 usec pause
00443 #define SPEAKER_0_PULSE_TIME                     440.0e-6                       //  440 usec pulse
00444 #define SPEAKER_0_PAUSE_TIME                    1250.0e-6                       // 1250 usec pause
00445 #define SPEAKER_FRAMES                          2                               // SPEAKER sends 2 frames
00446 #define SPEAKER_AUTO_REPETITION_PAUSE_TIME        35.0e-3                       // auto repetition after 35ms
00447 #define SPEAKER_FRAME_REPEAT_PAUSE_TIME           35.0e-3                       // frame repeat after 45ms
00448 #define SPEAKER_ADDRESS_OFFSET                  0                               // skip 0 bits
00449 #define SPEAKER_ADDRESS_LEN                     0                               // read 0 address bits
00450 #define SPEAKER_COMMAND_OFFSET                  0                               // skip 0 bits
00451 #define SPEAKER_COMMAND_LEN                     10                              // read 10 bits
00452 #define SPEAKER_COMPLETE_DATA_LEN               10                              // complete length
00453 #define SPEAKER_STOP_BIT                        1                               // has stop bit
00454 #define SPEAKER_LSB                             0                               // MSB?
00455 #define SPEAKER_FLAGS                           0                               // flags
00456 
00457 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00458  * BANG_OLUFSEN:
00459  *---------------------------------------------------------------------------------------------------------------------------------------------------
00460  */
00461 #define BANG_OLUFSEN_START_BIT1_PULSE_TIME       200.0e-6                       //   200 usec pulse
00462 #define BANG_OLUFSEN_START_BIT1_PAUSE_TIME      3125.0e-6                       //  3125 usec pause
00463 #define BANG_OLUFSEN_START_BIT2_PULSE_TIME       200.0e-6                       //   200 usec pulse
00464 #define BANG_OLUFSEN_START_BIT2_PAUSE_TIME      3125.0e-6                       //  3125 usec pause
00465 #define BANG_OLUFSEN_START_BIT3_PULSE_TIME       200.0e-6                       //   200 usec pulse
00466 #define BANG_OLUFSEN_START_BIT3_PAUSE_TIME     15625.0e-6                       // 15625 usec pause
00467 #define BANG_OLUFSEN_START_BIT4_PULSE_TIME       200.0e-6                       //   200 usec pulse
00468 #define BANG_OLUFSEN_START_BIT4_PAUSE_TIME      3125.0e-6                       //  3125 usec pause
00469 #define BANG_OLUFSEN_PULSE_TIME                  200.0e-6                       //   200 usec pulse
00470 #define BANG_OLUFSEN_1_PAUSE_TIME               9375.0e-6                       //  9375 usec pause
00471 #define BANG_OLUFSEN_0_PAUSE_TIME               3125.0e-6                       //  3125 usec pause
00472 #define BANG_OLUFSEN_R_PAUSE_TIME               6250.0e-6                       //  6250 usec pause (repeat last bit)
00473 #define BANG_OLUFSEN_TRAILER_BIT_PAUSE_TIME    12500.0e-6                       // 12500 usec pause (trailer bit)
00474 #define BANG_OLUFSEN_FRAME_REPEAT_PAUSE_TIME      45.0e-3                       // frame repeat after 45ms
00475 #define BANG_OLUFSEN_ADDRESS_OFFSET             0                               // no address bits
00476 #define BANG_OLUFSEN_ADDRESS_LEN                0                               // no address bits
00477 #define BANG_OLUFSEN_COMMAND_OFFSET             3                               // skip startbits 2, 3, 4
00478 #define BANG_OLUFSEN_COMMAND_LEN                16                              // read 16 command bits
00479 #define BANG_OLUFSEN_COMPLETE_DATA_LEN          20                              // complete length: startbits 2, 3, 4 + 16 data bits + trailer bit
00480 #define BANG_OLUFSEN_STOP_BIT                   1                               // has stop bit
00481 #define BANG_OLUFSEN_LSB                        0                               // MSB...LSB
00482 #define BANG_OLUFSEN_FLAGS                      0                               // flags
00483 
00484 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00485  * GRUNDIG & NOKIA
00486  *---------------------------------------------------------------------------------------------------------------------------------------------------
00487  */
00488 #define GRUNDIG_NOKIA_IR60_BIT_TIME             528.0e-6                        // 528 usec pulse/pause
00489 #define GRUNDIG_NOKIA_IR60_PRE_PAUSE_TIME       2639.0e-6                       // 2639 usec pause after pre bit
00490 #define GRUNDIG_NOKIA_IR60_FRAME_REPEAT_PAUSE_TIME  117.76e-3                   // info frame repeat after 117.76 ms
00491 #define GRUNDIG_NOKIA_IR60_STOP_BIT             0                               // has no stop bit
00492 #define GRUNDIG_NOKIA_IR60_LSB                  1                               // MSB...LSB
00493 #define GRUNDIG_NOKIA_IR60_FLAGS                (IRMP_PARAM_FLAG_IS_MANCHESTER | IRMP_PARAM_FLAG_1ST_PULSE_IS_1)  // flags
00494 
00495 #define GRUNDIG_FRAMES                          2                               // GRUNDIG sends each frame 1+1 times
00496 #define GRUNDIG_AUTO_REPETITION_PAUSE_TIME      20.0e-3                         // repetition after 20ms
00497 #define GRUNDIG_ADDRESS_OFFSET                  0                               // no address
00498 #define GRUNDIG_ADDRESS_LEN                     0                               // no address
00499 #define GRUNDIG_COMMAND_OFFSET                  1                               // skip 1 start bit
00500 #define GRUNDIG_COMMAND_LEN                     9                               // read 9 command bits
00501 #define GRUNDIG_COMPLETE_DATA_LEN               10                              // complete length: 1 start bit + 9 data bits
00502 
00503 #define NOKIA_FRAMES                            3                               // NOKIA sends each frame 1 + 1 + 1 times
00504 #define NOKIA_AUTO_REPETITION_PAUSE_TIME        20.0e-3                         // repetition after 20ms
00505 #define NOKIA_ADDRESS_OFFSET                    9                               // skip 9 bits (1 start bit + 8 data bits)
00506 #define NOKIA_ADDRESS_LEN                       8                               // 7 address bits
00507 #define NOKIA_COMMAND_OFFSET                    1                               // skip 1 bit (1 start bit)
00508 #define NOKIA_COMMAND_LEN                       8                               // read 8 command bits
00509 #define NOKIA_COMPLETE_DATA_LEN                 17                              // complete length: 1 start bit + 8 address bits + 8 command bits
00510 
00511 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00512  * IR60:
00513  *---------------------------------------------------------------------------------------------------------------------------------------------------
00514  */
00515 #define IR60_FRAMES                             2                               // IR60 sends each frame 1+1 times
00516 #define IR60_AUTO_REPETITION_PAUSE_TIME         22.2e-3                         // repetition after 22.2ms
00517 #define IR60_TIMEOUT_TIME                       5000.0e-6                       // timeout grundig frame, switch to IR60
00518 #define IR60_ADDRESS_OFFSET                     0                               // skip 1 bits
00519 #define IR60_ADDRESS_LEN                        0                               // read 0 address bits
00520 #define IR60_COMMAND_OFFSET                     0                               // skip 1 bit (start bit after pre bit, always 1)
00521 #define IR60_COMMAND_LEN                        7                               // read 6 command bits
00522 #define IR60_COMPLETE_DATA_LEN                  7                               // complete length
00523 
00524 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00525  * SIEMENS & RUWIDO:
00526  *---------------------------------------------------------------------------------------------------------------------------------------------------
00527  */
00528 
00529 #if 0
00530 #define SIEMENS_OR_RUWIDO_START_BIT_PULSE_TIME    275.0e-6                      //  275 usec pulse
00531 #define SIEMENS_OR_RUWIDO_START_BIT_PAUSE_TIME    550.0e-6                      //  550 usec pause
00532 #define SIEMENS_OR_RUWIDO_BIT_PULSE_TIME          275.0e-6                      //  275 usec short pulse
00533 #define SIEMENS_OR_RUWIDO_BIT_PULSE_TIME_2        550.0e-6                      //  550 usec long pulse
00534 #define SIEMENS_OR_RUWIDO_BIT_PAUSE_TIME          275.0e-6                      //  275 usec short pause
00535 #define SIEMENS_OR_RUWIDO_BIT_PAUSE_TIME_2        550.0e-6                      //  550 usec long pause
00536 #else
00537 #define SIEMENS_OR_RUWIDO_START_BIT_PULSE_TIME    370.0e-6                      //  370 usec pulse
00538 #define SIEMENS_OR_RUWIDO_START_BIT_PAUSE_TIME    550.0e-6                      //  550 usec pause
00539 #define SIEMENS_OR_RUWIDO_BIT_PULSE_TIME          370.0e-6                      //  370 usec short pulse
00540 #define SIEMENS_OR_RUWIDO_BIT_PULSE_TIME_2        680.0e-6                      //  680 usec long pulse
00541 #define SIEMENS_OR_RUWIDO_BIT_PAUSE_TIME          275.0e-6                      //  275 usec short pause
00542 #define SIEMENS_OR_RUWIDO_BIT_PAUSE_TIME_2        550.0e-6                      //  550 usec long pause
00543 #endif
00544 
00545 #define SIEMENS_OR_RUWIDO_FRAME_REPEAT_PAUSE_TIME 45.0e-3                       // frame repeat after 45ms
00546 #define SIEMENS_OR_RUWIDO_STOP_BIT                0                             // has no stop bit
00547 #define SIEMENS_OR_RUWIDO_LSB                     0                             // MSB...LSB
00548 #define SIEMENS_OR_RUWIDO_FLAGS                   (IRMP_PARAM_FLAG_IS_MANCHESTER | IRMP_PARAM_FLAG_1ST_PULSE_IS_1)  // flags
00549 
00550 #define RUWIDO_ADDRESS_OFFSET                   0                               // skip 0 bits
00551 #define RUWIDO_ADDRESS_LEN                      9                               // read 9 address bits
00552 #define RUWIDO_COMMAND_OFFSET                   9                               // skip 9 bits
00553 #define RUWIDO_COMMAND_LEN                      8                               // read 7 + 1 command bits, last bit is only check bit
00554 #define RUWIDO_COMPLETE_DATA_LEN                17                              // complete length
00555 
00556 #define SIEMENS_ADDRESS_OFFSET                  0                               // skip 0 bits
00557 #define SIEMENS_ADDRESS_LEN                     11                              // read 11 bits
00558 #define SIEMENS_COMMAND_OFFSET                  11                              // skip 11 bits
00559 #define SIEMENS_COMMAND_LEN                     11                              // read 10 + 1 command bits, last bit is only check bit
00560 #define SIEMENS_COMPLETE_DATA_LEN               22                              // complete length
00561 
00562 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00563  * FDC:
00564  *---------------------------------------------------------------------------------------------------------------------------------------------------
00565  */
00566 #define FDC_START_BIT_PULSE_TIME                 2085.0e-6                      // 2085 usec pulse
00567 #define FDC_START_BIT_PAUSE_TIME                  966.0e-6                      //  966 usec pause
00568 #define FDC_PULSE_TIME                            300.0e-6                      //  300 usec pulse
00569 #define FDC_1_PAUSE_TIME                          715.0e-6                      //  715 usec pause
00570 #define FDC_0_PAUSE_TIME                          220.0e-6                      //  220 usec pause
00571 #define FDC_FRAME_REPEAT_PAUSE_TIME                60.0e-3                      // frame repeat after 60ms
00572 #define FDC_ADDRESS_OFFSET                       0                              // skip 0 bits
00573 #define FDC_ADDRESS_LEN                         14                              // read 14 address bits, but use only 6, shift 8 into command
00574 #define FDC_COMMAND_OFFSET                      20                              // skip 20 bits
00575 #define FDC_COMMAND_LEN                         12                              // read 12 bits
00576 #define FDC_COMPLETE_DATA_LEN                   40                              // complete length
00577 #define FDC_STOP_BIT                            1                               // has stop bit
00578 #define FDC_LSB                                 1                               // LSB...MSB
00579 #define FDC_FLAGS                               0                               // flags
00580 
00581 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00582  * RCCAR:
00583  *---------------------------------------------------------------------------------------------------------------------------------------------------
00584  */
00585 #define RCCAR_START_BIT_PULSE_TIME               2000.0e-6                      // 2000 usec pulse
00586 #define RCCAR_START_BIT_PAUSE_TIME               2000.0e-6                      // 2000 usec pause
00587 #define RCCAR_PULSE_TIME                          600.0e-6                      //  360 usec pulse
00588 #define RCCAR_1_PAUSE_TIME                        450.0e-6                      //  650 usec pause
00589 #define RCCAR_0_PAUSE_TIME                        900.0e-6                      //  180 usec pause
00590 #define RCCAR_FRAME_REPEAT_PAUSE_TIME              40.0e-3                      // frame repeat after 40ms
00591 #define RCCAR_ADDRESS_OFFSET                     0                              // skip 0 bits
00592 #define RCCAR_ADDRESS_LEN                        0                              // read 0 address bits
00593 #define RCCAR_COMMAND_OFFSET                     0                              // skip 0 bits
00594 #define RCCAR_COMMAND_LEN                       13                              // read 13 bits
00595 #define RCCAR_COMPLETE_DATA_LEN                 13                              // complete length
00596 #define RCCAR_STOP_BIT                          1                               // has stop bit
00597 #define RCCAR_LSB                               1                               // LSB...MSB
00598 #define RCCAR_FLAGS                             0                               // flags
00599 
00600 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00601  * JVC:
00602  *---------------------------------------------------------------------------------------------------------------------------------------------------
00603  */
00604 #define JVC_START_BIT_PULSE_TIME                9000.0e-6                       // 9000 usec pulse
00605 #define JVC_START_BIT_PAUSE_TIME                4500.0e-6                       // 4500 usec pause
00606 #define JVC_PULSE_TIME                           560.0e-6                       //  560 usec pulse
00607 #define JVC_1_PAUSE_TIME                        1690.0e-6                       // 1690 usec pause
00608 #define JVC_0_PAUSE_TIME                         560.0e-6                       //  560 usec pause
00609 #define JVC_FRAME_REPEAT_PAUSE_TIME               22.0e-3                       // frame repeat after 22ms
00610 #define JVC_ADDRESS_OFFSET                       0                              // skip 0 bits
00611 #define JVC_ADDRESS_LEN                          4                              // read 4 address bits
00612 #define JVC_COMMAND_OFFSET                       4                              // skip 4 bits
00613 #define JVC_COMMAND_LEN                         12                              // read 12 bits
00614 #define JVC_COMPLETE_DATA_LEN                   16                              // complete length
00615 #define JVC_STOP_BIT                            1                               // has stop bit
00616 #define JVC_LSB                                 1                               // LSB...MSB
00617 #define JVC_FLAGS                               0                               // flags
00618 
00619 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00620  * NIKON:
00621  *---------------------------------------------------------------------------------------------------------------------------------------------------
00622  */
00623 #define NIKON_START_BIT_PULSE_TIME              2200.0e-6                       //  2200 usec pulse
00624 #define NIKON_START_BIT_PAUSE_TIME             27100.0e-6                       // 27100 usec pause
00625 #define NIKON_PULSE_TIME                         500.0e-6                       //   500 usec pulse
00626 #define NIKON_1_PAUSE_TIME                      3500.0e-6                       //  3500 usec pause
00627 #define NIKON_0_PAUSE_TIME                      1500.0e-6                       //  1500 usec pause
00628 #define NIKON_FRAME_REPEAT_PAUSE_TIME             60.0e-3                       // frame repeat after 60ms
00629 #define NIKON_ADDRESS_OFFSET                    0                               // skip 0 bits
00630 #define NIKON_ADDRESS_LEN                       0                               // read 0 address bits
00631 #define NIKON_COMMAND_OFFSET                    0                               // skip 0 bits
00632 #define NIKON_COMMAND_LEN                       2                               // read 2 bits
00633 #define NIKON_COMPLETE_DATA_LEN                 2                               // complete length
00634 #define NIKON_STOP_BIT                          1                               // has stop bit
00635 #define NIKON_LSB                               0                               // LSB...MSB
00636 #define NIKON_FLAGS                             0                               // flags
00637 
00638 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00639  * KATHREIN:
00640  *---------------------------------------------------------------------------------------------------------------------------------------------------
00641  */
00642 #define KATHREIN_START_BIT_PULSE_TIME            210.0e-6                       // 1340 usec pulse
00643 #define KATHREIN_START_BIT_PAUSE_TIME           6218.0e-6                       //  340 usec pause
00644 #define KATHREIN_1_PULSE_TIME                    210.0e-6                       // 1340 usec pulse
00645 #define KATHREIN_1_PAUSE_TIME                   3000.0e-6                       //  340 usec pause
00646 #define KATHREIN_0_PULSE_TIME                    210.0e-6                       //  500 usec pulse
00647 #define KATHREIN_0_PAUSE_TIME                   1400.0e-6                       // 1300 usec pause
00648 #define KATHREIN_SYNC_BIT_PAUSE_LEN_TIME        4600.0e-6                       // 4600 usec sync (on 6th and/or 8th bit)
00649 #define KATHREIN_FRAMES                         1                               // Kathrein sends 1 frame
00650 #define KATHREIN_AUTO_REPETITION_PAUSE_TIME     35.0e-3                         // auto repetition after 35ms
00651 #define KATHREIN_FRAME_REPEAT_PAUSE_TIME        35.0e-3                         // frame repeat after 35ms
00652 #define KATHREIN_ADDRESS_OFFSET                 1                               // skip 1 bits
00653 #define KATHREIN_ADDRESS_LEN                    4                               // read 4 address bits
00654 #define KATHREIN_COMMAND_OFFSET                 5                               // skip 5 bits
00655 #define KATHREIN_COMMAND_LEN                    7                               // read 7 bits
00656 #define KATHREIN_COMPLETE_DATA_LEN              13                              // complete length
00657 #define KATHREIN_STOP_BIT                       1                               // has stop bit
00658 #define KATHREIN_LSB                            0                               // MSB
00659 #define KATHREIN_FLAGS                          0                               // flags
00660 
00661 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00662  * NETBOX:
00663  *---------------------------------------------------------------------------------------------------------------------------------------------------
00664  */
00665 #define NETBOX_START_BIT_PULSE_TIME             2400.0e-6                       // 2400 usec pulse
00666 #define NETBOX_START_BIT_PAUSE_TIME              800.0e-6                       //  800 usec pause
00667 #define NETBOX_PULSE_TIME                        800.0e-6                       //  800 usec pulse
00668 #define NETBOX_PAUSE_TIME                        800.0e-6                       //  800 usec pause
00669 #define NETBOX_FRAMES                           1                               // Netbox sends 1 frame
00670 #define NETBOX_AUTO_REPETITION_PAUSE_TIME       35.0e-3                         // auto repetition after 35ms
00671 #define NETBOX_FRAME_REPEAT_PAUSE_TIME          35.0e-3                         // frame repeat after 35ms
00672 #define NETBOX_ADDRESS_OFFSET                   0                               // skip 0 bits
00673 #define NETBOX_ADDRESS_LEN                      3                               // read 3 address bits
00674 #define NETBOX_COMMAND_OFFSET                   3                               // skip 3 bits
00675 #define NETBOX_COMMAND_LEN                      13                              // read 13 bits
00676 #define NETBOX_COMPLETE_DATA_LEN                16                              // complete length
00677 #define NETBOX_STOP_BIT                         0                               // has no stop bit
00678 #define NETBOX_LSB                              1                               // LSB
00679 #define NETBOX_FLAGS                            IRMP_PARAM_FLAG_IS_SERIAL       // flags
00680 
00681 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00682  * LEGO:
00683  *---------------------------------------------------------------------------------------------------------------------------------------------------
00684  */
00685 #define LEGO_START_BIT_PULSE_TIME                158.0e-6                       //  158 usec pulse ( 6 x 1/38kHz)
00686 #define LEGO_START_BIT_PAUSE_TIME               1026.0e-6                       // 1026 usec pause (39 x 1/38kHz)
00687 #define LEGO_PULSE_TIME                          158.0e-6                       //  158 usec pulse ( 6 x 1/38kHz)
00688 #define LEGO_1_PAUSE_TIME                        553.0e-6                       //  553 usec pause (21 x 1/38kHz)
00689 #define LEGO_0_PAUSE_TIME                        263.0e-6                       //  263 usec pause (10 x 1/38kHz)
00690 #define LEGO_FRAME_REPEAT_PAUSE_TIME              40.0e-3                       // frame repeat after 40ms
00691 #define LEGO_ADDRESS_OFFSET                     0                               // skip 0 bits
00692 #define LEGO_ADDRESS_LEN                        0                               // read 0 address bits
00693 #define LEGO_COMMAND_OFFSET                     0                               // skip 0 bits
00694 #define LEGO_COMMAND_LEN                        16                              // read 16 bits (12 command + 4 CRC)
00695 #define LEGO_COMPLETE_DATA_LEN                  16                              // complete length
00696 #define LEGO_STOP_BIT                           1                               // has stop bit
00697 #define LEGO_LSB                                0                               // MSB...LSB
00698 #define LEGO_FLAGS                              0                               // flags
00699 
00700 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00701  * THOMSON:
00702  *---------------------------------------------------------------------------------------------------------------------------------------------------
00703  */
00704 #define THOMSON_PULSE_TIME                       550.0e-6                       //  550 usec pulse
00705 #define THOMSON_1_PAUSE_TIME                    4500.0e-6                       // 4500 usec pause
00706 #define THOMSON_0_PAUSE_TIME                    2000.0e-6                       // 2000 usec pause
00707 #define THOMSON_FRAMES                          1                               // THOMSON sends 1 frame
00708 #define THOMSON_AUTO_REPETITION_PAUSE_TIME        35.0e-3                       // repetition after 35ms
00709 #define THOMSON_FRAME_REPEAT_PAUSE_TIME           35.0e-3                       // frame repeat after 35ms
00710 #define THOMSON_ADDRESS_OFFSET                  0                               // skip 0 bits
00711 #define THOMSON_ADDRESS_LEN                     4                               // read 4 address bits
00712 #define THOMSON_COMMAND_OFFSET                  5                               // skip 4 address bits + 1 toggle bit
00713 #define THOMSON_COMMAND_LEN                     7                               // read 7 command bits
00714 #define THOMSON_COMPLETE_DATA_LEN               12                              // complete length
00715 #define THOMSON_STOP_BIT                        1                               // has stop bit
00716 #define THOMSON_LSB                             0                               // MSB...LSB
00717 #define THOMSON_FLAGS                           0                               // flags
00718 
00719 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00720  * BOSE:
00721  *---------------------------------------------------------------------------------------------------------------------------------------------------
00722  */
00723 #define BOSE_START_BIT_PULSE_TIME               1060.0e-6                       // 1060 usec pulse
00724 #define BOSE_START_BIT_PAUSE_TIME               1425.0e-6                       // 1425 usec pause
00725 #define BOSE_PULSE_TIME                          550.0e-6                       //  550 usec pulse
00726 #define BOSE_1_PAUSE_TIME                       1425.0e-6                       // 1425 usec pause
00727 #define BOSE_0_PAUSE_TIME                        437.0e-6                       //  437 usec pause
00728 #define BOSE_FRAMES                             1
00729 #define BOSE_AUTO_REPETITION_PAUSE_TIME           40.0e-3                       // repetition after 40ms?
00730 #define BOSE_FRAME_REPEAT_PAUSE_TIME              40.0e-3                       // frame repeat after 40ms?
00731 #define BOSE_ADDRESS_OFFSET                      0                              // skip 0 bits
00732 #define BOSE_ADDRESS_LEN                         0                              // read 16 address bits
00733 #define BOSE_COMMAND_OFFSET                      0                              // skip 16 bits (8 address + 8 /address)
00734 #define BOSE_COMMAND_LEN                        16                              // read 16 bits (8 command + 8 /command)
00735 #define BOSE_COMPLETE_DATA_LEN                  16                              // complete length
00736 #define BOSE_STOP_BIT                           1                               // has stop bit
00737 #define BOSE_LSB                                1                               // LSB...MSB
00738 #define BOSE_FLAGS                              0                               // flags
00739 
00740 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00741  * A1TVBOX:
00742  * In reality A1 TV Box has no start bit with 300/340 usec. There are 2 start bits "10" with 250us pulse + 150us pause + 150us pause + 250us pulse
00743  * This is not very easy to detect, because 1st and 2nd pause of both start bits are closely spaced.
00744  * So IRMP looks for pseudo start bit with 300/340 usec and ignores the second half of the 2nd bit (250us pulse)
00745  * This method only works because the first data bit (which is the 3rd bit) following is always "1":
00746  * IRMP treats the first "long" pulse (250us of 2nd start bit + 250us of 1st data bit) of this "1" as a first _short_ pulse.
00747  * This is a bug in IRMP's manchester decoder, but a good feature here ;-)
00748  *---------------------------------------------------------------------------------------------------------------------------------------------------
00749  */
00750 #define A1TVBOX_START_BIT_PULSE_TIME            300.0e-6                        // 300 usec pulse
00751 #define A1TVBOX_START_BIT_PAUSE_TIME            340.0e-6                        // 340 usec pause
00752 #define A1TVBOX_BIT_PULSE_TIME                  250.0e-6                        // 250 usec pulse
00753 #define A1TVBOX_BIT_PAUSE_TIME                  150.0e-6                        // 150 usec pulse
00754 #define A1TVBOX_STOP_BIT                        0                               // has no stop bit
00755 #define A1TVBOX_LSB                             0                               // MSB...LSB
00756 #define A1TVBOX_FLAGS                           (IRMP_PARAM_FLAG_IS_MANCHESTER | IRMP_PARAM_FLAG_1ST_PULSE_IS_1 )  // flags
00757 #define A1TVBOX_FRAMES                          1                               // A1TVBOX sends each frame 1 times
00758 #define A1TVBOX_ADDRESS_OFFSET                  1                               // skip 1 bits
00759 #define A1TVBOX_ADDRESS_LEN                     8                               // read 8 address bits
00760 #define A1TVBOX_COMMAND_OFFSET                  9                               // skip 9 bits (start bit + address)
00761 #define A1TVBOX_COMMAND_LEN                     8                               // read 8 command bits
00762 #define A1TVBOX_COMPLETE_DATA_LEN               17                              // complete length incl. start bit
00763 #define A1TVBOX_FRAME_REPEAT_PAUSE_TIME         50.0e-3                         // 50 msec pause between frames, don't know if it is correct
00764 
00765 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00766  * MERLIN:
00767  * See notes for A1TVBOX
00768  *---------------------------------------------------------------------------------------------------------------------------------------------------
00769  */
00770 #define MERLIN_START_BIT_PULSE_TIME            210.0e-6                         // 210 usec pulse
00771 #define MERLIN_START_BIT_PAUSE_TIME            420.0e-6                         // 429 usec pause
00772 #define MERLIN_BIT_PULSE_TIME                  210.0e-6                         // 210 usec pulse
00773 #define MERLIN_BIT_PAUSE_TIME                  210.0e-6                         // 210 usec pulse
00774 #define MERLIN_STOP_BIT                        0                                // has no stop bit
00775 #define MERLIN_LSB                             0                                // MSB...LSB
00776 #define MERLIN_FLAGS                           (IRMP_PARAM_FLAG_IS_MANCHESTER | IRMP_PARAM_FLAG_1ST_PULSE_IS_1 )  // flags
00777 #define MERLIN_FRAMES                          1                                // MERLIN sends each frame 1 times
00778 #define MERLIN_ADDRESS_OFFSET                  1                                // skip 1 bits
00779 #define MERLIN_ADDRESS_LEN                     8                                // read 8 address bits
00780 #define MERLIN_COMMAND_OFFSET                  8                                // skip 9 bits (start bit + address)
00781 #define MERLIN_COMMAND_LEN                     10                               // read 8 command bits
00782 #define MERLIN_COMPLETE_DATA_LEN               19                               // complete length incl. start bit
00783 #define MERLIN_FRAME_REPEAT_PAUSE_TIME         50.0e-3                          // 50 msec pause between frames, don't know if it is correct
00784 
00785 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00786  * ORTEK (Hama): 6 address bits + 2 frame type bits + 6 command bits + 1 parity bit + 1 unknown bit + "1" + "0"
00787  *---------------------------------------------------------------------------------------------------------------------------------------------------
00788  */
00789 #define ORTEK_START_BIT_PULSE_TIME              2000.0e-6                       // 2000 usec pulse
00790 #define ORTEK_START_BIT_PAUSE_TIME              1000.0e-6                       // 1000 usec pause
00791 #define ORTEK_BIT_TIME                           500.0e-6                       //  500 usec pulse/pause
00792 #define ORTEK_FRAME_REPEAT_PAUSE_TIME             45.0e-3                       // frame repeat after 45ms
00793 #define ORTEK_ADDRESS_OFFSET                    0                               // skip 0 bits
00794 #define ORTEK_ADDRESS_LEN                       8                               // read 6 address bits + 2 special bits
00795 #define ORTEK_COMMAND_OFFSET                    8                               // skip 6 address bits + 2 special bits
00796 #define ORTEK_COMMAND_LEN                       6                               // read 6 command bits
00797 #define ORTEK_COMPLETE_DATA_LEN                 18                              // complete length
00798 #define ORTEK_STOP_BIT                          0                               // has no stop bit
00799 #define ORTEK_LSB                               0                               // MSB...LSB
00800 #define ORTEK_FLAGS                             (IRMP_PARAM_FLAG_IS_MANCHESTER | IRMP_PARAM_FLAG_1ST_PULSE_IS_1)   // flags
00801 
00802 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00803  * TELEFUNKEN:
00804  *---------------------------------------------------------------------------------------------------------------------------------------------------
00805  */
00806 #define TELEFUNKEN_START_BIT_PULSE_TIME          600.0e-6                       //  600 usec pulse
00807 #define TELEFUNKEN_START_BIT_PAUSE_TIME         1500.0e-6                       // 1500 usec pause
00808 #define TELEFUNKEN_PULSE_TIME                    600.0e-6                       //  600 usec pulse
00809 #define TELEFUNKEN_1_PAUSE_TIME                 1500.0e-6                       // 1500 usec pause
00810 #define TELEFUNKEN_0_PAUSE_TIME                  600.0e-6                       //  600 usec pause
00811 #define TELEFUNKEN_FRAME_REPEAT_PAUSE_TIME        22.0e-3                       // frame repeat after XX ms ?????
00812 #define TELEFUNKEN_ADDRESS_OFFSET                0                              // skip 0 bits
00813 #define TELEFUNKEN_ADDRESS_LEN                   0                              // read 0 address bits
00814 #define TELEFUNKEN_COMMAND_OFFSET                0                              // skip 0 bits
00815 #define TELEFUNKEN_COMMAND_LEN                  15                              // read 15 bits
00816 #define TELEFUNKEN_COMPLETE_DATA_LEN            15                              // complete length
00817 #define TELEFUNKEN_STOP_BIT                     1                               // has stop bit
00818 #define TELEFUNKEN_LSB                          0                               // LSB...MSB
00819 #define TELEFUNKEN_FLAGS                        0                               // flags
00820 
00821 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00822  * ROOMBA
00823  *---------------------------------------------------------------------------------------------------------------------------------------------------
00824  */
00825 #define ROOMBA_START_BIT_PULSE_TIME             2790.0e-6                       // 2790 usec pulse
00826 #define ROOMBA_START_BIT_PAUSE_TIME              930.0e-6                       //  930 usec pause
00827 #define ROOMBA_0_PULSE_TIME                      930.0e-6                       //  930 usec pulse
00828 #define ROOMBA_1_PULSE_TIME                     2790.0e-6                       // 2790 usec pulse
00829 #define ROOMBA_0_PAUSE_TIME                     2790.0e-6                       // 2790 usec pause
00830 #define ROOMBA_1_PAUSE_TIME                      930.0e-6                       //  930 usec pause
00831 #define ROOMBA_FRAME_REPEAT_PAUSE_TIME            18.0e-3                       // frame repeat after 18ms
00832 #define ROOMBA_ADDRESS_OFFSET                    0                              // skip 0 bits
00833 #define ROOMBA_ADDRESS_LEN                       0                              // read 0 address bits
00834 #define ROOMBA_COMMAND_OFFSET                    0                              // skip 0 bits
00835 #define ROOMBA_COMMAND_LEN                       7                              // read 7 bits
00836 #define ROOMBA_COMPLETE_DATA_LEN                 7                              // complete length
00837 #define ROOMBA_STOP_BIT                         0                               // has stop bit (fm: sure?)
00838 #define ROOMBA_LSB                              0                               // MSB...LSB
00839 #define ROOMBA_FLAGS                            0                               // flags
00840 #define ROOMBA_FRAMES                           8                               // ROOMBA sends 8 frames (this is a lie, but more comfortable)
00841 
00842 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00843  * RC-MM (32, 24, or 12 bit)
00844  *---------------------------------------------------------------------------------------------------------------------------------------------------
00845  */
00846 #define RCMM32_START_BIT_PULSE_TIME              500.0e-6                       // 500 usec pulse
00847 #define RCMM32_START_BIT_PAUSE_TIME              220.0e-6                       // 220 usec pause
00848 #define RCMM32_PULSE_TIME                        230.0e-6                       // 230 usec pulse
00849 #define RCMM32_00_PAUSE_TIME                     220.0e-6                       // 220 usec pause
00850 #define RCMM32_01_PAUSE_TIME                     370.0e-6                       // 370 usec pause
00851 #define RCMM32_10_PAUSE_TIME                     540.0e-6                       // 540 usec pause
00852 #define RCMM32_11_PAUSE_TIME                     720.0e-6                       // 720 usec pause
00853 
00854 #define RCMM32_FRAME_REPEAT_PAUSE_TIME            80.0e-3                       // frame repeat after 80 ms
00855 #define RCMM32_ADDRESS_OFFSET                    0                              // skip 0 bits
00856 #define RCMM32_ADDRESS_LEN                      16                              //  read 16 address bits
00857 #define RCMM32_COMMAND_OFFSET                   17                              // skip 17 bits
00858 #define RCMM32_COMMAND_LEN                      15                              // read 15 bits
00859 #define RCMM32_COMPLETE_DATA_LEN                32                              // complete length
00860 #define RCMM32_STOP_BIT                         1                               // has stop bit
00861 #define RCMM32_LSB                              0                               // LSB...MSB
00862 #define RCMM32_FLAGS                            0                               // flags
00863 
00864 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00865  * PENTAX:
00866  *---------------------------------------------------------------------------------------------------------------------------------------------------
00867  */
00868 #define PENTAX_START_BIT_PULSE_TIME             13000.0e-6                      // 13 msec pulse
00869 #define PENTAX_START_BIT_PAUSE_TIME              3000.0e-6                      // 3 msec pause
00870 #define PENTAX_PULSE_TIME                        1000.0e-6                      // 1 msec pulse
00871 #define PENTAX_1_PAUSE_TIME                      3000.0e-6                      // 3 msec pause
00872 #define PENTAX_0_PAUSE_TIME                      1000.0e-6                      // 1 msec pause
00873 #define PENTAX_FRAME_REPEAT_PAUSE_TIME             60.0e-3                      // frame repeat after 60ms
00874 #define PENTAX_ADDRESS_OFFSET                  0                                // skip 0 bits
00875 #define PENTAX_ADDRESS_LEN                     0                                // read 0 address bits
00876 #define PENTAX_COMMAND_OFFSET                  0                                // skip 0 bits
00877 #define PENTAX_COMMAND_LEN                     6                                // read 6 bits
00878 #define PENTAX_COMPLETE_DATA_LEN               6                                // complete length
00879 #define PENTAX_STOP_BIT                        1                                // has stop bit
00880 #define PENTAX_LSB                             0                                // LSB...MSB
00881 #define PENTAX_FLAGS                           0                                // flags
00882 
00883 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00884  * ACP24: Stiebel Eltron ACP24 air conditioner
00885  *---------------------------------------------------------------------------------------------------------------------------------------------------
00886  */
00887 #define ACP24_START_BIT_PULSE_TIME               390.0e-6                       //  390 usec pulse
00888 #define ACP24_START_BIT_PAUSE_TIME               950.0e-6                       //  950 usec pause
00889 #define ACP24_PULSE_TIME                         390.0e-6                       //  390 usec pulse
00890 #define ACP24_1_PAUSE_TIME                      1300.0e-6                       // 1300 usec pause
00891 #define ACP24_0_PAUSE_TIME                       950.0e-6                       //  950 usec pause
00892 #define ACP24_FRAME_REPEAT_PAUSE_TIME             22.0e-3                       // frame repeat after 22ms?
00893 #define ACP24_ADDRESS_OFFSET                     0                              // skip 0 bits
00894 #define ACP24_ADDRESS_LEN                        0                              // read 6 address bits
00895 #define ACP24_COMMAND_OFFSET                     0                              // skip 6 bits
00896 #define ACP24_COMMAND_LEN                        0                              // read 0 bits (70 bits will be read and compressed by special routine)
00897 #define ACP24_COMPLETE_DATA_LEN                 70                              // complete length
00898 #define ACP24_STOP_BIT                          1                               // has stop bit
00899 #define ACP24_LSB                               0                               // LSB...MSB
00900 #define ACP24_FLAGS                             0                               // flags
00901 
00902 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00903  * RADIO1 - e.g. Tevion
00904  *---------------------------------------------------------------------------------------------------------------------------------------------------
00905  */
00906 #define RADIO1_START_BIT_PULSE_TIME            3000.0e-6                        // 3000 usec pulse
00907 #define RADIO1_START_BIT_PAUSE_TIME            7000.0e-6                        // 7000 usec pulse
00908 #define RADIO1_0_PULSE_TIME                     500.0e-6                        //  500 usec pulse
00909 #define RADIO1_0_PAUSE_TIME                    1000.0e-6                        // 1000 usec pause
00910 #define RADIO1_1_PULSE_TIME                    1000.0e-6                        // 1000 usec pulse
00911 #define RADIO1_1_PAUSE_TIME                     500.0e-6                        //  500 usec pause
00912 
00913 #define RADIO1_FRAME_REPEAT_PAUSE_TIME           25.0e-3                        // frame repeat after 25ms
00914 #define RADIO1_ADDRESS_OFFSET                   4                               // skip 4 bits
00915 #define RADIO1_ADDRESS_LEN                     16                               // read 16 address bits
00916 #define RADIO1_COMMAND_OFFSET                  20                               // skip 4 + 16 bits
00917 #define RADIO1_COMMAND_LEN                      3                               // read 3 command bits
00918 #define RADIO1_COMPLETE_DATA_LEN               23                               // complete length
00919 #define RADIO1_STOP_BIT                        1                                // has stop bit
00920 #define RADIO1_LSB                             1                                // LSB...MSB?
00921 #define RADIO1_FLAGS                           0                                // flags
00922 
00923 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00924  * Frame Repetitions:
00925  *---------------------------------------------------------------------------------------------------------------------------------------------------
00926  */
00927 #define AUTO_FRAME_REPETITION_TIME              80.0e-3                         // SIRCS/SAMSUNG32/NUBERT: automatic repetition after 25-50ms
00928 
00929 #endif // _IRMP_PROTOCOLS_H_
00930