0

我正在尝试制作的 android 应用程序中使用两个库。安卓新手。该应用程序用于连接到串行设备并通过终端控制其控制台。

一个库用于设置串行连接、设置波特率等,还可以通过串行写入读取/数据。另一个用于创建终端会话。我的问题在于将这两者结合在一起以获得连接到串行设备的终端。

在终端库中,我需要提供一个InputStreamOutputStream向终端提供输入和输出。所以我必须调用setTermIn(java.io.InputStream)并将setTermOut(java.io.OutputStream)输入和输出流连接到模拟器。

然而,在串行库中,有两种发送和接收方法,它们处理字节数组。 sendData(byte[] data)用于发送数据和用于接收数据的 dataListener。我必须实现这一点并onDataReceived(int id, byte[] data)使用 id 作为设备名称来编写方法。

我没有通过串行发送字节数组的函数的源代码,那么如何将字节数组变成流以发送到我的终端?

编辑:

我认为这应该覆盖它,这就是我想要的?

Private USB2SerialAdapter mSelectedAdapter;

...

public void sendData(byte[] data)
{
//this should echo what I send to the terminal in the correct format
ByteArrayOutputStream bos = new ByteArrayOutputStream(data.length);     

bos.write(data, 0, data.length);

setTermOut(bos);

//send data over serial using original sendData() method
mSelectedAdapter.sendData(data);
}
4

2 回答 2

4

这两个片段应该为您提供足够的信息来找到问题的解决方案。

阅读:

byte[] source = ...;
ByteArrayInputStream bis = new ByteArrayInputStream(source);
// read bytes from bis ...

写作

ByteArrayOutputStream bos = new ByteArrayOutputStream();
// write bytes to bos ...
byte[] sink = bos.toByteArray();
于 2012-12-10T11:11:39.933 回答
2

这应该这样做:ByteArrayInputStreamByteArrayOutputStream

只需查看这些情况下的文档即可。

于 2012-12-10T11:07:14.657 回答