diff options
author | Bilal Alsharifi <599206+bilal-alsharifi@users.noreply.github.com> | 2021-02-10 13:34:29 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-10 13:34:29 -0500 |
commit | a9dd49ada852755d67ca7c08c028a1ac199d250a (patch) | |
tree | 9d6acc94027f5e74defa24afae1ca861c8448a85 | |
parent | 43cc6eea40f495ca3f5091a2d64c03577db48e1f (diff) | |
parent | 304d7b85238c35db4d9ad40809a1a5aac6b05d9f (diff) | |
download | sdl_android-a9dd49ada852755d67ca7c08c028a1ac199d250a.tar.gz |
Merge pull request #1560 from LuxoftSDL/feature/0269_new_vehicle_data_climate_data
[0269] New VehicleData ClimateData
24 files changed, 782 insertions, 27 deletions
diff --git a/android/sdl_android/src/androidTest/assets/json/GetVehicleData.json b/android/sdl_android/src/androidTest/assets/json/GetVehicleData.json index 5113e208d..8ce24a63e 100644 --- a/android/sdl_android/src/androidTest/assets/json/GetVehicleData.json +++ b/android/sdl_android/src/androidTest/assets/json/GetVehicleData.json @@ -36,6 +36,7 @@ "oemCustomVehicleDataName": true, "windowStatus": true, "stabilityControlsStatus": true, + "climateData": true, "seatOccupancy": true } }, @@ -184,6 +185,17 @@ "transmissionType": "ELECTRIC_VARIABLE", "actualGear": "PARK" }, + "climateData": { + "atmosphericPressure": 100.0, + "externalTemperature": { + "unit": "CELSIUS", + "value": 100.0 + }, + "cabinTemperature": { + "unit": "CELSIUS", + "value": 100.0 + } + }, "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 009efaae6..57a8aa20b 100644 --- a/android/sdl_android/src/androidTest/assets/json/SubscribeVehicleData.json +++ b/android/sdl_android/src/androidTest/assets/json/SubscribeVehicleData.json @@ -36,6 +36,7 @@ "oemCustomVehicleDataName": true, "windowStatus": true, "handsOffSteering": true, + "climateData": true, "seatOccupancy": true } }, @@ -175,6 +176,10 @@ "dataType": "VEHICLEDATA_WINDOWSTATUS", "resultCode": "SUCCESS" }, + "climateData": { + "dataType": "VEHICLEDATA_CLIMATEDATA", + "resultCode": "SUCCESS" + }, "seatOccupancy": { "dataType": "VEHICLEDATA_SEATOCCUPANCY", "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 44d0998ea..3dfbf984c 100644 --- a/android/sdl_android/src/androidTest/assets/json/UnsubscribeVehicleData.json +++ b/android/sdl_android/src/androidTest/assets/json/UnsubscribeVehicleData.json @@ -36,6 +36,7 @@ "gearStatus": true, "oemCustomVehicleDataName": true, "windowStatus": true, + "climateData": true, "seatOccupancy": true } }, @@ -178,6 +179,10 @@ "seatOccupancy": { "dataType": "VEHICLEDATA_SEATOCCUPANCY", "resultCode": "SUCCESS" + }, + "climateData": { + "dataType": "VEHICLEDATA_CLIMATEDATA", + "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 ec9256e93..eeafa2edb 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 @@ -311,6 +311,7 @@ public class TestValues { public static final LightStatus GENERAL_LIGHTSTATUS = LightStatus.OFF; public static final RadioBand GENERAL_RADIOBAND = RadioBand.AM; public static final ClimateControlData GENERAL_CLIMATECONTROLDATA = new ClimateControlData(); + public static final ClimateData GENERAL_CLIMATEDATA = new ClimateData(); public static final SeatControlData GENERAL_SEATCONTROLDATA = new SeatControlData(); public static final RdsData GENERAL_RDSDATA = new RdsData(); public static final StationIDNumber GENERAL_STATIONIDNUMBER = new StationIDNumber(); @@ -1109,6 +1110,11 @@ public class TestValues { GENERAL_DOOR_STATUS.setStatus(GENERAL_DOOR_STATUS_TYPE); GENERAL_DOOR_STATUS_LIST.add(GENERAL_DOOR_STATUS); + // Climate Data + GENERAL_CLIMATEDATA.setAtmosphericPressure(GENERAL_FLOAT); + GENERAL_CLIMATEDATA.setCabinTemperature(GENERAL_TEMPERATURE); + GENERAL_CLIMATEDATA.setExternalTemperature(GENERAL_TEMPERATURE); + try { JSON_OBJECT_GENERAL_SEATS_OCCUPIED.put(SeatStatus.KEY_SEAT_LOCATION, GENERAL_SEAT_LOCATION.serializeJSON()); 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 397df2018..6db76934f 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 @@ -4021,4 +4021,23 @@ public class Validator { boolean gridValidated = validateGrid(status1.getLocation(), status2.getLocation()); return gridValidated && status1.getStatus().equals(status2.getStatus()) && validateWindowStates(status1.getState(), status2.getState()); } + + public static boolean validateClimateData(ClimateData climateData1, ClimateData climateData2) { + if (climateData1 == null) { + return (climateData2 == null); + } + if (climateData2 == null) { + return (climateData1 == null); + } + + if (!validateTemperature(climateData1.getExternalTemperature(), climateData2.getExternalTemperature())) { + return false; + } + + if (!validateTemperature(climateData1.getCabinTemperature(), climateData2.getCabinTemperature())) { + return false; + } + + return climateData1.getAtmosphericPressure().floatValue() == climateData2.getAtmosphericPressure().floatValue(); + } } 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 4155a28c7..a53e6aa69 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 @@ -3,6 +3,7 @@ package com.smartdevicelink.test; import com.smartdevicelink.proxy.rpc.AirbagStatus; import com.smartdevicelink.proxy.rpc.BeltStatus; import com.smartdevicelink.proxy.rpc.BodyInformation; +import com.smartdevicelink.proxy.rpc.ClimateData; import com.smartdevicelink.proxy.rpc.ClusterModeStatus; import com.smartdevicelink.proxy.rpc.DeviceStatus; import com.smartdevicelink.proxy.rpc.ECallInfo; @@ -20,6 +21,7 @@ import com.smartdevicelink.proxy.rpc.SeatOccupancy; import com.smartdevicelink.proxy.rpc.SeatStatus; import com.smartdevicelink.proxy.rpc.SingleTireStatus; import com.smartdevicelink.proxy.rpc.StabilityControlsStatus; +import com.smartdevicelink.proxy.rpc.Temperature; import com.smartdevicelink.proxy.rpc.TireStatus; import com.smartdevicelink.proxy.rpc.WindowState; import com.smartdevicelink.proxy.rpc.WindowStatus; @@ -41,6 +43,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.TemperatureUnit; import com.smartdevicelink.proxy.rpc.enums.TransmissionType; import com.smartdevicelink.proxy.rpc.enums.TurnSignal; import com.smartdevicelink.proxy.rpc.enums.VehicleDataEventStatus; @@ -93,6 +96,12 @@ public class VehicleDataHelper { public static final String OEM_CUSTOM_VEHICLE_DATA_STATE = "oemCustomVehicleDataState"; public static final Boolean HANDS_OFF_STEERING = Boolean.TRUE; + // Climate Data + public static final ClimateData CLIMATE_DATA = new ClimateData(); + public static final Float CLIMATE_DATA_ATM_PRESSURE = TestValues.GENERAL_FLOAT; + public static final Temperature CLIMATE_DATA_CABIN_TEMP = new Temperature(TemperatureUnit.CELSIUS, TestValues.GENERAL_FLOAT); + public static final Temperature CLIMATE_DATA_EXT_TEMP = new Temperature(TemperatureUnit.CELSIUS, TestValues.GENERAL_FLOAT); + // Seat Occupancy public static final SeatOccupancy SEAT_OCCUPANCY = new SeatOccupancy(); @@ -346,6 +355,11 @@ public class VehicleDataHelper { EMERGENCY_EVENT.setMaximumChangeVelocity(EMERGENCY_EVENT_MAX_CHANGE_VELOCITY); EMERGENCY_EVENT.setMultipleEvents(EMERGENCY_EVENT_MULTIPLE_EVENTS); + // Climate Data + CLIMATE_DATA.setAtmosphericPressure(CLIMATE_DATA_ATM_PRESSURE); + CLIMATE_DATA.setCabinTemperature(CLIMATE_DATA_CABIN_TEMP); + CLIMATE_DATA.setExternalTemperature(CLIMATE_DATA_EXT_TEMP); + //CLUSTER_MODE_STATUS set up CLUSTER_MODE_STATUS.setPowerModeActive(CLUSTER_MODE_STATUS_POWER_MODE_ACTIVE); CLUSTER_MODE_STATUS.setPowerModeQualificationStatus(CLUSTER_MODE_STATUS_POWER_MODE_QUALIFICATION_STATUS); @@ -400,6 +414,7 @@ public class VehicleDataHelper { VEHICLE_DATA.setSpeed(SPEED); VEHICLE_DATA.setRpm(RPM); VEHICLE_DATA.setExternalTemperature(EXTERNAL_TEMPERATURE); + VEHICLE_DATA.setClimateData(CLIMATE_DATA); VEHICLE_DATA.setFuelLevel(FUEL_LEVEL); VEHICLE_DATA.setVin(VIN); VEHICLE_DATA.setPrndl(PRNDL_FINAL); @@ -436,6 +451,7 @@ public class VehicleDataHelper { VEHICLE_DATA_RESPONSE.setSpeed(SPEED); VEHICLE_DATA_RESPONSE.setRpm(RPM); VEHICLE_DATA_RESPONSE.setExternalTemperature(EXTERNAL_TEMPERATURE); + VEHICLE_DATA_RESPONSE.setClimateData(CLIMATE_DATA); VEHICLE_DATA_RESPONSE.setFuelLevel(FUEL_LEVEL); VEHICLE_DATA_RESPONSE.setVin(VIN); VEHICLE_DATA_RESPONSE.setPrndl(PRNDL_FINAL); diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/ClimateDataTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/ClimateDataTests.java new file mode 100644 index 000000000..4fb5e9c0f --- /dev/null +++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/ClimateDataTests.java @@ -0,0 +1,83 @@ +package com.smartdevicelink.test.rpc.datatypes; + +import com.smartdevicelink.marshal.JsonRPCMarshaller; +import com.smartdevicelink.proxy.rpc.ClimateData; +import com.smartdevicelink.proxy.rpc.Temperature; +import com.smartdevicelink.test.JsonUtils; +import com.smartdevicelink.test.TestValues; +import com.smartdevicelink.test.Validator; + +import junit.framework.TestCase; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.Hashtable; +import java.util.Iterator; + +public class ClimateDataTests extends TestCase { + + private ClimateData msg; + + @Override + public void setUp() { + msg = new ClimateData(); + + msg.setExternalTemperature(TestValues.GENERAL_TEMPERATURE); + msg.setCabinTemperature(TestValues.GENERAL_TEMPERATURE); + msg.setAtmosphericPressure(TestValues.GENERAL_FLOAT); + } + + /** + * Tests the expected values of the RPC message. + */ + public void testRpcValues() { + // Test Values + Temperature cabinTemperature = msg.getCabinTemperature(); + Temperature externalTemperature = msg.getExternalTemperature(); + Float atmosphericPressure = msg.getAtmosphericPressure(); + + // Valid Tests + assertEquals(TestValues.MATCH, TestValues.GENERAL_TEMPERATURE, cabinTemperature); + assertEquals(TestValues.MATCH, TestValues.GENERAL_TEMPERATURE, externalTemperature); + assertEquals(TestValues.MATCH, TestValues.GENERAL_FLOAT, atmosphericPressure); + + // Invalid/Null Tests + ClimateData msg = new ClimateData(); + assertNotNull(TestValues.NOT_NULL, msg); + + assertNull(TestValues.NULL, msg.getAtmosphericPressure()); + assertNull(TestValues.NULL, msg.getCabinTemperature()); + assertNull(TestValues.NULL, msg.getExternalTemperature()); + } + + public void testJson() { + JSONObject reference = new JSONObject(); + + try { + reference.put(ClimateData.KEY_EXTERNAL_TEMPERATURE, JsonRPCMarshaller.serializeHashtable(TestValues.GENERAL_TEMPERATURE.getStore())); + reference.put(ClimateData.KEY_CABIN_TEMPERATURE, JsonRPCMarshaller.serializeHashtable(TestValues.GENERAL_TEMPERATURE.getStore())); + reference.put(ClimateData.KEY_ATMOSPHERIC_PRESSURE, TestValues.GENERAL_FLOAT); + + JSONObject underTest = msg.serializeJSON(); + assertEquals(TestValues.MATCH, reference.length(), underTest.length()); + + Iterator<?> iterator = reference.keys(); + while (iterator.hasNext()) { + String key = (String) iterator.next(); + + if (key.equals(ClimateData.KEY_CABIN_TEMPERATURE) || key.equals(ClimateData.KEY_EXTERNAL_TEMPERATURE)) { + JSONObject objectEquals = (JSONObject) JsonUtils.readObjectFromJsonObject(reference, key); + JSONObject testEquals = (JSONObject) JsonUtils.readObjectFromJsonObject(underTest, key); + Hashtable<String, Object> hashReference = JsonRPCMarshaller.deserializeJSONObject(objectEquals); + Hashtable<String, Object> hashTest = JsonRPCMarshaller.deserializeJSONObject(testEquals); + assertTrue(TestValues.TRUE, Validator.validateTemperature(new Temperature(hashReference), new Temperature(hashTest))); + } else { + 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/VehicleDataTypeTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/VehicleDataTypeTests.java index e78c871d6..94fbe0100 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 @@ -90,6 +90,8 @@ public class VehicleDataTypeTests extends TestCase { VehicleDataType enumVehicleDataTypeWindowStatus = VehicleDataType.valueForString(example); example = "VEHICLEDATA_STABILITYCONTROLSSTATUS"; VehicleDataType enumVehicleDataStabilityControlsStatus = VehicleDataType.valueForString(example); + example = "VEHICLEDATA_CLIMATEDATA"; + VehicleDataType enumVehicleDataClimateData = VehicleDataType.valueForString(example); example = "VEHICLEDATA_SEATOCCUPANCY"; VehicleDataType enumVehicleDataSeatOccupancy = VehicleDataType.valueForString(example); @@ -129,6 +131,7 @@ public class VehicleDataTypeTests extends TestCase { assertNotNull("VEHICLEDATA_WINDOWSTATUS returned null", enumVehicleDataTypeWindowStatus); assertNotNull("VEHICLEDATA_GEARSTATUS returned null", enumVehicleDataGearStatus); assertNotNull("VEHICLEDATA_STABILITYCONTROLSSTATUS returned null", enumVehicleDataStabilityControlsStatus); + assertNotNull("VEHICLEDATA_CLIMATEDATA returned null", enumVehicleDataClimateData); assertNotNull("VEHICLEDATA_SEATOCCUPANCY returned null", enumVehicleDataSeatOccupancy); } @@ -201,6 +204,7 @@ public class VehicleDataTypeTests extends TestCase { enumTestList.add(VehicleDataType.VEHICLEDATA_WINDOWSTATUS); enumTestList.add(VehicleDataType.VEHICLEDATA_GEARSTATUS); enumTestList.add(VehicleDataType.VEHICLEDATA_STABILITYCONTROLSSTATUS); + enumTestList.add(VehicleDataType.VEHICLEDATA_CLIMATEDATA); enumTestList.add(VehicleDataType.VEHICLEDATA_SEATOCCUPANCY); assertTrue("Enum value list does not match enum class list", 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 025d85ada..0710c79f5 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 @@ -6,6 +6,7 @@ import com.smartdevicelink.proxy.RPCMessage; import com.smartdevicelink.proxy.rpc.AirbagStatus; import com.smartdevicelink.proxy.rpc.BeltStatus; import com.smartdevicelink.proxy.rpc.BodyInformation; +import com.smartdevicelink.proxy.rpc.ClimateData; import com.smartdevicelink.proxy.rpc.ClusterModeStatus; import com.smartdevicelink.proxy.rpc.DeviceStatus; import com.smartdevicelink.proxy.rpc.ECallInfo; @@ -109,6 +110,7 @@ public class OnVehicleDataTests extends BaseRpcTests { result.put(OnVehicleData.KEY_WINDOW_STATUS, VehicleDataHelper.WINDOW_STATUS_LIST); result.put(OnVehicleData.KEY_STABILITY_CONTROLS_STATUS, VehicleDataHelper.STABILITY_CONTROLS_STATUS); result.put(OnVehicleData.KEY_SEAT_OCCUPANCY, VehicleDataHelper.SEAT_OCCUPANCY); + result.put(OnVehicleData.KEY_CLIMATE_DATA, VehicleDataHelper.CLIMATE_DATA); result.put(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME, VehicleDataHelper.OEM_CUSTOM_VEHICLE_DATA_STATE); } catch (JSONException e) { fail(TestValues.JSON_FAIL); @@ -154,6 +156,7 @@ public class OnVehicleDataTests extends BaseRpcTests { TurnSignal turnSignal = ((OnVehicleData) msg).getTurnSignal(); ElectronicParkBrakeStatus electronicParkBrakeStatus = ((OnVehicleData) msg).getElectronicParkBrakeStatus(); GearStatus gearStatus = ((OnVehicleData) msg).getGearStatus(); + ClimateData climateData = ((OnVehicleData) msg).getClimateData(); StabilityControlsStatus stabilityControlsStatus = ((OnVehicleData) msg).getStabilityControlsStatus(); Object oemCustomVehicleData = ((OnVehicleData) msg).getOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME); Boolean handsOffSteering = ((OnVehicleData) msg).getHandsOffSteering(); @@ -179,6 +182,7 @@ public class OnVehicleDataTests extends BaseRpcTests { assertEquals(TestValues.MATCH, VehicleDataHelper.WIPER_STATUS, wiper); assertTrue(TestValues.TRUE, Validator.validateHeadLampStatus(VehicleDataHelper.HEAD_LAMP_STATUS, lamp)); assertEquals(TestValues.MATCH, VehicleDataHelper.ACC_PEDAL_POSITION, pedal); + assertEquals(TestValues.MATCH, VehicleDataHelper.CLIMATE_DATA, climateData); assertEquals(TestValues.MATCH, VehicleDataHelper.STEERING_WHEEL_ANGLE, wheel); assertTrue(TestValues.TRUE, Validator.validateECallInfo(VehicleDataHelper.E_CALL_INFO, ecall)); assertTrue(TestValues.TRUE, Validator.validateAirbagStatus(VehicleDataHelper.AIRBAG_STATUS, airbag)); @@ -231,6 +235,7 @@ public class OnVehicleDataTests extends BaseRpcTests { assertNull(TestValues.NULL, msg.getHandsOffSteering()); assertNull(TestValues.NULL, msg.getWindowStatus()); assertNull(TestValues.NULL, msg.getGearStatus()); + assertNull(TestValues.NULL, msg.getClimateData()); assertNull(TestValues.NULL, msg.getStabilityControlsStatus()); assertNull(TestValues.NULL, msg.getSeatOccupancy()); assertNull(TestValues.NULL, msg.getOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME)); @@ -256,6 +261,7 @@ public class OnVehicleDataTests extends BaseRpcTests { JSONObject windowStatusObj = new JSONObject(); JSONObject gearStatusObj = new JSONObject(); JSONObject stabilityControlStatusObj = new JSONObject(); + JSONObject climateDataObj = new JSONObject(); JSONObject seatOccupancyObj = new JSONObject(); JSONArray fuelRangeArrayObj = new JSONArray(); JSONArray windowStatusArrayObj = new JSONArray(); @@ -443,6 +449,13 @@ public class OnVehicleDataTests extends BaseRpcTests { reference.put(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME, VehicleDataHelper.OEM_CUSTOM_VEHICLE_DATA_STATE); reference.put(OnVehicleData.KEY_SEAT_OCCUPANCY, seatOccupancyObj); + // CLIMATE_DATA + climateDataObj.put(ClimateData.KEY_ATMOSPHERIC_PRESSURE, VehicleDataHelper.CLIMATE_DATA_ATM_PRESSURE); + climateDataObj.put(ClimateData.KEY_CABIN_TEMPERATURE, VehicleDataHelper.CLIMATE_DATA_CABIN_TEMP.serializeJSON()); + climateDataObj.put(ClimateData.KEY_EXTERNAL_TEMPERATURE, VehicleDataHelper.CLIMATE_DATA_EXT_TEMP.serializeJSON()); + + reference.put(OnVehicleData.KEY_CLIMATE_DATA, climateDataObj); + JSONObject underTest = msg.serializeJSON(); //go inside underTest and only return the JSONObject inside the parameters key inside the notification key underTest = underTest.getJSONObject("notification").getJSONObject("parameters"); @@ -569,7 +582,21 @@ public class OnVehicleDataTests extends BaseRpcTests { assertTrue(TestValues.TRUE, Validator.validateFuelRange( fuelRangeRefereceList, fuelRangeUnderTestList)); - } else if (key.equals(OnVehicleData.KEY_WINDOW_STATUS)) { + } else if (key.equals(GetVehicleDataResponse.KEY_CLIMATE_DATA)) { + JSONObject myKeyObjReference = JsonUtils.readJsonObjectFromJsonObject(reference, key); + JSONObject myKeyObjTest = JsonUtils.readJsonObjectFromJsonObject(underTest, key); + + ClimateData climateData1 = new ClimateData(JsonRPCMarshaller.deserializeJSONObject(myKeyObjReference)); + ClimateData climateData2 = new ClimateData(JsonRPCMarshaller.deserializeJSONObject(myKeyObjTest)); + + assertTrue("JSON value didn't match expected value for key \"" + key + "\".", + Validator.validateClimateData( + climateData1, + climateData2 + ) + ); + } + else if (key.equals(OnVehicleData.KEY_WINDOW_STATUS)) { JSONArray windowStatusArrayObjReference = JsonUtils.readJsonArrayFromJsonObject(reference, key); List<WindowStatus> windowStatusReferenceList = new ArrayList<>(); for (int index = 0; index < windowStatusArrayObjReference.length(); index++) { 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 b7ae57140..17f66e47c 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 @@ -66,6 +66,7 @@ public class GetVehicleDataTests extends BaseRpcTests { msg.setGearStatus(TestValues.GENERAL_BOOLEAN); msg.setStabilityControlsStatus(TestValues.GENERAL_BOOLEAN); msg.setSeatOccupancy(TestValues.GENERAL_BOOLEAN); + msg.setClimateData(TestValues.GENERAL_BOOLEAN); msg.setOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME, TestValues.GENERAL_BOOLEAN); return msg; @@ -119,6 +120,7 @@ public class GetVehicleDataTests extends BaseRpcTests { result.put(GetVehicleData.KEY_GEAR_STATUS, TestValues.GENERAL_BOOLEAN); result.put(GetVehicleData.KEY_WINDOW_STATUS, TestValues.GENERAL_BOOLEAN); result.put(GetVehicleData.KEY_STABILITY_CONTROLS_STATUS, TestValues.GENERAL_BOOLEAN); + result.put(GetVehicleData.KEY_CLIMATE_DATA, TestValues.GENERAL_BOOLEAN); result.put(GetVehicleData.KEY_SEAT_OCCUPANCY, TestValues.GENERAL_BOOLEAN); result.put(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME, TestValues.GENERAL_BOOLEAN); } catch (JSONException e) { @@ -169,6 +171,7 @@ public class GetVehicleDataTests extends BaseRpcTests { assertTrue(TestValues.TRUE, ((GetVehicleData) msg).getGearStatus()); assertTrue(TestValues.TRUE, ((GetVehicleData) msg).getStabilityControlsStatus()); assertTrue(TestValues.TRUE, ((GetVehicleData) msg).getSeatOccupancy()); + assertTrue(TestValues.TRUE, ((GetVehicleData) msg).getClimateData()); assertTrue(TestValues.TRUE, ((GetVehicleData) msg).getOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME)); // Invalid/Null Tests @@ -209,6 +212,7 @@ public class GetVehicleDataTests extends BaseRpcTests { assertNull(TestValues.NULL, msg.getWindowStatus()); assertNull(TestValues.NULL, msg.getGearStatus()); assertNull(TestValues.NULL, msg.getStabilityControlsStatus()); + assertNull(TestValues.NULL, msg.getClimateData()); assertNull(TestValues.NULL, msg.getSeatOccupancy()); assertNull(TestValues.NULL, msg.getOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME)); } @@ -267,6 +271,7 @@ public class GetVehicleDataTests extends BaseRpcTests { assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, GetVehicleData.KEY_GEAR_STATUS), cmd.getGearStatus()); assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, GetVehicleData.KEY_SEAT_OCCUPANCY), cmd.getSeatOccupancy()); assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, GetVehicleData.KEY_STABILITY_CONTROLS_STATUS), cmd.getStabilityControlsStatus()); + assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, GetVehicleData.KEY_CLIMATE_DATA), cmd.getClimateData()); 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 dfa05782c..32750af89 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 @@ -65,6 +65,7 @@ public class SubscribeVehicleDataTests extends BaseRpcTests { msg.setGearStatus(TestValues.GENERAL_BOOLEAN); msg.setSeatOccupancy(TestValues.GENERAL_BOOLEAN); msg.setStabilityControlsStatus(TestValues.GENERAL_BOOLEAN); + msg.setClimateData(TestValues.GENERAL_BOOLEAN); msg.setOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME, TestValues.GENERAL_BOOLEAN); return msg; @@ -117,6 +118,7 @@ public class SubscribeVehicleDataTests extends BaseRpcTests { result.put(SubscribeVehicleData.KEY_WINDOW_STATUS, TestValues.GENERAL_BOOLEAN); result.put(SubscribeVehicleData.KEY_GEAR_STATUS, TestValues.GENERAL_BOOLEAN); result.put(SubscribeVehicleData.KEY_STABILITY_CONTROLS_STATUS, TestValues.GENERAL_BOOLEAN); + result.put(SubscribeVehicleData.KEY_CLIMATE_DATA, TestValues.GENERAL_BOOLEAN); result.put(SubscribeVehicleData.KEY_SEAT_OCCUPANCY, TestValues.GENERAL_BOOLEAN); result.put(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME, TestValues.GENERAL_BOOLEAN); } catch (JSONException e) { @@ -165,6 +167,7 @@ public class SubscribeVehicleDataTests extends BaseRpcTests { assertTrue(TestValues.MATCH, ((SubscribeVehicleData) msg).getWindowStatus()); assertTrue(TestValues.MATCH, ((SubscribeVehicleData) msg).getGearStatus()); assertTrue(TestValues.MATCH, ((SubscribeVehicleData) msg).getStabilityControlsStatus()); + assertTrue(TestValues.MATCH, ((SubscribeVehicleData) msg).getClimateData()); assertTrue(TestValues.MATCH, ((SubscribeVehicleData) msg).getSeatOccupancy()); assertTrue(TestValues.MATCH, ((SubscribeVehicleData) msg).getOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME)); @@ -205,6 +208,7 @@ public class SubscribeVehicleDataTests extends BaseRpcTests { assertNull(TestValues.NULL, msg.getWindowStatus()); assertNull(TestValues.NULL, msg.getGearStatus()); assertNull(TestValues.NULL, msg.getStabilityControlsStatus()); + assertNull(TestValues.NULL, msg.getClimateData()); assertNull(TestValues.NULL, msg.getSeatOccupancy()); assertNull(TestValues.NULL, msg.getOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME)); } @@ -260,6 +264,7 @@ public class SubscribeVehicleDataTests extends BaseRpcTests { assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_HANDS_OFF_STEERING), cmd.getHandsOffSteering()); assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_WINDOW_STATUS), cmd.getWindowStatus()); assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_STABILITY_CONTROLS_STATUS), cmd.getStabilityControlsStatus()); + assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_CLIMATE_DATA), cmd.getClimateData()); assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, SubscribeVehicleData.KEY_SEAT_OCCUPANCY), cmd.getSeatOccupancy()); 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) { 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 7be82808a..4aeb5ce66 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 @@ -68,6 +68,7 @@ public class UnsubscribeVehicleDataTests extends BaseRpcTests { msg.setWindowStatus(TestValues.GENERAL_BOOLEAN); msg.setStabilityControlsStatus(TestValues.GENERAL_BOOLEAN); msg.setSeatOccupancy(TestValues.GENERAL_BOOLEAN); + msg.setClimateData(TestValues.GENERAL_BOOLEAN); msg.setOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME, TestValues.GENERAL_BOOLEAN); return msg; @@ -122,6 +123,7 @@ public class UnsubscribeVehicleDataTests extends BaseRpcTests { result.put(UnsubscribeVehicleData.KEY_GEAR_STATUS, TestValues.GENERAL_BOOLEAN); result.put(UnsubscribeVehicleData.KEY_STABILITY_CONTROLS_STATUS, TestValues.GENERAL_BOOLEAN); result.put(UnsubscribeVehicleData.KEY_SEAT_OCCUPANCY, TestValues.GENERAL_BOOLEAN); + result.put(UnsubscribeVehicleData.KEY_CLIMATE_DATA, TestValues.GENERAL_BOOLEAN); result.put(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME, TestValues.GENERAL_BOOLEAN); } catch (JSONException e) { fail(TestValues.JSON_FAIL); @@ -169,6 +171,7 @@ public class UnsubscribeVehicleDataTests extends BaseRpcTests { assertTrue(TestValues.TRUE, ((UnsubscribeVehicleData) msg).getWindowStatus()); assertTrue(TestValues.TRUE, ((UnsubscribeVehicleData) msg).getGearStatus()); assertTrue(TestValues.TRUE, ((UnsubscribeVehicleData) msg).getStabilityControlsStatus()); + assertTrue(TestValues.TRUE, ((UnsubscribeVehicleData) msg).getClimateData()); assertTrue(TestValues.TRUE, ((UnsubscribeVehicleData) msg).getSeatOccupancy()); assertTrue(TestValues.TRUE, ((UnsubscribeVehicleData) msg).getOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME)); // Invalid/Null Tests @@ -210,6 +213,7 @@ public class UnsubscribeVehicleDataTests extends BaseRpcTests { assertNull(TestValues.NULL, msg.getGearStatus()); assertNull(TestValues.NULL, msg.getStabilityControlsStatus()); assertNull(TestValues.NULL, msg.getSeatOccupancy()); + assertNull(TestValues.NULL, msg.getClimateData()); assertNull(TestValues.NULL, msg.getOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME)); } @@ -266,6 +270,7 @@ public class UnsubscribeVehicleDataTests extends BaseRpcTests { 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, UnsubscribeVehicleData.KEY_STABILITY_CONTROLS_STATUS), cmd.getStabilityControlsStatus()); + assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, UnsubscribeVehicleData.KEY_CLIMATE_DATA), cmd.getClimateData()); assertEquals(TestValues.MATCH, JsonUtils.readBooleanFromJsonObject(parameters, UnsubscribeVehicleData.KEY_SEAT_OCCUPANCY), cmd.getSeatOccupancy()); 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 8cd41a81b..8430fd728 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 @@ -6,6 +6,7 @@ import com.smartdevicelink.proxy.RPCMessage; import com.smartdevicelink.proxy.rpc.AirbagStatus; import com.smartdevicelink.proxy.rpc.BeltStatus; import com.smartdevicelink.proxy.rpc.BodyInformation; +import com.smartdevicelink.proxy.rpc.ClimateData; import com.smartdevicelink.proxy.rpc.ClusterModeStatus; import com.smartdevicelink.proxy.rpc.DeviceStatus; import com.smartdevicelink.proxy.rpc.ECallInfo; @@ -106,6 +107,7 @@ public class GetVehicleDataResponseTests extends BaseRpcTests { result.put(GetVehicleDataResponse.KEY_HANDS_OFF_STEERING, VehicleDataHelper.HANDS_OFF_STEERING); result.put(GetVehicleDataResponse.KEY_GEAR_STATUS, VehicleDataHelper.GEAR_STATUS); result.put(GetVehicleDataResponse.KEY_STABILITY_CONTROLS_STATUS, VehicleDataHelper.STABILITY_CONTROLS_STATUS); + result.put(GetVehicleDataResponse.KEY_CLIMATE_DATA, VehicleDataHelper.CLIMATE_DATA); result.put(GetVehicleDataResponse.KEY_SEAT_OCCUPANCY, VehicleDataHelper.SEAT_OCCUPANCY); result.put(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME, VehicleDataHelper.OEM_CUSTOM_VEHICLE_DATA_STATE); } catch (JSONException e) { @@ -136,6 +138,7 @@ public class GetVehicleDataResponseTests extends BaseRpcTests { JSONObject windowStatusObj = new JSONObject(); JSONObject gearStatusObj = new JSONObject(); JSONObject seatOccupancyObj = new JSONObject(); + JSONObject climateDataObj = new JSONObject(); JSONArray fuelRangeArrayObj = new JSONArray(); JSONArray windowStatusArrayObj = new JSONArray(); @@ -281,6 +284,11 @@ public class GetVehicleDataResponseTests extends BaseRpcTests { windowStatusObj.put(WindowStatus.KEY_STATE, VehicleDataHelper.WINDOW_STATE); windowStatusArrayObj.put(windowStatusObj); + // CLIMATE_DATA + climateDataObj.put(ClimateData.KEY_ATMOSPHERIC_PRESSURE, VehicleDataHelper.CLIMATE_DATA_ATM_PRESSURE); + climateDataObj.put(ClimateData.KEY_CABIN_TEMPERATURE, VehicleDataHelper.CLIMATE_DATA_CABIN_TEMP.serializeJSON()); + climateDataObj.put(ClimateData.KEY_EXTERNAL_TEMPERATURE, VehicleDataHelper.CLIMATE_DATA_EXT_TEMP.serializeJSON()); + // SEAT_OCCUPANCY seatOccupancyObj.put(SeatOccupancy.KEY_SEATS_BELTED, VehicleDataHelper.SEATS_BELTED); seatOccupancyObj.put(SeatOccupancy.KEY_SEATS_OCCUPIED, VehicleDataHelper.SEATS_OCCUPIED); @@ -314,6 +322,7 @@ public class GetVehicleDataResponseTests extends BaseRpcTests { 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_CLIMATE_DATA, climateDataObj); 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); @@ -452,6 +461,24 @@ public class GetVehicleDataResponseTests extends BaseRpcTests { status2 ) ); + } else if (key.equals(GetVehicleDataResponse.KEY_CLIMATE_DATA)) { + + + JSONObject myKeyObjReference = JsonUtils.readJsonObjectFromJsonObject(reference, key); + JSONObject myKeyObjTest = JsonUtils.readJsonObjectFromJsonObject(underTest, key); + + Hashtable<String, Object> hashReference = JsonRPCMarshaller.deserializeJSONObject(myKeyObjReference); + Hashtable<String, Object> hashTest = JsonRPCMarshaller.deserializeJSONObject(myKeyObjTest); + + ClimateData climateData1 = new ClimateData(hashReference); + ClimateData climateData2 = new ClimateData(hashTest); + + assertTrue("JSON value didn't match expected value for key \"" + key + "\".", + Validator.validateClimateData( + climateData1, + climateData2 + ) + ); } else if (key.equals(GetVehicleDataResponse.KEY_FUEL_RANGE)) { JSONArray fuelRangeArrayObjReference = JsonUtils.readJsonArrayFromJsonObject(reference, key); List<FuelRange> fuelRangeRefereceList = new ArrayList<FuelRange>(); @@ -540,6 +567,7 @@ public class GetVehicleDataResponseTests extends BaseRpcTests { assertEquals(TestValues.MATCH, VehicleDataHelper.GEAR_STATUS, ((GetVehicleDataResponse) msg).getGearStatus()); assertEquals(TestValues.MATCH, VehicleDataHelper.HANDS_OFF_STEERING, ((GetVehicleDataResponse) msg).getHandsOffSteering()); assertEquals(TestValues.MATCH, VehicleDataHelper.STABILITY_CONTROLS_STATUS, ((GetVehicleDataResponse) msg).getStabilityControlsStatus()); + assertEquals(TestValues.MATCH, VehicleDataHelper.CLIMATE_DATA, ((GetVehicleDataResponse) msg).getClimateData()); assertEquals(TestValues.MATCH, VehicleDataHelper.SEAT_OCCUPANCY, ((GetVehicleDataResponse) msg).getSeatOccupancy()); assertEquals(TestValues.MATCH, VehicleDataHelper.OEM_CUSTOM_VEHICLE_DATA_STATE, ((GetVehicleDataResponse) msg).getOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME)); @@ -579,6 +607,7 @@ public class GetVehicleDataResponseTests extends BaseRpcTests { assertNull(TestValues.NULL, msg.getHandsOffSteering()); assertNull(TestValues.NULL, msg.getStabilityControlsStatus()); assertNull(TestValues.NULL, msg.getWindowStatus()); + assertNull(TestValues.NULL, msg.getClimateData()); assertNull(TestValues.NULL, msg.getSeatOccupancy()); assertNull(TestValues.NULL, msg.getOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME)); } @@ -664,6 +693,10 @@ public class GetVehicleDataResponseTests extends BaseRpcTests { ClusterModeStatus clusterModeStatus = new ClusterModeStatus(JsonRPCMarshaller.deserializeJSONObject(clusterModeStatusObj)); assertTrue(TestValues.TRUE, Validator.validateClusterModeStatus(clusterModeStatus, cmd.getClusterModeStatus())); + JSONObject climateDataObj = JsonUtils.readJsonObjectFromJsonObject(parameters, GetVehicleDataResponse.KEY_CLIMATE_DATA); + ClimateData climateData = new ClimateData(JsonRPCMarshaller.deserializeJSONObject(climateDataObj)); + assertTrue(TestValues.TRUE, Validator.validateClimateData(climateData, cmd.getClimateData())); + JSONObject gearStatusObj = JsonUtils.readJsonObjectFromJsonObject(parameters, GetVehicleDataResponse.KEY_GEAR_STATUS); GearStatus gearStatus = new GearStatus(JsonRPCMarshaller.deserializeJSONObject(gearStatusObj)); GearStatus cmdStatus = cmd.getGearStatus(); 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 4d0da0627..278a29b35 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 @@ -71,6 +71,7 @@ public class SubscribeVehicleDataResponseTest extends BaseRpcTests { msg.setStabilityControlsStatus(TestValues.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_STABILITYCONTROLSSTATUS.ordinal())); msg.setOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME, TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA); msg.setSeatOccupancy(TestValues.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_SEATOCCUPANCY.ordinal())); + msg.setClimateData(TestValues.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_CLIMATEDATA.ordinal())); return msg; } @@ -129,7 +130,9 @@ public class SubscribeVehicleDataResponseTest extends BaseRpcTests { 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()); + result.put(SubscribeVehicleDataResponse.KEY_CLIMATE_DATA, TestValues.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_CLIMATEDATA.ordinal()).serializeJSON()); result.put(SubscribeVehicleDataResponse.KEY_SEAT_OCCUPANCY, TestValues.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_SEATOCCUPANCY.ordinal()).serializeJSON()); + } catch (JSONException e) { fail(TestValues.JSON_FAIL); } @@ -176,6 +179,7 @@ public class SubscribeVehicleDataResponseTest extends BaseRpcTests { VehicleDataResult testWindowStatus = ((SubscribeVehicleDataResponse) msg).getWindowStatus(); VehicleDataResult testGearStatus = ((SubscribeVehicleDataResponse) msg).getGearStatus(); VehicleDataResult testStabilityControlStatus = ((SubscribeVehicleDataResponse) msg).getStabilityControlsStatus(); + VehicleDataResult testClimateData = ((SubscribeVehicleDataResponse) msg).getClimateData(); VehicleDataResult testOEMCustomVehicleData = ((SubscribeVehicleDataResponse) msg).getOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME); VehicleDataResult testSeatOccupancy = ((SubscribeVehicleDataResponse) msg).getSeatOccupancy(); @@ -214,6 +218,7 @@ public class SubscribeVehicleDataResponseTest extends BaseRpcTests { assertTrue(TestValues.TRUE, testWindowStatus.getDataType().equals(VehicleDataType.VEHICLEDATA_WINDOWSTATUS)); assertTrue(TestValues.TRUE, testStabilityControlStatus.getDataType().equals(VehicleDataType.VEHICLEDATA_STABILITYCONTROLSSTATUS)); assertTrue(TestValues.TRUE, testOEMCustomVehicleData.getOEMCustomVehicleDataType().equals(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME)); + assertTrue(TestValues.TRUE, testClimateData.getDataType().equals(VehicleDataType.VEHICLEDATA_CLIMATEDATA)); assertTrue(TestValues.TRUE, testSeatOccupancy.getDataType().equals(VehicleDataType.VEHICLEDATA_SEATOCCUPANCY)); // Invalid/Null Tests @@ -254,6 +259,7 @@ public class SubscribeVehicleDataResponseTest extends BaseRpcTests { assertNull(TestValues.NULL, msg.getWindowStatus()); assertNull(TestValues.NULL, msg.getGearStatus()); assertNull(TestValues.NULL, msg.getStabilityControlsStatus()); + assertNull(TestValues.NULL, msg.getClimateData()); assertNull(TestValues.NULL, msg.getSeatOccupancy()); assertNull(TestValues.NULL, msg.getOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME)); } @@ -407,6 +413,10 @@ public class SubscribeVehicleDataResponseTest extends BaseRpcTests { VehicleDataResult referenceStabilityControlStatus = new VehicleDataResult(JsonRPCMarshaller.deserializeJSONObject(stabilityControlStatus)); assertTrue(TestValues.TRUE, Validator.validateStabilityControlStatus(referenceStabilityControlStatus, cmd.getStabilityControlsStatus())); + JSONObject climateData = JsonUtils.readJsonObjectFromJsonObject(parameters, SubscribeVehicleDataResponse.KEY_CLIMATE_DATA); + VehicleDataResult referenceClimateData = new VehicleDataResult(JsonRPCMarshaller.deserializeJSONObject(climateData)); + assertTrue(TestValues.TRUE, Validator.validateVehicleDataResult(referenceClimateData, cmd.getClimateData())); + 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 0e463583f..6169de07f 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 @@ -73,6 +73,7 @@ public class UnsubscribeVehicleDataResponseTest extends BaseRpcTests { msg.setSeatOccupancy(TestValues.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_SEATOCCUPANCY.ordinal())); msg.setStabilityControlsStatus(TestValues.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_STABILITYCONTROLSSTATUS.ordinal())); msg.setOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME, TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA); + msg.setClimateData(TestValues.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_CLIMATEDATA.ordinal())); return msg; } @@ -133,6 +134,8 @@ public class UnsubscribeVehicleDataResponseTest extends BaseRpcTests { result.put(SubscribeVehicleDataResponse.KEY_SEAT_OCCUPANCY, TestValues.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_SEATOCCUPANCY.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()); + result.put(SubscribeVehicleDataResponse.KEY_CLIMATE_DATA, TestValues.GENERAL_VEHICLEDATARESULT_LIST.get(VehicleDataType.VEHICLEDATA_CLIMATEDATA.ordinal()).serializeJSON()); + } catch (JSONException e) { fail(TestValues.JSON_FAIL); } @@ -179,6 +182,7 @@ public class UnsubscribeVehicleDataResponseTest extends BaseRpcTests { VehicleDataResult testGearStatus = ((UnsubscribeVehicleDataResponse) msg).getGearStatus(); VehicleDataResult testWindowStatus = ((UnsubscribeVehicleDataResponse) msg).getWindowStatus(); VehicleDataResult testStabilityControlStatus = ((UnsubscribeVehicleDataResponse) msg).getStabilityControlsStatus(); + VehicleDataResult testClimateData = ((UnsubscribeVehicleDataResponse) msg).getClimateData(); VehicleDataResult testOemCustomData = ((UnsubscribeVehicleDataResponse) msg).getOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME); VehicleDataResult testSeatOccupancy = ((UnsubscribeVehicleDataResponse) msg).getSeatOccupancy(); @@ -216,6 +220,7 @@ public class UnsubscribeVehicleDataResponseTest extends BaseRpcTests { assertTrue(TestValues.TRUE, testWindowStatus.getDataType().equals(VehicleDataType.VEHICLEDATA_WINDOWSTATUS)); assertTrue(TestValues.TRUE, testStabilityControlStatus.getDataType().equals(VehicleDataType.VEHICLEDATA_STABILITYCONTROLSSTATUS)); assertTrue(TestValues.TRUE, testOemCustomData.getOEMCustomVehicleDataType().equals(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME)); + assertTrue(TestValues.TRUE, testClimateData.getDataType().equals(VehicleDataType.VEHICLEDATA_CLIMATEDATA)); assertTrue(TestValues.TRUE, testGearStatus.getDataType().equals(VehicleDataType.VEHICLEDATA_GEARSTATUS)); assertTrue(TestValues.TRUE, testSeatOccupancy.getDataType().equals(VehicleDataType.VEHICLEDATA_SEATOCCUPANCY)); @@ -258,6 +263,7 @@ public class UnsubscribeVehicleDataResponseTest extends BaseRpcTests { assertNull(TestValues.NULL, msg.getWindowStatus()); assertNull(TestValues.NULL, msg.getHandsOffSteering()); assertNull(TestValues.NULL, msg.getStabilityControlsStatus()); + assertNull(TestValues.NULL, msg.getClimateData()); assertNull(TestValues.NULL, msg.getSeatOccupancy()); assertNull(TestValues.NULL, msg.getOEMCustomVehicleData(TestValues.GENERAL_OEM_CUSTOM_VEHICLE_DATA_NAME)); } @@ -415,6 +421,10 @@ public class UnsubscribeVehicleDataResponseTest extends BaseRpcTests { VehicleDataResult referenceStabilityControlStatus = new VehicleDataResult(JsonRPCMarshaller.deserializeJSONObject(stabilityControlsStatus)); assertTrue(TestValues.TRUE, Validator.validateStabilityControlStatus(referenceStabilityControlStatus, cmd.getStabilityControlsStatus())); + JSONObject climateData = JsonUtils.readJsonObjectFromJsonObject(parameters, UnsubscribeVehicleDataResponse.KEY_CLIMATE_DATA); + VehicleDataResult referenceClimateData = new VehicleDataResult(JsonRPCMarshaller.deserializeJSONObject(climateData)); + assertTrue(TestValues.TRUE, Validator.validateVehicleDataResult(referenceClimateData, cmd.getClimateData())); + JSONObject seatOccupancy = JsonUtils.readJsonObjectFromJsonObject(parameters, UnsubscribeVehicleDataResponse.KEY_SEAT_OCCUPANCY); VehicleDataResult referenceSeatOccupancy = new VehicleDataResult(JsonRPCMarshaller.deserializeJSONObject(seatOccupancy)); assertTrue(TestValues.TRUE, Validator.validateVehicleDataResult(referenceSeatOccupancy, cmd.getSeatOccupancy())); diff --git a/base/src/main/java/com/smartdevicelink/proxy/rpc/ClimateData.java b/base/src/main/java/com/smartdevicelink/proxy/rpc/ClimateData.java new file mode 100644 index 000000000..e44635163 --- /dev/null +++ b/base/src/main/java/com/smartdevicelink/proxy/rpc/ClimateData.java @@ -0,0 +1,157 @@ +/* + * 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.util.SdlDataTypeConverter; + +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>Notes</th> + * <th>Version Available</th> + * </tr> + * <tr> + * <td>externalTemperature</td> + * <td>Temperature</td> + * <td>The external temperature in degrees celsius</td> + * <td>N</td> + * <td></td> + * <td></td> + * </tr> + * <tr> + * <td>cabinTemperature</td> + * <td>Temperature</td> + * <td>Internal ambient cabin temperature in degrees celsius</td> + * <td>N</td> + * <td></td> + * <td></td> + * </tr> + * <tr> + * <td>atmosphericPressure</td> + * <td>Float</td> + * <td>Current atmospheric pressure in mBar</td> + * <td>N</td> + * <td>{"num_min_value": 0.0, "num_max_value": 2000.0}</td> + * <td></td> + * </tr> + * </table> + * @since SmartDeviceLink 7.1.0 + */ +public class ClimateData extends RPCStruct { + public static final String KEY_EXTERNAL_TEMPERATURE = "externalTemperature"; + public static final String KEY_CABIN_TEMPERATURE = "cabinTemperature"; + public static final String KEY_ATMOSPHERIC_PRESSURE = "atmosphericPressure"; + + /** + * Constructs a new ClimateData object + */ + public ClimateData() { } + + /** + * Constructs a new ClimateData object indicated by the Hashtable parameter + * + * @param hash The Hashtable to use + */ + public ClimateData(Hashtable<String, Object> hash) { + super(hash); + } + + /** + * Sets the externalTemperature. + * + * @param externalTemperature The external temperature in degrees celsius + */ + public ClimateData setExternalTemperature(Temperature externalTemperature) { + setValue(KEY_EXTERNAL_TEMPERATURE, externalTemperature); + return this; + } + + /** + * Gets the externalTemperature. + * + * @return Temperature The external temperature in degrees celsius + */ + public Temperature getExternalTemperature() { + return (Temperature) getObject(Temperature.class, KEY_EXTERNAL_TEMPERATURE); + } + + /** + * Sets the cabinTemperature. + * + * @param cabinTemperature Internal ambient cabin temperature in degrees celsius + */ + public ClimateData setCabinTemperature(Temperature cabinTemperature) { + setValue(KEY_CABIN_TEMPERATURE, cabinTemperature); + return this; + } + + /** + * Gets the cabinTemperature. + * + * @return Temperature Internal ambient cabin temperature in degrees celsius + */ + public Temperature getCabinTemperature() { + return (Temperature) getObject(Temperature.class, KEY_CABIN_TEMPERATURE); + } + + /** + * Sets the atmosphericPressure. + * + * @param atmosphericPressure Current atmospheric pressure in mBar + * {"num_min_value": 0.0, "num_max_value": 2000.0} + */ + public ClimateData setAtmosphericPressure(Float atmosphericPressure) { + setValue(KEY_ATMOSPHERIC_PRESSURE, atmosphericPressure); + return this; + } + + /** + * Gets the atmosphericPressure. + * + * @return Float Current atmospheric pressure in mBar + * {"num_min_value": 0.0, "num_max_value": 2000.0} + */ + public Float getAtmosphericPressure() { + Object object = getValue(KEY_ATMOSPHERIC_PRESSURE); + return SdlDataTypeConverter.objectToFloat(object); + } +} 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 4491f8d46..b7744a3e3 100644 --- a/base/src/main/java/com/smartdevicelink/proxy/rpc/GetVehicleData.java +++ b/base/src/main/java/com/smartdevicelink/proxy/rpc/GetVehicleData.java @@ -108,10 +108,13 @@ import java.util.Hashtable; * <tr>
* <td>externalTemperature</td>
* <td>Boolean</td>
- * <td>The external temperature in degrees celsius</td>
+ * <td>The external temperature in degrees celsius. This parameter is deprecated starting RPCSpec 7.1.0, please see climateData.</td>
* <td>N</td>
* <td>Subscribable</td>
- * <td>SmartDeviceLink 2.0</td>
+ * <td>
+ * @since SmartDeviceLink 2.0.0
+ * @deprecated in SmartDeviceLink 7.1.0
+ * </td>
* </tr>
* <tr>
* <td>vin</td>
@@ -270,6 +273,16 @@ import java.util.Hashtable; * <td>SmartDeviceLink 7.0.0</td>
* </tr>
* <tr>
+ * <td>climateData</td>
+ * <td>Boolean</td>
+ * <td>See ClimateData</td>
+ * <td>N</td>
+ * <td></td>
+ * <td>
+ * @since SmartDeviceLink 7.1.0
+ * </td>
+ * </tr>
+ * <tr>
* <td>seatOccupancy</td>
* <td>Boolean</td>
* <td>See SeatOccupancy</td>
@@ -303,6 +316,11 @@ import java.util.Hashtable; public class GetVehicleData extends RPCRequest {
public static final String KEY_SPEED = "speed";
public static final String KEY_RPM = "rpm";
+ /**
+ * @since SmartDeviceLink 2.0.0
+ * @deprecated in SmartDeviceLink 7.1.0
+ */
+ @Deprecated
public static final String KEY_EXTERNAL_TEMPERATURE = "externalTemperature";
public static final String KEY_VIN = "vin";
public static final String KEY_PRNDL = "prndl";
@@ -344,6 +362,10 @@ public class GetVehicleData extends RPCRequest { @Deprecated
public static final String KEY_FUEL_LEVEL_STATE = "fuelLevel_State";
public static final String KEY_STABILITY_CONTROLS_STATUS = "stabilityControlsStatus";
+ /**
+ * @since SmartDeviceLink 7.1.0
+ */
+ public static final String KEY_CLIMATE_DATA = "climateData";
/**
* @since SmartDeviceLink 7.1.0
@@ -449,11 +471,29 @@ public class GetVehicleData extends RPCRequest { return getBoolean(KEY_FUEL_RANGE);
}
+ /**
+ * Sets the externalTemperature.
+ *
+ * @param externalTemperature The external temperature in degrees celsius. This parameter is deprecated starting RPC
+ * Spec 7.1.0, please see climateData.
+ * @since SmartDeviceLink 2.0.0
+ * @deprecated in SmartDeviceLink 7.1.0
+ */
+ @Deprecated
public GetVehicleData setExternalTemperature(Boolean externalTemperature) {
setParameters(KEY_EXTERNAL_TEMPERATURE, externalTemperature);
return this;
}
+ /**
+ * Gets the externalTemperature.
+ *
+ * @return Boolean The external temperature in degrees celsius. This parameter is deprecated starting RPC
+ * Spec 7.1.0, please see climateData.
+ * @since SmartDeviceLink 2.0.0
+ * @deprecated in SmartDeviceLink 7.1.0
+ */
+ @Deprecated
public Boolean getExternalTemperature() {
return getBoolean(KEY_EXTERNAL_TEMPERATURE);
}
@@ -806,6 +846,27 @@ public class GetVehicleData extends RPCRequest { }
/**
+ * Sets the climateData.
+ *
+ * @param climateData See ClimateData
+ * @since SmartDeviceLink 7.1.0
+ */
+ public GetVehicleData setClimateData(Boolean climateData) {
+ setParameters(KEY_CLIMATE_DATA, climateData);
+ return this;
+ }
+
+ /**
+ * Gets the climateData.
+ *
+ * @return Boolean See ClimateData
+ * @since SmartDeviceLink 7.1.0
+ */
+ public Boolean getClimateData() {
+ return getBoolean(KEY_CLIMATE_DATA);
+ }
+
+ /**
* Sets the seatOccupancy.
*
* @param seatOccupancy See SeatOccupancy
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 e4adfbced..33ebf324f 100644 --- a/base/src/main/java/com/smartdevicelink/proxy/rpc/GetVehicleDataResponse.java +++ b/base/src/main/java/com/smartdevicelink/proxy/rpc/GetVehicleDataResponse.java @@ -69,6 +69,11 @@ public class GetVehicleDataResponse extends RPCResponse { public static final String KEY_FUEL_LEVEL_STATE = "fuelLevel_State";
public static final String KEY_INSTANT_FUEL_CONSUMPTION = "instantFuelConsumption";
public static final String KEY_FUEL_RANGE = "fuelRange";
+ /**
+ * @since SmartDeviceLink 2.0.0
+ * @deprecated in SmartDeviceLink 7.1.0
+ */
+ @Deprecated
public static final String KEY_EXTERNAL_TEMPERATURE = "externalTemperature";
public static final String KEY_TURN_SIGNAL = "turnSignal";
public static final String KEY_VIN = "vin";
@@ -99,6 +104,11 @@ public class GetVehicleDataResponse extends RPCResponse { /**
* @since SmartDeviceLink 7.1.0
*/
+ public static final String KEY_CLIMATE_DATA = "climateData";
+
+ /**
+ * @since SmartDeviceLink 7.1.0
+ */
public static final String KEY_SEAT_OCCUPANCY = "seatOccupancy";
/**
* Constructs a new GetVehicleDataResponse object
@@ -209,11 +219,31 @@ public class GetVehicleDataResponse extends RPCResponse { return SdlDataTypeConverter.objectToDouble(object);
}
+ /**
+ * Sets the externalTemperature.
+ *
+ * @param externalTemperature The external temperature in degrees celsius. This parameter is deprecated starting RPC
+ * Spec 7.1.0, please see climateData.
+ * {"num_min_value": -40.0, "num_max_value": 100.0}
+ * @since SmartDeviceLink 2.0.0
+ * @deprecated in SmartDeviceLink 7.1.0
+ */
+ @Deprecated
public GetVehicleDataResponse setExternalTemperature(Double externalTemperature) {
setParameters(KEY_EXTERNAL_TEMPERATURE, externalTemperature);
return this;
}
+ /**
+ * Gets the externalTemperature.
+ *
+ * @return Double The external temperature in degrees celsius. This parameter is deprecated starting RPC
+ * Spec 7.1.0, please see climateData.
+ * {"num_min_value": -40.0, "num_max_value": 100.0}
+ * @since SmartDeviceLink 2.0.0
+ * @deprecated in SmartDeviceLink 7.1.0
+ */
+ @Deprecated
public Double getExternalTemperature() {
Object object = getParameters(KEY_EXTERNAL_TEMPERATURE);
return SdlDataTypeConverter.objectToDouble(object);
@@ -597,6 +627,27 @@ public class GetVehicleDataResponse extends RPCResponse { setParameters(KEY_STABILITY_CONTROLS_STATUS, stabilityControlsStatus);
return this;
}
+
+ /**
+ * Sets the climateData.
+ *
+ * @param climateData See ClimateData
+ * @since SmartDeviceLink 7.1.0
+ */
+ public GetVehicleDataResponse setClimateData(ClimateData climateData) {
+ setParameters(KEY_CLIMATE_DATA, climateData);
+ return this;
+ }
+
+ /**
+ * Gets the climateData.
+ *
+ * @return ClimateData See ClimateData
+ * @since SmartDeviceLink 7.1.0
+ */
+ public ClimateData getClimateData() {
+ return (ClimateData) getObject(ClimateData.class, KEY_CLIMATE_DATA);
+ }
/**
* Sets the seatOccupancy.
*
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 f14705b0c..8d87f6d30 100644 --- a/base/src/main/java/com/smartdevicelink/proxy/rpc/OnVehicleData.java +++ b/base/src/main/java/com/smartdevicelink/proxy/rpc/OnVehicleData.java @@ -320,6 +320,16 @@ import java.util.List; * <td>SmartDeviceLink 7.0.0</td>
* </tr>
* <tr>
+ * <td>climateData</td>
+ * <td>ClimateData</td>
+ * <td>See ClimateData</td>
+ * <td>N</td>
+ * <td></td>
+ * <td>
+ * @since SmartDeviceLink 7.1.0
+ * </td>
+ * </tr>
+ * <tr>
* <td>stabilityControlsStatus</td>
* <td>StabilityControlsStatus</td>
* <td>See StabilityControlsStatus</td>
@@ -344,6 +354,11 @@ import java.util.List; public class OnVehicleData extends RPCNotification {
public static final String KEY_SPEED = "speed";
public static final String KEY_RPM = "rpm";
+ /**
+ * @since SmartDeviceLink 2.0.0
+ * @deprecated in SmartDeviceLink 7.1.0
+ */
+ @Deprecated
public static final String KEY_EXTERNAL_TEMPERATURE = "externalTemperature";
public static final String KEY_VIN = "vin";
public static final String KEY_PRNDL = "prndl";
@@ -374,6 +389,10 @@ public class OnVehicleData extends RPCNotification { public static final String KEY_WINDOW_STATUS = "windowStatus";
public static final String KEY_GEAR_STATUS = "gearStatus";
/**
+ * @since SmartDeviceLink 7.1.0
+ */
+ public static final String KEY_CLIMATE_DATA = "climateData";
+ /**
* @deprecated
*/
@Deprecated
@@ -471,11 +490,31 @@ public class OnVehicleData extends RPCNotification { return SdlDataTypeConverter.objectToDouble(object);
}
+ /**
+ * Sets the externalTemperature.
+ *
+ * @param externalTemperature The external temperature in degrees celsius. This parameter is deprecated starting RPC
+ * Spec 7.1.0, please see climateData.
+ * {"num_min_value": -40.0, "num_max_value": 100.0}
+ * @since SmartDeviceLink 2.0.0
+ * @deprecated in SmartDeviceLink 7.1.0
+ */
+ @Deprecated
public OnVehicleData setExternalTemperature(Double externalTemperature) {
setParameters(KEY_EXTERNAL_TEMPERATURE, externalTemperature);
return this;
}
+ /**
+ * Gets the externalTemperature.
+ *
+ * @return Double The external temperature in degrees celsius. This parameter is deprecated starting RPC
+ * Spec 7.1.0, please see climateData.
+ * {"num_min_value": -40.0, "num_max_value": 100.0}
+ * @since SmartDeviceLink 2.0.0
+ * @deprecated in SmartDeviceLink 7.1.0
+ */
+ @Deprecated
public Double getExternalTemperature() {
Object object = getParameters(KEY_EXTERNAL_TEMPERATURE);
return SdlDataTypeConverter.objectToDouble(object);
@@ -862,6 +901,28 @@ public class OnVehicleData extends RPCNotification { public GearStatus getGearStatus() {
return (GearStatus) getObject(GearStatus.class, KEY_GEAR_STATUS);
}
+
+
+ /**
+ * Sets the climateData.
+ *
+ * @param climateData See ClimateData
+ * @since SmartDeviceLink 7.1.0
+ */
+ public OnVehicleData setClimateData(ClimateData climateData) {
+ setParameters(KEY_CLIMATE_DATA, climateData);
+ return this;
+ }
+
+ /**
+ * Gets the climateData.
+ *
+ * @return ClimateData See ClimateData
+ * @since SmartDeviceLink 7.1.0
+ */
+ public ClimateData getClimateData() {
+ return (ClimateData) getObject(ClimateData.class, KEY_CLIMATE_DATA);
+ }
/**
* Sets the seatOccupancy.
*
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 62401e2c8..7ea19c858 100644 --- a/base/src/main/java/com/smartdevicelink/proxy/rpc/SubscribeVehicleData.java +++ b/base/src/main/java/com/smartdevicelink/proxy/rpc/SubscribeVehicleData.java @@ -116,10 +116,13 @@ import java.util.Hashtable; * <tr>
* <td>externalTemperature</td>
* <td>Boolean</td>
- * <td>The external temperature in degrees celsius</td>
+ * <td>The external temperature in degrees celsius. This parameter is deprecated starting RPCSpec 7.1.0, please see climateData.</td>
* <td>N</td>
* <td>Subscribable</td>
- * <td>SmartDeviceLink 2.0 </td>
+ * <td>
+ * @since SmartDeviceLink 2.0.0
+ * @deprecated in SmartDeviceLink 7.1.0
+ * </td>
* </tr>
* <tr>
* <td>gearStatus</td>
@@ -308,6 +311,16 @@ import java.util.Hashtable; * <td>N</td>
* <td>SmartDeviceLink 7.0.0</td>
* </tr>
+ * <tr>
+ * <td>climateData</td>
+ * <td>Boolean</td>
+ * <td>See ClimateData</td>
+ * <td>N</td>
+ * <td></td>
+ * <td>
+ * @since SmartDeviceLink 7.1.0
+ * </td>
+ * </tr>
* <tr>
* <td>seatOccupancy</td>
* <td>Boolean</td>
@@ -339,6 +352,11 @@ import java.util.Hashtable; */
public class SubscribeVehicleData extends RPCRequest {
public static final String KEY_RPM = "rpm";
+ /**
+ * @since SmartDeviceLink 2.0.0
+ * @deprecated in SmartDeviceLink 7.1.0
+ */
+ @Deprecated
public static final String KEY_EXTERNAL_TEMPERATURE = "externalTemperature";
public static final String KEY_PRNDL = "prndl";
public static final String KEY_TIRE_PRESSURE = "tirePressure";
@@ -382,6 +400,10 @@ public class SubscribeVehicleData extends RPCRequest { /**
* @since SmartDeviceLink 7.1.0
*/
+ public static final String KEY_CLIMATE_DATA = "climateData";
+ /**
+ * @since SmartDeviceLink 7.1.0
+ */
public static final String KEY_SEAT_OCCUPANCY = "seatOccupancy";
/**
@@ -529,22 +551,28 @@ public class SubscribeVehicleData extends RPCRequest { }
/**
- * Sets a boolean value. If true, subscribes externalTemperature data
+ * Sets the externalTemperature.
*
- * @param externalTemperature a boolean value
+ * @param externalTemperature The external temperature in degrees celsius. This parameter is deprecated starting RPC
+ * Spec 7.1.0, please see climateData.
+ * @since SmartDeviceLink 2.0.0
+ * @deprecated in SmartDeviceLink 7.1.0
*/
+ @Deprecated
public SubscribeVehicleData setExternalTemperature(Boolean externalTemperature) {
setParameters(KEY_EXTERNAL_TEMPERATURE, externalTemperature);
return this;
}
/**
- * Gets a boolean value. If true, means the externalTemperature data has been
- * subscribed.
+ * Gets the externalTemperature.
*
- * @return Boolean -a Boolean value. If true, means the externalTemperature data
- * has been subscribed.
+ * @return Boolean The external temperature in degrees celsius. This parameter is deprecated starting RPC
+ * Spec 7.1.0, please see climateData.
+ * @since SmartDeviceLink 2.0.0
+ * @deprecated in SmartDeviceLink 7.1.0
*/
+ @Deprecated
public Boolean getExternalTemperature() {
return getBoolean(KEY_EXTERNAL_TEMPERATURE);
}
@@ -1042,6 +1070,27 @@ public class SubscribeVehicleData extends RPCRequest { }
/**
+ * Sets the climateData.
+ *
+ * @param climateData See ClimateData
+ * @since SmartDeviceLink 7.1.0
+ */
+ public SubscribeVehicleData setClimateData(Boolean climateData) {
+ setParameters(KEY_CLIMATE_DATA, climateData);
+ return this;
+ }
+
+ /**
+ * Gets the climateData.
+ *
+ * @return Boolean See ClimateData
+ * @since SmartDeviceLink 7.1.0
+ */
+ public Boolean getClimateData() {
+ return getBoolean(KEY_CLIMATE_DATA);
+ }
+
+ /**
* Sets the seatOccupancy.
*
* @param seatOccupancy See SeatOccupancy
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 d8c8550ea..7a268f0f3 100644 --- a/base/src/main/java/com/smartdevicelink/proxy/rpc/SubscribeVehicleDataResponse.java +++ b/base/src/main/java/com/smartdevicelink/proxy/rpc/SubscribeVehicleDataResponse.java @@ -47,6 +47,11 @@ import java.util.Hashtable; public class SubscribeVehicleDataResponse extends RPCResponse {
public static final String KEY_SPEED = "speed";
public static final String KEY_RPM = "rpm";
+ /**
+ * @since SmartDeviceLink 2.0.0
+ * @deprecated in SmartDeviceLink 7.1.0
+ */
+ @Deprecated
public static final String KEY_EXTERNAL_TEMPERATURE = "externalTemperature";
public static final String KEY_PRNDL = "prndl";
public static final String KEY_TIRE_PRESSURE = "tirePressure";
@@ -88,6 +93,10 @@ public class SubscribeVehicleDataResponse extends RPCResponse { @Deprecated
public static final String KEY_FUEL_LEVEL_STATE = "fuelLevel_State";
public static final String KEY_STABILITY_CONTROLS_STATUS = "stabilityControlsStatus";
+ /**
+ * @since SmartDeviceLink 7.1.0
+ */
+ public static final String KEY_CLIMATE_DATA = "climateData";
/**
* @since SmartDeviceLink 7.1.0
@@ -243,20 +252,28 @@ public class SubscribeVehicleDataResponse extends RPCResponse { }
/**
- * Sets External Temperature
+ * Sets the externalTemperature.
*
- * @param externalTemperature a VehicleDataResult related to external temperature
+ * @param externalTemperature The external temperature in degrees celsius. This parameter is deprecated starting RPC
+ * Spec 7.1.0, please see climateData.
+ * @since SmartDeviceLink 2.0.0
+ * @deprecated in SmartDeviceLink 7.1.0
*/
+ @Deprecated
public SubscribeVehicleDataResponse setExternalTemperature(VehicleDataResult externalTemperature) {
setParameters(KEY_EXTERNAL_TEMPERATURE, externalTemperature);
return this;
}
/**
- * Gets External Temperature
+ * Gets the externalTemperature.
*
- * @return a VehicleDataResult related to external temperature
+ * @return VehicleDataResult The external temperature in degrees celsius. This parameter is deprecated starting RPC
+ * Spec 7.1.0, please see climateData.
+ * @since SmartDeviceLink 2.0.0
+ * @deprecated in SmartDeviceLink 7.1.0
*/
+ @Deprecated
public VehicleDataResult getExternalTemperature() {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_EXTERNAL_TEMPERATURE);
}
@@ -758,6 +775,27 @@ public class SubscribeVehicleDataResponse extends RPCResponse { }
/**
+ * Sets the climateData.
+ *
+ * @param climateData See ClimateData
+ * @since SmartDeviceLink 7.1.0
+ */
+ public SubscribeVehicleDataResponse setClimateData(VehicleDataResult climateData) {
+ setParameters(KEY_CLIMATE_DATA, climateData);
+ return this;
+ }
+
+ /**
+ * Gets the climateData.
+ *
+ * @return VehicleDataResult See ClimateData
+ * @since SmartDeviceLink 7.1.0
+ */
+ public VehicleDataResult getClimateData() {
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_CLIMATE_DATA);
+ }
+
+ /**
* Sets the seatOccupancy.
*
* @param seatOccupancy See SeatOccupancy
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 876cf99a0..e607711d0 100644 --- a/base/src/main/java/com/smartdevicelink/proxy/rpc/UnsubscribeVehicleData.java +++ b/base/src/main/java/com/smartdevicelink/proxy/rpc/UnsubscribeVehicleData.java @@ -111,10 +111,13 @@ import java.util.Hashtable; * <tr>
* <td>externalTemperature</td>
* <td>Boolean</td>
- * <td>The external temperature in degrees celsius</td>
+ * <td>The external temperature in degrees celsius. This parameter is deprecated starting RPCSpec 7.1.0, please see climateData.</td>
* <td>N</td>
* <td>Subscribable</td>
- * <td>SmartDeviceLink 2.0 </td>
+ * <td>
+ * @since SmartDeviceLink 2.0.0
+ * @deprecated in SmartDeviceLink 7.1.0
+ * </td>
* </tr>
* <tr>
* <td>gearStatus</td>
@@ -295,6 +298,16 @@ import java.util.Hashtable; * <td>N</td>
* <td>SmartDeviceLink 7.0.0</td>
* </tr>
+ * <tr>
+ * <td>climateData</td>
+ * <td>Boolean</td>
+ * <td>See ClimateData</td>
+ * <td>N</td>
+ * <td></td>
+ * <td>
+ * @since SmartDeviceLink 7.1.0
+ * </td>
+ * </tr>
* <tr>
* <td>seatOccupancy</td>
* <td>Boolean</td>
@@ -327,6 +340,11 @@ import java.util.Hashtable; public class UnsubscribeVehicleData extends RPCRequest {
public static final String KEY_SPEED = "speed";
public static final String KEY_RPM = "rpm";
+ /**
+ * @since SmartDeviceLink 2.0.0
+ * @deprecated in SmartDeviceLink 7.1.0
+ */
+ @Deprecated
public static final String KEY_EXTERNAL_TEMPERATURE = "externalTemperature";
public static final String KEY_PRNDL = "prndl";
public static final String KEY_TIRE_PRESSURE = "tirePressure";
@@ -370,6 +388,10 @@ public class UnsubscribeVehicleData extends RPCRequest { * @since SmartDeviceLink 7.1.0
*/
public static final String KEY_SEAT_OCCUPANCY = "seatOccupancy";
+ /**
+ * @since SmartDeviceLink 7.1.0
+ */
+ public static final String KEY_CLIMATE_DATA = "climateData";
/**
* Constructs a new UnsubscribeVehicleData object
@@ -519,22 +541,28 @@ public class UnsubscribeVehicleData extends RPCRequest { }
/**
- * Sets a boolean value. If true, unsubscribes from externalTemperature data
+ * Sets the externalTemperature.
*
- * @param externalTemperature a boolean value
+ * @param externalTemperature The external temperature in degrees celsius. This parameter is deprecated starting RPC
+ * Spec 7.1.0, please see climateData.
+ * @since SmartDeviceLink 2.0.0
+ * @deprecated in SmartDeviceLink 7.1.0
*/
+ @Deprecated
public UnsubscribeVehicleData setExternalTemperature(Boolean externalTemperature) {
setParameters(KEY_EXTERNAL_TEMPERATURE, externalTemperature);
return this;
}
/**
- * Gets a boolean value. If true, means the externalTemperature data has been
- * unsubscribed.
+ * Gets the externalTemperature.
*
- * @return Boolean -a Boolean value. If true, means the externalTemperature data
- * has been unsubscribed.
+ * @return Boolean The external temperature in degrees celsius. This parameter is deprecated starting RPC
+ * Spec 7.1.0, please see climateData.
+ * @since SmartDeviceLink 2.0.0
+ * @deprecated in SmartDeviceLink 7.1.0
*/
+ @Deprecated
public Boolean getExternalTemperature() {
return getBoolean(KEY_EXTERNAL_TEMPERATURE);
}
@@ -1031,6 +1059,27 @@ public class UnsubscribeVehicleData extends RPCRequest { }
/**
+ * Sets the climateData.
+ *
+ * @param climateData See ClimateData
+ * @since SmartDeviceLink 7.1.0
+ */
+ public UnsubscribeVehicleData setClimateData(Boolean climateData) {
+ setParameters(KEY_CLIMATE_DATA, climateData);
+ return this;
+ }
+
+ /**
+ * Gets the climateData.
+ *
+ * @return Boolean See ClimateData
+ * @since SmartDeviceLink 7.1.0
+ */
+ public Boolean getClimateData() {
+ return getBoolean(KEY_CLIMATE_DATA);
+ }
+
+ /**
* Sets the seatOccupancy.
*
* @param seatOccupancy See SeatOccupancy
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 5d6434608..114a1971a 100644 --- a/base/src/main/java/com/smartdevicelink/proxy/rpc/UnsubscribeVehicleDataResponse.java +++ b/base/src/main/java/com/smartdevicelink/proxy/rpc/UnsubscribeVehicleDataResponse.java @@ -47,6 +47,11 @@ import java.util.Hashtable; public class UnsubscribeVehicleDataResponse extends RPCResponse {
public static final String KEY_SPEED = "speed";
public static final String KEY_RPM = "rpm";
+ /**
+ * @since SmartDeviceLink 2.0.0
+ * @deprecated in SmartDeviceLink 7.1.0
+ */
+ @Deprecated
public static final String KEY_EXTERNAL_TEMPERATURE = "externalTemperature";
public static final String KEY_PRNDL = "prndl";
public static final String KEY_TIRE_PRESSURE = "tirePressure";
@@ -91,6 +96,11 @@ public class UnsubscribeVehicleDataResponse extends RPCResponse { /**
* @since SmartDeviceLink 7.1.0
*/
+ public static final String KEY_CLIMATE_DATA = "climateData";
+
+ /**
+ * @since SmartDeviceLink 7.1.0
+ */
public static final String KEY_SEAT_OCCUPANCY = "seatOccupancy";
/**
* Constructs a new UnsubscribeVehicleDataResponse object
@@ -243,20 +253,28 @@ public class UnsubscribeVehicleDataResponse extends RPCResponse { }
/**
- * Sets External Temperature
+ * Sets the externalTemperature.
*
- * @param externalTemperature a VehicleDataResult related to external temperature
+ * @param externalTemperature The external temperature in degrees celsius. This parameter is deprecated starting RPC
+ * Spec 7.1.0, please see climateData.
+ * @since SmartDeviceLink 2.0.0
+ * @deprecated in SmartDeviceLink 7.1.0
*/
+ @Deprecated
public UnsubscribeVehicleDataResponse setExternalTemperature(VehicleDataResult externalTemperature) {
setParameters(KEY_EXTERNAL_TEMPERATURE, externalTemperature);
return this;
}
/**
- * Gets External Temperature
+ * Gets the externalTemperature.
*
- * @return a VehicleDataResult related to external temperature
+ * @return VehicleDataResult The external temperature in degrees celsius. This parameter is deprecated starting RPC
+ * Spec 7.1.0, please see climateData.
+ * @since SmartDeviceLink 2.0.0
+ * @deprecated in SmartDeviceLink 7.1.0
*/
+ @Deprecated
public VehicleDataResult getExternalTemperature() {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_EXTERNAL_TEMPERATURE);
}
@@ -758,6 +776,27 @@ public class UnsubscribeVehicleDataResponse extends RPCResponse { }
/**
+ * Sets the climateData.
+ *
+ * @param climateData See ClimateData
+ * @since SmartDeviceLink 7.1.0
+ */
+ public UnsubscribeVehicleDataResponse setClimateData(VehicleDataResult climateData) {
+ setParameters(KEY_CLIMATE_DATA, climateData);
+ return this;
+ }
+
+ /**
+ * Gets the climateData.
+ *
+ * @return VehicleDataResult See ClimateData
+ * @since SmartDeviceLink 7.1.0
+ */
+ public VehicleDataResult getClimateData() {
+ return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_CLIMATE_DATA);
+ }
+
+ /**
* Sets the seatOccupancy.
*
* @param seatOccupancy See SeatOccupancy
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 55217b208..ad619e46a 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 @@ -62,7 +62,12 @@ public enum VehicleDataType { */
VEHICLEDATA_FUELCONSUMPTION,
/**
+ * @since SmartDeviceLink 7.1.0
+ */
+ VEHICLEDATA_CLIMATEDATA,
+ /**
* Notifies EXTERNTEMPData may be subscribed
+ * @deprecated since SmartDeviceLink 7.1.0
*/
VEHICLEDATA_EXTERNTEMP,
/**
|