0

作成しようとしているAndroidアプリで2つのライブラリを使用しています。アンドロイドは初めてです。このアプリは、シリアルデバイスに接続し、端末を介してコンソールを制御するためのものです。

1つのライブラリは、シリアル接続の設定、ボーレートの設定などのためのものであり、シリアルを介して読み取り/データを書き込むこともできます。もう1つは、ターミナルセッションを作成するためのものです。私の問題は、これらの両方を組み合わせて、シリアルデバイスに接続された端末を作成することにあります。

ターミナルライブラリでは、ターミナルに入力と出力を提供するためにInputStreamとを提供する必要があります。そのため、入力ストリームと出力ストリームをOutputStream呼び出しsetTermIn(java.io.InputStream)てエミュレータに接続する必要があります。setTermOut(java.io.OutputStream)

ただし、シリアルライブラリには、送信と受信の2つの方法があり、これらはバイトの配列を処理します。 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

これら 2 つのスニペットは、問題の解決策を見つけるのに十分な情報を提供します。

読む:

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 に答える