Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement SDL-0221 Remote Control - Allow Multiple Modules per Module Type #1361

Merged
Show file tree
Hide file tree
Changes from 34 commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
c38d5ca
Create SDLModuleInfo & SDLGrid Structs
SatbirTanda Jul 10, 2019
0a09991
Add Module Info to Capabilities
SatbirTanda Jul 11, 2019
a2b7b1c
Create SeatLocation, SeatLocationCapability
SatbirTanda Jul 11, 2019
a4318c3
Add required properties
SatbirTanda Jul 25, 2019
16ccfb0
Add SDLGetInteriorVehicleDataConsent Request
SatbirTanda Jul 26, 2019
b30e4e2
Add SDLGetInteriorVehicleDataConsentResponse
SatbirTanda Jul 26, 2019
9d110ff
Add SDLReleaseInteriorVehicleDataModule Request
SatbirTanda Jul 26, 2019
fd8e433
Add SDLReleaseInteriorVehicleDataModuleResponse
SatbirTanda Jul 26, 2019
9ff8f0c
Make Structs, Req, Responses public
SatbirTanda Jul 26, 2019
62d782d
Add modueId to initalizer of SDLGetInteriorVehicleData
SatbirTanda Jul 26, 2019
01b673e
Add Capability tests
SatbirTanda Jul 29, 2019
252fbb3
Properly decreate enum
SatbirTanda Jul 29, 2019
26db52e
Add Tests
SatbirTanda Jul 29, 2019
293a6f9
Add SDLSeatLocationCapabilitySpec
SatbirTanda Jul 29, 2019
e426109
Add SDLSeatLocationSpec
SatbirTanda Jul 29, 2019
fcfb1bf
Add SDLGetInteriorVehicleDataConsent Tests
SatbirTanda Jul 29, 2019
1a533e3
Add SDLReleaseInteriorVehicleDataModule Tests
SatbirTanda Jul 29, 2019
70d39f8
Fix merge conflicts
SatbirTanda Jul 29, 2019
f09d255
Silence warnings
SatbirTanda Aug 5, 2019
e7fc5a7
Add missing public files to podspec and SDL header
SatbirTanda Aug 12, 2019
d4ed176
Update SDLGetInteriorVehicleData.h
SatbirTanda Aug 12, 2019
eb8c741
Remove unnecessary method
SatbirTanda Aug 12, 2019
ca1d3be
Update SDLRPCFunctionNames.m
SatbirTanda Aug 12, 2019
1de659b
Add RPCs to SDLNotificationConstants
SatbirTanda Aug 12, 2019
f38997a
Update SDLNotificationDispatcher.m
SatbirTanda Aug 12, 2019
5204ad7
Update SDLProxyListener.h
SatbirTanda Aug 12, 2019
0da37e5
Make properties nullable
SatbirTanda Aug 13, 2019
525704f
Update SDLFunctionID.m
SatbirTanda Aug 13, 2019
c41f9bd
Merge branch 'develop' into feature/#1272/multiple_modules
SatbirTanda Aug 13, 2019
87addfe
Fix documentation
SatbirTanda Aug 22, 2019
f9d73d0
Add new initializers and deprecate old ones
SatbirTanda Aug 22, 2019
36ceb96
Add SDLSeatLocationCapability to SDLSystemCapabilityManager
SatbirTanda Aug 22, 2019
3e0d2cd
Make recommended fixes
SatbirTanda Aug 23, 2019
5289257
Update SmartDeviceLink-iOS.podspec
SatbirTanda Aug 26, 2019
46cb648
Update SDLNotificationConstants.m
SatbirTanda Aug 28, 2019
b6db8a7
Update SDLGetInteriorVehicleDataConsentResponse
SatbirTanda Sep 3, 2019
44b2929
Merge branch 'develop' into feature/#1272/multiple_modules
SatbirTanda Sep 3, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions Example Apps/Example ObjC/VehicleDataManager.m
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,11 @@ + (void)getAllVehicleDataWithManager:(SDLManager *)manager triggerSource:(SDLTri
}

SDLLogD(@"App has permission to access vehicle data. Requesting vehicle data...");

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
SDLGetVehicleData *getAllVehicleData = [[SDLGetVehicleData alloc] initWithAccelerationPedalPosition:YES airbagStatus:YES beltStatus:YES bodyInformation: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

[manager sendRequest:getAllVehicleData withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) {
if (error || ![response isKindOfClass:SDLGetVehicleDataResponse.class]) {
Expand Down
8 changes: 8 additions & 0 deletions SmartDeviceLink-iOS.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,8 @@ ss.public_header_files = [
'SmartDeviceLink/SDLGetFile.h',
'SmartDeviceLink/SDLGetFileResponse.h',
'SmartDeviceLink/SDLGetInteriorVehicleData.h',
'SmartDeviceLink/SDLGetInteriorVehicleDataConsent.h',
'SmartDeviceLink/SDLGetInteriorVehicleDataConsentResponse.h',
'SmartDeviceLink/SDLGetInteriorVehicleDataResponse.h',
'SmartDeviceLink/SDLGetSystemCapability.h',
'SmartDeviceLink/SDLGetSystemCapabilityResponse.h',
Expand All @@ -144,6 +146,7 @@ ss.public_header_files = [
'SmartDeviceLink/SDLGetWaypointsResponse.h',
'SmartDeviceLink/SDLGlobalProperty.h',
'SmartDeviceLink/SDLGPSData.h',
'SmartDeviceLink/SDLGrid.h',
'SmartDeviceLink/SDLHapticRect.h',
'SmartDeviceLink/SDLHeadLampStatus.h',
'SmartDeviceLink/SDLHMICapabilities.h',
Expand Down Expand Up @@ -212,6 +215,7 @@ ss.public_header_files = [
'SmartDeviceLink/SDLMetadataTags.h',
'SmartDeviceLink/SDLMetadataType.h',
'SmartDeviceLink/SDLModuleData.h',
'SmartDeviceLink/SDLModuleInfo.h',
'SmartDeviceLink/SDLModuleType.h',
'SmartDeviceLink/SDLMyKey.h',
'SmartDeviceLink/SDLNavigationAction.h',
Expand Down Expand Up @@ -281,6 +285,8 @@ ss.public_header_files = [
'SmartDeviceLink/SDLRegisterAppInterface.h',
'SmartDeviceLink/SDLRegisterAppInterfaceResponse.h',
'SmartDeviceLink/SDLRemoteControlCapabilities.h',
'SmartDeviceLink/SDLReleaseInteriorVehicleDataModule.h',
'SmartDeviceLink/SDLReleaseInteriorVehicleDataModuleResponse.h',
'SmartDeviceLink/SDLRequestType.h',
'SmartDeviceLink/SDLResetGlobalProperties.h',
'SmartDeviceLink/SDLResetGlobalPropertiesResponse.h',
Expand All @@ -303,6 +309,8 @@ ss.public_header_files = [
'SmartDeviceLink/SDLScrollableMessageResponse.h',
'SmartDeviceLink/SDLSeatControlCapabilities.h',
'SmartDeviceLink/SDLSeatControlData.h',
'SmartDeviceLink/SDLSeatLocation.h',
'SmartDeviceLink/SDLSeatLocationCapability.h',
'SmartDeviceLink/SDLSeatMemoryAction.h',
'SmartDeviceLink/SDLSeatMemoryActionType.h',
'SmartDeviceLink/SDLSupportedSeat.h',
Expand Down
88 changes: 88 additions & 0 deletions SmartDeviceLink-iOS.xcodeproj/project.pbxproj

Large diffs are not rendered by default.

8 changes: 8 additions & 0 deletions SmartDeviceLink.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,8 @@ sdefault.public_header_files = [
'SmartDeviceLink/SDLGetFile.h',
'SmartDeviceLink/SDLGetFileResponse.h',
'SmartDeviceLink/SDLGetInteriorVehicleData.h',
'SmartDeviceLink/SDLGetInteriorVehicleDataConsent.h',
'SmartDeviceLink/SDLGetInteriorVehicleDataConsentResponse.h',
'SmartDeviceLink/SDLGetInteriorVehicleDataResponse.h',
'SmartDeviceLink/SDLGetSystemCapability.h',
'SmartDeviceLink/SDLGetSystemCapabilityResponse.h',
Expand All @@ -145,6 +147,7 @@ sdefault.public_header_files = [
'SmartDeviceLink/SDLGetWaypointsResponse.h',
'SmartDeviceLink/SDLGlobalProperty.h',
'SmartDeviceLink/SDLGPSData.h',
'SmartDeviceLink/SDLGrid.h',
'SmartDeviceLink/SDLHapticRect.h',
'SmartDeviceLink/SDLHeadLampStatus.h',
'SmartDeviceLink/SDLHMICapabilities.h',
Expand Down Expand Up @@ -213,6 +216,7 @@ sdefault.public_header_files = [
'SmartDeviceLink/SDLMetadataTags.h',
'SmartDeviceLink/SDLMetadataType.h',
'SmartDeviceLink/SDLModuleData.h',
'SmartDeviceLink/SDLModuleInfo.h',
'SmartDeviceLink/SDLModuleType.h',
'SmartDeviceLink/SDLMyKey.h',
'SmartDeviceLink/SDLNavigationAction.h',
Expand Down Expand Up @@ -282,6 +286,8 @@ sdefault.public_header_files = [
'SmartDeviceLink/SDLRegisterAppInterface.h',
'SmartDeviceLink/SDLRegisterAppInterfaceResponse.h',
'SmartDeviceLink/SDLRemoteControlCapabilities.h',
'SmartDeviceLink/SDLReleaseInteriorVehicleDataModule.h',
'SmartDeviceLink/SDLReleaseInteriorVehicleDataModuleResponse.h',
'SmartDeviceLink/SDLRequestType.h',
'SmartDeviceLink/SDLResetGlobalProperties.h',
'SmartDeviceLink/SDLResetGlobalPropertiesResponse.h',
Expand All @@ -304,6 +310,8 @@ sdefault.public_header_files = [
'SmartDeviceLink/SDLScrollableMessageResponse.h',
'SmartDeviceLink/SDLSeatControlCapabilities.h',
'SmartDeviceLink/SDLSeatControlData.h',
'SmartDeviceLink/SDLSeatLocation.h',
'SmartDeviceLink/SDLSeatLocationCapability.h',
'SmartDeviceLink/SDLSeatMemoryAction.h',
'SmartDeviceLink/SDLSeatMemoryActionType.h',
'SmartDeviceLink/SDLSupportedSeat.h',
Expand Down
34 changes: 32 additions & 2 deletions SmartDeviceLink/SDLAudioControlCapabilities.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
//

#import "SDLRPCMessage.h"
#import "SDLModuleInfo.h"

NS_ASSUME_NONNULL_BEGIN

Expand All @@ -13,7 +14,16 @@ NS_ASSUME_NONNULL_BEGIN
@param name The short friendly name of the audio control module.
@return An instance of the SDLAudioControlCapabilities class.
*/
- (instancetype)initWithModuleName:(NSString *)name;
- (instancetype)initWithModuleName:(NSString *)name __deprecated_msg("Use initWithModuleName:moduleInfo: instead");

/**
Constructs a newly allocated SDLAudioControlCapabilities object with audio control module name (max 100 chars)

@param name The short friendly name of the audio control module.
@param moduleInfo Information about a RC module, including its id.
@return An instance of the SDLAudioControlCapabilities class.
*/
- (instancetype)initWithModuleName:(NSString *)name moduleInfo:(nullable SDLModuleInfo *)moduleInfo;

/**
Constructs a newly allocated SDLAudioControlCapabilities object with given parameters
Expand All @@ -25,7 +35,20 @@ NS_ASSUME_NONNULL_BEGIN
@param equalizerMaxChannelID Equalizer channel ID (between 1-100).
@return An instance of the SDLAudioControlCapabilities class.
*/
- (instancetype)initWithModuleName:(NSString *)name sourceAvailable:(nullable NSNumber<SDLBool> *)sourceAvailable keepContextAvailable:(nullable NSNumber<SDLBool> *)keepContextAvailable volumeAvailable:(nullable NSNumber<SDLBool> *)volumeAvailable equalizerAvailable:(nullable NSNumber<SDLBool> *)equalizerAvailable equalizerMaxChannelID:(nullable NSNumber<SDLInt> *)equalizerMaxChannelID;
- (instancetype)initWithModuleName:(NSString *)name sourceAvailable:(nullable NSNumber<SDLBool> *)sourceAvailable keepContextAvailable:(nullable NSNumber<SDLBool> *)keepContextAvailable volumeAvailable:(nullable NSNumber<SDLBool> *)volumeAvailable equalizerAvailable:(nullable NSNumber<SDLBool> *)equalizerAvailable equalizerMaxChannelID:(nullable NSNumber<SDLInt> *)equalizerMaxChannelID __deprecated_msg("Use initWithModuleName:moduleInfo:sourceAvailable:keepContextAvailable:volumeAvailable:equalizerAvailable:equalizerMaxChannelID: instead");

/**
Constructs a newly allocated SDLAudioControlCapabilities object with given parameters

@param name The short friendly name of the audio control module.
@param moduleInfo Information about a RC module, including its id.
@param sourceAvailable Availability of the control of audio source.
@param volumeAvailable Availability of the volume of audio source.
@param equalizerAvailable Availability of the equalizer of audio source.
@param equalizerMaxChannelID Equalizer channel ID (between 1-100).
@return An instance of the SDLAudioControlCapabilities class.
*/
- (instancetype)initWithModuleName:(NSString *)name moduleInfo:(nullable SDLModuleInfo *)moduleInfo sourceAvailable:(nullable NSNumber<SDLBool> *)sourceAvailable keepContextAvailable:(nullable NSNumber<SDLBool> *)keepContextAvailable volumeAvailable:(nullable NSNumber<SDLBool> *)volumeAvailable equalizerAvailable:(nullable NSNumber<SDLBool> *)equalizerAvailable equalizerMaxChannelID:(nullable NSNumber<SDLInt> *)equalizerMaxChannelID;

/**
* @abstract The short friendly name of the audio control module.
Expand Down Expand Up @@ -71,6 +94,13 @@ NS_ASSUME_NONNULL_BEGIN
*/
@property (nullable, strong, nonatomic) NSNumber<SDLInt> *equalizerMaxChannelId;

/**
* Information about a RC module, including its id.
*
* Optional
*/
@property (nullable, strong, nonatomic) SDLModuleInfo *moduleInfo;

@end

NS_ASSUME_NONNULL_END
38 changes: 38 additions & 0 deletions SmartDeviceLink/SDLAudioControlCapabilities.m
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,17 @@ - (instancetype)initWithModuleName:(NSString *)name {
return self;
}

- (instancetype)initWithModuleName:(NSString *)name moduleInfo:(nullable SDLModuleInfo *)moduleInfo {
self = [self init];
if (!self) {
return nil;
}
self.moduleName = name;
self.moduleInfo = moduleInfo;

return self;
}

- (instancetype)initWithModuleName:(NSString *)name sourceAvailable:(nullable NSNumber<SDLBool> *)sourceAvailable keepContextAvailable:(nullable NSNumber<SDLBool> *)keepContextAvailable volumeAvailable:(nullable NSNumber<SDLBool> *)volumeAvailable equalizerAvailable:(nullable NSNumber<SDLBool> *)equalizerAvailable equalizerMaxChannelID:(nullable NSNumber<SDLInt> *)equalizerMaxChannelID {
self = [self init];
if (!self) {
Expand All @@ -34,6 +45,25 @@ - (instancetype)initWithModuleName:(NSString *)name sourceAvailable:(nullable NS
return self;
}

- (instancetype)initWithModuleName:(NSString *)name moduleInfo:(nullable SDLModuleInfo *)moduleInfo sourceAvailable:(nullable NSNumber<SDLBool> *)sourceAvailable keepContextAvailable:(nullable NSNumber<SDLBool> *)keepContextAvailable volumeAvailable:(nullable NSNumber<SDLBool> *)volumeAvailable equalizerAvailable:(nullable NSNumber<SDLBool> *)equalizerAvailable equalizerMaxChannelID:(nullable NSNumber<SDLInt> *)equalizerMaxChannelID {
self = [self init];
if (!self) {
return nil;
}

self.moduleName = name;
self.moduleInfo = moduleInfo;
self.sourceAvailable = sourceAvailable;
self.keepContextAvailable = keepContextAvailable;
self.volumeAvailable = volumeAvailable;
self.equalizerAvailable = equalizerAvailable;
self.equalizerMaxChannelId = equalizerMaxChannelID;

return self;

}


- (void)setModuleName:(NSString *)moduleName {
[self.store sdl_setObject:moduleName forName:SDLRPCParameterNameModuleName];
}
Expand Down Expand Up @@ -83,6 +113,14 @@ - (void)setEqualizerMaxChannelId:(nullable NSNumber<SDLInt> *)equalizerMaxChanne
return [self.store sdl_objectForName:SDLRPCParameterNameEqualizerMaxChannelId ofClass:NSNumber.class error:nil];
}

- (void)setModuleInfo:(nullable SDLModuleInfo *)moduleInfo {
[self.store sdl_setObject:moduleInfo forName:SDLRPCParameterNameModuleInfo];
}

- (nullable SDLModuleInfo *)moduleInfo {
return [self.store sdl_objectForName:SDLRPCParameterNameModuleInfo ofClass:SDLModuleInfo.class error:nil];
}

@end

NS_ASSUME_NONNULL_END
8 changes: 8 additions & 0 deletions SmartDeviceLink/SDLButtonCapabilities.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
#import "SDLRPCMessage.h"

#import "SDLButtonName.h"
#import "SDLModuleInfo.h"


/**
Expand Down Expand Up @@ -44,6 +45,13 @@ NS_ASSUME_NONNULL_BEGIN
*/
@property (strong, nonatomic) NSNumber<SDLBool> *upDownAvailable;

/**
* Information about a RC module, including its id.
*
* Optional
*/
@property (nullable, strong, nonatomic) SDLModuleInfo *moduleInfo;

@end

NS_ASSUME_NONNULL_END
8 changes: 8 additions & 0 deletions SmartDeviceLink/SDLButtonCapabilities.m
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,14 @@ - (void)setUpDownAvailable:(NSNumber<SDLBool> *)upDownAvailable {
return [self.store sdl_objectForName:SDLRPCParameterNameUpDownAvailable ofClass:NSNumber.class error:&error];
}

- (void)setModuleInfo:(nullable SDLModuleInfo *)moduleInfo {
[self.store sdl_setObject:moduleInfo forName:SDLRPCParameterNameModuleInfo];
}

- (nullable SDLModuleInfo *)moduleInfo {
return [self.store sdl_objectForName:SDLRPCParameterNameModuleInfo ofClass:SDLModuleInfo.class error:nil];
}

@end

NS_ASSUME_NONNULL_END
11 changes: 10 additions & 1 deletion SmartDeviceLink/SDLButtonPress.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,23 @@ NS_ASSUME_NONNULL_BEGIN

@interface SDLButtonPress : SDLRPCRequest

- (instancetype)initWithButtonName:(SDLButtonName)buttonName moduleType:(SDLModuleType) moduleType;
- (instancetype)initWithButtonName:(SDLButtonName)buttonName moduleType:(SDLModuleType)moduleType __deprecated_msg(("Use initWithButtonName:moduleType:moduleId: instead"));;

- (instancetype)initWithButtonName:(SDLButtonName)buttonName moduleType:(SDLModuleType)moduleType moduleId:(nullable NSString *)moduleId;

/**
* The module where the button should be pressed.
*
*/
@property (strong, nonatomic) SDLModuleType moduleType;

/**
* Id of a module, published by System Capability.
*
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why was a convince init not added that includes the menuID?

* Optional
*/
@property (nullable, strong, nonatomic) NSString *moduleId;

/**
* The name of supported RC climate or radio button.
*
Expand Down
24 changes: 23 additions & 1 deletion SmartDeviceLink/SDLButtonPress.m
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ - (instancetype)init {
}
#pragma clang diagnostic pop

- (instancetype)initWithButtonName:(SDLButtonName) buttonName moduleType:(SDLModuleType) moduleType {
- (instancetype)initWithButtonName:(SDLButtonName) buttonName moduleType:(SDLModuleType)moduleType {
self = [self init];
if (!self) {
return nil;
Expand All @@ -32,6 +32,19 @@ - (instancetype)initWithButtonName:(SDLButtonName) buttonName moduleType:(SDLMod
return self;
}

- (instancetype)initWithButtonName:(SDLButtonName)buttonName moduleType:(SDLModuleType)moduleType moduleId:(nullable NSString *)moduleId {
self = [self init];
if (!self) {
return nil;
}

self.buttonName = buttonName;
self.moduleType = moduleType;
self.moduleId = moduleId;

return self;
}

- (void)setModuleType:(SDLModuleType)moduleType {
[self.parameters sdl_setObject:moduleType forName:SDLRPCParameterNameModuleType];
}
Expand Down Expand Up @@ -59,5 +72,14 @@ - (SDLButtonPressMode)buttonPressMode {
return [self.parameters sdl_enumForName:SDLRPCParameterNameButtonPressMode error:&error];
}

- (void)setModuleId:(nullable NSString *)moduleId {
[self.parameters sdl_setObject:moduleId forName:SDLRPCParameterNameModuleId];
}

- (nullable NSString *)moduleId {
NSError *error = nil;
return [self.parameters sdl_objectForName:SDLRPCParameterNameModuleId ofClass:NSString.class error:&error];
}

@end
NS_ASSUME_NONNULL_END
12 changes: 11 additions & 1 deletion SmartDeviceLink/SDLClimateControlCapabilities.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
#import "SDLRPCMessage.h"
#import "SDLDefrostZone.h"
#import "SDLVentilationMode.h"
#import "SDLModuleInfo.h"

NS_ASSUME_NONNULL_BEGIN

Expand All @@ -17,7 +18,9 @@ NS_ASSUME_NONNULL_BEGIN

- (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;
- (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 __deprecated_msg("Use initWithModuleName: moduleId:fanSpeedAvailable:desiredTemperatureAvailable:acEnableAvailable:acMaxEnableAvailable:circulateAirAvailable:autoModeEnableAvailable: dualModeEnableAvailable:defrostZoneAvailable:ventilationModeAvailable: heatedSteeringWheelAvailable:heatedWindshieldAvailable: heatedRearWindowAvailable:heatedMirrorsAvailable: climateEnableAvailable: instead");

- (instancetype)initWithModuleName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo 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.
Expand Down Expand Up @@ -156,6 +159,13 @@ NS_ASSUME_NONNULL_BEGIN
*/
@property (nullable, strong, nonatomic) NSNumber<SDLBool> *climateEnableAvailable;

/**
* Information about a RC module, including its id.
*
* Optional
*/
@property (nullable, strong, nonatomic) SDLModuleInfo *moduleInfo;

@end

NS_ASSUME_NONNULL_END
Loading