问题标签 [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 回答
408 浏览

java - JavaFX Arduino 通信 (JSSC) - 先展示舞台,然后阅读 Arduino

我正在开发一个连接到我的 Arduino Uno 的简单指纹扫描仪。我已经通过 USB 将我的电路连接到我的电脑,这样我就可以串行读取 Arduino 正在为指纹扫描仪处理的数据。我正在使用 JavaFX 为项目制作一个简单的 UI。到目前为止,我已经做了几个阶段。

第一个是主舞台,上面有一个按钮。基本上,单击此按钮会打开串行端口并侦听 2 项中的 1 项,即注册/验证模式(电路上的物理按钮,按下后将字符串“注册”或“验证”发送到串行)。按下注册后,一个新的阶段打开了,由于 Arduino 已经准备好注册打印,我不必再次阅读 Serial。扫描打印件后,我填写了一张表格,然后点击提交按钮,该按钮获取由指纹扫描仪创建的指纹 ID,并将其与表单中的一个字段链接(在幕后)。然后舞台关闭,我开始重新阅读连载。

这就是问题的开始。

我正在寻找要打开哪个窗口,但是如何先打开窗口(取决于在电路上按下了哪个物理按钮)然后重新读取 Serial 以了解用户是否已通过验证,然后更改窗口上的内容?

我知道,这可能看起来很复杂,这就是为什么下面有一些代码。

这是我用来从 Arduino 读取验证输出的函数。

我尝试在打开窗口后等待 2 秒,然后调用 readVerify(SerialPort s),但由于某种原因它读取打印,验证,然后打开窗口。我一直在尝试相反的方法-打开窗口,验证,然后在验证后更改窗口上的几个图像。我该怎么做呢?

最后一件事,

几乎用于读取电路上的按钮输入。根据按下的按钮,checkMode(SerialPort s) 返回 1(注册模式)或 2(验证模式)。

0 投票
1 回答
494 浏览

java - getInputStream 和 getOutPutStream 的 JSSC 替代方案

我正在尝试在我的应用程序中实现一段代码,并且正在使用 JSSC 通信库。我需要实现的这段代码使用 javax.comm.* 库。问题出在 JSSC 中不存在的方法 .getInputStream() 和 getOutputStream() 中。JSSC 库中是否有任何替代方法可以替代这两种方法?

0 投票
2 回答
1869 浏览

java - 使用 jSSC 未检测到 Com 端口

我正在尝试借助我的 java 应用程序中的 Com 端口来实现数据传输。首先,我决定像这样创建 SerialPort 对象。

但是有一个 jssc.SerialPortException: Port name - COM1; 方法名称 - openPort(); 异常类型 - 未找到端口。

然后我试图确定我有哪些 com 端口:

结果很糟糕:portNames 是空的。

请你给我一些建议。

0 投票
3 回答
1716 浏览

java - Java 串行端口库相对于设备的普通 IO 有什么好处?

关于 RXTX 和 JSSC 等 Java 串口库的讨论很多,但它们真正提供了什么?在linux和windows中,您都可以像打开文件一样简单地打开串口进行读写,不是吗?与仅使用文件 IO 从设备读取和写入相比,使用库有什么优势?

我了解这些库允许您配置端口,这通常需要通过命令行调用来完成。但是假设端口已经配置好了,有什么理由使用这些库吗?

0 投票
0 回答
229 浏览

java - 使用 jSSC 将数据写入 Arduino Uno

我正在使用 jSSC 用 Ja​​va 编写一段代码进行串行通信,但我不知道我做错了什么。基本上我必须向 Arduino Uno 发送一个 32k 文件,而 Arduino 必须处理数据并将所有字节发送到外部设备。

我也有这个用 C 编码的(不是我的代码),它工作得很好。

这是Java代码:

这是有效的 C 代码:

我还尝试添加延迟/降低波特率,并首先将串行端口的流量控制设置为 NONE,然后设置为 FLOWCONTROL_XONXOFF_IN | FLOWCONTROL_XONXOFF_OUT 但没有任何改变。

在这里你可以看到Java错误输出和C正确输出的区别。您可以只用记事本打开这些文件。

这是控制 Java/C 代码发送的字节的 Arduino 代码:

0 投票
1 回答
927 浏览

java - Working with data from serial port arraylist

Ok, im lost and dont know what to even google at this point.

I am reading data from a serial port using JSSC.

When I print as a check figure, the data is jacked up. It prints a few rows fine then prints by individual characters. It prints normally if I use "printf"

This is the for loop im using:

Other code:

If I were just printing it, i would be fine with printf.

I need to split each sentence up by the $ sign.

Any help would be appreciated.

UPDATED CODE PER REQUEST

0 投票
0 回答
46 浏览

java - 我应该如何在 Java 中声明从与 USB 通信中捕获的数据?

我正在使用jSSC库通过 USB 端口建立连接。我使用 Windows 应用程序 Device Monitoring Studio 来捕获某个 Windows 程序发送到设备的内容。这是捕获的数据的屏幕截图:

在此处输入图像描述

这是我的问题:我应该如何在 Java 中声明上面的数据?它应该是一个数组bytes

0 投票
1 回答
973 浏览

java - 使用 JSSC 从串口读取。如何使用输入流

我正在使用 JSSC 与串行端口进行通信。数据一次输入 1 个字节。新字符串由回车/换行开始。

字符串长度是可变的。(最多 82 个字符)

每个字符串都以 # 开头。

由于数据一次只有 1 个字节,我必须组装字符串。我尝试使用 RXTX 示例中的 bufferedreader 和 inputstreamreader,但没有成功。

所以我的问题是,如何逐字节组装字符串并刷新字符串?

我需要它一次是 1 个字符串,因为它将被解析。

我试过谷歌搜索各种东西:“jssc inputreader bufferedreader example”“jssc inputreader serialPort.readString()”等。

0 投票
1 回答
329 浏览

java - How do I make a String from a bufferedreader with newline

Example data from serial port using System.out.print()

This message ends with a carriage return followed by a newline. When I use the code below, I get this output.

My goal is to get a string that I can then split by ",". I want to reset/refresh that string on a carriage return/new line sequence.

Lets Assume this is the console output. I want to parse the most recent line. In this case the $GPGSA string.

I guess my question is how do I get the input stream into a format that I can parse?

New edit: When I use this code, it prints exactly how I need it.

How can I replicate the System.out.print(); function?

Console output from above string:

0 投票
1 回答
41 浏览

java - JSSC DCE 控制线

我正在寻找一种使用 Java 为现有旧协议开发 DCE (RS232) 的方法,该协议需要我读取 DTR 引脚状态,并从我的端保持对 DSR 和 RLSD 引脚的控制。我试图通过使用 JSSC 来做到这一点,但它似乎拥有我需要的一切来制作 DTE 方面的事情,例如控制 DTR 和接收 DSR 事件。

目前,在没有任何控制线设置的情况下,它似乎使用了 DTR/DSR 和 RTS/CTS 的组合。

有没有办法让我使用 Java 来控制 DTR 的读取以及 DSR、RLSD 控制线的设置?