Android のライブラリを使用して端末エミュレータに接続しています。これはシリアル デバイス (スイッチ) に接続し、送受信されたデータを表示します。
ただし、バイト配列を何度も送信しているだけなので、スイッチのステータスがわかりません。これは、スイッチが有効になっているのか、設定モードなのかなどです。これにより、間違ったモードでコマンドを入力する可能性があり、それらは機能しません。 . 間違ったコマンドを送信したため、スイッチは回復不能モードになり、それを削除したり、新しい行に移動したりする方法がありません。今対処しようとしている問題は、スイッチのモードがわからないという問題です。コマンドを送信した後、3 つの異なるリターン プロンプトが表示される可能性があることはわかっています。
switch>
switch#
switch(config)#
だから、受信した最後の 2 文字を読めば、自分がどのモードにいるのかわかると思っていました。h>、h#、および )#
データが受信されるたびに、このメソッドでデータを取得します。これが実行されます。
public void onDataReceived(int id, byte[] data)
{
String str = new String(data);
((MyBAIsWrapper) bis).renew(data);
mSession.write(str);
mSession.notifyUpdate();
viewHandler.post(updateView);
}
これを行う最善の方法は、何らかの方法でバイト配列を検索するか、それを文字列に変換して h>、h#、および )# の文字列を検索することでしょうか?返された値に応じてグローバル変数を設定できますか? たぶん最後から逆に検索しますか?