summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKostiantyn Boskin <kostyaboskin@gmail.com>2020-08-19 18:06:09 +0300
committerGitHub <noreply@github.com>2020-08-19 11:06:09 -0400
commit37abd12dbbcb0fd0505c424822e1da6eb96793d8 (patch)
tree395268e1cfd4f5621f60d783966f385ba8582c98
parent1d85d37fd2c7845182a0eed0db2a8b104b9f8944 (diff)
downloadsdl_android-37abd12dbbcb0fd0505c424822e1da6eb96793d8.tar.gz
[0266] New Vehicle data GearStatus (#1393)
* [0266] - Extend PRNDL enum - Add TransmissionType - Extend VehicleDataType - Implement changes in proper requests responses related to new structs * [0253] - Add tests for TransmissionType - Add specific struct tests - Update structs according to specification * [0261] - Add enum valueForString method * [0266] - Add more @Deprecated on PRNDL - Fix tests after code review * [0266] - Fix infinitely_variable naming - Update copy-paste error in test * [0266] - Test --> TestValues in multiple files * [0266] - Regenerate using Generator * [0266] - Rollback of formatting changes * Revert LF to CRLF line separators * Rollback javadoc * [0266] - Fix PRNDL * [0266] - Fix VehicleDataType.java * [0266] - Fix VehicleDataType.java * [0266] - Fix VehicleDataType.java * [0266] - Fix VehicleDataType.java * [0266] - Fix UnsubscribeVehicleDataResponse.java.java * Revert LF to CRLF line separators * Rollback javadoc * Update base/src/main/java/com/smartdevicelink/proxy/rpc/GetVehicleData.java Co-authored-by: Robert Henigan <heniganr1@gmail.com> * Update base/src/main/java/com/smartdevicelink/proxy/rpc/GetVehicleData.java Co-authored-by: Robert Henigan <heniganr1@gmail.com> * Update base/src/main/java/com/smartdevicelink/proxy/rpc/GetVehicleDataResponse.java Co-authored-by: Robert Henigan <heniganr1@gmail.com> * Update base/src/main/java/com/smartdevicelink/proxy/rpc/SubscribeVehicleDataResponse.java Co-authored-by: Robert Henigan <heniganr1@gmail.com> * Update base/src/main/java/com/smartdevicelink/proxy/rpc/UnsubscribeVehicleDataResponse.java Co-authored-by: Robert Henigan <heniganr1@gmail.com> * Update base/src/main/java/com/smartdevicelink/proxy/rpc/UnsubscribeVehicleDataResponse.java Co-authored-by: Robert Henigan <heniganr1@gmail.com> * Update base/src/main/java/com/smartdevicelink/proxy/rpc/UnsubscribeVehicleData.java Co-authored-by: Robert Henigan <heniganr1@gmail.com> * Update base/src/main/java/com/smartdevicelink/proxy/rpc/OnVehicleData.java Co-authored-by: Robert Henigan <heniganr1@gmail.com> * Update base/src/main/java/com/smartdevicelink/proxy/rpc/UnsubscribeVehicleData.java Co-authored-by: Robert Henigan <heniganr1@gmail.com> * Update base/src/main/java/com/smartdevicelink/proxy/rpc/GetVehicleDataResponse.java Co-authored-by: Robert Henigan <heniganr1@gmail.com> * Apply suggestions from code review Co-authored-by: Robert Henigan <heniganr1@gmail.com> Co-authored-by: kboskin <kboskin> Co-authored-by: Vladyslav Mustafin <vmustafin@luxoft.com> Co-authored-by: Robert Henigan <heniganr1@gmail.com> Co-authored-by: Vladyslav Mustafin <v.mustafin@gmail.com>
-rw-r--r--android/sdl_android/src/androidTest/assets/json/GetVehicleData.json6
-rw-r--r--android/sdl_android/src/androidTest/assets/json/SubscribeVehicleData.json5
-rw-r--r--android/sdl_android/src/androidTest/assets/json/UnsubscribeVehicleData.json5
-rw-r--r--android/sdl_android/src/androidTest/java/com/smartdevicelink/test/TestValues.java11
-rw-r--r--android/sdl_android/src/androidTest/java/com/smartdevicelink/test/Validator.java24
-rw-r--r--android/sdl_android/src/androidTest/java/com/smartdevicelink/test/VehicleDataHelper.java15
-rw-r--r--android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/GearStatusTests.java71
-rw-r--r--android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/PrndlTests.java10
-rw-r--r--android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/TransmissionTypeTests.java92
-rw-r--r--android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/VehicleDataTypeTests.java5
-rw-r--r--android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnVehicleDataTests.java20
-rw-r--r--android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/GetVehicleDataTests.java5
-rw-r--r--android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/SubscribeVehicleDataTests.java4
-rw-r--r--android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/UnsubscribeVehicleDataTests.java5
-rw-r--r--android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/GetVehicleDataResponseTests.java26
-rw-r--r--android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/SubscribeVehicleDataResponseTest.java9
-rw-r--r--android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/UnsubscribeVehicleDataResponseTest.java17
-rw-r--r--base/src/main/java/com/smartdevicelink/proxy/rpc/GearStatus.java150
-rw-r--r--base/src/main/java/com/smartdevicelink/proxy/rpc/GetVehicleData.java57
-rw-r--r--base/src/main/java/com/smartdevicelink/proxy/rpc/GetVehicleDataResponse.java37
-rw-r--r--base/src/main/java/com/smartdevicelink/proxy/rpc/OnVehicleData.java71
-rw-r--r--base/src/main/java/com/smartdevicelink/proxy/rpc/SubscribeVehicleData.java70
-rw-r--r--base/src/main/java/com/smartdevicelink/proxy/rpc/SubscribeVehicleDataResponse.java35
-rw-r--r--base/src/main/java/com/smartdevicelink/proxy/rpc/UnsubscribeVehicleData.java72
-rw-r--r--base/src/main/java/com/smartdevicelink/proxy/rpc/UnsubscribeVehicleDataResponse.java36
-rw-r--r--base/src/main/java/com/smartdevicelink/proxy/rpc/enums/PRNDL.java73
-rw-r--r--base/src/main/java/com/smartdevicelink/proxy/rpc/enums/TransmissionType.java85
-rw-r--r--base/src/main/java/com/smartdevicelink/proxy/rpc/enums/VehicleDataType.java6
28 files changed, 917 insertions, 105 deletions
diff --git a/android/sdl_android/src/androidTest/assets/json/GetVehicleData.json b/android/sdl_android/src/androidTest/assets/json/GetVehicleData.json
index 3c8b6129b..e75de1d3b 100644
--- a/android/sdl_android/src/androidTest/assets/json/GetVehicleData.json
+++ b/android/sdl_android/src/androidTest/assets/json/GetVehicleData.json
@@ -32,6 +32,7 @@
"fuelRange":true,
"turnSignal":true,
"electronicParkBrakeStatus":true,
+ "gearStatus": true,
"oemCustomVehicleDataName":true,
"windowStatus": true
}
@@ -172,6 +173,11 @@
}
],
"oemCustomVehicleDataName":"oemCustomVehicleDataState",
+ "gearStatus": {
+ "userSelectedGear": "PARK",
+ "transmissionType": "ELECTRIC_VARIABLE",
+ "actualGear": "PARK"
+ },
"windowStatus": [
{
"location": {
diff --git a/android/sdl_android/src/androidTest/assets/json/SubscribeVehicleData.json b/android/sdl_android/src/androidTest/assets/json/SubscribeVehicleData.json
index a6ec021b0..c61da0661 100644
--- a/android/sdl_android/src/androidTest/assets/json/SubscribeVehicleData.json
+++ b/android/sdl_android/src/androidTest/assets/json/SubscribeVehicleData.json
@@ -31,6 +31,7 @@
"fuelRange":true,
"turnSignal":true,
"electronicParkBrakeStatus":true,
+ "gearStatus": true,
"oemCustomVehicleDataName":true,
"windowStatus": true,
"handsOffSteering": true
@@ -156,6 +157,10 @@
"dataType":"VEHICLEDATA_HANDSOFFSTEERING",
"resultCode":"SUCCESS"
},
+ "gearStatus":{
+ "dataType":"VEHICLEDATA_GEARSTATUS",
+ "resultCode":"SUCCESS"
+ },
"oemCustomVehicleDataName":{
"oemCustomDataType":"oemCustomVehicleDataName",
"resultCode":"SUCCESS"
diff --git a/android/sdl_android/src/androidTest/assets/json/UnsubscribeVehicleData.json b/android/sdl_android/src/androidTest/assets/json/UnsubscribeVehicleData.json
index 232e18b4d..dd00502e5 100644
--- a/android/sdl_android/src/androidTest/assets/json/UnsubscribeVehicleData.json
+++ b/android/sdl_android/src/androidTest/assets/json/UnsubscribeVehicleData.json
@@ -32,6 +32,7 @@
"turnSignal":true,
"electronicParkBrakeStatus":true,
"handsOffSteering": true,
+ "gearStatus": true,
"oemCustomVehicleDataName":true,
"windowStatus": true
}
@@ -156,6 +157,10 @@
"dataType":"VEHICLEDATA_HANDSOFFSTEERING",
"resultCode":"SUCCESS"
},
+ "gearStatus":{
+ "dataType":"VEHICLEDATA_GEARSTATUS",
+ "resultCode":"SUCCESS"
+ },
"oemCustomVehicleDataName":{
"oemCustomDataType":"oemCustomVehicleDataName",
"resultCode":"SUCCESS"
diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/TestValues.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/TestValues.java
index d15c1a300..05d0327a7 100644
--- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/TestValues.java
+++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/TestValues.java
@@ -40,6 +40,7 @@ import com.smartdevicelink.proxy.rpc.DisplayCapability;
import com.smartdevicelink.proxy.rpc.DriverDistractionCapability;
import com.smartdevicelink.proxy.rpc.DynamicUpdateCapabilities;
import com.smartdevicelink.proxy.rpc.EqualizerSettings;
+import com.smartdevicelink.proxy.rpc.GearStatus;
import com.smartdevicelink.proxy.rpc.Grid;
import com.smartdevicelink.proxy.rpc.HMICapabilities;
import com.smartdevicelink.proxy.rpc.HMIPermissions;
@@ -168,6 +169,7 @@ import com.smartdevicelink.proxy.rpc.enums.MetadataType;
import com.smartdevicelink.proxy.rpc.enums.ModuleType;
import com.smartdevicelink.proxy.rpc.enums.NavigationAction;
import com.smartdevicelink.proxy.rpc.enums.NavigationJunction;
+import com.smartdevicelink.proxy.rpc.enums.PRNDL;
import com.smartdevicelink.proxy.rpc.enums.PowerModeQualificationStatus;
import com.smartdevicelink.proxy.rpc.enums.PowerModeStatus;
import com.smartdevicelink.proxy.rpc.enums.PrerecordedSpeech;
@@ -191,6 +193,7 @@ import com.smartdevicelink.proxy.rpc.enums.TemperatureUnit;
import com.smartdevicelink.proxy.rpc.enums.TextAlignment;
import com.smartdevicelink.proxy.rpc.enums.TextFieldName;
import com.smartdevicelink.proxy.rpc.enums.TouchType;
+import com.smartdevicelink.proxy.rpc.enums.TransmissionType;
import com.smartdevicelink.proxy.rpc.enums.TriggerSource;
import com.smartdevicelink.proxy.rpc.enums.UpdateMode;
import com.smartdevicelink.proxy.rpc.enums.VehicleDataEventStatus;
@@ -442,6 +445,10 @@ public class TestValues {
public static final SeatLocation GENERAL_SEAT_LOCATION = new SeatLocation();
public static final ModuleInfo GENERAL_MODULE_INFO = new ModuleInfo();
public static final WindowType GENERAL_WINDOWTYPE = WindowType.MAIN;
+ public static final GearStatus GENERAL_GEAR_STATUS = new GearStatus();
+ public static final PRNDL GENERAL_USER_SELECTED_GEAR = PRNDL.NEUTRAL;
+ public static final PRNDL GENERAL_ACTUAL_GEAR = PRNDL.DRIVE;
+ public static final TransmissionType GENERAL_TRANSMISSION_TYPE = TransmissionType.AUTOMATIC;
public static final Grid GENERAL_LOCATION_GRID = new Grid(2, 3);
public static final WindowState GENERAL_WINDOW_STATE = new WindowState(2, 3);
public static final Integer GENERAL_APPROX_POSITION = new Integer(3);
@@ -1130,6 +1137,10 @@ public class TestValues {
GENERAL_MODULE_INFO.setModuleServiceArea(TestValues.GENERAL_GRID);
GENERAL_MODULE_INFO.setMultipleAccessAllowance(TestValues.GENERAL_BOOLEAN);
+ GENERAL_GEAR_STATUS.setActualGear(GENERAL_ACTUAL_GEAR);
+ GENERAL_GEAR_STATUS.setTransmissionType(GENERAL_TRANSMISSION_TYPE);
+ GENERAL_GEAR_STATUS.setUserSelectedGear(GENERAL_USER_SELECTED_GEAR);
+
GENERAL_WINDOW_STATUS.setLocation(TestValues.GENERAL_GRID);
GENERAL_WINDOW_STATUS.setState(TestValues.GENERAL_WINDOW_STATE);
diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/Validator.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/Validator.java
index 9cf1fdd85..d34bfea07 100644
--- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/Validator.java
+++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/Validator.java
@@ -11,8 +11,10 @@ import com.smartdevicelink.proxy.rpc.enums.DefrostZone;
import com.smartdevicelink.proxy.rpc.enums.FileType;
import com.smartdevicelink.proxy.rpc.enums.HMILevel;
import com.smartdevicelink.proxy.rpc.enums.HmiZoneCapabilities;
+import com.smartdevicelink.proxy.rpc.enums.PRNDL;
import com.smartdevicelink.proxy.rpc.enums.PrerecordedSpeech;
import com.smartdevicelink.proxy.rpc.enums.SpeechCapabilities;
+import com.smartdevicelink.proxy.rpc.enums.TransmissionType;
import com.smartdevicelink.proxy.rpc.enums.VentilationMode;
import java.util.Iterator;
@@ -3827,6 +3829,28 @@ public class Validator{
return validateGrid(cap1.getGrid(), cap2.getGrid());
}
+ public static boolean validateGearStatuses(GearStatus status1, GearStatus status2) {
+ if (status1 == null) {
+ return (status2 == null);
+ }
+ if (status2 == null) {
+ return (status1 == null);
+ }
+
+ PRNDL actualGear1 = status1.getActualGear();
+ PRNDL actualGear2 = status2.getActualGear();
+
+ TransmissionType transmissionType1 = status1.getTransmissionType();
+ TransmissionType transmissionType2 = status2.getTransmissionType();
+
+ PRNDL userSelectedGear1 = status1.getUserSelectedGear();
+ PRNDL userSelectedGear2 = status2.getUserSelectedGear();
+
+ return actualGear1.equals(actualGear2)
+ && transmissionType1.equals(transmissionType2)
+ && userSelectedGear1.equals(userSelectedGear2);
+ }
+
public static boolean validateWindowStatuses(List<WindowStatus> item1, List<WindowStatus> item2) {
if (item1 == null) {
return ( item2 == null );
diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/VehicleDataHelper.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/VehicleDataHelper.java
index f200b46e7..542cf28c3 100644
--- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/VehicleDataHelper.java
+++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/VehicleDataHelper.java
@@ -9,6 +9,7 @@ import com.smartdevicelink.proxy.rpc.ECallInfo;
import com.smartdevicelink.proxy.rpc.EmergencyEvent;
import com.smartdevicelink.proxy.rpc.FuelRange;
import com.smartdevicelink.proxy.rpc.GPSData;
+import com.smartdevicelink.proxy.rpc.GearStatus;
import com.smartdevicelink.proxy.rpc.GetVehicleDataResponse;
import com.smartdevicelink.proxy.rpc.Grid;
import com.smartdevicelink.proxy.rpc.HeadLampStatus;
@@ -35,6 +36,7 @@ import com.smartdevicelink.proxy.rpc.enums.PRNDL;
import com.smartdevicelink.proxy.rpc.enums.PowerModeQualificationStatus;
import com.smartdevicelink.proxy.rpc.enums.PowerModeStatus;
import com.smartdevicelink.proxy.rpc.enums.PrimaryAudioSource;
+import com.smartdevicelink.proxy.rpc.enums.TransmissionType;
import com.smartdevicelink.proxy.rpc.enums.TurnSignal;
import com.smartdevicelink.proxy.rpc.enums.VehicleDataEventStatus;
import com.smartdevicelink.proxy.rpc.enums.VehicleDataNotificationStatus;
@@ -196,6 +198,12 @@ public class VehicleDataHelper{
public static final FuelType FUEL_RANGE_TYPE = FuelType.GASOLINE;
public static final Float FUEL_RANGE_RANGE = TestValues.GENERAL_FLOAT;
+ // Gear status
+ public static final GearStatus GEAR_STATUS = new GearStatus();
+ public static final PRNDL USER_SELECTED_GEAR = PRNDL.FIRST;
+ public static final PRNDL ACTUAL_GEAR = PRNDL.SECOND;
+ public static final TransmissionType TRANSMISSION_TYPE = TransmissionType.ELECTRIC_VARIABLE;
+
// WindowStatus
public static final Grid LOCATION_GRID = TestValues.GENERAL_LOCATION_GRID;
public static final WindowState WINDOW_STATE = TestValues.GENERAL_WINDOW_STATE;
@@ -341,6 +349,11 @@ public class VehicleDataHelper{
e.printStackTrace();
}
+ // GEAR_STATUS
+ GEAR_STATUS.setTransmissionType(TRANSMISSION_TYPE);
+ GEAR_STATUS.setUserSelectedGear(USER_SELECTED_GEAR);
+ GEAR_STATUS.setActualGear(ACTUAL_GEAR);
+
//set up the OnVehicleData object
VEHICLE_DATA.setSpeed(SPEED);
VEHICLE_DATA.setRpm(RPM);
@@ -371,6 +384,7 @@ public class VehicleDataHelper{
VEHICLE_DATA.setFuelRange(FUEL_RANGE_LIST);
VEHICLE_DATA.setTurnSignal(TURN_SIGNAL);
VEHICLE_DATA.setElectronicParkBrakeStatus(ELECTRONIC_PARK_BRAKE_STATUS);
+ VEHICLE_DATA.setGearStatus(GEAR_STATUS);
VEHICLE_DATA.setWindowStatus(WINDOW_STATUS_LIST);
VEHICLE_DATA.setOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME, OEM_CUSTOM_VEHICLE_DATA_STATE);
VEHICLE_DATA.setHandsOffSteering(HANDS_OFF_STEERING);
@@ -404,6 +418,7 @@ public class VehicleDataHelper{
VEHICLE_DATA_RESPONSE.setFuelRange(FUEL_RANGE_LIST);
VEHICLE_DATA_RESPONSE.setTurnSignal(TURN_SIGNAL);
VEHICLE_DATA_RESPONSE.setElectronicParkBrakeStatus(ELECTRONIC_PARK_BRAKE_STATUS);
+ VEHICLE_DATA_RESPONSE.setGearStatus(GEAR_STATUS);
VEHICLE_DATA_RESPONSE.setWindowStatus(WINDOW_STATUS_LIST);
VEHICLE_DATA_RESPONSE.setOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME, OEM_CUSTOM_VEHICLE_DATA_STATE);
VEHICLE_DATA_RESPONSE.setHandsOffSteering(HANDS_OFF_STEERING);
diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/GearStatusTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/GearStatusTests.java
new file mode 100644
index 000000000..eed1a1df2
--- /dev/null
+++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/GearStatusTests.java
@@ -0,0 +1,71 @@
+package com.smartdevicelink.test.rpc.datatypes;
+
+import com.smartdevicelink.proxy.rpc.GearStatus;
+import com.smartdevicelink.proxy.rpc.enums.PRNDL;
+import com.smartdevicelink.proxy.rpc.enums.TransmissionType;
+import com.smartdevicelink.test.JsonUtils;
+import com.smartdevicelink.test.TestValues;
+
+import junit.framework.TestCase;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.Iterator;
+
+public class GearStatusTests extends TestCase {
+ private GearStatus msg;
+
+ @Override
+ public void setUp() {
+ msg = new GearStatus();
+
+ msg.setUserSelectedGear(TestValues.GENERAL_USER_SELECTED_GEAR);
+ msg.setActualGear(TestValues.GENERAL_ACTUAL_GEAR);
+ msg.setTransmissionType(TestValues.GENERAL_TRANSMISSION_TYPE);
+ }
+
+ /**
+ * Tests the expected values of the RPC message.
+ */
+ public void testRpcValues() {
+ // Test Values
+ PRNDL userSelectedGear = msg.getUserSelectedGear();
+ PRNDL actualGear = msg.getActualGear();
+ TransmissionType transmissionType = msg.getTransmissionType();
+
+ // Valid Tests
+ assertEquals(TestValues.MATCH, TestValues.GENERAL_USER_SELECTED_GEAR, userSelectedGear);
+ assertEquals(TestValues.MATCH, TestValues.GENERAL_ACTUAL_GEAR, actualGear);
+ assertEquals(TestValues.MATCH, TestValues.GENERAL_TRANSMISSION_TYPE, transmissionType);
+
+ // Invalid/Null Tests
+ GearStatus msg = new GearStatus();
+ assertNotNull(TestValues.NOT_NULL, msg);
+
+ assertNull(TestValues.NULL, msg.getActualGear());
+ assertNull(TestValues.NULL, msg.getUserSelectedGear());
+ assertNull(TestValues.NULL, msg.getTransmissionType());
+ }
+
+ public void testJson() {
+ JSONObject reference = new JSONObject();
+
+ try {
+ reference.put(GearStatus.KEY_ACTUAL_GEAR, TestValues.GENERAL_ACTUAL_GEAR);
+ reference.put(GearStatus.KEY_USER_SELECTED_GEAR, TestValues.GENERAL_USER_SELECTED_GEAR);
+ reference.put(GearStatus.KEY_TRANSMISSION_TYPE, TestValues.GENERAL_TRANSMISSION_TYPE);
+
+ JSONObject underTest = msg.serializeJSON();
+ assertEquals(TestValues.MATCH, reference.length(), underTest.length());
+
+ Iterator<?> iterator = reference.keys();
+ while (iterator.hasNext()) {
+ String key = (String) iterator.next();
+ assertEquals(TestValues.MATCH, JsonUtils.readObjectFromJsonObject(reference, key), JsonUtils.readObjectFromJsonObject(underTest, key));
+ }
+ } catch (JSONException e) {
+ fail(TestValues.JSON_FAIL);
+ }
+ }
+}
diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/PrndlTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/PrndlTests.java
index 394d0cd37..26ea35573 100644
--- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/PrndlTests.java
+++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/PrndlTests.java
@@ -47,6 +47,10 @@ public class PrndlTests extends TestCase {
PRNDL enumSeventh = PRNDL.valueForString(example);
example = "EIGHTH";
PRNDL enumEighth = PRNDL.valueForString(example);
+ example = "NINTH";
+ PRNDL enumNinth = PRNDL.valueForString(example);
+ example = "TENTH";
+ PRNDL enumTenth = PRNDL.valueForString(example);
example = "UNKNOWN";
PRNDL enumUnknown = PRNDL.valueForString(example);
example = "FAULT";
@@ -66,6 +70,8 @@ public class PrndlTests extends TestCase {
assertNotNull("SIXTH returned null", enumSixth);
assertNotNull("SEVENTH returned null", enumSeventh);
assertNotNull("EIGHTH returned null", enumEighth);
+ assertNotNull("NINTH returned null", enumNinth);
+ assertNotNull("TENTH returned null", enumTenth);
assertNotNull("UNKNOWN returned null", enumUnknown);
assertNotNull("FAULT returned null", enumFault);
}
@@ -119,7 +125,9 @@ public class PrndlTests extends TestCase {
enumTestList.add(PRNDL.SIXTH);
enumTestList.add(PRNDL.SEVENTH);
enumTestList.add(PRNDL.EIGHTH);
- enumTestList.add(PRNDL.UNKNOWN);
+ enumTestList.add(PRNDL.NINTH);
+ enumTestList.add(PRNDL.TENTH);
+ enumTestList.add(PRNDL.UNKNOWN);
enumTestList.add(PRNDL.FAULT);
assertTrue("Enum value list does not match enum class list",
diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/TransmissionTypeTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/TransmissionTypeTests.java
new file mode 100644
index 000000000..6a21c7cc2
--- /dev/null
+++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/TransmissionTypeTests.java
@@ -0,0 +1,92 @@
+package com.smartdevicelink.test.rpc.enums;
+
+import com.smartdevicelink.proxy.rpc.enums.TransmissionType;
+
+import junit.framework.TestCase;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+public class TransmissionTypeTests extends TestCase {
+ /**
+ * Verifies that the enum values are not null upon valid assignment.
+ */
+ public void testValidEnums () {
+ String example = "MANUAL";
+ TransmissionType manual = TransmissionType.valueForString(example);
+ example = "AUTOMATIC";
+ TransmissionType automatic = TransmissionType.valueForString(example);
+ example = "SEMI_AUTOMATIC";
+ TransmissionType semiAutomatic = TransmissionType.valueForString(example);
+ example = "DUAL_CLUTCH";
+ TransmissionType dualClutch = TransmissionType.valueForString(example);
+ example = "CONTINUOUSLY_VARIABLE";
+ TransmissionType continuouslyVariable = TransmissionType.valueForString(example);
+ example = "INFINITELY_VARIABLE";
+ TransmissionType infinitelyVariable = TransmissionType.valueForString(example);
+ example = "ELECTRIC_VARIABLE";
+ TransmissionType electricVariable = TransmissionType.valueForString(example);
+ example = "DIRECT_DRIVE";
+ TransmissionType directDrive = TransmissionType.valueForString(example);
+
+ assertNotNull("MANUAL returned null", manual);
+ assertNotNull("AUTOMATIC returned null", automatic);
+ assertNotNull("SEMI_AUTOMATIC returned null", semiAutomatic);
+ assertNotNull("DUAL_CLUTCH returned null", dualClutch);
+ assertNotNull("CONTINUOUSLY_VARIABLE returned null", continuouslyVariable);
+ assertNotNull("INFINITELY_VARIABLE returned null", infinitelyVariable);
+ assertNotNull("ELECTRIC_VARIABLE returned null", electricVariable);
+ assertNotNull("DIRECT_DRIVE returned null", directDrive);
+ assertNotNull("DIRECT_DRIVE returned null", directDrive);
+
+ }
+
+ /**
+ * Verifies that an invalid assignment is null.
+ */
+ public void testInvalidEnum () {
+ String example = "pARk";
+ try {
+ TransmissionType temp = TransmissionType.valueForString(example);
+ assertNull("Result of valueForString should be null.", temp);
+ }
+ catch (IllegalArgumentException exception) {
+ fail("Invalid enum throws IllegalArgumentException.");
+ }
+ }
+
+ /**
+ * Verifies that a null assignment is invalid.
+ */
+ public void testNullEnum () {
+ String example = null;
+ try {
+ TransmissionType temp = TransmissionType.valueForString(example);
+ assertNull("Result of valueForString should be null.", temp);
+ }
+ catch (NullPointerException exception) {
+ fail("Null string throws NullPointerException.");
+ }
+ }
+
+ /**
+ * Verifies the possible enum values of TransmissionType.
+ */
+ public void testListEnum() {
+ List<TransmissionType> enumValueList = Arrays.asList(TransmissionType.values());
+
+ List<TransmissionType> enumTestList = new ArrayList<TransmissionType>();
+ enumTestList.add(TransmissionType.MANUAL);
+ enumTestList.add(TransmissionType.AUTOMATIC);
+ enumTestList.add(TransmissionType.SEMI_AUTOMATIC);
+ enumTestList.add(TransmissionType.DUAL_CLUTCH);
+ enumTestList.add(TransmissionType.CONTINUOUSLY_VARIABLE);
+ enumTestList.add(TransmissionType.INFINITELY_VARIABLE);
+ enumTestList.add(TransmissionType.ELECTRIC_VARIABLE);
+ enumTestList.add(TransmissionType.DIRECT_DRIVE);
+
+ assertTrue("Enum value list does not match enum class list",
+ enumValueList.containsAll(enumTestList) && enumTestList.containsAll(enumValueList));
+ }
+}
diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/VehicleDataTypeTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/VehicleDataTypeTests.java
index 6b6b8a144..37793b489 100644
--- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/VehicleDataTypeTests.java
+++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/VehicleDataTypeTests.java
@@ -84,7 +84,8 @@ public class VehicleDataTypeTests extends TestCase {
VehicleDataType enumVehicleDataOemVehicleDataType= VehicleDataType.valueForString(example);
example = "VEHICLEDATA_HANDSOFFSTEERING";
VehicleDataType enumVehicleDataHandsOffSteeringType= VehicleDataType.valueForString(example);
-
+ example = "VEHICLEDATA_GEARSTATUS";
+ VehicleDataType enumVehicleDataGearStatus= VehicleDataType.valueForString(example);
example = "VEHICLEDATA_WINDOWSTATUS";
VehicleDataType enumVehicleDataTypeWindowStatus= VehicleDataType.valueForString(example);
@@ -122,6 +123,7 @@ public class VehicleDataTypeTests extends TestCase {
assertNotNull("VEHICLEDATA_OEM_CUSTOM_DATA returned null", enumVehicleDataOemVehicleDataType);
assertNotNull("VEHICLEDATA_HANDSOFFSTEERING returned null", enumVehicleDataHandsOffSteeringType);
assertNotNull("VEHICLEDATA_WINDOWSTATUS returned null", enumVehicleDataTypeWindowStatus);
+ assertNotNull("VEHICLEDATA_GEARSTATUS returned null", enumVehicleDataGearStatus);
}
/**
@@ -193,6 +195,7 @@ public class VehicleDataTypeTests extends TestCase {
enumTestList.add(VehicleDataType.VEHICLEDATA_OEM_CUSTOM_DATA);
enumTestList.add(VehicleDataType.VEHICLEDATA_HANDSOFFSTEERING);
enumTestList.add(VehicleDataType.VEHICLEDATA_WINDOWSTATUS);
+ enumTestList.add(VehicleDataType.VEHICLEDATA_GEARSTATUS);
assertTrue("Enum value list does not match enum class list",
enumValueList.containsAll(enumTestList) && enumTestList.containsAll(enumValueList));
diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnVehicleDataTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnVehicleDataTests.java
index 45c3b29ee..d333d3b5a 100644
--- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnVehicleDataTests.java
+++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnVehicleDataTests.java
@@ -12,6 +12,7 @@ import com.smartdevicelink.proxy.rpc.ECallInfo;
import com.smartdevicelink.proxy.rpc.EmergencyEvent;
import com.smartdevicelink.proxy.rpc.FuelRange;
import com.smartdevicelink.proxy.rpc.GPSData;
+import com.smartdevicelink.proxy.rpc.GearStatus;
import com.smartdevicelink.proxy.rpc.HeadLampStatus;
import com.smartdevicelink.proxy.rpc.MyKey;
import com.smartdevicelink.proxy.rpc.OnVehicleData;
@@ -101,6 +102,7 @@ public class OnVehicleDataTests extends BaseRpcTests{
result.put(OnVehicleData.KEY_TURN_SIGNAL, VehicleDataHelper.TURN_SIGNAL);
result.put(OnVehicleData.KEY_ELECTRONIC_PARK_BRAKE_STATUS, VehicleDataHelper.ELECTRONIC_PARK_BRAKE_STATUS);
result.put(OnVehicleData.KEY_HANDS_OFF_STEERING, VehicleDataHelper.HANDS_OFF_STEERING);
+ result.put(OnVehicleData.KEY_GEAR_STATUS, VehicleDataHelper.GEAR_STATUS);
result.put(OnVehicleData.KEY_WINDOW_STATUS, VehicleDataHelper.WINDOW_STATUS_LIST);
result.put(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME, VehicleDataHelper.OEM_CUSTOM_VEHICLE_DATA_STATE);
} catch(JSONException e) {
@@ -146,6 +148,7 @@ public class OnVehicleDataTests extends BaseRpcTests{
List<WindowStatus> windowStatusList = ( (OnVehicleData) msg).getWindowStatus();
TurnSignal turnSignal = ( (OnVehicleData) msg).getTurnSignal();
ElectronicParkBrakeStatus electronicParkBrakeStatus = ( (OnVehicleData) msg).getElectronicParkBrakeStatus();
+ GearStatus gearStatus = ( (OnVehicleData) msg).getGearStatus();
Object oemCustomVehicleData = ( (OnVehicleData) msg).getOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME);
Boolean handsOffSteering = ( (OnVehicleData) msg).getHandsOffSteering();
// Valid Tests
@@ -179,6 +182,7 @@ public class OnVehicleDataTests extends BaseRpcTests{
assertTrue(TestValues.TRUE, Validator.validateWindowStatuses(VehicleDataHelper.WINDOW_STATUS_LIST, windowStatusList));
assertEquals(TestValues.MATCH, VehicleDataHelper.TURN_SIGNAL, turnSignal);
assertEquals(TestValues.MATCH, VehicleDataHelper.ELECTRONIC_PARK_BRAKE_STATUS, electronicParkBrakeStatus);
+ assertEquals(TestValues.MATCH, VehicleDataHelper.GEAR_STATUS, gearStatus);
assertEquals(TestValues.MATCH, VehicleDataHelper.OEM_CUSTOM_VEHICLE_DATA_STATE, oemCustomVehicleData);
assertEquals(TestValues.MATCH, VehicleDataHelper.HANDS_OFF_STEERING, handsOffSteering);
// Invalid/Null Tests
@@ -217,6 +221,7 @@ public class OnVehicleDataTests extends BaseRpcTests{
assertNull(TestValues.NULL, msg.getElectronicParkBrakeStatus());
assertNull(TestValues.NULL, msg.getHandsOffSteering());
assertNull(TestValues.NULL, msg.getWindowStatus());
+ assertNull(TestValues.NULL, msg.getGearStatus());
assertNull(TestValues.NULL, msg.getOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME));
}
@@ -238,6 +243,7 @@ public class OnVehicleDataTests extends BaseRpcTests{
JSONObject myKeyObj = new JSONObject();
JSONObject fuelRangeObj = new JSONObject();
JSONObject windowStatusObj = new JSONObject();
+ JSONObject gearStatusObj = new JSONObject();
JSONArray fuelRangeArrayObj = new JSONArray();
JSONArray windowStatusArrayObj = new JSONArray();
@@ -371,6 +377,11 @@ public class OnVehicleDataTests extends BaseRpcTests{
windowStatusObj.put(WindowStatus.KEY_STATE, VehicleDataHelper.WINDOW_STATE);
windowStatusArrayObj.put(windowStatusObj);
+ // GEAR STATUS
+ gearStatusObj.put(GearStatus.KEY_USER_SELECTED_GEAR, VehicleDataHelper.USER_SELECTED_GEAR);
+ gearStatusObj.put(GearStatus.KEY_TRANSMISSION_TYPE, VehicleDataHelper.TRANSMISSION_TYPE);
+ gearStatusObj.put(GearStatus.KEY_ACTUAL_GEAR, VehicleDataHelper.ACTUAL_GEAR);
+
reference.put(OnVehicleData.KEY_SPEED, VehicleDataHelper.SPEED);
reference.put(OnVehicleData.KEY_RPM, VehicleDataHelper.RPM);
reference.put(OnVehicleData.KEY_EXTERNAL_TEMPERATURE, VehicleDataHelper.EXTERNAL_TEMPERATURE);
@@ -402,6 +413,7 @@ public class OnVehicleDataTests extends BaseRpcTests{
reference.put(OnVehicleData.KEY_ELECTRONIC_PARK_BRAKE_STATUS, VehicleDataHelper.ELECTRONIC_PARK_BRAKE_STATUS);
reference.put(OnVehicleData.KEY_HANDS_OFF_STEERING, VehicleDataHelper.HANDS_OFF_STEERING);
reference.put(OnVehicleData.KEY_WINDOW_STATUS, windowStatusArrayObj);
+ reference.put(OnVehicleData.KEY_GEAR_STATUS, gearStatusObj);
reference.put(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME, VehicleDataHelper.OEM_CUSTOM_VEHICLE_DATA_STATE);
JSONObject underTest = msg.serializeJSON();
@@ -497,6 +509,14 @@ public class OnVehicleDataTests extends BaseRpcTests{
new MyKey(JsonRPCMarshaller.deserializeJSONObject(myKeyObjReference)),
new MyKey(JsonRPCMarshaller.deserializeJSONObject(myKeyObjTest))));
}
+ else if (key.equals(OnVehicleData.KEY_GEAR_STATUS)) {
+ JSONObject myKeyObjReference = JsonUtils.readJsonObjectFromJsonObject(reference, key);
+ JSONObject myKeyObjTest = JsonUtils.readJsonObjectFromJsonObject(underTest, key);
+
+ assertTrue(TestValues.TRUE, Validator.validateGearStatuses(
+ new GearStatus(JsonRPCMarshaller.deserializeJSONObject(myKeyObjReference)),
+ new GearStatus(JsonRPCMarshaller.deserializeJSONObject(myKeyObjTest))));
+ }
else if (key.equals(OnVehicleData.KEY_ENGINE_OIL_LIFE)) {
assertEquals(JsonUtils.readDoubleFromJsonObject(reference, key), JsonUtils.readDoubleFromJsonObject(underTest, key));
}
diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/GetVehicleDataTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/GetVehicleDataTests.java
index 67bfb42ec..f3b4b564e 100644
--- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/GetVehicleDataTests.java
+++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/GetVehicleDataTests.java
@@ -63,6 +63,7 @@ public class GetVehicleDataTests extends BaseRpcTests {
msg.setElectronicParkBrakeStatus(TestValues.GENERAL_BOOLEAN);
msg.setHandsOffSteering(TestValues.GENERAL_BOOLEAN);
msg.setWindowStatus(TestValues.GENERAL_BOOLEAN);
+ msg.setGearStatus(TestValues.GENERAL_BOOLEAN);
msg.setOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME, TestValues.GENERAL_BOOLEAN);
return msg;
@@ -113,6 +114,7 @@ public class GetVehicleDataTests extends BaseRpcTests {
result.put(GetVehicleData.KEY_TURN_SIGNAL, TestValues.GENERAL_BOOLEAN);
result.put(GetVehicleData.KEY_ELECTRONIC_PARK_BRAKE_STATUS, TestValues.GENERAL_BOOLEAN);
result.put(GetVehicleData.KEY_HANDS_OFF_STEERING, TestValues.GENERAL_BOOLEAN);
+ result.put(GetVehicleData.KEY_GEAR_STATUS, TestValues.GENERAL_BOOLEAN);
result.put(GetVehicleData.KEY_WINDOW_STATUS, TestValues.GENERAL_BOOLEAN);
result.put(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME, TestValues.GENERAL_BOOLEAN);
}catch(JSONException e){
@@ -160,6 +162,7 @@ public class GetVehicleDataTests extends BaseRpcTests {
assertTrue(TestValues.TRUE, ( (GetVehicleData) msg ).getElectronicParkBrakeStatus());
assertTrue(TestValues.TRUE, ( (GetVehicleData) msg ).getHandsOffSteering());
assertTrue(TestValues.TRUE, ( (GetVehicleData) msg ).getWindowStatus());
+ assertTrue(TestValues.TRUE, ( (GetVehicleData) msg ).getGearStatus());
assertTrue(TestValues.TRUE, ( (GetVehicleData) msg ).getOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME));
// Invalid/Null Tests
@@ -198,6 +201,7 @@ public class GetVehicleDataTests extends BaseRpcTests {
assertNull(TestValues.NULL, msg.getElectronicParkBrakeStatus());
assertNull(TestValues.NULL, msg.getHandsOffSteering());
assertNull(TestValues.NULL, msg.getWindowStatus());
+ assertNull(TestValues.NULL, msg.getGearStatus());
assertNull(TestValues.NULL, msg.getOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME));
}
@@ -252,6 +256,7 @@ public class GetVehicleDataTests extends BaseRpcTests {
assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, GetVehicleData.KEY_ELECTRONIC_PARK_BRAKE_STATUS), cmd.getElectronicParkBrakeStatus());
assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, GetVehicleData.KEY_HANDS_OFF_STEERING), cmd.getHandsOffSteering());
assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, GetVehicleData.KEY_WINDOW_STATUS), cmd.getWindowStatus());
+ assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, GetVehicleData.KEY_GEAR_STATUS), cmd.getGearStatus());
assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME), cmd.getOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME));
} catch (JSONException e) {
fail(TestValues.JSON_FAIL);
diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/SubscribeVehicleDataTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/SubscribeVehicleDataTests.java
index c7b5b9678..fee5ddd25 100644
--- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/SubscribeVehicleDataTests.java
+++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/SubscribeVehicleDataTests.java
@@ -62,6 +62,7 @@ public class SubscribeVehicleDataTests extends BaseRpcTests {
msg.setElectronicParkBrakeStatus(TestValues.GENERAL_BOOLEAN);
msg.setHandsOffSteering(TestValues.GENERAL_BOOLEAN);
msg.setWindowStatus(TestValues.GENERAL_BOOLEAN);
+ msg.setGearStatus(TestValues.GENERAL_BOOLEAN);
msg.setOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME, TestValues.GENERAL_BOOLEAN);
return msg;
@@ -112,6 +113,7 @@ public class SubscribeVehicleDataTests extends BaseRpcTests {
result.put(SubscribeVehicleData.KEY_ELECTRONIC_PARK_BRAKE_STATUS, TestValues.GENERAL_BOOLEAN);
result.put(SubscribeVehicleData.KEY_HANDS_OFF_STEERING, TestValues.GENERAL_BOOLEAN);
result.put(SubscribeVehicleData.KEY_WINDOW_STATUS, TestValues.GENERAL_BOOLEAN);
+ result.put(SubscribeVehicleData.KEY_GEAR_STATUS, TestValues.GENERAL_BOOLEAN);
result.put(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME, TestValues.GENERAL_BOOLEAN);
} catch (JSONException e) {
fail(TestValues.JSON_FAIL);
@@ -157,6 +159,7 @@ public class SubscribeVehicleDataTests extends BaseRpcTests {
assertTrue(TestValues.MATCH,( (SubscribeVehicleData) msg ).getElectronicParkBrakeStatus());
assertTrue(TestValues.MATCH,( (SubscribeVehicleData) msg ).getHandsOffSteering());
assertTrue(TestValues.MATCH,( (SubscribeVehicleData) msg ).getWindowStatus());
+ assertTrue(TestValues.MATCH,( (SubscribeVehicleData) msg ).getGearStatus());
assertTrue(TestValues.MATCH,( (SubscribeVehicleData) msg ).getOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME));
// Invalid/Null Tests
@@ -194,6 +197,7 @@ public class SubscribeVehicleDataTests extends BaseRpcTests {
assertNull(TestValues.NULL, msg.getElectronicParkBrakeStatus());
assertNull(TestValues.NULL, msg.getHandsOffSteering());
assertNull(TestValues.NULL, msg.getWindowStatus());
+ assertNull(TestValues.NULL, msg.getGearStatus());
assertNull(TestValues.NULL, msg.getOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME));
}
diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/UnsubscribeVehicleDataTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/UnsubscribeVehicleDataTests.java
index 98eaf599c..747b61563 100644
--- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/UnsubscribeVehicleDataTests.java
+++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/requests/UnsubscribeVehicleDataTests.java
@@ -63,6 +63,7 @@ public class UnsubscribeVehicleDataTests extends BaseRpcTests {
msg.setTurnSignal(TestValues.GENERAL_BOOLEAN);
msg.setElectronicParkBrakeStatus(TestValues.GENERAL_BOOLEAN);
msg.setCloudAppVehicleID(TestValues.GENERAL_BOOLEAN);
+ msg.setGearStatus(TestValues.GENERAL_BOOLEAN);
msg.setHandsOffSteering(TestValues.GENERAL_BOOLEAN);
msg.setWindowStatus(TestValues.GENERAL_BOOLEAN);
msg.setOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME, TestValues.GENERAL_BOOLEAN);
@@ -116,6 +117,7 @@ public class UnsubscribeVehicleDataTests extends BaseRpcTests {
result.put(UnsubscribeVehicleData.KEY_CLOUD_APP_VEHICLE_ID, TestValues.GENERAL_BOOLEAN);
result.put(UnsubscribeVehicleData.KEY_HANDS_OFF_STEERING, TestValues.GENERAL_BOOLEAN);
result.put(UnsubscribeVehicleData.KEY_WINDOW_STATUS, TestValues.GENERAL_BOOLEAN);
+ result.put(UnsubscribeVehicleData.KEY_GEAR_STATUS, TestValues.GENERAL_BOOLEAN);
result.put(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME, TestValues.GENERAL_BOOLEAN);
} catch (JSONException e) {
fail(TestValues.JSON_FAIL);
@@ -161,6 +163,7 @@ public class UnsubscribeVehicleDataTests extends BaseRpcTests {
assertTrue(TestValues.TRUE,( (UnsubscribeVehicleData) msg ).getCloudAppVehicleID());
assertTrue(TestValues.TRUE,( (UnsubscribeVehicleData) msg ).getHandsOffSteering());
assertTrue(TestValues.TRUE,( (UnsubscribeVehicleData) msg ).getWindowStatus());
+ assertTrue(TestValues.TRUE,( (UnsubscribeVehicleData) msg ).getGearStatus());
assertTrue(TestValues.TRUE,( (UnsubscribeVehicleData) msg ).getOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME));
// Invalid/Null Tests
UnsubscribeVehicleData msg = new UnsubscribeVehicleData();
@@ -198,6 +201,7 @@ public class UnsubscribeVehicleDataTests extends BaseRpcTests {
assertNull(TestValues.NULL, msg.getCloudAppVehicleID());
assertNull(TestValues.NULL, msg.getHandsOffSteering());
assertNull(TestValues.NULL, msg.getWindowStatus());
+ assertNull(TestValues.NULL, msg.getGearStatus());
assertNull(TestValues.NULL, msg.getOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME));
}
@@ -252,6 +256,7 @@ public class UnsubscribeVehicleDataTests extends BaseRpcTests {
assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, UnsubscribeVehicleData.KEY_CLOUD_APP_VEHICLE_ID), cmd.getCloudAppVehicleID());
assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, UnsubscribeVehicleData.KEY_HANDS_OFF_STEERING), cmd.getHandsOffSteering());
assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, UnsubscribeVehicleData.KEY_WINDOW_STATUS), cmd.getWindowStatus());
+ assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, UnsubscribeVehicleData.KEY_GEAR_STATUS), cmd.getGearStatus());
assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME), cmd.getOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME));
}
diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/GetVehicleDataResponseTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/GetVehicleDataResponseTests.java
index 001bf54f2..6ebc03f80 100644
--- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/GetVehicleDataResponseTests.java
+++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/GetVehicleDataResponseTests.java
@@ -12,6 +12,7 @@ import com.smartdevicelink.proxy.rpc.ECallInfo;
import com.smartdevicelink.proxy.rpc.EmergencyEvent;
import com.smartdevicelink.proxy.rpc.FuelRange;
import com.smartdevicelink.proxy.rpc.GPSData;
+import com.smartdevicelink.proxy.rpc.GearStatus;
import com.smartdevicelink.proxy.rpc.GetVehicleDataResponse;
import com.smartdevicelink.proxy.rpc.HeadLampStatus;
import com.smartdevicelink.proxy.rpc.MyKey;
@@ -101,6 +102,7 @@ public class GetVehicleDataResponseTests extends BaseRpcTests{
result.put(GetVehicleDataResponse.KEY_ELECTRONIC_PARK_BRAKE_STATUS, VehicleDataHelper.ELECTRONIC_PARK_BRAKE_STATUS);
result.put(GetVehicleDataResponse.KEY_WINDOW_STATUS, VehicleDataHelper.WINDOW_STATUS_LIST);
result.put(GetVehicleDataResponse.KEY_HANDS_OFF_STEERING, VehicleDataHelper.HANDS_OFF_STEERING);
+ result.put(GetVehicleDataResponse.KEY_GEAR_STATUS, VehicleDataHelper.GEAR_STATUS);
result.put(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME, VehicleDataHelper.OEM_CUSTOM_VEHICLE_DATA_STATE);
} catch(JSONException e){
fail(TestValues.JSON_FAIL);
@@ -127,6 +129,7 @@ public class GetVehicleDataResponseTests extends BaseRpcTests{
JSONObject myKeyObj = new JSONObject();
JSONObject fuelRangeObj = new JSONObject();
JSONObject windowStatusObj = new JSONObject();
+ JSONObject gearStatusObj = new JSONObject();
JSONArray fuelRangeArrayObj = new JSONArray();
JSONArray windowStatusArrayObj = new JSONArray();
@@ -254,6 +257,11 @@ public class GetVehicleDataResponseTests extends BaseRpcTests{
fuelRangeObj.put(FuelRange.KEY_RANGE, VehicleDataHelper.FUEL_RANGE_RANGE);
fuelRangeArrayObj.put(fuelRangeObj);
+ //GEAR_STATUS
+ gearStatusObj.put(GearStatus.KEY_USER_SELECTED_GEAR, VehicleDataHelper.USER_SELECTED_GEAR);
+ gearStatusObj.put(GearStatus.KEY_TRANSMISSION_TYPE, VehicleDataHelper.TRANSMISSION_TYPE);
+ gearStatusObj.put(GearStatus.KEY_ACTUAL_GEAR, VehicleDataHelper.ACTUAL_GEAR);
+
// WINDOW_STATUS
windowStatusObj.put(WindowStatus.KEY_LOCATION, VehicleDataHelper.LOCATION_GRID);
windowStatusObj.put(WindowStatus.KEY_STATE, VehicleDataHelper.WINDOW_STATE);
@@ -287,6 +295,7 @@ public class GetVehicleDataResponseTests extends BaseRpcTests{
reference.put(GetVehicleDataResponse.KEY_MY_KEY, myKeyObj);
reference.put(GetVehicleDataResponse.KEY_FUEL_RANGE, fuelRangeArrayObj);
reference.put(GetVehicleDataResponse.KEY_TURN_SIGNAL, TurnSignal.OFF);
+ reference.put(GetVehicleDataResponse.KEY_GEAR_STATUS, gearStatusObj);
reference.put(GetVehicleDataResponse.KEY_ELECTRONIC_PARK_BRAKE_STATUS, VehicleDataHelper.ELECTRONIC_PARK_BRAKE_STATUS);
reference.put(GetVehicleDataResponse.KEY_WINDOW_STATUS, windowStatusArrayObj);
reference.put(GetVehicleDataResponse.KEY_HANDS_OFF_STEERING, VehicleDataHelper.HANDS_OFF_STEERING);
@@ -408,6 +417,14 @@ public class GetVehicleDataResponseTests extends BaseRpcTests{
assertEquals("JSON value didn't match expected value for key \"" + key + "\".",
JsonUtils.readDoubleFromJsonObject(reference, key), JsonUtils.readDoubleFromJsonObject(underTest, key));
}
+ else if (key.equals(GetVehicleDataResponse.KEY_GEAR_STATUS)) {
+ JSONObject myKeyObjReference = JsonUtils.readJsonObjectFromJsonObject(reference, key);
+ JSONObject myKeyObjTest = JsonUtils.readJsonObjectFromJsonObject(underTest, key);
+
+ assertTrue(TestValues.TRUE, Validator.validateGearStatuses(
+ new GearStatus(JsonRPCMarshaller.deserializeJSONObject(myKeyObjReference)),
+ new GearStatus(JsonRPCMarshaller.deserializeJSONObject(myKeyObjTest))));
+ }
else if (key.equals(GetVehicleDataResponse.KEY_FUEL_RANGE)) {
JSONArray fuelRangeArrayObjReference = JsonUtils.readJsonArrayFromJsonObject(reference, key);
List<FuelRange> fuelRangeRefereceList = new ArrayList<FuelRange>();
@@ -495,6 +512,7 @@ public class GetVehicleDataResponseTests extends BaseRpcTests{
assertEquals(TestValues.MATCH, VehicleDataHelper.TURN_SIGNAL, ( (GetVehicleDataResponse) msg ).getTurnSignal());
assertEquals(TestValues.MATCH, VehicleDataHelper.ELECTRONIC_PARK_BRAKE_STATUS, ( (GetVehicleDataResponse) msg ).getElectronicParkBrakeStatus());
assertEquals(TestValues.MATCH, VehicleDataHelper.WINDOW_STATUS_LIST, ( (GetVehicleDataResponse) msg ).getWindowStatus());
+ assertEquals(TestValues.MATCH, VehicleDataHelper.GEAR_STATUS, ( (GetVehicleDataResponse) msg ).getGearStatus());
assertEquals(TestValues.MATCH, VehicleDataHelper.HANDS_OFF_STEERING, ( (GetVehicleDataResponse) msg ).getHandsOffSteering());
assertEquals(TestValues.MATCH, VehicleDataHelper.OEM_CUSTOM_VEHICLE_DATA_STATE, ( (GetVehicleDataResponse) msg ).getOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME));
@@ -530,6 +548,7 @@ public class GetVehicleDataResponseTests extends BaseRpcTests{
assertNull(TestValues.NULL, msg.getMyKey());
assertNull(TestValues.NULL, msg.getTurnSignal());
assertNull(TestValues.NULL, msg.getElectronicParkBrakeStatus());
+ assertNull(TestValues.NULL, msg.getGearStatus());
assertNull(TestValues.NULL, msg.getHandsOffSteering());
assertNull(TestValues.NULL, msg.getWindowStatus());
assertNull(TestValues.NULL, msg.getOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME));
@@ -615,7 +634,12 @@ public class GetVehicleDataResponseTests extends BaseRpcTests{
JSONObject clusterModeStatusObj = JsonUtils.readJsonObjectFromJsonObject(parameters, GetVehicleDataResponse.KEY_CLUSTER_MODE_STATUS);
ClusterModeStatus clusterModeStatus = new ClusterModeStatus(JsonRPCMarshaller.deserializeJSONObject(clusterModeStatusObj));
assertTrue(TestValues.TRUE, Validator.validateClusterModeStatus(clusterModeStatus, cmd.getClusterModeStatus()) );
-
+
+ JSONObject gearStatusObj = JsonUtils.readJsonObjectFromJsonObject(parameters, GetVehicleDataResponse.KEY_GEAR_STATUS);
+ GearStatus gearStatus = new GearStatus(JsonRPCMarshaller.deserializeJSONObject(gearStatusObj));
+ GearStatus cmdStatus = cmd.getGearStatus();
+ assertTrue(TestValues.TRUE, Validator.validateGearStatuses(gearStatus, cmdStatus));
+
JSONObject myKeyObj = JsonUtils.readJsonObjectFromJsonObject(parameters, GetVehicleDataResponse.KEY_MY_KEY);
MyKey myKey = new MyKey(JsonRPCMarshaller.deserializeJSONObject(myKeyObj));
assertTrue(TestValues.TRUE, Validator.validateMyKey(myKey, cmd.getMyKey()) );
diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/SubscribeVehicleDataResponseTest.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/SubscribeVehicleDataResponseTest.java
index def395e1e..643935a02 100644
--- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/SubscribeVehicleDataResponseTest.java
+++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/SubscribeVehicleDataResponseTest.java
@@ -65,6 +65,7 @@ public class SubscribeVehicleDataResponseTest extends BaseRpcTests {
msg.setFuelRange(TestValues.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_FUELRANGE.ordinal()));
msg.setTurnSignal(TestValues.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_TURNSIGNAL.ordinal()));
msg.setElectronicParkBrakeStatus(TestValues.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_ELECTRONICPARKBRAKESTATUS.ordinal()));
+ msg.setGearStatus(TestValues.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_GEARSTATUS.ordinal()));
msg.setHandsOffSteering(TestValues.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_HANDSOFFSTEERING.ordinal()));
msg.setWindowStatus(TestValues.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_WINDOWSTATUS.ordinal()));
msg.setOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME, TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA);
@@ -120,6 +121,7 @@ public class SubscribeVehicleDataResponseTest extends BaseRpcTests {
result.put(SubscribeVehicleDataResponse.KEY_FUEL_RANGE, TestValues.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_FUELRANGE.ordinal()).serializeJSON());
result.put(SubscribeVehicleDataResponse.KEY_TURN_SIGNAL, TestValues.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_TURNSIGNAL.ordinal()).serializeJSON());
result.put(SubscribeVehicleDataResponse.KEY_WINDOW_STATUS, TestValues.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_WINDOWSTATUS.ordinal()).serializeJSON());
+ result.put(SubscribeVehicleDataResponse.KEY_GEAR_STATUS, TestValues.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_GEARSTATUS.ordinal()).serializeJSON());
result.put(SubscribeVehicleDataResponse.KEY_ELECTRONIC_PARK_BRAKE_STATUS, TestValues.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_ELECTRONICPARKBRAKESTATUS.ordinal()).serializeJSON());
result.put(SubscribeVehicleDataResponse.KEY_HANDS_OFF_STEERING, TestValues.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_HANDSOFFSTEERING.ordinal()).serializeJSON());
result.put(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME, TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA.serializeJSON());
@@ -166,6 +168,7 @@ public class SubscribeVehicleDataResponseTest extends BaseRpcTests {
VehicleDataResult testEBrakeStatus = ( (SubscribeVehicleDataResponse) msg ).getElectronicParkBrakeStatus();
VehicleDataResult testHOffSteering = ( (SubscribeVehicleDataResponse) msg ).getHandsOffSteering();
VehicleDataResult testWindowStatus = ( (SubscribeVehicleDataResponse) msg ).getWindowStatus();
+ VehicleDataResult testGearStatus = ( (SubscribeVehicleDataResponse) msg ).getGearStatus();
VehicleDataResult testOEMCustomVehicleData = ( (SubscribeVehicleDataResponse) msg ).getOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME);
// Valid Tests
@@ -198,6 +201,7 @@ public class SubscribeVehicleDataResponseTest extends BaseRpcTests {
assertTrue(TestValues.TRUE, testTurnSignal.getDataType().equals(VehicleDataType.VEHICLEDATA_TURNSIGNAL));
assertTrue(TestValues.TRUE, testEBrakeStatus.getDataType().equals(VehicleDataType.VEHICLEDATA_ELECTRONICPARKBRAKESTATUS));
assertTrue(TestValues.TRUE, testHOffSteering.getDataType().equals(VehicleDataType.VEHICLEDATA_HANDSOFFSTEERING));
+ assertTrue(TestValues.TRUE, testGearStatus.getDataType().equals(VehicleDataType.VEHICLEDATA_GEARSTATUS));
assertTrue(TestValues.TRUE, testWindowStatus.getDataType().equals(VehicleDataType.VEHICLEDATA_WINDOWSTATUS));
assertTrue(TestValues.TRUE, testOEMCustomVehicleData.getOEMCustomVehicleDataType().equals(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME));
@@ -236,6 +240,7 @@ public class SubscribeVehicleDataResponseTest extends BaseRpcTests {
assertNull(TestValues.NULL, msg.getElectronicParkBrakeStatus());
assertNull(TestValues.NULL, msg.getHandsOffSteering());
assertNull(TestValues.NULL, msg.getWindowStatus());
+ assertNull(TestValues.NULL, msg.getGearStatus());
assertNull(TestValues.NULL, msg.getOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME));
}
@@ -380,6 +385,10 @@ public class SubscribeVehicleDataResponseTest extends BaseRpcTests {
VehicleDataResult referenceWindowStatus = new VehicleDataResult(JsonRPCMarshaller.deserializeJSONObject(windowStatus));
assertTrue(TestValues.TRUE, Validator.validateVehicleDataResult(referenceWindowStatus, cmd.getWindowStatus()));
+ JSONObject gearStatus = JsonUtils.readJsonObjectFromJsonObject(parameters, SubscribeVehicleDataResponse.KEY_GEAR_STATUS);
+ VehicleDataResult referenceGearStatus = new VehicleDataResult(JsonRPCMarshaller.deserializeJSONObject(gearStatus));
+ assertTrue(TestValues.TRUE, Validator.validateVehicleDataResult(referenceGearStatus, cmd.getGearStatus()));
+
JSONObject oemCustomVehicleDataName = JsonUtils.readJsonObjectFromJsonObject(parameters, TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME);
VehicleDataResult referenceOemCustomData = new VehicleDataResult(JsonRPCMarshaller.deserializeJSONObject(oemCustomVehicleDataName));
assertTrue(TestValues.TRUE, Validator.validateVehicleDataResult(referenceOemCustomData, cmd.getOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME)));
diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/UnsubscribeVehicleDataResponseTest.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/UnsubscribeVehicleDataResponseTest.java
index b79ddc4cf..dc69b66ae 100644
--- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/UnsubscribeVehicleDataResponseTest.java
+++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/responses/UnsubscribeVehicleDataResponseTest.java
@@ -69,6 +69,7 @@ public class UnsubscribeVehicleDataResponseTest extends BaseRpcTests {
msg.setElectronicParkBrakeStatus(TestValues.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_ELECTRONICPARKBRAKESTATUS.ordinal()));
msg.setWindowStatus(TestValues.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_WINDOWSTATUS.ordinal()));
msg.setHandsOffSteering(TestValues.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_HANDSOFFSTEERING.ordinal()));
+ msg.setGearStatus(TestValues.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_GEARSTATUS.ordinal()));
msg.setOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME, TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA);
return msg;
@@ -121,7 +122,8 @@ public class UnsubscribeVehicleDataResponseTest extends BaseRpcTests {
result.put(SubscribeVehicleDataResponse.KEY_MY_KEY, TestValues.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_MYKEY.ordinal()).serializeJSON());
result.put(SubscribeVehicleDataResponse.KEY_FUEL_RANGE, TestValues.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_FUELRANGE.ordinal()).serializeJSON());
result.put(SubscribeVehicleDataResponse.KEY_TURN_SIGNAL, TestValues.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_TURNSIGNAL.ordinal()).serializeJSON());
- result.put(SubscribeVehicleDataResponse.KEY_ELECTRONIC_PARK_BRAKE_STATUS, TestValues.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_ELECTRONICPARKBRAKESTATUS.ordinal()).serializeJSON());
+ result.put(SubscribeVehicleDataResponse.KEY_GEAR_STATUS, TestValues.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_GEARSTATUS.ordinal()).serializeJSON());
+ result.put(SubscribeVehicleDataResponse.KEY_ELECTRONIC_PARK_BRAKE_STATUS, TestValues.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_ELECTRONICPARKBRAKESTATUS.ordinal()).serializeJSON());
result.put(SubscribeVehicleDataResponse.KEY_HANDS_OFF_STEERING, TestValues.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_HANDSOFFSTEERING.ordinal()).serializeJSON());
result.put(SubscribeVehicleDataResponse.KEY_WINDOW_STATUS, TestValues.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_WINDOWSTATUS.ordinal()).serializeJSON());
result.put(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME, TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA.serializeJSON());
@@ -167,6 +169,7 @@ public class UnsubscribeVehicleDataResponseTest extends BaseRpcTests {
VehicleDataResult testTurnSignal = ( (UnsubscribeVehicleDataResponse) msg ).getTurnSignal();
VehicleDataResult testEBrakeStatus = ( (UnsubscribeVehicleDataResponse) msg ).getElectronicParkBrakeStatus();
VehicleDataResult testHOffSteering = ( (UnsubscribeVehicleDataResponse) msg ).getHandsOffSteering();
+ VehicleDataResult testGearStatus = ( (UnsubscribeVehicleDataResponse) msg ).getGearStatus();
VehicleDataResult testWindowStatus = ( (UnsubscribeVehicleDataResponse) msg ).getWindowStatus();
VehicleDataResult testOemCustomData = ( (UnsubscribeVehicleDataResponse) msg ).getOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME);
@@ -202,7 +205,8 @@ public class UnsubscribeVehicleDataResponseTest extends BaseRpcTests {
assertTrue(TestValues.TRUE, testHOffSteering.getDataType().equals(VehicleDataType.VEHICLEDATA_HANDSOFFSTEERING));
assertTrue(TestValues.TRUE, testWindowStatus.getDataType().equals(VehicleDataType.VEHICLEDATA_WINDOWSTATUS));
assertTrue(TestValues.TRUE, testOemCustomData.getOEMCustomVehicleDataType().equals(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME));
-
+ assertTrue(TestValues.TRUE, testGearStatus.getDataType().equals(VehicleDataType.VEHICLEDATA_GEARSTATUS));
+
// Invalid/Null Tests
UnsubscribeVehicleDataResponse msg = new UnsubscribeVehicleDataResponse();
assertNotNull("Null object creation failed.", msg);
@@ -236,8 +240,9 @@ public class UnsubscribeVehicleDataResponseTest extends BaseRpcTests {
assertNull(TestValues.NULL, msg.getFuelRange());
assertNull(TestValues.NULL, msg.getTurnSignal());
assertNull(TestValues.NULL, msg.getElectronicParkBrakeStatus());
- assertNull(TestValues.NULL, msg.getHandsOffSteering());
- assertNull(TestValues.NULL, msg.getWindowStatus());
+ assertNull(TestValues.NULL, msg.getGearStatus());
+ assertNull(TestValues.NULL, msg.getHandsOffSteering());
+ assertNull(TestValues.NULL, msg.getWindowStatus());
assertNull(TestValues.NULL, msg.getOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME));
}
@@ -378,6 +383,10 @@ public class UnsubscribeVehicleDataResponseTest extends BaseRpcTests {
VehicleDataResult referenceHandsOffSteering = new VehicleDataResult(JsonRPCMarshaller.deserializeJSONObject(handsOffSteering));
assertTrue(TestValues.TRUE, Validator.validateVehicleDataResult(referenceHandsOffSteering, cmd.getHandsOffSteering()));
+ JSONObject gearStatus = JsonUtils.readJsonObjectFromJsonObject(parameters, UnsubscribeVehicleDataResponse.KEY_GEAR_STATUS);
+ VehicleDataResult referenceGearStatus = new VehicleDataResult(JsonRPCMarshaller.deserializeJSONObject(gearStatus));
+ assertTrue(TestValues.TRUE, Validator.validateVehicleDataResult(referenceGearStatus, cmd.getGearStatus()));
+
JSONObject windowStatus = JsonUtils.readJsonObjectFromJsonObject(parameters, UnsubscribeVehicleDataResponse.KEY_WINDOW_STATUS);
VehicleDataResult referenceWindowStatus = new VehicleDataResult(JsonRPCMarshaller.deserializeJSONObject(windowStatus));
assertTrue(TestValues.TRUE, Validator.validateVehicleDataResult(referenceWindowStatus, cmd.getWindowStatus()));
diff --git a/base/src/main/java/com/smartdevicelink/proxy/rpc/GearStatus.java b/base/src/main/java/com/smartdevicelink/proxy/rpc/GearStatus.java
new file mode 100644
index 000000000..131e7f831
--- /dev/null
+++ b/base/src/main/java/com/smartdevicelink/proxy/rpc/GearStatus.java
@@ -0,0 +1,150 @@
+/*
+ * Copyright (c) 2017 - 2020, SmartDeviceLink Consortium, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the SmartDeviceLink Consortium Inc. nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+package com.smartdevicelink.proxy.rpc;
+
+import com.smartdevicelink.proxy.RPCStruct;
+import com.smartdevicelink.proxy.rpc.enums.PRNDL;
+import com.smartdevicelink.proxy.rpc.enums.TransmissionType;
+
+import java.util.Hashtable;
+
+/**
+ *
+ * <p><b>Parameter List</b></p>
+ *
+ * <table border="1" rules="all">
+ * <tr>
+ * <th>Param Name</th>
+ * <th>Type</th>
+ * <th>Description</th>
+ * <th>Required</th>
+ * <th>Version Available</th>
+ * </tr>
+ * <tr>
+ * <td>userSelectedGear</td>
+ * <td>PRNDL</td>
+ * <td>Gear position selected by the user i.e. Park, Drive, Reverse</td>
+ * <td>N</td>
+ * <td></td>
+ * </tr>
+ * <tr>
+ * <td>actualGear</td>
+ * <td>PRNDL</td>
+ * <td>Actual Gear in use by the transmission</td>
+ * <td>N</td>
+ * <td></td>
+ * </tr>
+ * <tr>
+ * <td>transmissionType</td>
+ * <td>TransmissionType</td>
+ * <td>Tells the transmission type</td>
+ * <td>N</td>
+ * <td></td>
+ * </tr>
+ * </table>
+ * @since SmartDeviceLink 7.0.0
+ */
+public class GearStatus extends RPCStruct {
+ public static final String KEY_USER_SELECTED_GEAR = "userSelectedGear";
+ public static final String KEY_ACTUAL_GEAR = "actualGear";
+ public static final String KEY_TRANSMISSION_TYPE = "transmissionType";
+
+ /**
+ * Constructs a newly allocated GearStatus object
+ */
+ public GearStatus() {}
+
+ /**
+ * Constructs a new GearStatus object indicated by the Hashtable parameter
+ *
+ * @param hash The Hashtable to use
+ */
+ public GearStatus(Hashtable<String, Object> hash) {
+ super(hash);
+ }
+
+ /**
+ * Sets the userSelectedGear.
+ *
+ * @param userSelectedGear Gear position selected by the user i.e. Park, Drive, Reverse
+ */
+ public void setUserSelectedGear(PRNDL selectedGear){
+ setValue(KEY_USER_SELECTED_GEAR, selectedGear);
+ }
+
+ /**
+ * Gets the userSelectedGear.
+ *
+ * @return PRNDL Gear position selected by the user i.e. Park, Drive, Reverse
+ */
+ @SuppressWarnings("unchecked")
+ public PRNDL getUserSelectedGear(){
+ return (PRNDL)getObject(PRNDL.class, KEY_USER_SELECTED_GEAR);
+ }
+
+ /**
+ * Sets the actualGear.
+ *
+ * @param actualGear Actual Gear in use by the transmission
+ */
+ public void setActualGear(PRNDL actualGear){
+ setValue(KEY_ACTUAL_GEAR, actualGear);
+ }
+
+ /**
+ * Gets the actualGear.
+ *
+ * @return PRNDL Actual Gear in use by the transmission
+ */
+ @SuppressWarnings("unchecked")
+ public PRNDL getActualGear(){
+ return (PRNDL)getObject(PRNDL.class, KEY_ACTUAL_GEAR);
+ }
+
+ /**
+ * Sets the transmissionType.
+ *
+ * @param transmissionType Tells the transmission type
+ */
+ public void setTransmissionType(TransmissionType transmissionType){
+ setValue(KEY_TRANSMISSION_TYPE, transmissionType);
+ }
+
+ /**
+ * Gets the transmissionType.
+ *
+ * @return TransmissionType Tells the transmission type
+ */
+ public TransmissionType getTransmissionType(){
+ return (TransmissionType)getObject(TransmissionType.class, KEY_TRANSMISSION_TYPE);
+ }
+}
diff --git a/base/src/main/java/com/smartdevicelink/proxy/rpc/GetVehicleData.java b/base/src/main/java/com/smartdevicelink/proxy/rpc/GetVehicleData.java
index eaba72662..4699de61f 100644
--- a/base/src/main/java/com/smartdevicelink/proxy/rpc/GetVehicleData.java
+++ b/base/src/main/java/com/smartdevicelink/proxy/rpc/GetVehicleData.java
@@ -114,13 +114,20 @@ import java.util.Hashtable;
* <td>SmartDeviceLink 2.0</td>
* </tr>
* <tr>
- * <td>prndl</td>
- * <td>Boolean</td>
- * <td>Currently selected gear.</td>
- * <td>N</td>
- * <td>Subscribable</td>
- * <td>SmartDeviceLink 2.0</td>
- * </tr>
+ * <tr>
+ * <td>gearStatus</td>
+ * <td>Boolean</td>
+ * <td>See GearStatus</td>
+ * <td>N</td>
+ * <td>SmartDeviceLink 7.0.0</td>
+ * </tr>
+ * <tr>
+ * <td>prndl</td>
+ * <td>Boolean</td>
+ * <td>See PRNDL. This parameter is deprecated and it is now covered in `gearStatus`</td>
+ * <td>N</td>
+ * <td>SmartDeviceLink 7.0.0</td>
+ * </tr>
* <tr>
* <td>tirePressure</td>
* <td>Boolean</td>
@@ -303,6 +310,7 @@ public class GetVehicleData extends RPCRequest {
public static final String KEY_CLOUD_APP_VEHICLE_ID = "cloudAppVehicleID";
public static final String KEY_WINDOW_STATUS = "windowStatus";
public static final String KEY_HANDS_OFF_STEERING = "handsOffSteering";
+ public static final String KEY_GEAR_STATUS = "gearStatus";
/**
* Constructs a new GetVehicleData object
@@ -374,9 +382,24 @@ public class GetVehicleData extends RPCRequest {
return getBoolean(KEY_VIN);
}
+ /**
+ * Sets the prndl.
+ *
+ * @param prndl See PRNDL.
+ * @deprecated in SmartDeviceLink 7.0.0
+ */
+ @Deprecated
public void setPrndl(Boolean prndl) {
setParameters(KEY_PRNDL, prndl);
}
+
+ /**
+ * Gets the prndl.
+ *
+ * @return Boolean See PRNDL.
+ * @deprecated in SmartDeviceLink 7.0.0
+ */
+ @Deprecated
public Boolean getPrndl() {
return getBoolean(KEY_PRNDL);
}
@@ -605,4 +628,24 @@ public class GetVehicleData extends RPCRequest {
public Boolean getHandsOffSteering() {
return getBoolean(KEY_HANDS_OFF_STEERING);
}
+
+ /**
+ * Sets the gearStatus.
+ *
+ * @param gearStatus See GearStatus
+ * @since SmartDeviceLink 7.0.0
+ */
+ public void setGearStatus(Boolean gearStatus) {
+ setParameters(KEY_GEAR_STATUS, gearStatus);
+ }
+
+ /**
+ * Gets the gearStatus.
+ *
+ * @return GearStatus See GearStatus
+ * @since SmartDeviceLink 7.0.0
+ */
+ public Boolean getGearStatus() {
+ return getBoolean(KEY_GEAR_STATUS);
+ }
}
diff --git a/base/src/main/java/com/smartdevicelink/proxy/rpc/GetVehicleDataResponse.java b/base/src/main/java/com/smartdevicelink/proxy/rpc/GetVehicleDataResponse.java
index 25bff8861..1226baa45 100644
--- a/base/src/main/java/com/smartdevicelink/proxy/rpc/GetVehicleDataResponse.java
+++ b/base/src/main/java/com/smartdevicelink/proxy/rpc/GetVehicleDataResponse.java
@@ -85,6 +85,7 @@ public class GetVehicleDataResponse extends RPCResponse {
public static final String KEY_ELECTRONIC_PARK_BRAKE_STATUS = "electronicParkBrakeStatus";
public static final String KEY_CLOUD_APP_VEHICLE_ID = "cloudAppVehicleID";
public static final String KEY_WINDOW_STATUS = "windowStatus";
+ public static final String KEY_GEAR_STATUS = "gearStatus";
public static final String KEY_HANDS_OFF_STEERING = "handsOffSteering";
/**
@@ -160,9 +161,25 @@ public class GetVehicleDataResponse extends RPCResponse {
public String getVin() {
return getString(KEY_VIN);
}
+
+ /**
+ * Sets the prndl.
+ *
+ * @param prndl See PRNDL. This parameter is deprecated and it is now covered in `gearStatus`
+ * @deprecated in SmartDeviceLink 7.0.0
+ */
+ @Deprecated
public void setPrndl(PRNDL prndl) {
setParameters(KEY_PRNDL, prndl);
}
+
+ /**
+ * Gets the prndl.
+ *
+ * @return PRNDL See PRNDL. This parameter is deprecated and it is now covered in `gearStatus`
+ * @deprecated in SmartDeviceLink 7.0.0
+ */
+ @Deprecated
public PRNDL getPrndl() {
return (PRNDL) getObject(PRNDL.class, KEY_PRNDL);
}
@@ -425,4 +442,24 @@ public class GetVehicleDataResponse extends RPCResponse {
public Boolean getHandsOffSteering() {
return getBoolean(KEY_HANDS_OFF_STEERING);
}
+
+ /**
+ * Sets the gearStatus.
+ *
+ * @param gearStatus See GearStatus
+ * @since SmartDeviceLink 7.0.0
+ */
+ public void setGearStatus(GearStatus gearStatus) {
+ setParameters(KEY_GEAR_STATUS, gearStatus);
+ }
+
+ /**
+ * Gets the gearStatus.
+ *
+ * @return GearStatus See GearStatus
+ * @since SmartDeviceLink 7.0.0
+ */
+ public GearStatus getGearStatus() {
+ return (GearStatus) getObject(GearStatus.class, KEY_GEAR_STATUS);
+ }
}
diff --git a/base/src/main/java/com/smartdevicelink/proxy/rpc/OnVehicleData.java b/base/src/main/java/com/smartdevicelink/proxy/rpc/OnVehicleData.java
index ebf01d7c2..74fcda171 100644
--- a/base/src/main/java/com/smartdevicelink/proxy/rpc/OnVehicleData.java
+++ b/base/src/main/java/com/smartdevicelink/proxy/rpc/OnVehicleData.java
@@ -131,14 +131,27 @@ import java.util.List;
* <td>Subscribable </td>
* <td>SmartDeviceLink 2.0</td>
* </tr>
- * <tr>
- * <td>prndl</td>
- * <td>PRNDL</td>
- * <td>Currently selected gear.</td>
- * <td>N</td>
- * <td>Subscribable </td>
- * <td>SmartDeviceLink 2.0</td>
- * </tr>
+ * <tr>
+ * <td>gearStatus</td>
+ * <td>GearStatus</td>
+ * <td>See GearStatus</td>
+ * <td>N</td>
+ * <td>SmartDeviceLink 7.0.0</td>
+ * </tr>
+ * <tr>
+ * <td>gearStatus</td>
+ * <td>GearStatus</td>
+ * <td>See GearStatus</td>
+ * <td>N</td>
+ * <td>SmartDeviceLink 7.0.0</td>
+ * </tr>
+ * <tr>
+ * <td>prndl</td>
+ * <td>PRNDL</td>
+ * <td>See PRNDL. This parameter is deprecated and it is now covered in `gearStatus`</td>
+ * <td>N</td>
+ * <td>SmartDeviceLink 7.0.0</td>
+ * </tr>
* <tr>
* <td>tirePressure</td>
* <td>TireStatus</td>
@@ -340,6 +353,7 @@ public class OnVehicleData extends RPCNotification {
public static final String KEY_CLOUD_APP_VEHICLE_ID = "cloudAppVehicleID";
public static final String KEY_HANDS_OFF_STEERING = "handsOffSteering";
public static final String KEY_WINDOW_STATUS = "windowStatus";
+ public static final String KEY_GEAR_STATUS = "gearStatus";
public OnVehicleData() {
@@ -401,12 +415,34 @@ public class OnVehicleData extends RPCNotification {
public String getVin() {
return getString(KEY_VIN);
}
+
+ /**
+ * Sets the prndl.
+ *
+ * @param prndl See PRNDL. This parameter is deprecated since 7.0.0 and it is now covered in `gearStatus`
+ * @deprecated in SmartDeviceLink 7.0.0
+ */
+ @Deprecated
public void setPrndl(PRNDL prndl) {
setParameters(KEY_PRNDL, prndl);
}
+
+ /**
+ * Gets the prndl.
+ *
+ * @return PRNDL See PRNDL. This parameter since 7.0.0 is deprecated and it is now covered in `gearStatus`
+ * @deprecated in SmartDeviceLink 7.0.0
+ */
+ @Deprecated
public PRNDL getPrndl() {
return (PRNDL) getObject(PRNDL.class, KEY_PRNDL);
}
+
+ /**
+ * Sets the tirePressure.
+ *
+ * @param tirePressure See TireStatus
+ */
public void setTirePressure(TireStatus tirePressure) {
setParameters(KEY_TIRE_PRESSURE, tirePressure);
}
@@ -648,4 +684,23 @@ public class OnVehicleData extends RPCNotification {
public Boolean getHandsOffSteering() {
return getBoolean(KEY_HANDS_OFF_STEERING);
}
+ /**
+ * Sets the gearStatus.
+ *
+ * @param gearStatus See GearStatus
+ * @since SmartDeviceLink 7.0.0
+ */
+ public void setGearStatus(GearStatus gearStatus) {
+ setParameters(KEY_GEAR_STATUS, gearStatus);
+ }
+
+ /**
+ * Gets the gearStatus.
+ *
+ * @return GearStatus See GearStatus
+ * @since SmartDeviceLink 7.0.0
+ */
+ public GearStatus getGearStatus() {
+ return (GearStatus) getObject(GearStatus.class, KEY_GEAR_STATUS);
+ }
}
diff --git a/base/src/main/java/com/smartdevicelink/proxy/rpc/SubscribeVehicleData.java b/base/src/main/java/com/smartdevicelink/proxy/rpc/SubscribeVehicleData.java
index de80be111..9b67c145f 100644
--- a/base/src/main/java/com/smartdevicelink/proxy/rpc/SubscribeVehicleData.java
+++ b/base/src/main/java/com/smartdevicelink/proxy/rpc/SubscribeVehicleData.java
@@ -113,14 +113,20 @@ import java.util.Hashtable;
* <td>Subscribable</td>
* <td>SmartDeviceLink 2.0 </td>
* </tr>
- * <tr>
- * <td>prndl</td>
- * <td>Boolean</td>
- * <td>Currently selected gear.</td>
- * <td>N</td>
- * <td>Subscribable</td>
- * <td>SmartDeviceLink 2.0 </td>
- * </tr>
+ * <tr>
+ * <td>gearStatus</td>
+ * <td>Boolean</td>
+ * <td>See GearStatus</td>
+ * <td>N</td>
+ * <td>SmartDeviceLink 7.0.0</td>
+ * </tr>
+ * <tr>
+ * <td>prndl</td>
+ * <td>Boolean</td>
+ * <td>See PRNDL. This parameter is deprecated and it is now covered in `gearStatus`</td>
+ * <td>N</td>
+ * <td>SmartDeviceLink 7.0.0</td>
+ * </tr>
* <tr>
* <td>tirePressure</td>
* <td>Boolean</td>
@@ -338,6 +344,7 @@ public class SubscribeVehicleData extends RPCRequest {
public static final String KEY_CLOUD_APP_VEHICLE_ID = "cloudAppVehicleID";
public static final String KEY_HANDS_OFF_STEERING = "handsOffSteering";
public static final String KEY_WINDOW_STATUS = "windowStatus";
+ public static final String KEY_GEAR_STATUS = "gearStatus";
/**
* Constructs a new SubscribeVehicleData object
@@ -502,23 +509,44 @@ public class SubscribeVehicleData extends RPCRequest {
return getBoolean(KEY_EXTERNAL_TEMPERATURE);
}
- /**
- * Sets a boolean value. If true, subscribes Currently selected gear data
- *
- * @param prndl
- * a boolean value
- */
+ /**
+ * Sets the gearStatus.
+ *
+ * @param gearStatus See GearStatus
+ * @since SmartDeviceLink 7.0.0
+ */
+ public void setGearStatus(Boolean gearStatus) {
+ setParameters(KEY_GEAR_STATUS, gearStatus);
+ }
+
+ /**
+ * Gets the gearStatus.
+ *
+ * @return Boolean See GearStatus
+ * @since SmartDeviceLink 7.0.0
+ */
+ public Boolean getGearStatus() {
+ return getBoolean(KEY_GEAR_STATUS);
+ }
+
+ /**
+ * Sets the prndl.
+ *
+ * @param prndl See PRNDL. This parameter is deprecated since 7.0.0 and it is now covered in `gearStatus`
+ * @deprecated in SmartDeviceLink 7.0.0
+ */
+ @Deprecated
public void setPrndl(Boolean prndl) {
setParameters(KEY_PRNDL, prndl);
}
- /**
- * Gets a boolean value. If true, means the Currently selected gear data has been
- * subscribed.
- *
- * @return Boolean -a Boolean value. If true, means the Currently selected gear data
- * has been subscribed.
- */
+ /**
+ * Gets the prndl.
+ *
+ * @return Boolean See PRNDL. This parameter is deprecated since 7.0.0 and it is now covered in `gearStatus`
+ * @deprecated in SmartDeviceLink 7.0.0
+ */
+ @Deprecated
public Boolean getPrndl() {
return getBoolean(KEY_PRNDL);
}
diff --git a/base/src/main/java/com/smartdevicelink/proxy/rpc/SubscribeVehicleDataResponse.java b/base/src/main/java/com/smartdevicelink/proxy/rpc/SubscribeVehicleDataResponse.java
index 1c6549934..cb869336a 100644
--- a/base/src/main/java/com/smartdevicelink/proxy/rpc/SubscribeVehicleDataResponse.java
+++ b/base/src/main/java/com/smartdevicelink/proxy/rpc/SubscribeVehicleDataResponse.java
@@ -74,6 +74,7 @@ public class SubscribeVehicleDataResponse extends RPCResponse {
public static final String KEY_TURN_SIGNAL = "turnSignal";
public static final String KEY_ELECTRONIC_PARK_BRAKE_STATUS = "electronicParkBrakeStatus";
public static final String KEY_CLOUD_APP_VEHICLE_ID = "cloudAppVehicleID";
+ public static final String KEY_GEAR_STATUS = "gearStatus";
public static final String KEY_HANDS_OFF_STEERING = "handsOffSteering";
public static final String KEY_WINDOW_STATUS = "windowStatus";
@@ -210,16 +211,22 @@ public class SubscribeVehicleDataResponse extends RPCResponse {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_EXTERNAL_TEMPERATURE);
}
/**
- * Gets currently selected gear data
- * @param prndl a VehicleDataResult related to the PRNDL status (automatic transmission gear)
+ * Sets the prndl.
+ *
+ * @param prndl See PRNDL. This parameter is deprecated and it is now covered in `gearStatus`
+ * @deprecated in SmartDeviceLink 7.0.0
*/
+ @Deprecated
public void setPrndl(VehicleDataResult prndl) {
setParameters(KEY_PRNDL, prndl);
}
/**
- * Gets currently selected gear data
- * @return a VehicleDataResult related to the PRNDL status (automatic transmission gear)
+ * Gets the prndl.
+ *
+ * @return VehicleDataResult See PRNDL. This parameter is deprecated and it is now covered in `gearStatus`
+ * @deprecated in SmartDeviceLink 7.0.0
*/
+ @Deprecated
@SuppressWarnings("unchecked")
public VehicleDataResult getPrndl() {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_PRNDL);
@@ -537,6 +544,26 @@ public class SubscribeVehicleDataResponse extends RPCResponse {
public VehicleDataResult getHandsOffSteering() {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_HANDS_OFF_STEERING);
}
+ /**
+ * Sets the gearStatus.
+ *
+ * @param gearStatus See GearStatus
+ * @since SmartDeviceLink 7.0.0
+ */
+ public void setGearStatus(VehicleDataResult gearStatus){
+ setParameters(KEY_GEAR_STATUS, gearStatus);
+ }
+
+ /**
+ * Gets the gearStatus.
+ *
+ * @return VehicleDataResult See GearStatus
+ * @since SmartDeviceLink 7.0.0
+ */
+ @SuppressWarnings("unchecked")
+ public VehicleDataResult getGearStatus(){
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_GEAR_STATUS);
+ }
/**
* Sets the windowStatus.
diff --git a/base/src/main/java/com/smartdevicelink/proxy/rpc/UnsubscribeVehicleData.java b/base/src/main/java/com/smartdevicelink/proxy/rpc/UnsubscribeVehicleData.java
index 2793a50e2..5a998a268 100644
--- a/base/src/main/java/com/smartdevicelink/proxy/rpc/UnsubscribeVehicleData.java
+++ b/base/src/main/java/com/smartdevicelink/proxy/rpc/UnsubscribeVehicleData.java
@@ -108,14 +108,20 @@ import java.util.Hashtable;
* <td>Subscribable</td>
* <td>SmartDeviceLink 2.0 </td>
* </tr>
- * <tr>
- * <td>prndl</td>
- * <td>Boolean</td>
- * <td>Currently selected gear.</td>
- * <td>N</td>
- * <td>Subscribable</td>
- * <td>SmartDeviceLink 2.0 </td>
- * </tr>
+ * <tr>
+ * <td>gearStatus</td>
+ * <td>Boolean</td>
+ * <td>See GearStatus</td>
+ * <td>N</td>
+ * <td>SmartDeviceLink 7.0.0</td>
+ * </tr>
+ * <tr>
+ * <td>prndl</td>
+ * <td>Boolean</td>
+ * <td>See PRNDL. This parameter is deprecated and it is now covered in `gearStatus`</td>
+ * <td>N</td>
+ * <td>SmartDeviceLink 7.0.0</td>
+ * </tr>
* <tr>
* <td>tirePressure</td>
* <td>Boolean</td>
@@ -322,6 +328,7 @@ public class UnsubscribeVehicleData extends RPCRequest {
public static final String KEY_ELECTRONIC_PARK_BRAKE_STATUS = "electronicParkBrakeStatus";
public static final String KEY_CLOUD_APP_VEHICLE_ID = "cloudAppVehicleID";
public static final String KEY_HANDS_OFF_STEERING = "handsOffSteering";
+ public static final String KEY_GEAR_STATUS = "gearStatus";
public static final String KEY_WINDOW_STATUS = "windowStatus";
/**
@@ -487,23 +494,24 @@ public class UnsubscribeVehicleData extends RPCRequest {
return getBoolean(KEY_EXTERNAL_TEMPERATURE);
}
- /**
- * Sets a boolean value. If true, unsubscribes Currently selected gear data
- *
- * @param prndl
- * a boolean value
- */
+ /**
+ * Sets the prndl.
+ *
+ * @param prndl See PRNDL. This parameter since SmartDeviceLink 7.0.0 is deprecated and it is now covered in `gearStatus`
+ * @deprecated in SmartDeviceLink 7.0.0
+ */
+ @Deprecated
public void setPrndl(Boolean prndl) {
- setParameters(KEY_PRNDL, prndl);
+ setParameters(KEY_PRNDL, prndl);
}
- /**
- * Gets a boolean value. If true, means the Currently selected gear data has been
- * unsubscribed.
- *
- * @return Boolean -a Boolean value. If true, means the Currently selected gear data
- * has been unsubscribed.
- */
+ /**
+ * Gets the prndl.
+ *
+ * @return Boolean See PRNDL. This parameter is deprecated since SmartDeviceLink 7.0.0 and it is now covered in `gearStatus`
+ * @deprecated in SmartDeviceLink 7.0.0
+ */
+ @Deprecated
public Boolean getPrndl() {
return getBoolean(KEY_PRNDL);
}
@@ -862,6 +870,26 @@ public class UnsubscribeVehicleData extends RPCRequest {
}
/**
+ * Sets the gearStatus.
+ *
+ * @param gearStatus See GearStatus
+ * @since SmartDeviceLink 7.0.0
+ */
+ public void setGearStatus(Boolean gearStatus) {
+ setParameters(KEY_GEAR_STATUS, gearStatus);
+ }
+
+ /**
+ * Gets the gearStatus.
+ *
+ * @return Boolean See GearStatus
+ * @since SmartDeviceLink 7.0.0
+ */
+ public Boolean getGearStatus() {
+ return getBoolean(KEY_GEAR_STATUS);
+ }
+
+ /**
* Sets the handsOffSteering.
*
* @param handsOffSteering To indicate whether driver hands are off the steering wheel
diff --git a/base/src/main/java/com/smartdevicelink/proxy/rpc/UnsubscribeVehicleDataResponse.java b/base/src/main/java/com/smartdevicelink/proxy/rpc/UnsubscribeVehicleDataResponse.java
index e6123c90f..37b1f0c51 100644
--- a/base/src/main/java/com/smartdevicelink/proxy/rpc/UnsubscribeVehicleDataResponse.java
+++ b/base/src/main/java/com/smartdevicelink/proxy/rpc/UnsubscribeVehicleDataResponse.java
@@ -76,6 +76,7 @@ public class UnsubscribeVehicleDataResponse extends RPCResponse {
public static final String KEY_CLOUD_APP_VEHICLE_ID = "cloudAppVehicleID";
public static final String KEY_HANDS_OFF_STEERING = "handsOffSteering";
public static final String KEY_WINDOW_STATUS = "windowStatus";
+ public static final String KEY_GEAR_STATUS = "gearStatus";
/**
* Constructs a new UnsubscribeVehicleDataResponse object
@@ -212,16 +213,22 @@ public class UnsubscribeVehicleDataResponse extends RPCResponse {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_EXTERNAL_TEMPERATURE);
}
/**
- * Gets currently selected gear data
- * @param prndl a VehicleDataResult related to the PRNDL status (automatic transmission gear)
+ * Sets the prndl.
+ *
+ * @param prndl See PRNDL.
+ * @deprecated in SmartDeviceLink 7.0.0
*/
+ @Deprecated
public void setPrndl(VehicleDataResult prndl) {
setParameters(KEY_PRNDL, prndl);
}
/**
- * Gets currently selected gear data
- * @return a VehicleDataResult related to the PRNDL status (automatic transmission gear)
+ * Gets the prndl.
+ *
+ * @return VehicleDataResult.
+ * @deprecated in SmartDeviceLink 7.0.0
*/
+ @Deprecated
@SuppressWarnings("unchecked")
public VehicleDataResult getPrndl() {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_PRNDL);
@@ -559,4 +566,25 @@ public class UnsubscribeVehicleDataResponse extends RPCResponse {
public VehicleDataResult getWindowStatus() {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_WINDOW_STATUS);
}
+
+ /**
+ * Sets the gearStatus.
+ *
+ * @param gearStatus See GearStatus
+ * @since SmartDeviceLink 7.0.0
+ */
+ public void setGearStatus(VehicleDataResult gearStatus){
+ setParameters(KEY_GEAR_STATUS, gearStatus);
+ }
+
+ /**
+ * Gets the gearStatus.
+ *
+ * @return VehicleDataResult See GearStatus
+ * @since SmartDeviceLink 7.0.0
+ */
+ @SuppressWarnings("unchecked")
+ public VehicleDataResult getGearStatus(){
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_GEAR_STATUS);
+ }
}
diff --git a/base/src/main/java/com/smartdevicelink/proxy/rpc/enums/PRNDL.java b/base/src/main/java/com/smartdevicelink/proxy/rpc/enums/PRNDL.java
index a605ade87..d21c7b62c 100644
--- a/base/src/main/java/com/smartdevicelink/proxy/rpc/enums/PRNDL.java
+++ b/base/src/main/java/com/smartdevicelink/proxy/rpc/enums/PRNDL.java
@@ -1,34 +1,34 @@
-/*
- * Copyright (c) 2017 - 2019, SmartDeviceLink Consortium, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the SmartDeviceLink Consortium, Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
+/*
+ * Copyright (c) 2017 - 2019, SmartDeviceLink Consortium, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the SmartDeviceLink Consortium, Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
package com.smartdevicelink.proxy.rpc.enums;
/**
@@ -48,6 +48,9 @@ public enum PRNDL {
* No gear
*/
NEUTRAL,
+ /**
+ * Regular Drive mode
+ */
DRIVE,
/**
* Drive Sport mode
@@ -83,6 +86,14 @@ public enum PRNDL {
SIXTH,
SEVENTH,
EIGHTH,
+ /**
+ * @since SmartDeviceLink 7.0.0
+ */
+ NINTH,
+ /**
+ * @since SmartDeviceLink 7.0.0
+ */
+ TENTH,
UNKNOWN,
FAULT;
diff --git a/base/src/main/java/com/smartdevicelink/proxy/rpc/enums/TransmissionType.java b/base/src/main/java/com/smartdevicelink/proxy/rpc/enums/TransmissionType.java
new file mode 100644
index 000000000..d7a2ff6fd
--- /dev/null
+++ b/base/src/main/java/com/smartdevicelink/proxy/rpc/enums/TransmissionType.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (c) 2017 - 2020, SmartDeviceLink Consortium, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the SmartDeviceLink Consortium Inc. nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+package com.smartdevicelink.proxy.rpc.enums;
+
+/**
+ * Type of transmission used in the vehicle.
+ *
+ * @since SmartDeviceLink 7.0.0
+ */
+public enum TransmissionType {
+ /**
+ * Manual transmission.
+ */
+ MANUAL,
+ /**
+ * Automatic transmission.
+ */
+ AUTOMATIC,
+ /**
+ * Semi automatic transmission.
+ */
+ SEMI_AUTOMATIC,
+ /**
+ * Dual clutch transmission.
+ */
+ DUAL_CLUTCH,
+ /**
+ * Continuously variable transmission(CVT).
+ */
+ CONTINUOUSLY_VARIABLE,
+ /**
+ * Infinitely variable transmission.
+ */
+ INFINITELY_VARIABLE,
+ /**
+ * Electric variable transmission.
+ */
+ ELECTRIC_VARIABLE,
+ /**
+ * Direct drive between engine and wheels.
+ */
+ DIRECT_DRIVE;
+
+ /**
+ * Convert String to TransmissionType
+ * @param value String
+ * @return TransmissionType
+ */
+ public static TransmissionType valueForString(String value) {
+ try {
+ return valueOf(value);
+ } catch (Exception e) {
+ return null;
+ }
+ }
+}
diff --git a/base/src/main/java/com/smartdevicelink/proxy/rpc/enums/VehicleDataType.java b/base/src/main/java/com/smartdevicelink/proxy/rpc/enums/VehicleDataType.java
index 07d1ace8d..7682e16f8 100644
--- a/base/src/main/java/com/smartdevicelink/proxy/rpc/enums/VehicleDataType.java
+++ b/base/src/main/java/com/smartdevicelink/proxy/rpc/enums/VehicleDataType.java
@@ -175,7 +175,11 @@ public enum VehicleDataType {
/**
* @since SmartDeviceLink 7.0.0
*/
- VEHICLEDATA_WINDOWSTATUS;
+ VEHICLEDATA_WINDOWSTATUS,
+ /**
+ * @since SmartDeviceLink 7.0.0
+ */
+ VEHICLEDATA_GEARSTATUS;
/**
* Convert String to VehicleDataType