Android - akcelerometr na motodroid 1 zprávy nesprávných hodnot na prvním místě?

hlasů
2

Tak píšu aplikaci, která detekuje pohyb, a je třeba provést kalibraci s různými pohyby. Za posledních pár dní, jsem si všiml, že hned poté, co SensorEventListenerje registrováno, onSensorChanged(SensorEvent)vyhodí nekompletní (a tedy chybný) .values[]. Toto chování šrouby do mého procesu kalibrace a množství síly, která značí, pohyb je příliš vysoká. Mám ověřeno, že to je případ pro každý protokolování akcelerometr app jsem si stáhli a testována, takže to není chyba specifická pro můj kód. Myslím, že by to mohlo být způsobeno špatným hardwarem (případně konkrétní mé moto droid 1), nebo softwarové chyby ze strany vlastní ROM, já používám (prostě ohromující 4,9 z Froyo 2.2.1 zdroje.)

Příklad:

sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
SENSOR_DELAY);
....
onSensorChanged(SensorEvent event){
    // event.values[0] = 0.0
    // event.values[1] = -0.47
    // event.values[2] = 0.0
}
....
onSensorChanged(SensorEvent event){
    // event.values[0] = 0.08
    // event.values[1] = -0.47
    // event.values[2] = 0.0
}
....
onSensorChanged(SensorEvent event){
   // event.values[0] = 0.08 
   // event.values[1] = -0.47 
   // event.values[2] = 10.1
}

Jak můžete vidět, to často trvá 2 hodnoty, než všechny správné hodnoty jsou přístupné.

Může někdo potvrdit nebo popřít toto chování na moto droid 1 nebo jiného telefonu? Myslíte si, že dobrým řešením je jen kapka první 2 nebo 3 čtení tak, že nedeformují svůj kalibraci?

Položena 04/11/2010 v 19:00
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
2

Zní to rozumně ke mně. Možná byste mohli zaregistrovat posluchače nejprve s nejrychlejším zpožděním, takže vám těch pár špatných čtení z cesty rychle, pak se znovu zaregistrovat s požadovanou rychlost aktualizace pro váš kalibraci. Dalo by se použít dva různé posluchače, první, kdo dostane CRUD z cesty, pak se sám zruší registraci a registruje ostatní (dobrý) jeden.

Odpovězeno 05/11/2010 v 03:06
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more