我正在尝试为条形码打印机编写脚本。
这是我的代码:
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 获取设备状态。