diff options
author | Kostiantyn Boskin <kostyaboskin@gmail.com> | 2020-08-19 18:06:09 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-19 11:06:09 -0400 |
commit | 37abd12dbbcb0fd0505c424822e1da6eb96793d8 (patch) | |
tree | 395268e1cfd4f5621f60d783966f385ba8582c98 | |
parent | 1d85d37fd2c7845182a0eed0db2a8b104b9f8944 (diff) | |
download | sdl_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>
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
|