Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Java从串行端口接收C结构_Java_C_Struct_Serial Port - Fatal编程技术网

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

使用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

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

你能分享一些代码来讨论吗?谢谢,这很有效。但是如果我将其转换为char,为什么它不起作用呢?转换为char@user1695165将其视为一个字符,而不是一个整数,我指的是字符串的一部分,整数指的是任何整数,而不是一个int。