问题标签 [rxtx]

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 回答
1341 浏览

java - 如何使用并行端口像切换读取(获取)信号和在java中监听哪个是真的一样?

嗨,我想使用 lpt 端口连接交换机(例如,将 5v 信号发送到某个引脚)监听某个引脚并通知我的应用程序?
我在 Windows 中使用 rxtx-2.1-7-bins-r2。
我使用了 isPrinterBusy() 和 isPrinterError() 方法并将 5v 信号发送到相应的引脚,但我完全正确!:|
问候

0 投票
2 回答
7593 浏览

java - RXTX getPortIdentifiers() 卡住

我在读取点亮的串行端口时遇到问题。当程序到达 CommPortIdentifier.getPortIdentifier() 时,它卡住了将近 5 分钟。我观察到延迟可能是由于扫描系统中的所有端口。那么如何避免这 5 分钟的延迟呢?

0 投票
4 回答
16401 浏览

java - RXTX 串行连接 - 阻塞 read() 问题

我正在尝试使用 RXTX 库来阻止 Windows(XP 和 7)上的串行通信。我已经在两端测试了与 Hyperterminal 的连接,它完美无缺。

我使用以下代码建立了连接:(为清楚起见,省略了异常处理和防御检查)

当我使用

消息在另一端接收良好,但调用

立即返回“java.io.IOException:基础输入流返回零字节”。

然后我决定尝试实现我自己的阻塞读取逻辑并写了这个:

但是这段代码进入了一个无限循环和“nextByte[0] = (byte)inStream.read();” 无论通过串行连接发送什么,都分配 -1。此外,另一端的口吃很严重,只让我每 1-3 秒发送一个字符。如果我尝试在短时间内发送许多字符,则会挂起很长时间。

非常感谢任何帮助。

*edit - 使用 inStream.read(nextByte) 而不是 "nextByte[0] = (byte)inStream.read();" 无论我通过串行连接发送什么,都不会写入 nextByte 变量。

*edit2 - 由于我的代码可以完美地与 SUN javax.comm 库和我从朋友那里得到的 win32com.dll 一起工作,我已经停止尝试让它与 RXTX 一起工作。我对解锁通信不感兴趣,这似乎是其他人可以使 RXTX 工作的唯一方法。

0 投票
3 回答
1188 浏览

java - 防止 NoClassDefFoundError 使程序崩溃

我正在为我的勤工俭学编写一个 Java 程序,它依赖于 RXTX 串行驱动程序。它在我的测试机器上运行良好,但是我注意到在没有安装 RXTX 的机器上运行时,应用程序无法打开。在控制台中,它为“gnu/io/CommPortIdentifier”抛出了“java.lang.NoClassDefFoundError”异常。我将它放入 try/catch 中,以便它向用户显示一条消息,告诉他们检查他们的 RXTX 驱动程序安装,而不是简单地退出程序。但是它实际上并没有这样做,它仍然只是在到达那条线后立即关闭。有任何想法吗?谢谢!

编辑:一些代码给你:

“sportsAll=CommPortIdentifier”行是引发错误的行

0 投票
1 回答
4719 浏览

java - 用于串行通信的带有 rxtx 组件的 Java 小程序

我正在尝试构建一个可以打开串行端口并与之通信的小程序。我使用 rxtxcomm.jar 进行串行通信。我构建了一个可以在 eclipese 环境中完美运行的小程序。我构建了 Jar 文件并对其进行了签名,但是在浏览器中运行时,控制台会显示以下内容:

我什至在 connect 和 open 函数周围使用了 doPrivileged 方法,但它不起作用!请帮忙!!下面是小程序的代码片段: { /** 函数打开一个端口并开始读写 */

}

0 投票
1 回答
1731 浏览

java - 使用 Rxtx 库向 USB 连接的手机发送消息会导致计算机锁定/崩溃——为什么?

最终,我想使用 Java 程序从我通过 USB 插入的手机发送和接收消息。我可以使用 C# 程序执行此操作,但是我要发送和接收消息的程序是用 Java 编写的。为此,我使用 Rxtx 库(但使用来自Cloudhopper的 Windows x64 编译版本)。但是每当我尝试通过 USB 向手机发送任何命令时,我的计算机都会完全锁定,我必须硬重启它。

我正在运行的代码在这里:与串口的双向通信。我认为它成功地建立了一个链接,因为它到达了它接受来自控制台的输入的阶段,但是当我按下回车键并发送输入时,计算机锁定了。

我正在使用 Eclipse 运行 Windows 7 x64。感谢您的任何帮助。

0 投票
3 回答
22160 浏览

java - inputstream.available() 始终为 0

我不知道我的代码发生了什么。我没有收到任何错误,也没有回应。我正在将数据写入串行端口并通过激活等待响应, port.notifyOnDataAvailable(true);但未触发此事件并且 inputstream.available() 始终返回 0。可能有什么问题?我在 linux 中使用 RXTX。

编辑

我在 main 方法上打开端口并在应用程序内的按钮单击事件上发送消息。

0 投票
0 回答
571 浏览

java - 哪个是最好的可以在Linux上使用的串口库

我想知道在 Java 中用于串行端口通信的最佳库。我尝试过使用 comm.jar 的 rxtx 1.4,但遇到了一些问题。当我使用 SampleDemo 测试安装时,端口是打开的,但是当我键入要通过端口发送的字符时,它没有写入端口,导致我没有得到任何响应。

有没有办法检查写作是否正在发生?我认为图书馆有一些问题,所以建议我一些好主意来克服它!

0 投票
0 回答
1785 浏览

java - Windows 中的 RXTX 困难

早上好,

我有一个 Java 程序 orderPrinter,它通过 USB 到串行通信与 POS 打印机通信。我按照说明安装了 RXTX 和 javax.comm 库,在对文件位置进行了一些摆弄之后,成功地让程序在我的机器上运行(Windows 7)。

但是,我在让它在 Windows XP 中工作时遇到了困难(在分发之后,它将成为主要平台,我认为次要平台是 Linux)。在将 64 位 JAR 和 DLL 文件替换为各自的 32 位替代品(如在RXTX wiki上找到)之后,我遇到了几个问题:

1) RXTX 似乎无法找到正确的 COM 端口。通过 echo [gibberish] >> COMx 进行测试会生成响应,因此我知道打印机位于 COM5。以下代码:

打印出“端口://./COM5”作为 32 位机器上的唯一端口,而在 Windows 7 中,我得到“端口:COM5”。我遇到的第一个问题是在 XP 中调用 CommPortIdentifier.getPortIdentifier(port) 失败;我只能想象这是由于 CommPortIdentifier 与端口名称完全匹配。有没有办法修改 JAR 以允许更宽松的端口匹配?

2)假设现在,作为临时修复,我硬编码了 Windows XP 的确切预期字符串。紧接着,当我调用 portID.open([正确的参数) 时,程序崩溃并出现以下错误:

我发现的每个解决方案都归结为使用旧版本的 RXTX;但是,如前所述,我使用的是 2.1-7r2,据我所知,这是最新的稳定版本。我对这个错误以及如何修复它感到完全困惑。有任何想法吗?

请记住,虽然我熟悉 java 编程,但我对与构建相关的错误的理解要有限得多,这似乎就是这种情况;我也希望能够解释这个问题,以便将来更容易解决这个问题。

感谢您的时间。

编辑:我相信我有解决问题 1 的方法;修改源代码,然后重新编译。不过,我真的没有时间调试为什么 javac 在提示符中不是有效命令,我也没有找到在 Eclipse 中执行此操作的可靠方法。同样,这是我第一次做除了导入 JAR 之外的任何事情,所以至少可以说这是一次学习经历。或者在这一点上进行试炼。

0 投票
2 回答
1318 浏览

java - 防止 RXTX 打印版本信息

我在 Windows 上使用 RXTX 2.1-7,但我遇到了一个问题。每当我使用 RXTX 库运行程序时,都会打印以下通用版本信息:

稳定的图书馆

==========================================

本机库版本 = RXTX-2.1-7 Java 库版本 = RXTX-2.1-7

这有助于调试,但我想禁用此打印,因为我已经正确设置了程序。如何防止这种打印?