用杯子检测打印机状态变化 Api

Detecting Printer State Change with Cups Api

使用 Cups c api 我可以看到打印机的状态(例如暂停、打印、卡纸等)。我现在要做的是监听或锁定打印机状态的变化。最终我想要一个打印机状态的实时视图,但我不想有一个延迟循环垃圾邮件与打印机属性请求的杯子。

我在源代码和文档中看到了很多暗示某种事件系统的函数和标签,但我一直无法弄清楚如何利用它。欢迎任何帮助,甚至只是指出正确的功能。

我在当前的实现中使用了这个示例来获取状态信息。 http://cups-dev.easysw.narkive.com/9RO0OBnZ/how-to-get-printer-status-via-cups-api

最后,这是一个非常复杂的问题,需要做很多工作才能弄清楚。我发现监听变化的唯一明智的方法是使用 rss 通知系统。我建议不要尝试制作自己的通知模块,我为此浪费了一周的时间(我什至不确定它是否可能)。使用 Create-Printer-Subscription 和类似 rss://localhost:8000 的 uri。您当然需要一个等待 xml 数据的侦听器。

我放了一个我用 java/jna here 制作的简单调试工具。 Select2要设置订阅,不过你需要自己监听数据。