-2

私は2つのプログラムを持っています。1 つは C で書かれており、シリアル ポート経由で unsinged char の構造体を送信します。

もう 1 つは 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 に答える