を使用してAndroidデータをarduinoに送信しようとしています。私のGUIには加速度計の読み取り値Bluetooth
が含まれています。fromメソッドにデータを書き込むと、すべてが正常に形成され、すべてが正常に機能しているため、データはいつでもarduinoに転送されます。 SeekBarを変更します。SeekBar
Sockets
OutputStream
Socket
onSeekBarChanged()
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
if(seekBar.getId() == R.id.seekBar)
{
speed.setText(String.valueOf(progress));
String outputData = String.valueOf(progress)+",";
try
{
streams.write(outputData.getBytes());//writes data to OutputStream of Socket
}catch (Exception e){
Log.d("RTR","Sockets not yet formed");
}
}
}
問題は、現在の値とAccelerometer
一緒にデータを継続的に送信する必要があることです。そこで、加速度計のfromメソッドSeekBar
に書き込みを試みました。OutputStream
Socket
onSensorChanged(SensorEvent event)
Result:Program not responding.
public void onSensorChanged(SensorEvent event) {
if(event.sensor.getType() == Sensor.TYPE_ACCELEROMETER)
{
float accXYZ[] = event.values;
float accX = accXYZ[0];
float accY = accXYZ[1];
float accZ = accXYZ[2];
x.setText(String.format("%.2f",accX));
y.setText(String.format("%.2f",accY));
z.setText(String.format("%.2f",accZ));
String outputData = x.getText().toString()+","+speed.getText().toString()+";";
try{
streams.write(outputData.getBytes());
}catch (Exception e){
//Log.d("RTR","X");
}
}
}
これは過負荷になりすぎることを理解しています。データを継続的に送信するには、メソッドに無限ループをUI Thread
使用してを作成する必要があると思います。加速度計とSeekBarデータをこの新しいスレッドに継続的に送信するにはどうすればよいですか。new Thread
run()
または、この新しいスレッドからUIThreadの加速度計とSeekBarのデータを収集する必要があります。
In Short, how do I get data from UIThread to this new Thread.
私の問題と私の現在の手順の合併症についてあなたが知っているすべての可能な解決策を提供してください。