mirror of
https://codeberg.org/OpenTracksApp/OpenTracks.git
synced 2026-10-02 09:33:06 +02:00
SensorEventCounterTest added; AntDirectSensorManagerTest udpated
This commit is contained in:
+1
-1
@@ -196,7 +196,7 @@ public class AntDirectSensorManager extends AntSensorManager
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean setupChannel(AntSensorBase sensor, byte channel) {
|
protected boolean setupChannel(AntSensorBase sensor, byte channel) {
|
||||||
Log.i(TAG, "setup channel=" + channel + " deviceType=" + sensor.getDeviceType());
|
Log.i(TAG, "setup channel=" + channel + " deviceType=" + sensor.getDeviceType());
|
||||||
|
|
||||||
return setupAntSensorChannel(sensor.getNetworkNumber(),
|
return setupAntSensorChannel(sensor.getNetworkNumber(),
|
||||||
|
|||||||
+51
-30
@@ -18,6 +18,7 @@ package com.google.android.apps.mytracks.services.sensors.ant;
|
|||||||
import com.dsi.ant.AntMesg;
|
import com.dsi.ant.AntMesg;
|
||||||
import com.google.android.apps.mytracks.Constants;
|
import com.google.android.apps.mytracks.Constants;
|
||||||
import com.google.android.apps.mytracks.content.Sensor;
|
import com.google.android.apps.mytracks.content.Sensor;
|
||||||
|
import com.google.android.maps.mytracks.R;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
@@ -27,26 +28,42 @@ import android.test.suitebuilder.annotation.SmallTest;
|
|||||||
public class AntDirectSensorManagerTest extends AndroidTestCase {
|
public class AntDirectSensorManagerTest extends AndroidTestCase {
|
||||||
|
|
||||||
private SharedPreferences sharedPreferences;
|
private SharedPreferences sharedPreferences;
|
||||||
private AntDirectSensorManager manager;
|
private AntSensorBase heartRateSensor;
|
||||||
|
private static final byte HEART_RATE_CHANNEL = 0;
|
||||||
|
|
||||||
|
private class Manager extends AntDirectSensorManager {
|
||||||
|
public Manager(Context context) {
|
||||||
|
super(context);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
protected boolean setupChannel(AntSensorBase sensor, byte channel) {
|
||||||
|
if (channel == HEART_RATE_CHANNEL) {
|
||||||
|
heartRateSensor = sensor;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private Manager manager;
|
||||||
|
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
sharedPreferences = getContext().getSharedPreferences(
|
sharedPreferences = getContext().getSharedPreferences(
|
||||||
Constants.SETTINGS_NAME, Context.MODE_PRIVATE);
|
Constants.SETTINGS_NAME, Context.MODE_PRIVATE);
|
||||||
// Let's use default values.
|
// Let's use default values.
|
||||||
sharedPreferences.edit().clear().apply();
|
sharedPreferences.edit().clear().apply();
|
||||||
manager = new AntDirectSensorManager(getContext());
|
manager = new Manager(getContext());
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
|
||||||
@SmallTest
|
@SmallTest
|
||||||
public void testBroadcastData() {
|
public void testBroadcastData() {
|
||||||
// FIXME manager.setDeviceNumberHRM((short) 42);
|
manager.setupAntSensorChannels();
|
||||||
byte[] buff = new byte[11];
|
assertNotNull(heartRateSensor);
|
||||||
buff[0] = 9;
|
|
||||||
buff[1] = AntMesg.MESG_BROADCAST_DATA_ID;
|
heartRateSensor.setDeviceNumber((short)42);
|
||||||
buff[2] = 0; // HRM CHANNEL
|
byte[] buff = new byte[9];
|
||||||
buff[10] = (byte) 220;
|
buff[0] = HEART_RATE_CHANNEL;
|
||||||
manager.handleMessage(buff);
|
buff[8] = (byte) 220;
|
||||||
|
manager.handleMessage(AntMesg.MESG_BROADCAST_DATA_ID, buff);
|
||||||
|
|
||||||
Sensor.SensorDataSet sds = manager.getSensorDataSet();
|
Sensor.SensorDataSet sds = manager.getSensorDataSet();
|
||||||
assertNotNull(sds);
|
assertNotNull(sds);
|
||||||
@@ -57,39 +74,43 @@ public class AntDirectSensorManagerTest extends AndroidTestCase {
|
|||||||
|
|
||||||
assertFalse(sds.hasCadence());
|
assertFalse(sds.hasCadence());
|
||||||
assertFalse(sds.hasPower());
|
assertFalse(sds.hasPower());
|
||||||
|
assertEquals(Sensor.SensorState.CONNECTED, manager.getSensorState());
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
|
||||||
@SmallTest
|
@SmallTest
|
||||||
public void testChannelId() {
|
public void testChannelId() {
|
||||||
byte[] buff = new byte[11];
|
manager.setupAntSensorChannels();
|
||||||
buff[0] = 9;
|
assertNotNull(heartRateSensor);
|
||||||
buff[1] = AntMesg.MESG_CHANNEL_ID_ID;
|
|
||||||
buff[3] = 42;
|
byte[] buff = new byte[9];
|
||||||
manager.handleMessage(buff);
|
buff[1] = 43;
|
||||||
/* FIXME
|
manager.handleMessage(AntMesg.MESG_CHANNEL_ID_ID, buff);
|
||||||
assertEquals(42, manager.getDeviceNumberHRM());
|
|
||||||
assertEquals(42,
|
assertEquals(43, heartRateSensor.getDeviceNumber());
|
||||||
|
assertEquals(43,
|
||||||
sharedPreferences.getInt(
|
sharedPreferences.getInt(
|
||||||
getContext().getString(R.string.ant_heart_rate_sensor_id_key), -1));
|
getContext().getString(R.string.ant_heart_rate_sensor_id_key), -1));
|
||||||
*/
|
|
||||||
assertNull(manager.getSensorDataSet());
|
assertNull(manager.getSensorDataSet());
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
|
||||||
@SmallTest
|
@SmallTest
|
||||||
public void testResponseEvent() {
|
public void testResponseEvent() {
|
||||||
assertEquals(Sensor.SensorState.NONE, manager.getSensorState());
|
manager.setupAntSensorChannels();
|
||||||
byte[] buff = new byte[5];
|
assertNotNull(heartRateSensor);
|
||||||
buff[0] = 3; // length
|
manager.setHeartRate(210);
|
||||||
buff[1] = AntMesg.MESG_RESPONSE_EVENT_ID;
|
heartRateSensor.setDeviceNumber((short)42);
|
||||||
buff[2] = 0; // channel
|
|
||||||
buff[3] = AntMesg.MESG_UNASSIGN_CHANNEL_ID;
|
|
||||||
buff[4] = 0; // code
|
|
||||||
manager.handleMessage(buff);
|
|
||||||
|
|
||||||
|
assertEquals(Sensor.SensorState.CONNECTED, manager.getSensorState());
|
||||||
|
byte[] buff = new byte[3];
|
||||||
|
buff[0] = HEART_RATE_CHANNEL;
|
||||||
|
buff[1] = AntMesg.MESG_UNASSIGN_CHANNEL_ID;
|
||||||
|
buff[2] = 0; // code
|
||||||
|
manager.handleMessage(AntMesg.MESG_RESPONSE_EVENT_ID, buff);
|
||||||
|
assertEquals(Sensor.SensorState.CONNECTED, manager.getSensorState());
|
||||||
|
|
||||||
|
heartRateSensor.setDeviceNumber((short)0);
|
||||||
|
manager.handleMessage(AntMesg.MESG_RESPONSE_EVENT_ID, buff);
|
||||||
assertEquals(Sensor.SensorState.DISCONNECTED, manager.getSensorState());
|
assertEquals(Sensor.SensorState.DISCONNECTED, manager.getSensorState());
|
||||||
assertNull(manager.getSensorDataSet());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Test timeout too.
|
// TODO: Test timeout too.
|
||||||
|
|||||||
+34
@@ -0,0 +1,34 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2012 Google Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
* License for the specific language governing permissions and limitations under
|
||||||
|
* the License.
|
||||||
|
*/
|
||||||
|
package com.google.android.apps.mytracks.services.sensors.ant;
|
||||||
|
|
||||||
|
import android.test.AndroidTestCase;
|
||||||
|
import android.test.suitebuilder.annotation.SmallTest;
|
||||||
|
|
||||||
|
public class SensorEventCounterTest extends AndroidTestCase {
|
||||||
|
|
||||||
|
@SmallTest
|
||||||
|
public void testGetEventsPerMinute() throws InterruptedException {
|
||||||
|
SensorEventCounter sec = new SensorEventCounter();
|
||||||
|
assertEquals(0, sec.getEventsPerMinute(0, 0));
|
||||||
|
assertEquals(0, sec.getEventsPerMinute(1, 1024));
|
||||||
|
assertEquals(60, sec.getEventsPerMinute(2, 1024 * 2));
|
||||||
|
assertEquals(60, sec.getEventsPerMinute(2, 1024 * 2));
|
||||||
|
|
||||||
|
Thread.sleep(2000);
|
||||||
|
assertTrue(60 > sec.getEventsPerMinute(2, 1024 * 2));
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user