summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicoleYarroch <nicole@livio.io>2021-02-12 10:45:39 -0500
committerNicoleYarroch <nicole@livio.io>2021-02-12 10:45:39 -0500
commit9a93e6906ac5c0e94274387b88f9afbc1125fa20 (patch)
treebbc408b23b5e8c911f9a9a0e701c139405b13845
parent99b60ecd93476853cff68322833b030e92e02cdb (diff)
parent0f8d0990dd18b4d8a0f78d2ed606da9588ddce8f (diff)
downloadsdl_ios-bugfix/generator/issue_1905_rpc_param_names_for_structs.tar.gz
Merge branch 'develop' into bugfix/generator/issue_1905_rpc_param_names_for_structsbugfix/generator/issue_1905_rpc_param_names_for_structs
-rw-r--r--.github/CONTRIBUTING.md12
-rw-r--r--.github/workflows/test.yml2
-rw-r--r--Example Apps/Example ObjC/VehicleDataManager.m5
-rw-r--r--Example Apps/Example Swift/VehicleDataManager.swift2
-rw-r--r--SmartDeviceLink-iOS.xcodeproj/project.pbxproj310
-rw-r--r--SmartDeviceLink/private/SDLRPCParameterNames.h11
-rw-r--r--SmartDeviceLink/private/SDLRPCParameterNames.m11
-rw-r--r--SmartDeviceLink/private/SDLStreamingVideoLifecycleManager.m21
-rw-r--r--SmartDeviceLink/private/SDLTextField+ScreenManagerExtensions.m2
-rw-r--r--SmartDeviceLink/public/SDLClimateData.h70
-rw-r--r--SmartDeviceLink/public/SDLClimateData.m78
-rw-r--r--SmartDeviceLink/public/SDLGetVehicleData.h63
-rw-r--r--SmartDeviceLink/public/SDLGetVehicleData.m35
-rw-r--r--SmartDeviceLink/public/SDLGetVehicleDataResponse.h66
-rw-r--r--SmartDeviceLink/public/SDLGetVehicleDataResponse.m35
-rw-r--r--SmartDeviceLink/public/SDLOnVehicleData.h65
-rw-r--r--SmartDeviceLink/public/SDLOnVehicleData.m34
-rw-r--r--SmartDeviceLink/public/SDLSeatOccupancy.h65
-rw-r--r--SmartDeviceLink/public/SDLSeatOccupancy.m70
-rw-r--r--SmartDeviceLink/public/SDLSeatStatus.h59
-rw-r--r--SmartDeviceLink/public/SDLSeatStatus.m72
-rw-r--r--SmartDeviceLink/public/SDLSeekIndicatorType.h41
-rw-r--r--SmartDeviceLink/public/SDLSeekIndicatorType.m36
-rw-r--r--SmartDeviceLink/public/SDLSeekStreamingIndicator.h74
-rw-r--r--SmartDeviceLink/public/SDLSeekStreamingIndicator.m82
-rw-r--r--SmartDeviceLink/public/SDLSetMediaClockTimer.h51
-rw-r--r--SmartDeviceLink/public/SDLSetMediaClockTimer.m60
-rw-r--r--SmartDeviceLink/public/SDLSubscribeVehicleData.h63
-rw-r--r--SmartDeviceLink/public/SDLSubscribeVehicleData.m36
-rw-r--r--SmartDeviceLink/public/SDLSubscribeVehicleDataResponse.h62
-rw-r--r--SmartDeviceLink/public/SDLSubscribeVehicleDataResponse.m33
-rw-r--r--SmartDeviceLink/public/SDLTextFieldName.h14
-rw-r--r--SmartDeviceLink/public/SDLTextFieldName.m2
-rw-r--r--SmartDeviceLink/public/SDLUnsubscribeVehicleData.h63
-rw-r--r--SmartDeviceLink/public/SDLUnsubscribeVehicleData.m37
-rw-r--r--SmartDeviceLink/public/SDLUnsubscribeVehicleDataResponse.h61
-rw-r--r--SmartDeviceLink/public/SDLUnsubscribeVehicleDataResponse.m32
-rw-r--r--SmartDeviceLink/public/SDLVehicleDataType.h16
-rw-r--r--SmartDeviceLink/public/SDLVehicleDataType.m2
-rw-r--r--SmartDeviceLink/public/SDLVideoStreamingCapability.h28
-rw-r--r--SmartDeviceLink/public/SDLVideoStreamingCapability.m28
-rw-r--r--SmartDeviceLink/public/SmartDeviceLink.h5
-rw-r--r--SmartDeviceLinkTests/DevAPISpecs/SDLLifecycleSystemRequestHandlerSpec.m11
-rw-r--r--SmartDeviceLinkTests/DevAPISpecs/SDLStreamingVideoLifecycleManagerSpec.m2
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSeekIndicatorTypeSpec.m23
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTextFieldNameSpec.m2
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVehicleDataTypeSpec.m5
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnVehicleDataSpec.m84
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetVehicleDataSpec.m183
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetMediaClockTimerSpec.m65
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSubscribeVehicleDataSpec.m122
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUnsubscribeVehicleDataSpec.m78
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetVehicleDataResponseSpec.m70
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSeatOccupancySpec.m64
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSeatStatusSpec.m66
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSubscribeVehicleDataResponseSpec.m70
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLUnsubscribeVehicleDataResponseSpec.m71
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClimateDataSpec.m73
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSeekStreamingIndicatorSpec.m79
-rwxr-xr-xSmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSystemCapabilitySpec.m4
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVideoStreamingCapabilitySpec.m23
-rw-r--r--SmartDeviceLinkTests/SDLSystemCapabilityManagerSpec.m2
-rwxr-xr-x[-rw-r--r--]carthage-build.sh0
m---------generator/rpc_spec0
64 files changed, 2686 insertions, 325 deletions
diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
index b5d54dff1..189e8a039 100644
--- a/.github/CONTRIBUTING.md
+++ b/.github/CONTRIBUTING.md
@@ -3,12 +3,12 @@
Third party contributions are essential for making SDL great. However, we do have a few guidelines we need contributors to follow.
### Issues
-If writing a bug report, please make sure <a href="https://your.bugreportneedsmore.info" target="_blank">it has enough info</a>. Include all relevant information.
+If writing a bug report, please make sure [it has enough info](https://your.bugreportneedsmore.info). Include all relevant information.
If requesting a feature, understand that we appreciate the input! However, it may not immediately fit our roadmap, and it may take a while for us to get to your request.
### Gitflow
-We use <a href="http://nvie.com/posts/a-successful-git-branching-model/">Gitflow</a> as our branch management system. Please follow gitflow's guidelines while contributing to any SDL project.
+We use [Gitflow](http://nvie.com/posts/a-successful-git-branching-model/) as our branch management system. Please follow gitflow's guidelines while contributing to any SDL project.
### Pull Requests
* Please follow the repository's for all code and documentation.
@@ -18,11 +18,11 @@ We use <a href="http://nvie.com/posts/a-successful-git-branching-model/">Gitflow
* All commits should separated into logical units, i.e. unrelated changes should be in different commits within a pull request.
* Work in progress pull requests should have "[WIP]" in front of the Pull Request title. When you believe the pull request is ready to merge, remove this tag and @mention the appropriate SDL team to schedule a review.
* All new code *must* include unit tests. Bug fixes should have a test that fails previously and now passes. All new features should be covered. If your code does not have tests, or regresses old tests, it will be rejected.
-* A great example of a <a href="https://github.com/smartdevicelink/SmartDeviceLink-iOS/pull/45" target="_blank">pull request can be found here</a>.
+* Make sure you fill out all sections of the PR template. A great example of a [pull request can be found here](https://github.com/smartdevicelink/sdl_ios/pull/1688).
### Contributor's License Agreement (CLA)
-In order to accept Pull Requests from contributors, you must first sign [the Contributor's License Agreement](https://docs.google.com/forms/d/1VNR8EUd5b46cQ7uNbCq1fJmnu0askNpUp5dudLKRGpU/viewform). If you need to make a change to information that you entered, [please contact us](mailto:justin@livio.io).
+In order to accept Pull Requests from contributors, you must first sign [the Contributor's License Agreement](https://docs.google.com/forms/d/1VNR8EUd5b46cQ7uNbCq1fJmnu0askNpUp5dudLKRGpU/viewform). If you need to make a change to information that you entered, [please contact us](mailto:admin@smartdevicelink.com).
### Repository Specific Guidelines
- * <a href="https://github.com/smartdevicelink/sdl_ios/wiki/Objective-C-Style-Guide" target="blank">iOS Style Guide</a>
- * Please document all code written using [Objective-C style documentation](http://nshipster.com/documentation/) for methods (we use [VVDocumenter](https://github.com/onevcat/VVDocumenter-Xcode) for methods and use inline code comments where it makes sense, i.e. for non-obvious code chunks.
+ * [iOS Style Guide](https://github.com/smartdevicelink/sdl_ios/wiki/Objective-C-Style-Guide)
+ * Please document all public and internally public APIs using Xcode's standard documentation (have the cursor on the API declaration and press `cmd+alt+/`).
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 5ad63eea0..f675f0b41 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -63,7 +63,7 @@ jobs:
- name: Installing dependencies
if: steps.carthage-cache.outputs.cache-hit != 'true'
- run: bash carthage-build.sh update --no-use-binaries --platform ios --cache-builds
+ run: bash carthage-build.sh bootstrap --no-use-binaries --platform ios --cache-builds
# Split build into build-only and test-only as it is faster than building and running in one step
- name: Building unit tests
diff --git a/Example Apps/Example ObjC/VehicleDataManager.m b/Example Apps/Example ObjC/VehicleDataManager.m
index f6192777a..26384a902 100644
--- a/Example Apps/Example ObjC/VehicleDataManager.m
+++ b/Example Apps/Example ObjC/VehicleDataManager.m
@@ -144,7 +144,7 @@ NS_ASSUME_NONNULL_BEGIN
SDLLogD(@"App has permission to access vehicle data. Requesting vehicle data...");
- SDLGetVehicleData *getAllVehicleData = [[SDLGetVehicleData alloc] initWithGps:@YES speed:@YES rpm:@YES instantFuelConsumption:@YES fuelRange:@YES externalTemperature:@YES turnSignal:@YES vin:@YES gearStatus:@YES tirePressure:@YES odometer:@YES beltStatus:@YES bodyInformation:@YES deviceStatus:@YES driverBraking:@YES wiperStatus:@YES headLampStatus:@YES engineTorque:@YES accPedalPosition:@YES steeringWheelAngle:@YES engineOilLife:@YES electronicParkBrakeStatus:@YES cloudAppVehicleID:@YES stabilityControlsStatus:@YES eCallInfo:@YES airbagStatus:@YES emergencyEvent:@YES clusterModeStatus:@YES myKey:@YES handsOffSteering:@YES windowStatus:@YES];
+ SDLGetVehicleData *getAllVehicleData = [[SDLGetVehicleData alloc] initWithGps:@YES speed:@YES rpm:@YES instantFuelConsumption:@YES fuelRange:@YES climateData:@YES turnSignal:@YES vin:@YES gearStatus:@YES tirePressure:@YES odometer:@YES beltStatus:@YES bodyInformation:@YES deviceStatus:@YES driverBraking:@YES wiperStatus:@YES headLampStatus:@YES engineTorque:@YES accPedalPosition:@YES steeringWheelAngle:@YES engineOilLife:@YES electronicParkBrakeStatus:@YES cloudAppVehicleID:@YES stabilityControlsStatus:@YES eCallInfo:@YES airbagStatus:@YES emergencyEvent:@YES clusterModeStatus:@YES myKey:@YES windowStatus:@YES handsOffSteering:@YES seatOccupancy:@YES];
[manager sendRequest:getAllVehicleData withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) {
if (error || ![response isKindOfClass:SDLGetVehicleDataResponse.class]) {
@@ -214,7 +214,10 @@ NS_ASSUME_NONNULL_BEGIN
} else if ([vehicleDataType isEqualToString:ACEngineTorqueMenuName]) {
vehicleDataDescription = vehicleData.engineTorque.description;
} else if ([vehicleDataType isEqualToString:ACExternalTemperatureMenuName]) {
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
vehicleDataDescription = vehicleData.externalTemperature.description;
+#pragma clang diagnostic pop
} else if ([vehicleDataType isEqualToString:ACFuelLevelMenuName]) {
vehicleDataDescription = vehicleData.fuelRange.firstObject.level.description;
} else if ([vehicleDataType isEqualToString:ACFuelLevelStateMenuName]) {
diff --git a/Example Apps/Example Swift/VehicleDataManager.swift b/Example Apps/Example Swift/VehicleDataManager.swift
index 87176a883..b9647ceb2 100644
--- a/Example Apps/Example Swift/VehicleDataManager.swift
+++ b/Example Apps/Example Swift/VehicleDataManager.swift
@@ -111,7 +111,7 @@ extension VehicleDataManager {
guard hasPermissionToAccessVehicleData(with: manager) else { return }
SDLLog.d("App has permission to access vehicle data. Requesting all vehicle data...")
- let getAllVehicleData = SDLGetVehicleData(gps: NSNumber(true), speed: NSNumber(true), rpm: NSNumber(true), instantFuelConsumption: NSNumber(true), fuelRange: NSNumber(true), externalTemperature: NSNumber(true), turnSignal: NSNumber(true), vin: NSNumber(true), gearStatus: NSNumber(true), tirePressure: NSNumber(true), odometer: NSNumber(true), beltStatus: NSNumber(true), bodyInformation: NSNumber(true), deviceStatus: NSNumber(true), driverBraking: NSNumber(true), wiperStatus: NSNumber(true), headLampStatus: NSNumber(true), engineTorque: NSNumber(true), accPedalPosition: NSNumber(true), steeringWheelAngle: NSNumber(true), engineOilLife: NSNumber(true), electronicParkBrakeStatus: NSNumber(true), cloudAppVehicleID: NSNumber(true), stabilityControlsStatus: NSNumber(true), eCallInfo: NSNumber(true), airbagStatus: NSNumber(true), emergencyEvent: NSNumber(true), clusterModeStatus: NSNumber(true), myKey: NSNumber(true), handsOffSteering: NSNumber(true), windowStatus: NSNumber(true))
+ let getAllVehicleData = SDLGetVehicleData(gps:NSNumber(true), speed:NSNumber(true), rpm:NSNumber(true), instantFuelConsumption:NSNumber(true), fuelRange:NSNumber(true), climateData:NSNumber(true), turnSignal:NSNumber(true), vin:NSNumber(true), gearStatus:NSNumber(true), tirePressure:NSNumber(true), odometer:NSNumber(true), beltStatus:NSNumber(true), bodyInformation:NSNumber(true), deviceStatus:NSNumber(true), driverBraking:NSNumber(true), wiperStatus:NSNumber(true), headLampStatus:NSNumber(true), engineTorque:NSNumber(true), accPedalPosition:NSNumber(true), steeringWheelAngle:NSNumber(true), engineOilLife:NSNumber(true), electronicParkBrakeStatus:NSNumber(true), cloudAppVehicleID:NSNumber(true), stabilityControlsStatus:NSNumber(true), eCallInfo:NSNumber(true), airbagStatus:NSNumber(true), emergencyEvent:NSNumber(true), clusterModeStatus:NSNumber(true), myKey:NSNumber(true), windowStatus:NSNumber(true), handsOffSteering:NSNumber(true), seatOccupancy:NSNumber(true))
manager.send(request: getAllVehicleData) { (request, response, error) in
guard didAccessVehicleDataSuccessfully(with: manager, response: response, error: error) else { return }
diff --git a/SmartDeviceLink-iOS.xcodeproj/project.pbxproj b/SmartDeviceLink-iOS.xcodeproj/project.pbxproj
index 12ee30fe0..04d451b0e 100644
--- a/SmartDeviceLink-iOS.xcodeproj/project.pbxproj
+++ b/SmartDeviceLink-iOS.xcodeproj/project.pbxproj
@@ -294,7 +294,7 @@
4A402561250134CB0080E159 /* SDLStabilityControlsStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A40255F250134CA0080E159 /* SDLStabilityControlsStatus.h */; settings = {ATTRIBUTES = (Public, ); }; };
4A404C66250BBE11003AB65D /* SDLTextAndGraphicUpdateOperationSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A404C65250BBE11003AB65D /* SDLTextAndGraphicUpdateOperationSpec.m */; };
4A404C68250BBE2B003AB65D /* SDLTextAndGraphicStateSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A404C67250BBE2B003AB65D /* SDLTextAndGraphicStateSpec.m */; };
- 4A41430D255F0A090039C267 /* TestConnectionRequestObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A41430C255F0A090039C267 /* TestConnectionRequestObject.m */; };
+ 4A41430D255F0A090039C267 /* TestConnectionRequestObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A41430C255F0A090039C267 /* TestConnectionRequestObject.m */; };
4A457DC324A2933E00386CBA /* SDLLifecycleRPCAdapterSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A457DC224A2933E00386CBA /* SDLLifecycleRPCAdapterSpec.m */; };
4A457DD324A3886700386CBA /* SDLLifecycleSyncPDataHandlerSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A457DD224A3886700386CBA /* SDLLifecycleSyncPDataHandlerSpec.m */; };
4A457DD524A3C16E00386CBA /* SDLLifecycleMobileHMIStateHandlerSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A457DD424A3C16E00386CBA /* SDLLifecycleMobileHMIStateHandlerSpec.m */; };
@@ -1384,9 +1384,9 @@
4ABB2BA724F850AE0061BF55 /* SDLImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 4ABB2B9924F850AD0061BF55 /* SDLImage.h */; settings = {ATTRIBUTES = (Public, ); }; };
4ABB2BA824F850AE0061BF55 /* SDLLightState.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ABB2B9A24F850AD0061BF55 /* SDLLightState.m */; };
4ABB2BA924F850AE0061BF55 /* SDLImageResolution.h in Headers */ = {isa = PBXBuildFile; fileRef = 4ABB2B9B24F850AD0061BF55 /* SDLImageResolution.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 4ABED25B257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ABED259257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.m */; };
- 4ABED25C257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 4ABED25A257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.h */; };
- 4AD1F1742559957100637FE1 /* SDLVoiceCommandUpdateOperationSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 4AD1F1732559957100637FE1 /* SDLVoiceCommandUpdateOperationSpec.m */; };
+ 4ABED25B257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ABED259257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.m */; };
+ 4ABED25C257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 4ABED25A257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.h */; };
+ 4AD1F1742559957100637FE1 /* SDLVoiceCommandUpdateOperationSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 4AD1F1732559957100637FE1 /* SDLVoiceCommandUpdateOperationSpec.m */; };
4AE8A7022537796E000666C0 /* SmartDeviceLink.h in Headers */ = {isa = PBXBuildFile; fileRef = 4AE8A7012537796E000666C0 /* SmartDeviceLink.h */; settings = {ATTRIBUTES = (Public, ); }; };
5D0A9F911F15550400CC80DD /* SDLSystemCapabilityTypeSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D0A9F901F15550400CC80DD /* SDLSystemCapabilityTypeSpec.m */; };
5D0A9F931F15560B00CC80DD /* SDLNavigationCapabilitySpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D0A9F921F15560B00CC80DD /* SDLNavigationCapabilitySpec.m */; };
@@ -1664,22 +1664,37 @@
9FA0D00C22DF0B65009CF344 /* SDLCreateWindowResponseSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FA0D00B22DF0B65009CF344 /* SDLCreateWindowResponseSpec.m */; };
9FA0D00F22DF0B90009CF344 /* SDLDeleteWindowSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FA0D00E22DF0B90009CF344 /* SDLDeleteWindowSpec.m */; };
9FA0D01222DF0BAC009CF344 /* SDLDeleteWindowResponseSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FA0D01122DF0BAC009CF344 /* SDLDeleteWindowResponseSpec.m */; };
- B3838A01257C47FD00420C11 /* SDLDoorStatusTypeSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A00257C47FD00420C11 /* SDLDoorStatusTypeSpec.m */; };
- B3838A09257C4EB400420C11 /* SDLDoorStatusSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A08257C4EB300420C11 /* SDLDoorStatusSpec.m */; };
- B3838A0F257C4EE100420C11 /* SDLGateStatusSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A0E257C4EE100420C11 /* SDLGateStatusSpec.m */; };
- B3838A15257C4EFD00420C11 /* SDLRoofStatusSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A14257C4EFD00420C11 /* SDLRoofStatusSpec.m */; };
- B3838A20257C5BB000420C11 /* SDLRoofStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = B3838A1E257C5BAF00420C11 /* SDLRoofStatus.h */; settings = {ATTRIBUTES = (Public, ); }; };
- B3838A21257C5BB000420C11 /* SDLRoofStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A1F257C5BB000420C11 /* SDLRoofStatus.m */; };
- B3838A28257C5CE600420C11 /* SDLDoorStatusType.h in Headers */ = {isa = PBXBuildFile; fileRef = B3838A26257C5CE600420C11 /* SDLDoorStatusType.h */; settings = {ATTRIBUTES = (Public, ); }; };
- B3838A29257C5CE600420C11 /* SDLDoorStatusType.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A27257C5CE600420C11 /* SDLDoorStatusType.m */; };
- B3838A30257C5D1B00420C11 /* SDLGateStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A2E257C5D1A00420C11 /* SDLGateStatus.m */; };
- B3838A31257C5D1B00420C11 /* SDLGateStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = B3838A2F257C5D1B00420C11 /* SDLGateStatus.h */; settings = {ATTRIBUTES = (Public, ); }; };
- B3838A3A257C6AB700420C11 /* SDLDoorStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A38257C6AB600420C11 /* SDLDoorStatus.m */; };
- B3838A3B257C6AB700420C11 /* SDLDoorStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = B3838A39257C6AB600420C11 /* SDLDoorStatus.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ B360F9D0255EFEFD0027CA17 /* SDLClimateData.m in Sources */ = {isa = PBXBuildFile; fileRef = B360F9CE255EFEFD0027CA17 /* SDLClimateData.m */; };
+ B360F9D1255EFEFD0027CA17 /* SDLClimateData.h in Headers */ = {isa = PBXBuildFile; fileRef = B360F9CF255EFEFD0027CA17 /* SDLClimateData.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ B360F9DE255F52A50027CA17 /* SDLSeatStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = B360F9DC255F52A40027CA17 /* SDLSeatStatus.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ B360F9DF255F52A50027CA17 /* SDLSeatStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = B360F9DD255F52A40027CA17 /* SDLSeatStatus.m */; };
+ B360F9E4255F52BA0027CA17 /* SDLSeatOccupancy.m in Sources */ = {isa = PBXBuildFile; fileRef = B360F9E2255F52B90027CA17 /* SDLSeatOccupancy.m */; };
+ B360F9E5255F52BA0027CA17 /* SDLSeatOccupancy.h in Headers */ = {isa = PBXBuildFile; fileRef = B360F9E3255F52B90027CA17 /* SDLSeatOccupancy.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ B38389D6257C187500420C11 /* SDLSeatOccupancySpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B38389D4257C187400420C11 /* SDLSeatOccupancySpec.m */; };
+ B38389D7257C187500420C11 /* SDLSeatStatusSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B38389D5257C187500420C11 /* SDLSeatStatusSpec.m */; };
+ B3838A01257C47FD00420C11 /* SDLDoorStatusTypeSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A00257C47FD00420C11 /* SDLDoorStatusTypeSpec.m */; };
+ B3838A09257C4EB400420C11 /* SDLDoorStatusSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A08257C4EB300420C11 /* SDLDoorStatusSpec.m */; };
+ B3838A0F257C4EE100420C11 /* SDLGateStatusSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A0E257C4EE100420C11 /* SDLGateStatusSpec.m */; };
+ B3838A15257C4EFD00420C11 /* SDLRoofStatusSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A14257C4EFD00420C11 /* SDLRoofStatusSpec.m */; };
+ B3838A20257C5BB000420C11 /* SDLRoofStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = B3838A1E257C5BAF00420C11 /* SDLRoofStatus.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ B3838A21257C5BB000420C11 /* SDLRoofStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A1F257C5BB000420C11 /* SDLRoofStatus.m */; };
+ B3838A28257C5CE600420C11 /* SDLDoorStatusType.h in Headers */ = {isa = PBXBuildFile; fileRef = B3838A26257C5CE600420C11 /* SDLDoorStatusType.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ B3838A29257C5CE600420C11 /* SDLDoorStatusType.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A27257C5CE600420C11 /* SDLDoorStatusType.m */; };
+ B3838A30257C5D1B00420C11 /* SDLGateStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A2E257C5D1A00420C11 /* SDLGateStatus.m */; };
+ B3838A31257C5D1B00420C11 /* SDLGateStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = B3838A2F257C5D1B00420C11 /* SDLGateStatus.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ B3838A3A257C6AB700420C11 /* SDLDoorStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A38257C6AB600420C11 /* SDLDoorStatus.m */; };
+ B3838A3B257C6AB700420C11 /* SDLDoorStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = B3838A39257C6AB600420C11 /* SDLDoorStatus.h */; settings = {ATTRIBUTES = (Public, ); }; };
B38D8E7E24A118BD00B977D0 /* SDLGearStatusSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B38D8E7D24A118BD00B977D0 /* SDLGearStatusSpec.m */; };
B38D8E8024A1E3D000B977D0 /* SDLTransmissionTypeSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B38D8E7F24A1E3D000B977D0 /* SDLTransmissionTypeSpec.m */; };
B38D8E8224A1F53500B977D0 /* SDLCapacityUnitSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B38D8E8124A1F53500B977D0 /* SDLCapacityUnitSpec.m */; };
+ B3EC9E6E2579AA010039F3AA /* SDLClimateDataSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B3EC9E6D2579AA010039F3AA /* SDLClimateDataSpec.m */; };
B3F7918324E062C200DB5CAF /* SDLGetVehicleDataSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 162E824C1A9BDE8A00906325 /* SDLGetVehicleDataSpec.m */; };
+ C975877F257AEFDB0066F271 /* SDLSeekIndicatorTypeSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = C975877E257AEFDB0066F271 /* SDLSeekIndicatorTypeSpec.m */; };
+ C9758785257F4C570066F271 /* SDLSeekStreamingIndicatorSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = C9758784257F4C570066F271 /* SDLSeekStreamingIndicatorSpec.m */; };
+ C9DFFE78257ACE0000F7D57A /* SDLSeekStreamingIndicator.h in Headers */ = {isa = PBXBuildFile; fileRef = C9DFFE76257ACE0000F7D57A /* SDLSeekStreamingIndicator.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ C9DFFE79257ACE0000F7D57A /* SDLSeekStreamingIndicator.m in Sources */ = {isa = PBXBuildFile; fileRef = C9DFFE77257ACE0000F7D57A /* SDLSeekStreamingIndicator.m */; };
+ C9DFFE7E257AD07E00F7D57A /* SDLSeekIndicatorType.h in Headers */ = {isa = PBXBuildFile; fileRef = C9DFFE7C257AD07E00F7D57A /* SDLSeekIndicatorType.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ C9DFFE7F257AD07E00F7D57A /* SDLSeekIndicatorType.m in Sources */ = {isa = PBXBuildFile; fileRef = C9DFFE7D257AD07E00F7D57A /* SDLSeekIndicatorType.m */; };
DA4353DF1D271FD10099B8C4 /* CGPointUtilSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = DA4353DE1D271FD10099B8C4 /* CGPointUtilSpec.m */; };
DA4353E31D2720A30099B8C4 /* SDLPinchGestureSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = DA4353E21D2720A30099B8C4 /* SDLPinchGestureSpec.m */; };
DA4353EA1D2721680099B8C4 /* SDLTouchManagerSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = DA4353E71D2721680099B8C4 /* SDLTouchManagerSpec.m */; };
@@ -2083,8 +2098,8 @@
4A40255F250134CA0080E159 /* SDLStabilityControlsStatus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLStabilityControlsStatus.h; path = public/SDLStabilityControlsStatus.h; sourceTree = "<group>"; };
4A404C65250BBE11003AB65D /* SDLTextAndGraphicUpdateOperationSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLTextAndGraphicUpdateOperationSpec.m; path = DevAPISpecs/SDLTextAndGraphicUpdateOperationSpec.m; sourceTree = "<group>"; };
4A404C67250BBE2B003AB65D /* SDLTextAndGraphicStateSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = SDLTextAndGraphicStateSpec.m; path = DevAPISpecs/SDLTextAndGraphicStateSpec.m; sourceTree = "<group>"; };
- 4A41430B255F0A090039C267 /* TestConnectionRequestObject.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TestConnectionRequestObject.h; sourceTree = "<group>"; };
- 4A41430C255F0A090039C267 /* TestConnectionRequestObject.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TestConnectionRequestObject.m; sourceTree = "<group>"; };
+ 4A41430B255F0A090039C267 /* TestConnectionRequestObject.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TestConnectionRequestObject.h; sourceTree = "<group>"; };
+ 4A41430C255F0A090039C267 /* TestConnectionRequestObject.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TestConnectionRequestObject.m; sourceTree = "<group>"; };
4A457DC224A2933E00386CBA /* SDLLifecycleRPCAdapterSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleRPCAdapterSpec.m; path = DevAPISpecs/SDLLifecycleRPCAdapterSpec.m; sourceTree = "<group>"; };
4A457DD224A3886700386CBA /* SDLLifecycleSyncPDataHandlerSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleSyncPDataHandlerSpec.m; path = DevAPISpecs/SDLLifecycleSyncPDataHandlerSpec.m; sourceTree = "<group>"; };
4A457DD424A3C16E00386CBA /* SDLLifecycleMobileHMIStateHandlerSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleMobileHMIStateHandlerSpec.m; path = DevAPISpecs/SDLLifecycleMobileHMIStateHandlerSpec.m; sourceTree = "<group>"; };
@@ -3180,9 +3195,9 @@
4ABB2B9924F850AD0061BF55 /* SDLImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLImage.h; path = public/SDLImage.h; sourceTree = "<group>"; };
4ABB2B9A24F850AD0061BF55 /* SDLLightState.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLLightState.m; path = public/SDLLightState.m; sourceTree = "<group>"; };
4ABB2B9B24F850AD0061BF55 /* SDLImageResolution.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLImageResolution.h; path = public/SDLImageResolution.h; sourceTree = "<group>"; };
- 4ABED259257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLVoiceCommandUpdateOperation.m; path = private/SDLVoiceCommandUpdateOperation.m; sourceTree = "<group>"; };
- 4ABED25A257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLVoiceCommandUpdateOperation.h; path = private/SDLVoiceCommandUpdateOperation.h; sourceTree = "<group>"; };
- 4AD1F1732559957100637FE1 /* SDLVoiceCommandUpdateOperationSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = SDLVoiceCommandUpdateOperationSpec.m; path = DevAPISpecs/SDLVoiceCommandUpdateOperationSpec.m; sourceTree = "<group>"; };
+ 4ABED259257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLVoiceCommandUpdateOperation.m; path = private/SDLVoiceCommandUpdateOperation.m; sourceTree = "<group>"; };
+ 4ABED25A257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLVoiceCommandUpdateOperation.h; path = private/SDLVoiceCommandUpdateOperation.h; sourceTree = "<group>"; };
+ 4AD1F1732559957100637FE1 /* SDLVoiceCommandUpdateOperationSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = SDLVoiceCommandUpdateOperationSpec.m; path = DevAPISpecs/SDLVoiceCommandUpdateOperationSpec.m; sourceTree = "<group>"; };
4AE8A7012537796E000666C0 /* SmartDeviceLink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SmartDeviceLink.h; path = public/SmartDeviceLink.h; sourceTree = "<group>"; };
4AE8A707253779F9000666C0 /* EAAccessory+OCMock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "EAAccessory+OCMock.h"; sourceTree = "<group>"; };
5D0A9F901F15550400CC80DD /* SDLSystemCapabilityTypeSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSystemCapabilityTypeSpec.m; sourceTree = "<group>"; };
@@ -3501,22 +3516,37 @@
9FA0D00B22DF0B65009CF344 /* SDLCreateWindowResponseSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLCreateWindowResponseSpec.m; sourceTree = "<group>"; };
9FA0D00E22DF0B90009CF344 /* SDLDeleteWindowSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLDeleteWindowSpec.m; sourceTree = "<group>"; };
9FA0D01122DF0BAC009CF344 /* SDLDeleteWindowResponseSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLDeleteWindowResponseSpec.m; sourceTree = "<group>"; };
- B3838A00257C47FD00420C11 /* SDLDoorStatusTypeSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLDoorStatusTypeSpec.m; sourceTree = "<group>"; };
- B3838A08257C4EB300420C11 /* SDLDoorStatusSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLDoorStatusSpec.m; path = SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDoorStatusSpec.m; sourceTree = SOURCE_ROOT; };
- B3838A0E257C4EE100420C11 /* SDLGateStatusSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLGateStatusSpec.m; path = SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLGateStatusSpec.m; sourceTree = SOURCE_ROOT; };
- B3838A14257C4EFD00420C11 /* SDLRoofStatusSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLRoofStatusSpec.m; path = SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRoofStatusSpec.m; sourceTree = SOURCE_ROOT; };
- B3838A1E257C5BAF00420C11 /* SDLRoofStatus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLRoofStatus.h; path = public/SDLRoofStatus.h; sourceTree = "<group>"; };
- B3838A1F257C5BB000420C11 /* SDLRoofStatus.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLRoofStatus.m; path = public/SDLRoofStatus.m; sourceTree = "<group>"; };
- B3838A26257C5CE600420C11 /* SDLDoorStatusType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLDoorStatusType.h; path = public/SDLDoorStatusType.h; sourceTree = "<group>"; };
- B3838A27257C5CE600420C11 /* SDLDoorStatusType.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLDoorStatusType.m; path = public/SDLDoorStatusType.m; sourceTree = "<group>"; };
- B3838A2E257C5D1A00420C11 /* SDLGateStatus.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLGateStatus.m; path = public/SDLGateStatus.m; sourceTree = "<group>"; };
- B3838A2F257C5D1B00420C11 /* SDLGateStatus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLGateStatus.h; path = public/SDLGateStatus.h; sourceTree = "<group>"; };
- B3838A38257C6AB600420C11 /* SDLDoorStatus.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLDoorStatus.m; path = public/SDLDoorStatus.m; sourceTree = "<group>"; };
- B3838A39257C6AB600420C11 /* SDLDoorStatus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLDoorStatus.h; path = public/SDLDoorStatus.h; sourceTree = "<group>"; };
+ B360F9CE255EFEFD0027CA17 /* SDLClimateData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLClimateData.m; path = public/SDLClimateData.m; sourceTree = "<group>"; };
+ B360F9CF255EFEFD0027CA17 /* SDLClimateData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLClimateData.h; path = public/SDLClimateData.h; sourceTree = "<group>"; };
+ B360F9DC255F52A40027CA17 /* SDLSeatStatus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLSeatStatus.h; path = public/SDLSeatStatus.h; sourceTree = "<group>"; };
+ B360F9DD255F52A40027CA17 /* SDLSeatStatus.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLSeatStatus.m; path = public/SDLSeatStatus.m; sourceTree = "<group>"; };
+ B360F9E2255F52B90027CA17 /* SDLSeatOccupancy.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLSeatOccupancy.m; path = public/SDLSeatOccupancy.m; sourceTree = "<group>"; };
+ B360F9E3255F52B90027CA17 /* SDLSeatOccupancy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLSeatOccupancy.h; path = public/SDLSeatOccupancy.h; sourceTree = "<group>"; };
+ B38389D4257C187400420C11 /* SDLSeatOccupancySpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLSeatOccupancySpec.m; path = SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSeatOccupancySpec.m; sourceTree = SOURCE_ROOT; };
+ B38389D5257C187500420C11 /* SDLSeatStatusSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLSeatStatusSpec.m; path = SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSeatStatusSpec.m; sourceTree = SOURCE_ROOT; };
+ B3838A00257C47FD00420C11 /* SDLDoorStatusTypeSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLDoorStatusTypeSpec.m; sourceTree = "<group>"; };
+ B3838A08257C4EB300420C11 /* SDLDoorStatusSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLDoorStatusSpec.m; path = SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDoorStatusSpec.m; sourceTree = SOURCE_ROOT; };
+ B3838A0E257C4EE100420C11 /* SDLGateStatusSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLGateStatusSpec.m; path = SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLGateStatusSpec.m; sourceTree = SOURCE_ROOT; };
+ B3838A14257C4EFD00420C11 /* SDLRoofStatusSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLRoofStatusSpec.m; path = SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRoofStatusSpec.m; sourceTree = SOURCE_ROOT; };
+ B3838A1E257C5BAF00420C11 /* SDLRoofStatus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLRoofStatus.h; path = public/SDLRoofStatus.h; sourceTree = "<group>"; };
+ B3838A1F257C5BB000420C11 /* SDLRoofStatus.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLRoofStatus.m; path = public/SDLRoofStatus.m; sourceTree = "<group>"; };
+ B3838A26257C5CE600420C11 /* SDLDoorStatusType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLDoorStatusType.h; path = public/SDLDoorStatusType.h; sourceTree = "<group>"; };
+ B3838A27257C5CE600420C11 /* SDLDoorStatusType.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLDoorStatusType.m; path = public/SDLDoorStatusType.m; sourceTree = "<group>"; };
+ B3838A2E257C5D1A00420C11 /* SDLGateStatus.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLGateStatus.m; path = public/SDLGateStatus.m; sourceTree = "<group>"; };
+ B3838A2F257C5D1B00420C11 /* SDLGateStatus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLGateStatus.h; path = public/SDLGateStatus.h; sourceTree = "<group>"; };
+ B3838A38257C6AB600420C11 /* SDLDoorStatus.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLDoorStatus.m; path = public/SDLDoorStatus.m; sourceTree = "<group>"; };
+ B3838A39257C6AB600420C11 /* SDLDoorStatus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLDoorStatus.h; path = public/SDLDoorStatus.h; sourceTree = "<group>"; };
B38D8E7D24A118BD00B977D0 /* SDLGearStatusSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLGearStatusSpec.m; sourceTree = "<group>"; };
B38D8E7F24A1E3D000B977D0 /* SDLTransmissionTypeSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLTransmissionTypeSpec.m; sourceTree = "<group>"; };
B38D8E8124A1F53500B977D0 /* SDLCapacityUnitSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLCapacityUnitSpec.m; sourceTree = "<group>"; };
+ B3EC9E6D2579AA010039F3AA /* SDLClimateDataSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLClimateDataSpec.m; sourceTree = "<group>"; };
BB3C600D221AEF37007DD4CA /* NSMutableDictionary+StoreSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "NSMutableDictionary+StoreSpec.m"; path = "DevAPISpecs/NSMutableDictionary+StoreSpec.m"; sourceTree = "<group>"; };
+ C975877E257AEFDB0066F271 /* SDLSeekIndicatorTypeSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLSeekIndicatorTypeSpec.m; sourceTree = "<group>"; };
+ C9758784257F4C570066F271 /* SDLSeekStreamingIndicatorSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLSeekStreamingIndicatorSpec.m; sourceTree = "<group>"; };
+ C9DFFE76257ACE0000F7D57A /* SDLSeekStreamingIndicator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = SDLSeekStreamingIndicator.h; path = public/SDLSeekStreamingIndicator.h; sourceTree = "<group>"; };
+ C9DFFE77257ACE0000F7D57A /* SDLSeekStreamingIndicator.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = SDLSeekStreamingIndicator.m; path = public/SDLSeekStreamingIndicator.m; sourceTree = "<group>"; };
+ C9DFFE7C257AD07E00F7D57A /* SDLSeekIndicatorType.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = SDLSeekIndicatorType.h; path = public/SDLSeekIndicatorType.h; sourceTree = "<group>"; };
+ C9DFFE7D257AD07E00F7D57A /* SDLSeekIndicatorType.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = SDLSeekIndicatorType.m; path = public/SDLSeekIndicatorType.m; sourceTree = "<group>"; };
DA4353DE1D271FD10099B8C4 /* CGPointUtilSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CGPointUtilSpec.m; path = UtilitiesSpecs/Touches/CGPointUtilSpec.m; sourceTree = "<group>"; };
DA4353E21D2720A30099B8C4 /* SDLPinchGestureSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLPinchGestureSpec.m; path = UtilitiesSpecs/Touches/SDLPinchGestureSpec.m; sourceTree = "<group>"; };
DA4353E71D2721680099B8C4 /* SDLTouchManagerSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLTouchManagerSpec.m; path = UtilitiesSpecs/Touches/SDLTouchManagerSpec.m; sourceTree = "<group>"; };
@@ -3707,7 +3737,7 @@
162E81F11A9BDE8A00906325 /* SDLDisplayTypeSpec.m */,
1EAA475D2035B177000FE74B /* SDLDisplayModeSpec.m */,
1EAA47612035B1AE000FE74B /* SDLDistanceUnitSpec.m */,
- B3838A00257C47FD00420C11 /* SDLDoorStatusTypeSpec.m */,
+ B3838A00257C47FD00420C11 /* SDLDoorStatusTypeSpec.m */,
162E81F21A9BDE8A00906325 /* SDLDriverDistractionStateSpec.m */,
162E81F31A9BDE8A00906325 /* SDLECallConfirmationStatusSpec.m */,
5DD8406420FCE21A0082CE04 /* SDLElectronicParkBrakeStatusSpec.m */,
@@ -3755,6 +3785,7 @@
162E820F1A9BDE8A00906325 /* SDLResultSpec.m */,
162E82111A9BDE8A00906325 /* SDLSamplingRateSpec.m */,
8831FA3C220207DA00B8FFB7 /* SDLServiceUpdateReasonSpec.m */,
+ C975877E257AEFDB0066F271 /* SDLSeekIndicatorTypeSpec.m */,
162E82121A9BDE8A00906325 /* SDLSoftButtonTypeSpec.m */,
162E82131A9BDE8A00906325 /* SDLSpeechCapabilitiesSpec.m */,
1EB59CCF202DC9F200343A61 /* SDLSupportedSeatSpec.m */,
@@ -3993,6 +4024,7 @@
162E82941A9BDE8A00906325 /* SDLChoiceSpec.m */,
1EE8C43F1F348D3200FDC2CF /* SDLClimateControlCapabilitiesSpec.m */,
1EE8C4431F34A1B900FDC2CF /* SDLClimateControlDataSpec.m */,
+ B3EC9E6D2579AA010039F3AA /* SDLClimateDataSpec.m */,
885468372225CBA400994D8D /* SDLCloudAppPropertiesSpec.m */,
162E82951A9BDE8A00906325 /* SDLClusterModeStatusSpec.m */,
DA9F7EB31DCC086400ACAE48 /* SDLDateTimeSpec.m */,
@@ -4001,13 +4033,13 @@
162E82981A9BDE8A00906325 /* SDLDIDResult.m */,
9FA0D00522DF06D3009CF344 /* SDLDisplayCapabilitySpec.m */,
162E82991A9BDE8A00906325 /* SDLDisplayCapabilitiesSpec.m */,
- B3838A08257C4EB300420C11 /* SDLDoorStatusSpec.m */,
+ B3838A08257C4EB300420C11 /* SDLDoorStatusSpec.m */,
4A1B036E24CF484E008C6B13 /* SDLDriverDistractionCapabilitySpec.m */,
162E829A1A9BDE8A00906325 /* SDLECallInfoSpec.m */,
162E829B1A9BDE8A00906325 /* SDLEmergencyEventSpec.m */,
88B3BFA120DA911E00943565 /* SDLFuelRangeSpec.m */,
1EAA47752036B847000FE74B /* SDLEqualizerSettingsSpec.m */,
- B3838A0E257C4EE100420C11 /* SDLGateStatusSpec.m */,
+ B3838A0E257C4EE100420C11 /* SDLGateStatusSpec.m */,
B38D8E7D24A118BD00B977D0 /* SDLGearStatusSpec.m */,
162E829C1A9BDE8A00906325 /* SDLGPSDataSpec.m */,
88EED83A1F33BECB00E6C42E /* SDLHapticRectSpec.m */,
@@ -4049,11 +4081,16 @@
1EE8C44F1F38629200FDC2CF /* SDLRemoteControlCapabilitiesSpec.m */,
5DADA7771F4E059E0084D17D /* SDLRectangleSpec.m */,
5D92934F20AF526200FCC775 /* SDLRGBColorSpec.m */,
- B3838A14257C4EFD00420C11 /* SDLRoofStatusSpec.m */,
+ B3838A14257C4EFD00420C11 /* SDLRoofStatusSpec.m */,
162E82A71A9BDE8A00906325 /* SDLScreenParamsSpec.m */,
+ B38389D4257C187400420C11 /* SDLSeatOccupancySpec.m */,
+ B38389D5257C187500420C11 /* SDLSeatStatusSpec.m */,
1E89B0E1203196B800A47992 /* SDLSeatControlCapabilitiesSpec.m */,
1E89B0DD2031636000A47992 /* SDLSeatControlDataSpec.m */,
+ 000DD56B22EEF8E4005AB7A7 /* SDLSeatLocationCapabilitySpec.m */,
+ 000DD56D22EF01FC005AB7A7 /* SDLSeatLocationSpec.m */,
1EB59CD9202DCEEC00343A61 /* SDLSeatMemoryActionSpec.m */,
+ C9758784257F4C570066F271 /* SDLSeekStreamingIndicatorSpec.m */,
162E82A81A9BDE8A00906325 /* SDLSingleTireStatusSpec.m */,
1EAA47792036BD46000FE74B /* SDLSISDataSpec.m */,
162E82A91A9BDE8A00906325 /* SDLSoftButtonCapabilitiesSpec.m */,
@@ -4080,8 +4117,8 @@
8855F9DF220C93B700A5C897 /* SDLWeatherDataSpec.m */,
880D2679220DDD1000B3F496 /* SDLWeatherServiceDataSpec.m */,
880D267F220E038800B3F496 /* SDLWeatherServiceManifestSpec.m */,
- 000DD56B22EEF8E4005AB7A7 /* SDLSeatLocationCapabilitySpec.m */,
- 000DD56D22EF01FC005AB7A7 /* SDLSeatLocationSpec.m */,
+ 000DD56B22EEF8E4005AB7A7 /* SDLSeatLocationCapabilitySpec.m */,
+ 000DD56D22EF01FC005AB7A7 /* SDLSeatLocationSpec.m */,
9FA0CFFF22DF06A0009CF344 /* SDLWindowCapabilitySpec.m */,
9FA0D00222DF06B9009CF344 /* SDLWindowTypeCapabilitiesSpec.m */,
);
@@ -4147,47 +4184,47 @@
path = MessageSpecs;
sourceTree = "<group>";
};
- 4A32B3E425559D93001FFA26 /* Voice Cammands */ = {
- isa = PBXGroup;
- children = (
- 4A32B3E525559DA4001FFA26 /* Cells */,
- 4A32B3E625559DAC001FFA26 /* Operations */,
- 4ABB25A824F7E6E10061BF55 /* SDLVoiceCommandManager.h */,
- 4ABB25A724F7E6E10061BF55 /* SDLVoiceCommandManager.m */,
- );
- name = "Voice Cammands";
- sourceTree = "<group>";
- };
- 4A32B3E525559DA4001FFA26 /* Cells */ = {
- isa = PBXGroup;
- children = (
- 4ABB259124F7E6820061BF55 /* SDLVoiceCommand.h */,
- 4ABB259024F7E6820061BF55 /* SDLVoiceCommand.m */,
- );
- name = Cells;
- sourceTree = "<group>";
- };
- 4A32B3E625559DAC001FFA26 /* Operations */ = {
- isa = PBXGroup;
- children = (
- 4ABED25A257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.h */,
- 4ABED259257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.m */,
- );
- name = Operations;
- sourceTree = "<group>";
- };
- 4A32B3F325559F37001FFA26 /* Menu */ = {
- isa = PBXGroup;
- children = (
- 5D76751022D907F500E8D71A /* Configuration */,
- 755F175E229F14F70041B9CB /* Dynamic Menu Update Utilities */,
- 5D339CEC207C08AB000CC364 /* Cells */,
- 4ABB25A924F7E6E10061BF55 /* SDLMenuManager.h */,
- 4ABB25A624F7E6E10061BF55 /* SDLMenuManager.m */,
- );
- name = Menu;
- sourceTree = "<group>";
- };
+ 4A32B3E425559D93001FFA26 /* Voice Cammands */ = {
+ isa = PBXGroup;
+ children = (
+ 4A32B3E525559DA4001FFA26 /* Cells */,
+ 4A32B3E625559DAC001FFA26 /* Operations */,
+ 4ABB25A824F7E6E10061BF55 /* SDLVoiceCommandManager.h */,
+ 4ABB25A724F7E6E10061BF55 /* SDLVoiceCommandManager.m */,
+ );
+ name = "Voice Cammands";
+ sourceTree = "<group>";
+ };
+ 4A32B3E525559DA4001FFA26 /* Cells */ = {
+ isa = PBXGroup;
+ children = (
+ 4ABB259124F7E6820061BF55 /* SDLVoiceCommand.h */,
+ 4ABB259024F7E6820061BF55 /* SDLVoiceCommand.m */,
+ );
+ name = Cells;
+ sourceTree = "<group>";
+ };
+ 4A32B3E625559DAC001FFA26 /* Operations */ = {
+ isa = PBXGroup;
+ children = (
+ 4ABED25A257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.h */,
+ 4ABED259257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.m */,
+ );
+ name = Operations;
+ sourceTree = "<group>";
+ };
+ 4A32B3F325559F37001FFA26 /* Menu */ = {
+ isa = PBXGroup;
+ children = (
+ 5D76751022D907F500E8D71A /* Configuration */,
+ 755F175E229F14F70041B9CB /* Dynamic Menu Update Utilities */,
+ 5D339CEC207C08AB000CC364 /* Cells */,
+ 4ABB25A924F7E6E10061BF55 /* SDLMenuManager.h */,
+ 4ABB25A624F7E6E10061BF55 /* SDLMenuManager.m */,
+ );
+ name = Menu;
+ sourceTree = "<group>";
+ };
4A3BA4D9248E8EBB003E56B8 /* SystemRequest Handler */ = {
isa = PBXGroup;
children = (
@@ -4281,16 +4318,16 @@
name = "Status Manager";
sourceTree = "<group>";
};
- 4AD1F16A2559952D00637FE1 /* Voice Command */ = {
- isa = PBXGroup;
- children = (
- 5DF40B27208FDA9700DD6FDA /* SDLVoiceCommandManagerSpec.m */,
- 5DAB5F5220989A8300A020C8 /* SDLVoiceCommandSpec.m */,
- 4AD1F1732559957100637FE1 /* SDLVoiceCommandUpdateOperationSpec.m */,
- );
- name = "Voice Command";
- sourceTree = "<group>";
- };
+ 4AD1F16A2559952D00637FE1 /* Voice Command */ = {
+ isa = PBXGroup;
+ children = (
+ 5DF40B27208FDA9700DD6FDA /* SDLVoiceCommandManagerSpec.m */,
+ 5DAB5F5220989A8300A020C8 /* SDLVoiceCommandSpec.m */,
+ 4AD1F1732559957100637FE1 /* SDLVoiceCommandUpdateOperationSpec.m */,
+ );
+ name = "Voice Command";
+ sourceTree = "<group>";
+ };
5D0218EB1A8E795700D1BF62 /* UI */ = {
isa = PBXGroup;
children = (
@@ -4462,9 +4499,9 @@
5D339CE5207C0651000CC364 /* Menu */ = {
isa = PBXGroup;
children = (
- 4A32B3F325559F37001FFA26 /* Menu */,
- 4A32B3E425559D93001FFA26 /* Voice Cammands */,
- );
+ 4A32B3F325559F37001FFA26 /* Menu */,
+ 4A32B3E425559D93001FFA26 /* Voice Cammands */,
+ );
name = Menu;
sourceTree = "<group>";
};
@@ -4513,7 +4550,7 @@
children = (
5D4019B11A76EC350006B0C2 /* Examples */,
5D61FA1D1A84237100846EE7 /* SmartDeviceLink */,
- 5D4346621E6F38E600B639C6 /* SmartDeviceLinkSwift */,
+ 5D4346621E6F38E600B639C6 /* SmartDeviceLinkSwift */,
5D61FA2C1A84237100846EE7 /* SmartDeviceLinkTests */,
5D4019B01A76EC350006B0C2 /* Products */,
);
@@ -5032,6 +5069,8 @@
4ABB2B3524F84EF40061BF55 /* SDLClimateControlCapabilities.m */,
4ABB2B3624F84EF40061BF55 /* SDLClimateControlData.h */,
4ABB2B3124F84EF30061BF55 /* SDLClimateControlData.m */,
+ B360F9CF255EFEFD0027CA17 /* SDLClimateData.h */,
+ B360F9CE255EFEFD0027CA17 /* SDLClimateData.m */,
4ABB2B2224F84EF00061BF55 /* SDLCloudAppProperties.h */,
4ABB2B2124F84EF00061BF55 /* SDLCloudAppProperties.m */,
4ABB2B3224F84EF30061BF55 /* SDLClusterModeStatus.h */,
@@ -5048,8 +5087,8 @@
4ABB2B2524F84EF10061BF55 /* SDLDisplayCapabilities.m */,
4ABB2B3324F84EF30061BF55 /* SDLDisplayCapability.h */,
4ABB2B3824F84EF40061BF55 /* SDLDisplayCapability.m */,
- B3838A39257C6AB600420C11 /* SDLDoorStatus.h */,
- B3838A38257C6AB600420C11 /* SDLDoorStatus.m */,
+ B3838A39257C6AB600420C11 /* SDLDoorStatus.h */,
+ B3838A38257C6AB600420C11 /* SDLDoorStatus.m */,
4ABB2B3724F84EF40061BF55 /* SDLDriverDistractionCapability.h */,
4ABB2B2B24F84EF20061BF55 /* SDLDriverDistractionCapability.m */,
4A8BD3B924F98F89000945E3 /* SDLDynamicUpdateCapabilities.h */,
@@ -5062,8 +5101,8 @@
4ABB2B5D24F84FE30061BF55 /* SDLEqualizerSettings.m */,
4ABB2B6424F84FE50061BF55 /* SDLFuelRange.h */,
4ABB2B6524F84FE50061BF55 /* SDLFuelRange.m */,
- B3838A2F257C5D1B00420C11 /* SDLGateStatus.h */,
- B3838A2E257C5D1A00420C11 /* SDLGateStatus.m */,
+ B3838A2F257C5D1B00420C11 /* SDLGateStatus.h */,
+ B3838A2E257C5D1A00420C11 /* SDLGateStatus.m */,
4ABB2B5C24F84FE30061BF55 /* SDLGearStatus.h */,
4ABB2B5F24F84FE40061BF55 /* SDLGearStatus.m */,
4ABB2B5A24F84FE30061BF55 /* SDLGPSData.h */,
@@ -5152,8 +5191,8 @@
4A8BD26C24F9343D000945E3 /* SDLRemoteControlCapabilities.m */,
4A8BD28724F934F2000945E3 /* SDLRGBColor.h */,
4A8BD28A24F934F3000945E3 /* SDLRGBColor.m */,
- B3838A1E257C5BAF00420C11 /* SDLRoofStatus.h */,
- B3838A1F257C5BB000420C11 /* SDLRoofStatus.m */,
+ B3838A1E257C5BAF00420C11 /* SDLRoofStatus.h */,
+ B3838A1F257C5BB000420C11 /* SDLRoofStatus.m */,
4A8BD29124F93533000945E3 /* SDLScreenParams.h */,
4A8BD28F24F93533000945E3 /* SDLScreenParams.m */,
4A8BD29024F93533000945E3 /* SDLSeatControlCapabilities.h */,
@@ -5166,6 +5205,12 @@
4A8BD31C24F93964000945E3 /* SDLSeatLocationCapability.m */,
4A8BD29724F93534000945E3 /* SDLSeatMemoryAction.h */,
4A8BD29524F93534000945E3 /* SDLSeatMemoryAction.m */,
+ B360F9E3255F52B90027CA17 /* SDLSeatOccupancy.h */,
+ B360F9E2255F52B90027CA17 /* SDLSeatOccupancy.m */,
+ B360F9DC255F52A40027CA17 /* SDLSeatStatus.h */,
+ B360F9DD255F52A40027CA17 /* SDLSeatStatus.m */,
+ C9DFFE76257ACE0000F7D57A /* SDLSeekStreamingIndicator.h */,
+ C9DFFE77257ACE0000F7D57A /* SDLSeekStreamingIndicator.m */,
4A8BD29224F93533000945E3 /* SDLSingleTireStatus.h */,
4A8BD29624F93534000945E3 /* SDLSingleTireStatus.m */,
4A8BD2A624F935BB000945E3 /* SDLSISData.h */,
@@ -5285,8 +5330,8 @@
4ABB272A24F7FD1B0061BF55 /* SDLDistanceUnit.m */,
4ABB272D24F7FD1C0061BF55 /* SDLDisplayType.h */,
4ABB272B24F7FD1B0061BF55 /* SDLDisplayType.m */,
- B3838A26257C5CE600420C11 /* SDLDoorStatusType.h */,
- B3838A27257C5CE600420C11 /* SDLDoorStatusType.m */,
+ B3838A26257C5CE600420C11 /* SDLDoorStatusType.h */,
+ B3838A27257C5CE600420C11 /* SDLDoorStatusType.m */,
4ABB274424F7FD9A0061BF55 /* SDLDriverDistractionState.h */,
4ABB274924F7FD9B0061BF55 /* SDLDriverDistractionState.m */,
4ABB274724F7FD9B0061BF55 /* SDLECallConfirmationStatus.h */,
@@ -5384,6 +5429,8 @@
4ABB27F624F823F20061BF55 /* SDLSamplingRate.m */,
4ABB280524F824600061BF55 /* SDLSeatMemoryActionType.h */,
4ABB280224F8245F0061BF55 /* SDLSeatMemoryActionType.m */,
+ C9DFFE7C257AD07E00F7D57A /* SDLSeekIndicatorType.h */,
+ C9DFFE7D257AD07E00F7D57A /* SDLSeekIndicatorType.m */,
4ABB280424F824600061BF55 /* SDLServiceUpdateReason.h */,
4ABB280724F824600061BF55 /* SDLServiceUpdateReason.m */,
4ABB280624F824600061BF55 /* SDLSoftButtonType.h */,
@@ -6164,7 +6211,7 @@
5DAD5F8220507DED0025624C /* Soft Button */,
88D0E5D42478656B009469AB /* Subscribe Button */,
5DAD5F8320507DF30025624C /* Text and Graphic */,
- 4AD1F16A2559952D00637FE1 /* Voice Command */,
+ 4AD1F16A2559952D00637FE1 /* Voice Command */,
5DAD5F8420507E1F0025624C /* SDLScreenManagerSpec.m */,
);
name = Screen;
@@ -6235,8 +6282,8 @@
8850DB5F1F4475D30053A48D /* TestMultipleFilesConnectionManager.m */,
5D6035D3202CE4A500A429C9 /* TestMultipleRequestsConnectionManager.h */,
5D6035D4202CE4A500A429C9 /* TestMultipleRequestsConnectionManager.m */,
- 4A41430B255F0A090039C267 /* TestConnectionRequestObject.h */,
- 4A41430C255F0A090039C267 /* TestConnectionRequestObject.m */,
+ 4A41430B255F0A090039C267 /* TestConnectionRequestObject.h */,
+ 4A41430C255F0A090039C267 /* TestConnectionRequestObject.m */,
);
name = "Connection Manager";
sourceTree = "<group>";
@@ -6925,6 +6972,7 @@
files = (
4ABB255124F7E52B0061BF55 /* SDLLockScreenConfiguration.h in Headers */,
4ABB26B124F7F9DF0061BF55 /* SDLLogTargetOSLog.h in Headers */,
+ B360F9D1255EFEFD0027CA17 /* SDLClimateData.h in Headers */,
4ABB259624F7E6880061BF55 /* SDLMenuCell.h in Headers */,
4ABB292E24F842A00061BF55 /* SDLDiagnosticMessage.h in Headers */,
4ABB272424F7FCAE0061BF55 /* SDLComponentVolumeStatus.h in Headers */,
@@ -6937,6 +6985,7 @@
4ABB27E124F800CA0061BF55 /* SDLPowerModeQualificationStatus.h in Headers */,
4A8BD2D124F93803000945E3 /* SDLTemperature.h in Headers */,
4ABB282624F824E70061BF55 /* SDLTemperatureUnit.h in Headers */,
+ C9DFFE7E257AD07E00F7D57A /* SDLSeekIndicatorType.h in Headers */,
4ABB262424F7F3A30061BF55 /* CVPixelBufferRef+SDLUtil.h in Headers */,
4A8BD24424F93135000945E3 /* SDLMediaServiceManifest.h in Headers */,
4ABB279B24F7FF0B0061BF55 /* SDLKeyboardLayout.h in Headers */,
@@ -6947,7 +6996,7 @@
4ABB269624F7F9400061BF55 /* SDLRPCFunctionNames.h in Headers */,
4ABB2B4024F84EF50061BF55 /* SDLCloudAppProperties.h in Headers */,
4ABB2A5824F847B10061BF55 /* SDLGetInteriorVehicleDataConsentResponse.h in Headers */,
- B3838A20257C5BB000420C11 /* SDLRoofStatus.h in Headers */,
+ B3838A20257C5BB000420C11 /* SDLRoofStatus.h in Headers */,
4ABB271824F7FC4E0061BF55 /* SDLCompassDirection.h in Headers */,
4ABB2B5924F84EF50061BF55 /* SDLDeviceStatus.h in Headers */,
4A8BD2CF24F93803000945E3 /* SDLTouchEvent.h in Headers */,
@@ -7018,6 +7067,7 @@
4ABB273A24F7FD1D0061BF55 /* SDLDirection.h in Headers */,
4ABB25A224F7E6CE0061BF55 /* SDLDynamicMenuUpdateRunScore.h in Headers */,
4A8BD3B024F98ACE000945E3 /* SDLLogManager.h in Headers */,
+ B360F9E5255F52BA0027CA17 /* SDLSeatOccupancy.h in Headers */,
4ABB26DE24F7FAFD0061BF55 /* SDLRPCRequest.h in Headers */,
4ABB25D824F7E7630061BF55 /* SDLTextField+ScreenManagerExtensions.h in Headers */,
4A8BD25124F93135000945E3 /* SDLModuleData.h in Headers */,
@@ -7045,6 +7095,7 @@
4ABB24E924F594CD0061BF55 /* SDLEncryptionManagerConstants.h in Headers */,
4ABB2AA724F847F40061BF55 /* SDLShowConstantTBTResponse.h in Headers */,
4ABB28ED24F82A6A0061BF55 /* SDLOnKeyboardInput.h in Headers */,
+ B360F9DE255F52A50027CA17 /* SDLSeatStatus.h in Headers */,
5D9FDA991F2A7D3F00A495C8 /* emhashmap.h in Headers */,
4ABB255F24F7E59E0061BF55 /* SDLPermissionConstants.h in Headers */,
4ABB270324F7FB8F0061BF55 /* SDLButtonName.h in Headers */,
@@ -7055,6 +7106,7 @@
4ABB263024F7F4230061BF55 /* SDLRAWH264Packetizer.h in Headers */,
4ABB26F824F7FB8F0061BF55 /* SDLAudioType.h in Headers */,
4ABB24CC24F5931B0061BF55 /* SDLStateMachine.h in Headers */,
+ C9DFFE78257ACE0000F7D57A /* SDLSeekStreamingIndicator.h in Headers */,
4ABB28DD24F82A6A0061BF55 /* SDLOnButtonPress.h in Headers */,
4A8BD34524F945CC000945E3 /* SDLControlFramePayloadTransportEventUpdate.h in Headers */,
4ABB291D24F842560061BF55 /* SDLCreateWindow.h in Headers */,
@@ -7071,7 +7123,7 @@
4ABB280124F823F20061BF55 /* SDLResult.h in Headers */,
4ABB2B8624F8504A0061BF55 /* SDLHMISettingsControlCapabilities.h in Headers */,
4ABB276924F7FE480061BF55 /* SDLHMIZoneCapabilities.h in Headers */,
- B3838A3B257C6AB700420C11 /* SDLDoorStatus.h in Headers */,
+ B3838A3B257C6AB700420C11 /* SDLDoorStatus.h in Headers */,
4ABB29DF24F846880061BF55 /* SDLSystemRequest.h in Headers */,
4ABB290224F82BE90061BF55 /* SDLAddCommand.h in Headers */,
4ABB260624F7E9650061BF55 /* SDLStreamingMediaManager.h in Headers */,
@@ -7244,7 +7296,7 @@
4ABB24C924F593090061BF55 /* SDLStreamingProtocolDelegate.h in Headers */,
4ABB275F24F7FE1F0061BF55 /* SDLFuelType.h in Headers */,
4A8BD3A024F9474B000945E3 /* SDLIAPDataSessionDelegate.h in Headers */,
- B3838A28257C5CE600420C11 /* SDLDoorStatusType.h in Headers */,
+ B3838A28257C5CE600420C11 /* SDLDoorStatusType.h in Headers */,
4A8BD2F724F93872000945E3 /* SDLVrHelpItem.h in Headers */,
4ABB2A0024F8477F0061BF55 /* SDLAddCommandResponse.h in Headers */,
4ABB291124F842160061BF55 /* SDLChangeRegistration.h in Headers */,
@@ -7419,11 +7471,11 @@
4ABB296524F844020061BF55 /* SDLListFiles.h in Headers */,
4ABB281824F824A50061BF55 /* SDLStaticIconName.h in Headers */,
4ABB290524F82BE90061BF55 /* SDLAlert.h in Headers */,
- B3838A31257C5D1B00420C11 /* SDLGateStatus.h in Headers */,
+ B3838A31257C5D1B00420C11 /* SDLGateStatus.h in Headers */,
4ABB26BA24F7FA1C0061BF55 /* SDLLogConstants.h in Headers */,
4ABB28DB24F82A6A0061BF55 /* SDLOnSystemCapabilityUpdated.h in Headers */,
4ABB269324F7F9060061BF55 /* SDLTimer.h in Headers */,
- 4ABED25C257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.h in Headers */,
+ 4ABED25C257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.h in Headers */,
4A8BD2F924F93872000945E3 /* SDLVehicleDataType.h in Headers */,
4ABB279924F7FF0B0061BF55 /* SDLLanguage.h in Headers */,
4ABB285F24F828E00061BF55 /* SDLVehicleDataActiveStatus.h in Headers */,
@@ -7629,7 +7681,7 @@
};
5D61FA1B1A84237100846EE7 = {
CreatedOnToolsVersion = 6.1.1;
- LastSwiftMigration = 1210;
+ LastSwiftMigration = 1210;
};
5D61FA251A84237100846EE7 = {
CreatedOnToolsVersion = 6.1.1;
@@ -7786,7 +7838,7 @@
4ABB264524F7F5340061BF55 /* SDLSystemCapabilityManager.m in Sources */,
4A8BD2B124F935BC000945E3 /* SDLSoftButtonCapabilities.m in Sources */,
4ABB2A5524F847B10061BF55 /* SDLGetInteriorVehicleDataConsentResponse.m in Sources */,
- 4ABED25B257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.m in Sources */,
+ 4ABED25B257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.m in Sources */,
4ABB2AA924F847F40061BF55 /* SDLSetAppIconResponse.m in Sources */,
4A8BD2D224F93803000945E3 /* SDLTemplateColorScheme.m in Sources */,
4A8BD3C124F994D5000945E3 /* SDLFileManager.m in Sources */,
@@ -7812,6 +7864,7 @@
4ABB26F724F7FB8F0061BF55 /* SDLAudioStreamingState.m in Sources */,
4ABB265A24F7F5C10061BF55 /* SDLRPCResponseNotification.m in Sources */,
4ABB2AB724F847F40061BF55 /* SDLSetGlobalPropertiesResponse.m in Sources */,
+ C9DFFE79257ACE0000F7D57A /* SDLSeekStreamingIndicator.m in Sources */,
4ABB2B0B24F84D950061BF55 /* SDLAppServiceData.m in Sources */,
4ABB282C24F824E70061BF55 /* SDLTBTState.m in Sources */,
4ABB27DF24F800CA0061BF55 /* SDLPowerModeQualificationStatus.m in Sources */,
@@ -7898,7 +7951,7 @@
4ABB28D624F82A6A0061BF55 /* SDLOnAudioPassThru.m in Sources */,
4A8BD25224F93135000945E3 /* SDLKeyboardProperties.m in Sources */,
4ABB2B1324F84D950061BF55 /* SDLAppServiceRecord.m in Sources */,
- B3838A29257C5CE600420C11 /* SDLDoorStatusType.m in Sources */,
+ B3838A29257C5CE600420C11 /* SDLDoorStatusType.m in Sources */,
4ABB290424F82BE90061BF55 /* SDLAlertManeuver.m in Sources */,
4ABB27B224F7FFDA0061BF55 /* SDLMassageMode.m in Sources */,
4ABB274F24F7FD9C0061BF55 /* SDLECallConfirmationStatus.m in Sources */,
@@ -8044,7 +8097,7 @@
4A8BD24C24F93135000945E3 /* SDLLocationDetails.m in Sources */,
4ABB275C24F7FE1F0061BF55 /* SDLFuelType.m in Sources */,
4ABB2B4324F84EF50061BF55 /* SDLDisplayCapabilities.m in Sources */,
- B3838A3A257C6AB700420C11 /* SDLDoorStatus.m in Sources */,
+ B3838A3A257C6AB700420C11 /* SDLDoorStatus.m in Sources */,
4ABB267724F7F6720061BF55 /* SDLObjectWithPriority.m in Sources */,
4ABB29FE24F8477F0061BF55 /* SDLAddCommandResponse.m in Sources */,
4ABB251324F7E3A30061BF55 /* SDLLifecycleConfiguration.m in Sources */,
@@ -8143,6 +8196,7 @@
4ABB2AEB24F848270061BF55 /* SDLUpdateTurnListResponse.m in Sources */,
4ABB263124F7F4230061BF55 /* SDLRAWH264Packetizer.m in Sources */,
4ABB2B5724F84EF50061BF55 /* SDLDIDResult.m in Sources */,
+ B360F9E4255F52BA0027CA17 /* SDLSeatOccupancy.m in Sources */,
5D9FDA981F2A7D3F00A495C8 /* emhashmap.c in Sources */,
4ABB260C24F7F3400061BF55 /* SDLAudioFile.m in Sources */,
4A8BD2F524F93872000945E3 /* SDLTTSChunk.m in Sources */,
@@ -8156,6 +8210,7 @@
4ABB268324F7F8D60061BF55 /* SDLBackgroundTaskManager.m in Sources */,
4ABB2ACC24F848130061BF55 /* SDLSyncPDataResponse.m in Sources */,
4ABB26DF24F7FAFD0061BF55 /* SDLRPCNotification.m in Sources */,
+ C9DFFE7F257AD07E00F7D57A /* SDLSeekIndicatorType.m in Sources */,
4ABB254C24F7E4C60061BF55 /* SDLLockScreenViewController.m in Sources */,
4ABB270024F7FB8F0061BF55 /* SDLAmbientLightStatus.m in Sources */,
4ABB299224F845440061BF55 /* SDLScrollableMessage.m in Sources */,
@@ -8199,7 +8254,7 @@
4ABB2A5B24F847B10061BF55 /* SDLGetCloudAppPropertiesResponse.m in Sources */,
4ABB25F424F7E7EF0061BF55 /* SDLTouch.m in Sources */,
4ABB2B3E24F84EF50061BF55 /* SDLDeviceStatus.m in Sources */,
- B3838A21257C5BB000420C11 /* SDLRoofStatus.m in Sources */,
+ B3838A21257C5BB000420C11 /* SDLRoofStatus.m in Sources */,
4ABB28BE24F82A6A0061BF55 /* SDLOnSyncPData.m in Sources */,
4ABB275724F7FD9C0061BF55 /* SDLEmergencyEventType.m in Sources */,
4ABB29B824F845DB0061BF55 /* SDLSetMediaClockTimer.m in Sources */,
@@ -8222,6 +8277,7 @@
4A8BD39424F94731000945E3 /* SDLIAPSession.m in Sources */,
4ABB2A3924F847980061BF55 /* SDLDiagnosticMessageResponse.m in Sources */,
4A8BD29924F93534000945E3 /* SDLScreenParams.m in Sources */,
+ B360F9D0255EFEFD0027CA17 /* SDLClimateData.m in Sources */,
4ABB28C324F82A6A0061BF55 /* SDLOnAppInterfaceUnregistered.m in Sources */,
4ABB2A3224F847980061BF55 /* SDLCancelInteractionResponse.m in Sources */,
4ABB259C24F7E6B90061BF55 /* SDLMenuConfiguration.m in Sources */,
@@ -8265,11 +8321,12 @@
4ABB2AA224F847F40061BF55 /* SDLSetCloudAppPropertiesResponse.m in Sources */,
4A8BD3A224F9474B000945E3 /* SDLIAPDataSession.m in Sources */,
4A8BD3B624F98F64000945E3 /* SDLOnUpdateSubMenu.m in Sources */,
- B3838A30257C5D1B00420C11 /* SDLGateStatus.m in Sources */,
+ B3838A30257C5D1B00420C11 /* SDLGateStatus.m in Sources */,
4ABB256624F7E5B80061BF55 /* SDLRPCPermissionStatus.m in Sources */,
4ABB299824F845440061BF55 /* SDLReleaseInteriorVehicleDataModule.m in Sources */,
4ABB277724F7FE910061BF55 /* SDLIgnitionStatus.m in Sources */,
4ABB2B5624F84EF50061BF55 /* SDLDisplayCapability.m in Sources */,
+ B360F9DF255F52A50027CA17 /* SDLSeatStatus.m in Sources */,
4ABB267F24F7F68F0061BF55 /* SDLCacheFileManager.m in Sources */,
4A8BD24124F93135000945E3 /* SDLMenuParams.m in Sources */,
4ABB28FC24F82BE90061BF55 /* SDLAddCommand.m in Sources */,
@@ -8344,6 +8401,7 @@
162E838A1A9BDE8B00906325 /* SDLSingleTireStatusSpec.m in Sources */,
5D6EB4CC1BF28DC600693731 /* NSMapTable+SubscriptingSpec.m in Sources */,
B3F7918324E062C200DB5CAF /* SDLGetVehicleDataSpec.m in Sources */,
+ C975877F257AEFDB0066F271 /* SDLSeekIndicatorTypeSpec.m in Sources */,
88F37A4D226F84BE00DF119B /* SDLIAPDataSessionSpec.m in Sources */,
9FA0D00322DF06B9009CF344 /* SDLWindowTypeCapabilitiesSpec.m in Sources */,
162E83051A9BDE8B00906325 /* SDLVehicleDataActiveStatusSpec.m in Sources */,
@@ -8381,7 +8439,7 @@
162E82E31A9BDE8B00906325 /* SDLIgnitionStatusSpec.m in Sources */,
162E83511A9BDE8B00906325 /* SDLDeleteInteractionChoiceSetResponseSpec.m in Sources */,
DA9F7EB41DCC086400ACAE48 /* SDLDateTimeSpec.m in Sources */,
- B3838A0F257C4EE100420C11 /* SDLGateStatusSpec.m in Sources */,
+ B3838A0F257C4EE100420C11 /* SDLGateStatusSpec.m in Sources */,
162E82E41A9BDE8B00906325 /* SDLImageFieldNameSpec.m in Sources */,
162E82ED1A9BDE8B00906325 /* SDLMaintenanceModeStatusSpec.m in Sources */,
8B9376DB1F33656C009605C4 /* SDLMetadataTagsSpec.m in Sources */,
@@ -8394,7 +8452,7 @@
162E83181A9BDE8B00906325 /* SDLOnKeyboardInputSpec.m in Sources */,
1EE8C4441F34A1B900FDC2CF /* SDLClimateControlDataSpec.m in Sources */,
162E83701A9BDE8B00906325 /* SDLUpdateTurnListResponseSpec.m in Sources */,
- 4A41430D255F0A090039C267 /* TestConnectionRequestObject.m in Sources */,
+ 4A41430D255F0A090039C267 /* TestConnectionRequestObject.m in Sources */,
88C23E8822297C6000EA171F /* SDLRPCResponseNotificationSpec.m in Sources */,
162E833B1A9BDE8B00906325 /* SDLSetGlobalPropertiesSpec.m in Sources */,
884AF94C220B3FCC00E22928 /* SDLGetSystemCapabilitySpec.m in Sources */,
@@ -8447,6 +8505,7 @@
162E83911A9BDE8B00906325 /* SDLTouchCoordSpec.m in Sources */,
162E832B1A9BDE8B00906325 /* SDLDeleteSubMenuSpec.m in Sources */,
162E83411A9BDE8B00906325 /* SDLSubscribeButtonSpec.m in Sources */,
+ B3EC9E6E2579AA010039F3AA /* SDLClimateDataSpec.m in Sources */,
5D59DD471B14FDEE00BE744D /* SDLLockScreenStatusManagerSpec.m in Sources */,
5D0A9F9A1F15636800CC80DD /* SDLGetSystemCapabilitiesSpec.m in Sources */,
162E82F31A9BDE8B00906325 /* SDLPrerecordedSpeechSpec.m in Sources */,
@@ -8504,7 +8563,7 @@
162E82F71A9BDE8B00906325 /* SDLResultSpec.m in Sources */,
88DDD0F9229ECA57002F9623 /* SDLIAPConstantsSpec.m in Sources */,
1680B1141A9CD7AD00DBD79E /* SDLV1ProtocolHeaderSpec.m in Sources */,
- B3838A15257C4EFD00420C11 /* SDLRoofStatusSpec.m in Sources */,
+ B3838A15257C4EFD00420C11 /* SDLRoofStatusSpec.m in Sources */,
880D2680220E038800B3F496 /* SDLWeatherServiceManifestSpec.m in Sources */,
88EEC5BE220A3B8B005AA2F9 /* SDLPublishAppServiceResponseSpec.m in Sources */,
1680B1161A9CD7AD00DBD79E /* SDLProtocolMessageSpec.m in Sources */,
@@ -8570,7 +8629,7 @@
1EAA47762036B847000FE74B /* SDLEqualizerSettingsSpec.m in Sources */,
752ECDB9228C42E100D945F4 /* SDLMenuRunScoreSpec.m in Sources */,
162E83141A9BDE8B00906325 /* SDLOnDriverDistractionSpec.m in Sources */,
- B3838A09257C4EB400420C11 /* SDLDoorStatusSpec.m in Sources */,
+ B3838A09257C4EB400420C11 /* SDLDoorStatusSpec.m in Sources */,
162E83371A9BDE8B00906325 /* SDLResetGlobalPropertiesSpec.m in Sources */,
162E82DF1A9BDE8B00906325 /* SDLGlobalProperySpec.m in Sources */,
88DF998F22035D1700477AC1 /* SDLIAPSessionSpec.m in Sources */,
@@ -8727,6 +8786,7 @@
162E835D1A9BDE8B00906325 /* SDLReadDIDResponseSpec.m in Sources */,
5DAD5F87205087430025624C /* SDLTextAndGraphicManagerSpec.m in Sources */,
162E82D41A9BDE8A00906325 /* SDLCharacterSetSpec.m in Sources */,
+ B38389D7257C187500420C11 /* SDLSeatStatusSpec.m in Sources */,
162E830F1A9BDE8B00906325 /* SDLOnAppInterfaceUnregisteredSpec.m in Sources */,
162E83971A9BDE8B00906325 /* SDLVehicleTypeSpec.m in Sources */,
887BE4D422272B2200B397C2 /* SDLControlFramePayloadConstantsSpec.m in Sources */,
@@ -8759,6 +8819,7 @@
162E83081A9BDE8B00906325 /* SDLVehicleDataResultCodeSpec.m in Sources */,
5DE35E4C20CB1C1C0034BE5A /* SDLCheckChoiceVROptionalOperationSpec.m in Sources */,
8877F5EB1F34A3BE00DC128A /* SDLSendHapticDataSpec.m in Sources */,
+ C9758785257F4C570066F271 /* SDLSeekStreamingIndicatorSpec.m in Sources */,
162E83621A9BDE8B00906325 /* SDLSetDisplayLayoutResponseSpec.m in Sources */,
162E832E1A9BDE8B00906325 /* SDLEndAudioPassThruSpec.m in Sources */,
1680B1191A9CD7AD00DBD79E /* SDLV2ProtocolMessageSpec.m in Sources */,
@@ -8771,7 +8832,7 @@
1EAA47782036BA74000FE74B /* SDLAudioControlCapabilitiesSpec.m in Sources */,
5DB1BCD51D243A8E002FFC37 /* SDLUploadFileOperationSpec.m in Sources */,
162E83401A9BDE8B00906325 /* SDLSpeakSpec.m in Sources */,
- B3838A01257C47FD00420C11 /* SDLDoorStatusTypeSpec.m in Sources */,
+ B3838A01257C47FD00420C11 /* SDLDoorStatusTypeSpec.m in Sources */,
88A5E7F4220B57F900495E8A /* SDLOnSystemCapabilityUpdatedSpec.m in Sources */,
5DCF76FC1ACDDB4200BB647B /* SDLSendLocationSpec.m in Sources */,
5DB1BCD81D243AA6002FFC37 /* SDLPermissionFilterSpec.m in Sources */,
@@ -8787,11 +8848,12 @@
1EE8C4501F38629200FDC2CF /* SDLRemoteControlCapabilitiesSpec.m in Sources */,
1EAA47662035B8D3000FE74B /* SDLLightControlDataSpec.m in Sources */,
162E82CF1A9BDE8A00906325 /* SDLBitsPerSampleSpec.m in Sources */,
+ B38389D6257C187500420C11 /* SDLSeatOccupancySpec.m in Sources */,
883581B022D659BE00405C42 /* SDLCloseApplicationResponseSpec.m in Sources */,
162E831E1A9BDE8B00906325 /* SDLOnTBTClientStateSpec.m in Sources */,
162E83351A9BDE8B00906325 /* SDLReadDIDSpec.m in Sources */,
5DF40B28208FDA9700DD6FDA /* SDLVoiceCommandManagerSpec.m in Sources */,
- 4AD1F1742559957100637FE1 /* SDLVoiceCommandUpdateOperationSpec.m in Sources */,
+ 4AD1F1742559957100637FE1 /* SDLVoiceCommandUpdateOperationSpec.m in Sources */,
88B3BFA020DA8FD000943565 /* SDLFuelTypeSpec.m in Sources */,
162E836F1A9BDE8B00906325 /* SDLUnsubscribeVehicleDataResponseSpec.m in Sources */,
162E82DB1A9BDE8B00906325 /* SDLECallConfirmationStatusSpec.m in Sources */,
@@ -9205,7 +9267,7 @@
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
- VALIDATE_WORKSPACE = NO;
+ VALIDATE_WORKSPACE = NO;
};
name = Debug;
};
@@ -9238,7 +9300,7 @@
PRODUCT_BUNDLE_IDENTIFIER = "com.smartdevicelink.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
- VALIDATE_WORKSPACE = NO;
+ VALIDATE_WORKSPACE = NO;
};
name = Release;
};
diff --git a/SmartDeviceLink/private/SDLRPCParameterNames.h b/SmartDeviceLink/private/SDLRPCParameterNames.h
index a90235e16..cd34d66e9 100644
--- a/SmartDeviceLink/private/SDLRPCParameterNames.h
+++ b/SmartDeviceLink/private/SDLRPCParameterNames.h
@@ -81,6 +81,7 @@ extern SDLRPCParameterName const SDLRPCParameterNameAppServices;
extern SDLRPCParameterName const SDLRPCParameterNameAppServicesCapabilities;
extern SDLRPCParameterName const SDLRPCParameterNameAppVersion;
extern SDLRPCParameterName const SDLRPCParameterNameAssociatedServiceType;
+extern SDLRPCParameterName const SDLRPCParameterNameAtmosphericPressure;
extern SDLRPCParameterName const SDLRPCParameterNameAutoCompleteList;
extern SDLRPCParameterName const SDLRPCParameterNameAudioControlCapabilities;
extern SDLRPCParameterName const SDLRPCParameterNameAudioControlData;
@@ -104,6 +105,7 @@ extern SDLRPCParameterName const SDLRPCParameterNameBackTiltAngle;
extern SDLRPCParameterName const SDLRPCParameterNameBackTiltAngleAvailable;
extern SDLRPCParameterName const SDLRPCParameterNameBackVerticalPosition;
extern SDLRPCParameterName const SDLRPCParameterNameBackVerticalPositionAvailable;
+extern SDLRPCParameterName const SDLRPCParameterNameBackSeekIndicator;
extern SDLRPCParameterName const SDLRPCParameterNameBand;
extern SDLRPCParameterName const SDLRPCParameterNameBatteryLevelStatus;
extern SDLRPCParameterName const SDLRPCParameterNameBearing;
@@ -117,6 +119,7 @@ extern SDLRPCParameterName const SDLRPCParameterNameButtonCapabilities;
extern SDLRPCParameterName const SDLRPCParameterNameButtonEventMode;
extern SDLRPCParameterName const SDLRPCParameterNameButtonName;
extern SDLRPCParameterName const SDLRPCParameterNameButtonPressMode;
+extern SDLRPCParameterName const SDLRPCParameterNameCabinTemperature;
extern SDLRPCParameterName const SDLRPCParameterNameCancelID;
extern SDLRPCParameterName const SDLRPCParameterNameCapacity;
extern SDLRPCParameterName const SDLRPCParameterNameCapacityUnit;
@@ -141,6 +144,7 @@ extern SDLRPCParameterName const SDLRPCParameterNameChoiceSet;
extern SDLRPCParameterName const SDLRPCParameterNameCirculateAirEnable;
extern SDLRPCParameterName const SDLRPCParameterNameCirculateAirEnableAvailable;
extern SDLRPCParameterName const SDLRPCParameterNameClimateControlData;
+extern SDLRPCParameterName const SDLRPCParameterNameClimateData;
extern SDLRPCParameterName const SDLRPCParameterNameClimateControlCapabilities;
extern SDLRPCParameterName const SDLRPCParameterNameCloudCover;
extern SDLRPCParameterName const SDLRPCParameterNameClusterModes;
@@ -148,6 +152,7 @@ extern SDLRPCParameterName const SDLRPCParameterNameClusterModeStatus;
extern SDLRPCParameterName const SDLRPCParameterNameCommandIcon;
extern SDLRPCParameterName const SDLRPCParameterNameCommandId;
extern SDLRPCParameterName const SDLRPCParameterNameCompassDirection;
+extern SDLRPCParameterName const SDLRPCParameterNameConditionActive;
extern SDLRPCParameterName const SDLRPCParameterNameCorrelationId;
extern SDLRPCParameterName const SDLRPCParameterNameCountRate;
extern SDLRPCParameterName const SDLRPCParameterNameCountryCode;
@@ -250,6 +255,7 @@ extern SDLRPCParameterName const SDLRPCParameterNameFilenames;
extern SDLRPCParameterName const SDLRPCParameterNameFileType;
extern SDLRPCParameterName const SDLRPCParameterNameFirmness;
extern SDLRPCParameterName const SDLRPCParameterNameFirmwareRevision;
+extern SDLRPCParameterName const SDLRPCParameterNameForwardSeekIndicator;
extern SDLRPCParameterName const SDLRPCParameterNameFreeModules;
extern SDLRPCParameterName const SDLRPCParameterNameFrequencyInteger;
extern SDLRPCParameterName const SDLRPCParameterNameFrequencyFraction;
@@ -521,6 +527,7 @@ extern SDLRPCParameterName const SDLRPCParameterNamePrecipAccumulation;
extern SDLRPCParameterName const SDLRPCParameterNamePrecipIntensity;
extern SDLRPCParameterName const SDLRPCParameterNamePrecipProbability;
extern SDLRPCParameterName const SDLRPCParameterNamePrecipType;
+extern SDLRPCParameterName const SDLRPCParameterNamePreferredFPS;
extern SDLRPCParameterName const SDLRPCParameterNamePreferredResolution;
extern SDLRPCParameterName const SDLRPCParameterNamePrerecordedSpeech;
extern SDLRPCParameterName const SDLRPCParameterNamePresetBankCapabilities;
@@ -595,13 +602,17 @@ extern SDLRPCParameterName const SDLRPCParameterNameSeatControlData;
extern SDLRPCParameterName const SDLRPCParameterNameSeatControlCapabilities;
extern SDLRPCParameterName const SDLRPCParameterNameSeatLocation;
extern SDLRPCParameterName const SDLRPCParameterNameSeatLocationCapability;
+extern SDLRPCParameterName const SDLRPCParameterNameSeatOccupancy;
extern SDLRPCParameterName const SDLRPCParameterNameSeats;
+extern SDLRPCParameterName const SDLRPCParameterNameSeatsBelted;
+extern SDLRPCParameterName const SDLRPCParameterNameSeatsOccupied;
extern SDLRPCParameterName const SDLRPCParameterNameSecondaryColor;
extern SDLRPCParameterName const SDLRPCParameterNameSecondaryGraphic;
extern SDLRPCParameterName const SDLRPCParameterNameSecondaryImage;
extern SDLRPCParameterName const SDLRPCParameterNameSecondaryText;
extern SDLRPCParameterName const SDLRPCParameterNameSecond;
extern SDLRPCParameterName const SDLRPCParameterNameSeconds;
+extern SDLRPCParameterName const SDLRPCParameterNameSeekTime;
extern SDLRPCParameterName const SDLRPCParameterNameSendLocationEnabled;
extern SDLRPCParameterName const SDLRPCParameterNameServiceActive;
extern SDLRPCParameterName const SDLRPCParameterNameServiceArea;
diff --git a/SmartDeviceLink/private/SDLRPCParameterNames.m b/SmartDeviceLink/private/SDLRPCParameterNames.m
index fb10c669e..d95d6af05 100644
--- a/SmartDeviceLink/private/SDLRPCParameterNames.m
+++ b/SmartDeviceLink/private/SDLRPCParameterNames.m
@@ -82,6 +82,7 @@ SDLRPCParameterName const SDLRPCParameterNameAppVersion = @"appVersion";
SDLRPCParameterName const SDLRPCParameterNameAudioControlCapabilities = @"audioControlCapabilities";
SDLRPCParameterName const SDLRPCParameterNameAudioControlData = @"audioControlData";
SDLRPCParameterName const SDLRPCParameterNameAssociatedServiceType = @"associatedServiceType";
+SDLRPCParameterName const SDLRPCParameterNameAtmosphericPressure = @"atmosphericPressure";
SDLRPCParameterName const SDLRPCParameterNameAudioPassThruCapabilities = @"audioPassThruCapabilities";
SDLRPCParameterName const SDLRPCParameterNameAudioPassThruDisplayText1 = @"audioPassThruDisplayText1";
SDLRPCParameterName const SDLRPCParameterNameAudioPassThruDisplayText2 = @"audioPassThruDisplayText2";
@@ -103,6 +104,7 @@ SDLRPCParameterName const SDLRPCParameterNameBackTiltAngle = @"backTiltAngle";
SDLRPCParameterName const SDLRPCParameterNameBackTiltAngleAvailable = @"backTiltAngleAvailable";
SDLRPCParameterName const SDLRPCParameterNameBackVerticalPosition = @"backVerticalPosition";
SDLRPCParameterName const SDLRPCParameterNameBackVerticalPositionAvailable = @"backVerticalPositionAvailable";
+SDLRPCParameterName const SDLRPCParameterNameBackSeekIndicator = @"backSeekIndicator";
SDLRPCParameterName const SDLRPCParameterNameBand = @"band";
SDLRPCParameterName const SDLRPCParameterNameBatteryLevelStatus = @"battLevelStatus";
SDLRPCParameterName const SDLRPCParameterNameBearing = @"bearing";
@@ -116,6 +118,7 @@ SDLRPCParameterName const SDLRPCParameterNameButtonCapabilities = @"buttonCapabi
SDLRPCParameterName const SDLRPCParameterNameButtonEventMode = @"buttonEventMode";
SDLRPCParameterName const SDLRPCParameterNameButtonName = @"buttonName";
SDLRPCParameterName const SDLRPCParameterNameButtonPressMode = @"buttonPressMode";
+SDLRPCParameterName const SDLRPCParameterNameCabinTemperature = @"cabinTemperature";
SDLRPCParameterName const SDLRPCParameterNameCancelID = @"cancelID";
SDLRPCParameterName const SDLRPCParameterNameCapacity = @"capacity";
SDLRPCParameterName const SDLRPCParameterNameCapacityUnit = @"capacityUnit";
@@ -136,6 +139,7 @@ SDLRPCParameterName const SDLRPCParameterNameChoiceSet = @"choiceSet";
SDLRPCParameterName const SDLRPCParameterNameCirculateAirEnable = @"circulateAirEnable";
SDLRPCParameterName const SDLRPCParameterNameCirculateAirEnableAvailable = @"circulateAirEnableAvailable";
SDLRPCParameterName const SDLRPCParameterNameClimateControlData = @"climateControlData";
+SDLRPCParameterName const SDLRPCParameterNameClimateData = @"climateData";
SDLRPCParameterName const SDLRPCParameterNameClimateControlCapabilities = @"climateControlCapabilities";
SDLRPCParameterName const SDLRPCParameterNameCloudCover = @"cloudCover";
SDLRPCParameterName const SDLRPCParameterNameClusterModes = @"clusterModes";
@@ -147,6 +151,7 @@ SDLRPCParameterName const SDLRPCParameterNameColumns = @"columns";
SDLRPCParameterName const SDLRPCParameterNameCommandIcon = @"cmdIcon";
SDLRPCParameterName const SDLRPCParameterNameCommandId = @"cmdID";
SDLRPCParameterName const SDLRPCParameterNameCompassDirection = @"compassDirection";
+SDLRPCParameterName const SDLRPCParameterNameConditionActive = @"conditionActive";
SDLRPCParameterName const SDLRPCParameterNameCorrelationId = @"correlationID";
SDLRPCParameterName const SDLRPCParameterNameCountRate = @"countRate";
SDLRPCParameterName const SDLRPCParameterNameCountryCode = @"countryCode";
@@ -248,6 +253,7 @@ SDLRPCParameterName const SDLRPCParameterNameFilenames = @"filenames";
SDLRPCParameterName const SDLRPCParameterNameFileType = @"fileType";
SDLRPCParameterName const SDLRPCParameterNameFirmness = @"firmness";
SDLRPCParameterName const SDLRPCParameterNameFirmwareRevision = @"firmwareRev";
+SDLRPCParameterName const SDLRPCParameterNameForwardSeekIndicator = @"forwardSeekIndicator";
SDLRPCParameterName const SDLRPCParameterNameFreeModules = @"freeModules";
SDLRPCParameterName const SDLRPCParameterNameFrequencyInteger = @"frequencyInteger";
SDLRPCParameterName const SDLRPCParameterNameFrequencyFraction = @"frequencyFraction";
@@ -518,6 +524,7 @@ SDLRPCParameterName const SDLRPCParameterNamePrecipType = @"precipType";
SDLRPCParameterName const SDLRPCParameterNamePowerModeActive = @"powerModeActive";
SDLRPCParameterName const SDLRPCParameterNamePowerModeQualificationStatus = @"powerModeQualificationStatus";
SDLRPCParameterName const SDLRPCParameterNamePowerModeStatus = @"powerModeStatus";
+SDLRPCParameterName const SDLRPCParameterNamePreferredFPS = @"preferredFPS";
SDLRPCParameterName const SDLRPCParameterNamePreferredResolution = @"preferredResolution";
SDLRPCParameterName const SDLRPCParameterNamePrerecordedSpeech = @"prerecordedSpeech";
SDLRPCParameterName const SDLRPCParameterNamePresetBankCapabilities = @"presetBankCapabilities";
@@ -592,12 +599,16 @@ SDLRPCParameterName const SDLRPCParameterNameSeatControlData = @"seatControlData
SDLRPCParameterName const SDLRPCParameterNameSeatControlCapabilities = @"seatControlCapabilities";
SDLRPCParameterName const SDLRPCParameterNameSeatLocation = @"seatLocation";
SDLRPCParameterName const SDLRPCParameterNameSeatLocationCapability = @"seatLocationCapability";
+SDLRPCParameterName const SDLRPCParameterNameSeatOccupancy = @"seatOccupancy";
SDLRPCParameterName const SDLRPCParameterNameSeats = @"seats";
+SDLRPCParameterName const SDLRPCParameterNameSeatsBelted = @"seatsBelted";
+SDLRPCParameterName const SDLRPCParameterNameSeatsOccupied = @"seatsOccupied";
SDLRPCParameterName const SDLRPCParameterNameSecondaryGraphic = @"secondaryGraphic";
SDLRPCParameterName const SDLRPCParameterNameSecondaryImage = @"secondaryImage";
SDLRPCParameterName const SDLRPCParameterNameSecondaryText = @"secondaryText";
SDLRPCParameterName const SDLRPCParameterNameSecond = @"second";
SDLRPCParameterName const SDLRPCParameterNameSeconds = @"seconds";
+SDLRPCParameterName const SDLRPCParameterNameSeekTime = @"seekTime";
SDLRPCParameterName const SDLRPCParameterNameSendLocationEnabled = @"sendLocationEnabled";
SDLRPCParameterName const SDLRPCParameterNameServiceActive = @"serviceActive";
SDLRPCParameterName const SDLRPCParameterNameServiceArea = @"serviceArea";
diff --git a/SmartDeviceLink/private/SDLStreamingVideoLifecycleManager.m b/SmartDeviceLink/private/SDLStreamingVideoLifecycleManager.m
index 5d1236a98..d2b5490ee 100644
--- a/SmartDeviceLink/private/SDLStreamingVideoLifecycleManager.m
+++ b/SmartDeviceLink/private/SDLStreamingVideoLifecycleManager.m
@@ -387,6 +387,9 @@ typedef void(^SDLVideoCapabilityResponseHandler)(SDLVideoStreamingCapability *_N
if (capability.maxBitrate != nil) {
weakSelf.videoEncoderSettings[(__bridge NSString *) kVTCompressionPropertyKey_AverageBitRate] = [[NSNumber alloc] initWithUnsignedLongLong:(capability.maxBitrate.unsignedLongLongValue * 1000)];
}
+ if (capability.preferredFPS != nil) {
+ weakSelf.videoEncoderSettings[(__bridge NSString *)kVTCompressionPropertyKey_ExpectedFrameRate] = capability.preferredFPS;
+ }
if (weakSelf.dataSource != nil) {
SDLLogV(@"Calling data source for modified preferred formats");
@@ -397,7 +400,7 @@ typedef void(^SDLVideoCapabilityResponseHandler)(SDLVideoStreamingCapability *_N
weakSelf.focusableItemManager.enableHapticDataRequests = capability.hapticSpatialDataSupported.boolValue;
}
- SDLLogD(@"Got specialized video capabilites, preferred formats: %@, haptics enabled %@", weakSelf.preferredFormats, (capability.hapticSpatialDataSupported.boolValue ? @"YES" : @"NO"));
+ SDLLogD(@"Got specialized video capabilites, preferred formats: %@, haptics enabled %@, videoEncoderSettings: %@", weakSelf.preferredFormats, (capability.hapticSpatialDataSupported.boolValue ? @"YES" : @"NO"), weakSelf.videoEncoderSettings);
} else {
// If no response, assume that the format is H264 RAW and get the screen resolution from the RAI response's display capabilities.
SDLVideoStreamingFormat *format = [[SDLVideoStreamingFormat alloc] initWithCodec:SDLVideoStreamingCodecH264 protocol:SDLVideoStreamingProtocolRAW];
@@ -412,9 +415,21 @@ typedef void(^SDLVideoCapabilityResponseHandler)(SDLVideoStreamingCapability *_N
SDLLogD(@"Using generic video capabilites, preferred formats: %@, resolutions: %@, haptics disabled", weakSelf.preferredFormats, weakSelf.preferredResolutions);
}
- // Apply customEncoderSettings here. Note that value from HMI (such as maxBitrate) will be overwritten by custom settings.
+ // Apply customEncoderSettings here. Note that value from HMI (such as maxBitrate) will be overwritten by custom settings
+ // (Exception: ExpectedFrameRate, AverageBitRate)
for (id key in self.customEncoderSettings.keyEnumerator) {
- self.videoEncoderSettings[key] = [self.customEncoderSettings valueForKey:key];
+ // do NOT override framerate or average bitreate if custom setting is higher than current setting.
+ // See SDL 0323 (https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0323-align-VideoStreamingParameter-with-capability.md) for details.
+ if ([(NSString *)key isEqualToString:(__bridge NSString *)kVTCompressionPropertyKey_ExpectedFrameRate] ||
+ [(NSString *)key isEqualToString:(__bridge NSString *)kVTCompressionPropertyKey_AverageBitRate]) {
+ NSNumber *customEncoderSettings = (NSNumber *)[self.customEncoderSettings valueForKey:key];
+ NSNumber *videoEncoderSettings = (NSNumber *)[self.videoEncoderSettings valueForKey:key];
+ if (customEncoderSettings < videoEncoderSettings) {
+ self.videoEncoderSettings[key] = customEncoderSettings;
+ }
+ } else {
+ self.videoEncoderSettings[key] = [self.customEncoderSettings valueForKey:key];
+ }
}
if (weakSelf.dataSource != nil) {
diff --git a/SmartDeviceLink/private/SDLTextField+ScreenManagerExtensions.m b/SmartDeviceLink/private/SDLTextField+ScreenManagerExtensions.m
index cbc062d93..3086e67e9 100644
--- a/SmartDeviceLink/private/SDLTextField+ScreenManagerExtensions.m
+++ b/SmartDeviceLink/private/SDLTextField+ScreenManagerExtensions.m
@@ -13,7 +13,7 @@
+ (NSArray<SDLTextFieldName> *)sdl_allTextFieldNames {
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
- return @[SDLTextFieldNameETA, SDLTextFieldNameMenuName, SDLTextFieldNameMenuTitle, SDLTextFieldNameStatusBar, SDLTextFieldNameAlertText1, SDLTextFieldNameAlertText2, SDLTextFieldNameAlertText3, SDLTextFieldNameMainField1, SDLTextFieldNameMainField2, SDLTextFieldNameMainField3, SDLTextFieldNameMainField4, SDLTextFieldNameMediaClock, SDLTextFieldNameMediaTrack, SDLTextFieldNamePhoneNumber, SDLTextFieldNameAddressLines, SDLTextFieldNameLocationName, SDLTextFieldNameSliderFooter, SDLTextFieldNameSliderHeader, SDLTextFieldNameTertiaryText, SDLTextFieldNameSecondaryText, SDLTextFieldNameTemplateTitle, SDLTextFieldNameTotalDistance, SDLTextFieldNameNavigationText1, SDLTextFieldNameNavigationText2, SDLTextFieldNameLocationDescription, SDLTextFieldNameScrollableMessageBody, SDLTextFieldNameInitialInteractionText, SDLTextFieldNameAudioPassThruDisplayText1, SDLTextFieldNameAudioPassThruDisplayText2];
+ return @[SDLTextFieldNameETA, SDLTextFieldNameMenuName, SDLTextFieldNameMenuTitle, SDLTextFieldNameStatusBar, SDLTextFieldNameAlertText1, SDLTextFieldNameAlertText2, SDLTextFieldNameAlertText3, SDLTextFieldNameMainField1, SDLTextFieldNameMainField2, SDLTextFieldNameMainField3, SDLTextFieldNameMainField4, SDLTextFieldNameMediaClock, SDLTextFieldNameMediaTrack, SDLTextFieldNamePhoneNumber, SDLTextFieldNameAddressLines, SDLTextFieldNameLocationName, SDLTextFieldNameSliderFooter, SDLTextFieldNameSliderHeader, SDLTextFieldNameTertiaryText, SDLTextFieldNameSecondaryText, SDLTextFieldNameTemplateTitle, SDLTextFieldNameTotalDistance, SDLTextFieldNameNavigationText1, SDLTextFieldNameNavigationText2, SDLTextFieldNameLocationDescription, SDLTextFieldNameScrollableMessageBody, SDLTextFieldNameInitialInteractionText, SDLTextFieldNameAudioPassThruDisplayText1, SDLTextFieldNameAudioPassThruDisplayText2, SDLTextFieldNameTimeToDestination, SDLTextFieldNameTurnText];
}
#pragma clang diagnostic pop
diff --git a/SmartDeviceLink/public/SDLClimateData.h b/SmartDeviceLink/public/SDLClimateData.h
new file mode 100644
index 000000000..bb060e65e
--- /dev/null
+++ b/SmartDeviceLink/public/SDLClimateData.h
@@ -0,0 +1,70 @@
+/*
+ * Copyright (c) 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.
+ */
+
+#import "SDLRPCStruct.h"
+
+@class SDLTemperature;
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ * @added in SmartDeviceLink 7.1.0
+ */
+@interface SDLClimateData : SDLRPCStruct
+
+/**
+ * @param externalTemperature - externalTemperature
+ * @param cabinTemperature - cabinTemperature
+ * @param atmosphericPressure - atmosphericPressure
+ * @return A SDLClimateData object
+ */
+- (instancetype)initWithExternalTemperature:(nullable SDLTemperature *)externalTemperature cabinTemperature:(nullable SDLTemperature *)cabinTemperature atmosphericPressure:(nullable NSNumber<SDLFloat> *)atmosphericPressure;
+
+/**
+ * The external temperature in degrees celsius
+ */
+@property (nullable, strong, nonatomic) SDLTemperature *externalTemperature;
+
+/**
+ * Internal ambient cabin temperature in degrees celsius
+ */
+@property (nullable, strong, nonatomic) SDLTemperature *cabinTemperature;
+
+/**
+ * Current atmospheric pressure in mBar
+ * {"num_min_value": 0.0, "num_max_value": 2000.0}
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLFloat> *atmosphericPressure;
+
+@end
+
+NS_ASSUME_NONNULL_END \ No newline at end of file
diff --git a/SmartDeviceLink/public/SDLClimateData.m b/SmartDeviceLink/public/SDLClimateData.m
new file mode 100644
index 000000000..990370333
--- /dev/null
+++ b/SmartDeviceLink/public/SDLClimateData.m
@@ -0,0 +1,78 @@
+/*
+ * Copyright (c) 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.
+ */
+
+#import "NSMutableDictionary+Store.h"
+#import "SDLClimateData.h"
+#import "SDLRPCParameterNames.h"
+#import "SDLTemperature.h"
+
+NS_ASSUME_NONNULL_BEGIN
+@implementation SDLClimateData
+
+- (instancetype)initWithExternalTemperature:(nullable SDLTemperature *)externalTemperature cabinTemperature:(nullable SDLTemperature *)cabinTemperature atmosphericPressure:(nullable NSNumber<SDLFloat> *)atmosphericPressure {
+ self = [self init];
+ if (!self) {
+ return nil;
+ }
+ self.externalTemperature = externalTemperature;
+ self.cabinTemperature = cabinTemperature;
+ self.atmosphericPressure = atmosphericPressure;
+ return self;
+}
+
+- (void)setExternalTemperature:(nullable SDLTemperature *)externalTemperature {
+ [self.store sdl_setObject:externalTemperature forName:SDLRPCParameterNameExternalTemperature];
+}
+
+- (nullable SDLTemperature *)externalTemperature {
+ return [self.store sdl_objectForName:SDLRPCParameterNameExternalTemperature ofClass:SDLTemperature.class error:nil];
+}
+
+- (void)setCabinTemperature:(nullable SDLTemperature *)cabinTemperature {
+ [self.store sdl_setObject:cabinTemperature forName:SDLRPCParameterNameCabinTemperature];
+}
+
+- (nullable SDLTemperature *)cabinTemperature {
+ return [self.store sdl_objectForName:SDLRPCParameterNameCabinTemperature ofClass:SDLTemperature.class error:nil];
+}
+
+- (void)setAtmosphericPressure:(nullable NSNumber<SDLFloat> *)atmosphericPressure {
+ [self.store sdl_setObject:atmosphericPressure forName:SDLRPCParameterNameAtmosphericPressure];
+}
+
+- (nullable NSNumber<SDLFloat> *)atmosphericPressure {
+ return [self.store sdl_objectForName:SDLRPCParameterNameAtmosphericPressure ofClass:NSNumber.class error:nil];
+}
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/public/SDLGetVehicleData.h b/SmartDeviceLink/public/SDLGetVehicleData.h
index e8c30889c..470cf8ee8 100644
--- a/SmartDeviceLink/public/SDLGetVehicleData.h
+++ b/SmartDeviceLink/public/SDLGetVehicleData.h
@@ -52,7 +52,7 @@ NS_ASSUME_NONNULL_BEGIN
* @param wiperStatus Get wiperStatus data
* @return A SDLGetVehicleData object
*/
-- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation cloudAppVehicleID:(BOOL)cloudAppVehicleID clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal vin:(BOOL)vin wiperStatus:(BOOL)wiperStatus __deprecated_msg("Use initWithGps:speed:rpm:instantFuelConsumption:fuelRange:externalTemperature:turnSignal:vin:gearStatus:tirePressure:odometer:beltStatus:bodyInformation:deviceStatus:driverBraking:wiperStatus:headLampStatus:engineTorque:accPedalPosition:steeringWheelAngle:engineOilLife:electronicParkBrakeStatus:cloudAppVehicleID:stabilityControlsStatus:eCallInfo:airbagStatus:emergencyEvent:clusterModeStatus:myKey:handsOffSteering:windowStatus: instead");
+- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation cloudAppVehicleID:(BOOL)cloudAppVehicleID clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal vin:(BOOL)vin wiperStatus:(BOOL)wiperStatus __deprecated_msg("Use initWithGps:speed:rpm:instantFuelConsumption:fuelRange:climateData:turnSignal:vin:gearStatus:tirePressure:odometer:beltStatus:bodyInformation:deviceStatus:driverBraking:wiperStatus:headLampStatus:engineTorque:accPedalPosition:steeringWheelAngle:engineOilLife:electronicParkBrakeStatus:cloudAppVehicleID:stabilityControlsStatus:eCallInfo:airbagStatus:emergencyEvent:clusterModeStatus:myKey:windowStatus:handsOffSteering:seatOccupancy: instead");
/**
* Convenience init for getting data for all possible vehicle data items.
@@ -90,7 +90,45 @@ NS_ASSUME_NONNULL_BEGIN
* @param windowStatus - windowStatus
* @return A SDLGetVehicleData object
*/
-- (instancetype)initWithGps:(nullable NSNumber<SDLBool> *)gps speed:(nullable NSNumber<SDLBool> *)speed rpm:(nullable NSNumber<SDLBool> *)rpm instantFuelConsumption:(nullable NSNumber<SDLBool> *)instantFuelConsumption fuelRange:(nullable NSNumber<SDLBool> *)fuelRange externalTemperature:(nullable NSNumber<SDLBool> *)externalTemperature turnSignal:(nullable NSNumber<SDLBool> *)turnSignal vin:(nullable NSNumber<SDLBool> *)vin gearStatus:(nullable NSNumber<SDLBool> *)gearStatus tirePressure:(nullable NSNumber<SDLBool> *)tirePressure odometer:(nullable NSNumber<SDLBool> *)odometer beltStatus:(nullable NSNumber<SDLBool> *)beltStatus bodyInformation:(nullable NSNumber<SDLBool> *)bodyInformation deviceStatus:(nullable NSNumber<SDLBool> *)deviceStatus driverBraking:(nullable NSNumber<SDLBool> *)driverBraking wiperStatus:(nullable NSNumber<SDLBool> *)wiperStatus headLampStatus:(nullable NSNumber<SDLBool> *)headLampStatus engineTorque:(nullable NSNumber<SDLBool> *)engineTorque accPedalPosition:(nullable NSNumber<SDLBool> *)accPedalPosition steeringWheelAngle:(nullable NSNumber<SDLBool> *)steeringWheelAngle engineOilLife:(nullable NSNumber<SDLBool> *)engineOilLife electronicParkBrakeStatus:(nullable NSNumber<SDLBool> *)electronicParkBrakeStatus cloudAppVehicleID:(nullable NSNumber<SDLBool> *)cloudAppVehicleID stabilityControlsStatus:(nullable NSNumber<SDLBool> *)stabilityControlsStatus eCallInfo:(nullable NSNumber<SDLBool> *)eCallInfo airbagStatus:(nullable NSNumber<SDLBool> *)airbagStatus emergencyEvent:(nullable NSNumber<SDLBool> *)emergencyEvent clusterModeStatus:(nullable NSNumber<SDLBool> *)clusterModeStatus myKey:(nullable NSNumber<SDLBool> *)myKey handsOffSteering:(nullable NSNumber<SDLBool> *)handsOffSteering windowStatus:(nullable NSNumber<SDLBool> *)windowStatus;
+- (instancetype)initWithGps:(nullable NSNumber<SDLBool> *)gps speed:(nullable NSNumber<SDLBool> *)speed rpm:(nullable NSNumber<SDLBool> *)rpm instantFuelConsumption:(nullable NSNumber<SDLBool> *)instantFuelConsumption fuelRange:(nullable NSNumber<SDLBool> *)fuelRange externalTemperature:(nullable NSNumber<SDLBool> *)externalTemperature turnSignal:(nullable NSNumber<SDLBool> *)turnSignal vin:(nullable NSNumber<SDLBool> *)vin gearStatus:(nullable NSNumber<SDLBool> *)gearStatus tirePressure:(nullable NSNumber<SDLBool> *)tirePressure odometer:(nullable NSNumber<SDLBool> *)odometer beltStatus:(nullable NSNumber<SDLBool> *)beltStatus bodyInformation:(nullable NSNumber<SDLBool> *)bodyInformation deviceStatus:(nullable NSNumber<SDLBool> *)deviceStatus driverBraking:(nullable NSNumber<SDLBool> *)driverBraking wiperStatus:(nullable NSNumber<SDLBool> *)wiperStatus headLampStatus:(nullable NSNumber<SDLBool> *)headLampStatus engineTorque:(nullable NSNumber<SDLBool> *)engineTorque accPedalPosition:(nullable NSNumber<SDLBool> *)accPedalPosition steeringWheelAngle:(nullable NSNumber<SDLBool> *)steeringWheelAngle engineOilLife:(nullable NSNumber<SDLBool> *)engineOilLife electronicParkBrakeStatus:(nullable NSNumber<SDLBool> *)electronicParkBrakeStatus cloudAppVehicleID:(nullable NSNumber<SDLBool> *)cloudAppVehicleID stabilityControlsStatus:(nullable NSNumber<SDLBool> *)stabilityControlsStatus eCallInfo:(nullable NSNumber<SDLBool> *)eCallInfo airbagStatus:(nullable NSNumber<SDLBool> *)airbagStatus emergencyEvent:(nullable NSNumber<SDLBool> *)emergencyEvent clusterModeStatus:(nullable NSNumber<SDLBool> *)clusterModeStatus myKey:(nullable NSNumber<SDLBool> *)myKey handsOffSteering:(nullable NSNumber<SDLBool> *)handsOffSteering windowStatus:(nullable NSNumber<SDLBool> *)windowStatus __deprecated_msg("Use initWithGps:speed:rpm:instantFuelConsumption:fuelRange:climateData:turnSignal:vin:gearStatus:tirePressure:odometer:beltStatus:bodyInformation:deviceStatus:driverBraking:wiperStatus:headLampStatus:engineTorque:accPedalPosition:steeringWheelAngle:engineOilLife:electronicParkBrakeStatus:cloudAppVehicleID:stabilityControlsStatus:eCallInfo:airbagStatus:emergencyEvent:clusterModeStatus:myKey:windowStatus:handsOffSteering:seatOccupancy: instead");
+
+/**
+ * Convenience init for getting data for all possible vehicle data items.
+ *
+ * @param gps - gps
+ * @param speed - speed
+ * @param rpm - rpm
+ * @param instantFuelConsumption - instantFuelConsumption
+ * @param fuelRange - fuelRange
+ * @param climateData - climateData
+ * @param turnSignal - turnSignal
+ * @param vin - vin
+ * @param gearStatus - gearStatus
+ * @param tirePressure - tirePressure
+ * @param odometer - odometer
+ * @param beltStatus - beltStatus
+ * @param bodyInformation - bodyInformation
+ * @param deviceStatus - deviceStatus
+ * @param driverBraking - driverBraking
+ * @param wiperStatus - wiperStatus
+ * @param headLampStatus - headLampStatus
+ * @param engineTorque - engineTorque
+ * @param accPedalPosition - accPedalPosition
+ * @param steeringWheelAngle - steeringWheelAngle
+ * @param engineOilLife - engineOilLife
+ * @param electronicParkBrakeStatus - electronicParkBrakeStatus
+ * @param cloudAppVehicleID - cloudAppVehicleID
+ * @param stabilityControlsStatus - stabilityControlsStatus
+ * @param eCallInfo - eCallInfo
+ * @param airbagStatus - airbagStatus
+ * @param emergencyEvent - emergencyEvent
+ * @param clusterModeStatus - clusterModeStatus
+ * @param myKey - myKey
+ * @param handsOffSteering - handsOffSteering
+ * @param windowStatus - windowStatus
+ * @param seatOccupancy - seatOccupancy
+ */
+- (instancetype)initWithGps:(nullable NSNumber<SDLBool> *)gps speed:(nullable NSNumber<SDLBool> *)speed rpm:(nullable NSNumber<SDLBool> *)rpm instantFuelConsumption:(nullable NSNumber<SDLBool> *)instantFuelConsumption fuelRange:(nullable NSNumber<SDLBool> *)fuelRange climateData:(nullable NSNumber<SDLBool> *)climateData turnSignal:(nullable NSNumber<SDLBool> *)turnSignal vin:(nullable NSNumber<SDLBool> *)vin gearStatus:(nullable NSNumber<SDLBool> *)gearStatus tirePressure:(nullable NSNumber<SDLBool> *)tirePressure odometer:(nullable NSNumber<SDLBool> *)odometer beltStatus:(nullable NSNumber<SDLBool> *)beltStatus bodyInformation:(nullable NSNumber<SDLBool> *)bodyInformation deviceStatus:(nullable NSNumber<SDLBool> *)deviceStatus driverBraking:(nullable NSNumber<SDLBool> *)driverBraking wiperStatus:(nullable NSNumber<SDLBool> *)wiperStatus headLampStatus:(nullable NSNumber<SDLBool> *)headLampStatus engineTorque:(nullable NSNumber<SDLBool> *)engineTorque accPedalPosition:(nullable NSNumber<SDLBool> *)accPedalPosition steeringWheelAngle:(nullable NSNumber<SDLBool> *)steeringWheelAngle engineOilLife:(nullable NSNumber<SDLBool> *)engineOilLife electronicParkBrakeStatus:(nullable NSNumber<SDLBool> *)electronicParkBrakeStatus cloudAppVehicleID:(nullable NSNumber<SDLBool> *)cloudAppVehicleID stabilityControlsStatus:(nullable NSNumber<SDLBool> *)stabilityControlsStatus eCallInfo:(nullable NSNumber<SDLBool> *)eCallInfo airbagStatus:(nullable NSNumber<SDLBool> *)airbagStatus emergencyEvent:(nullable NSNumber<SDLBool> *)emergencyEvent clusterModeStatus:(nullable NSNumber<SDLBool> *)clusterModeStatus myKey:(nullable NSNumber<SDLBool> *)myKey windowStatus:(nullable NSNumber<SDLBool> *)windowStatus handsOffSteering:(nullable NSNumber<SDLBool> *)handsOffSteering seatOccupancy:(nullable NSNumber<SDLBool> *)seatOccupancy;
/**
* See GearStatus
@@ -135,9 +173,19 @@ NS_ASSUME_NONNULL_BEGIN
@property (nullable, strong, nonatomic) NSNumber<SDLBool> *instantFuelConsumption;
/**
- * A boolean value. If true, requests External Temperature data.
+ * See ClimateData
+ *
+ * @added in SmartDeviceLink 7.1.0
*/
-@property (nullable, strong, nonatomic) NSNumber<SDLBool> *externalTemperature;
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *climateData;
+
+/**
+ * The external temperature in degrees celsius. This parameter is deprecated starting RPC Spec 7.1, please see climateData.
+ *
+ * @deprecated in SmartDeviceLink 7.1.0
+ * @added in SmartDeviceLink 2.0.0
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *externalTemperature __deprecated_msg("Use climateData instead on 7.1+ RPC version connections");
/**
* A boolean value. If true, requests the Vehicle Identification Number.
@@ -289,6 +337,13 @@ NS_ASSUME_NONNULL_BEGIN
*/
- (nullable NSNumber<SDLBool> *)getOEMCustomVehicleData:(NSString *)vehicleDataName;
+/**
+ * See SeatOccupancy
+ *
+ * @added in SmartDeviceLink 7.1.0
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *seatOccupancy;
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/public/SDLGetVehicleData.m b/SmartDeviceLink/public/SDLGetVehicleData.m
index abae28008..30d1728c0 100644
--- a/SmartDeviceLink/public/SDLGetVehicleData.m
+++ b/SmartDeviceLink/public/SDLGetVehicleData.m
@@ -24,19 +24,31 @@ NS_ASSUME_NONNULL_BEGIN
#pragma clang diagnostic pop
- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation cloudAppVehicleID:(BOOL)cloudAppVehicleID clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal vin:(BOOL)vin wiperStatus:(BOOL)wiperStatus {
- self = [self initWithGps:@(gps) speed:@(speed) rpm:@(rpm) instantFuelConsumption:@(instantFuelConsumption) fuelRange:@(fuelRange) externalTemperature:@(externalTemperature) turnSignal:@(turnSignal) vin:@(vin) gearStatus:nil tirePressure:@(tirePressure) odometer:@(odometer) beltStatus:@(beltStatus) bodyInformation:@(bodyInformation) deviceStatus:@(deviceStatus) driverBraking:@(driverBraking) wiperStatus:@(wiperStatus) headLampStatus:@(headLampStatus) engineTorque:@(engineTorque) accPedalPosition:@(accelerationPedalPosition) steeringWheelAngle:@(steeringWheelAngle) engineOilLife:@(engineOilLife) electronicParkBrakeStatus:@(electronicParkBrakeStatus) cloudAppVehicleID:@(cloudAppVehicleID) stabilityControlsStatus:nil eCallInfo:@(eCallInfo) airbagStatus:@(airbagStatus) emergencyEvent:@(emergencyEvent) clusterModeStatus:@(clusterModeStatus) myKey:@(myKey) handsOffSteering:nil windowStatus:nil];
+ self = [self initWithGps:@(gps) speed:@(speed) rpm:@(rpm) instantFuelConsumption:@(instantFuelConsumption) fuelRange:@(fuelRange) climateData:nil turnSignal:@(turnSignal) vin:@(vin) gearStatus:nil tirePressure:@(tirePressure) odometer:@(odometer) beltStatus:@(beltStatus) bodyInformation:@(bodyInformation) deviceStatus:@(deviceStatus) driverBraking:@(driverBraking) wiperStatus:@(wiperStatus) headLampStatus:@(headLampStatus) engineTorque:@(engineTorque) accPedalPosition:@(accelerationPedalPosition) steeringWheelAngle:@(steeringWheelAngle) engineOilLife:@(engineOilLife) electronicParkBrakeStatus:@(electronicParkBrakeStatus) cloudAppVehicleID:@(cloudAppVehicleID) stabilityControlsStatus:nil eCallInfo:@(eCallInfo) airbagStatus:@(airbagStatus) emergencyEvent:@(emergencyEvent) clusterModeStatus:@(clusterModeStatus) myKey:@(myKey) windowStatus:nil handsOffSteering:nil seatOccupancy:nil];
if (self) {
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
self.fuelLevel = @(fuelLevel);
self.fuelLevel_State = @(fuelLevelState);
self.prndl = @(prndl);
+ self.externalTemperature = @(externalTemperature);
#pragma clang diagnostic pop
}
return self;
}
- (instancetype)initWithGps:(nullable NSNumber<SDLBool> *)gps speed:(nullable NSNumber<SDLBool> *)speed rpm:(nullable NSNumber<SDLBool> *)rpm instantFuelConsumption:(nullable NSNumber<SDLBool> *)instantFuelConsumption fuelRange:(nullable NSNumber<SDLBool> *)fuelRange externalTemperature:(nullable NSNumber<SDLBool> *)externalTemperature turnSignal:(nullable NSNumber<SDLBool> *)turnSignal vin:(nullable NSNumber<SDLBool> *)vin gearStatus:(nullable NSNumber<SDLBool> *)gearStatus tirePressure:(nullable NSNumber<SDLBool> *)tirePressure odometer:(nullable NSNumber<SDLBool> *)odometer beltStatus:(nullable NSNumber<SDLBool> *)beltStatus bodyInformation:(nullable NSNumber<SDLBool> *)bodyInformation deviceStatus:(nullable NSNumber<SDLBool> *)deviceStatus driverBraking:(nullable NSNumber<SDLBool> *)driverBraking wiperStatus:(nullable NSNumber<SDLBool> *)wiperStatus headLampStatus:(nullable NSNumber<SDLBool> *)headLampStatus engineTorque:(nullable NSNumber<SDLBool> *)engineTorque accPedalPosition:(nullable NSNumber<SDLBool> *)accPedalPosition steeringWheelAngle:(nullable NSNumber<SDLBool> *)steeringWheelAngle engineOilLife:(nullable NSNumber<SDLBool> *)engineOilLife electronicParkBrakeStatus:(nullable NSNumber<SDLBool> *)electronicParkBrakeStatus cloudAppVehicleID:(nullable NSNumber<SDLBool> *)cloudAppVehicleID stabilityControlsStatus:(nullable NSNumber<SDLBool> *)stabilityControlsStatus eCallInfo:(nullable NSNumber<SDLBool> *)eCallInfo airbagStatus:(nullable NSNumber<SDLBool> *)airbagStatus emergencyEvent:(nullable NSNumber<SDLBool> *)emergencyEvent clusterModeStatus:(nullable NSNumber<SDLBool> *)clusterModeStatus myKey:(nullable NSNumber<SDLBool> *)myKey handsOffSteering:(nullable NSNumber<SDLBool> *)handsOffSteering windowStatus:(nullable NSNumber<SDLBool> *)windowStatus {
+ self = [self initWithGps:gps speed:speed rpm:rpm instantFuelConsumption:instantFuelConsumption fuelRange:fuelRange climateData:nil turnSignal:turnSignal vin:vin gearStatus:gearStatus tirePressure:tirePressure odometer:odometer beltStatus:beltStatus bodyInformation:bodyInformation deviceStatus:deviceStatus driverBraking:driverBraking wiperStatus:wiperStatus headLampStatus:headLampStatus engineTorque:engineTorque accPedalPosition:accPedalPosition steeringWheelAngle:steeringWheelAngle engineOilLife:engineOilLife electronicParkBrakeStatus:electronicParkBrakeStatus cloudAppVehicleID:cloudAppVehicleID stabilityControlsStatus:stabilityControlsStatus eCallInfo:eCallInfo airbagStatus:airbagStatus emergencyEvent:emergencyEvent clusterModeStatus:clusterModeStatus myKey:myKey windowStatus:windowStatus handsOffSteering:handsOffSteering seatOccupancy:nil];
+ if (self) {
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ self.externalTemperature = externalTemperature;
+#pragma clang diagnostic pop
+ }
+ return self;
+}
+
+- (instancetype)initWithGps:(nullable NSNumber<SDLBool> *)gps speed:(nullable NSNumber<SDLBool> *)speed rpm:(nullable NSNumber<SDLBool> *)rpm instantFuelConsumption:(nullable NSNumber<SDLBool> *)instantFuelConsumption fuelRange:(nullable NSNumber<SDLBool> *)fuelRange climateData:(nullable NSNumber<SDLBool> *)climateData turnSignal:(nullable NSNumber<SDLBool> *)turnSignal vin:(nullable NSNumber<SDLBool> *)vin gearStatus:(nullable NSNumber<SDLBool> *)gearStatus tirePressure:(nullable NSNumber<SDLBool> *)tirePressure odometer:(nullable NSNumber<SDLBool> *)odometer beltStatus:(nullable NSNumber<SDLBool> *)beltStatus bodyInformation:(nullable NSNumber<SDLBool> *)bodyInformation deviceStatus:(nullable NSNumber<SDLBool> *)deviceStatus driverBraking:(nullable NSNumber<SDLBool> *)driverBraking wiperStatus:(nullable NSNumber<SDLBool> *)wiperStatus headLampStatus:(nullable NSNumber<SDLBool> *)headLampStatus engineTorque:(nullable NSNumber<SDLBool> *)engineTorque accPedalPosition:(nullable NSNumber<SDLBool> *)accPedalPosition steeringWheelAngle:(nullable NSNumber<SDLBool> *)steeringWheelAngle engineOilLife:(nullable NSNumber<SDLBool> *)engineOilLife electronicParkBrakeStatus:(nullable NSNumber<SDLBool> *)electronicParkBrakeStatus cloudAppVehicleID:(nullable NSNumber<SDLBool> *)cloudAppVehicleID stabilityControlsStatus:(nullable NSNumber<SDLBool> *)stabilityControlsStatus eCallInfo:(nullable NSNumber<SDLBool> *)eCallInfo airbagStatus:(nullable NSNumber<SDLBool> *)airbagStatus emergencyEvent:(nullable NSNumber<SDLBool> *)emergencyEvent clusterModeStatus:(nullable NSNumber<SDLBool> *)clusterModeStatus myKey:(nullable NSNumber<SDLBool> *)myKey windowStatus:(nullable NSNumber<SDLBool> *)windowStatus handsOffSteering:(nullable NSNumber<SDLBool> *)handsOffSteering seatOccupancy:(nullable NSNumber<SDLBool> *)seatOccupancy {
self = [self init];
if (!self) {
return nil;
@@ -46,7 +58,7 @@ NS_ASSUME_NONNULL_BEGIN
self.rpm = rpm;
self.instantFuelConsumption = instantFuelConsumption;
self.fuelRange = fuelRange;
- self.externalTemperature = externalTemperature;
+ self.climateData = climateData;
self.turnSignal = turnSignal;
self.vin = vin;
self.gearStatus = gearStatus;
@@ -70,8 +82,9 @@ NS_ASSUME_NONNULL_BEGIN
self.emergencyEvent = emergencyEvent;
self.clusterModeStatus = clusterModeStatus;
self.myKey = myKey;
- self.handsOffSteering = handsOffSteering;
self.windowStatus = windowStatus;
+ self.handsOffSteering = handsOffSteering;
+ self.seatOccupancy = seatOccupancy;
return self;
}
@@ -131,6 +144,14 @@ NS_ASSUME_NONNULL_BEGIN
return [self.parameters sdl_objectForName:SDLRPCParameterNameInstantFuelConsumption ofClass:NSNumber.class error:nil];
}
+- (void)setClimateData:(nullable NSNumber<SDLBool> *)climateData {
+ [self.parameters sdl_setObject:climateData forName:SDLRPCParameterNameClimateData];
+}
+
+- (nullable NSNumber<SDLBool> *)climateData {
+ return [self.parameters sdl_objectForName:SDLRPCParameterNameClimateData ofClass:NSNumber.class error:nil];
+}
+
- (void)setExternalTemperature:(nullable NSNumber<SDLBool> *)externalTemperature {
[self.parameters sdl_setObject:externalTemperature forName:SDLRPCParameterNameExternalTemperature];
}
@@ -356,6 +377,14 @@ NS_ASSUME_NONNULL_BEGIN
return [self.parameters sdl_objectForName:SDLRPCParameterNameHandsOffSteering ofClass:NSNumber.class error:nil];
}
+- (void)setSeatOccupancy:(nullable NSNumber<SDLBool> *)seatOccupancy {
+ [self.parameters sdl_setObject:seatOccupancy forName:SDLRPCParameterNameSeatOccupancy];
+}
+
+- (nullable NSNumber<SDLBool> *)seatOccupancy {
+ return [self.parameters sdl_objectForName:SDLRPCParameterNameSeatOccupancy ofClass:NSNumber.class error:nil];
+}
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/public/SDLGetVehicleDataResponse.h b/SmartDeviceLink/public/SDLGetVehicleDataResponse.h
index 6f24221b4..79d72199f 100644
--- a/SmartDeviceLink/public/SDLGetVehicleDataResponse.h
+++ b/SmartDeviceLink/public/SDLGetVehicleDataResponse.h
@@ -13,6 +13,7 @@
@class SDLAirbagStatus;
@class SDLBeltStatus;
@class SDLBodyInformation;
+@class SDLClimateData;
@class SDLClusterModeStatus;
@class SDLDeviceStatus;
@class SDLECallInfo;
@@ -22,11 +23,11 @@
@class SDLGPSData;
@class SDLHeadLampStatus;
@class SDLMyKey;
+@class SDLSeatOccupancy;
@class SDLStabilityControlsStatus;
@class SDLTireStatus;
@class SDLWindowStatus;
-
/**
* Response to SDLGetVehicleData
*
@@ -73,7 +74,46 @@ NS_ASSUME_NONNULL_BEGIN
* @param windowStatus - windowStatus
* @return A SDLGetVehicleDataResponse object
*/
-- (instancetype)initWithGps:(nullable SDLGPSData *)gps speed:(nullable NSNumber<SDLFloat> *)speed rpm:(nullable NSNumber<SDLUInt> *)rpm instantFuelConsumption:(nullable NSNumber<SDLFloat> *)instantFuelConsumption fuelRange:(nullable NSArray<SDLFuelRange *> *)fuelRange externalTemperature:(nullable NSNumber<SDLFloat> *)externalTemperature turnSignal:(nullable SDLTurnSignal)turnSignal vin:(nullable NSString *)vin gearStatus:(nullable SDLGearStatus *)gearStatus tirePressure:(nullable SDLTireStatus *)tirePressure odometer:(nullable NSNumber<SDLUInt> *)odometer beltStatus:(nullable SDLBeltStatus *)beltStatus bodyInformation:(nullable SDLBodyInformation *)bodyInformation deviceStatus:(nullable SDLDeviceStatus *)deviceStatus driverBraking:(nullable SDLVehicleDataEventStatus)driverBraking wiperStatus:(nullable SDLWiperStatus)wiperStatus headLampStatus:(nullable SDLHeadLampStatus *)headLampStatus engineTorque:(nullable NSNumber<SDLFloat> *)engineTorque accPedalPosition:(nullable NSNumber<SDLFloat> *)accPedalPosition steeringWheelAngle:(nullable NSNumber<SDLFloat> *)steeringWheelAngle engineOilLife:(nullable NSNumber<SDLFloat> *)engineOilLife electronicParkBrakeStatus:(nullable SDLElectronicParkBrakeStatus)electronicParkBrakeStatus cloudAppVehicleID:(nullable NSString *)cloudAppVehicleID stabilityControlsStatus:(nullable SDLStabilityControlsStatus *)stabilityControlsStatus eCallInfo:(nullable SDLECallInfo *)eCallInfo airbagStatus:(nullable SDLAirbagStatus *)airbagStatus emergencyEvent:(nullable SDLEmergencyEvent *)emergencyEvent clusterModeStatus:(nullable SDLClusterModeStatus *)clusterModeStatus myKey:(nullable SDLMyKey *)myKey handsOffSteering:(nullable NSNumber<SDLBool> *)handsOffSteering windowStatus:(nullable NSArray<SDLWindowStatus *> *)windowStatus;
+- (instancetype)initWithGps:(nullable SDLGPSData *)gps speed:(nullable NSNumber<SDLFloat> *)speed rpm:(nullable NSNumber<SDLUInt> *)rpm instantFuelConsumption:(nullable NSNumber<SDLFloat> *)instantFuelConsumption fuelRange:(nullable NSArray<SDLFuelRange *> *)fuelRange externalTemperature:(nullable NSNumber<SDLFloat> *)externalTemperature turnSignal:(nullable SDLTurnSignal)turnSignal vin:(nullable NSString *)vin gearStatus:(nullable SDLGearStatus *)gearStatus tirePressure:(nullable SDLTireStatus *)tirePressure odometer:(nullable NSNumber<SDLUInt> *)odometer beltStatus:(nullable SDLBeltStatus *)beltStatus bodyInformation:(nullable SDLBodyInformation *)bodyInformation deviceStatus:(nullable SDLDeviceStatus *)deviceStatus driverBraking:(nullable SDLVehicleDataEventStatus)driverBraking wiperStatus:(nullable SDLWiperStatus)wiperStatus headLampStatus:(nullable SDLHeadLampStatus *)headLampStatus engineTorque:(nullable NSNumber<SDLFloat> *)engineTorque accPedalPosition:(nullable NSNumber<SDLFloat> *)accPedalPosition steeringWheelAngle:(nullable NSNumber<SDLFloat> *)steeringWheelAngle engineOilLife:(nullable NSNumber<SDLFloat> *)engineOilLife electronicParkBrakeStatus:(nullable SDLElectronicParkBrakeStatus)electronicParkBrakeStatus cloudAppVehicleID:(nullable NSString *)cloudAppVehicleID stabilityControlsStatus:(nullable SDLStabilityControlsStatus *)stabilityControlsStatus eCallInfo:(nullable SDLECallInfo *)eCallInfo airbagStatus:(nullable SDLAirbagStatus *)airbagStatus emergencyEvent:(nullable SDLEmergencyEvent *)emergencyEvent clusterModeStatus:(nullable SDLClusterModeStatus *)clusterModeStatus myKey:(nullable SDLMyKey *)myKey handsOffSteering:(nullable NSNumber<SDLBool> *)handsOffSteering windowStatus:(nullable NSArray<SDLWindowStatus *> *)windowStatus __deprecated_msg("Use initWithGps:speed:rpm:instantFuelConsumption:fuelRange:climateData:turnSignal:vin:gearStatus:tirePressure:odometer:beltStatus:bodyInformation:deviceStatus:driverBraking:wiperStatus:headLampStatus:engineTorque:accPedalPosition:steeringWheelAngle:engineOilLife:electronicParkBrakeStatus:cloudAppVehicleID:stabilityControlsStatus:eCallInfo:airbagStatus:emergencyEvent:clusterModeStatus:myKey:windowStatus:handsOffSteering:seatOccupancy: instead");
+
+/**
+ * Convenience init for initializing data for all possible vehicle data items.
+ *
+ * @param gps - gps
+ * @param speed - speed
+ * @param rpm - rpm
+ * @param instantFuelConsumption - instantFuelConsumption
+ * @param fuelRange - fuelRange
+ * @param climateData - climateData
+ * @param turnSignal - turnSignal
+ * @param vin - vin
+ * @param gearStatus - gearStatus
+ * @param tirePressure - tirePressure
+ * @param odometer - odometer
+ * @param beltStatus - beltStatus
+ * @param bodyInformation - bodyInformation
+ * @param deviceStatus - deviceStatus
+ * @param driverBraking - driverBraking
+ * @param wiperStatus - wiperStatus
+ * @param headLampStatus - headLampStatus
+ * @param engineTorque - engineTorque
+ * @param accPedalPosition - accPedalPosition
+ * @param steeringWheelAngle - steeringWheelAngle
+ * @param engineOilLife - engineOilLife
+ * @param electronicParkBrakeStatus - electronicParkBrakeStatus
+ * @param cloudAppVehicleID - cloudAppVehicleID
+ * @param stabilityControlsStatus - stabilityControlsStatus
+ * @param eCallInfo - eCallInfo
+ * @param airbagStatus - airbagStatus
+ * @param emergencyEvent - emergencyEvent
+ * @param clusterModeStatus - clusterModeStatus
+ * @param myKey - myKey
+ * @param windowStatus - windowStatus
+ * @param handsOffSteering - handsOffSteering
+ * @param seatOccupancy - seatOccupancy
+ * @return A SDLGetVehicleDataResponse object
+ */
+- (instancetype)initWithGps:(nullable SDLGPSData *)gps speed:(nullable NSNumber<SDLFloat> *)speed rpm:(nullable NSNumber<SDLUInt> *)rpm instantFuelConsumption:(nullable NSNumber<SDLFloat> *)instantFuelConsumption fuelRange:(nullable NSArray<SDLFuelRange *> *)fuelRange climateData:(nullable SDLClimateData *)climateData turnSignal:(nullable SDLTurnSignal)turnSignal vin:(nullable NSString *)vin gearStatus:(nullable SDLGearStatus *)gearStatus tirePressure:(nullable SDLTireStatus *)tirePressure odometer:(nullable NSNumber<SDLUInt> *)odometer beltStatus:(nullable SDLBeltStatus *)beltStatus bodyInformation:(nullable SDLBodyInformation *)bodyInformation deviceStatus:(nullable SDLDeviceStatus *)deviceStatus driverBraking:(nullable SDLVehicleDataEventStatus)driverBraking wiperStatus:(nullable SDLWiperStatus)wiperStatus headLampStatus:(nullable SDLHeadLampStatus *)headLampStatus engineTorque:(nullable NSNumber<SDLFloat> *)engineTorque accPedalPosition:(nullable NSNumber<SDLFloat> *)accPedalPosition steeringWheelAngle:(nullable NSNumber<SDLFloat> *)steeringWheelAngle engineOilLife:(nullable NSNumber<SDLFloat> *)engineOilLife electronicParkBrakeStatus:(nullable SDLElectronicParkBrakeStatus)electronicParkBrakeStatus cloudAppVehicleID:(nullable NSString *)cloudAppVehicleID stabilityControlsStatus:(nullable SDLStabilityControlsStatus *)stabilityControlsStatus eCallInfo:(nullable SDLECallInfo *)eCallInfo airbagStatus:(nullable SDLAirbagStatus *)airbagStatus emergencyEvent:(nullable SDLEmergencyEvent *)emergencyEvent clusterModeStatus:(nullable SDLClusterModeStatus *)clusterModeStatus myKey:(nullable SDLMyKey *)myKey windowStatus:(nullable NSArray<SDLWindowStatus *> *)windowStatus handsOffSteering:(nullable NSNumber<SDLBool> *)handsOffSteering seatOccupancy:(nullable SDLSeatOccupancy *)seatOccupancy;
/**
* See GearStatus
@@ -120,9 +160,20 @@ NS_ASSUME_NONNULL_BEGIN
@property (nullable, strong, nonatomic) NSNumber<SDLFloat> *instantFuelConsumption;
/**
- The external temperature in degrees celsius.
+ * See ClimateData
+ *
+ * @added in SmartDeviceLink 7.1.0
*/
-@property (nullable, strong, nonatomic) NSNumber<SDLFloat> *externalTemperature;
+@property (nullable, strong, nonatomic) SDLClimateData *climateData;
+
+/**
+ * The external temperature in degrees celsius. This parameter is deprecated starting RPC Spec 7.1, please see climateData.
+ * {"num_min_value": -40.0, "num_max_value": 100.0}
+ *
+ * @deprecated in SmartDeviceLink 7.1.0
+ * @added in SmartDeviceLink 2.0.0
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLFloat> *externalTemperature __deprecated_msg("Use climateData instead on 7.1+ RPC version connections");
/**
The Vehicle Identification Number
@@ -275,6 +326,13 @@ NS_ASSUME_NONNULL_BEGIN
*/
- (nullable NSObject *)getOEMCustomVehicleData:(NSString *)vehicleDataName;
+/**
+ * See SeatOccupancy
+ *
+ * @added in SmartDeviceLink 7.1.0
+ */
+@property (nullable, strong, nonatomic) SDLSeatOccupancy *seatOccupancy;
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/public/SDLGetVehicleDataResponse.m b/SmartDeviceLink/public/SDLGetVehicleDataResponse.m
index 47f5a66eb..b5fc22261 100644
--- a/SmartDeviceLink/public/SDLGetVehicleDataResponse.m
+++ b/SmartDeviceLink/public/SDLGetVehicleDataResponse.m
@@ -8,6 +8,7 @@
#import "SDLAirbagStatus.h"
#import "SDLBeltStatus.h"
#import "SDLBodyInformation.h"
+#import "SDLClimateData.h"
#import "SDLClusterModeStatus.h"
#import "SDLDeviceStatus.h"
#import "SDLECallInfo.h"
@@ -19,6 +20,7 @@
#import "SDLMyKey.h"
#import "SDLRPCParameterNames.h"
#import "SDLRPCFunctionNames.h"
+#import "SDLSeatOccupancy.h"
#import "SDLStabilityControlsStatus.h"
#import "SDLTireStatus.h"
#import "SDLWindowStatus.h"
@@ -39,6 +41,18 @@ NS_ASSUME_NONNULL_BEGIN
#pragma clang diagnostic pop
- (instancetype)initWithGps:(nullable SDLGPSData *)gps speed:(nullable NSNumber<SDLFloat> *)speed rpm:(nullable NSNumber<SDLUInt> *)rpm instantFuelConsumption:(nullable NSNumber<SDLFloat> *)instantFuelConsumption fuelRange:(nullable NSArray<SDLFuelRange *> *)fuelRange externalTemperature:(nullable NSNumber<SDLFloat> *)externalTemperature turnSignal:(nullable SDLTurnSignal)turnSignal vin:(nullable NSString *)vin gearStatus:(nullable SDLGearStatus *)gearStatus tirePressure:(nullable SDLTireStatus *)tirePressure odometer:(nullable NSNumber<SDLUInt> *)odometer beltStatus:(nullable SDLBeltStatus *)beltStatus bodyInformation:(nullable SDLBodyInformation *)bodyInformation deviceStatus:(nullable SDLDeviceStatus *)deviceStatus driverBraking:(nullable SDLVehicleDataEventStatus)driverBraking wiperStatus:(nullable SDLWiperStatus)wiperStatus headLampStatus:(nullable SDLHeadLampStatus *)headLampStatus engineTorque:(nullable NSNumber<SDLFloat> *)engineTorque accPedalPosition:(nullable NSNumber<SDLFloat> *)accPedalPosition steeringWheelAngle:(nullable NSNumber<SDLFloat> *)steeringWheelAngle engineOilLife:(nullable NSNumber<SDLFloat> *)engineOilLife electronicParkBrakeStatus:(nullable SDLElectronicParkBrakeStatus)electronicParkBrakeStatus cloudAppVehicleID:(nullable NSString *)cloudAppVehicleID stabilityControlsStatus:(nullable SDLStabilityControlsStatus *)stabilityControlsStatus eCallInfo:(nullable SDLECallInfo *)eCallInfo airbagStatus:(nullable SDLAirbagStatus *)airbagStatus emergencyEvent:(nullable SDLEmergencyEvent *)emergencyEvent clusterModeStatus:(nullable SDLClusterModeStatus *)clusterModeStatus myKey:(nullable SDLMyKey *)myKey handsOffSteering:(nullable NSNumber<SDLBool> *)handsOffSteering windowStatus:(nullable NSArray<SDLWindowStatus *> *)windowStatus {
+
+ self = [self initWithGps:gps speed:speed rpm:rpm instantFuelConsumption:instantFuelConsumption fuelRange:fuelRange climateData:nil turnSignal:turnSignal vin:vin gearStatus:gearStatus tirePressure:tirePressure odometer:odometer beltStatus:beltStatus bodyInformation:bodyInformation deviceStatus:deviceStatus driverBraking:driverBraking wiperStatus:wiperStatus headLampStatus:headLampStatus engineTorque:engineTorque accPedalPosition:accPedalPosition steeringWheelAngle:steeringWheelAngle engineOilLife:engineOilLife electronicParkBrakeStatus:electronicParkBrakeStatus cloudAppVehicleID:cloudAppVehicleID stabilityControlsStatus:stabilityControlsStatus eCallInfo:eCallInfo airbagStatus:airbagStatus emergencyEvent:emergencyEvent clusterModeStatus:clusterModeStatus myKey:myKey windowStatus:windowStatus handsOffSteering:handsOffSteering seatOccupancy:nil];
+ if (self) {
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ self.externalTemperature = externalTemperature;
+#pragma clang diagnostic pop
+ }
+ return self;
+}
+
+- (instancetype)initWithGps:(nullable SDLGPSData *)gps speed:(nullable NSNumber<SDLFloat> *)speed rpm:(nullable NSNumber<SDLUInt> *)rpm instantFuelConsumption:(nullable NSNumber<SDLFloat> *)instantFuelConsumption fuelRange:(nullable NSArray<SDLFuelRange *> *)fuelRange climateData:(nullable SDLClimateData *)climateData turnSignal:(nullable SDLTurnSignal)turnSignal vin:(nullable NSString *)vin gearStatus:(nullable SDLGearStatus *)gearStatus tirePressure:(nullable SDLTireStatus *)tirePressure odometer:(nullable NSNumber<SDLUInt> *)odometer beltStatus:(nullable SDLBeltStatus *)beltStatus bodyInformation:(nullable SDLBodyInformation *)bodyInformation deviceStatus:(nullable SDLDeviceStatus *)deviceStatus driverBraking:(nullable SDLVehicleDataEventStatus)driverBraking wiperStatus:(nullable SDLWiperStatus)wiperStatus headLampStatus:(nullable SDLHeadLampStatus *)headLampStatus engineTorque:(nullable NSNumber<SDLFloat> *)engineTorque accPedalPosition:(nullable NSNumber<SDLFloat> *)accPedalPosition steeringWheelAngle:(nullable NSNumber<SDLFloat> *)steeringWheelAngle engineOilLife:(nullable NSNumber<SDLFloat> *)engineOilLife electronicParkBrakeStatus:(nullable SDLElectronicParkBrakeStatus)electronicParkBrakeStatus cloudAppVehicleID:(nullable NSString *)cloudAppVehicleID stabilityControlsStatus:(nullable SDLStabilityControlsStatus *)stabilityControlsStatus eCallInfo:(nullable SDLECallInfo *)eCallInfo airbagStatus:(nullable SDLAirbagStatus *)airbagStatus emergencyEvent:(nullable SDLEmergencyEvent *)emergencyEvent clusterModeStatus:(nullable SDLClusterModeStatus *)clusterModeStatus myKey:(nullable SDLMyKey *)myKey windowStatus:(nullable NSArray<SDLWindowStatus *> *)windowStatus handsOffSteering:(nullable NSNumber<SDLBool> *)handsOffSteering seatOccupancy:(nullable SDLSeatOccupancy *)seatOccupancy {
self = [self init];
if (!self) {
return nil;
@@ -48,7 +62,7 @@ NS_ASSUME_NONNULL_BEGIN
self.rpm = rpm;
self.instantFuelConsumption = instantFuelConsumption;
self.fuelRange = fuelRange;
- self.externalTemperature = externalTemperature;
+ self.climateData = climateData;
self.turnSignal = turnSignal;
self.vin = vin;
self.gearStatus = gearStatus;
@@ -72,8 +86,9 @@ NS_ASSUME_NONNULL_BEGIN
self.emergencyEvent = emergencyEvent;
self.clusterModeStatus = clusterModeStatus;
self.myKey = myKey;
- self.handsOffSteering = handsOffSteering;
self.windowStatus = windowStatus;
+ self.handsOffSteering = handsOffSteering;
+ self.seatOccupancy = seatOccupancy;
return self;
}
@@ -142,6 +157,14 @@ NS_ASSUME_NONNULL_BEGIN
return [self.parameters sdl_objectForName:SDLRPCParameterNameInstantFuelConsumption ofClass:NSNumber.class error:nil];
}
+- (void)setClimateData:(nullable SDLClimateData *)climateData {
+ [self.parameters sdl_setObject:climateData forName:SDLRPCParameterNameClimateData];
+}
+
+- (nullable SDLClimateData *)climateData {
+ return [self.parameters sdl_objectForName:SDLRPCParameterNameClimateData ofClass:SDLClimateData.class error:nil];
+}
+
- (void)setExternalTemperature:(nullable NSNumber<SDLFloat> *)externalTemperature {
[self.parameters sdl_setObject:externalTemperature forName:SDLRPCParameterNameExternalTemperature];
}
@@ -360,6 +383,14 @@ NS_ASSUME_NONNULL_BEGIN
return [self.parameters sdl_objectForName:vehicleDataName ofClass:NSObject.class error:nil];
}
+- (void)setSeatOccupancy:(nullable SDLSeatOccupancy *)seatOccupancy {
+ [self.parameters sdl_setObject:seatOccupancy forName:SDLRPCParameterNameSeatOccupancy];
+}
+
+- (nullable SDLSeatOccupancy *)seatOccupancy {
+ return [self.parameters sdl_objectForName:SDLRPCParameterNameSeatOccupancy ofClass:SDLSeatOccupancy.class error:nil];
+}
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/public/SDLOnVehicleData.h b/SmartDeviceLink/public/SDLOnVehicleData.h
index 66108cf47..a85d8610f 100644
--- a/SmartDeviceLink/public/SDLOnVehicleData.h
+++ b/SmartDeviceLink/public/SDLOnVehicleData.h
@@ -13,6 +13,7 @@
@class SDLAirbagStatus;
@class SDLBeltStatus;
@class SDLBodyInformation;
+@class SDLClimateData;
@class SDLClusterModeStatus;
@class SDLDeviceStatus;
@class SDLECallInfo;
@@ -22,6 +23,7 @@
@class SDLGPSData;
@class SDLHeadLampStatus;
@class SDLMyKey;
+@class SDLSeatOccupancy;
@class SDLStabilityControlsStatus;
@class SDLTireStatus;
@class SDLWindowStatus;
@@ -73,7 +75,46 @@ NS_ASSUME_NONNULL_BEGIN
* @param windowStatus - windowStatus
* @return A SDLOnVehicleData object
*/
-- (instancetype)initWithGps:(nullable SDLGPSData *)gps speed:(nullable NSNumber<SDLFloat> *)speed rpm:(nullable NSNumber<SDLUInt> *)rpm instantFuelConsumption:(nullable NSNumber<SDLFloat> *)instantFuelConsumption fuelRange:(nullable NSArray<SDLFuelRange *> *)fuelRange externalTemperature:(nullable NSNumber<SDLFloat> *)externalTemperature turnSignal:(nullable SDLTurnSignal)turnSignal vin:(nullable NSString *)vin gearStatus:(nullable SDLGearStatus *)gearStatus tirePressure:(nullable SDLTireStatus *)tirePressure odometer:(nullable NSNumber<SDLUInt> *)odometer beltStatus:(nullable SDLBeltStatus *)beltStatus bodyInformation:(nullable SDLBodyInformation *)bodyInformation deviceStatus:(nullable SDLDeviceStatus *)deviceStatus driverBraking:(nullable SDLVehicleDataEventStatus)driverBraking wiperStatus:(nullable SDLWiperStatus)wiperStatus headLampStatus:(nullable SDLHeadLampStatus *)headLampStatus engineTorque:(nullable NSNumber<SDLFloat> *)engineTorque accPedalPosition:(nullable NSNumber<SDLFloat> *)accPedalPosition steeringWheelAngle:(nullable NSNumber<SDLFloat> *)steeringWheelAngle engineOilLife:(nullable NSNumber<SDLFloat> *)engineOilLife electronicParkBrakeStatus:(nullable SDLElectronicParkBrakeStatus)electronicParkBrakeStatus cloudAppVehicleID:(nullable NSString *)cloudAppVehicleID stabilityControlsStatus:(nullable SDLStabilityControlsStatus *)stabilityControlsStatus eCallInfo:(nullable SDLECallInfo *)eCallInfo airbagStatus:(nullable SDLAirbagStatus *)airbagStatus emergencyEvent:(nullable SDLEmergencyEvent *)emergencyEvent clusterModeStatus:(nullable SDLClusterModeStatus *)clusterModeStatus myKey:(nullable SDLMyKey *)myKey handsOffSteering:(nullable NSNumber<SDLBool> *)handsOffSteering windowStatus:(nullable NSArray<SDLWindowStatus *> *)windowStatus;
+- (instancetype)initWithGps:(nullable SDLGPSData *)gps speed:(nullable NSNumber<SDLFloat> *)speed rpm:(nullable NSNumber<SDLUInt> *)rpm instantFuelConsumption:(nullable NSNumber<SDLFloat> *)instantFuelConsumption fuelRange:(nullable NSArray<SDLFuelRange *> *)fuelRange externalTemperature:(nullable NSNumber<SDLFloat> *)externalTemperature turnSignal:(nullable SDLTurnSignal)turnSignal vin:(nullable NSString *)vin gearStatus:(nullable SDLGearStatus *)gearStatus tirePressure:(nullable SDLTireStatus *)tirePressure odometer:(nullable NSNumber<SDLUInt> *)odometer beltStatus:(nullable SDLBeltStatus *)beltStatus bodyInformation:(nullable SDLBodyInformation *)bodyInformation deviceStatus:(nullable SDLDeviceStatus *)deviceStatus driverBraking:(nullable SDLVehicleDataEventStatus)driverBraking wiperStatus:(nullable SDLWiperStatus)wiperStatus headLampStatus:(nullable SDLHeadLampStatus *)headLampStatus engineTorque:(nullable NSNumber<SDLFloat> *)engineTorque accPedalPosition:(nullable NSNumber<SDLFloat> *)accPedalPosition steeringWheelAngle:(nullable NSNumber<SDLFloat> *)steeringWheelAngle engineOilLife:(nullable NSNumber<SDLFloat> *)engineOilLife electronicParkBrakeStatus:(nullable SDLElectronicParkBrakeStatus)electronicParkBrakeStatus cloudAppVehicleID:(nullable NSString *)cloudAppVehicleID stabilityControlsStatus:(nullable SDLStabilityControlsStatus *)stabilityControlsStatus eCallInfo:(nullable SDLECallInfo *)eCallInfo airbagStatus:(nullable SDLAirbagStatus *)airbagStatus emergencyEvent:(nullable SDLEmergencyEvent *)emergencyEvent clusterModeStatus:(nullable SDLClusterModeStatus *)clusterModeStatus myKey:(nullable SDLMyKey *)myKey handsOffSteering:(nullable NSNumber<SDLBool> *)handsOffSteering windowStatus:(nullable NSArray<SDLWindowStatus *> *)windowStatus __deprecated_msg("Use initWithGps:speed:rpm:instantFuelConsumption:fuelRange:climateData:turnSignal:vin:gearStatus:tirePressure:odometer:beltStatus:bodyInformation:deviceStatus:driverBraking:wiperStatus:headLampStatus:engineTorque:accPedalPosition:steeringWheelAngle:engineOilLife:electronicParkBrakeStatus:cloudAppVehicleID:stabilityControlsStatus:eCallInfo:airbagStatus:emergencyEvent:clusterModeStatus:myKey:windowStatus:handsOffSteering:seatOccupancy: instead");
+
+/**
+ * Convenience init for setting all possible values on vehicle data items.
+ *
+ * @param gps - gps
+ * @param speed - speed
+ * @param rpm - rpm
+ * @param instantFuelConsumption - instantFuelConsumption
+ * @param fuelRange - fuelRange
+ * @param climateData - climateData
+ * @param turnSignal - turnSignal
+ * @param vin - vin
+ * @param gearStatus - gearStatus
+ * @param tirePressure - tirePressure
+ * @param odometer - odometer
+ * @param beltStatus - beltStatus
+ * @param bodyInformation - bodyInformation
+ * @param deviceStatus - deviceStatus
+ * @param driverBraking - driverBraking
+ * @param wiperStatus - wiperStatus
+ * @param headLampStatus - headLampStatus
+ * @param engineTorque - engineTorque
+ * @param accPedalPosition - accPedalPosition
+ * @param steeringWheelAngle - steeringWheelAngle
+ * @param engineOilLife - engineOilLife
+ * @param electronicParkBrakeStatus - electronicParkBrakeStatus
+ * @param cloudAppVehicleID - cloudAppVehicleID
+ * @param stabilityControlsStatus - stabilityControlsStatus
+ * @param eCallInfo - eCallInfo
+ * @param airbagStatus - airbagStatus
+ * @param emergencyEvent - emergencyEvent
+ * @param clusterModeStatus - clusterModeStatus
+ * @param myKey - myKey
+ * @param windowStatus - windowStatus
+ * @param handsOffSteering - handsOffSteering
+ * @param seatOccupancy - seatOccupancy
+ * @return A SDLOnVehicleData object
+ */
+- (instancetype)initWithGps:(nullable SDLGPSData *)gps speed:(nullable NSNumber<SDLFloat> *)speed rpm:(nullable NSNumber<SDLUInt> *)rpm instantFuelConsumption:(nullable NSNumber<SDLFloat> *)instantFuelConsumption fuelRange:(nullable NSArray<SDLFuelRange *> *)fuelRange climateData:(nullable SDLClimateData *)climateData turnSignal:(nullable SDLTurnSignal)turnSignal vin:(nullable NSString *)vin gearStatus:(nullable SDLGearStatus *)gearStatus tirePressure:(nullable SDLTireStatus *)tirePressure odometer:(nullable NSNumber<SDLUInt> *)odometer beltStatus:(nullable SDLBeltStatus *)beltStatus bodyInformation:(nullable SDLBodyInformation *)bodyInformation deviceStatus:(nullable SDLDeviceStatus *)deviceStatus driverBraking:(nullable SDLVehicleDataEventStatus)driverBraking wiperStatus:(nullable SDLWiperStatus)wiperStatus headLampStatus:(nullable SDLHeadLampStatus *)headLampStatus engineTorque:(nullable NSNumber<SDLFloat> *)engineTorque accPedalPosition:(nullable NSNumber<SDLFloat> *)accPedalPosition steeringWheelAngle:(nullable NSNumber<SDLFloat> *)steeringWheelAngle engineOilLife:(nullable NSNumber<SDLFloat> *)engineOilLife electronicParkBrakeStatus:(nullable SDLElectronicParkBrakeStatus)electronicParkBrakeStatus cloudAppVehicleID:(nullable NSString *)cloudAppVehicleID stabilityControlsStatus:(nullable SDLStabilityControlsStatus *)stabilityControlsStatus eCallInfo:(nullable SDLECallInfo *)eCallInfo airbagStatus:(nullable SDLAirbagStatus *)airbagStatus emergencyEvent:(nullable SDLEmergencyEvent *)emergencyEvent clusterModeStatus:(nullable SDLClusterModeStatus *)clusterModeStatus myKey:(nullable SDLMyKey *)myKey windowStatus:(nullable NSArray<SDLWindowStatus *> *)windowStatus handsOffSteering:(nullable NSNumber<SDLBool> *)handsOffSteering seatOccupancy:(nullable SDLSeatOccupancy *)seatOccupancy;
/**
* See GearStatus
@@ -120,9 +161,20 @@ NS_ASSUME_NONNULL_BEGIN
@property (nullable, strong, nonatomic) NSNumber<SDLFloat> *instantFuelConsumption;
/**
- The external temperature in degrees celsius.
+ * See ClimateData
+ *
+ * @added in SmartDeviceLink 7.1.0
+ */
+@property (nullable, strong, nonatomic) SDLClimateData *climateData;
+
+/**
+ * The external temperature in degrees celsius. This parameter is deprecated starting RPC Spec 7.1, please see climateData.
+ * {"num_min_value": -40.0, "num_max_value": 100.0}
+ *
+ * @deprecated in SmartDeviceLink 7.1.0
+ * @added in SmartDeviceLink 2.0.0
*/
-@property (nullable, strong, nonatomic) NSNumber<SDLFloat> *externalTemperature;
+@property (nullable, strong, nonatomic) NSNumber<SDLFloat> *externalTemperature __deprecated_msg("Use climateData instead on 7.1+ RPC version connections");
/**
The Vehicle Identification Number
@@ -275,6 +327,13 @@ NS_ASSUME_NONNULL_BEGIN
*/
- (nullable NSObject *)getOEMCustomVehicleData:(NSString *)vehicleDataName;
+/**
+ * See SeatOccupancy
+ *
+ * @added in SmartDeviceLink 7.1.0
+ */
+@property (nullable, strong, nonatomic) SDLSeatOccupancy *seatOccupancy;
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/public/SDLOnVehicleData.m b/SmartDeviceLink/public/SDLOnVehicleData.m
index 9e8ebc13b..1df77371e 100644
--- a/SmartDeviceLink/public/SDLOnVehicleData.m
+++ b/SmartDeviceLink/public/SDLOnVehicleData.m
@@ -7,6 +7,7 @@
#import "SDLAirbagStatus.h"
#import "SDLBeltStatus.h"
#import "SDLBodyInformation.h"
+#import "SDLClimateData.h"
#import "SDLClusterModeStatus.h"
#import "SDLDeviceStatus.h"
#import "SDLECallInfo.h"
@@ -18,6 +19,7 @@
#import "SDLMyKey.h"
#import "SDLRPCParameterNames.h"
#import "SDLRPCFunctionNames.h"
+#import "SDLSeatOccupancy.h"
#import "SDLStabilityControlsStatus.h"
#import "SDLTireStatus.h"
#import "SDLWindowStatus.h"
@@ -38,6 +40,17 @@ NS_ASSUME_NONNULL_BEGIN
#pragma clang diagnostic pop
- (instancetype)initWithGps:(nullable SDLGPSData *)gps speed:(nullable NSNumber<SDLFloat> *)speed rpm:(nullable NSNumber<SDLUInt> *)rpm instantFuelConsumption:(nullable NSNumber<SDLFloat> *)instantFuelConsumption fuelRange:(nullable NSArray<SDLFuelRange *> *)fuelRange externalTemperature:(nullable NSNumber<SDLFloat> *)externalTemperature turnSignal:(nullable SDLTurnSignal)turnSignal vin:(nullable NSString *)vin gearStatus:(nullable SDLGearStatus *)gearStatus tirePressure:(nullable SDLTireStatus *)tirePressure odometer:(nullable NSNumber<SDLUInt> *)odometer beltStatus:(nullable SDLBeltStatus *)beltStatus bodyInformation:(nullable SDLBodyInformation *)bodyInformation deviceStatus:(nullable SDLDeviceStatus *)deviceStatus driverBraking:(nullable SDLVehicleDataEventStatus)driverBraking wiperStatus:(nullable SDLWiperStatus)wiperStatus headLampStatus:(nullable SDLHeadLampStatus *)headLampStatus engineTorque:(nullable NSNumber<SDLFloat> *)engineTorque accPedalPosition:(nullable NSNumber<SDLFloat> *)accPedalPosition steeringWheelAngle:(nullable NSNumber<SDLFloat> *)steeringWheelAngle engineOilLife:(nullable NSNumber<SDLFloat> *)engineOilLife electronicParkBrakeStatus:(nullable SDLElectronicParkBrakeStatus)electronicParkBrakeStatus cloudAppVehicleID:(nullable NSString *)cloudAppVehicleID stabilityControlsStatus:(nullable SDLStabilityControlsStatus *)stabilityControlsStatus eCallInfo:(nullable SDLECallInfo *)eCallInfo airbagStatus:(nullable SDLAirbagStatus *)airbagStatus emergencyEvent:(nullable SDLEmergencyEvent *)emergencyEvent clusterModeStatus:(nullable SDLClusterModeStatus *)clusterModeStatus myKey:(nullable SDLMyKey *)myKey handsOffSteering:(nullable NSNumber<SDLBool> *)handsOffSteering windowStatus:(nullable NSArray<SDLWindowStatus *> *)windowStatus {
+ self = [self initWithGps:gps speed:speed rpm:rpm instantFuelConsumption:instantFuelConsumption fuelRange:fuelRange climateData:nil turnSignal:turnSignal vin:vin gearStatus:gearStatus tirePressure:tirePressure odometer:odometer beltStatus:beltStatus bodyInformation:bodyInformation deviceStatus:deviceStatus driverBraking:driverBraking wiperStatus:wiperStatus headLampStatus:headLampStatus engineTorque:engineTorque accPedalPosition:accPedalPosition steeringWheelAngle:steeringWheelAngle engineOilLife:engineOilLife electronicParkBrakeStatus:electronicParkBrakeStatus cloudAppVehicleID:cloudAppVehicleID stabilityControlsStatus:stabilityControlsStatus eCallInfo:eCallInfo airbagStatus:airbagStatus emergencyEvent:emergencyEvent clusterModeStatus:clusterModeStatus myKey:myKey windowStatus:windowStatus handsOffSteering:handsOffSteering seatOccupancy:nil];
+ if (self) {
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ self.externalTemperature = externalTemperature;
+#pragma clang diagnostic pop
+ }
+ return self;
+}
+
+- (instancetype)initWithGps:(nullable SDLGPSData *)gps speed:(nullable NSNumber<SDLFloat> *)speed rpm:(nullable NSNumber<SDLUInt> *)rpm instantFuelConsumption:(nullable NSNumber<SDLFloat> *)instantFuelConsumption fuelRange:(nullable NSArray<SDLFuelRange *> *)fuelRange climateData:(nullable SDLClimateData *)climateData turnSignal:(nullable SDLTurnSignal)turnSignal vin:(nullable NSString *)vin gearStatus:(nullable SDLGearStatus *)gearStatus tirePressure:(nullable SDLTireStatus *)tirePressure odometer:(nullable NSNumber<SDLUInt> *)odometer beltStatus:(nullable SDLBeltStatus *)beltStatus bodyInformation:(nullable SDLBodyInformation *)bodyInformation deviceStatus:(nullable SDLDeviceStatus *)deviceStatus driverBraking:(nullable SDLVehicleDataEventStatus)driverBraking wiperStatus:(nullable SDLWiperStatus)wiperStatus headLampStatus:(nullable SDLHeadLampStatus *)headLampStatus engineTorque:(nullable NSNumber<SDLFloat> *)engineTorque accPedalPosition:(nullable NSNumber<SDLFloat> *)accPedalPosition steeringWheelAngle:(nullable NSNumber<SDLFloat> *)steeringWheelAngle engineOilLife:(nullable NSNumber<SDLFloat> *)engineOilLife electronicParkBrakeStatus:(nullable SDLElectronicParkBrakeStatus)electronicParkBrakeStatus cloudAppVehicleID:(nullable NSString *)cloudAppVehicleID stabilityControlsStatus:(nullable SDLStabilityControlsStatus *)stabilityControlsStatus eCallInfo:(nullable SDLECallInfo *)eCallInfo airbagStatus:(nullable SDLAirbagStatus *)airbagStatus emergencyEvent:(nullable SDLEmergencyEvent *)emergencyEvent clusterModeStatus:(nullable SDLClusterModeStatus *)clusterModeStatus myKey:(nullable SDLMyKey *)myKey windowStatus:(nullable NSArray<SDLWindowStatus *> *)windowStatus handsOffSteering:(nullable NSNumber<SDLBool> *)handsOffSteering seatOccupancy:(nullable SDLSeatOccupancy *)seatOccupancy {
self = [self init];
if (!self) {
return nil;
@@ -47,7 +60,7 @@ NS_ASSUME_NONNULL_BEGIN
self.rpm = rpm;
self.instantFuelConsumption = instantFuelConsumption;
self.fuelRange = fuelRange;
- self.externalTemperature = externalTemperature;
+ self.climateData = climateData;
self.turnSignal = turnSignal;
self.vin = vin;
self.gearStatus = gearStatus;
@@ -71,8 +84,9 @@ NS_ASSUME_NONNULL_BEGIN
self.emergencyEvent = emergencyEvent;
self.clusterModeStatus = clusterModeStatus;
self.myKey = myKey;
- self.handsOffSteering = handsOffSteering;
self.windowStatus = windowStatus;
+ self.handsOffSteering = handsOffSteering;
+ self.seatOccupancy = seatOccupancy;
return self;
}
@@ -141,6 +155,14 @@ NS_ASSUME_NONNULL_BEGIN
return [self.parameters sdl_objectForName:SDLRPCParameterNameInstantFuelConsumption ofClass:NSNumber.class error:nil];
}
+- (void)setClimateData:(nullable SDLClimateData *)climateData {
+ [self.parameters sdl_setObject:climateData forName:SDLRPCParameterNameClimateData];
+}
+
+- (nullable SDLClimateData *)climateData {
+ return [self.parameters sdl_objectForName:SDLRPCParameterNameClimateData ofClass:SDLClimateData.class error:nil];
+}
+
- (void)setExternalTemperature:(nullable NSNumber<SDLFloat> *)externalTemperature {
[self.parameters sdl_setObject:externalTemperature forName:SDLRPCParameterNameExternalTemperature];
}
@@ -358,6 +380,14 @@ NS_ASSUME_NONNULL_BEGIN
return [self.parameters sdl_objectForName:vehicleDataName ofClass:NSObject.class error:nil];
}
+- (void)setSeatOccupancy:(nullable SDLSeatOccupancy *)seatOccupancy {
+ [self.parameters sdl_setObject:seatOccupancy forName:SDLRPCParameterNameSeatOccupancy];
+}
+
+- (nullable SDLSeatOccupancy *)seatOccupancy {
+ return [self.parameters sdl_objectForName:SDLRPCParameterNameSeatOccupancy ofClass:SDLSeatOccupancy.class error:nil];
+}
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/public/SDLSeatOccupancy.h b/SmartDeviceLink/public/SDLSeatOccupancy.h
new file mode 100644
index 000000000..e453a97e1
--- /dev/null
+++ b/SmartDeviceLink/public/SDLSeatOccupancy.h
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 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.
+ */
+
+#import "SDLRPCStruct.h"
+
+@class SDLSeatStatus;
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ * @added in SmartDeviceLink 7.1.0
+ */
+@interface SDLSeatOccupancy : SDLRPCStruct
+
+/**
+ * @param seatsOccupied - seatsOccupied
+ * @param seatsBelted - seatsBelted
+ * @return A SDLSeatOccupancy object
+ */
+- (instancetype)initWithSeatsOccupied:(nullable NSArray<SDLSeatStatus *> *)seatsOccupied seatsBelted:(nullable NSArray<SDLSeatStatus *> *)seatsBelted;
+
+/**
+ * Seat status array containing location and whether the seats are occupied.
+ * {"array_min_size": 0, "array_max_size": 100}
+ */
+@property (nullable, strong, nonatomic) NSArray<SDLSeatStatus *> *seatsOccupied;
+
+/**
+ * Seat status array containing location and whether the seats are belted.
+ * {"array_min_size": 0, "array_max_size": 100}
+ */
+@property (nullable, strong, nonatomic) NSArray<SDLSeatStatus *> *seatsBelted;
+
+@end
+
+NS_ASSUME_NONNULL_END \ No newline at end of file
diff --git a/SmartDeviceLink/public/SDLSeatOccupancy.m b/SmartDeviceLink/public/SDLSeatOccupancy.m
new file mode 100644
index 000000000..67d6f17f4
--- /dev/null
+++ b/SmartDeviceLink/public/SDLSeatOccupancy.m
@@ -0,0 +1,70 @@
+/*
+ * Copyright (c) 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.
+ */
+
+#import "NSMutableDictionary+Store.h"
+#import "SDLRPCParameterNames.h"
+#import "SDLSeatOccupancy.h"
+#import "SDLSeatStatus.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@implementation SDLSeatOccupancy
+
+- (instancetype)initWithSeatsOccupied:(nullable NSArray<SDLSeatStatus *> *)seatsOccupied seatsBelted:(nullable NSArray<SDLSeatStatus *> *)seatsBelted {
+ self = [self init];
+ if (!self) {
+ return nil;
+ }
+ self.seatsOccupied = seatsOccupied;
+ self.seatsBelted = seatsBelted;
+ return self;
+}
+
+- (void)setSeatsOccupied:(nullable NSArray<SDLSeatStatus *> *)seatsOccupied {
+ [self.store sdl_setObject:seatsOccupied forName:SDLRPCParameterNameSeatsOccupied];
+}
+
+- (nullable NSArray<SDLSeatStatus *> *)seatsOccupied {
+ return [self.store sdl_objectsForName:SDLRPCParameterNameSeatsOccupied ofClass:SDLSeatStatus.class error:nil];
+}
+
+- (void)setSeatsBelted:(nullable NSArray<SDLSeatStatus *> *)seatsBelted {
+ [self.store sdl_setObject:seatsBelted forName:SDLRPCParameterNameSeatsBelted];
+}
+
+- (nullable NSArray<SDLSeatStatus *> *)seatsBelted {
+ return [self.store sdl_objectsForName:SDLRPCParameterNameSeatsBelted ofClass:SDLSeatStatus.class error:nil];
+}
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/public/SDLSeatStatus.h b/SmartDeviceLink/public/SDLSeatStatus.h
new file mode 100644
index 000000000..29d62c263
--- /dev/null
+++ b/SmartDeviceLink/public/SDLSeatStatus.h
@@ -0,0 +1,59 @@
+/*
+ * Copyright (c) 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.
+ */
+
+#import "SDLRPCStruct.h"
+
+@class SDLSeatLocation;
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ * Describes the status of a parameter of seat.
+ *
+ * @added in SmartDeviceLink 7.1.0
+ */
+@interface SDLSeatStatus : SDLRPCStruct
+
+/**
+ * @param seatLocation - seatLocation
+ * @param conditionActive - @(conditionActive)
+ * @return A SDLSeatStatus object
+ */
+- (instancetype)initWithSeatLocation:(SDLSeatLocation *)seatLocation conditionActive:(BOOL)conditionActive;
+
+@property (strong, nonatomic) SDLSeatLocation *seatLocation;
+
+@property (strong, nonatomic) NSNumber<SDLBool> *conditionActive;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/public/SDLSeatStatus.m b/SmartDeviceLink/public/SDLSeatStatus.m
new file mode 100644
index 000000000..ec2d70d78
--- /dev/null
+++ b/SmartDeviceLink/public/SDLSeatStatus.m
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 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.
+ */
+
+#import "NSMutableDictionary+Store.h"
+#import "SDLRPCParameterNames.h"
+#import "SDLSeatLocation.h"
+#import "SDLSeatStatus.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@implementation SDLSeatStatus
+
+- (instancetype)initWithSeatLocation:(SDLSeatLocation *)seatLocation conditionActive:(BOOL)conditionActive {
+ self = [self init];
+ if (!self) {
+ return nil;
+ }
+ self.seatLocation = seatLocation;
+ self.conditionActive = @(conditionActive);
+ return self;
+}
+
+- (void)setSeatLocation:(SDLSeatLocation *)seatLocation {
+ [self.store sdl_setObject:seatLocation forName:SDLRPCParameterNameSeatLocation];
+}
+
+- (SDLSeatLocation *)seatLocation {
+ NSError *error = nil;
+ return [self.store sdl_objectForName:SDLRPCParameterNameSeatLocation ofClass:SDLSeatLocation.class error:&error];
+}
+
+- (void)setConditionActive:(NSNumber<SDLBool> *)conditionActive {
+ [self.store sdl_setObject:conditionActive forName:SDLRPCParameterNameConditionActive];
+}
+
+- (NSNumber<SDLBool> *)conditionActive {
+ NSError *error = nil;
+ return [self.store sdl_objectForName:SDLRPCParameterNameConditionActive ofClass:NSNumber.class error:&error];
+}
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/public/SDLSeekIndicatorType.h b/SmartDeviceLink/public/SDLSeekIndicatorType.h
new file mode 100644
index 000000000..77bc15de2
--- /dev/null
+++ b/SmartDeviceLink/public/SDLSeekIndicatorType.h
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 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.
+ */
+
+#import "SDLEnum.h"
+
+/**
+ * @added in SmartDeviceLink 7.1.0
+ */
+typedef SDLEnum SDLSeekIndicatorType NS_TYPED_ENUM;
+
+extern SDLSeekIndicatorType const SDLSeekIndicatorTypeTrack;
+extern SDLSeekIndicatorType const SDLSeekIndicatorTypeTime;
diff --git a/SmartDeviceLink/public/SDLSeekIndicatorType.m b/SmartDeviceLink/public/SDLSeekIndicatorType.m
new file mode 100644
index 000000000..a2392cc17
--- /dev/null
+++ b/SmartDeviceLink/public/SDLSeekIndicatorType.m
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 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.
+ */
+
+#import "SDLSeekIndicatorType.h"
+
+SDLSeekIndicatorType const SDLSeekIndicatorTypeTrack = @"TRACK";
+SDLSeekIndicatorType const SDLSeekIndicatorTypeTime = @"TIME";
diff --git a/SmartDeviceLink/public/SDLSeekStreamingIndicator.h b/SmartDeviceLink/public/SDLSeekStreamingIndicator.h
new file mode 100644
index 000000000..0cee5aeac
--- /dev/null
+++ b/SmartDeviceLink/public/SDLSeekStreamingIndicator.h
@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) 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.
+ */
+
+#import "SDLRPCStruct.h"
+#import "SDLSeekIndicatorType.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ * The seek next / skip previous subscription buttons' content
+ *
+ * @added in SmartDeviceLink 7.1.0
+ */
+@interface SDLSeekStreamingIndicator : SDLRPCStruct
+
+/**
+ * @param type - type
+ * @return A SDLSeekStreamingIndicator object
+ */
+- (instancetype)initWithType:(SDLSeekIndicatorType)type;
+
+/**
+ * @param type - type
+ * @param seekTime - seekTime
+ * @return A SDLSeekStreamingIndicator object
+ */
+- (instancetype)initWithType:(SDLSeekIndicatorType)type seekTime:(nullable NSNumber<SDLUInt> *)seekTime;
+
+/**
+ * @param seekTime - seekTime
+ * @return A SDLSeekStreamingIndicator object
+ */
++ (instancetype)seekIndicatorWithSeekTime:(nullable NSNumber<SDLUInt> *)seekTime;
+
+@property (strong, nonatomic) SDLSeekIndicatorType type;
+
+/**
+ * If the type is TIME, this number of seconds may be present alongside the skip indicator. It will indicate the number of seconds that the currently playing media will skip forward or backward.
+ * {"num_min_value": 1, "num_max_value": 99}
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLUInt> *seekTime;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/public/SDLSeekStreamingIndicator.m b/SmartDeviceLink/public/SDLSeekStreamingIndicator.m
new file mode 100644
index 000000000..a651cc6bf
--- /dev/null
+++ b/SmartDeviceLink/public/SDLSeekStreamingIndicator.m
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 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.
+ */
+
+#import "NSMutableDictionary+Store.h"
+#import "SDLRPCParameterNames.h"
+#import "SDLSeekIndicatorType.h"
+#import "SDLSeekStreamingIndicator.h"
+
+NS_ASSUME_NONNULL_BEGIN
+@implementation SDLSeekStreamingIndicator
+
+- (instancetype)initWithType:(SDLSeekIndicatorType)type {
+ self = [self init];
+ if (!self) {
+ return nil;
+ }
+ self.type = type;
+ return self;
+}
+
+- (instancetype)initWithType:(SDLSeekIndicatorType)type seekTime:(nullable NSNumber<SDLUInt> *)seekTime {
+ self = [self initWithType:type];
+ if (!self) {
+ return nil;
+ }
+ self.seekTime = seekTime;
+ return self;
+}
+
++ (instancetype)seekIndicatorWithSeekTime:(nullable NSNumber<SDLUInt> *)seekTime {
+ return [[self alloc] initWithType:SDLSeekIndicatorTypeTime seekTime:seekTime];
+}
+
+- (void)setType:(SDLSeekIndicatorType)type {
+ [self.store sdl_setObject:type forName:SDLRPCParameterNameType];
+}
+
+- (SDLSeekIndicatorType)type {
+ NSError *error = nil;
+ return [self.store sdl_enumForName:SDLRPCParameterNameType error:&error];
+}
+
+- (void)setSeekTime:(nullable NSNumber<SDLUInt> *)seekTime {
+ [self.store sdl_setObject:seekTime forName:SDLRPCParameterNameSeekTime];
+}
+
+- (nullable NSNumber<SDLUInt> *)seekTime {
+ return [self.store sdl_objectForName:SDLRPCParameterNameSeekTime ofClass:NSNumber.class error:nil];
+}
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/public/SDLSetMediaClockTimer.h b/SmartDeviceLink/public/SDLSetMediaClockTimer.h
index a87011a6e..b79bda1f5 100644
--- a/SmartDeviceLink/public/SDLSetMediaClockTimer.h
+++ b/SmartDeviceLink/public/SDLSetMediaClockTimer.h
@@ -5,6 +5,7 @@
#import "SDLUpdateMode.h"
#import "SDLAudioStreamingIndicator.h"
+#import "SDLSeekStreamingIndicator.h"
@class SDLStartTime;
@@ -33,7 +34,7 @@ NS_ASSUME_NONNULL_BEGIN
@param playPauseIndicator An optional audio indicator to change the play/pause button
@return An object of SetMediaClockTimer
*/
-+ (instancetype)countUpFromStartTimeInterval:(NSTimeInterval)startTime toEndTimeInterval:(NSTimeInterval)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(countUp(from:to:playPauseIndicator:)) __deprecated_msg("Use countUpFromStartTimeInterval:toEndTimeInterval:playPauseIndicator:countRate: instead");
++ (instancetype)countUpFromStartTimeInterval:(NSTimeInterval)startTime toEndTimeInterval:(NSTimeInterval)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(countUp(from:to:playPauseIndicator:)) __deprecated_msg("Use countUpFromStartTimeInterval:toEndTimeInterval:playPauseIndicator:forwardSeekIndicator:backSeekIndicator:countRate: instead");
/**
Create a media clock timer that counts up, e.g from 0:00 to 4:18.
@@ -44,9 +45,11 @@ NS_ASSUME_NONNULL_BEGIN
@param endTime The end time interval, e.g. (258) 4:18
@param playPauseIndicator An optional audio indicator to change the play/pause button
@param countRate set the media playback timer, if `nil`, will default to 1.0
+ @param forwardSeekIndicator - forwardSeekIndicator
+ @param backSeekIndicator - backSeekIndicator
@return An object of SetMediaClockTimer
*/
-+ (instancetype)countUpFromStartTimeInterval:(NSTimeInterval)startTime toEndTimeInterval:(NSTimeInterval)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator countRate:(nullable NSNumber<SDLFloat> *)countRate NS_SWIFT_NAME(countUp(from:to:playPauseIndicator:countRate:));
++ (instancetype)countUpFromStartTimeInterval:(NSTimeInterval)startTime toEndTimeInterval:(NSTimeInterval)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator forwardSeekIndicator:(nullable SDLSeekStreamingIndicator *)forwardSeekIndicator backSeekIndicator:(nullable SDLSeekStreamingIndicator *)backSeekIndicator countRate:(nullable NSNumber<SDLFloat> *)countRate NS_SWIFT_NAME(countUp(from:to:playPauseIndicator:forwardSeekIndicator:backSeekIndicator:countRate:));
/**
Create a media clock timer that counts up, e.g from 0:00 to 4:18.
@@ -58,7 +61,7 @@ NS_ASSUME_NONNULL_BEGIN
@param playPauseIndicator An optional audio indicator to change the play/pause button
@return An object of SetMediaClockTimer
*/
-+ (instancetype)countUpFromStartTime:(SDLStartTime *)startTime toEndTime:(SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(countUp(from:to:playPauseIndicator:)) __deprecated_msg("Use countUpFromStartTime:toEndTime:playPauseIndicator:countRate: instead");
++ (instancetype)countUpFromStartTime:(SDLStartTime *)startTime toEndTime:(SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(countUp(from:to:playPauseIndicator:)) __deprecated_msg("Use countUpFromStartTime:toEndTime:playPauseIndicator:forwardSeekIndicator:backSeekIndicator:countRate: instead");
/**
Create a media clock timer that counts up, e.g from 0:00 to 4:18.
@@ -68,10 +71,12 @@ NS_ASSUME_NONNULL_BEGIN
@param startTime The start time interval, e.g. 0:00
@param endTime The end time interval, e.g. 4:18
@param playPauseIndicator An optional audio indicator to change the play/pause button
+ @param forwardSeekIndicator - forwardSeekIndicator
+ @param backSeekIndicator - backSeekIndicator
@param countRate set the media playback timer, if `nil`, will default to 1.0
@return An object of SetMediaClockTimer
*/
-+ (instancetype)countUpFromStartTime:(SDLStartTime *)startTime toEndTime:(SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator countRate:(nullable NSNumber<SDLFloat> *)countRate NS_SWIFT_NAME(countUp(from:to:playPauseIndicator:countRate:));
++ (instancetype)countUpFromStartTime:(SDLStartTime *)startTime toEndTime:(SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator forwardSeekIndicator:(nullable SDLSeekStreamingIndicator *)forwardSeekIndicator backSeekIndicator:(nullable SDLSeekStreamingIndicator *)backSeekIndicator countRate:(nullable NSNumber<SDLFloat> *)countRate NS_SWIFT_NAME(countUp(from:to:playPauseIndicator:forwardSeekIndicator:backSeekIndicator:countRate:));
/**
Create a media clock timer that counts down, e.g. from 4:18 to 0:00
@@ -83,7 +88,7 @@ NS_ASSUME_NONNULL_BEGIN
@param playPauseIndicator An optional audio indicator to change the play/pause button
@return An object of SetMediaClockTimer
*/
-+ (instancetype)countDownFromStartTimeInterval:(NSTimeInterval)startTime toEndTimeInterval:(NSTimeInterval)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(countDown(from:to:playPauseIndicator:)) __deprecated_msg("Use countDownFromStartTimeInterval:toEndTimeInterval:playPauseIndicator:countRate: instead");
++ (instancetype)countDownFromStartTimeInterval:(NSTimeInterval)startTime toEndTimeInterval:(NSTimeInterval)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(countDown(from:to:playPauseIndicator:)) __deprecated_msg("Use countDownFromStartTimeInterval:toEndTimeInterval:playPauseIndicator:forwardSeekIndicator:backSeekIndicator:countRate: instead");
/**
Create a media clock timer that counts down, e.g. from 4:18 to 0:00
@@ -93,10 +98,12 @@ NS_ASSUME_NONNULL_BEGIN
@param startTime The start time interval, e.g. (258) 4:18
@param endTime The end time interval, e.g. (0) 0:00
@param playPauseIndicator An optional audio indicator to change the play/pause button
+ @param forwardSeekIndicator - forwardSeekIndicator
+ @param backSeekIndicator - backSeekIndicator
@param countRate set the media playback timer, if `nil`, will default to 1.0
@return An object of SetMediaClockTimer
*/
-+ (instancetype)countDownFromStartTimeInterval:(NSTimeInterval)startTime toEndTimeInterval:(NSTimeInterval)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator countRate:(nullable NSNumber<SDLFloat> *)countRate NS_SWIFT_NAME(countDown(from:to:playPauseIndicator:countRate:));
++ (instancetype)countDownFromStartTimeInterval:(NSTimeInterval)startTime toEndTimeInterval:(NSTimeInterval)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator forwardSeekIndicator:(nullable SDLSeekStreamingIndicator *)forwardSeekIndicator backSeekIndicator:(nullable SDLSeekStreamingIndicator *)backSeekIndicator countRate:(nullable NSNumber<SDLFloat> *)countRate NS_SWIFT_NAME(countDown(from:to:playPauseIndicator:forwardSeekIndicator:backSeekIndicator:countRate:));
/**
Create a media clock timer that counts down, e.g. from 4:18 to 0:00
@@ -108,7 +115,7 @@ NS_ASSUME_NONNULL_BEGIN
@param playPauseIndicator An optional audio indicator to change the play/pause button
@return An object of SetMediaClockTimer
*/
-+ (instancetype)countDownFromStartTime:(SDLStartTime *)startTime toEndTime:(SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(countDown(from:to:playPauseIndicator:)) __deprecated_msg("Use countDownFromStartTime:toEndTime:playPauseIndicator:countRate: instead");
++ (instancetype)countDownFromStartTime:(SDLStartTime *)startTime toEndTime:(SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(countDown(from:to:playPauseIndicator:)) __deprecated_msg("Use countDownFromStartTime:toEndTime:playPauseIndicator:forwardSeekIndicator:backSeekIndicator:countRate: instead");
/**
Create a media clock timer that counts down, e.g. from 4:18 to 0:00
@@ -118,10 +125,12 @@ NS_ASSUME_NONNULL_BEGIN
@param startTime The start time interval, e.g. 4:18
@param endTime The end time interval, e.g. 0:00
@param playPauseIndicator An optional audio indicator to change the play/pause button
+ @param forwardSeekIndicator - forwardSeekIndicator
+ @param backSeekIndicator - backSeekIndicator
@param countRate set the media playback timer, if `nil`, will default to 1.0
@return An object of SetMediaClockTimer
*/
-+ (instancetype)countDownFromStartTime:(SDLStartTime *)startTime toEndTime:(SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator countRate:(nullable NSNumber<SDLFloat> *)countRate NS_SWIFT_NAME(countDown(from:to:playPauseIndicator:countRate:));
++ (instancetype)countDownFromStartTime:(SDLStartTime *)startTime toEndTime:(SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator forwardSeekIndicator:(nullable SDLSeekStreamingIndicator *)forwardSeekIndicator backSeekIndicator:(nullable SDLSeekStreamingIndicator *)backSeekIndicator countRate:(nullable NSNumber<SDLFloat> *)countRate NS_SWIFT_NAME(countDown(from:to:playPauseIndicator:forwardSeekIndicator:backSeekIndicator:countRate:));
/**
Pause an existing (counting up / down) media clock timer
@@ -157,16 +166,18 @@ NS_ASSUME_NONNULL_BEGIN
@param playPauseIndicator An optional audio indicator to change the play/pause button
@return An object of SetMediaClockTimer
*/
-+ (instancetype)resumeWithPlayPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(resume(playPauseIndicator:)) __deprecated_msg("Use resumeWithPlayPauseIndicator:playPauseIndicator:countRate:");
++ (instancetype)resumeWithPlayPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(resume(playPauseIndicator:)) __deprecated_msg("Use resumeWithPlayPauseIndicator:playPauseIndicator:forwardSeekIndicator:backSeekIndicator:countRate:");
/**
Resume a paused media clock timer. It resumes at the same time at which it was paused.
@param playPauseIndicator An optional audio indicator to change the play/pause button
+ @param forwardSeekIndicator - forwardSeekIndicator
+ @param backSeekIndicator - backSeekIndicator
@param countRate set the media playback timer
@return An object of SetMediaClockTimer, if `nil`, will default to 1.0
*/
-+ (instancetype)resumeWithPlayPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator countRate:(nullable NSNumber<SDLFloat> *)countRate NS_SWIFT_NAME(resume(playPauseIndicator:countRate:));
++ (instancetype)resumeWithPlayPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator forwardSeekIndicator:(nullable SDLSeekStreamingIndicator *)forwardSeekIndicator backSeekIndicator:(nullable SDLSeekStreamingIndicator *)backSeekIndicator countRate:(nullable NSNumber<SDLFloat> *)countRate NS_SWIFT_NAME(resume(playPauseIndicator:forwardSeekIndicator:backSeekIndicator:countRate:));
/**
Remove a media clock timer from the screen
@@ -191,17 +202,19 @@ NS_ASSUME_NONNULL_BEGIN
@param playPauseIndicator The display of the play/pause button
@return An object of SetMediaClockTimer
*/
-- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode startTime:(nullable SDLStartTime *)startTime endTime:(nullable SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(init(updateMode:startTime:endTime:playPauseIndicator:)) __deprecated_msg("Use initWithUpdateMode:startTime:endTime:audioStreamingIndicator:countRate: instead");
+- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode startTime:(nullable SDLStartTime *)startTime endTime:(nullable SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(init(updateMode:startTime:endTime:playPauseIndicator:)) __deprecated_msg("Use initWithUpdateMode:startTime:endTime:audioStreamingIndicator:forwardSeekIndicator:backSeekIndicator:countRate: instead");
/**
* @param updateMode - updateMode
* @param startTime - startTime
* @param endTime - endTime
* @param audioStreamingIndicator - audioStreamingIndicator
+ * @param forwardSeekIndicator - forwardSeekIndicator
+ * @param backSeekIndicator - backSeekIndicator
* @param countRate - countRate
* @return A SDLSetMediaClockTimer object
*/
-- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode startTime:(nullable SDLStartTime *)startTime endTime:(nullable SDLStartTime *)endTime audioStreamingIndicator:(nullable SDLAudioStreamingIndicator)audioStreamingIndicator countRate:(nullable NSNumber<SDLFloat> *)countRate;
+- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode startTime:(nullable SDLStartTime *)startTime endTime:(nullable SDLStartTime *)endTime audioStreamingIndicator:(nullable SDLAudioStreamingIndicator)audioStreamingIndicator forwardSeekIndicator:(nullable SDLSeekStreamingIndicator *)forwardSeekIndicator backSeekIndicator:(nullable SDLSeekStreamingIndicator *)backSeekIndicator countRate:(nullable NSNumber<SDLFloat> *)countRate;
/**
* A Start Time with specifying hour, minute, second values
@@ -247,6 +260,20 @@ NS_ASSUME_NONNULL_BEGIN
@property (strong, nonatomic, nullable) SDLAudioStreamingIndicator audioStreamingIndicator;
/**
+ * Used to control the forward seek button to either skip forward a set amount of time or to the next track.
+ *
+ * @added in SmartDeviceLink 7.1.0
+ */
+@property (nullable, strong, nonatomic) SDLSeekStreamingIndicator *forwardSeekIndicator;
+
+/**
+ * Used to control the back seek button to either skip back a set amount of time or to the previous track.
+ *
+ * @added in SmartDeviceLink 7.1.0
+ */
+@property (nullable, strong, nonatomic) SDLSeekStreamingIndicator *backSeekIndicator;
+
+/**
* The value of this parameter is the amount that the media clock timer will advance per 1.0 seconds of real time. Values less than 1.0 will therefore advance the timer slower than real-time, while values greater than 1.0 will advance the timer faster than real-time. e.g. If this parameter is set to `0.5`, the timer will advance one second per two seconds real-time, or at 50% speed. If this parameter is set to `2.0`, the timer will advance two seconds per one second real-time, or at 200% speed.
* {"num_min_value": 0.1, "num_max_value": 100.0, "default_value": 1.0}
*
diff --git a/SmartDeviceLink/public/SDLSetMediaClockTimer.m b/SmartDeviceLink/public/SDLSetMediaClockTimer.m
index bcb483f14..c50647782 100644
--- a/SmartDeviceLink/public/SDLSetMediaClockTimer.m
+++ b/SmartDeviceLink/public/SDLSetMediaClockTimer.m
@@ -32,10 +32,10 @@ NS_ASSUME_NONNULL_BEGIN
}
- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode startTime:(nullable SDLStartTime *)startTime endTime:(nullable SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator {
- return [self initWithUpdateMode:updateMode startTime:startTime endTime:endTime audioStreamingIndicator:playPauseIndicator countRate:nil];
+ return [self initWithUpdateMode:updateMode startTime:startTime endTime:endTime audioStreamingIndicator:playPauseIndicator forwardSeekIndicator:nil backSeekIndicator:nil countRate:nil];
}
-- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode startTime:(nullable SDLStartTime *)startTime endTime:(nullable SDLStartTime *)endTime audioStreamingIndicator:(nullable SDLAudioStreamingIndicator)audioStreamingIndicator countRate:(nullable NSNumber<SDLFloat> *)countRate {
+- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode startTime:(nullable SDLStartTime *)startTime endTime:(nullable SDLStartTime *)endTime audioStreamingIndicator:(nullable SDLAudioStreamingIndicator)audioStreamingIndicator forwardSeekIndicator:(nullable SDLSeekStreamingIndicator *)forwardSeekIndicator backSeekIndicator:(nullable SDLSeekStreamingIndicator *)backSeekIndicator countRate:(nullable NSNumber<SDLFloat> *)countRate {
self = [self initWithUpdateMode:updateMode];
if (!self) {
return nil;
@@ -43,73 +43,75 @@ NS_ASSUME_NONNULL_BEGIN
self.startTime = startTime;
self.endTime = endTime;
self.audioStreamingIndicator = audioStreamingIndicator;
+ self.forwardSeekIndicator = forwardSeekIndicator;
+ self.backSeekIndicator = backSeekIndicator;
self.countRate = countRate;
return self;
}
+ (instancetype)countUpFromStartTimeInterval:(NSTimeInterval)startTime toEndTimeInterval:(NSTimeInterval)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator {
- return [self countUpFromStartTimeInterval:startTime toEndTimeInterval:endTime playPauseIndicator:playPauseIndicator countRate:nil];
+ return [self countUpFromStartTimeInterval:startTime toEndTimeInterval:endTime playPauseIndicator:playPauseIndicator forwardSeekIndicator:nil backSeekIndicator:nil countRate:nil];
}
-+ (instancetype)countUpFromStartTimeInterval:(NSTimeInterval)startTime toEndTimeInterval:(NSTimeInterval)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator countRate:(nullable NSNumber<SDLFloat> *)countRate {
++ (instancetype)countUpFromStartTimeInterval:(NSTimeInterval)startTime toEndTimeInterval:(NSTimeInterval)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator forwardSeekIndicator:(nullable SDLSeekStreamingIndicator *)forwardSeekIndicator backSeekIndicator:(nullable SDLSeekStreamingIndicator *)backSeekIndicator countRate:(nullable NSNumber<SDLFloat> *)countRate {
SDLStartTime *startTimeRPC = [[SDLStartTime alloc] initWithTimeInterval:startTime];
SDLStartTime *endTimeRPC = [[SDLStartTime alloc] initWithTimeInterval:endTime];
- return [[self alloc] initWithUpdateMode:SDLUpdateModeCountUp startTime:startTimeRPC endTime:endTimeRPC audioStreamingIndicator:playPauseIndicator countRate:countRate];
+ return [[self alloc] initWithUpdateMode:SDLUpdateModeCountUp startTime:startTimeRPC endTime:endTimeRPC audioStreamingIndicator:playPauseIndicator forwardSeekIndicator:forwardSeekIndicator backSeekIndicator:backSeekIndicator countRate:countRate];
}
+ (instancetype)countUpFromStartTime:(SDLStartTime *)startTime toEndTime:(SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator {
- return [self countUpFromStartTime:startTime toEndTime:endTime playPauseIndicator:playPauseIndicator countRate:nil];
+ return [self countUpFromStartTime:startTime toEndTime:endTime playPauseIndicator:playPauseIndicator forwardSeekIndicator:nil backSeekIndicator:nil countRate:nil];
}
-+ (instancetype)countUpFromStartTime:(SDLStartTime *)startTime toEndTime:(SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator countRate:(nullable NSNumber<SDLFloat> *)countRate {
- return [[self alloc] initWithUpdateMode:SDLUpdateModeCountUp startTime:startTime endTime:endTime audioStreamingIndicator:playPauseIndicator countRate:countRate];
++ (instancetype)countUpFromStartTime:(SDLStartTime *)startTime toEndTime:(SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator forwardSeekIndicator:(nullable SDLSeekStreamingIndicator *)forwardSeekIndicator backSeekIndicator:(nullable SDLSeekStreamingIndicator *)backSeekIndicator countRate:(nullable NSNumber<SDLFloat> *)countRate {
+ return [[self alloc] initWithUpdateMode:SDLUpdateModeCountUp startTime:startTime endTime:endTime audioStreamingIndicator:playPauseIndicator forwardSeekIndicator:forwardSeekIndicator backSeekIndicator:backSeekIndicator countRate:countRate];
}
+ (instancetype)countDownFromStartTimeInterval:(NSTimeInterval)startTime toEndTimeInterval:(NSTimeInterval)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator {
- return [self countDownFromStartTimeInterval:startTime toEndTimeInterval:endTime playPauseIndicator:playPauseIndicator countRate:nil];
+ return [self countDownFromStartTimeInterval:startTime toEndTimeInterval:endTime playPauseIndicator:playPauseIndicator forwardSeekIndicator:nil backSeekIndicator:nil countRate:nil];
}
-+ (instancetype)countDownFromStartTimeInterval:(NSTimeInterval)startTime toEndTimeInterval:(NSTimeInterval)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator countRate:(nullable NSNumber<SDLFloat> *)countRate {
++ (instancetype)countDownFromStartTimeInterval:(NSTimeInterval)startTime toEndTimeInterval:(NSTimeInterval)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator forwardSeekIndicator:(nullable SDLSeekStreamingIndicator *)forwardSeekIndicator backSeekIndicator:(nullable SDLSeekStreamingIndicator *)backSeekIndicator countRate:(nullable NSNumber<SDLFloat> *)countRate {
SDLStartTime *startTimeRPC = [[SDLStartTime alloc] initWithTimeInterval:startTime];
SDLStartTime *endTimeRPC = [[SDLStartTime alloc] initWithTimeInterval:endTime];
- return [[self alloc] initWithUpdateMode:SDLUpdateModeCountDown startTime:startTimeRPC endTime:endTimeRPC audioStreamingIndicator:playPauseIndicator countRate:countRate];
+ return [[self alloc] initWithUpdateMode:SDLUpdateModeCountDown startTime:startTimeRPC endTime:endTimeRPC audioStreamingIndicator:playPauseIndicator forwardSeekIndicator:forwardSeekIndicator backSeekIndicator:backSeekIndicator countRate:countRate];
}
+ (instancetype)countDownFromStartTime:(SDLStartTime *)startTime toEndTime:(SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator {
- return [self countDownFromStartTime:startTime toEndTime:endTime playPauseIndicator:playPauseIndicator countRate:nil];
+ return [self countDownFromStartTime:startTime toEndTime:endTime playPauseIndicator:playPauseIndicator forwardSeekIndicator:nil backSeekIndicator:nil countRate:nil];
}
-+ (instancetype)countDownFromStartTime:(SDLStartTime *)startTime toEndTime:(SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator countRate:(nullable NSNumber<SDLFloat> *)countRate {
- return [[self alloc] initWithUpdateMode:SDLUpdateModeCountDown startTime:startTime endTime:endTime audioStreamingIndicator:playPauseIndicator countRate:countRate];
++ (instancetype)countDownFromStartTime:(SDLStartTime *)startTime toEndTime:(SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator forwardSeekIndicator:(nullable SDLSeekStreamingIndicator *)forwardSeekIndicator backSeekIndicator:(nullable SDLSeekStreamingIndicator *)backSeekIndicator countRate:(nullable NSNumber<SDLFloat> *)countRate {
+ return [[self alloc] initWithUpdateMode:SDLUpdateModeCountDown startTime:startTime endTime:endTime audioStreamingIndicator:playPauseIndicator forwardSeekIndicator:forwardSeekIndicator backSeekIndicator:backSeekIndicator countRate:countRate];
}
+ (instancetype)pauseWithPlayPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator {
- return [[self alloc] initWithUpdateMode:SDLUpdateModePause startTime:nil endTime:nil audioStreamingIndicator:playPauseIndicator countRate:nil];
+ return [[self alloc] initWithUpdateMode:SDLUpdateModePause startTime:nil endTime:nil audioStreamingIndicator:playPauseIndicator forwardSeekIndicator:nil backSeekIndicator:nil countRate:nil];
}
+ (instancetype)updatePauseWithNewStartTimeInterval:(NSTimeInterval)startTime endTimeInterval:(NSTimeInterval)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator {
SDLStartTime *startTimeRPC = [[SDLStartTime alloc] initWithTimeInterval:startTime];
SDLStartTime *endTimeRPC = [[SDLStartTime alloc] initWithTimeInterval:endTime];
- return [[self alloc] initWithUpdateMode:SDLUpdateModePause startTime:startTimeRPC endTime:endTimeRPC audioStreamingIndicator:playPauseIndicator countRate:nil];
+ return [[self alloc] initWithUpdateMode:SDLUpdateModePause startTime:startTimeRPC endTime:endTimeRPC audioStreamingIndicator:playPauseIndicator forwardSeekIndicator:nil backSeekIndicator:nil countRate:nil];
}
+ (instancetype)updatePauseWithNewStartTime:(SDLStartTime *)startTime endTime:(SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator {
- return [[self alloc] initWithUpdateMode:SDLUpdateModePause startTime:startTime endTime:endTime audioStreamingIndicator:playPauseIndicator countRate:nil];
+ return [[self alloc] initWithUpdateMode:SDLUpdateModePause startTime:startTime endTime:endTime audioStreamingIndicator:playPauseIndicator forwardSeekIndicator:nil backSeekIndicator:nil countRate:nil];
}
+ (instancetype)resumeWithPlayPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator {
- return [self resumeWithPlayPauseIndicator:playPauseIndicator countRate:nil];
+ return [self resumeWithPlayPauseIndicator:playPauseIndicator forwardSeekIndicator:nil backSeekIndicator:nil countRate:nil];
}
-+ (instancetype)resumeWithPlayPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator countRate:(nullable NSNumber<SDLFloat> *)countRate {
- return [[self alloc] initWithUpdateMode:SDLUpdateModeResume startTime:nil endTime:nil audioStreamingIndicator:playPauseIndicator countRate:countRate];
++ (instancetype)resumeWithPlayPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator forwardSeekIndicator:(nullable SDLSeekStreamingIndicator *)forwardSeekIndicator backSeekIndicator:(nullable SDLSeekStreamingIndicator *)backSeekIndicator countRate:(nullable NSNumber<SDLFloat> *)countRate {
+ return [[self alloc] initWithUpdateMode:SDLUpdateModeResume startTime:nil endTime:nil audioStreamingIndicator:playPauseIndicator forwardSeekIndicator:forwardSeekIndicator backSeekIndicator:backSeekIndicator countRate:countRate];
}
+ (instancetype)clearWithPlayPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator {
- return [[self alloc] initWithUpdateMode:SDLUpdateModeClear startTime:nil endTime:nil audioStreamingIndicator:playPauseIndicator countRate:nil];
+ return [[self alloc] initWithUpdateMode:SDLUpdateModeClear startTime:nil endTime:nil audioStreamingIndicator:playPauseIndicator forwardSeekIndicator:nil backSeekIndicator:nil countRate:nil];
}
- (void)setStartTime:(nullable SDLStartTime *)startTime {
@@ -145,6 +147,22 @@ NS_ASSUME_NONNULL_BEGIN
return [self.parameters sdl_enumForName:SDLRPCParameterNameAudioStreamingIndicator error:nil];
}
+- (void)setForwardSeekIndicator:(nullable SDLSeekStreamingIndicator *)forwardSeekIndicator {
+ [self.parameters sdl_setObject:forwardSeekIndicator forName:SDLRPCParameterNameForwardSeekIndicator];
+}
+
+- (nullable SDLSeekStreamingIndicator *)forwardSeekIndicator {
+ return [self.parameters sdl_objectForName:SDLRPCParameterNameForwardSeekIndicator ofClass:SDLSeekStreamingIndicator.class error:nil];
+}
+
+- (void)setBackSeekIndicator:(nullable SDLSeekStreamingIndicator *)backSeekIndicator {
+ [self.parameters sdl_setObject:backSeekIndicator forName:SDLRPCParameterNameBackSeekIndicator];
+}
+
+- (nullable SDLSeekStreamingIndicator *)backSeekIndicator {
+ return [self.parameters sdl_objectForName:SDLRPCParameterNameBackSeekIndicator ofClass:SDLSeekStreamingIndicator.class error:nil];
+}
+
- (void)setCountRate:(nullable NSNumber<SDLFloat> *)countRate {
[self.parameters sdl_setObject:countRate forName:SDLRPCParameterNameCountRate];
}
diff --git a/SmartDeviceLink/public/SDLSubscribeVehicleData.h b/SmartDeviceLink/public/SDLSubscribeVehicleData.h
index 27c830199..053c8c68c 100644
--- a/SmartDeviceLink/public/SDLSubscribeVehicleData.h
+++ b/SmartDeviceLink/public/SDLSubscribeVehicleData.h
@@ -53,7 +53,7 @@ NS_ASSUME_NONNULL_BEGIN
* @param wiperStatus Subscribe to wiperStatus
* @return A SDLSubscribeVehicleData object
*/
-- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation cloudAppVehicleID:(BOOL)cloudAppVehicleID clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal wiperStatus:(BOOL)wiperStatus __deprecated_msg("Use initWithGps:speed:rpm:instantFuelConsumption:fuelRange:externalTemperature:turnSignal:gearStatus:tirePressure:odometer:beltStatus:bodyInformation:deviceStatus:driverBraking:wiperStatus:headLampStatus:engineTorque:accPedalPosition:steeringWheelAngle:engineOilLife:electronicParkBrakeStatus:cloudAppVehicleID:stabilityControlsStatus:eCallInfo:airbagStatus:emergencyEvent:clusterModeStatus:myKey:handsOffSteering:windowStatus: instead");
+- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation cloudAppVehicleID:(BOOL)cloudAppVehicleID clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal wiperStatus:(BOOL)wiperStatus __deprecated_msg("Use initWithGps:speed:rpm:instantFuelConsumption:fuelRange:climateData:turnSignal:gearStatus:tirePressure:odometer:beltStatus:bodyInformation:deviceStatus:driverBraking:wiperStatus:headLampStatus:engineTorque:accPedalPosition:steeringWheelAngle:engineOilLife:electronicParkBrakeStatus:cloudAppVehicleID:stabilityControlsStatus:eCallInfo:airbagStatus:emergencyEvent:clusterModeStatus:myKey:windowStatus:handsOffSteering:seatOccupancy: instead");
/**
* Convenience init for subscribing to all possible vehicle data items.
@@ -90,7 +90,45 @@ NS_ASSUME_NONNULL_BEGIN
* @param windowStatus - windowStatus
* @return A SDLSubscribeVehicleData object
*/
-- (instancetype)initWithGps:(nullable NSNumber<SDLBool> *)gps speed:(nullable NSNumber<SDLBool> *)speed rpm:(nullable NSNumber<SDLBool> *)rpm instantFuelConsumption:(nullable NSNumber<SDLBool> *)instantFuelConsumption fuelRange:(nullable NSNumber<SDLBool> *)fuelRange externalTemperature:(nullable NSNumber<SDLBool> *)externalTemperature turnSignal:(nullable NSNumber<SDLBool> *)turnSignal gearStatus:(nullable NSNumber<SDLBool> *)gearStatus tirePressure:(nullable NSNumber<SDLBool> *)tirePressure odometer:(nullable NSNumber<SDLBool> *)odometer beltStatus:(nullable NSNumber<SDLBool> *)beltStatus bodyInformation:(nullable NSNumber<SDLBool> *)bodyInformation deviceStatus:(nullable NSNumber<SDLBool> *)deviceStatus driverBraking:(nullable NSNumber<SDLBool> *)driverBraking wiperStatus:(nullable NSNumber<SDLBool> *)wiperStatus headLampStatus:(nullable NSNumber<SDLBool> *)headLampStatus engineTorque:(nullable NSNumber<SDLBool> *)engineTorque accPedalPosition:(nullable NSNumber<SDLBool> *)accPedalPosition steeringWheelAngle:(nullable NSNumber<SDLBool> *)steeringWheelAngle engineOilLife:(nullable NSNumber<SDLBool> *)engineOilLife electronicParkBrakeStatus:(nullable NSNumber<SDLBool> *)electronicParkBrakeStatus cloudAppVehicleID:(nullable NSNumber<SDLBool> *)cloudAppVehicleID stabilityControlsStatus:(nullable NSNumber<SDLBool> *)stabilityControlsStatus eCallInfo:(nullable NSNumber<SDLBool> *)eCallInfo airbagStatus:(nullable NSNumber<SDLBool> *)airbagStatus emergencyEvent:(nullable NSNumber<SDLBool> *)emergencyEvent clusterModeStatus:(nullable NSNumber<SDLBool> *)clusterModeStatus myKey:(nullable NSNumber<SDLBool> *)myKey handsOffSteering:(nullable NSNumber<SDLBool> *)handsOffSteering windowStatus:(nullable NSNumber<SDLBool> *)windowStatus;
+- (instancetype)initWithGps:(nullable NSNumber<SDLBool> *)gps speed:(nullable NSNumber<SDLBool> *)speed rpm:(nullable NSNumber<SDLBool> *)rpm instantFuelConsumption:(nullable NSNumber<SDLBool> *)instantFuelConsumption fuelRange:(nullable NSNumber<SDLBool> *)fuelRange externalTemperature:(nullable NSNumber<SDLBool> *)externalTemperature turnSignal:(nullable NSNumber<SDLBool> *)turnSignal gearStatus:(nullable NSNumber<SDLBool> *)gearStatus tirePressure:(nullable NSNumber<SDLBool> *)tirePressure odometer:(nullable NSNumber<SDLBool> *)odometer beltStatus:(nullable NSNumber<SDLBool> *)beltStatus bodyInformation:(nullable NSNumber<SDLBool> *)bodyInformation deviceStatus:(nullable NSNumber<SDLBool> *)deviceStatus driverBraking:(nullable NSNumber<SDLBool> *)driverBraking wiperStatus:(nullable NSNumber<SDLBool> *)wiperStatus headLampStatus:(nullable NSNumber<SDLBool> *)headLampStatus engineTorque:(nullable NSNumber<SDLBool> *)engineTorque accPedalPosition:(nullable NSNumber<SDLBool> *)accPedalPosition steeringWheelAngle:(nullable NSNumber<SDLBool> *)steeringWheelAngle engineOilLife:(nullable NSNumber<SDLBool> *)engineOilLife electronicParkBrakeStatus:(nullable NSNumber<SDLBool> *)electronicParkBrakeStatus cloudAppVehicleID:(nullable NSNumber<SDLBool> *)cloudAppVehicleID stabilityControlsStatus:(nullable NSNumber<SDLBool> *)stabilityControlsStatus eCallInfo:(nullable NSNumber<SDLBool> *)eCallInfo airbagStatus:(nullable NSNumber<SDLBool> *)airbagStatus emergencyEvent:(nullable NSNumber<SDLBool> *)emergencyEvent clusterModeStatus:(nullable NSNumber<SDLBool> *)clusterModeStatus myKey:(nullable NSNumber<SDLBool> *)myKey handsOffSteering:(nullable NSNumber<SDLBool> *)handsOffSteering windowStatus:(nullable NSNumber<SDLBool> *)windowStatus __deprecated_msg("Use initWithGps:speed:rpm:instantFuelConsumption:fuelRange:climateData:turnSignal:gearStatus:tirePressure:odometer:beltStatus:bodyInformation:deviceStatus:driverBraking:wiperStatus:headLampStatus:engineTorque:accPedalPosition:steeringWheelAngle:engineOilLife:electronicParkBrakeStatus:cloudAppVehicleID:stabilityControlsStatus:eCallInfo:airbagStatus:emergencyEvent:clusterModeStatus:myKey:windowStatus:handsOffSteering:seatOccupancy: instead");
+
+/**
+ * Convenience init for subscribing to all possible vehicle data items.
+ *
+ * @param gps - gps
+ * @param speed - speed
+ * @param rpm - rpm
+ * @param instantFuelConsumption - instantFuelConsumption
+ * @param fuelRange - fuelRange
+ * @param climateData - climateData
+ * @param turnSignal - turnSignal
+ * @param gearStatus - gearStatus
+ * @param tirePressure - tirePressure
+ * @param odometer - odometer
+ * @param beltStatus - beltStatus
+ * @param bodyInformation - bodyInformation
+ * @param deviceStatus - deviceStatus
+ * @param driverBraking - driverBraking
+ * @param wiperStatus - wiperStatus
+ * @param headLampStatus - headLampStatus
+ * @param engineTorque - engineTorque
+ * @param accPedalPosition - accPedalPosition
+ * @param steeringWheelAngle - steeringWheelAngle
+ * @param engineOilLife - engineOilLife
+ * @param electronicParkBrakeStatus - electronicParkBrakeStatus
+ * @param cloudAppVehicleID - cloudAppVehicleID
+ * @param stabilityControlsStatus - stabilityControlsStatus
+ * @param eCallInfo - eCallInfo
+ * @param airbagStatus - airbagStatus
+ * @param emergencyEvent - emergencyEvent
+ * @param clusterModeStatus - clusterModeStatus
+ * @param myKey - myKey
+ * @param windowStatus - windowStatus
+ * @param handsOffSteering - handsOffSteering
+ * @param seatOccupancy - seatOccupancy
+ * @return A SDLSubscribeVehicleData object
+ */
+- (instancetype)initWithGps:(nullable NSNumber<SDLBool> *)gps speed:(nullable NSNumber<SDLBool> *)speed rpm:(nullable NSNumber<SDLBool> *)rpm instantFuelConsumption:(nullable NSNumber<SDLBool> *)instantFuelConsumption fuelRange:(nullable NSNumber<SDLBool> *)fuelRange climateData:(nullable NSNumber<SDLBool> *)climateData turnSignal:(nullable NSNumber<SDLBool> *)turnSignal gearStatus:(nullable NSNumber<SDLBool> *)gearStatus tirePressure:(nullable NSNumber<SDLBool> *)tirePressure odometer:(nullable NSNumber<SDLBool> *)odometer beltStatus:(nullable NSNumber<SDLBool> *)beltStatus bodyInformation:(nullable NSNumber<SDLBool> *)bodyInformation deviceStatus:(nullable NSNumber<SDLBool> *)deviceStatus driverBraking:(nullable NSNumber<SDLBool> *)driverBraking wiperStatus:(nullable NSNumber<SDLBool> *)wiperStatus headLampStatus:(nullable NSNumber<SDLBool> *)headLampStatus engineTorque:(nullable NSNumber<SDLBool> *)engineTorque accPedalPosition:(nullable NSNumber<SDLBool> *)accPedalPosition steeringWheelAngle:(nullable NSNumber<SDLBool> *)steeringWheelAngle engineOilLife:(nullable NSNumber<SDLBool> *)engineOilLife electronicParkBrakeStatus:(nullable NSNumber<SDLBool> *)electronicParkBrakeStatus cloudAppVehicleID:(nullable NSNumber<SDLBool> *)cloudAppVehicleID stabilityControlsStatus:(nullable NSNumber<SDLBool> *)stabilityControlsStatus eCallInfo:(nullable NSNumber<SDLBool> *)eCallInfo airbagStatus:(nullable NSNumber<SDLBool> *)airbagStatus emergencyEvent:(nullable NSNumber<SDLBool> *)emergencyEvent clusterModeStatus:(nullable NSNumber<SDLBool> *)clusterModeStatus myKey:(nullable NSNumber<SDLBool> *)myKey windowStatus:(nullable NSNumber<SDLBool> *)windowStatus handsOffSteering:(nullable NSNumber<SDLBool> *)handsOffSteering seatOccupancy:(nullable NSNumber<SDLBool> *)seatOccupancy;
/**
* See GearStatus
@@ -135,9 +173,19 @@ NS_ASSUME_NONNULL_BEGIN
@property (strong, nonatomic, nullable) NSNumber<SDLBool> *instantFuelConsumption;
/**
- * A boolean value. If true, subscribes External Temperature data.
+ * See ClimateData
+ *
+ * @added in SmartDeviceLink 7.1.0
*/
-@property (strong, nonatomic, nullable) NSNumber<SDLBool> *externalTemperature;
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *climateData;
+
+/**
+ * The external temperature in degrees celsius. This parameter is deprecated starting RPC Spec 7.1, please see climateData.
+ *
+ * @deprecated in SmartDeviceLink 7.1.0
+ * @added in SmartDeviceLink 2.0.0
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *externalTemperature __deprecated_msg("Use climateData instead on 7.1+ RPC version connections");
/**
* See PRNDL. This parameter is deprecated and it is now covered in `gearStatus`
@@ -284,6 +332,13 @@ NS_ASSUME_NONNULL_BEGIN
*/
- (nullable NSNumber<SDLBool> *)getOEMCustomVehicleData:(NSString *)vehicleDataName;
+/**
+ * See SeatOccupancy
+ *
+ * @added in SmartDeviceLink 7.1.0
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *seatOccupancy;
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/public/SDLSubscribeVehicleData.m b/SmartDeviceLink/public/SDLSubscribeVehicleData.m
index 0e8b39c53..d63fe65e6 100644
--- a/SmartDeviceLink/public/SDLSubscribeVehicleData.m
+++ b/SmartDeviceLink/public/SDLSubscribeVehicleData.m
@@ -24,19 +24,32 @@ NS_ASSUME_NONNULL_BEGIN
#pragma clang diagnostic pop
- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation cloudAppVehicleID:(BOOL)cloudAppVehicleID clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal wiperStatus:(BOOL)wiperStatus {
- self = [self initWithGps:@(gps) speed:@(speed) rpm:@(rpm) instantFuelConsumption:@(instantFuelConsumption) fuelRange:@(fuelRange) externalTemperature:@(externalTemperature) turnSignal:@(turnSignal) gearStatus:nil tirePressure:@(tirePressure) odometer:@(odometer) beltStatus:@(beltStatus) bodyInformation:@(bodyInformation) deviceStatus:@(deviceStatus) driverBraking:@(driverBraking) wiperStatus:@(wiperStatus) headLampStatus:@(headLampStatus) engineTorque:@(engineTorque) accPedalPosition:@(accelerationPedalPosition) steeringWheelAngle:@(steeringWheelAngle) engineOilLife:@(engineOilLife) electronicParkBrakeStatus:@(electronicParkBrakeStatus) cloudAppVehicleID:@(cloudAppVehicleID) stabilityControlsStatus:nil eCallInfo:@(eCallInfo) airbagStatus:@(airbagStatus) emergencyEvent:@(emergencyEvent) clusterModeStatus:@(clusterModeStatus) myKey:@(myKey) handsOffSteering:nil windowStatus:nil];
+ self = [self initWithGps:@(gps) speed:@(speed) rpm:@(rpm) instantFuelConsumption:@(instantFuelConsumption) fuelRange:@(fuelRange) climateData:nil turnSignal:@(turnSignal) gearStatus:nil tirePressure:@(tirePressure) odometer:@(odometer) beltStatus:@(beltStatus) bodyInformation:@(bodyInformation) deviceStatus:@(deviceStatus) driverBraking:@(driverBraking) wiperStatus:@(wiperStatus) headLampStatus:@(headLampStatus) engineTorque:@(engineTorque) accPedalPosition:nil steeringWheelAngle:@(steeringWheelAngle) engineOilLife:@(engineOilLife) electronicParkBrakeStatus:@(electronicParkBrakeStatus) cloudAppVehicleID:@(cloudAppVehicleID) stabilityControlsStatus:nil eCallInfo:@(eCallInfo) airbagStatus:@(airbagStatus) emergencyEvent:@(emergencyEvent) clusterModeStatus:@(clusterModeStatus) myKey:@(myKey) windowStatus:nil handsOffSteering:nil seatOccupancy:nil];
if (self) {
+ self.accPedalPosition = @(accelerationPedalPosition);
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
self.fuelLevel = @(fuelLevel);
self.fuelLevel_State = @(fuelLevelState);
self.prndl = @(prndl);
+ self.externalTemperature = @(externalTemperature);
#pragma clang diagnostic pop
}
return self;
}
- (instancetype)initWithGps:(nullable NSNumber<SDLBool> *)gps speed:(nullable NSNumber<SDLBool> *)speed rpm:(nullable NSNumber<SDLBool> *)rpm instantFuelConsumption:(nullable NSNumber<SDLBool> *)instantFuelConsumption fuelRange:(nullable NSNumber<SDLBool> *)fuelRange externalTemperature:(nullable NSNumber<SDLBool> *)externalTemperature turnSignal:(nullable NSNumber<SDLBool> *)turnSignal gearStatus:(nullable NSNumber<SDLBool> *)gearStatus tirePressure:(nullable NSNumber<SDLBool> *)tirePressure odometer:(nullable NSNumber<SDLBool> *)odometer beltStatus:(nullable NSNumber<SDLBool> *)beltStatus bodyInformation:(nullable NSNumber<SDLBool> *)bodyInformation deviceStatus:(nullable NSNumber<SDLBool> *)deviceStatus driverBraking:(nullable NSNumber<SDLBool> *)driverBraking wiperStatus:(nullable NSNumber<SDLBool> *)wiperStatus headLampStatus:(nullable NSNumber<SDLBool> *)headLampStatus engineTorque:(nullable NSNumber<SDLBool> *)engineTorque accPedalPosition:(nullable NSNumber<SDLBool> *)accPedalPosition steeringWheelAngle:(nullable NSNumber<SDLBool> *)steeringWheelAngle engineOilLife:(nullable NSNumber<SDLBool> *)engineOilLife electronicParkBrakeStatus:(nullable NSNumber<SDLBool> *)electronicParkBrakeStatus cloudAppVehicleID:(nullable NSNumber<SDLBool> *)cloudAppVehicleID stabilityControlsStatus:(nullable NSNumber<SDLBool> *)stabilityControlsStatus eCallInfo:(nullable NSNumber<SDLBool> *)eCallInfo airbagStatus:(nullable NSNumber<SDLBool> *)airbagStatus emergencyEvent:(nullable NSNumber<SDLBool> *)emergencyEvent clusterModeStatus:(nullable NSNumber<SDLBool> *)clusterModeStatus myKey:(nullable NSNumber<SDLBool> *)myKey handsOffSteering:(nullable NSNumber<SDLBool> *)handsOffSteering windowStatus:(nullable NSNumber<SDLBool> *)windowStatus {
+ self = [self initWithGps:gps speed:speed rpm:rpm instantFuelConsumption:instantFuelConsumption fuelRange:fuelRange climateData:nil turnSignal:turnSignal gearStatus:gearStatus tirePressure:tirePressure odometer:odometer beltStatus:beltStatus bodyInformation:bodyInformation deviceStatus:deviceStatus driverBraking:driverBraking wiperStatus:wiperStatus headLampStatus:headLampStatus engineTorque:engineTorque accPedalPosition:accPedalPosition steeringWheelAngle:steeringWheelAngle engineOilLife:engineOilLife electronicParkBrakeStatus:electronicParkBrakeStatus cloudAppVehicleID:cloudAppVehicleID stabilityControlsStatus:stabilityControlsStatus eCallInfo:eCallInfo airbagStatus:airbagStatus emergencyEvent:emergencyEvent clusterModeStatus:clusterModeStatus myKey:myKey windowStatus:windowStatus handsOffSteering:handsOffSteering seatOccupancy:nil];
+ if (self) {
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ self.externalTemperature = externalTemperature;
+#pragma clang diagnostic pop
+ }
+ return self;
+}
+
+- (instancetype)initWithGps:(nullable NSNumber<SDLBool> *)gps speed:(nullable NSNumber<SDLBool> *)speed rpm:(nullable NSNumber<SDLBool> *)rpm instantFuelConsumption:(nullable NSNumber<SDLBool> *)instantFuelConsumption fuelRange:(nullable NSNumber<SDLBool> *)fuelRange climateData:(nullable NSNumber<SDLBool> *)climateData turnSignal:(nullable NSNumber<SDLBool> *)turnSignal gearStatus:(nullable NSNumber<SDLBool> *)gearStatus tirePressure:(nullable NSNumber<SDLBool> *)tirePressure odometer:(nullable NSNumber<SDLBool> *)odometer beltStatus:(nullable NSNumber<SDLBool> *)beltStatus bodyInformation:(nullable NSNumber<SDLBool> *)bodyInformation deviceStatus:(nullable NSNumber<SDLBool> *)deviceStatus driverBraking:(nullable NSNumber<SDLBool> *)driverBraking wiperStatus:(nullable NSNumber<SDLBool> *)wiperStatus headLampStatus:(nullable NSNumber<SDLBool> *)headLampStatus engineTorque:(nullable NSNumber<SDLBool> *)engineTorque accPedalPosition:(nullable NSNumber<SDLBool> *)accPedalPosition steeringWheelAngle:(nullable NSNumber<SDLBool> *)steeringWheelAngle engineOilLife:(nullable NSNumber<SDLBool> *)engineOilLife electronicParkBrakeStatus:(nullable NSNumber<SDLBool> *)electronicParkBrakeStatus cloudAppVehicleID:(nullable NSNumber<SDLBool> *)cloudAppVehicleID stabilityControlsStatus:(nullable NSNumber<SDLBool> *)stabilityControlsStatus eCallInfo:(nullable NSNumber<SDLBool> *)eCallInfo airbagStatus:(nullable NSNumber<SDLBool> *)airbagStatus emergencyEvent:(nullable NSNumber<SDLBool> *)emergencyEvent clusterModeStatus:(nullable NSNumber<SDLBool> *)clusterModeStatus myKey:(nullable NSNumber<SDLBool> *)myKey windowStatus:(nullable NSNumber<SDLBool> *)windowStatus handsOffSteering:(nullable NSNumber<SDLBool> *)handsOffSteering seatOccupancy:(nullable NSNumber<SDLBool> *)seatOccupancy {
self = [self init];
if (!self) {
return nil;
@@ -46,7 +59,7 @@ NS_ASSUME_NONNULL_BEGIN
self.rpm = rpm;
self.instantFuelConsumption = instantFuelConsumption;
self.fuelRange = fuelRange;
- self.externalTemperature = externalTemperature;
+ self.climateData = climateData;
self.turnSignal = turnSignal;
self.gearStatus = gearStatus;
self.tirePressure = tirePressure;
@@ -69,8 +82,9 @@ NS_ASSUME_NONNULL_BEGIN
self.emergencyEvent = emergencyEvent;
self.clusterModeStatus = clusterModeStatus;
self.myKey = myKey;
- self.handsOffSteering = handsOffSteering;
self.windowStatus = windowStatus;
+ self.handsOffSteering = handsOffSteering;
+ self.seatOccupancy = seatOccupancy;
return self;
}
@@ -138,6 +152,14 @@ NS_ASSUME_NONNULL_BEGIN
return [self.parameters sdl_objectForName:SDLRPCParameterNameInstantFuelConsumption ofClass:NSNumber.class error:nil];
}
+- (void)setClimateData:(nullable NSNumber<SDLBool> *)climateData {
+ [self.parameters sdl_setObject:climateData forName:SDLRPCParameterNameClimateData];
+}
+
+- (nullable NSNumber<SDLBool> *)climateData {
+ return [self.parameters sdl_objectForName:SDLRPCParameterNameClimateData ofClass:NSNumber.class error:nil];
+}
+
- (void)setExternalTemperature:(nullable NSNumber<SDLBool> *)externalTemperature {
[self.parameters sdl_setObject:externalTemperature forName:SDLRPCParameterNameExternalTemperature];
}
@@ -348,6 +370,14 @@ NS_ASSUME_NONNULL_BEGIN
return [self.parameters sdl_objectForName:vehicleDataName ofClass:NSNumber.class error:nil];
}
+- (void)setSeatOccupancy:(nullable NSNumber<SDLBool> *)seatOccupancy {
+ [self.parameters sdl_setObject:seatOccupancy forName:SDLRPCParameterNameSeatOccupancy];
+}
+
+- (nullable NSNumber<SDLBool> *)seatOccupancy {
+ return [self.parameters sdl_objectForName:SDLRPCParameterNameSeatOccupancy ofClass:NSNumber.class error:nil];
+}
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/public/SDLSubscribeVehicleDataResponse.h b/SmartDeviceLink/public/SDLSubscribeVehicleDataResponse.h
index 5e37053d8..de02ed1ef 100644
--- a/SmartDeviceLink/public/SDLSubscribeVehicleDataResponse.h
+++ b/SmartDeviceLink/public/SDLSubscribeVehicleDataResponse.h
@@ -51,7 +51,46 @@ NS_ASSUME_NONNULL_BEGIN
* @param windowStatus - windowStatus
* @return A SDLSubscribeVehicleDataResponse object
*/
-- (instancetype)initWithGps:(nullable SDLVehicleDataResult *)gps speed:(nullable SDLVehicleDataResult *)speed rpm:(nullable SDLVehicleDataResult *)rpm instantFuelConsumption:(nullable SDLVehicleDataResult *)instantFuelConsumption fuelRange:(nullable SDLVehicleDataResult *)fuelRange externalTemperature:(nullable SDLVehicleDataResult *)externalTemperature turnSignal:(nullable SDLVehicleDataResult *)turnSignal gearStatus:(nullable SDLVehicleDataResult *)gearStatus tirePressure:(nullable SDLVehicleDataResult *)tirePressure odometer:(nullable SDLVehicleDataResult *)odometer beltStatus:(nullable SDLVehicleDataResult *)beltStatus bodyInformation:(nullable SDLVehicleDataResult *)bodyInformation deviceStatus:(nullable SDLVehicleDataResult *)deviceStatus driverBraking:(nullable SDLVehicleDataResult *)driverBraking wiperStatus:(nullable SDLVehicleDataResult *)wiperStatus headLampStatus:(nullable SDLVehicleDataResult *)headLampStatus engineTorque:(nullable SDLVehicleDataResult *)engineTorque accPedalPosition:(nullable SDLVehicleDataResult *)accPedalPosition steeringWheelAngle:(nullable SDLVehicleDataResult *)steeringWheelAngle engineOilLife:(nullable SDLVehicleDataResult *)engineOilLife electronicParkBrakeStatus:(nullable SDLVehicleDataResult *)electronicParkBrakeStatus cloudAppVehicleID:(nullable SDLVehicleDataResult *)cloudAppVehicleID stabilityControlsStatus:(nullable SDLVehicleDataResult *)stabilityControlsStatus eCallInfo:(nullable SDLVehicleDataResult *)eCallInfo airbagStatus:(nullable SDLVehicleDataResult *)airbagStatus emergencyEvent:(nullable SDLVehicleDataResult *)emergencyEvent clusterModes:(nullable SDLVehicleDataResult *)clusterModes myKey:(nullable SDLVehicleDataResult *)myKey handsOffSteering:(nullable SDLVehicleDataResult *)handsOffSteering windowStatus:(nullable SDLVehicleDataResult *)windowStatus;
+- (instancetype)initWithGps:(nullable SDLVehicleDataResult *)gps speed:(nullable SDLVehicleDataResult *)speed rpm:(nullable SDLVehicleDataResult *)rpm instantFuelConsumption:(nullable SDLVehicleDataResult *)instantFuelConsumption fuelRange:(nullable SDLVehicleDataResult *)fuelRange externalTemperature:(nullable SDLVehicleDataResult *)externalTemperature turnSignal:(nullable SDLVehicleDataResult *)turnSignal gearStatus:(nullable SDLVehicleDataResult *)gearStatus tirePressure:(nullable SDLVehicleDataResult *)tirePressure odometer:(nullable SDLVehicleDataResult *)odometer beltStatus:(nullable SDLVehicleDataResult *)beltStatus bodyInformation:(nullable SDLVehicleDataResult *)bodyInformation deviceStatus:(nullable SDLVehicleDataResult *)deviceStatus driverBraking:(nullable SDLVehicleDataResult *)driverBraking wiperStatus:(nullable SDLVehicleDataResult *)wiperStatus headLampStatus:(nullable SDLVehicleDataResult *)headLampStatus engineTorque:(nullable SDLVehicleDataResult *)engineTorque accPedalPosition:(nullable SDLVehicleDataResult *)accPedalPosition steeringWheelAngle:(nullable SDLVehicleDataResult *)steeringWheelAngle engineOilLife:(nullable SDLVehicleDataResult *)engineOilLife electronicParkBrakeStatus:(nullable SDLVehicleDataResult *)electronicParkBrakeStatus cloudAppVehicleID:(nullable SDLVehicleDataResult *)cloudAppVehicleID stabilityControlsStatus:(nullable SDLVehicleDataResult *)stabilityControlsStatus eCallInfo:(nullable SDLVehicleDataResult *)eCallInfo airbagStatus:(nullable SDLVehicleDataResult *)airbagStatus emergencyEvent:(nullable SDLVehicleDataResult *)emergencyEvent clusterModes:(nullable SDLVehicleDataResult *)clusterModes myKey:(nullable SDLVehicleDataResult *)myKey handsOffSteering:(nullable SDLVehicleDataResult *)handsOffSteering windowStatus:(nullable SDLVehicleDataResult *)windowStatus __deprecated_msg("Use initWithGps:speed:rpm:instantFuelConsumption:fuelRange:climateData:turnSignal:gearStatus:tirePressure:odometer:beltStatus:bodyInformation:deviceStatus:driverBraking:wiperStatus:headLampStatus:engineTorque:accPedalPosition:steeringWheelAngle:engineOilLife:electronicParkBrakeStatus:cloudAppVehicleID:stabilityControlsStatus:eCallInfo:airbagStatus:emergencyEvent:clusterModes:myKey:windowStatus:handsOffSteering:seatOccupancy: instead");
+
+
+/**
+ * Convenience init for setting all possible values on vehicle data items.
+ *
+ * @param gps - gps
+ * @param speed - speed
+ * @param rpm - rpm
+ * @param instantFuelConsumption - instantFuelConsumption
+ * @param fuelRange - fuelRange
+ * @param climateData - climateData
+ * @param turnSignal - turnSignal
+ * @param gearStatus - gearStatus
+ * @param tirePressure - tirePressure
+ * @param odometer - odometer
+ * @param beltStatus - beltStatus
+ * @param bodyInformation - bodyInformation
+ * @param deviceStatus - deviceStatus
+ * @param driverBraking - driverBraking
+ * @param wiperStatus - wiperStatus
+ * @param headLampStatus - headLampStatus
+ * @param engineTorque - engineTorque
+ * @param accPedalPosition - accPedalPosition
+ * @param steeringWheelAngle - steeringWheelAngle
+ * @param engineOilLife - engineOilLife
+ * @param electronicParkBrakeStatus - electronicParkBrakeStatus
+ * @param cloudAppVehicleID - cloudAppVehicleID
+ * @param stabilityControlsStatus - stabilityControlsStatus
+ * @param eCallInfo - eCallInfo
+ * @param airbagStatus - airbagStatus
+ * @param emergencyEvent - emergencyEvent
+ * @param clusterModes - clusterModes
+ * @param myKey - myKey
+ * @param windowStatus - windowStatus
+ * @param handsOffSteering - handsOffSteering
+ * @param seatOccupancy - seatOccupancy
+ * @return A SDLSubscribeVehicleDataResponse object
+ */
+- (instancetype)initWithGps:(nullable SDLVehicleDataResult *)gps speed:(nullable SDLVehicleDataResult *)speed rpm:(nullable SDLVehicleDataResult *)rpm instantFuelConsumption:(nullable SDLVehicleDataResult *)instantFuelConsumption fuelRange:(nullable SDLVehicleDataResult *)fuelRange climateData:(nullable SDLVehicleDataResult *)climateData turnSignal:(nullable SDLVehicleDataResult *)turnSignal gearStatus:(nullable SDLVehicleDataResult *)gearStatus tirePressure:(nullable SDLVehicleDataResult *)tirePressure odometer:(nullable SDLVehicleDataResult *)odometer beltStatus:(nullable SDLVehicleDataResult *)beltStatus bodyInformation:(nullable SDLVehicleDataResult *)bodyInformation deviceStatus:(nullable SDLVehicleDataResult *)deviceStatus driverBraking:(nullable SDLVehicleDataResult *)driverBraking wiperStatus:(nullable SDLVehicleDataResult *)wiperStatus headLampStatus:(nullable SDLVehicleDataResult *)headLampStatus engineTorque:(nullable SDLVehicleDataResult *)engineTorque accPedalPosition:(nullable SDLVehicleDataResult *)accPedalPosition steeringWheelAngle:(nullable SDLVehicleDataResult *)steeringWheelAngle engineOilLife:(nullable SDLVehicleDataResult *)engineOilLife electronicParkBrakeStatus:(nullable SDLVehicleDataResult *)electronicParkBrakeStatus cloudAppVehicleID:(nullable SDLVehicleDataResult *)cloudAppVehicleID stabilityControlsStatus:(nullable SDLVehicleDataResult *)stabilityControlsStatus eCallInfo:(nullable SDLVehicleDataResult *)eCallInfo airbagStatus:(nullable SDLVehicleDataResult *)airbagStatus emergencyEvent:(nullable SDLVehicleDataResult *)emergencyEvent clusterModes:(nullable SDLVehicleDataResult *)clusterModes myKey:(nullable SDLVehicleDataResult *)myKey windowStatus:(nullable SDLVehicleDataResult *)windowStatus handsOffSteering:(nullable SDLVehicleDataResult *)handsOffSteering seatOccupancy:(nullable SDLVehicleDataResult *)seatOccupancy;
/**
* See GearStatus
@@ -110,11 +149,19 @@ NS_ASSUME_NONNULL_BEGIN
@property (strong, nonatomic, nullable) SDLVehicleDataResult *instantFuelConsumption;
/**
- The result of requesting to subscribe to the external temperature in degrees celsius.
+ * See ClimateData
+ *
+ * @added in SmartDeviceLink 7.1.0
+ */
+@property (nullable, strong, nonatomic) SDLVehicleDataResult *climateData;
- Optional
+/**
+ * The external temperature in degrees celsius. This parameter is deprecated starting RPC Spec 7.1, please see climateData.
+ *
+ * @deprecated in SmartDeviceLink 7.1.0
+ * @added in SmartDeviceLink 2.0.0
*/
-@property (strong, nonatomic, nullable) SDLVehicleDataResult *externalTemperature;
+@property (nullable, strong, nonatomic) SDLVehicleDataResult *externalTemperature __deprecated_msg("Use climateData instead on 7.1+ RPC version connections");
/**
* See PRNDL. This parameter is deprecated and it is now covered in `gearStatus`
@@ -301,6 +348,13 @@ NS_ASSUME_NONNULL_BEGIN
*/
- (nullable SDLVehicleDataResult *)getOEMCustomVehicleData:(NSString *)vehicleDataName;
+/**
+ * See SeatOccupancy
+ *
+ * @added in SmartDeviceLink 7.1.0
+ */
+@property (nullable, strong, nonatomic) SDLVehicleDataResult *seatOccupancy;
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/public/SDLSubscribeVehicleDataResponse.m b/SmartDeviceLink/public/SDLSubscribeVehicleDataResponse.m
index 332847ed6..3ee8eab91 100644
--- a/SmartDeviceLink/public/SDLSubscribeVehicleDataResponse.m
+++ b/SmartDeviceLink/public/SDLSubscribeVehicleDataResponse.m
@@ -25,6 +25,18 @@ NS_ASSUME_NONNULL_BEGIN
#pragma clang diagnostic pop
- (instancetype)initWithGps:(nullable SDLVehicleDataResult *)gps speed:(nullable SDLVehicleDataResult *)speed rpm:(nullable SDLVehicleDataResult *)rpm instantFuelConsumption:(nullable SDLVehicleDataResult *)instantFuelConsumption fuelRange:(nullable SDLVehicleDataResult *)fuelRange externalTemperature:(nullable SDLVehicleDataResult *)externalTemperature turnSignal:(nullable SDLVehicleDataResult *)turnSignal gearStatus:(nullable SDLVehicleDataResult *)gearStatus tirePressure:(nullable SDLVehicleDataResult *)tirePressure odometer:(nullable SDLVehicleDataResult *)odometer beltStatus:(nullable SDLVehicleDataResult *)beltStatus bodyInformation:(nullable SDLVehicleDataResult *)bodyInformation deviceStatus:(nullable SDLVehicleDataResult *)deviceStatus driverBraking:(nullable SDLVehicleDataResult *)driverBraking wiperStatus:(nullable SDLVehicleDataResult *)wiperStatus headLampStatus:(nullable SDLVehicleDataResult *)headLampStatus engineTorque:(nullable SDLVehicleDataResult *)engineTorque accPedalPosition:(nullable SDLVehicleDataResult *)accPedalPosition steeringWheelAngle:(nullable SDLVehicleDataResult *)steeringWheelAngle engineOilLife:(nullable SDLVehicleDataResult *)engineOilLife electronicParkBrakeStatus:(nullable SDLVehicleDataResult *)electronicParkBrakeStatus cloudAppVehicleID:(nullable SDLVehicleDataResult *)cloudAppVehicleID stabilityControlsStatus:(nullable SDLVehicleDataResult *)stabilityControlsStatus eCallInfo:(nullable SDLVehicleDataResult *)eCallInfo airbagStatus:(nullable SDLVehicleDataResult *)airbagStatus emergencyEvent:(nullable SDLVehicleDataResult *)emergencyEvent clusterModes:(nullable SDLVehicleDataResult *)clusterModes myKey:(nullable SDLVehicleDataResult *)myKey handsOffSteering:(nullable SDLVehicleDataResult *)handsOffSteering windowStatus:(nullable SDLVehicleDataResult *)windowStatus {
+
+ self = [self initWithGps:gps speed:speed rpm:rpm instantFuelConsumption:instantFuelConsumption fuelRange:fuelRange climateData:nil turnSignal:turnSignal gearStatus:gearStatus tirePressure:tirePressure odometer:odometer beltStatus:beltStatus bodyInformation:bodyInformation deviceStatus:deviceStatus driverBraking:driverBraking wiperStatus:wiperStatus headLampStatus:headLampStatus engineTorque:engineTorque accPedalPosition:accPedalPosition steeringWheelAngle:steeringWheelAngle engineOilLife:engineOilLife electronicParkBrakeStatus:electronicParkBrakeStatus cloudAppVehicleID:cloudAppVehicleID stabilityControlsStatus:stabilityControlsStatus eCallInfo:eCallInfo airbagStatus:airbagStatus emergencyEvent:emergencyEvent clusterModes:clusterModes myKey:myKey windowStatus:windowStatus handsOffSteering:handsOffSteering seatOccupancy:nil];
+ if (self) {
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ self.externalTemperature = externalTemperature;
+#pragma clang diagnostic pop
+ }
+ return self;
+}
+
+- (instancetype)initWithGps:(nullable SDLVehicleDataResult *)gps speed:(nullable SDLVehicleDataResult *)speed rpm:(nullable SDLVehicleDataResult *)rpm instantFuelConsumption:(nullable SDLVehicleDataResult *)instantFuelConsumption fuelRange:(nullable SDLVehicleDataResult *)fuelRange climateData:(nullable SDLVehicleDataResult *)climateData turnSignal:(nullable SDLVehicleDataResult *)turnSignal gearStatus:(nullable SDLVehicleDataResult *)gearStatus tirePressure:(nullable SDLVehicleDataResult *)tirePressure odometer:(nullable SDLVehicleDataResult *)odometer beltStatus:(nullable SDLVehicleDataResult *)beltStatus bodyInformation:(nullable SDLVehicleDataResult *)bodyInformation deviceStatus:(nullable SDLVehicleDataResult *)deviceStatus driverBraking:(nullable SDLVehicleDataResult *)driverBraking wiperStatus:(nullable SDLVehicleDataResult *)wiperStatus headLampStatus:(nullable SDLVehicleDataResult *)headLampStatus engineTorque:(nullable SDLVehicleDataResult *)engineTorque accPedalPosition:(nullable SDLVehicleDataResult *)accPedalPosition steeringWheelAngle:(nullable SDLVehicleDataResult *)steeringWheelAngle engineOilLife:(nullable SDLVehicleDataResult *)engineOilLife electronicParkBrakeStatus:(nullable SDLVehicleDataResult *)electronicParkBrakeStatus cloudAppVehicleID:(nullable SDLVehicleDataResult *)cloudAppVehicleID stabilityControlsStatus:(nullable SDLVehicleDataResult *)stabilityControlsStatus eCallInfo:(nullable SDLVehicleDataResult *)eCallInfo airbagStatus:(nullable SDLVehicleDataResult *)airbagStatus emergencyEvent:(nullable SDLVehicleDataResult *)emergencyEvent clusterModes:(nullable SDLVehicleDataResult *)clusterModes myKey:(nullable SDLVehicleDataResult *)myKey windowStatus:(nullable SDLVehicleDataResult *)windowStatus handsOffSteering:(nullable SDLVehicleDataResult *)handsOffSteering seatOccupancy:(nullable SDLVehicleDataResult *)seatOccupancy {
self = [self init];
if (!self) {
return nil;
@@ -34,7 +46,7 @@ NS_ASSUME_NONNULL_BEGIN
self.rpm = rpm;
self.instantFuelConsumption = instantFuelConsumption;
self.fuelRange = fuelRange;
- self.externalTemperature = externalTemperature;
+ self.climateData = climateData;
self.turnSignal = turnSignal;
self.gearStatus = gearStatus;
self.tirePressure = tirePressure;
@@ -57,8 +69,9 @@ NS_ASSUME_NONNULL_BEGIN
self.emergencyEvent = emergencyEvent;
self.clusterModes = clusterModes;
self.myKey = myKey;
- self.handsOffSteering = handsOffSteering;
self.windowStatus = windowStatus;
+ self.handsOffSteering = handsOffSteering;
+ self.seatOccupancy = seatOccupancy;
return self;
}
@@ -126,6 +139,14 @@ NS_ASSUME_NONNULL_BEGIN
return [self.parameters sdl_objectForName:SDLRPCParameterNameInstantFuelConsumption ofClass:SDLVehicleDataResult.class error:nil];
}
+- (void)setClimateData:(nullable SDLVehicleDataResult *)climateData {
+ [self.parameters sdl_setObject:climateData forName:SDLRPCParameterNameClimateData];
+}
+
+- (nullable SDLVehicleDataResult *)climateData {
+ return [self.parameters sdl_objectForName:SDLRPCParameterNameClimateData ofClass:SDLVehicleDataResult.class error:nil];
+}
+
- (void)setExternalTemperature:(nullable SDLVehicleDataResult *)externalTemperature {
[self.parameters sdl_setObject:externalTemperature forName:SDLRPCParameterNameExternalTemperature];
}
@@ -336,6 +357,14 @@ NS_ASSUME_NONNULL_BEGIN
return [self.parameters sdl_objectForName:vehicleDataName ofClass:SDLVehicleDataResult.class error:nil];
}
+- (void)setSeatOccupancy:(nullable SDLVehicleDataResult *)seatOccupancy {
+ [self.parameters sdl_setObject:seatOccupancy forName:SDLRPCParameterNameSeatOccupancy];
+}
+
+- (nullable SDLVehicleDataResult *)seatOccupancy {
+ return [self.parameters sdl_objectForName:SDLRPCParameterNameSeatOccupancy ofClass:SDLVehicleDataResult.class error:nil];
+}
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/public/SDLTextFieldName.h b/SmartDeviceLink/public/SDLTextFieldName.h
index abd2d57fc..6ded571bd 100644
--- a/SmartDeviceLink/public/SDLTextFieldName.h
+++ b/SmartDeviceLink/public/SDLTextFieldName.h
@@ -232,6 +232,20 @@ extern SDLTextFieldName const SDLTextFieldNameAddressLines;
extern SDLTextFieldName const SDLTextFieldNamePhoneNumber;
/**
+ * Optional time to destination field for navigationTexts parameter in ShowConstantTBT
+ *
+ * @added in SmartDeviceLink 7.1.0
+ */
+extern SDLTextFieldName const SDLTextFieldNameTimeToDestination;
+
+/**
+ * Turn text for turnList parameter of UpdateTurnList
+ *
+ * @added in SmartDeviceLink 7.1.0
+ */
+extern SDLTextFieldName const SDLTextFieldNameTurnText;
+
+/**
* The first line of the subtle alert text field; applies to `SubtleAlert` `alertText1`
*
* @since SDL 7.0.0
diff --git a/SmartDeviceLink/public/SDLTextFieldName.m b/SmartDeviceLink/public/SDLTextFieldName.m
index 54f8c781e..94ad94266 100644
--- a/SmartDeviceLink/public/SDLTextFieldName.m
+++ b/SmartDeviceLink/public/SDLTextFieldName.m
@@ -61,6 +61,8 @@ SDLTextFieldName const SDLTextFieldNameLocationName = @"locationName";
SDLTextFieldName const SDLTextFieldNameLocationDescription = @"locationDescription";
SDLTextFieldName const SDLTextFieldNameAddressLines = @"addressLines";
SDLTextFieldName const SDLTextFieldNamePhoneNumber = @"phoneNumber";
+SDLTextFieldName const SDLTextFieldNameTimeToDestination = @"timeToDestination";
+SDLTextFieldName const SDLTextFieldNameTurnText = @"turnText";
SDLTextFieldName const SDLTextFieldNameSubtleAlertText1 = @"subtleAlertText1";
SDLTextFieldName const SDLTextFieldNameSubtleAlertText2 = @"subtleAlertText2";
SDLTextFieldName const SDLTextFieldNameSubtleAlertSoftButtonText = @"subtleAlertSoftButtonText";
diff --git a/SmartDeviceLink/public/SDLUnsubscribeVehicleData.h b/SmartDeviceLink/public/SDLUnsubscribeVehicleData.h
index 57acba53d..04b08cf29 100644
--- a/SmartDeviceLink/public/SDLUnsubscribeVehicleData.h
+++ b/SmartDeviceLink/public/SDLUnsubscribeVehicleData.h
@@ -55,7 +55,7 @@ NS_ASSUME_NONNULL_BEGIN
* @param wiperStatus Unsubscribe to wiperStatus
* @return A SDLUnsubscribeVehicleData object
*/
-- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation cloudAppVehicleID:(BOOL)cloudAppVehicleID clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal wiperStatus:(BOOL)wiperStatus __deprecated_msg("Use initWithGps:speed:rpm:instantFuelConsumption:fuelRange:externalTemperature:turnSignal:gearStatus:tirePressure:odometer:beltStatus:bodyInformation:deviceStatus:driverBraking:wiperStatus:headLampStatus:engineTorque:accPedalPosition:steeringWheelAngle:engineOilLife:electronicParkBrakeStatus:cloudAppVehicleID:stabilityControlsStatus:eCallInfo:airbagStatus:emergencyEvent:clusterModeStatus:myKey:handsOffSteering:windowStatus: instead");
+- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation cloudAppVehicleID:(BOOL)cloudAppVehicleID clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal wiperStatus:(BOOL)wiperStatus __deprecated_msg("Use initWithGps:speed:rpm:instantFuelConsumption:fuelRange:climateData:turnSignal:gearStatus:tirePressure:odometer:beltStatus:bodyInformation:deviceStatus:driverBraking:wiperStatus:headLampStatus:engineTorque:accPedalPosition:steeringWheelAngle:engineOilLife:electronicParkBrakeStatus:cloudAppVehicleID:stabilityControlsStatus:eCallInfo:airbagStatus:emergencyEvent:clusterModeStatus:myKey:windowStatus:handsOffSteering:seatOccupancy: instead");
/**
* Convenience init for unsubscribing from all possible vehicle data items.
@@ -92,7 +92,45 @@ NS_ASSUME_NONNULL_BEGIN
* @param windowStatus - windowStatus
* @return A SDLUnsubscribeVehicleData object
*/
-- (instancetype)initWithGps:(nullable NSNumber<SDLBool> *)gps speed:(nullable NSNumber<SDLBool> *)speed rpm:(nullable NSNumber<SDLBool> *)rpm instantFuelConsumption:(nullable NSNumber<SDLBool> *)instantFuelConsumption fuelRange:(nullable NSNumber<SDLBool> *)fuelRange externalTemperature:(nullable NSNumber<SDLBool> *)externalTemperature turnSignal:(nullable NSNumber<SDLBool> *)turnSignal gearStatus:(nullable NSNumber<SDLBool> *)gearStatus tirePressure:(nullable NSNumber<SDLBool> *)tirePressure odometer:(nullable NSNumber<SDLBool> *)odometer beltStatus:(nullable NSNumber<SDLBool> *)beltStatus bodyInformation:(nullable NSNumber<SDLBool> *)bodyInformation deviceStatus:(nullable NSNumber<SDLBool> *)deviceStatus driverBraking:(nullable NSNumber<SDLBool> *)driverBraking wiperStatus:(nullable NSNumber<SDLBool> *)wiperStatus headLampStatus:(nullable NSNumber<SDLBool> *)headLampStatus engineTorque:(nullable NSNumber<SDLBool> *)engineTorque accPedalPosition:(nullable NSNumber<SDLBool> *)accPedalPosition steeringWheelAngle:(nullable NSNumber<SDLBool> *)steeringWheelAngle engineOilLife:(nullable NSNumber<SDLBool> *)engineOilLife electronicParkBrakeStatus:(nullable NSNumber<SDLBool> *)electronicParkBrakeStatus cloudAppVehicleID:(nullable NSNumber<SDLBool> *)cloudAppVehicleID stabilityControlsStatus:(nullable NSNumber<SDLBool> *)stabilityControlsStatus eCallInfo:(nullable NSNumber<SDLBool> *)eCallInfo airbagStatus:(nullable NSNumber<SDLBool> *)airbagStatus emergencyEvent:(nullable NSNumber<SDLBool> *)emergencyEvent clusterModeStatus:(nullable NSNumber<SDLBool> *)clusterModeStatus myKey:(nullable NSNumber<SDLBool> *)myKey handsOffSteering:(nullable NSNumber<SDLBool> *)handsOffSteering windowStatus:(nullable NSNumber<SDLBool> *)windowStatus;
+- (instancetype)initWithGps:(nullable NSNumber<SDLBool> *)gps speed:(nullable NSNumber<SDLBool> *)speed rpm:(nullable NSNumber<SDLBool> *)rpm instantFuelConsumption:(nullable NSNumber<SDLBool> *)instantFuelConsumption fuelRange:(nullable NSNumber<SDLBool> *)fuelRange externalTemperature:(nullable NSNumber<SDLBool> *)externalTemperature turnSignal:(nullable NSNumber<SDLBool> *)turnSignal gearStatus:(nullable NSNumber<SDLBool> *)gearStatus tirePressure:(nullable NSNumber<SDLBool> *)tirePressure odometer:(nullable NSNumber<SDLBool> *)odometer beltStatus:(nullable NSNumber<SDLBool> *)beltStatus bodyInformation:(nullable NSNumber<SDLBool> *)bodyInformation deviceStatus:(nullable NSNumber<SDLBool> *)deviceStatus driverBraking:(nullable NSNumber<SDLBool> *)driverBraking wiperStatus:(nullable NSNumber<SDLBool> *)wiperStatus headLampStatus:(nullable NSNumber<SDLBool> *)headLampStatus engineTorque:(nullable NSNumber<SDLBool> *)engineTorque accPedalPosition:(nullable NSNumber<SDLBool> *)accPedalPosition steeringWheelAngle:(nullable NSNumber<SDLBool> *)steeringWheelAngle engineOilLife:(nullable NSNumber<SDLBool> *)engineOilLife electronicParkBrakeStatus:(nullable NSNumber<SDLBool> *)electronicParkBrakeStatus cloudAppVehicleID:(nullable NSNumber<SDLBool> *)cloudAppVehicleID stabilityControlsStatus:(nullable NSNumber<SDLBool> *)stabilityControlsStatus eCallInfo:(nullable NSNumber<SDLBool> *)eCallInfo airbagStatus:(nullable NSNumber<SDLBool> *)airbagStatus emergencyEvent:(nullable NSNumber<SDLBool> *)emergencyEvent clusterModeStatus:(nullable NSNumber<SDLBool> *)clusterModeStatus myKey:(nullable NSNumber<SDLBool> *)myKey handsOffSteering:(nullable NSNumber<SDLBool> *)handsOffSteering windowStatus:(nullable NSNumber<SDLBool> *)windowStatus __deprecated_msg("Use initWithGps:speed:rpm:instantFuelConsumption:fuelRange:climateData:turnSignal:gearStatus:tirePressure:odometer:beltStatus:bodyInformation:deviceStatus:driverBraking:wiperStatus:headLampStatus:engineTorque:accPedalPosition:steeringWheelAngle:engineOilLife:electronicParkBrakeStatus:cloudAppVehicleID:stabilityControlsStatus:eCallInfo:airbagStatus:emergencyEvent:clusterModeStatus:myKey:windowStatus:handsOffSteering:seatOccupancy: instead");
+
+/**
+ * Convenience init for unsubscribing from all possible vehicle data items.
+ *
+ * @param gps - gps
+ * @param speed - speed
+ * @param rpm - rpm
+ * @param instantFuelConsumption - instantFuelConsumption
+ * @param fuelRange - fuelRange
+ * @param climateData - climateData
+ * @param turnSignal - turnSignal
+ * @param gearStatus - gearStatus
+ * @param tirePressure - tirePressure
+ * @param odometer - odometer
+ * @param beltStatus - beltStatus
+ * @param bodyInformation - bodyInformation
+ * @param deviceStatus - deviceStatus
+ * @param driverBraking - driverBraking
+ * @param wiperStatus - wiperStatus
+ * @param headLampStatus - headLampStatus
+ * @param engineTorque - engineTorque
+ * @param accPedalPosition - accPedalPosition
+ * @param steeringWheelAngle - steeringWheelAngle
+ * @param engineOilLife - engineOilLife
+ * @param electronicParkBrakeStatus - electronicParkBrakeStatus
+ * @param cloudAppVehicleID - cloudAppVehicleID
+ * @param stabilityControlsStatus - stabilityControlsStatus
+ * @param eCallInfo - eCallInfo
+ * @param airbagStatus - airbagStatus
+ * @param emergencyEvent - emergencyEvent
+ * @param clusterModeStatus - clusterModeStatus
+ * @param myKey - myKey
+ * @param windowStatus - windowStatus
+ * @param handsOffSteering - handsOffSteering
+ * @param seatOccupancy - seatOccupancy
+ * @return A SDLUnsubscribeVehicleData object
+ */
+- (instancetype)initWithGps:(nullable NSNumber<SDLBool> *)gps speed:(nullable NSNumber<SDLBool> *)speed rpm:(nullable NSNumber<SDLBool> *)rpm instantFuelConsumption:(nullable NSNumber<SDLBool> *)instantFuelConsumption fuelRange:(nullable NSNumber<SDLBool> *)fuelRange climateData:(nullable NSNumber<SDLBool> *)climateData turnSignal:(nullable NSNumber<SDLBool> *)turnSignal gearStatus:(nullable NSNumber<SDLBool> *)gearStatus tirePressure:(nullable NSNumber<SDLBool> *)tirePressure odometer:(nullable NSNumber<SDLBool> *)odometer beltStatus:(nullable NSNumber<SDLBool> *)beltStatus bodyInformation:(nullable NSNumber<SDLBool> *)bodyInformation deviceStatus:(nullable NSNumber<SDLBool> *)deviceStatus driverBraking:(nullable NSNumber<SDLBool> *)driverBraking wiperStatus:(nullable NSNumber<SDLBool> *)wiperStatus headLampStatus:(nullable NSNumber<SDLBool> *)headLampStatus engineTorque:(nullable NSNumber<SDLBool> *)engineTorque accPedalPosition:(nullable NSNumber<SDLBool> *)accPedalPosition steeringWheelAngle:(nullable NSNumber<SDLBool> *)steeringWheelAngle engineOilLife:(nullable NSNumber<SDLBool> *)engineOilLife electronicParkBrakeStatus:(nullable NSNumber<SDLBool> *)electronicParkBrakeStatus cloudAppVehicleID:(nullable NSNumber<SDLBool> *)cloudAppVehicleID stabilityControlsStatus:(nullable NSNumber<SDLBool> *)stabilityControlsStatus eCallInfo:(nullable NSNumber<SDLBool> *)eCallInfo airbagStatus:(nullable NSNumber<SDLBool> *)airbagStatus emergencyEvent:(nullable NSNumber<SDLBool> *)emergencyEvent clusterModeStatus:(nullable NSNumber<SDLBool> *)clusterModeStatus myKey:(nullable NSNumber<SDLBool> *)myKey windowStatus:(nullable NSNumber<SDLBool> *)windowStatus handsOffSteering:(nullable NSNumber<SDLBool> *)handsOffSteering seatOccupancy:(nullable NSNumber<SDLBool> *)seatOccupancy;
/**
* See GearStatus
@@ -137,9 +175,19 @@ NS_ASSUME_NONNULL_BEGIN
@property (strong, nonatomic, nullable) NSNumber<SDLBool> *instantFuelConsumption;
/**
- * If true, unsubscribes from External Temperature
+ * See ClimateData
+ *
+ * @added in SmartDeviceLink 7.1.0
*/
-@property (strong, nonatomic, nullable) NSNumber<SDLBool> *externalTemperature;
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *climateData;
+
+/**
+ * The external temperature in degrees celsius. This parameter is deprecated starting RPC Spec 7.1, please see climateData.
+ *
+ * @deprecated in SmartDeviceLink 7.1.0
+ * @added in SmartDeviceLink 2.0.0
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *externalTemperature __deprecated_msg("Use climateData instead on 7.1+ RPC version connections");
/**
* See PRNDL. This parameter is deprecated and it is now covered in `gearStatus`
@@ -286,6 +334,13 @@ NS_ASSUME_NONNULL_BEGIN
*/
- (nullable NSNumber<SDLBool> *)getOEMCustomVehicleData:(NSString *)vehicleDataName;
+/**
+ * See SeatOccupancy
+ *
+ * @added in SmartDeviceLink 7.1.0
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *seatOccupancy;
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/public/SDLUnsubscribeVehicleData.m b/SmartDeviceLink/public/SDLUnsubscribeVehicleData.m
index 217c23ce5..569d5bcfb 100644
--- a/SmartDeviceLink/public/SDLUnsubscribeVehicleData.m
+++ b/SmartDeviceLink/public/SDLUnsubscribeVehicleData.m
@@ -23,20 +23,32 @@ NS_ASSUME_NONNULL_BEGIN
}
#pragma clang diagnostic pop
-- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation cloudAppVehicleID:(BOOL)cloudAppVehicleID clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal wiperStatus:(BOOL)wiperStatus {
- self = [self initWithGps:@(gps) speed:@(speed) rpm:@(rpm) instantFuelConsumption:@(instantFuelConsumption) fuelRange:@(fuelRange) externalTemperature:@(externalTemperature) turnSignal:@(turnSignal) gearStatus:nil tirePressure:@(tirePressure) odometer:@(odometer) beltStatus:@(beltStatus) bodyInformation:@(bodyInformation) deviceStatus:@(deviceStatus) driverBraking:@(driverBraking) wiperStatus:@(wiperStatus) headLampStatus:@(headLampStatus) engineTorque:@(engineTorque) accPedalPosition:@(accelerationPedalPosition) steeringWheelAngle:@(steeringWheelAngle) engineOilLife:@(engineOilLife) electronicParkBrakeStatus:@(electronicParkBrakeStatus) cloudAppVehicleID:@(cloudAppVehicleID) stabilityControlsStatus:nil eCallInfo:@(eCallInfo) airbagStatus:@(airbagStatus) emergencyEvent:@(emergencyEvent) clusterModeStatus:@(clusterModeStatus) myKey:@(myKey) handsOffSteering:nil windowStatus:nil];
+- (instancetype)initWithAccelerationPedalPosition:(BOOL)accPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation cloudAppVehicleID:(BOOL)cloudAppVehicleID clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal wiperStatus:(BOOL)wiperStatus {
+ self = [self initWithGps:@(gps) speed:@(speed) rpm:@(rpm) instantFuelConsumption:@(instantFuelConsumption) fuelRange:@(fuelRange) climateData:nil turnSignal:@(turnSignal) gearStatus:nil tirePressure:@(tirePressure) odometer:@(odometer) beltStatus:@(beltStatus) bodyInformation:@(bodyInformation) deviceStatus:@(deviceStatus) driverBraking:@(driverBraking) wiperStatus:@(wiperStatus) headLampStatus:@(headLampStatus) engineTorque:@(engineTorque) accPedalPosition:@(accPedalPosition) steeringWheelAngle:@(steeringWheelAngle) engineOilLife:@(engineOilLife) electronicParkBrakeStatus:@(electronicParkBrakeStatus) cloudAppVehicleID:@(cloudAppVehicleID) stabilityControlsStatus:nil eCallInfo:@(eCallInfo) airbagStatus:@(airbagStatus) emergencyEvent:@(emergencyEvent) clusterModeStatus:@(clusterModeStatus) myKey:@(myKey) windowStatus:nil handsOffSteering:nil seatOccupancy:nil];
if (self) {
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
self.fuelLevel = @(fuelLevel);
self.fuelLevel_State = @(fuelLevelState);
self.prndl = @(prndl);
+ self.externalTemperature = @(externalTemperature);
#pragma clang diagnostic pop
}
return self;
}
- (instancetype)initWithGps:(nullable NSNumber<SDLBool> *)gps speed:(nullable NSNumber<SDLBool> *)speed rpm:(nullable NSNumber<SDLBool> *)rpm instantFuelConsumption:(nullable NSNumber<SDLBool> *)instantFuelConsumption fuelRange:(nullable NSNumber<SDLBool> *)fuelRange externalTemperature:(nullable NSNumber<SDLBool> *)externalTemperature turnSignal:(nullable NSNumber<SDLBool> *)turnSignal gearStatus:(nullable NSNumber<SDLBool> *)gearStatus tirePressure:(nullable NSNumber<SDLBool> *)tirePressure odometer:(nullable NSNumber<SDLBool> *)odometer beltStatus:(nullable NSNumber<SDLBool> *)beltStatus bodyInformation:(nullable NSNumber<SDLBool> *)bodyInformation deviceStatus:(nullable NSNumber<SDLBool> *)deviceStatus driverBraking:(nullable NSNumber<SDLBool> *)driverBraking wiperStatus:(nullable NSNumber<SDLBool> *)wiperStatus headLampStatus:(nullable NSNumber<SDLBool> *)headLampStatus engineTorque:(nullable NSNumber<SDLBool> *)engineTorque accPedalPosition:(nullable NSNumber<SDLBool> *)accPedalPosition steeringWheelAngle:(nullable NSNumber<SDLBool> *)steeringWheelAngle engineOilLife:(nullable NSNumber<SDLBool> *)engineOilLife electronicParkBrakeStatus:(nullable NSNumber<SDLBool> *)electronicParkBrakeStatus cloudAppVehicleID:(nullable NSNumber<SDLBool> *)cloudAppVehicleID stabilityControlsStatus:(nullable NSNumber<SDLBool> *)stabilityControlsStatus eCallInfo:(nullable NSNumber<SDLBool> *)eCallInfo airbagStatus:(nullable NSNumber<SDLBool> *)airbagStatus emergencyEvent:(nullable NSNumber<SDLBool> *)emergencyEvent clusterModeStatus:(nullable NSNumber<SDLBool> *)clusterModeStatus myKey:(nullable NSNumber<SDLBool> *)myKey handsOffSteering:(nullable NSNumber<SDLBool> *)handsOffSteering windowStatus:(nullable NSNumber<SDLBool> *)windowStatus {
+ self = [self initWithGps:gps speed:speed rpm:rpm instantFuelConsumption:instantFuelConsumption fuelRange:fuelRange climateData:nil turnSignal:turnSignal gearStatus:gearStatus tirePressure:tirePressure odometer:odometer beltStatus:beltStatus bodyInformation:bodyInformation deviceStatus:deviceStatus driverBraking:driverBraking wiperStatus:wiperStatus headLampStatus:headLampStatus engineTorque:engineTorque accPedalPosition:accPedalPosition steeringWheelAngle:steeringWheelAngle engineOilLife:engineOilLife electronicParkBrakeStatus:electronicParkBrakeStatus cloudAppVehicleID:cloudAppVehicleID stabilityControlsStatus:stabilityControlsStatus eCallInfo:eCallInfo airbagStatus:airbagStatus emergencyEvent:emergencyEvent clusterModeStatus:clusterModeStatus myKey:myKey windowStatus:windowStatus handsOffSteering:handsOffSteering seatOccupancy:nil];
+ if (self) {
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ self.externalTemperature = externalTemperature;
+#pragma clang diagnostic pop
+ }
+ return self;
+}
+
+- (instancetype)initWithGps:(nullable NSNumber<SDLBool> *)gps speed:(nullable NSNumber<SDLBool> *)speed rpm:(nullable NSNumber<SDLBool> *)rpm instantFuelConsumption:(nullable NSNumber<SDLBool> *)instantFuelConsumption fuelRange:(nullable NSNumber<SDLBool> *)fuelRange climateData:(nullable NSNumber<SDLBool> *)climateData turnSignal:(nullable NSNumber<SDLBool> *)turnSignal gearStatus:(nullable NSNumber<SDLBool> *)gearStatus tirePressure:(nullable NSNumber<SDLBool> *)tirePressure odometer:(nullable NSNumber<SDLBool> *)odometer beltStatus:(nullable NSNumber<SDLBool> *)beltStatus bodyInformation:(nullable NSNumber<SDLBool> *)bodyInformation deviceStatus:(nullable NSNumber<SDLBool> *)deviceStatus driverBraking:(nullable NSNumber<SDLBool> *)driverBraking wiperStatus:(nullable NSNumber<SDLBool> *)wiperStatus headLampStatus:(nullable NSNumber<SDLBool> *)headLampStatus engineTorque:(nullable NSNumber<SDLBool> *)engineTorque accPedalPosition:(nullable NSNumber<SDLBool> *)accPedalPosition steeringWheelAngle:(nullable NSNumber<SDLBool> *)steeringWheelAngle engineOilLife:(nullable NSNumber<SDLBool> *)engineOilLife electronicParkBrakeStatus:(nullable NSNumber<SDLBool> *)electronicParkBrakeStatus cloudAppVehicleID:(nullable NSNumber<SDLBool> *)cloudAppVehicleID stabilityControlsStatus:(nullable NSNumber<SDLBool> *)stabilityControlsStatus eCallInfo:(nullable NSNumber<SDLBool> *)eCallInfo airbagStatus:(nullable NSNumber<SDLBool> *)airbagStatus emergencyEvent:(nullable NSNumber<SDLBool> *)emergencyEvent clusterModeStatus:(nullable NSNumber<SDLBool> *)clusterModeStatus myKey:(nullable NSNumber<SDLBool> *)myKey windowStatus:(nullable NSNumber<SDLBool> *)windowStatus handsOffSteering:(nullable NSNumber<SDLBool> *)handsOffSteering seatOccupancy:(nullable NSNumber<SDLBool> *)seatOccupancy {
self = [self init];
if (!self) {
return nil;
@@ -46,7 +58,7 @@ NS_ASSUME_NONNULL_BEGIN
self.rpm = rpm;
self.instantFuelConsumption = instantFuelConsumption;
self.fuelRange = fuelRange;
- self.externalTemperature = externalTemperature;
+ self.climateData = climateData;
self.turnSignal = turnSignal;
self.gearStatus = gearStatus;
self.tirePressure = tirePressure;
@@ -69,8 +81,9 @@ NS_ASSUME_NONNULL_BEGIN
self.emergencyEvent = emergencyEvent;
self.clusterModeStatus = clusterModeStatus;
self.myKey = myKey;
- self.handsOffSteering = handsOffSteering;
self.windowStatus = windowStatus;
+ self.handsOffSteering = handsOffSteering;
+ self.seatOccupancy = seatOccupancy;
return self;
}
@@ -138,6 +151,14 @@ NS_ASSUME_NONNULL_BEGIN
return [self.parameters sdl_objectForName:SDLRPCParameterNameInstantFuelConsumption ofClass:NSNumber.class error:nil];
}
+- (void)setClimateData:(nullable NSNumber<SDLBool> *)climateData {
+ [self.parameters sdl_setObject:climateData forName:SDLRPCParameterNameClimateData];
+}
+
+- (nullable NSNumber<SDLBool> *)climateData {
+ return [self.parameters sdl_objectForName:SDLRPCParameterNameClimateData ofClass:NSNumber.class error:nil];
+}
+
- (void)setExternalTemperature:(nullable NSNumber<SDLBool> *)externalTemperature {
[self.parameters sdl_setObject:externalTemperature forName:SDLRPCParameterNameExternalTemperature];
}
@@ -348,6 +369,14 @@ NS_ASSUME_NONNULL_BEGIN
return [self.parameters sdl_objectForName:vehicleDataName ofClass:NSNumber.class error:nil];
}
+- (void)setSeatOccupancy:(nullable NSNumber<SDLBool> *)seatOccupancy {
+ [self.parameters sdl_setObject:seatOccupancy forName:SDLRPCParameterNameSeatOccupancy];
+}
+
+- (nullable NSNumber<SDLBool> *)seatOccupancy {
+ return [self.parameters sdl_objectForName:SDLRPCParameterNameSeatOccupancy ofClass:NSNumber.class error:nil];
+}
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/public/SDLUnsubscribeVehicleDataResponse.h b/SmartDeviceLink/public/SDLUnsubscribeVehicleDataResponse.h
index cbc79afc3..1d5c1ae81 100644
--- a/SmartDeviceLink/public/SDLUnsubscribeVehicleDataResponse.h
+++ b/SmartDeviceLink/public/SDLUnsubscribeVehicleDataResponse.h
@@ -50,7 +50,45 @@ NS_ASSUME_NONNULL_BEGIN
* @param windowStatus - windowStatus
* @return A SDLUnsubscribeVehicleDataResponse object
*/
-- (instancetype)initWithGps:(nullable SDLVehicleDataResult *)gps speed:(nullable SDLVehicleDataResult *)speed rpm:(nullable SDLVehicleDataResult *)rpm instantFuelConsumption:(nullable SDLVehicleDataResult *)instantFuelConsumption fuelRange:(nullable SDLVehicleDataResult *)fuelRange externalTemperature:(nullable SDLVehicleDataResult *)externalTemperature turnSignal:(nullable SDLVehicleDataResult *)turnSignal gearStatus:(nullable SDLVehicleDataResult *)gearStatus tirePressure:(nullable SDLVehicleDataResult *)tirePressure odometer:(nullable SDLVehicleDataResult *)odometer beltStatus:(nullable SDLVehicleDataResult *)beltStatus bodyInformation:(nullable SDLVehicleDataResult *)bodyInformation deviceStatus:(nullable SDLVehicleDataResult *)deviceStatus driverBraking:(nullable SDLVehicleDataResult *)driverBraking wiperStatus:(nullable SDLVehicleDataResult *)wiperStatus headLampStatus:(nullable SDLVehicleDataResult *)headLampStatus engineTorque:(nullable SDLVehicleDataResult *)engineTorque accPedalPosition:(nullable SDLVehicleDataResult *)accPedalPosition steeringWheelAngle:(nullable SDLVehicleDataResult *)steeringWheelAngle engineOilLife:(nullable SDLVehicleDataResult *)engineOilLife electronicParkBrakeStatus:(nullable SDLVehicleDataResult *)electronicParkBrakeStatus cloudAppVehicleID:(nullable SDLVehicleDataResult *)cloudAppVehicleID stabilityControlsStatus:(nullable SDLVehicleDataResult *)stabilityControlsStatus eCallInfo:(nullable SDLVehicleDataResult *)eCallInfo airbagStatus:(nullable SDLVehicleDataResult *)airbagStatus emergencyEvent:(nullable SDLVehicleDataResult *)emergencyEvent clusterModes:(nullable SDLVehicleDataResult *)clusterModes myKey:(nullable SDLVehicleDataResult *)myKey handsOffSteering:(nullable SDLVehicleDataResult *)handsOffSteering windowStatus:(nullable SDLVehicleDataResult *)windowStatus;
+- (instancetype)initWithGps:(nullable SDLVehicleDataResult *)gps speed:(nullable SDLVehicleDataResult *)speed rpm:(nullable SDLVehicleDataResult *)rpm instantFuelConsumption:(nullable SDLVehicleDataResult *)instantFuelConsumption fuelRange:(nullable SDLVehicleDataResult *)fuelRange externalTemperature:(nullable SDLVehicleDataResult *)externalTemperature turnSignal:(nullable SDLVehicleDataResult *)turnSignal gearStatus:(nullable SDLVehicleDataResult *)gearStatus tirePressure:(nullable SDLVehicleDataResult *)tirePressure odometer:(nullable SDLVehicleDataResult *)odometer beltStatus:(nullable SDLVehicleDataResult *)beltStatus bodyInformation:(nullable SDLVehicleDataResult *)bodyInformation deviceStatus:(nullable SDLVehicleDataResult *)deviceStatus driverBraking:(nullable SDLVehicleDataResult *)driverBraking wiperStatus:(nullable SDLVehicleDataResult *)wiperStatus headLampStatus:(nullable SDLVehicleDataResult *)headLampStatus engineTorque:(nullable SDLVehicleDataResult *)engineTorque accPedalPosition:(nullable SDLVehicleDataResult *)accPedalPosition steeringWheelAngle:(nullable SDLVehicleDataResult *)steeringWheelAngle engineOilLife:(nullable SDLVehicleDataResult *)engineOilLife electronicParkBrakeStatus:(nullable SDLVehicleDataResult *)electronicParkBrakeStatus cloudAppVehicleID:(nullable SDLVehicleDataResult *)cloudAppVehicleID stabilityControlsStatus:(nullable SDLVehicleDataResult *)stabilityControlsStatus eCallInfo:(nullable SDLVehicleDataResult *)eCallInfo airbagStatus:(nullable SDLVehicleDataResult *)airbagStatus emergencyEvent:(nullable SDLVehicleDataResult *)emergencyEvent clusterModes:(nullable SDLVehicleDataResult *)clusterModes myKey:(nullable SDLVehicleDataResult *)myKey handsOffSteering:(nullable SDLVehicleDataResult *)handsOffSteering windowStatus:(nullable SDLVehicleDataResult *)windowStatus __deprecated_msg("Use initWithGps:speed:rpm:instantFuelConsumption:fuelRange:climateData:turnSignal:gearStatus:tirePressure:odometer:beltStatus:bodyInformation:deviceStatus:driverBraking:wiperStatus:headLampStatus:engineTorque:accPedalPosition:steeringWheelAngle:engineOilLife:electronicParkBrakeStatus:cloudAppVehicleID:stabilityControlsStatus:eCallInfo:airbagStatus:emergencyEvent:clusterModes:myKey:windowStatus:handsOffSteering:seatOccupancy: instead");
+
+/**
+ * Convenience init for setting all possible values on vehicle data items.
+ *
+ * @param gps - gps
+ * @param speed - speed
+ * @param rpm - rpm
+ * @param instantFuelConsumption - instantFuelConsumption
+ * @param fuelRange - fuelRange
+ * @param climateData - climateData
+ * @param turnSignal - turnSignal
+ * @param gearStatus - gearStatus
+ * @param tirePressure - tirePressure
+ * @param odometer - odometer
+ * @param beltStatus - beltStatus
+ * @param bodyInformation - bodyInformation
+ * @param deviceStatus - deviceStatus
+ * @param driverBraking - driverBraking
+ * @param wiperStatus - wiperStatus
+ * @param headLampStatus - headLampStatus
+ * @param engineTorque - engineTorque
+ * @param accPedalPosition - accPedalPosition
+ * @param steeringWheelAngle - steeringWheelAngle
+ * @param engineOilLife - engineOilLife
+ * @param electronicParkBrakeStatus - electronicParkBrakeStatus
+ * @param cloudAppVehicleID - cloudAppVehicleID
+ * @param stabilityControlsStatus - stabilityControlsStatus
+ * @param eCallInfo - eCallInfo
+ * @param airbagStatus - airbagStatus
+ * @param emergencyEvent - emergencyEvent
+ * @param clusterModes - clusterModes
+ * @param myKey - myKey
+ * @param windowStatus - windowStatus
+ * @param handsOffSteering - handsOffSteering
+ * @param seatOccupancy - seatOccupancy
+ * @return A SDLUnsubscribeVehicleDataResponse object
+ */
+- (instancetype)initWithGps:(nullable SDLVehicleDataResult *)gps speed:(nullable SDLVehicleDataResult *)speed rpm:(nullable SDLVehicleDataResult *)rpm instantFuelConsumption:(nullable SDLVehicleDataResult *)instantFuelConsumption fuelRange:(nullable SDLVehicleDataResult *)fuelRange climateData:(nullable SDLVehicleDataResult *)climateData turnSignal:(nullable SDLVehicleDataResult *)turnSignal gearStatus:(nullable SDLVehicleDataResult *)gearStatus tirePressure:(nullable SDLVehicleDataResult *)tirePressure odometer:(nullable SDLVehicleDataResult *)odometer beltStatus:(nullable SDLVehicleDataResult *)beltStatus bodyInformation:(nullable SDLVehicleDataResult *)bodyInformation deviceStatus:(nullable SDLVehicleDataResult *)deviceStatus driverBraking:(nullable SDLVehicleDataResult *)driverBraking wiperStatus:(nullable SDLVehicleDataResult *)wiperStatus headLampStatus:(nullable SDLVehicleDataResult *)headLampStatus engineTorque:(nullable SDLVehicleDataResult *)engineTorque accPedalPosition:(nullable SDLVehicleDataResult *)accPedalPosition steeringWheelAngle:(nullable SDLVehicleDataResult *)steeringWheelAngle engineOilLife:(nullable SDLVehicleDataResult *)engineOilLife electronicParkBrakeStatus:(nullable SDLVehicleDataResult *)electronicParkBrakeStatus cloudAppVehicleID:(nullable SDLVehicleDataResult *)cloudAppVehicleID stabilityControlsStatus:(nullable SDLVehicleDataResult *)stabilityControlsStatus eCallInfo:(nullable SDLVehicleDataResult *)eCallInfo airbagStatus:(nullable SDLVehicleDataResult *)airbagStatus emergencyEvent:(nullable SDLVehicleDataResult *)emergencyEvent clusterModes:(nullable SDLVehicleDataResult *)clusterModes myKey:(nullable SDLVehicleDataResult *)myKey windowStatus:(nullable SDLVehicleDataResult *)windowStatus handsOffSteering:(nullable SDLVehicleDataResult *)handsOffSteering seatOccupancy:(nullable SDLVehicleDataResult *)seatOccupancy;
/**
* See GearStatus
@@ -109,11 +147,19 @@ NS_ASSUME_NONNULL_BEGIN
@property (strong, nonatomic, nullable) SDLVehicleDataResult *instantFuelConsumption;
/**
- The result of requesting to unsubscribe to the external temperature in degrees celsius.
+ * See ClimateData
+ *
+ * @added in SmartDeviceLink 7.1.0
+ */
+@property (strong, nonatomic, nullable) SDLVehicleDataResult *climateData;
- Optional
+/**
+ * The external temperature in degrees celsius. This parameter is deprecated starting RPC Spec 7.1, please see climateData.
+ *
+ * @deprecated in SmartDeviceLink 7.1.0
+ * @added in SmartDeviceLink 2.0.0
*/
-@property (strong, nonatomic, nullable) SDLVehicleDataResult *externalTemperature;
+@property (strong, nonatomic, nullable) SDLVehicleDataResult *externalTemperature __deprecated_msg("use climateData instead on 7.1+ RPC version connections");
/**
* See PRNDL. This parameter is deprecated and it is now covered in `gearStatus`
@@ -300,6 +346,13 @@ NS_ASSUME_NONNULL_BEGIN
*/
- (nullable SDLVehicleDataResult *)getOEMCustomVehicleData:(NSString *)vehicleDataName;
+/**
+ * See SeatOccupancy
+ *
+ * @added in SmartDeviceLink 7.1.0
+ */
+@property (nullable, strong, nonatomic) SDLVehicleDataResult *seatOccupancy;
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/public/SDLUnsubscribeVehicleDataResponse.m b/SmartDeviceLink/public/SDLUnsubscribeVehicleDataResponse.m
index 3a44257e1..5fd1af7b5 100644
--- a/SmartDeviceLink/public/SDLUnsubscribeVehicleDataResponse.m
+++ b/SmartDeviceLink/public/SDLUnsubscribeVehicleDataResponse.m
@@ -25,6 +25,17 @@ NS_ASSUME_NONNULL_BEGIN
#pragma clang diagnostic pop
- (instancetype)initWithGps:(nullable SDLVehicleDataResult *)gps speed:(nullable SDLVehicleDataResult *)speed rpm:(nullable SDLVehicleDataResult *)rpm instantFuelConsumption:(nullable SDLVehicleDataResult *)instantFuelConsumption fuelRange:(nullable SDLVehicleDataResult *)fuelRange externalTemperature:(nullable SDLVehicleDataResult *)externalTemperature turnSignal:(nullable SDLVehicleDataResult *)turnSignal gearStatus:(nullable SDLVehicleDataResult *)gearStatus tirePressure:(nullable SDLVehicleDataResult *)tirePressure odometer:(nullable SDLVehicleDataResult *)odometer beltStatus:(nullable SDLVehicleDataResult *)beltStatus bodyInformation:(nullable SDLVehicleDataResult *)bodyInformation deviceStatus:(nullable SDLVehicleDataResult *)deviceStatus driverBraking:(nullable SDLVehicleDataResult *)driverBraking wiperStatus:(nullable SDLVehicleDataResult *)wiperStatus headLampStatus:(nullable SDLVehicleDataResult *)headLampStatus engineTorque:(nullable SDLVehicleDataResult *)engineTorque accPedalPosition:(nullable SDLVehicleDataResult *)accPedalPosition steeringWheelAngle:(nullable SDLVehicleDataResult *)steeringWheelAngle engineOilLife:(nullable SDLVehicleDataResult *)engineOilLife electronicParkBrakeStatus:(nullable SDLVehicleDataResult *)electronicParkBrakeStatus cloudAppVehicleID:(nullable SDLVehicleDataResult *)cloudAppVehicleID stabilityControlsStatus:(nullable SDLVehicleDataResult *)stabilityControlsStatus eCallInfo:(nullable SDLVehicleDataResult *)eCallInfo airbagStatus:(nullable SDLVehicleDataResult *)airbagStatus emergencyEvent:(nullable SDLVehicleDataResult *)emergencyEvent clusterModes:(nullable SDLVehicleDataResult *)clusterModes myKey:(nullable SDLVehicleDataResult *)myKey handsOffSteering:(nullable SDLVehicleDataResult *)handsOffSteering windowStatus:(nullable SDLVehicleDataResult *)windowStatus {
+ self = [self initWithGps:gps speed:speed rpm:rpm instantFuelConsumption:instantFuelConsumption fuelRange:fuelRange climateData:nil turnSignal:turnSignal gearStatus:gearStatus tirePressure:tirePressure odometer:odometer beltStatus:beltStatus bodyInformation:bodyInformation deviceStatus:deviceStatus driverBraking:driverBraking wiperStatus:wiperStatus headLampStatus:headLampStatus engineTorque:engineTorque accPedalPosition:accPedalPosition steeringWheelAngle:steeringWheelAngle engineOilLife:engineOilLife electronicParkBrakeStatus:electronicParkBrakeStatus cloudAppVehicleID:cloudAppVehicleID stabilityControlsStatus:stabilityControlsStatus eCallInfo:eCallInfo airbagStatus:airbagStatus emergencyEvent:emergencyEvent clusterModes:clusterModes myKey:myKey windowStatus:windowStatus handsOffSteering:handsOffSteering seatOccupancy:nil];
+ if (self) {
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ self.externalTemperature = externalTemperature;
+#pragma clang diagnostic pop
+ }
+ return self;
+}
+
+- (instancetype)initWithGps:(nullable SDLVehicleDataResult *)gps speed:(nullable SDLVehicleDataResult *)speed rpm:(nullable SDLVehicleDataResult *)rpm instantFuelConsumption:(nullable SDLVehicleDataResult *)instantFuelConsumption fuelRange:(nullable SDLVehicleDataResult *)fuelRange climateData:(nullable SDLVehicleDataResult *)climateData turnSignal:(nullable SDLVehicleDataResult *)turnSignal gearStatus:(nullable SDLVehicleDataResult *)gearStatus tirePressure:(nullable SDLVehicleDataResult *)tirePressure odometer:(nullable SDLVehicleDataResult *)odometer beltStatus:(nullable SDLVehicleDataResult *)beltStatus bodyInformation:(nullable SDLVehicleDataResult *)bodyInformation deviceStatus:(nullable SDLVehicleDataResult *)deviceStatus driverBraking:(nullable SDLVehicleDataResult *)driverBraking wiperStatus:(nullable SDLVehicleDataResult *)wiperStatus headLampStatus:(nullable SDLVehicleDataResult *)headLampStatus engineTorque:(nullable SDLVehicleDataResult *)engineTorque accPedalPosition:(nullable SDLVehicleDataResult *)accPedalPosition steeringWheelAngle:(nullable SDLVehicleDataResult *)steeringWheelAngle engineOilLife:(nullable SDLVehicleDataResult *)engineOilLife electronicParkBrakeStatus:(nullable SDLVehicleDataResult *)electronicParkBrakeStatus cloudAppVehicleID:(nullable SDLVehicleDataResult *)cloudAppVehicleID stabilityControlsStatus:(nullable SDLVehicleDataResult *)stabilityControlsStatus eCallInfo:(nullable SDLVehicleDataResult *)eCallInfo airbagStatus:(nullable SDLVehicleDataResult *)airbagStatus emergencyEvent:(nullable SDLVehicleDataResult *)emergencyEvent clusterModes:(nullable SDLVehicleDataResult *)clusterModes myKey:(nullable SDLVehicleDataResult *)myKey windowStatus:(nullable SDLVehicleDataResult *)windowStatus handsOffSteering:(nullable SDLVehicleDataResult *)handsOffSteering seatOccupancy:(nullable SDLVehicleDataResult *)seatOccupancy {
self = [self init];
if (!self) {
return nil;
@@ -34,7 +45,7 @@ NS_ASSUME_NONNULL_BEGIN
self.rpm = rpm;
self.instantFuelConsumption = instantFuelConsumption;
self.fuelRange = fuelRange;
- self.externalTemperature = externalTemperature;
+ self.climateData = climateData;
self.turnSignal = turnSignal;
self.gearStatus = gearStatus;
self.tirePressure = tirePressure;
@@ -57,8 +68,9 @@ NS_ASSUME_NONNULL_BEGIN
self.emergencyEvent = emergencyEvent;
self.clusterModes = clusterModes;
self.myKey = myKey;
- self.handsOffSteering = handsOffSteering;
self.windowStatus = windowStatus;
+ self.handsOffSteering = handsOffSteering;
+ self.seatOccupancy = seatOccupancy;
return self;
}
@@ -127,6 +139,14 @@ NS_ASSUME_NONNULL_BEGIN
return [self.parameters sdl_objectForName:SDLRPCParameterNameInstantFuelConsumption ofClass:SDLVehicleDataResult.class error:nil];
}
+- (void)setClimateData:(nullable SDLVehicleDataResult *)climateData {
+ [self.parameters sdl_setObject:climateData forName:SDLRPCParameterNameClimateData];
+}
+
+- (nullable SDLVehicleDataResult *)climateData {
+ return [self.parameters sdl_objectForName:SDLRPCParameterNameClimateData ofClass:SDLVehicleDataResult.class error:nil];
+}
+
- (void)setExternalTemperature:(nullable SDLVehicleDataResult *)externalTemperature {
[self.parameters sdl_setObject:externalTemperature forName:SDLRPCParameterNameExternalTemperature];
}
@@ -337,6 +357,14 @@ NS_ASSUME_NONNULL_BEGIN
return [self.parameters sdl_objectForName:vehicleDataName ofClass:SDLVehicleDataResult.class error:nil];
}
+- (void)setSeatOccupancy:(nullable SDLVehicleDataResult *)seatOccupancy {
+ [self.parameters sdl_setObject:seatOccupancy forName:SDLRPCParameterNameSeatOccupancy];
+}
+
+- (nullable SDLVehicleDataResult *)seatOccupancy {
+ return [self.parameters sdl_objectForName:SDLRPCParameterNameSeatOccupancy ofClass:SDLVehicleDataResult.class error:nil];
+}
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/public/SDLVehicleDataType.h b/SmartDeviceLink/public/SDLVehicleDataType.h
index 3426695d0..615ea03c4 100644
--- a/SmartDeviceLink/public/SDLVehicleDataType.h
+++ b/SmartDeviceLink/public/SDLVehicleDataType.h
@@ -51,9 +51,16 @@ extern SDLVehicleDataType const SDLVehicleDataTypeFuelLevelState __deprecated_ms
extern SDLVehicleDataType const SDLVehicleDataTypeFuelConsumption;
/**
- Vehicle external temperature data
+ * Vehicle external temperature data
+ * @deprecated in SmartDeviceLink 7.1.0
+ * @added in SmartDeviceLink 2.0.0
*/
-extern SDLVehicleDataType const SDLVehicleDataTypeExternalTemperature;
+extern SDLVehicleDataType const SDLVehicleDataTypeExternalTemperature __deprecated_msg("Use SDLVehicleDataTypeVehicleDataClimateData instead on 7.1+ RPC version connections");
+
+/**
+ * @added in SmartDeviceLink 7.1.0
+ */
+extern SDLVehicleDataType const SDLVehicleDataTypeVehicleDataClimateData;
/**
Vehicle VIN data
@@ -194,3 +201,8 @@ extern SDLVehicleDataType const SDLVehicleDataTypeOEMVehicleDataType;
* @since SDL 7.0
*/
extern SDLVehicleDataType const SDLVehicleDataTypeWindowStatus;
+
+/**
+ * @added in SmartDeviceLink 7.1.0
+ */
+extern SDLVehicleDataType const SDLVehicleDataTypeSeatOccupancy;
diff --git a/SmartDeviceLink/public/SDLVehicleDataType.m b/SmartDeviceLink/public/SDLVehicleDataType.m
index 90bf95888..a78eca1ca 100644
--- a/SmartDeviceLink/public/SDLVehicleDataType.m
+++ b/SmartDeviceLink/public/SDLVehicleDataType.m
@@ -37,6 +37,8 @@ SDLVehicleDataType const SDLVehicleDataTypeStabilityControlsStatus = @"VEHICLEDA
SDLVehicleDataType const SDLVehicleDataTypeSteeringWheel = @"VEHICLEDATA_STEERINGWHEEL";
SDLVehicleDataType const SDLVehicleDataTypeTirePressure = @"VEHICLEDATA_TIREPRESSURE";
SDLVehicleDataType const SDLVehicleDataTypeTurnSignal = @"VEHICLEDATA_TURNSIGNAL";
+SDLVehicleDataType const SDLVehicleDataTypeVehicleDataClimateData = @"VEHICLEDATA_CLIMATEDATA";
SDLVehicleDataType const SDLVehicleDataTypeVIN = @"VEHICLEDATA_VIN";
+SDLVehicleDataType const SDLVehicleDataTypeSeatOccupancy = @"VEHICLEDATA_SEATOCCUPANCY";
SDLVehicleDataType const SDLVehicleDataTypeWindowStatus = @"VEHICLEDATA_WINDOWSTATUS";
SDLVehicleDataType const SDLVehicleDataTypeWiperStatus = @"VEHICLEDATA_WIPERSTATUS";
diff --git a/SmartDeviceLink/public/SDLVideoStreamingCapability.h b/SmartDeviceLink/public/SDLVideoStreamingCapability.h
index 6a28c30bc..c80363c5c 100644
--- a/SmartDeviceLink/public/SDLVideoStreamingCapability.h
+++ b/SmartDeviceLink/public/SDLVideoStreamingCapability.h
@@ -30,7 +30,21 @@ NS_ASSUME_NONNULL_BEGIN
@param scale The scaling factor the app should use to change the size of the projecting view
@return A SDLVideoStreamingCapability object
*/
-- (instancetype)initWithPreferredResolution:(nullable SDLImageResolution *)preferredResolution maxBitrate:(int32_t)maxBitrate supportedFormats:(nullable NSArray<SDLVideoStreamingFormat *> *)supportedFormats hapticDataSupported:(BOOL)hapticDataSupported diagonalScreenSize:(float)diagonalScreenSize pixelPerInch:(float)pixelPerInch scale:(float)scale;
+- (instancetype)initWithPreferredResolution:(nullable SDLImageResolution *)preferredResolution maxBitrate:(int32_t)maxBitrate supportedFormats:(nullable NSArray<SDLVideoStreamingFormat *> *)supportedFormats hapticDataSupported:(BOOL)hapticDataSupported diagonalScreenSize:(float)diagonalScreenSize pixelPerInch:(float)pixelPerInch scale:(float)scale __deprecated_msg("Use initWithPreferredResolution:maxBitrate:supportedFormats:hapticDataSupported:diagonalScreenSize:pixelPerInch:scale:preferredFPS instead");
+
+/**
+ * Convenience init for creating a video streaming capability with all parameters.
+ * @param preferredResolution - preferredResolution
+ * @param maxBitrate - maxBitrate
+ * @param supportedFormats - supportedFormats
+ * @param hapticSpatialDataSupported - hapticSpatialDataSupported
+ * @param diagonalScreenSize - diagonalScreenSize
+ * @param pixelPerInch - pixelPerInch
+ * @param scale - scale
+ * @param preferredFPS - preferredFPS
+ * @return A SDLVideoStreamingCapability object
+ */
+- (instancetype)initWithPreferredResolution:(nullable SDLImageResolution *)preferredResolution maxBitrate:(nullable NSNumber<SDLUInt> *)maxBitrate supportedFormats:(nullable NSArray<SDLVideoStreamingFormat *> *)supportedFormats hapticSpatialDataSupported:(nullable NSNumber<SDLBool> *)hapticSpatialDataSupported diagonalScreenSize:(nullable NSNumber<SDLFloat> *)diagonalScreenSize pixelPerInch:(nullable NSNumber<SDLFloat> *)pixelPerInch scale:(nullable NSNumber<SDLFloat> *)scale preferredFPS:(nullable NSNumber<SDLUInt> *)preferredFPS;
/**
The preferred resolution of a video stream for decoding and rendering on HMI
@@ -62,7 +76,7 @@ NS_ASSUME_NONNULL_BEGIN
/**
The diagonal screen size in inches.
-
+
Float, Optional, minvalue="0"
@since SDL 6.0
*/
@@ -78,12 +92,20 @@ NS_ASSUME_NONNULL_BEGIN
/**
The scaling factor the app should use to change the size of the projecting view.
-
+
Float, Optional, minvalue="1" maxvalue="10"
@since SDL 6.0
*/
@property (nullable, strong, nonatomic) NSNumber<SDLFloat> *scale;
+/**
+ * The preferred frame rate per second of the head unit. The mobile application / app library may take other factors into account that constrain the frame rate lower than this value, but it should not perform streaming at a higher frame rate than this value.
+ * {"num_min_value": 0, "num_max_value": 2147483647}
+ *
+ * @added in SmartDeviceLink 7.1.0
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLUInt> *preferredFPS;
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/public/SDLVideoStreamingCapability.m b/SmartDeviceLink/public/SDLVideoStreamingCapability.m
index ec4f2c591..392b102a9 100644
--- a/SmartDeviceLink/public/SDLVideoStreamingCapability.m
+++ b/SmartDeviceLink/public/SDLVideoStreamingCapability.m
@@ -17,20 +17,24 @@ NS_ASSUME_NONNULL_BEGIN
@implementation SDLVideoStreamingCapability
+// deprecated method, and will be removed in the future
- (instancetype)initWithPreferredResolution:(nullable SDLImageResolution *)preferredResolution maxBitrate:(int32_t)maxBitrate supportedFormats:(nullable NSArray<SDLVideoStreamingFormat *> *)supportedFormats hapticDataSupported:(BOOL)hapticDataSupported diagonalScreenSize:(float)diagonalScreenSize pixelPerInch:(float)pixelPerInch scale:(float)scale {
+ return [self initWithPreferredResolution:preferredResolution maxBitrate:@(maxBitrate) supportedFormats:supportedFormats hapticSpatialDataSupported:@(hapticDataSupported) diagonalScreenSize:@(diagonalScreenSize) pixelPerInch:@(pixelPerInch) scale:@(scale) preferredFPS:nil];
+}
+
+- (instancetype)initWithPreferredResolution:(nullable SDLImageResolution *)preferredResolution maxBitrate:(nullable NSNumber<SDLUInt> *)maxBitrate supportedFormats:(nullable NSArray<SDLVideoStreamingFormat *> *)supportedFormats hapticSpatialDataSupported:(nullable NSNumber<SDLBool> *)hapticSpatialDataSupported diagonalScreenSize:(nullable NSNumber<SDLFloat> *)diagonalScreenSize pixelPerInch:(nullable NSNumber<SDLFloat> *)pixelPerInch scale:(nullable NSNumber<SDLFloat> *)scale preferredFPS:(nullable NSNumber<SDLUInt> *)preferredFPS {
self = [self init];
if (!self) {
- return self;
+ return nil;
}
-
- self.maxBitrate = @(maxBitrate);
self.preferredResolution = preferredResolution;
+ self.maxBitrate = maxBitrate;
self.supportedFormats = supportedFormats;
- self.hapticSpatialDataSupported = @(hapticDataSupported);
- self.diagonalScreenSize = @(diagonalScreenSize);
- self.pixelPerInch = @(pixelPerInch);
- self.scale = @(scale);
-
+ self.hapticSpatialDataSupported = hapticSpatialDataSupported;
+ self.diagonalScreenSize = diagonalScreenSize;
+ self.pixelPerInch = pixelPerInch;
+ self.scale = scale;
+ self.preferredFPS = preferredFPS;
return self;
}
@@ -90,6 +94,14 @@ NS_ASSUME_NONNULL_BEGIN
return [self.store sdl_objectForName:SDLRPCParameterNameScale ofClass:NSNumber.class error:nil];
}
+- (void)setPreferredFPS:(nullable NSNumber<SDLUInt> *)preferredFPS {
+ [self.store sdl_setObject:preferredFPS forName:SDLRPCParameterNamePreferredFPS];
+}
+
+- (nullable NSNumber<SDLUInt> *)preferredFPS {
+ return [self.store sdl_objectForName:SDLRPCParameterNamePreferredFPS ofClass:NSNumber.class error:nil];
+}
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/public/SmartDeviceLink.h b/SmartDeviceLink/public/SmartDeviceLink.h
index 120fa64a4..8b8b6f68d 100644
--- a/SmartDeviceLink/public/SmartDeviceLink.h
+++ b/SmartDeviceLink/public/SmartDeviceLink.h
@@ -196,6 +196,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLClusterModeStatus.h"
#import "SDLClimateControlCapabilities.h"
#import "SDLClimateControlData.h"
+#import "SDLClimateData.h"
#import "SDLCloudAppProperties.h"
#import "SDLDIDResult.h"
#import "SDLDateTime.h"
@@ -262,6 +263,8 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLSeatMemoryAction.h"
#import "SDLSeatLocation.h"
#import "SDLSeatLocationCapability.h"
+#import "SDLSeatOccupancy.h"
+#import "SDLSeatStatus.h"
#import "SDLSingleTireStatus.h"
#import "SDLSISData.h"
#import "SDLSoftButton.h"
@@ -370,6 +373,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLResult.h"
#import "SDLSamplingRate.h"
#import "SDLSeatMemoryActionType.h"
+#import "SDLSeekIndicatorType.h"
#import "SDLServiceUpdateReason.h"
#import "SDLSupportedSeat.h"
#import "SDLSoftButtonType.h"
@@ -428,6 +432,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLTouchManager.h"
#import "SDLTouchManagerDelegate.h"
#import "SDLSecurityType.h"
+#import "SDLSeekStreamingIndicator.h"
#import "SDLStreamingMediaManagerDataSource.h"
#import "SDLStreamingVideoScaleManager.h"
diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLLifecycleSystemRequestHandlerSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLLifecycleSystemRequestHandlerSpec.m
index d606b9fc0..683d3caf1 100644
--- a/SmartDeviceLinkTests/DevAPISpecs/SDLLifecycleSystemRequestHandlerSpec.m
+++ b/SmartDeviceLinkTests/DevAPISpecs/SDLLifecycleSystemRequestHandlerSpec.m
@@ -123,7 +123,7 @@ describe(@"SDLLifecycleSystemRequestHandler tests", ^{
});
context(@"of type LOCK_SCREEN_URL", ^{
- __block id lockScreenIconObserver = nil;
+ __block XCTNSNotificationExpectation *lockScreenIconExpectation;
beforeEach(^{
receivedSystemRequest.requestType = SDLRequestTypeLockScreenIconURL;
@@ -131,20 +131,19 @@ describe(@"SDLLifecycleSystemRequestHandler tests", ^{
UIImage *testImage = [UIImage imageNamed:@"testImagePNG" inBundle:[NSBundle bundleForClass:self.class] compatibleWithTraitCollection:nil];
OCMStub([mockCacheManager retrieveImageForRequest:[OCMArg any] withCompletionHandler:([OCMArg invokeBlockWithArgs:testImage, [NSNull null], nil])]);
- lockScreenIconObserver = OCMObserverMock();
- [[NSNotificationCenter defaultCenter] addMockObserver:lockScreenIconObserver name:SDLDidReceiveLockScreenIcon object:nil];
- [[lockScreenIconObserver expect] notificationWithName:SDLDidReceiveLockScreenIcon object:[OCMArg any] userInfo:[OCMArg any]];
+ lockScreenIconExpectation = [[XCTNSNotificationExpectation alloc] initWithName:SDLDidReceiveLockScreenIcon object:nil];
SDLRPCNotificationNotification *notification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidReceiveSystemRequestNotification object:nil rpcNotification:receivedSystemRequest];
[[NSNotificationCenter defaultCenter] postNotification:notification];
});
it(@"should pass the url to the cache manager and then send a notification", ^{
- OCMVerifyAll(lockScreenIconObserver);
+ XCTWaiterResult waiter = [XCTWaiter waitForExpectations:@[lockScreenIconExpectation] timeout:4];
+ XCTAssertEqual(waiter, XCTWaiterResultCompleted);
});
afterEach(^{
- lockScreenIconObserver = nil;
+ lockScreenIconExpectation = nil;
});
});
diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLStreamingVideoLifecycleManagerSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLStreamingVideoLifecycleManagerSpec.m
index e444ba473..8543f4db0 100644
--- a/SmartDeviceLinkTests/DevAPISpecs/SDLStreamingVideoLifecycleManagerSpec.m
+++ b/SmartDeviceLinkTests/DevAPISpecs/SDLStreamingVideoLifecycleManagerSpec.m
@@ -498,7 +498,7 @@ describe(@"the streaming video manager", ^{
response.systemCapability = [[SDLSystemCapability alloc] init];
response.systemCapability.systemCapabilityType = SDLSystemCapabilityTypeVideoStreaming;
- testVideoStreamingCapability = [[SDLVideoStreamingCapability alloc] initWithPreferredResolution:resolution maxBitrate:maxBitrate supportedFormats:testFormats hapticDataSupported:testHapticsSupported diagonalScreenSize:8.5 pixelPerInch:117 scale:1.25];
+ testVideoStreamingCapability = [[SDLVideoStreamingCapability alloc] initWithPreferredResolution:resolution maxBitrate:@(maxBitrate) supportedFormats:testFormats hapticSpatialDataSupported:@(testHapticsSupported) diagonalScreenSize:@(8.5) pixelPerInch:@(117) scale:@(1.25) preferredFPS:@(15)];
response.systemCapability.videoStreamingCapability = testVideoStreamingCapability;
[testConnectionManager respondToLastRequestWithResponse:response];
});
diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSeekIndicatorTypeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSeekIndicatorTypeSpec.m
new file mode 100644
index 000000000..fd5d06c25
--- /dev/null
+++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSeekIndicatorTypeSpec.m
@@ -0,0 +1,23 @@
+//
+// SDLSeekIndicatorTypeSpec.m
+// SmartDeviceLinkTests
+//
+// Created by Frank Elias on 12/4/20.
+// Copyright © 2020 smartdevicelink. All rights reserved.
+//
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#import "SDLSeekIndicatorType.h"
+
+QuickSpecBegin(SDLSeekIndicatorTypeSpec)
+
+describe(@"Individual Enum Value Tests", ^{
+ it(@"Should match internal values", ^{
+ expect(SDLSeekIndicatorTypeTrack).to(equal(@"TRACK"));
+ expect(SDLSeekIndicatorTypeTime).to(equal(@"TIME"));
+ });
+});
+
+QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTextFieldNameSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTextFieldNameSpec.m
index 423c68b77..53f1e93d6 100644
--- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTextFieldNameSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTextFieldNameSpec.m
@@ -49,6 +49,8 @@ describe(@"Individual Enum Value Tests", ^ {
expect(SDLTextFieldNameSubtleAlertText1).to(equal(@"subtleAlertText1"));
expect(SDLTextFieldNameSubtleAlertText2).to(equal(@"subtleAlertText2"));
expect(SDLTextFieldNameSubtleAlertSoftButtonText).to(equal("subtleAlertSoftButtonText"));
+ expect(SDLTextFieldNameTimeToDestination).to(equal(@"timeToDestination"));
+ expect(SDLTextFieldNameTurnText).to(equal(@"turnText"));
});
});
diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVehicleDataTypeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVehicleDataTypeSpec.m
index f897b1d22..e1ff34a0f 100644
--- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVehicleDataTypeSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVehicleDataTypeSpec.m
@@ -26,7 +26,10 @@ describe(@"individual enum value tests", ^{
expect(SDLVehicleDataTypeEmergencyEvent).to(equal(@"VEHICLEDATA_EMERGENCYEVENT"));
expect(SDLVehicleDataTypeEngineOilLife).to(equal(@"VEHICLEDATA_ENGINEOILLIFE"));
expect(SDLVehicleDataTypeEngineTorque).to(equal(@"VEHICLEDATA_ENGINETORQUE"));
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
expect(SDLVehicleDataTypeExternalTemperature).to(equal(@"VEHICLEDATA_EXTERNTEMP"));
+#pragma clang diagnostic pop
expect(SDLVehicleDataTypeFuelConsumption).to(equal(@"VEHICLEDATA_FUELCONSUMPTION"));
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
@@ -50,6 +53,8 @@ describe(@"individual enum value tests", ^{
expect(SDLVehicleDataTypeSteeringWheel).to(equal(@"VEHICLEDATA_STEERINGWHEEL"));
expect(SDLVehicleDataTypeTirePressure).to(equal(@"VEHICLEDATA_TIREPRESSURE"));
expect(SDLVehicleDataTypeTurnSignal).to(equal(@"VEHICLEDATA_TURNSIGNAL"));
+ expect(SDLVehicleDataTypeVehicleDataClimateData).to(equal(@"VEHICLEDATA_CLIMATEDATA"));
+ expect(SDLVehicleDataTypeSeatOccupancy).to(equal(@"VEHICLEDATA_SEATOCCUPANCY"));
expect(SDLVehicleDataTypeVIN).to(equal(@"VEHICLEDATA_VIN"));
expect(SDLVehicleDataTypeWindowStatus).to(equal(@"VEHICLEDATA_WINDOWSTATUS"));
expect(SDLVehicleDataTypeWiperStatus).to(equal(@"VEHICLEDATA_WIPERSTATUS"));
diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnVehicleDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnVehicleDataSpec.m
index b42482828..4b7857312 100644
--- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnVehicleDataSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnVehicleDataSpec.m
@@ -49,6 +49,8 @@ SDLStabilityControlsStatus *stabilityControlsStatus = [[SDLStabilityControlsStat
NSArray<SDLWindowStatus *> *windowStatus = @[[[SDLWindowStatus alloc] init], [[SDLWindowStatus alloc] init]];
const BOOL handsOffSteering = YES;
SDLGearStatus *gearStatus = [[SDLGearStatus alloc] initWithUserSelectedGear:SDLPRNDLDrive actualGear:SDLPRNDLPark transmissionType:SDLTransmissionTypeAutomatic];
+SDLClimateData *climateData = [[SDLClimateData alloc] init];
+SDLSeatOccupancy *seatOccupancy = [[SDLSeatOccupancy alloc] init];
describe(@"getter/setter tests", ^{
context(@"init and assign", ^{
@@ -66,9 +68,9 @@ describe(@"getter/setter tests", ^{
testResponse.emergencyEvent = emergencyEvent;
testResponse.engineOilLife = @(engineOilLife);
testResponse.engineTorque = @(engineTorque);
- testResponse.externalTemperature = @(externalTemperature);
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ testResponse.externalTemperature = @(externalTemperature);
testResponse.fuelLevel = @(fuelLevel);
testResponse.fuelLevel_State = fuelLevel_State;
#pragma clang diagnostic pop
@@ -85,6 +87,7 @@ describe(@"getter/setter tests", ^{
testResponse.prndl = prndl;
#pragma clang diagnostic pop
testResponse.rpm = @(rpm);
+ testResponse.seatOccupancy = seatOccupancy;
testResponse.speed = @(speed);
testResponse.stabilityControlsStatus = stabilityControlsStatus;
testResponse.steeringWheelAngle = @(steeringWheelAngle);
@@ -93,6 +96,7 @@ describe(@"getter/setter tests", ^{
testResponse.vin = vin;
testResponse.windowStatus = windowStatus;
testResponse.wiperStatus = wiperStatus;
+ testResponse.climateData = climateData;
it(@"expect all properties to be set properly", ^{
expect(testResponse.accPedalPosition).to(equal(@(accPedalPosition)));
@@ -108,9 +112,9 @@ describe(@"getter/setter tests", ^{
expect(testResponse.emergencyEvent).to(equal(emergencyEvent));
expect(testResponse.engineOilLife).to(equal(@(engineOilLife)));
expect(testResponse.engineTorque).to(equal(@(engineTorque)));
- expect(testResponse.externalTemperature).to(equal(@(externalTemperature)));
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ expect(testResponse.externalTemperature).to(equal(@(externalTemperature)));
expect(testResponse.fuelLevel).to(equal(@(fuelLevel)));
expect(testResponse.fuelLevel_State).to(equal(fuelLevel_State));
#pragma clang diagnostic pop
@@ -127,6 +131,7 @@ describe(@"getter/setter tests", ^{
expect(testResponse.prndl).to(equal(prndl));
#pragma clang diagnostic pop
expect(testResponse.rpm).to(equal(@(rpm)));
+ expect(testResponse.seatOccupancy).to(equal(seatOccupancy));
expect(testResponse.speed).to(equal(@(speed)));
expect(testResponse.stabilityControlsStatus).to(equal(stabilityControlsStatus));
expect(testResponse.steeringWheelAngle).to(equal(@(steeringWheelAngle)));
@@ -135,6 +140,7 @@ describe(@"getter/setter tests", ^{
expect(testResponse.vin).to(equal(vin));
expect(testResponse.windowStatus).to(equal(windowStatus));
expect(testResponse.wiperStatus).to(equal(wiperStatus));
+ expect(testResponse.climateData).to(equal(climateData));
});
});
@@ -173,6 +179,7 @@ describe(@"getter/setter tests", ^{
SDLRPCParameterNamePRNDL:prndl,
#pragma clang diagnostic pop
SDLRPCParameterNameRPM:@(rpm),
+ SDLRPCParameterNameSeatOccupancy:seatOccupancy,
SDLRPCParameterNameSpeed:@(speed),
SDLRPCParameterNameStabilityControlsStatus:stabilityControlsStatus,
SDLRPCParameterNameSteeringWheelAngle:@(steeringWheelAngle),
@@ -181,6 +188,7 @@ describe(@"getter/setter tests", ^{
SDLRPCParameterNameVIN:vin,
SDLRPCParameterNameWindowStatus:windowStatus,
SDLRPCParameterNameWiperStatus:wiperStatus,
+ SDLRPCParameterNameClimateData:climateData,
},
SDLRPCParameterNameOperationName:SDLRPCFunctionNameOnVehicleData}};
SDLOnVehicleData* testResponse = [[SDLOnVehicleData alloc] initWithDictionary:dict];
@@ -199,9 +207,9 @@ describe(@"getter/setter tests", ^{
expect(testResponse.emergencyEvent).to(equal(emergencyEvent));
expect(testResponse.engineOilLife).to(equal(@(engineOilLife)));
expect(testResponse.engineTorque).to(equal(@(engineTorque)));
- expect(testResponse.externalTemperature).to(equal(@(externalTemperature)));
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ expect(testResponse.externalTemperature).to(equal(@(externalTemperature)));
expect(testResponse.fuelLevel).to(equal(@(fuelLevel)));
expect(testResponse.fuelLevel_State).to(equal(fuelLevel_State));
#pragma clang diagnostic pop
@@ -218,6 +226,7 @@ describe(@"getter/setter tests", ^{
expect(testResponse.prndl).to(equal(prndl));
#pragma clang diagnostic pop
expect(testResponse.rpm).to(equal(@(rpm)));
+ expect(testResponse.seatOccupancy).to(equal(seatOccupancy));
expect(testResponse.speed).to(equal(@(speed)));
expect(testResponse.stabilityControlsStatus).to(equal(stabilityControlsStatus));
expect(testResponse.steeringWheelAngle).to(equal(@(steeringWheelAngle)));
@@ -226,6 +235,7 @@ describe(@"getter/setter tests", ^{
expect(testResponse.vin).to(equal(vin));
expect(testResponse.windowStatus).to(equal(windowStatus));
expect(testResponse.wiperStatus).to(equal(wiperStatus));
+ expect(testResponse.climateData).to(equal(climateData));
});
});
@@ -245,9 +255,9 @@ describe(@"getter/setter tests", ^{
expect(testResponse.emergencyEvent).to(beNil());
expect(testResponse.engineOilLife).to(beNil());
expect(testResponse.engineTorque).to(beNil());
- expect(testResponse.externalTemperature).to(beNil());
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ expect(testResponse.externalTemperature).to(beNil());
expect(testResponse.fuelLevel).to(beNil());
expect(testResponse.fuelLevel_State).to(beNil());
#pragma clang diagnostic pop
@@ -264,6 +274,7 @@ describe(@"getter/setter tests", ^{
expect(testResponse.prndl).to(beNil());
#pragma clang diagnostic pop
expect(testResponse.rpm).to(beNil());
+ expect(testResponse.seatOccupancy).to(beNil());
expect(testResponse.speed).to(beNil());
expect(testResponse.stabilityControlsStatus).to(beNil());
expect(testResponse.steeringWheelAngle).to(beNil());
@@ -272,10 +283,19 @@ describe(@"getter/setter tests", ^{
expect(testResponse.vin).to(beNil());
expect(testResponse.windowStatus).to(beNil());
expect(testResponse.wiperStatus).to(beNil());
+ expect(testResponse.climateData).to(beNil());
});
});
+
context(@"initWithGps:speed:rpm:instantFuelConsumption:fuelRange:externalTemperature:turnSignal:vin:gearStatus:tirePressure:odometer:beltStatus:bodyInformation:deviceStatus:driverBraking:wiperStatus:headLampStatus:engineTorque:accPedalPosition:steeringWheelAngle:engineOilLife:electronicParkBrakeStatus:cloudAppVehicleID:stabilityControlsStatus:eCallInfo:airbagStatus:emergencyEvent:clusterModeStatus:myKey:handsOffSteering:windowStatus:", ^{
- SDLOnVehicleData* testResponse = [[SDLOnVehicleData alloc] initWithGps:gps speed:@(speed) rpm:@(rpm) instantFuelConsumption:@(instantFuelConsumption) fuelRange:fuelRangeArray externalTemperature:@(externalTemperature) turnSignal:turnSignal vin:vin gearStatus:gearStatus tirePressure:tirePressure odometer:@(odometer) beltStatus:beltStatus bodyInformation:bodyInformation deviceStatus:deviceStatus driverBraking:driverBraking wiperStatus:wiperStatus headLampStatus:headLampStatus engineTorque:@(engineTorque) accPedalPosition:@(accPedalPosition) steeringWheelAngle:@(steeringWheelAngle) engineOilLife:@(engineOilLife) electronicParkBrakeStatus:electronicParkBrakeStatus cloudAppVehicleID:cloudAppVehicleID stabilityControlsStatus:stabilityControlsStatus eCallInfo:eCallInfo airbagStatus:airbagStatus emergencyEvent:emergencyEvent clusterModeStatus:clusterModeStatus myKey:myKey handsOffSteering:@(handsOffSteering) windowStatus:windowStatus];
+ __block SDLOnVehicleData *testResponse = nil;
+
+ beforeEach(^{
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ testResponse = [[SDLOnVehicleData alloc] initWithGps:gps speed:@(speed) rpm:@(rpm) instantFuelConsumption:@(instantFuelConsumption) fuelRange:fuelRangeArray externalTemperature:@(externalTemperature) turnSignal:turnSignal vin:vin gearStatus:gearStatus tirePressure:tirePressure odometer:@(odometer) beltStatus:beltStatus bodyInformation:bodyInformation deviceStatus:deviceStatus driverBraking:driverBraking wiperStatus:wiperStatus headLampStatus:headLampStatus engineTorque:@(engineTorque) accPedalPosition:@(accPedalPosition) steeringWheelAngle:@(steeringWheelAngle) engineOilLife:@(engineOilLife) electronicParkBrakeStatus:electronicParkBrakeStatus cloudAppVehicleID:cloudAppVehicleID stabilityControlsStatus:stabilityControlsStatus eCallInfo:eCallInfo airbagStatus:airbagStatus emergencyEvent:emergencyEvent clusterModeStatus:clusterModeStatus myKey:myKey handsOffSteering:@(handsOffSteering) windowStatus:windowStatus];
+#pragma clang diagnostic pop
+ });
it(@"expect all properties to be set properly", ^{
expect(testResponse.accPedalPosition).to(equal(@(accPedalPosition)));
@@ -291,9 +311,61 @@ describe(@"getter/setter tests", ^{
expect(testResponse.emergencyEvent).to(equal(emergencyEvent));
expect(testResponse.engineOilLife).to(equal(@(engineOilLife)));
expect(testResponse.engineTorque).to(equal(@(engineTorque)));
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
expect(testResponse.externalTemperature).to(equal(@(externalTemperature)));
+ expect(testResponse.fuelLevel).to(beNil());
+ expect(testResponse.fuelLevel_State).to(beNil());
+#pragma clang diagnostic pop
+ expect(testResponse.fuelRange).to(equal(fuelRangeArray));
+ expect(testResponse.gearStatus).to(equal(gearStatus));
+ expect(testResponse.gps).to(equal(gps));
+ expect(testResponse.handsOffSteering).to(equal(@(handsOffSteering)));
+ expect(testResponse.headLampStatus).to(equal(headLampStatus));
+ expect(testResponse.instantFuelConsumption).to(equal(@(instantFuelConsumption)));
+ expect(testResponse.myKey).to(equal(myKey));
+ expect(testResponse.odometer).to(equal(@(odometer)));
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ expect(testResponse.prndl).to(beNil());
+#pragma clang diagnostic pop
+ expect(testResponse.rpm).to(equal(@(rpm)));
+ expect(testResponse.seatOccupancy).to(beNil());
+ expect(testResponse.speed).to(equal(@(speed)));
+ expect(testResponse.stabilityControlsStatus).to(equal(stabilityControlsStatus));
+ expect(testResponse.steeringWheelAngle).to(equal(@(steeringWheelAngle)));
+ expect(testResponse.tirePressure).to(equal(tirePressure));
+ expect(testResponse.turnSignal).to(equal(turnSignal));
+ expect(testResponse.vin).to(equal(vin));
+ expect(testResponse.windowStatus).to(equal(windowStatus));
+ expect(testResponse.wiperStatus).to(equal(wiperStatus));
+ });
+ });
+
+ context(@"initWithGps:speed:rpm:instantFuelConsumption:fuelRange:climateData:turnSignal:vin:gearStatus:tirePressure:odometer:beltStatus:bodyInformation:deviceStatus:driverBraking:wiperStatus:headLampStatus:engineTorque:accPedalPosition:steeringWheelAngle:engineOilLife:electronicParkBrakeStatus:cloudAppVehicleID:stabilityControlsStatus:eCallInfo:airbagStatus:emergencyEvent:clusterModeStatus:myKey:windowStatus:handsOffSteering:seatOccupancy:", ^{
+ __block SDLOnVehicleData *testResponse = nil;
+
+ beforeEach(^{
+ testResponse = [[SDLOnVehicleData alloc] initWithGps:gps speed:@(speed) rpm:@(rpm) instantFuelConsumption:@(instantFuelConsumption) fuelRange:fuelRangeArray climateData:climateData turnSignal:turnSignal vin:vin gearStatus:gearStatus tirePressure:tirePressure odometer:@(odometer) beltStatus:beltStatus bodyInformation:bodyInformation deviceStatus:deviceStatus driverBraking:driverBraking wiperStatus:wiperStatus headLampStatus:headLampStatus engineTorque:@(engineTorque) accPedalPosition:@(accPedalPosition) steeringWheelAngle:@(steeringWheelAngle) engineOilLife:@(engineOilLife) electronicParkBrakeStatus:electronicParkBrakeStatus cloudAppVehicleID:cloudAppVehicleID stabilityControlsStatus:stabilityControlsStatus eCallInfo:eCallInfo airbagStatus:airbagStatus emergencyEvent:emergencyEvent clusterModeStatus:clusterModeStatus myKey:myKey windowStatus:windowStatus handsOffSteering:@(handsOffSteering) seatOccupancy:seatOccupancy];
+ });
+
+ it(@"expect all properties to be set properly", ^{
+ expect(testResponse.accPedalPosition).to(equal(@(accPedalPosition)));
+ expect(testResponse.airbagStatus).to(equal(airbagStatus));
+ expect(testResponse.beltStatus).to(equal(beltStatus));
+ expect(testResponse.bodyInformation).to(equal(bodyInformation));
+ expect(testResponse.cloudAppVehicleID).to(equal(cloudAppVehicleID));
+ expect(testResponse.clusterModeStatus).to(equal(clusterModeStatus));
+ expect(testResponse.deviceStatus).to(equal(deviceStatus));
+ expect(testResponse.driverBraking).to(equal(driverBraking));
+ expect(testResponse.eCallInfo).to(equal(eCallInfo));
+ expect(testResponse.electronicParkBrakeStatus).to(equal(electronicParkBrakeStatus));
+ expect(testResponse.emergencyEvent).to(equal(emergencyEvent));
+ expect(testResponse.engineOilLife).to(equal(@(engineOilLife)));
+ expect(testResponse.engineTorque).to(equal(@(engineTorque)));
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ expect(testResponse.externalTemperature).to(beNil());
expect(testResponse.fuelLevel).to(beNil());
expect(testResponse.fuelLevel_State).to(beNil());
#pragma clang diagnostic pop
@@ -310,6 +382,7 @@ describe(@"getter/setter tests", ^{
expect(testResponse.prndl).to(beNil());
#pragma clang diagnostic pop
expect(testResponse.rpm).to(equal(@(rpm)));
+ expect(testResponse.seatOccupancy).to(equal(seatOccupancy));
expect(testResponse.speed).to(equal(@(speed)));
expect(testResponse.stabilityControlsStatus).to(equal(stabilityControlsStatus));
expect(testResponse.steeringWheelAngle).to(equal(@(steeringWheelAngle)));
@@ -318,6 +391,7 @@ describe(@"getter/setter tests", ^{
expect(testResponse.vin).to(equal(vin));
expect(testResponse.windowStatus).to(equal(windowStatus));
expect(testResponse.wiperStatus).to(equal(wiperStatus));
+ expect(testResponse.climateData).to(equal(climateData));
});
});
diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetVehicleDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetVehicleDataSpec.m
index 2872c6cee..c2b0b3681 100644
--- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetVehicleDataSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetVehicleDataSpec.m
@@ -16,46 +16,52 @@ QuickSpecBegin(SDLGetVehicleDataSpec)
describe(@"getter/setter tests", ^{
context(@"init and assign", ^{
- SDLGetVehicleData* testRequest = [[SDLGetVehicleData alloc] init];
- testRequest.accPedalPosition = @YES;
- testRequest.airbagStatus = @YES;
- testRequest.beltStatus = @YES;
- testRequest.bodyInformation = @YES;
- testRequest.cloudAppVehicleID = @YES;
- testRequest.clusterModeStatus = @YES;
- testRequest.deviceStatus = @YES;
- testRequest.driverBraking = @YES;
- testRequest.eCallInfo = @YES;
- testRequest.electronicParkBrakeStatus = @YES;
- testRequest.emergencyEvent = @YES;
- testRequest.engineOilLife = @YES;
- testRequest.engineTorque = @YES;
- testRequest.externalTemperature = @YES;
+ __block SDLGetVehicleData *testRequest = nil;
+
+ beforeEach(^{
+ testRequest = [[SDLGetVehicleData alloc] init];
+ testRequest.accPedalPosition = @YES;
+ testRequest.airbagStatus = @YES;
+ testRequest.beltStatus = @YES;
+ testRequest.bodyInformation = @YES;
+ testRequest.cloudAppVehicleID = @YES;
+ testRequest.clusterModeStatus = @YES;
+ testRequest.deviceStatus = @YES;
+ testRequest.driverBraking = @YES;
+ testRequest.eCallInfo = @YES;
+ testRequest.electronicParkBrakeStatus = @YES;
+ testRequest.emergencyEvent = @YES;
+ testRequest.engineOilLife = @YES;
+ testRequest.engineTorque = @YES;
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
- testRequest.fuelLevel = @YES;
- testRequest.fuelLevel_State = @YES;
+ testRequest.externalTemperature = @YES;
+ testRequest.fuelLevel = @YES;
+ testRequest.fuelLevel_State = @YES;
#pragma clang diagnostic pop
- testRequest.fuelRange = @YES;
- testRequest.gearStatus = @YES;
- testRequest.gps = @YES;
- testRequest.handsOffSteering = @YES;
- testRequest.headLampStatus = @YES;
- testRequest.instantFuelConsumption = @YES;
- testRequest.myKey = @YES;
- testRequest.odometer = @YES;
+ testRequest.fuelRange = @YES;
+ testRequest.gearStatus = @YES;
+ testRequest.gps = @YES;
+ testRequest.handsOffSteering = @YES;
+ testRequest.headLampStatus = @YES;
+ testRequest.instantFuelConsumption = @YES;
+ testRequest.myKey = @YES;
+ testRequest.odometer = @YES;
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
- testRequest.prndl = @YES;
+ testRequest.prndl = @YES;
#pragma clang diagnostic pop
- testRequest.rpm = @YES;
- testRequest.speed = @YES;
- testRequest.stabilityControlsStatus = @YES;
- testRequest.steeringWheelAngle = @YES;
- testRequest.tirePressure = @YES;
- testRequest.turnSignal = @YES;
- testRequest.windowStatus = @YES;
- testRequest.wiperStatus = @YES;
+ testRequest.rpm = @YES;
+ testRequest.seatOccupancy = @YES;
+ testRequest.speed = @YES;
+ testRequest.stabilityControlsStatus = @YES;
+ testRequest.steeringWheelAngle = @YES;
+ testRequest.tirePressure = @YES;
+ testRequest.turnSignal = @YES;
+ testRequest.windowStatus = @YES;
+ testRequest.wiperStatus = @YES;
+ testRequest.climateData = @YES;
+ });
it(@"expect all properties to be set properly", ^{
expect(testRequest.accPedalPosition).to(equal(@YES));
@@ -71,9 +77,9 @@ describe(@"getter/setter tests", ^{
expect(testRequest.emergencyEvent).to(equal(@YES));
expect(testRequest.engineOilLife).to(equal(@YES));
expect(testRequest.engineTorque).to(equal(@YES));
- expect(testRequest.externalTemperature).to(equal(@YES));
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ expect(testRequest.externalTemperature).to(equal(@YES));
expect(testRequest.fuelLevel).to(equal(@YES));
expect(testRequest.fuelLevel_State).to(equal(@YES));
#pragma clang diagnostic pop
@@ -90,6 +96,7 @@ describe(@"getter/setter tests", ^{
expect(testRequest.prndl).to(equal(@YES));
#pragma clang diagnostic pop
expect(testRequest.rpm).to(equal(@YES));
+ expect(testRequest.seatOccupancy).to(equal(@YES));
expect(testRequest.speed).to(equal(@YES));
expect(testRequest.stabilityControlsStatus).to(equal(@YES));
expect(testRequest.steeringWheelAngle).to(equal(@YES));
@@ -97,10 +104,12 @@ describe(@"getter/setter tests", ^{
expect(testRequest.turnSignal).to(equal(@YES));
expect(testRequest.windowStatus).to(equal(@YES));
expect(testRequest.wiperStatus).to(equal(@YES));
+ expect(testRequest.climateData).to(equal(@YES));
});
});
context(@"initWithDictionary:", ^{
+ __block SDLGetVehicleData *testRequest = nil;
NSDictionary<NSString *, id> *dict = @{SDLRPCParameterNameRequest:
@{SDLRPCParameterNameParameters:@{
SDLRPCParameterNameAccelerationPedalPosition:@YES,
@@ -135,6 +144,7 @@ describe(@"getter/setter tests", ^{
SDLRPCParameterNamePRNDL:@YES,
#pragma clang diagnostic pop
SDLRPCParameterNameRPM:@YES,
+ SDLRPCParameterNameSeatOccupancy:@YES,
SDLRPCParameterNameSpeed:@YES,
SDLRPCParameterNameStabilityControlsStatus:@YES,
SDLRPCParameterNameSteeringWheelAngle:@YES,
@@ -142,9 +152,12 @@ describe(@"getter/setter tests", ^{
SDLRPCParameterNameTurnSignal:@YES,
SDLRPCParameterNameWindowStatus:@YES,
SDLRPCParameterNameWiperStatus:@YES,
+ SDLRPCParameterNameClimateData:@YES
},
SDLRPCParameterNameOperationName:SDLRPCFunctionNameGetVehicleData}};
- SDLGetVehicleData* testRequest = [[SDLGetVehicleData alloc] initWithDictionary:dict];
+ beforeEach(^{
+ testRequest = [[SDLGetVehicleData alloc] initWithDictionary:dict];
+ });
it(@"expect all properties to be set properly", ^{
expect(testRequest.accPedalPosition).to(equal(@YES));
@@ -160,9 +173,9 @@ describe(@"getter/setter tests", ^{
expect(testRequest.emergencyEvent).to(equal(@YES));
expect(testRequest.engineOilLife).to(equal(@YES));
expect(testRequest.engineTorque).to(equal(@YES));
- expect(testRequest.externalTemperature).to(equal(@YES));
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ expect(testRequest.externalTemperature).to(equal(@YES));
expect(testRequest.fuelLevel).to(equal(@YES));
expect(testRequest.fuelLevel_State).to(equal(@YES));
#pragma clang diagnostic pop
@@ -179,6 +192,7 @@ describe(@"getter/setter tests", ^{
expect(testRequest.prndl).to(equal(@YES));
#pragma clang diagnostic pop
expect(testRequest.rpm).to(equal(@YES));
+ expect(testRequest.seatOccupancy).to(equal(@YES));
expect(testRequest.speed).to(equal(@YES));
expect(testRequest.stabilityControlsStatus).to(equal(@YES));
expect(testRequest.steeringWheelAngle).to(equal(@YES));
@@ -186,13 +200,19 @@ describe(@"getter/setter tests", ^{
expect(testRequest.turnSignal).to(equal(@YES));
expect(testRequest.windowStatus).to(equal(@YES));
expect(testRequest.wiperStatus).to(equal(@YES));
+ expect(testRequest.climateData).to(equal(@YES));
});
});
});
describe(@"initializers", ^{
context(@"init", ^{
- SDLGetVehicleData* testRequest = [[SDLGetVehicleData alloc] init];
+ __block SDLGetVehicleData *testRequest = nil;
+
+ beforeEach(^{
+ testRequest = [[SDLGetVehicleData alloc] init];
+ });
+
it(@"expect all properties to be nil", ^{
expect(testRequest.accPedalPosition).to(beNil());
expect(testRequest.airbagStatus).to(beNil());
@@ -207,9 +227,9 @@ describe(@"initializers", ^{
expect(testRequest.emergencyEvent).to(beNil());
expect(testRequest.engineOilLife).to(beNil());
expect(testRequest.engineTorque).to(beNil());
- expect(testRequest.externalTemperature).to(beNil());
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ expect(testRequest.externalTemperature).to(beNil());
expect(testRequest.fuelLevel).to(beNil());
expect(testRequest.fuelLevel_State).to(beNil());
#pragma clang diagnostic pop
@@ -226,6 +246,7 @@ describe(@"initializers", ^{
expect(testRequest.prndl).to(beNil());
#pragma clang diagnostic pop
expect(testRequest.rpm).to(beNil());
+ expect(testRequest.seatOccupancy).to(beNil());
expect(testRequest.speed).to(beNil());
expect(testRequest.stabilityControlsStatus).to(beNil());
expect(testRequest.steeringWheelAngle).to(beNil());
@@ -233,14 +254,19 @@ describe(@"initializers", ^{
expect(testRequest.turnSignal).to(beNil());
expect(testRequest.windowStatus).to(beNil());
expect(testRequest.wiperStatus).to(beNil());
+ expect(testRequest.climateData).to(beNil());
});
});
context(@"initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:cloudAppVehicleID:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:wiperStatus:", ^{
+ __block SDLGetVehicleData *testRequest = nil;
+
+ beforeEach(^{
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
- SDLGetVehicleData *testRequest = [[SDLGetVehicleData alloc] initWithAccelerationPedalPosition:YES airbagStatus:YES beltStatus:YES bodyInformation:YES cloudAppVehicleID:YES clusterModeStatus:YES deviceStatus:YES driverBraking:YES eCallInfo:YES electronicParkBrakeStatus:YES emergencyEvent:YES engineOilLife:YES engineTorque:YES externalTemperature:YES fuelLevel:YES fuelLevelState:YES fuelRange:YES gps:YES headLampStatus:YES instantFuelConsumption:YES myKey:YES odometer:YES prndl:YES rpm:YES speed:YES steeringWheelAngle:YES tirePressure:YES turnSignal:YES vin:YES wiperStatus:YES];
+ testRequest = [[SDLGetVehicleData alloc] initWithAccelerationPedalPosition:YES airbagStatus:YES beltStatus:YES bodyInformation:YES cloudAppVehicleID:YES clusterModeStatus:YES deviceStatus:YES driverBraking:YES eCallInfo:YES electronicParkBrakeStatus:YES emergencyEvent:YES engineOilLife:YES engineTorque:YES externalTemperature:YES fuelLevel:YES fuelLevelState:YES fuelRange:YES gps:YES headLampStatus:YES instantFuelConsumption:YES myKey:YES odometer:YES prndl:YES rpm:YES speed:YES steeringWheelAngle:YES tirePressure:YES turnSignal:YES vin:YES wiperStatus:YES];
#pragma clang diagnostic pop
+ });
it(@"expect all properties to be set properly", ^{
expect(testRequest.accPedalPosition).to(equal(@YES));
@@ -256,9 +282,9 @@ describe(@"initializers", ^{
expect(testRequest.emergencyEvent).to(equal(@YES));
expect(testRequest.engineOilLife).to(equal(@YES));
expect(testRequest.engineTorque).to(equal(@YES));
- expect(testRequest.externalTemperature).to(equal(@YES));
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ expect(testRequest.externalTemperature).to(equal(@YES));
expect(testRequest.fuelLevel).to(equal(@YES));
expect(testRequest.fuelLevel_State).to(equal(@YES));
#pragma clang diagnostic pop
@@ -275,6 +301,7 @@ describe(@"initializers", ^{
expect(testRequest.prndl).to(equal(@YES));
#pragma clang diagnostic pop
expect(testRequest.rpm).to(equal(@YES));
+ expect(testRequest.seatOccupancy).to(beNil());
expect(testRequest.speed).to(equal(@YES));
expect(testRequest.stabilityControlsStatus).to(beNil());
expect(testRequest.steeringWheelAngle).to(equal(@YES));
@@ -282,11 +309,19 @@ describe(@"initializers", ^{
expect(testRequest.turnSignal).to(equal(@YES));
expect(testRequest.windowStatus).to(beNil());
expect(testRequest.wiperStatus).to(equal(@YES));
+ expect(testRequest.climateData).to(beNil());
});
});
context(@"initWithGps:speed:rpm:instantFuelConsumption:fuelRange:externalTemperature:turnSignal:vin:gearStatus:tirePressure:odometer:beltStatus:bodyInformation:deviceStatus:driverBraking:wiperStatus:headLampStatus:engineTorque:accPedalPosition:steeringWheelAngle:engineOilLife:electronicParkBrakeStatus:cloudAppVehicleID:stabilityControlsStatus:eCallInfo:airbagStatus:emergencyEvent:clusterModeStatus:myKey:handsOffSteering:windowStatus:", ^{
- SDLGetVehicleData *testRequest = [[SDLGetVehicleData alloc] initWithGps:@YES speed:@YES rpm:@YES instantFuelConsumption:@YES fuelRange:@YES externalTemperature:@YES turnSignal:@YES vin:@YES gearStatus:@YES tirePressure:@YES odometer:@YES beltStatus:@YES bodyInformation:@YES deviceStatus:@YES driverBraking:@YES wiperStatus:@YES headLampStatus:@YES engineTorque:@YES accPedalPosition:@YES steeringWheelAngle:@YES engineOilLife:@YES electronicParkBrakeStatus:@YES cloudAppVehicleID:@YES stabilityControlsStatus:@YES eCallInfo:@YES airbagStatus:@YES emergencyEvent:@YES clusterModeStatus:@YES myKey:@YES handsOffSteering:@YES windowStatus:@YES];
+ __block SDLGetVehicleData *testRequest = nil;
+
+ beforeEach(^{
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ testRequest = [[SDLGetVehicleData alloc] initWithGps:@YES speed:@YES rpm:@YES instantFuelConsumption:@YES fuelRange:@YES externalTemperature:@YES turnSignal:@YES vin:@YES gearStatus:@YES tirePressure:@YES odometer:@YES beltStatus:@YES bodyInformation:@YES deviceStatus:@YES driverBraking:@YES wiperStatus:@YES headLampStatus:@YES engineTorque:@YES accPedalPosition:@YES steeringWheelAngle:@YES engineOilLife:@YES electronicParkBrakeStatus:@YES cloudAppVehicleID:@YES stabilityControlsStatus:@YES eCallInfo:@YES airbagStatus:@YES emergencyEvent:@YES clusterModeStatus:@YES myKey:@YES handsOffSteering:@YES windowStatus:@YES];
+#pragma clang diagnostic pop
+ });
it(@"expect all properties to be set properly", ^{
expect(testRequest.accPedalPosition).to(equal(@YES));
@@ -302,9 +337,61 @@ describe(@"initializers", ^{
expect(testRequest.emergencyEvent).to(equal(@YES));
expect(testRequest.engineOilLife).to(equal(@YES));
expect(testRequest.engineTorque).to(equal(@YES));
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
expect(testRequest.externalTemperature).to(equal(@YES));
+ expect(testRequest.fuelLevel).to(beNil());
+ expect(testRequest.fuelLevel_State).to(beNil());
+#pragma clang diagnostic pop
+ expect(testRequest.fuelRange).to(equal(@YES));
+ expect(testRequest.gearStatus).to(equal(@YES));
+ expect(testRequest.gps).to(equal(@YES));
+ expect(testRequest.handsOffSteering).to(equal(@YES));
+ expect(testRequest.headLampStatus).to(equal(@YES));
+ expect(testRequest.instantFuelConsumption).to(equal(@YES));
+ expect(testRequest.myKey).to(equal(@YES));
+ expect(testRequest.odometer).to(equal(@YES));
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ expect(testRequest.prndl).to(beNil());
+#pragma clang diagnostic pop
+ expect(testRequest.rpm).to(equal(@YES));
+ expect(testRequest.seatOccupancy).to(beNil());
+ expect(testRequest.speed).to(equal(@YES));
+ expect(testRequest.stabilityControlsStatus).to(equal(@YES));
+ expect(testRequest.steeringWheelAngle).to(equal(@YES));
+ expect(testRequest.tirePressure).to(equal(@YES));
+ expect(testRequest.turnSignal).to(equal(@YES));
+ expect(testRequest.windowStatus).to(equal(@YES));
+ expect(testRequest.wiperStatus).to(equal(@YES));
+ expect(testRequest.climateData).to(beNil());
+ });
+ });
+
+ context(@"initWithGps:speed:rpm:instantFuelConsumption:fuelRange:climateData:turnSignal:vin:gearStatus:tirePressure:odometer:beltStatus:bodyInformation:deviceStatus:driverBraking:wiperStatus:headLampStatus:engineTorque:accPedalPosition:steeringWheelAngle:engineOilLife:electronicParkBrakeStatus:cloudAppVehicleID:stabilityControlsStatus:eCallInfo:airbagStatus:emergencyEvent:clusterModeStatus:myKey:windowStatus:handsOffSteering:seatOccupancy:", ^{
+ __block SDLGetVehicleData *testRequest = nil;
+
+ beforeEach(^{
+ testRequest = [[SDLGetVehicleData alloc] initWithGps:@YES speed:@YES rpm:@YES instantFuelConsumption:@YES fuelRange:@YES climateData:@YES turnSignal:@YES vin:@YES gearStatus:@YES tirePressure:@YES odometer:@YES beltStatus:@YES bodyInformation:@YES deviceStatus:@YES driverBraking:@YES wiperStatus:@YES headLampStatus:@YES engineTorque:@YES accPedalPosition:@YES steeringWheelAngle:@YES engineOilLife:@YES electronicParkBrakeStatus:@YES cloudAppVehicleID:@YES stabilityControlsStatus:@YES eCallInfo:@YES airbagStatus:@YES emergencyEvent:@YES clusterModeStatus:@YES myKey:@YES windowStatus:@YES handsOffSteering:@YES seatOccupancy:@YES];
+ });
+
+ it(@"expect all properties to be set properly", ^{
+ expect(testRequest.accPedalPosition).to(equal(@YES));
+ expect(testRequest.airbagStatus).to(equal(@YES));
+ expect(testRequest.beltStatus).to(equal(@YES));
+ expect(testRequest.bodyInformation).to(equal(@YES));
+ expect(testRequest.cloudAppVehicleID).to(equal(@YES));
+ expect(testRequest.clusterModeStatus).to(equal(@YES));
+ expect(testRequest.deviceStatus).to(equal(@YES));
+ expect(testRequest.driverBraking).to(equal(@YES));
+ expect(testRequest.eCallInfo).to(equal(@YES));
+ expect(testRequest.electronicParkBrakeStatus).to(equal(@YES));
+ expect(testRequest.emergencyEvent).to(equal(@YES));
+ expect(testRequest.engineOilLife).to(equal(@YES));
+ expect(testRequest.engineTorque).to(equal(@YES));
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ expect(testRequest.externalTemperature).to(beNil());
expect(testRequest.fuelLevel).to(beNil());
expect(testRequest.fuelLevel_State).to(beNil());
#pragma clang diagnostic pop
@@ -321,6 +408,7 @@ describe(@"initializers", ^{
expect(testRequest.prndl).to(beNil());
#pragma clang diagnostic pop
expect(testRequest.rpm).to(equal(@YES));
+ expect(testRequest.seatOccupancy).to(equal(@YES));
expect(testRequest.speed).to(equal(@YES));
expect(testRequest.stabilityControlsStatus).to(equal(@YES));
expect(testRequest.steeringWheelAngle).to(equal(@YES));
@@ -328,13 +416,18 @@ describe(@"initializers", ^{
expect(testRequest.turnSignal).to(equal(@YES));
expect(testRequest.windowStatus).to(equal(@YES));
expect(testRequest.wiperStatus).to(equal(@YES));
+ expect(testRequest.climateData).to(equal(@YES));
});
});
context(@"should set OEM Custom Vehicle Data", ^{
- SDLGetVehicleData* testRequest = [[SDLGetVehicleData alloc] init];
- [testRequest setOEMCustomVehicleData:@"OEMCustomVehicleData" withVehicleDataState:NO];
- [testRequest setOEMCustomVehicleData:@"OEMCustomVehicleData1" withVehicleDataState:YES];
+ __block SDLGetVehicleData *testRequest = nil;
+
+ beforeEach(^{
+ testRequest = [[SDLGetVehicleData alloc] init];
+ [testRequest setOEMCustomVehicleData:@"OEMCustomVehicleData" withVehicleDataState:NO];
+ [testRequest setOEMCustomVehicleData:@"OEMCustomVehicleData1" withVehicleDataState:YES];
+ });
it(@"expect OEM Custom Vehicle Data to be set properly", ^{
expect([testRequest getOEMCustomVehicleData:@"OEMCustomVehicleData"]).to(equal(@NO));
diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetMediaClockTimerSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetMediaClockTimerSpec.m
index 7bf4956f9..d05fd1607 100644
--- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetMediaClockTimerSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetMediaClockTimerSpec.m
@@ -25,6 +25,13 @@ describe(@"SetMediaClocktimer Spec", ^ {
__block SDLStartTime *time2 = [[SDLStartTime alloc] initWithHours:1 minutes:2 seconds:3];
__block SDLUpdateMode testUpdateMode = SDLUpdateModeCountUp;
__block SDLAudioStreamingIndicator testIndicator = SDLAudioStreamingIndicatorPlayPause;
+ __block SDLSeekStreamingIndicator *forwardSeekTest;
+ __block SDLSeekStreamingIndicator *backSeekTest;
+
+ beforeEach(^{
+ forwardSeekTest = [[SDLSeekStreamingIndicator alloc] initWithType:SDLSeekIndicatorTypeTrack];
+ backSeekTest = [[SDLSeekStreamingIndicator alloc] initWithType:SDLSeekIndicatorTypeTrack];
+ });
describe(@"when initialized", ^{
it(@"should properly initialize with initWithDictionary:", ^{
@@ -33,7 +40,9 @@ describe(@"SetMediaClocktimer Spec", ^ {
@{SDLRPCParameterNameStartTime:time1,
SDLRPCParameterNameEndTime:time2,
SDLRPCParameterNameUpdateMode:testUpdateMode,
- SDLRPCParameterNameAudioStreamingIndicator:testIndicator
+ SDLRPCParameterNameAudioStreamingIndicator:testIndicator,
+ SDLRPCParameterNameForwardSeekIndicator:forwardSeekTest,
+ SDLRPCParameterNameBackSeekIndicator:backSeekTest
},
SDLRPCParameterNameOperationName:SDLRPCFunctionNameSetMediaClockTimer}
};
@@ -43,6 +52,8 @@ describe(@"SetMediaClocktimer Spec", ^ {
expect(testRequest.endTime).to(equal(time2));
expect(testRequest.updateMode).to(equal(testUpdateMode));
expect(testRequest.audioStreamingIndicator).to(equal(testIndicator));
+ expect(testRequest.forwardSeekIndicator).to(equal(forwardSeekTest));
+ expect(testRequest.backSeekIndicator).to(equal(backSeekTest));
});
it(@"should properly initialize with init", ^{
@@ -52,16 +63,20 @@ describe(@"SetMediaClocktimer Spec", ^ {
expect(testRequest.endTime).to(beNil());
expect(testRequest.updateMode).to(beNil());
expect(testRequest.audioStreamingIndicator).to(beNil());
+ expect(testRequest.forwardSeekIndicator).to(beNil());
+ expect(testRequest.backSeekIndicator).to(beNil());
expect(testRequest.countRate).to(beNil());
});
- it(@"should properly initialize with initWithUpdateMode:startTime:endTime:audioStreamingIndicator:countRate:", ^{
- SDLSetMediaClockTimer* testRequest = [[SDLSetMediaClockTimer alloc] initWithUpdateMode:testUpdateMode startTime:time1 endTime:time2 audioStreamingIndicator:testIndicator countRate:@(testCountRate)];
+ it(@"should properly initialize with initWithUpdateMode:startTime:endTime:audioStreamingIndicator:forwardSeekIndicator:backSeekIndicator:countRate:", ^{
+ SDLSetMediaClockTimer* testRequest = [[SDLSetMediaClockTimer alloc] initWithUpdateMode:testUpdateMode startTime:time1 endTime:time2 audioStreamingIndicator:testIndicator forwardSeekIndicator:forwardSeekTest backSeekIndicator:backSeekTest countRate:@(testCountRate)];
expect(testRequest.startTime).to(equal(time1));
expect(testRequest.endTime).to(equal(time2));
expect(testRequest.updateMode).to(equal(SDLUpdateModeCountUp));
expect(testRequest.audioStreamingIndicator).to(equal(SDLAudioStreamingIndicatorPlayPause));
+ expect(testRequest.forwardSeekIndicator).to(equal(forwardSeekTest));
+ expect(testRequest.backSeekIndicator).to(equal(backSeekTest));
expect(testRequest.countRate).to(equal(testCountRate));
});
@@ -75,16 +90,20 @@ describe(@"SetMediaClocktimer Spec", ^ {
expect(testRequest.endTime).to(equal(time2));
expect(testRequest.updateMode).to(equal(SDLUpdateModeCountUp));
expect(testRequest.audioStreamingIndicator).to(equal(testIndicator));
+ expect(testRequest.forwardSeekIndicator).to(beNil());
+ expect(testRequest.backSeekIndicator).to(beNil());
expect(testRequest.countRate).to(beNil());
});
- it(@"should properly initialize with countUpFromStartTimeInterval:toEndTimeInterval:playPauseIndicator:countRate:", ^{
- SDLSetMediaClockTimer *testRequest = [SDLSetMediaClockTimer countUpFromStartTimeInterval:testTime1Interval toEndTimeInterval:testTime2Interval playPauseIndicator:testIndicator countRate:@(testCountRate)];
+ it(@"should properly initialize with countUpFromStartTimeInterval:toEndTimeInterval:playPauseIndicator:forwardSeekIndicator:backSeekIndicator:countRate:", ^{
+ SDLSetMediaClockTimer *testRequest = [SDLSetMediaClockTimer countUpFromStartTimeInterval:testTime1Interval toEndTimeInterval:testTime2Interval playPauseIndicator:testIndicator forwardSeekIndicator:forwardSeekTest backSeekIndicator:backSeekTest countRate:@(testCountRate)];
expect(testRequest.startTime).to(equal(time1));
expect(testRequest.endTime).to(equal(time2));
expect(testRequest.updateMode).to(equal(SDLUpdateModeCountUp));
expect(testRequest.audioStreamingIndicator).to(equal(testIndicator));
+ expect(testRequest.forwardSeekIndicator).to(equal(forwardSeekTest));
+ expect(testRequest.backSeekIndicator).to(equal(backSeekTest));
expect(testRequest.countRate).to(equal(testCountRate));
});
@@ -98,16 +117,20 @@ describe(@"SetMediaClocktimer Spec", ^ {
expect(testRequest.endTime).to(equal(time2));
expect(testRequest.updateMode).to(equal(SDLUpdateModeCountUp));
expect(testRequest.audioStreamingIndicator).to(equal(testIndicator));
+ expect(testRequest.forwardSeekIndicator).to(beNil());
+ expect(testRequest.backSeekIndicator).to(beNil());
expect(testRequest.countRate).to(beNil());
});
- it(@"should properly initialize with countUpFromStartTime:toEndTime:playPauseIndicator:countRate:", ^{
- SDLSetMediaClockTimer *testRequest = [SDLSetMediaClockTimer countUpFromStartTime:time1 toEndTime:time2 playPauseIndicator:testIndicator countRate:@(testCountRate)];
+ it(@"should properly initialize with countUpFromStartTime:toEndTime:playPauseIndicator:forwardSeekIndicator:backSeekIndicator:countRate:", ^{
+ SDLSetMediaClockTimer *testRequest = [SDLSetMediaClockTimer countUpFromStartTime:time1 toEndTime:time2 playPauseIndicator:testIndicator forwardSeekIndicator:forwardSeekTest backSeekIndicator:backSeekTest countRate:@(testCountRate)];
expect(testRequest.startTime).to(equal(time1));
expect(testRequest.endTime).to(equal(time2));
expect(testRequest.updateMode).to(equal(SDLUpdateModeCountUp));
expect(testRequest.audioStreamingIndicator).to(equal(testIndicator));
+ expect(testRequest.forwardSeekIndicator).to(equal(forwardSeekTest));
+ expect(testRequest.backSeekIndicator).to(equal(backSeekTest));
expect(testRequest.countRate).to(equal(testCountRate));
});
@@ -121,16 +144,20 @@ describe(@"SetMediaClocktimer Spec", ^ {
expect(testRequest.endTime).to(equal(time2));
expect(testRequest.updateMode).to(equal(SDLUpdateModeCountDown));
expect(testRequest.audioStreamingIndicator).to(equal(testIndicator));
+ expect(testRequest.forwardSeekIndicator).to(beNil());
+ expect(testRequest.backSeekIndicator).to(beNil());
expect(testRequest.countRate).to(beNil());
});
- it(@"should properly initialize with countDownFromStartTimeInterval:toEndTimeInterval:playPauseIndicator:countRate:", ^{
- SDLSetMediaClockTimer *testRequest = [SDLSetMediaClockTimer countDownFromStartTimeInterval:testTime1Interval toEndTimeInterval:testTime2Interval playPauseIndicator:testIndicator countRate:@(testCountRate)];
+ it(@"should properly initialize with countDownFromStartTimeInterval:toEndTimeInterval:playPauseIndicator:forwardSeekIndicator:backSeekIndicator:countRate:", ^{
+ SDLSetMediaClockTimer *testRequest = [SDLSetMediaClockTimer countDownFromStartTimeInterval:testTime1Interval toEndTimeInterval:testTime2Interval playPauseIndicator:testIndicator forwardSeekIndicator:forwardSeekTest backSeekIndicator:backSeekTest countRate:@(testCountRate)];
expect(testRequest.startTime).to(equal(time1));
expect(testRequest.endTime).to(equal(time2));
expect(testRequest.updateMode).to(equal(SDLUpdateModeCountDown));
expect(testRequest.audioStreamingIndicator).to(equal(testIndicator));
+ expect(testRequest.forwardSeekIndicator).to(equal(forwardSeekTest));
+ expect(testRequest.backSeekIndicator).to(equal(backSeekTest));
expect(testRequest.countRate).to(equal(testCountRate));
});
@@ -144,16 +171,20 @@ describe(@"SetMediaClocktimer Spec", ^ {
expect(testRequest.endTime).to(equal(time2));
expect(testRequest.updateMode).to(equal(SDLUpdateModeCountDown));
expect(testRequest.audioStreamingIndicator).to(equal(testIndicator));
+ expect(testRequest.forwardSeekIndicator).to(beNil());
+ expect(testRequest.backSeekIndicator).to(beNil());
expect(testRequest.countRate).to(beNil());
});
- it(@"should properly initialize with countDownFromStartTime:toEndTime:playPauseIndicator:countRate:", ^{
- SDLSetMediaClockTimer *testRequest = [SDLSetMediaClockTimer countDownFromStartTime:time1 toEndTime:time2 playPauseIndicator:testIndicator countRate:@(testCountRate)];
+ it(@"should properly initialize with countDownFromStartTime:toEndTime:playPauseIndicator:forwardSeekIndicator:backSeekIndicator:countRate:", ^{
+ SDLSetMediaClockTimer *testRequest = [SDLSetMediaClockTimer countDownFromStartTime:time1 toEndTime:time2 playPauseIndicator:testIndicator forwardSeekIndicator:forwardSeekTest backSeekIndicator:backSeekTest countRate:@(testCountRate)];
expect(testRequest.startTime).to(equal(time1));
expect(testRequest.endTime).to(equal(time2));
expect(testRequest.updateMode).to(equal(SDLUpdateModeCountDown));
expect(testRequest.audioStreamingIndicator).to(equal(testIndicator));
+ expect(testRequest.forwardSeekIndicator).to(equal(forwardSeekTest));
+ expect(testRequest.backSeekIndicator).to(equal(backSeekTest));
expect(testRequest.countRate).to(equal(testCountRate));
});
@@ -197,13 +228,17 @@ describe(@"SetMediaClocktimer Spec", ^ {
expect(testRequest.countRate).to(beNil());
});
- it(@"should properly initialize with resumeWithPlayPauseIndicator:countRate:", ^{
- SDLSetMediaClockTimer *testRequest = [SDLSetMediaClockTimer resumeWithPlayPauseIndicator:testIndicator countRate:@(testCountRate)];
+ it(@"should properly initialize with resumeWithPlayPauseIndicator:forwardSeekIndicator:backSeekIndicator:countRate:", ^{
+ SDLSetMediaClockTimer *testRequest = [SDLSetMediaClockTimer resumeWithPlayPauseIndicator:testIndicator forwardSeekIndicator:forwardSeekTest backSeekIndicator:backSeekTest countRate:@(testCountRate)];
expect(testRequest.startTime).to(beNil());
expect(testRequest.endTime).to(beNil());
expect(testRequest.updateMode).to(equal(SDLUpdateModeResume));
expect(testRequest.audioStreamingIndicator).to(equal(testIndicator));
+ expect(testRequest.forwardSeekIndicator).to(equal(forwardSeekTest));
+ expect(testRequest.backSeekIndicator).to(equal(backSeekTest));
+ expect(testRequest.forwardSeekIndicator).to(equal(forwardSeekTest));
+ expect(testRequest.backSeekIndicator).to(equal(backSeekTest));
expect(testRequest.countRate).to(equal(testCountRate));
});
@@ -236,12 +271,16 @@ describe(@"SetMediaClocktimer Spec", ^ {
testRequest.endTime = time2;
testRequest.updateMode = SDLUpdateModeCountUp;
testRequest.audioStreamingIndicator = SDLAudioStreamingIndicatorPlayPause;
+ testRequest.forwardSeekIndicator = forwardSeekTest;
+ testRequest.backSeekIndicator = backSeekTest;
testRequest.countRate = @(testCountRate);
expect(testRequest.startTime).to(equal(time1));
expect(testRequest.endTime).to(equal(time2));
expect(testRequest.updateMode).to(equal(SDLUpdateModeCountUp));
expect(testRequest.audioStreamingIndicator).to(equal(SDLAudioStreamingIndicatorPlayPause));
+ expect(testRequest.forwardSeekIndicator).to(equal(forwardSeekTest));
+ expect(testRequest.backSeekIndicator).to(equal(backSeekTest));
expect(testRequest.countRate).to(equal(testCountRate));
});
});
diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSubscribeVehicleDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSubscribeVehicleDataSpec.m
index 7e3a98f36..558bca573 100644
--- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSubscribeVehicleDataSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSubscribeVehicleDataSpec.m
@@ -30,9 +30,9 @@ describe(@"getter/setter tests", ^{
testRequest.emergencyEvent = @YES;
testRequest.engineOilLife = @YES;
testRequest.engineTorque = @YES;
- testRequest.externalTemperature = @YES;
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ testRequest.externalTemperature = @YES;
testRequest.fuelLevel = @YES;
testRequest.fuelLevel_State = @YES;
#pragma clang diagnostic pop
@@ -49,6 +49,7 @@ describe(@"getter/setter tests", ^{
testRequest.prndl = @YES;
#pragma clang diagnostic pop
testRequest.rpm = @YES;
+ testRequest.seatOccupancy = @YES;
testRequest.speed = @YES;
testRequest.stabilityControlsStatus = @YES;
testRequest.steeringWheelAngle = @YES;
@@ -56,6 +57,7 @@ describe(@"getter/setter tests", ^{
testRequest.turnSignal = @YES;
testRequest.windowStatus = @YES;
testRequest.wiperStatus = @YES;
+ testRequest.climateData = @YES;
it(@"expect all properties to be set properly", ^{
expect(testRequest.accPedalPosition).to(equal(@YES));
@@ -71,9 +73,9 @@ describe(@"getter/setter tests", ^{
expect(testRequest.emergencyEvent).to(equal(@YES));
expect(testRequest.engineOilLife).to(equal(@YES));
expect(testRequest.engineTorque).to(equal(@YES));
- expect(testRequest.externalTemperature).to(equal(@YES));
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ expect(testRequest.externalTemperature).to(equal(@YES));
expect(testRequest.fuelLevel).to(equal(@YES));
expect(testRequest.fuelLevel_State).to(equal(@YES));
#pragma clang diagnostic pop
@@ -90,6 +92,7 @@ describe(@"getter/setter tests", ^{
expect(testRequest.prndl).to(equal(@YES));
#pragma clang diagnostic pop
expect(testRequest.rpm).to(equal(@YES));
+ expect(testRequest.seatOccupancy).to(equal(@YES));
expect(testRequest.speed).to(equal(@YES));
expect(testRequest.stabilityControlsStatus).to(equal(@YES));
expect(testRequest.steeringWheelAngle).to(equal(@YES));
@@ -97,6 +100,7 @@ describe(@"getter/setter tests", ^{
expect(testRequest.turnSignal).to(equal(@YES));
expect(testRequest.windowStatus).to(equal(@YES));
expect(testRequest.wiperStatus).to(equal(@YES));
+ expect(testRequest.climateData).to(equal(@YES));
});
});
@@ -135,6 +139,7 @@ describe(@"getter/setter tests", ^{
SDLRPCParameterNamePRNDL:@YES,
#pragma clang diagnostic pop
SDLRPCParameterNameRPM:@YES,
+ SDLRPCParameterNameSeatOccupancy:@YES,
SDLRPCParameterNameSpeed:@YES,
SDLRPCParameterNameStabilityControlsStatus:@YES,
SDLRPCParameterNameSteeringWheelAngle:@YES,
@@ -142,6 +147,7 @@ describe(@"getter/setter tests", ^{
SDLRPCParameterNameTurnSignal:@YES,
SDLRPCParameterNameWindowStatus:@YES,
SDLRPCParameterNameWiperStatus:@YES,
+ SDLRPCParameterNameClimateData:@YES,
},
SDLRPCParameterNameOperationName:SDLRPCFunctionNameSubscribeVehicleData}};
SDLSubscribeVehicleData* testRequest = [[SDLSubscribeVehicleData alloc] initWithDictionary:dict];
@@ -160,9 +166,9 @@ describe(@"getter/setter tests", ^{
expect(testRequest.emergencyEvent).to(equal(@YES));
expect(testRequest.engineOilLife).to(equal(@YES));
expect(testRequest.engineTorque).to(equal(@YES));
- expect(testRequest.externalTemperature).to(equal(@YES));
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ expect(testRequest.externalTemperature).to(equal(@YES));
expect(testRequest.fuelLevel).to(equal(@YES));
expect(testRequest.fuelLevel_State).to(equal(@YES));
#pragma clang diagnostic pop
@@ -179,6 +185,7 @@ describe(@"getter/setter tests", ^{
expect(testRequest.prndl).to(equal(@YES));
#pragma clang diagnostic pop
expect(testRequest.rpm).to(equal(@YES));
+ expect(testRequest.seatOccupancy).to(equal(@YES));
expect(testRequest.speed).to(equal(@YES));
expect(testRequest.stabilityControlsStatus).to(equal(@YES));
expect(testRequest.steeringWheelAngle).to(equal(@YES));
@@ -186,6 +193,7 @@ describe(@"getter/setter tests", ^{
expect(testRequest.turnSignal).to(equal(@YES));
expect(testRequest.windowStatus).to(equal(@YES));
expect(testRequest.wiperStatus).to(equal(@YES));
+ expect(testRequest.climateData).to(equal(@YES));
});
});
});
@@ -208,9 +216,9 @@ describe(@"test initializers", ^{
expect(testRequest.emergencyEvent).to(beNil());
expect(testRequest.engineOilLife).to(beNil());
expect(testRequest.engineTorque).to(beNil());
- expect(testRequest.externalTemperature).to(beNil());
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ expect(testRequest.externalTemperature).to(beNil());
expect(testRequest.fuelLevel).to(beNil());
expect(testRequest.fuelLevel_State).to(beNil());
#pragma clang diagnostic pop
@@ -227,6 +235,7 @@ describe(@"test initializers", ^{
expect(testRequest.prndl).to(beNil());
#pragma clang diagnostic pop
expect(testRequest.rpm).to(beNil());
+ expect(testRequest.seatOccupancy).to(beNil());
expect(testRequest.speed).to(beNil());
expect(testRequest.stabilityControlsStatus).to(beNil());
expect(testRequest.steeringWheelAngle).to(beNil());
@@ -234,11 +243,66 @@ describe(@"test initializers", ^{
expect(testRequest.turnSignal).to(beNil());
expect(testRequest.windowStatus).to(beNil());
expect(testRequest.wiperStatus).to(beNil());
+ expect(testRequest.climateData).to(beNil());
+ });
+ });
+
+ context(@"initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:cloudAppVehicleID:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus:", ^{
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ SDLSubscribeVehicleData* testRequest = [[SDLSubscribeVehicleData alloc] initWithAccelerationPedalPosition:YES airbagStatus:YES beltStatus:YES bodyInformation:YES cloudAppVehicleID:YES clusterModeStatus:YES deviceStatus:YES driverBraking:YES eCallInfo:YES electronicParkBrakeStatus:YES emergencyEvent:YES engineOilLife:YES engineTorque:YES externalTemperature:YES fuelLevel:YES fuelLevelState:YES fuelRange:YES gps:YES headLampStatus:YES instantFuelConsumption:YES myKey:YES odometer:YES prndl:YES rpm:YES speed:YES steeringWheelAngle:YES tirePressure:YES turnSignal:YES wiperStatus:YES];
+#pragma clang diagnostic pop
+
+ it(@"expect all properties to be set properly", ^{
+ expect(testRequest.accPedalPosition).to(equal(@YES));
+ expect(testRequest.airbagStatus).to(equal(@YES));
+ expect(testRequest.beltStatus).to(equal(@YES));
+ expect(testRequest.bodyInformation).to(equal(@YES));
+ expect(testRequest.cloudAppVehicleID).to(equal(@YES));
+ expect(testRequest.clusterModeStatus).to(equal(@YES));
+ expect(testRequest.deviceStatus).to(equal(@YES));
+ expect(testRequest.driverBraking).to(equal(@YES));
+ expect(testRequest.eCallInfo).to(equal(@YES));
+ expect(testRequest.electronicParkBrakeStatus).to(equal(@YES));
+ expect(testRequest.emergencyEvent).to(equal(@YES));
+ expect(testRequest.engineOilLife).to(equal(@YES));
+ expect(testRequest.engineTorque).to(equal(@YES));
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ expect(testRequest.externalTemperature).to(equal(@YES));
+ expect(testRequest.fuelLevel).to(equal(@YES));
+ expect(testRequest.fuelLevel_State).to(equal(@YES));
+#pragma clang diagnostic pop
+ expect(testRequest.fuelRange).to(equal(@YES));
+ expect(testRequest.gearStatus).to(beNil());
+ expect(testRequest.gps).to(equal(@YES));
+ expect(testRequest.handsOffSteering).to(beNil());
+ expect(testRequest.headLampStatus).to(equal(@YES));
+ expect(testRequest.instantFuelConsumption).to(equal(@YES));
+ expect(testRequest.myKey).to(equal(@YES));
+ expect(testRequest.odometer).to(equal(@YES));
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ expect(testRequest.prndl).to(equal(@YES));
+#pragma clang diagnostic pop
+ expect(testRequest.rpm).to(equal(@YES));
+ expect(testRequest.seatOccupancy).to(beNil());
+ expect(testRequest.speed).to(equal(@YES));
+ expect(testRequest.stabilityControlsStatus).to(beNil());
+ expect(testRequest.steeringWheelAngle).to(equal(@YES));
+ expect(testRequest.tirePressure).to(equal(@YES));
+ expect(testRequest.turnSignal).to(equal(@YES));
+ expect(testRequest.windowStatus).to(beNil());
+ expect(testRequest.wiperStatus).to(equal(@YES));
+ expect(testRequest.climateData).to(beNil());
});
});
context(@"initWithGps:speed:rpm:instantFuelConsumption:fuelRange:externalTemperature:turnSignal:gearStatus:tirePressure:odometer:beltStatus:bodyInformation:deviceStatus:driverBraking:wiperStatus:headLampStatus:engineTorque:accPedalPosition:steeringWheelAngle:engineOilLife:electronicParkBrakeStatus:cloudAppVehicleID:stabilityControlsStatus:eCallInfo:airbagStatus:emergencyEvent:clusterModeStatus:myKey:handsOffSteering:windowStatus:", ^{
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
SDLSubscribeVehicleData* testRequest = [[SDLSubscribeVehicleData alloc] initWithGps:@YES speed:@YES rpm:@YES instantFuelConsumption:@YES fuelRange:@YES externalTemperature:@YES turnSignal:@YES gearStatus:@YES tirePressure:@YES odometer:@YES beltStatus:@YES bodyInformation:@YES deviceStatus:@YES driverBraking:@YES wiperStatus:@YES headLampStatus:@YES engineTorque:@YES accPedalPosition:@YES steeringWheelAngle:@YES engineOilLife:@YES electronicParkBrakeStatus:@YES cloudAppVehicleID:@YES stabilityControlsStatus:@YES eCallInfo:@YES airbagStatus:@YES emergencyEvent:@YES clusterModeStatus:@YES myKey:@YES handsOffSteering:@YES windowStatus:@YES];
+#pragma clang diagnostic pop
it(@"expect all properties to be set properly", ^{
expect(testRequest.accPedalPosition).to(equal(@YES));
@@ -254,9 +318,57 @@ describe(@"test initializers", ^{
expect(testRequest.emergencyEvent).to(equal(@YES));
expect(testRequest.engineOilLife).to(equal(@YES));
expect(testRequest.engineTorque).to(equal(@YES));
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
expect(testRequest.externalTemperature).to(equal(@YES));
+ expect(testRequest.fuelLevel).to(beNil());
+ expect(testRequest.fuelLevel_State).to(beNil());
+#pragma clang diagnostic pop
+ expect(testRequest.fuelRange).to(equal(@YES));
+ expect(testRequest.gearStatus).to(equal(@YES));
+ expect(testRequest.gps).to(equal(@YES));
+ expect(testRequest.handsOffSteering).to(equal(@YES));
+ expect(testRequest.headLampStatus).to(equal(@YES));
+ expect(testRequest.instantFuelConsumption).to(equal(@YES));
+ expect(testRequest.myKey).to(equal(@YES));
+ expect(testRequest.odometer).to(equal(@YES));
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ expect(testRequest.prndl).to(beNil());
+#pragma clang diagnostic pop
+ expect(testRequest.rpm).to(equal(@YES));
+ expect(testRequest.seatOccupancy).to(beNil());
+ expect(testRequest.speed).to(equal(@YES));
+ expect(testRequest.stabilityControlsStatus).to(equal(@YES));
+ expect(testRequest.steeringWheelAngle).to(equal(@YES));
+ expect(testRequest.tirePressure).to(equal(@YES));
+ expect(testRequest.turnSignal).to(equal(@YES));
+ expect(testRequest.windowStatus).to(equal(@YES));
+ expect(testRequest.wiperStatus).to(equal(@YES));
+ expect(testRequest.climateData).to(beNil());
+ });
+ });
+
+ context(@"initWithGps:speed:rpm:instantFuelConsumption:fuelRange:climateData:turnSignal:gearStatus:tirePressure:odometer:beltStatus:bodyInformation:deviceStatus:driverBraking:wiperStatus:headLampStatus:engineTorque:accPedalPosition:steeringWheelAngle:engineOilLife:electronicParkBrakeStatus:cloudAppVehicleID:stabilityControlsStatus:eCallInfo:airbagStatus:emergencyEvent:clusterModeStatus:myKey:windowStatus:handsOffSteering:seatOccupancy:", ^{
+ SDLSubscribeVehicleData* testRequest = [[SDLSubscribeVehicleData alloc] initWithGps:@YES speed:@YES rpm:@YES instantFuelConsumption:@YES fuelRange:@YES climateData:@YES turnSignal:@YES gearStatus:@YES tirePressure:@YES odometer:@YES beltStatus:@YES bodyInformation:@YES deviceStatus:@YES driverBraking:@YES wiperStatus:@YES headLampStatus:@YES engineTorque:@YES accPedalPosition:@YES steeringWheelAngle:@YES engineOilLife:@YES electronicParkBrakeStatus:@YES cloudAppVehicleID:@YES stabilityControlsStatus:@YES eCallInfo:@YES airbagStatus:@YES emergencyEvent:@YES clusterModeStatus:@YES myKey:@YES windowStatus:@YES handsOffSteering:@YES seatOccupancy:@YES];
+
+ it(@"expect all properties to be set properly", ^{
+ expect(testRequest.accPedalPosition).to(equal(@YES));
+ expect(testRequest.airbagStatus).to(equal(@YES));
+ expect(testRequest.beltStatus).to(equal(@YES));
+ expect(testRequest.bodyInformation).to(equal(@YES));
+ expect(testRequest.cloudAppVehicleID).to(equal(@YES));
+ expect(testRequest.clusterModeStatus).to(equal(@YES));
+ expect(testRequest.deviceStatus).to(equal(@YES));
+ expect(testRequest.driverBraking).to(equal(@YES));
+ expect(testRequest.eCallInfo).to(equal(@YES));
+ expect(testRequest.electronicParkBrakeStatus).to(equal(@YES));
+ expect(testRequest.emergencyEvent).to(equal(@YES));
+ expect(testRequest.engineOilLife).to(equal(@YES));
+ expect(testRequest.engineTorque).to(equal(@YES));
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ expect(testRequest.externalTemperature).to(beNil());
expect(testRequest.fuelLevel).to(beNil());
expect(testRequest.fuelLevel_State).to(beNil());
#pragma clang diagnostic pop
@@ -273,6 +385,7 @@ describe(@"test initializers", ^{
expect(testRequest.prndl).to(beNil());
#pragma clang diagnostic pop
expect(testRequest.rpm).to(equal(@YES));
+ expect(testRequest.seatOccupancy).to(equal(@YES));
expect(testRequest.speed).to(equal(@YES));
expect(testRequest.stabilityControlsStatus).to(equal(@YES));
expect(testRequest.steeringWheelAngle).to(equal(@YES));
@@ -280,6 +393,7 @@ describe(@"test initializers", ^{
expect(testRequest.turnSignal).to(equal(@YES));
expect(testRequest.windowStatus).to(equal(@YES));
expect(testRequest.wiperStatus).to(equal(@YES));
+ expect(testRequest.climateData).to(equal(@YES));
});
});
diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUnsubscribeVehicleDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUnsubscribeVehicleDataSpec.m
index f71889b5f..b2b52ad5e 100644
--- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUnsubscribeVehicleDataSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUnsubscribeVehicleDataSpec.m
@@ -30,9 +30,9 @@ describe(@"getter/setter tests", ^{
testRequest.emergencyEvent = @YES;
testRequest.engineOilLife = @YES;
testRequest.engineTorque = @YES;
- testRequest.externalTemperature = @YES;
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ testRequest.externalTemperature = @YES;
testRequest.fuelLevel = @YES;
testRequest.fuelLevel_State = @YES;
#pragma clang diagnostic pop
@@ -49,6 +49,7 @@ describe(@"getter/setter tests", ^{
testRequest.prndl = @YES;
#pragma clang diagnostic pop
testRequest.rpm = @YES;
+ testRequest.seatOccupancy = @YES;
testRequest.speed = @YES;
testRequest.stabilityControlsStatus = @YES;
testRequest.steeringWheelAngle = @YES;
@@ -56,6 +57,7 @@ describe(@"getter/setter tests", ^{
testRequest.turnSignal = @YES;
testRequest.windowStatus = @YES;
testRequest.wiperStatus = @YES;
+ testRequest.climateData = @YES;
it(@"expect all properties to be set properly", ^{
expect(testRequest.accPedalPosition).to(equal(@YES));
@@ -71,9 +73,9 @@ describe(@"getter/setter tests", ^{
expect(testRequest.emergencyEvent).to(equal(@YES));
expect(testRequest.engineOilLife).to(equal(@YES));
expect(testRequest.engineTorque).to(equal(@YES));
- expect(testRequest.externalTemperature).to(equal(@YES));
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ expect(testRequest.externalTemperature).to(equal(@YES));
expect(testRequest.fuelLevel).to(equal(@YES));
expect(testRequest.fuelLevel_State).to(equal(@YES));
#pragma clang diagnostic pop
@@ -90,12 +92,14 @@ describe(@"getter/setter tests", ^{
expect(testRequest.prndl).to(equal(@YES));
#pragma clang diagnostic pop
expect(testRequest.rpm).to(equal(@YES));
+ expect(testRequest.seatOccupancy).to(equal(@YES));
expect(testRequest.speed).to(equal(@YES));
expect(testRequest.stabilityControlsStatus).to(equal(@YES));
expect(testRequest.steeringWheelAngle).to(equal(@YES));
expect(testRequest.tirePressure).to(equal(@YES));
expect(testRequest.turnSignal).to(equal(@YES));
expect(testRequest.wiperStatus).to(equal(@YES));
+ expect(testRequest.climateData).to(equal(@YES));
});
});
@@ -134,6 +138,7 @@ describe(@"getter/setter tests", ^{
SDLRPCParameterNamePRNDL:@YES,
#pragma clang diagnostic pop
SDLRPCParameterNameRPM:@YES,
+ SDLRPCParameterNameSeatOccupancy:@YES,
SDLRPCParameterNameSpeed:@YES,
SDLRPCParameterNameStabilityControlsStatus:@YES,
SDLRPCParameterNameSteeringWheelAngle:@YES,
@@ -141,6 +146,7 @@ describe(@"getter/setter tests", ^{
SDLRPCParameterNameTurnSignal:@YES,
SDLRPCParameterNameWindowStatus:@YES,
SDLRPCParameterNameWiperStatus:@YES,
+ SDLRPCParameterNameClimateData:@YES,
},
SDLRPCParameterNameOperationName:SDLRPCFunctionNameUnsubscribeVehicleData}};
SDLUnsubscribeVehicleData* testRequest = [[SDLUnsubscribeVehicleData alloc] initWithDictionary:dict];
@@ -159,9 +165,9 @@ describe(@"getter/setter tests", ^{
expect(testRequest.emergencyEvent).to(equal(@YES));
expect(testRequest.engineOilLife).to(equal(@YES));
expect(testRequest.engineTorque).to(equal(@YES));
- expect(testRequest.externalTemperature).to(equal(@YES));
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ expect(testRequest.externalTemperature).to(equal(@YES));
expect(testRequest.fuelLevel).to(equal(@YES));
expect(testRequest.fuelLevel_State).to(equal(@YES));
#pragma clang diagnostic pop
@@ -178,6 +184,7 @@ describe(@"getter/setter tests", ^{
expect(testRequest.prndl).to(equal(@YES));
#pragma clang diagnostic pop
expect(testRequest.rpm).to(equal(@YES));
+ expect(testRequest.seatOccupancy).to(equal(@YES));
expect(testRequest.speed).to(equal(@YES));
expect(testRequest.stabilityControlsStatus).to(equal(@YES));
expect(testRequest.steeringWheelAngle).to(equal(@YES));
@@ -185,6 +192,7 @@ describe(@"getter/setter tests", ^{
expect(testRequest.turnSignal).to(equal(@YES));
expect(testRequest.windowStatus).to(equal(@YES));
expect(testRequest.wiperStatus).to(equal(@YES));
+ expect(testRequest.climateData).to(equal(@YES));
});
});
});
@@ -207,9 +215,9 @@ describe(@"test initializers", ^{
expect(testRequest.emergencyEvent).to(beNil());
expect(testRequest.engineOilLife).to(beNil());
expect(testRequest.engineTorque).to(beNil());
- expect(testRequest.externalTemperature).to(beNil());
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ expect(testRequest.externalTemperature).to(beNil());
expect(testRequest.fuelLevel).to(beNil());
expect(testRequest.fuelLevel_State).to(beNil());
#pragma clang diagnostic pop
@@ -226,6 +234,7 @@ describe(@"test initializers", ^{
expect(testRequest.prndl).to(beNil());
#pragma clang diagnostic pop
expect(testRequest.rpm).to(beNil());
+ expect(testRequest.seatOccupancy).to(beNil());
expect(testRequest.speed).to(beNil());
expect(testRequest.stabilityControlsStatus).to(beNil());
expect(testRequest.steeringWheelAngle).to(beNil());
@@ -233,6 +242,7 @@ describe(@"test initializers", ^{
expect(testRequest.turnSignal).to(beNil());
expect(testRequest.windowStatus).to(beNil());
expect(testRequest.wiperStatus).to(beNil());
+ expect(testRequest.climateData).to(beNil());
});
});
@@ -256,9 +266,9 @@ describe(@"test initializers", ^{
expect(testRequest.emergencyEvent).to(equal(@YES));
expect(testRequest.engineOilLife).to(equal(@YES));
expect(testRequest.engineTorque).to(equal(@YES));
- expect(testRequest.externalTemperature).to(equal(@YES));
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ expect(testRequest.externalTemperature).to(equal(@YES));
expect(testRequest.fuelLevel).to(equal(@YES));
expect(testRequest.fuelLevel_State).to(equal(@YES));
#pragma clang diagnostic push
@@ -275,17 +285,19 @@ describe(@"test initializers", ^{
expect(testRequest.prndl).to(equal(@YES));
#pragma clang diagnostic pop
expect(testRequest.rpm).to(equal(@YES));
+ expect(testRequest.seatOccupancy).to(beNil());
expect(testRequest.speed).to(equal(@YES));
expect(testRequest.stabilityControlsStatus).to(beNil());
expect(testRequest.steeringWheelAngle).to(equal(@YES));
expect(testRequest.tirePressure).to(equal(@YES));
expect(testRequest.turnSignal).to(equal(@YES));
expect(testRequest.wiperStatus).to(equal(@YES));
+ expect(testRequest.climateData).to(beNil());
});
});
context (@"initWithGps:speed:rpm:instantFuelConsumption:fuelRange:externalTemperature:turnSignal:gearStatus:tirePressure:odometer:beltStatus:bodyInformation:deviceStatus:driverBraking:wiperStatus:headLampStatus:engineTorque:accPedalPosition:steeringWheelAngle:engineOilLife:electronicParkBrakeStatus:cloudAppVehicleID:stabilityControlsStatus:eCallInfo:airbagStatus:emergencyEvent:clusterModeStatus:myKey:handsOffSteering:windowStatus:", ^{
- SDLUnsubscribeVehicleData *testRequest = [[SDLUnsubscribeVehicleData alloc] initWithGps:@YES speed:@YES rpm:@YES instantFuelConsumption:@YES fuelRange:@YES externalTemperature:@YES turnSignal:@YES gearStatus:@YES tirePressure:@YES odometer:@YES beltStatus:@YES bodyInformation:@YES deviceStatus:@YES driverBraking:@YES wiperStatus:@YES headLampStatus:@YES engineTorque:@YES accPedalPosition:@YES steeringWheelAngle:@YES engineOilLife:@YES electronicParkBrakeStatus:@YES cloudAppVehicleID:@YES stabilityControlsStatus:@YES eCallInfo:@YES airbagStatus:@YES emergencyEvent:@YES clusterModeStatus:@YES myKey:@YES handsOffSteering:@YES windowStatus:@YES];
+ SDLUnsubscribeVehicleData *testRequest = [[SDLUnsubscribeVehicleData alloc] initWithGps:@YES speed:@YES rpm:@YES instantFuelConsumption:@YES fuelRange:@YES externalTemperature:@YES turnSignal:@YES gearStatus:@YES tirePressure:@YES odometer:@YES beltStatus:@YES bodyInformation:@YES deviceStatus:@YES driverBraking:@YES wiperStatus:@YES headLampStatus:@YES engineTorque:@YES accPedalPosition:@YES steeringWheelAngle:@YES engineOilLife:@YES electronicParkBrakeStatus:@YES cloudAppVehicleID:@YES stabilityControlsStatus:@YES eCallInfo:@YES airbagStatus:@YES emergencyEvent:@YES clusterModeStatus:@YES myKey:@YES handsOffSteering:@YES windowStatus:@YES];
it(@"expect all properties to be set properly", ^{
expect(testRequest.accPedalPosition).to(equal(@YES));
@@ -301,9 +313,9 @@ describe(@"test initializers", ^{
expect(testRequest.emergencyEvent).to(equal(@YES));
expect(testRequest.engineOilLife).to(equal(@YES));
expect(testRequest.engineTorque).to(equal(@YES));
- expect(testRequest.externalTemperature).to(equal(@YES));
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ expect(testRequest.externalTemperature).to(equal(@YES));
expect(testRequest.fuelLevel).to(beNil());
expect(testRequest.fuelLevel_State).to(beNil());
#pragma clang diagnostic push
@@ -320,6 +332,7 @@ describe(@"test initializers", ^{
expect(testRequest.prndl).to(beNil());
#pragma clang diagnostic pop
expect(testRequest.rpm).to(equal(@YES));
+ expect(testRequest.seatOccupancy).to(beNil());
expect(testRequest.speed).to(equal(@YES));
expect(testRequest.stabilityControlsStatus).to(equal(@YES));
expect(testRequest.steeringWheelAngle).to(equal(@YES));
@@ -327,7 +340,58 @@ describe(@"test initializers", ^{
expect(testRequest.turnSignal).to(equal(@YES));
expect(testRequest.windowStatus).to(equal(@YES));
expect(testRequest.wiperStatus).to(equal(@YES));
+ expect(testRequest.climateData).to(beNil());
+ });
+ });
+ context (@"initWithGps:speed:rpm:instantFuelConsumption:fuelRange:climateData:turnSignal:gearStatus:tirePressure:odometer:beltStatus:bodyInformation:deviceStatus:driverBraking:wiperStatus:headLampStatus:engineTorque:accPedalPosition:steeringWheelAngle:engineOilLife:electronicParkBrakeStatus:cloudAppVehicleID:stabilityControlsStatus:eCallInfo:airbagStatus:emergencyEvent:clusterModeStatus:myKey:windowStatus:handsOffSteering:seatOccupancy:", ^{
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ SDLUnsubscribeVehicleData *testRequest = [[SDLUnsubscribeVehicleData alloc] initWithGps:@YES speed:@YES rpm:@YES instantFuelConsumption:@YES fuelRange:@YES climateData:@YES turnSignal:@YES gearStatus:@YES tirePressure:@YES odometer:@YES beltStatus:@YES bodyInformation:@YES deviceStatus:@YES driverBraking:@YES wiperStatus:@YES headLampStatus:@YES engineTorque:@YES accPedalPosition:@YES steeringWheelAngle:@YES engineOilLife:@YES electronicParkBrakeStatus:@YES cloudAppVehicleID:@YES stabilityControlsStatus:@YES eCallInfo:@YES airbagStatus:@YES emergencyEvent:@YES clusterModeStatus:@YES myKey:@YES windowStatus:@YES handsOffSteering:@YES seatOccupancy:@YES];
+#pragma clang diagnostic pop
+
+ it(@"expect all properties to be set properly", ^{
+ expect(testRequest.accPedalPosition).to(equal(@YES));
+ expect(testRequest.airbagStatus).to(equal(@YES));
+ expect(testRequest.beltStatus).to(equal(@YES));
+ expect(testRequest.bodyInformation).to(equal(@YES));
+ expect(testRequest.cloudAppVehicleID).to(equal(@YES));
+ expect(testRequest.clusterModeStatus).to(equal(@YES));
+ expect(testRequest.deviceStatus).to(equal(@YES));
+ expect(testRequest.driverBraking).to(equal(@YES));
+ expect(testRequest.eCallInfo).to(equal(@YES));
+ expect(testRequest.electronicParkBrakeStatus).to(equal(@YES));
+ expect(testRequest.emergencyEvent).to(equal(@YES));
+ expect(testRequest.engineOilLife).to(equal(@YES));
+ expect(testRequest.engineTorque).to(equal(@YES));
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ expect(testRequest.externalTemperature).to(beNil());
+ expect(testRequest.fuelLevel).to(beNil());
+ expect(testRequest.fuelLevel_State).to(beNil());
+#pragma clang diagnostic push
+ expect(testRequest.fuelRange).to(equal(@YES));
+ expect(testRequest.gearStatus).to(equal(@YES));
+ expect(testRequest.gps).to(equal(@YES));
+ expect(testRequest.handsOffSteering).to(equal(@YES));
+ expect(testRequest.headLampStatus).to(equal(@YES));
+ expect(testRequest.instantFuelConsumption).to(equal(@YES));
+ expect(testRequest.myKey).to(equal(@YES));
+ expect(testRequest.odometer).to(equal(@YES));
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ expect(testRequest.prndl).to(beNil());
+#pragma clang diagnostic pop
+ expect(testRequest.rpm).to(equal(@YES));
+ expect(testRequest.seatOccupancy).to(equal(@YES));
+ expect(testRequest.speed).to(equal(@YES));
+ expect(testRequest.stabilityControlsStatus).to(equal(@YES));
+ expect(testRequest.steeringWheelAngle).to(equal(@YES));
+ expect(testRequest.tirePressure).to(equal(@YES));
+ expect(testRequest.turnSignal).to(equal(@YES));
+ expect(testRequest.windowStatus).to(equal(@YES));
+ expect(testRequest.wiperStatus).to(equal(@YES));
+ expect(testRequest.climateData).to(equal(@YES));
});
});
diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetVehicleDataResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetVehicleDataResponseSpec.m
index 091dd83ba..2c13dcd80 100644
--- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetVehicleDataResponseSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetVehicleDataResponseSpec.m
@@ -50,6 +50,8 @@ SDLElectronicParkBrakeStatus electronicParkBrakeStatus = SDLElectronicParkBrakeS
const BOOL handsOffSteering = YES;
SDLStabilityControlsStatus *stabilityControlsStatus = [[SDLStabilityControlsStatus alloc] init];
NSArray<SDLWindowStatus *> *windowStatus = @[[[SDLWindowStatus alloc] init], [[SDLWindowStatus alloc] init]];
+SDLClimateData *climateData = [[SDLClimateData alloc] init];
+SDLSeatOccupancy *seatOccupancy = [[SDLSeatOccupancy alloc] init];
describe(@"getter/setter tests", ^{
context(@"init and assign", ^{
@@ -67,9 +69,9 @@ describe(@"getter/setter tests", ^{
testResponse.emergencyEvent = emergencyEvent;
testResponse.engineOilLife = @(engineOilLife);
testResponse.engineTorque = @(engineTorque);
- testResponse.externalTemperature = @(externalTemperature);
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ testResponse.externalTemperature = @(externalTemperature);
testResponse.fuelLevel = @(fuelLevel);
testResponse.fuelLevel_State = fuelLevel_State;
#pragma clang diagnostic pop
@@ -86,6 +88,7 @@ describe(@"getter/setter tests", ^{
testResponse.prndl = prndl;
#pragma clang diagnostic pop
testResponse.rpm = @(rpm);
+ testResponse.seatOccupancy = seatOccupancy;
testResponse.speed = @(speed);
testResponse.stabilityControlsStatus = stabilityControlsStatus;
testResponse.steeringWheelAngle = @(steeringWheelAngle);
@@ -94,6 +97,7 @@ describe(@"getter/setter tests", ^{
testResponse.vin = vin;
testResponse.windowStatus = windowStatus;
testResponse.wiperStatus = wiperStatus;
+ testResponse.climateData = climateData;
it(@"expect all properties to be set properly", ^{
expect(testResponse.accPedalPosition).to(equal(@(accPedalPosition)));
@@ -109,9 +113,9 @@ describe(@"getter/setter tests", ^{
expect(testResponse.emergencyEvent).to(equal(emergencyEvent));
expect(testResponse.engineOilLife).to(equal(@(engineOilLife)));
expect(testResponse.engineTorque).to(equal(@(engineTorque)));
- expect(testResponse.externalTemperature).to(equal(@(externalTemperature)));
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ expect(testResponse.externalTemperature).to(equal(@(externalTemperature)));
expect(testResponse.fuelLevel).to(equal(@(fuelLevel)));
expect(testResponse.fuelLevel_State).to(equal(fuelLevel_State));
#pragma clang diagnostic pop
@@ -128,6 +132,7 @@ describe(@"getter/setter tests", ^{
expect(testResponse.prndl).to(equal(prndl));
#pragma clang diagnostic pop
expect(testResponse.rpm).to(equal(@(rpm)));
+ expect(testResponse.seatOccupancy).to(equal(seatOccupancy));
expect(testResponse.speed).to(equal(@(speed)));
expect(testResponse.stabilityControlsStatus).to(equal(stabilityControlsStatus));
expect(testResponse.steeringWheelAngle).to(equal(@(steeringWheelAngle)));
@@ -136,6 +141,7 @@ describe(@"getter/setter tests", ^{
expect(testResponse.vin).to(equal(vin));
expect(testResponse.windowStatus).to(equal(windowStatus));
expect(testResponse.wiperStatus).to(equal(wiperStatus));
+ expect(testResponse.climateData).to(equal(climateData));
});
});
@@ -174,6 +180,7 @@ describe(@"getter/setter tests", ^{
SDLRPCParameterNamePRNDL:prndl,
#pragma clang diagnostic pop
SDLRPCParameterNameRPM:@(rpm),
+ SDLRPCParameterNameSeatOccupancy:seatOccupancy,
SDLRPCParameterNameSpeed:@(speed),
SDLRPCParameterNameStabilityControlsStatus:stabilityControlsStatus,
SDLRPCParameterNameSteeringWheelAngle:@(steeringWheelAngle),
@@ -182,6 +189,7 @@ describe(@"getter/setter tests", ^{
SDLRPCParameterNameVIN:vin,
SDLRPCParameterNameWindowStatus:windowStatus,
SDLRPCParameterNameWiperStatus:wiperStatus,
+ SDLRPCParameterNameClimateData:climateData,
},
SDLRPCParameterNameOperationName:SDLRPCFunctionNameGetVehicleData}};
SDLGetVehicleDataResponse* testResponse = [[SDLGetVehicleDataResponse alloc] initWithDictionary:dict];
@@ -200,9 +208,9 @@ describe(@"getter/setter tests", ^{
expect(testResponse.emergencyEvent).to(equal(emergencyEvent));
expect(testResponse.engineOilLife).to(equal(@(engineOilLife)));
expect(testResponse.engineTorque).to(equal(@(engineTorque)));
- expect(testResponse.externalTemperature).to(equal(@(externalTemperature)));
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ expect(testResponse.externalTemperature).to(equal(@(externalTemperature)));
expect(testResponse.fuelLevel).to(equal(@(fuelLevel)));
expect(testResponse.fuelLevel_State).to(equal(fuelLevel_State));
#pragma clang diagnostic pop
@@ -219,6 +227,7 @@ describe(@"getter/setter tests", ^{
expect(testResponse.prndl).to(equal(prndl));
#pragma clang diagnostic pop
expect(testResponse.rpm).to(equal(@(rpm)));
+ expect(testResponse.seatOccupancy).to(equal(seatOccupancy));
expect(testResponse.speed).to(equal(@(speed)));
expect(testResponse.stabilityControlsStatus).to(equal(stabilityControlsStatus));
expect(testResponse.steeringWheelAngle).to(equal(@(steeringWheelAngle)));
@@ -227,6 +236,7 @@ describe(@"getter/setter tests", ^{
expect(testResponse.vin).to(equal(vin));
expect(testResponse.windowStatus).to(equal(windowStatus));
expect(testResponse.wiperStatus).to(equal(wiperStatus));
+ expect(testResponse.climateData).to(equal(climateData));
});
});
@@ -246,9 +256,9 @@ describe(@"getter/setter tests", ^{
expect(testResponse.emergencyEvent).to(beNil());
expect(testResponse.engineOilLife).to(beNil());
expect(testResponse.engineTorque).to(beNil());
- expect(testResponse.externalTemperature).to(beNil());
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ expect(testResponse.externalTemperature).to(beNil());
expect(testResponse.fuelLevel).to(beNil());
expect(testResponse.fuelLevel_State).to(beNil());
#pragma clang diagnostic pop
@@ -265,6 +275,7 @@ describe(@"getter/setter tests", ^{
expect(testResponse.prndl).to(beNil());
#pragma clang diagnostic push
expect(testResponse.rpm).to(beNil());
+ expect(testResponse.seatOccupancy).to(beNil());
expect(testResponse.speed).to(beNil());
expect(testResponse.stabilityControlsStatus).to(beNil());
expect(testResponse.steeringWheelAngle).to(beNil());
@@ -273,6 +284,7 @@ describe(@"getter/setter tests", ^{
expect(testResponse.vin).to(beNil());
expect(testResponse.windowStatus).to(beNil());
expect(testResponse.wiperStatus).to(beNil());
+ expect(testResponse.climateData).to(beNil());
});
});
@@ -292,9 +304,56 @@ describe(@"getter/setter tests", ^{
expect(testResponse.emergencyEvent).to(equal(emergencyEvent));
expect(testResponse.engineOilLife).to(equal(@(engineOilLife)));
expect(testResponse.engineTorque).to(equal(@(engineTorque)));
- expect(testResponse.externalTemperature).to(equal(@(externalTemperature)));
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ expect(testResponse.externalTemperature).to(equal(externalTemperature));
+ expect(testResponse.fuelLevel).to(beNil());
+ expect(testResponse.fuelLevel_State).to(beNil());
+#pragma clang diagnostic pop
+ expect(testResponse.fuelRange).to(equal(fuelRangeArray));
+ expect(testResponse.gearStatus).to(equal(gearStatus));
+ expect(testResponse.gps).to(equal(gps));
+ expect(testResponse.handsOffSteering).to(equal(@(handsOffSteering)));
+ expect(testResponse.headLampStatus).to(equal(headLampStatus));
+ expect(testResponse.instantFuelConsumption).to(equal(@(instantFuelConsumption)));
+ expect(testResponse.myKey).to(equal(myKey));
+ expect(testResponse.odometer).to(equal(@(odometer)));
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ expect(testResponse.prndl).to(beNil());
+#pragma clang diagnostic pop
+ expect(testResponse.rpm).to(equal(@(rpm)));
+ expect(testResponse.speed).to(equal(@(speed)));
+ expect(testResponse.stabilityControlsStatus).to(equal(stabilityControlsStatus));
+ expect(testResponse.steeringWheelAngle).to(equal(@(steeringWheelAngle)));
+ expect(testResponse.tirePressure).to(equal(tirePressure));
+ expect(testResponse.turnSignal).to(equal(turnSignal));
+ expect(testResponse.vin).to(equal(vin));
+ expect(testResponse.windowStatus).to(equal(windowStatus));
+ expect(testResponse.wiperStatus).to(equal(wiperStatus));
+ expect(testResponse.climateData).to(beNil());
+ });
+ });
+
+ context(@"initWithGps:speed:rpm:instantFuelConsumption:fuelRange:externalTemperature:turnSignal:vin:gearStatus:tirePressure:odometer:beltStatus:bodyInformation:deviceStatus:driverBraking:wiperStatus:headLampStatus:engineTorque:accPedalPosition:steeringWheelAngle:engineOilLife:electronicParkBrakeStatus:cloudAppVehicleID:stabilityControlsStatus:eCallInfo:airbagStatus:emergencyEvent:clusterModeStatus:myKey:handsOffSteering:windowStatus:seatOccupancy:", ^{
+ it(@"should set all properties properly", ^{
+ SDLGetVehicleDataResponse *testResponse = [[SDLGetVehicleDataResponse alloc] initWithGps:gps speed:@(speed) rpm:@(rpm) instantFuelConsumption:@(instantFuelConsumption) fuelRange:fuelRangeArray climateData:climateData turnSignal:turnSignal vin:vin gearStatus:gearStatus tirePressure:tirePressure odometer:@(odometer) beltStatus:beltStatus bodyInformation:bodyInformation deviceStatus:deviceStatus driverBraking:driverBraking wiperStatus:wiperStatus headLampStatus:headLampStatus engineTorque:@(engineTorque) accPedalPosition:@(accPedalPosition) steeringWheelAngle:@(steeringWheelAngle) engineOilLife:@(engineOilLife) electronicParkBrakeStatus:electronicParkBrakeStatus cloudAppVehicleID:cloudAppVehicleID stabilityControlsStatus:stabilityControlsStatus eCallInfo:eCallInfo airbagStatus:airbagStatus emergencyEvent:emergencyEvent clusterModeStatus:clusterModeStatus myKey:myKey windowStatus:windowStatus handsOffSteering:@(handsOffSteering) seatOccupancy:seatOccupancy];
+ expect(testResponse.accPedalPosition).to(equal(@(accPedalPosition)));
+ expect(testResponse.airbagStatus).to(equal(airbagStatus));
+ expect(testResponse.beltStatus).to(equal(beltStatus));
+ expect(testResponse.bodyInformation).to(equal(bodyInformation));
+ expect(testResponse.cloudAppVehicleID).to(equal(cloudAppVehicleID));
+ expect(testResponse.clusterModeStatus).to(equal(clusterModeStatus));
+ expect(testResponse.deviceStatus).to(equal(deviceStatus));
+ expect(testResponse.driverBraking).to(equal(driverBraking));
+ expect(testResponse.eCallInfo).to(equal(eCallInfo));
+ expect(testResponse.electronicParkBrakeStatus).to(equal(electronicParkBrakeStatus));
+ expect(testResponse.emergencyEvent).to(equal(emergencyEvent));
+ expect(testResponse.engineOilLife).to(equal(@(engineOilLife)));
+ expect(testResponse.engineTorque).to(equal(@(engineTorque)));
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ expect(testResponse.externalTemperature).to(beNil());
expect(testResponse.fuelLevel).to(beNil());
expect(testResponse.fuelLevel_State).to(beNil());
#pragma clang diagnostic pop
@@ -311,6 +370,7 @@ describe(@"getter/setter tests", ^{
expect(testResponse.prndl).to(beNil());
#pragma clang diagnostic pop
expect(testResponse.rpm).to(equal(@(rpm)));
+ expect(testResponse.seatOccupancy).to(equal(seatOccupancy));
expect(testResponse.speed).to(equal(@(speed)));
expect(testResponse.stabilityControlsStatus).to(equal(stabilityControlsStatus));
expect(testResponse.steeringWheelAngle).to(equal(@(steeringWheelAngle)));
diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSeatOccupancySpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSeatOccupancySpec.m
new file mode 100644
index 000000000..172af240b
--- /dev/null
+++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSeatOccupancySpec.m
@@ -0,0 +1,64 @@
+//
+// SDLUnsubscribeVehicleDataResponseSpec.m
+// SmartDeviceLink
+
+
+#import <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#import "SDLSeatOccupancy.h"
+#import "SDLSeatStatus.h"
+#import "SDLRPCParameterNames.h"
+#import "SDLRPCFunctionNames.h"
+
+QuickSpecBegin(SDLSeatOccupancySpec)
+
+SDLSeatStatus *seatStatus = [[SDLSeatStatus alloc] init];
+NSArray *seatStatusArr = @[seatStatus];
+
+describe(@"getter/setter tests", ^{
+ context(@"init", ^{
+ it(@"expect all properties to be set properly", ^{
+ SDLSeatOccupancy* testStruct = [[SDLSeatOccupancy alloc] init];
+ testStruct.seatsBelted = seatStatusArr;
+ testStruct.seatsOccupied = seatStatusArr;
+
+ expect(testStruct.seatsBelted).to(equal(seatStatusArr));
+ expect(testStruct.seatsOccupied).to(equal(seatStatusArr));
+ });
+ });
+
+ context(@"initWithDictionary:", ^{
+ it(@"expect all properties to be set properly", ^{
+ NSDictionary *dict = @{
+ SDLRPCParameterNameSeatsBelted:seatStatusArr,
+ SDLRPCParameterNameSeatsOccupied:seatStatusArr,
+ };
+
+ SDLSeatOccupancy* testStruct = [[SDLSeatOccupancy alloc] initWithDictionary:dict];
+
+ expect(testStruct.seatsBelted).to(equal(seatStatusArr));
+ expect(testStruct.seatsOccupied).to(equal(seatStatusArr));
+ });
+ });
+
+ context(@"init", ^{
+ it(@"expect all properties to be nil", ^{
+ SDLSeatOccupancy* testStruct = [[SDLSeatOccupancy alloc] init];
+ expect(testStruct.seatsBelted).to(beNil());
+ expect(testStruct.seatsOccupied).to(beNil());
+ });
+ });
+
+ context(@"initWithSeatsOccupied:seatsBelted:", ^{
+ it(@"expect all properties to be set properly", ^{
+ SDLSeatOccupancy* testStruct = [[SDLSeatOccupancy alloc] initWithSeatsOccupied:seatStatusArr seatsBelted:seatStatusArr];
+ expect(testStruct.seatsBelted).to(equal(seatStatusArr));
+ expect(testStruct.seatsOccupied).to(equal(seatStatusArr));
+ });
+ });
+});
+
+QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSeatStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSeatStatusSpec.m
new file mode 100644
index 000000000..fa56d7729
--- /dev/null
+++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSeatStatusSpec.m
@@ -0,0 +1,66 @@
+//
+// SDLUnsubscribeVehicleDataResponseSpec.m
+// SmartDeviceLink
+
+
+#import <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#import "SDLSeatStatus.h"
+#import "SDLSeatLocation.h"
+#import "SDLRPCParameterNames.h"
+#import "SDLRPCFunctionNames.h"
+
+QuickSpecBegin(SDLSeatStatusSpec)
+
+SDLSeatLocation *seatLocation = [[SDLSeatLocation alloc] init];
+NSNumber<SDLBool> *conditionActive = @YES;
+
+describe(@"getter/setter tests", ^{
+ context(@"init", ^{
+ it(@"expect all properties to be set properly", ^{
+ SDLSeatStatus* testStruct = [[SDLSeatStatus alloc] init];
+ testStruct.conditionActive = conditionActive;
+ testStruct.seatLocation = seatLocation;
+
+ expect(testStruct.conditionActive).to(equal(conditionActive));
+ expect(testStruct.seatLocation).to(equal(seatLocation));
+ });
+ });
+
+ context(@"initWithDictionary:", ^{
+ it(@"expect all properties to be set properly", ^{
+ NSDictionary *dict = @{
+ SDLRPCParameterNameConditionActive:conditionActive,
+ SDLRPCParameterNameSeatLocation:seatLocation,
+ };
+
+ SDLSeatStatus* testStruct = [[SDLSeatStatus alloc] initWithDictionary:dict];
+
+ expect(testStruct.conditionActive).to(equal(conditionActive));
+ expect(testStruct.seatLocation).to(equal(seatLocation));
+ });
+ });
+
+ context(@"init", ^{
+ it(@"expect all properties to be nil", ^{
+ SDLSeatStatus* testStruct = [[SDLSeatStatus alloc] init];
+
+ expect(testStruct.conditionActive).to(beNil());
+ expect(testStruct.seatLocation).to(beNil());
+ });
+ });
+
+ context(@"initWithSeatsOccupied:seatsBelted:", ^{
+ it(@"expect all properties to be set properly", ^{
+ SDLSeatStatus* testStruct = [[SDLSeatStatus alloc] initWithSeatLocation:seatLocation conditionActive:conditionActive];
+
+ expect(testStruct.conditionActive).to(equal(conditionActive));
+ expect(testStruct.seatLocation).to(equal(seatLocation));
+ });
+ });
+});
+
+QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSubscribeVehicleDataResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSubscribeVehicleDataResponseSpec.m
index 4a240d32c..6b3e7058e 100644
--- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSubscribeVehicleDataResponseSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSubscribeVehicleDataResponseSpec.m
@@ -36,9 +36,9 @@ describe(@"getter/setter tests", ^{
testResponse.emergencyEvent = vehicleDataResult;
testResponse.engineOilLife = vehicleDataResult;
testResponse.engineTorque = vehicleDataResult;
- testResponse.externalTemperature = vehicleDataResult;
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ testResponse.externalTemperature = vehicleDataResult;
testResponse.fuelLevel = vehicleDataResult;
testResponse.fuelLevel_State = vehicleDataResult;
#pragma clang diagnostic pop
@@ -55,6 +55,7 @@ describe(@"getter/setter tests", ^{
testResponse.prndl = vehicleDataResult;
#pragma clang diagnostic pop
testResponse.rpm = vehicleDataResult;
+ testResponse.seatOccupancy = vehicleDataResult;
testResponse.speed = vehicleDataResult;
testResponse.stabilityControlsStatus = vehicleDataResult;
testResponse.steeringWheelAngle = vehicleDataResult;
@@ -62,6 +63,7 @@ describe(@"getter/setter tests", ^{
testResponse.turnSignal = vehicleDataResult;
testResponse.windowStatus = vehicleDataResult;
testResponse.wiperStatus = vehicleDataResult;
+ testResponse.climateData = vehicleDataResult;
it(@"expect all properties to be set properly", ^{
expect(testResponse.accPedalPosition).to(equal(vehicleDataResult));
@@ -77,9 +79,9 @@ describe(@"getter/setter tests", ^{
expect(testResponse.emergencyEvent).to(equal(vehicleDataResult));
expect(testResponse.engineOilLife).to(equal(vehicleDataResult));
expect(testResponse.engineTorque).to(equal(vehicleDataResult));
- expect(testResponse.externalTemperature).to(equal(vehicleDataResult));
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ expect(testResponse.externalTemperature).to(equal(vehicleDataResult));
expect(testResponse.fuelLevel).to(equal(vehicleDataResult));
expect(testResponse.fuelLevel_State).to(equal(vehicleDataResult));
#pragma clang diagnostic pop
@@ -96,6 +98,7 @@ describe(@"getter/setter tests", ^{
expect(testResponse.prndl).to(equal(vehicleDataResult));
#pragma clang diagnostic pop
expect(testResponse.rpm).to(equal(vehicleDataResult));
+ expect(testResponse.seatOccupancy).to(equal(vehicleDataResult));
expect(testResponse.speed).to(equal(vehicleDataResult));
expect(testResponse.stabilityControlsStatus).to(equal(vehicleDataResult));
expect(testResponse.steeringWheelAngle).to(equal(vehicleDataResult));
@@ -103,6 +106,7 @@ describe(@"getter/setter tests", ^{
expect(testResponse.turnSignal).to(equal(vehicleDataResult));
expect(testResponse.windowStatus).to(equal(vehicleDataResult));
expect(testResponse.wiperStatus).to(equal(vehicleDataResult));
+ expect(testResponse.climateData).to(equal(vehicleDataResult));
});
});
@@ -141,6 +145,7 @@ describe(@"getter/setter tests", ^{
SDLRPCParameterNamePRNDL:vehicleDataResult,
#pragma clang diagnostic pop
SDLRPCParameterNameRPM:vehicleDataResult,
+ SDLRPCParameterNameSeatOccupancy:vehicleDataResult,
SDLRPCParameterNameSpeed:vehicleDataResult,
SDLRPCParameterNameStabilityControlsStatus:vehicleDataResult,
SDLRPCParameterNameSteeringWheelAngle:vehicleDataResult,
@@ -148,6 +153,7 @@ describe(@"getter/setter tests", ^{
SDLRPCParameterNameTurnSignal:vehicleDataResult,
SDLRPCParameterNameWindowStatus:vehicleDataResult,
SDLRPCParameterNameWiperStatus:vehicleDataResult,
+ SDLRPCParameterNameClimateData:vehicleDataResult,
},
SDLRPCParameterNameOperationName:SDLRPCFunctionNameSubscribeVehicleData}};
@@ -167,9 +173,9 @@ describe(@"getter/setter tests", ^{
expect(testResponse.emergencyEvent).to(equal(vehicleDataResult));
expect(testResponse.engineOilLife).to(equal(vehicleDataResult));
expect(testResponse.engineTorque).to(equal(vehicleDataResult));
- expect(testResponse.externalTemperature).to(equal(vehicleDataResult));
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ expect(testResponse.externalTemperature).to(equal(vehicleDataResult));
expect(testResponse.fuelLevel).to(equal(vehicleDataResult));
expect(testResponse.fuelLevel_State).to(equal(vehicleDataResult));
#pragma clang diagnostic pop
@@ -186,6 +192,7 @@ describe(@"getter/setter tests", ^{
expect(testResponse.prndl).to(equal(vehicleDataResult));
#pragma clang diagnostic pop
expect(testResponse.rpm).to(equal(vehicleDataResult));
+ expect(testResponse.seatOccupancy).to(equal(vehicleDataResult));
expect(testResponse.speed).to(equal(vehicleDataResult));
expect(testResponse.stabilityControlsStatus).to(equal(vehicleDataResult));
expect(testResponse.steeringWheelAngle).to(equal(vehicleDataResult));
@@ -193,6 +200,7 @@ describe(@"getter/setter tests", ^{
expect(testResponse.turnSignal).to(equal(vehicleDataResult));
expect(testResponse.windowStatus).to(equal(vehicleDataResult));
expect(testResponse.wiperStatus).to(equal(vehicleDataResult));
+ expect(testResponse.climateData).to(equal(vehicleDataResult));
});
});
@@ -213,9 +221,9 @@ describe(@"getter/setter tests", ^{
expect(testResponse.emergencyEvent).to(beNil());
expect(testResponse.engineOilLife).to(beNil());
expect(testResponse.engineTorque).to(beNil());
- expect(testResponse.externalTemperature).to(beNil());
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ expect(testResponse.externalTemperature).to(beNil());
expect(testResponse.fuelLevel).to(beNil());
expect(testResponse.fuelLevel_State).to(beNil());
#pragma clang diagnostic pop
@@ -232,6 +240,7 @@ describe(@"getter/setter tests", ^{
expect(testResponse.prndl).to(beNil());
#pragma clang diagnostic pop
expect(testResponse.rpm).to(beNil());
+ expect(testResponse.seatOccupancy).to(beNil());
expect(testResponse.speed).to(beNil());
expect(testResponse.stabilityControlsStatus).to(beNil());
expect(testResponse.steeringWheelAngle).to(beNil());
@@ -239,11 +248,15 @@ describe(@"getter/setter tests", ^{
expect(testResponse.turnSignal).to(beNil());
expect(testResponse.windowStatus).to(beNil());
expect(testResponse.wiperStatus).to(beNil());
+ expect(testResponse.climateData).to(beNil());
});
});
context(@"initWithGps:speed:rpm:instantFuelConsumption:fuelRange:externalTemperature:turnSignal:gearStatus:tirePressure:odometer:beltStatus:bodyInformation:deviceStatus:driverBraking:wiperStatus:headLampStatus:engineTorque:accPedalPosition:steeringWheelAngle:engineOilLife:electronicParkBrakeStatus:cloudAppVehicleID:stabilityControlsStatus:eCallInfo:airbagStatus:emergencyEvent:clusterModes:myKey:handsOffSteering:windowStatus:", ^{
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
SDLSubscribeVehicleDataResponse *testResponse = [[SDLSubscribeVehicleDataResponse alloc] initWithGps:vehicleDataResult speed:vehicleDataResult rpm:vehicleDataResult instantFuelConsumption:vehicleDataResult fuelRange:vehicleDataResult externalTemperature:vehicleDataResult turnSignal:vehicleDataResult gearStatus:vehicleDataResult tirePressure:vehicleDataResult odometer:vehicleDataResult beltStatus:vehicleDataResult bodyInformation:vehicleDataResult deviceStatus:vehicleDataResult driverBraking:vehicleDataResult wiperStatus:vehicleDataResult headLampStatus:vehicleDataResult engineTorque:vehicleDataResult accPedalPosition:vehicleDataResult steeringWheelAngle:vehicleDataResult engineOilLife:vehicleDataResult electronicParkBrakeStatus:vehicleDataResult cloudAppVehicleID:vehicleDataResult stabilityControlsStatus:vehicleDataResult eCallInfo:vehicleDataResult airbagStatus:vehicleDataResult emergencyEvent:vehicleDataResult clusterModes:vehicleDataResult myKey:vehicleDataResult handsOffSteering:vehicleDataResult windowStatus:vehicleDataResult];
+#pragma clang diagnostic pop
it(@"expect all properties to be set properly", ^{
expect(testResponse.accPedalPosition).to(equal(vehicleDataResult));
@@ -259,9 +272,56 @@ describe(@"getter/setter tests", ^{
expect(testResponse.emergencyEvent).to(equal(vehicleDataResult));
expect(testResponse.engineOilLife).to(equal(vehicleDataResult));
expect(testResponse.engineTorque).to(equal(vehicleDataResult));
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
expect(testResponse.externalTemperature).to(equal(vehicleDataResult));
+ expect(testResponse.fuelLevel).to(beNil());
+ expect(testResponse.fuelLevel_State).to(beNil());
+#pragma clang diagnostic pop
+ expect(testResponse.fuelRange).to(equal(vehicleDataResult));
+ expect(testResponse.gearStatus).to(equal(vehicleDataResult));
+ expect(testResponse.gps).to(equal(vehicleDataResult));
+ expect(testResponse.handsOffSteering).to(equal(vehicleDataResult));
+ expect(testResponse.headLampStatus).to(equal(vehicleDataResult));
+ expect(testResponse.instantFuelConsumption).to(equal(vehicleDataResult));
+ expect(testResponse.myKey).to(equal(vehicleDataResult));
+ expect(testResponse.odometer).to(equal(vehicleDataResult));
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ expect(testResponse.prndl).to(beNil());
+#pragma clang diagnostic push
+ expect(testResponse.rpm).to(equal(vehicleDataResult));
+ expect(testResponse.seatOccupancy).to(beNil());
+ expect(testResponse.speed).to(equal(vehicleDataResult));
+ expect(testResponse.stabilityControlsStatus).to(equal(vehicleDataResult));
+ expect(testResponse.steeringWheelAngle).to(equal(vehicleDataResult));
+ expect(testResponse.tirePressure).to(equal(vehicleDataResult));
+ expect(testResponse.turnSignal).to(equal(vehicleDataResult));
+ expect(testResponse.windowStatus).to(equal(vehicleDataResult));
+ expect(testResponse.wiperStatus).to(equal(vehicleDataResult));
+ });
+ });
+
+ context(@"initWithGps:speed:rpm:instantFuelConsumption:fuelRange:climateData:turnSignal:gearStatus:tirePressure:odometer:beltStatus:bodyInformation:deviceStatus:driverBraking:wiperStatus:headLampStatus:engineTorque:accPedalPosition:steeringWheelAngle:engineOilLife:electronicParkBrakeStatus:cloudAppVehicleID:stabilityControlsStatus:eCallInfo:airbagStatus:emergencyEvent:clusterModes:myKey:windowStatus:handsOffSteering:seatOccupancy:", ^{
+ SDLSubscribeVehicleDataResponse *testResponse = [[SDLSubscribeVehicleDataResponse alloc] initWithGps:vehicleDataResult speed:vehicleDataResult rpm:vehicleDataResult instantFuelConsumption:vehicleDataResult fuelRange:vehicleDataResult climateData:vehicleDataResult turnSignal:vehicleDataResult gearStatus:vehicleDataResult tirePressure:vehicleDataResult odometer:vehicleDataResult beltStatus:vehicleDataResult bodyInformation:vehicleDataResult deviceStatus:vehicleDataResult driverBraking:vehicleDataResult wiperStatus:vehicleDataResult headLampStatus:vehicleDataResult engineTorque:vehicleDataResult accPedalPosition:vehicleDataResult steeringWheelAngle:vehicleDataResult engineOilLife:vehicleDataResult electronicParkBrakeStatus:vehicleDataResult cloudAppVehicleID:vehicleDataResult stabilityControlsStatus:vehicleDataResult eCallInfo:vehicleDataResult airbagStatus:vehicleDataResult emergencyEvent:vehicleDataResult clusterModes:vehicleDataResult myKey:vehicleDataResult windowStatus:vehicleDataResult handsOffSteering:vehicleDataResult seatOccupancy:vehicleDataResult];
+
+ it(@"expect all properties to be set properly", ^{
+ expect(testResponse.accPedalPosition).to(equal(vehicleDataResult));
+ expect(testResponse.airbagStatus).to(equal(vehicleDataResult));
+ expect(testResponse.beltStatus).to(equal(vehicleDataResult));
+ expect(testResponse.bodyInformation).to(equal(vehicleDataResult));
+ expect(testResponse.cloudAppVehicleID).to(equal(vehicleDataResult));
+ expect(testResponse.clusterModes).to(equal(vehicleDataResult));
+ expect(testResponse.deviceStatus).to(equal(vehicleDataResult));
+ expect(testResponse.driverBraking).to(equal(vehicleDataResult));
+ expect(testResponse.eCallInfo).to(equal(vehicleDataResult));
+ expect(testResponse.electronicParkBrakeStatus).to(equal(vehicleDataResult));
+ expect(testResponse.emergencyEvent).to(equal(vehicleDataResult));
+ expect(testResponse.engineOilLife).to(equal(vehicleDataResult));
+ expect(testResponse.engineTorque).to(equal(vehicleDataResult));
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ expect(testResponse.externalTemperature).to(beNil());
expect(testResponse.fuelLevel).to(beNil());
expect(testResponse.fuelLevel_State).to(beNil());
#pragma clang diagnostic pop
@@ -278,6 +338,7 @@ describe(@"getter/setter tests", ^{
expect(testResponse.prndl).to(beNil());
#pragma clang diagnostic push
expect(testResponse.rpm).to(equal(vehicleDataResult));
+ expect(testResponse.seatOccupancy).to(equal(vehicleDataResult));
expect(testResponse.speed).to(equal(vehicleDataResult));
expect(testResponse.stabilityControlsStatus).to(equal(vehicleDataResult));
expect(testResponse.steeringWheelAngle).to(equal(vehicleDataResult));
@@ -285,6 +346,7 @@ describe(@"getter/setter tests", ^{
expect(testResponse.turnSignal).to(equal(vehicleDataResult));
expect(testResponse.windowStatus).to(equal(vehicleDataResult));
expect(testResponse.wiperStatus).to(equal(vehicleDataResult));
+ expect(testResponse.climateData).to(equal(vehicleDataResult));
});
});
diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLUnsubscribeVehicleDataResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLUnsubscribeVehicleDataResponseSpec.m
index d7833ab2d..b2b2561e0 100644
--- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLUnsubscribeVehicleDataResponseSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLUnsubscribeVehicleDataResponseSpec.m
@@ -35,9 +35,9 @@ describe(@"getter/setter tests", ^{
testResponse.emergencyEvent = vehicleDataResult;
testResponse.engineOilLife = vehicleDataResult;
testResponse.engineTorque = vehicleDataResult;
- testResponse.externalTemperature = vehicleDataResult;
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ testResponse.externalTemperature = vehicleDataResult;
testResponse.fuelLevel = vehicleDataResult;
testResponse.fuelLevel_State = vehicleDataResult;
#pragma clang diagnostic pop
@@ -54,6 +54,7 @@ describe(@"getter/setter tests", ^{
testResponse.prndl = vehicleDataResult;
#pragma clang diagnostic pop
testResponse.rpm = vehicleDataResult;
+ testResponse.seatOccupancy = vehicleDataResult;
testResponse.speed = vehicleDataResult;
testResponse.stabilityControlsStatus = vehicleDataResult;
testResponse.steeringWheelAngle = vehicleDataResult;
@@ -61,6 +62,7 @@ describe(@"getter/setter tests", ^{
testResponse.turnSignal = vehicleDataResult;
testResponse.windowStatus = vehicleDataResult;
testResponse.wiperStatus = vehicleDataResult;
+ testResponse.climateData = vehicleDataResult;
it(@"expect all properties to be set properly", ^{
expect(testResponse.accPedalPosition).to(equal(vehicleDataResult));
@@ -76,9 +78,9 @@ describe(@"getter/setter tests", ^{
expect(testResponse.emergencyEvent).to(equal(vehicleDataResult));
expect(testResponse.engineOilLife).to(equal(vehicleDataResult));
expect(testResponse.engineTorque).to(equal(vehicleDataResult));
- expect(testResponse.externalTemperature).to(equal(vehicleDataResult));
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ expect(testResponse.externalTemperature).to(equal(vehicleDataResult));
expect(testResponse.fuelLevel).to(equal(vehicleDataResult));
expect(testResponse.fuelLevel_State).to(equal(vehicleDataResult));
#pragma clang diagnostic pop
@@ -95,6 +97,7 @@ describe(@"getter/setter tests", ^{
expect(testResponse.prndl).to(equal(vehicleDataResult));
#pragma clang diagnostic pop
expect(testResponse.rpm).to(equal(vehicleDataResult));
+ expect(testResponse.seatOccupancy).to(equal(vehicleDataResult));
expect(testResponse.speed).to(equal(vehicleDataResult));
expect(testResponse.stabilityControlsStatus).to(equal(vehicleDataResult));
expect(testResponse.steeringWheelAngle).to(equal(vehicleDataResult));
@@ -102,6 +105,7 @@ describe(@"getter/setter tests", ^{
expect(testResponse.turnSignal).to(equal(vehicleDataResult));
expect(testResponse.windowStatus).to(equal(vehicleDataResult));
expect(testResponse.wiperStatus).to(equal(vehicleDataResult));
+ expect(testResponse.climateData).to(equal(vehicleDataResult));
});
});
@@ -140,6 +144,7 @@ describe(@"getter/setter tests", ^{
SDLRPCParameterNamePRNDL:vehicleDataResult,
#pragma clang diagnostic pop
SDLRPCParameterNameRPM:vehicleDataResult,
+ SDLRPCParameterNameSeatOccupancy:vehicleDataResult,
SDLRPCParameterNameSpeed:vehicleDataResult,
SDLRPCParameterNameStabilityControlsStatus:vehicleDataResult,
SDLRPCParameterNameSteeringWheelAngle:vehicleDataResult,
@@ -147,6 +152,7 @@ describe(@"getter/setter tests", ^{
SDLRPCParameterNameTurnSignal:vehicleDataResult,
SDLRPCParameterNameWindowStatus:vehicleDataResult,
SDLRPCParameterNameWiperStatus:vehicleDataResult,
+ SDLRPCParameterNameClimateData:vehicleDataResult,
},
SDLRPCParameterNameOperationName:SDLRPCFunctionNameUnsubscribeVehicleData}};
SDLUnsubscribeVehicleDataResponse* testResponse = [[SDLUnsubscribeVehicleDataResponse alloc] initWithDictionary:dict];
@@ -184,6 +190,7 @@ describe(@"getter/setter tests", ^{
expect(testResponse.prndl).to(equal(vehicleDataResult));
#pragma clang diagnostic pop
expect(testResponse.rpm).to(equal(vehicleDataResult));
+ expect(testResponse.seatOccupancy).to(equal(vehicleDataResult));
expect(testResponse.speed).to(equal(vehicleDataResult));
expect(testResponse.stabilityControlsStatus).to(equal(vehicleDataResult));
expect(testResponse.steeringWheelAngle).to(equal(vehicleDataResult));
@@ -191,6 +198,7 @@ describe(@"getter/setter tests", ^{
expect(testResponse.turnSignal).to(equal(vehicleDataResult));
expect(testResponse.windowStatus).to(equal(vehicleDataResult));
expect(testResponse.wiperStatus).to(equal(vehicleDataResult));
+ expect(testResponse.climateData).to(equal(vehicleDataResult));
});
});
@@ -230,6 +238,7 @@ describe(@"getter/setter tests", ^{
expect(testResponse.prndl).to(beNil());
#pragma clang diagnostic pop
expect(testResponse.rpm).to(beNil());
+ expect(testResponse.seatOccupancy).to(beNil());
expect(testResponse.speed).to(beNil());
expect(testResponse.stabilityControlsStatus).to(beNil());
expect(testResponse.steeringWheelAngle).to(beNil());
@@ -237,13 +246,18 @@ describe(@"getter/setter tests", ^{
expect(testResponse.turnSignal).to(beNil());
expect(testResponse.windowStatus).to(beNil());
expect(testResponse.wiperStatus).to(beNil());
+ expect(testResponse.climateData).to(beNil());
});
});
context(@"initWithGps:speed:rpm:instantFuelConsumption:fuelRange:externalTemperature:turnSignal:gearStatus:tirePressure:odometer:beltStatus:bodyInformation:deviceStatus:driverBraking:wiperStatus:headLampStatus:engineTorque:accPedalPosition:steeringWheelAngle:engineOilLife:electronicParkBrakeStatus:cloudAppVehicleID:stabilityControlsStatus:eCallInfo:airbagStatus:emergencyEvent:clusterModes:myKey:handsOffSteering:windowStatus:", ^{
- SDLUnsubscribeVehicleDataResponse* testResponse = [[SDLUnsubscribeVehicleDataResponse alloc] initWithGps:vehicleDataResult speed:vehicleDataResult rpm:vehicleDataResult instantFuelConsumption:vehicleDataResult fuelRange:vehicleDataResult externalTemperature:vehicleDataResult turnSignal:vehicleDataResult gearStatus:vehicleDataResult tirePressure:vehicleDataResult odometer:vehicleDataResult beltStatus:vehicleDataResult bodyInformation:vehicleDataResult deviceStatus:vehicleDataResult driverBraking:vehicleDataResult wiperStatus:vehicleDataResult headLampStatus:vehicleDataResult engineTorque:vehicleDataResult accPedalPosition:vehicleDataResult steeringWheelAngle:vehicleDataResult engineOilLife:vehicleDataResult electronicParkBrakeStatus:vehicleDataResult cloudAppVehicleID:vehicleDataResult stabilityControlsStatus:vehicleDataResult eCallInfo:vehicleDataResult airbagStatus:vehicleDataResult emergencyEvent:vehicleDataResult clusterModes:vehicleDataResult myKey:vehicleDataResult handsOffSteering:vehicleDataResult windowStatus:vehicleDataResult];
it(@"expect all properties to be set properly", ^{
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ SDLUnsubscribeVehicleDataResponse* testResponse = [[SDLUnsubscribeVehicleDataResponse alloc] initWithGps:vehicleDataResult speed:vehicleDataResult rpm:vehicleDataResult instantFuelConsumption:vehicleDataResult fuelRange:vehicleDataResult externalTemperature:vehicleDataResult turnSignal:vehicleDataResult gearStatus:vehicleDataResult tirePressure:vehicleDataResult odometer:vehicleDataResult beltStatus:vehicleDataResult bodyInformation:vehicleDataResult deviceStatus:vehicleDataResult driverBraking:vehicleDataResult wiperStatus:vehicleDataResult headLampStatus:vehicleDataResult engineTorque:vehicleDataResult accPedalPosition:vehicleDataResult steeringWheelAngle:vehicleDataResult engineOilLife:vehicleDataResult electronicParkBrakeStatus:vehicleDataResult cloudAppVehicleID:vehicleDataResult stabilityControlsStatus:vehicleDataResult eCallInfo:vehicleDataResult airbagStatus:vehicleDataResult emergencyEvent:vehicleDataResult clusterModes:vehicleDataResult myKey:vehicleDataResult handsOffSteering:vehicleDataResult windowStatus:vehicleDataResult];
+#pragma clang diagnostic pop
+
expect(testResponse.accPedalPosition).to(equal(vehicleDataResult));
expect(testResponse.airbagStatus).to(equal(vehicleDataResult));
expect(testResponse.beltStatus).to(equal(vehicleDataResult));
@@ -276,12 +290,63 @@ describe(@"getter/setter tests", ^{
expect(testResponse.prndl).to(beNil());
#pragma clang diagnostic pop
expect(testResponse.rpm).to(equal(vehicleDataResult));
+ expect(testResponse.seatOccupancy).to(beNil());
+ expect(testResponse.speed).to(equal(vehicleDataResult));
+ expect(testResponse.steeringWheelAngle).to(equal(vehicleDataResult));
+ expect(testResponse.tirePressure).to(equal(vehicleDataResult));
+ expect(testResponse.turnSignal).to(equal(vehicleDataResult));
+ expect(testResponse.windowStatus).to(equal(vehicleDataResult));
+ expect(testResponse.wiperStatus).to(equal(vehicleDataResult));
+ });
+ });
+
+ context(@"initWithGps:speed:rpm:instantFuelConsumption:fuelRange:climateData:turnSignal:gearStatus:tirePressure:odometer:beltStatus:bodyInformation:deviceStatus:driverBraking:wiperStatus:headLampStatus:engineTorque:accPedalPosition:steeringWheelAngle:engineOilLife:electronicParkBrakeStatus:cloudAppVehicleID:stabilityControlsStatus:eCallInfo:airbagStatus:emergencyEvent:clusterModes:myKey:windowStatus:handsOffSteering:seatOccupancy:", ^{
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ SDLUnsubscribeVehicleDataResponse* testResponse = [[SDLUnsubscribeVehicleDataResponse alloc] initWithGps:vehicleDataResult speed:vehicleDataResult rpm:vehicleDataResult instantFuelConsumption:vehicleDataResult fuelRange:vehicleDataResult climateData:vehicleDataResult turnSignal:vehicleDataResult gearStatus:vehicleDataResult tirePressure:vehicleDataResult odometer:vehicleDataResult beltStatus:vehicleDataResult bodyInformation:vehicleDataResult deviceStatus:vehicleDataResult driverBraking:vehicleDataResult wiperStatus:vehicleDataResult headLampStatus:vehicleDataResult engineTorque:vehicleDataResult accPedalPosition:vehicleDataResult steeringWheelAngle:vehicleDataResult engineOilLife:vehicleDataResult electronicParkBrakeStatus:vehicleDataResult cloudAppVehicleID:vehicleDataResult stabilityControlsStatus:vehicleDataResult eCallInfo:vehicleDataResult airbagStatus:vehicleDataResult emergencyEvent:vehicleDataResult clusterModes:vehicleDataResult myKey:vehicleDataResult windowStatus:vehicleDataResult handsOffSteering:vehicleDataResult seatOccupancy:vehicleDataResult];
+#pragma clang diagnostic pop
+
+ it(@"expect all properties to be set properly", ^{
+ expect(testResponse.accPedalPosition).to(equal(vehicleDataResult));
+ expect(testResponse.airbagStatus).to(equal(vehicleDataResult));
+ expect(testResponse.beltStatus).to(equal(vehicleDataResult));
+ expect(testResponse.bodyInformation).to(equal(vehicleDataResult));
+ expect(testResponse.cloudAppVehicleID).to(equal(vehicleDataResult));
+ expect(testResponse.clusterModes).to(equal(vehicleDataResult));
+ expect(testResponse.deviceStatus).to(equal(vehicleDataResult));
+ expect(testResponse.driverBraking).to(equal(vehicleDataResult));
+ expect(testResponse.eCallInfo).to(equal(vehicleDataResult));
+ expect(testResponse.electronicParkBrakeStatus).to(equal(vehicleDataResult));
+ expect(testResponse.emergencyEvent).to(equal(vehicleDataResult));
+ expect(testResponse.engineOilLife).to(equal(vehicleDataResult));
+ expect(testResponse.engineTorque).to(equal(vehicleDataResult));
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ expect(testResponse.externalTemperature).to(beNil());
+ expect(testResponse.fuelLevel).to(beNil());
+ expect(testResponse.fuelLevel_State).to(beNil());
+#pragma clang diagnostic pop
+ expect(testResponse.fuelRange).to(equal(vehicleDataResult));
+ expect(testResponse.gearStatus).to(equal(vehicleDataResult));
+ expect(testResponse.gps).to(equal(vehicleDataResult));
+ expect(testResponse.handsOffSteering).to(equal(vehicleDataResult));
+ expect(testResponse.headLampStatus).to(equal(vehicleDataResult));
+ expect(testResponse.instantFuelConsumption).to(equal(vehicleDataResult));
+ expect(testResponse.myKey).to(equal(vehicleDataResult));
+ expect(testResponse.odometer).to(equal(vehicleDataResult));
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+#pragma clang diagnostic push
+ expect(testResponse.prndl).to(beNil());
+#pragma clang diagnostic pop
+ expect(testResponse.rpm).to(equal(vehicleDataResult));
+ expect(testResponse.seatOccupancy).to(equal(vehicleDataResult));
expect(testResponse.speed).to(equal(vehicleDataResult));
expect(testResponse.steeringWheelAngle).to(equal(vehicleDataResult));
expect(testResponse.tirePressure).to(equal(vehicleDataResult));
expect(testResponse.turnSignal).to(equal(vehicleDataResult));
expect(testResponse.windowStatus).to(equal(vehicleDataResult));
expect(testResponse.wiperStatus).to(equal(vehicleDataResult));
+ expect(testResponse.climateData).to(equal(vehicleDataResult));
});
});
diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClimateDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClimateDataSpec.m
new file mode 100644
index 000000000..22056d2da
--- /dev/null
+++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClimateDataSpec.m
@@ -0,0 +1,73 @@
+//
+// SDLClimateControlDataSpec.m
+// SmartDeviceLink-iOS
+//
+
+#import <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#import "SDLClimateData.h"
+#import "SDLTemperature.h"
+#import "SDLDefrostZone.h"
+#import "SDLVentilationMode.h"
+#import "SDLRPCParameterNames.h"
+
+QuickSpecBegin(SDLClimateDataSpec)
+
+describe(@"Getter/Setter Tests", ^{
+ SDLTemperature *externalTemperature = [[SDLTemperature alloc] init];
+ SDLTemperature *cabinTemperature = [[SDLTemperature alloc] init];
+ NSNumber<SDLFloat> *atmosphericPressure = @(123.45);
+
+ context(@"allocate new struct", ^{
+ SDLClimateData* testStruct = [[SDLClimateData alloc] init];
+
+ it(@"expect all values to be nil", ^{
+ expect(testStruct.externalTemperature).to(beNil());
+ expect(testStruct.cabinTemperature).to(beNil());
+ expect(testStruct.atmosphericPressure).to(beNil());
+ });
+ });
+
+ context(@"allocate and init new struct", ^{
+ SDLClimateData* testStruct = [[SDLClimateData alloc] initWithExternalTemperature:externalTemperature cabinTemperature:cabinTemperature atmosphericPressure:atmosphericPressure];
+
+ it(@"expect all properties to be equal to their initial values", ^{
+ expect(testStruct.externalTemperature).to(equal(externalTemperature));
+ expect(testStruct.cabinTemperature).to(equal(cabinTemperature));
+ expect(testStruct.atmosphericPressure).to(equal(atmosphericPressure));
+ });
+ });
+
+ context(@"allocate new struct and set it up", ^{
+ SDLClimateData* testStruct = [[SDLClimateData alloc] init];
+ testStruct.externalTemperature = externalTemperature;
+ testStruct.cabinTemperature = cabinTemperature;
+ testStruct.atmosphericPressure = atmosphericPressure;
+
+ it(@"expect all properties to be equal to their initial values", ^{
+ expect(testStruct.externalTemperature).to(equal(externalTemperature));
+ expect(testStruct.cabinTemperature).to(equal(cabinTemperature));
+ expect(testStruct.atmosphericPressure).to(equal(atmosphericPressure));
+ });
+ });
+
+ context(@"allocate and init new struct with a dictionary", ^{
+ NSDictionary *dict = @{
+ SDLRPCParameterNameExternalTemperature: externalTemperature,
+ SDLRPCParameterNameCabinTemperature: cabinTemperature,
+ SDLRPCParameterNameAtmosphericPressure: atmosphericPressure,
+ };
+ SDLClimateData* testStruct = [[SDLClimateData alloc] initWithDictionary:dict];
+
+ it(@"expect all properties to be equal to their initial values", ^{
+ expect(testStruct.externalTemperature).to(equal(externalTemperature));
+ expect(testStruct.cabinTemperature).to(equal(cabinTemperature));
+ expect(testStruct.atmosphericPressure).to(equal(atmosphericPressure));
+ });
+ });
+});
+
+QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSeekStreamingIndicatorSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSeekStreamingIndicatorSpec.m
new file mode 100644
index 000000000..e47a77392
--- /dev/null
+++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSeekStreamingIndicatorSpec.m
@@ -0,0 +1,79 @@
+//
+// SDLSeekStreamingIndicatorSpec.m
+// SmartDeviceLinkTests
+//
+// Created by Frank Elias on 12/8/20.
+// Copyright © 2020 smartdevicelink. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#import "SDLRPCParameterNames.h"
+#import "SDLSeekIndicatorType.h"
+#import "SDLSeekStreamingIndicator.h"
+
+QuickSpecBegin(SDLSeekStreamingIndicatorSpec)
+
+describe(@"Getter/Setter Tests", ^ {
+ __block NSNumber<SDLUInt> *testSeekTime = nil;
+ __block SDLSeekIndicatorType testSeekIndicatorType = nil;
+
+ beforeEach(^{
+ testSeekTime = [[NSNumber alloc] initWithInt:10.0];
+ testSeekIndicatorType = SDLSeekIndicatorTypeTime;
+ });
+
+ it(@"Should set and get correctly", ^ {
+ SDLSeekStreamingIndicator *testStruct = [[SDLSeekStreamingIndicator alloc] init];
+
+ testStruct.seekTime = testSeekTime;
+ testStruct.type = testSeekIndicatorType;
+
+ expect(testStruct.seekTime).to(equal([[NSNumber alloc] initWithInt:10.0]));
+ expect(testStruct.type).to(equal(SDLSeekIndicatorTypeTime));
+ });
+
+ it(@"Should get correctly when initialized", ^ {
+ NSDictionary *dict = @{
+ SDLRPCParameterNameSeekTime: testSeekTime,
+ SDLRPCParameterNameType: testSeekIndicatorType
+ };
+ SDLSeekStreamingIndicator* testStruct = [[SDLSeekStreamingIndicator alloc] initWithDictionary:dict];
+
+ expect(testStruct.seekTime).to(equal([[NSNumber alloc] initWithInt:10.0]));
+ expect(testStruct.type).to(equal(SDLSeekIndicatorTypeTime));
+ });
+
+ it(@"Should set with initWithType: correctly", ^ {
+ SDLSeekStreamingIndicator *testStruct = [[SDLSeekStreamingIndicator alloc] initWithType:testSeekIndicatorType];
+
+ expect(testStruct.seekTime).to(beNil());
+ expect(testStruct.type).to(equal(SDLSeekIndicatorTypeTime));
+ });
+
+ it(@"Should set with initWithType:seekTime: correctly", ^ {
+ SDLSeekStreamingIndicator *testStruct = [[SDLSeekStreamingIndicator alloc] initWithType:testSeekIndicatorType seekTime:testSeekTime];
+
+ expect(testStruct.seekTime).to(equal([[NSNumber alloc] initWithInt:10.0]));
+ expect(testStruct.type).to(equal(SDLSeekIndicatorTypeTime));
+ });
+
+ it(@"Should set with initWithType:seekTime: correctly", ^ {
+ SDLSeekStreamingIndicator *testStruct = [SDLSeekStreamingIndicator seekIndicatorWithSeekTime:testSeekTime];
+
+ expect(testStruct.seekTime).to(equal([[NSNumber alloc] initWithInt:10.0]));
+ expect(testStruct.type).to(equal(SDLSeekIndicatorTypeTime));
+ });
+
+ it(@"Should return nil if not set", ^ {
+ SDLSeekStreamingIndicator *testStruct = [[SDLSeekStreamingIndicator alloc] init];
+
+ expect(testStruct.seekTime).to(beNil());
+ expect(testStruct.type).to(beNil());
+ });
+});
+
+QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSystemCapabilitySpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSystemCapabilitySpec.m
index 0e3fc67f4..453076aa2 100755
--- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSystemCapabilitySpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSystemCapabilitySpec.m
@@ -37,7 +37,7 @@ describe(@"Getter/Setter Tests", ^ {
testNavigationCapability = [[SDLNavigationCapability alloc] initWithSendLocation:YES waypoints:NO];
testPhoneCapability = [[SDLPhoneCapability alloc] initWithDialNumber:YES];
testRemoteControlCapabilities = [[SDLRemoteControlCapabilities alloc] initWithClimateControlCapabilities:nil radioControlCapabilities:nil buttonCapabilities:nil seatControlCapabilities:nil audioControlCapabilities:nil hmiSettingsControlCapabilities:nil lightControlCapabilities:nil];
- testVideoStreamingCapability = [[SDLVideoStreamingCapability alloc] initWithPreferredResolution:[[SDLImageResolution alloc] initWithWidth:50 height:50] maxBitrate:5 supportedFormats:@[] hapticDataSupported:false diagonalScreenSize:23 pixelPerInch:119 scale:1.4];
+ testVideoStreamingCapability = [[SDLVideoStreamingCapability alloc] initWithPreferredResolution:[[SDLImageResolution alloc] initWithWidth:50 height: 50] maxBitrate:@(5) supportedFormats:@[] hapticSpatialDataSupported:@(false) diagonalScreenSize:@(23) pixelPerInch:@(119) scale:@(1.4) preferredFPS:@(15)];
testSeatLocationCapability = [[SDLSeatLocationCapability alloc] init];
testDriverDistractionCapability = [[SDLDriverDistractionCapability alloc] initWithMenuLength:@2 subMenuDepth:@4];
});
@@ -158,7 +158,7 @@ describe(@"Getter/Setter Tests", ^ {
NSArray<SDLVideoStreamingFormat *> *formatArray = @[format1, format2];
- SDLVideoStreamingCapability *testVidStruct = [[SDLVideoStreamingCapability alloc] initWithPreferredResolution:resolution maxBitrate:maxBitrate supportedFormats:formatArray hapticDataSupported:hapticDataSupported diagonalScreenSize:45 pixelPerInch:112 scale:2.1];
+ SDLVideoStreamingCapability *testVidStruct = [[SDLVideoStreamingCapability alloc] initWithPreferredResolution:resolution maxBitrate:@(maxBitrate) supportedFormats:formatArray hapticSpatialDataSupported:@(hapticDataSupported) diagonalScreenSize:@(45) pixelPerInch:@(112) scale:@(2.1) preferredFPS:@(15)];
SDLSystemCapability *testStruct = [[SDLSystemCapability alloc] initWithVideoStreamingCapability:testVidStruct];
expect(testStruct.systemCapabilityType).to(equal(SDLSystemCapabilityTypeVideoStreaming));
diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVideoStreamingCapabilitySpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVideoStreamingCapabilitySpec.m
index e4d08951c..aefe08ad3 100644
--- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVideoStreamingCapabilitySpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVideoStreamingCapabilitySpec.m
@@ -28,6 +28,7 @@ describe(@"Initialization tests", ^{
__block float testDiagonalScreenSize = 22.45;
__block float testPixelPerInch = 96.122;
__block float testScale = 2.1;
+ __block uint testPreferredFPS = 15;
beforeEach(^{
testPreferredResolution = [[SDLImageResolution alloc] initWithWidth:600 height:500];
@@ -50,7 +51,8 @@ describe(@"Initialization tests", ^{
SDLRPCParameterNameHapticSpatialDataSupported: @(testHapticDataSupported),
SDLRPCParameterNameDiagonalScreenSize: @(testDiagonalScreenSize),
SDLRPCParameterNamePixelPerInch: @(testPixelPerInch),
- SDLRPCParameterNameScale: @(testScale)};
+ SDLRPCParameterNameScale: @(testScale),
+ SDLRPCParameterNamePreferredFPS: @(testPreferredFPS)};
SDLVideoStreamingCapability* testStruct = [[SDLVideoStreamingCapability alloc] initWithDictionary:dict];
@@ -61,6 +63,7 @@ describe(@"Initialization tests", ^{
expect(testStruct.diagonalScreenSize).to(equal(testDiagonalScreenSize));
expect(testStruct.pixelPerInch).to(equal(testPixelPerInch));
expect(testStruct.scale).to(equal(testScale));
+ expect(testStruct.preferredFPS).to(equal(testPreferredFPS));
});
it(@"Should return nil if not set", ^ {
@@ -73,10 +76,14 @@ describe(@"Initialization tests", ^{
expect(testStruct.diagonalScreenSize).to(beNil());
expect(testStruct.pixelPerInch).to(beNil());
expect(testStruct.scale).to(beNil());
+ expect(testStruct.preferredFPS).to(beNil());
});
it(@"Should initialize correctly with initWithPreferredResolution:maxBitrate:supportedFormats:hapticDataSupported:diagonalScreenSize:pixelPerInch:scale", ^ {
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
SDLVideoStreamingCapability *testStruct = [[SDLVideoStreamingCapability alloc] initWithPreferredResolution:testPreferredResolution maxBitrate:testMaxBitrate supportedFormats:testVideoStreamingFormats hapticDataSupported:testHapticDataSupported diagonalScreenSize:testDiagonalScreenSize pixelPerInch:testPixelPerInch scale:testScale];
+#pragma clang diagnostic pop
expect(testStruct.preferredResolution).to(equal(testPreferredResolution));
expect(testStruct.maxBitrate).to(equal(testMaxBitrate));
@@ -85,6 +92,20 @@ describe(@"Initialization tests", ^{
expect(testStruct.diagonalScreenSize).to(equal(testDiagonalScreenSize));
expect(testStruct.pixelPerInch).to(equal(testPixelPerInch));
expect(testStruct.scale).to(equal(testScale));
+ expect(testStruct.preferredFPS).to(beNil());
+ });
+
+ it(@"Should initialize correctly with initWithPreferredResolution:maxBitrate:supportedFormats:hapticDataSupported:diagonalScreenSize:pixelPerInch:scale:preferredFPS", ^ {
+ SDLVideoStreamingCapability *testStruct = [[SDLVideoStreamingCapability alloc] initWithPreferredResolution:testPreferredResolution maxBitrate:@(testMaxBitrate) supportedFormats:testVideoStreamingFormats hapticSpatialDataSupported:@(testHapticDataSupported) diagonalScreenSize:@(testDiagonalScreenSize) pixelPerInch:@(testPixelPerInch) scale:@(testScale) preferredFPS:@(testPreferredFPS)];
+
+ expect(testStruct.preferredResolution).to(equal(testPreferredResolution));
+ expect(testStruct.maxBitrate).to(equal(testMaxBitrate));
+ expect(testStruct.supportedFormats).to(equal(testVideoStreamingFormats));
+ expect(testStruct.hapticSpatialDataSupported).to(equal(testHapticDataSupported));
+ expect(testStruct.diagonalScreenSize).to(equal(testDiagonalScreenSize));
+ expect(testStruct.pixelPerInch).to(equal(testPixelPerInch));
+ expect(testStruct.scale).to(equal(testScale));
+ expect(testStruct.preferredFPS).to(equal(testPreferredFPS));
});
});
diff --git a/SmartDeviceLinkTests/SDLSystemCapabilityManagerSpec.m b/SmartDeviceLinkTests/SDLSystemCapabilityManagerSpec.m
index 4afa389d2..30c6dc23d 100644
--- a/SmartDeviceLinkTests/SDLSystemCapabilityManagerSpec.m
+++ b/SmartDeviceLinkTests/SDLSystemCapabilityManagerSpec.m
@@ -536,7 +536,7 @@ describe(@"System capability manager", ^{
it(@"should should save the capabilities", ^{
// All the text fields and image fields should be available
- expect(testSystemCapabilityManager.defaultMainWindowCapability.textFields).to(haveCount(29));
+ expect(testSystemCapabilityManager.defaultMainWindowCapability.textFields).to(haveCount(31));
expect(testSystemCapabilityManager.defaultMainWindowCapability.imageFields).to(haveCount(14));
});
});
diff --git a/carthage-build.sh b/carthage-build.sh
index c50df1cba..c50df1cba 100644..100755
--- a/carthage-build.sh
+++ b/carthage-build.sh
diff --git a/generator/rpc_spec b/generator/rpc_spec
-Subproject 762489ca140f246923e8bb8f54e96364e9d0101
+Subproject 1a8d4a28ebdf4410a63e22ce7a1792d9e5cd7e4