如何使用jssc ( java-simple-serial-connector)
获取SerialPort的设备描述符?
getPortName()
方法提供端口名称(e.g. COM2
),但描述符会更有帮助。
如果必须修补此开源API以获取设备描述符如何才能完成?
答案 0 :(得分:1)
查看gohai/java-simple-serial-connector,SerialPortList类有一个getPortProperties(String portName)方法来获取端口属性,遗憾的是还没有为windows实现,但很容易做一个实现并再次重新编译让它发挥作用。
我希望这会有所帮助。
答案 1 :(得分:1)
在zamanillo的帮助下,我现在可以自己回答。 使用jssc 2.8.0无法做到这一点。
正在进行扩展jssc的行动,但我不知道发布时间表,也不知道如何解决这个问题。
扩展名是方法
+ (SMError *)sdkServerErrorFromCode:(NSInteger)statusCode errorObject:(NSError *) error;
+ (SMError *)sdkClientErrorFromCode:(NSInteger)statusCode errorObject:(NSError *) error;
适用于linux和mac的jssc 2.8.0的修改版本中提供了实现。 Windows实现更难(找到)。
以下是从https://github.com/gohai/java-simple-serial-connector/blob/processing/src/cpp/_nix_based/jssc.cpp
获取的linux和mac的代码
SerialPortList->getPortProperties(String portName)
对于Windows,我只在处理自定义dll的处理中找到了解决方案。
答案 2 :(得分:0)
设备描述符是描述符树的根,包含基本设备信息。唯一编号idVendor和idProduct标识连接的设备。 Windows操作系统使用这些数字来确定要加载的设备驱动程序。
idVendor
是分配给每个生产基于USB的设备的公司的号码。 USB实施者论坛负责管理供应商ID的分配。
idProduct
是另一个16位字段,其中包含制造商为识别特定产品而分配的编号。
来自jantje的问题,
我需要的是Windows 10在连接中显示的名称 设备
Ans:打开"Settings app"
并单击“设备”。单击“设备”将打开一个选项卡,您可以在其中调整所有打印机,连接设备,蓝牙设备,鼠标和设备的设置。触摸板,键入设置和自动播放设置。此连接设备选项卡显示连接到PC的硬件。 点击添加设备,您的电脑将自动扫描已连接的设备。蓝牙选项卡很简单,只需简单设置即可通过蓝牙将设备连接到PC。单击蓝牙按钮,设备将自动开始扫描该范围内的任何蓝牙设备。
如果显示设备存在任何问题或无法使用,则我们需要以下作业。
无法通过蓝牙设备连接到计算机?确保您已允许蓝牙设备连接到您的计算机。请尝试以下步骤: 1.转到“控制面板”。单击“硬件和声音”和“蓝牙设备”。 2.单击“选项”选项卡。 3.确保选中“允许蓝牙设备连接到此计算机”复选框。
连接支持蓝牙功能的手机:
资源链接:
有7种方法可以解决网络连接问题:
您的答案如何链接到jssc?
我正在检查你的问题。我在Windows 7中得到了它可以正常工作,在Windows 10中,存在一些与硬件相关的问题导致问题。
开发人员正在研究这个领域。但它尚未确定。 issue#63和issue#85会澄清你。
/**
* Get serial port names in Windows
*
* @since 2.3.0
*/
private static String[] getWindowsPortNames(Pattern pattern, Comparator<String> comparator) {
String[] portNames = serialInterface.getSerialPortNames();
if(portNames == null){
return new String[]{};
}
TreeSet<String> ports = new TreeSet<String>(comparator);
for(String portName : portNames){
if(pattern.matcher(portName).find()){
ports.add(portName);
}
}
return ports.toArray(new String[ports.size()]);
}
我明白了,他们正在为各种操作系统使用一些模式。
OS_LINUX: Pattern.compile("(ttyS|ttyUSB|ttyACM|ttyAMA|rfcomm|ttyO)[0-9]{1,3}");
OS_SOLARIS: Pattern.compile("[0-9]*|[a-z]*");
OS_MAC_OS_X: Pattern.compile("tty.(serial|usbserial|usbmodem).*");
OS_WINDOWS: Pattern.compile("");
<强>建议:强> 只使用官方和最晚的司机。
jSSC-2.8.0发布版本(2014年1月24日)
修复:重要!修复了端口处理潜在泄漏的问题。
此版本包含Windows的本机库(x86,x86-64),Linux(x86, x86-64,ARM soft&amp;硬浮动),Solaris(x86,x86-64),Mac OS X(x86, x86-64,PPC,PPC64)。所有本机库都包含在jssc.jar文件中 您不需要手动管理本机库。
资源链接: