- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试从 com 端口获取一些数据,与我在其上写入数据的数据相同,但事实证明它很难读取。我设法找到一个简单的代码片段来读取它,但现在,我只读取零。可能是什么原因?
我将在下面发送我的代码,并解释其预期用途。
private void ReadFromComPortActionPerformed(java.awt.event.ActionEvent evt) {
try {
String text = EmulatorInput.getText();
sendData(text, "COM4");
String out_Text = Arrays.toString(read());
EmulatorOutput.setText(out_Text);
System.out.println(out_Text);
} catch (IOException ex) {
Logger.getLogger(MainWindow.class.getName()).log(Level.SEVERE, null, ex);
}
}
这是一个 JButton,方法名称和参数已由 NetBeans 创建。代码首先从输入面板获取文本作为字符串,将其与 com 端口名称一起发送,连接到该端口,并通过它打开输入/输出流,然后将从输入面板获取的字符串写入到 OutputStream。然后,我创建一个名为 out_Text
的新字符串,并使用 read()
方法从端口读取数据。
这里是读取方法;
private byte[] read() throws IOException {
byte[] buffer = new byte[16];
int total = 0, read = 0;
while (total <= 16 && (read = input.read(buffer, total, 16-total)) > 0) {
total += read;
}
return buffer;
}
在我发布的第一个方法使用 read()
将其收敛为一个可以作为字节数组打印的字符串后,我最终只得到一个零字节。
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
我对此感到非常困惑,因为我确定我写入了端口。我什至监控了我写的内容,可以看到当我使用程序向com端口写入数据时,它接收到的数据会增加。
如果有不清楚的地方或者需要更多代码,请通过评论联系。
谢谢您。
最佳答案
经过多次尝试,我尝试了与 jSSC 相同的操作,并设法再次写作。然而,我还是没能读懂。然后我注意到,我正在创建对 com 端口。因此,简单地说,我开始写入一个端口,并从该对的另一个端口接收数据。它就像一个魅力。我不确定同样的想法是否适用于 rxtx 库,但因为 jSSC 的文档是描述性的,而且它很容易使用,所以我转向了它,以及我的工作方式。您可以在下面找到我的做法的详细说明,无需代码。
PreStep> 当我开始此操作时,COM6 和 COM7 完好无损。
第 1 步> 通过 jSSC 的方法打开两个端口。我将它们构建为 SerialPort,然后设置它们的参数(BaudRate、DataBits 等)。
第二步> 我开始从控制台获取输入,并将它们写入 COM6。当我监视端口及其中的字节时,每次发送输入时它都会发生变化。
第三步> 每次按“Enter”键发送输入时,我都会从 COM7 对象调用读取方法,并将一个字节数组发送到控制台(通过 Arrays.toString(byte[] array) 方法)。
我不知道为什么我不能从我写入的同一个端口读取数据,但是唉,我的问题解决了。感谢您花时间阅读这个答案。如果您有任何疑问,请将其作为评论发布在此问题下。
关于java - 尝试从同一个 com 端口写入和读取,写入成功,但读取失败。做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32883348/
我在使用以下代码时遇到问题: function http_file_exists($url){ $f=fopen($url,"r"); if($f){ fclose($f); retu
我已经通过 Git 部署到 Azure 几个月了,没有出现重大问题,但现在我似乎遇到了一个无法克服的错误。 我创建了一个新的 Azure 网站,为正在开发的项目创建单独的预览链接。我在新站点上设置了
我已经通过flutter创建了一个App并完成了它,我想在flutter文档中阅读时进行部署。 我收到此错误: FAILURE: Build failed with an exception. * W
我在Windows 10中使用一些简单的Powershell代码遇到了这个奇怪的问题,我认为这可能是我做错了,但我不是Powershell的天才。 我有这个: $ix = [System.Net.Dn
我正在尝试使用 RapidJSON 解析从服务器接收到的数据。以下是收到的确切字符串: [ { "Node": "9478149a08f9", "Address": "172.17
我尝试为 ios 编译 OpenCV。我总是收到这些错误。我用不同版本的opencv试了一下,结果都是一样的。 我运行这个:python 平台/ios/build_framework.py ios_o
我在一台机器上做基本的发布/订阅,我的客户端是 StackExchange-Redis 的 C# 客户端,我在同一台机器上运行基于 Windows 的 Redis 服务器(服务器版本 2.8.4) 当
我有这段代码,但无法执行,请帮我解决这个问题 连接 connect_error) { die ("connection failed: " . $terhubung->connect_erro
我在 tomcat 上运行并由 maven 编译的 Web 应用程序给出了以下警告和错误。我可以在本地存储库中看到所有 JAR,但有人可以帮忙吗。 WARNING: Failed to scan JA
我正在 Windows 8 上使用 Android Studio 开发一个 android 应用程序,我正在使用一些 native 代码。突然间我无法编译我的 C 文件。当我运行 ndk-build
下面的代码对类和结构的成员进行序列化和反序列化。序列化工作正常,但我在尝试使用 oarch >> BOOST_SERIALIZATION_NVP(outObj); 反序列化时遇到了以下错误; 代码中是
如果我运行此命令“rspec ./spec/requests/api/v1/password_reset_request_spec.rb”,此文件中的所有测试都会通过。 但是,当我运行“rspec”时
我在尝试执行测试以使用 Protractor 上传文件时出错,我的代码是这个 it('it should be possible to upload a file', function() {
System.loadLibrary("nativefaceswap"); 当我运行我的应用程序时,我在 Android Studio 中发现了此类错误。在logcat中显示: java.lang.U
我希望有人能帮助我!使用任何方法或命令行的任何 SSL/HTTPS 调用均无效。 我在 Windows 10 中使用 Ubuntu Server 18.04 作为子系统。我的问题是昨天才开始出现的,因
通过删除这两个值将日期字段从 null=True 和 Blank=True 更改为 required 时,使用 db.alter 命令时遇到问题。 当以下行被注释掉时,迁移运行不会出现问题。
我第一次使用 Heroku 尝试创建应用程序(使用 SendGrid 的 Inbound Parse Webhook"和 Twilio SMS 通过电子邮件发送和接收 SMS 消息)。通过 Virtu
我正在将我的 swift 项目更新到 Xcode 7 上的 Swift 2.0。xcode 在构建项目时报告了以下错误: 命令/Applications/Xcode.app/Contents/Deve
在我的代码中,SSL 库函数 SSL_library_init() 没有按预期返回 1。我如何才能看到它返回了什么错误? 我在 SSL_library_init() 之后调用了 SSL_load_er
我正在尝试运行在以下链接中找到的答案: Asynchronously Load the Contents of a Div 但是当我这样做时,我会遇到我不太理解的错误。 我的代码: $(documen
我是一名优秀的程序员,十分优秀!