gpt4 book ai didi

java - 使用 Java 从串行端口接收 C 结构体

转载 作者:行者123 更新时间:2023-11-30 20:41:37 24 4
gpt4 key购买 nike

我有两个程序。一种是用 C 编写的,通过串行端口发送未签名的字符结构。

另一个是用 Java 编写的,应该接收此数据。

我正在使用 jSSC 库,它在从串行端口读取后返回一个字节数组。我现在如何提取原始值?

发送内容:1,99,23,15,16,17,18我收到的字节:[B@c1c428字节转换为字符:[C@13526b0

发送数据工作正常。我还编写了一个C程序来读取正确接收的数据,因此问题似乎出在Java程序中。

               System.out.println("Port " + PortName + " opened: " + serialPort.openPort());
//serialPort.setParams(9600, 8, 1, 0);


byte[] input;
if((input = serialPort.readBytes()) == null){
System.out.println("No data to be read");
System.exit(0);
}

char[] chars = new String(input).toCharArray();


System.out.println("Bytes read: " + input.length);
System.out.println("Byteoutput: " + input);



System.out.println("Charoutput: " + chars);

最佳答案

为了实际输出字节数组,您需要执行以下操作:

System.out.print("Byte output: ");
for(int i=0; i < input.length; ++i)
System.out.print(((int)input[i]) + ", ");

System.out.println();

关于java - 使用 Java 从串行端口接收 C 结构体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12807171/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com