0

RooTooth がインストールされた iRobot があります。これは、Bluetooth からシリアルへのコンバーターです。シリアルポートと同じように動作し、データはそのように受信されると言われています。端末プログラムを使用して、シリアル ケーブル経由でシリアル コマンドを端末プログラムに直接送信できましたが、問題なく動作しています。

また、作成したアプリを使用して、携帯電話から受信した bluetooth コマンドを監視しているコンピューターにコマンドを送信し、意図したとおりにそれらを受信することもできます。

ただし、携帯電話から rootooth に送信しても何も起こりません。コマンドの送信方法に何か問題がありますか? 以下に示すのは、私がそれを行う方法です。

これはハンドラー内にあります。

        case SUCCESS_CONNECT:
            ConnectedThread connectedThread = new ConnectedThread((BluetoothSocket)msg.obj);
            String s = "128 131";
            byte[] command = s.getBytes();
            connectedThread.write(command);
            Toast.makeText(getApplicationContext(), s, 0).show();

            s = "137 0 100 128 0";
            byte[] command1 = s.getBytes();
            connectedThread.write(command1);
            Toast.makeText(getApplicationContext(), s, 0).show();

これは私の write() 関数です

        public void write(byte[] bytes) {
            Log.i(tag, "In write");
            try {
                mmOutStream.write(bytes);
            } catch (IOException e) { }
        }

問題はフォーマットに違いありませんか?ここでの経験がある人なら誰でも、あなたの助けをいただければ幸いです!

最近、私はこれを試みました:

            String [] s = new String[2];
            s[0] = "128";
            s[1] = "131";
            for(int i = 0; i < s.length; i++){
                byte[] command = s[i].getBytes();
                connectedThread.write(command);
                Thread.yield();
            }

            String [] t = new String[5];
            t[0] = "137";
            t[1] = "0";
            t[2] = "100";
            t[3] = "128";
            t[4] = "0";

            for(int i = 0; i < t.length; i++){
                byte[] command = t[i].getBytes();
                connectedThread.write(command);
                Thread.yield();
            }

「/n」文字列を含むこの最近のバージョンも試しましたが、何もしませんでした。

4

1 に答える 1