aboutsummaryrefslogtreecommitdiff
path: root/tests/EmbeddedKitchenSinkApp
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2018-06-07 23:47:12 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2018-06-07 23:47:12 +0000
commitb4ad3faea87fe691daa3fb3ec92e30e6dc864712 (patch)
tree1d25143bbdeee170792fb91fa4ebf43cb2d7c948 /tests/EmbeddedKitchenSinkApp
parent9eb8e1bcd0ef89878328a2a30011b8e572c5a9ff (diff)
parent417631a1fb9a280d365aab6fb8d3b38ccd65e142 (diff)
downloadCar-b4ad3faea87fe691daa3fb3ec92e30e6dc864712.tar.gz
Merge "Fix Sensor test fragment" into pi-dev
Diffstat (limited to 'tests/EmbeddedKitchenSinkApp')
-rw-r--r--tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/KitchenSinkActivity.java25
-rw-r--r--tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/sensor/SensorsTestFragment.java175
2 files changed, 40 insertions, 160 deletions
diff --git a/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/KitchenSinkActivity.java b/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/KitchenSinkActivity.java
index 0a00c66015..7837f2e775 100644
--- a/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/KitchenSinkActivity.java
+++ b/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/KitchenSinkActivity.java
@@ -17,6 +17,7 @@
package com.google.android.car.kitchensink;
+import android.car.hardware.CarSensorManager;
import android.car.hardware.hvac.CarHvacManager;
import android.car.hardware.power.CarPowerManager;
import android.car.hardware.property.CarPropertyManager;
@@ -27,7 +28,6 @@ import android.support.car.Car;
import android.support.car.CarAppFocusManager;
import android.support.car.CarConnectionCallback;
import android.support.car.CarNotConnectedException;
-import android.support.car.hardware.CarSensorManager;
import android.support.v4.app.Fragment;
import android.util.Log;
@@ -181,17 +181,9 @@ public class KitchenSinkActivity extends CarDrawerActivity {
private CarHvacManager mHvacManager;
private CarPowerManager mPowerManager;
private CarPropertyManager mPropertyManager;
- private CarSensorManager mCarSensorManager;
+ private CarSensorManager mSensorManager;
private CarAppFocusManager mCarAppFocusManager;
- private final CarSensorManager.OnSensorChangedListener mListener = (manager, event) -> {
- switch (event.sensorType) {
- case CarSensorManager.SENSOR_TYPE_DRIVING_STATUS:
- Log.d(TAG, "driving status:" + event.intValues[0]);
- break;
- }
- };
-
public CarHvacManager getHvacManager() {
return mHvacManager;
}
@@ -209,6 +201,10 @@ public class KitchenSinkActivity extends CarDrawerActivity {
return new DrawerAdapter();
}
+ public CarSensorManager getSensorManager() {
+ return mSensorManager;
+ }
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -255,9 +251,6 @@ public class KitchenSinkActivity extends CarDrawerActivity {
@Override
protected void onDestroy() {
super.onDestroy();
- if (mCarSensorManager != null) {
- mCarSensorManager.removeListener(mListener);
- }
if (mCarApi != null) {
mCarApi.disconnect();
}
@@ -281,10 +274,8 @@ public class KitchenSinkActivity extends CarDrawerActivity {
android.car.Car.POWER_SERVICE);
mPropertyManager = (CarPropertyManager) mCarApi.getCarManager(
android.car.Car.PROPERTY_SERVICE);
- mCarSensorManager = (CarSensorManager) mCarApi.getCarManager(Car.SENSOR_SERVICE);
- mCarSensorManager.addListener(mListener,
- CarSensorManager.SENSOR_TYPE_DRIVING_STATUS,
- CarSensorManager.SENSOR_RATE_NORMAL);
+ mSensorManager = (CarSensorManager) mCarApi.getCarManager(
+ android.car.Car.SENSOR_SERVICE);
mCarAppFocusManager =
(CarAppFocusManager) mCarApi.getCarManager(Car.APP_FOCUS_SERVICE);
} catch (CarNotConnectedException e) {
diff --git a/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/sensor/SensorsTestFragment.java b/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/sensor/SensorsTestFragment.java
index 9c84f6eb6b..abc2c10b49 100644
--- a/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/sensor/SensorsTestFragment.java
+++ b/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/sensor/SensorsTestFragment.java
@@ -16,17 +16,18 @@
package com.google.android.car.kitchensink.sensor;
+import static java.lang.Integer.toHexString;
+
import android.Manifest;
import android.annotation.Nullable;
import android.car.Car;
+import android.car.CarNotConnectedException;
+import android.car.hardware.CarSensorConfig;
+import android.car.hardware.CarSensorEvent;
+import android.car.hardware.CarSensorManager;
import android.content.pm.PackageManager;
-import android.location.Location;
import android.os.Bundle;
import android.os.Handler;
-import android.support.car.CarNotConnectedException;
-import android.support.car.hardware.CarSensorConfig;
-import android.support.car.hardware.CarSensorEvent;
-import android.support.car.hardware.CarSensorManager;
import android.support.v4.app.Fragment;
import android.text.TextUtils;
import android.util.Log;
@@ -51,7 +52,7 @@ import java.util.concurrent.ConcurrentHashMap;
public class SensorsTestFragment extends Fragment {
private static final String TAG = "CAR.SENSOR.KS";
private static final boolean DBG = true;
- private static final boolean DBG_VERBOSE = false;
+ private static final boolean DBG_VERBOSE = true;
private static final int KS_PERMISSIONS_REQUEST = 1;
private final static String[] REQUIRED_PERMISSIONS = new String[]{
@@ -66,7 +67,7 @@ public class SensorsTestFragment extends Fragment {
private final CarSensorManager.OnSensorChangedListener mOnSensorChangedListener =
new CarSensorManager.OnSensorChangedListener() {
@Override
- public void onSensorChanged(CarSensorManager manager, CarSensorEvent event) {
+ public void onSensorChanged(CarSensorEvent event) {
if (DBG_VERBOSE) {
Log.v(TAG, "New car sensor event: " + event);
}
@@ -115,26 +116,23 @@ public class SensorsTestFragment extends Fragment {
public void onPause() {
super.onPause();
if (mSensorManager != null) {
- mSensorManager.removeListener(mOnSensorChangedListener);
+ mSensorManager.unregisterListener(mOnSensorChangedListener);
}
}
private void initSensors() {
try {
- mSensorManager = (CarSensorManager)
- mActivity.getCar().getCarManager(Car.SENSOR_SERVICE);
+ mSensorManager =
+ (CarSensorManager) ((KitchenSinkActivity) getActivity()).getSensorManager();
supportedSensors = mSensorManager.getSupportedSensors();
for (Integer sensor : supportedSensors) {
- if ((sensor == CarSensorManager.SENSOR_TYPE_LOCATION
- || sensor == CarSensorManager.SENSOR_TYPE_GPS_SATELLITE)
- && !mActivePermissions.contains(Manifest.permission.ACCESS_FINE_LOCATION)) {
- continue;
- }
- mSensorManager.addListener(mOnSensorChangedListener, sensor,
+ mSensorManager.registerListener(mOnSensorChangedListener, sensor,
CarSensorManager.SENSOR_RATE_NORMAL);
}
} catch (CarNotConnectedException e) {
Log.e(TAG, "Car not connected or not supported", e);
+ } catch (Exception e) {
+ Log.e(TAG, "initSensors() exception caught: ", e);
}
}
@@ -188,23 +186,20 @@ public class SensorsTestFragment extends Fragment {
for (Integer i : supportedSensors) {
CarSensorEvent event = mEventMap.get(i);
switch (i) {
- case CarSensorManager.SENSOR_TYPE_COMPASS:
- summary.add(getCompassString(event));
- break;
case CarSensorManager.SENSOR_TYPE_CAR_SPEED:
summary.add(getContext().getString(R.string.sensor_speed,
getTimestamp(event),
- event == null ? mNaString : event.getCarSpeedData().carSpeed));
+ event == null ? mNaString : event.getCarSpeedData(null).carSpeed));
break;
case CarSensorManager.SENSOR_TYPE_RPM:
summary.add(getContext().getString(R.string.sensor_rpm,
getTimestamp(event),
- event == null ? mNaString : event.getRpmData().rpm));
+ event == null ? mNaString : event.getRpmData(null).rpm));
break;
case CarSensorManager.SENSOR_TYPE_ODOMETER:
summary.add(getContext().getString(R.string.sensor_odometer,
getTimestamp(event),
- event == null ? mNaString : event.getOdometerData().kms));
+ event == null ? mNaString : event.getOdometerData(null).kms));
break;
case CarSensorManager.SENSOR_TYPE_FUEL_LEVEL:
summary.add(getFuelLevel(event));
@@ -216,38 +211,23 @@ public class SensorsTestFragment extends Fragment {
summary.add(getContext().getString(R.string.sensor_parking_brake,
getTimestamp(event),
event == null ? mNaString :
- event.getParkingBrakeData().isEngaged));
+ event.getParkingBrakeData(null).isEngaged));
break;
case CarSensorManager.SENSOR_TYPE_GEAR:
summary.add(getContext().getString(R.string.sensor_gear,
getTimestamp(event),
- event == null ? mNaString : event.getGearData().gear));
+ event == null ? mNaString : event.getGearData(null).gear));
break;
case CarSensorManager.SENSOR_TYPE_NIGHT:
summary.add(getContext().getString(R.string.sensor_night,
getTimestamp(event),
- event == null ? mNaString : event.getNightData().isNightMode));
- break;
- case CarSensorManager.SENSOR_TYPE_LOCATION:
- summary.add(getLocationString(event));
- break;
- case CarSensorManager.SENSOR_TYPE_DRIVING_STATUS:
- String drivingStatus = mNaString;
- String binDrivingStatus = mNaString;
- if (event != null) {
- CarSensorEvent.DrivingStatusData drivingStatusData =
- event.getDrivingStatusData();
- drivingStatus = String.valueOf(drivingStatusData.status);
- binDrivingStatus = Integer.toBinaryString(drivingStatusData.status);
- }
- summary.add(getContext().getString(R.string.sensor_driving_status,
- getTimestamp(event), drivingStatus, binDrivingStatus));
+ event == null ? mNaString : event.getNightData(null).isNightMode));
break;
case CarSensorManager.SENSOR_TYPE_ENVIRONMENT:
String temperature = mNaString;
String pressure = mNaString;
if (event != null) {
- CarSensorEvent.EnvironmentData env = event.getEnvironmentData();
+ CarSensorEvent.EnvironmentData env = event.getEnvironmentData(null);
temperature = Float.isNaN(env.temperature) ? temperature :
String.valueOf(env.temperature);
pressure = Float.isNaN(env.pressure) ? pressure :
@@ -256,19 +236,10 @@ public class SensorsTestFragment extends Fragment {
summary.add(getContext().getString(R.string.sensor_environment,
getTimestamp(event), temperature, pressure));
break;
- case CarSensorManager.SENSOR_TYPE_ACCELEROMETER:
- summary.add(getAccelerometerString(event));
- break;
- case CarSensorManager.SENSOR_TYPE_GPS_SATELLITE:
- summary.add(getGpsSatelliteString(event));
- break;
- case CarSensorManager.SENSOR_TYPE_GYROSCOPE:
- summary.add(getGyroscopeString(event));
- break;
case CarSensorManager.SENSOR_TYPE_WHEEL_TICK_DISTANCE:
if(event != null) {
CarSensorEvent.CarWheelTickDistanceData d =
- event.getCarWheelTickDistanceData();
+ event.getCarWheelTickDistanceData(null);
summary.add(getContext().getString(R.string.sensor_wheel_ticks,
getTimestamp(event), d.sensorResetCount, d.frontLeftWheelDistanceMm,
d.frontRightWheelDistanceMm, d.rearLeftWheelDistanceMm,
@@ -295,14 +266,15 @@ public class SensorsTestFragment extends Fragment {
case CarSensorManager.SENSOR_TYPE_ABS_ACTIVE:
summary.add(getContext().getString(R.string.sensor_abs_is_active,
getTimestamp(event), event == null ? mNaString :
- event.getCarAbsActiveData().absIsActive));
+ event.getCarAbsActiveData(null).absIsActive));
break;
case CarSensorManager.SENSOR_TYPE_TRACTION_CONTROL_ACTIVE:
summary.add(
getContext().getString(R.string.sensor_traction_control_is_active,
getTimestamp(event), event == null ? mNaString :
- event.getCarTractionControlActiveData().tractionControlIsActive));
+ event.getCarTractionControlActiveData(null)
+ .tractionControlIsActive));
break;
case CarSensorManager.SENSOR_TYPE_EV_BATTERY_LEVEL:
summary.add(getEvBatteryLevel(event));
@@ -318,7 +290,7 @@ public class SensorsTestFragment extends Fragment {
break;
default:
// Should never happen.
- Log.w(TAG, "Unrecognized event type: " + i);
+ Log.w(TAG, "Unrecognized event type: " + toHexString(i));
}
}
summaryString = TextUtils.join("\n", summary);
@@ -338,93 +310,10 @@ public class SensorsTestFragment extends Fragment {
return mDateFormat.format(new Date(event.timestamp / (1000L * 1000L)));
}
- private String getCompassString(CarSensorEvent event) {
- String bear = mNaString;
- String pitch = mNaString;
- String roll = mNaString;
- if (event != null) {
- CarSensorEvent.CompassData compass = event.getCompassData();
- bear = Float.isNaN(compass.bearing) ? bear : String.valueOf(compass.bearing);
- pitch = Float.isNaN(compass.pitch) ? pitch : String.valueOf(compass.pitch);
- roll = Float.isNaN(compass.roll) ? roll : String.valueOf(compass.roll);
- }
- return getContext().getString(R.string.sensor_compass,
- getTimestamp(event), bear, pitch, roll);
- }
-
- private String getGyroscopeString(CarSensorEvent event) {
- String x = mNaString;
- String y = mNaString;
- String z = mNaString;
- if (event != null) {
- CarSensorEvent.GyroscopeData gyro = event.getGyroscopeData();
- x = Float.isNaN(gyro.x) ? x : String.valueOf(gyro.x);
- y = Float.isNaN(gyro.y) ? y : String.valueOf(gyro.y);
- z = Float.isNaN(gyro.z) ? z : String.valueOf(gyro.z);
- }
- return getContext().getString(R.string.sensor_gyroscope,
- getTimestamp(event), x, y, z);
- }
-
- private String getAccelerometerString(CarSensorEvent event) {
- String x = mNaString;
- String y = mNaString;
- String z = mNaString;
- if (event != null) {
- CarSensorEvent.AccelerometerData gyro = event.getAccelerometerData();
- x = Float.isNaN(gyro.x) ? x : String.valueOf(gyro.x);
- y = Float.isNaN(gyro.y) ? y : String.valueOf(gyro.y);
- z = Float.isNaN(gyro.z) ? z : String.valueOf(gyro.z);
- }
- return getContext().getString(R.string.sensor_accelerometer,
- getTimestamp(event), x, y, z);
- }
-
- private String getLocationString(CarSensorEvent event) {
- String lat = mNaString;
- String lon = mNaString;
- String accuracy = mNaString;
- String alt = mNaString;
- String speed = mNaString;
- String bearing = mNaString;
- if (event != null) {
- Location location = event.getLocation(null);
- lat = String.valueOf(location.getLatitude());
- lon = String.valueOf(location.getLongitude());
- accuracy = location.hasAccuracy() ? String.valueOf(location.getAccuracy()) : accuracy;
- alt = location.hasAltitude() ? String.valueOf(location.getAltitude()) : alt;
- speed = location.hasSpeed() ? String.valueOf(location.getSpeed()) : speed;
- bearing = location.hasBearing() ? String.valueOf(location.getBearing()) : bearing;
- }
- return getContext().getString(R.string.sensor_location,
- getTimestamp(event), lat, lon, accuracy, alt, speed, bearing);
- }
-
- private String getGpsSatelliteString(CarSensorEvent event) {
- String inUse = mNaString;
- String inView = mNaString;
- String perSattelite = "";
- if (event != null) {
- CarSensorEvent.GpsSatelliteData gpsData = event.getGpsSatelliteData(true);
- inUse = gpsData.numberInUse != -1 ? String.valueOf(gpsData.numberInUse) : inUse;
- inView = gpsData.numberInView != -1 ? String.valueOf(gpsData.numberInView) : inView;
- List<String> perSatteliteList = new ArrayList<>();
- int num = gpsData.usedInFix.length;
- for (int i=0; i<num; i++) {
- perSatteliteList.add(getContext().getString(R.string.sensor_single_gps_satellite,
- i+1, gpsData.usedInFix[i], gpsData.prn[i], gpsData.snr[i],
- gpsData.azimuth[i], gpsData.elevation[i]));
- }
- perSattelite = TextUtils.join(", ", perSatteliteList);
- }
- return getContext().getString(R.string.sensor_gps,
- getTimestamp(event), inView, inUse, perSattelite);
- }
-
private String getFuelLevel(CarSensorEvent event) {
String fuelLevel = mNaString;
if(event != null) {
- fuelLevel = String.valueOf(event.getFuelLevelData().level);
+ fuelLevel = String.valueOf(event.getFuelLevelData(null).level);
}
return getContext().getString(R.string.sensor_fuel_level, getTimestamp(event), fuelLevel);
}
@@ -432,7 +321,7 @@ public class SensorsTestFragment extends Fragment {
private String getFuelDoorOpen(CarSensorEvent event) {
String fuelDoorOpen = mNaString;
if(event != null) {
- fuelDoorOpen = String.valueOf(event.getCarFuelDoorOpenData().fuelDoorIsOpen);
+ fuelDoorOpen = String.valueOf(event.getCarFuelDoorOpenData(null).fuelDoorIsOpen);
}
return getContext().getString(R.string.sensor_fuel_door_open, getTimestamp(event),
fuelDoorOpen);
@@ -441,7 +330,7 @@ public class SensorsTestFragment extends Fragment {
private String getEvBatteryLevel(CarSensorEvent event) {
String evBatteryLevel = mNaString;
if(event != null) {
- evBatteryLevel = String.valueOf(event.getCarEvBatteryLevelData().evBatteryLevel);
+ evBatteryLevel = String.valueOf(event.getCarEvBatteryLevelData(null).evBatteryLevel);
}
return getContext().getString(R.string.sensor_ev_battery_level, getTimestamp(event),
evBatteryLevel);
@@ -451,7 +340,7 @@ public class SensorsTestFragment extends Fragment {
String evChargePortOpen = mNaString;
if(event != null) {
evChargePortOpen = String.valueOf(
- event.getCarEvChargePortOpenData().evChargePortIsOpen);
+ event.getCarEvChargePortOpenData(null).evChargePortIsOpen);
}
return getContext().getString(R.string.sensor_ev_charge_port_is_open, getTimestamp(event),
evChargePortOpen);
@@ -461,7 +350,7 @@ public class SensorsTestFragment extends Fragment {
String evChargePortConnected = mNaString;
if(event != null) {
evChargePortConnected = String.valueOf(
- event.getCarEvChargePortConnectedData().evChargePortIsConnected);
+ event.getCarEvChargePortConnectedData(null).evChargePortIsConnected);
}
return getContext().getString(R.string.sensor_ev_charge_port_is_connected,
getTimestamp(event), evChargePortConnected);
@@ -470,7 +359,7 @@ public class SensorsTestFragment extends Fragment {
private String getEvChargeRate(CarSensorEvent event) {
String evChargeRate = mNaString;
if(event != null) {
- evChargeRate = String.valueOf(event.getCarEvBatteryChargeRateData().evChargeRate);
+ evChargeRate = String.valueOf(event.getCarEvBatteryChargeRateData(null).evChargeRate);
}
return getContext().getString(R.string.sensor_ev_charge_rate, getTimestamp(event),
evChargeRate);