0

我正在为 Symbol MC3000 设备开发应用程序。它运行的是 Windows CE 4.2 Professional。应用程序是简单的数据驱动应用程序,它存储有关商店中产品的信息。

我的客户希望通过串行和 USB 接口与设备通信并读取存储在应用程序中的数据。这就是我被困的地方。

他不想通过控制台向设备发送命令:

回复:获取:数据?- 以 spec.format 接收来自设备的所有数据

回复:获取:越南?- 获取软件版本。

等等。

串行线没什么大不了的。但是您将如何通过 USB 端口实现这一点。(没有活动同步或网络套接字)

(设备可能连接到 linux 或 windows 机器上的 USB,这些终端命令应该可以工作)

你有什么想法如何设计这个问题吗?

各位大神能给我推荐一些文献或资料吗?

非常感谢。

阿莱夫

4

2 回答 2

1

简单而简短的回答是“你不知道”。

更复杂、更冗长的答案是它可以完成,但所需的工作量可能比价值高得多,应该考虑替代方案(例如,如果您有任何网络接口机制,请使用插座)。

对于 USB 端,您必须了解 USB 的工作原理,至少在一般意义上。当您将该设备插入 PC 时,PC 需要具有了解如何与设备通信的驱动程序。同时,该设备需要有一个了解如何与 PC 对话的驱动程序。这些司机需要了解彼此的工作方式,以便他们能够有效地沟通。

当您使用 ActiveSync 时,会发生什么(使用较旧的 4.2 版本)PC 上的 ActiveSync 有一个串行 USB 驱动程序,因此当您插入设备时,PC 会说“嘿,这看起来像一个串行设备”并且ActiveSync 本身使用该串行层通过串行连接执行 PPP。在设备上,当建立连接时,OEM 放入的驱动程序(具体为usbser.dll)启动并与PC 协商,然后启动ActiveSync 的设备客户端并完成创建该网络。做完了。较新的设备使用类似的机制,但通常使用 RNDIS 而不是 USB 上的串行,因为 PC 附带了 ENDIS 支持,并且它更强大、更快。

现在您要删除 ActiveSync,您必须为两端提供这些驱动程序。阻力最小的路径可能是使用HID。至少PC端是这样完成的(它与鼠标使用的协议相同,因此任何理解USB鼠标的PC,无论是Windows还是Linux,都将拥有此驱动程序)。您仍然需要为设备编写 HID 驱动程序。一旦你有了它,你就可以为每一端编写一个应用程序,以使用该 USB 管道进行通信。

当然,所有这些还需要您将驱动程序部署到设备和可能的 PC 上。

于 2009-01-22T19:38:39.723 回答
0

在设备和 PC 之间建立 USB 串行链路是很困难的。对于 Windows 平台,您可以使用 RAPI 作为解决方法。该设备将通过 ActiveSync 连接到 PC。然后使用 RAPI,您可以(除其他外)读取远程设备的注册表,开始在设备中执行应用程序,在两者之间传输文件。

我想如果您不希望实时传输数据,这将起作用。对于 Linux,我不知道是否有可用的 RAPI SDK。在 Windows 中,您可以使用 OpenNetCF 的 RAPI SDK,这将使您的生活更轻松。

于 2009-01-23T13:35:52.293 回答