1

我正在尝试为条形码打印机编写脚本。

这是我的代码:

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 获取设备状态。

4

0 回答 0