0

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

一个库用于设置串行连接、设置波特率等,还可以通过串行写入读取/数据。另一个用于创建终端会话。我可以毫无问题地运行这些库来启动和运行简单的单独示例。例如,使用第一个库,我可以建立与路由器的串行连接,并通过如下所示的文本框发送/接收数据:

https://lh5.ggpht.com/R4CAJXY9ZPDVsgt8jUZg5hc-v81aa70sctiegIGDjzv2lyvuG6OZyYas_4I-h_es-4Aq

使用第二个库,我可以在平板电脑上设置本地终端并查看目录等。我的问题在于将这两者结合在一起以拥有一个连接到串行设备并具有数据布局/传递的终端.

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

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

所以我的问题是,我如何连接这些?我是否在 sendData 和 OnDataReceived 之上创建 java.io.InputStream/OutputStream 实现,只需将数组转换为流并调用 setTermIn/Out 方法?

对于 OnDataReceived,我想我所做的只是接收 byte[] 数据并将其转换为方法内的流并将其发送到 terminalActivity?但是 sendData 呢,我没有实现这个,我只是发送一个字节数组,如何将它作为流发送而不是 setTermIn?

我也很困惑让这些事情发生在不同的活动中以及它是如何工作的。因为我在一个活动中发生了串行的事情,所以我点击连接,它读取相关的波特率等并连接到串行设备,然后在一个新的终端活动中打开一个终端,该终端活动当前没有连接,看起来像一个空白终端。我不确定应该如何布置所有内容。就像我在终端中按下回车键一样,通过串行发送数据的实现是否应该不在同一个活动中,而不是我最初连接到串行设备的那个活动?但是要知道我是否首先连接到串行设备,我需要发送/接收数据......是否应该在这两个活动中实现这些方法?!

我应该将这两者结合在一项活动中吗?

4

1 回答 1

0

最简单的方法是组合成一个活动。

于 2012-12-18T11:11:00.433 回答