Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/TurtleArt/talogo.py
diff options
context:
space:
mode:
authorWalter Bender <walter@sugarlabs.org>2010-12-02 15:46:26 (GMT)
committer Walter Bender <walter@sugarlabs.org>2010-12-02 15:46:26 (GMT)
commit7f70d6edd5610ec71319113b8b3efcf5a5d91779 (patch)
tree5ad63eb7a80158b0df4a445a394a7f7a2e07f125 /TurtleArt/talogo.py
parent33d6ffb940414d99ba744daa8c41ab34709cfc27 (diff)
adding rfid support
Diffstat (limited to 'TurtleArt/talogo.py')
-rw-r--r--TurtleArt/talogo.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/TurtleArt/talogo.py b/TurtleArt/talogo.py
index 553d8a0..cad3066 100644
--- a/TurtleArt/talogo.py
+++ b/TurtleArt/talogo.py
@@ -61,6 +61,32 @@ VALUE_BLOCKS = ['box1', 'box2', 'color', 'shade', 'gray', 'scale', 'pensize',
import logging
_logger = logging.getLogger('turtleart-activity')
+import os
+
+from dbus.mainloop.glib import DBusGMainLoop
+import dbus
+
+HAL_SERVICE = 'org.freedesktop.Hal'
+HAL_MGR_PATH = '/org/freedesktop/Hal/Manager'
+HAL_MGR_IFACE = 'org.freedesktop.Hal.Manager'
+HAL_DEV_IFACE = 'org.freedesktop.Hal.Device'
+
+
+def find_device():
+ """ Search for RFID devices. Return a device instance or None. """
+ device = None
+ for i in os.listdir(os.path.join('.', 'devices')):
+ if not os.path.isdir(os.path.join('.', 'devices', i)):
+ try:
+ _tempmod = __import__('devices.%s'%i.split('.')[0], globals(),
+ locals(), ['RFIDReader'], -1)
+ devtemp = _tempmod.RFIDReader()
+ if devtemp.get_present() == True:
+ device = devtemp
+ except Exception, e:
+ _logger.error("FIND_DEVICE: %s: %s"%(i, e))
+ pass
+ return device
class noKeyError(UserDict):
@@ -389,6 +415,7 @@ class LogoCode:
'red': [0, lambda self: CONSTANTS['red']],
'repeat': [2, self._prim_repeat, True],
'resistance': [0, lambda self: self._get_resistance()],
+ 'rfid': [0, lambda self: self.tw.rfid_idn],
'right': [1, lambda self, x: self._prim_right(x)],
'rightx': [0, lambda self: CONSTANTS['rightx']],
'rpos': [0, lambda self: CONSTANTS['rightpos']],