PyUSB询问设备状态

时间:2015-10-05 10:36:00

标签: python-2.7 libusb pyusb

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

这是我的代码:

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

0 个答案:

没有答案