Epson ePOS SDK实时检查打印机状态

时间:2018-11-09 03:58:53

标签: printing printers epson receipt epos

如何实时检查epson收据打印机的状态?

当前,我正在使用计划的计时器运行Epos2Discovery。每10秒钟启动一次,以检查打印机的可用性。

printerCheckTimer = Timer.scheduledTimer(timeInterval: 10, target: self, selector: #selector(checkPrinter), userInfo: nil, repeats: true)


// Listen for printer connection
@objc func checkPrinter() {
        // Stop previous epson printer discovery if any, and reset scanned epson printers array
        var result = EPOS2_SUCCESS.rawValue
        result = Epos2Discovery.stop()

        // Search for epson printers
        result = Epos2Discovery.start(filterOption, delegate: self)
        if result != EPOS2_SUCCESS.rawValue {
            print(result)
        }
}

// Delegate for epson printer discovery
func onDiscovery(_ deviceInfo: Epos2DeviceInfo!) {
    // Loop all the connected epson printers port, and see if they exists in the nearby ports
    for (printerId, connectedPrinterPort) in self.connectedEpsonPrinters {
        if connectedPrinterPort == deviceInfo.target {
            onlineEpsonPrinters[printerId] = Int(Date().timeIntervalSince1970)
        }
    }
}

对于较旧的TM-T82(序列号:UEHF ...),此解决方案可以很好地工作。但是,对于较新版本的TM-T82(序列号:X4XQ ...),这似乎有问题。

运行Epos2Discovery.start计时器的并发设备数似乎正在影响打印性能。

使用1台设备时,它可以正常工作,并且打印速度一样快。但是,对于2台设备,打印速度会变慢(可能会慢5秒)。

使用3台设备时,打印机状态将在联机和脱机状态之间闪烁,并且一半的打印结果将显示失败的打印错误提示。似乎在具有重复计时器的多个设备上同时运行Epos2Discovery导致打印机检测出现问题。

这只会在TM型号的新版本上发生,对于我以前购买的旧打印机(TM-T88,TM-U220B,TM-T81)而言,它的工作情况非常好。

我想知道是否还有其他方法可以实时检查打印机状态?

0 个答案:

没有答案