问题标签 [jssc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1224 浏览

java - Linux 中 USB 上的串行端口意外更改

我的自定义电子设备通过 USB 接口上的 RS232 与工作站通信时遇到问题。设备一连接,它就会收到地址/dev/ttyUSB0,在发送接收命令的一段时间(随机)之后,设备似乎挂起。通过查看设备事件 ( dmesg),我们发现了以下错误:

所以显然系统注意到设备断开/重新连接,因此,设备安装到另一个端口,即 / dev/ttyUSB1,导致进一步的通信失败。创建测试台会改变行为:错误似乎不太频繁出现,而使用完整的应用程序时,错误会反复出现。应用程序使用 jSSC-2.8.0 与串口通信。整个应用程序是用 java 8 编写的,并使用 Restle 库向一些 Web 服务发出一些 REST 请求。什么会导致这些奇怪的行为?

根据下面的@DarkFalcon 评论添加,测试台通常比真正的应用程序更快地轮询设备:这可能解释了为什么测试性能比另一个更好。

0 投票
1 回答
1022 浏览

java - 使用jssc的串行通信延迟

我正在使用jssc我制作的模拟器进行串行端口通信。问题是每当服务器从我的模拟器请求设备时,我都会遇到延迟,因为模拟器中的设备会在一段时间后回复,而不是在请求之后。为了回复请求数据包,我在串行事件侦听器中 使用了以下jssc方法:writeBytes()

并且数据包小于 20 字节,而且我正在检查我的串行事件

你们能帮我减少这种延迟,以便模拟器设备在请求后立即回复吗?这是一段代码-

在 processPacket() 内部

0 投票
2 回答
725 浏览

java - jssc 总是超时

所以我正在尝试使用 JSSC 库向我的设备发送命令,但还没有成功。这是我的代码,从几个在线示例构建:

当我运行它时,我得到的唯一输出是

设备没有明显响应。但是当我使用这个配置使用 minicom

设备返回一些东西。

我做错了什么?

编辑:我尝试使用超时方法阅读,并且该方法不断抛出超时。

0 投票
1 回答
2781 浏览

multithreading - JavaFX+JSSC(Java Simple Serial Connector)线程通信

我正在从事条形码扫描项目。我使用条形码扫描仪扫描条形码,扫描仪通过蓝牙与我的笔记本电脑通信。蓝牙连接被模拟为串口通信。

我开发了一个 Java 桌面应用程序来检索扫描的条形码并显示它们。我使用 Javafx for UI 和开源库 JSSC(Java Simple Serial Connector)来监听串口并检索扫描的条形码。但是,当添加/启动 JSSC 串行端口时,会创建一个新线程。这个新线程侦听串行端口并检索扫描的条形码。我想要的是在 Javafx UI 上显示扫描的条形码,在 JSSC 侦听器线程中检索到的条形码必须发送回父 Javafx 应用程序线程。

我探索了 javafx.concurrent 包,但发现 JSSC 将线程创建包装到它自己的类中,我无法控制它。有人可以提出解决方案吗?这是我在 Javafx 控制器中启动 JSSC 侦听器的代码片段。基本上,如何将缓冲区设置回 FXML 标签变量条形码?

真的提前感谢!

0 投票
1 回答
643 浏览

multithreading - JavaFX 并发和任务(在任务中运行线程)

我是 JavaFx/Concurrency 的新手,所以我在 JavaFX 中的 Concurrency 上阅读了教程,但我仍然对 JavaFX Gui 中后台线程的实现有些困惑。

我正在尝试编写一个与一些串行设备(使用 JSSC-2.8)接口的小型 GUI,并根据这些设备的响应更新 GUI。但是,在写入消息和设备响应之间存在延迟,并且在任意时间内使用 Thread.sleep() 对我来说不是一种可靠的编程方式。因此,我想使用并发包中的 wait() 和 notify() 方法(具有所有适当的同步),但我不确定如何实现它。我最初所做的是在任务中创建另一个线程,它将写入消息并等待响应,并使用一些绑定来更新 GUI。我在最后包含了我的代码。这是我正在尝试实现的伪代码的简短形式:

但是正在发生的事情是,一旦我调用 wait(),整个应用程序就会空闲,然后当 notify() 被调用时(在响应触发和事件之后),它不会在配方中停止的地方继续( ) 循环,或者 startTdk() 循环,它只是空闲的。我是否错误地实现了线程?当我调用 wait() 时,是否有可能导致 EventDispatch 或 JavaFX 应用程序线程暂停?

我希望问题很清楚,如果需要任何澄清,我可以更新帖子。

我不会包含 Pvci 类,因为它只是 Tdk 类的一个副本,但带有特定的消息序列以与该机器通信。

0 投票
1 回答
920 浏览

java - Java:“AWT-EventQueue-3”中的异常

我正在研究 Oracle 并试图将表单从 6i 移动到 11g。我正在尝试使用 jssc 从称重机建立连接并获取重量(数据)。我面临一些问题。

这是代码:

这是错误消息。

0 投票
2 回答
1797 浏览

java - 与java中的支付终端通信(串口)

我想使用 jssc API 与支付终端进行通信。我发送了一个 ENQ 请求,但我没有回应。我的代码有什么问题?

谢谢

您可以在下面找到我的代码:

0 投票
2 回答
2904 浏览

java - 请求com端口时返回相同的请求

我正在尝试通过 COM 端口发送 AT 命令,但只接收了相同的命令。

日志:

16:19:21.910 [main] 调试 SerialConnections.M234Serial - 创建实例..

16:19:21.974 [main] 调试 SerialConnections.M234Serial -发送请求:AT^SCFG?

16:19:23.976 [EventThread COM55] 调试 SerialConnections.M234Serial - 收到消息:AT^SCFG?

16:19:23.977 [main] 调试 SerialConnections.M234Serial - 结束

我做错了什么,我该如何解决?

0 投票
1 回答
1257 浏览

java - Windows 上的 Java Comm 端口 - 自动端口检测

我正在开发一个应用程序,该应用程序需要能够通过 Windows 操作系统上的串行通信与设备进行通信。该应用程序是用 Java 编写的。我正在使用 jSSC 库。(Javax.comm 有问题,RxTx 除了非官方更新外不支持 Java 8)这些设备可以使用串行端口直接连接到 PC,或者使用 USB 到串行转换器。

我的问题:Windows 上的 COM 端口是动态的。这引发了定义要连接到哪个通信端口的问题。有没有办法自动确定要连接到哪个 COM 端口?

到目前为止,我能够提出的唯一解决方案包括扫描所有 com 端口以查找活动端口,保存此列表,然后要求用户插入设备并执行另一次扫描 - 然后额外的 COM 端口将成为连接至。

或者,设备将响应特定的“识别”数据包:我可以打开每个 COM 端口并发送此数据包并评估响应。这存在其他设备在短时间内被劫持的风险,这并不理想。

0 投票
2 回答
2949 浏览

java - 端口关闭和重新打开后的串口通信

我正在使用带有外部设备的名为 jSSC(java-simple-serial-connector)的库在 Java 中编写串行端口通信应用程序。

发送消息并等待其返回后,如果在一定时间(2 秒)后没有读取,我会超时,将中止读取。如果发生这种情况,端口将关闭并重新打开以进行进一步的消息交换。

我注意到的是,如果由于某种原因发生超时,并且端口被关闭并重新打开,则会干扰从端口读取的进一步消息(即无法解码读取的消息)。看起来好像来自设备的先前消息仍然在线并继续进入下一个读取操作。

我对串口不是很熟悉,所以我不完全确定是否是这种情况。我认为(但很可能是错误的)在我关闭我这边的连接后(如在 TCP/IP 通信中),另一部分发送的先前消息将被丢弃。

关于关闭/重新打开后串行端口的行为如何,任何人都可以对这个主题有所了解吗?即使在我关闭应用程序中的连接后,另一部分(设备)是否可以继续发送旧消息?