Цикл задержки Android для сбора данных из гироскопаAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Цикл задержки Android для сбора данных из гироскопа

Сообщение Anonymous »

Я создавал это приложение для Android и многое узнал о программах Java и Android. Тем не менее, я просто не смог выяснить, как работать петли задержки. Я посмотрел на другие посты стека и видел разные методы, но не смог успешно их реализовать. Я опишу, что я хочу, чтобы цикл сделал. В течение следующих 20 секунд я хочу, чтобы приложение называло Angmag каждые 50 миллисекунд, чтобы я мог получить величину угловой скорости и посмотреть, выше ли оно выше определенного порога. Эта функция называется каждые 50 миллисекунд в течение 20 секунд, пока приложение не произведет «тестирование полного», а затем завершит тестирование. Как бы я использовал эту функцию задержки в приложении Android? Я прокомментировал, где я хочу задержку в коде.package com.example.shivamgandhi.gyrosafe;

import android.content.Intent;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.os.Handler;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.TextView;

public class Balance_Test_Activity extends VoiceControl implements View.OnClickListener, SensorEventListener, View.OnTouchListener {

int n = 2;
Button btnarray[] = new Button[n];
private SensorManager sManager;
private TextView textView79;
RelativeLayout RelativeLayout;
int count = 0;
double arg0, arg1, arg2;

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.balance_test);

RelativeLayout = (RelativeLayout)findViewById(R.id.RelativeLayout4);

btnarray[0] = (Button)findViewById(R.id.button10);
btnarray[1] = (Button)findViewById(R.id.button20);

sManager = (SensorManager) getSystemService(SENSOR_SERVICE);

textView79 = (TextView)findViewById(R.id.textView79);

for(int i = 0; i 20){
angmag = 1;
}
else{
angmag = 0;
}

gyro_results = angmag + gyro_results;
count++;
Thread.sleep(50000);
}

return gyro_results;
}

@Override
public void onAccuracyChanged(Sensor arg0, int arg1)
{
//Do nothing.
}

public void onSensorChanged(SensorEvent event)
{
//if sensor is unreliable, return void
if (event.accuracy == SensorManager.SENSOR_STATUS_UNRELIABLE)
{
return;
}

arg0 = event.values[0];
arg1 = event.values[1];
arg2 = event.values[2];

//else it will output the Roll, Pitch and Yawn values
textView79.setText("Orientation X (Roll) :"+ Float.toString(event.values[2]) +"\n"+
"Orientation Y (Pitch) :"+ Float.toString(event.values[1]) +"\n"+
"Orientation Z (Yaw) :"+ Float.toString(event.values[0]));
}
}
< /code>
Я предполагаю, что код должен выглядеть примерно так: < /p>
delay 5 seconds;
int count = 0;
while count < 401{
gyro_results = angmag + gyro_results;
count++;
delay 50 milliseconds;
}

return gyro_results;
< /code>
Я бы хотел, чтобы я смог выяснить, как кодировать это самостоятельно, но я пробовал большинство методов. Тем не менее, я все еще вижу некоторые проблемы с Thread.sleep.


Подробнее здесь: https://stackoverflow.com/questions/358 ... -gyroscope
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»