前提・実現したいこと
Android Studioで開発をしています。
いずれArduinoから送られてきたセンサデータをAndroidの画面で表示させる練習として、シリアル通信でArduinoから送られてきたテキストをAndroidの画面で表示させる、というアプリを作ろうとしています。
発生している問題・エラーメッセージ
通信自体は成功し、文字も表示されることにはされるのですが、画像のようにスロットのように文字が流れていってしまいます。
安定して文字を表示させる(送られてきたらテキストを上書きさせる)ようにしたいのですが、どうすればいいのかわかりません。教えていただけると嬉しいです。
説明わかりづらくてすいません…。
該当のソースコード
Java
1コード
/****Serial通信スレッド/
public void start_read_thread(){
new Thread(new Runnable(){
@Override
public void run(){
try{
Log.d(TAG,"Thread Start");
while(!mFinished){
Message msg = Message.obtain(mHandler);
byte[] buff = new byte[256];
int num = port.read(buff,buff.length);
readMsg = new String(buff, 0, num); //(byte[],offset,復号化するバイト数)
msg.obj = readMsg;
mHandler.sendMessage(msg);
Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally{ Log.d(TAG,"Thread Finally"); } }
}).start();
}
Handler mHandler = new Handler(){
@Override
public void handleMessage(Message msg){
TextView data = findViewById(R.id.arduino);
String mData = (String)msg.obj; data.setText(mData); } };
### 補足情報(FW/ツールのバージョンなど) USB-serial-for-androidを使わせて頂いてます。 Arduino はずっとHelloをSerial.printlnしているだけです。
回答1件
あなたの回答
tips
プレビュー