gpt4 book ai didi

java - UPnP 打印机设备发现

转载 作者:行者123 更新时间:2023-12-01 14:57:03 25 4
gpt4 key购买 nike

在一个项目中,我通过发送 ssdp 数据报包并接收 http url 发现了 UPnP 打印机设备。

使用这些 url,获取打开的连接,获取描述设备和服务详细信息的 xml 架构

这里我通过dom解析获取详细信息

现在我的问题是,我怎样才能找到1.打印机状态2.打印机是否双面3.支持什么类型的纸张(横向/纵向以及尺寸)

最佳答案

如果您已经获得服务详细信息,那么您应该能够理解并使用以下 UPnP 规范:PrintBasic servicePrintEnhanced service (如果您的打印机支持)。我建议在您的网络中使用一些服务发现工具,例如 Intel UPnP Developer Suite 中的 DeviceSpy 。您将了解您的打印机提供哪些信息,以及它是否可以作为状态变量(可能是事件)访问,或者您需要对服务函数执行 RPC 来获取它。给出具体的说明两者之间的区别以及如何获取它们超出了简单的 S.O. 的范围。回答。您可以从阅读和理解 UPnP Device Architecture document 开始。在 DeviceSpy 中嗅探并尝试调用事物并查看结果也非常有帮助。

快速浏览一下规范(我更喜欢媒体服务)表明您应该擅长使用 PrintBasic 来获取状态(查找 PrinterState/PrinterStateReasons)和纸张尺寸(查找MediaSize/MediaType)。我找不到双工,它可能隐藏在其他名称下(也许Sides?)。我发现这些变量很可能是当前工作的单值变量。然后,可能可以使用不同的名称访问适用的值枚举,或者您需要执行 RPC 来获取它。我不会在这里取代你的研发:-)

旁注:通过打开 HTTP 连接并解析 DOM 自己完成这一切是不必要的乏味(除非您纯粹是为了好玩)。集成成熟的现成库之一,例如 Cling。要正确使用 UPnP,除了读取简单的 DOM 之外,您还需要很多复杂的东西。就像监听事件订阅和执行 SOAP RPC 一样。

关于java - UPnP 打印机设备发现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14229412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com