通过串口发送byte []缓冲区

时间:2015-03-02 18:10:13

标签: java android outputstream

我有一个工作代码,我通过FileOutputStream outputstream.write方法

发送以下byte []数组
private void SendPacket(int numBytes)
    {   
        try {
            if(outputstream != null){

                outputstream.write(writeusbdata,0,8);

            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

我正在接收

14:50:02.374 [<--------] RECV: 30 31 20 30 36 20 34 45 

这很好,但是当我用

替换writeusbdata
byte[] writeusbdata = {(byte) 01, (byte) 06, (byte) 78, (byte) 140, (byte) 00, (byte) 01, (byte) 158, (byte) 201};
outputstream.write(writeusbdata,0,8);

我收到了

15:05:50.414 [<--------] RECV: 06 78 F8 98 E0 E0 00 06 F8 78 18 

- 为什么我收到的字节多于应有的字节数?为什么它们与缓冲区不同?

- 发送此byte []缓冲区的适当方法是什么?

  

请注意:这是Android附件应用程序

1 个答案:

答案 0 :(得分:0)

啊哈!由我自己解决。

这是在发送之前生成byte[] buffer的正确方法

byte[] b = {(byte) 01, (byte) 06, (byte) 78, (byte) 140, (byte) 00, (byte) 01, (byte) 158, (byte) 201};

        /*prepare the packet to be sent*/
        for(int count = 0;count<b.length;count++)
        {   
            writeusbdata[count] = b[count];
        }