java jna检测串行usb端口删除

lbsnaicq  于 2021-06-29  发布在  Java
关注(0)|答案(0)|浏览(192)

我们有一个测试usb使能产品的要求,在那里我们从pc上插拔产品。我们使用jssc的串行接口。
问题是人们倾向于在关闭串口之前删除产品,这样java测试程序就会挂起。
我试图让java程序识别usb串行设备的丢失,并为用户关闭端口以防止问题的发生。
我使用的是jna,在添加/删除设备时可以访问dev\u broadcast\u deviceinterface结构。使用网页上的代码片段,我可以看到从pc机上添加/删除的设备,但我的问题是如何处理设备的广播端口信息。
我的理解是dev\u broadcast\u deviceinterface的结构允许您识别设备的类型,然后您必须覆盖与该设备相关的结构。因此,我可以通过以下方法找到设备类型:

DEV_BROADCAST_HDR bhdr = new DEV_BROADCAST_HDR(lParam.longValue());

然后我可以使用bhdr.dbch\u devicetype来查找dbt\u devtyp\u端口。因此,我尝试使用dev\u broadcast\u端口,方法是在web上找到以下设置。

DEV_BROADCAST_PORT bpt = new DEV_BROADCAST_PORT(bhdr.getPointer());

问题是我有错误'数组字段必须初始化'。我不知道如何将dev\u broadcast\u deviceinterface结构转换为使用jna所需的dev\u broadcast\u port结构。
现在网上的许多信息似乎已经过时了。我使用了win32windowdemo.java中的代码作为参考。
非常感谢您的帮助。
货币政策委员会

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题