问题标签 [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 投票
1 回答
738 浏览

java - Java:我们可以使用条件从串行端口读取超时和不超时吗?

我正在使用 Ingenico 终端进行交易处理。我使用套接字和串行端口与主服务器通信。

套接字和串口相互通信,即串口接收到的任何数据都会立即写入套接字的输出流,而套接字接收到的任何数据都会写入串口。

发生这种对话的顺序是:例如:当套接字向串口发送消息时,串口在一定的毫秒内响应一个ACK,然后串口向套接字发送另一个消息,反之亦然反之亦然。

我需要有一个超时机制来检查 in=receive an ACK 在一定的时间限制(几毫秒)内。为了做到这一点,我使用了 Timer 和 TimerTask。为了做到这一点,我从串行端口有条件地读取。我的问题是这是否可行?我在正确的轨道上吗?

到目前为止的代码:

条件:如果预期的下一条消息是 ACK,那么我对其设置超时。

0 投票
1 回答
3581 浏览

java - Java - 获取 COM 端口 ID

我正在编写一个 java 程序,现在我有一个包含 COM 端口号的设置文件。如果设备更改 COM 端口号,则必须更改。

这不是很用户友好。因此,我希望能够获得 COM 端口 ID 的列表,并让用户通过其 ID 选择正确的设备。我试过谷歌搜索,但没有多大成功。

通过 ID 我的意思是如果您检查设备管理器:“COM 端口 ID (COM<#>)”。检查下图中带有红色标记的文本:

在此处输入图像描述

我尝试了以下库:

  • javax.comm - CommPortIdentifier,getPortIdentifiers();
  • jssc - SerialPortList.getPortNames();

但是我一直无法确定是否可以获取 COM 端口 ID,因为上述两种方法只是返回 COM 端口的编号。有谁知道获取 COM 端口 ID 的方法?

0 投票
0 回答
89 浏览

java - 接收到的字节数组并不总是正确的

我有一个 Arduino 程序,它通过蓝牙向 Java 程序发送一个字节数组。

Java 程序在 JSSC 上接收数据。该数组长 72 个字节(18 个浮点数为 4 个字节)。JSSC 如何识别传输结束,或者知道有一个新的字节数组可用?

在大多数情况下,转移是正确的。但时不时会收到垃圾。

我在这里找到了这个例子。

http://www.javaprogrammingforums.com/java-se-api-tutorials/5603-jssc-library-easy-work-serial-ports.html

这 if(event.getEventValue() == 10) 表示换行,但 bytearray 没有换行。

阿杜诺:

Serial.write(字节数组,字节数组的大小);

爪哇:

有谁能够帮我?

最好的问候威利

PS这是我在这个论坛的第一个问题。希望我遵守了规则。

0 投票
1 回答
596 浏览

java - Java验证是否已经添加了串口监听器

如何验证Java中是否已经添加了串口监听,这样".removeEventListener()"就不会产生异常:

jssc.SerialPortException:端口名称 - COM4;方法名称 - removeEventListener(); 异常类型 - 无法删除事件侦听器,因为未添加侦听器。

谢谢你的帮助

0 投票
1 回答
382 浏览

java - 在树莓派上使用 jssc 的奇怪结果

我有一个使用 USB 串行电缆 HL-340 连接到串行端口设备的树莓派(pl-2303 也经过测试)

该设备需要1 个字节的命令,并应以2 个字节回复(好的,这是一个非常简单的设备和非常容易学习的协议 :))

我的代码:

和回调代码:

结果非常奇怪且不可预测:(我希望设备的回复只有 2 个字节,但串行端口会通知我更多可供读取的数据:

或者

或者

什么是问题?我应该更改哪些端口设置?

0 投票
1 回答
563 浏览

java - java中方法和监听器之间的同步执行

假设我必须连续写入 10 次串行端口。

或者:

而且我有一个串行端口事件侦听器,每次我向它写入内容时都会触发它,并调用.map()方法。

我怎样才能让方法等到 serialEvent 收到东西?

- 这就是我到目前为止使用java.util.concurrent.Semaphore处理这个问题的方式:

前任:

在串行侦听器上:

但我不确定这是否是正确的解决方案。谢谢。

0 投票
0 回答
1453 浏览

java - java - jssc无法使用事件侦听器从串行端口读取

我正在尝试将字节序列发送到串行端口,但我无法从端口本身读取回复。我正在使用 Realterm 发送相同的消息来处理串行端口并接收回复。我也在用 Eltima 的串口监视器进行监控,写操作成功,但我什么也读不出来。
我正在使用 JFrame 接口,并声明了一个名为 SerialDevice 的单独类,它将串行端口作为属性及其方法(取自 jssc)实现。
串口应使用 57600,8 位数据,1 位停止位和 RTS。
似乎 RXCHAR() 事件永远不会发生......

下面的代码是按钮鼠标点击动作的一部分

请帮我找出为什么没有事件发生

0 投票
1 回答
1290 浏览

java - java jssc调制解调器发送消息

我正在尝试使用基于SIM900的蜂窝调制解调器从 Java/Netbeans 发送短信。使用 TeraTerm,我验证我可以使用带有基本 AT 命令的调制解调器发送消息。下面的代码尝试使用jssc来发送消息。
我没有收到错误,并且数据似乎已写入调制解调器,但我从未收到短信。对于电话号码,我尝试了使用+和不使用。
在 TeraTerm 中,数字必须没有+才能工作。已经尝试了许多变体,并且使用了许多变体.println。仍然没有进展。
我希望有人能看到我的方式的错误。

提前致谢。道格

0 投票
1 回答
375 浏览

at-command - 如何将数据从 SIM800 系列发送到 Java 中的 REST API

我正在做一个项目,我必须创建一个 API,该 API 将通过 http 接收从 sim 卡发送的数据。为此,我正在尝试实现一个可以模拟该过程的程序,以便我可以从我的 java 程序执行 AT 命令并最终进行 HTTP Post 或 Get 到 REST API。为此,我将使用已通过 USB 或蓝牙连接到笔记本电脑的手机。

我对这个编程领域很陌生。你能帮我解决这个问题吗?

我自己,我尝试使用 Java Communications(但这在 64 位窗口上不起作用)、超级终端和 ATCommand 测试器。

0 投票
1 回答
867 浏览

java - 如何在java中重置繁忙的串口

我正在开发一个将通过 USB/串行端口与外部 pin-pad 通信的应用程序。

有时我面临的问题是操作未正确完成,我的密码键盘卡在未完成的事务中,我无法开始新的事务。

我在这里寻找的是一种杀死所有串行端口连接并在java代码或外部脚本中重新启动它们的方法,当我得到“繁忙的端口异常”时,可以从我的代码中调用。

  • 我使用 JSSC 进行串行通信。