Module Led
[hide private]
[frames] | no frames]

Source Code for Module Led

  1  # Led.py 
  2  # Remote mode 
  3   
  4  ''' 
  5   This software is part of the raspibrick module. 
  6   It is Open Source Free Software, so you may 
  7   - run the code for any purpose 
  8   - study how the code works and adapt it to your needs 
  9   - integrate all or parts of the code in your own programs 
 10   - redistribute copies of the code 
 11   - improve the code and release your improvements to the public 
 12   However the use of the code is entirely your responsibility. 
 13   ''' 
 14   
 15  from RobotInstance import RobotInstance 
 16  from Tools import Tools 
 17   
 18   
 19  x11Colors = {"aqua":[0, 255, 255], 
 20  "cornflower":[100, 149, 237], 
 21  "crimson":[220, 20, 60], 
 22  "fuchsia":[255, 0, 255], 
 23  "indigo":[75, 0, 130], 
 24  "lime":[50, 205, 50], 
 25  "silver":[192, 192, 192], 
 26  "ghost white":[248, 248, 255], 
 27  "snow":[255, 250, 250], 
 28  "ghostwhite":[248, 248, 255], 
 29  "white smoke":[245, 245, 245], 
 30  "whitesmoke":[245, 245, 245], 
 31  "gainsboro":[220, 220, 220], 
 32  "floral white":[255, 250, 240], 
 33  "floralwhite":[255, 250, 240], 
 34  "old lace":[253, 245, 230], 
 35  "oldlace":[253, 245, 230], 
 36  "linen":[250, 240, 230], 
 37  "antique white":[250, 235, 215], 
 38  "antiquewhite":[250, 235, 215], 
 39  "papaya whip":[255, 239, 213], 
 40  "papayawhip":[255, 239, 213], 
 41  "blanched almond":[255, 235, 205], 
 42  "blanchedalmond":[255, 235, 205], 
 43  "bisque":[255, 228, 196], 
 44  "peach puff":[255, 218, 185], 
 45  "peachpuff":[255, 218, 185], 
 46  "navajo white":[255, 222, 173], 
 47  "navajowhite":[255, 222, 173], 
 48  "moccasin":[255, 228, 181], 
 49  "cornsilk":[255, 248, 220], 
 50  "ivory":[255, 255, 240], 
 51  "lemon chiffon":[255, 250, 205], 
 52  "lemonchiffon":[255, 250, 205], 
 53  "seashell":[255, 245, 238], 
 54  "honeydew":[240, 255, 240], 
 55  "mint cream":[245, 255, 250], 
 56  "mintcream":[245, 255, 250], 
 57  "azure":[240, 255, 255], 
 58  "alice blue":[240, 248, 255], 
 59  "aliceblue":[240, 248, 255], 
 60  "lavender":[230, 230, 250], 
 61  "lavender blush":[255, 240, 245], 
 62  "lavenderblush":[255, 240, 245], 
 63  "misty rose":[255, 228, 225], 
 64  "mistyrose":[255, 228, 225], 
 65  "white":[255, 255, 255], 
 66  "black":[0, 0, 0], 
 67  "dark slate gray":[47, 79, 79], 
 68  "darkslategray":[47, 79, 79], 
 69  "dark slate grey":[47, 79, 79], 
 70  "darkslategrey":[47, 79, 79], 
 71  "dim gray":[105, 105, 105], 
 72  "dimgray":[105, 105, 105], 
 73  "dim grey":[105, 105, 105], 
 74  "dimgrey":[105, 105, 105], 
 75  "slate gray":[112, 128, 144], 
 76  "slategray":[112, 128, 144], 
 77  "slate grey":[112, 128, 144], 
 78  "slategrey":[112, 128, 144], 
 79  "light slate gray":[119, 136, 153], 
 80  "lightslategray":[119, 136, 153], 
 81  "light slate grey":[119, 136, 153], 
 82  "lightslategrey":[119, 136, 153], 
 83  "gray":[190, 190, 190], 
 84  "grey":[190, 190, 190], 
 85  "light grey":[211, 211, 211], 
 86  "lightgrey":[211, 211, 211], 
 87  "light gray":[211, 211, 211], 
 88  "lightgray":[211, 211, 211], 
 89  "midnight blue":[25, 25, 112], 
 90  "midnightblue":[25, 25, 112], 
 91  "navy":[0, 0, 128], 
 92  "navy blue":[0, 0, 128], 
 93  "navyblue":[0, 0, 128], 
 94  "cornflower blue":[100, 149, 237], 
 95  "cornflowerblue":[100, 149, 237], 
 96  "dark slate blue":[72, 61, 139], 
 97  "darkslateblue":[72, 61, 139], 
 98  "slate blue":[106, 90, 205], 
 99  "slateblue":[106, 90, 205], 
100  "medium slate blue":[123, 104, 238], 
101  "mediumslateblue":[123, 104, 238], 
102  "light slate blue":[132, 112, 255], 
103  "lightslateblue":[132, 112, 255], 
104  "medium blue":[0, 0, 205], 
105  "mediumblue":[0, 0, 205], 
106  "royal blue":[65, 105, 225], 
107  "royalblue":[65, 105, 225], 
108  "blue":[0, 0, 255], 
109  "dodger blue":[30, 144, 255], 
110  "dodgerblue":[30, 144, 255], 
111  "deep sky blue":[0, 191, 255], 
112  "deepskyblue":[0, 191, 255], 
113  "sky blue":[135, 206, 235], 
114  "skyblue":[135, 206, 235], 
115  "light sky blue":[135, 206, 250], 
116  "lightskyblue":[135, 206, 250], 
117  "steel blue":[70, 130, 180], 
118  "steelblue":[70, 130, 180], 
119  "light steel blue":[176, 196, 222], 
120  "lightsteelblue":[176, 196, 222], 
121  "light blue":[173, 216, 230], 
122  "lightblue":[173, 216, 230], 
123  "powder blue":[176, 224, 230], 
124  "powderblue":[176, 224, 230], 
125  "pale turquoise":[175, 238, 238], 
126  "paleturquoise":[175, 238, 238], 
127  "dark turquoise":[0, 206, 209], 
128  "darkturquoise":[0, 206, 209], 
129  "medium turquoise":[72, 209, 204], 
130  "mediumturquoise":[72, 209, 204], 
131  "turquoise":[64, 224, 208], 
132  "cyan":[0, 255, 255], 
133  "light cyan":[224, 255, 255], 
134  "lightcyan":[224, 255, 255], 
135  "cadet blue":[95, 158, 160], 
136  "cadetblue":[95, 158, 160], 
137  "medium aquamarine":[102, 205, 170], 
138  "mediumaquamarine":[102, 205, 170], 
139  "aquamarine":[127, 255, 212], 
140  "dark green":[0, 100, 0], 
141  "darkgreen":[0, 100, 0], 
142  "dark olive green":[85, 107, 47], 
143  "darkolivegreen":[85, 107, 47], 
144  "dark sea green":[143, 188, 143], 
145  "darkseagreen":[143, 188, 143], 
146  "sea green":[46, 139, 87], 
147  "seagreen":[46, 139, 87], 
148  "medium sea green":[60, 179, 113], 
149  "mediumseagreen":[60, 179, 113], 
150  "light sea green":[32, 178, 170], 
151  "lightseagreen":[32, 178, 170], 
152  "pale green":[152, 251, 152], 
153  "palegreen":[152, 251, 152], 
154  "spring green":[0, 255, 127], 
155  "springgreen":[0, 255, 127], 
156  "lawn green":[124, 252, 0], 
157  "lawngreen":[124, 252, 0], 
158  "green":[0, 255, 0], 
159  "chartreuse":[127, 255, 0], 
160  "medium spring green":[0, 250, 154], 
161  "mediumspringgreen":[0, 250, 154], 
162  "green yellow":[173, 255, 47], 
163  "greenyellow":[173, 255, 47], 
164  "lime green":[50, 205, 50], 
165  "limegreen":[50, 205, 50], 
166  "yellow green":[154, 205, 50], 
167  "yellowgreen":[154, 205, 50], 
168  "forest green":[34, 139, 34], 
169  "forestgreen":[34, 139, 34], 
170  "olive drab":[107, 142, 35], 
171  "olivedrab":[107, 142, 35], 
172  "dark khaki":[189, 183, 107], 
173  "darkkhaki":[189, 183, 107], 
174  "khaki":[240, 230, 140], 
175  "pale goldenrod":[238, 232, 170], 
176  "palegoldenrod":[238, 232, 170], 
177  "light goldenrod yellow":[250, 250, 210], 
178  "lightgoldenrodyellow":[250, 250, 210], 
179  "light yellow":[255, 255, 224], 
180  "lightyellow":[255, 255, 224], 
181  "yellow":[255, 255, 0], 
182  "gold":[255, 215, 0], 
183  "light goldenrod":[238, 221, 130], 
184  "lightgoldenrod":[238, 221, 130], 
185  "goldenrod":[218, 165, 32], 
186  "dark goldenrod":[184, 134, 11], 
187  "darkgoldenrod":[184, 134, 11], 
188  "rosy brown":[188, 143, 143], 
189  "rosybrown":[188, 143, 143], 
190  "indian red":[205, 92, 92], 
191  "indianred":[205, 92, 92], 
192  "saddle brown":[139, 69, 19], 
193  "saddlebrown":[139, 69, 19], 
194  "sienna":[160, 82, 45], 
195  "peru":[205, 133, 63], 
196  "burlywood":[222, 184, 135], 
197  "beige":[245, 245, 220], 
198  "wheat":[245, 222, 179], 
199  "sandy brown":[244, 164, 96], 
200  "sandybrown":[244, 164, 96], 
201  "tan":[210, 180, 140], 
202  "chocolate":[210, 105, 30], 
203  "firebrick":[178, 34, 34], 
204  "brown":[165, 42, 42], 
205  "dark salmon":[233, 150, 122], 
206  "darksalmon":[233, 150, 122], 
207  "salmon":[250, 128, 114], 
208  "light salmon":[255, 160, 122], 
209  "lightsalmon":[255, 160, 122], 
210  "orange":[255, 165, 0], 
211  "dark orange":[255, 140, 0], 
212  "darkorange":[255, 140, 0], 
213  "coral":[255, 127, 80], 
214  "light coral":[240, 128, 128], 
215  "lightcoral":[240, 128, 128], 
216  "tomato":[255, 99, 71], 
217  "orange red":[255, 69, 0], 
218  "orangered":[255, 69, 0], 
219  "red":[255, 0, 0], 
220  "hot pink":[255, 105, 180], 
221  "hotpink":[255, 105, 180], 
222  "deep pink":[255, 20, 147], 
223  "deeppink":[255, 20, 147], 
224  "pink":[255, 192, 203], 
225  "light pink":[255, 182, 193], 
226  "lightpink":[255, 182, 193], 
227  "pale violet red":[219, 112, 147], 
228  "palevioletred":[219, 112, 147], 
229  "maroon":[176, 48, 96], 
230  "medium violet red":[199, 21, 133], 
231  "mediumvioletred":[199, 21, 133], 
232  "violet red":[208, 32, 144], 
233  "violetred":[208, 32, 144], 
234  "magenta":[255, 0, 255], 
235  "violet":[238, 130, 238], 
236  "plum":[221, 160, 221], 
237  "orchid":[218, 112, 214], 
238  "medium orchid":[186, 85, 211], 
239  "mediumorchid":[186, 85, 211], 
240  "dark orchid":[153, 50, 204], 
241  "darkorchid":[153, 50, 204], 
242  "dark violet":[148, 0, 211], 
243  "darkviolet":[148, 0, 211], 
244  "blue violet":[138, 43, 226], 
245  "blueviolet":[138, 43, 226], 
246  "purple":[160, 32, 240], 
247  "medium purple":[147, 112, 219], 
248  "mediumpurple":[147, 112, 219], 
249  "thistle":[216, 191, 216], 
250  "snow1":[255, 250, 250], 
251  "snow2":[238, 233, 233], 
252  "snow3":[205, 201, 201], 
253  "snow4":[139, 137, 137], 
254  "seashell1":[255, 245, 238], 
255  "seashell2":[238, 229, 222], 
256  "seashell3":[205, 197, 191], 
257  "seashell4":[139, 134, 130], 
258  "antiquewhite1":[255, 239, 219], 
259  "antiquewhite2":[238, 223, 204], 
260  "antiquewhite3":[205, 192, 176], 
261  "antiquewhite4":[139, 131, 120], 
262  "bisque1":[255, 228, 196], 
263  "bisque2":[238, 213, 183], 
264  "bisque3":[205, 183, 158], 
265  "bisque4":[139, 125, 107], 
266  "peachpuff1":[255, 218, 185], 
267  "peachpuff2":[238, 203, 173], 
268  "peachpuff3":[205, 175, 149], 
269  "peachpuff4":[139, 119, 101], 
270  "navajowhite1":[255, 222, 173], 
271  "navajowhite2":[238, 207, 161], 
272  "navajowhite3":[205, 179, 139], 
273  "navajowhite4":[139, 121, 94], 
274  "lemonchiffon1":[255, 250, 205], 
275  "lemonchiffon2":[238, 233, 191], 
276  "lemonchiffon3":[205, 201, 165], 
277  "lemonchiffon4":[139, 137, 112], 
278  "cornsilk1":[255, 248, 220], 
279  "cornsilk2":[238, 232, 205], 
280  "cornsilk3":[205, 200, 177], 
281  "cornsilk4":[139, 136, 120], 
282  "ivory1":[255, 255, 240], 
283  "ivory2":[238, 238, 224], 
284  "ivory3":[205, 205, 193], 
285  "ivory4":[139, 139, 131], 
286  "honeydew1":[240, 255, 240], 
287  "honeydew2":[224, 238, 224], 
288  "honeydew3":[193, 205, 193], 
289  "honeydew4":[131, 139, 131], 
290  "lavenderblush1":[255, 240, 245], 
291  "lavenderblush2":[238, 224, 229], 
292  "lavenderblush3":[205, 193, 197], 
293  "lavenderblush4":[139, 131, 134], 
294  "mistyrose1":[255, 228, 225], 
295  "mistyrose2":[238, 213, 210], 
296  "mistyrose3":[205, 183, 181], 
297  "mistyrose4":[139, 125, 123], 
298  "azure1":[240, 255, 255], 
299  "azure2":[224, 238, 238], 
300  "azure3":[193, 205, 205], 
301  "azure4":[131, 139, 139], 
302  "slateblue1":[131, 111, 255], 
303  "slateblue2":[122, 103, 238], 
304  "slateblue3":[105, 89, 205], 
305  "slateblue4":[71, 60, 139], 
306  "royalblue1":[72, 118, 255], 
307  "royalblue2":[67, 110, 238], 
308  "royalblue3":[58, 95, 205], 
309  "royalblue4":[39, 64, 139], 
310  "blue1":[0, 0, 255], 
311  "blue2":[0, 0, 238], 
312  "blue3":[0, 0, 205], 
313  "blue4":[0, 0, 139], 
314  "dodgerblue1":[30, 144, 255], 
315  "dodgerblue2":[28, 134, 238], 
316  "dodgerblue3":[24, 116, 205], 
317  "dodgerblue4":[16, 78, 139], 
318  "steelblue1":[99, 184, 255], 
319  "steelblue2":[92, 172, 238], 
320  "steelblue3":[79, 148, 205], 
321  "steelblue4":[54, 100, 139], 
322  "deepskyblue1":[0, 191, 255], 
323  "deepskyblue2":[0, 178, 238], 
324  "deepskyblue3":[0, 154, 205], 
325  "deepskyblue4":[0, 104, 139], 
326  "skyblue1":[135, 206, 255], 
327  "skyblue2":[126, 192, 238], 
328  "skyblue3":[108, 166, 205], 
329  "skyblue4":[74, 112, 139], 
330  "lightskyblue1":[176, 226, 255], 
331  "lightskyblue2":[164, 211, 238], 
332  "lightskyblue3":[141, 182, 205], 
333  "lightskyblue4":[96, 123, 139], 
334  "slategray1":[198, 226, 255], 
335  "slategray2":[185, 211, 238], 
336  "slategray3":[159, 182, 205], 
337  "slategray4":[108, 123, 139], 
338  "lightsteelblue1":[202, 225, 255], 
339  "lightsteelblue2":[188, 210, 238], 
340  "lightsteelblue3":[162, 181, 205], 
341  "lightsteelblue4":[110, 123, 139], 
342  "lightblue1":[191, 239, 255], 
343  "lightblue2":[178, 223, 238], 
344  "lightblue3":[154, 192, 205], 
345  "lightblue4":[104, 131, 139], 
346  "lightcyan1":[224, 255, 255], 
347  "lightcyan2":[209, 238, 238], 
348  "lightcyan3":[180, 205, 205], 
349  "lightcyan4":[122, 139, 139], 
350  "paleturquoise1":[187, 255, 255], 
351  "paleturquoise2":[174, 238, 238], 
352  "paleturquoise3":[150, 205, 205], 
353  "paleturquoise4":[102, 139, 139], 
354  "cadetblue1":[152, 245, 255], 
355  "cadetblue2":[142, 229, 238], 
356  "cadetblue3":[122, 197, 205], 
357  "cadetblue4":[83, 134, 139], 
358  "turquoise1":[0, 245, 255], 
359  "turquoise2":[0, 229, 238], 
360  "turquoise3":[0, 197, 205], 
361  "turquoise4":[0, 134, 139], 
362  "cyan1":[0, 255, 255], 
363  "cyan2":[0, 238, 238], 
364  "cyan3":[0, 205, 205], 
365  "cyan4":[0, 139, 139], 
366  "darkslategray1":[151, 255, 255], 
367  "darkslategray2":[141, 238, 238], 
368  "darkslategray3":[121, 205, 205], 
369  "darkslategray4":[82, 139, 139], 
370  "aquamarine1":[127, 255, 212], 
371  "aquamarine2":[118, 238, 198], 
372  "aquamarine3":[102, 205, 170], 
373  "aquamarine4":[69, 139, 116], 
374  "darkseagreen1":[193, 255, 193], 
375  "darkseagreen2":[180, 238, 180], 
376  "darkseagreen3":[155, 205, 155], 
377  "darkseagreen4":[105, 139, 105], 
378  "seagreen1":[84, 255, 159], 
379  "seagreen2":[78, 238, 148], 
380  "seagreen3":[67, 205, 128], 
381  "seagreen4":[46, 139, 87], 
382  "palegreen1":[154, 255, 154], 
383  "palegreen2":[144, 238, 144], 
384  "palegreen3":[124, 205, 124], 
385  "palegreen4":[84, 139, 84], 
386  "springgreen1":[0, 255, 127], 
387  "springgreen2":[0, 238, 118], 
388  "springgreen3":[0, 205, 102], 
389  "springgreen4":[0, 139, 69], 
390  "green1":[0, 255, 0], 
391  "green2":[0, 238, 0], 
392  "green3":[0, 205, 0], 
393  "green4":[0, 139, 0], 
394  "chartreuse1":[127, 255, 0], 
395  "chartreuse2":[118, 238, 0], 
396  "chartreuse3":[102, 205, 0], 
397  "chartreuse4":[69, 139, 0], 
398  "olivedrab1":[192, 255, 62], 
399  "olivedrab2":[179, 238, 58], 
400  "olivedrab3":[154, 205, 50], 
401  "olivedrab4":[105, 139, 34], 
402  "darkolivegreen1":[202, 255, 112], 
403  "darkolivegreen2":[188, 238, 104], 
404  "darkolivegreen3":[162, 205, 90], 
405  "darkolivegreen4":[110, 139, 61], 
406  "khaki1":[255, 246, 143], 
407  "khaki2":[238, 230, 133], 
408  "khaki3":[205, 198, 115], 
409  "khaki4":[139, 134, 78], 
410  "lightgoldenrod1":[255, 236, 139], 
411  "lightgoldenrod2":[238, 220, 130], 
412  "lightgoldenrod3":[205, 190, 112], 
413  "lightgoldenrod4":[139, 129, 76], 
414  "lightyellow1":[255, 255, 224], 
415  "lightyellow2":[238, 238, 209], 
416  "lightyellow3":[205, 205, 180], 
417  "lightyellow4":[139, 139, 122], 
418  "yellow1":[255, 255, 0], 
419  "yellow2":[238, 238, 0], 
420  "yellow3":[205, 205, 0], 
421  "yellow4":[139, 139, 0], 
422  "gold1":[255, 215, 0], 
423  "gold2":[238, 201, 0], 
424  "gold3":[205, 173, 0], 
425  "gold4":[139, 117, 0], 
426  "goldenrod1":[255, 193, 37], 
427  "goldenrod2":[238, 180, 34], 
428  "goldenrod3":[205, 155, 29], 
429  "goldenrod4":[139, 105, 20], 
430  "darkgoldenrod1":[255, 185, 15], 
431  "darkgoldenrod2":[238, 173, 14], 
432  "darkgoldenrod3":[205, 149, 12], 
433  "darkgoldenrod4":[139, 101, 8], 
434  "rosybrown1":[255, 193, 193], 
435  "rosybrown2":[238, 180, 180], 
436  "rosybrown3":[205, 155, 155], 
437  "rosybrown4":[139, 105, 105], 
438  "indianred1":[255, 106, 106], 
439  "indianred2":[238, 99, 99], 
440  "indianred3":[205, 85, 85], 
441  "indianred4":[139, 58, 58], 
442  "sienna1":[255, 130, 71], 
443  "sienna2":[238, 121, 66], 
444  "sienna3":[205, 104, 57], 
445  "sienna4":[139, 71, 38], 
446  "burlywood1":[255, 211, 155], 
447  "burlywood2":[238, 197, 145], 
448  "burlywood3":[205, 170, 125], 
449  "burlywood4":[139, 115, 85], 
450  "wheat1":[255, 231, 186], 
451  "wheat2":[238, 216, 174], 
452  "wheat3":[205, 186, 150], 
453  "wheat4":[139, 126, 102], 
454  "tan1":[255, 165, 79], 
455  "tan2":[238, 154, 73], 
456  "tan3":[205, 133, 63], 
457  "tan4":[139, 90, 43], 
458  "chocolate1":[255, 127, 36], 
459  "chocolate2":[238, 118, 33], 
460  "chocolate3":[205, 102, 29], 
461  "chocolate4":[139, 69, 19], 
462  "firebrick1":[255, 48, 48], 
463  "firebrick2":[238, 44, 44], 
464  "firebrick3":[205, 38, 38], 
465  "firebrick4":[139, 26, 26], 
466  "brown1":[255, 64, 64], 
467  "brown2":[238, 59, 59], 
468  "brown3":[205, 51, 51], 
469  "brown4":[139, 35, 35], 
470  "salmon1":[255, 140, 105], 
471  "salmon2":[238, 130, 98], 
472  "salmon3":[205, 112, 84], 
473  "salmon4":[139, 76, 57], 
474  "lightsalmon1":[255, 160, 122], 
475  "lightsalmon2":[238, 149, 114], 
476  "lightsalmon3":[205, 129, 98], 
477  "lightsalmon4":[139, 87, 66], 
478  "orange1":[255, 165, 0], 
479  "orange2":[238, 154, 0], 
480  "orange3":[205, 133, 0], 
481  "orange4":[139, 90, 0], 
482  "darkorange1":[255, 127, 0], 
483  "darkorange2":[238, 118, 0], 
484  "darkorange3":[205, 102, 0], 
485  "darkorange4":[139, 69, 0], 
486  "coral1":[255, 114, 86], 
487  "coral2":[238, 106, 80], 
488  "coral3":[205, 91, 69], 
489  "coral4":[139, 62, 47], 
490  "tomato1":[255, 99, 71], 
491  "tomato2":[238, 92, 66], 
492  "tomato3":[205, 79, 57], 
493  "tomato4":[139, 54, 38], 
494  "orangered1":[255, 69, 0], 
495  "orangered2":[238, 64, 0], 
496  "orangered3":[205, 55, 0], 
497  "orangered4":[139, 37, 0], 
498  "red1":[255, 0, 0], 
499  "red2":[238, 0, 0], 
500  "red3":[205, 0, 0], 
501  "red4":[139, 0, 0], 
502  "deeppink1":[255, 20, 147], 
503  "deeppink2":[238, 18, 137], 
504  "deeppink3":[205, 16, 118], 
505  "deeppink4":[139, 10, 80], 
506  "hotpink1":[255, 110, 180], 
507  "hotpink2":[238, 106, 167], 
508  "hotpink3":[205, 96, 144], 
509  "hotpink4":[139, 58, 98], 
510  "pink1":[255, 181, 197], 
511  "pink2":[238, 169, 184], 
512  "pink3":[205, 145, 158], 
513  "pink4":[139, 99, 108], 
514  "lightpink1":[255, 174, 185], 
515  "lightpink2":[238, 162, 173], 
516  "lightpink3":[205, 140, 149], 
517  "lightpink4":[139, 95, 101], 
518  "palevioletred1":[255, 130, 171], 
519  "palevioletred2":[238, 121, 159], 
520  "palevioletred3":[205, 104, 137], 
521  "palevioletred4":[139, 71, 93], 
522  "maroon1":[255, 52, 179], 
523  "maroon2":[238, 48, 167], 
524  "maroon3":[205, 41, 144], 
525  "maroon4":[139, 28, 98], 
526  "violetred1":[255, 62, 150], 
527  "violetred2":[238, 58, 140], 
528  "violetred3":[205, 50, 120], 
529  "violetred4":[139, 34, 82], 
530  "magenta1":[255, 0, 255], 
531  "magenta2":[238, 0, 238], 
532  "magenta3":[205, 0, 205], 
533  "magenta4":[139, 0, 139], 
534  "orchid1":[255, 131, 250], 
535  "orchid2":[238, 122, 233], 
536  "orchid3":[205, 105, 201], 
537  "orchid4":[139, 71, 137], 
538  "plum1":[255, 187, 255], 
539  "plum2":[238, 174, 238], 
540  "plum3":[205, 150, 205], 
541  "plum4":[139, 102, 139], 
542  "mediumorchid1":[224, 102, 255], 
543  "mediumorchid2":[209, 95, 238], 
544  "mediumorchid3":[180, 82, 205], 
545  "mediumorchid4":[122, 55, 139], 
546  "darkorchid1":[191, 62, 255], 
547  "darkorchid2":[178, 58, 238], 
548  "darkorchid3":[154, 50, 205], 
549  "darkorchid4":[104, 34, 139], 
550  "purple1":[155, 48, 255], 
551  "purple2":[145, 44, 238], 
552  "purple3":[125, 38, 205], 
553  "purple4":[85, 26, 139], 
554  "mediumpurple1":[171, 130, 255], 
555  "mediumpurple2":[159, 121, 238], 
556  "mediumpurple3":[137, 104, 205], 
557  "mediumpurple4":[93, 71, 139], 
558  "thistle1":[255, 225, 255], 
559  "thistle2":[238, 210, 238], 
560  "thistle3":[205, 181, 205], 
561  "thistle4":[139, 123, 139], 
562  "gray0":[0, 0, 0], 
563  "grey0":[0, 0, 0], 
564  "gray1":[3, 3, 3], 
565  "grey1":[3, 3, 3], 
566  "gray2":[5, 5, 5], 
567  "grey2":[5, 5, 5], 
568  "gray3":[8, 8, 8], 
569  "grey3":[8, 8, 8], 
570  "gray4":[10, 10, 10], 
571  "grey4":[10, 10, 10], 
572  "gray5":[13, 13, 13], 
573  "grey5":[13, 13, 13], 
574  "gray6":[15, 15, 15], 
575  "grey6":[15, 15, 15], 
576  "gray7":[18, 18, 18], 
577  "grey7":[18, 18, 18], 
578  "gray8":[20, 20, 20], 
579  "grey8":[20, 20, 20], 
580  "gray9":[23, 23, 23], 
581  "grey9":[23, 23, 23], 
582  "gray10":[26, 26, 26], 
583  "grey10":[26, 26, 26], 
584  "gray11":[28, 28, 28], 
585  "grey11":[28, 28, 28], 
586  "gray12":[31, 31, 31], 
587  "grey12":[31, 31, 31], 
588  "gray13":[33, 33, 33], 
589  "grey13":[33, 33, 33], 
590  "gray14":[36, 36, 36], 
591  "grey14":[36, 36, 36], 
592  "gray15":[38, 38, 38], 
593  "grey15":[38, 38, 38], 
594  "gray16":[41, 41, 41], 
595  "grey16":[41, 41, 41], 
596  "gray17":[43, 43, 43], 
597  "grey17":[43, 43, 43], 
598  "gray18":[46, 46, 46], 
599  "grey18":[46, 46, 46], 
600  "gray19":[48, 48, 48], 
601  "grey19":[48, 48, 48], 
602  "gray20":[51, 51, 51], 
603  "grey20":[51, 51, 51], 
604  "gray21":[54, 54, 54], 
605  "grey21":[54, 54, 54], 
606  "gray22":[56, 56, 56], 
607  "grey22":[56, 56, 56], 
608  "gray23":[59, 59, 59], 
609  "grey23":[59, 59, 59], 
610  "gray24":[61, 61, 61], 
611  "grey24":[61, 61, 61], 
612  "gray25":[64, 64, 64], 
613  "grey25":[64, 64, 64], 
614  "gray26":[66, 66, 66], 
615  "grey26":[66, 66, 66], 
616  "gray27":[69, 69, 69], 
617  "grey27":[69, 69, 69], 
618  "gray28":[71, 71, 71], 
619  "grey28":[71, 71, 71], 
620  "gray29":[74, 74, 74], 
621  "grey29":[74, 74, 74], 
622  "gray30":[77, 77, 77], 
623  "grey30":[77, 77, 77], 
624  "gray31":[79, 79, 79], 
625  "grey31":[79, 79, 79], 
626  "gray32":[82, 82, 82], 
627  "grey32":[82, 82, 82], 
628  "gray33":[84, 84, 84], 
629  "grey33":[84, 84, 84], 
630  "gray34":[87, 87, 87], 
631  "grey34":[87, 87, 87], 
632  "gray35":[89, 89, 89], 
633  "grey35":[89, 89, 89], 
634  "gray36":[92, 92, 92], 
635  "grey36":[92, 92, 92], 
636  "gray37":[94, 94, 94], 
637  "grey37":[94, 94, 94], 
638  "gray38":[97, 97, 97], 
639  "grey38":[97, 97, 97], 
640  "gray39":[99, 99, 99], 
641  "grey39":[99, 99, 99], 
642  "gray40":[102, 102, 102], 
643  "grey40":[102, 102, 102], 
644  "gray41":[105, 105, 105], 
645  "grey41":[105, 105, 105], 
646  "gray42":[107, 107, 107], 
647  "grey42":[107, 107, 107], 
648  "gray43":[110, 110, 110], 
649  "grey43":[110, 110, 110], 
650  "gray44":[112, 112, 112], 
651  "grey44":[112, 112, 112], 
652  "gray45":[115, 115, 115], 
653  "grey45":[115, 115, 115], 
654  "gray46":[117, 117, 117], 
655  "grey46":[117, 117, 117], 
656  "gray47":[120, 120, 120], 
657  "grey47":[120, 120, 120], 
658  "gray48":[122, 122, 122], 
659  "grey48":[122, 122, 122], 
660  "gray49":[125, 125, 125], 
661  "grey49":[125, 125, 125], 
662  "gray50":[127, 127, 127], 
663  "grey50":[127, 127, 127], 
664  "gray51":[130, 130, 130], 
665  "grey51":[130, 130, 130], 
666  "gray52":[133, 133, 133], 
667  "grey52":[133, 133, 133], 
668  "gray53":[135, 135, 135], 
669  "grey53":[135, 135, 135], 
670  "gray54":[138, 138, 138], 
671  "grey54":[138, 138, 138], 
672  "gray55":[140, 140, 140], 
673  "grey55":[140, 140, 140], 
674  "gray56":[143, 143, 143], 
675  "grey56":[143, 143, 143], 
676  "gray57":[145, 145, 145], 
677  "grey57":[145, 145, 145], 
678  "gray58":[148, 148, 148], 
679  "grey58":[148, 148, 148], 
680  "gray59":[150, 150, 150], 
681  "grey59":[150, 150, 150], 
682  "gray60":[153, 153, 153], 
683  "grey60":[153, 153, 153], 
684  "gray61":[156, 156, 156], 
685  "grey61":[156, 156, 156], 
686  "gray62":[158, 158, 158], 
687  "grey62":[158, 158, 158], 
688  "gray63":[161, 161, 161], 
689  "grey63":[161, 161, 161], 
690  "gray64":[163, 163, 163], 
691  "grey64":[163, 163, 163], 
692  "gray65":[166, 166, 166], 
693  "grey65":[166, 166, 166], 
694  "gray66":[168, 168, 168], 
695  "grey66":[168, 168, 168], 
696  "gray67":[171, 171, 171], 
697  "grey67":[171, 171, 171], 
698  "gray68":[173, 173, 173], 
699  "grey68":[173, 173, 173], 
700  "gray69":[176, 176, 176], 
701  "grey69":[176, 176, 176], 
702  "gray70":[179, 179, 179], 
703  "grey70":[179, 179, 179], 
704  "gray71":[181, 181, 181], 
705  "grey71":[181, 181, 181], 
706  "gray72":[184, 184, 184], 
707  "grey72":[184, 184, 184], 
708  "gray73":[186, 186, 186], 
709  "grey73":[186, 186, 186], 
710  "gray74":[189, 189, 189], 
711  "grey74":[189, 189, 189], 
712  "gray75":[191, 191, 191], 
713  "grey75":[191, 191, 191], 
714  "gray76":[194, 194, 194], 
715  "grey76":[194, 194, 194], 
716  "gray77":[196, 196, 196], 
717  "grey77":[196, 196, 196], 
718  "gray78":[199, 199, 199], 
719  "grey78":[199, 199, 199], 
720  "gray79":[201, 201, 201], 
721  "grey79":[201, 201, 201], 
722  "gray80":[204, 204, 204], 
723  "grey80":[204, 204, 204], 
724  "gray81":[207, 207, 207], 
725  "grey81":[207, 207, 207], 
726  "gray82":[209, 209, 209], 
727  "grey82":[209, 209, 209], 
728  "gray83":[212, 212, 212], 
729  "grey83":[212, 212, 212], 
730  "gray84":[214, 214, 214], 
731  "grey84":[214, 214, 214], 
732  "gray85":[217, 217, 217], 
733  "grey85":[217, 217, 217], 
734  "gray86":[219, 219, 219], 
735  "grey86":[219, 219, 219], 
736  "gray87":[222, 222, 222], 
737  "grey87":[222, 222, 222], 
738  "gray88":[224, 224, 224], 
739  "grey88":[224, 224, 224], 
740  "gray89":[227, 227, 227], 
741  "grey89":[227, 227, 227], 
742  "gray90":[229, 229, 229], 
743  "grey90":[229, 229, 229], 
744  "gray91":[232, 232, 232], 
745  "grey91":[232, 232, 232], 
746  "gray92":[235, 235, 235], 
747  "grey92":[235, 235, 235], 
748  "gray93":[237, 237, 237], 
749  "grey93":[237, 237, 237], 
750  "gray94":[240, 240, 240], 
751  "grey94":[240, 240, 240], 
752  "gray95":[242, 242, 242], 
753  "grey95":[242, 242, 242], 
754  "gray96":[245, 245, 245], 
755  "grey96":[245, 245, 245], 
756  "gray97":[247, 247, 247], 
757  "grey97":[247, 247, 247], 
758  "gray98":[250, 250, 250], 
759  "grey98":[250, 250, 250], 
760  "gray99":[252, 252, 252], 
761  "grey99":[252, 252, 252], 
762  "gray100":[255, 255, 255], 
763  "grey100":[255, 255, 255], 
764  "dark grey":[169, 169, 169], 
765  "darkgrey":[169, 169, 169], 
766  "dark gray":[169, 169, 169], 
767  "darkgray":[169, 169, 169], 
768  "dark blue":[0, 0, 139], 
769  "darkblue":[0, 0, 139], 
770  "dark cyan":[0, 139, 139], 
771  "darkcyan":[0, 139, 139], 
772  "dark magenta":[139, 0, 139], 
773  "darkmagenta":[139, 0, 139], 
774  "dark red":[139, 0, 0], 
775  "darkred":[139, 0, 0], 
776  "light green":[144, 238, 144], 
777  "lightgreen":[144, 238, 144], 
778  "olive":[128, 128, 0], 
779  "teal":[0, 128, 128]} 
780 781 782 -class Led():
783 ''' 784 Class that represents a LED pair. 785 '''
786 - def __init__(self, id):
787 ''' 788 Creates a Led instance with given ID. 789 IDs of the double LEDs: 0: front, 1: left side , 2: rear, 3: right side. 790 The following global constants are defined: 791 LED_FRONT = 0, LED_LEFT = 1, LED_REAR = 2, RED_RIGHT = 3. 792 @param id: the LED identifier 793 ''' 794 self.id = id 795 self.device = "led" + str(id) 796 robot = RobotInstance.getRobot() 797 if robot == None: # deferred registering, because Robot not yet created 798 RobotInstance._partsToRegister.append(self) 799 else: 800 self._setup(robot)
801
802 - def _setup(self, robot):
803 robot.sendCommand(self.device + ".create") 804 self.robot = robot
805
806 - def setColor(self, *args):
807 ''' 808 Sets the RGB color value of the two LEDs with current ID. 809 @param args list of [red, green, blue] RGB color components 0..255 810 or three color integers 0..255 811 ''' 812 self._checkRobot() 813 if len(args) == 1 and type(args[0]) == list: 814 red = args[0][0] 815 green = args[0][1] 816 blue = args[0][2] 817 elif len(args) == 1 and type(args[0]) == str: 818 colorStr = args[0] 819 colorList = x11Colors[colorStr] 820 red = colorList[0] 821 green = colorList[1] 822 blue = colorList[2] 823 elif len(args) == 3: 824 red = args[0] 825 green = args[1] 826 blue = args[2] 827 else: 828 raise ValueError("Illegal param in setColor()") 829 self.robot.sendCommand(self.device + ".setColor." + 830 str(red) + "." + str(green) + "." + str(blue))
831 832
833 - def startBlinker(self, onColor, offColor, onTime, offTime, count = 0, blocking = False):
834 ''' 835 Starts blinking with given onColor and offColor. The blinking period 836 is offTime + onTime. May be stopped by calling stopBlinker(). If blocking is False, the 837 function returns immediately while the blinking goes on. The blinking is stopped by setColor(). 838 @param onColor: color in on state. Must be X11 color string 839 @param offColor: color in off state. Must be X11 color string 840 @param onTime: the time in ms in on state 841 @param offTime: the time in ms in off state 842 @param count: total number of on states; 0 for endlessly (default) 843 @param blocking: if True, the method blocks until the blinker has finished; otherwise 844 it returns immediately (default: False) 845 ''' 846 self._checkRobot() 847 self.robot.sendCommand(self.device + ".startBlinker." + 848 str(onColor) + "." + str(offColor) + "." + str(onTime) + "." + str(offTime) + "." + str(count)) 849 if blocking: 850 while self.isBlinkerAlive(): 851 continue
852
853 - def stopBlinker(self):
854 ''' 855 Stops blinking and turns the led off. 856 ''' 857 self._checkRobot() 858 self.robot.sendCommand(self.device + ".stopBlinker")
859
860 - def isBlinkerAlive(self):
861 ''' 862 @return: True, if the blinker is displaying; otherwise False 863 ''' 864 self._checkRobot() 865 rc = self.robot.sendCommand(self.device + ".isBlinkerAlive") 866 return rc == "True"
867 868 @staticmethod
869 - def setColorAll(*args):
870 ''' 871 Sets the RGB color of all 4 LED pairs. 872 @param color list of [red, green, blue] RGB color components 0..255 873 or three color integers 0..255 874 ''' 875 if RobotInstance.getRobot() == None: 876 raise Exception("Create Robot instance first") 877 if len(args) == 1 and type(args[0]) == list: 878 red = args[0][0] 879 green = args[0][1] 880 blue = args[0][2] 881 elif len(args) == 1 and type(args[0]) == str: 882 colorStr = args[0] 883 colorList = x11Colors[colorStr] 884 red = colorList[0] 885 green = colorList[1] 886 blue = colorList[2] 887 elif len(args) == 3: 888 red = args[0] 889 green = args[1] 890 blue = args[2] 891 else: 892 raise ValueError("Illegal param in setColor()") 893 RobotInstance.getRobot().sendCommand("led.setColorAll." + 894 str(red) + "." + str(green) + "." + str(blue))
895 896 @staticmethod
897 - def clearAll():
898 ''' 899 Turns off all 4 LED pairs. 900 ''' 901 if RobotInstance.getRobot() == None: 902 raise Exception("Create Robot instance first") 903 RobotInstance.getRobot().sendCommand("led.clearAll")
904
905 - def _checkRobot(self):
906 if RobotInstance.getRobot() == None: 907 raise Exception("Create Robot instance first")
908