diff options
author | Walter Bender <walter.bender@gmail.com> | 2011-02-21 23:00:50 (GMT) |
---|---|---|
committer | Walter Bender <walter.bender@gmail.com> | 2011-02-21 23:00:50 (GMT) |
commit | aa2d1d42f01f87b5a0a7e533bb6a93d3720b9d1a (patch) | |
tree | 7c6a4d820e001530082045875676f44e65280203 /rfid/device.py | |
parent | e262536e85ce5289bd5eaafa157939ed8657fdab (diff) | |
parent | 860754f7e871617df9d101a51dc64a69b742a0ba (diff) |
Merge git.sugarlabs.org:~walter/turtleart/collaboration-refactoring
Conflicts:
NEWS
TurtleArt/talogo.py
Diffstat (limited to 'rfid/device.py')
-rw-r--r-- | rfid/device.py | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/rfid/device.py b/rfid/device.py new file mode 100644 index 0000000..04a82b2 --- /dev/null +++ b/rfid/device.py @@ -0,0 +1,61 @@ +import gobject + +class RFIDDevice(gobject.GObject): + """ + Ancestor class for every supported device. + The main class for the device driver must be called "RFIDReader". + """ + # signal "tag-read" has to be emitted when a tag has been read. + # The handler must receive the ISO-11784 hex value of the tag. + # signal "disconnected" has to be emitted when the device is + # unplugged or an error has been detected. + __gsignals__ = { + 'tag-read': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, + (gobject.TYPE_STRING,)), + 'disconnected': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, + (gobject.TYPE_STRING,)) + } + def __init__(self): + """ + Initializer. Subclasses must call this method. + """ + self.__gobject_init__() + + def get_present(self): + """ + This method must detect if the device is present, returning True if so, + or False otherwise. + """ + raise NotImplementedError + + def get_version(self): + """ + Returns a descriptive text of the device. + """ + raise NotImplementedError + + def do_connect(self): + """ + Connects to the device. + Must return True if successfull, False otherwise. + """ + raise NotImplementedError + + def do_disconnect(self): + """ + Disconnects from the device. + """ + raise NotImplementedError + + def read_tag(self): + """ + Returns the 64 bit data in hex format of the last read tag. + """ + raise NotImplementedError + + def write_tag(self, hex_val): + """ + Could be implemented if the device is capable of writing tags. + Receives the hex value (according to ISO 11784) to be written. + Returns True if successfull or False if something went wrong. + """ |