-2

我有两个程序。一种是用 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);
4

1 回答 1

0

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

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

System.out.println();
于 2012-10-09T19:46:04.523 回答