48 lines
1.1 KiB
Python
48 lines
1.1 KiB
Python
|
|
|
|
class BarcodeReader(DeviceBase):
|
|
|
|
def doInitialize(self):
|
|
self.disable()
|
|
|
|
def enable(self):
|
|
microscan_cmd.write("<H>")
|
|
self.setState(State.Ready)
|
|
|
|
def disable(self):
|
|
microscan_cmd.write("<I>")
|
|
self.setState(State.Disabled)
|
|
|
|
def get(self,timeout=1.0):
|
|
self.state.assertReady()
|
|
try:
|
|
self.setState(State.Busy)
|
|
ret = microscan.waitString(int(timeout * 1000))
|
|
self.setCache(ret, None)
|
|
return ret
|
|
except:
|
|
self.setCache(None, None)
|
|
return None
|
|
finally:
|
|
self.setState(State.Ready)
|
|
|
|
def doUpdate(self):
|
|
self.get()
|
|
|
|
|
|
def read(self,timeout=1.0):
|
|
initial = self.state
|
|
if initial == State.Disabled:
|
|
self.enable()
|
|
try:
|
|
return self.get()
|
|
finally:
|
|
if initial == State.Disabled:
|
|
self.disable()
|
|
|
|
|
|
|
|
|
|
|
|
add_device(BarcodeReader("barcode_reader"), force = True)
|
|
|