使用Java从串行端口接收C结构
我有两个程序。一个是用C写的,通过串口发送非单字符的结构 另一个是用Java编写的,应该接收这些数据 我正在使用jSSC库,它在从串行端口读取数据后返回一个字节数组。 现在如何提取原始值 发送内容:1,99,23,15,16,17,18 我收到的字节数:[B@c1c428 转换为字符的字节:[C@13526b0 发送数据是正确的。我还编写了一个C程序来读取正确接收数据的数据,所以问题似乎出在Java程序中使用Java从串行端口接收C结构,java,c,struct,serial-port,Java,C,Struct,Serial Port,我有两个程序。一个是用C写的,通过串口发送非单字符的结构 另一个是用Java编写的,应该接收这些数据 我正在使用jSSC库,它在从串行端口读取数据后返回一个字节数组。 现在如何提取原始值 发送内容:1,99,23,15,16,17,18 我收到的字节数:[B@c1c428 转换为字符的字节:[C@13526b0 发送数据是正确的。我还编写了一个C程序来读取正确接收数据的数据,所以问题似乎出在Java程序中 System.out.println("Port " + P
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();
你能分享一些代码来讨论吗?谢谢,这很有效。但是如果我将其转换为char,为什么它不起作用呢?转换为char@user1695165将其视为一个字符,而不是一个整数,我指的是字符串的一部分,整数指的是任何整数,而不是一个int。