]>
Commit | Line | Data |
---|---|---|
1 | /*---------------------------------------------------------------------------------------------------------------------------------------------------\r | |
2 | * irmp.c - infrared multi-protocol decoder, supports several remote control protocols\r | |
3 | *\r | |
4 | * Copyright (c) 2009-2010 Frank Meyer - frank(at)fli4l.de\r | |
5 | *\r | |
6 | * $Id: irmp.c,v 1.52 2010/06/15 15:47:21 fm Exp $\r | |
7 | *\r | |
8 | * ATMEGA88 @ 8 MHz\r | |
9 | *\r | |
10 | * Typical manufacturers:\r | |
11 | *\r | |
12 | * SIRCS - Sony\r | |
13 | * NEC - NEC, Yamaha, Canon, Tevion, Harman/Kardon, Hitachi, JVC, Pioneer, Toshiba, Xoro, Orion, and many other Japanese manufacturers\r | |
14 | * SAMSUNG - Samsung\r | |
15 | * SAMSUNG32 - Samsung\r | |
16 | * MATSUSHITA - Matsushita\r | |
17 | * KASEIKYO - Panasonic, Denon & other Japanese manufacturers (members of "Japan's Association for Electric Home Application")\r | |
18 | * RECS80 - Philips, Nokia, Thomson, Nordmende, Telefunken, Saba\r | |
19 | * RC5 - Philips and other European manufacturers\r | |
20 | * DENON - Denon\r | |
21 | * RC6 - Philips and other European manufacturers\r | |
22 | * APPLE - Apple\r | |
23 | * NUBERT - Nubert Subwoofer System\r | |
24 | * B&O - Bang & Olufsen\r | |
25 | * PANASONIC - Panasonic (older, yet not implemented)\r | |
26 | * GRUNDIG - Grundig\r | |
27 | * NOKIA - Nokia\r | |
28 | * SIEMENS - Siemens, e.g. Gigaset M740AV\r | |
29 | *\r | |
30 | *---------------------------------------------------------------------------------------------------------------------------------------------------\r | |
31 | *\r | |
32 | * SIRCS\r | |
33 | * -----\r | |
34 | *\r | |
35 | * frame: 1 start bit + 12-20 data bits + no stop bit\r | |
36 | * data: 7 command bits + 5 address bits + 0 to 8 additional bits\r | |
37 | *\r | |
38 | * start bit: data "0": data "1": stop bit:\r | |
39 | * -----------------_________ ------_____ ------------______\r | |
40 | * 2400us 600us 600us 600us 1200us 600 us no stop bit\r | |
41 | *\r | |
42 | *---------------------------------------------------------------------------------------------------------------------------------------------------\r | |
43 | *\r | |
44 | * NEC + extended NEC\r | |
45 | * -------------------------\r | |
46 | *\r | |
47 | * frame: 1 start bit + 32 data bits + 1 stop bit\r | |
48 | * data NEC: 8 address bits + 8 inverted address bits + 8 command bits + 8 inverted command bits\r | |
49 | * data extended NEC: 16 address bits + 8 command bits + 8 inverted command bits\r | |
50 | *\r | |
51 | * start bit: data "0": data "1": stop bit:\r | |
52 | * -----------------_________ ------______ ------________________ ------______....\r | |
53 | * 9000us 4500us 560us 560us 560us 1690 us 560us\r | |
54 | *\r | |
55 | *\r | |
56 | * Repetition frame:\r | |
57 | *\r | |
58 | * -----------------_________------______ .... ~100ms Pause, then repeat\r | |
59 | * 9000us 2250us 560us\r | |
60 | *\r | |
61 | *---------------------------------------------------------------------------------------------------------------------------------------------------\r | |
62 | *\r | |
63 | * SAMSUNG\r | |
64 | * -------\r | |
65 | *\r | |
66 | * frame: 1 start bit + 16 data(1) bits + 1 sync bit + additional 20 data(2) bits + 1 stop bit\r | |
67 | * data(1): 16 address bits\r | |
68 | * data(2): 4 ID bits + 8 command bits + 8 inverted command bits\r | |
69 | *\r | |
70 | * start bit: data "0": data "1": sync bit: stop bit:\r | |
71 | * ----------______________ ------______ ------________________ ------______________ ------______....\r | |
72 | * 4500us 4500us 550us 450us 550us 1450us 550us 4500us 550us\r | |
73 | *\r | |
74 | *---------------------------------------------------------------------------------------------------------------------------------------------------\r | |
75 | *\r | |
76 | * SAMSUNG32\r | |
77 | * ----------\r | |
78 | *\r | |
79 | * frame: 1 start bit + 32 data bits + 1 stop bit\r | |
80 | * data: 16 address bits + 16 command bits\r | |
81 | *\r | |
82 | * start bit: data "0": data "1": stop bit:\r | |
83 | * ----------______________ ------______ ------________________ ------______....\r | |
84 | * 4500us 4500us 550us 450us 550us 1450us 550us\r | |
85 | *\r | |
86 | *---------------------------------------------------------------------------------------------------------------------------------------------------\r | |
87 | *\r | |
88 | * MATSUSHITA\r | |
89 | * ----------\r | |
90 | *\r | |
91 | * frame: 1 start bit + 24 data bits + 1 stop bit\r | |
92 | * data: 6 custom bits + 6 command bits + 12 address bits\r | |
93 | *\r | |
94 | * start bit: data "0": data "1": stop bit:\r | |
95 | * ----------_________ ------______ ------________________ ------______....\r | |
96 | * 3488us 3488us 872us 872us 872us 2616us 872us\r | |
97 | *\r | |
98 | *---------------------------------------------------------------------------------------------------------------------------------------------------\r | |
99 | *\r | |
100 | * KASEIKYO\r | |
101 | * --------\r | |
102 | *\r | |
103 | * frame: 1 start bit + 48 data bits + 1 stop bit\r | |
104 | * data: 16 manufacturer bits + 4 parity bits + 4 genre1 bits + 4 genre2 bits + 10 command bits + 2 id bits + 8 parity bits\r | |
105 | *\r | |
106 | * start bit: data "0": data "1": stop bit:\r | |
107 | * ----------______ ------______ ------________________ ------______....\r | |
108 | * 3380us 1690us 423us 423us 423us 1269us 423us\r | |
109 | *\r | |
110 | *---------------------------------------------------------------------------------------------------------------------------------------------------\r | |
111 | *\r | |
112 | * RECS80\r | |
113 | * ------\r | |
114 | *\r | |
115 | * frame: 2 start bits + 10 data bits + 1 stop bit\r | |
116 | * data: 1 toggle bit + 3 address bits + 6 command bits\r | |
117 | *\r | |
118 | * start bit: data "0": data "1": stop bit:\r | |
119 | * -----_____________________ -----____________ -----______________ ------_______....\r | |
120 | * 158us 7432us 158us 4902us 158us 7432us 158us\r | |
121 | *\r | |
122 | *---------------------------------------------------------------------------------------------------------------------------------------------------\r | |
123 | *\r | |
124 | * RECS80EXT\r | |
125 | * ---------\r | |
126 | *\r | |
127 | * frame: 2 start bits + 11 data bits + 1 stop bit\r | |
128 | * data: 1 toggle bit + 4 address bits + 6 command bits\r | |
129 | *\r | |
130 | * start bit: data "0": data "1": stop bit:\r | |
131 | * -----_____________________ -----____________ -----______________ ------_______....\r | |
132 | * 158us 3637us 158us 4902us 158us 7432us 158us\r | |
133 | *\r | |
134 | *---------------------------------------------------------------------------------------------------------------------------------------------------\r | |
135 | *\r | |
136 | * RC5 + RC5X\r | |
137 | * ----------\r | |
138 | *\r | |
139 | * RC5 frame: 2 start bits + 12 data bits + no stop bit\r | |
140 | * RC5 data: 1 toggle bit + 5 address bits + 6 command bits\r | |
141 | * RC5X frame: 1 start bit + 13 data bits + no stop bit\r | |
142 | * RC5X data: 1 inverted command bit + 1 toggle bit + 5 address bits + 6 command bits\r | |
143 | *\r | |
144 | * start bit: data "0": data "1":\r | |
145 | * ______----- ------______ ______------\r | |
146 | * 889us 889us 889us 889us 889us 889us\r | |
147 | *\r | |
148 | *---------------------------------------------------------------------------------------------------------------------------------------------------\r | |
149 | *\r | |
150 | * DENON\r | |
151 | * -----\r | |
152 | *\r | |
153 | * frame: 0 start bits + 16 data bits + stop bit + 65ms pause + 16 inverted data bits + stop bit\r | |
154 | * data: 5 address bits + 10 command bits\r | |
155 | *\r | |
156 | * data "0": data "1":\r | |
157 | * ------________________ ------______________\r | |
158 | * 275us 775us 275us 1900us\r | |
159 | *\r | |
160 | *---------------------------------------------------------------------------------------------------------------------------------------------------\r | |
161 | *\r | |
162 | * RC6\r | |
163 | * ---\r | |
164 | *\r | |
165 | Content-type: text/html ]>