我正在使用rxtx api通过com端口从GPS设备读取数据。现在,我正在通过读取配置文件并查找列出的端口来查找正确的com端口。我遇到的问题是,如果拔出设备,com端口可能会更改,那么用户必须知道如何更改配置文件。我在c#中写了一个类似这样的应用程序,能够列出windows设备名称而不是com端口,我循环使用com端口,直到设备名称与配置文件中的名称匹配。使用该方法,配置文件中的任何内容都不必更改,即使正在使用的com端口发生更改也是如此。有没有办法用rxtx api做到这一点?
提前感谢!
发布于 2009-05-27 11:52:43
如果有人感兴趣的话..。
我在C#中创建了一个windows服务来监控套接字。如果客户端连接到该套接字,则服务收集端口名称和该端口上的设备id,并通过com端口以字符串的形式发送数据,然后客户端可以解析该字符串以获得其所需的数据。
在我的例子中,传递的字符串是:"ACPI\PNP0501 *PNP0501,COM1,PCI\VEN_8086&DEV_29B7&SUBSYS_02111028&REV_02 PCI\VEN_8086&DEV_29B7&SUBSYS_02111028 PCI\VEN_8086&DEV_29B7&CC_070002 PCI\VEN_8086&DEV_29B7&CC_0700,COM3,USB\Vid_067b&Pid_2303&Rev_0400 USB\Vid_067b&Pid_2303,COM5“
当我解析它时,我可以看到ACPIPNP0501 *PNP0501是COM1的设备id,有三个COM3的设备id,还有两个COM5上的设备id。
这可能不是处理这个问题的最好方法,但它已经足够满足我的需求了,而且它让我免于使用JNI。:)
发布于 2009-05-20 06:31:52
CommPortIdentifier.getPortIdentifiers列出了系统中可由Javacomm API使用的所有端口。遍历它们以查找您的设备连接到的端口。
发布于 2009-05-20 15:43:42
如果您希望在COM端口上获得与设备关联的名称(特别是如果安装了驱动程序来提供该名称),则必须使用一些可怕的Java->Native Interface来与收集此信息的Windows API进行对话。C#很好,因为这些信息被收集并提供给你,但是在Java语言中你必须走这个额外的步骤。
Windows Function Discovery可能被证明是有用的。我不确定到底是什么API提供了这个功能。
https://stackoverflow.com/questions/884657
复制相似问题