私はJavaとアンドロイドの開発には初めてです。これまで私はarduinoと接続してインターフェースをとることができるアプリを作ってきました。私はarduinoからデータを読み込み(バイト単位で)、データをUTF-8で文字列として出力することができるメソッドを持っています。しかし、単にこのメソッドでデータを読み込んで解釈し、解釈されたデータは別のメソッドから呼び出すことができます。たとえば、アンドロイドのボタンです。以下は、データを読み取るコードです。arduinoでアンドロイド開発
public class MainActivity extends AppCompatActivity {
public final String Action_USB_Permission = "com.example.myapplication.USB_PERMISSION";
UsbManager usbManager;
UsbDevice device;
UsbSerialDevice serial;
UsbDeviceConnection connection;
String data;
String adata;
TextView textView;
Button tempButton
UsbSerialInterface.UsbReadCallback mCallback = new UsbSerialInterface.UsbReadCallback() {
@Override
public void onReceivedData(byte[] arg0) {
try {
data = new String(arg0, "UTF-8"); //edit (removed String in "String data =")
} catch (UnsupportedEncodingException e) {
e.getStackTrace();
}
}
};
// Serial codes and commands
public void pushcmd(String command) { //command for serial
serial.write(command.getBytes());
}
public void gettemp() {
pushcmd("T\n");
serial.read(mCallback);
adata = data;
}
//This is for the app creation i think
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
usbManager = (UsbManager) getSystemService(this.USB_SERVICE);
tempButton = (Button) findViewById(R.id.buttontemp);
}
public void onClickTemp(View view) { //This is the command to print data
gettemp();
tvAppend(textView, "\n Measured temperature \n" + adata);
}
private void tvAppend(TextView tv, CharSequence text) {
final TextView ftv = tv;
final CharSequence ftext = text;
runOnUiThread(new Runnable() {
@Override
public void run() {
ftv.append(ftext);
}
});
}
}
tvAppendは、文字列を画面上のテキストビューに印刷するメソッドです。 私はhttps://github.com/felHR85/UsbSerialからライブラリを持って、それは単に
serial.read(mcallback)、私が試してみましたコマンドでそれを参照するように言いますが、私はからある「測定temperaturenull」その後、測定が後に印刷されているが、受信しますonReceivedDataメソッド。どんな提案も大いに感謝します。もし私が明確でないなら、私に知らせてください、私はもう少し詳しく物事をクリアしようとします。
編集:テキストビューフィールドとボタンを定義したtvAppendメソッドを追加しました。私はまた、私はプログラム全体が含まれていないことを指摘している、私はすべての回路からの実装に続きましたhttp://www.allaboutcircuits.com/projects/communicate-with-your-arduino-through-android/フィードバックのお礼ありがとうございました
コメントはどのように上記に変更されます。データは表示されず、「測定温度」のみが表示されます。
'Stringデータ=' –
はまた、あなたが不足しているように見えるから 'STRING'を削除するようにしてください[mcve]を作ることの一部を完成させる。 textView変数とtvAppendメソッドの両方が欠落しています –
@ cricket_007十分に明確ではないことをお知らせいただきありがとうございます。私も文字列から文字列を削除しようとしました= – robman