diff options
author | Frank Elias <francois.elias@livio.io> | 2021-02-18 09:21:54 -0500 |
---|---|---|
committer | Frank Elias <francois.elias@livio.io> | 2021-02-18 09:21:54 -0500 |
commit | 898d72cb67048a78611d782e602b915262b47694 (patch) | |
tree | 25908bd1e1a4e4d46f9f73b665fa5bc86c5d120e | |
parent | 35f9b9a9733e0e0b450095c2f636d815fb09f49c (diff) | |
parent | 0f8d0990dd18b4d8a0f78d2ed606da9588ddce8f (diff) | |
download | sdl_ios-898d72cb67048a78611d782e602b915262b47694.tar.gz |
Merge branch 'develop' into feature/issue-1510-SDL-0267-main-menu-ui-updates
# Conflicts:
# SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTextFieldNameSpec.m
43 files changed, 758 insertions, 213 deletions
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 f4ac10df6..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 seatOccupancy:@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 a1e72c469..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), seatOccupancy: 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 c45bbdcb8..04d451b0e 100644 --- a/SmartDeviceLink-iOS.xcodeproj/project.pbxproj +++ b/SmartDeviceLink-iOS.xcodeproj/project.pbxproj @@ -1664,6 +1664,8 @@ 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 */; }; + 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 */; }; @@ -1685,6 +1687,7 @@ 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 */; }; @@ -3513,6 +3516,8 @@ 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>"; }; + 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>"; }; @@ -3534,6 +3539,7 @@ 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>"; }; @@ -4018,6 +4024,7 @@ 162E82941A9BDE8A00906325 /* SDLChoiceSpec.m */, 1EE8C43F1F348D3200FDC2CF /* SDLClimateControlCapabilitiesSpec.m */, 1EE8C4431F34A1B900FDC2CF /* SDLClimateControlDataSpec.m */, + B3EC9E6D2579AA010039F3AA /* SDLClimateDataSpec.m */, 885468372225CBA400994D8D /* SDLCloudAppPropertiesSpec.m */, 162E82951A9BDE8A00906325 /* SDLClusterModeStatusSpec.m */, DA9F7EB31DCC086400ACAE48 /* SDLDateTimeSpec.m */, @@ -5062,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 */, @@ -6963,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 */, @@ -8267,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 */, @@ -8494,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 */, diff --git a/SmartDeviceLink/private/SDLRPCParameterNames.h b/SmartDeviceLink/private/SDLRPCParameterNames.h index 3cf99a7ed..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; @@ -118,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; @@ -142,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; diff --git a/SmartDeviceLink/private/SDLRPCParameterNames.m b/SmartDeviceLink/private/SDLRPCParameterNames.m index 527331bcf..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"; @@ -117,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"; @@ -137,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"; diff --git a/SmartDeviceLink/private/SDLStreamingVideoLifecycleManager.m b/SmartDeviceLink/private/SDLStreamingVideoLifecycleManager.m index 18c59d357..d2b5490ee 100644 --- a/SmartDeviceLink/private/SDLStreamingVideoLifecycleManager.m +++ b/SmartDeviceLink/private/SDLStreamingVideoLifecycleManager.m @@ -415,14 +415,17 @@ 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) { - if ([(NSString *)key isEqualToString:(__bridge NSString *)kVTCompressionPropertyKey_ExpectedFrameRate]) { - NSNumber *customEncoderSettingsFPS = (NSNumber *)[self.customEncoderSettings valueForKey:key]; - NSNumber *videoEncoderSettingsFPS = (NSNumber *)[self.videoEncoderSettings valueForKey:key]; - // do NOT override framerate if custom setting is higher than current setting. - if (customEncoderSettingsFPS < videoEncoderSettingsFPS) { - self.videoEncoderSettings[key] = customEncoderSettingsFPS; + // 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]; 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 57577e211..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:seatOccupancy: 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,7 @@ 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 __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:seatOccupancy: instead"); +- (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. @@ -100,7 +100,7 @@ NS_ASSUME_NONNULL_BEGIN * @param rpm - rpm * @param instantFuelConsumption - instantFuelConsumption * @param fuelRange - fuelRange - * @param externalTemperature - externalTemperature + * @param climateData - climateData * @param turnSignal - turnSignal * @param vin - vin * @param gearStatus - gearStatus @@ -127,9 +127,8 @@ NS_ASSUME_NONNULL_BEGIN * @param handsOffSteering - handsOffSteering * @param windowStatus - windowStatus * @param seatOccupancy - seatOccupancy - * @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 seatOccupancy:(nullable NSNumber<SDLBool> *)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 @@ -174,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> *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; +@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. diff --git a/SmartDeviceLink/public/SDLGetVehicleData.m b/SmartDeviceLink/public/SDLGetVehicleData.m index 4ac8cd55f..30d1728c0 100644 --- a/SmartDeviceLink/public/SDLGetVehicleData.m +++ b/SmartDeviceLink/public/SDLGetVehicleData.m @@ -24,23 +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 seatOccupancy: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 { - return [self initWithGps:gps speed:speed rpm:rpm instantFuelConsumption:instantFuelConsumption fuelRange:fuelRange 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 seatOccupancy:nil]; + 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 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 seatOccupancy:(nullable NSNumber<SDLBool> *)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 { self = [self init]; if (!self) { return nil; @@ -50,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; @@ -74,8 +82,8 @@ 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; } @@ -136,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]; } diff --git a/SmartDeviceLink/public/SDLGetVehicleDataResponse.h b/SmartDeviceLink/public/SDLGetVehicleDataResponse.h index c7fe39119..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; @@ -27,7 +28,6 @@ @class SDLTireStatus; @class SDLWindowStatus; - /** * Response to SDLGetVehicleData * @@ -74,7 +74,7 @@ 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 __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:seatOccupancy: instead"); +- (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. @@ -84,7 +84,7 @@ NS_ASSUME_NONNULL_BEGIN * @param rpm - rpm * @param instantFuelConsumption - instantFuelConsumption * @param fuelRange - fuelRange - * @param externalTemperature - externalTemperature + * @param climateData - climateData * @param turnSignal - turnSignal * @param vin - vin * @param gearStatus - gearStatus @@ -108,12 +108,12 @@ NS_ASSUME_NONNULL_BEGIN * @param emergencyEvent - emergencyEvent * @param clusterModeStatus - clusterModeStatus * @param myKey - myKey - * @param handsOffSteering - handsOffSteering * @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 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 seatOccupancy:(nullable SDLSeatOccupancy *)seatOccupancy; +- (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 @@ -160,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) 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 diff --git a/SmartDeviceLink/public/SDLGetVehicleDataResponse.m b/SmartDeviceLink/public/SDLGetVehicleDataResponse.m index 35afb0311..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" @@ -40,10 +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 { - return [self initWithGps:gps speed:speed rpm:rpm instantFuelConsumption:instantFuelConsumption fuelRange:fuelRange 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 seatOccupancy:nil]; + + 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 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 seatOccupancy:(nullable SDLSeatOccupancy *)seatOccupancy { +- (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; @@ -53,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; @@ -77,8 +86,8 @@ 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; } @@ -148,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]; } diff --git a/SmartDeviceLink/public/SDLOnVehicleData.h b/SmartDeviceLink/public/SDLOnVehicleData.h index 157b94ff8..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; @@ -74,17 +75,17 @@ 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 __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:seatOccupancy: instead"); +- (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 speed - speed * @param rpm - rpm - * @param instantFuelConsumption - @(instantFuelConsumption) + * @param instantFuelConsumption - instantFuelConsumption * @param fuelRange - fuelRange - * @param externalTemperature - @(externalTemperature) + * @param climateData - climateData * @param turnSignal - turnSignal * @param vin - vin * @param gearStatus - gearStatus @@ -96,10 +97,10 @@ NS_ASSUME_NONNULL_BEGIN * @param driverBraking - driverBraking * @param wiperStatus - wiperStatus * @param headLampStatus - headLampStatus - * @param engineTorque - @(engineTorque) - * @param accPedalPosition - @(accPedalPosition) - * @param steeringWheelAngle - @(steeringWheelAngle) - * @param engineOilLife - @(engineOilLife) + * @param engineTorque - engineTorque + * @param accPedalPosition - accPedalPosition + * @param steeringWheelAngle - steeringWheelAngle + * @param engineOilLife - engineOilLife * @param electronicParkBrakeStatus - electronicParkBrakeStatus * @param cloudAppVehicleID - cloudAppVehicleID * @param stabilityControlsStatus - stabilityControlsStatus @@ -108,12 +109,12 @@ NS_ASSUME_NONNULL_BEGIN * @param emergencyEvent - emergencyEvent * @param clusterModeStatus - clusterModeStatus * @param myKey - myKey - * @param handsOffSteering - handsOffSteering * @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 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 seatOccupancy:(nullable SDLSeatOccupancy *)seatOccupancy; +- (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 @@ -160,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 diff --git a/SmartDeviceLink/public/SDLOnVehicleData.m b/SmartDeviceLink/public/SDLOnVehicleData.m index 526aac6fb..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" @@ -39,10 +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 { - return [self initWithGps:gps speed:speed rpm:rpm instantFuelConsumption:instantFuelConsumption fuelRange:fuelRange 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 seatOccupancy:nil]; + 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 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 seatOccupancy:(nullable SDLSeatOccupancy *)seatOccupancy { +- (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; @@ -52,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; @@ -76,8 +84,8 @@ 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; } @@ -147,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]; } diff --git a/SmartDeviceLink/public/SDLSubscribeVehicleData.h b/SmartDeviceLink/public/SDLSubscribeVehicleData.h index e0fc21dff..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:seatOccupancy: 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,7 @@ 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 __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:seatOccupancy: instead"); +- (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. @@ -100,7 +100,7 @@ NS_ASSUME_NONNULL_BEGIN * @param rpm - rpm * @param instantFuelConsumption - instantFuelConsumption * @param fuelRange - fuelRange - * @param externalTemperature - externalTemperature + * @param climateData - climateData * @param turnSignal - turnSignal * @param gearStatus - gearStatus * @param tirePressure - tirePressure @@ -123,12 +123,12 @@ NS_ASSUME_NONNULL_BEGIN * @param emergencyEvent - emergencyEvent * @param clusterModeStatus - clusterModeStatus * @param myKey - myKey - * @param handsOffSteering - handsOffSteering * @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 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 seatOccupancy:(nullable NSNumber<SDLBool> *)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 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 @@ -173,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 (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 (strong, nonatomic, nullable) NSNumber<SDLBool> *externalTemperature; +@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` diff --git a/SmartDeviceLink/public/SDLSubscribeVehicleData.m b/SmartDeviceLink/public/SDLSubscribeVehicleData.m index b7a808066..d63fe65e6 100644 --- a/SmartDeviceLink/public/SDLSubscribeVehicleData.m +++ b/SmartDeviceLink/public/SDLSubscribeVehicleData.m @@ -24,23 +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 seatOccupancy: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 { - return [self initWithGps:gps speed:speed rpm:rpm instantFuelConsumption:instantFuelConsumption fuelRange:fuelRange externalTemperature:externalTemperature 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 handsOffSteering:handsOffSteering windowStatus:windowStatus seatOccupancy:nil]; + 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 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 seatOccupancy:(nullable NSNumber<SDLBool> *)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 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; @@ -50,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; @@ -73,8 +82,8 @@ 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; } @@ -143,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]; } diff --git a/SmartDeviceLink/public/SDLSubscribeVehicleDataResponse.h b/SmartDeviceLink/public/SDLSubscribeVehicleDataResponse.h index 8cab3cbda..de02ed1ef 100644 --- a/SmartDeviceLink/public/SDLSubscribeVehicleDataResponse.h +++ b/SmartDeviceLink/public/SDLSubscribeVehicleDataResponse.h @@ -51,7 +51,8 @@ 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 __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:clusterModes:myKey:handsOffSteering:windowStatus:seatOccupancy: instead"); +- (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. @@ -61,7 +62,7 @@ NS_ASSUME_NONNULL_BEGIN * @param rpm - rpm * @param instantFuelConsumption - instantFuelConsumption * @param fuelRange - fuelRange - * @param externalTemperature - externalTemperature + * @param climateData - climateData * @param turnSignal - turnSignal * @param gearStatus - gearStatus * @param tirePressure - tirePressure @@ -84,12 +85,12 @@ NS_ASSUME_NONNULL_BEGIN * @param emergencyEvent - emergencyEvent * @param clusterModes - clusterModes * @param myKey - myKey - * @param handsOffSteering - handsOffSteering * @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 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 seatOccupancy:(nullable SDLVehicleDataResult *)seatOccupancy; +- (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 @@ -148,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` diff --git a/SmartDeviceLink/public/SDLSubscribeVehicleDataResponse.m b/SmartDeviceLink/public/SDLSubscribeVehicleDataResponse.m index d97df588b..3ee8eab91 100644 --- a/SmartDeviceLink/public/SDLSubscribeVehicleDataResponse.m +++ b/SmartDeviceLink/public/SDLSubscribeVehicleDataResponse.m @@ -25,11 +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 externalTemperature:externalTemperature 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 handsOffSteering:handsOffSteering windowStatus:windowStatus seatOccupancy:nil]; + + 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 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 seatOccupancy:(nullable SDLVehicleDataResult *)seatOccupancy { +- (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; @@ -39,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; @@ -62,8 +69,8 @@ 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; } @@ -132,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]; } diff --git a/SmartDeviceLink/public/SDLTextFieldName.h b/SmartDeviceLink/public/SDLTextFieldName.h index 5ded68a0d..593c8b26e 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 95587827e..d02826ca2 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 420c08712..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:windowStatus:handsOffSteering:seatOccupancy: 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,16 +92,17 @@ 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 __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:windowStatus:handsOffSteering:seatOccupancy: instead"); - +- (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 externalTemperature - externalTemperature + * @param climateData - climateData * @param turnSignal - turnSignal * @param gearStatus - gearStatus * @param tirePressure - tirePressure @@ -124,12 +125,12 @@ NS_ASSUME_NONNULL_BEGIN * @param emergencyEvent - emergencyEvent * @param clusterModeStatus - clusterModeStatus * @param myKey - myKey - * @param handsOffSteering - handsOffSteering * @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 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 seatOccupancy:(nullable NSNumber<SDLBool> *)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 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 @@ -174,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 (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 (strong, nonatomic, nullable) NSNumber<SDLBool> *externalTemperature; +@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` diff --git a/SmartDeviceLink/public/SDLUnsubscribeVehicleData.m b/SmartDeviceLink/public/SDLUnsubscribeVehicleData.m index 901db6c12..569d5bcfb 100644 --- a/SmartDeviceLink/public/SDLUnsubscribeVehicleData.m +++ b/SmartDeviceLink/public/SDLUnsubscribeVehicleData.m @@ -23,24 +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 seatOccupancy: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 { - return [self initWithGps:gps speed:speed rpm:rpm instantFuelConsumption:instantFuelConsumption fuelRange:fuelRange externalTemperature:externalTemperature 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 handsOffSteering:windowStatus windowStatus:windowStatus seatOccupancy:nil]; + 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 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 seatOccupancy:(nullable NSNumber<SDLBool> *)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 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; @@ -50,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; @@ -73,8 +81,8 @@ 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; } @@ -143,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]; } diff --git a/SmartDeviceLink/public/SDLUnsubscribeVehicleDataResponse.h b/SmartDeviceLink/public/SDLUnsubscribeVehicleDataResponse.h index ee53d9b28..1d5c1ae81 100644 --- a/SmartDeviceLink/public/SDLUnsubscribeVehicleDataResponse.h +++ b/SmartDeviceLink/public/SDLUnsubscribeVehicleDataResponse.h @@ -50,7 +50,7 @@ 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 __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:clusterModes:myKey:handsOffSteering:windowStatus:seatOccupancy: instead"); +- (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. @@ -60,7 +60,7 @@ NS_ASSUME_NONNULL_BEGIN * @param rpm - rpm * @param instantFuelConsumption - instantFuelConsumption * @param fuelRange - fuelRange - * @param externalTemperature - externalTemperature + * @param climateData - climateData * @param turnSignal - turnSignal * @param gearStatus - gearStatus * @param tirePressure - tirePressure @@ -83,12 +83,12 @@ NS_ASSUME_NONNULL_BEGIN * @param emergencyEvent - emergencyEvent * @param clusterModes - clusterModes * @param myKey - myKey - * @param handsOffSteering - handsOffSteering * @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 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 seatOccupancy:(nullable SDLVehicleDataResult *)seatOccupancy; +- (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 @@ -147,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` diff --git a/SmartDeviceLink/public/SDLUnsubscribeVehicleDataResponse.m b/SmartDeviceLink/public/SDLUnsubscribeVehicleDataResponse.m index 71afb77a7..5fd1af7b5 100644 --- a/SmartDeviceLink/public/SDLUnsubscribeVehicleDataResponse.m +++ b/SmartDeviceLink/public/SDLUnsubscribeVehicleDataResponse.m @@ -25,10 +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 { - return [self initWithGps:gps speed:speed rpm:rpm instantFuelConsumption:instantFuelConsumption fuelRange:fuelRange externalTemperature:externalTemperature 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 handsOffSteering:handsOffSteering windowStatus:windowStatus seatOccupancy:nil]; + 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 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 seatOccupancy:(nullable SDLVehicleDataResult *)seatOccupancy { +- (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; @@ -38,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; @@ -61,8 +68,8 @@ 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; } @@ -132,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]; } diff --git a/SmartDeviceLink/public/SDLVehicleDataType.h b/SmartDeviceLink/public/SDLVehicleDataType.h index 6df7349e0..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 diff --git a/SmartDeviceLink/public/SDLVehicleDataType.m b/SmartDeviceLink/public/SDLVehicleDataType.m index c8f5e49f6..a78eca1ca 100644 --- a/SmartDeviceLink/public/SDLVehicleDataType.m +++ b/SmartDeviceLink/public/SDLVehicleDataType.m @@ -37,6 +37,7 @@ 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"; diff --git a/SmartDeviceLink/public/SmartDeviceLink.h b/SmartDeviceLink/public/SmartDeviceLink.h index d5689ed17..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" 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/RPCSpecs/EnumSpecs/SDLTextFieldNameSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTextFieldNameSpec.m index 9b204ba45..b9827e75c 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")); expect(SDLTextFieldNameMenuCommandSecondaryText).to(equal(@"menuCommandSecondaryText")); expect(SDLTextFieldNameMenuCommandTertiaryText).to(equal(@"menuCommandTertiaryText")); expect(SDLTextFieldNameMenuSubMenuSecondaryText).to(equal(@"menuSubMenuSecondaryText")); diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVehicleDataTypeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVehicleDataTypeSpec.m index 43b6f3207..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,7 @@ 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")); diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnVehicleDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnVehicleDataSpec.m index f2e49fec6..4b7857312 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnVehicleDataSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnVehicleDataSpec.m @@ -49,6 +49,7 @@ 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", ^{ @@ -67,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 @@ -95,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))); @@ -110,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 @@ -138,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)); }); }); @@ -185,6 +188,7 @@ describe(@"getter/setter tests", ^{ SDLRPCParameterNameVIN:vin, SDLRPCParameterNameWindowStatus:windowStatus, SDLRPCParameterNameWiperStatus:wiperStatus, + SDLRPCParameterNameClimateData:climateData, }, SDLRPCParameterNameOperationName:SDLRPCFunctionNameOnVehicleData}}; SDLOnVehicleData* testResponse = [[SDLOnVehicleData alloc] initWithDictionary:dict]; @@ -203,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 @@ -231,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)); }); }); @@ -250,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 @@ -278,14 +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:", ^{ + __block SDLOnVehicleData *testResponse = nil; + + beforeEach(^{ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" - 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]; + 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))); @@ -301,9 +311,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(beNil()); expect(testResponse.fuelLevel_State).to(beNil()); #pragma clang diagnostic pop @@ -332,17 +342,14 @@ describe(@"getter/setter tests", ^{ }); }); - 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:", ^{ + 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 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 seatOccupancy:seatOccupancy]; - }); - afterEach(^{ - testResponse = nil; + 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).notTo(beNil()); expect(testResponse.accPedalPosition).to(equal(@(accPedalPosition))); expect(testResponse.airbagStatus).to(equal(airbagStatus)); expect(testResponse.beltStatus).to(equal(beltStatus)); @@ -356,9 +363,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(beNil()); expect(testResponse.fuelLevel).to(beNil()); expect(testResponse.fuelLevel_State).to(beNil()); #pragma clang diagnostic pop @@ -384,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 7e452540e..c2b0b3681 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetVehicleDataSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetVehicleDataSpec.m @@ -16,47 +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.seatOccupancy = @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)); @@ -72,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 @@ -99,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, @@ -145,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)); @@ -163,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 @@ -190,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()); @@ -211,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 @@ -238,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)); @@ -261,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 @@ -288,14 +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:", ^{ + __block SDLGetVehicleData *testRequest = nil; + + beforeEach(^{ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" - 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]; + 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)); @@ -311,9 +337,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(beNil()); expect(testRequest.fuelLevel_State).to(beNil()); #pragma clang diagnostic pop @@ -338,11 +364,16 @@ describe(@"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: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:", ^{ - 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 seatOccupancy:@YES]; + 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)); @@ -358,9 +389,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(beNil()); expect(testRequest.fuelLevel).to(beNil()); expect(testRequest.fuelLevel_State).to(beNil()); #pragma clang diagnostic pop @@ -385,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/SDLSubscribeVehicleDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSubscribeVehicleDataSpec.m index 64e99235a..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 @@ -57,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)); @@ -72,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 @@ -99,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)); }); }); @@ -145,6 +147,7 @@ describe(@"getter/setter tests", ^{ SDLRPCParameterNameTurnSignal:@YES, SDLRPCParameterNameWindowStatus:@YES, SDLRPCParameterNameWiperStatus:@YES, + SDLRPCParameterNameClimateData:@YES, }, SDLRPCParameterNameOperationName:SDLRPCFunctionNameSubscribeVehicleData}}; SDLSubscribeVehicleData* testRequest = [[SDLSubscribeVehicleData alloc] initWithDictionary:dict]; @@ -163,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 @@ -190,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)); }); }); }); @@ -212,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 @@ -239,6 +243,7 @@ describe(@"test initializers", ^{ expect(testRequest.turnSignal).to(beNil()); expect(testRequest.windowStatus).to(beNil()); expect(testRequest.wiperStatus).to(beNil()); + expect(testRequest.climateData).to(beNil()); }); }); @@ -262,9 +267,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 pop @@ -289,6 +294,7 @@ describe(@"test initializers", ^{ expect(testRequest.turnSignal).to(equal(@YES)); expect(testRequest.windowStatus).to(beNil()); expect(testRequest.wiperStatus).to(equal(@YES)); + expect(testRequest.climateData).to(beNil()); }); }); @@ -312,9 +318,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 pop @@ -339,11 +345,12 @@ 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: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:seatOccupancy:", ^{ - 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 seatOccupancy:@YES]; + 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)); @@ -359,9 +366,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(beNil()); expect(testRequest.fuelLevel).to(beNil()); expect(testRequest.fuelLevel_State).to(beNil()); #pragma clang diagnostic pop @@ -386,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 633882fa3..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 @@ -57,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)); @@ -72,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 @@ -98,6 +99,7 @@ describe(@"getter/setter tests", ^{ expect(testRequest.tirePressure).to(equal(@YES)); expect(testRequest.turnSignal).to(equal(@YES)); expect(testRequest.wiperStatus).to(equal(@YES)); + expect(testRequest.climateData).to(equal(@YES)); }); }); @@ -144,6 +146,7 @@ describe(@"getter/setter tests", ^{ SDLRPCParameterNameTurnSignal:@YES, SDLRPCParameterNameWindowStatus:@YES, SDLRPCParameterNameWiperStatus:@YES, + SDLRPCParameterNameClimateData:@YES, }, SDLRPCParameterNameOperationName:SDLRPCFunctionNameUnsubscribeVehicleData}}; SDLUnsubscribeVehicleData* testRequest = [[SDLUnsubscribeVehicleData alloc] initWithDictionary:dict]; @@ -162,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 @@ -189,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)); }); }); }); @@ -211,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 @@ -238,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()); }); }); @@ -261,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 @@ -287,11 +292,12 @@ describe(@"test initializers", ^{ 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)); @@ -307,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 @@ -334,12 +340,15 @@ 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: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:seatOccupancy:", ^{ - 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 seatOccupancy:@YES]; + 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)); @@ -355,9 +364,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(beNil()); expect(testRequest.fuelLevel).to(beNil()); expect(testRequest.fuelLevel_State).to(beNil()); #pragma clang diagnostic push @@ -382,7 +391,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/ResponseSpecs/SDLGetVehicleDataResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetVehicleDataResponseSpec.m index c76d990c3..2c13dcd80 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetVehicleDataResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetVehicleDataResponseSpec.m @@ -50,6 +50,7 @@ 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", ^{ @@ -68,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 @@ -96,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))); @@ -111,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 @@ -139,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)); }); }); @@ -186,6 +189,7 @@ describe(@"getter/setter tests", ^{ SDLRPCParameterNameVIN:vin, SDLRPCParameterNameWindowStatus:windowStatus, SDLRPCParameterNameWiperStatus:wiperStatus, + SDLRPCParameterNameClimateData:climateData, }, SDLRPCParameterNameOperationName:SDLRPCFunctionNameGetVehicleData}}; SDLGetVehicleDataResponse* testResponse = [[SDLGetVehicleDataResponse alloc] initWithDictionary:dict]; @@ -204,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 @@ -232,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)); }); }); @@ -251,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 @@ -279,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()); }); }); @@ -298,9 +304,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(beNil()); expect(testResponse.fuelLevel_State).to(beNil()); #pragma clang diagnostic pop @@ -325,12 +331,13 @@ 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(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 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 seatOccupancy:seatOccupancy]; + 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)); @@ -344,9 +351,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(beNil()); expect(testResponse.fuelLevel).to(beNil()); expect(testResponse.fuelLevel_State).to(beNil()); #pragma clang diagnostic pop diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSubscribeVehicleDataResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSubscribeVehicleDataResponseSpec.m index 10a7a34ef..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 @@ -63,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)); @@ -78,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 @@ -105,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)); }); }); @@ -151,6 +153,7 @@ describe(@"getter/setter tests", ^{ SDLRPCParameterNameTurnSignal:vehicleDataResult, SDLRPCParameterNameWindowStatus:vehicleDataResult, SDLRPCParameterNameWiperStatus:vehicleDataResult, + SDLRPCParameterNameClimateData:vehicleDataResult, }, SDLRPCParameterNameOperationName:SDLRPCFunctionNameSubscribeVehicleData}}; @@ -170,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 @@ -197,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)); }); }); @@ -217,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 @@ -244,6 +248,7 @@ describe(@"getter/setter tests", ^{ expect(testResponse.turnSignal).to(beNil()); expect(testResponse.windowStatus).to(beNil()); expect(testResponse.wiperStatus).to(beNil()); + expect(testResponse.climateData).to(beNil()); }); }); @@ -267,9 +272,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(beNil()); expect(testResponse.fuelLevel_State).to(beNil()); #pragma clang diagnostic pop @@ -297,9 +302,10 @@ describe(@"getter/setter tests", ^{ }); }); - 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:seatOccupancy:", ^{ + 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", ^{ - 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 seatOccupancy:vehicleDataResult]; expect(testResponse.accPedalPosition).to(equal(vehicleDataResult)); expect(testResponse.airbagStatus).to(equal(vehicleDataResult)); expect(testResponse.beltStatus).to(equal(vehicleDataResult)); @@ -313,9 +319,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(beNil()); expect(testResponse.fuelLevel).to(beNil()); expect(testResponse.fuelLevel_State).to(beNil()); #pragma clang diagnostic pop @@ -340,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 42296ac64..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 @@ -62,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)); @@ -77,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 @@ -104,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)); }); }); @@ -150,6 +152,7 @@ describe(@"getter/setter tests", ^{ SDLRPCParameterNameTurnSignal:vehicleDataResult, SDLRPCParameterNameWindowStatus:vehicleDataResult, SDLRPCParameterNameWiperStatus:vehicleDataResult, + SDLRPCParameterNameClimateData:vehicleDataResult, }, SDLRPCParameterNameOperationName:SDLRPCFunctionNameUnsubscribeVehicleData}}; SDLUnsubscribeVehicleDataResponse* testResponse = [[SDLUnsubscribeVehicleDataResponse alloc] initWithDictionary:dict]; @@ -195,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)); }); }); @@ -242,10 +246,12 @@ 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:", ^{ + it(@"expect all properties to be set properly", ^{ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" @@ -294,10 +300,13 @@ describe(@"getter/setter tests", ^{ }); }); - 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:seatOccupancy:", ^{ - it(@"expect all properties to be set properly", ^{ - 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 seatOccupancy: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)); @@ -311,9 +320,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(beNil()); expect(testResponse.fuelLevel).to(beNil()); expect(testResponse.fuelLevel_State).to(beNil()); #pragma clang diagnostic pop @@ -337,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/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/SDLVideoStreamingCapabilitySpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVideoStreamingCapabilitySpec.m index 10d9eb40f..aefe08ad3 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVideoStreamingCapabilitySpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVideoStreamingCapabilitySpec.m @@ -80,7 +80,10 @@ describe(@"Initialization tests", ^{ }); 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)); @@ -89,7 +92,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(beNil())); + expect(testStruct.preferredFPS).to(beNil()); }); it(@"Should initialize correctly with initWithPreferredResolution:maxBitrate:supportedFormats:hapticDataSupported:diagonalScreenSize:pixelPerInch:scale:preferredFPS", ^ { 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 |