From ff1bb3aad03aa51f53336850c9d67594f8f353ce Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Sat, 02 Nov 2013 20:49:52 +0000 Subject: more conversions to new primitive format --- diff --git a/plugins/audio_sensors/audio_sensors.py b/plugins/audio_sensors/audio_sensors.py index faacd89..525a244 100644 --- a/plugins/audio_sensors/audio_sensors.py +++ b/plugins/audio_sensors/audio_sensors.py @@ -35,10 +35,7 @@ from TurtleArt.tapalette import make_palette from TurtleArt.taconstants import XO1, XO15, XO175, XO30, XO4 from TurtleArt.talogo import primitive_dictionary from TurtleArt.tautils import debug_output -from TurtleArt.taprimitive import (ArgSlot, ConstantArg, Primitive) -from TurtleArt.tatype import (TYPE_BOOL, TYPE_BOX, TYPE_CHAR, TYPE_INT, - TYPE_FLOAT, TYPE_OBJECT, TYPE_STRING, - TYPE_NUMBER) +from TurtleArt.taprimitive import (ConstantArg, Primitive) import logging _logger = logging.getLogger('turtleart-activity audio sensors plugin') diff --git a/plugins/light_sensor/light_sensor.py b/plugins/light_sensor/light_sensor.py index 97ab6b6..2e81c28 100644 --- a/plugins/light_sensor/light_sensor.py +++ b/plugins/light_sensor/light_sensor.py @@ -24,6 +24,7 @@ from plugins.plugin import Plugin from TurtleArt.tapalette import make_palette from TurtleArt.talogo import primitive_dictionary from TurtleArt.tautils import debug_output +from TurtleArt.taprimitive import Primitive import logging _logger = logging.getLogger('turtleart-activity light-sensor plugin') @@ -41,6 +42,7 @@ class Light_sensor(Plugin): self._status = True else: self._status = False + self._light = 0 self.running_sugar = self._parent.running_sugar def setup(self): @@ -50,11 +52,11 @@ class Light_sensor(Plugin): help_string=_('Palette of sensor blocks'), position=6) - primitive_dictionary['lightsensor'] = self.prim_lightsensor if self._status: palette.add_block('lightsensor', style='box-style', label=_('brightness'), + value_block=True, help_string=\ _('light level detected by light sensor'), prim_name='lightsensor') @@ -62,6 +64,7 @@ class Light_sensor(Plugin): palette.add_block('lightsensor', style='box-style', label=_('brightness'), + value_block=True, help_string=\ _('light level detected by light sensor'), hidden=True, @@ -69,20 +72,25 @@ class Light_sensor(Plugin): self._parent.lc.def_prim( 'lightsensor', 0, - lambda self: primitive_dictionary['lightsensor']()) + Primitive(self.prim_lightsensor, + call_afterwards=self.after_light)) def _status_report(self): debug_output('Reporting light-sensor status: %s' % (str(self._status))) return self._status - # Block primitives used in talogo + # Block primitives def prim_lightsensor(self): - ''' push accelerometer xyz to stack ''' if not self._status: return -1 else: fh = open(LIGHT_SENSOR_DEVICE) string = fh.read() fh.close() - return float(string) + self._light = float(string) + return self._light + + def after_light(self): + if self._parent.lc.update_values: + self._parent.lc.update_label_value('lightsensor', self._light) diff --git a/plugins/rfid/rfid.py b/plugins/rfid/rfid.py index 1b3bc48..2b825e4 100644 --- a/plugins/rfid/rfid.py +++ b/plugins/rfid/rfid.py @@ -26,6 +26,7 @@ from plugins.plugin import Plugin from TurtleArt.tapalette import make_palette from TurtleArt.talogo import primitive_dictionary from TurtleArt.tautils import debug_output +from TurtleArt.taprimitive import Primitive import logging _logger = logging.getLogger('turtleart-activity RFID plugin') @@ -81,7 +82,6 @@ class Rfid(Plugin): def setup(self): # set up RFID-specific blocks - primitive_dictionary['rfid'] = self.prim_read_rfid palette = make_palette('sensor', colors=["#FF6060", "#A06060"], help_string=_('Palette of sensor blocks'), @@ -104,7 +104,9 @@ class Rfid(Plugin): prim_name='rfid') self._parent.lc.def_prim( - 'rfid', 0, lambda self: primitive_dictionary['rfid']()) + 'rfid', 0, + Primitive(self.prim_read_rfid, + call_afterwards=self.after_rfid)) def _status_report(self): debug_output('Reporting RFID status: %s' % (str(self._status))) @@ -150,3 +152,7 @@ class Rfid(Plugin): return self.rfid_idn else: return '0' + + def after_rfid(self): + if self._parent.lc.update_values: + self._parent.lc.update_label_value('rfid', self.rfid_idn) -- cgit v0.9.1