diff options
author | Justin Gluck <justin.gluck@livio.io> | 2019-07-23 14:45:17 -0400 |
---|---|---|
committer | Justin Gluck <justin.gluck@livio.io> | 2019-07-23 14:45:17 -0400 |
commit | ee10ebf2ffd02432ffaf7f7967c43fcda0bad4cf (patch) | |
tree | d6956026372f85c2b38c88813541a0a3f120a015 | |
parent | b2eb6a5cb3c3fa639a7bf8ca94d327e7286ea450 (diff) | |
parent | c2e9ed14a6a2d2797033780fcf383894bca772fa (diff) | |
download | sdl_ios-feature/issue-1269-Navigation-Subcription-Buttons.tar.gz |
Merge branch 'develop' into feature/issue-1269-Navigation-Subcription-Buttonsfeature/issue-1269-Navigation-Subcription-Buttons
26 files changed, 282 insertions, 31 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 3bcfbf9b8..b780fa9c4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,9 @@ # Changelog +## 6.3.1 +### Bug Fixes +* Fix unregistering for EATransport notifications can interfere with other apps' EATransport notifications (https://www.github.com/smartdevicelink/sdl_ios/issues/1329). +* Fix issues related to the background task running when the device is in the process of making an IAP connection but is in the background (https://www.github.com/smartdevicelink/sdl_ios/issues/1326, https://www.github.com/smartdevicelink/sdl_ios/issues/1327). + ## 6.3.0 ### Versions * Supports [SDL RPC Spec 5.1.0](https://github.com/smartdevicelink/rpc_spec/releases/tag/5.1.0) and [SDL Protocol Spec 5.2.0](https://github.com/smartdevicelink/protocol_spec/releases/tag/5.2.0). diff --git a/Example Apps/Example ObjC/SmartDeviceLink-Example-ObjC-Info.plist b/Example Apps/Example ObjC/SmartDeviceLink-Example-ObjC-Info.plist index db70c2cae..ddf174213 100644 --- a/Example Apps/Example ObjC/SmartDeviceLink-Example-ObjC-Info.plist +++ b/Example Apps/Example ObjC/SmartDeviceLink-Example-ObjC-Info.plist @@ -15,7 +15,7 @@ <key>CFBundlePackageType</key> <string>APPL</string> <key>CFBundleShortVersionString</key> - <string>6.3.0</string> + <string>6.3.1</string> <key>CFBundleSignature</key> <string>????</string> <key>CFBundleVersion</key> diff --git a/Example Apps/Example Swift/SmartDeviceLink-Example-Swift-Info.plist b/Example Apps/Example Swift/SmartDeviceLink-Example-Swift-Info.plist index d3ab6c871..34a7b097a 100644 --- a/Example Apps/Example Swift/SmartDeviceLink-Example-Swift-Info.plist +++ b/Example Apps/Example Swift/SmartDeviceLink-Example-Swift-Info.plist @@ -15,7 +15,7 @@ <key>CFBundlePackageType</key> <string>APPL</string> <key>CFBundleShortVersionString</key> - <string>6.3.0</string> + <string>6.3.1</string> <key>CFBundleSignature</key> <string>????</string> <key>CFBundleVersion</key> diff --git a/SmartDeviceLink-iOS.podspec b/SmartDeviceLink-iOS.podspec index 18cb88576..1b671ed98 100644 --- a/SmartDeviceLink-iOS.podspec +++ b/SmartDeviceLink-iOS.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = "SmartDeviceLink-iOS" -s.version = "6.3.0" +s.version = "6.3.1" s.summary = "Connect your app with cars!" s.homepage = "https://github.com/smartdevicelink/SmartDeviceLink-iOS" s.license = { :type => "New BSD", :file => "LICENSE" } diff --git a/SmartDeviceLink.podspec b/SmartDeviceLink.podspec index 97fe847b5..3270bf26a 100644 --- a/SmartDeviceLink.podspec +++ b/SmartDeviceLink.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = "SmartDeviceLink" -s.version = "6.3.0" +s.version = "6.3.1" s.summary = "Connect your app with cars!" s.homepage = "https://github.com/smartdevicelink/SmartDeviceLink-iOS" s.license = { :type => "New BSD", :file => "LICENSE" } diff --git a/SmartDeviceLink/Info.plist b/SmartDeviceLink/Info.plist index 8761e930d..0e0ef8021 100644 --- a/SmartDeviceLink/Info.plist +++ b/SmartDeviceLink/Info.plist @@ -15,7 +15,7 @@ <key>CFBundlePackageType</key> <string>FMWK</string> <key>CFBundleShortVersionString</key> - <string>6.3.0</string> + <string>6.3.1</string> <key>CFBundleSignature</key> <string>????</string> <key>CFBundleVersion</key> diff --git a/SmartDeviceLink/SDLClimateControlCapabilities.h b/SmartDeviceLink/SDLClimateControlCapabilities.h index 860827967..a8d4035da 100644 --- a/SmartDeviceLink/SDLClimateControlCapabilities.h +++ b/SmartDeviceLink/SDLClimateControlCapabilities.h @@ -13,9 +13,11 @@ NS_ASSUME_NONNULL_BEGIN */ @interface SDLClimateControlCapabilities : SDLRPCStruct -- (instancetype)initWithModuleName:(NSString *)moduleName fanSpeedAvailable:(BOOL)fanSpeedAvailable desiredTemperatureAvailable:(BOOL)desiredTemperatureAvailable acEnableAvailable:(BOOL)acEnableAvailable acMaxEnableAvailable:(BOOL)acMaxEnableAvailable circulateAirAvailable:(BOOL)circulateAirEnableAvailable autoModeEnableAvailable:(BOOL)autoModeEnableAvailable dualModeEnableAvailable:(BOOL)dualModeEnableAvailable defrostZoneAvailable:(BOOL)defrostZoneAvailable ventilationModeAvailable:(BOOL)ventilationModeAvailable __deprecated_msg("Use initWithModuleName:fanSpeedAvailable:desiredTemperatureAvailable:acEnableAvailable:acMaxEnableAvailable:circulateAirAvailable:autoModeEnableAvailable: dualModeEnableAvailable:defrostZoneAvailable:ventilationModeAvailable: heatedSteeringWheelAvailable:heatedWindshieldAvailable: heatedRearWindowAvailable:heatedMirrorsAvailable: instead"); +- (instancetype)initWithModuleName:(NSString *)moduleName fanSpeedAvailable:(BOOL)fanSpeedAvailable desiredTemperatureAvailable:(BOOL)desiredTemperatureAvailable acEnableAvailable:(BOOL)acEnableAvailable acMaxEnableAvailable:(BOOL)acMaxEnableAvailable circulateAirAvailable:(BOOL)circulateAirEnableAvailable autoModeEnableAvailable:(BOOL)autoModeEnableAvailable dualModeEnableAvailable:(BOOL)dualModeEnableAvailable defrostZoneAvailable:(BOOL)defrostZoneAvailable ventilationModeAvailable:(BOOL)ventilationModeAvailable __deprecated_msg("Use initWithModuleName:fanSpeedAvailable:desiredTemperatureAvailable:acEnableAvailable:acMaxEnableAvailable:circulateAirAvailable:autoModeEnableAvailable: dualModeEnableAvailable:defrostZoneAvailable:ventilationModeAvailable: heatedSteeringWheelAvailable:heatedWindshieldAvailable: heatedRearWindowAvailable:heatedMirrorsAvailable: climateEnableAvailable: instead"); -- (instancetype)initWithModuleName:(NSString *)moduleName fanSpeedAvailable:(BOOL)fanSpeedAvailable desiredTemperatureAvailable:(BOOL)desiredTemperatureAvailable acEnableAvailable:(BOOL)acEnableAvailable acMaxEnableAvailable:(BOOL)acMaxEnableAvailable circulateAirAvailable:(BOOL)circulateAirEnableAvailable autoModeEnableAvailable:(BOOL)autoModeEnableAvailable dualModeEnableAvailable:(BOOL)dualModeEnableAvailable defrostZoneAvailable:(BOOL)defrostZoneAvailable ventilationModeAvailable:(BOOL)ventilationModeAvailable heatedSteeringWheelAvailable:(BOOL)heatedSteeringWheelAvailable heatedWindshieldAvailable:(BOOL)heatedWindshieldAvailable heatedRearWindowAvailable:(BOOL)heatedRearWindowAvailable heatedMirrorsAvailable:(BOOL)heatedMirrorsAvailable; +- (instancetype)initWithModuleName:(NSString *)moduleName fanSpeedAvailable:(BOOL)fanSpeedAvailable desiredTemperatureAvailable:(BOOL)desiredTemperatureAvailable acEnableAvailable:(BOOL)acEnableAvailable acMaxEnableAvailable:(BOOL)acMaxEnableAvailable circulateAirAvailable:(BOOL)circulateAirEnableAvailable autoModeEnableAvailable:(BOOL)autoModeEnableAvailable dualModeEnableAvailable:(BOOL)dualModeEnableAvailable defrostZoneAvailable:(BOOL)defrostZoneAvailable ventilationModeAvailable:(BOOL)ventilationModeAvailable heatedSteeringWheelAvailable:(BOOL)heatedSteeringWheelAvailable heatedWindshieldAvailable:(BOOL)heatedWindshieldAvailable heatedRearWindowAvailable:(BOOL)heatedRearWindowAvailable heatedMirrorsAvailable:(BOOL)heatedMirrorsAvailable __deprecated_msg("Use initWithModuleName:fanSpeedAvailable:desiredTemperatureAvailable:acEnableAvailable:acMaxEnableAvailable:circulateAirAvailable:autoModeEnableAvailable: dualModeEnableAvailable:defrostZoneAvailable:ventilationModeAvailable: heatedSteeringWheelAvailable:heatedWindshieldAvailable: heatedRearWindowAvailable:heatedMirrorsAvailable: climateEnableAvailable: instead"); + +- (instancetype)initWithModuleName:(NSString *)moduleName fanSpeedAvailable:(BOOL)fanSpeedAvailable desiredTemperatureAvailable:(BOOL)desiredTemperatureAvailable acEnableAvailable:(BOOL)acEnableAvailable acMaxEnableAvailable:(BOOL)acMaxEnableAvailable circulateAirAvailable:(BOOL)circulateAirEnableAvailable autoModeEnableAvailable:(BOOL)autoModeEnableAvailable dualModeEnableAvailable:(BOOL)dualModeEnableAvailable defrostZoneAvailable:(BOOL)defrostZoneAvailable ventilationModeAvailable:(BOOL)ventilationModeAvailable heatedSteeringWheelAvailable:(BOOL)heatedSteeringWheelAvailable heatedWindshieldAvailable:(BOOL)heatedWindshieldAvailable heatedRearWindowAvailable:(BOOL)heatedRearWindowAvailable heatedMirrorsAvailable:(BOOL)heatedMirrorsAvailable climateEnableAvailable:(BOOL)climateEnableAvailable; /** * The short friendly name of the climate control module. @@ -146,6 +148,14 @@ NS_ASSUME_NONNULL_BEGIN */ @property (nullable, strong, nonatomic) NSNumber<SDLBool> *heatedMirrorsAvailable; +/** + * @abstract Availability of the control of enable/disable climate control. + * True: Available, False: Not Available, Not present: Not Available. + * + * Optional, Boolean + */ +@property (nullable, strong, nonatomic) NSNumber<SDLBool> *climateEnableAvailable; + @end NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLClimateControlCapabilities.m b/SmartDeviceLink/SDLClimateControlCapabilities.m index e2e488a94..199795974 100644 --- a/SmartDeviceLink/SDLClimateControlCapabilities.m +++ b/SmartDeviceLink/SDLClimateControlCapabilities.m @@ -11,11 +11,14 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLClimateControlCapabilities - (instancetype)initWithModuleName:(NSString *)moduleName fanSpeedAvailable:(BOOL)fanSpeedAvailable desiredTemperatureAvailable:(BOOL)desiredTemperatureAvailable acEnableAvailable:(BOOL)acEnableAvailable acMaxEnableAvailable:(BOOL)acMaxEnableAvailable circulateAirAvailable:(BOOL)circulateAirEnableAvailable autoModeEnableAvailable:(BOOL)autoModeEnableAvailable dualModeEnableAvailable:(BOOL)dualModeEnableAvailable defrostZoneAvailable:(BOOL)defrostZoneAvailable ventilationModeAvailable:(BOOL)ventilationModeAvailable { - return [self initWithModuleName:moduleName fanSpeedAvailable:fanSpeedAvailable desiredTemperatureAvailable:desiredTemperatureAvailable acEnableAvailable:acEnableAvailable acMaxEnableAvailable:acMaxEnableAvailable circulateAirAvailable:circulateAirEnableAvailable autoModeEnableAvailable:autoModeEnableAvailable dualModeEnableAvailable:dualModeEnableAvailable defrostZoneAvailable:defrostZoneAvailable ventilationModeAvailable:ventilationModeAvailable heatedSteeringWheelAvailable:NO heatedWindshieldAvailable:NO heatedRearWindowAvailable:NO heatedMirrorsAvailable:NO]; } - (instancetype)initWithModuleName:(NSString *)moduleName fanSpeedAvailable:(BOOL)fanSpeedAvailable desiredTemperatureAvailable:(BOOL)desiredTemperatureAvailable acEnableAvailable:(BOOL)acEnableAvailable acMaxEnableAvailable:(BOOL)acMaxEnableAvailable circulateAirAvailable:(BOOL)circulateAirEnableAvailable autoModeEnableAvailable:(BOOL)autoModeEnableAvailable dualModeEnableAvailable:(BOOL)dualModeEnableAvailable defrostZoneAvailable:(BOOL)defrostZoneAvailable ventilationModeAvailable:(BOOL)ventilationModeAvailable heatedSteeringWheelAvailable:(BOOL)steeringWheelAvailable heatedWindshieldAvailable:(BOOL)windshieldAvailable heatedRearWindowAvailable:(BOOL)rearWindowAvailable heatedMirrorsAvailable:(BOOL)mirrorsAvailable { + return [self initWithModuleName:moduleName fanSpeedAvailable:fanSpeedAvailable desiredTemperatureAvailable:desiredTemperatureAvailable acEnableAvailable:acEnableAvailable acMaxEnableAvailable:acMaxEnableAvailable circulateAirAvailable:circulateAirEnableAvailable autoModeEnableAvailable:autoModeEnableAvailable dualModeEnableAvailable:dualModeEnableAvailable defrostZoneAvailable:defrostZoneAvailable ventilationModeAvailable:ventilationModeAvailable heatedSteeringWheelAvailable:steeringWheelAvailable heatedWindshieldAvailable:windshieldAvailable heatedRearWindowAvailable:rearWindowAvailable heatedMirrorsAvailable:mirrorsAvailable climateEnableAvailable:NO]; +} + +- (instancetype)initWithModuleName:(NSString *)moduleName fanSpeedAvailable:(BOOL)fanSpeedAvailable desiredTemperatureAvailable:(BOOL)desiredTemperatureAvailable acEnableAvailable:(BOOL)acEnableAvailable acMaxEnableAvailable:(BOOL)acMaxEnableAvailable circulateAirAvailable:(BOOL)circulateAirEnableAvailable autoModeEnableAvailable:(BOOL)autoModeEnableAvailable dualModeEnableAvailable:(BOOL)dualModeEnableAvailable defrostZoneAvailable:(BOOL)defrostZoneAvailable ventilationModeAvailable:(BOOL)ventilationModeAvailable heatedSteeringWheelAvailable:(BOOL)steeringWheelAvailable heatedWindshieldAvailable:(BOOL)windshieldAvailable heatedRearWindowAvailable:(BOOL)rearWindowAvailable heatedMirrorsAvailable:(BOOL)mirrorsAvailable climateEnableAvailable:(BOOL)climateEnableAvailable{ self = [self init]; if (!self) { return nil; @@ -35,6 +38,7 @@ NS_ASSUME_NONNULL_BEGIN self.heatedWindshieldAvailable = @(windshieldAvailable); self.heatedRearWindowAvailable = @(rearWindowAvailable); self.heatedMirrorsAvailable = @(mirrorsAvailable); + self.climateEnableAvailable = @(climateEnableAvailable); return self; } @@ -167,6 +171,14 @@ NS_ASSUME_NONNULL_BEGIN return [self.store sdl_objectForName:SDLRPCParameterNameHeatedMirrorsAvailable ofClass:NSNumber.class error:nil]; } +- (void)setClimateEnableAvailable:(nullable NSNumber<SDLBool> *)climateEnableAvailable { + [self.store sdl_setObject:climateEnableAvailable forName:SDLRPCParameterNameClimateEnableAvailable]; +} + +- (nullable NSNumber<SDLBool> *)climateEnableAvailable { + return [self.store sdl_objectForName:SDLRPCParameterNameClimateEnableAvailable ofClass:NSNumber.class error:nil]; +} + @end NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLClimateControlData.h b/SmartDeviceLink/SDLClimateControlData.h index 29938b251..7d430d188 100644 --- a/SmartDeviceLink/SDLClimateControlData.h +++ b/SmartDeviceLink/SDLClimateControlData.h @@ -16,9 +16,11 @@ NS_ASSUME_NONNULL_BEGIN */ @interface SDLClimateControlData : SDLRPCStruct -- (instancetype)initWithFanSpeed:(nullable NSNumber<SDLInt> *)fanSpeed desiredTemperature:(nullable SDLTemperature *)desiredTemperature acEnable:(nullable NSNumber<SDLBool> *)acEnable circulateAirEnable:(nullable NSNumber<SDLBool> *)circulateAirEnable autoModeEnable:(nullable NSNumber<SDLBool> *)autoModeEnable defrostZone:(nullable SDLDefrostZone)defrostZone dualModeEnable:(nullable NSNumber<SDLBool> *)dualModeEnable acMaxEnable:(nullable NSNumber<SDLBool> *)acMaxEnable ventilationMode:(nullable SDLVentilationMode)ventilationMode __deprecated_msg("Use initWithFanSpeed:desiredTemperature:acEnable:circulateAirEnable:autoModeEnable:defrostZone: dualModeEnable:acMaxEnable:ventilationMode:heatedSteeringWheelEnable: heatedWindshieldEnable:heatedRearWindowEnable:heatedMirrorsEnable: instead"); +- (instancetype)initWithFanSpeed:(nullable NSNumber<SDLInt> *)fanSpeed desiredTemperature:(nullable SDLTemperature *)desiredTemperature acEnable:(nullable NSNumber<SDLBool> *)acEnable circulateAirEnable:(nullable NSNumber<SDLBool> *)circulateAirEnable autoModeEnable:(nullable NSNumber<SDLBool> *)autoModeEnable defrostZone:(nullable SDLDefrostZone)defrostZone dualModeEnable:(nullable NSNumber<SDLBool> *)dualModeEnable acMaxEnable:(nullable NSNumber<SDLBool> *)acMaxEnable ventilationMode:(nullable SDLVentilationMode)ventilationMode __deprecated_msg("Use initWithFanSpeed:desiredTemperature:acEnable:circulateAirEnable:autoModeEnable:defrostZone: dualModeEnable:acMaxEnable:ventilationMode:heatedSteeringWheelEnable: heatedWindshieldEnable:heatedRearWindowEnable:heatedMirrorsEnable:climateEnable instead"); -- (instancetype)initWithFanSpeed:(nullable NSNumber<SDLInt> *)fanSpeed desiredTemperature:(nullable SDLTemperature *)desiredTemperature acEnable:(nullable NSNumber<SDLBool> *)acEnable circulateAirEnable:(nullable NSNumber<SDLBool> *)circulateAirEnable autoModeEnable:(nullable NSNumber<SDLBool> *)autoModeEnable defrostZone:(nullable SDLDefrostZone)defrostZone dualModeEnable:(nullable NSNumber<SDLBool> *)dualModeEnable acMaxEnable:(nullable NSNumber<SDLBool> *)acMaxEnable ventilationMode:(nullable SDLVentilationMode)ventilationMode heatedSteeringWheelEnable:(nullable NSNumber<SDLBool> *)heatedSteeringWheelEnable heatedWindshieldEnable:(nullable NSNumber<SDLBool> *)heatedWindshieldEnable heatedRearWindowEnable:(nullable NSNumber<SDLBool> *)heatedRearWindowEnable heatedMirrorsEnable:(nullable NSNumber<SDLBool> *)heatedMirrorsEnable; +- (instancetype)initWithFanSpeed:(nullable NSNumber<SDLInt> *)fanSpeed desiredTemperature:(nullable SDLTemperature *)desiredTemperature acEnable:(nullable NSNumber<SDLBool> *)acEnable circulateAirEnable:(nullable NSNumber<SDLBool> *)circulateAirEnable autoModeEnable:(nullable NSNumber<SDLBool> *)autoModeEnable defrostZone:(nullable SDLDefrostZone)defrostZone dualModeEnable:(nullable NSNumber<SDLBool> *)dualModeEnable acMaxEnable:(nullable NSNumber<SDLBool> *)acMaxEnable ventilationMode:(nullable SDLVentilationMode)ventilationMode heatedSteeringWheelEnable:(nullable NSNumber<SDLBool> *)heatedSteeringWheelEnable heatedWindshieldEnable:(nullable NSNumber<SDLBool> *)heatedWindshieldEnable heatedRearWindowEnable:(nullable NSNumber<SDLBool> *)heatedRearWindowEnable heatedMirrorsEnable:(nullable NSNumber<SDLBool> *)heatedMirrorsEnable __deprecated_msg("Use initWithFanSpeed:desiredTemperature:acEnable:circulateAirEnable:autoModeEnable:defrostZone: dualModeEnable:acMaxEnable:ventilationMode:heatedSteeringWheelEnable: heatedWindshieldEnable:heatedRearWindowEnable:heatedMirrorsEnable:climateEnable instead"); + +- (instancetype)initWithFanSpeed:(nullable NSNumber<SDLInt> *)fanSpeed desiredTemperature:(nullable SDLTemperature *)desiredTemperature acEnable:(nullable NSNumber<SDLBool> *)acEnable circulateAirEnable:(nullable NSNumber<SDLBool> *)circulateAirEnable autoModeEnable:(nullable NSNumber<SDLBool> *)autoModeEnable defrostZone:(nullable SDLDefrostZone)defrostZone dualModeEnable:(nullable NSNumber<SDLBool> *)dualModeEnable acMaxEnable:(nullable NSNumber<SDLBool> *)acMaxEnable ventilationMode:(nullable SDLVentilationMode)ventilationMode heatedSteeringWheelEnable:(nullable NSNumber<SDLBool> *)heatedSteeringWheelEnable heatedWindshieldEnable:(nullable NSNumber<SDLBool> *)heatedWindshieldEnable heatedRearWindowEnable:(nullable NSNumber<SDLBool> *)heatedRearWindowEnable heatedMirrorsEnable:(nullable NSNumber<SDLBool> *)heatedMirrorsEnable climateEnable:(nullable NSNumber<SDLBool> *)climateEnable; /** * Speed of Fan in integer @@ -120,6 +122,13 @@ NS_ASSUME_NONNULL_BEGIN */ @property (nullable, strong, nonatomic) NSNumber<SDLBool> *heatedMirrorsEnable; +/** + * @abstract Value false means disabled, value true means enabled. + * + * Optional, Boolean + */ +@property (nullable, strong, nonatomic) NSNumber<SDLBool> *climateEnable; + @end NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLClimateControlData.m b/SmartDeviceLink/SDLClimateControlData.m index e84e87821..bed8ba365 100644 --- a/SmartDeviceLink/SDLClimateControlData.m +++ b/SmartDeviceLink/SDLClimateControlData.m @@ -38,6 +38,30 @@ NS_ASSUME_NONNULL_BEGIN return self; } +- (instancetype)initWithFanSpeed:(nullable NSNumber<SDLInt> *)fanSpeed desiredTemperature:(nullable SDLTemperature *)desiredTemperature acEnable:(nullable NSNumber<SDLBool> *)acEnable circulateAirEnable:(nullable NSNumber<SDLBool> *)circulateAirEnable autoModeEnable:(nullable NSNumber<SDLBool> *)autoModeEnable defrostZone:(nullable SDLDefrostZone)defrostZone dualModeEnable:(nullable NSNumber<SDLBool> *)dualModeEnable acMaxEnable:(nullable NSNumber<SDLBool> *)acMaxEnable ventilationMode:(nullable SDLVentilationMode)ventilationMode heatedSteeringWheelEnable:(nullable NSNumber<SDLBool> *)heatedSteeringWheelEnable heatedWindshieldEnable:(nullable NSNumber<SDLBool> *)heatedWindshieldEnable heatedRearWindowEnable:(nullable NSNumber<SDLBool> *)heatedRearWindowEnable heatedMirrorsEnable:(nullable NSNumber<SDLBool> *)heatedMirrorsEnable climateEnable:(nullable NSNumber<SDLBool> *)climateEnable { + self = [self init]; + if (!self) { + return nil; + } + + self.fanSpeed = fanSpeed; + self.desiredTemperature = desiredTemperature; + self.acEnable = acEnable; + self.circulateAirEnable = circulateAirEnable; + self.autoModeEnable = autoModeEnable; + self.defrostZone = defrostZone; + self.dualModeEnable = dualModeEnable; + self.acMaxEnable = acMaxEnable; + self.ventilationMode = ventilationMode; + self.heatedSteeringWheelEnable = heatedSteeringWheelEnable; + self.heatedWindshieldEnable = heatedWindshieldEnable; + self.heatedRearWindowEnable = heatedRearWindowEnable; + self.heatedMirrorsEnable = heatedMirrorsEnable; + self.climateEnable = climateEnable; + + return self; +} + - (void)setFanSpeed:(nullable NSNumber<SDLInt> *)fanSpeed { [self.store sdl_setObject:fanSpeed forName:SDLRPCParameterNameFanSpeed]; } @@ -150,6 +174,14 @@ NS_ASSUME_NONNULL_BEGIN return [self.store sdl_objectForName:SDLRPCParameterNameHeatedMirrorsEnable ofClass:NSNumber.class error:nil]; } +- (void)setClimateEnable:(nullable NSNumber<SDLBool> *)climateEnable { + [self.store sdl_setObject:climateEnable forName:SDLRPCParameterNameClimateEnable]; +} + +- (nullable NSNumber<SDLBool> *)climateEnable { + return [self.store sdl_objectForName:SDLRPCParameterNameClimateEnable ofClass:NSNumber.class error:nil]; +} + @end NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGlobals.m b/SmartDeviceLink/SDLGlobals.m index 735139b22..3fcce2bdb 100644 --- a/SmartDeviceLink/SDLGlobals.m +++ b/SmartDeviceLink/SDLGlobals.m @@ -17,7 +17,7 @@ NS_ASSUME_NONNULL_BEGIN // VERSION DEPENDENT CODE NSString *const SDLMaxProxyProtocolVersion = @"5.2.0"; -NSString *const SDLMaxProxyRPCVersion = @"5.1.0"; +NSString *const SDLMaxProxyRPCVersion = @"6.0.0"; NSUInteger const SDLDefaultMTUSize = UINT32_MAX; NSUInteger const SDLV1MTUSize = 1024; diff --git a/SmartDeviceLink/SDLIAPTransport.m b/SmartDeviceLink/SDLIAPTransport.m index d67b2f11e..e83e5aa3d 100644 --- a/SmartDeviceLink/SDLIAPTransport.m +++ b/SmartDeviceLink/SDLIAPTransport.m @@ -80,7 +80,7 @@ int const CreateSessionRetries = 3; */ - (void)sdl_stopEventListening { SDLLogV(@"SDLIAPTransport stopped listening for events"); - [[EAAccessoryManager sharedAccessoryManager] unregisterForLocalNotifications]; + [[NSNotificationCenter defaultCenter] removeObserver:self]; } #pragma mark EAAccessory Notifications diff --git a/SmartDeviceLink/SDLLifecycleManager.m b/SmartDeviceLink/SDLLifecycleManager.m index 908f5c43f..a5fa00f9c 100644 --- a/SmartDeviceLink/SDLLifecycleManager.m +++ b/SmartDeviceLink/SDLLifecycleManager.m @@ -282,7 +282,7 @@ NSString *const BackgroundTaskTransportName = @"com.sdl.transport.backgroundTask if (shouldRestart) { [strongSelf sdl_transitionToState:SDLLifecycleStateStarted]; } else { - // End any background tasks because a session will not be established + // End the background task because a session will not be established [self.backgroundTaskManager endBackgroundTask]; } }); @@ -498,6 +498,9 @@ NSString *const BackgroundTaskTransportName = @"com.sdl.transport.backgroundTask [self.delegate audioStreamingState:SDLAudioStreamingStateNotAudible didChangeToState:self.audioStreamingState]; } }); + + // Stop the background task now that setup has completed + [self.backgroundTaskManager endBackgroundTask]; } - (void)didEnterStateUnregistering { @@ -708,9 +711,6 @@ NSString *const BackgroundTaskTransportName = @"com.sdl.transport.backgroundTask - (void)transportDidConnect { SDLLogD(@"Transport connected"); - // End any background tasks since the transport connected successfully - [self.backgroundTaskManager endBackgroundTask]; - dispatch_async(self.lifecycleQueue, ^{ [self sdl_transitionToState:SDLLifecycleStateConnected]; }); diff --git a/SmartDeviceLink/SDLProxy.m b/SmartDeviceLink/SDLProxy.m index 6ab2006c8..10d3b7889 100644 --- a/SmartDeviceLink/SDLProxy.m +++ b/SmartDeviceLink/SDLProxy.m @@ -50,7 +50,7 @@ typedef NSString SDLVehicleMake; typedef void (^URLSessionTaskCompletionHandler)(NSData *data, NSURLResponse *response, NSError *error); typedef void (^URLSessionDownloadTaskCompletionHandler)(NSURL *location, NSURLResponse *response, NSError *error); -NSString *const SDLProxyVersion = @"6.3.0"; +NSString *const SDLProxyVersion = @"6.3.1"; const float StartSessionTime = 10.0; const float NotifyProxyClosedDelay = (float)0.1; const int PoliciesCorrelationId = 65535; diff --git a/SmartDeviceLink/SDLRPCParameterNames.h b/SmartDeviceLink/SDLRPCParameterNames.h index e967bb274..fc0f17ddf 100644 --- a/SmartDeviceLink/SDLRPCParameterNames.h +++ b/SmartDeviceLink/SDLRPCParameterNames.h @@ -61,7 +61,9 @@ extern SDLRPCParameterName const SDLRPCParameterNameAutoModeEnable; extern SDLRPCParameterName const SDLRPCParameterNameAutoModeEnableAvailable; extern SDLRPCParameterName const SDLRPCParameterNameAuxECallNotificationStatus; extern SDLRPCParameterName const SDLRPCParameterNameAvailableHDs; +extern SDLRPCParameterName const SDLRPCParameterNameAvailableHDChannels; extern SDLRPCParameterName const SDLRPCParameterNameAvailableHDsAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameAvailableHDChannelsAvailable; extern SDLRPCParameterName const SDLRPCParameterNameBackgroundColor; extern SDLRPCParameterName const SDLRPCParameterNameBackTiltAngle; extern SDLRPCParameterName const SDLRPCParameterNameBackTiltAngleAvailable; @@ -236,6 +238,8 @@ extern SDLRPCParameterName const SDLRPCParameterNameHeatedSteeringWheelAvailable extern SDLRPCParameterName const SDLRPCParameterNameHeatedWindshieldAvailable; extern SDLRPCParameterName const SDLRPCParameterNameHeatedRearWindowAvailable; extern SDLRPCParameterName const SDLRPCParameterNameHeatedMirrorsAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameClimateEnable; +extern SDLRPCParameterName const SDLRPCParameterNameClimateEnableAvailable; extern SDLRPCParameterName const SDLRPCParameterNameHeatedSteeringWheelEnable; extern SDLRPCParameterName const SDLRPCParameterNameHeatedWindshieldEnable; extern SDLRPCParameterName const SDLRPCParameterNameHeatedRearWindowEnable; diff --git a/SmartDeviceLink/SDLRPCParameterNames.m b/SmartDeviceLink/SDLRPCParameterNames.m index eabba3300..30236acb4 100644 --- a/SmartDeviceLink/SDLRPCParameterNames.m +++ b/SmartDeviceLink/SDLRPCParameterNames.m @@ -59,7 +59,9 @@ SDLRPCParameterName const SDLRPCParameterNameAutoModeEnable = @"autoModeEnable"; SDLRPCParameterName const SDLRPCParameterNameAutoModeEnableAvailable = @"autoModeEnableAvailable"; SDLRPCParameterName const SDLRPCParameterNameAuxECallNotificationStatus = @"auxECallNotificationStatus"; SDLRPCParameterName const SDLRPCParameterNameAvailableHDs = @"availableHDs"; +SDLRPCParameterName const SDLRPCParameterNameAvailableHDChannels = @"availableHDChannels"; SDLRPCParameterName const SDLRPCParameterNameAvailableHDsAvailable = @"availableHDsAvailable"; +SDLRPCParameterName const SDLRPCParameterNameAvailableHDChannelsAvailable = @"availableHDChannelsAvailable"; SDLRPCParameterName const SDLRPCParameterNameBackgroundColor = @"backgroundColor"; SDLRPCParameterName const SDLRPCParameterNameBackTiltAngle = @"backTiltAngle"; SDLRPCParameterName const SDLRPCParameterNameBackTiltAngleAvailable = @"backTiltAngleAvailable"; @@ -233,6 +235,8 @@ SDLRPCParameterName const SDLRPCParameterNameHeatedSteeringWheelAvailable = @"he SDLRPCParameterName const SDLRPCParameterNameHeatedWindshieldAvailable = @"heatedWindshieldAvailable"; SDLRPCParameterName const SDLRPCParameterNameHeatedRearWindowAvailable = @"heatedRearWindowAvailable"; SDLRPCParameterName const SDLRPCParameterNameHeatedMirrorsAvailable = @"heatedMirrorsAvailable"; +SDLRPCParameterName const SDLRPCParameterNameClimateEnable = @"climateEnable"; +SDLRPCParameterName const SDLRPCParameterNameClimateEnableAvailable = @"climateEnableAvailable"; SDLRPCParameterName const SDLRPCParameterNameHeatedSteeringWheelEnable = @"heatedSteeringWheelEnable"; SDLRPCParameterName const SDLRPCParameterNameHeatedWindshieldEnable = @"heatedWindshieldEnable"; SDLRPCParameterName const SDLRPCParameterNameHeatedRearWindowEnable = @"heatedRearWindowEnable"; diff --git a/SmartDeviceLink/SDLRadioControlCapabilities.h b/SmartDeviceLink/SDLRadioControlCapabilities.h index 5bdcbebbf..2552e406f 100644 --- a/SmartDeviceLink/SDLRadioControlCapabilities.h +++ b/SmartDeviceLink/SDLRadioControlCapabilities.h @@ -26,7 +26,27 @@ NS_ASSUME_NONNULL_BEGIN @param signalChangeThresholdAvailable Availability of the getting the signal Change Threshold. @return An instance of the SDLRadioControlCapabilities class. */ -- (instancetype)initWithModuleName:(NSString *)moduleName radioEnableAvailable:(BOOL)radioEnableAvailable radioBandAvailable:(BOOL)radioBandAvailable radioFrequencyAvailable:(BOOL)radioFrequencyAvailable hdChannelAvailable:(BOOL)hdChannelAvailable rdsDataAvailable:(BOOL)rdsDataAvailable availableHDsAvailable:(BOOL)availableHDsAvailable stateAvailable:(BOOL)stateAvailable signalStrengthAvailable:(BOOL)signalStrengthAvailable signalChangeThresholdAvailable:(BOOL)signalChangeThresholdAvailable __deprecated_msg(("Use initWithModuleName:moduleName:radioEnableAvailable radioFrequencyAvailable:hdChannelAvailable:rdsDataAvailable:availableHDsAvailable:stateAvailable:signalStrengthAvailable:signalChangeThresholdAvailable:hdRadioEnableAvailable:siriusXMRadioAvailable:sisDataAvailable: instead")); +- (instancetype)initWithModuleName:(NSString *)moduleName radioEnableAvailable:(BOOL)radioEnableAvailable radioBandAvailable:(BOOL)radioBandAvailable radioFrequencyAvailable:(BOOL)radioFrequencyAvailable hdChannelAvailable:(BOOL)hdChannelAvailable rdsDataAvailable:(BOOL)rdsDataAvailable availableHDsAvailable:(BOOL)availableHDsAvailable stateAvailable:(BOOL)stateAvailable signalStrengthAvailable:(BOOL)signalStrengthAvailable signalChangeThresholdAvailable:(BOOL)signalChangeThresholdAvailable __deprecated_msg(("Use initWithModuleName:moduleName:radioEnableAvailable radioFrequencyAvailable:hdChannelAvailable:rdsDataAvailable:availableHDChannelsAvailable:stateAvailable:signalStrengthAvailable:signalChangeThresholdAvailable:hdRadioEnableAvailable:siriusXMRadioAvailable:sisDataAvailable: instead")); + +/** + Constructs a newly allocated SDLRadioControlCapabilities object with given parameters. + + @param moduleName The short friendly name of the radio control module. + @param radioEnableAvailable Availability of the control of enable/disable radio. + @param radioBandAvailable Availability of the control of radio band. + @param radioFrequencyAvailable Availability of the control of radio frequency. + @param hdChannelAvailable Availability of the control of HD radio channel. + @param rdsDataAvailable Availability of the getting Radio Data System (RDS) data. + @param availableHDChannelsAvailable Availability of the list of available HD sub-channel indexes. + @param stateAvailable Availability of the getting the Radio state. + @param signalStrengthAvailable Availability of the getting the signal strength. + @param signalChangeThresholdAvailable Availability of the getting the signal Change Threshold. + @param hdRadioEnableAvailable Availability of the control of enable/disable HD radio. + @param siriusXMRadioAvailable Availability of sirius XM radio. + @param sisDataAvailable Availability of sis data. + @return An instance of the SDLRadioControlCapabilities class + */ +- (instancetype)initWithModuleName:(NSString *)moduleName radioEnableAvailable:(BOOL)radioEnableAvailable radioBandAvailable:(BOOL)radioBandAvailable radioFrequencyAvailable:(BOOL)radioFrequencyAvailable hdChannelAvailable:(BOOL)hdChannelAvailable rdsDataAvailable:(BOOL)rdsDataAvailable availableHDChannelsAvailable:(BOOL)availableHDChannelsAvailable stateAvailable:(BOOL)stateAvailable signalStrengthAvailable:(BOOL)signalStrengthAvailable signalChangeThresholdAvailable:(BOOL)signalChangeThresholdAvailable hdRadioEnableAvailable:(BOOL)hdRadioEnableAvailable siriusXMRadioAvailable:(BOOL)siriusXMRadioAvailable sisDataAvailable:(BOOL)sisDataAvailable; /** Constructs a newly allocated SDLRadioControlCapabilities object with given parameters. @@ -46,7 +66,7 @@ NS_ASSUME_NONNULL_BEGIN @param sisDataAvailable Availability of sis data. @return An instance of the SDLRadioControlCapabilities class */ -- (instancetype)initWithModuleName:(NSString *)moduleName radioEnableAvailable:(BOOL)radioEnableAvailable radioBandAvailable:(BOOL)radioBandAvailable radioFrequencyAvailable:(BOOL)radioFrequencyAvailable hdChannelAvailable:(BOOL)hdChannelAvailable rdsDataAvailable:(BOOL)rdsDataAvailable availableHDsAvailable:(BOOL)availableHDsAvailable stateAvailable:(BOOL)stateAvailable signalStrengthAvailable:(BOOL)signalStrengthAvailable signalChangeThresholdAvailable:(BOOL)signalChangeThresholdAvailable hdRadioEnableAvailable:(BOOL)hdRadioEnableAvailable siriusXMRadioAvailable:(BOOL)siriusXMRadioAvailable sisDataAvailable:(BOOL)sisDataAvailable; +- (instancetype)initWithModuleName:(NSString *)moduleName radioEnableAvailable:(BOOL)radioEnableAvailable radioBandAvailable:(BOOL)radioBandAvailable radioFrequencyAvailable:(BOOL)radioFrequencyAvailable hdChannelAvailable:(BOOL)hdChannelAvailable rdsDataAvailable:(BOOL)rdsDataAvailable availableHDsAvailable:(BOOL)availableHDsAvailable stateAvailable:(BOOL)stateAvailable signalStrengthAvailable:(BOOL)signalStrengthAvailable signalChangeThresholdAvailable:(BOOL)signalChangeThresholdAvailable hdRadioEnableAvailable:(BOOL)hdRadioEnableAvailable siriusXMRadioAvailable:(BOOL)siriusXMRadioAvailable sisDataAvailable:(BOOL)sisDataAvailable __deprecated_msg(("Use initWithModuleName:moduleName:radioEnableAvailable radioFrequencyAvailable:hdChannelAvailable:rdsDataAvailable:availableHDChannelsAvailable:stateAvailable:signalStrengthAvailable:signalChangeThresholdAvailable:hdRadioEnableAvailable:siriusXMRadioAvailable:sisDataAvailable: instead")); /** * The short friendly name of the radio control module. @@ -109,7 +129,16 @@ NS_ASSUME_NONNULL_BEGIN * * Optional, Boolean */ -@property (nullable, strong, nonatomic) NSNumber<SDLBool> *availableHDsAvailable; +@property (nullable, strong, nonatomic) NSNumber<SDLBool> *availableHDsAvailable __deprecated_msg("Use availableHDChannelsAvailable instead."); + +/** + * Availability of the list of available HD sub-channel indexes. + + * True: Available, False: Not Available, Not present: Not Available. + * + * Optional, Boolean + */ +@property (nullable, strong, nonatomic) NSNumber<SDLBool> *availableHDChannelsAvailable; /** * Availability of the getting the Radio state. diff --git a/SmartDeviceLink/SDLRadioControlCapabilities.m b/SmartDeviceLink/SDLRadioControlCapabilities.m index 993592296..7846ff267 100644 --- a/SmartDeviceLink/SDLRadioControlCapabilities.m +++ b/SmartDeviceLink/SDLRadioControlCapabilities.m @@ -14,7 +14,7 @@ NS_ASSUME_NONNULL_BEGIN return [self initWithModuleName:moduleName radioEnableAvailable:radioEnableAvailable radioBandAvailable:radioBandAvailable radioFrequencyAvailable:radioFrequencyAvailable hdChannelAvailable:hdChannelAvailable rdsDataAvailable:rdsDataAvailable availableHDsAvailable:availableHDsAvailable stateAvailable:stateAvailable signalStrengthAvailable:signalStrengthAvailable signalChangeThresholdAvailable:signalChangeThresholdAvailable hdRadioEnableAvailable:NO siriusXMRadioAvailable:NO sisDataAvailable:NO]; } -- (instancetype)initWithModuleName:(NSString *)moduleName radioEnableAvailable:(BOOL)radioEnableAvailable radioBandAvailable:(BOOL)radioBandAvailable radioFrequencyAvailable:(BOOL)radioFrequencyAvailable hdChannelAvailable:(BOOL)hdChannelAvailable rdsDataAvailable:(BOOL)rdsDataAvailable availableHDsAvailable:(BOOL)availableHDsAvailable stateAvailable:(BOOL)stateAvailable signalStrengthAvailable:(BOOL)signalStrengthAvailable signalChangeThresholdAvailable:(BOOL)signalChangeThresholdAvailable hdRadioEnableAvailable:(BOOL)hdRadioEnableAvailable siriusXMRadioAvailable:(BOOL)siriusXMRadioAvailable sisDataAvailable:(BOOL)sisDataAvailable { +- (instancetype)initWithModuleName:(NSString *)moduleName radioEnableAvailable:(BOOL)radioEnableAvailable radioBandAvailable:(BOOL)radioBandAvailable radioFrequencyAvailable:(BOOL)radioFrequencyAvailable hdChannelAvailable:(BOOL)hdChannelAvailable rdsDataAvailable:(BOOL)rdsDataAvailable availableHDChannelsAvailable:(BOOL)availableHDChannelsAvailable stateAvailable:(BOOL)stateAvailable signalStrengthAvailable:(BOOL)signalStrengthAvailable signalChangeThresholdAvailable:(BOOL)signalChangeThresholdAvailable hdRadioEnableAvailable:(BOOL)hdRadioEnableAvailable siriusXMRadioAvailable:(BOOL)siriusXMRadioAvailable sisDataAvailable:(BOOL)sisDataAvailable { self = [self init]; if(!self){ return nil; @@ -26,7 +26,7 @@ NS_ASSUME_NONNULL_BEGIN self.radioFrequencyAvailable = @(radioFrequencyAvailable); self.hdChannelAvailable = @(hdChannelAvailable); self.rdsDataAvailable = @(rdsDataAvailable); - self.availableHDsAvailable = @(availableHDsAvailable); + self.availableHDChannelsAvailable = @(availableHDChannelsAvailable); self.stateAvailable = @(stateAvailable); self.signalStrengthAvailable = @(signalStrengthAvailable); self.signalChangeThresholdAvailable = @(signalChangeThresholdAvailable); @@ -37,6 +37,29 @@ NS_ASSUME_NONNULL_BEGIN return self; } +- (instancetype)initWithModuleName:(NSString *)moduleName radioEnableAvailable:(BOOL)radioEnableAvailable radioBandAvailable:(BOOL)radioBandAvailable radioFrequencyAvailable:(BOOL)radioFrequencyAvailable hdChannelAvailable:(BOOL)hdChannelAvailable rdsDataAvailable:(BOOL)rdsDataAvailable availableHDsAvailable:(BOOL)availableHDsAvailable stateAvailable:(BOOL)stateAvailable signalStrengthAvailable:(BOOL)signalStrengthAvailable signalChangeThresholdAvailable:(BOOL)signalChangeThresholdAvailable hdRadioEnableAvailable:(BOOL)hdRadioEnableAvailable siriusXMRadioAvailable:(BOOL)siriusXMRadioAvailable sisDataAvailable:(BOOL)sisDataAvailable { + self = [self init]; + if(!self){ + return nil; + } + + self.moduleName = moduleName; + self.radioEnableAvailable = @(radioEnableAvailable); + self.radioBandAvailable = @(radioBandAvailable); + self.radioFrequencyAvailable = @(radioFrequencyAvailable); + self.hdChannelAvailable = @(hdChannelAvailable); + self.rdsDataAvailable = @(rdsDataAvailable); + self.availableHDsAvailable = @(availableHDsAvailable); + self.stateAvailable = @(stateAvailable); + self.signalStrengthAvailable = @(signalStrengthAvailable); + self.signalChangeThresholdAvailable = @(signalChangeThresholdAvailable); + self.hdRadioEnableAvailable = @(hdRadioEnableAvailable); + self.siriusXMRadioAvailable = @(siriusXMRadioAvailable); + self.sisDataAvailable = @(sisDataAvailable); + + return self; +} + - (void)setModuleName:(NSString *)moduleName { [self.store sdl_setObject:moduleName forName:SDLRPCParameterNameModuleName]; } @@ -94,6 +117,14 @@ NS_ASSUME_NONNULL_BEGIN return [self.store sdl_objectForName:SDLRPCParameterNameAvailableHDsAvailable ofClass:NSNumber.class error:nil]; } +- (void)setAvailableHDChannelsAvailable:(nullable NSNumber<SDLBool> *)availableHDChannelsAvailable { + [self.store sdl_setObject:availableHDChannelsAvailable forName:SDLRPCParameterNameAvailableHDsAvailable]; +} + +- (nullable NSNumber<SDLBool> *)availableHDChannelsAvailable { + return [self.store sdl_objectForName:SDLRPCParameterNameAvailableHDsAvailable ofClass:NSNumber.class error:nil]; +} + - (void)setStateAvailable:(nullable NSNumber<SDLBool> *)stateAvailable { [self.store sdl_setObject:stateAvailable forName:SDLRPCParameterNameStateAvailable]; } diff --git a/SmartDeviceLink/SDLRadioControlData.h b/SmartDeviceLink/SDLRadioControlData.h index 0fe489eb9..c3d07eaff 100644 --- a/SmartDeviceLink/SDLRadioControlData.h +++ b/SmartDeviceLink/SDLRadioControlData.h @@ -78,12 +78,21 @@ NS_ASSUME_NONNULL_BEGIN * * Integer value Min Value - 1 Max Value -7 */ -@property (nullable, strong, nonatomic) NSNumber<SDLInt> *availableHDs; +@property (nullable, strong, nonatomic) NSNumber<SDLInt> *availableHDs __deprecated_msg("Use availableHDChannels instead"); + +/** + * the list of available hd sub-channel indexes, empty list means no Hd channel is available, read-only + * + * @warning This property is readonly and cannot be set on the module. + * + * Integer value Min Value - 0 Max Value -7 + */ +@property (nullable, strong, nonatomic) NSNumber<SDLInt> *availableHDChannels; /** * Current HD sub-channel if available * - * Integer value Min Value - 1 Max Value -7 + * Integer value Min Value - 0 Max Value -7 */ @property (nullable, strong, nonatomic) NSNumber<SDLInt> *hdChannel; diff --git a/SmartDeviceLink/SDLRadioControlData.m b/SmartDeviceLink/SDLRadioControlData.m index 5ae7deb12..9e4f37c85 100644 --- a/SmartDeviceLink/SDLRadioControlData.m +++ b/SmartDeviceLink/SDLRadioControlData.m @@ -75,6 +75,14 @@ NS_ASSUME_NONNULL_BEGIN return [self.store sdl_objectForName:SDLRPCParameterNameRDSData ofClass:SDLRDSData.class error:nil]; } +- (void)setAvailableHDChannels:(nullable NSNumber<SDLInt> *)availableHDChannels { + [self.store sdl_setObject:availableHDChannels forName:SDLRPCParameterNameAvailableHDChannels]; +} + +- (nullable NSNumber<SDLInt> *)availableHDChannels { + return [self.store sdl_objectForName:SDLRPCParameterNameAvailableHDChannels ofClass:NSNumber.class error:nil]; +} + - (void)setAvailableHDs:(nullable NSNumber<SDLInt> *)availableHDs { [self.store sdl_setObject:availableHDs forName:SDLRPCParameterNameAvailableHDs]; } diff --git a/SmartDeviceLinkSwift/Info.plist b/SmartDeviceLinkSwift/Info.plist index 93c3f315c..5286dd4de 100644 --- a/SmartDeviceLinkSwift/Info.plist +++ b/SmartDeviceLinkSwift/Info.plist @@ -15,7 +15,7 @@ <key>CFBundlePackageType</key> <string>FMWK</string> <key>CFBundleShortVersionString</key> - <string>6.3.0</string> + <string>6.3.1</string> <key>CFBundleVersion</key> <string>$(CURRENT_PROJECT_VERSION)</string> <key>NSPrincipalClass</key> diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLRegisterAppInterfaceSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLRegisterAppInterfaceSpec.m index fbc22b5a2..260cf3ffc 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLRegisterAppInterfaceSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLRegisterAppInterfaceSpec.m @@ -43,7 +43,7 @@ describe(@"RegisterAppInterface Tests", ^{ __block SDLAppInfo *appInfo = nil; __block SDLTemplateColorScheme *colorScheme = nil; - __block SDLSyncMsgVersion *currentSyncMsgVersion = [[SDLSyncMsgVersion alloc] initWithMajorVersion:5 minorVersion:1 patchVersion:0]; + __block SDLSyncMsgVersion *currentSyncMsgVersion = [[SDLSyncMsgVersion alloc] initWithMajorVersion:6 minorVersion:0 patchVersion:0]; beforeEach(^{ testRegisterAppInterface = nil; diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClimateControlCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClimateControlCapabilitiesSpec.m index 5867bb897..41b919542 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClimateControlCapabilitiesSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClimateControlCapabilitiesSpec.m @@ -18,7 +18,7 @@ QuickSpecBegin(SDLClimateControlCapabilitiesSpec) describe(@"Getter/Setter Tests", ^ { it(@"Should set and get correctly", ^ { - + SDLClimateControlCapabilities* testStruct = [[SDLClimateControlCapabilities alloc] init]; testStruct.moduleName = @"Name"; testStruct.fanSpeedAvailable = @YES; @@ -36,6 +36,7 @@ describe(@"Getter/Setter Tests", ^ { testStruct.heatedWindshieldAvailable = @(NO); testStruct.heatedRearWindowAvailable = @(YES); testStruct.heatedMirrorsAvailable = @(NO); + testStruct.climateEnableAvailable = @(NO); expect(testStruct.moduleName).to(equal(@"Name")); expect(testStruct.fanSpeedAvailable).to(equal(@YES)); @@ -53,6 +54,7 @@ describe(@"Getter/Setter Tests", ^ { expect(testStruct.heatedWindshieldAvailable).to(equal(@NO)); expect(testStruct.heatedRearWindowAvailable).to(equal(@YES)); expect(testStruct.heatedMirrorsAvailable).to(equal(@NO)); + expect(testStruct.climateEnableAvailable).to(equal(@NO)); }); @@ -72,7 +74,8 @@ describe(@"Getter/Setter Tests", ^ { SDLRPCParameterNameHeatedSteeringWheelAvailable:@YES, SDLRPCParameterNameHeatedWindshieldAvailable:@NO, SDLRPCParameterNameHeatedRearWindowAvailable:@YES, - SDLRPCParameterNameHeatedMirrorsAvailable:@NO + SDLRPCParameterNameHeatedMirrorsAvailable:@NO, + SDLRPCParameterNameClimateEnableAvailable:@NO, } mutableCopy]; #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" @@ -95,6 +98,7 @@ describe(@"Getter/Setter Tests", ^ { expect(testStruct.heatedWindshieldAvailable).to(equal(@NO)); expect(testStruct.heatedRearWindowAvailable).to(equal(@YES)); expect(testStruct.heatedMirrorsAvailable).to(equal(@NO)); + expect(testStruct.climateEnableAvailable).to(equal(@NO)); }); it(@"Should get correctly when initialized with module data and other climate control capabilities parameters", ^ { @@ -116,10 +120,13 @@ describe(@"Getter/Setter Tests", ^ { expect(testStruct.heatedWindshieldAvailable).to(equal(@NO)); expect(testStruct.heatedRearWindowAvailable).to(equal(@NO)); expect(testStruct.heatedMirrorsAvailable).to(equal(@NO)); + expect(testStruct.climateEnableAvailable).to(equal(@NO)); #pragma clang diagnostic pop }); it(@"Should get correctly when initialized with module data and other climate control capabilities parameters", ^ { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" SDLClimateControlCapabilities* testStruct = [[SDLClimateControlCapabilities alloc] initWithModuleName:@"Name" fanSpeedAvailable:YES desiredTemperatureAvailable:NO acEnableAvailable:NO acMaxEnableAvailable:YES circulateAirAvailable:NO autoModeEnableAvailable:NO dualModeEnableAvailable:NO defrostZoneAvailable:YES ventilationModeAvailable:YES heatedSteeringWheelAvailable:YES heatedWindshieldAvailable:NO heatedRearWindowAvailable:YES heatedMirrorsAvailable:NO]; expect(testStruct.moduleName).to(equal(@"Name")); @@ -136,8 +143,29 @@ describe(@"Getter/Setter Tests", ^ { expect(testStruct.heatedWindshieldAvailable).to(equal(@NO)); expect(testStruct.heatedRearWindowAvailable).to(equal(@YES)); expect(testStruct.heatedMirrorsAvailable).to(equal(@NO)); +#pragma clang diagnostic pop }); + it(@"Should get correctly when initialized with module data and other climate control capabilities parameters", ^ { + SDLClimateControlCapabilities* testStruct = [[SDLClimateControlCapabilities alloc] initWithModuleName:@"Name" fanSpeedAvailable:YES desiredTemperatureAvailable:NO acEnableAvailable:NO acMaxEnableAvailable:YES circulateAirAvailable:NO autoModeEnableAvailable:NO dualModeEnableAvailable:NO defrostZoneAvailable:YES ventilationModeAvailable:YES heatedSteeringWheelAvailable:YES heatedWindshieldAvailable:NO heatedRearWindowAvailable:YES heatedMirrorsAvailable:NO climateEnableAvailable:NO]; + + expect(testStruct.moduleName).to(equal(@"Name")); + expect(testStruct.fanSpeedAvailable).to(equal(@YES)); + expect(testStruct.desiredTemperatureAvailable).to(equal(@NO)); + expect(testStruct.acEnableAvailable).to(equal(@NO)); + expect(testStruct.acMaxEnableAvailable).to(equal(@YES)); + expect(testStruct.circulateAirEnableAvailable).to(equal(@NO)); + expect(testStruct.autoModeEnableAvailable).to(equal(@NO)); + expect(testStruct.dualModeEnableAvailable).to(equal(@NO)); + expect(testStruct.defrostZoneAvailable).to(equal(@YES)); + expect(testStruct.ventilationModeAvailable).to(equal(@YES)); + expect(testStruct.heatedSteeringWheelAvailable).to(equal(@YES)); + expect(testStruct.heatedWindshieldAvailable).to(equal(@NO)); + expect(testStruct.heatedRearWindowAvailable).to(equal(@YES)); + expect(testStruct.heatedMirrorsAvailable).to(equal(@NO)); + expect(testStruct.climateEnableAvailable).to(equal(@NO)); + }); + it(@"Should return nil if not set", ^ { SDLClimateControlCapabilities* testStruct = [[SDLClimateControlCapabilities alloc] init]; @@ -157,7 +185,7 @@ describe(@"Getter/Setter Tests", ^ { expect(testStruct.heatedWindshieldAvailable).to(beNil()); expect(testStruct.heatedRearWindowAvailable).to(beNil()); expect(testStruct.heatedMirrorsAvailable).to(beNil()); - + expect(testStruct.climateEnableAvailable).to(beNil()); }); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClimateControlDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClimateControlDataSpec.m index 9c89ff291..6c4a04c8a 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClimateControlDataSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClimateControlDataSpec.m @@ -42,6 +42,7 @@ describe(@"Getter/Setter Tests", ^ { testStruct.heatedWindshieldEnable = @YES; testStruct.heatedRearWindowEnable = @NO; testStruct.heatedMirrorsEnable = @YES; + testStruct.climateEnable = @YES; expect(testStruct.fanSpeed).to(equal(@43)); expect(testStruct.currentTemperature).to(equal(currentTemp)); @@ -57,6 +58,7 @@ describe(@"Getter/Setter Tests", ^ { expect(testStruct.heatedWindshieldEnable).to(equal(@YES)); expect(testStruct.heatedRearWindowEnable).to(equal(@NO)); expect(testStruct.heatedMirrorsEnable).to(equal(@YES)); + expect(testStruct.climateEnable).to(equal(@YES)); }); @@ -78,11 +80,12 @@ describe(@"Getter/Setter Tests", ^ { expect(testStruct.heatedWindshieldEnable).to(equal(NO)); expect(testStruct.heatedRearWindowEnable).to(equal(NO)); expect(testStruct.heatedMirrorsEnable).to(equal(NO)); + expect(testStruct.climateEnable).to(beNil()); #pragma clang diagnostic pop }); it(@"Should get correctly when initialized with FanSpeed and other climate control parameters", ^ { - SDLClimateControlData* testStruct = [[SDLClimateControlData alloc] initWithFanSpeed:@43 desiredTemperature:desiredTemp acEnable:@YES circulateAirEnable:@YES autoModeEnable:@NO defrostZone:SDLDefrostZoneFront dualModeEnable:@NO acMaxEnable:@YES ventilationMode:SDLVentilationModeBoth heatedSteeringWheelEnable:@NO heatedWindshieldEnable:@YES heatedRearWindowEnable:@NO heatedMirrorsEnable:@YES]; + SDLClimateControlData* testStruct = [[SDLClimateControlData alloc] initWithFanSpeed:@43 desiredTemperature:desiredTemp acEnable:@YES circulateAirEnable:@YES autoModeEnable:@NO defrostZone:SDLDefrostZoneFront dualModeEnable:@NO acMaxEnable:@YES ventilationMode:SDLVentilationModeBoth heatedSteeringWheelEnable:@NO heatedWindshieldEnable:@YES heatedRearWindowEnable:@NO heatedMirrorsEnable:@YES climateEnable:@YES]; expect(testStruct.fanSpeed).to(equal(@43)); expect(testStruct.desiredTemperature).to(equal(desiredTemp)); @@ -97,6 +100,7 @@ describe(@"Getter/Setter Tests", ^ { expect(testStruct.heatedWindshieldEnable).to(equal(@YES)); expect(testStruct.heatedRearWindowEnable).to(equal(@NO)); expect(testStruct.heatedMirrorsEnable).to(equal(@YES)); + expect(testStruct.climateEnable).to(equal(@YES)); }); it(@"Should get correctly when initialized with a dictionary", ^ { @@ -114,6 +118,7 @@ describe(@"Getter/Setter Tests", ^ { SDLRPCParameterNameHeatedWindshieldEnable:@YES, SDLRPCParameterNameHeatedRearWindowEnable:@NO, SDLRPCParameterNameHeatedMirrorsEnable:@YES, + SDLRPCParameterNameClimateEnable:@YES, } mutableCopy]; #pragma clang diagnostic push @@ -135,6 +140,7 @@ describe(@"Getter/Setter Tests", ^ { expect(testStruct.heatedWindshieldEnable).to(equal(@YES)); expect(testStruct.heatedRearWindowEnable).to(equal(@NO)); expect(testStruct.heatedMirrorsEnable).to(equal(@YES)); + expect(testStruct.climateEnable).to(equal(@YES)); }); it(@"Should return nil if not set", ^ { @@ -154,6 +160,7 @@ describe(@"Getter/Setter Tests", ^ { expect(testStruct.heatedWindshieldEnable).to(beNil()); expect(testStruct.heatedRearWindowEnable).to(beNil()); expect(testStruct.heatedMirrorsEnable).to(beNil()); + expect(testStruct.climateEnable).to(beNil()); }); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRadioControlCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRadioControlCapabilitiesSpec.m index 20c057b60..e68ee0af2 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRadioControlCapabilitiesSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRadioControlCapabilitiesSpec.m @@ -24,7 +24,13 @@ describe(@"Initialization tests", ^{ expect(testStruct.radioFrequencyAvailable).to(beNil()); expect(testStruct.hdChannelAvailable).to(beNil()); expect(testStruct.rdsDataAvailable).to(beNil()); + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" expect(testStruct.availableHDsAvailable).to(beNil()); +#pragma clang diagnostic pop + + expect(testStruct.availableHDChannelsAvailable).to(beNil()); expect(testStruct.stateAvailable).to(beNil()); expect(testStruct.signalStrengthAvailable).to(beNil()); expect(testStruct.signalChangeThresholdAvailable).to(beNil()); @@ -43,6 +49,7 @@ describe(@"Initialization tests", ^{ SDLRPCParameterNameHDChannelAvailable : @NO, SDLRPCParameterNameRDSDataAvailable : @NO, SDLRPCParameterNameAvailableHDsAvailable : @NO, + SDLRPCParameterNameAvailableHDChannelsAvailable : @NO, SDLRPCParameterNameStateAvailable : @YES, SDLRPCParameterNameSignalStrengthAvailable : @YES, SDLRPCParameterNameSignalChangeThresholdAvailable : @NO, @@ -61,7 +68,13 @@ describe(@"Initialization tests", ^{ expect(testStruct.radioFrequencyAvailable).to(equal(@YES)); expect(testStruct.hdChannelAvailable).to(equal(@NO)); expect(testStruct.rdsDataAvailable).to(equal(@NO)); + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" expect(testStruct.availableHDsAvailable).to(equal(@NO)); +#pragma clang diagnostic pop + + expect(testStruct.availableHDChannelsAvailable).to(equal(@NO)); expect(testStruct.stateAvailable).to(equal(@YES)); expect(testStruct.signalStrengthAvailable).to(equal(@YES)); expect(testStruct.signalChangeThresholdAvailable).to(equal(@NO)); @@ -80,7 +93,13 @@ describe(@"Initialization tests", ^{ testStruct.radioFrequencyAvailable = @YES; testStruct.hdChannelAvailable = @NO; testStruct.rdsDataAvailable = @NO; + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" testStruct.availableHDsAvailable = @NO; +#pragma clang diagnostic pop + + testStruct.availableHDChannelsAvailable = @NO; testStruct.stateAvailable = @YES; testStruct.signalStrengthAvailable = @YES; testStruct.signalChangeThresholdAvailable = @NO; @@ -94,7 +113,13 @@ describe(@"Initialization tests", ^{ expect(testStruct.radioFrequencyAvailable).to(equal(@YES)); expect(testStruct.hdChannelAvailable).to(equal(@NO)); expect(testStruct.rdsDataAvailable).to(equal(@NO)); + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" expect(testStruct.availableHDsAvailable).to(equal(@NO)); +#pragma clang diagnostic pop + + expect(testStruct.availableHDChannelsAvailable).to(equal(@NO)); expect(testStruct.stateAvailable).to(equal(@YES)); expect(testStruct.signalStrengthAvailable).to(equal(@YES)); expect(testStruct.signalChangeThresholdAvailable).to(equal(@NO)); @@ -104,6 +129,25 @@ describe(@"Initialization tests", ^{ }); + it(@"Should get correctly when initialized with Module Name and other radio control capabilite's parameters", ^ { + SDLRadioControlCapabilities* testStruct = [[SDLRadioControlCapabilities alloc] initWithModuleName:@"someName" radioEnableAvailable:YES radioBandAvailable:NO radioFrequencyAvailable:YES hdChannelAvailable:NO rdsDataAvailable:NO availableHDChannelsAvailable:NO stateAvailable:YES signalStrengthAvailable:YES signalChangeThresholdAvailable:NO hdRadioEnableAvailable:YES siriusXMRadioAvailable:YES sisDataAvailable:YES]; + + expect(testStruct.moduleName).to(equal(@"someName")); + expect(testStruct.radioEnableAvailable).to(equal(@YES)); + expect(testStruct.radioBandAvailable).to(equal(@NO)); + expect(testStruct.radioFrequencyAvailable).to(equal(@YES)); + expect(testStruct.hdChannelAvailable).to(equal(@NO)); + expect(testStruct.rdsDataAvailable).to(equal(@NO)); + expect(testStruct.availableHDChannelsAvailable).to(equal(@NO)); + expect(testStruct.stateAvailable).to(equal(@YES)); + expect(testStruct.signalStrengthAvailable).to(equal(@YES)); + expect(testStruct.signalChangeThresholdAvailable).to(equal(@NO)); + expect(testStruct.hdRadioEnableAvailable).to(equal(YES)); + expect(testStruct.siriusXMRadioAvailable).to(equal(@YES)); + expect(testStruct.sisDataAvailable).to(equal(@YES)); + + }); + it(@"Should get correctly when initialized with Module Name and other radio control capability parameters", ^ { #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" @@ -123,9 +167,13 @@ describe(@"Initialization tests", ^{ expect(testStruct.siriusXMRadioAvailable).to(equal(@NO)); #pragma clang diagnostic pop }); - + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" it(@"Should get correctly when initialized with Module Name and other radio control capabilite's parameters", ^ { SDLRadioControlCapabilities* testStruct = [[SDLRadioControlCapabilities alloc] initWithModuleName:@"someName" radioEnableAvailable:YES radioBandAvailable:NO radioFrequencyAvailable:YES hdChannelAvailable:NO rdsDataAvailable:NO availableHDsAvailable:NO stateAvailable:YES signalStrengthAvailable:YES signalChangeThresholdAvailable:NO hdRadioEnableAvailable:YES siriusXMRadioAvailable:YES sisDataAvailable:YES]; +#pragma clang diagnostic pop + expect(testStruct.moduleName).to(equal(@"someName")); expect(testStruct.radioEnableAvailable).to(equal(@YES)); @@ -133,7 +181,12 @@ describe(@"Initialization tests", ^{ expect(testStruct.radioFrequencyAvailable).to(equal(@YES)); expect(testStruct.hdChannelAvailable).to(equal(@NO)); expect(testStruct.rdsDataAvailable).to(equal(@NO)); + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" expect(testStruct.availableHDsAvailable).to(equal(@NO)); +#pragma clang diagnostic pop + expect(testStruct.stateAvailable).to(equal(@YES)); expect(testStruct.signalStrengthAvailable).to(equal(@YES)); expect(testStruct.signalChangeThresholdAvailable).to(equal(@NO)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRadioControlDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRadioControlDataSpec.m index 49ba62568..fd74e0f38 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRadioControlDataSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRadioControlDataSpec.m @@ -27,7 +27,11 @@ describe(@"Initialization tests", ^{ expect(testStruct.frequencyFraction).to(beNil()); expect(testStruct.band).to(beNil()); expect(testStruct.rdsData).to(beNil()); +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" expect(testStruct.availableHDs).to(beNil()); +#pragma clang diagnostic pop + expect(testStruct.availableHDChannels).to(beNil()); expect(testStruct.hdChannel).to(beNil()); expect(testStruct.signalStrength).to(beNil()); expect(testStruct.signalChangeThreshold).to(beNil()); @@ -42,6 +46,7 @@ describe(@"Initialization tests", ^{ SDLRPCParameterNameBand : SDLRadioBandAM, SDLRPCParameterNameRDSData : someRdsData, SDLRPCParameterNameAvailableHDs : @2, + SDLRPCParameterNameAvailableHDChannels : @2, SDLRPCParameterNameHDChannel : @2, SDLRPCParameterNameSignalStrength : @54, SDLRPCParameterNameSignalChangeThreshold : @76, @@ -58,7 +63,10 @@ describe(@"Initialization tests", ^{ expect(testStruct.frequencyFraction).to(equal(@7)); expect(testStruct.band).to(equal(SDLRadioBandAM)); expect(testStruct.rdsData).to(equal(someRdsData)); +#pragma clang diagnostic ignored "-Wdeprecated-declarations" expect(testStruct.availableHDs).to(equal(@2)); +#pragma clang diagnostic pop + expect(testStruct.availableHDChannels).to(equal(@2)); expect(testStruct.hdChannel).to(equal(@2)); expect(testStruct.signalStrength).to(equal(@54)); expect(testStruct.signalChangeThreshold).to(equal(@76)); @@ -74,6 +82,7 @@ describe(@"Initialization tests", ^{ testStruct.band = SDLRadioBandAM; testStruct.rdsData = someRdsData; testStruct.availableHDs = @2; + testStruct.availableHDChannels = @2; testStruct.hdChannel = @2; testStruct.signalStrength = @54; testStruct.signalChangeThreshold = @76; @@ -86,6 +95,7 @@ describe(@"Initialization tests", ^{ expect(testStruct.band).to(equal(SDLRadioBandAM)); expect(testStruct.rdsData).to(equal(someRdsData)); expect(testStruct.availableHDs).to(equal(@2)); + expect(testStruct.availableHDChannels).to(equal(@2)); expect(testStruct.hdChannel).to(equal(@2)); expect(testStruct.signalStrength).to(equal(@54)); expect(testStruct.signalChangeThreshold).to(equal(@76)); |