tux-droid-svn Mailing List for Tux Droid CE (Page 207)
Status: Beta
Brought to you by:
ks156
You can subscribe to this list here.
2007 |
Jan
|
Feb
(32) |
Mar
(108) |
Apr
(71) |
May
(38) |
Jun
(128) |
Jul
(1) |
Aug
(14) |
Sep
(77) |
Oct
(104) |
Nov
(90) |
Dec
(71) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
(81) |
Feb
(18) |
Mar
(40) |
Apr
(102) |
May
(151) |
Jun
(74) |
Jul
(151) |
Aug
(257) |
Sep
(447) |
Oct
(379) |
Nov
(404) |
Dec
(430) |
2009 |
Jan
(173) |
Feb
(236) |
Mar
(519) |
Apr
(300) |
May
(112) |
Jun
(232) |
Jul
(314) |
Aug
(58) |
Sep
(203) |
Oct
(293) |
Nov
(26) |
Dec
(109) |
2010 |
Jan
(19) |
Feb
(25) |
Mar
(33) |
Apr
(1) |
May
|
Jun
(3) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Paul_R <c2m...@c2...> - 2008-01-18 14:26:18
|
Author: Paul_R Date: 2008-01-18 15:25:55 +0100 (Fri, 18 Jan 2008) New Revision: 856 Modified: software/gadgets/micro_monitor/trunk/micro_monitor.tgf software/gadgets/micro_monitor/trunk/micro_monitor/Scripts/Python/main.pyp software/gadgets/micro_monitor/trunk/micro_monitor/Scripts/Python/notify.pyp Log: * Fixed a bug on the notification actuator function. * Removed the tux.micro.off when the gadget is closed Modified: software/gadgets/micro_monitor/trunk/micro_monitor/Scripts/Python/main.pyp =================================================================== --- software/gadgets/micro_monitor/trunk/micro_monitor/Scripts/Python/main.pyp 2008-01-18 13:21:04 UTC (rev 855) +++ software/gadgets/micro_monitor/trunk/micro_monitor/Scripts/Python/main.pyp 2008-01-18 14:25:55 UTC (rev 856) @@ -7,7 +7,6 @@ gadgets[keys].notify.set_active(gdg_dict[keys]) gadgets['micro_monitor'].notify.set_active(False) - tux.micro.off() tux.cmd.mouth_close() tux.event.on_remote_bt[K_STANDBY] = None tux.monitoring.remove(_me.get_param('monitor_id')) Modified: software/gadgets/micro_monitor/trunk/micro_monitor/Scripts/Python/notify.pyp =================================================================== --- software/gadgets/micro_monitor/trunk/micro_monitor/Scripts/Python/notify.pyp 2008-01-18 13:21:04 UTC (rev 855) +++ software/gadgets/micro_monitor/trunk/micro_monitor/Scripts/Python/notify.pyp 2008-01-18 14:25:55 UTC (rev 856) @@ -16,14 +16,12 @@ for i in range(5): tux.cmd.sound_play(14) try: - while tux.status.sound_play[1] != 0: + while tux.status.sound_play()[1] != 0: tux.sys.wait(0.1) except: while tux.status.flash_status()[0] != 0: tux.sys.wait(0.1) - tux.sys.wait(1) - print 'end' - + tux.sys.wait(1) else: path = _me.get_param('dogBehavior') path = path.replace('%20', ' ') Modified: software/gadgets/micro_monitor/trunk/micro_monitor.tgf =================================================================== (Binary files differ) |
From: Paul_R <c2m...@c2...> - 2008-01-18 13:21:39
|
Author: Paul_R Date: 2008-01-18 14:21:04 +0100 (Fri, 18 Jan 2008) New Revision: 855 Modified: software/gadgets/tux_controller/trunk/TuxController.tgf software/gadgets/tux_controller/trunk/TuxController/Scripts/Python/GUI/widget/other.glade software/gadgets/tux_controller/trunk/TuxController/Scripts/Python/GUI/widget/other.pyp Log: * Bug fixes : - The LEDs frequency's slidebar was not consistant. - Bug with the spinning graphics * GUI : - Added some labels Modified: software/gadgets/tux_controller/trunk/TuxController/Scripts/Python/GUI/widget/other.glade =================================================================== --- software/gadgets/tux_controller/trunk/TuxController/Scripts/Python/GUI/widget/other.glade 2008-01-18 10:47:27 UTC (rev 854) +++ software/gadgets/tux_controller/trunk/TuxController/Scripts/Python/GUI/widget/other.glade 2008-01-18 13:21:04 UTC (rev 855) @@ -689,7 +689,7 @@ </widget> <packing> <property name="x">70</property> - <property name="y">16</property> + <property name="y">15</property> </packing> </child> @@ -706,6 +706,44 @@ </child> <child> + <widget class="GtkVSeparator" id="vseparator18"> + <property name="width_request">16</property> + <property name="height_request">50</property> + <property name="visible">True</property> + </widget> + <packing> + <property name="x">0</property> + <property name="y">4</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="lblLED"> + <property name="width_request">16</property> + <property name="height_request">51</property> + <property name="visible">True</property> + <property name="label" translatable="yes"> </property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_CENTER</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">True</property> + <property name="angle">90</property> + </widget> + <packing> + <property name="x">9</property> + <property name="y">3</property> + </packing> + </child> + + <child> <widget class="GtkButton" id="btnLEDRun"> <property name="width_request">36</property> <property name="height_request">36</property> @@ -784,31 +822,19 @@ </widget> <packing> <property name="x">30</property> - <property name="y">12</property> + <property name="y">11</property> </packing> </child> <child> - <widget class="GtkVSeparator" id="vseparator18"> - <property name="width_request">16</property> - <property name="height_request">50</property> + <widget class="GtkLabel" id="lblFrequency"> + <property name="width_request">144</property> + <property name="height_request">16</property> <property name="visible">True</property> - </widget> - <packing> - <property name="x">0</property> - <property name="y">4</property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="lblLED"> - <property name="width_request">16</property> - <property name="height_request">51</property> - <property name="visible">True</property> - <property name="label" translatable="yes"> </property> + <property name="label" translatable="yes">label19</property> <property name="use_underline">False</property> <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_CENTER</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> <property name="wrap">False</property> <property name="selectable">False</property> <property name="xalign">0.5</property> @@ -817,12 +843,12 @@ <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> - <property name="single_line_mode">True</property> - <property name="angle">90</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> </widget> <packing> - <property name="x">9</property> - <property name="y">3</property> + <property name="x">160</property> + <property name="y">7</property> </packing> </child> @@ -842,20 +868,20 @@ </widget> <packing> <property name="x">160</property> - <property name="y">16</property> + <property name="y">15</property> </packing> </child> <child> - <widget class="GtkLabel" id="lblFrequency"> - <property name="width_request">144</property> + <widget class="GtkLabel" id="label27"> + <property name="width_request">73</property> <property name="height_request">16</property> <property name="visible">True</property> - <property name="label" translatable="yes">label19</property> + <property name="label" translatable="yes">Cycles</property> <property name="use_underline">False</property> <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> + <property name="justify">GTK_JUSTIFY_CENTER</property> + <property name="wrap">True</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> @@ -867,8 +893,8 @@ <property name="angle">0</property> </widget> <packing> - <property name="x">160</property> - <property name="y">8</property> + <property name="x">63</property> + <property name="y">0</property> </packing> </child> </widget> @@ -931,6 +957,32 @@ </child> <child> + <widget class="GtkLabel" id="lblEyes"> + <property name="width_request">16</property> + <property name="height_request">73</property> + <property name="visible">True</property> + <property name="label" translatable="yes"> </property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_CENTER</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">True</property> + <property name="angle">90</property> + </widget> + <packing> + <property name="x">9</property> + <property name="y">3</property> + </packing> + </child> + + <child> <widget class="GtkButton" id="btnEyesRun"> <property name="width_request">36</property> <property name="height_request">36</property> @@ -1009,20 +1061,20 @@ </widget> <packing> <property name="x">30</property> - <property name="y">22</property> + <property name="y">21</property> </packing> </child> <child> - <widget class="GtkLabel" id="lblEyes"> - <property name="width_request">16</property> - <property name="height_request">73</property> + <widget class="GtkLabel" id="label26"> + <property name="width_request">73</property> + <property name="height_request">16</property> <property name="visible">True</property> - <property name="label" translatable="yes"> </property> + <property name="label" translatable="yes">Cycles</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> - <property name="wrap">False</property> + <property name="wrap">True</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> @@ -1030,12 +1082,12 @@ <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> - <property name="single_line_mode">True</property> - <property name="angle">90</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> </widget> <packing> - <property name="x">9</property> - <property name="y">3</property> + <property name="x">63</property> + <property name="y">11</property> </packing> </child> </widget> @@ -1070,11 +1122,61 @@ </widget> <packing> <property name="x">70</property> - <property name="y">18</property> + <property name="y">23</property> </packing> </child> <child> + <widget class="GtkVSeparator" id="vseparator12"> + <property name="width_request">16</property> + <property name="height_request">56</property> + <property name="visible">True</property> + </widget> + <packing> + <property name="x">0</property> + <property name="y">3</property> + </packing> + </child> + + <child> + <widget class="GtkVSeparator" id="vseparator13"> + <property name="width_request">16</property> + <property name="height_request">56</property> + <property name="visible">True</property> + </widget> + <packing> + <property name="x">20</property> + <property name="y">3</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="lblMouth"> + <property name="width_request">16</property> + <property name="height_request">56</property> + <property name="visible">True</property> + <property name="label" translatable="yes"> </property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_CENTER</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">True</property> + <property name="angle">90</property> + </widget> + <packing> + <property name="x">9</property> + <property name="y">3</property> + </packing> + </child> + + <child> <widget class="GtkButton" id="btnMouthRun"> <property name="width_request">36</property> <property name="height_request">36</property> @@ -1153,44 +1255,20 @@ </widget> <packing> <property name="x">30</property> - <property name="y">13</property> + <property name="y">18</property> </packing> </child> <child> - <widget class="GtkVSeparator" id="vseparator12"> - <property name="width_request">16</property> - <property name="height_request">56</property> + <widget class="GtkLabel" id="label25"> + <property name="width_request">73</property> + <property name="height_request">16</property> <property name="visible">True</property> - </widget> - <packing> - <property name="x">0</property> - <property name="y">3</property> - </packing> - </child> - - <child> - <widget class="GtkVSeparator" id="vseparator13"> - <property name="width_request">16</property> - <property name="height_request">56</property> - <property name="visible">True</property> - </widget> - <packing> - <property name="x">20</property> - <property name="y">3</property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="lblMouth"> - <property name="width_request">16</property> - <property name="height_request">56</property> - <property name="visible">True</property> - <property name="label" translatable="yes"> </property> + <property name="label" translatable="yes">Cycles</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_CENTER</property> - <property name="wrap">False</property> + <property name="wrap">True</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> @@ -1198,12 +1276,12 @@ <property name="ypad">0</property> <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> <property name="width_chars">-1</property> - <property name="single_line_mode">True</property> - <property name="angle">90</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> </widget> <packing> - <property name="x">9</property> - <property name="y">3</property> + <property name="x">63</property> + <property name="y">8</property> </packing> </child> </widget> @@ -1420,6 +1498,32 @@ <property name="y">47</property> </packing> </child> + + <child> + <widget class="GtkLabel" id="label24"> + <property name="width_request">73</property> + <property name="height_request">16</property> + <property name="visible">True</property> + <property name="label" translatable="yes">Cycles</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_CENTER</property> + <property name="wrap">True</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="x">63</property> + <property name="y">43</property> + </packing> + </child> </widget> <packing> <property name="left_attach">1</property> @@ -1675,6 +1779,32 @@ <property name="y">18</property> </packing> </child> + + <child> + <widget class="GtkLabel" id="lblCyclesSpin"> + <property name="width_request">73</property> + <property name="height_request">16</property> + <property name="visible">True</property> + <property name="label" translatable="yes">Cycles</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_CENTER</property> + <property name="wrap">True</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="x">63</property> + <property name="y">14</property> + </packing> + </child> </widget> <packing> <property name="left_attach">1</property> Modified: software/gadgets/tux_controller/trunk/TuxController/Scripts/Python/GUI/widget/other.pyp =================================================================== --- software/gadgets/tux_controller/trunk/TuxController/Scripts/Python/GUI/widget/other.pyp 2008-01-18 10:47:27 UTC (rev 854) +++ software/gadgets/tux_controller/trunk/TuxController/Scripts/Python/GUI/widget/other.pyp 2008-01-18 13:21:04 UTC (rev 855) @@ -5,7 +5,6 @@ print sys.exc_info() __led_toggled_by_event = False -__plugged = False class Window(SimpleGladeApp): @@ -24,7 +23,6 @@ def new(self): global __led_toggled_by_event - global __plugged __led_toggled_by_event = False __plugged = False @@ -83,9 +81,6 @@ def on_window1_destroy(self, widget, *args): - ''' - When the window is destroyed, don't forget to remove the monitoring vectors - ''' _me.get_funct('on_standby')() def binding(self): @@ -408,6 +403,7 @@ ## btnLEDrun def on_btnLEDRun_clicked(self, widget, *args): freq = self.get_widget('slideLED').get_value() + freq = 256 - freq value = self.get_widget('spinLED').get_value() value = value * 2 tux.cmd.leds_blink(int(value), int(freq)) @@ -548,7 +544,8 @@ else: tux.cmd.spinr_on_free(int(value), int(freq)) thread.start_new_thread(self.refresh_picture, ('imgSpin', self.spin_right)) - thread.start_new_thread(self.refresh_picture, ('imgSpinRun', self.stop)) + thread.start_new_thread(self.refresh_picture, ('imgSpinRun', self.stop)) + tux.sys.wait(0.1) else: tux.cmd.spinl_off() @@ -667,9 +664,7 @@ def refresh_picture(self, widget, picture): - print ('refresh thread enter : %s'%widget) self.get_widget(widget).set_from_pixbuf(picture) - print 'refresh thread leave' #-------------------------------- # Remote events #-------------------------------- Modified: software/gadgets/tux_controller/trunk/TuxController.tgf =================================================================== (Binary files differ) |
From: Paul_R <c2m...@c2...> - 2008-01-18 10:47:47
|
Author: Paul_R Date: 2008-01-18 11:47:27 +0100 (Fri, 18 Jan 2008) New Revision: 854 Modified: software/gadgets/tux_controller/trunk/TuxController.tgf software/gadgets/tux_controller/trunk/TuxController/Scripts/Python/GUI/widget/other.pyp Log: * Fixed the desynchronization bug. Now I refresh all the picture on a thread. * Fixed some minors bugs... Modified: software/gadgets/tux_controller/trunk/TuxController/Scripts/Python/GUI/widget/other.pyp =================================================================== --- software/gadgets/tux_controller/trunk/TuxController/Scripts/Python/GUI/widget/other.pyp 2008-01-17 09:52:57 UTC (rev 853) +++ software/gadgets/tux_controller/trunk/TuxController/Scripts/Python/GUI/widget/other.pyp 2008-01-18 10:47:27 UTC (rev 854) @@ -5,6 +5,7 @@ print sys.exc_info() __led_toggled_by_event = False +__plugged = False class Window(SimpleGladeApp): @@ -23,7 +24,10 @@ def new(self): global __led_toggled_by_event + global __plugged + __led_toggled_by_event = False + __plugged = False _me.set_param('generalStop', False) self.get_widget("window1").set_title(_me.string('name_to_read')) self.create_tooltips() @@ -101,7 +105,6 @@ tux.event.on_mouth_open = self.on_mouth_open tux.event.on_mouth_close = self.on_mouth_close tux.event.on_spin_stop = self.on_spin_stop - tux.event.on_power_unplugged = self.on_unplugged tux.event.on_remote_bt[K_UP] = self.on_key_up #eyes tux.event.on_remote_bt[K_DOWN] = self.on_key_down #wings @@ -368,16 +371,16 @@ self.__eyes_active = False self.__eyes_stop = True self.__eyes_infinite = False - self.get_widget('imgEyesRun').set_from_pixbuf(self.run) - tux.cmd.eyes_open() + thread.start_new_thread(self.refresh_picture, ('imgEyesRun', self.run)) + tux.cmd.eyes_on(1) if self.__mouth_active: tux.cmd.mouth_off() self.__mouth_active = False self.__mouth_stop = True self.__mouth_infinite = False - self.get_widget('imgMouthRun').set_from_pixbuf(self.run) - tux.cmd.mouth_close() + thread.start_new_thread(self.refresh_picture, ('imgMouthRun', self.run)) + tux.cmd.mouth_on(1) if self.__wings_active: @@ -385,15 +388,15 @@ self.__wings_active = False self.__wings_stop = True self.__wings_infinite = False - self.get_widget('imgWingsRun').set_from_pixbuf(self.run) - self.get_widget('imgWings').set_from_pixbuf(self.wings_down) + thread.start_new_thread(self.refresh_picture, ('imgWingsRun', self.run)) + thread.start_new_thread(self.refresh_picture, ('imgWings', self.wings_down)) tux.cmd.raw(0x3A, 0, 0, 0) if self.__spin_active: self.__spin_active = False self.__spin_infinite = False - self.get_widget('imgSpinRun').set_from_pixbuf(self.run) - self.get_widget('imgSpin').set_from_pixbuf(self.spin_off) + thread.start_new_thread(self.refresh_picture, ('imgSpinRun', self.run)) + thread.start_new_thread(self.refresh_picture, ('imgSpin', self.spin_off)) tux.cmd.spinl_off() tux.cmd.spinr_off() @@ -411,7 +414,8 @@ def on_btnEyesOpen_released(self, widget, *args): - self.get_widget('imgLed').set_from_pixbuf(self.led_on) + thread.start_new_thread(self.refresh_picture, ('imgLed', self.led_on)) + #self.get_widget('imgLed').set_from_pixbuf(self.led_on) tux.cmd.eyes_open() def on_btnEyesClose_released(self, widget, *args): @@ -423,11 +427,11 @@ self.__mouth_active = False self.__mouth_stop = True self.__mouth_infinite = False - self.get_widget('imgMouthRun').set_from_pixbuf(self.run) + thread.start_new_thread(self.refresh_picture, ('imgMouthRun', self.run)) if self.__eyes_active == False: self.__eyes_active = True - self.get_widget('imgEyesRun').set_from_pixbuf(self.stop) + thread.start_new_thread(self.refresh_picture, ('imgEyesRun', self.stop)) value = self.get_widget('spinEyes').get_value() value = value * 2 if value == 0: @@ -435,11 +439,11 @@ tux.cmd.eyes_on_free(int(value)) tux.sys.looped_function(self.__update_eyes_buttons, 0.2) else: - tux.cmd.eyes_off() + tux.cmd.eyes_on(1) self.__eyes_active = False self.__eyes_stop = True self.__eyes_infinite = False - self.get_widget('imgEyesRun').set_from_pixbuf(self.run) + thread.start_new_thread(self.refresh_picture, ('imgEyesRun', self.run)) def on_btnMouthClose_released(self, widget, *args): @@ -454,11 +458,11 @@ self.__eyes_active = False self.__eyes_stop = True self.__eyes_infinite = False - self.get_widget('imgEyesRun').set_from_pixbuf(self.run) + thread.start_new_thread(self.refresh_picture, ('imgEyesRun', self.run)) if self.__mouth_active == False: self.__mouth_active = True - self.get_widget('imgMouthRun').set_from_pixbuf(self.stop) + thread.start_new_thread(self.refresh_picture, ('imgMouthRun', self.stop)) value = self.get_widget('spinMouth').get_value() value = value * 2 if value == 0: @@ -466,24 +470,24 @@ tux.cmd.mouth_on_free(int(value)) tux.sys.looped_function(self.__update_mouth_buttons, 0.2) else: - tux.cmd.mouth_off() + tux.cmd.mouth_on(1) self.__mouth_active = False self.__mouth_stop = True self.__mouth_infinite = False - self.get_widget('imgMouthRun').set_from_pixbuf(self.run) + thread.start_new_thread(self.refresh_picture, ('imgMouthRun', self.run)) def on_btnWingsUp_released(self, widget, *args): - self.get_widget('imgWings').set_from_file(self.path+'wings_up.png') + thread.start_new_thread(self.refresh_picture, ('imgWings', self.wings_up)) tux.cmd.raw(0x39, 0, 0, 0) def on_btnWingsDown_released(self, widget, *args): - self.get_widget('imgWings').set_from_file(self.path+'wings_down.png') + thread.start_new_thread(self.refresh_picture, ('imgWings', self.wings_down)) tux.cmd.raw(0x3A, 0, 0, 0) def on_btnWingsRun_clicked(self, widget, *args): if self.__wings_active == False: self.__wings_active = True - self.get_widget('imgWingsRun').set_from_pixbuf(self.stop) + thread.start_new_thread(self.refresh_picture, ('imgWingsRun', self.stop)) value = self.get_widget('spinWings').get_value() value = value * 2 if value == 0: @@ -492,18 +496,22 @@ tux.cmd.wings_on_free(int(value), int(freq)) tux.sys.looped_function(self.__update_wings_buttons, 0.2) else: - tux.cmd.wings_off() + tux.cmd.wings_on(1) self.__wings_active = False self.__wings_stop = True self.__wings_infinite = False - self.get_widget('imgWingsRun').set_from_pixbuf(self.run) + thread.start_new_thread(self.refresh_picture, ('imgWingsRun', self.run)) + #tux.sys.wait(0.2) + thread.start_new_thread(self.refresh_picture, ('imgWings', self.wings_down)) + tux.cmd.raw(0x3A, 0, 0, 0) + def on_btnSpinLeft_pressed(self, widget, *args): if tux.status.power_plug(): - self.get_widget('imgSpin').set_from_pixbuf(self.spin_transfo) + thread.start_new_thread(self.refresh_picture, ('imgSpin', self.spin_transfo)) thread.start_new_thread(self.__wait2, ()) return - self.get_widget('imgSpin').set_from_pixbuf(self.spin_left) + thread.start_new_thread(self.refresh_picture, ('imgSpin', self.spin_left)) tux.cmd.spinl_on_free(0) def on_btnSpinLeft_released(self, widget, *args): @@ -511,10 +519,10 @@ def on_btnSpinRight_pressed(self, widget, *args): if tux.status.power_plug(): - self.get_widget('imgSpin').set_from_pixbuf(self.spin_transfo) + thread.start_new_thread(self.refresh_picture, ('imgSpin', self.spin_transfo)) thread.start_new_thread(self.__wait2, ()) return - self.get_widget('imgSpin').set_from_file(self.path+'spin_right.png') + thread.start_new_thread(self.refresh_picture, ('imgSpin', self.spin_right)) tux.cmd.spinr_on_free(0) def on_btnSpinRight_released(self, widget, *args): @@ -522,7 +530,7 @@ def on_btnSpinRun_clicked(self, widget, *args): if tux.status.power_plug(): - self.get_widget('imgSpin').set_from_pixbuf(self.spin_transfo) + thread.start_new_thread(self.refresh_picture, ('imgSpin', self.spin_transfo)) thread.start_new_thread(self.__wait2, ()) return @@ -536,11 +544,11 @@ freq = self.get_widget('slideSpin').get_value() if self.get_widget('radSpinDirLeft').get_active(): tux.cmd.spinl_on_free(int(value), int(freq)) - self.get_widget('imgSpin').set_from_pixbuf(self.spin_left) + thread.start_new_thread(self.refresh_picture, ('imgSpin', self.spin_left)) else: tux.cmd.spinr_on_free(int(value), int(freq)) - self.get_widget('imgSpin').set_from_pixbuf(self.spin_right) - self.get_widget('imgSpinRun').set_from_pixbuf(self.stop) + thread.start_new_thread(self.refresh_picture, ('imgSpin', self.spin_right)) + thread.start_new_thread(self.refresh_picture, ('imgSpinRun', self.stop)) else: tux.cmd.spinl_off() @@ -548,7 +556,7 @@ self.__spin_active = False self.__spin_stop = True self.__spin_infinite = False - self.get_widget('imgSpinRun').set_from_pixbuf(self.run) + thread.start_new_thread(self.refresh_picture, ('imgSpinRun', self.run)) ## chkLEDRight @@ -566,10 +574,10 @@ return if widget.get_active(): tux.cmd.ledr_on() - self.get_widget('imgLed').set_from_pixbuf(self.led_on) + thread.start_new_thread(self.refresh_picture, ('imgLed', self.led_on)) else: tux.cmd.ledr_off() - self.get_widget('imgLed').set_from_pixbuf(self.led_off) + thread.start_new_thread(self.refresh_picture, ('imgLed', self.led_off)) ## chkLEDLeft def on_chkLEDLeft_toggled(self, widget, *args): @@ -579,10 +587,10 @@ if widget.get_active(): tux.cmd.ledl_on() - self.get_widget('imgLed').set_from_pixbuf(self.led_on) + thread.start_new_thread(self.refresh_picture, ('imgLed', self.led_on)) else: tux.cmd.ledl_off() - self.get_widget('imgLed').set_from_pixbuf(self.led_off) + thread.start_new_thread(self.refresh_picture, ('imgLed', self.led_off)) def on_btnTTS_clicked(self, widget, *args): @@ -609,7 +617,7 @@ global __led_toggled_by_event __led_toggled_by_event = True self.get_widget('chkLEDLeft').set_active(True) - self.get_widget('imgLed').set_from_pixbuf(self.led_on) + thread.start_new_thread(self.refresh_picture, ('imgLed', self.led_on)) __led_toggled_by_event = False @@ -617,7 +625,7 @@ global __led_toggled_by_event __led_toggled_by_event = True self.get_widget('chkLEDLeft').set_active(False) - self.get_widget('imgLed').set_from_pixbuf(self.led_off) + thread.start_new_thread(self.refresh_picture, ('imgLed', self.led_off)) __led_toggled_by_event = False @@ -625,7 +633,7 @@ global __led_toggled_by_event __led_toggled_by_event = True self.get_widget('chkLEDRight').set_active(True) - self.get_widget('imgLed').set_from_pixbuf(self.led_on) + thread.start_new_thread(self.refresh_picture, ('imgLed', self.led_on)) __led_toggled_by_event = False @@ -633,12 +641,12 @@ global __led_toggled_by_event __led_toggled_by_event = True self.get_widget('chkLEDRight').set_active(False) - self.get_widget('imgLed').set_from_pixbuf(self.led_off) + thread.start_new_thread(self.refresh_picture, ('imgLed', self.led_off)) __led_toggled_by_event = False def on_eyes_close(self): - self.get_widget('imgLed').set_from_pixbuf(self.eyes_close) + thread.start_new_thread(self.refresh_picture, ('imgLed', self.eyes_close)) def on_eyes_open(self): @@ -647,18 +655,21 @@ def on_mouth_open(self): - self.get_widget('imgMouth').set_from_pixbuf(self.beak_open) + thread.start_new_thread(self.refresh_picture, ('imgMouth', self.beak_open)) def on_mouth_close(self): - self.get_widget('imgMouth').set_from_pixbuf(self.beak_closed) + thread.start_new_thread(self.refresh_picture, ('imgMouth', self.beak_closed)) def on_spin_stop(self): - self.get_widget('imgSpin').set_from_pixbuf(self.spin_off) + thread.start_new_thread(self.refresh_picture, ('imgSpin', self.spin_off)) self.__spin_active = False - self.get_widget('imgSpinRun').set_from_pixbuf(self.run) + thread.start_new_thread(self.refresh_picture, ('imgSpinRun', self.run)) - def on_unplugged(self): - self.get_widget('imgSpin').set_from_pixbuf(self.spin_off) + + def refresh_picture(self, widget, picture): + print ('refresh thread enter : %s'%widget) + self.get_widget(widget).set_from_pixbuf(picture) + print 'refresh thread leave' #-------------------------------- # Remote events #-------------------------------- @@ -739,7 +750,8 @@ if tux.status.eyes_counter() == 0 and self.__eyes_active == True and self.__eyes_infinite == False: self.__eyes_active = False - self.get_widget('imgEyesRun').set_from_pixbuf(self.run) + thread.start_new_thread(self.refresh_picture, ('imgEyesRun', self.run)) + #self.get_widget('imgEyesRun').set_from_pixbuf(self.run) return False return True @@ -755,7 +767,8 @@ if tux.status.mouth_counter() == 0 and self.__mouth_active == True and self.__mouth_infinite == False: self.__mouth_active = False - self.get_widget('imgMouthRun').set_from_pixbuf(self.run) + thread.start_new_thread(self.refresh_picture, ('imgMouthRun', self.run)) + #self.get_widget('imgMouthRun').set_from_pixbuf(self.run) return False return True @@ -771,7 +784,8 @@ if tux.status.wings_counter() == 0 and self.__wings_active == True and self.__wings_infinite == False: self.__wings_active = False - self.get_widget('imgWingsRun').set_from_pixbuf(self.run) + thread.start_new_thread(self.refresh_picture, ('imgWingsRun', self.run)) + #self.get_widget('imgWingsRun').set_from_pixbuf(self.run) return False return True @@ -779,4 +793,4 @@ def __wait2(self): tux.sys.wait(2) - self.get_widget('imgSpin').set_from_pixbuf(self.spin_off) + thread.start_new_thread(self.refresh_picture, ('imgSpin', self.spin_off)) Modified: software/gadgets/tux_controller/trunk/TuxController.tgf =================================================================== (Binary files differ) |
From: jaguarondi <c2m...@c2...> - 2008-01-17 09:53:05
|
Author: jaguarondi Date: 2008-01-17 10:52:57 +0100 (Thu, 17 Jan 2008) New Revision: 853 Added: firmware/hex/tags/ firmware/hex/tags/0.3.0/ firmware/hex/tags/0.3.0/fuxrf.hex firmware/hex/tags/0.3.0/fuxusb.hex firmware/hex/tags/0.3.0/info.xml firmware/hex/tags/0.3.0/tuxaudio.eep firmware/hex/tags/0.3.0/tuxaudio.hex firmware/hex/tags/0.3.0/tuxcore.eep firmware/hex/tags/0.3.0/tuxcore.hex firmware/hex/tags/0.3.0/tuxrf.hex firmware/hex/tags/0.3.1/ firmware/hex/tags/0.3.1/fuxrf.hex firmware/hex/tags/0.3.1/fuxusb.hex firmware/hex/tags/0.3.1/info.xml firmware/hex/tags/0.3.1/tuxaudio.eep firmware/hex/tags/0.3.1/tuxaudio.hex firmware/hex/tags/0.3.1/tuxcore.eep firmware/hex/tags/0.3.1/tuxcore.hex firmware/hex/tags/0.3.1/tuxrf.hex Log: * Added tags of the firmware releases as hex files. Added: firmware/hex/tags/0.3.0/fuxrf.hex =================================================================== --- firmware/hex/tags/0.3.0/fuxrf.hex (rev 0) +++ firmware/hex/tags/0.3.0/fuxrf.hex 2008-01-17 09:52:57 UTC (rev 853) @@ -0,0 +1,235 @@ +:1000000021C03AC039C038C037C036C035C034C04E +:1000100033C032C031C0D5C42FC02EC02DC02CC0BB +:100020002BC02AC0E3C6B1C6D0C626C025C024C096 +:1000300023C022C071C5E7C456C56EC575C59DC530 +:10004000ACC5C0C511241FBECFEFD2E0DEBFCDBF0F +:1000500011E0A0E0B1E0EAE8FEE002C005900D92F8 +:10006000A030B107D9F711E0A0E0B1E001C01D92C6 +:10007000A030B107E1F701C0C3CFCFEFD2E0DEBFC0 +:10008000CDBF1A9901C041C7E4D1F8D1A9D276D227 +:100090008093FC0122D2109287017894A0E0B0E016 +:1000A000ECD6802D992780939101809191018F3F0B +:1000B00019F485E080939101BCD25F9841E15091A1 +:1000C000F10E752F7F718091C1018823E1F31092A9 +:1000D000C1011092C2011092F20120E02093F301BD +:1000E0001A9BFECF429A1A99FECF42988091F50151 +:1000F000882309F445C01092F5018091F701882307 +:1001000049F11092F7018091020180FF0CC08091AB +:10011000020182FF2BC08091020181FF23C08091E8 +:10012000F20182600BC08091020181FF17C08091B3 +:10013000020182FF1FC08091F20181608093F20171 +:100140008091F20184608093F20122E882E2809340 +:10015000F40118C08091020180FF08C08091020163 +:1001600082FF0EC08091F201826007C0809102017F +:1001700081FF06C08091F20181608093F20122E04C +:100180004093F4018091F601882341F01092F6012A +:1001900028608091F20188608093F2018091F801DB +:1001A000882331F028608091F20180618093F20110 +:1001B0008091850187FF58C028608091F201886096 +:1001C0008093F201809185018038B9F48091F00E1E +:1001D0008093FD01852F807E8093FE018091FE013A +:1001E000872B8093FE018091F20E8093FF01809116 +:1001F000F30E8093000281E819C080918501813857 +:10020000D9F48091F40E8093FD018091F50E9091C8 +:10021000F60E892F99278093FE018091F50E809329 +:10022000FF018091F70E8093000282E880938501A0 +:100230001BC01092F10147CF809185018238A1F453 +:100240008091F80E8093FD018091F90E9091FA0E45 +:10025000892F99278093FE018091F90E8093FF01E9 +:100260008091FB0E809300022EBD40980DB407FED6 +:10027000FDCF61E01A99C5C0409A8091C2018731D3 +:1002800098F48091F101882339F08091C201E82F20 +:10029000FF27ED53FE4F06C08091C201E82FFF27D4 +:1002A000E652FE4F8EB580838091C2018F5F8093AE +:1002B000C2019091F301992309F044C08091F201A9 +:1002C00082FF1CC08091F20180FF0CC08091C201AE +:1002D000823120F18091C201E82FFF27E850FF4FC3 +:1002E000808123C08091C201823160F08091C2017F +:1002F000E82FFF27E050FF4F878517C08091F2015C +:1003000080FF08C08091C201E82FFF27E050FF4F17 +:1003100081850BC08091F20181FF09C08091C201EB +:10032000E82FFF27E050FF4F80A18EBD01C09EBD8A +:100330009091C2018091F401981709F061C0609317 +:10034000F3015EC08091F3018130C9F58091F20123 +:1003500083FF1FC08091850187FF07C08091C20184 +:10036000E82FFF27E551FE4F11C08091F20182FF77 +:1003700007C08091C201E82FFF27ED51FF4F06C053 +:100380008091C201E82FFF27EC50FF4F80818EBD86 +:1003900001C01EBC8091C201282F33278091F40137 +:1003A000992704962817390759F582E08093F301BD +:1003B00080918501823821F51092850121C08091BC +:1003C000F3018230F1F48091F20184FF0AC0809140 +:1003D000F8018EBD8091F801813021F01092F80172 +:1003E00001C01EBC8091C201282F33278091F401E7 +:1003F000992705962817390719F483E08093F301AC +:1004000040980DB407FEFDCF8091F301833009F0D1 +:1004100031CF409A8091C201873198F48091F101E7 +:10042000882339F08091C201E82FFF27ED53FE4F5A +:1004300006C08091C201E82FFF27E652FE4F8EB51D +:1004400080838091F101882309F0F3CE6093F1015C +:100450003ACE80E285B983E184B981E388B98FE03F +:1004600087B980EC8BB986EA8AB985E08093C400AD +:1004700080E48CBD1DBC0DB40EB408958DB780957D +:10048000E0E0F1E02FEF32E0281B3109E217F3073B +:1004900010F41192FBCF109290011092A8011092CB +:1004A000A60181E08093A7011092BE011092BD01C8 +:1004B0001092BF011092C1011092F1011092F5014A +:1004C0001092F6011092F7011092F8011092F901C2 +:1004D0001092FA011092850108951F9395E590936B +:1004E00042018091420180934101809141018093BA +:1004F0004001909345018091450180934401809192 +:100500004401809343018FEF80934701809147011D +:1005100080934601809187018093480116E31093F0 +:10052000490110934A0110934B0187E080934C01DD +:1005300081E080934D0110924E018091FC018093E7 +:100540004F0190935001909351013DD01093810140 +:100550008091FC0180938201109383011F91089583 +:1005600020E0281750F49FE0000000000000000089 +:10057000915097FFF9CF2F5FF4CF0895CF93D6D145 +:100580005D9AC0E02C2F00002F5F2F3FE1F740E085 +:1005900050E020E4CA0187709070892B19F4CC0FC9 +:1005A0004899C16021504F5F5F4F27FFF3CF01D2C1 +:1005B0008C2F9927CF910895E1DF8F77803608F04F +:1005C0008C5399270895ECE4F1E020E090914C01E0 +:1005D000923020F0819128279150FACF20830895FE +:1005E000FF920F931F93CF93E7DF80939201C1E0B7 +:1005F00081E0F82E0C2F11270E561E4FDDDFF8017B +:10060000808320E0D801E22FFF27EE56FE4F9C9119 +:100610008081981721F02F5FC217A9F702C0FF2031 +:1006200049F7CF5FC43120F3CF911F910F91FF9015 +:10063000089580918601806480938601BAD188D321 +:100640001092C0001092C1001092C20080E290E0AF +:100650009093890080938800809190018823E1F332 +:10066000109290018091010181FFF6CF8091FC01F1 +:1006700080934A0180914D01846080934D01A3DFF6 +:10068000809190018823E1F3109290018091010103 +:1006900081FFF6CF8091010182FFF2CF84E3809346 +:1006A0004C019FEFE2E5F1E083E09193815087FFF9 +:1006B000FCCF95E5E6E5F1E088E29193815087FF74 +:1006C000FCCF81DF8091860180618093860108954F +:1006D0008091860185FFDCC08091A70184FF12C054 +:1006E00080919001882371F08091010184FF0AC0FC +:1006F0001092900180914D01877F80934D0180E29F +:100700008093A70180914E0180FF31C080914E01FE +:1007100082FF04C084E080934E0102C010924E011B +:100720008091F101882381F48091C30181FF50C041 +:10073000A4ECB1E0E1E4F1E090E18D91858B915082 +:10074000319697FFFACF0FC08091DA0181FF40C048 +:10075000ABEDB1E0E1E4F1E090E18D91858B91505A +:10076000319697FFFACF80914E0182602FC0809121 +:100770004E0181FF02C083E001C081E080934E0101 +:100780008091F101882381F48091C30181FF20C011 +:10079000A4ECB1E0E1E4F1E090E18D9184A7915007 +:1007A000319697FFFACF0FC08091DA0181FF10C018 +:1007B000ABEDB1E0E1E4F1E090E18D9184A79150DF +:1007C000319697FFFACF80914E01846080934E015D +:1007D0008091F1018823B9F48091C30183FF37C070 +:1007E0008091F801882399F58091D5018530B9F081 +:1007F000A5EDB1E0E2E5F1E093E08D9181939150B8 +:1008000097FFFBCF1AC08091DA0183FF20C080914F +:10081000F8018823E1F48091EC01853021F480E82F +:100820008093850114C0ACEEB1E0E2E5F1E093E025 +:100830008D918193915097FFFBCF80914E018860FD +:1008400080934E011092F90181E08093F80180912C +:10085000F801813091F48091F901893121F483E02C +:100860008093F8010AC080914E01886080934E0108 +:100870008091F9018F5F8093F9018091FA018823BB +:1008800029F080914E01806880934E019CDE08958E +:100890008091A70181FF17C08091010184FF45C0AD +:1008A00080914D01877F80934D018091A8018093B5 +:1008B00051018091A8018F5F8093A80184DE84E0BC +:1008C0008093A70108958091A70182FF16C08091AF +:1008D000A801809351018091A8018F5F8093A801A6 +:1008E00072DE8091A80184FF20C01092A701809140 +:1008F000860180628093860108958091A70180FF20 +:1009000014C0A2E9B1E0E0E4F1E093E18D91828BC3 +:100910009150319697FFFACF80914D018860809376 +:100920004D0151DE82E08093A7010895299A5A9AD9 +:10093000419A5D9828985C985998549A0895982FF0 +:10094000299A59985C98419834E360FF0BC08091D4 +:100950009101880F80939101309191013167892F26 +:10096000855E0FC0892F845E20EA98E05C9827FF9F +:1009700002C0599A01C05998220F5C9A915097FF72 +:10098000F5CF8068232F3327322F2227280F311DE0 +:100990009FE05C9837FF02C0599A01C05998220F16 +:1009A000331F5C9A915097FFF4CF5C985998419A05 +:1009B00008955D98289829985A9841985C98599874 +:1009C00008951F920F920FB60F9211242F933F9309 +:1009D0004F935F936F937F938F939F93AF93BF9347 +:1009E000CF93EF93FF93C0918801CF5F8C2F99270E +:1009F000AA27BB27FC013197E830F10508F094C124 +:100A0000E65EFF4F09948091860185FF3FC080918B +:100A1000A601E82FFF27EE56FE4F808180938701C5 +:100A20008091A6018F5F8093A6018091A6018431F9 +:100A3000C1F51092A6018091A70185FF12C0809197 +:100A4000BF01E82FFF27EE56FE4F8091C001808343 +:100A50001092A7018091BF01E82FFF27E755FE4FB5 +:100A600010828091BD019091BE0101969093BE01CC +:100A70008093BD018091BD019091BE01885E93403D +:100A800081F41092BE011092BD010BC080918701CC +:100A9000815E8093870180918701853610F01092E6 +:100AA000870161E0809187014ADF80E48093C00084 +:100AB00088E08093C10080918800909189008559D9 +:100AC0009E4F909389008093880080918701809346 +:100AD00048018091860184FDFBDD80914C01845F9B +:100AE0008093890121C18091880090918900805F65 +:100AF0009A4F909389008093880010928A0186E42F +:100B00008093C200289A88E28093C10085E5809393 +:100B1000C6008093C60008C109DF809188009091CB +:100B200089008B5B9F4F49C08091860185FF0DC076 +:100B30008091BD019091BE01892B39F48091A6016D +:100B4000E82FFF27E755FE4F108210928B0110927D +:100B50008C011092900110928D0160E080918701CC +:100B6000EEDE80918800909189008C5E9E4F90937C +:100B70008900809388005498D7C080918800909114 +:100B80008900895A9F4F90938900809388005D9ACD +:100B90008091870180938001C7C010928D011092CF +:100BA000C00080E98093C10086E48093C2008091F8 +:100BB0008800909189008C599B4F90938900809375 +:100BC0008800B2C01092C0001092C1001092C20002 +:100BD000F0DEC0E0809188009091890084559F4F9D +:100BE000909389008093880080918C018F3FE1F57C +:100BF00080918D018823C1F521E02093900188B177 +:100C000098E0892788B9C093FB018091020180FF99 +:100C100005C08091020182FD09C004C080910201DB +:100C200081FD04C08091F701882311F02093F50124 +:100C30008091020183FF0AC08091FA01882361F448 +:100C400081E08093F6018093FA0106C08091FA0159 +:100C5000882311F01092FA018091020187FF22C0CF +:100C600082E08093F8011EC081E08093F7018091BB +:100C7000860184FF0AC08091FB018F5F8093FB0196 +:100C80008091FB018F3F09F45F9A8091860185FF77 +:100C900009C08091A601E82FFF27E755FE4F80810C +:100CA0008F5F80838091860185FF3EC08091A70180 +:100CB0008823B9F58091A601E82FFF27E755FE4F5D +:100CC0008081833070F180914D01886080934D0167 +:100CD0008091A6018093BF018091A60180934F016E +:100CE0008091A601E82FFF27EE56FE4F8081835E9C +:100CF0008093C0018091C0018F3528F08091C001A0 +:100D00008F558093C0018091C001809350018091E4 +:100D1000C0019091A601890F8093510180E18093D9 +:100D2000A70181E08093C101C0938801FF91EF91F9 +:100D3000CF91BF91AF919F918F917F916F915F9173 +:100D40004F913F912F910F900FBE0F901F901895CC +:100D500010928500109284001092800082E08093AF +:100D6000810080936F0086BB0895109285001092D9 +:100D70008400109280001092820082E086BB109264 +:100D80006F0083E0809381000895DEBBDFB7DABD9A +:100D9000CBBDD1E0C0918A01C05CD881D093C600A0 +:100DA000CF53C0938A01C83009F42998D0918901A2 +:100DB000DC1731F4D0E4D093C000D8E4D093C10064 +:100DC000CBB5DAB5DFBFDEB31895DEBBDFB7DABD72 +:100DD000D0E0D093C000D093C100D093C2005A9805 +:100DE00028984198DAB5DFBFDEB318959EBBEABDFF +:100DF000FBBDFFB7F8BD90918C019430B1F0E0E8F5 +:100E0000F1E0E90FF081E091C600FE1771F59395CE +:100E100090938C01943059F5E0918400E0938E0119 +:100E2000E0918500E0938F0122C09091C600F1E02F +:100E3000E0918B019083E395EF73E0938B01F09148 +:100E40008D01F927F0938D01909100019E1779F49F +:100E50009FEF90938C0190E09093C1009093C2001B +:100E60005A985D984198299802C010928C01F8B563 +:100E7000FFBFFBB5EAB59EB31895F999FECFB2BD99 +:0A0E8000A1BDF89A119600B4089580 +:0C0EF000C8030300C9EEFF00CA000000A8 +:00000001FF Added: firmware/hex/tags/0.3.0/fuxusb.hex =================================================================== --- firmware/hex/tags/0.3.0/fuxusb.hex (rev 0) +++ firmware/hex/tags/0.3.0/fuxusb.hex 2008-01-17 09:52:57 UTC (rev 853) @@ -0,0 +1,524 @@ +:10190600C281D2A3438F01D2AF1210571200468074 +:01191600FBD5 +:0C19CB00C8040300C9000004CA000000AA +:0416F4004102280087 +:1016F800C10EC10AC10DC109C10BC10C43022901A8 +:02170800022CB1 +:10125800EF24FFFFEE34FFFEED34FFFDEC34FFFC1E +:101268000207E29002F9E0FF04F0900300E0FCA31B +:10127800E02FF582E43CF583E5CFF0051A22E0FC87 +:10128800A3E0FDA3E0FEA3E0FFEC4D4E4F22E49364 +:10129800F5CFA3E49322FA740193FBEAF5CFEBF5BB +:0C12A800CF22900223E0FEA3E0FF4E22C4 +:101057009003061207EE00002710121A7C43BC808B +:1010670043BC10900306121286601E900306A3A3CA +:10107700A3E024FFFFEE34FFFEED34FFFDEC34FF69 +:10108700FC9003061207E280DA53BCEF7D80E4FF91 +:10109700121A75E4FF12193912002653F1FC43F1B5 +:1010A70003D2B3C209C280C290C200E490019CF08F +:0A10B700C203C20CD207D208C20621 +:0110C100220C +:100E810030067A300877E51020E772200E6F900166 +:100E9100E1E0C364809481506475C704E4F5CF3008 +:100EA100A304F5CF800375CF0190019CE0F5CF90AD +:100EB100026EE01313543FF5CFE4F51B90026EE090 +:100EC100FFE51BC39F50091219798FCF051B80ECD9 +:100ED10090026EE0FF643C60108F1BE51BC3943CE5 +:100EE1005007E4F5CF051B80F2D20EC209121AAAEF +:0D0EF100E490019CF09001E1E004F0C206E5 +:010EFE0022D1 +:100F770090019DE064017054A3E07050A3E0704CB1 +:100F8700A3E0FF7002D206EFF47041F5A8F5B17542 +:100F9700C314FD7F401216217B017DF47F041218D4 +:100FA7002690030B1207EE0000271043BC10900396 +:100FB7000B121286600890030B12125880F053BC74 +:100FC700EF121A6675A61E75A6E180FE90019DE0D8 +:100FD700B4020EA3E0FFB40103D20C22EF7002C2E9 +:010FE7000CFD +:010FE80022E6 +:0B0EFF0090030BEBF0A3EAF0A3E9F076 +:100F0A00E4FCEDD39C406590030BE0FBA3E0FAA35D +:100F1A00E0F98C827583001207226406704775C750 +:100F2A0004F5CF30A304F5CF800375CF0175CF0246 +:100F3A0075CF039019CB121296F5CFA3121296F51C +:100F4A00CF9019CF12129612129E9019D2E493F5ED +:100F5A00CF9019D312129612129E9019D6E493F5D5 +:0C0F6A00CFD20EC20974042CFC020F0C44 +:010F76002258 +:10004600200519E5BD20E50302039853BCBFD20580 +:1000560053BDFE53BDDF53BDF7020398E5BD5431D2 +:10006600602EE5BD30E00CC205D2B3C28153BDFEA1 +:1000760043BC40E5BD30E41853BDEF120026D2055F +:100086001216CD12194A12195A121AA6D2B3C281E1 +:10009600E5BD20E30302015453BDF7900224E004BA +:1000A600F07006900223E004F0300E0875C7044392 +:1000B600CE10C20E9001DEE07002A3E06010900147 +:1000C600DFE024FFF09001DEE034FFF08010200D29 +:1000D6000DE4F514F513D20FD291C210C21190029D +:1000E60028E0600214F0300565900226E0605F307B +:1000F600A32C20030F53F1FC43F101E4900223F0FB +:10010600A3F0D2031212AA7002D2B3BE0205BFFF39 +:1001160002C2B3EFF47003EE64037032802730033B +:100126000F53F1FC43F103E4900223F0A3F0C20362 +:100136001212AA7002D2B3EF64104E7002C2B3EF6D +:1001460064204E700990022374FFF0A314F0120E7F +:1001560081200A1C900226E0601630141375C70130 +:10016600751A0812134A8FCFD51AF843CE10D20A41 +:10017600E5F87003020398E5F830E41B75C704E55B +:10018600CE30E01353CEFE9001E1E014F0E0C364FC +:100196008094805002E4F0E5F830E00BE4F5C7E522 +:1001A600CE30E203121A8AE5F830E31A75C7031255 +:1001B6001ABAEF600E300C0B751A08AFCF1215C3C2 +:1001C600D51AF853CEFDE5F830E21A75C702121AB1 +:1001D600BAEF600E200C0B751A08AFCF1215C3D5F7 +:1001E6001AF853CEFDE5F830E10D75C701E5CE30BE +:1001F600E00553CEFEC20A200703020398E5F82065 +:10020600E50302039830010302039875C705E5CE9E +:1002160054427003020398121ABA9001E0EFF0906C +:100226000225E5CFF0E0702BD201F51A9001E0E04F +:10023600FD14FFE51AC39F500E74E2251AF582E4F9 +:10024600340112127E80E57B017A0179E2120EFFFB +:10025600020378900225E0B40125E4F51A9001E046 +:10026600E014FFE51AC39F500E749D251AF582E42B +:10027600340112127E80E6120F77C20102037890D3 +:100286000225E064026003020378D20DC201C200B7 +:10029600900305E5CFF0E064017042C281C291F59A +:1002A6001A051AE51AB4FFF9E4F51A051AE51AB49F +:1002B600FFF9D281121917E5CF25E09002FCF090E4 +:1002C6000303E5CFF09002FBE5CFF0E49002F9F0EE +:1002D600900302F090022874FAF002035690030588 +:0502E600E0FFB403116C +:0E02EB00C20D90030AE5CFF0E5CFF0E5CFF0AD +:1002F900020356EF64027055900302E07034AFCFE9 +:100309009002FDF0A3EFF0E0F8E4F0E89002FDF0D0 +:10031900AFCFA3E02FF09002FDE03400F0E4F51A2E +:100329009001E0E024FCFFE51AC39F501A12126BFA +:1003390080EEE4F51A9001E0E024FEFFE51AC39F80 +:10034900500512126B80EE900302E004F09002FB5C +:10035900E0FF900302E0B50714900303E0FF900269 +:10036900F9E0B50708E4F0900302F0D202C2017582 +:10037900C70520040AE5CE30E11053CEFD800B30CD +:100389000408E5CE30E60353CEBFA204B39204209D +:100399000503020612300D67200203020612300E11 +:1003A90003020612900228E06003020612780B7C11 +:1003B900037D017B017A0279FCFE7F061206E39038 +:1003C90003117440F012164F90019AE020E0F99061 +:1003D90002287414F075C70475CFF090019AE0C42F +:1003E9001313540330E009E054BFF0E4F5CF800360 +:1003F90075CF01E4F5CFF5CFF5CFD20EC202223089 +:10040900A3030205EFD20B20000302061230B42029 +:10041900300F1D9001DE7417F0A37470F0C211E45F +:10042900F515F514F513C20FC291D210C207C2080F +:10043900201003020612201103020612E4F54AC233 +:1004490011E514702330130D30010575110A801060 +:10045900751102800B3001057511088003E4F5114F +:100469008511C5751401804DE514B40114E515B461 +:100479001103751402E51130E13812138E8FC5800E +:1004890034E51464027026E515B4150AE51130E364 +:1004990002C201751403E51130E31074D02515F576 +:1004A90082E43401F583E0F5C5800A8005E514B4DA +:1004B9000303E4F5C50515E5137025AFC4BF800333 +:1004C900D38001C3400430A3F22285C510E5C530AD +:1004D900E70575122280037512117513010205DFF4 +:1004E900E51364017036AFC4BF8003D38001C340F4 +:1004F9000430A3F222E51030E109D29074222515C7 +:10050900F8A6C5E5122401FFE433FEE5156F700175 +:10051900EE60030205DF7513020205DFE5136402CD +:1005290060030205DFAFC4BF8003D38001C3400469 +:1005390030A3F222E51030E347AF127E00EF240525 +:10054900FDEE33FCAB157A00D3EB9DEC6480F874B7 +:100559008098500BC3EB9512FD74442DF8A6C5EF96 +:100569002406FFE43EFEEBB50716EAB50612900233 +:1005790027E5C5F0E0FF90019CE0C39F5002EFF032 +:10058900E5122406FFE433FEE5156F7001EE7046AF +:10059900D207D208C210D291D20FE5105482601648 +:1005A900E4F51A7424251AF8E6FF121485051AE5EC +:1005B9001AC3951240EDE51030E34EE546604AE472 +:1005C900F51A7446251AF8E6FF1217F0051AE51A06 +:1005D900C3940440ED22054A30112EE54AC394051F +:1005E900500302044822300B20C20BC2819003063B +:1005F9001207EE00007D0090030612128660089033 +:09060900030612125880F0D281A0 +:0106120022C5 +:06170A00C18FC111C110E6 +:0E198800E4F514F513D20FD291C210C2112251 +:1016CD0053AFFE43C31043C30253C3F753C3FB438E +:1016DD00C32043C340D2B2D2B4D291D288D2A8E4AF +:0716ED00F514F513C2002201 +:03000300021AAE30 +:031AAE00D2113220 +:10191700121A96121A6E9003007401F0A37406F05F +:01192700229D +:10164F0090019AE054BFF090030BE090019BF09053 +:10165F00030CE0FCA3E0FDEC900104F0A3EDF0908F +:0C166F000311E02402900199F002196AB6 +:1013040090018DE0FF04F0748E2FF582E43401F532 +:1013140083E595F022E0FF04F074042FF582E434B1 +:1013240001F58322900199E0FF900103E0C39F221D +:10133400E0FBA3E0FAA3E0F9EA494B22A3E0FAA315 +:06134400E0F5828A83221D +:041A960075938022A2 +:071A6E007593C043B1022291 +:0C19D700900186EBF0A3EAF0A3E9F022F7 +:0C19E30090018AEBF0A3EAF0A3E9F022E7 +:0F196A0090019AE04401F0E4900103F0021A9A10 +:041A9A004393202230 +:0B1A070043931090019AE054FEF0227F +:031AB1008F9522EC +:041A9E004393042248 +:041AA2005393FB223D +:031AB400AF9522C9 +:031AB700AF9422C7 +:03004300020B822B +:100B8200C0E0C0F0C083C082C0D075D008AF94EF7F +:100B920012081F0CCE000BE7080BE7100BEF180C26 +:100BA2000F200BEF280C0F300C19380C1F400C0FC4 +:100BB200480C1C500C0C580C2F600C2F680C2F701A +:100BC2000C2F780C45800C57880C45900C57980CCC +:100BD2005EA00C8AA80C8AB00CB1B80C19C00C1912 +:100BE200C800000CD15393DF90019B800812132898 +:100BF200500B121319E0FF121AB1020CD1121A078C +:100C020090019AE04440F0020CD112130490019A30 +:100C1200E04402F0020CCE020CC9121304900189C6 +:100C2200E014FF90018DE0C39F5027802290019A2B +:100C3200E04401F090018DE4F090019AE054FBF061 +:100C4200020CBF12130490018DE0C39408500302FA +:100C52000CBF020CC490019AE04404F0121A6E9088 +:100C62000186121334601890018DE0FF7B017A0136 +:100C7200798EC00A900186121340D00A1208499058 +:100C8200019AE054FEF0804790018A121334601AF0 +:100C92007B017A017904C00A90018A121340D00ABA +:100CA2007F82120849900199EFF0900103E4F090DD +:100CB2000103121319E0F5951213285005121A9E1A +:100CC200800D121AA28008121A6E8003121A07539C +:0D0CD20093F7D0D0D082D083D0F0D0E032A4 +:10184000AE18AF19C390032DE09FFF90032CE09ECC +:09185000FED3EF94FFEE947F2219 +:1014F400AC18AD19ED2FFFEC3E90032CF0A3EFF0E8 +:1015040020AF1312184050047F0080027F01EF7057 +:1015140013121A1D80ED12184050047F0080027FC0 +:0415240001EF60F281 +:0115280022A0 +:10175900E4F519F518F517F51690032EF0A3F0F531 +:0F1769008A758CF0438901438F02D28CD2A9225A +:0A1A1D0020AF06308D031211952250 +:03000B000211954A +:10119500C0E0C0F0C083C082C0D075D000C000C020 +:1011A50004C005C006C007C28D438CF090032E74A1 +:1011B5000C75F04A1207B6FEC3E5F0944AEE940C9E +:1011C500E450047F0380027F02FEFDFCE5192FF544 +:1011D50019E5183EF518E5173DF517E5163CF51622 +:1011E500D007D006D005D004D000D0D0D082D0838F +:0511F500D0F0D0E03253 +:1009F1001201100100000020EB0307FF300001028B +:100A010003010C034B00790073006F0068001403AD +:100A11005400750078002000440072006F006900E6 +:100A210064000C0331003000300030003100040359 +:100A3100090414035400750078002000440072007A +:100A41006F006900640009023B010601048032095C +:100A510004000000010100000A2401000146000217 +:100A610001020C24020101020001000000000C241B +:100A71000202010100010000000009240303010139 +:100A810000050009240304010300060009240605EA +:100A91000102030000092406060202030000090402 +:100AA100010000010200000904010101010200002E +:100AB100072401030102000B240201010108014086 +:100AC1001F00090581010800010000072501000040 +:100AD10000000904020000010200000904020101F2 +:100AE10001020000072401020102000B240201019E +:100AF100010801401F00090502010800010000076B +:100B010025010000000009040300020000000007A5 +:100B110005840340000107050503400001090404A1 +:100B21000000010100000924010001270001050C5A +:100B3100240207010100010000000009240308014B +:100B4100030009000924060907020300000904053E +:100B51000000010200000904050101010200000773 +:100B61002401070102000B24020101010801401FB9 +:100B7100000905030108000100000725010000002C +:010B81000073 +:10112C00E5CFF0A3E5CFF0A3E5CFF0A3E5CFF02218 +:10113C0090030BE4F0740CA3F09002F374FFF0A393 +:10114C002253CEFB43CE202253CE7F53CEFB43CE35 +:10115C00102253CEFB43CE80229002F3E0FBA3E09F +:10116C00FAA3E0F92253CEFD53CE7F2253CEDF53A8 +:10117C00CEF72253CEFEE5CE54422290030BE4F080 +:09118C00A322E4F5CF43CE1022AA +:10002600E49002F7F0A3F0A3F0900226F0C2059048 +:0C0036000223F0A3F09001E1F0C20422CC +:101410007D857F01121A757F011219397D817F0246 +:10142000121A757F021219397D817F03121A757F96 +:10143000031219397D877F04121A757F0412193936 +:0C1440007D837F05121A757F05021939A3 +:061A8A00E4F5C7020CDFC9 +:100CDF009002F2E5CFF09002F1E5CFF0A3E054607F +:100CEF00703A9002F1E024FB601924FD601014604B +:100CFF001724FE60182405701912084B8063121711 +:100D0F00B4805E1218728059120E0080541214BDF6 +:100D1F00804F12114DE5CE30E3FB80429002F2E09E +:100D2F005460642070309002F1E0247E600F1460F4 +:100D3F00111460132403701412177880241217965D +:100D4F00801F121717801A121738801512114DE5D0 +:100D5F00CE30E3FB800812114DE5CE30E3FB1211CC +:050D6F007853CE7F2245 +:10187200AFCF12115743BC01E5CE30E0FB53CEFE91 +:05188200EF4480F5C6F3 +:01188700223E +:100E0000AFCF53CE7F53CEFBEFD39401505590021A +:100E100026EFF064017058C28190030B1207EE00B8 +:100E2000007D0090030BE0FCA3E0FDA3E0FEA3E047 +:100E3000FFEC4D4E4F6018EF24FFFFEE34FFFEED48 +:100E400034FFFDEC34FFFC90030B1207E280D4D298 +:100E500081C2B31216CD12195A12194A121AA6D209 +:100E600000800C43CE20E5CE30E3FB121178224304 +:100E7000CE10E5CE30E0FB53CEFE12141043BC0280 +:010E8000224F +:1014BD00AFCF90030BE5CFF0AECFA3E5CFF053CE7A +:1014CD007F53CEFBEEB40313EF70109001E1F0C229 +:1014DD00047F041219397F0512193943CE10E5CE58 +:0614ED0030E0FB53CEFECF +:0114F30022D6 +:10084B00C212AFCFAECFEE24FE601E146031240275 +:10085B0060030208F690030BE4F074121211437458 +:10086B0009F0A374F1F002090D90030B7401F0A3CE +:10087B00743B121144740AF0A37447F002090DEF94 +:10088B0014601F14602814603614603F2404704CED +:10089B001211877404121144740AF0A3742FF0021E +:1008AB00090D12113C740AF0A37403F08054121159 +:1008BB00877414121144740AF0A3740FF08043125E +:1008CB00113C740AF0A37423F0803712118774144F +:1008DB00121144740AF0A37433F0802612114DE503 +:1008EB00CE20E314E5CE20E2F6800D12114DE5CEBD +:1008FB0020E305E5CE20E2F653CEF753CEDF53CE01 +:10090B007F22E5CFE5CF90030EE5CFF090030DE509 +:10091B00CFF090030BE0FEA3E0FFA3E0FCA3E0FD10 +:10092B00D39FEC9E400DEF541F7004D212800CC26B +:10093B0012800890030BECF0A3EDF012115ED39034 +:10094B00030CE0942090030BE094004028121165F7 +:10095B007D201209E290030CE024E0F090030BE001 +:10096B0034FFF0E5CE54427005E5CE30E0F51211C0 +:10097B007F60CB804012116590030BA3E0FD120941 +:10098B00E2E490030BF0A3F0E5CE54427005E5CE04 +:10099B0030E0F512117F6002801B30121D121165C1 +:1009AB00E4FD1218F4E5CE54427005E5CE30E0F5C7 +:1009BB0012117F600553CEEF8019E5CE54427005BE +:1009CB00E5CE30E2F5E5CE20E20CE5CE54426006F2 +:0609DB0053CE7F53CEFD58 +:1009E100221218F49002F3EBF0A3EAF0A3E9F0224B +:1017780090030B12112C12115E12118EE5CE30E07F +:0D178800FB53CEFEE5CE544260FA12117103 +:011795002231 +:1017960090030B12112C12115E12118EE5CE30E061 +:0D17A600FB53CEFEE5CE544260FA121171E5 +:0117B3002213 +:1017170090030B12112C12115E75CF0A43CE10E500 +:10172700CE30E0FB53CEFEE5CE544260FA12117183 +:01173700228F +:1017380090030B12112C12115E75CF0143CE10E5E8 +:10174800CE30E0FB53CEFEE5CE544260FA12117162 +:01175800226E +:1018880090031212112C121154E5CE30E0FB53CE06 +:01189800FE51 +:01189900222C +:10189A0090031612112C121154E5CE30E0FB53CEF0 +:0118AA00FE3F +:0118AB00221A +:1018AC0090031A12112C121154E5CE30E0FB53CEDA +:0118BC00FE2D +:0118BD002208 +:1018BE0090031E12112C121154E5CE30E0FB53CEC4 +:0118CE00FE1B +:0118CF0022F6 +:1017B40012115E900226E0F5CF43CE10E5CE30E064 +:0E17C400FB53CEFEE5CE544260FA12117122A4 +:1018D00012115E43CE20E5CE30E3FB12117853CED9 +:0218E0007F2265 +:1012B400E5CFE5CFAFCF12115E9002F2E0247F605C +:1012C4000C14600E2402701975CF018014E4F5CF5C +:1012D400800FEF547F24F6F582E43402F583E0F5C1 +:1012E400CF12118EE5CE30E0FBE5CE20E2F653CEF0 +:0F12F400FEE5CE544260FAE5CE20E2F51211710C +:0113030022C7 +:1011FA009002F2E0700B12114DE5CE30E3FB53CEB4 +:10120A00DF9002F2E0B4010B12114DE5CE30E3FBA0 +:10121A0053CEDF9002F2E064027032E5CF702EE521 +:10122A00CFAFCFEF247F701A75C70143CE20E4F504 +:10123A00C79002F704F0121157E5CE30E0FB53CE07 +:0E124A00FE2212114DE5CE30E3FB1211782288 +:100FE9009002F2E0700B12114DE5CE30E3FB53CEC7 +:100FF900DF9002F2E0B4010B12114DE5CE30E3FBB4 +:1010090053CEDF9002F2E064027042E5CF703EE514 +:10101900CFAFCFEF6020247F702875C70153CEDF93 +:101029007F01121939E4F5C79002F7F0121157E55B +:10103900CE30E0FB8008121157E5CE30E0FB53CEED +:0E104900FE2212114DE5CE30E3FB53CEDF2226 +:02171000C11303 +:1017D200E024B1F582E43402F583229002AFE00402 +:0E17E200F0E0FEC39420229002AFE014F0224B +:10194A00E49002AFF09002AEF09002ADF0C2132222 +:101529007F081217DD4002D213EEB438041217E90E +:1015390022AECFEE9002AD70081217D27401F0807E +:10154900051217D2EEF09002ADE004F0E0B43802D3 +:04155900E4F0DFCE0D +:01155D00226B +:1015C3001217DD4002D213EEB438041217E922EFEA +:1015D3009002AD70081217D27401F080051217D271 +:0E15E300EFF09002ADE004F0E0B43802E4F066 +:0115F10022D7 +:10138E009002AFE0FEC394105002C213EE701A909A +:10139E0002AEE0FE70069002E8E0FF2274B02EF579 +:1013AE0082E43402F583E0FF221217E99002AE12B6 +:1013BE0017D2E0FF9002AEE004F0E0B43802E4F0A1 +:0113CE0022FC +:02171200C11400 +:0B1A1200E02403F582E43400F5832299 +:10195A00E4900002F0900001F0900000F0C214221E +:10148500900002E004F0E0FEC394804002D214EE26 +:10149500FD7C00BC010ABD0107900002E014F022AA +:1014A500900000121A12EFF0900000E004F0E0B492 +:0814B5000005E4B40101F0227E +:10134A00900002E0FE7002C214EE701A900001E0F2 +:10135A00FE7006900102E0FF2274022EF582E43448 +:10136A0000F583E0FF22900002E014F090000112E1 +:10137A001A12E0FF900001E004F0E0B40005E4B4C2 +:03138A000101F06E +:01138D00223D +:10159100E0FBA3E0FAA3E0F9900040120722FF90DC +:1015A1000041020722900041740112074FE92441D2 +:1015B100F9E43AFA120709543F0207829000400207 +:0215C1000722FF +:0E199600900040E4120794900041E402079490 +:10000E001215BD04543F12159FB507047F018002DF +:03001E007F00223E +:0D19A400121599B507047F0180027F002213 +:0D19B1001215A0FF1215BDC39F543FFF2269 +:08167B00900330ECF0A3EDF048 +:101683001215BD04543F12159F6F6014900040EF74 +:10169300120794900330A3E08F827583001207949E +:0116A3002224 +:10155E00900326EBF0A3EAF0A3E9F0900326121510 +:10156E00916F601C1215A6900326E0FBA3E0FAA370 +:10157E00E0F91215A0F5827583001207227F002272 +:03158E007F0122B8 +:1015F200900329EBF0A3EAF0A3E9F0900329121576 +:10160200916F60031215A6900329E0FBA3E0FAA3F1 +:0F161200E0F91215A0F582758300120722FF225E +:1018E2001215A05405FFB403081219B1900335EF85 +:0118F200F005 +:0118F30022D2 +:02171400C115FD +:10180B00E4900270F090026FF090026EF0C215221D +:0B181B00E02471F582E43402F5832222 +:061A9000A215E433FF2261 +:041AA60012180B22E5 +:041AAA0012180B22E1 +:1017F000301503121AAA90026E12181BEFF0900215 +:0B1800006EE004F0E0B43C02D21522C0 +:0E19790090026F12181BE0FF90026FE004F066 +:01198700223D +:0D19BE00120709F5CF740129F9E43AFA2265 +:071A75008FC7AF058FD422DB +:10144C0030F805E4F5C7802E30F90575C701802604 +:10145C0030FA0575C702801E30FB0575C703801670 +:10146C0030FC0575C704800E30FD0575C705800678 +:09147C0030FE0375C706AFC7225C +:031ABA00AFE22276 +:091A3B00AFE3EFFEADE2EDFF2286 +:1018F400E4F5C7AF051DEF60051219BE80F543CEB0 +:021904001022AF +:0C19EF00AF051DEF60051219BE80F52247 +:10192800AF051DEF600AE5CF1207821219C380F0D8 +:01193800228C +:091A44008FC7E4F5CE43CE202249 +:101939007401A807088002C333D8FCF5D5E4F5D5AE +:01194900227B +:071A7C0075A41043A3022230 +:071A8300121A7C43BC802213 +:1016A40041746D656C202852290A63353133312D1C +:1016B4007573622D6364632D315F305F320A0A00F3 +:0916C4001B631B5B3F32356C0017 +:0B13CF00900322EBF0A3EAF0A3E9F08A +:1013DA00900322E0FBA3E475F0011207CCA9F0FA0E +:1013EA00120709900325F06013E0B40A057F0D1275 +:1013FA001A56900325E0FF121A5680D47F0D121A4E +:06140A00567F0A021A568B +:091A4D007BFF7A1679C40213CF65 +:1010C200900333EDF0900332EFF070097F0D121AA6 +:1010D200567F0A80377F1B121A567F5B121A569070 +:1010E2000333E0FFD394094003121120900333121B +:1010F20011127F3B121A56900332E0FFD39409403B +:10110200031211209003321211127F48121A562232 +:10111200E075F00A84E5F02430FF121A5622EF75CA +:0A112200F00A842430FF121A56224E +:05000600A298921622F1 +:10185900759840538FF7438F0175CBFF75CAF375A0 +:09186900C834D2CA439812D322FC +:081A56003099FDC2998F99221D +:071A5E003098FDAF99C2981A +:011A6500225E +:0A1A27008FC5E5C430E7FB7F012204 +:0A1A310043A22012FFC053A2DF22DF +:0C19FB008F1CAF058F1F121A31AF1D2288 +:10182600A2AF9217C2AF8F1CAF038F1FAF058F1DDC +:09183600121A31A21792AF7F01D2 +:01183F002286 +:0816210090030FEFF0A3EDF0C0 +:10162900A2AF9217C2AFE4FD7F081219FB90030F16 +:10163900E0F45FFFA3E04FF51D751C07121A31A2F4 +:051649001792AF7F01C4 +:01164E002279 +:081A6600C2AF43A22002F4000C +:03000000020D747A +:0C0D7400787FE4F6D8FD75814A020DBBC3 +:10061300E709F608DFFA8046E709F208DFFA803EC9 +:1006230088828C83E709F0A3DFFA8032E309F608B6 +:10063300DFFA8078E309F208DFFA807088828C831E +:10064300E309F0A3DFFA806489828A83E0A3F608D2 +:10065300DFFA805889828A83E0A3F208DFFA804CAC +:1006630080D280FA80C680D4806980F28033801083 +:1006730080A680EA809A80A880DA80E280CA8033EC +:1006830089828A83ECFAE493A3C8C582C8CCC58364 +:10069300CCF0A3C8C582C8CCC583CCDFE9DEE78034 +:1006A3000D89828A83E493A3F608DFF9ECFAA9F0B3 +:1006B300EDFB2289828A83ECFAE0A3C8C582C8CC09 +:1006C300C583CCF0A3C8C582C8CCC583CCDFEADE22 +:1006D300E880DB89828A83E493A3F208DFF980CC84 +:1006E30088F0EF60010E4E60C388F0ED2402B4047D +:1006F3000050B9F582EB2402B4040050AF23234524 +:06070300822390066373DF +:10070900BB010689828A83E0225002E722BBFE02EE +:09071900E32289828A83E4932221 +:10072200BB010CE58229F582E5833AF583E022508C +:1007320006E92582F8E622BBFE06E92582F8E222D6 +:0D074200E58229F582E5833AF583E49322F0 +:10074F00BB010FF8E58229F582E5833AF583E028AE +:10075F00F0225009C58229F8E58226F622BBFE0950 +:10076F00C58229F8E22582F222F8EA2583F583E98A +:03077F009328229A +:10078200BB010689828A83F0225002F722BBFE0156 +:02079200F32250 +:10079400F8BB010DE58229F582E5833AF583E8F09B +:1007A400225006E92582C8F622BBFE05E92582C847 +:0207B400F2222F +:1007B600C5F0F8A3E028F0C5F0F8E58215827002CE +:0607C6001583E038F0226B +:1007CC00A3F8E0C5F025F0F0E582158270021583E0 +:0607DC00E0C838F0E8223D +:0C07E200ECF0A3EDF0A3EEF0A3EFF0228A +:1007EE00A8828583F0D083D08212080512080512E4 +:1007FE000805120805E473E493A3C583C5F0C58309 +:10080E00C8C582C8F0A3C583C5F0C583C8C582C854 +:01081E0022B7 +:10081F00D083D082F8E4937012740193700DA3A368 +:10082F0093F8740193F5828883E47374029368607C +:06083F00EFA3A3A380DF7C +:060845008A838982E4733E +:100D8000021906E493A3F8E493A34003F68001F26A +:100D900008DFF48029E493A3F85407240CC8C33374 +:100DA000C4540F4420C8834004F456800146F6DF43 +:100DB000E4800B01020408102040809016F4E47EC9 +:100DC000019360BCA3FF543F30E509541FFEE49338 +:100DD000A360010ECF54C025E060A840B8E493A3FF +:100DE000FAE493A3F8E493A3C8C582C8CAC583CA2A +:100DF000F0A3C8C582C8CAC583CADFE9DEE780BEE2 +:0117160000D2 +:00000001FF Added: firmware/hex/tags/0.3.0/info.xml =================================================================== --- firmware/hex/tags/0.3.0/info.xml (rev 0) +++ firmware/hex/tags/0.3.0/info.xml 2008-01-17 09:52:57 UTC (rev 853) @@ -0,0 +1,41 @@ +<?xml version="1.0" ?> +<root> + <version tuxdroid_firmware_version="0.3.0"> + <tux_core> + 0.3.0 + </tux_core> + <tux_audio> + 0.3.0 + </tux_audio> + <fux_rf> + 0.3.0 + </fux_rf> + <tux_rf> + 0.3.0 + </tux_rf> + <fux_usb> + 0.3.0 + </fux_usb> + </version> + <description> + Hex files released in March 2007 and used on the production line from that date. This release is a major bug fix compared to the first production version and is the initial public release. + </description> + <changes> + <tux_core> + Initial release. + </tux_core> + <tux_audio> + Initial release. + </tux_audio> + <fux_rf> + Initial release. + </fux_rf> + <tux_rf> + Initial release. + </tux_rf> + <fux_usb> + Initial release. + </fux_usb> + </changes> +</root> +</root> Property changes on: firmware/hex/tags/0.3.0/info.xml ___________________________________________________________________ Name: svn:mime-type + text/xml Name: svn:keywords + Id Name: svn:eol-style + native Added: firmware/hex/tags/0.3.0/tuxaudio.eep =================================================================== --- firmware/hex/tags/0.3.0/tuxaudio.eep (rev 0) +++ firmware/hex/tags/0.3.0/tuxaudio.eep 2008-01-17 09:52:57 UTC (rev 853) @@ -0,0 +1,2 @@ +:0100000000FF +:00000001FF Added: firmware/hex/tags/0.3.0/tuxaudio.hex =================================================================== --- firmware/hex/tags/0.3.0/tuxaudio.hex (rev 0) +++ firmware/hex/tags/0.3.0/tuxaudio.hex 2008-01-17 09:52:57 UTC (rev 853) @@ -0,0 +1,336 @@ +:1000000019C0DBC34AC338C037C036C035C034C09E +:1000100033C032C031C030C02FC02EC02DC02CC064 +:100020004BC32AC029C028C027C026C025C024C071 +:100030001AC922C0E0E0F1E08FE5819393E0E0305F +:10004000F907D8F311241FBECFEFD4E0DEBFCDBF38 +:1000500011E0A0E0B1E0E2E5F4E102C005900D920C +:10006000A237B107D9F712E0A2E7B1E001C01D92B3 +:10007000AE3AB107E1F720C1C3CFCF93DF93CDB73D +:10008000DEB721970FB6F894DEBF0FBECDBF8FEA63 +:1000900084B987EC85B98FE088B988E087B919827F +:1000A0008981823320F489818F5F8983F9CF17B8E2 +:1000B00083ED8BB981EE8AB983E284BD89E085BD89 +:1000C00016BC8AEF87BD18BC109280001092810088 +:1000D0001092850010928400109287001092860082 +:1000E000109289001092880010928B0010928A0062 +:1000F0001092B6001092B0001092B1001092B200AF +:100100001092B3001092B40081E080936E001092C0 +:100110006F001092700080E880BF10927B001092F8 +:100120007E0086E080937C0086E880937A0080E5FC +:100130008CBD1DBC0DB40EB48FE08093690083E0CC +:100140008CBB21960FB6F894DEBF0FBECDBFDF91FA +:10015000CF910895CF93DF93CDB7DEB72C970FB62D +:10016000F894DEBF0FBECDBF20EF3DE1DE0111965A +:100170009BE0F9012F5F3F4F84918D93915097FF42 +:10018000F8CFF894BE016F5F7F4F84E0C5D7BE0102 +:100190006B5F7F4F84E0C0D7BE01675F7F4F84E015 +:1001A000BBD778948BEC898340E0642F842FA6D54D +:1001B0008A831B821C82F894BE016F5F7F4F84E0AC +:1001C000ABD77894109272012C960FB6F894DEBFDC +:1001D0000FBECDBFDF91CF9108958091620280392B +:1001E00041F48091640280938901809163023CD63E +:1001F00012C0823951F480916302882319F05F980C +:10020000559809C05F9A559A06C0883B21F48091A1 +:1002100064028093730110927C010895FC01808137 +:10022000823529F48181809396017FD50895803DA0 +:1002300069F4838180931A028281809319028181FB +:100240008093180281E0809377010895833021F430 +:1002500081E0809372010895CF0121D70895CF9353 +:10026000DF93CDB7DEB724970FB6F894DEBF0FBE8D +:10027000CDBF80EF8983FE01319696B19F7089B121 +:10028000807D982B91831E9B02C090629183818117 +:100290009BE989278183809191018B8380918F01D4 +:1002A0008C83CF01FCD624960FB6F894DEBF0FBE28 +:1002B000CDBFDF91CF910895CDEFD4E0DEBFCDBFAC +:1002C000DCDE8CE091E0AED282E091E0ABD293D85C +:1002D00055D6789483E080938A018AE891E09EDF86 +:1002E00020E01A82198289819A818F5F9F4188F468 +:1002F0001E9B21E089819A8101969A838983898155 +:100300009A818F5F9F41A0F3222319F083E08CBB79 +:100310008DBB789480917601882309F440D3809135 +:100320007901882329F0109279018AE891E076DF3B +:1003300080917801882309F42AC0F89480E08CBD6C +:1003400080E58CBDFF91EF91DF91CF91BF91AF918F +:100350009F917F916F915F914F913F912F911F914D +:100360000F91FF90EF90DF90CF90BF90AF909F9054 +:100370008F907F906F905F904F903F902F908F91D4 +:100380000F900FBE0F901F90289A78941895809127 +:100390007601882309F446C0F8948CE091E04DD2B0 +:1003A000882309F03EC0289A13D4289899272091D1 +:1003B000890102C0959587952A95E2F7682F8CE010 +:1003C00091E05CD2809184018F5F80938401809161 +:1003D0008401882399F4809183018F5F8093830146 +:1003E00080918301882351F4809182018F5F8093F3 +:1003F000820180918201883009F4BBD590918201FD +:1004000080918501981769F490918301809186010C +:10041000981739F49091840180918701981709F415 +:10042000A8D57894809193018823C1F0109293010C +:1004300016DF20910101222389F08AB192E08927F9 +:100440008AB980E08F5F8F3FE9F7822F81508093D8 +:100450000101882311F4519A01C051989CD58091D3 +:100460007C018111BADE80917301813029F4809181 +:10047000180190911901D6D180917301823061F4F5 +:10048000AED38C3111F48FEF01C0A9D380938F01CB +:10049000E6DE83E08093730180917301833009F07D +:1004A000F5C0F89414B88FEF85B983B19927877C8C +:1004B0009070873C9105C9F787B1847F87B988B16F +:1004C0008B6088B986B199278B7090700B97D1F7A4 +:1004D0001AB88FEF8BB989B199278D7D90708D3DBA +:1004E0009105C9F760E041E050E0633009F466E04F +:1004F000CA01062E02C0880F991F0A94E2F7282F1E +:10050000209525B984B99C0120953095277C3070C1 +:1005100083B19927877C907082179307C9F786B1BA +:1005200099278B7090700B97D1F789B199278D7DA2 +:1005300090708D3D9105C9F76F5F6830B0F28FEF15 +:1005400085B960E0E1E0F0E0DF01462F55279F012B +:10055000042E02C0220F331F0A94E2F7922F9095C7 +:1005600088B1892388B987B1822B87B983B199274C +:10057000877C9070873C9105C9F79D01042E02C0CD +:10058000220F331F0A94E2F7209530952B703070BC +:1005900086B199278B70907082179307C9F789B13C +:1005A00099278D7D90708D3D9105C9F79F0102C0FF +:1005B000220F331F4A95E2F788B1822B88B9922F18 +:1005C000909587B1892387B96F5F643008F4BDCFF8 +:1005D00060E0E1E0F0E0DF01462F5527CD01042E79 +:1005E00002C0880F991F0A94E2F7282F20952BB993 +:1005F0008AB983B19927877C9070873C9105C9F7A8 +:1006000086B199278B7090700B97D1F79F0102C02C +:10061000220F331F4A95E2F7209530952D7D3070DB +:1006200089B199278D7D907082179307C9F76F5F05 +:10063000683090F288B18C7F88B987B1836087B9C0 +:1006400080E197E2A0E0B0E0FC013197F1F7FC0116 +:100650003197F1F787B18C7F87B988B1836088B90A +:1006600080ED97E00197F1F786B19927837090703C +:10067000892B11F08EEF01C08FEF80939101FDDC8B +:100680007894EDDD589885E0809373018091720134 +:10069000882309F43ECE5EDD3CCE1F920F920FB64A +:1006A0000F9211248F9381E080937B018F910F90A3 +:1006B0000FBE0F901F9018951F920F920FB60F92BA +:1006C00011242F933F934F935F936F937F938F9357 +:1006D0009F93AF93BF93EF93FF93CF93DF93CDB7E8 +:1006E000DEB72197DEBFCDBF80917A008064809312 +:1006F0007A0080911701815080931701882309F0B7 +:1007000045C084E08093170180917301853021F406 +:100710008091790088BD30C06091780066958091A5 +:10072000790080FF606882E091E0A8D0BE016F5F31 +:100730007F4F8CE091E0B2D0982F882359F48981C3 +:1007400088BD90937401809181018823A9F05F9AFC +:10075000559A12C0809174018F5F809374018091CB +:1007600074018E3148F080918101882311F05F98E7 +:1007700055988EE18093740180919401815080930B +:100780009401882319F481E0809393012196F894D1 +:10079000DEBFCDBFDF91CF91FF91EF91BF91AF91C0 +:1007A0009F918F917F916F915F914F913F912F9189 +:1007B0000F900FBE0F901F9018951F920F920FB6BB +:1007C0000F9211248F9380917801882311F12F9239 +:1007D0003F924F925F926F927F928F929F92AF92D1 +:1007E000BF92CF92DF92EF92FF920F931F932F93BE +:1007F0003F934F935F936F937F939F93AF93BF9379 +:10080000CF93DF93EF93FF9381E080937A01289851 +:1008100080CD81E080937A018F910F900FBE0F9071 +:100820001F901895FC01138214821582168217827C +:1008300086EE80878FEF81870895FC0120E030E00D +:1008400083818F5F928189239481981711F421E02D +:1008500030E0C9010895FC0120E030E094818381FB +:10086000981711F421E030E0C9010895FC0183815B +:100870009481891B9281892399270895FC01938192 +:100880009F5F828198238481891739F09383019037 +:10089000F081E02DE90FF11D60830895FC01DB017B +:1008A00094818381981779F0892F8F5F92818923B2 +:1008B00084830190F081E02DE80FF11D80818C93FD +:1008C00080E090E0089581E090E00895FC0194813B +:1008D0008381981721F09F5F82819823948384817C +:1008E0000190F081E02DE80FF11D80819927089596 +:1008F000CF93DF93EC01BADF982F8E81882309F024 +:1009000047C08F81883091F487B58E3F18F487B542 +:100910008E5F01C08FEF898787B5883E18F087B555 +:10092000825001C086EE888789E08F83903448F03A +:1009300097B58885891760F587B5815087BD81E0B7 +:100940000AC0913150F497B58985981708F587B595 +:100950008F5F87BD82E08D831BC08D81882399F0D6 +:10096000813039F497B58985981750F487B58F5F32 +:1009700006C097B58885891718F487B5815087BD5B +:100980001D821F8205C08F81893011F08F5F8F8398 +:100990008E818F5F81708E83DF91CF910895CF9389 +:1009A00080917A01882309F411C18091160188236E +:1009B00009F40CC110927A011092160110925B0298 +:1009C000109292011092880180E58CBD1DBC0DB47F +:1009D0000EB42A9880917B018823E1F310927B0169 +:1009E000C0919201CC2361F582E091E03FDF81313B +:1009F00020F082E08093900102C0C093900180912A +:100A00006102833011F0803841F480919001886058 +:100A100080939001F89478940CC0813051F08CE56B +:100A200092E0C2D3882329F480919001886080935A +:100A30009001809190018EBD81E08093920133C03E +:100A400080919201813091F480915B02813119F49F +:100A500082E0809392018091900181FF23C0F894FD +:100A600082E091E033DF8EBD78941DC080919201C9 +:100A70008230A1F480915B02853119F483E0809388 +:100A800092018091900183FF0DC080915B02E82F5D +:100A9000FF27E65BFD4F80818EBD05C080919201EE +:100AA000833009F41EBC0DB407FEFDCF80915B02BC +:100AB0008F5F80935B0280918801882399F58EB5C2 +:100AC000809395018091950183FF03C081E080931D +:100AD00079018091950187FF02C082E201C081E126 +:100AE0008093970181E08093880190917801992308 +:100AF00009F070CF8091950181FD11C080910001B6 +:100B0000882349F4F8948CE091E0F2DE789481E057 +:100B1000809300015FCF8CE091E084DE5BCF909307 +:100B2000000158CF809188018130D1F480919501E6 +:100B300081FF06C0F8946EB58CE091E09FDE78945A +:100B400080915B02282F3327809197019927019686 +:100B50002817390709F03ECF82E0809388013ACF09 +:100B600080918801823009F035CF8091950183FF13 +:100B700013C08091950187FF07C080915B02E82F29 +:100B8000FF27EA59FE4F06C080915B02E82FFF273E +:100B9000E958FE4F8EB5808380915B02282F332762 +:100BA00080919701992706962817390709F012CFE7 +:100BB0008091900183FF02C081E002C080918E018C +:100BC000809361022A9A81E080931601CF91089563 +:100BD0008EBD0DB407FEFDCF8EB5992708952998D7 +:100BE00085E0F6DF80E0F4DF299A992708952998B7 +:100BF00086E0EEDF299A0895299884E0E9DF299AB2 +:100C000008951F93182F299881E0E2DF812FE0DFFC +:100C1000299A1F910895FF920F931F93182F062F63 +:100C2000F42E299889E3D4DF812FD2DF802FD0DF03 +:100C30008F2DCEDF299A1F910F91FF90089580E0AC +:100C4000E0DFD5DF40E0642F842FE5DFD0DF40E038 +:100C5000642F81E0E0DFCBDF40E0642F82E0DBDF68 +:100C6000C6DF40E0642F83E0D6DFC1DF40E0642FC1 +:100C700084E0D1DFBCDF40E0642F85E0CCDFB7DF6C +:100C800040E0642F86E0C7DFB2DF40E0642F87E0FA +:100C9000C2DFADDF40E060E887E0BDDFA8DF40E015 +:100CA00060EA87E0B8DFA3DF40E060EC87E0B3DF15 +:100CB0009EDF299887EC8CDF299A91DF8031E9F754 +:100CC0000895EF92FF920F931F93182F062FF42E83 +:100CD000E22E8DDF299882E07BDF812F79DF802F64 +:100CE00077DF8F2D75DF8E2D73DF299A78DF8031C6 +:100CF000E9F71F910F91FF90EF900895FF920F93E6 +:100D00001F93182F062FF42E299883E061DF812F7F +:100D10005FDF802F5DDF8F2D5BDF80E059DF299A59 +:100D200099271F910F91FF900895EF92FF920F93D3 +:100D30001F93CF93DF9314BC15BC17BC10926E00A9 +:100D40008091BC008E748093BC008CE091E06ADDE1 +:100D500011E01093780173DF2091960140E0642F39 +:100D6000842FAFDF012FFF24EF2C8091960180911B +:100D700077018823E1F310927701C8E1D2E012E015 +:100D80002881402F6F2D80E09CDF0F5F09F4F394E2 +:100D90001150219617FFF4CFE394809196018E15A0 +:100DA00030F700E080911A0280938201809119024D +:100DB000809383018091180280938401C02F84E086 +:100DC000F82E15DF29988FEA03DF802F01DF8F2DA2 +:100DD000FFDE802FFDDE8CE091E03DDD8823D9F73A +:100DE0008CE091E073DDF4DE01E0299AF8DE8235D3 +:100DF000E9F78CE091E02FDD882381F429988FEAD0 +:100E0000E7DE8CE091E062DDE3DE299A0F5F19F402 +:100E1000F39409F4CF5FE3DE8235E9F78091840132 +:100E2000C81739F780918301F81619F7809182016C +:100E30000817F9F600E0E0DE83E284BD89E085BDB5 +:100E400089EF87BD81E080936E008091BC008F7434 +:100E500081608093BC0000937801DF91CF911F9156 +:100E60000F91FF90EF900895FF920F931F93CF93F0 +:100E7000182F40E0642F842F41DF8F3F09F474C0A6 +:100E8000112309F471C0811708F46EC081E0FF24BA +:100E9000082F811751F0C2E00F5F09F4F394C1509D +:100EA000C7FFFACF8F5F8117B1F7299883E090DEF3 +:100EB00080E08EDE8F2D8CDE802F8ADE02E811E04E +:100EC000C5E080E085DEF80181938F01C150C7FF46 +:100ED000F8CF299A80918201883008F045C080912E +:100EE0008501883008F040C080918201882321F478 +:100EF000809183018430C0F180918601882321F4A0 +:100F000080918701843080F19091850180918201E8 +:100F1000981750F19091850180918201981791F472 +:100F200090918601809183019817F0F0909186014D +:100F300080918301981731F4909187018091840109 +:100F4000891790F4299883E043DE8091820140DE86 +:100F5000809183013DDE809184013ADE28988AEFFA +:100F600087BD81E080937601CF911F910F91FF9013 +:100F7000089510927601289A299A089540D18CE814 +:100F800098E045D184E580939A028091980282602E +:100F90008093980208951F93CF93DF9380919802D6 +:100FA00080FD58C08AEF809330018091980282FFC3 +:100FB0000EC037D1F894809198028B7F809398026D +:100FC00080919802816080939802789464C08091A7 +:100FD000980281FD09C025D1F89480919802816022 +:100FE00080939802789457C08091240190912501B4 +:100FF00032DC882309F04FC0F89480919802806415 +:1010000080939802809198028D7F809398027894C3 +:1010100084E08093A302CBE9D2E0182FBE01809137 +:101020002401909125013ADC882311F01092A3024B +:101030001150219617FFF2CFF4D0F89480919802C6 +:101040008F7B8093980280919802816080939802B0 +:10105000789421C0809130018150809330018F3F7E +:10106000D1F420E030E01092BC00C9012F5F3F4F67 +:10107000805F9F4FD0F3809198028E7F809398027B +:10108000809198028D7F80939802809198028B7F47 +:1010900080939802B4D0DF91CF911F9108951F9350 +:1010A000CF93DF93EC0188818823A9F080912401FC +:1010B00090912501DBDB8D3070F414E08991682F6D +:1010C0008091240190912501D9DB115017FFF6CFB3 +:1010D00080E090E002C081E090E0DF91CF911F912D +:1010E00008958091BB00803C50F480917C0188235E +:1010F00091F480919802806880939802089580917D +:10110000180190911901B2DB8B3128F4809198027B +:1011100080688093980208951F93CF93DF93982F50 +:10112000EB018881803C70F410E0191740F4A2E6CE +:10113000B2E0FB0181918D931F5F1917D8F3909353 +:101140007C012EC08F3FD9F420919602822F21502E +:10115000209396029981891728F490939602109211 +:1011600097020AC0921740F4809197028F5F809394 +:101170009702898180939602809197028A83809159 +:1011800018019091190172DB8B3150F413E06991D1 +:10119000809118019091190171DB115017FFF7CF61 +:1011A000DF91CF911F9108951F93CF93DF93EC01AF +:1011B00080911801909119014EDB882329F001C01C +:1011C000789481E090E011C0F89410E0BE01809125 +:1011D00018019091190162DB882391F71F5F219616 +:1011E0001430A0F3789480E090E0DF91CF911F91CC +:1011F00008951092B90080E28093B8000895F9DF55 +:1012000085E18093BA0085EC8093BC0008959093AB +:101210007E0180937D0108959093800180937F01EA +:101220000895CF93DF93CDB7DEB721970FB6F8942B +:10123000DEBF0FBECDBF19828981843120F4898140 +:101240008F5F8983F9CF8091980280FD03C085EE7E +:101250008093BC0021960FB6F894DEBF0FBECDBFC1 +:10126000DF91CF9108951F920F920FB60F92112424 +:101270002F933F934F935F936F937F938F939F939E +:10128000AF93BF93EF93FF93809198028160809317 +:1012900098028091B900869586958695E82FFF275C +:1012A000EE0FFF1FEF5CFE4F0190F081E02D0994DF +:1012B0001092990280919A020EC0909199028091A9 +:1012C000A302981760F4E92FFF27E556FD4F9F5FB3 +:1012D0009093990280818093BB0085EC6FC085ED6F +:1012E0008093BC00809198028E7F809398028091B9 +:1012F000980282606DC08091980284608093980209 +:1013000061C054C08091A502E82FFF27EA55FD4F28 +:101310009091BB0090838F5F8093A5028091A5027E +:10132000282F33278091A40299270197281739077E +:101330006CF024C01092A50280919802877F809360 +:101340009802809198028F77809398028091BC00D8 +:10135000806434C09091A502E92FFF27EA55FD4F24 +:101360008091BB0080839F5F9093A502809198023B +:1013700087FFB7DE80919802882344F38091BC00F8 +:101380008F7B1CC0809198028860809398020EC069 +:101390008091980283FD0AC0E0917D01F0917E0169 +:1013A00066EA72E08091A502099500C080919802DA +:1013B0008E7F809398028091BC00856C8093BC00E6 +:1013C00009C008C085ED8093BC00809198028E7F93 +:1013D00080939802FF91EF91BF91AF919F918F9170 +:1013E0007F916F915F914F913F912F910F900FBE21 +:1013F0000F901F901895E1E8F1E0A0E0B0E081E0E7 +:10140000182E09D00895E1E8F1E0A0E0B0E081E015 +:10141000182E06D0089509D001921A94E1F7089584 +:1014200001900BD01A94E1F70895F999FECFB2BD5F +:10143000A1BDF89A119600B40895F999FECFB2BDF6 +:10144000A1BD00BC11960FB6F894FA9AF99A0FBE96 +:021450000895FD +:10145200013F1B023F0000000000000098017F00D6 +:1014620000000000000001041A0176021F000000C3 +:1014720000000000260166020F00000000000000CC +:10148200FAE209580958095D097B095D097B09815E +:10149200098E097B0982097B099A099A099A099A94 +:1014A20009AA09C209AA09C209C809D609D609D6D0 +:1014B20009D609D609E209E209E209E209E209E1EB +:0214C20009001F +:0C1DF000C8010300C9D10100CA000000B6 +:00000001FF Added: firmware/hex/tags/0.3.0/tuxcore.eep =================================================================== --- firmware/hex/tags/0.3.0/tuxcore.eep (rev 0) +++ firmware/hex/tags/0.3.0/tuxcore.eep 2008-01-17 09:52:57 UTC (rev 853) @@ -0,0 +1,14 @@ +:100000000101000A900800000A410200000080027D +:100010000500FF0A900700000A410200000A800262 +:100020000500FF05900600000541020000FF0000EA +:10003000000000001B000000FF00000000000000A6 +:10004000000000001A000000FF0000000000000097 +:1000500000000003900200000041020000FF0000C9 +:100060000000000041020000009A043200009003EA +:100070000000FF009A021E00FF00000000000000C8 +:10008000000000009A021E00FF00000000000000B7 +:10009000000000009A021E00FF00000000000000A7 +:1000A0000000001831331A001441020000129004BD +:1000B00000000A1B350000003E020000FF000000A7 +:0200C00000003E +:00000001FF Added: firmware/hex/tags/0.3.0/tuxcore.hex =================================================================== --- firmware/hex/tags/0.3.0/tuxcore.hex (rev 0) +++ firmware/hex/tags/0.3.0/tuxcore.hex 2008-01-17 09:52:57 UTC (rev 853) @@ -0,0 +1,458 @@ +:1000000019C0F0C50FC3D6C256C2ACC22DC02DC098 +:100010002BC02AC029C028C027C026C040C624C083 +:1000200023C022C021C020C01FC005C21DC01CC0EB +:10003000BAC41AC011241FBECFEFD4E0DEBFCDBFBB +:1000400011E0A0E0B1E0E0E2FCE102C005900D9219 +:10005000A635B107D9F711E0A6E5B1E001C01D92C0 +:10006000AA3FB107E1F7C7C1CBCF1F920F920FB6DE +:100070000F9211248F939F93809169018F5F8093DA +:10008000690190915E0180910101981709F4289807 +:1000900080910001981719F485B1897F85B9892F5E +:1000A0008F5F80935E01863039F410925E0185B1D6 +:1000B00090917601892B85B980917401882361F034 +:1000C000815080937401882339F4809176018E7F6A +:1000D000809376015C98289880917501882361F05F +:1000E000815080937501882339F4809176018E7F49 +:1000F000809376015C98289880917301882341F061 +:10010000815080937301882319F48BB18C7F8BB954 +:1001100080916F01882341F0815080936F01882383 +:1001200019F48BB18C7F8BB9809169018931F9F415 +:1001300010926901809168018F5F809368018A3015 +:1001400051F41092680180916C018F5F80936C0173 +:1001500081E080937D0191E0909379018091EF019E +:10016000882329F081508093EF019093EE018091D4 +:10017000CA01882329F08091CA0181508093CA0165 +:1001800080917C01882319F0815080937C018091BB +:1001900084018823A1F0815080938401882379F41D +:1001A00088B19CE0892788B9809183018150809330 +:1001B0008301882321F080918201809384019F91A3 +:1001C0008F910F900FBE0F901F90189582E0809333 +:1001D000B00096E09093B1001092B2009DE790932A +:1001E000B300809370000895269A87B18C6087B918 +:1001F00088E180936B008091680081608093680043 +:1002000092E090936C0080916800892B8093680045 +:1002100080E880936D00809168008460809368001E +:1002200088E0809369009DBB87E880937A0086E030 +:1002300080937C0080917A00886480937A002F9A62 +:100240007894089580910E0190910F0176D48B30AF +:1002500008F0D0C081E08093560161EC80910E01DE +:1002600090910F0172D460915F0180910E01909185 +:100270000F016BD46091600180910E0190910F018C +:1002800064D46091610180910E0190910F015DD461 +:1002900060EC80910E0190910F0157D463B1809171 +:1002A0000E0190910F0151D466B180910E01909191 +:1002B0000F014BD469B180910E0190910F0145D48B +:1002C00063EC80910E0190910F013FD46091710118 +:1002D00080910E0190910F0138D460916E01809150 +:1002E0000E0190910F0131D46091700180910E0147 +:1002F00090910F012AD464EC80910E0190910F012E +:1003000024D46091720180910E0190910F011DD44F +:100310006091660180910E0190910F0116D460E00A +:1003200080910E0190910F0110D480916701882374 +:10033000E9F01092670162EC80910E0190910F013B +:1003400004D46091630180910E0190910F01FDD35F +:100350006091620180910E0190910F01F6D360913E +:10036000640180910E0190910F01EFD380916B0198 +:100370008823F1F0815080936B0165EC80910E0130 +:1003800090910F01E2D36091650180910E019091EF +:100390000F01DBD360916B0180910E0190910F01F1 +:1003A000D4D36091650180910E0190910F01CDD35E +:1003B000809178018823E1F08150809378016FEF7C +:1003C00080910E0190910F01C0D3609178018091CE +:1003D0000E0190910F01B9D360E080910E019091D0 +:1003E0000F01B3D360E080910E0190910F01ADD366 +:1003F000109256010895CFEFD4E0DEBFCDBF329BFF +:1004000003C083E0809357012AD13DD183D5DEDE3E +:10041000EBDE8CD7AAD1D0D580917901882321F049 +:10042000109279010FDF41D058D28091590181118A +:1004300041D787D8F1CF1F920F920FB60F92112498 +:100440008F9380917800882349F4809179008823E4 +:1004500029F4409903C0409A389A0CC080917800E2 +:100460008F3F71F480917900833051F4409B08C034 +:100470004098389880917A00806480937A000FC009 +:10048000809178008093620180917900809363016C +:1004900088B181708093640181E0809367018F91BE +:1004A0000F900FBE0F901F90189580917A00806476 +:1004B00080937A0008951F920F920FB60F92112425 +:1004C0002F933F934F938F939F93319941C0809186 +:1004D000660191E08927809366014091740144236D +:1004E00011F1809170018917D9F480916D018823F1 +:1004F00089F0242F3327992740972817390754F478 +:10050000809166018E7F8093660110927401109233 +:100510006D0109C040936D018FEF8093740118C085 +:100520008FEF8093740180917001882389F081504E +:1005300080937001882361F4809176018E7F80938F +:1005400076015C98289828985C9A84E080937501DD +:100550009F918F914F913F912F910F900FBE0F90D0 +:100560001F9018951F920F920FB60F9211248F9320 +:100570009F93809171018823B1F0982F91509093AF +:100580007101992381F48BB18C7F8BB95898599A5A +:1005900084E0809373014F9904C081E080930A0145 +:1005A00002C090930A019F918F910F900FBE0F9000 +:1005B0001F9018951F920F920FB60F9211248F93D0 +:1005C0009F9383B199278095909588719070892B1E +:1005D00011F11B9906C080917701813011F41092BE +:1005E00077011C9907C080917701882319F481E075 +:1005F0008093770180916E01882369F08150809308 +:100600006E01882341F48BB18C7F8BB95998589A2D +:1006100088E080936F019F918F910F900FBE0F9094 +:100620001F9018951F920F920FB60F9211248F935F +:1006300080917201882369F0815080937201882330 +:1006400041F480917601897F8093760185B1897F1D +:1006500085B98F910F900FBE0F901F901895399804 +:10066000419A8AB18F738AB98BB1806C8BB984B18E +:10067000877E84B985B1886185B953985B9A08955E +:1006800080E090E00895509A519A209A549A84B14B +:10069000866084B90895809370016093010110927F +:1006A00075015C9880917601816080937601089550 +:1006B0008FEF8093740165E082E0EDDF0895809311 +:1006C0007101109273015998589A08954F9902C078 +:1006D00081E0F5DF08954F9B02C081E0F0DF0895CF +:1006E00080936E0110926F015898599A08951C9941 +:1006F00002C081E0F5DF08951B9902C081E0F0DFC0 +:10070000089580917601897F8093760185B1897FF4 +:1007100085B90895809372016093000180917601FC +:100720008B7F82608093760108958093720160933D +:100730000001809176018D7F846080937601089519 +:10074000282F80918401882379F4222369F0215095 +:1007500088B19CE0892788B9222331F06093840115 +:10076000609382012093830108958091CB01826080 +:100770008093CB01E4D082EC93E0E9D084E18093D4 +:10078000CD010895282FDB01A80FB11D30E03217ED +:1007900068F480915901E82FFF27EA57FE4F9E9198 +:1007A00090838F5F809359013F5FF1CF0895CF937E +:1007B000DF93C0E0D0E0D5D0F8948091CB018D7F5D +:1007C0008093CB018091CB0181608093CB017894A1 +:1007D0008091CB0180FD1EC08091CB0182FF0BC0B8 +:1007E000F8948091CB018B7F8093CB01789486E045 +:1007F0008093CA012DC08091CB0181FF03C080E0AE +:1008000090E028C0AED0F8948091CB0181608093B5 +:10081000CB017894CE01219680509041C8F2C0E07F +:10082000D0E01092BC00CE012196805F9F4FD8F39C +:100830008091CB018E7F8093CB018091CB018D7F06 +:100840008093CB018091CB018B7F8093CB0177D0BC +:1008500081E090E0DF91CF9108951F93CF93DF93D4 +:1008600080915601882399F590915801992389F038 +:10087000182F891748F4AEECB1E0E6EAF1E0819177 +:100880008D931F5F1917D8F39093D60110928501AD +:100890001BC080910E0190910F0144D18823B9F4BF +:1008A000CEECD1E013E01882BE0180910E01909150 +:1008B0000F015BD11150219617FFF5CF84E0809393 +:1008C000D60181E08093850181E090E002C080E064 +:1008D00090E0DF91CF911F9108950F931F93CF93D5 +:1008E0008091CB0180FD21C08091CA018823E9F469 +:1008F000B4DF8823D1F05BDF90918501882389F0F4 +:10090000913099F40EEC11E0C3E0F80161918F0190 +:1009100080910E0190910F0118D1C150C7FFF5CF02 +:1009200004C0992311F490935801CF911F910F9116 +:1009300008951092B90080E28093B8000895F9DF1D +:1009400085E58093BA0085EC8093BC000895909370 +:100950005B0180935A01089590935D0180935C013F +:100960000895CF93DF93CDB7DEB721970FB6F894F4 +:10097000DEBF0FBECDBF19828981883220F4898104 +:100980008F5F8983F9CF8091CB0180FD03C085EE15 +:100990008093BC0021960FB6F894DEBF0FBECDBF8A +:1009A000DF91CF9108951F920F920FB60F921124ED +:1009B0002F933F934F935F936F937F938F939F9367 +:1009C000AF93BF93EF93FF938091CB0181608093AE +:1009D000CB018091B900869586958695E82FFF27F3 +:1009E000EE0FFF1FEB5EFE4F0190F081E02D0994AA +:1009F0001092CC018091CD010EC09091CC018091DC +:100A0000D601981760F4E92FFF27E253FE4F9F5F4E +:100A10009093CC0180818093BB0085EC54C085ED20 +:100A20008093BC008091CB018E7F8093CB0180911D +:100A3000CB01826052C08091CB0184608093CB0156 +:100A400046C039C04CC01092D7018091CB01877F3E +:100A50008093CB01809159018D3178F012C0809143 +:100A6000D701E82FFF27E852FE4F9091BB009083FB +:100A70008F5F8093D701883020F48091BC00806420 +:100A800022C08091BC008F7B1EC08091CB0188600A +:100A90008093CB0110C08091CB0183FD0CC080916D +:100AA000D701843041F4E0915A01F0915B0168ED87 +:100AB00071E0099500C08091CB018E7F8093CB01BE +:100AC0008091BC00856C8093BC0009C008C085ED96 +:100AD0008093BC008091CB018E7F8093CB01FF91EE +:100AE000EF91BF91AF919F918F917F916F915F91A6 +:100AF0004F913F912F910F900FBE0F901F9018951F +:100B0000FC01138214820895FC0120E030E083810F +:100B10008F5F928189239481981711F421E030E04E +:100B2000C9010895FC0120E030E094818381981789 +:100B300011F421E030E0C9010895FC018381948122 +:100B4000891B9281892399270895FC0193819F5FD6 +:100B5000828198238481891739F093830190F081F1 +:100B6000E02DE90FF11D60830895FC01DB01948104 +:100B70008381981779F0892F8F5F928189238483ED +:100B80000190F081E02DE80FF11D80818C9380E0D1 +:100B900090E0089581E090E00895FC01DB019481EC +:100BA0008381981751F00190F081E02DE90FF11D3C +:100BB00081818C9380E090E0089581E090E0089539 +:100BC000FC0194818381981721F09F5F8281982393 +:100BD000948384810190F081E02DE80FF11D8081E4 +:100BE000992708951F920F920FB60F9211242F93F9 +:100BF0003F938F939F938091E60199279C012870E2 +:100C0000307083FF04C080E88093E5013FC080918D +:100C1000E60184FF1EC085B58E7F85BD8091E5010C +:100C20008095982F9695880F891B8093E401809179 +:100C3000E6018F7E8093E6018091E60180628093D9 +:100C4000E6018CE08093E3013093E8012093E70113 +:100C50001DC08091E60185FF0EC08091E401809364 +:100C6000E50185B5816085BD8091E6018F7B80932C +:100C7000E601E8980BC08FEF8093E50185B58160B0 +:100C800085BD8091E60180618093E6019F918F91FF +:100C90003F912F910F900FBE0F901F9018951F92AC +:100CA0000F920FB60F9211242F933F938F939F9320 +:100CB0005D988091E501882321F08091E5018150C4 +:100CC00013C08091E60180FFBEC08091E60186FFDF +:100CD0000EC08091E60188608093E6018091E60174 +:100CE0008F798093E60180E88093E5010AC18091C5 +:100CF000E60185FF9BC08091E30181508093E30171 +:100D00004A9B13C08091E30121E030E002C0220F32 +:100D1000331F8A95E2F78091E7019091E801822BD9 +:100D2000932B9093E8018093E7018091E30188235E +:100D300009F06CC081E080936B018091E6018860CE +:100D40008093E6018091E6018F7D8093E60180E843 +:100D50008093E5018091E7019091E801807C977094 +:100D60008050914059F48091E7019091E801982FCB +:100D700080910D018917B9F080EF13C08091E701D0 +:100D80009091E801807C97708050924099F4809116 +:100D9000E7019091E801982F80910D01891719F0D2 +:100DA00080EE809309018091E7019091E8018093A2 +:100DB0000D0134C08091E7019091E801807C97702B +:100DC0008050934041F480910901813F39F580EDD5 +:100DD0008093090123C08091E7019091E8018093FD +:100DE0006501809165018068809365018091E701CC +:100DF0009091E80193FF04C080916501806403C075 +:100E0000809165018F7B8093650108C08091E60128 +:100E100080648093E60180E88093E5018091690019 +:100E2000816080936900E09AE89A6BC08091E60146 +:100E300083FF67C08091E601877F8093E60185B5D7 +:100E40008E7F85BD5EC08091E60182FF0AC08091E1 +:100E5000E60192E... [truncated message content] |
From: Paul_R <c2m...@c2...> - 2008-01-16 11:43:39
|
Author: Paul_R Date: 2008-01-16 12:43:32 +0100 (Wed, 16 Jan 2008) New Revision: 852 Modified: software/gadgets/light_monitor/trunk/Light_monitor.tgf software/gadgets/light_monitor/trunk/Light_monitor/Scripts/Python/main.pyp software/gadgets/light_monitor/trunk/Light_monitor/Strings/fr_ALL.xml software/gadgets/light_monitor/trunk/Light_monitor/about.xml software/gadgets/light_monitor/trunk/Light_monitor/settings.xml software/gadgets/light_monitor/trunk/Light_monitor/strings.xml Log: * Fixed a bug which surcharge the CPU when the main function was executed. Modified: software/gadgets/light_monitor/trunk/Light_monitor/Scripts/Python/main.pyp =================================================================== --- software/gadgets/light_monitor/trunk/Light_monitor/Scripts/Python/main.pyp 2008-01-16 11:40:29 UTC (rev 851) +++ software/gadgets/light_monitor/trunk/Light_monitor/Scripts/Python/main.pyp 2008-01-16 11:43:32 UTC (rev 852) @@ -21,7 +21,8 @@ tux.cmd.spinl_on_free(8, 1) count = 0 while measure.search_light_flag: - pass + tux.sys.wait(0.2) + path = _me.get_param('MainScript') path = path.replace('%20', ' ') if os.path.isfile(path) and os.path.exists(path): Modified: software/gadgets/light_monitor/trunk/Light_monitor/Strings/fr_ALL.xml =================================================================== --- software/gadgets/light_monitor/trunk/Light_monitor/Strings/fr_ALL.xml 2008-01-16 11:40:29 UTC (rev 851) +++ software/gadgets/light_monitor/trunk/Light_monitor/Strings/fr_ALL.xml 2008-01-16 11:43:32 UTC (rev 852) @@ -1,9 +1,60 @@ <?xml version='1.0' encoding='UTF-8'?> <strings> + <Both type='str'>La lumière a passé le seuil</Both> + <Change type='str'>La lumière a changé</Change> + <ChangeD type='str'>La lumière a chuté puis augmenté</ChangeD> + <ChangeU type='str'>La lumière a augmenté puis chuté</ChangeU> + <Decrease type='str'>La lumière est passée en dessous du seuil</Decrease> + <Drop type='str'>La lumière a chuté</Drop> + <Increase type='str'>La lumière est passée en dessus du seuil</Increase> + <MainBehavior type='str'>Comportement principal</MainBehavior> + <Raise type='str'>La lumière a augmenté</Raise> + <Threshold type='str'>La lumière a atteint le seuil</Threshold> + <conf_btnAdd type='str'>Ajouter</conf_btnAdd> + <conf_btnBehavior type='str'>Supprimer</conf_btnBehavior> + <conf_btnModify type='str'>Modifier</conf_btnModify> + <conf_btnRemove type='str'>Enlever</conf_btnRemove> + <conf_lblBehavior type='str'>Comportement</conf_lblBehavior> + <conf_lblBoth type='str'>Deux directions</conf_lblBoth> + <conf_lblChange type='str'>Changement</conf_lblChange> + <conf_lblChangeD type='str'>Chute et augmente</conf_lblChangeD> + <conf_lblChangeU type='str'>Augmente et chute</conf_lblChangeU> + <conf_lblControl type='str'>Contrôle</conf_lblControl> + <conf_lblDecrease type='str'>Diminue</conf_lblDecrease> + <conf_lblDefaultBehavior type='str'>Comportement pas défaut</conf_lblDefaultBehavior> + <conf_lblDrop type='str'>Chute</conf_lblDrop> + <conf_lblEvent type='str'>Evènement</conf_lblEvent> + <conf_lblIncrease type='str'>Augmente</conf_lblIncrease> + <conf_lblNotNotified type='str'>Non notifié</conf_lblNotNotified> + <conf_lblNotified type='str'>Notifié ?</conf_lblNotified> + <conf_lblNotifiedBehavior type='str'>Notifié</conf_lblNotifiedBehavior> + <conf_lblRaise type='str'>Accroissement</conf_lblRaise> + <conf_lblRate type='str'>Taux de rafraichissement</conf_lblRate> + <conf_lblSample type='str'>Points</conf_lblSample> + <conf_lblThreshold type='str'>Seuil</conf_lblThreshold> + <conf_lblTime type='str'>Temps (sec.)</conf_lblTime> + <conf_lblType type='str'>Type</conf_lblType> + <conf_lblValue type='str'>Valeur (%)</conf_lblValue> + <dark1 type='str'>Il fait sombre ici !</dark1> + <dark2 type='str'>Et encore plus là !</dark2> + <dark3 type='str'>hmm, il fait toujours plus sombre ...</dark3> + <dark4 type='str'>C'est l'endroit le plus sombre !</dark4> + <dark5 type='str'>Je ne peux pas trouver l'endroit le plus sombre ...</dark5> + <disable type='str'>Interdire les mesures quand les yeux sont fermés</disable> + <gui_conf_about_title type='str'>A propos</gui_conf_about_title> + <gui_conf_accept_bt type='str'>Valider</gui_conf_accept_bt> + <gui_conf_author_lb type='str'>Auteur</gui_conf_author_lb> + <gui_conf_cancel_bt type='str'>Annuler</gui_conf_cancel_bt> + <gui_conf_current_bind_lb type='str'>Assignation</gui_conf_current_bind_lb> + <gui_conf_delay_lb type='str'>Délai (sec)</gui_conf_delay_lb> + <gui_conf_description_lb type='str'>Description</gui_conf_description_lb> + <gui_conf_rate_lb type='str'>Taux de rafraichissement :</gui_conf_rate_lb> + <gui_conf_remote_set_bt type='str'>Set</gui_conf_remote_set_bt> <gui_conf_remote_title type='str'>Contrôle</gui_conf_remote_title> - <conf_lblRaise type='str'>Accroissement</conf_lblRaise> - <conf_lblEvent type='str'>Evènement</conf_lblEvent> - <widget_lblControl type='str'>Contrôle</widget_lblControl> + <gui_conf_sample_lb type='str'>Nombre de points :</gui_conf_sample_lb> + <gui_conf_update_title type='str'>Mise à jour</gui_conf_update_title> + <gui_conf_version_lb type='str'>Version</gui_conf_version_lb> + <gui_conf_window_title type='str'>Paramètres</gui_conf_window_title> <help_text type='str'>-- Les évènements : Deux grands types d'évènements peuvent avoir lieu, contenant chacun diverses options : @@ -40,85 +91,34 @@ Une zone de test comportant deux boutons permettent à Tux de rechercher la direction la plus lumineuse, ou la plus sombre. Deux scripts de bases se trpouvent dans /tmp/Light_monitor/Data</help_text> - <conf_lblSample type='str'>Points</conf_lblSample> - <widget_lblLight type='str'>Trouver lumière</widget_lblLight> - <conf_lblNotifiedBehavior type='str'>Notifié</conf_lblNotifiedBehavior> - <Change type='str'>La lumière a changé</Change> - <Both type='str'>La lumière a passé le seuil</Both> - <widget_lblRaise type='str'>Augmentation</widget_lblRaise> - <gui_conf_current_bind_lb type='str'>Assignation</gui_conf_current_bind_lb> - <conf_lblBehavior type='str'>Comportement</conf_lblBehavior> - <name_to_read type='str'>Moniteur de lumière</name_to_read> - <gui_conf_window_title type='str'>Paramètres</gui_conf_window_title> - <widget_lblSet type='str'>Ajouter a la config.</widget_lblSet> - <conf_lblValue type='str'>Valeur (%)</conf_lblValue> - <conf_lblTime type='str'>Temps (sec.)</conf_lblTime> - <widget_lblTest type='str'>Notifications</widget_lblTest> - <conf_lblThreshold type='str'>Seuil</conf_lblThreshold> - <gui_conf_accept_bt type='str'>Valider</gui_conf_accept_bt> - <power_supply type='str'>Vous devez deconnecter l'alimentation</power_supply> - <widget_lblNotified type='str'>Notifé</widget_lblNotified> - <conf_btnBehavior type='str'>Supprimer</conf_btnBehavior> - <conf_lblType type='str'>Type</conf_lblType> - <Drop type='str'>La lumière a chuté</Drop> - <widget_lblEvent type='str'>Evènement</widget_lblEvent> - <dark4 type='str'>C'est l'endroit le plus sombre !</dark4> - <widget_lblBoth type='str'>Deux directions</widget_lblBoth> - <gui_conf_remote_set_bt type='str'>Set</gui_conf_remote_set_bt> - <search type='str'>Je cherche ...</search> - <conf_lblNotNotified type='str'>Non notifié</conf_lblNotNotified> - <ChangeD type='str'>La lumière a chuté puis augmenté</ChangeD> - <widget_lblThreshold type='str'>Seuil</widget_lblThreshold> + <light1 type='str'>Je vois de la lumière ici...</light1> <light2 type='str'>J'en vois encore plus ici !</light2> <light3 type='str'>ou ici ?</light3> - <light1 type='str'>Je vois de la lumière ici...</light1> <light4 type='str'>Je pense que la lumière vient de cette direction</light4> <light5 type='str'>Je ne peux pas trouver d'où vient la lumière...</light5> - <ChangeU type='str'>La lumière a augmenté puis chuté</ChangeU> - <gui_conf_description_lb type='str'>Description</gui_conf_description_lb> - <widget_lblDark type='str'>Trouver ombre</widget_lblDark> - <Increase type='str'>La lumière est passée en dessus du seuil</Increase> - <conf_lblBoth type='str'>Deux directions</conf_lblBoth> - <conf_lblDecrease type='str'>Diminue</conf_lblDecrease> - <gui_conf_version_lb type='str'>Version</gui_conf_version_lb> - <gui_conf_update_title type='str'>Mise à jour</gui_conf_update_title> - <widget_lblValue type='str'>Valeur (%)</widget_lblValue> - <gui_conf_cancel_bt type='str'>Annuler</gui_conf_cancel_bt> <mainscript type='str'>J'ai trouvé la lumière !</mainscript> - <widget_lblDrop type='str'>Chute</widget_lblDrop> - <widget_lblIncrease type='str'>Accroissement</widget_lblIncrease> - <conf_btnAdd type='str'>Ajouter</conf_btnAdd> - <gui_conf_author_lb type='str'>Auteur</gui_conf_author_lb> - <conf_lblDrop type='str'>Chute</conf_lblDrop> - <Raise type='str'>La lumière a augmenté</Raise> - <Decrease type='str'>La lumière est passée en dessous du seuil</Decrease> - <widget_lblDisplayThreshold type='str'>Afficher le seuil sur le graph.</widget_lblDisplayThreshold> - <conf_lblRate type='str'>Taux de rafraichissement</conf_lblRate> - <conf_lblControl type='str'>Contrôle</conf_lblControl> - <conf_btnRemove type='str'>Enlever</conf_btnRemove> - <conf_lblIncrease type='str'>Augmente</conf_lblIncrease> - <widget_lblChangeU type='str'>Changement sup.</widget_lblChangeU> - <widget_lblChangeD type='str'>Changement inf.</widget_lblChangeD> - <conf_lblChange type='str'>Changement</conf_lblChange> + <name_to_read type='str'>Moniteur de lumière</name_to_read> + <power_supply type='str'>Vous devez deconnecter l'alimentation</power_supply> + <search type='str'>Je cherche ...</search> + <speaker_name type='str'>Bruno8k</speaker_name> + <widget_lblBehavior type='str'>Activer le script</widget_lblBehavior> + <widget_lblBoth type='str'>Deux directions</widget_lblBoth> <widget_lblBtnApply type='str'>Appliquer</widget_lblBtnApply> - <gui_conf_rate_lb type='str'>Taux de rafraichissement :</gui_conf_rate_lb> - <conf_lblChangeU type='str'>Augmente et chute</conf_lblChangeU> - <gui_conf_delay_lb type='str'>Délai (sec)</gui_conf_delay_lb> - <gui_conf_about_title type='str'>A propos</gui_conf_about_title> - <conf_lblChangeD type='str'>Chute et augmente</conf_lblChangeD> <widget_lblChange type='str'>Changement</widget_lblChange> - <conf_btnModify type='str'>Modifier</conf_btnModify> - <dark1 type='str'>Il fait sombre ici !</dark1> - <dark3 type='str'>hmm, il fait toujours plus sombre ...</dark3> - <dark2 type='str'>Et encore plus là !</dark2> - <dark5 type='str'>Je ne peux pas trouver l'endroit le plus sombre ...</dark5> + <widget_lblChangeD type='str'>Changement inf.</widget_lblChangeD> + <widget_lblChangeU type='str'>Changement sup.</widget_lblChangeU> + <widget_lblControl type='str'>Contrôle</widget_lblControl> + <widget_lblDark type='str'>Trouver ombre</widget_lblDark> <widget_lblDecrease type='str'>Decroissance</widget_lblDecrease> - <gui_conf_sample_lb type='str'>Nombre de points :</gui_conf_sample_lb> - <disable type='str'>Interdire les mesures quand les yeux sont fermés</disable> - <conf_lblDefaultBehavior type='str'>Comportement pas défaut</conf_lblDefaultBehavior> - <speaker_name type='str'>Bruno8k</speaker_name> - <widget_lblBehavior type='str'>Activer le script</widget_lblBehavior> - <conf_lblNotified type='str'>Notifié ?</conf_lblNotified> - <Threshold type='str'>La lumière a atteint le seuil</Threshold> - <MainBehavior type='str'>Comportement principal</MainBehavior> + <widget_lblDisplayThreshold type='str'>Afficher le seuil sur le graph.</widget_lblDisplayThreshold> + <widget_lblDrop type='str'>Chute</widget_lblDrop> + <widget_lblEvent type='str'>Evènement</widget_lblEvent> + <widget_lblIncrease type='str'>Accroissement</widget_lblIncrease> + <widget_lblLight type='str'>Trouver lumière</widget_lblLight> + <widget_lblNotified type='str'>Notifé</widget_lblNotified> + <widget_lblRaise type='str'>Augmentation</widget_lblRaise> + <widget_lblSet type='str'>Ajouter a la config.</widget_lblSet> + <widget_lblTest type='str'>Notifications</widget_lblTest> + <widget_lblThreshold type='str'>Seuil</widget_lblThreshold> + <widget_lblValue type='str'>Valeur (%)</widget_lblValue> </strings> Modified: software/gadgets/light_monitor/trunk/Light_monitor/about.xml =================================================================== --- software/gadgets/light_monitor/trunk/Light_monitor/about.xml 2008-01-16 11:40:29 UTC (rev 851) +++ software/gadgets/light_monitor/trunk/Light_monitor/about.xml 2008-01-16 11:43:32 UTC (rev 852) @@ -1,7 +1,7 @@ <?xml version='1.0' encoding='UTF-8'?> <about> <gadget_author type='str'>Paul Rathgeb</gadget_author> - <gadget_version type='str'>0.0.1</gadget_version> + <gadget_description type='str'>Light monitor for tux droid</gadget_description> <gadget_name type='str'>light_monitor</gadget_name> - <gadget_description type='str'>Light monitor for tux droid</gadget_description> + <gadget_version type='str'>0.0.2</gadget_version> </about> Modified: software/gadgets/light_monitor/trunk/Light_monitor/settings.xml =================================================================== --- software/gadgets/light_monitor/trunk/Light_monitor/settings.xml 2008-01-16 11:40:29 UTC (rev 851) +++ software/gadgets/light_monitor/trunk/Light_monitor/settings.xml 2008-01-16 11:43:32 UTC (rev 852) @@ -1,59 +1,59 @@ <?xml version='1.0' encoding='UTF-8'?> <settings> - <parameters> - <change_notified type='bool'>False</change_notified> - <chk_ThresholdBehavior type='bool'>False</chk_ThresholdBehavior> - <increase_rad type='bool'>True</increase_rad> - <chk_ChangeBehavior type='bool'>False</chk_ChangeBehavior> - <changeU_time type='float'>1.0</changeU_time> - <test_tab type='list'>[[1, 0, 0, 10.0, 2.0, False, None, False, 0]]</test_tab> - <changeD_rad type='bool'>False</changeD_rad> - <threshold type='float'>50.0</threshold> - <decrease_rad type='bool'>False</decrease_rad> - <Sample type='float'>500.0</Sample> - <raise type='float'>10.0</raise> - <changeU_rad type='bool'>False</changeU_rad> - <threshold_notified type='bool'>False</threshold_notified> - <config type='list'>[]</config> - <behavior_file_change type='NoneType'>None</behavior_file_change> - <drop_rad type='bool'>True</drop_rad> - <raise_rad type='bool'>False</raise_rad> - <changeD type='float'>10.0</changeD> - <drop_time type='float'>1.0</drop_time> - <disable type='bool'>False</disable> - <changeU type='float'>10.0</changeU> - <raise_time type='float'>1.0</raise_time> - <drop type='float'>10.0</drop> - <MainScript type='str'> - </MainScript> - <behavior_file_threshold type='NoneType'>None</behavior_file_threshold> - <threshold_chk type='bool'>False</threshold_chk> - <Rate type='float'>0.1</Rate> - <changeD_time type='float'>1.0</changeD_time> - <both_rad type='bool'>False</both_rad> - </parameters> <general> - <have_settings_part type='bool'>True</have_settings_part> + <framework_version type='str'>0.0.0</framework_version> <gui_state> + <conf> + <visible type='bool'>False</visible> + </conf> <widget> - <y type='int'>317</y> <visible type='bool'>True</visible> <x type='int'>0</x> + <y type='int'>317</y> </widget> - <conf> - <visible type='bool'>False</visible> - </conf> </gui_state> + <have_main_part type='bool'>True</have_main_part> + <have_settings_part type='bool'>True</have_settings_part> + <have_widget_part type='bool'>True</have_widget_part> <language type='str'>en_US</language> + <main_priority type='int'>4</main_priority> + <menu_active type='bool'>True</menu_active> <notified type='bool'>True</notified> <notify_delay type='int'>1</notify_delay> - <framework_version type='str'>0.0.0</framework_version> - <menu_active type='bool'>True</menu_active> - <have_widget_part type='bool'>True</have_widget_part> + <notify_priority type='int'>4</notify_priority> + <pitch type='int'>100</pitch> <speaker type='int'>3</speaker> - <pitch type='int'>100</pitch> - <have_main_part type='bool'>True</have_main_part> - <main_priority type='int'>4</main_priority> - <notify_priority type='int'>4</notify_priority> </general> + <parameters> + <MainScript type='str'> + </MainScript> + <Rate type='float'>0.1</Rate> + <Sample type='float'>500.0</Sample> + <behavior_file_change type='NoneType'>None</behavior_file_change> + <behavior_file_threshold type='NoneType'>None</behavior_file_threshold> + <both_rad type='bool'>False</both_rad> + <changeD type='float'>10.0</changeD> + <changeD_rad type='bool'>False</changeD_rad> + <changeD_time type='float'>1.0</changeD_time> + <changeU type='float'>10.0</changeU> + <changeU_rad type='bool'>False</changeU_rad> + <changeU_time type='float'>1.0</changeU_time> + <change_notified type='bool'>False</change_notified> + <chk_ChangeBehavior type='bool'>False</chk_ChangeBehavior> + <chk_ThresholdBehavior type='bool'>False</chk_ThresholdBehavior> + <config type='list'>[]</config> + <decrease_rad type='bool'>False</decrease_rad> + <disable type='bool'>False</disable> + <drop type='float'>10.0</drop> + <drop_rad type='bool'>True</drop_rad> + <drop_time type='float'>1.0</drop_time> + <increase_rad type='bool'>True</increase_rad> + <raise type='float'>10.0</raise> + <raise_rad type='bool'>False</raise_rad> + <raise_time type='float'>1.0</raise_time> + <test_tab type='list'>[[1, 0, 0, 10.0, 2.0, False, None, False, 0]]</test_tab> + <threshold type='float'>50.0</threshold> + <threshold_chk type='bool'>False</threshold_chk> + <threshold_notified type='bool'>False</threshold_notified> + </parameters> </settings> Modified: software/gadgets/light_monitor/trunk/Light_monitor/strings.xml =================================================================== --- software/gadgets/light_monitor/trunk/Light_monitor/strings.xml 2008-01-16 11:40:29 UTC (rev 851) +++ software/gadgets/light_monitor/trunk/Light_monitor/strings.xml 2008-01-16 11:43:32 UTC (rev 852) @@ -1,9 +1,60 @@ <?xml version='1.0' encoding='UTF-8'?> <strings> + <Both type='str'>The light level reached the threshold</Both> + <Change type='str'>The light level changed</Change> + <ChangeD type='str'>The light level dropped and raised</ChangeD> + <ChangeU type='str'>The light level raised and dropped</ChangeU> + <Decrease type='str'>The light level passed below the threshold</Decrease> + <Drop type='str'>The light level dropped</Drop> + <Increase type='str'>The light level exceeded the threshold</Increase> + <MainBehavior type='str'>Main behavior</MainBehavior> + <Raise type='str'>The light level raised</Raise> + <Threshold type='str'>The light reached the threshold</Threshold> + <conf_btnAdd type='str'>Add</conf_btnAdd> + <conf_btnBehavior type='str'>Clear path</conf_btnBehavior> + <conf_btnModify type='str'>Modify</conf_btnModify> + <conf_btnRemove type='str'>Remove</conf_btnRemove> + <conf_lblBehavior type='str'>Behavior script</conf_lblBehavior> + <conf_lblBoth type='str'>Both</conf_lblBoth> + <conf_lblChange type='str'>Change</conf_lblChange> + <conf_lblChangeD type='str'>Drop and raise</conf_lblChangeD> + <conf_lblChangeU type='str'>Raise and drop</conf_lblChangeU> + <conf_lblControl type='str'>Control</conf_lblControl> + <conf_lblDecrease type='str'>Decrease</conf_lblDecrease> + <conf_lblDefaultBehavior type='str'>Default behavior</conf_lblDefaultBehavior> + <conf_lblDrop type='str'>Drop</conf_lblDrop> + <conf_lblEvent type='str'>Event</conf_lblEvent> + <conf_lblIncrease type='str'>Increase</conf_lblIncrease> + <conf_lblNotNotified type='str'>Not notified</conf_lblNotNotified> + <conf_lblNotified type='str'>Notified ?</conf_lblNotified> + <conf_lblNotifiedBehavior type='str'>Notified</conf_lblNotifiedBehavior> + <conf_lblRaise type='str'>Raise</conf_lblRaise> + <conf_lblRate type='str'>Refresh rate</conf_lblRate> <conf_lblSample type='str'>Samples</conf_lblSample> - <conf_lblRaise type='str'>Raise</conf_lblRaise> - <conf_lblEvent type='str'>Event</conf_lblEvent> - <widget_lblControl type='str'>Control</widget_lblControl> + <conf_lblThreshold type='str'>Threshold</conf_lblThreshold> + <conf_lblTime type='str'>Time (sec.)</conf_lblTime> + <conf_lblType type='str'>Type</conf_lblType> + <conf_lblValue type='str'>Value (%)</conf_lblValue> + <dark1 type='str'>It's pretty dark here.</dark1> + <dark2 type='str'>And darker here.</dark2> + <dark3 type='str'>hmm, but it's even more dark over here!</dark3> + <dark4 type='str'>This is the darkest spot.</dark4> + <dark5 type='str'>I can't find the darkest spot...</dark5> + <disable type='str'>Disable measurement when the eyes are closed</disable> + <gui_conf_about_title type='str'>About</gui_conf_about_title> + <gui_conf_accept_bt type='str'>Accept</gui_conf_accept_bt> + <gui_conf_author_lb type='str'>Author</gui_conf_author_lb> + <gui_conf_cancel_bt type='str'>Cancel</gui_conf_cancel_bt> + <gui_conf_current_bind_lb type='str'>Current</gui_conf_current_bind_lb> + <gui_conf_delay_lb type='str'>Delay (sec)</gui_conf_delay_lb> + <gui_conf_description_lb type='str'>Description</gui_conf_description_lb> + <gui_conf_rate_lb type='str'>Refresh rate :</gui_conf_rate_lb> + <gui_conf_remote_set_bt type='str'>Set</gui_conf_remote_set_bt> + <gui_conf_remote_title type='str'>Control</gui_conf_remote_title> + <gui_conf_sample_lb type='str'>Sample :</gui_conf_sample_lb> + <gui_conf_update_title type='str'>Update</gui_conf_update_title> + <gui_conf_version_lb type='str'>Version</gui_conf_version_lb> + <gui_conf_window_title type='str'>Parameters</gui_conf_window_title> <help_text type='str'>-- The events: Two main types of events can take place, each containing various options: @@ -40,85 +91,34 @@ In the test part with two buttons you can make Tux search for the light source or darkest spot. Two example scripts can be found in /tmp/Light_monitor/Data.</help_text> - <gui_conf_remote_title type='str'>Control</gui_conf_remote_title> - <widget_lblLight type='str'>Search light</widget_lblLight> - <conf_lblNotifiedBehavior type='str'>Notified</conf_lblNotifiedBehavior> - <Change type='str'>The light level changed</Change> - <Both type='str'>The light level reached the threshold</Both> - <widget_lblRaise type='str'>Raise</widget_lblRaise> - <gui_conf_current_bind_lb type='str'>Current</gui_conf_current_bind_lb> - <conf_lblBehavior type='str'>Behavior script</conf_lblBehavior> - <name_to_read type='str'>Light monitor</name_to_read> - <gui_conf_window_title type='str'>Parameters</gui_conf_window_title> - <widget_lblSet type='str'>Add to config</widget_lblSet> - <conf_lblValue type='str'>Value (%)</conf_lblValue> - <conf_lblTime type='str'>Time (sec.)</conf_lblTime> - <widget_lblDark type='str'>Search darkness</widget_lblDark> - <conf_lblThreshold type='str'>Threshold</conf_lblThreshold> - <gui_conf_accept_bt type='str'>Accept</gui_conf_accept_bt> - <power_supply type='str'>You must disconnect the power supply</power_supply> - <widget_lblNotified type='str'>Notified</widget_lblNotified> - <conf_btnBehavior type='str'>Clear path</conf_btnBehavior> - <conf_lblType type='str'>Type</conf_lblType> - <dark2 type='str'>And darker here.</dark2> - <widget_lblEvent type='str'>Event</widget_lblEvent> - <widget_lblDecrease type='str'>Decreasing</widget_lblDecrease> - <gui_conf_update_title type='str'>Update</gui_conf_update_title> - <gui_conf_remote_set_bt type='str'>Set</gui_conf_remote_set_bt> - <search type='str'>I seek ...</search> - <conf_lblNotNotified type='str'>Not notified</conf_lblNotNotified> - <ChangeD type='str'>The light level dropped and raised</ChangeD> - <widget_lblThreshold type='str'>Threshold</widget_lblThreshold> + <light1 type='str'>Seeing more light over here.</light1> <light2 type='str'>ow wait, even lighter here.</light2> <light3 type='str'>or here ...</light3> - <light1 type='str'>Seeing more light over here.</light1> <light4 type='str'>I think the light is coming from this direction.</light4> <light5 type='str'>I can't find the direction of the light.</light5> - <ChangeU type='str'>The light level raised and dropped</ChangeU> - <gui_conf_description_lb type='str'>Description</gui_conf_description_lb> - <Increase type='str'>The light level exceeded the threshold</Increase> - <conf_lblBoth type='str'>Both</conf_lblBoth> - <conf_lblDecrease type='str'>Decrease</conf_lblDecrease> - <gui_conf_version_lb type='str'>Version</gui_conf_version_lb> + <mainscript type='str'>I've found the light !</mainscript> + <name_to_read type='str'>Light monitor</name_to_read> + <power_supply type='str'>You must disconnect the power supply</power_supply> + <search type='str'>I seek ...</search> + <speaker_name type='str'>Ryan8k</speaker_name> + <widget_lblBehavior type='str'>Enable behavior script</widget_lblBehavior> <widget_lblBoth type='str'>Both direction</widget_lblBoth> - <widget_lblValue type='str'>Value (%)</widget_lblValue> - <gui_conf_cancel_bt type='str'>Cancel</gui_conf_cancel_bt> - <mainscript type='str'>I've found the light !</mainscript> + <widget_lblBtnApply type='str'>Apply changes</widget_lblBtnApply> + <widget_lblChange type='str'>Change</widget_lblChange> + <widget_lblChangeD type='str'>Drop and raise</widget_lblChangeD> + <widget_lblChangeU type='str'>Raise and drop</widget_lblChangeU> + <widget_lblControl type='str'>Control</widget_lblControl> + <widget_lblDark type='str'>Search darkness</widget_lblDark> + <widget_lblDecrease type='str'>Decreasing</widget_lblDecrease> + <widget_lblDisplayThreshold type='str'>Display threshold on graph</widget_lblDisplayThreshold> <widget_lblDrop type='str'>Drop</widget_lblDrop> + <widget_lblEvent type='str'>Event</widget_lblEvent> <widget_lblIncrease type='str'>Increasing</widget_lblIncrease> - <conf_btnAdd type='str'>Add</conf_btnAdd> - <gui_conf_author_lb type='str'>Author</gui_conf_author_lb> + <widget_lblLight type='str'>Search light</widget_lblLight> + <widget_lblNotified type='str'>Notified</widget_lblNotified> + <widget_lblRaise type='str'>Raise</widget_lblRaise> + <widget_lblSet type='str'>Add to config</widget_lblSet> <widget_lblTest type='str'>Notifications</widget_lblTest> - <conf_lblDrop type='str'>Drop</conf_lblDrop> - <Raise type='str'>The light level raised</Raise> - <Decrease type='str'>The light level passed below the threshold</Decrease> - <widget_lblDisplayThreshold type='str'>Display threshold on graph</widget_lblDisplayThreshold> - <conf_lblRate type='str'>Refresh rate</conf_lblRate> - <conf_lblControl type='str'>Control</conf_lblControl> - <conf_btnRemove type='str'>Remove</conf_btnRemove> - <conf_lblIncrease type='str'>Increase</conf_lblIncrease> - <widget_lblChangeU type='str'>Raise and drop</widget_lblChangeU> - <widget_lblChangeD type='str'>Drop and raise</widget_lblChangeD> - <conf_lblChange type='str'>Change</conf_lblChange> - <widget_lblBtnApply type='str'>Apply changes</widget_lblBtnApply> - <gui_conf_rate_lb type='str'>Refresh rate :</gui_conf_rate_lb> - <conf_lblChangeU type='str'>Raise and drop</conf_lblChangeU> - <gui_conf_delay_lb type='str'>Delay (sec)</gui_conf_delay_lb> - <gui_conf_about_title type='str'>About</gui_conf_about_title> - <conf_lblChangeD type='str'>Drop and raise</conf_lblChangeD> - <widget_lblChange type='str'>Change</widget_lblChange> - <conf_btnModify type='str'>Modify</conf_btnModify> - <dark1 type='str'>It's pretty dark here.</dark1> - <dark3 type='str'>hmm, but it's even more dark over here!</dark3> - <Drop type='str'>The light level dropped</Drop> - <dark5 type='str'>I can't find the darkest spot...</dark5> - <dark4 type='str'>This is the darkest spot.</dark4> - <gui_conf_sample_lb type='str'>Sample :</gui_conf_sample_lb> - <disable type='str'>Disable measurement when the eyes are closed</disable> - <conf_lblDefaultBehavior type='str'>Default behavior</conf_lblDefaultBehavior> - <speaker_name type='str'>Ryan8k</speaker_name> - <widget_lblBehavior type='str'>Enable behavior script</widget_lblBehavior> - <conf_lblNotified type='str'>Notified ?</conf_lblNotified> - <Threshold type='str'>The light reached the threshold</Threshold> - <MainBehavior type='str'>Main behavior</MainBehavior> + <widget_lblThreshold type='str'>Threshold</widget_lblThreshold> + <widget_lblValue type='str'>Value (%)</widget_lblValue> </strings> Modified: software/gadgets/light_monitor/trunk/Light_monitor.tgf =================================================================== (Binary files differ) |
From: jaguarondi <c2m...@c2...> - 2008-01-16 11:40:35
|
Author: jaguarondi Date: 2008-01-16 12:40:29 +0100 (Wed, 16 Jan 2008) New Revision: 851 Modified: firmware/hex_dev/tuxaudio.hex Log: * There was a trojan in the previous hex file I made that erased the dataflash. Corrected now. Modified: firmware/hex_dev/tuxaudio.hex =================================================================== (Binary files differ) |
From: jaguarondi <c2m...@c2...> - 2008-01-14 16:12:41
|
Author: jaguarondi Date: 2008-01-14 17:12:38 +0100 (Mon, 14 Jan 2008) New Revision: 850 Modified: firmware/hex_dev/tuxaudio.hex firmware/hex_dev/tuxcore.eep firmware/hex_dev/tuxcore.hex Log: * New snapshot of the current development firmware. Use tuxcore and tuxaudio but not the RF or USB files as they're for another kind of development which is suspended for now. Modified: firmware/hex_dev/tuxaudio.hex =================================================================== (Binary files differ) Modified: firmware/hex_dev/tuxcore.eep =================================================================== (Binary files differ) Modified: firmware/hex_dev/tuxcore.hex =================================================================== (Binary files differ) |
From: Paul_R <c2m...@c2...> - 2008-01-14 13:02:16
|
Author: Paul_R Date: 2008-01-14 14:02:17 +0100 (Mon, 14 Jan 2008) New Revision: 849 Modified: api/python/trunk/tuxapi_class.py Log: * Fixed a bug in the event.store function Modified: api/python/trunk/tuxapi_class.py =================================================================== --- api/python/trunk/tuxapi_class.py 2008-01-14 10:06:38 UTC (rev 848) +++ api/python/trunk/tuxapi_class.py 2008-01-14 13:02:17 UTC (rev 849) @@ -1378,7 +1378,7 @@ event_storage.append(self.on_eyes_stop) event_storage.append(self.on_wings_stop) event_storage.append(self.on_wings_down) - event.storage.append(self.on_wings_up) + event_storage.append(self.on_wings_up) event_storage.append(self.on_spin_stop) event_storage.append(self.parent.tts.on_sound_on) event_storage.append(self.parent.tts.on_sound_off) |
From: Paul_R <c2m...@c2...> - 2008-01-14 10:06:45
|
Author: Paul_R Date: 2008-01-14 11:06:38 +0100 (Mon, 14 Jan 2008) New Revision: 848 Modified: api/python/trunk/tuxapi_class.py api/python/trunk/tuxapi_const.py daemon/trunk/libs/USBDaemon_command_tux.c daemon/trunk/libs/USBDaemon_status_table.c daemon/trunk/libs/USBDaemon_status_table.h Log: * Added the wings position status : - request : tux.status.wings_position() - events : on_wings_down on_wings_up Modified: api/python/trunk/tuxapi_class.py =================================================================== --- api/python/trunk/tuxapi_class.py 2008-01-11 16:02:54 UTC (rev 847) +++ api/python/trunk/tuxapi_class.py 2008-01-14 10:06:38 UTC (rev 848) @@ -532,6 +532,15 @@ if ord(data[5])==0: if self.event.on_wings_stop!=None: self.event.on_wings_stop() + + #wings down + if ord(data[4])==DATAS_STATUS_WINGS_POSITION: + if ord(data[5])==0: + if self.event.on_wings_down!=None: + self.event.on_wings_down() + if ord(data[5])==1: + if self.event.on_wings_up!=None: + self.event.on_wings_up() #spin stop if ord(data[4])==DATAS_STATUS_SPIN_POSITION_COUNTER: if ord(data[5])==0: @@ -1214,6 +1223,8 @@ "on_mouth_stop" as pof : On mouth stop event "on_eyes_stop" as pof : On eyes stop event "on_wings_stop" as pof : On wings stop event + "on_wings_down" as pof : On wings down event + "on_wings_up" as pof : On wings up event "on_spin_stop" as pof : On spin stop event (pof = pointer of function) @@ -1321,6 +1332,8 @@ self.on_mouth_stop=None self.on_eyes_stop=None self.on_wings_stop=None + self.on_wings_down=None + self.on_wings_up=None self.on_spin_stop=None #-------------------------------------------------------------------------- @@ -1364,6 +1377,8 @@ event_storage.append(self.on_mouth_stop) event_storage.append(self.on_eyes_stop) event_storage.append(self.on_wings_stop) + event_storage.append(self.on_wings_down) + event.storage.append(self.on_wings_up) event_storage.append(self.on_spin_stop) event_storage.append(self.parent.tts.on_sound_on) event_storage.append(self.parent.tts.on_sound_off) @@ -1411,6 +1426,8 @@ self.on_mouth_stop=event_storage.pop(0) self.on_eyes_stop=event_storage.pop(0) self.on_wings_stop=event_storage.pop(0) + self.on_wings_down=event_storage.pop(0) + self.on_wings_up=event_storage.pop(0) self.on_spin_stop=event_storage.pop(0) self.parent.tts.on_sound_on=event_storage.pop(0) self.parent.tts.on_sound_off=event_storage.pop(0) @@ -2975,6 +2992,7 @@ tux.status.wings_counter tux.status.wings_motor tux.status.wings_forward + tux.status.wings_position tux.status.wings_bt tux.status.get_wings_position_switch tux.status.to_string @@ -3372,6 +3390,17 @@ """ return self.get_one_status(DATAS_STATUS_MOTOR_FOR_WINGS) + def wings_position(self): + """ + Get the wings position. + + Return 1 if the wings are up, 0 if they're down. + + Example: + >>> wings_position = tux.status.wings_position() + """ + return self.get_one_status(DATAS_STATUS_WINGS_POSITION) + #-------------------------------------------------------------------------- # Get the last state of left blue led status #-------------------------------------------------------------------------- Modified: api/python/trunk/tuxapi_const.py =================================================================== --- api/python/trunk/tuxapi_const.py 2008-01-11 16:02:54 UTC (rev 847) +++ api/python/trunk/tuxapi_const.py 2008-01-14 10:06:38 UTC (rev 848) @@ -162,6 +162,7 @@ DATAS_STATUS_AVAILABLE_RECORD_TIME = 0x28 DATAS_STATUS_SOUND_FLASH = 0x29 DATAS_STATUS_PROGRAMMING_AUDIO = 0x2A +DATAS_STATUS_WINGS_POSITION = 0x2B STATUS_WINGS_MOTOR_BACKWARD = 0x01 STATUS_SPIN_MOTOR_BACKWARD = 0x02 Modified: daemon/trunk/libs/USBDaemon_command_tux.c =================================================================== --- daemon/trunk/libs/USBDaemon_command_tux.c 2008-01-11 16:02:54 UTC (rev 847) +++ daemon/trunk/libs/USBDaemon_command_tux.c 2008-01-14 10:06:38 UTC (rev 848) @@ -640,6 +640,9 @@ result[0] = DATA_STATUS_WINGS_MOTOR_FORWARD; result[1] = portd.bits.PB4; break; + case DATA_STATUS_WINGS_POSITION: + result[1] = tux_status.io.wings_low; + break; case DATA_STATUS_IR_LED: result[1] = portd.bits.PB5; break; Modified: daemon/trunk/libs/USBDaemon_status_table.c =================================================================== --- daemon/trunk/libs/USBDaemon_status_table.c 2008-01-11 16:02:54 UTC (rev 847) +++ daemon/trunk/libs/USBDaemon_status_table.c 2008-01-14 10:06:38 UTC (rev 848) @@ -256,6 +256,25 @@ set_led_mask(*led_status & 0x10 ? true : false); } +static void wings_position_changed(uint8_t position) +{ + tcp_frame_t tcp_frame; + + tcp_frame_zero(&tcp_frame); + + tcp_frame[0] = SOURCE_TUX; + tcp_frame[1] = SS_DEFAULT; + tcp_frame[2] = DATA_TP_RSP; + tcp_frame[3] = SUBDATA_TP_STATUS; + + tcp_frame[4] = DATA_STATUS_WINGS_POSITION; + + tux_status.io.wings_low = (bool)position; + + tcp_frame[5] = position; + tcp_server_send_raw(tcp_frame); +} + /* TODO Add functions to get the average battery voltage and status */ static void battery_changed(unsigned int const level, unsigned int const loaded) @@ -691,7 +710,8 @@ case STATUS_POSITION2_CMD: if (position2.Byte != new_status[1]) position2_changed(new_status[1]); - tux_status.io.wings_low = (bool)new_status[2]; + if (tux_status.io.wings_low != (bool)new_status[2]) + wings_position_changed(new_status[2]); break; case STATUS_LED_CMD: Modified: daemon/trunk/libs/USBDaemon_status_table.h =================================================================== --- daemon/trunk/libs/USBDaemon_status_table.h 2008-01-11 16:02:54 UTC (rev 847) +++ daemon/trunk/libs/USBDaemon_status_table.h 2008-01-14 10:06:38 UTC (rev 848) @@ -188,6 +188,7 @@ #define DATA_STATUS_AUDIO 0x26 #define DATA_STATUS_SOUND_FLASH 0x29 #define DATA_PROGRAMMING_AUDIO 0x2A +#define DATA_STATUS_WINGS_POSITION 0x2B /* tux connection commands available on the usb dongle */ typedef enum |
From: jaguarondi <c2m...@c2...> - 2008-01-11 16:02:54
|
Author: jaguarondi Date: 2008-01-11 17:02:54 +0100 (Fri, 11 Jan 2008) New Revision: 847 Modified: api/python/trunk/tuxapi_class.py daemon/trunk/libs/USBDaemon_command_tux.c Log: * Adapting the boundaries of the effect.speed float to have higher speeds, this was limiting the pulse effect. Modified: api/python/trunk/tuxapi_class.py =================================================================== --- api/python/trunk/tuxapi_class.py 2008-01-11 15:47:49 UTC (rev 846) +++ api/python/trunk/tuxapi_class.py 2008-01-11 16:02:54 UTC (rev 847) @@ -2613,8 +2613,8 @@ only. We don't send floats through TCP/IP (effect_speed and effect_step), we - just multiply by 16 and divide by the same value on the other side. So - the boundaries are 1/16 to 15. + just multiply by 64 and divide by the same value on the other side. So + the boundaries are 1/64 to 3. Parameters: See the daemon API for details. @@ -2667,15 +2667,15 @@ """ if effect_speed > 15: effect_speed = 15 - if effect_speed < 1.0/16: - effect_speed = 1.0/16 + if effect_speed < 1.0/64: + effect_speed = 1.0/64 if effect_step > 255: effect_step = 255 # workaround to send a float over TCP/IP in the current API: - # effect_speed is multiplied by 16 + # effect_speed is multiplied by 64 self.last_ack=self.estructured(TUX_CMD_STRUCT_LEDS, TUX_CMD_STRUCT_SUB_SET, leds, intensity, effect_type, - int(effect_speed*16), effect_step) + int(effect_speed*64), effect_step) #-------------------------------------------------------------------------- # Mapping of the daemon command to pulse the LEDs. @@ -2689,8 +2689,8 @@ one probably will have to be removed or kept for debug purposes only. We don't send floats through TCP/IP (effect_speed and effect_step), we - just multiply by 16 and divide by the same value on the other side. So - the boundaries are 1/16 to 15. + just multiply by 64 and divide by the same value on the other side. So + the boundaries are 1/64 to 3. Parameters: See the daemon API for details. @@ -2752,8 +2752,8 @@ """ if effect_speed > 15: effect_speed = 15 - if effect_speed < 1.0/16: - effect_speed = 1.0/16 + if effect_speed < 1.0/64: + effect_speed = 1.0/64 if effect_step > 255: effect_step = 255 if pulse_count > 255: @@ -2766,11 +2766,11 @@ return # workaround to send a float over TCP/IP in the current API: # pulse_period is multiplied by 250 - # effect_speed is multiplied by 16 + # effect_speed is multiplied by 64 self.last_ack=self.estructured(TUX_CMD_STRUCT_LEDS, TUX_CMD_STRUCT_SUB_PULSE, leds, min_intensity, max_intensity, pulse_count, int(250 * pulse_period), effect_type, - int(effect_speed*16), effect_step) + int(effect_speed*64), effect_step) #-------------------------------------------------------------------------- # Send a command to tux for playing a sound from the flash memory Modified: daemon/trunk/libs/USBDaemon_command_tux.c =================================================================== --- daemon/trunk/libs/USBDaemon_command_tux.c 2008-01-11 15:47:49 UTC (rev 846) +++ daemon/trunk/libs/USBDaemon_command_tux.c 2008-01-11 16:02:54 UTC (rev 847) @@ -482,7 +482,7 @@ * uint8_t which is the float parameter multiplied by 16, then * divide it here again. The limitation is of course the range. */ - effect.speed = (float)data[5]/16; + effect.speed = (float)(data[5])/64; effect.step = data[6]; ACK = led_set(data[2], data[3], &effect); } @@ -496,9 +496,8 @@ * divide it here again. The limitation is of course the range. * pulse_period is multiplied by 250. */ - effect.speed = (float)data[8]/16; + effect.speed = (float)data[8]/64; effect.step = data[9]; - printf("%x %x %x %x %x %x %x %x \n",data[2], data[3], data[4], data[5], data[6], data[7], data[8], data[9]); ACK = led_pulse(data[2], data[3], data[4], data[5], (float)data[6]/250, &effect); } break; |
From: Paul_R <c2m...@c2...> - 2008-01-11 15:47:53
|
Author: Paul_R Date: 2008-01-11 16:47:49 +0100 (Fri, 11 Jan 2008) New Revision: 846 Modified: firmware/tuxdefs/commands.h Log: * Remove an obsolete definition. Modified: firmware/tuxdefs/commands.h =================================================================== --- firmware/tuxdefs/commands.h 2008-01-11 14:44:55 UTC (rev 845) +++ firmware/tuxdefs/commands.h 2008-01-11 15:47:49 UTC (rev 846) @@ -88,7 +88,6 @@ #define LED_L_OFF_CMD 0x1D /* Turn left LED off */ #define LED_R_ON_CMD 0x1E /* Turn right LED on */ #define LED_R_OFF_CMD 0x1F /* Turn right LED off */ -#define LED_BLINK_CMD 0xD2 /* 1st parameter: number of LED toggles */ /* 2nd parameter: delay between each LED toggle, in multiple of 4ms */ |
From: Paul_R <c2m...@c2...> - 2008-01-11 14:44:53
|
Author: Paul_R Date: 2008-01-11 15:44:55 +0100 (Fri, 11 Jan 2008) New Revision: 845 Modified: api/python/trunk/tuxapi_class.py api/python/trunk/tuxapi_const.py Log: * Minor change on the tuc.cmd.move command. Modified: api/python/trunk/tuxapi_class.py =================================================================== --- api/python/trunk/tuxapi_class.py 2008-01-11 14:39:01 UTC (rev 844) +++ api/python/trunk/tuxapi_class.py 2008-01-11 14:44:55 UTC (rev 845) @@ -1952,7 +1952,11 @@ - 0 / UNDEFINED - 1 / OPEN / UP - 2 / CLOSE / DOWN + - 3 / STOP + Note : The only final state parameters you can + use with the spinning are UNDEFINED and STOP. + "refresh" as bool : Change speed only. If this flag is set, only the speed will be changed. This allow to change the speed during @@ -1964,7 +1968,7 @@ Blink the eyes 7 time, and finish with the eyes open : >>> tux.cmd.move(0, 7, 0, 0, 1, 0) or - >>> tux.cmd.move(movement = EYES, counter = 7, final_state = 1) + >>> tux.cmd.move(movement = EYES, counter = 7, final_state = OPEN) Move wings for 150ms with the maximum speed: >>> tux.cmd.move(2, 0, 0.15, 5, 0, 0) Modified: api/python/trunk/tuxapi_const.py =================================================================== --- api/python/trunk/tuxapi_const.py 2008-01-11 14:39:01 UTC (rev 844) +++ api/python/trunk/tuxapi_const.py 2008-01-11 14:44:55 UTC (rev 845) @@ -471,6 +471,7 @@ UP = 1 CLOSE = 2 DOWN = 2 +STOP = 3 VERYLOW = 1 LOW = 2 |
From: Paul_R <c2m...@c2...> - 2008-01-11 14:39:20
|
Author: Paul_R Date: 2008-01-11 15:39:01 +0100 (Fri, 11 Jan 2008) New Revision: 844 Modified: daemon/trunk/movements.c firmware/tuxdefs/defines.h Log: * Added a new final position (FP_STOP) to stop the movements. Modified: daemon/trunk/movements.c =================================================================== --- daemon/trunk/movements.c 2008-01-11 13:06:55 UTC (rev 843) +++ daemon/trunk/movements.c 2008-01-11 14:39:01 UTC (rev 844) @@ -130,6 +130,18 @@ single_movement(motor, final_state); break; } + case (MOT_SPIN_R): + { + if (!(value) && final_state == FP_STOP) + single_movement(motor, final_state); + break; + } + case (MOT_SPIN_L): + { + if (!(value) && final_state == FP_STOP) + single_movement(motor, final_state); + break; + } } return value; } @@ -174,24 +186,38 @@ { case (MOT_EYES): if (final_state == FP_OPEN) - send_usb_tux_cmd(OPEN_EYES_CMD, 0, 0, 0); + send_usb_tux_cmd(OPEN_EYES_CMD, 0, 0, 0); else if (final_state == FP_CLOSE) send_usb_tux_cmd(CLOSE_EYES_CMD, 0, 0, 0); + else if (final_state == FP_STOP) + send_usb_tux_cmd(STOP_EYES_CMD, 0, 0, 0); break; case (MOT_MOUTH): if (final_state == FP_OPEN) - send_usb_tux_cmd(OPEN_MOUTH_CMD, 0, 0, 0); + send_usb_tux_cmd(OPEN_MOUTH_CMD, 0, 0, 0); else if (final_state == FP_CLOSE) send_usb_tux_cmd(CLOSE_MOUTH_CMD, 0, 0, 0); + else if (final_state == FP_STOP) + send_usb_tux_cmd(STOP_MOUTH_CMD, 0, 0, 0); break; case (MOT_FLIPPERS): if (final_state == FP_UP) - send_usb_tux_cmd(RAISE_WINGS_CMD, 0, 0, 0); + send_usb_tux_cmd(RAISE_WINGS_CMD, 0, 0, 0); else if (final_state == FP_DOWN) send_usb_tux_cmd(LOWER_WINGS_CMD, 0, 0, 0); + else if (final_state == FP_STOP) + send_usb_tux_cmd(STOP_WINGS_CMD, 0, 0, 0); break; + case (MOT_SPIN_L): + if (final_state == FP_STOP) + send_usb_tux_cmd(STOP_SPIN_CMD, 0, 0, 0); + break; + case (MOT_SPIN_R): + if (final_state == FP_STOP) + send_usb_tux_cmd(STOP_SPIN_CMD, 0, 0, 0); + break; } } @@ -228,6 +254,10 @@ int ack, value; char type = 0; + if (motor == (MOT_SPIN_L) || motor == (MOT_SPIN_R)) + if (final_state != FP_STOP) + final_state = FP_UNDEFINED; + /* * Refresh has the maximum priority. If it's set, only the command to * refresh the PWM value is sent to Tux Modified: firmware/tuxdefs/defines.h =================================================================== --- firmware/tuxdefs/defines.h 2008-01-11 13:06:55 UTC (rev 843) +++ firmware/tuxdefs/defines.h 2008-01-11 14:39:01 UTC (rev 844) @@ -223,6 +223,7 @@ FP_UP = 1, FP_CLOSE = 2, FP_DOWN = 2, + FP_STOP = 3, } MOT_FINAL_POS_t; /** |
From: Paul_R <c2m...@c2...> - 2008-01-11 13:06:56
|
Author: Paul_R Date: 2008-01-11 14:06:55 +0100 (Fri, 11 Jan 2008) New Revision: 843 Modified: api/python/trunk/tuxapi_class.py api/python/trunk/tuxapi_const.py Log: * Added a new command : tux.cmd.move - Created constants on tuxapi_const.py Modified: api/python/trunk/tuxapi_class.py =================================================================== --- api/python/trunk/tuxapi_class.py 2008-01-11 13:03:00 UTC (rev 842) +++ api/python/trunk/tuxapi_class.py 2008-01-11 13:06:55 UTC (rev 843) @@ -1756,6 +1756,7 @@ tux.cmd.mouth_on tux.cmd.mouth_on_free tux.cmd.mouth_open + tux.cmd.move tux.cmd.ping tux.cmd.raw tux.cmd.sleep_off @@ -1892,7 +1893,99 @@ return 2 else: return self.cmd_ack() + + #-------------------------------------------------------------------------- + # Send a command to make move Tux. + #-------------------------------------------------------------------------- + def move(self, movement, counter=0, timeout=0, speed=5, final_state=0, refresh=0): + """ + General command to move Tux. + With this command, you can configure, for each type of movements, the + number of movements to do, or the duration of the movement. + You can also specify the final state to reach. + + Parameters : + "movement" as enum : Specify which movement must be configured + - 0 / EYES + - 1 / MOUTH + - 2 / FLIPPERS + - 3 / SPIN_L + - 4 / SPIN_R + "counter" as integer : Specify the number of movements. + To execute an infinite movement, this value + must be equal to 0. The timeout must also be + null, and the final state must stay undefined. + + To execute a single movement, count must be + null and a final state must be defined. + + value range : 0 ... 255 (0x00 ... 0xFF) + + "timeout" as float : Specify the duration of the movement (sec.) + This value has priority on counter. It means + that if counter and timeout are both defined, + the counter's value will be ignored. + + The minimal value is 0.01 (10 ms). + + If the value is lower than 0.3 (300 ms), the + final state will be ignored. Else, the final + state will be applied, so the time can be a + little bit greater than specified. + + "speed" as enum : This value specify the movement speed. + This parameter is only applicable for the + flippers and the spinning. + + - 1 / VERYLOW + - 2 / LOW + - 3 / MEDIUM + - 4 / MIDHIGH + - 5 / HIGH + + If speed is not defined, the default speed + (HIGH) will be used. + + "final_state" as enum : Specify the final state. + + - 0 / UNDEFINED + - 1 / OPEN / UP + - 2 / CLOSE / DOWN + + "refresh" as bool : Change speed only. + If this flag is set, only the speed will be + changed. This allow to change the speed during + a movement, without changing the number of + movements, or the timeout. + + Examples : + + Blink the eyes 7 time, and finish with the eyes open : + >>> tux.cmd.move(0, 7, 0, 0, 1, 0) + or + >>> tux.cmd.move(movement = EYES, counter = 7, final_state = 1) + + Move wings for 150ms with the maximum speed: + >>> tux.cmd.move(2, 0, 0.15, 5, 0, 0) + or + >>> tux.cmd.move(movement = FLIPPERS, timeout = 0.15, speed = 5) + + Infinite spinning, and change the speed : + >>> tux.cmd.move(3, 0, 0, 5, 0, False) + >>> tux.cmd.move(3, 0, 0, 2, 0, True) + or + >>> tux.cmd.move(movement = SPIN_L, speed = HIGH) + >>> tux.cmd.move(movement = SPIN_L, speed = LOW, refresh = True) + """ + if timeout: + if timeout <= 1.0/100.0: + timeout = 1.0/100.0 + timeout = timeout * 100.0 + + self.last_ack=self.estructured(TUX_CMD_STRUCT_MOTORS, movement, counter, \ + (int(timeout) & 0xFF00)>>8, (int(timeout) & 0xFF), speed, \ + final_state, int(refresh)) #-------------------------------------------------------------------------- # Send a command to tux for moving the eyes #-------------------------------------------------------------------------- Modified: api/python/trunk/tuxapi_const.py =================================================================== --- api/python/trunk/tuxapi_const.py 2008-01-11 13:03:00 UTC (rev 842) +++ api/python/trunk/tuxapi_const.py 2008-01-11 13:06:55 UTC (rev 843) @@ -297,6 +297,7 @@ TUX_CMD_STRUCT_PING = 0x0B TUX_CMD_STRUCT_SLEEP = 0x0C TUX_CMD_STRUCT_AUDIO_CHANNEL = 0x0D +TUX_CMD_STRUCT_MOTORS = 0x0E # Tux structured sub commands TUX_CMD_STRUCT_SUB_ON = 0x01 TUX_CMD_STRUCT_SUB_OFF = 0x02 @@ -316,6 +317,7 @@ TUX_CMD_STRUCT_SUB_ERASE = 0x0E TUX_CMD_STRUCT_SUB_SET = 0x0F TUX_CMD_STRUCT_SUB_PULSE = 0x10 +TUX_CMD_STRUCT_SUB_CONFIG = 0x11 # Tux request information TUX_REQ_INFO_VERSION = 0x01 @@ -457,6 +459,25 @@ NONE_BT =0 NULL_BT =0xFF +## tux.cmd.move function constant +EYES = 0 +MOUTH = 1 +FLIPPERS = 2 +SPIN_L = 3 +SPIN_R = 4 + +UNDEFINED = 0 +OPEN = 1 +UP = 1 +CLOSE = 2 +DOWN = 2 + +VERYLOW = 1 +LOW = 2 +MEDIUM = 3 +MIDHIGH = 4 +HIGH = 5 + HEAD_BUTTON_PUSHED =1 HEAD_BUTTON_RELEASED =2 LEFT_WING_PUSHED =3 |
From: Paul_R <c2m...@c2...> - 2008-01-11 13:03:02
|
Author: Paul_R Date: 2008-01-11 14:03:00 +0100 (Fri, 11 Jan 2008) New Revision: 842 Modified: daemon/trunk/movements.c Log: * Fixed a bug in the wings final state control. The status was inverted... Modified: daemon/trunk/movements.c =================================================================== --- daemon/trunk/movements.c 2008-01-11 10:30:31 UTC (rev 841) +++ daemon/trunk/movements.c 2008-01-11 13:03:00 UTC (rev 842) @@ -123,7 +123,7 @@ } case (MOT_FLIPPERS): { - condition = tux_status.io.wings_low; + condition = !tux_status.io.wings_low; if (value) value = movement_status_control(final_state, value, condition); else if (final_state != FP_UNDEFINED) |
From: Paul_R <c2m...@c2...> - 2008-01-11 10:30:33
|
Author: Paul_R Date: 2008-01-11 11:30:31 +0100 (Fri, 11 Jan 2008) New Revision: 841 Added: daemon/trunk/movements.c daemon/trunk/movements.h Modified: daemon/trunk/Makefile daemon/trunk/libs/USBDaemon_command_tux.c daemon/trunk/libs/USBDaemon_status_table.c daemon/trunk/libs/USBDaemon_status_table.h daemon/trunk/status.h firmware/tuxdefs/commands.h firmware/tuxdefs/defines.h Log: * Added the movements module : - Added the module in the makefile - Added the doxygen comments - Modified some definitions on defines.h and commands.h * Minor change on the status to store the wings positions. Modified: daemon/trunk/Makefile =================================================================== --- daemon/trunk/Makefile 2008-01-11 09:08:02 UTC (rev 840) +++ daemon/trunk/Makefile 2008-01-11 10:30:31 UTC (rev 841) @@ -47,6 +47,7 @@ $(OBJ_DIR)/supervise.o \ $(OBJ_DIR)/versioning.o \ $(OBJ_DIR)/led.o \ + $(OBJ_DIR)/movements.o \ $(OBJ_DIR)/log.o define build_target @@ -107,6 +108,9 @@ $(OBJ_DIR)/led.o: led.c led.h $(compile_source) +$(OBJ_DIR)/movements.o: movements.c movements.h + $(compile_source) + $(OBJ_DIR)/status.o: status.c status.h $(compile_source) Modified: daemon/trunk/libs/USBDaemon_command_tux.c =================================================================== --- daemon/trunk/libs/USBDaemon_command_tux.c 2008-01-11 09:08:02 UTC (rev 840) +++ daemon/trunk/libs/USBDaemon_command_tux.c 2008-01-11 10:30:31 UTC (rev 841) @@ -31,6 +31,7 @@ #include "../tuxdefs/commands.h" #include "USBDaemon_pidfile.h" #include "../led.h" +#include "../movements.h" #include "../status.h" /*_____________________ D E F I N I T I O N S ______________________________*/ @@ -361,6 +362,14 @@ /* Command type */ switch (data[0]) { + case TUX_CMD_STRUCT_MOTORS: + { + int timeout; + timeout = (data[3] << 8) + data[4]; + ACK = movements_control(data[1], data[2], (float)timeout / 100, + data[5], data[6], data[7]); + break; + } case TUX_CMD_STRUCT_EYES: switch (data[1]) { Modified: daemon/trunk/libs/USBDaemon_status_table.c =================================================================== --- daemon/trunk/libs/USBDaemon_status_table.c 2008-01-11 09:08:02 UTC (rev 840) +++ daemon/trunk/libs/USBDaemon_status_table.c 2008-01-11 10:30:31 UTC (rev 841) @@ -691,6 +691,7 @@ case STATUS_POSITION2_CMD: if (position2.Byte != new_status[1]) position2_changed(new_status[1]); + tux_status.io.wings_low = (bool)new_status[2]; break; case STATUS_LED_CMD: Modified: daemon/trunk/libs/USBDaemon_status_table.h =================================================================== --- daemon/trunk/libs/USBDaemon_status_table.h 2008-01-11 09:08:02 UTC (rev 840) +++ daemon/trunk/libs/USBDaemon_status_table.h 2008-01-11 10:30:31 UTC (rev 841) @@ -123,6 +123,7 @@ #define TUX_CMD_STRUCT_PING 0x0B #define TUX_CMD_STRUCT_SLEEP 0x0C #define TUX_CMD_STRUCT_AUDIO_CHANNEL 0x0D +#define TUX_CMD_STRUCT_MOTORS 0x0E /* Tux structured sub commands */ #define TUX_CMD_STRUCT_SUB_ON 0x01 @@ -143,6 +144,7 @@ #define TUX_CMD_STRUCT_SUB_ERASE 0x0E #define TUX_CMD_STRUCT_SUB_SET 0x0F #define TUX_CMD_STRUCT_SUB_PULSE 0x10 +#define TUX_CMD_STRUCT_SUB_CONFIG 0x11 /* Tux request information */ #define TUX_REQ_INFO_VERSION 0x01 Added: daemon/trunk/movements.c =================================================================== --- daemon/trunk/movements.c (rev 0) +++ daemon/trunk/movements.c 2008-01-11 10:30:31 UTC (rev 841) @@ -0,0 +1,283 @@ +/* + * Tux Droid - USB Daemon + * Copyright (C) 2007 KYSOH S.A. <in...@ky...> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + */ + +/* $Id: led.c 830 2008-01-04 16:59:01Z jaguarondi $ */ + + + +#include <assert.h> +#include <math.h> + +#include "movements.h" +#include "status.h" +#include "libs/USBDaemon_command_tux.h" +#include "libs/USBDaemon_status_table.h" +#include "tuxdefs/api.h" +#include "tuxdefs/commands.h" + +/* + * Prototypes + */ +int static movement_status_control(char final_state, int value, char condition); +int static control_final_state(char motor, char final_state, int value); +int static compute_value(char motor, float timeout); +void static single_movement(char motor, char final_state); + + +/** + * \brief Convert the timeout on a number of movements. + * \param motor Which motor should be configured. + * \param timeout The time (sec.) to convert. + * \return The number of movement to execute. + * + * The firmware use a timebase at 4ms, and is configured with a 8bit + * variable. + * + * The maximum timeout for the firmware is 4ms * 256. When the timeout + * exceed 1s, the time is converted on a number of movements. + * + * The time of each movement has been measured, and defined in movements.h. + */ +int static compute_value(char motor, float timeout) +{ + int value; + switch (motor) + { + case (MOT_EYES): + value = (int)(timeout / EYES_MOVE_TIME); + break; + case (MOT_MOUTH): + value = (int)(timeout / MOUTH_MOVE_TIME); + break; + case (MOT_FLIPPERS): + value = (int)(timeout / FLIPPERS_MOVE_TIME); + break; + case (MOT_SPIN_L): + value = (int)(timeout / SPIN_MOVE_TIME); + break; + case (MOT_SPIN_R): + value = (int)(timeout / SPIN_MOVE_TIME); + break; + } + + if (value > 255) + value = 255; + return value; +} + +/** + * \brief Control the final state. + * \param motor Which motor should be configured. + * \param final_state The wanted final state. + * \param value The actual number of movements value. + * \return The number of movements with the final_state. + * + * This function verify if the number of mouvements is OK to reach the desired + * final state. + * + * To do this, the actual motor state is analyzed to determine if the 'value' + * variable must be incremented or not. + * + * If the value is null and a final_state has been determined, a single movement + * is executed. + */ +int static control_final_state(char motor, char final_state, int value) +{ + int condition; + switch (motor) + { + case (MOT_EYES): + { + condition = !portd.bits.PB7; + if (value) + value = movement_status_control(final_state, value, condition); + else if (final_state != FP_UNDEFINED) + single_movement(motor, final_state); + break; + } + case (MOT_MOUTH): + { + condition = !portb.bits.PB4; + if (value) + value = movement_status_control(final_state, value, condition); + else if (final_state != FP_UNDEFINED) + single_movement(motor, final_state); + break; + } + case (MOT_FLIPPERS): + { + condition = tux_status.io.wings_low; + if (value) + value = movement_status_control(final_state, value, condition); + else if (final_state != FP_UNDEFINED) + single_movement(motor, final_state); + break; + } + } + return value; +} + +/** + * \brief Control the number of mouvements. + * \param final_state The wanted final state. + * \param value The actual number of movements. + * \param condition Status to determine the actual state. + * + * This function determines if the number of movements must be incremented or + * not. + * + * The 'condition' parameter must be equal to 1 when the position is + * closed or lower. + */ +int static movement_status_control(char final_state, int value, char condition) +{ + if (condition == 1 && final_state == FP_OPEN && !(value % 2)) + value ++; + else if (condition == 1 && final_state == FP_CLOSE && value % 2) + value ++; + else if (condition == 0 && final_state == FP_CLOSE && !(value % 2)) + value ++; + else if (condition == 0 && final_state == FP_OPEN && value % 2) + value ++; + return value; +} + +/** + * \brief Determine the command to send. + * \param motor Which motor should be configured. + * \param final_state The wanted final state. + * + * Each single movements has its own command. + * + * This function determine which command must to be sent to Tux. + */ +void single_movement(char motor, char final_state) +{ + switch (motor) + { + case (MOT_EYES): + if (final_state == FP_OPEN) + send_usb_tux_cmd(OPEN_EYES_CMD, 0, 0, 0); + else if (final_state == FP_CLOSE) + send_usb_tux_cmd(CLOSE_EYES_CMD, 0, 0, 0); + break; + + case (MOT_MOUTH): + if (final_state == FP_OPEN) + send_usb_tux_cmd(OPEN_MOUTH_CMD, 0, 0, 0); + else if (final_state == FP_CLOSE) + send_usb_tux_cmd(CLOSE_MOUTH_CMD, 0, 0, 0); + break; + + case (MOT_FLIPPERS): + if (final_state == FP_UP) + send_usb_tux_cmd(RAISE_WINGS_CMD, 0, 0, 0); + else if (final_state == FP_DOWN) + send_usb_tux_cmd(LOWER_WINGS_CMD, 0, 0, 0); + break; + } +} + +/** + * \brief Control et configure the movements. + * \param motor Which motor should be configured + * \param counter The number of movements to execute + * \param timeout The duration of the movement (if counter = 0) + * \param speed The PWM value. Only applicable for the wings and the spinning. + * \param final_state The final state to reach + * \param refresh Flag indicate if the entire command must be sent, or just the + * new PWM value. + * \return ack of tux command. + * + * This function analyzes the command received from the API. + * - 'Refresh' has the maximum priority. If this flag is set, only the command + * to change the PWM value is sent. + * - Timeout has priority on counter. + * - If timeout's value is defined, the movement will be executed for the + * specified time. + * - If timeout is lower than 300ms, the timeout will be controlled by the + * Tux's firmwares. In this case, the final state will be ignored. + * - Else, if timeout's value is greater than 300ms, the value is converted on + * a number of movements, and the final state is considered. + * - If 'counter' has been specified, a command is sent to Tux with this value. + * - To do an infinite movement, counter's and timeout's values must be null, + * and final_state must be undefined (0). + * - If 'counter' is equal to 0 and a final state has been specified, a single + * movement is executed if needed.* + */ +int movements_control(char motor, char counter, float timeout, + char speed, char final_state, char refresh) +{ + int ack, value; + char type = 0; + + /* + * Refresh has the maximum priority. If it's set, only the command to + * refresh the PWM value is sent to Tux + */ + if (refresh) + { + ack = send_usb_tux_cmd(MOTORS_CONFIG_CMD, motor, speed, 0); + } + else + { + /* + * Timeout has priority on counter. + */ + if (timeout == 0) + { + value = counter; + value = control_final_state(motor, final_state, value); + } + else + { + /* + * If timeout is lower than 300ms, the timeout value is sent to Tux + */ + if (timeout < 0.3) + { + type = 1; + value = timeout / 0.004; + } + /* + * Else, the timeout's value is converted on a number of movements. + * The final state is considered + */ + else + { + value = compute_value(motor, timeout); + value = control_final_state(motor, final_state, value); + } + } + /* + * If a normal movement must be sent, the value is not null, or if value + * is null, the final state must be also null (infinite movement). + * + * If the value is null and a final state has been specified, this means + * that a single move has already been sent. No command must be sent. + */ + if (value || !(final_state)) + { + ack = send_usb_tux_cmd(MOTORS_CONFIG_CMD, motor, speed, 0); + ack = send_usb_tux_cmd(MOTORS_SET_CMD, motor, value, type); + } + } + return ack; +} Added: daemon/trunk/movements.h =================================================================== --- daemon/trunk/movements.h (rev 0) +++ daemon/trunk/movements.h 2008-01-11 10:30:31 UTC (rev 841) @@ -0,0 +1,51 @@ +/* + * Tux Droid - USB Daemon + * Copyright (C) 2007 KYSOH S.A. <in...@ky...> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + */ + +/* $Id: led.h 830 2008-01-04 16:59:01Z jaguarondi $ */ + +/** \file movements.h + \ingroup movements +*/ + +/** \file movements.c + \ingroup movements +*/ + +/** \defgroup movements Movements + This module provides all the functions needed to make move Tux. +*/ +/*! @{ */ + +#ifndef _MOVEMENTS_H_ +#define _MOVEMENTS_H_ + +#include "tuxdefs/defines.h" + +#define EYES_MOVE_TIME 0.2 +#define MOUTH_MOVE_TIME 0.25 +#define FLIPPERS_MOVE_TIME 0.3 +#define SPIN_MOVE_TIME 0.2 +/* + * Prototypes + */ +extern int movements_control(char motor, char counter, float timeout, + char speed, char final_state, char refresh); +/*! @{ */ +#endif /* _MOVEMENTS_H_ */ Modified: daemon/trunk/status.h =================================================================== --- daemon/trunk/status.h 2008-01-11 09:08:02 UTC (rev 840) +++ daemon/trunk/status.h 2008-01-11 10:30:31 UTC (rev 841) @@ -206,6 +206,7 @@ go crazy when PWM is applied so they can't be used to determine the status of the LEDs. */ + bool wings_low; } io; }; Modified: firmware/tuxdefs/commands.h =================================================================== --- firmware/tuxdefs/commands.h 2008-01-11 09:08:02 UTC (rev 840) +++ firmware/tuxdefs/commands.h 2008-01-11 10:30:31 UTC (rev 841) @@ -88,6 +88,7 @@ #define LED_L_OFF_CMD 0x1D /* Turn left LED off */ #define LED_R_ON_CMD 0x1E /* Turn right LED on */ #define LED_R_OFF_CMD 0x1F /* Turn right LED off */ +#define LED_BLINK_CMD 0xD2 /* 1st parameter: number of LED toggles */ /* 2nd parameter: delay between each LED toggle, in multiple of 4ms */ Modified: firmware/tuxdefs/defines.h =================================================================== --- firmware/tuxdefs/defines.h 2008-01-11 09:08:02 UTC (rev 840) +++ firmware/tuxdefs/defines.h 2008-01-11 10:30:31 UTC (rev 841) @@ -212,18 +212,18 @@ MOT_SPIN_L, MOT_SPIN_R, } MOTOR_TYPE_t; - - /** * Defines indicating the final position */ -#define FP_EYES_CLOSE 0x80 -#define FP_EYES_OPEN 0x40 -#define FP_MOUTH_CLOSE 0x10 -#define FP_MOUTH_OPEN 0x08 -#define FP_FLIPPERS_UP 0x04 -#define FP_FLIPPERS_DOWN 0x02 +typedef enum +{ + FP_UNDEFINED = 0, + FP_OPEN = 1, + FP_UP = 1, + FP_CLOSE = 2, + FP_DOWN = 2, +} MOT_FINAL_POS_t; /** * Type indicating the status |
From: Paul_R <c2m...@c2...> - 2008-01-11 09:08:11
|
Author: Paul_R Date: 2008-01-11 10:08:02 +0100 (Fri, 11 Jan 2008) New Revision: 840 Modified: firmware/tuxcore/trunk/motors.c firmware/tuxdefs/defines.h Log: * Fixed a bug with the PWM values of the wings and the spinning motors. * Fixed a bug with the final position on the open_mouth and close_mouth functions. Modified: firmware/tuxcore/trunk/motors.c =================================================================== --- firmware/tuxcore/trunk/motors.c 2008-01-08 15:52:18 UTC (rev 839) +++ firmware/tuxcore/trunk/motors.c 2008-01-11 09:08:02 UTC (rev 840) @@ -513,30 +513,42 @@ \brief Open the mouth. \ingroup mouth - Open the mouth if they are closed. + This function open the mouth if it's not already open. + The command is sent only if the mouth is not open or if the motor is + running. + We don't know the absolute mouth position. So, a command is sent + with 2 movements, and a flag is set to specify the final position. When the + final position is reached, the mouth_move_counter is reinitialized, and the + motor will stop. */ void open_mouth(void) { - if (!(PSW_MOUTH_PIN & PSW_MOUTH_C_MK)) - move_mouth(1); - if (MOT_MOUTH_PT |= MOT_MOUTH_MK) - mouth_final_state = MOUTH_OPENED; + if (PSW_MOUTH_PIN & PSW_MOUTH_O_MK || MOT_MOUTH_PT & MOT_MOUTH_MK) + { move_mouth(2); + mouth_final_state = MOUTH_OPEN; + } } /** \brief Close the mouth. \ingroup mouth - Close the mouth if they are opened. + This function close the mouth if it's not already closed. + The command is sent only if the mouth is not closed or if the motor is + running. + We don't know the absolute mouth position. So, a command is sent + with 2 movements, and a flag is set to specify the final position. When the + final position is reached, the mouth_move_counter is reinitialized, and the + motor will stop. */ void close_mouth(void) { - if (!(PSW_MOUTH_PIN & PSW_MOUTH_O_MK)) - move_mouth(1); - if (MOT_MOUTH_PT |= MOT_MOUTH_MK) + if (PSW_MOUTH_PIN & PSW_MOUTH_C_MK || MOT_MOUTH_PT & MOT_MOUTH_MK) + { + move_mouth(2); mouth_final_state = MOUTH_CLOSED; - move_mouth(2); + } } /** @@ -565,7 +577,7 @@ mouth_move_counter--; if (mouth_final_state != MOUTH_UNKNOWN) { - if ((mouth_final_state == MOUTH_OPENED) && !(PSW_MOUTH_PIN & PSW_MOUTH_O_MK)) + if ((mouth_final_state == MOUTH_OPEN) && !(PSW_MOUTH_PIN & PSW_MOUTH_O_MK)) mouth_move_counter = 0; else if ((mouth_final_state == MOUTH_CLOSED) && !(PSW_MOUTH_PIN & PSW_MOUTH_C_MK)) mouth_move_counter = 0; @@ -645,6 +657,7 @@ //flippers_stop_delay = 0; MOT_FLIPPERS_BW_PT &= ~MOT_FLIPPERS_BW_MK; flippers_PWMMask |= MOT_FLIPPERS_FW_MK; + PORTB |= flippers_PWMMask; } /** @@ -828,6 +841,7 @@ spin_PWM = pwm; spin_PWM_mask &= ~MOT_SPIN_R_MK; spin_PWM_mask |= MOT_SPIN_L_MK; + PORTB |= portB_PWM_mask; } /** @@ -851,6 +865,7 @@ spin_PWM = pwm; spin_PWM_mask &= ~MOT_SPIN_L_MK; spin_PWM_mask |= MOT_SPIN_R_MK; + PORTB |= portB_PWM_mask; } /** \brief Spin position interrupt. Modified: firmware/tuxdefs/defines.h =================================================================== --- firmware/tuxdefs/defines.h 2008-01-08 15:52:18 UTC (rev 839) +++ firmware/tuxdefs/defines.h 2008-01-11 09:08:02 UTC (rev 840) @@ -194,10 +194,13 @@ typedef enum { MOUTH_UNKNOWN, - MOUTH_OPENED, + MOUTH_OPEN, MOUTH_CLOSED, } MOUTH_POSITION_t; +#define MOTORS_CMD_MASK 0x7F +#define MOTORS_VALUE_MASK 0x80 + /** * Type indicating the motor */ @@ -209,18 +212,18 @@ MOT_SPIN_L, MOT_SPIN_R, } MOTOR_TYPE_t; + + /** - * Type indicating the final position + * Defines indicating the final position */ -typedef enum -{ - FP_OPEN = 0, - FP_UP = 0, - FP_CLOSE = 1, - FP_DOWN = 1, - FP_UNDEFINED = 2, -} MOT_FINAL_POS_t; +#define FP_EYES_CLOSE 0x80 +#define FP_EYES_OPEN 0x40 +#define FP_MOUTH_CLOSE 0x10 +#define FP_MOUTH_OPEN 0x08 +#define FP_FLIPPERS_UP 0x04 +#define FP_FLIPPERS_DOWN 0x02 /** * Type indicating the status |
From: Paul_R <c2m...@c2...> - 2008-01-08 15:52:20
|
Author: Paul_R Date: 2008-01-08 16:52:18 +0100 (Tue, 08 Jan 2008) New Revision: 839 Modified: software/gadgets/flash_management/trunk/flash_management.tgf software/gadgets/flash_management/trunk/flash_management/Pictures/Icons/gadget.png Log: * Added the icon Modified: software/gadgets/flash_management/trunk/flash_management/Pictures/Icons/gadget.png =================================================================== (Binary files differ) Modified: software/gadgets/flash_management/trunk/flash_management.tgf =================================================================== (Binary files differ) |
From: MCMic <c2m...@c2...> - 2008-01-07 18:37:56
|
Author: MCMic Date: 2008-01-07 19:37:50 +0100 (Mon, 07 Jan 2008) New Revision: 838 Added: software/scripts/tux_trivia/trunk/quiz/FR-questions-bd Modified: software/scripts/tux_trivia/trunk/quiz/FR-questions-linux software/scripts/tux_trivia/trunk/quiz/FR-questions-maximes software/scripts/tux_trivia/trunk/quiz/US-questions-science software/scripts/tux_trivia/trunk/tux_trivia.py Log: The script now accept question's files who have an empty row at the end Added: software/scripts/tux_trivia/trunk/quiz/FR-questions-bd =================================================================== --- software/scripts/tux_trivia/trunk/quiz/FR-questions-bd (rev 0) +++ software/scripts/tux_trivia/trunk/quiz/FR-questions-bd 2008-01-07 18:37:50 UTC (rev 838) @@ -0,0 +1,36 @@ +Comment s'appelle le méchant oiseau créé par Gargamel ? +Krakoukasse +Koukrakasse +Comment s'appelle le petit compagnon de Tintin ? +Milou +Bille +Comment s'appelle de chat de Gargamel ? +Arzaël +Mirabelle +Comment s'appelle la monture de Luky Luke ? +Joly Jumper +Holy Dumper +Comment s'appelle le cocker , ami de Boule ? +Bill +Idéfixe +Comment s'appelle le poisson rouge de Gaston Lagaffe ? +Bubulle +Plouf +Comment s'appelle le petit chien d'Obélixe ? +Idéfixe +Mangedurixe +Comment s'appelle le gardien des frères Dalton ? +Rantanplan +Rintintin +Comment s'appelle la tortue , compagne de jeu de Bill ? +Caroline +Apoline +Comment s'appelle le gros chien , copain du petit Spirou ? +Vessie +Masseur +Comment s'appelle le canard , héros de jeu vidéo dans Kide Paddele ? +Rikiki +Rififi +Comment s'appelle le chien de Mickey ? +Pluto +Dingo Modified: software/scripts/tux_trivia/trunk/quiz/FR-questions-linux =================================================================== --- software/scripts/tux_trivia/trunk/quiz/FR-questions-linux 2008-01-07 16:42:34 UTC (rev 837) +++ software/scripts/tux_trivia/trunk/quiz/FR-questions-linux 2008-01-07 18:37:50 UTC (rev 838) @@ -1,12 +1,9 @@ En quelle année Linux est il sorti ? 1991. 1989. -Quel est le principal atout de Linux ? -C'est gratuit et plus fiable que Windows. -C'est très performant pour le multimédia. Quel animal représentant Linux est la mascotte de l'université d'Helsinki? +Un Manchot. Un Pingouin. -Un Caribou. Comment en 2003 la société S C O achetée par Microsoft a t elle essayée de déstabiliser Linux ? En revendiquant tous droits sur le noyau Linux. En payant des hackers pour détruire des serveurs Linux. @@ -16,14 +13,14 @@ Quel serveur web sous Linux est présent sur la plupart des serveurs du monde ? Apache. Comanche. -Quel lecteur multimédia ressemblant à Winamp est souvent utilisé sous Linux ? +Quel lecteur multimédia ressemblant à Winampe est souvent utilisé sous Linux ? XMMS. Totem. -Quel ancien mot bantou (langue d'Afrique) signifiant « Humanité aux autres » désigne une célèbre distribution Linux ? -Ubuntu. -Gentoo. +Quel ancien mot bantou signifiant "Humanité aux autres" désigne une célèbre distribution Linux ? +Oubountou. +Guennetoo. Qui a créé le Projet GNU en 1984 ? -Richard Stallman. +Richard Staullmane. Linus Torvalds. En 2005, Bill Gates a traité les linuxiens de ? Communistes de l'informatique. Modified: software/scripts/tux_trivia/trunk/quiz/FR-questions-maximes =================================================================== --- software/scripts/tux_trivia/trunk/quiz/FR-questions-maximes 2008-01-07 16:42:34 UTC (rev 837) +++ software/scripts/tux_trivia/trunk/quiz/FR-questions-maximes 2008-01-07 18:37:50 UTC (rev 838) @@ -28,4 +28,3 @@ Qui sème le vent récolte ? la tempête. la moisson. - Modified: software/scripts/tux_trivia/trunk/quiz/US-questions-science =================================================================== --- software/scripts/tux_trivia/trunk/quiz/US-questions-science 2008-01-07 16:42:34 UTC (rev 837) +++ software/scripts/tux_trivia/trunk/quiz/US-questions-science 2008-01-07 18:37:50 UTC (rev 838) @@ -91,4 +91,3 @@ What's the most malleable metal? Gold. Lead. - Modified: software/scripts/tux_trivia/trunk/tux_trivia.py =================================================================== --- software/scripts/tux_trivia/trunk/tux_trivia.py 2008-01-07 16:42:34 UTC (rev 837) +++ software/scripts/tux_trivia/trunk/tux_trivia.py 2008-01-07 18:37:50 UTC (rev 838) @@ -54,7 +54,7 @@ # Options # TODO list the files in the quiz folder and give the user a selection of # languages and topics -LANGUAGE="US-English" #Options at this time: US-English French +LANGUAGE="French" #Options at this time: US-English French TOPIC = "linux" # This will be added to the questions filename if LANGUAGE == "US-English": @@ -101,7 +101,11 @@ #mix beginning (by MCMic) question_list2 = [] +while len(question_list)%3 != 0: # for can divise len(question_list) by 3. + print(len(question_list)) + question_list.pop(-1) while len(question_list) > 0: + print(len(question_list)) num = randrange(len(question_list)/3) question_list2.append(question_list[3*num]) question_list2.append(question_list[3*num+1]) |
From: Paul_R <c2m...@c2...> - 2008-01-07 16:42:42
|
Author: Paul_R Date: 2008-01-07 17:42:34 +0100 (Mon, 07 Jan 2008) New Revision: 837 Modified: firmware/tuxcore/trunk/motors.c firmware/tuxcore/trunk/motors.h Log: * Removed the backup structures (motors_t) Modified: firmware/tuxcore/trunk/motors.c =================================================================== --- firmware/tuxcore/trunk/motors.c 2008-01-07 16:30:37 UTC (rev 836) +++ firmware/tuxcore/trunk/motors.c 2008-01-07 16:42:34 UTC (rev 837) @@ -31,18 +31,10 @@ #include "motors.h" #include "common/defines.h" /** - * \name Motors structures + * \name Motors PWM * @{ */ -motors_t eyes_params; -motors_t mouth_params; -motors_t flippers_params = -{ - .pwm = 5, -}; -motors_t spin_params = -{ - .pwm = 5, -}; +uint8_t flippers_params_pwm = 5; +uint8_t spin_params_pwm = 5; /*! @} */ /** @@ -185,73 +177,58 @@ \brief Parse the MOTORS_SET_CMD to command a motor with a specific number of movements. \param motor The motor to command \param value The number of movements or/ the timeout valueto execute - \param params bit 0 & 1 : The final state; bit 2 : 0 for count, 1 for timeout + \param param bit 0 : 0 for count, 1 for timeout */ void motors_run(uint8_t motor, uint8_t const value, uint8_t const param) { uint8_t cnt; + if (motor == MOT_EYES) { if (param & 0x01) { - eyes_params.delay = value; eyes_stop_delay = value; cnt = 0; } else - { - eyes_params.count = value; cnt = value; - } blink_eyes(cnt); } else if (motor == MOT_MOUTH) { if (param & 0x01) { - mouth_params.delay = value; mouth_stop_delay = value; cnt = 0; } else - { - mouth_params.count = value; cnt = value; - } move_mouth(cnt); } else if (motor == MOT_FLIPPERS) { if (param & 0x01) { - flippers_params.delay = value; flippers_stop_delay = value; cnt = 0; } else - { - flippers_params.count = value; cnt = value; - } - wave_flippers(cnt, flippers_params.pwm); + wave_flippers(cnt, flippers_params_pwm); } else if (motor == (MOT_SPIN_L) || motor == (MOT_SPIN_R)) { if (param & 0x01) { - spin_params.delay = value; spin_stop_delay = value; cnt = 0; } else - { - spin_params.count = value; cnt = value; - } if (motor == MOT_SPIN_L) - spin_left(value, spin_params.pwm); + spin_left(value, spin_params_pwm); else - spin_right(value, spin_params.pwm); + spin_right(value, spin_params_pwm); } } @@ -261,18 +238,17 @@ \param pwm The PWM value The PWM can be used only for the spinning and the flippers. - */ void motors_config(uint8_t const motor, uint8_t const pwm) { if (motor == MOT_FLIPPERS) { - flippers_params.pwm = pwm; + flippers_params_pwm = pwm; flippers_PWM = pwm; } else if (motor == (MOT_SPIN_L) || motor == (MOT_SPIN_R)) { - spin_params.pwm = pwm; + spin_params_pwm = pwm; spin_PWM = pwm; } } Modified: firmware/tuxcore/trunk/motors.h =================================================================== --- firmware/tuxcore/trunk/motors.h 2008-01-07 16:30:37 UTC (rev 836) +++ firmware/tuxcore/trunk/motors.h 2008-01-07 16:42:34 UTC (rev 837) @@ -106,19 +106,4 @@ */ extern void motor_control(void); -/* - * Motors status structure - */ -typedef struct motors_t -{ - uint8_t count; - uint8_t pwm; - uint8_t delay; -} motors_t; - -extern motors_t eyes_params; -extern motors_t mouth_params; -extern motors_t flippers_params; -extern motors_t spin_params; - #endif /* _MOTORS_H_ */ |
From: jaguarondi <c2m...@c2...> - 2008-01-07 16:30:35
|
Author: jaguarondi Date: 2008-01-07 17:30:37 +0100 (Mon, 07 Jan 2008) New Revision: 836 Modified: firmware/tuxcore/trunk/led.c firmware/tuxcore/trunk/parser.c Log: * Now pusing is stopped when a new led_set command is called. That's the way to stop pulsing. * Removed some old commands in order to save space, we're getting short now. Modified: firmware/tuxcore/trunk/led.c =================================================================== --- firmware/tuxcore/trunk/led.c 2008-01-07 16:08:17 UTC (rev 835) +++ firmware/tuxcore/trunk/led.c 2008-01-07 16:30:37 UTC (rev 836) @@ -169,8 +169,8 @@ void led_pulse(leds_t leds, uint8_t const cnt, uint8_t const pulse_width) { /* XXX we should really find a way to optimize this loop for the 2 leds. - * We don't want to add a new function call, bu don't want to have the code - * written twice. Maybe an inline function can do it with compiler + * We don't want to add a new function call, but don't want to have the + * code written twice. Maybe an inline function can do it with compiler * optimizations. */ led_t *led = &left_led; @@ -228,11 +228,12 @@ } /** - \brief Set the delay and step which determine the speed of the fading effect. + \brief Set the delay and step which determine the speed of the fading + effect. \ingroup led \param leds Which LEDs are affected by the command \param delay Number of 4ms loops before the intensity is changed. See struct - led_command. + led_command. \param step Intenisty step applied when fading. */ void led_set_fade_speed(leds_t leds, uint8_t const delay, uint8_t const step) @@ -282,6 +283,10 @@ } led->command.setpoint = intensity; led->status.fading = true; + /* Disable pulsing at the same time. */ + led->status.pulsing = false; + led->var.pulse_tmr = 0; + led->var.pulse_flag = false; } } Modified: firmware/tuxcore/trunk/parser.c =================================================================== --- firmware/tuxcore/trunk/parser.c 2008-01-07 16:08:17 UTC (rev 835) +++ firmware/tuxcore/trunk/parser.c 2008-01-07 16:30:37 UTC (rev 836) @@ -150,9 +150,8 @@ return; } - /* Deprecated functions, may be removed in firmware v0.5. */ - /* The first 3 can be kept for the standalone as they're simpler than the - * other LED functions. */ + /* Deprecated functions, though they can be kept for the standalone as + * they're simpler than the other LED functions. */ else if (command[0] == LED_ON_CMD) { led_set_intensity(LED_BOTH, 0xFF); @@ -172,22 +171,6 @@ led_pulse(LED_BOTH, command[1], command[2]); } } - else if (command[0] == LED_L_ON_CMD) - { - led_set_intensity(LED_LEFT, 0xFF); - } - else if (command[0] == LED_L_OFF_CMD) - { - led_set_intensity(LED_LEFT, 0x0); - } - else if (command[0] == LED_R_ON_CMD) - { - led_set_intensity(LED_RIGHT, 0xFF); - } - else if (command[0] == LED_R_OFF_CMD) - { - led_set_intensity(LED_RIGHT, 0x0); - } /* Moves */ else if (command[0] == BLINK_EYES_CMD) |
From: Paul_R <c2m...@c2...> - 2008-01-07 16:08:18
|
Author: Paul_R Date: 2008-01-07 17:08:17 +0100 (Mon, 07 Jan 2008) New Revision: 835 Modified: firmware/tuxcore/trunk/motors.c firmware/tuxcore/trunk/motors.h firmware/tuxcore/trunk/parser.c firmware/tuxdefs/api.h firmware/tuxdefs/defines.h Log: * Added two new commands (OxD4 - MOTORS_RUN and 0x81 - MOTORS_CONFIG) to commands the motors. The motors can be configured with a number of movements, or with a duration. (time base : 4ms : max 255*4ms). Modified: firmware/tuxcore/trunk/motors.c =================================================================== --- firmware/tuxcore/trunk/motors.c 2008-01-07 16:03:39 UTC (rev 834) +++ firmware/tuxcore/trunk/motors.c 2008-01-07 16:08:17 UTC (rev 835) @@ -30,6 +30,20 @@ #include "global.h" #include "motors.h" #include "common/defines.h" +/** + * \name Motors structures + * @{ */ +motors_t eyes_params; +motors_t mouth_params; +motors_t flippers_params = +{ + .pwm = 5, +}; +motors_t spin_params = +{ + .pwm = 5, +}; +/*! @} */ /** * \name Braking delays @@ -161,6 +175,107 @@ } /*! @} */ +/** + * \name Motors command parser + * These functions parse the received command, and call the specific motor + * function. + * @{ */ +/** \ingroup movements */ +/** + \brief Parse the MOTORS_SET_CMD to command a motor with a specific number of movements. + \param motor The motor to command + \param value The number of movements or/ the timeout valueto execute + \param params bit 0 & 1 : The final state; bit 2 : 0 for count, 1 for timeout + */ +void motors_run(uint8_t motor, uint8_t const value, uint8_t const param) +{ + uint8_t cnt; + if (motor == MOT_EYES) + { + if (param & 0x01) + { + eyes_params.delay = value; + eyes_stop_delay = value; + cnt = 0; + } + else + { + eyes_params.count = value; + cnt = value; + } + blink_eyes(cnt); + } + else if (motor == MOT_MOUTH) + { + if (param & 0x01) + { + mouth_params.delay = value; + mouth_stop_delay = value; + cnt = 0; + } + else + { + mouth_params.count = value; + cnt = value; + } + move_mouth(cnt); + } + else if (motor == MOT_FLIPPERS) + { + if (param & 0x01) + { + flippers_params.delay = value; + flippers_stop_delay = value; + cnt = 0; + } + else + { + flippers_params.count = value; + cnt = value; + } + wave_flippers(cnt, flippers_params.pwm); + } + else if (motor == (MOT_SPIN_L) || motor == (MOT_SPIN_R)) + { + if (param & 0x01) + { + spin_params.delay = value; + spin_stop_delay = value; + cnt = 0; + } + else + { + spin_params.count = value; + cnt = value; + } + if (motor == MOT_SPIN_L) + spin_left(value, spin_params.pwm); + else + spin_right(value, spin_params.pwm); + } +} + +/** + \brief Parse the MOTORS_SET_CMD to command a motor with a specific number of movements. + \param motor The motor to command + \param pwm The PWM value + + The PWM can be used only for the spinning and the flippers. + + */ +void motors_config(uint8_t const motor, uint8_t const pwm) +{ + if (motor == MOT_FLIPPERS) + { + flippers_params.pwm = pwm; + flippers_PWM = pwm; + } + else if (motor == (MOT_SPIN_L) || motor == (MOT_SPIN_R)) + { + spin_params.pwm = pwm; + spin_PWM = pwm; + } +} /** Counter for flipper interrupt suspend. */ uint8_t static suspend_flippers_delay = 0; @@ -255,7 +370,7 @@ { gStatus.mot |= GSTATUS_MOT_EYES; eyes_move_counter = cnt; - eyes_stop_delay = 0; + //eyes_stop_delay = 0; run_eyes_motor(); } @@ -414,7 +529,7 @@ { gStatus.mot |= GSTATUS_MOT_MOUTH; mouth_move_counter = cnt; - mouth_stop_delay = 0; + //mouth_stop_delay = 0; run_mouth_motor(); } @@ -551,7 +666,7 @@ gStatus.mot |= GSTATUS_MOT_WINGS; flippers_move_counter = cnt; flippers_PWM = pwm; - flippers_stop_delay = 0; + //flippers_stop_delay = 0; MOT_FLIPPERS_BW_PT &= ~MOT_FLIPPERS_BW_MK; flippers_PWMMask |= MOT_FLIPPERS_FW_MK; } Modified: firmware/tuxcore/trunk/motors.h =================================================================== --- firmware/tuxcore/trunk/motors.h 2008-01-07 16:03:39 UTC (rev 834) +++ firmware/tuxcore/trunk/motors.h 2008-01-07 16:08:17 UTC (rev 835) @@ -76,6 +76,12 @@ void initMotors(void); /* + * Motors commands parser + */ +extern void motors_run(uint8_t const motor, uint8_t const value, uint8_t const param); +extern void motors_config(uint8_t const motor, uint8_t const pwm); + +/* * Movements */ extern void stop_eyes(void); @@ -100,4 +106,19 @@ */ extern void motor_control(void); +/* + * Motors status structure + */ +typedef struct motors_t +{ + uint8_t count; + uint8_t pwm; + uint8_t delay; +} motors_t; + +extern motors_t eyes_params; +extern motors_t mouth_params; +extern motors_t flippers_params; +extern motors_t spin_params; + #endif /* _MOTORS_H_ */ Modified: firmware/tuxcore/trunk/parser.c =================================================================== --- firmware/tuxcore/trunk/parser.c 2008-01-07 16:03:39 UTC (rev 834) +++ firmware/tuxcore/trunk/parser.c 2008-01-07 16:08:17 UTC (rev 835) @@ -66,72 +66,15 @@ gStatus.audio_status = command[3]; return; } - - /* Moves */ - else if (command[0] == BLINK_EYES_CMD) + /* Move */ + else if (command[0] == MOTORS_SET_CMD) { - blink_eyes(command[1]); + motors_run(command[1], command[2], command[3]); } - else if (command[0] == STOP_EYES_CMD) + else if (command[0] == MOTORS_CONFIG_CMD) { - stop_eyes(); + motors_config(command[1], command[2]); } - else if (command[0] == OPEN_EYES_CMD) - { - open_eyes(); - } - else if (command[0] == CLOSE_EYES_CMD) - { - close_eyes(); - } - else if (command[0] == MOVE_MOUTH_CMD) - { - move_mouth(command[1]); - } - else if (command[0] == OPEN_MOUTH_CMD) - { - open_mouth(); - } - else if (command[0] == CLOSE_MOUTH_CMD) - { - close_mouth(); - } - else if (command[0] == STOP_MOUTH_CMD) - { - stop_mouth(); - } - else if (command[0] == WAVE_WINGS_CMD) - { - wave_flippers(command[1], command[2]); - } - else if (command[0] == RAISE_WINGS_CMD) - { - raise_flippers(); - } - else if (command[0] == LOWER_WINGS_CMD) - { - lower_flippers(); - } - else if (command[0] == RESET_WINGS_CMD) - { - reset_flippers(); - } - else if (command[0] == STOP_WINGS_CMD) - { - stop_flippers(); - } - else if (command[0] == SPIN_LEFT_CMD) - { - spin_left(command[1], command[2]); - } - else if (command[0] == SPIN_RIGHT_CMD) - { - spin_right(command[1], command[2]); - } - else if (command[0] == STOP_SPIN_CMD) - { - stop_spinning(); - } /* Leds */ else if (command[0] == LED_PULSE_RANGE_CMD) { @@ -245,6 +188,72 @@ { led_set_intensity(LED_RIGHT, 0x0); } + + /* Moves */ + else if (command[0] == BLINK_EYES_CMD) + { + blink_eyes(command[1]); + } + else if (command[0] == STOP_EYES_CMD) + { + stop_eyes(); + } + else if (command[0] == OPEN_EYES_CMD) + { + open_eyes(); + } + else if (command[0] == CLOSE_EYES_CMD) + { + close_eyes(); + } + else if (command[0] == MOVE_MOUTH_CMD) + { + move_mouth(command[1]); + } + else if (command[0] == OPEN_MOUTH_CMD) + { + open_mouth(); + } + else if (command[0] == CLOSE_MOUTH_CMD) + { + close_mouth(); + } + else if (command[0] == STOP_MOUTH_CMD) + { + stop_mouth(); + } + else if (command[0] == WAVE_WINGS_CMD) + { + wave_flippers(command[1], command[2]); + } + else if (command[0] == RAISE_WINGS_CMD) + { + raise_flippers(); + } + else if (command[0] == LOWER_WINGS_CMD) + { + lower_flippers(); + } + else if (command[0] == RESET_WINGS_CMD) + { + reset_flippers(); + } + else if (command[0] == STOP_WINGS_CMD) + { + stop_flippers(); + } + else if (command[0] == SPIN_LEFT_CMD) + { + spin_left(command[1], command[2]); + } + else if (command[0] == SPIN_RIGHT_CMD) + { + spin_right(command[1], command[2]); + } + else if (command[0] == STOP_SPIN_CMD) + { + stop_spinning(); + } /* Undefined commands */ else Modified: firmware/tuxdefs/api.h =================================================================== --- firmware/tuxdefs/api.h 2008-01-07 16:03:39 UTC (rev 834) +++ firmware/tuxdefs/api.h 2008-01-07 16:08:17 UTC (rev 835) @@ -277,8 +277,35 @@ /*! @} */ +/** \name Movement commands + * Theses commands are used to move Tux. + * @{ */ + +/** + * Execute a defined number of movements, with a specified final state. + * + * Parameters: + * - 1 : The motor to command + * - 2 : The count or/ timeout value + * - 3 : + * .0..1 : The final state + * .2 : 0 for count, 1 for timeout + */ +#define MOTORS_SET_CMD 0xD4 + +/** + * Execute a movement for a defined time and specify the PWM duty cycle. + * + * Parameters: + * - 1 : The motor to command + * - 2 : The PWM frequency + */ +#define MOTORS_CONFIG_CMD 0x81 /*! @} */ + +/*! @} */ + /** States of the audio recording (flash programming) process */ typedef enum audiorec_status { Modified: firmware/tuxdefs/defines.h =================================================================== --- firmware/tuxdefs/defines.h 2008-01-07 16:03:39 UTC (rev 834) +++ firmware/tuxdefs/defines.h 2008-01-07 16:08:17 UTC (rev 835) @@ -188,7 +188,6 @@ * \name Movements */ /*! @{ */ - /** * Type indicating the mouth position. */ @@ -199,6 +198,43 @@ MOUTH_CLOSED, } MOUTH_POSITION_t; +/** + * Type indicating the motor + */ +typedef enum +{ + MOT_EYES, + MOT_MOUTH, + MOT_FLIPPERS, + MOT_SPIN_L, + MOT_SPIN_R, +} MOTOR_TYPE_t; + +/** + * Type indicating the final position + */ +typedef enum +{ + FP_OPEN = 0, + FP_UP = 0, + FP_CLOSE = 1, + FP_DOWN = 1, + FP_UNDEFINED = 2, +} MOT_FINAL_POS_t; + +/** + * Type indicating the status + */ +typedef enum +{ + STAT_STOPPED = 0, + STAT_OPEN = 1, + STAT_UP = 1, + STAT_CLOSE = 2, + STAT_DOWN = 2, + STAT_RUNNING = 3, +} MOT_STATUS_t; + /*! @} */ /** |
From: jaguarondi <c2m...@c2...> - 2008-01-07 16:03:40
|
Author: jaguarondi Date: 2008-01-07 17:03:39 +0100 (Mon, 07 Jan 2008) New Revision: 834 Modified: firmware/tuxcore/trunk/parser.c firmware/tuxdefs/commands.h firmware/tuxdefs/config.h Log: * Disabled the LED standalone actions (i.e. blink when pressing the head button) if an LED command is ongoing, otherwise it is stopped. Modified: firmware/tuxcore/trunk/parser.c =================================================================== --- firmware/tuxcore/trunk/parser.c 2008-01-07 11:57:28 UTC (rev 833) +++ firmware/tuxcore/trunk/parser.c 2008-01-07 16:03:39 UTC (rev 834) @@ -147,7 +147,7 @@ } else if (command[0] == LED_SET_CMD) { - led_set_intensity(command[1], command[2]); + led_set_intensity(command[1], command[2]); } else if (command[0] == IR_SEND_RC5_CMD) { @@ -208,6 +208,8 @@ } /* Deprecated functions, may be removed in firmware v0.5. */ + /* The first 3 can be kept for the standalone as they're simpler than the + * other LED functions. */ else if (command[0] == LED_ON_CMD) { led_set_intensity(LED_BOTH, 0xFF); @@ -216,6 +218,17 @@ { led_set_intensity(LED_BOTH, 0x0); } + else if (command[0] == LED_TOGGLE_CMD) + { + /* Only toggle from the standalone if no computer commands are already + * driving the LEDs. */ + if (!(left_led.status.fading || left_led.status.pulsing \ + || right_led.status.fading || right_led.status.pulsing)) + { + led_set_fade_speed(LED_BOTH, 1, 10); + led_pulse(LED_BOTH, command[1], command[2]); + } + } else if (command[0] == LED_L_ON_CMD) { led_set_intensity(LED_LEFT, 0xFF); @@ -232,10 +245,6 @@ { led_set_intensity(LED_RIGHT, 0x0); } - else if (command[0] == 0x9A) /* old pulse function */ - { - led_pulse(3, command[1], command[2]); - } /* Undefined commands */ else Modified: firmware/tuxdefs/commands.h =================================================================== --- firmware/tuxdefs/commands.h 2008-01-07 11:57:28 UTC (rev 833) +++ firmware/tuxdefs/commands.h 2008-01-07 16:03:39 UTC (rev 834) @@ -83,6 +83,7 @@ #define LED_ON_CMD 0x1A /* Turn all LEDs on */ #define LED_OFF_CMD 0x1B /* Turn all LEDs off */ +#define LED_TOGGLE_CMD 0x9A /* Turn all LEDs off */ #define LED_L_ON_CMD 0x1C /* Turn left LED on */ #define LED_L_OFF_CMD 0x1D /* Turn left LED off */ #define LED_R_ON_CMD 0x1E /* Turn right LED on */ Modified: firmware/tuxdefs/config.h =================================================================== --- firmware/tuxdefs/config.h 2008-01-07 11:57:28 UTC (rev 833) +++ firmware/tuxdefs/config.h 2008-01-07 16:03:39 UTC (rev 834) @@ -49,29 +49,26 @@ /* Head button event */ #define HEAD_E_SEQ {\ - 0, LED_FADE_SPEED_CMD, 3, 1, 10, \ - 0, LED_PULSE_CMD, 3, 2, 30, /* Pulse LEDs once */\ + 0, LED_TOGGLE_CMD, 2, 30, 0, /* Pulse LEDs once */\ END_OF_ACTIONS\ } /* Left flipper button event */ #define LEFT_FLIP_E_SEQ {\ - 0, LED_FADE_SPEED_CMD, 3, 1, 10, \ - 0, LED_PULSE_CMD, 3, 2, 30, /* Pulse LEDs once */\ + 0, LED_TOGGLE_CMD, 2, 30, 0, /* Pulse LEDs once */\ END_OF_ACTIONS\ } /* Right flipper event */ #define RIGHT_FLIP_E_SEQ {\ - 0, LED_FADE_SPEED_CMD, 3, 1, 10, \ - 0, LED_PULSE_CMD, 3, 2, 30, /* Pulse LEDs once */\ + 0, LED_TOGGLE_CMD, 2, 30, 0, /* Pulse LEDs once */\ END_OF_ACTIONS\ } /* Start charging event */ #define CHARGER_START_E_SEQ {\ 0, MOVE_MOUTH_CMD, 2, 0, 0, /* move the mouth */\ - 0, LED_PULSE_CMD, 3, 4, 50, /* Pulse LEDs twice */\ + 0, LED_TOGGLE_CMD, 4, 50, 0, /* Pulse LEDs twice */\ 0, PLAY_SOUND_CMD, 3, 0, 0, /* play a sound */\ END_OF_ACTIONS\ } @@ -99,13 +96,13 @@ /* RF connection event */ #define RF_CONN_E_SEQ {\ - 0, LED_SET_CMD, LED_BOTH, 0xFF, 0, /* turn on the leds */\ + 0, LED_ON_CMD, 0, 0, 0, /* turn on the leds */\ END_OF_ACTIONS\ } /* RF disconnection event */ #define RF_DISCONN_E_SEQ {\ - 0, LED_SET_CMD, LED_BOTH, 0, 0, /* turn off the leds */\ + 0, LED_OFF_CMD, 0, 0, 0, /* turn off the leds */\ END_OF_ACTIONS\ } |
From: Paul_R <c2m...@c2...> - 2008-01-07 11:57:28
|
Author: Paul_R Date: 2008-01-07 12:57:28 +0100 (Mon, 07 Jan 2008) New Revision: 833 Modified: software/gadgets/flash_management/trunk/flash_management.tgf software/gadgets/flash_management/trunk/flash_management/Scripts/Python/GUI/widget/other.glade software/gadgets/flash_management/trunk/flash_management/Scripts/Python/GUI/widget/other.pyp software/gadgets/flash_management/trunk/flash_management/Scripts/Python/main.pyp Log: * Added a protection to disable to close the window ([X] or key STB) while the programming isn't finished. Modified: software/gadgets/flash_management/trunk/flash_management/Scripts/Python/GUI/widget/other.glade =================================================================== --- software/gadgets/flash_management/trunk/flash_management/Scripts/Python/GUI/widget/other.glade 2008-01-07 10:56:31 UTC (rev 832) +++ software/gadgets/flash_management/trunk/flash_management/Scripts/Python/GUI/widget/other.glade 2008-01-07 11:57:28 UTC (rev 833) @@ -639,6 +639,7 @@ <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> <property name="focus_on_map">True</property> <property name="urgency_hint">False</property> + <signal name="delete_event" handler="on_window1_delete_event" last_modification_time="Mon, 07 Jan 2008 11:24:04 GMT"/> <child> <widget class="GtkVBox" id="vbox4"> Modified: software/gadgets/flash_management/trunk/flash_management/Scripts/Python/GUI/widget/other.pyp =================================================================== --- software/gadgets/flash_management/trunk/flash_management/Scripts/Python/GUI/widget/other.pyp 2008-01-07 10:56:31 UTC (rev 832) +++ software/gadgets/flash_management/trunk/flash_management/Scripts/Python/GUI/widget/other.pyp 2008-01-07 11:57:28 UTC (rev 833) @@ -15,6 +15,7 @@ root="window1", domain="params", **kwargs): SimpleGladeApp.__init__(self, path, root, domain, **kwargs) + _me.set_param('programming', False) self.prev = False self.flag = True self.__sound_mutex = threading.Lock() @@ -28,10 +29,14 @@ wavs.wav_paths=[] wavs.wav_sizes=[] thread.start_new_thread(self.update, ()) + + + def on_window1_delete_event(self, widget, *args): + if _me.get_param('programming') == True: + return True + else: + _me.exit_main_loop() - def on_window1_destroy(self, widget, *args): - pass - #------------------------------------------------------------ # This function update all labels and create the GUI #------------------------------------------------------------ @@ -197,8 +202,6 @@ if str(self.get_widget("soundInternalChooser").get_filename())=="None": return path = str(self.get_widget("soundInternalChooser").get_filename()) wavfile = wave.open(path, 'r') - print wavfile.getsampwidth() - print wavfile.getframerate() if wavfile.getsampwidth() != 1 or wavfile.getframerate() != 8000: dialog = GdgDialog(_me.string('Warning'), _me.string('FileSample')) wavfile.close() @@ -287,7 +290,7 @@ def sound_storing(self): if self.__sound_mutex.locked(): return - + _me.set_param('programming', True) self.__sound_mutex.acquire() behavior = True audio = True @@ -412,7 +415,7 @@ self.get_widget('progressbar1').set_fraction(1) self.get_widget('lblSoundState').set_text(_me.string('Succeeded')) - + _me.set_param('programming', False) self.__sound_mutex.release() def on_disconnected(self): @@ -421,6 +424,7 @@ self.get_widget('progressbar1').set_fraction(1) self.get_widget('lblSoundState').set_text(_me.string('norf')) if self.__sound_mutex.locked(): + _me.set_param('programming', False) self.__sound_mutex.release() #-------------------------------------------------------------------------- Modified: software/gadgets/flash_management/trunk/flash_management/Scripts/Python/main.pyp =================================================================== --- software/gadgets/flash_management/trunk/flash_management/Scripts/Python/main.pyp 2008-01-07 10:56:31 UTC (rev 832) +++ software/gadgets/flash_management/trunk/flash_management/Scripts/Python/main.pyp 2008-01-07 11:57:28 UTC (rev 833) @@ -2,6 +2,8 @@ import time def on_standby(): + if _me.get_param('programming') == True: + return _me.gui('widget').hide_from_main() _me.exit_main_loop() Modified: software/gadgets/flash_management/trunk/flash_management.tgf =================================================================== (Binary files differ) |
From: Paul_R <c2m...@c2...> - 2008-01-07 10:56:35
|
Author: Paul_R Date: 2008-01-07 11:56:31 +0100 (Mon, 07 Jan 2008) New Revision: 832 Modified: software/gadgets/flash_management/trunk/flash_management.tgf software/gadgets/flash_management/trunk/flash_management/Scripts/Python/main.pyp software/gadgets/flash_management/trunk/flash_management/settings.xml Log: * Changed the way to launch the gadget. Now, the gadget is launched from the main to be able to stop all the notifications. Modified: software/gadgets/flash_management/trunk/flash_management/Scripts/Python/main.pyp =================================================================== --- software/gadgets/flash_management/trunk/flash_management/Scripts/Python/main.pyp 2008-01-07 08:28:50 UTC (rev 831) +++ software/gadgets/flash_management/trunk/flash_management/Scripts/Python/main.pyp 2008-01-07 10:56:31 UTC (rev 832) @@ -1 +1,14 @@ +import os +import time +def on_standby(): + _me.gui('widget').hide_from_main() + _me.exit_main_loop() + +def start_gadget(): + tux.event.on_remote_bt[K_STANDBY] = on_standby + _me.gui('widget').show_from_main() + _me.run_main_loop() + +_me.insert_funct('on_standby', on_standby) +start_gadget() Modified: software/gadgets/flash_management/trunk/flash_management/settings.xml =================================================================== --- software/gadgets/flash_management/trunk/flash_management/settings.xml 2008-01-07 08:28:50 UTC (rev 831) +++ software/gadgets/flash_management/trunk/flash_management/settings.xml 2008-01-07 10:56:31 UTC (rev 832) @@ -13,11 +13,11 @@ <visible type='bool'>False</visible> </widget> </gui_state> - <have_main_part type='bool'>False</have_main_part> + <have_main_part type='bool'>True</have_main_part> <have_settings_part type='bool'>False</have_settings_part> - <have_widget_part type='bool'>True</have_widget_part> + <have_widget_part type='bool'>False</have_widget_part> <language type='str'>en_US</language> - <main_priority type='int'>0</main_priority> + <main_priority type='int'>99</main_priority> <menu_active type='bool'>True</menu_active> <notified type='bool'>True</notified> <notify_delay type='int'>60</notify_delay> Modified: software/gadgets/flash_management/trunk/flash_management.tgf =================================================================== (Binary files differ) |