diff options
author | Steve Paik <spaik@google.com> | 2018-06-06 18:11:55 -0700 |
---|---|---|
committer | Steve Paik <spaik@google.com> | 2018-06-07 06:58:17 +0000 |
commit | 417631a1fb9a280d365aab6fb8d3b38ccd65e142 (patch) | |
tree | 1b7230e4c6b1ba801f539153b875b710dd00e737 /tests/EmbeddedKitchenSinkApp | |
parent | f5a142d88a464781d592052a41fe37c81b56c74b (diff) | |
download | Car-417631a1fb9a280d365aab6fb8d3b38ccd65e142.tar.gz |
Fix Sensor test fragment
- Convert sensor test fragment to use car-lib instead of car-support-lib
- Remove accelerometer, gyro, compass, gps from sensor test fragment
(they are not supported in car-lib)
Bug: 80371235
Bug: 79614473
Bug: 79613345
Test: Embedded Kitchen Sink
Change-Id: Ideeb4bfcf32bfa1d1e92000c5315ee54748adedb
Merged-In: Iffd7c82e3adcde6522d51a562885cc2abb8f11e4
Diffstat (limited to 'tests/EmbeddedKitchenSinkApp')
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); |