2017-01-02 14 views
0

私は奇妙な問題があります! ELM327 Bluetoothアダプタを実行するAndroidアプリを作成しています。一部のデバイスで問題なく動作し、他のデバイスでは動作しません。 例えばアプリは、サムスン銀河S6上で動作し、ギャラクシーTAB A6上では動作しません。ELM327は特定のデバイスを停止していませんでした

私はそれが原因でELM327のものではないが起こっている

It's either one STOPPED > 
     or with the answer.. 
     50 92 STOPPED > 

...それは実際に動作しますが、ELM327が応答停止メッセージを投げ、それは動作しません言っています。どうして?私は3つの異なるアダプタのようにそれらをすべてテストするので、それらはすべて同じことをしています... そして、一度問題が起こらないように、非常に不安定な状態が続いています。 '

void write(String income) { 
     try { 
      mmOutStream.write(income.getBytes()); 
      mmOutStream.write(13); 
      mmOutStream.write(10); 
      mmOutStream.flush(); 
      mHandler.obtainMessage(MESSAGE_WRITE, -1, -1, income).sendToTarget(); 
     } catch (IOException e) { 
      Log.getStackTraceString(e); 
     } 
} 

ELMマニュアルでELMは何かをしているときにチャーを送るときにこのマッサージを送ります。イムはふてくされ私はImはPROMTの文字を待っているか分からない「>」私のコードで.. だから、ギャラクシータブのBluetoothだいくつかは、ちょっと、それは私の頭を壊すの井戸多分pingや何かを文字送信します。しかし、私が見つけたことである: 私は応答遅れを置く場合、それは私がそのように行うと、よりstable..Iは... 停止マッサージ少ないご覧に動作します:

mmOutStream.write(income.getBytes()); 
SystemClock.sleep(50); 
mmOutStream.write(13); 
mmOutStream.write(10); 
mmOutStream.flush(); 

私は私のように行うとさらに停止したマッサージを参照してください。

mmOutStream.write(income.getBytes()); 
SystemClock.sleep(25); 
mmOutStream.write(13); 
SystemClock.sleep(25); 
mmOutStream.write(10); 
mmOutStream.flush();` 

だから、すべてをおそらくないので、イムのPROMTの文字を待っているが、理由はマッサージがデバイスに送信する方法のではありません。おそらく、マッサージのチャーの間には異なる遅延があります。まあ、それはすべて非常に奇妙です。

The ELM manual saying abot STOPPED

+0

私はそれが私の問題を修正する必要がありますマッサージを送信している間、私いくつかは、どのように実際の文字の間に多少の遅延を置くことができる場合、私は..私はタブのBluetoothが速すぎて文字を送ると思います。..だと思うので、atcualマッサージは「mmOutStreamに送ります.write(income.getBytes()); "このような2ヘックスから7ヘックスへの "所得"の長さ00 00 00 00 00 00 00 – SyRus

答えて

0

三星銀河タブA6はそれで問題があるように見え、それがデータを送信する方法ませロジックの説明... Bluetoothモジュールや、それは非常に不安定で予測不可能な作品何かません。私はそれがより安定したこの方法を行うと、時々、あなたが満足な結果を得ることができる場合 はここ

void write(String income) { 
     byte Tray [] = income.getBytes(); 
     try { 

      for(int i= 0; i< Tray.length; i++){ 
       mmOutStream.write(Tra[i]); 
       SystemClock.sleep(10); 
      } 
      SystemClock.sleep(10); 
      mmOutStream.write(13); 
      // SystemClock.sleep(5); 
      mmOutStream.write(10); 
      mmOutStream.flush(); 

      mHandler.obtainMessage(MESSAGE_WRITE, -1, -1, income).sendToTarget(); 
     } catch (IOException e) { 
      Log.getStackTraceString(e); 
     } 
} 

コードを入力してください。しかし、100%ではありません。

関連する問題