我在Android应用中使用了两个库,我试图制作它。新的android。该应用程序用于连接到串行设备并通过终端控制其控制台。
一个库用于建立串行连接,设置波特率等,还可以通过串行写入读/数据。另一个用于创建终端会话。我的问题在于将这两者结合在一起,以便有一个连接到串行设备的终端。
在终端库中,我需要提供InputStream
和OutputStream
来为终端提供输入和输出。所以我必须调用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);
}
答案 0 :(得分:4)
这两个片段应该为您提供足够的信息来找到问题的解决方案。
<强>读数:强>
byte[] source = ...;
ByteArrayInputStream bis = new ByteArrayInputStream(source);
// read bytes from bis ...
<强>写强>
ByteArrayOutputStream bos = new ByteArrayOutputStream();
// write bytes to bos ...
byte[] sink = bos.toByteArray();
答案 1 :(得分:2)
应该这样做:ByteArrayInputStream,ByteArrayOutputStream
请查看这些案例中的文档。