def AttachRFID(databasepath, serialNumber): def onAttachHandler(event): logString = "RFID Attached " + str(event.device.getSerialNum()) #print(logString) DisplayAttachedDeviceInfo(event.device) def onDetachHandler(event): logString = "RFID Detached " + str(event.device.getSerialNum()) #print(logString) DisplayDetachedDeviceInfo(event.device) event.device.closePhidget() def onErrorHandler(event): logString = "RFID Error " + str( event.device.getSerialNum()) + ", Error: " + event.description #print(logString) DisplayErrorDeviceInfo(event) def onServerConnectHandler(event): logString = "RFID Server Connect " + str(event.device.getSerialNum()) #print(logString) def onServerDisconnectHandler(event): logString = "RFID Server Disconnect " + str( event.device.getSerialNum()) #print(logString) def outputChangeHandler(event): logString = "RFID Changed " + str(event.device.getSerialNum()) #print(logString) try: conn = sqlite3.connect(databasepath) conn.execute( "INSERT INTO RFID_OUTPUTCHANGE VALUES(NULL, DateTime('now'), ?, ?, ?)", (event.device.getSerialNum(), event.index, event.value)) conn.commit() conn.close() except sqlite3.Error as e: print "An error occurred:", e.args[0] def tagHandler(event): logString = "RFID Changed " + str(event.device.getSerialNum()) #print(logString) try: conn = sqlite3.connect(databasepath) conn.execute( "INSERT INTO RFID_TAG VALUES(NULL, DateTime('now'), ?, ?)", (event.device.getSerialNum(), event.tag)) conn.commit() conn.close() except sqlite3.Error as e: print "An error occurred:", e.args[0] def tagLostHandler(event): logString = "RFID Changed " + str(event.device.getSerialNum()) #print(logString) try: conn = sqlite3.connect(databasepath) conn.execute( "INSERT INTO RFID_TAGLOST VALUES(NULL, DateTime('now'), ?, ?)", (event.device.getSerialNum(), event.tag)) conn.commit() conn.close() except sqlite3.Error as e: print "An error occurred:", e.args[0] def accelerationChangeHandler(event): logString = "RFID Changed " + str(event.device.getSerialNum()) #print(logString) try: conn = sqlite3.connect(databasepath) conn.execute( "INSERT INTO ACCELEROMETER_CHANGE VALUES(NULL, DateTime('now'), ?, ?, ?)", (event.device.getSerialNum(), event.index, event.acceleration)) conn.commit() conn.close() except sqlite3.Error as e: print "An error occurred:", e.args[0] try: p = RFID() p.setOnAttachHandler(onAttachHandler) p.setOnDetachHandler(onDetachHandler) p.setOnErrorhandler(onErrorHandler) p.setOnServerConnectHandler(onServerConnectHandler) p.setOnServerDisconnectHandler(onServerDisconnectHandler) p.setOnOutputChangeHandler(outputChangeHandler) p.setOnTagHandler(tagHandler) p.setOnTagLostHandler(tagLostHandler) p.openPhidget(serialNumber) except PhidgetException as e: print("Phidget Exception %i: %s" % (e.code, e.details)) print("Exiting...") exit(1)
def AttachRFID(databasepath, serialNumber): def onAttachHandler(event): logString = "RFID Attached " + str(event.device.getSerialNum()) #print(logString) DisplayAttachedDeviceInfo(event.device) def onDetachHandler(event): logString = "RFID Detached " + str(event.device.getSerialNum()) #print(logString) DisplayDetachedDeviceInfo(event.device) event.device.closePhidget() def onErrorHandler(event): logString = "RFID Error " + str(event.device.getSerialNum()) + ", Error: " + event.description #print(logString) DisplayErrorDeviceInfo(event) def onServerConnectHandler(event): logString = "RFID Server Connect " + str(event.device.getSerialNum()) #print(logString) def onServerDisconnectHandler(event): logString = "RFID Server Disconnect " + str(event.device.getSerialNum()) #print(logString) def outputChangeHandler(event): logString = "RFID Changed " + str(event.device.getSerialNum()) #print(logString) try: conn = sqlite3.connect(databasepath) conn.execute("INSERT INTO RFID_OUTPUTCHANGE VALUES(NULL, DateTime('now'), ?, ?, ?)", (event.device.getSerialNum(), event.index, event.value)) conn.commit() conn.close() except sqlite3.Error as e: print "An error occurred:", e.args[0] def tagHandler(event): logString = "RFID Changed " + str(event.device.getSerialNum()) #print(logString) try: conn = sqlite3.connect(databasepath) conn.execute("INSERT INTO RFID_TAG VALUES(NULL, DateTime('now'), ?, ?)", (event.device.getSerialNum(), event.tag)) conn.commit() conn.close() except sqlite3.Error as e: print "An error occurred:", e.args[0] def tagLostHandler(event): logString = "RFID Changed " + str(event.device.getSerialNum()) #print(logString) try: conn = sqlite3.connect(databasepath) conn.execute("INSERT INTO RFID_TAGLOST VALUES(NULL, DateTime('now'), ?, ?)", (event.device.getSerialNum(), event.tag)) conn.commit() conn.close() except sqlite3.Error as e: print "An error occurred:", e.args[0] def accelerationChangeHandler(event): logString = "RFID Changed " + str(event.device.getSerialNum()) #print(logString) try: conn = sqlite3.connect(databasepath) conn.execute("INSERT INTO ACCELEROMETER_CHANGE VALUES(NULL, DateTime('now'), ?, ?, ?)", (event.device.getSerialNum(), event.index, event.acceleration)) conn.commit() conn.close() except sqlite3.Error as e: print "An error occurred:", e.args[0] try: p = RFID() p.setOnAttachHandler(onAttachHandler) p.setOnDetachHandler(onDetachHandler) p.setOnErrorhandler(onErrorHandler) p.setOnServerConnectHandler(onServerConnectHandler) p.setOnServerDisconnectHandler(onServerDisconnectHandler) p.setOnOutputChangeHandler(outputChangeHandler) p.setOnTagHandler (tagHandler) p.setOnTagLostHandler (tagLostHandler) p.openPhidget(serialNumber) except PhidgetException as e: print("Phidget Exception %i: %s" % (e.code, e.details)) print("Exiting...") exit(1)
def rfidTagLost(e): source = e.device rfid.setLEDOn(0) print("RFID %i: Tag Lost: %s" % (source.getSerialNum(), e.tag)) #Main Program Code try: #logging example, uncomment to generate a log file #rfid.enableLogging(PhidgetLogLevel.PHIDGET_LOG_VERBOSE, "phidgetlog.log") rfid.setOnAttachHandler(rfidAttached) rfid.setOnDetachHandler(rfidDetached) rfid.setOnErrorhandler(rfidError) rfid.setOnOutputChangeHandler(rfidOutputChanged) rfid.setOnTagHandler(rfidTagGained) rfid.setOnTagLostHandler(rfidTagLost) except PhidgetException as e: print("Phidget Exception %i: %s" % (e.code, e.details)) print("Exiting....") exit(1) print("Opening phidget object....") try: rfid.openPhidget() except PhidgetException as e: print("Phidget Exception %i: %s" % (e.code, e.details)) print("Exiting....") exit(1)
# ser.write('5') # My Stuff End print("RFID %i: Tag Read: %s" % (source.getSerialNum(), e.tag)) def rfidTagLost(e): source = e.device rfid.setLEDOn(0) print("RFID %i: Tag Lost: %s" % (source.getSerialNum(), e.tag)) #Main Program Code try: rfid.setOnAttachHandler(rfidAttached) rfid.setOnDetachHandler(rfidDetached) rfid.setOnErrorhandler(rfidError) rfid.setOnOutputChangeHandler(rfidOutputChanged) rfid.setOnTagHandler(rfidTagGained) rfid.setOnTagLostHandler(rfidTagLost) except PhidgetException as e: print("Phidget Exception %i: %s" % (e.code, e.details)) print("Exiting....") exit(1) print("Opening phidget object....") try: rfid.openPhidget() except PhidgetException as e: print("Phidget Exception %i: %s" % (e.code, e.details)) print("Exiting....") exit(1)
class Reader: ''' Phidgets 125khz RFID Reader/Writer ''' def __init__(self): # Create an RFID object try: self.rfid = RFID() self.user_manager = UserManager() except RuntimeError as e: Logger.info("RFID: Phidget Runtime Exception: %s" % e.details) Logger.info("RFID: Phidget Exiting....") exit(1) #Main Phiget Program Code try: #logging example, uncomment to generate a log file #rfid.enableLogging(PhidgetLogLevel.PHIDGET_LOG_VERBOSE, "phidgetlog.log") self.rfid.setOnAttachHandler(self.rfidAttached) self.rfid.setOnDetachHandler(self.rfidDetached) self.rfid.setOnErrorhandler(self.rfidError) self.rfid.setOnOutputChangeHandler(self.rfidOutputChanged) self.rfid.setOnTagHandler(self.rfidTagGained) self.rfid.setOnTagLostHandler(self.rfidTagLost) except PhidgetException as e: Logger.exception("RFID: Phidget Exception %i: %s" % (e.code, e.details)) Logger.exception("RFID: Exiting....") exit(1) Logger.info("RFID: Opening phidget object....") try: self.rfid.openPhidget() except PhidgetException as e: Logger.info("RFID: Phidget Exception %i: %s" % (e.code, e.details)) Logger.info("RFID: Exiting....") exit(1) Logger.info("RFID: Waiting for attach....") try: self.rfid.waitForAttach(10000) except PhidgetException as e: Logger.exception("RFID: Phidget Exception %i: %s" % (e.code, e.details)) try: self.rfid.closePhidget() except PhidgetException as e: Logger.exception("RFID: Phidget Exception %i: %s" % (e.code, e.details)) Logger.exception("RFID: Exiting....") exit(1) Logger.exception("RFID: Exiting....") exit(1) else: self.displayDeviceInfo() Logger.info("RFID: Turning on the RFID antenna....") self.rfid.setAntennaOn(True) # Information Display Function def displayDeviceInfo(self): Logger.info("RFID: |------------|----------------------------------|--------------|------------|") Logger.info("RFID: |- Attached -|- Type -|- Serial No. -|- Version -|") Logger.info("RFID: |------------|----------------------------------|--------------|------------|") Logger.info("RFID: |- %8s -|- %30s -|- %10d -|- %8d -|" % (self.rfid.isAttached(), self.rfid.getDeviceName(), self.rfid.getSerialNum(), self.rfid.getDeviceVersion())) Logger.info("RFID: |------------|----------------------------------|--------------|------------|") Logger.info("RFID: Number of outputs: %i -- Antenna Status: %s -- Onboard LED Status: %s" % (self.rfid.getOutputCount(), self.rfid.getAntennaOn(), self.rfid.getLEDOn())) #Event Handler Callback Functions def rfidAttached(self, e): self.attached = e.device Logger.info("RFID: %i Attached!" % (self.attached.getSerialNum())) def rfidDetached(self, e): self.detached = e.device Logger.info("RFID: %i Detached!" % (self.detached.getSerialNum())) def rfidError(self, e): try: source = e.device Logger.exception("RFID: %i Phidget Error %i: %s" % (self.source.getSerialNum(), e.eCode, e.description)) except PhidgetException as e: Logger.exception(("RFID: Phidget Exception %i: %s" % (e.code, e.details))) def rfidOutputChanged(self, e): self.source = e.device Logger.info("RFID: %i Output %i State: %s" % (self.source.getSerialNum(), e.index, e.state)) def rfidTagGained(self, e): self.rfid.setLEDOn(1) Logger.info("RFID: Tag gained: {}".format(e.tag)) self.user_manager.tag_gained = e.tag # this sets up the UserManager.on_tag_gained() to be called def rfidTagLost(self, e): self.rfid.setLEDOn(0) Logger.info("RFID: Tag lost: {}".format(e.tag))
class RFID_Controller: def __init__(self): self.last_tag=0 try: self.rfid = RFID() self.rfid.setOnAttachHandler(self.rfidAttached) self.rfid.setOnDetachHandler(self.rfidDetached) self.rfid.setOnErrorhandler(self.rfidError) self.rfid.setOnOutputChangeHandler(self.rfidOutputChanged) self.rfid.setOnTagHandler(self.rfidTagGained) self.rfid.setOnTagLostHandler(self.rfidTagLost) self.rfid.openPhidget() self.rfid.waitForAttach(10000) except RuntimeError as e: print("Runtime Exception: %s" % e.details) print("Exiting....") exit(1) except PhidgetException as e: print("Phidget Exception %i: %s" % (e.code, e.details)) exit(1) def rfidAttached(self,e): attached = e.device print("RFID %i Attached!" % (attached.getSerialNum())) def rfidDetached(self,e): detached = e.device print("RFID %i Detached!" % (detached.getSerialNum())) def rfidError(self,e): try: source = e.device print("RFID %i: Phidget Error %i: %s" % (source.getSerialNum(), e.eCode, e.description)) except PhidgetException as e: print("Phidget Exception %i: %s" % (e.code, e.details)) def rfidOutputChanged(self,e): source = e.device print("RFID %i: Output %i State: %s" % (source.getSerialNum(), e.index, e.state)) def rfidTagGained(self,e): source = e.device self.last_tag=e.tag self.rfid.setLEDOn(1) def rfidTagLost(self,e): source = e.device self.rfid.setLEDOn(0) def displayDeviceInfo(self): print("|------------|----------------------------------|--------------|------------|") print("|- Attached -|- Type -|- Serial No. -|- Version -|") print("|------------|----------------------------------|--------------|------------|") print("|- %8s -|- %30s -|- %10d -|- %8d -|" % (self.rfid.isAttached(), self.rfid.getDeviceName(), self.rfid.getSerialNum(), self.rfid.getDeviceVersion())) print("|------------|----------------------------------|--------------|------------|") print("Number of outputs: %i -- Antenna Status: %s -- Onboard LED Status: %s" % (self.rfid.getOutputCount(), self.rfid.getAntennaOn(), self.rfid.getLEDOn())) def end_program(self): try: self.rfid.closePhidget() except PhidgetException as e: print("Phidget Exception %i: %s" % (e.code, e.details)) print("Exiting....") exit(1) print("Done.") exit(0)
class csss_rfid: onTagCallback = None rfid = None rfid_tags = { '01022EA8F2':'execA', '1000033B7F':'execB', '01022FA703':'member' } def __init__(self): print("INIT: RFID") try: self.rfid = RFID() except RuntimeError as e: print("Runtime Exception: %s" % e.details) print("Exiting....") exit(1) try: self.rfid.setOnAttachHandler(self.rfidAttached) self.rfid.setOnDetachHandler(self.rfidDetached) self.rfid.setOnErrorhandler(self.rfidError) self.rfid.setOnOutputChangeHandler(self.rfidOutputChanged) self.rfid.setOnTagHandler(self.rfidTagGained) self.rfid.setOnTagLostHandler(self.rfidTagLost) except PhidgetException as e: print("Phidget Exception %i: %s" % (e.code, e.details)) print("Exiting....") exit(1) #print("Opening phidget object....") try: self.rfid.openPhidget() except PhidgetException as e: print("Phidget Exception %i: %s" % (e.code, e.details)) print("Exiting....") exit(1) #print("Waiting for attach....") try: self.rfid.waitForAttach(100000) except PhidgetException as e: print("Phidget Exception %i: %s" % (e.code, e.details)) try: self.rfid.closePhidget() except PhidgetException as e: print("Phidget Exception %i: %s" % (e.code, e.details)) print("Exiting....") exit(1) print("Exiting....") exit(1) def setOnTagCallback(self, func): self.onTagCallback = func def displayDeviceInfo(): print("|------------|----------------------------------|--------------|------------|") print("|- Attached -|- Type -|- Serial No. -|- Version -|") print("|------------|----------------------------------|--------------|------------|") print("|- %8s -|- %30s -|- %10d -|- %8d -|" % (rfid.isAttached(), rfid.getDeviceName(), rfid.getSerialNum(), rfid.getDeviceVersion())) print("|------------|----------------------------------|--------------|------------|") print("Antenna Status: %s " % (rfid.getAntennaOn())) #Event Handler Callback Functions def rfidAttached(self, e): attached = e.device print("RFID %i Attached!" % (attached.getSerialNum())) def rfidDetached(self, e): detached = e.device print("RFID %i Detached!" % (detached.getSerialNum())) def rfidError(self, e): try: source = e.device print("RFID %i: Phidget Error %i: %s" % (source.getSerialNum(), e.eCode, e.description)) except PhidgetException as e: print("Phidget Exception %i: %s" % (e.code, e.details)) def rfidOutputChanged(self, e): source = e.device print("RFID %i: Output %i State: %s" % (source.getSerialNum(), e.index, e.state)) def rfidTagGained(self, e): source = e.device id = e.tag if id in self.rfid_tags: id = self.rfid_tags[id] self.onTagCallback(id) def rfidTagLost(self, e): source = e.device def close(self): try: self.rfid.closePhidget() except PhidgetException as e: print("Phidget Exception %i: %s" % (e.code, e.details)) print("Exiting....") exit(1)