我正在尝试为条形码打印机编写脚本。
这是我的代码:
def printLabel(barcode, qty, articlenr=''):
dev = findPrinter()
dev.write("")
return True
if __name__ =="__main__":
for i in range(2):
try:
# Everything works fine, the for loop breaks
printLabel('01234567890123','1', 'Hello World')
break
except usb.core.USBError as error:
if "Resource busy" in unicode(error):
# Printer is doing something, wait 3 seconds, try again
time.sleep(3)
print 'Retrying after error:"Resource busy"\n' + str(error)
printLabel('01234567890123','1', 'Hello World')
elif "Operation Timeout" in unicode(error):
# Printer is not responding
print 'ERROR! Check Paper!\n' + str(error)
else:
print 'Unknown error' + str(error)
我必须在尝试printLabel
之前询问打印机的状态,因为如果我不能要求它,他可能会进入"资源忙碌"异常中的if子句打印标签,重新开始并再次打印。
但如果我可以要求他的状态,我可以说他像:
def waitForPrinter(dev):
dev = findPrinter()
if dev.status() is True: ## True if he is ready and False if he is Busy or something
printLabel(arguments and stuff)
else:
time.sleep(3)
waitForPrinter()
我无法在文档中找到询问设备状态的功能,现在也不知道如何解决问题。
目前我只能通过USBError获取设备状态。