summaryrefslogtreecommitdiff
path: root/SmartDeviceLink
diff options
context:
space:
mode:
authorjames <james@jamess-MacBook-Pro.local>2017-08-14 13:04:34 -0400
committerjames <james@jamess-MacBook-Pro.local>2017-08-14 13:04:34 -0400
commit95dbde54cbc03a0aec2901f98cb74758756bc32f (patch)
tree822c2df7e750dcd01ee1c51f57fac37f5733fac1 /SmartDeviceLink
parent88190e21888425beceb1ca61c51f69b7968b8633 (diff)
downloadsdl_ios-95dbde54cbc03a0aec2901f98cb74758756bc32f.tar.gz
Added remote control RPCs and unit tests
Diffstat (limited to 'SmartDeviceLink')
-rw-r--r--SmartDeviceLink/SDLAppHMIType.h4
-rw-r--r--SmartDeviceLink/SDLAppHMIType.m1
-rw-r--r--SmartDeviceLink/SDLButtonName.h109
-rw-r--r--SmartDeviceLink/SDLButtonName.m18
-rw-r--r--SmartDeviceLink/SDLButtonPress.h35
-rw-r--r--SmartDeviceLink/SDLButtonPress.m46
-rw-r--r--SmartDeviceLink/SDLButtonPressResponse.h13
-rw-r--r--SmartDeviceLink/SDLButtonPressResponse.m20
-rw-r--r--SmartDeviceLink/SDLClimateControlCapabilities.h113
-rw-r--r--SmartDeviceLink/SDLClimateControlCapabilities.m121
-rw-r--r--SmartDeviceLink/SDLClimateControlData.h88
-rw-r--r--SmartDeviceLink/SDLClimateControlData.m96
-rw-r--r--SmartDeviceLink/SDLDefrostZone.h33
-rw-r--r--SmartDeviceLink/SDLDefrostZone.m10
-rw-r--r--SmartDeviceLink/SDLFunctionID.m8
-rw-r--r--SmartDeviceLink/SDLGetInteriorVehicleData.h29
-rw-r--r--SmartDeviceLink/SDLGetInteriorVehicleData.m44
-rw-r--r--SmartDeviceLink/SDLGetInteriorVehicleDataResponse.h26
-rw-r--r--SmartDeviceLink/SDLGetInteriorVehicleDataResponse.m40
-rw-r--r--SmartDeviceLink/SDLModuleData.h27
-rw-r--r--SmartDeviceLink/SDLModuleData.m40
-rw-r--r--SmartDeviceLink/SDLModuleType.h18
-rw-r--r--SmartDeviceLink/SDLModuleType.m8
-rw-r--r--SmartDeviceLink/SDLNames.h66
-rw-r--r--SmartDeviceLink/SDLNames.m68
-rw-r--r--SmartDeviceLink/SDLNotificationConstants.h12
-rw-r--r--SmartDeviceLink/SDLNotificationConstants.m7
-rw-r--r--SmartDeviceLink/SDLNotificationDispatcher.m20
-rw-r--r--SmartDeviceLink/SDLOnInteriorVehicleData.h16
-rw-r--r--SmartDeviceLink/SDLOnInteriorVehicleData.m31
-rw-r--r--SmartDeviceLink/SDLProxyListener.h8
-rw-r--r--SmartDeviceLink/SDLRadioBand.h26
-rw-r--r--SmartDeviceLink/SDLRadioBand.m9
-rw-r--r--SmartDeviceLink/SDLRadioControlCapabilities.h96
-rw-r--r--SmartDeviceLink/SDLRadioControlCapabilities.m103
-rw-r--r--SmartDeviceLink/SDLRadioControlData.h77
-rw-r--r--SmartDeviceLink/SDLRadioControlData.m96
-rw-r--r--SmartDeviceLink/SDLRadioState.h32
-rw-r--r--SmartDeviceLink/SDLRadioState.m10
-rw-r--r--SmartDeviceLink/SDLRemoteControlCapabilities.h39
-rw-r--r--SmartDeviceLink/SDLRemoteControlCapabilities.m44
-rw-r--r--SmartDeviceLink/SDLResult.h10
-rw-r--r--SmartDeviceLink/SDLResult.m3
-rw-r--r--SmartDeviceLink/SDLSetInteriorVehicleData.h20
-rw-r--r--SmartDeviceLink/SDLSetInteriorVehicleData.m30
-rw-r--r--SmartDeviceLink/SDLSetInteriorVehicleDataResponse.h20
-rw-r--r--SmartDeviceLink/SDLSetInteriorVehicleDataResponse.m30
-rw-r--r--SmartDeviceLink/SDLSystemCapability.h6
-rw-r--r--SmartDeviceLink/SDLSystemCapability.m28
-rw-r--r--SmartDeviceLink/SDLSystemCapabilityType.h12
-rw-r--r--SmartDeviceLink/SDLSystemCapabilityType.m2
-rw-r--r--SmartDeviceLink/SDLTemperature.h27
-rw-r--r--SmartDeviceLink/SDLTemperature.m31
-rw-r--r--SmartDeviceLink/SDLTemperatureUnit.h19
-rw-r--r--SmartDeviceLink/SDLTemperatureUnit.m8
-rw-r--r--SmartDeviceLink/SDLVentilationMode.h28
-rw-r--r--SmartDeviceLink/SDLVentilationMode.m11
-rw-r--r--SmartDeviceLink/SmartDeviceLink.h21
58 files changed, 1974 insertions, 39 deletions
diff --git a/SmartDeviceLink/SDLAppHMIType.h b/SmartDeviceLink/SDLAppHMIType.h
index 2c02fe498..021f324e3 100644
--- a/SmartDeviceLink/SDLAppHMIType.h
+++ b/SmartDeviceLink/SDLAppHMIType.h
@@ -62,3 +62,7 @@ extern SDLAppHMIType const SDLAppHMITypeTesting;
* @abstract System App
*/
extern SDLAppHMIType const SDLAppHMITypeSystem;
+
+/**
+ * @abstract Remote control */
+extern SDLAppHMIType const SDLAppHMITypeRemoteControl;
diff --git a/SmartDeviceLink/SDLAppHMIType.m b/SmartDeviceLink/SDLAppHMIType.m
index 5ce899cf5..070ad089b 100644
--- a/SmartDeviceLink/SDLAppHMIType.m
+++ b/SmartDeviceLink/SDLAppHMIType.m
@@ -15,3 +15,4 @@ SDLAppHMIType const SDLAppHMITypeProjection = @"PROJECTION";
SDLAppHMIType const SDLAppHMITypeBackgroundProcess = @"BACKGROUND_PROCESS";
SDLAppHMIType const SDLAppHMITypeTesting = @"TESTING";
SDLAppHMIType const SDLAppHMITypeSystem = @"SYSTEM";
+SDLAppHMIType const SDLAppHMITypeRemoteControl = @"REMOTE_CONTROL";
diff --git a/SmartDeviceLink/SDLButtonName.h b/SmartDeviceLink/SDLButtonName.h
index c86bd4dba..8746c9444 100644
--- a/SmartDeviceLink/SDLButtonName.h
+++ b/SmartDeviceLink/SDLButtonName.h
@@ -100,4 +100,113 @@ extern SDLButtonName const SDLButtonNamePreset9;
extern SDLButtonName const SDLButtonNameCustomButton;
+/**
+ * @abstract Represents the SEARCH button.
+ *
+ */
extern SDLButtonName const SDLButtonNameSearch;
+
+
+#pragma mark - Climate Buttons
+
+/**
+ * @abstract Represents AC max button *
+ */
+extern SDLButtonName const SDLButtonNameAcMax;
+
+
+/**
+ * @abstract Represents AC button *
+ */
+extern SDLButtonName const SDLButtonNameAc;
+
+
+/**
+ * @abstract Represents a Recirculate button
+ */
+extern SDLButtonName const SDLButtonNameRecirculate;
+
+/**
+ * @abstract Represents a Fan up button
+ */
+extern SDLButtonName const SDLButtonNameFanUp;
+
+/**
+ * @abstract Represents a fan down button
+ */
+extern SDLButtonName const SDLButtonNameFanDown;
+
+/**
+ * @abstract Represents a temperature up button
+ */
+extern SDLButtonName const SDLButtonNameTempUp;
+
+/**
+ * @abstract Represents a temperature down button
+ */
+extern SDLButtonName const SDLButtonNameTempDown;
+
+/**
+ * @abstract Represents a Defrost max button.
+ *
+ */
+extern SDLButtonName const SDLButtonNameDefrostMax;
+
+/**
+ * @abstract Represents a Defrost button.
+ *
+ */
+extern SDLButtonName const SDLButtonNameDefrost;
+
+/**
+ * @abstract Represents a Defrost rear button.
+ *
+ */
+extern SDLButtonName const SDLButtonNameDefrostRear;
+
+/**
+ * @abstract Represents a Upper Vent button.
+ *
+ */
+extern SDLButtonName const SDLButtonNameUpperVent;
+
+/**
+ * @abstract Represents a Lower vent button.
+ *
+ */
+extern SDLButtonName const SDLButtonNameLowerVent;
+
+#pragma mark - Radio Buttons
+/**
+ * @abstract Represents a volume up button.
+ */
+extern SDLButtonName const SDLButtonNameVolumeUp;
+
+/**
+ * @abstract Represents a volume down button.
+ *
+ */
+extern SDLButtonName const SDLButtonNameVolumeDown;
+
+/**
+ * @abstract Represents a Eject Button.
+ *
+ */
+extern SDLButtonName const SDLButtonNameEject;
+
+/**
+ * @abstract Represents a Source button.
+ *
+ */
+extern SDLButtonName const SDLButtonNameSource;
+
+/**
+ * @abstract Represents a SHUFFLE button.
+ *
+ */
+extern SDLButtonName const SDLButtonNameShuffle;
+
+/**
+ * @abstract Represents a Repeat button *
+ */
+extern SDLButtonName const SDLButtonNameRepeat;
diff --git a/SmartDeviceLink/SDLButtonName.m b/SmartDeviceLink/SDLButtonName.m
index 23ac32eb9..d89400fc2 100644
--- a/SmartDeviceLink/SDLButtonName.m
+++ b/SmartDeviceLink/SDLButtonName.m
@@ -21,3 +21,21 @@ SDLButtonName const SDLButtonNamePreset8 = @"PRESET_8";
SDLButtonName const SDLButtonNamePreset9 = @"PRESET_9";
SDLButtonName const SDLButtonNameCustomButton = @"CUSTOM_BUTTON";
SDLButtonName const SDLButtonNameSearch = @"SEARCH";
+SDLButtonName const SDLButtonNameAcMax = @"AC_MAX";
+SDLButtonName const SDLButtonNameAc = @"AC";
+SDLButtonName const SDLButtonNameRecirculate = @"RECIRCULATE";
+SDLButtonName const SDLButtonNameFanUp = @"FAN_UP";
+SDLButtonName const SDLButtonNameFanDown = @"FAN_DOWN";
+SDLButtonName const SDLButtonNameTempUp = @"TEMP_UP";
+SDLButtonName const SDLButtonNameTempDown = @"TEMP_DOWN";
+SDLButtonName const SDLButtonNameDefrostMax = @"DEFROST_MAX";
+SDLButtonName const SDLButtonNameDefrostRear = @"DEFROST_REAR";
+SDLButtonName const SDLButtonNameDefrost = @"DEFROST";
+SDLButtonName const SDLButtonNameUpperVent = @"UPPER_VENT";
+SDLButtonName const SDLButtonNameLowerVent = @"LOWER_VENT";
+SDLButtonName const SDLButtonNameVolumeUp = @"VOLUME_UP";
+SDLButtonName const SDLButtonNameVolumeDown = @"VOLUME_DOWN";
+SDLButtonName const SDLButtonNameEject = @"EJECT";
+SDLButtonName const SDLButtonNameSource = @"SOURCE";
+SDLButtonName const SDLButtonNameShuffle = @"SHUFFLE";
+SDLButtonName const SDLButtonNameRepeat = @"REPEAT";
diff --git a/SmartDeviceLink/SDLButtonPress.h b/SmartDeviceLink/SDLButtonPress.h
new file mode 100644
index 000000000..a1aeb714f
--- /dev/null
+++ b/SmartDeviceLink/SDLButtonPress.h
@@ -0,0 +1,35 @@
+//
+// SDLButtonPress.h
+//
+
+#import "SDLRPCRequest.h"
+#import "SDLModuleType.h"
+#import "SDLButtonName.h"
+#import "SDLButtonPressMode.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+
+@interface SDLButtonPress : SDLRPCRequest
+
+/**
+ * The module where the button should be pressed.
+ *
+ */
+@property (strong, nonatomic) SDLModuleType moduleType;
+
+/**
+ * The name of supported RC climate or radio button.
+ *
+ */
+@property (strong, nonatomic) SDLButtonName buttonName;
+
+/**
+ * Indicates whether this is a LONG or SHORT button press event.
+ *
+ */
+@property (strong, nonatomic) SDLButtonPressMode buttonPressMode;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLButtonPress.m b/SmartDeviceLink/SDLButtonPress.m
new file mode 100644
index 000000000..21f89b6a8
--- /dev/null
+++ b/SmartDeviceLink/SDLButtonPress.m
@@ -0,0 +1,46 @@
+//
+// SDLButtonPress.m
+//
+
+#import "SDLButtonPress.h"
+#import "SDLNames.h"
+#import "SDLButtonName.h"
+#import "NSMutableDictionary+Store.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@implementation SDLButtonPress
+
+- (instancetype)init {
+ if (self = [super initWithName:SDLNameButtonPress]) {
+ }
+ return self;
+}
+
+
+- (void)setModuleType:(SDLModuleType )moduleType {
+ [parameters sdl_setObject:moduleType forName:SDLNameModuleType];
+}
+
+- (SDLModuleType )moduleType {
+ return [parameters sdl_objectForName:SDLNameModuleType];
+}
+
+- (void)setButtonName:(SDLButtonName)buttonName {
+ [parameters sdl_setObject:buttonName forName:SDLNameButtonName];
+}
+
+- (SDLButtonName)buttonName {
+ return [parameters sdl_objectForName:SDLNameButtonName];
+}
+
+- (void)setButtonPressMode:(SDLButtonPressMode)buttonPressMode {
+ [parameters sdl_setObject:buttonPressMode forName:SDLNameButtonPressMode];
+}
+
+- (SDLButtonPressMode)buttonPressMode {
+ return [parameters sdl_objectForName:SDLNameButtonPressMode];
+}
+
+@end
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLButtonPressResponse.h b/SmartDeviceLink/SDLButtonPressResponse.h
new file mode 100644
index 000000000..7a717d310
--- /dev/null
+++ b/SmartDeviceLink/SDLButtonPressResponse.h
@@ -0,0 +1,13 @@
+//
+// SDLButtonPressResponse.h
+//
+
+#import "SDLRPCResponse.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface SDLButtonPressResponse : SDLRPCResponse
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLButtonPressResponse.m b/SmartDeviceLink/SDLButtonPressResponse.m
new file mode 100644
index 000000000..3e768a872
--- /dev/null
+++ b/SmartDeviceLink/SDLButtonPressResponse.m
@@ -0,0 +1,20 @@
+//
+// SDLButtonPressResponse.m
+//
+
+#import "SDLButtonPressResponse.h"
+#import "SDLNames.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@implementation SDLButtonPressResponse
+
+- (instancetype)init {
+ if (self = [super initWithName:SDLNameButtonPress]) {
+ }
+ return self;
+}
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLClimateControlCapabilities.h b/SmartDeviceLink/SDLClimateControlCapabilities.h
new file mode 100644
index 000000000..3dc3aea3c
--- /dev/null
+++ b/SmartDeviceLink/SDLClimateControlCapabilities.h
@@ -0,0 +1,113 @@
+//
+// SDLClimateControlCapabilities.h
+//
+
+#import "SDLRPCMessage.h"
+#import "SDLDefrostZone.h"
+#import "SDLVentilationMode.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ * Contains information about a climate control module's capabilities.
+ */
+@interface SDLClimateControlCapabilities : SDLRPCStruct
+
+/**
+ * @abstractThe short friendly name of the climate control module.
+ * It should not be used to identify a module by mobile application.
+ *
+ * Max string length 100 chars
+ */
+@property (strong, nonatomic) NSString *moduleName;
+
+/**
+ * @abstract Availability of the control of fan speed.
+ * True: Available, False: Not Available, Not present: Not Available.
+ *
+ * Optional, Boolean
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *fanSpeedAvailable;
+
+/**
+ * @abstract Availability of the control of desired temperature.
+ * True: Available, False: Not Available, Not present: Not Available.
+ *
+ * Optional, Boolean
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *desiredTemperatureAvailable;
+
+/**
+ * @abstract Availability of the control of turn on/off AC.
+ * True: Available, False: Not Available, Not present: Not Available.
+ *
+ * Optional, Boolean
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *acEnableAvailable;
+
+/**
+ * @abstract Availability of the control of enable/disable air conditioning is ON on the maximum level.
+ * True: Available, False: Not Available, Not present: Not Available.
+ *
+ * Optional, Boolean
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *acMaxEnableAvailable;
+
+/**
+ * @abstract Availability of the control of enable/disable circulate Air mode.
+ * True: Available, False: Not Available, Not present: Not Available.
+ *
+ * Optional, Boolean
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *circulateAirEnableAvailable;
+
+/**
+ * @abstract Availability of the control of enable/disable auto mode.
+ * True: Available, False: Not Available, Not present: Not Available.
+ *
+ * Optional, Boolean
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *autoModeEnableAvailable;
+
+/**
+ * @abstract Availability of the control of enable/disable dual mode.
+ * True: Available, False: Not Available, Not present: Not Available.
+ *
+ * Optional, Boolean
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *dualModeEnableAvailable;
+
+/**
+ * @abstract Availability of the control of defrost zones.
+ * True: Available, False: Not Available, Not present: Not Available.
+ *
+ * Optional, Boolean
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *defrostZoneAvailable;
+
+/**
+ * @abstract A set of all defrost zones that are controllable.
+ *
+ * Optional, NSArray of type SDLDefrostZone minsize="1" maxsize="100"
+ */
+@property (nullable, strong, nonatomic) NSArray<SDLDefrostZone > *defrostZone;
+
+/**
+ * @abstract Availability of the control of air ventilation mode.
+ * True: Available, False: Not Available, Not present: Not Available.
+ *
+ * Optional, Boolean
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *ventilationModeAvailable;
+
+/**
+ * @abstract A set of all ventilation modes that are controllable.
+ * True: Available, False: Not Available, Not present: Not Available.
+ *
+ * Optional, NSArray of type SDLVentilationMode minsize="1" maxsize="100"
+ */
+@property (nullable, strong, nonatomic) NSArray<SDLVentilationMode> *ventilationMode;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLClimateControlCapabilities.m b/SmartDeviceLink/SDLClimateControlCapabilities.m
new file mode 100644
index 000000000..2f7b881ba
--- /dev/null
+++ b/SmartDeviceLink/SDLClimateControlCapabilities.m
@@ -0,0 +1,121 @@
+//
+// SDLClimateControlCapabilities.m
+//
+
+#import "SDLClimateControlCapabilities.h"
+#import "SDLNames.h"
+#import "NSMutableDictionary+Store.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@implementation SDLClimateControlCapabilities
+
+- (void)setModuleName:(NSString *)moduleName {
+ [store sdl_setObject:moduleName forName:SDLNameModuleName];
+}
+
+- (NSString *)moduleName {
+ return [store sdl_objectForName:SDLNameModuleName];
+}
+
+- (void)setFanSpeedAvailable:(nullable NSNumber<SDLBool> *)fanSpeedAvailable {
+ [store sdl_setObject:fanSpeedAvailable forName:SDLNameFanSpeedAvailable];
+}
+
+- (nullable NSNumber<SDLBool> *)fanSpeedAvailable {
+ return [store sdl_objectForName:SDLNameFanSpeedAvailable];
+
+}
+
+- (void)setDesiredTemperatureAvailable:(nullable NSNumber<SDLBool> *)desiredTemperatureAvailable {
+ [store sdl_setObject:desiredTemperatureAvailable forName:SDLNameDesiredTemperatureAvailable];
+}
+
+- (nullable NSNumber<SDLBool> *)desiredTemperatureAvailable {
+ return [store sdl_objectForName:SDLNameDesiredTemperatureAvailable];
+
+}
+
+- (void)setAcEnableAvailable:(nullable NSNumber<SDLBool> *)acEnableAvailable {
+ [store sdl_setObject:acEnableAvailable forName:SDLNameAcEnableAvailable];
+}
+
+- (nullable NSNumber<SDLBool> *)acEnableAvailable {
+ return [store sdl_objectForName:SDLNameAcEnableAvailable];
+
+}
+
+- (void)setAcMaxEnableAvailable:(nullable NSNumber<SDLBool> *)acMaxEnableAvailable {
+ [store sdl_setObject:acMaxEnableAvailable forName:SDLNameAcMaxEnableAvailable];
+}
+
+- (nullable NSNumber<SDLBool> *)acMaxEnableAvailable {
+ return [store sdl_objectForName:SDLNameAcMaxEnableAvailable];
+
+}
+
+- (void)setCirculateAirEnableAvailable:(nullable NSNumber<SDLBool> *)circulateAirEnableAvailable {
+ [store sdl_setObject:circulateAirEnableAvailable forName:SDLNameCirculateAirEnableAvailable];
+}
+
+- (nullable NSNumber<SDLBool> *)circulateAirEnableAvailable {
+ return [store sdl_objectForName:SDLNameCirculateAirEnableAvailable];
+
+}
+
+- (void)setAutoModeEnableAvailable:(nullable NSNumber<SDLBool> *)autoModeEnableAvailable {
+ [store sdl_setObject:autoModeEnableAvailable forName:SDLNameAutoModeEnableAvailable];
+}
+
+- (nullable NSNumber<SDLBool> *)autoModeEnableAvailable {
+ return [store sdl_objectForName:SDLNameAutoModeEnableAvailable];
+
+}
+
+- (void)setDualModeEnableAvailable:(nullable NSNumber<SDLBool> *)dualModeEnableAvailable {
+ [store sdl_setObject:dualModeEnableAvailable forName:SDLNameDualModeEnableAvailable];
+}
+
+- (nullable NSNumber<SDLBool> *)dualModeEnableAvailable {
+ return [store sdl_objectForName:SDLNameDualModeEnableAvailable];
+
+}
+
+- (void)setDefrostZoneAvailable:(nullable NSNumber<SDLBool> *)defrostZoneAvailable {
+ [store sdl_setObject:defrostZoneAvailable forName:SDLNameDefrostZoneAvailable];
+}
+
+- (nullable NSNumber<SDLBool> *)defrostZoneAvailable {
+ return [store sdl_objectForName:SDLNameDefrostZoneAvailable];
+
+}
+
+- (void)setDefrostZone:(nullable NSArray <SDLDefrostZone>*)defrostZone {
+ [store sdl_setObject:defrostZone forName:SDLNameDefrostZone];
+}
+
+- (nullable NSArray<SDLDefrostZone> *)defrostZone {
+ return [store sdl_objectForName:SDLNameDefrostZone];
+
+}
+
+- (void)setVentilationModeAvailable:(nullable NSNumber<SDLBool> *)ventilationModeAvailable {
+ [store sdl_setObject:ventilationModeAvailable forName:SDLNameVentilationModeAvailable];
+}
+
+- (nullable NSNumber<SDLBool> *)ventilationModeAvailable {
+ return [store sdl_objectForName:SDLNameVentilationModeAvailable];
+}
+
+- (void)setVentilationMode:(nullable NSArray<SDLVentilationMode> *)ventilationMode {
+ [store sdl_setObject:ventilationMode forName:SDLNameVentilationMode];
+}
+
+- (nullable NSArray<SDLVentilationMode> *)ventilationMode {
+ return [store sdl_objectForName:SDLNameVentilationMode];
+}
+
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLClimateControlData.h b/SmartDeviceLink/SDLClimateControlData.h
new file mode 100644
index 000000000..487b38277
--- /dev/null
+++ b/SmartDeviceLink/SDLClimateControlData.h
@@ -0,0 +1,88 @@
+//
+// SDLClimateControlData.h
+//
+
+#import "SDLRPCMessage.h"
+#import "SDLDefrostZone.h"
+#import "SDLVentilationMode.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@class SDLTemperature;
+
+
+@interface SDLClimateControlData : SDLRPCStruct
+
+/**
+ * @abstract Speed of Fan in integer
+ *
+ * Optional, MinValue- 0 MaxValue= 100
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLInt> *fanSpeed;
+
+/**
+ * @abstractThe Current Temperature in SDLTemperature
+ *
+ * Optional
+ */
+@property (nullable, strong, nonatomic) SDLTemperature *currentTemperature;
+
+/**
+ * @abstract Desired Temperature in SDLTemperature
+ *
+ * Optional
+ */
+@property (nullable, strong, nonatomic) SDLTemperature *desiredTemperature;
+
+/**
+ * @abstract Represents if AC is enabled.
+ *
+ * Optional, Boolean
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *acEnable;
+
+/**
+ * @abstract Represents if circulation of air is enabled.
+ *
+ * Optional, Boolean
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *circulateAirEnable;
+
+/**
+ * @abstract Represents if auto mode is enabled.
+ *
+ * Optional, Boolean
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *autoModeEnable;
+
+/**
+ * @abstract Represents the kind of defrost zone
+ *
+ * Optional, SDLDefrostZone
+ */
+@property (nullable, strong, nonatomic) SDLDefrostZone defrostZone;
+
+/**
+ * @abstract Represents if dual mode is enabled.
+ *
+ * Optional, Boolean
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *dualModeEnable;
+
+/**
+ * @abstract Represents if ac max is enabled.
+ *
+ * Optional, Boolean
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *acMaxEnable;
+
+/**
+ * @abstract Represents the kind of Ventilation zone
+ *
+ * Optional, SDLVentilationMode
+ */
+@property (nullable, strong, nonatomic) SDLVentilationMode ventilationMode;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLClimateControlData.m b/SmartDeviceLink/SDLClimateControlData.m
new file mode 100644
index 000000000..e093998ca
--- /dev/null
+++ b/SmartDeviceLink/SDLClimateControlData.m
@@ -0,0 +1,96 @@
+//
+// SDLClimateControlData.m
+//
+
+#import "SDLClimateControlData.h"
+#import "SDLNames.h"
+#import "SDLTemperature.h"
+#import "NSMutableDictionary+Store.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@implementation SDLClimateControlData
+
+- (void)setFanSpeed:(nullable NSNumber<SDLInt> *)fanSpeed {
+ [store sdl_setObject:fanSpeed forName:SDLNameFanSpeed];
+}
+
+- (nullable NSNumber<SDLInt> *)fanSpeed {
+ return [store sdl_objectForName:SDLNameFanSpeed];
+}
+
+- (void)setCurrentTemperature:(nullable SDLTemperature *)currentTemperature {
+ [store sdl_setObject:currentTemperature forName:SDLNameCurrentTemperature];
+}
+
+- (nullable SDLTemperature *)currentTemperature {
+ return [store sdl_objectForName:SDLNameCurrentTemperature];
+}
+
+- (void)setDesiredTemperature:(nullable SDLTemperature *)desiredTemperature {
+ [store sdl_setObject:desiredTemperature forName:SDLNameDesiredTemperature];
+}
+
+- (nullable SDLTemperature *)desiredTemperature {
+ return [store sdl_objectForName:SDLNameDesiredTemperature];
+}
+
+- (void)setAcEnable:(nullable NSNumber<SDLBool> *)acEnable {
+ [store sdl_setObject:acEnable forName:SDLNameAcEnable];
+}
+
+- (nullable NSNumber<SDLBool> *)acEnable {
+ return [store sdl_objectForName:SDLNameAcEnable];
+}
+
+- (void)setCirculateAirEnable:(nullable NSNumber<SDLBool> *)circulateAirEnable {
+ [store sdl_setObject:circulateAirEnable forName:SDLNameCirculateAirEnable];
+}
+
+- (nullable NSNumber<SDLBool> *)circulateAirEnable {
+ return [store sdl_objectForName:SDLNameCirculateAirEnable];
+}
+
+- (void)setAutoModeEnable:(nullable NSNumber<SDLBool> *)autoModeEnable {
+ [store sdl_setObject:autoModeEnable forName:SDLNameAutoModeEnable];
+}
+
+- (nullable NSNumber<SDLBool> *)autoModeEnable {
+ return [store sdl_objectForName:SDLNameAutoModeEnable];
+}
+
+- (void)setDefrostZone:(nullable SDLDefrostZone)defrostZone {
+ [store sdl_setObject:defrostZone forName:SDLNameDefrostZone];
+}
+
+- (nullable SDLDefrostZone)defrostZone {
+ return [store sdl_objectForName:SDLNameDefrostZone];
+}
+
+- (void)setDualModeEnable:(nullable NSNumber<SDLBool> *)dualModeEnable {
+ [store sdl_setObject:dualModeEnable forName:SDLNameDualModeEnable];
+}
+
+- (nullable NSNumber<SDLBool> *)dualModeEnable {
+ return [store sdl_objectForName:SDLNameDualModeEnable];
+}
+
+- (void)setAcMaxEnable:(nullable NSNumber<SDLBool> *)acMaxEnable {
+ [store sdl_setObject:acMaxEnable forName:SDLNameAcMaxEnable];
+}
+
+- (nullable NSNumber<SDLBool> *)acMaxEnable {
+ return [store sdl_objectForName:SDLNameAcMaxEnable];
+}
+
+- (void)setVentilationMode:(nullable SDLVentilationMode)ventilationMode {
+ [store sdl_setObject:ventilationMode forName:SDLNameVentilationMode];
+}
+
+- (nullable SDLVentilationMode)ventilationMode {
+ return [store sdl_objectForName:SDLNameVentilationMode];
+}
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLDefrostZone.h b/SmartDeviceLink/SDLDefrostZone.h
new file mode 100644
index 000000000..304ec1731
--- /dev/null
+++ b/SmartDeviceLink/SDLDefrostZone.h
@@ -0,0 +1,33 @@
+//
+// SDLDefrostZone.h
+//
+
+#import "SDLEnum.h"
+
+/**
+ * Enumeration listing possible defrost zones.
+ *
+ * @since SDL 2.0
+ */
+typedef SDLEnum SDLDefrostZone SDL_SWIFT_ENUM;
+
+/**
+ * @abstract A SDLDefrostZone with the value of *FRONT*
+ */
+extern SDLDefrostZone const SDLDefrostZoneFront;
+
+
+/**
+ * @abstract A SDLDefrostZone with the value of *REAR*
+ */
+extern SDLDefrostZone const SDLDefrostZoneRear;
+
+/**
+ * @abstract A SDLDefrostZone with the value of *All*
+ */
+extern SDLDefrostZone const SDLDefrostZoneALL;
+
+/**
+ * @abstract A SDLDefrostZone with the value of *None*
+ */
+extern SDLDefrostZone const SDLDefrostZoneNone;
diff --git a/SmartDeviceLink/SDLDefrostZone.m b/SmartDeviceLink/SDLDefrostZone.m
new file mode 100644
index 000000000..3240621f9
--- /dev/null
+++ b/SmartDeviceLink/SDLDefrostZone.m
@@ -0,0 +1,10 @@
+//
+// SDLDefrostZone.m
+//
+
+#import "SDLDefrostZone.h"
+
+SDLDefrostZone const SDLDefrostZoneFront = @"FRONT";
+SDLDefrostZone const SDLDefrostZoneRear = @"REAR";
+SDLDefrostZone const SDLDefrostZoneALL = @"ALL";
+SDLDefrostZone const SDLDefrostZoneNone = @"NONE";
diff --git a/SmartDeviceLink/SDLFunctionID.m b/SmartDeviceLink/SDLFunctionID.m
index 58ff9c479..831972c6a 100644
--- a/SmartDeviceLink/SDLFunctionID.m
+++ b/SmartDeviceLink/SDLFunctionID.m
@@ -28,7 +28,7 @@ NS_ASSUME_NONNULL_BEGIN
if (!self) {
return nil;
}
-
+
self.functionIds = @{
@0: SDLNameReserved,
@1: SDLNameRegisterAppInterface,
@@ -71,6 +71,9 @@ NS_ASSUME_NONNULL_BEGIN
@38: SDLNameSystemRequest,
@39: SDLNameSendLocation,
@40: SDLNameDialNumber,
+ @41: SDLNameButtonPress,
+ @43: SDLNameGetInteriorVehicleData,
+ @44: SDLNameSetInteriorVehicleData,
@45: SDLNameGetWaypoints,
@46: SDLNameSubscribeWaypoints,
@47: SDLNameUnsubscribeWaypoints,
@@ -90,13 +93,14 @@ NS_ASSUME_NONNULL_BEGIN
@32780: SDLNameOnTouchEvent,
@32781: SDLNameOnSystemRequest,
@32782: SDLNameOnHashChange,
+ @32783: SDLNameOnInteriorVehicleData,
@32784: SDLNameOnWaypointChange,
@65536: SDLNameEncodedSyncPData,
@65537: SDLNameSyncPData,
@98304: SDLNameOnEncodedSyncPData,
@98305: SDLNameOnSyncPData
};
-
+
return self;
}
diff --git a/SmartDeviceLink/SDLGetInteriorVehicleData.h b/SmartDeviceLink/SDLGetInteriorVehicleData.h
new file mode 100644
index 000000000..f87f5bf81
--- /dev/null
+++ b/SmartDeviceLink/SDLGetInteriorVehicleData.h
@@ -0,0 +1,29 @@
+//
+// SDLGetInteriorVehicleData.h
+//
+
+#import "SDLRPCRequest.h"
+#import "SDLModuleType.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface SDLGetInteriorVehicleData : SDLRPCRequest
+
+/**
+ * The type of a RC module to retrieve module data from the vehicle.
+ * In the future, this should be the Identification of a module.
+ *
+ */
+@property (strong, nonatomic) SDLModuleType moduleType;
+
+/**
+ * If subscribe is true, the head unit will register onInteriorVehicleData notifications for the requested moduelType.
+ * If subscribe is false, the head unit will unregister onInteriorVehicleData notifications for the requested moduelType.
+ *
+ * optional, Boolean, default Value = false
+ */
+@property (strong, nonatomic) NSNumber<SDLBool> *subscribe;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLGetInteriorVehicleData.m b/SmartDeviceLink/SDLGetInteriorVehicleData.m
new file mode 100644
index 000000000..70c85f869
--- /dev/null
+++ b/SmartDeviceLink/SDLGetInteriorVehicleData.m
@@ -0,0 +1,44 @@
+//
+// SDLGetInteriorVehicleData.m
+//
+
+#import "SDLGetInteriorVehicleData.h"
+#import "SDLNames.h"
+#import "NSMutableDictionary+Store.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@implementation SDLGetInteriorVehicleData
+
+- (instancetype)init {
+ if (self = [super initWithName:SDLNameGetInteriorVehicleData]) {
+ }
+ return self;
+}
+
+- (instancetype)initWithDictionary:(NSMutableDictionary *)dict {
+ if (self = [super initWithDictionary:dict]) {
+ }
+ return self;
+}
+
+- (void)setModuleType:(SDLModuleType )moduleType {
+ [parameters sdl_setObject:moduleType forName:SDLNameModuleType];
+}
+
+- (SDLModuleType)moduleType {
+ return [parameters sdl_objectForName:SDLNameModuleType];
+}
+
+
+- (void)setSubscribe:(NSNumber<SDLBool> *)subscribe {
+ [parameters sdl_setObject:subscribe forName:SDLNameSubscribe];
+}
+
+- (NSNumber<SDLBool> *)subscribe {
+ return [parameters sdl_objectForName:SDLNameSubscribe];
+}
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLGetInteriorVehicleDataResponse.h b/SmartDeviceLink/SDLGetInteriorVehicleDataResponse.h
new file mode 100644
index 000000000..daae3962b
--- /dev/null
+++ b/SmartDeviceLink/SDLGetInteriorVehicleDataResponse.h
@@ -0,0 +1,26 @@
+//
+// SDLGetInteriorVehicleDataResponse.h
+//
+
+#import "SDLRPCResponse.h"
+@class SDLModuleData;
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface SDLGetInteriorVehicleDataResponse : SDLRPCResponse
+
+@property (strong, nonatomic) SDLModuleData *moduleData;
+
+/**
+ * @abstract It is a conditional-mandatory parameter: must be returned in case "subscribe" parameter was present in the related request.
+ * if "true" - the "moduleType" from request is successfully subscribed and the head unit will send onInteriorVehicleData notifications for the moduleType.
+ * if "false" - the "moduleType" from request is either unsubscribed or failed to subscribe.
+ *
+ * Optional, Boolean
+ */
+
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *isSubscribed;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLGetInteriorVehicleDataResponse.m b/SmartDeviceLink/SDLGetInteriorVehicleDataResponse.m
new file mode 100644
index 000000000..f2e4570e4
--- /dev/null
+++ b/SmartDeviceLink/SDLGetInteriorVehicleDataResponse.m
@@ -0,0 +1,40 @@
+//
+// SDLGetInteriorVehicleDataResponse.m
+//
+
+#import "SDLGetInteriorVehicleDataResponse.h"
+#import "SDLModuleData.h"
+#import "SDLNames.h"
+#import "NSMutableDictionary+Store.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+
+@implementation SDLGetInteriorVehicleDataResponse
+
+- (instancetype)init {
+ if (self = [super initWithName:SDLNameGetInteriorVehicleData]) {
+ }
+ return self;
+}
+
+- (void)setModuleData:(SDLModuleData *)moduleData {
+ [parameters sdl_setObject:moduleData forName:SDLNameModuleData];
+}
+
+- (SDLModuleData *)moduleData {
+ return [parameters sdl_objectForName:SDLNameModuleData];
+}
+
+- (void)setIsSubscribed:(nullable NSNumber<SDLBool> *)isSubscribed {
+ [parameters sdl_setObject:isSubscribed forName:SDLNameIsSubscribed];
+}
+
+- (nullable NSNumber<SDLBool> *)isSubscribed {
+ return [parameters sdl_objectForName:SDLNameIsSubscribed];
+}
+
+@end
+
+NS_ASSUME_NONNULL_END
+
diff --git a/SmartDeviceLink/SDLModuleData.h b/SmartDeviceLink/SDLModuleData.h
new file mode 100644
index 000000000..60a3be863
--- /dev/null
+++ b/SmartDeviceLink/SDLModuleData.h
@@ -0,0 +1,27 @@
+//
+// SDLModuleData.h
+//
+
+#import "SDLRPCMessage.h"
+#import "SDLModuleType.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@class SDLRadioControlData;
+@class SDLClimateControlData;
+
+@interface SDLModuleData : SDLRPCStruct
+
+/**
+ * The moduleType indicates which type of data should be changed
+ * and identifies which data object exists in this struct.
+ * For example, if the moduleType is CLIMATE then a "climateControlData" should exist
+ */
+@property (strong) SDLModuleType moduleType;
+
+@property (nullable, strong, nonatomic) SDLRadioControlData *radioControlData;
+
+@property (nullable, strong, nonatomic) SDLClimateControlData *climateControlData;
+
+@end
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLModuleData.m b/SmartDeviceLink/SDLModuleData.m
new file mode 100644
index 000000000..e8bc4ec9b
--- /dev/null
+++ b/SmartDeviceLink/SDLModuleData.m
@@ -0,0 +1,40 @@
+//
+// SDLModuleData.m
+//
+
+#import "SDLModuleData.h"
+#import "SDLNames.h"
+#import "SDLClimateControlData.h"
+#import "SDLRadioControlData.h"
+#import "NSMutableDictionary+Store.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@implementation SDLModuleData
+
+- (void)setModuleType:(SDLModuleType)moduleType {
+ [store sdl_setObject:moduleType forName:SDLNameModuleType];
+}
+
+- (SDLModuleType)moduleType {
+ return [store sdl_objectForName:SDLNameModuleType];
+}
+
+- (void)setRadioControlData:(nullable SDLRadioControlData *)radioControlData {
+ [store sdl_setObject:radioControlData forName:SDLNameRadioControlData];
+}
+
+- (nullable SDLRadioControlData *)radioControlData {
+ return [store sdl_objectForName:SDLNameRadioControlData];
+}
+
+- (void)setClimateControlData:(nullable SDLClimateControlData *)climateControlData {
+ [store sdl_setObject:climateControlData forName:SDLNameClimateControlData];
+}
+
+- (nullable SDLClimateControlData *)climateControlData {
+ return [store sdl_objectForName:SDLNameClimateControlData];
+}
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLModuleType.h b/SmartDeviceLink/SDLModuleType.h
new file mode 100644
index 000000000..e0c02a844
--- /dev/null
+++ b/SmartDeviceLink/SDLModuleType.h
@@ -0,0 +1,18 @@
+//
+// SDLModuleType.h
+//
+
+#import "SDLEnum.h"
+
+typedef SDLEnum SDLModuleType SDL_SWIFT_ENUM;
+
+
+/**
+ * @abstract A SDLModuleType with the value of *CLIMATE*
+ */
+extern SDLModuleType const SDLModuleTypeClimate;
+
+/**
+ * @abstract A SDLModuleType with the value of *RADIO*
+ */
+extern SDLModuleType const SDLModuleTypeRadio;
diff --git a/SmartDeviceLink/SDLModuleType.m b/SmartDeviceLink/SDLModuleType.m
new file mode 100644
index 000000000..30744e0c2
--- /dev/null
+++ b/SmartDeviceLink/SDLModuleType.m
@@ -0,0 +1,8 @@
+//
+// SDLModuleType.m
+//
+
+#import "SDLModuleType.h"
+
+SDLModuleType const SDLModuleTypeClimate = @"CLIMATE";
+SDLModuleType const SDLModuleTypeRadio = @"RADIO";
diff --git a/SmartDeviceLink/SDLNames.h b/SmartDeviceLink/SDLNames.h
index c1f69f9ce..aa4727337 100644
--- a/SmartDeviceLink/SDLNames.h
+++ b/SmartDeviceLink/SDLNames.h
@@ -8,6 +8,10 @@ NS_ASSUME_NONNULL_BEGIN
typedef NSString* SDLName SDL_SWIFT_ENUM;
+extern SDLName const SDLNameAcEnable;
+extern SDLName const SDLNameAcEnableAvailable;
+extern SDLName const SDLNameAcMaxEnable;
+extern SDLName const SDLNameAcMaxEnableAvailable;
extern SDLName const SDLNameAccelerationPedalPosition;
extern SDLName const SDLNameActual;
extern SDLName const SDLNameAddCommand;
@@ -39,7 +43,12 @@ extern SDLName const SDLNameAudioPassThruDisplayText2;
extern SDLName const SDLNameAudioStreamingState;
extern SDLName const SDLNameAudioType;
extern SDLName const SDLNameAutoCompleteText;
+extern SDLName const SDLNameAutoModeEnable;
+extern SDLName const SDLNameAutoModeEnableAvailable;
extern SDLName const SDLNameAuxECallNotificationStatus;
+extern SDLName const SDLNameAvailableHDs;
+extern SDLName const SDLNameAvailableHDsAvailable;
+extern SDLName const SDLNameBand;
extern SDLName const SDLNameBatteryLevelStatus;
extern SDLName const SDLNameBeltStatus;
extern SDLName const SDLNameBitsPerSample;
@@ -49,6 +58,7 @@ extern SDLName const SDLNameBulkData;
extern SDLName const SDLNameButtonCapabilities;
extern SDLName const SDLNameButtonEventMode;
extern SDLName const SDLNameButtonName;
+extern SDLName const SDLNameButtonPress;
extern SDLName const SDLNameButtonPressMode;
extern SDLName const SDLNameCoordinate;
extern SDLName const SDLNameCallActive;
@@ -58,6 +68,10 @@ extern SDLName const SDLNameChangeRegistration;
extern SDLName const SDLNameCharacterSet;
extern SDLName const SDLNameChoiceId;
extern SDLName const SDLNameChoiceSet;
+extern SDLName const SDLNameCirculateAirEnable;
+extern SDLName const SDLNameCirculateAirEnableAvailable;
+extern SDLName const SDLNameClimateControlData;
+extern SDLName const SDLNameClimateControlCapabilities;
extern SDLName const SDLNameClusterModes;
extern SDLName const SDLNameClusterModeStatus;
extern SDLName const SDLNameCommandIcon;
@@ -67,17 +81,23 @@ extern SDLName const SDLNameCorrelationId;
extern SDLName const SDLNameCountryCode;
extern SDLName const SDLNameCountryName;
extern SDLName const SDLNameCreateInteractionChoiceSet;
+extern SDLName const SDLNameCT;
+extern SDLName const SDLNameCurrentTemperature;
extern SDLName const SDLNameCustomButtonId;
extern SDLName const SDLNameCustomPresets;
extern SDLName const SDLNameData;
extern SDLName const SDLNameDataResult;
extern SDLName const SDLNameDataType;
extern SDLName const SDLNameDay;
+extern SDLName const SDLNameDefrostZone;
+extern SDLName const SDLNameDefrostZoneAvailable;
extern SDLName const SDLNameDeleteCommand;
extern SDLName const SDLNameDeleteFile;
extern SDLName const SDLNameDeleteInteractionChoiceSet;
extern SDLName const SDLNameDeleteSubMenu;
extern SDLName const SDLNameDeliveryMode;
+extern SDLName const SDLNameDesiredTemperature;
+extern SDLName const SDLNameDesiredTemperatureAvailable;
extern SDLName const SDLNameDeviceInfo;
extern SDLName const SDLNameDeviceStatus;
extern SDLName const SDLNameDiagnosticMessage;
@@ -104,6 +124,8 @@ extern SDLName const SDLNameDriverKneeAirbagDeployed;
extern SDLName const SDLNameDriverSideAirbagDeployed;
extern SDLName const SDLNameDTC;
extern SDLName const SDLNameDTCMask;
+extern SDLName const SDLNameDualModeEnable;
+extern SDLName const SDLNameDualModeEnableAvailable;
extern SDLName const SDLNameDuration;
extern SDLName const SDLNameE911Override;
extern SDLName const SDLNameECallConfirmationStatus;
@@ -121,16 +143,21 @@ extern SDLName const SDLNameEngineTorque;
extern SDLName const SDLNameETA;
extern SDLName const SDLNameEvent;
extern SDLName const SDLNameExternalTemperature;
+extern SDLName const SDLNameFanSpeed;
+extern SDLName const SDLNameFanSpeedAvailable;
extern SDLName const SDLNameFilename;
extern SDLName const SDLNameFilenames;
extern SDLName const SDLNameFileType;
extern SDLName const SDLNameFirmwareRevision;
+extern SDLName const SDLNameFrequencyInteger;
+extern SDLName const SDLNameFrequencyFraction;
extern SDLName const SDLNameFuelCutoffStatus;
extern SDLName const SDLNameFuelLevel;
extern SDLName const SDLNameFuelLevelState;
extern SDLName const SDLNameFuelMaintenanceMode;
extern SDLName const SDLNameGenericResponse;
extern SDLName const SDLNameGetDTCs;
+extern SDLName const SDLNameGetInteriorVehicleData;
extern SDLName const SDLNameGetSystemCapability;
extern SDLName const SDLNameGetVehicleData;
extern SDLName const SDLNameGetWaypoints;
@@ -141,6 +168,8 @@ extern SDLName const SDLNameGraphicSupported;
extern SDLName const SDLNameHardware;
extern SDLName const SDLNameHashId;
extern SDLName const SDLNameHDOP;
+extern SDLName const SDLNameHdChannel;
+extern SDLName const SDLNameHdChannelAvailable;
extern SDLName const SDLNameHeading;
extern SDLName const SDLNameHeadLampStatus;
extern SDLName const SDLNameHelpPrompt;
@@ -174,6 +203,7 @@ extern SDLName const SDLNameInteractionLayout;
extern SDLName const SDLNameInteractionMode;
extern SDLName const SDLNameIsHighlighted;
extern SDLName const SDLNameIsMediaApplication;
+extern SDLName const SDLNameIsSubscribed;
extern SDLName const SDLNameKeyboardLayout;
extern SDLName const SDLNameKeyboardProperties;
extern SDLName const SDLNameKeypressMode;
@@ -206,7 +236,6 @@ extern SDLName const SDLNameMajorVersion;
extern SDLName const SDLNameMake;
extern SDLName const SDLNameManeuverComplete;
extern SDLName const SDLNameManualTextEntry;
-extern SDLName const SDLNameMaxBitrate;
extern SDLName const SDLNameMaxDuration;
extern SDLName const SDLNameMaximumChangeVelocity;
extern SDLName const SDLNameMaxNumberRFCOMMPorts;
@@ -230,6 +259,9 @@ extern SDLName const SDLNameMinorVersion;
extern SDLName const SDLNameMinute;
extern SDLName const SDLNameMinutes;
extern SDLName const SDLNameModel;
+extern SDLName const SDLNameModuleData;
+extern SDLName const SDLNameModuleName;
+extern SDLName const SDLNameModuleType;
extern SDLName const SDLNameModelYear;
extern SDLName const SDLNameMonoAudioOutputMuted;
extern SDLName const SDLNameMonth;
@@ -260,6 +292,7 @@ extern SDLName const SDLNameOnDriverDistraction;
extern SDLName const SDLNameOnEncodedSyncPData;
extern SDLName const SDLNameOnHashChange;
extern SDLName const SDLNameOnHMIStatus;
+extern SDLName const SDLNameOnInteriorVehicleData;
extern SDLName const SDLNameOnKeyboardInput;
extern SDLName const SDLNameOnLanguageChange;
extern SDLName const SDLNameOnLockScreenStatus;
@@ -296,13 +329,13 @@ extern SDLName const SDLNamePhoneCall;
extern SDLName const SDLNamePhoneCapability;
extern SDLName const SDLNamePhoneNumber;
extern SDLName const SDLNamePhoneRoaming;
+extern SDLName const SDLNamePI;
extern SDLName const SDLNamePlayTone;
extern SDLName const SDLNamePosition;
extern SDLName const SDLNamePostalCode;
extern SDLName const SDLNamePowerModeActive;
extern SDLName const SDLNamePowerModeQualificationStatus;
extern SDLName const SDLNamePowerModeStatus;
-extern SDLName const SDLNamePreferredResolution;
extern SDLName const SDLNamePrerecordedSpeech;
extern SDLName const SDLNamePresetBankCapabilities;
extern SDLName const SDLNamePressAvailable;
@@ -312,12 +345,24 @@ extern SDLName const SDLNamePrimaryAudioSource;
extern SDLName const SDLNamePRNDL;
extern SDLName const SDLNameProgressIndicator;
extern SDLName const SDLNameProperties;
+extern SDLName const SDLNamePS;
+extern SDLName const SDLNamePTY;
extern SDLName const SDLNamePutFile;
+extern SDLName const SDLNameRadioBandAvailable;
+extern SDLName const SDLNameRadioControlCapabilities;
+extern SDLName const SDLNameRadioControlData;
+extern SDLName const SDLNameRadioEnable;
+extern SDLName const SDLNameRadioEnableAvailable;
+extern SDLName const SDLNameRadioFrequencyAvailable;
+extern SDLName const SDLNameRdsData;
+extern SDLName const SDLNameRdsDataAvailable;
extern SDLName const SDLNameReadDID;
extern SDLName const SDLNameRearLeftDoorAjar;
extern SDLName const SDLNameRearRightDoorAjar;
extern SDLName const SDLNameReason;
+extern SDLName const SDLNameREG;
extern SDLName const SDLNameRegisterAppInterface;
+extern SDLName const SDLNameRemoteControlCapability;
extern SDLName const SDLNameRequest;
extern SDLName const SDLNameRequestType;
extern SDLName const SDLNameReserved;
@@ -337,6 +382,7 @@ extern SDLName const SDLNameRolloverEvent;
extern SDLName const SDLNameRows;
extern SDLName const SDLNameRPCName;
extern SDLName const SDLNameRPM;
+extern SDLName const SDLNameRT;
extern SDLName const SDLNameSamplingRate;
extern SDLName const SDLNameSatellites;
extern SDLName const SDLNameScreenParams;
@@ -354,12 +400,17 @@ extern SDLName const SDLNameSendLocationEnabled;
extern SDLName const SDLNameSetAppIcon;
extern SDLName const SDLNameSetDisplayLayout;
extern SDLName const SDLNameSetGlobalProperties;
+extern SDLName const SDLNameSetInteriorVehicleData;
extern SDLName const SDLNameSetMediaClockTimer;
extern SDLName const SDLNameShortPress;
extern SDLName const SDLNameShortPressAvailable;
extern SDLName const SDLNameShow;
extern SDLName const SDLNameShowConstantTBT;
extern SDLName const SDLNameSignalLevelStatus;
+extern SDLName const SDLNameSignalChangeThreshold;
+extern SDLName const SDLNameSignalChangeThresholdAvailable;
+extern SDLName const SDLNameSignalStrength;
+extern SDLName const SDLNameSignalStrengthAvailable;
extern SDLName const SDLNameSlider;
extern SDLName const SDLNameSliderFooter;
extern SDLName const SDLNameSliderHeader;
@@ -373,6 +424,7 @@ extern SDLName const SDLNameSpeechCapabilities;
extern SDLName const SDLNameSpeed;
extern SDLName const SDLNameStartTime;
extern SDLName const SDLNameState;
+extern SDLName const SDLNameStateAvailable;
extern SDLName const SDLNameStateOfCharge;
extern SDLName const SDLNameStatus;
extern SDLName const SDLNameStatusBar;
@@ -387,7 +439,6 @@ extern SDLName const SDLNameSubscribeWaypoints;
extern SDLName const SDLNameSubThoroughfare;
extern SDLName const SDLNameSuccess;
extern SDLName const SDLNameSupportedDiagnosticModes;
-extern SDLName const SDLNameSupportedFormats;
extern SDLName const SDLNameSyncFileName;
extern SDLName const SDLNameSyncMessageVersion;
extern SDLName const SDLNameSyncPData;
@@ -398,6 +449,7 @@ extern SDLName const SDLNameSystemContext;
extern SDLName const SDLNameSystemFile;
extern SDLName const SDLNameSystemRequest;
extern SDLName const SDLNameSystemSoftwareVersion;
+extern SDLName const SDLNameTA;
extern SDLName const SDLNameTargetId;
extern SDLName const SDLNameTemplatesAvailable;
extern SDLName const SDLNameTertiaryText;
@@ -414,6 +466,7 @@ extern SDLName const SDLNameTimezoneMinuteOffset;
extern SDLName const SDLNameTirePressure;
extern SDLName const SDLNameTotalDistance;
extern SDLName const SDLNameTouchEventAvailable;
+extern SDLName const SDLNameTP;
extern SDLName const SDLNameTriggerSource;
extern SDLName const SDLNameTrim;
extern SDLName const SDLNameTryAgainTime;
@@ -423,6 +476,7 @@ extern SDLName const SDLNameTTSName;
extern SDLName const SDLNameTurnIcon;
extern SDLName const SDLNameTurnList;
extern SDLName const SDLNameType;
+extern SDLName const SDLNameUnit;
extern SDLName const SDLNameUnregisterAppInterface;
extern SDLName const SDLNameUnsubscribe;
extern SDLName const SDLNameUnsubscribeButton;
@@ -444,10 +498,8 @@ extern SDLName const SDLNameUTCYear;
extern SDLName const SDLNameValue;
extern SDLName const SDLNameVDOP;
extern SDLName const SDLNameVehicleType;
-extern SDLName const SDLNameVideoCodec;
-extern SDLName const SDLNameVideoProtocol;
-extern SDLName const SDLNameVideoStreaming;
-extern SDLName const SDLNameVideoStreamingCapability;
+extern SDLName const SDLNameVentilationMode;
+extern SDLName const SDLNameVentilationModeAvailable;
extern SDLName const SDLNameVIN;
extern SDLName const SDLNameVoiceRecognitionOn;
extern SDLName const SDLNameVRCapabilities;
diff --git a/SmartDeviceLink/SDLNames.m b/SmartDeviceLink/SDLNames.m
index 1962fd4d6..a92f524b2 100644
--- a/SmartDeviceLink/SDLNames.m
+++ b/SmartDeviceLink/SDLNames.m
@@ -6,6 +6,10 @@
NS_ASSUME_NONNULL_BEGIN
+SDLName const SDLNameAcEnable = @"acEnable";
+SDLName const SDLNameAcEnableAvailable = @"acEnableAvailable";
+SDLName const SDLNameAcMaxEnable = @"acMaxEnable";
+SDLName const SDLNameAcMaxEnableAvailable = @"acMaxEnableAvailable";
SDLName const SDLNameAccelerationPedalPosition = @"accPedalPosition";
SDLName const SDLNameActual = @"actual";
SDLName const SDLNameAddCommand = @"AddCommand";
@@ -37,7 +41,12 @@ SDLName const SDLNameAudioPassThruDisplayText2 = @"audioPassThruDisplayText2";
SDLName const SDLNameAudioStreamingState = @"audioStreamingState";
SDLName const SDLNameAudioType = @"audioType";
SDLName const SDLNameAutoCompleteText = @"autoCompleteText";
+SDLName const SDLNameAutoModeEnable = @"autoModeEnable";
+SDLName const SDLNameAutoModeEnableAvailable = @"autoModeEnableAvailable";
SDLName const SDLNameAuxECallNotificationStatus = @"auxECallNotificationStatus";
+SDLName const SDLNameAvailableHDs = @"availableHDs";
+SDLName const SDLNameAvailableHDsAvailable = @"availableHDsAvailable";
+SDLName const SDLNameBand = @"band";
SDLName const SDLNameBatteryLevelStatus = @"battLevelStatus";
SDLName const SDLNameBeltStatus = @"beltStatus";
SDLName const SDLNameBitsPerSample = @"bitsPerSample";
@@ -47,6 +56,7 @@ SDLName const SDLNameBulkData = @"bulkData";
SDLName const SDLNameButtonCapabilities = @"buttonCapabilities";
SDLName const SDLNameButtonEventMode = @"buttonEventMode";
SDLName const SDLNameButtonName = @"buttonName";
+SDLName const SDLNameButtonPress = @"buttonPress";
SDLName const SDLNameButtonPressMode = @"buttonPressMode";
SDLName const SDLNameCoordinate = @"c";
SDLName const SDLNameCallActive = @"callActive";
@@ -56,6 +66,10 @@ SDLName const SDLNameChangeRegistration = @"ChangeRegistration";
SDLName const SDLNameCharacterSet = @"characterSet";
SDLName const SDLNameChoiceId = @"choiceID";
SDLName const SDLNameChoiceSet = @"choiceSet";
+SDLName const SDLNameCirculateAirEnable = @"circulateAirEnableAvailable";
+SDLName const SDLNameCirculateAirEnableAvailable = @"circulateAirEnableAvailable";
+SDLName const SDLNameClimateControlData = @"climateControlData";
+SDLName const SDLNameClimateControlCapabilities = @"climateControlCapabilities";
SDLName const SDLNameClusterModes = @"clusterModes";
SDLName const SDLNameClusterModeStatus = @"clusterModeStatus";
SDLName const SDLNameCommandIcon = @"cmdIcon";
@@ -65,17 +79,23 @@ SDLName const SDLNameCorrelationId = @"correlationID";
SDLName const SDLNameCountryCode = @"countryCode";
SDLName const SDLNameCountryName = @"countryName";
SDLName const SDLNameCreateInteractionChoiceSet = @"CreateInteractionChoiceSet";
+SDLName const SDLNameCT = @"CT";
+SDLName const SDLNameCurrentTemperature = @"currentTemperature";
SDLName const SDLNameCustomButtonId = @"customButtonID";
SDLName const SDLNameCustomPresets = @"customPresets";
SDLName const SDLNameData = @"data";
SDLName const SDLNameDataResult = @"dataResult";
SDLName const SDLNameDataType = @"dataType";
SDLName const SDLNameDay = @"day";
+SDLName const SDLNameDefrostZone = @"defrostZone";
+SDLName const SDLNameDefrostZoneAvailable = @"defrostZoneAvailable";
SDLName const SDLNameDeleteCommand = @"DeleteCommand";
SDLName const SDLNameDeleteFile = @"DeleteFile";
SDLName const SDLNameDeleteInteractionChoiceSet = @"DeleteInteractionChoiceSet";
SDLName const SDLNameDeleteSubMenu = @"DeleteSubMenu";
SDLName const SDLNameDeliveryMode = @"deliveryMode";
+SDLName const SDLNameDesiredTemperature = @"desiredTemperature";
+SDLName const SDLNameDesiredTemperatureAvailable = @"desiredTemperatureAvailable";
SDLName const SDLNameDeviceInfo = @"deviceInfo";
SDLName const SDLNameDeviceStatus = @"deviceStatus";
SDLName const SDLNameDiagnosticMessage = @"DiagnosticMessage";
@@ -101,6 +121,8 @@ SDLName const SDLNameDriverKneeAirbagDeployed = @"driverKneeAirbagDeployed";
SDLName const SDLNameDriverSideAirbagDeployed = @"driverSideAirbagDeployed";
SDLName const SDLNameDTC = @"dtc";
SDLName const SDLNameDTCMask = @"dtcMask";
+SDLName const SDLNameDualModeEnable = @"dualModeEnable";
+SDLName const SDLNameDualModeEnableAvailable = @"dualModeEnableAvailable";
SDLName const SDLNameDuration = @"duration";
SDLName const SDLNameE911Override = @"e911Override";
SDLName const SDLNameECallConfirmationStatus = @"eCallConfirmationStatus";
@@ -118,16 +140,21 @@ SDLName const SDLNameEngineTorque = @"engineTorque";
SDLName const SDLNameETA = @"eta";
SDLName const SDLNameEvent = @"event";
SDLName const SDLNameExternalTemperature = @"externalTemperature";
+SDLName const SDLNameFanSpeed = @"fanSpeed";
+SDLName const SDLNameFanSpeedAvailable = @"fanSpeedAvailable";
SDLName const SDLNameFilename = @"fileName";
SDLName const SDLNameFilenames = @"filenames";
SDLName const SDLNameFileType = @"fileType";
SDLName const SDLNameFirmwareRevision = @"firmwareRev";
+SDLName const SDLNameFrequencyInteger = @"frequencyInteger";
+SDLName const SDLNameFrequencyFraction = @"frequencyFraction";
SDLName const SDLNameFuelCutoffStatus = @"fuelCutoffStatus";
SDLName const SDLNameFuelLevel = @"fuelLevel";
SDLName const SDLNameFuelLevelState = @"fuelLevel_State";
SDLName const SDLNameFuelMaintenanceMode = @"fuelMaintenanceMode";
SDLName const SDLNameGenericResponse = @"GenericResponse";
SDLName const SDLNameGetDTCs = @"GetDTCs";
+SDLName const SDLNameGetInteriorVehicleData = @"GetInteriorVehicleData";
SDLName const SDLNameGetSystemCapability = @"GetSystemCapability";
SDLName const SDLNameGetVehicleData = @"GetVehicleData";
SDLName const SDLNameGetWaypoints = @"GetWayPoints";
@@ -137,6 +164,8 @@ SDLName const SDLNameGraphic = @"graphic";
SDLName const SDLNameGraphicSupported = @"graphicSupported";
SDLName const SDLNameHardware = @"hardware";
SDLName const SDLNameHashId = @"hashID";
+SDLName const SDLNameHdChannel = @"hdChannel";
+SDLName const SDLNameHdChannelAvailable = @"hdChannelAvailable";
SDLName const SDLNameHDOP = @"hdop";
SDLName const SDLNameHeading = @"heading";
SDLName const SDLNameHeadLampStatus = @"headLampStatus";
@@ -172,6 +201,7 @@ SDLName const SDLNameInteractionLayout = @"interactionLayout";
SDLName const SDLNameInteractionMode = @"interactionMode";
SDLName const SDLNameIsHighlighted = @"isHighlighted";
SDLName const SDLNameIsMediaApplication = @"isMediaApplication";
+SDLName const SDLNameIsSubscribed = @"isSubscribed";
SDLName const SDLNameKeyboardLayout = @"keyboardLayout";
SDLName const SDLNameKeyboardProperties = @"keyboardProperties";
SDLName const SDLNameKeypressMode = @"keypressMode";
@@ -204,7 +234,6 @@ SDLName const SDLNameMajorVersion = @"majorVersion";
SDLName const SDLNameMake = @"make";
SDLName const SDLNameManeuverComplete = @"maneuverComplete";
SDLName const SDLNameManualTextEntry = @"manualTextEntry";
-SDLName const SDLNameMaxBitrate = @"maxBitrate";
SDLName const SDLNameMaxDuration = @"maxDuration";
SDLName const SDLNameMaximumChangeVelocity = @"maximumChangeVelocity";
SDLName const SDLNameMaxNumberRFCOMMPorts = @"maxNumberRFCOMMPorts";
@@ -231,6 +260,9 @@ SDLName const SDLNameModel = @"model";
SDLName const SDLNameModelYear = @"modelYear";
SDLName const SDLNameMonoAudioOutputMuted = @"monoAudioOutputMuted";
SDLName const SDLNameMonth = @"month";
+SDLName const SDLNameModuleData = @"moduleData";
+SDLName const SDLNameModuleName = @"moduleName";
+SDLName const SDLNameModuleType = @"moduleType";
SDLName const SDLNameMultipleEvents = @"multipleEvents";
SDLName const SDLNameMultiTouchAvailable = @"multiTouchAvailable";
SDLName const SDLNameMuteAudio = @"muteAudio";
@@ -258,6 +290,7 @@ SDLName const SDLNameOnDriverDistraction = @"OnDriverDistraction";
SDLName const SDLNameOnEncodedSyncPData = @"OnEncodedSyncPData";
SDLName const SDLNameOnHashChange = @"OnHashChange";
SDLName const SDLNameOnHMIStatus = @"OnHMIStatus";
+SDLName const SDLNameOnInteriorVehicleData = @"OnInteriorVehicleData";
SDLName const SDLNameOnKeyboardInput = @"OnKeyboardInput";
SDLName const SDLNameOnLanguageChange = @"OnLanguageChange";
SDLName const SDLNameOnLockScreenStatus = @"OnLockScreenStatus";
@@ -294,13 +327,13 @@ SDLName const SDLNamePhoneCall = @"phoneCall";
SDLName const SDLNamePhoneCapability = @"phoneCapability";
SDLName const SDLNamePhoneNumber = @"phoneNumber";
SDLName const SDLNamePhoneRoaming = @"phoneRoaming";
+SDLName const SDLNamePI = @"PI";
SDLName const SDLNamePlayTone = @"playTone";
SDLName const SDLNamePosition = @"position";
SDLName const SDLNamePostalCode = @"postalCode";
SDLName const SDLNamePowerModeActive = @"powerModeActive";
SDLName const SDLNamePowerModeQualificationStatus = @"powerModeQualificationStatus";
SDLName const SDLNamePowerModeStatus = @"powerModeStatus";
-SDLName const SDLNamePreferredResolution = @"preferredResolution";
SDLName const SDLNamePrerecordedSpeech = @"prerecordedSpeech";
SDLName const SDLNamePresetBankCapabilities = @"presetBankCapabilities";
SDLName const SDLNamePressAvailable = @"pressAvailable";
@@ -310,16 +343,29 @@ SDLName const SDLNamePrimaryAudioSource = @"primaryAudioSource";
SDLName const SDLNamePRNDL = @"prndl";
SDLName const SDLNameProgressIndicator = @"progressIndicator";
SDLName const SDLNameProperties = @"properties";
+SDLName const SDLNamePS = @"PS";
+SDLName const SDLNamePTY = @"PTY";
SDLName const SDLNamePutFile = @"PutFile";
+SDLName const SDLNameRadioBandAvailable = @"radioBandAvailable";
+SDLName const SDLNameRadioControlCapabilities = @"radioControlCapabilities";
+SDLName const SDLNameRadioFrequencyAvailable = @"radioFrequencyAvailable";
+SDLName const SDLNameRadioControlData = @"radioControlData";
+SDLName const SDLNameRadioEnable = @"radioEnable";
+SDLName const SDLNameRadioEnableAvailable = @"radioEnableAvailable";
+SDLName const SDLNameRdsData = @"rdsData";
+SDLName const SDLNameRdsDataAvailable = @"rdsDataAvailable";
SDLName const SDLNameReadDID = @"ReadDID";
SDLName const SDLNameRearLeftDoorAjar = @"rearLeftDoorAjar";
SDLName const SDLNameRearRightDoorAjar = @"rearRightDoorAjar";
SDLName const SDLNameReason = @"reason";
+SDLName const SDLNameREG = @"REG";
SDLName const SDLNameRegisterAppInterface = @"RegisterAppInterface";
+SDLName const SDLNameRemoteControlCapability = @"remoteControlCapability";
SDLName const SDLNameRequest = @"request";
SDLName const SDLNameRequestType = @"requestType";
SDLName const SDLNameReserved = @"reserved";
SDLName const SDLNameResetGlobalProperties = @"ResetGlobalProperties";
+SDLName const SDLNameSetInteriorVehicleData = @"SetInteriorVehicleData";
SDLName const SDLNameResolution = @"resolution";
SDLName const SDLNameResolutionHeight = @"resolutionHeight";
SDLName const SDLNameResolutionWidth = @"resolutionWidth";
@@ -335,6 +381,7 @@ SDLName const SDLNameRolloverEvent = @"rolloverEvent";
SDLName const SDLNameRows = @"rows";
SDLName const SDLNameRPCName = @"rpcName";
SDLName const SDLNameRPM = @"rpm";
+SDLName const SDLNameRT = @"RT";
SDLName const SDLNameSamplingRate = @"samplingRate";
SDLName const SDLNameSatellites = @"satellites";
SDLName const SDLNameScreenParams = @"screenParams";
@@ -358,6 +405,10 @@ SDLName const SDLNameShortPressAvailable = @"shortPressAvailable";
SDLName const SDLNameShow = @"Show";
SDLName const SDLNameShowConstantTBT = @"ShowConstantTBT";
SDLName const SDLNameSignalLevelStatus = @"signalLevelStatus";
+SDLName const SDLNameSignalChangeThreshold = @"signalChangeThreshold";
+SDLName const SDLNameSignalChangeThresholdAvailable = @"signalChangeThresholdAvailable";
+SDLName const SDLNameSignalStrength = @"signalStrength";
+SDLName const SDLNameSignalStrengthAvailable = @"signalStrengthAvailable";
SDLName const SDLNameSlider = @"Slider";
SDLName const SDLNameSliderFooter = @"sliderFooter";
SDLName const SDLNameSliderHeader = @"sliderHeader";
@@ -371,6 +422,7 @@ SDLName const SDLNameSpeechCapabilities = @"speechCapabilities";
SDLName const SDLNameSpeed = @"speed";
SDLName const SDLNameStartTime = @"startTime";
SDLName const SDLNameState = @"state";
+SDLName const SDLNameStateAvailable = @"stateAvailable";
SDLName const SDLNameStateOfCharge = @"stateOfCharge";
SDLName const SDLNameStatus = @"status";
SDLName const SDLNameStatusBar = @"statusBar";
@@ -378,14 +430,13 @@ SDLName const SDLNameSteeringWheelAngle = @"steeringWheelAngle";
SDLName const SDLNameStereoAudioOutputMuted = @"stereoAudioOutputMuted";
SDLName const SDLNameSubAdministrativeArea = @"subAdministrativeArea";
SDLName const SDLNameSubLocality = @"subLocality";
-SDLName const SDLNameSubscribe = @"Subscribe";
+SDLName const SDLNameSubscribe = @"subscribe";
SDLName const SDLNameSubscribeButton = @"SubscribeButton";
SDLName const SDLNameSubscribeVehicleData = @"SubscribeVehicleData";
SDLName const SDLNameSubscribeWaypoints = @"SubscribeWayPoints";
SDLName const SDLNameSubThoroughfare = @"subThoroughfare";
SDLName const SDLNameSuccess = @"success";
SDLName const SDLNameSupportedDiagnosticModes = @"supportedDiagModes";
-SDLName const SDLNameSupportedFormats = @"supportedFormats";
SDLName const SDLNameSyncFileName = @"syncFileName";
SDLName const SDLNameSyncMessageVersion = @"syncMsgVersion";
SDLName const SDLNameSyncPData = @"SyncPData";
@@ -397,6 +448,7 @@ SDLName const SDLNameSystemFile = @"systemFile";
SDLName const SDLNameSystemRequest = @"SystemRequest";
SDLName const SDLNameSystemSoftwareVersion = @"systemSoftwareVersion";
SDLName const SDLNameDialNumber = @"DialNumber";
+SDLName const SDLNameTA = @"TA";
SDLName const SDLNameTargetId = @"targetID";
SDLName const SDLNameTemplatesAvailable = @"templatesAvailable";
SDLName const SDLNameTertiaryText = @"tertiaryText";
@@ -413,6 +465,7 @@ SDLName const SDLNameTimezoneMinuteOffset = @"tz_minute";
SDLName const SDLNameTirePressure = @"tirePressure";
SDLName const SDLNameTotalDistance = @"totalDistance";
SDLName const SDLNameTouchEventAvailable = @"touchEventAvailable";
+SDLName const SDLNameTP = @"TP";
SDLName const SDLNameTriggerSource = @"triggerSource";
SDLName const SDLNameTrim = @"trim";
SDLName const SDLNameTryAgainTime = @"tryAgainTime";
@@ -422,6 +475,7 @@ SDLName const SDLNameTTSName = @"ttsName";
SDLName const SDLNameTurnIcon = @"turnIcon";
SDLName const SDLNameTurnList = @"turnList";
SDLName const SDLNameType = @"type";
+SDLName const SDLNameUnit = @"unit";
SDLName const SDLNameUnregisterAppInterface = @"UnregisterAppInterface";
SDLName const SDLNameUnsubscribe = @"Unsubscribe";
SDLName const SDLNameUnsubscribeButton = @"UnsubscribeButton";
@@ -443,10 +497,8 @@ SDLName const SDLNameUTCYear = @"utcYear";
SDLName const SDLNameValue = @"value";
SDLName const SDLNameVDOP = @"vdop";
SDLName const SDLNameVehicleType = @"vehicleType";
-SDLName const SDLNameVideoCodec = @"videoCodec";
-SDLName const SDLNameVideoProtocol = @"videoProtocol";
-SDLName const SDLNameVideoStreaming = @"videoStreaming";
-SDLName const SDLNameVideoStreamingCapability = @"videoStreamingCapability";
+SDLName const SDLNameVentilationMode = @"ventilationMode";
+SDLName const SDLNameVentilationModeAvailable = @"ventilationModeAvailable";
SDLName const SDLNameVIN = @"vin";
SDLName const SDLNameVoiceRecognitionOn = @"voiceRecOn";
SDLName const SDLNameVRCapabilities = @"vrCapabilities";
diff --git a/SmartDeviceLink/SDLNotificationConstants.h b/SmartDeviceLink/SDLNotificationConstants.h
index 9c9edca13..d0a789e9c 100644
--- a/SmartDeviceLink/SDLNotificationConstants.h
+++ b/SmartDeviceLink/SDLNotificationConstants.h
@@ -50,19 +50,19 @@ typedef void (^SDLResponseHandler)(__kindof SDLRPCRequest *__nullable request, _
/**
A handler that may optionally be run when an SDLSubscribeButton or SDLSoftButton has a corresponding notification occur.
-
+
@warning This only works if you send the RPC using SDLManager.
@warning Only one of the two parameters will be set for each block call.
-
+
@param buttonPress An SDLOnButtonPress object that corresponds to this particular button.
@param buttonEvent An SDLOnButtonEvent object that corresponds to this particular button.
*/
typedef void (^SDLRPCButtonNotificationHandler)(SDLOnButtonPress *_Nullable buttonPress, SDLOnButtonEvent *_Nullable buttonEvent);
/**
A handler that may optionally be run when an SDLAddCommand has a corresponding notification occur.
-
+
@warning This only works if you send the RPC using SDLManager.
-
+
@param command An SDLOnCommand object that corresponds to this particular SDLAddCommand.
*/
typedef void (^SDLRPCCommandNotificationHandler)(SDLOnCommand *command);
@@ -91,6 +91,7 @@ extern SDLNotificationName const SDLDidReceiveAddCommandResponse;
extern SDLNotificationName const SDLDidReceiveAddSubMenuResponse;
extern SDLNotificationName const SDLDidReceiveAlertResponse;
extern SDLNotificationName const SDLDidReceiveAlertManeuverResponse;
+extern SDLNotificationName const SDLDidReceiveButtonPressResponse;
extern SDLNotificationName const SDLDidReceiveChangeRegistrationResponse;
extern SDLNotificationName const SDLDidReceiveCreateInteractionChoiceSetResponse;
extern SDLNotificationName const SDLDidReceiveDeleteCommandResponse;
@@ -103,6 +104,7 @@ extern SDLNotificationName const SDLDidReceiveEncodedSyncPDataResponse;
extern SDLNotificationName const SDLDidReceiveEndAudioPassThruResponse;
extern SDLNotificationName const SDLDidReceiveGenericResponse;
extern SDLNotificationName const SDLDidReceiveGetDTCsResponse;
+extern SDLNotificationName const SDLDidReceiveGetInteriorVehicleDataResponse;
extern SDLNotificationName const SDLDidReceiveGetSystemCapabilitiesResponse;
extern SDLNotificationName const SDLDidReceiveGetVehicleDataResponse;
extern SDLNotificationName const SDLDidReceiveGetWaypointsResponse;
@@ -118,6 +120,7 @@ extern SDLNotificationName const SDLDidReceiveSendLocationResponse;
extern SDLNotificationName const SDLDidReceiveSetAppIconResponse;
extern SDLNotificationName const SDLDidReceiveSetDisplayLayoutResponse;
extern SDLNotificationName const SDLDidReceiveSetGlobalPropertiesResponse;
+extern SDLNotificationName const SDLDidReceiveSetInteriorVehicleDataResponse;
extern SDLNotificationName const SDLDidReceiveSetMediaClockTimerResponse;
extern SDLNotificationName const SDLDidReceiveShowConstantTBTResponse;
extern SDLNotificationName const SDLDidReceiveShowResponse;
@@ -145,6 +148,7 @@ extern SDLNotificationName const SDLDidReceiveButtonEventNotification;
extern SDLNotificationName const SDLDidReceiveButtonPressNotification;
extern SDLNotificationName const SDLDidReceiveCommandNotification;
extern SDLNotificationName const SDLDidReceiveEncodedDataNotification;
+extern SDLNotificationName const SDLDidReceiveInteriorVehicleDataNotification;
extern SDLNotificationName const SDLDidReceiveKeyboardInputNotification;
extern SDLNotificationName const SDLDidChangeLanguageNotification;
extern SDLNotificationName const SDLDidChangeLockScreenStatusNotification;
diff --git a/SmartDeviceLink/SDLNotificationConstants.m b/SmartDeviceLink/SDLNotificationConstants.m
index b444a8857..1fc57663f 100644
--- a/SmartDeviceLink/SDLNotificationConstants.m
+++ b/SmartDeviceLink/SDLNotificationConstants.m
@@ -24,6 +24,7 @@ SDLNotificationName const SDLDidReceiveAddCommandResponse = @"com.sdl.response.a
SDLNotificationName const SDLDidReceiveAddSubMenuResponse = @"com.sdl.response.addSubMenu";
SDLNotificationName const SDLDidReceiveAlertResponse = @"com.sdl.response.alert";
SDLNotificationName const SDLDidReceiveAlertManeuverResponse = @"com.sdl.response.alertManeuver";
+SDLNotificationName const SDLDidReceiveButtonPressResponse = @"com.sdl.response.buttonPress";
SDLNotificationName const SDLDidReceiveChangeRegistrationResponse = @"com.sdl.response.changeRegistration";
SDLNotificationName const SDLDidReceiveCreateInteractionChoiceSetResponse = @"com.sdl.response.createInteractionChoiceSet";
SDLNotificationName const SDLDidReceiveDeleteCommandResponse = @"com.sdl.response.deleteCommand";
@@ -36,6 +37,7 @@ SDLNotificationName const SDLDidReceiveEncodedSyncPDataResponse = @"com.sdl.resp
SDLNotificationName const SDLDidReceiveEndAudioPassThruResponse = @"com.sdl.response.endAudioPassThru";
SDLNotificationName const SDLDidReceiveGenericResponse = @"com.sdl.response.generic";
SDLNotificationName const SDLDidReceiveGetDTCsResponse = @"com.sdl.response.getDTCs";
+SDLNotificationName const SDLDidReceiveGetInteriorVehicleDataResponse = @"com.sdl.response.getInteriorVehicleData";
SDLNotificationName const SDLDidReceiveGetSystemCapabilitiesResponse = @"com.sdl.response.getSystemCapabilities";
SDLNotificationName const SDLDidReceiveGetVehicleDataResponse = @"com.sdl.response.getVehicleData";
SDLNotificationName const SDLDidReceiveGetWaypointsResponse = @"com.sdl.response.getWaypoints";
@@ -51,6 +53,7 @@ SDLNotificationName const SDLDidReceiveSendLocationResponse = @"com.sdl.response
SDLNotificationName const SDLDidReceiveSetAppIconResponse = @"com.sdl.response.setAppIcon";
SDLNotificationName const SDLDidReceiveSetDisplayLayoutResponse = @"com.sdl.response.setDisplayLayout";
SDLNotificationName const SDLDidReceiveSetGlobalPropertiesResponse = @"com.sdl.response.setGlobalProperties";
+SDLNotificationName const SDLDidReceiveSetInteriorVehicleDataResponse = @"com.sdl.response.setInteriorVehicleData";
SDLNotificationName const SDLDidReceiveSetMediaClockTimerResponse = @"com.sdl.response.setMediaClockTimer";
SDLNotificationName const SDLDidReceiveShowConstantTBTResponse = @"com.sdl.response.showConstantTBT";
SDLNotificationName const SDLDidReceiveShowResponse = @"com.sdl.response.show";
@@ -75,6 +78,7 @@ SDLNotificationName const SDLDidReceiveButtonEventNotification = @"com.sdl.notif
SDLNotificationName const SDLDidReceiveButtonPressNotification = @"com.sdl.notification.buttonPress";
SDLNotificationName const SDLDidReceiveCommandNotification = @"com.sdl.notification.command";
SDLNotificationName const SDLDidReceiveEncodedDataNotification = @"com.sdl.notification.encodedData";
+SDLNotificationName const SDLDidReceiveInteriorVehicleDataNotification = @"com.sdl.notification.interiorVehicleData";
SDLNotificationName const SDLDidReceiveKeyboardInputNotification = @"com.sdl.notification.keyboardInput";
SDLNotificationName const SDLDidChangeLanguageNotification = @"com.sdl.notification.changeLanguage";
SDLNotificationName const SDLDidChangeLockScreenStatusNotification = @"com.sdl.notification.lockScreenStatus";
@@ -94,6 +98,7 @@ SDLNotificationName const SDLDidReceiveWaypointNotification = @"com.sdl.notifica
SDLDidReceiveAddSubMenuResponse,
SDLDidReceiveAlertResponse,
SDLDidReceiveAlertManeuverResponse,
+ SDLDidReceiveButtonPressResponse,
SDLDidReceiveChangeRegistrationResponse,
SDLDidReceiveCreateInteractionChoiceSetResponse,
SDLDidReceiveDeleteCommandResponse,
@@ -106,6 +111,7 @@ SDLNotificationName const SDLDidReceiveWaypointNotification = @"com.sdl.notifica
SDLDidReceiveEndAudioPassThruResponse,
SDLDidReceiveGenericResponse,
SDLDidReceiveGetDTCsResponse,
+ SDLDidReceiveGetInteriorVehicleDataResponse,
SDLDidReceiveGetSystemCapabilitiesResponse,
SDLDidReceiveGetVehicleDataResponse,
SDLDidReceiveGetWaypointsResponse,
@@ -121,6 +127,7 @@ SDLNotificationName const SDLDidReceiveWaypointNotification = @"com.sdl.notifica
SDLDidReceiveSetAppIconResponse,
SDLDidReceiveSetDisplayLayoutResponse,
SDLDidReceiveSetGlobalPropertiesResponse,
+ SDLDidReceiveSetInteriorVehicleDataResponse,
SDLDidReceiveSetMediaClockTimerResponse,
SDLDidReceiveShowConstantTBTResponse,
SDLDidReceiveShowResponse,
diff --git a/SmartDeviceLink/SDLNotificationDispatcher.m b/SmartDeviceLink/SDLNotificationDispatcher.m
index 00ae1f962..77dc8ee87 100644
--- a/SmartDeviceLink/SDLNotificationDispatcher.m
+++ b/SmartDeviceLink/SDLNotificationDispatcher.m
@@ -24,7 +24,7 @@ NS_ASSUME_NONNULL_BEGIN
if (infoObject != nil) {
userInfo = @{SDLNotificationUserInfoObject: infoObject};
}
-
+
dispatch_async(dispatch_get_main_queue(), ^{
[[NSNotificationCenter defaultCenter] postNotificationName:name object:self userInfo:userInfo];
});
@@ -94,6 +94,10 @@ NS_ASSUME_NONNULL_BEGIN
[self postRPCResponseNotification:SDLDidReceiveAlertResponse response:response];
}
+- (void)onButtonPressResponse:(SDLButtonPressResponse *)response {
+ [self postRPCResponseNotification:SDLDidReceiveButtonPressResponse response:response];
+}
+
- (void)onChangeRegistrationResponse:(SDLChangeRegistrationResponse *)response {
[self postRPCResponseNotification:SDLDidReceiveChangeRegistrationResponse response:response];
}
@@ -142,6 +146,11 @@ NS_ASSUME_NONNULL_BEGIN
[self postRPCResponseNotification:SDLDidReceiveGetDTCsResponse response:response];
}
+
+- (void)onGetInteriorVehicleDataResponse:(SDLGetInteriorVehicleDataResponse *)response {
+ [self postRPCResponseNotification:SDLDidReceiveGetInteriorVehicleDataResponse response:response];
+}
+
- (void)onGetSystemCapabilityResponse:(SDLGetSystemCapabilityResponse *)response {
[self postRPCResponseNotification:SDLDidReceiveGetSystemCapabilitiesResponse response:response];
}
@@ -202,6 +211,11 @@ NS_ASSUME_NONNULL_BEGIN
[self postRPCResponseNotification:SDLDidReceiveSetGlobalPropertiesResponse response:response];
}
+
+- (void)onSetInteriorVehicleDataResponse:(SDLSetInteriorVehicleDataResponse *)response{
+ [self postRPCResponseNotification:SDLDidReceiveSetInteriorVehicleDataResponse response:response];
+}
+
- (void)onSetMediaClockTimerResponse:(SDLSetMediaClockTimerResponse *)response {
[self postRPCResponseNotification:SDLDidReceiveSetMediaClockTimerResponse response:response];
}
@@ -286,6 +300,10 @@ NS_ASSUME_NONNULL_BEGIN
[self postRPCNotificationNotification:SDLDidReceiveNewHashNotification notification:notification];
}
+- (void)onOnInteriorVehicleData:(SDLOnInteriorVehicleData *)notification {
+ [self postRPCNotificationNotification:SDLDidReceiveInteriorVehicleDataNotification notification:notification];
+}
+
- (void)onOnKeyboardInput:(SDLOnKeyboardInput *)notification {
[self postRPCNotificationNotification:SDLDidReceiveKeyboardInputNotification notification:notification];
}
diff --git a/SmartDeviceLink/SDLOnInteriorVehicleData.h b/SmartDeviceLink/SDLOnInteriorVehicleData.h
new file mode 100644
index 000000000..d7f05a972
--- /dev/null
+++ b/SmartDeviceLink/SDLOnInteriorVehicleData.h
@@ -0,0 +1,16 @@
+//
+// SDLOnInteriorVehicleData.h
+//
+
+#import "SDLRPCNotification.h"
+@class SDLModuleData;
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface SDLOnInteriorVehicleData : SDLRPCNotification
+
+@property (strong) SDLModuleData *moduleData;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLOnInteriorVehicleData.m b/SmartDeviceLink/SDLOnInteriorVehicleData.m
new file mode 100644
index 000000000..544268eb2
--- /dev/null
+++ b/SmartDeviceLink/SDLOnInteriorVehicleData.m
@@ -0,0 +1,31 @@
+//
+// SDLOnInteriorVehicleData.m
+//
+
+#import "SDLOnInteriorVehicleData.h"
+#import "SDLNames.h"
+#import "SDLModuleData.h"
+#import "NSMutableDictionary+Store.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@implementation SDLOnInteriorVehicleData
+
+
+- (instancetype)init {
+ if (self = [super initWithName:SDLNameOnInteriorVehicleData]) {
+ }
+ return self;
+}
+
+- (void)setModuleData:(SDLModuleData *)moduleData {
+ [parameters sdl_setObject:moduleData forName:SDLNameModuleData];
+}
+
+- (SDLModuleData *)moduleData {
+ return [parameters sdl_objectForName:SDLNameModuleData];
+}
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLProxyListener.h b/SmartDeviceLink/SDLProxyListener.h
index b3d29825c..d28d699fa 100644
--- a/SmartDeviceLink/SDLProxyListener.h
+++ b/SmartDeviceLink/SDLProxyListener.h
@@ -7,6 +7,7 @@
@class SDLAddSubMenuResponse;
@class SDLAlertManeuverResponse;
@class SDLAlertResponse;
+@class SDLButtonPressResponse;
@class SDLChangeRegistrationResponse;
@class SDLCreateInteractionChoiceSetResponse;
@class SDLDeleteCommandResponse;
@@ -19,6 +20,7 @@
@class SDLEndAudioPassThruResponse;
@class SDLGenericResponse;
@class SDLGetDTCsResponse;
+@class SDLGetInteriorVehicleDataResponse;
@class SDLGetSystemCapabilityResponse;
@class SDLGetVehicleDataResponse;
@class SDLGetWaypointsResponse;
@@ -32,6 +34,7 @@
@class SDLOnEncodedSyncPData;
@class SDLOnHashChange;
@class SDLOnHMIStatus;
+@class SDLOnInteriorVehicleData;
@class SDLOnKeyboardInput;
@class SDLOnLanguageChange;
@class SDLOnLockScreenStatus;
@@ -54,6 +57,7 @@
@class SDLSetAppIconResponse;
@class SDLSetDisplayLayoutResponse;
@class SDLSetGlobalPropertiesResponse;
+@class SDLSetInteriorVehicleDataResponse;
@class SDLSetMediaClockTimerResponse;
@class SDLShowConstantTBTResponse;
@class SDLShowResponse;
@@ -84,6 +88,7 @@ NS_ASSUME_NONNULL_BEGIN
- (void)onAddSubMenuResponse:(SDLAddSubMenuResponse *)response;
- (void)onAlertManeuverResponse:(SDLAlertManeuverResponse *)response;
- (void)onAlertResponse:(SDLAlertResponse *)response;
+- (void)onButtonPressResponse:(SDLButtonPressResponse *)response;
- (void)onChangeRegistrationResponse:(SDLChangeRegistrationResponse *)response;
- (void)onCreateInteractionChoiceSetResponse:(SDLCreateInteractionChoiceSetResponse *)response;
- (void)onDeleteCommandResponse:(SDLDeleteCommandResponse *)response;
@@ -97,6 +102,7 @@ NS_ASSUME_NONNULL_BEGIN
- (void)onError:(NSException *)e;
- (void)onGenericResponse:(SDLGenericResponse *)response;
- (void)onGetDTCsResponse:(SDLGetDTCsResponse *)response;
+- (void)onGetInteriorVehicleDataResponse:(SDLGetInteriorVehicleDataResponse *)response;
- (void)onGetSystemCapabilityResponse:(SDLGetSystemCapabilityResponse *)response;
- (void)onGetVehicleDataResponse:(SDLGetVehicleDataResponse *)response;
- (void)onGetWayPointsResponse:(SDLGetWaypointsResponse *)response;
@@ -109,6 +115,7 @@ NS_ASSUME_NONNULL_BEGIN
- (void)onOnCommand:(SDLOnCommand *)notification;
- (void)onOnEncodedSyncPData:(SDLOnEncodedSyncPData *)notification;
- (void)onOnHashChange:(SDLOnHashChange *)notification;
+- (void)onOnInteriorVehicleData:(SDLOnInteriorVehicleData *)notification;
- (void)onOnKeyboardInput:(SDLOnKeyboardInput *)notification;
- (void)onOnLanguageChange:(SDLOnLanguageChange *)notification;
- (void)onOnLockScreenNotification:(SDLOnLockScreenStatus *)notification;
@@ -130,6 +137,7 @@ NS_ASSUME_NONNULL_BEGIN
- (void)onSetAppIconResponse:(SDLSetAppIconResponse *)response;
- (void)onSetDisplayLayoutResponse:(SDLSetDisplayLayoutResponse *)response;
- (void)onSetGlobalPropertiesResponse:(SDLSetGlobalPropertiesResponse *)response;
+- (void)onSetInteriorVehicleDataResponse:(SDLSetInteriorVehicleDataResponse *)response;
- (void)onSetMediaClockTimerResponse:(SDLSetMediaClockTimerResponse *)response;
- (void)onShowConstantTBTResponse:(SDLShowConstantTBTResponse *)response;
- (void)onShowResponse:(SDLShowResponse *)response;
diff --git a/SmartDeviceLink/SDLRadioBand.h b/SmartDeviceLink/SDLRadioBand.h
new file mode 100644
index 000000000..7005da795
--- /dev/null
+++ b/SmartDeviceLink/SDLRadioBand.h
@@ -0,0 +1,26 @@
+//
+// SDLRadioBand.h
+//
+
+#import "SDLEnum.h"
+
+
+typedef SDLEnum SDLRadioBand SDL_SWIFT_ENUM;
+
+/**
+ * @abstract Represents AM radio band
+ *
+ */
+extern SDLRadioBand const SDLRadioBandAM;
+
+/**
+ * @abstract Represents FM radio band
+ *
+ */
+extern SDLRadioBand const SDLRadioBandFM;
+
+/**
+ * @abstract Represents XM radio band
+ *
+ */
+extern SDLRadioBand const SDLRadioBandXM;
diff --git a/SmartDeviceLink/SDLRadioBand.m b/SmartDeviceLink/SDLRadioBand.m
new file mode 100644
index 000000000..1aa03e70f
--- /dev/null
+++ b/SmartDeviceLink/SDLRadioBand.m
@@ -0,0 +1,9 @@
+//
+// SDLRadioBand.m
+//
+
+#import "SDLRadioBand.h"
+
+SDLRadioBand const SDLRadioBandAM = @"AM";
+SDLRadioBand const SDLRadioBandFM = @"FM";
+SDLRadioBand const SDLRadioBandXM = @"XM";
diff --git a/SmartDeviceLink/SDLRadioControlCapabilities.h b/SmartDeviceLink/SDLRadioControlCapabilities.h
new file mode 100644
index 000000000..952d62a14
--- /dev/null
+++ b/SmartDeviceLink/SDLRadioControlCapabilities.h
@@ -0,0 +1,96 @@
+//
+// SDLRadioControlCapabilities.h
+//
+
+#import "SDLRPCMessage.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ * Contains information about a radio control module's capabilities.
+ */
+@interface SDLRadioControlCapabilities : SDLRPCStruct
+
+/**
+ * @abstractThe short friendly name of the climate control module.
+ * It should not be used to identify a module by mobile application.
+ *
+ * Max string length 100 chars
+ */
+@property (strong, nonatomic) NSString *moduleName;
+
+/**
+ * @abstract Availability of the control of enable/disable radio.
+ * True: Available, False: Not Available, Not present: Not Available.
+ *
+ * Optional, Boolean
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *radioEnableAvailable;
+
+/**
+ * @abstract Availability of the control of radio band.
+ * True: Available, False: Not Available, Not present: Not Available.
+ *
+ * Optional, Boolean
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *radioBandAvailable;
+
+/**
+ * @abstract Availability of the control of radio frequency.
+ * True: Available, False: Not Available, Not present: Not Available.
+ *
+ * Optional, Boolean
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *radioFrequencyAvailable;
+
+/**
+ * @abstract Availability of the control of HD radio channel.
+ * True: Available, False: Not Available, Not present: Not Available.
+ *
+ * Optional, Boolean
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *hdChannelAvailable;
+
+/**
+ * @abstract Availability of the getting Radio Data System (RDS) data.
+ * True: Available, False: Not Available, Not present: Not Available.
+ *
+ * Optional, Boolean
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *rdsDataAvailable;
+
+/**
+ * @abstract Availability of the getting the number of available HD channels.
+ * True: Available, False: Not Available, Not present: Not Available.
+ *
+ * Optional, Boolean
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *availableHDsAvailable;
+
+/**
+ * @abstract Availability of the getting the Radio state.
+ * True: Available, False: Not Available, Not present: Not Available.
+ *
+ * Optional, Boolean
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *stateAvailable;
+
+/**
+ * @abstract Availability of the getting the signal strength.
+ * True: Available, False: Not Available, Not present: Not Available.
+ *
+ * Optional, Boolean
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *signalStrengthAvailable;
+
+/**
+ * @abstract Availability of the getting the signal Change Threshold
+ * True: Available, False: Not Available, Not present: Not Available.
+ *
+ * Optional, Boolean
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *signalChangeThresholdAvailable;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLRadioControlCapabilities.m b/SmartDeviceLink/SDLRadioControlCapabilities.m
new file mode 100644
index 000000000..82570a9c4
--- /dev/null
+++ b/SmartDeviceLink/SDLRadioControlCapabilities.m
@@ -0,0 +1,103 @@
+//
+// SDLRadioControlCapabilities.m
+//
+
+#import "SDLRadioControlCapabilities.h"
+#import "SDLNames.h"
+#import "NSMutableDictionary+Store.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@implementation SDLRadioControlCapabilities
+
+- (void)setModuleName:(NSString *)moduleName {
+ [store sdl_setObject:moduleName forName:SDLNameModuleName];
+}
+
+- (NSString *)moduleName {
+ return [store sdl_objectForName:SDLNameModuleName];
+}
+
+- (void)setRadioEnableAvailable:(nullable NSNumber<SDLBool> *)radioEnableAvailable {
+ [store sdl_setObject:radioEnableAvailable forName:SDLNameRadioEnableAvailable];
+
+}
+
+- (nullable NSNumber<SDLBool> *)radioEnableAvailable {
+ return [store sdl_objectForName:SDLNameRadioEnableAvailable];
+}
+
+- (void)setRadioBandAvailable:(nullable NSNumber<SDLBool> *)radioBandAvailable {
+ [store sdl_setObject:radioBandAvailable forName:SDLNameRadioBandAvailable];
+
+}
+
+- (nullable NSNumber<SDLBool> *)radioBandAvailable {
+ return [store sdl_objectForName:SDLNameRadioBandAvailable];
+}
+
+- (void)setRadioFrequencyAvailable:(nullable NSNumber<SDLBool> *)radioFrequencyAvailable {
+ [store sdl_setObject:radioFrequencyAvailable forName:SDLNameRadioFrequencyAvailable];
+}
+
+- (nullable NSNumber<SDLBool> *)radioFrequencyAvailable {
+ return [store sdl_objectForName:SDLNameRadioFrequencyAvailable];
+}
+
+- (void)setHdChannelAvailable:(nullable NSNumber<SDLBool> *)hdChannelAvailable {
+ [store sdl_setObject:hdChannelAvailable forName:SDLNameHdChannelAvailable];
+
+}
+
+- (nullable NSNumber<SDLBool> *)hdChannelAvailable {
+ return [store sdl_objectForName:SDLNameHdChannelAvailable];
+}
+
+- (void)setRdsDataAvailable:(nullable NSNumber<SDLBool> *)rdsDataAvailable {
+ [store sdl_setObject:rdsDataAvailable forName:SDLNameRdsDataAvailable];
+
+}
+
+- (nullable NSNumber<SDLBool> *)rdsDataAvailable {
+ return [store sdl_objectForName:SDLNameRdsDataAvailable];
+}
+
+- (void)setAvailableHDsAvailable:(nullable NSNumber<SDLBool> *)availableHDsAvailable {
+ [store sdl_setObject:availableHDsAvailable forName:SDLNameAvailableHDsAvailable];
+
+}
+
+- (nullable NSNumber<SDLBool> *)availableHDsAvailable {
+ return [store sdl_objectForName:SDLNameAvailableHDsAvailable];
+}
+
+- (void)setStateAvailable:(nullable NSNumber<SDLBool> *)stateAvailable {
+ [store sdl_setObject:stateAvailable forName:SDLNameStateAvailable];
+
+}
+
+- (nullable NSNumber<SDLBool> *)stateAvailable {
+ return [store sdl_objectForName:SDLNameStateAvailable];
+}
+
+- (void)setSignalStrengthAvailable:(nullable NSNumber<SDLBool> *)signalStrengthAvailable {
+ [store sdl_setObject:signalStrengthAvailable forName:SDLNameSignalStrengthAvailable];
+
+}
+
+- (nullable NSNumber<SDLBool> *)signalStrengthAvailable {
+ return [store sdl_objectForName:SDLNameSignalStrengthAvailable];
+}
+
+- (void)setSignalChangeThresholdAvailable:(nullable NSNumber<SDLBool> *)signalChangeThresholdAvailable {
+ [store sdl_setObject:signalChangeThresholdAvailable forName:SDLNameSignalChangeThresholdAvailable];
+
+}
+
+- (nullable NSNumber<SDLBool> *)signalChangeThresholdAvailable {
+ return [store sdl_objectForName:SDLNameSignalChangeThresholdAvailable];
+}
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLRadioControlData.h b/SmartDeviceLink/SDLRadioControlData.h
new file mode 100644
index 000000000..11ffe5e4d
--- /dev/null
+++ b/SmartDeviceLink/SDLRadioControlData.h
@@ -0,0 +1,77 @@
+//
+// SDLRadioControlData.h
+//
+
+#import "SDLRPCMessage.h"
+#import "SDLRadioBand.h"
+#import "SDLRadioState.h"
+@class SDLRdsData;
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface SDLRadioControlData : SDLRPCStruct
+
+/**
+ * @abstract The integer part of the frequency ie for 101.7 this value should be 101
+ *
+ * Integer
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLInt> *frequencyInteger;
+
+/**
+ * @abstract The fractional part of the frequency for 101.7 is 7
+ *
+ * Integer
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLInt> *frequencyFraction;
+
+/**
+ * @abstract Radio band value
+ *
+ * SDLRadioBand
+ */
+@property (nullable, strong, nonatomic) SDLRadioBand band;
+
+@property (nullable, strong, nonatomic) SDLRdsData *rdsData;
+
+/**
+ * @abstract number of HD sub-channels if available
+ *
+ * Integer value Min Value - 1 Max Value -3
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLInt> *availableHDs;
+
+/**
+ * @abstract Current HD sub-channel if available
+ *
+ * Integer value Min Value - 1 Max Value -3
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLInt> *hdChannel;
+
+/**
+ * @abstract Signal Strength Value
+ *
+ * Integer value Min Value - 0 Max Value - 100
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLInt> *signalStrength;
+
+/**
+ * @abstract If the signal strength falls below the set value for this parameter, the radio will tune to an alternative frequency
+ *
+ * Integer value Min Value - 0 Max Value - 100
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLInt> *signalChangeThreshold;
+
+/**
+ * @abstract True if the radio is on, false is the radio is off
+ *
+ * Boolean value
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *radioEnable;
+
+
+@property (nullable, strong, nonatomic) SDLRadioState state;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLRadioControlData.m b/SmartDeviceLink/SDLRadioControlData.m
new file mode 100644
index 000000000..f6f259480
--- /dev/null
+++ b/SmartDeviceLink/SDLRadioControlData.m
@@ -0,0 +1,96 @@
+//
+// SDLRadioControlData.m
+//
+
+#import "SDLRadioControlData.h"
+#import "SDLNames.h"
+#import "SDLRdsData.h"
+#import "NSMutableDictionary+Store.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@implementation SDLRadioControlData
+
+- (void)setFrequencyInteger:(nullable NSNumber<SDLInt> *)frequencyInteger {
+ [store sdl_setObject:frequencyInteger forName:SDLNameFrequencyInteger];
+}
+
+- (nullable NSNumber<SDLInt> *)frequencyInteger {
+ return [store sdl_objectForName:SDLNameFrequencyInteger];
+}
+
+- (void)setFrequencyFraction:(nullable NSNumber<SDLInt> *)frequencyFraction {
+ [store sdl_setObject:frequencyFraction forName:SDLNameFrequencyFraction];
+}
+
+- (nullable NSNumber<SDLInt> *)frequencyFraction {
+ return [store sdl_objectForName:SDLNameFrequencyFraction];
+}
+
+- (void)setBand:(nullable SDLRadioBand)band {
+ [store sdl_setObject:band forName:SDLNameBand];
+}
+
+- (nullable SDLRadioBand)band{
+ return [store sdl_objectForName:SDLNameBand];
+}
+
+- (void)setRdsData:(nullable SDLRdsData *)rdsData {
+ [store sdl_setObject:rdsData forName:SDLNameRdsData];
+}
+
+- (nullable SDLRdsData *)rdsData {
+ return [store sdl_objectForName:SDLNameRdsData];
+}
+
+- (void)setAvailableHDs:(nullable NSNumber<SDLInt> *)availableHDs {
+ [store sdl_setObject:availableHDs forName:SDLNameAvailableHDs];
+}
+
+- (nullable NSNumber<SDLInt> *)availableHDs {
+ return [store sdl_objectForName:SDLNameAvailableHDs];
+}
+
+- (void)setHdChannel:(nullable NSNumber<SDLInt> *)hdChannel {
+ [store sdl_setObject:hdChannel forName:SDLNameHdChannel];
+}
+
+- (nullable NSNumber<SDLInt> *)hdChannel {
+ return [store sdl_objectForName:SDLNameHdChannel];
+}
+
+- (void)setSignalStrength:(nullable NSNumber<SDLInt> *)signalStrength {
+ [store sdl_setObject:signalStrength forName:SDLNameSignalStrength];
+}
+
+- (nullable NSNumber<SDLInt> *)signalStrength {
+ return [store sdl_objectForName:SDLNameSignalStrength];
+}
+
+- (void)setSignalChangeThreshold:(nullable NSNumber<SDLInt> *)signalChangeThreshold {
+ [store sdl_setObject:signalChangeThreshold forName:SDLNameSignalChangeThreshold];
+}
+
+- (nullable NSNumber<SDLInt> *)signalChangeThreshold {
+ return [store sdl_objectForName:SDLNameSignalChangeThreshold];
+}
+
+- (void)setRadioEnable:(nullable NSNumber<SDLBool> *)radioEnable {
+ [store sdl_setObject:radioEnable forName:SDLNameRadioEnable];
+}
+
+- (nullable NSNumber<SDLBool> *)radioEnable {
+ return [store sdl_objectForName:SDLNameRadioEnable];
+}
+
+- (void)setState:(nullable SDLRadioState)state {
+ [store sdl_setObject:state forName:SDLNameState];
+}
+
+- (nullable SDLRadioState)state {
+ return [store sdl_objectForName:SDLNameState];
+}
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLRadioState.h b/SmartDeviceLink/SDLRadioState.h
new file mode 100644
index 000000000..b44c61e5c
--- /dev/null
+++ b/SmartDeviceLink/SDLRadioState.h
@@ -0,0 +1,32 @@
+//
+// SDLRadioState.h
+//
+
+#import "SDLEnum.h"
+
+typedef SDLEnum SDLRadioState SDL_SWIFT_ENUM;
+
+
+/**
+ * @abstract Represents Radio state as ACQUIRING
+ *
+ */
+extern SDLRadioState const SDLRadioBandAcquiring;
+
+/**
+ * @abstract Represents Radio state as ACQUIRED
+ *
+ */
+extern SDLRadioState const SDLRadioStateAcquired;
+
+/**
+ * @abstract Represents Radio state as MULTICAST
+ *
+ */
+extern SDLRadioState const SDLRadioStateMulticast;
+
+/**
+ * @abstract Represents Radio state as NOT_FOUND
+ *
+ */
+extern SDLRadioState const SDLRadioStateNotFound;
diff --git a/SmartDeviceLink/SDLRadioState.m b/SmartDeviceLink/SDLRadioState.m
new file mode 100644
index 000000000..43692f97f
--- /dev/null
+++ b/SmartDeviceLink/SDLRadioState.m
@@ -0,0 +1,10 @@
+//
+// SDLRadioState.m
+//
+
+#import "SDLRadioState.h"
+
+SDLRadioState const SDLRadioBandAcquiring = @"ACQUIRING";
+SDLRadioState const SDLRadioStateAcquired = @"ACQUIRED";
+SDLRadioState const SDLRadioStateMulticast = @"MULTICAST";
+SDLRadioState const SDLRadioStateNotFound = @"NOT_FOUND";
diff --git a/SmartDeviceLink/SDLRemoteControlCapabilities.h b/SmartDeviceLink/SDLRemoteControlCapabilities.h
new file mode 100644
index 000000000..5d6fb7bb3
--- /dev/null
+++ b/SmartDeviceLink/SDLRemoteControlCapabilities.h
@@ -0,0 +1,39 @@
+//
+// SDLRemoteControlCapabilities.h
+//
+
+#import "SDLRPCMessage.h"
+@class SDLClimateControlCapabilities;
+@class SDLRadioControlCapabilities;
+@class SDLButtonCapabilities;
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface SDLRemoteControlCapabilities : SDLRPCStruct
+
+/**
+ * @abstract If included, the platform supports RC climate controls.
+ * For this baseline version, maxsize=1. i.e. only one climate control module is supported.
+ *
+ * Optional, Array of SDLClimateControlCapabilities, Array length 1 - 100
+ */
+@property (nullable, strong, nonatomic) NSArray<SDLClimateControlCapabilities *> *climateControlCapabilities;
+
+/**
+ * @abstract If included, the platform supports RC radio controls.
+ * For this baseline version, maxsize=1. i.e. only one radio control module is supported.
+ *
+ * Optional, Array of SDLRadioControlCapabilities, Array length 1 - 100
+ */
+@property (nullable, strong, nonatomic) NSArray<SDLRadioControlCapabilities *> *radioControlCapabilities;
+
+/**
+ * @abstract If included, the platform supports RC button controls with the included button names.
+ *
+ * Optional, Array of SDLButtonCapabilities, Array length 1 - 100
+ */
+@property (nullable, strong, nonatomic) NSArray<SDLButtonCapabilities *> *buttonCapabilities;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLRemoteControlCapabilities.m b/SmartDeviceLink/SDLRemoteControlCapabilities.m
new file mode 100644
index 000000000..ca7d8ad82
--- /dev/null
+++ b/SmartDeviceLink/SDLRemoteControlCapabilities.m
@@ -0,0 +1,44 @@
+//
+// SDLRemoteControlCapabilities.m
+//
+
+#import "SDLRemoteControlCapabilities.h"
+#import "SDLClimateControlCapabilities.h"
+#import "SDLRadioControlCapabilities.h"
+#import "SDLButtonCapabilities.h"
+#import "NSMutableDictionary+Store.h"
+#import "SDLNames.h"
+
+
+NS_ASSUME_NONNULL_BEGIN
+
+
+@implementation SDLRemoteControlCapabilities
+
+- (void)setClimateControlCapabilities:(nullable NSArray<SDLClimateControlCapabilities *> *)climateControlCapabilities {
+ [store sdl_setObject:climateControlCapabilities forName:SDLNameClimateControlCapabilities];
+}
+
+- (nullable NSArray<SDLClimateControlCapabilities *> *)climateControlCapabilities {
+ return [store sdl_objectForName:SDLNameClimateControlCapabilities];
+}
+
+-(void)setRadioControlCapabilities:(nullable NSArray<SDLRadioControlCapabilities *> *)radioControlCapabilities {
+ [store sdl_setObject:radioControlCapabilities forName:SDLNameRadioControlCapabilities ];
+}
+
+- (nullable NSArray<SDLRadioControlCapabilities *> *)radioControlCapabilities {
+ return store[SDLNameRadioControlCapabilities];
+}
+
+- (void)setButtonCapabilities:(nullable NSArray *)buttonCapabilities {
+ [store sdl_setObject:buttonCapabilities forName:SDLNameButtonCapabilities];
+}
+
+- (nullable NSArray *)buttonCapabilities {
+ return [store sdl_objectForName:SDLNameButtonCapabilities];
+}
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLResult.h b/SmartDeviceLink/SDLResult.h
index ee9cd6df0..dadc0bec2 100644
--- a/SmartDeviceLink/SDLResult.h
+++ b/SmartDeviceLink/SDLResult.h
@@ -185,3 +185,13 @@ extern SDLResult const SDLResultExpiredCertificate;
* The provided hash ID does not match the hash of the current set of registered data or the core could not resume the previous data.
*/
extern SDLResult const SDLResultResumeFailed;
+
+/**
+ * The requested data is not available on this vehicle or is not published for the connected app.
+ */
+extern SDLResult const SDLResultDataNotAvailable;
+
+/**
+ * The requested data is read only thus cannot be change via remote control .
+ */
+extern SDLResult const SDLResultReadOnly;
diff --git a/SmartDeviceLink/SDLResult.m b/SmartDeviceLink/SDLResult.m
index 23b6cdd1c..77c8c5529 100644
--- a/SmartDeviceLink/SDLResult.m
+++ b/SmartDeviceLink/SDLResult.m
@@ -37,3 +37,6 @@ SDLResult const SDLResultSaved = @"SAVED";
SDLResult const SDLResultInvalidCertificate = @"INVALID_CERT";
SDLResult const SDLResultExpiredCertificate = @"EXPIRED_CERT";
SDLResult const SDLResultResumeFailed = @"RESUME_FAILED";
+SDLResult const SDLResultDataNotAvailable = @"DATA_NOT_AVAILABLE";
+SDLResult const SDLResultReadOnly = @"READ_ONLY";
+
diff --git a/SmartDeviceLink/SDLSetInteriorVehicleData.h b/SmartDeviceLink/SDLSetInteriorVehicleData.h
new file mode 100644
index 000000000..1107360c9
--- /dev/null
+++ b/SmartDeviceLink/SDLSetInteriorVehicleData.h
@@ -0,0 +1,20 @@
+//
+// SDLSetInteriorVehicleData.h
+//
+
+#import "SDLRPCRequest.h"
+@class SDLModuleData;
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface SDLSetInteriorVehicleData : SDLRPCRequest
+
+/**
+ * The module data to set for the requested RC module.
+ *
+ */
+@property (strong, nonatomic) SDLModuleData *moduleData;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLSetInteriorVehicleData.m b/SmartDeviceLink/SDLSetInteriorVehicleData.m
new file mode 100644
index 000000000..a5d022af4
--- /dev/null
+++ b/SmartDeviceLink/SDLSetInteriorVehicleData.m
@@ -0,0 +1,30 @@
+//
+// SDLSetInteriorVehicleData.m
+//
+
+#import "SDLSetInteriorVehicleData.h"
+#import "SDLNames.h"
+#import "NSMutableDictionary+Store.h"
+#import "SDLModuleData.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@implementation SDLSetInteriorVehicleData
+
+- (instancetype)init {
+ if (self = [super initWithName:SDLNameSetInteriorVehicleData]) {
+ }
+ return self;
+}
+
+- (void)setModuleData:(SDLModuleData *)moduleData {
+ [parameters sdl_setObject:moduleData forName:SDLNameModuleData];
+}
+
+- (SDLModuleData *)moduleData {
+ return [parameters sdl_objectForName:SDLNameModuleData];
+}
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLSetInteriorVehicleDataResponse.h b/SmartDeviceLink/SDLSetInteriorVehicleDataResponse.h
new file mode 100644
index 000000000..cbd272801
--- /dev/null
+++ b/SmartDeviceLink/SDLSetInteriorVehicleDataResponse.h
@@ -0,0 +1,20 @@
+//
+// SDLSetInteriorVehicleDataResponse.h
+//
+
+#import "SDLRPCResponse.h"
+@class SDLModuleData;
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ * Used to set the values of one remote control module
+ *
+ */
+@interface SDLSetInteriorVehicleDataResponse : SDLRPCResponse
+
+@property (strong, nonatomic) SDLModuleData *moduleData;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLSetInteriorVehicleDataResponse.m b/SmartDeviceLink/SDLSetInteriorVehicleDataResponse.m
new file mode 100644
index 000000000..fbc06ba94
--- /dev/null
+++ b/SmartDeviceLink/SDLSetInteriorVehicleDataResponse.m
@@ -0,0 +1,30 @@
+//
+// SDLSetInteriorVehicleDataResponse.m
+//
+
+#import "SDLSetInteriorVehicleDataResponse.h"
+#import "SDLNames.h"
+#import "SDLModuleData.h"
+#import "NSMutableDictionary+Store.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@implementation SDLSetInteriorVehicleDataResponse
+
+- (instancetype)init {
+ if (self = [super initWithName:SDLNameSetInteriorVehicleData]) {
+ }
+ return self;
+}
+
+- (void)setModuleData:(SDLModuleData *)moduleData {
+ [parameters sdl_setObject:moduleData forName:SDLNameModuleData];
+}
+
+- (SDLModuleData *)moduleData {
+ return [parameters sdl_objectForName:SDLNameModuleData];
+}
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLSystemCapability.h b/SmartDeviceLink/SDLSystemCapability.h
index 8d1f8483f..68e8bd7e9 100644
--- a/SmartDeviceLink/SDLSystemCapability.h
+++ b/SmartDeviceLink/SDLSystemCapability.h
@@ -13,7 +13,7 @@
@class SDLPhoneCapability;
@class SDLNavigationCapability;
-@class SDLVideoStreamingCapability;
+@class SDLRemoteControlCapabilities;
NS_ASSUME_NONNULL_BEGIN
@@ -27,7 +27,7 @@ NS_ASSUME_NONNULL_BEGIN
- (instancetype)initWithPhoneCapability:(SDLPhoneCapability *)capability;
-- (instancetype)initWithVideoStreamingCapability:(SDLVideoStreamingCapability *)capability;
+- (instancetype)initWithRemoteControlCapability:(SDLRemoteControlCapabilities *)capability;
@property (strong, nonatomic) SDLSystemCapabilityType systemCapabilityType;
@@ -35,7 +35,7 @@ NS_ASSUME_NONNULL_BEGIN
@property (nullable, strong, nonatomic) SDLPhoneCapability *phoneCapability;
-@property (nullable, strong, nonatomic) SDLVideoStreamingCapability *videoStreamingCapability;
+@property (nullable, strong, nonatomic) SDLRemoteControlCapabilities *remoteControlCapability;
@end
diff --git a/SmartDeviceLink/SDLSystemCapability.m b/SmartDeviceLink/SDLSystemCapability.m
index 25f638912..6c474ec5c 100644
--- a/SmartDeviceLink/SDLSystemCapability.m
+++ b/SmartDeviceLink/SDLSystemCapability.m
@@ -13,7 +13,7 @@
#import "SDLNavigationCapability.h"
#import "SDLPhoneCapability.h"
#import "SDLSystemCapabilityType.h"
-#import "SDLVideoStreamingCapability.h"
+#import "SDLRemoteControlCapabilities.h"
NS_ASSUME_NONNULL_BEGIN
@@ -24,10 +24,10 @@ NS_ASSUME_NONNULL_BEGIN
if (!self) {
return nil;
}
-
+
self.systemCapabilityType = SDLSystemCapabilityTypePhoneCall;
self.phoneCapability = capability;
-
+
return self;
}
@@ -36,22 +36,22 @@ NS_ASSUME_NONNULL_BEGIN
if (!self) {
return nil;
}
-
+
self.systemCapabilityType = SDLSystemCapabilityTypeNavigation;
self.navigationCapability = capability;
-
+
return self;
}
-- (instancetype)initWithVideoStreamingCapability:(SDLVideoStreamingCapability *)capability {
+- (instancetype)initWithRemoteControlCapability:(SDLRemoteControlCapabilities *)capability {
self = [self init];
if (!self) {
return nil;
}
-
- self.systemCapabilityType = SDLSystemCapabilityTypeVideoStreaming;
- self.videoStreamingCapability = capability;
-
+
+ self.systemCapabilityType = SDLSystemCapabilityTypeRemoteControl;
+ self.remoteControlCapability = capability;
+
return self;
}
@@ -81,12 +81,12 @@ NS_ASSUME_NONNULL_BEGIN
return [store sdl_objectForName:SDLNamePhoneCapability ofClass:SDLPhoneCapability.class];
}
-- (void)setVideoStreamingCapability:(nullable SDLVideoStreamingCapability *)videoStreamingCapability {
- [store sdl_setObject:videoStreamingCapability forName:SDLNameVideoStreamingCapability];
+- (void)setRemoteControlCapability:(nullable SDLRemoteControlCapabilities *)remoteControlCapability {
+ [store sdl_setObject:remoteControlCapability forName:SDLNameRemoteControlCapability];
}
-- (nullable SDLVideoStreamingCapability *)videoStreamingCapability {
- return [store sdl_objectForName:SDLNameVideoStreamingCapability ofClass:SDLVideoStreamingCapability.class];
+- (nullable SDLRemoteControlCapabilities *)remoteControlCapability {
+ return [store sdl_objectForName:SDLNameRemoteControlCapability];
}
@end
diff --git a/SmartDeviceLink/SDLSystemCapabilityType.h b/SmartDeviceLink/SDLSystemCapabilityType.h
index e8a177a41..0de977dc4 100644
--- a/SmartDeviceLink/SDLSystemCapabilityType.h
+++ b/SmartDeviceLink/SDLSystemCapabilityType.h
@@ -25,5 +25,17 @@ extern SDLSystemCapabilityType const SDLSystemCapabilityTypePhoneCall;
/**
@abstract VIDEO_STREAMING
+
*/
extern SDLSystemCapabilityType const SDLSystemCapabilityTypeVideoStreaming;
+
+/**
+ @abstract AUDIO_STREAMING
+ REMOTE_CONTROL
+ */
+extern SDLSystemCapabilityType const SDLSystemCapabilityTypeAudioStreaming;
+
+/**
+ @abstract REMOTE_CONTROL
+ */
+extern SDLSystemCapabilityType const SDLSystemCapabilityTypeRemoteControl;
diff --git a/SmartDeviceLink/SDLSystemCapabilityType.m b/SmartDeviceLink/SDLSystemCapabilityType.m
index 47a425c53..54c8181aa 100644
--- a/SmartDeviceLink/SDLSystemCapabilityType.m
+++ b/SmartDeviceLink/SDLSystemCapabilityType.m
@@ -12,3 +12,5 @@
SDLSystemCapabilityType const SDLSystemCapabilityTypeNavigation = @"NAVIGATION";
SDLSystemCapabilityType const SDLSystemCapabilityTypePhoneCall = @"PHONE_CALL";
SDLSystemCapabilityType const SDLSystemCapabilityTypeVideoStreaming = @"VIDEO_STREAMING";
+SDLSystemCapabilityType const SDLSystemCapabilityTypeAudioStreaming = @"AUDIO_STREAMING";
+SDLSystemCapabilityType const SDLSystemCapabilityTypeRemoteControl = @"REMOTE_CONTROL";
diff --git a/SmartDeviceLink/SDLTemperature.h b/SmartDeviceLink/SDLTemperature.h
new file mode 100644
index 000000000..514338883
--- /dev/null
+++ b/SmartDeviceLink/SDLTemperature.h
@@ -0,0 +1,27 @@
+//
+// SDLTemperature.h
+//
+
+#import "SDLRPCMessage.h"
+#import "SDLTemperatureUnit.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface SDLTemperature : SDLRPCStruct
+
+/**
+ * @abstract Temperature Unit
+ *
+ */
+@property (strong, nonatomic) SDLTemperatureUnit unit;
+
+/**
+ * @abstract Temperature Value in TemperatureUnit specified unit. Range depends on OEM and is not checked by SDL
+ *
+ * FLoat value
+ */
+@property (strong, nonatomic) NSNumber<SDLFloat> *value;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLTemperature.m b/SmartDeviceLink/SDLTemperature.m
new file mode 100644
index 000000000..ef300d613
--- /dev/null
+++ b/SmartDeviceLink/SDLTemperature.m
@@ -0,0 +1,31 @@
+//
+// SDLTemperature.m
+//
+
+#import "SDLTemperature.h"
+#import "SDLNames.h"
+#import "NSMutableDictionary+Store.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@implementation SDLTemperature
+
+- (void)setUnit:(SDLTemperatureUnit)unit {
+ [store sdl_setObject:unit forName:SDLNameUnit];
+}
+
+- (SDLTemperatureUnit)unit {
+ return [store sdl_objectForName:SDLNameUnit];
+}
+
+- (void)setValue:(NSNumber<SDLFloat> *)value {
+ [store sdl_setObject:value forName:SDLNameValue];
+}
+
+- (NSNumber<SDLFloat> *)value {
+ return [store sdl_objectForName:SDLNameValue];
+}
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLTemperatureUnit.h b/SmartDeviceLink/SDLTemperatureUnit.h
new file mode 100644
index 000000000..63c1a20d0
--- /dev/null
+++ b/SmartDeviceLink/SDLTemperatureUnit.h
@@ -0,0 +1,19 @@
+//
+// SDLTemperatureUnit.h
+//
+
+
+#import "SDLEnum.h"
+
+typedef SDLEnum SDLTemperatureUnit SDL_SWIFT_ENUM;
+
+/**
+ @abstract Reflects the current HMI setting for temperature unit in Celsius
+ **/
+extern SDLTemperatureUnit const SDLTemperatureUnitCelsius;
+
+
+/**
+ @abstract Reflects the current HMI setting for temperature unit in Fahrenheit
+ **/
+extern SDLTemperatureUnit const SDLTemperatureUnitFahrenheit;
diff --git a/SmartDeviceLink/SDLTemperatureUnit.m b/SmartDeviceLink/SDLTemperatureUnit.m
new file mode 100644
index 000000000..f54fcaaac
--- /dev/null
+++ b/SmartDeviceLink/SDLTemperatureUnit.m
@@ -0,0 +1,8 @@
+//
+// SDLTemperatureUnit.m
+//
+
+#import "SDLTemperatureUnit.h"
+
+SDLTemperatureUnit const SDLTemperatureUnitCelsius = @"CELSIUS";
+SDLTemperatureUnit const SDLTemperatureUnitFahrenheit = @"FAHRENHEIT";
diff --git a/SmartDeviceLink/SDLVentilationMode.h b/SmartDeviceLink/SDLVentilationMode.h
new file mode 100644
index 000000000..aaf645920
--- /dev/null
+++ b/SmartDeviceLink/SDLVentilationMode.h
@@ -0,0 +1,28 @@
+//
+// SDLVentilationMode.h
+//
+
+#import "SDLEnum.h"
+
+typedef SDLEnum SDLVentilationMode SDL_SWIFT_ENUM;
+
+/**
+ * @abstract A SDLDefrostZone with the value of *UPPER*
+ */
+extern SDLVentilationMode const SDLVentilationModeUpper;
+
+/**
+ * @abstract A SDLDefrostZone with the value of *LOWER*
+ */
+extern SDLVentilationMode const SDLVentilationModeLower;
+
+/**
+ * @abstract A SDLDefrostZone with the value of *BOTH*
+ */
+extern SDLVentilationMode const SDLVentilationModeBoth;
+
+/**
+ * @abstract A SDLDefrostZone with the value of *NORTH*
+ */
+extern SDLVentilationMode const SDLVentilationModeNorth;
+
diff --git a/SmartDeviceLink/SDLVentilationMode.m b/SmartDeviceLink/SDLVentilationMode.m
new file mode 100644
index 000000000..c23c99985
--- /dev/null
+++ b/SmartDeviceLink/SDLVentilationMode.m
@@ -0,0 +1,11 @@
+//
+// SDLVentilationMode.m
+//
+
+#import "SDLVentilationMode.h"
+
+
+SDLVentilationMode const SDLVentilationModeUpper = @"UPPER";
+SDLVentilationMode const SDLVentilationModeLower = @"LOWER";
+SDLVentilationMode const SDLVentilationModeBoth = @"BOTH";
+SDLVentilationMode const SDLVentilationModeNorth = @"NONE";
diff --git a/SmartDeviceLink/SmartDeviceLink.h b/SmartDeviceLink/SmartDeviceLink.h
index 5b69ab55f..c995a2892 100644
--- a/SmartDeviceLink/SmartDeviceLink.h
+++ b/SmartDeviceLink/SmartDeviceLink.h
@@ -50,6 +50,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLAddSubMenu.h"
#import "SDLAlert.h"
#import "SDLAlertManeuver.h"
+#import "SDLButtonPress.h"
#import "SDLChangeRegistration.h"
#import "SDLCreateInteractionChoiceSet.h"
#import "SDLDeleteCommand.h"
@@ -61,6 +62,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLEncodedSyncPData.h"
#import "SDLEndAudioPassThru.h"
#import "SDLGetDTCs.h"
+#import "SDLGetInteriorVehicleData.h"
#import "SDLGetSystemCapability.h"
#import "SDLGetVehicleData.h"
#import "SDLGetWaypoints.h"
@@ -76,6 +78,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLSetAppIcon.h"
#import "SDLSetDisplayLayout.h"
#import "SDLSetGlobalProperties.h"
+#import "SDLSetInteriorVehicleData.h"
#import "SDLSetMediaClockTimer.h"
#import "SDLShow.h"
#import "SDLShowConstantTBT.h"
@@ -96,6 +99,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLAddSubMenuResponse.h"
#import "SDLAlertManeuverResponse.h"
#import "SDLAlertResponse.h"
+#import "SDLButtonPressResponse.h"
#import "SDLChangeRegistrationResponse.h"
#import "SDLCreateInteractionChoiceSetResponse.h"
#import "SDLDeleteCommandResponse.h"
@@ -108,6 +112,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLEndAudioPassThruResponse.h"
#import "SDLGenericResponse.h"
#import "SDLGetDTCsResponse.h"
+#import "SDLGetInteriorVehicleDataResponse.h"
#import "SDLGetSystemCapabilityResponse.h"
#import "SDLGetVehicleDataResponse.h"
#import "SDLGetWaypointsResponse.h"
@@ -123,6 +128,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLSetAppIconResponse.h"
#import "SDLSetDisplayLayoutResponse.h"
#import "SDLSetGlobalPropertiesResponse.h"
+#import "SDLSetInteriorVehicleDataResponse.h"
#import "SDLSetMediaClockTimerResponse.h"
#import "SDLShowConstantTBTResponse.h"
#import "SDLShowResponse.h"
@@ -148,6 +154,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLOnEncodedSyncPData.h"
#import "SDLOnHMIStatus.h"
#import "SDLOnHashChange.h"
+#import "SDLOnInteriorVehicleData.h"
#import "SDLOnKeyboardInput.h"
#import "SDLOnLanguageChange.h"
#import "SDLOnLockScreenStatus.h"
@@ -168,6 +175,8 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLButtonCapabilities.h"
#import "SDLChoice.h"
#import "SDLClusterModeStatus.h"
+#import "SDLClimateControlCapabilities.h"
+#import "SDLClimateControlData.h"
#import "SDLDIDResult.h"
#import "SDLDateTime.h"
#import "SDLDeviceInfo.h"
@@ -186,12 +195,17 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLLocationCoordinate.h"
#import "SDLLocationDetails.h"
#import "SDLMenuParams.h"
+#import "SDLModuleData.h"
#import "SDLMyKey.h"
#import "SDLNavigationCapability.h"
#import "SDLParameterPermissions.h"
#import "SDLPermissionItem.h"
#import "SDLPhoneCapability.h"
#import "SDLPresetBankCapabilities.h"
+#import "SDLRadioControlCapabilities.h"
+#import "SDLRadioControlData.h"
+#import "SDLRdsData.h"
+#import "SDLRemoteControlCapabilities.h"
#import "SDLScreenParams.h"
#import "SDLSingleTireStatus.h"
#import "SDLSoftButton.h"
@@ -200,6 +214,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLSyncMsgVersion.h"
#import "SDLSystemCapability.h"
#import "SDLTTSChunk.h"
+#import "SDLTemperature.h"
#import "SDLTextField.h"
#import "SDLTireStatus.h"
#import "SDLTouchCoord.h"
@@ -224,6 +239,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLCharacterSet.h"
#import "SDLCompassDirection.h"
#import "SDLComponentVolumeStatus.h"
+#import "SDLDefrostZone.h"
#import "SDLDeliveryMode.h"
#import "SDLDeviceLevelStatus.h"
#import "SDLDimension.h"
@@ -249,6 +265,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLLockScreenStatus.h"
#import "SDLMaintenanceModeStatus.h"
#import "SDLMediaClockFormat.h"
+#import "SDLModuleType.h"
#import "SDLPRNDL.h"
#import "SDLPermissionStatus.h"
#import "SDLPowerModeQualificationStatus.h"
@@ -256,6 +273,8 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLPredefinedLayout.h"
#import "SDLPrerecordedSpeech.h"
#import "SDLPrimaryAudioSource.h"
+#import "SDLRadioBand.h"
+#import "SDLRadioState.h"
#import "SDLRPCMessageType.h"
#import "SDLRequestType.h"
#import "SDLResult.h"
@@ -266,6 +285,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLSystemCapabilityType.h"
#import "SDLSystemContext.h"
#import "SDLTBTState.h"
+#import "SDLTemperatureUnit.h"
#import "SDLTextAlignment.h"
#import "SDLTextFieldName.h"
#import "SDLTimerMode.h"
@@ -278,6 +298,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLVehicleDataResultCode.h"
#import "SDLVehicleDataStatus.h"
#import "SDLVehicleDataType.h"
+#import "SDLVentilationMode.h"
#import "SDLVrCapabilities.h"
#import "SDLWarningLightStatus.h"
#import "SDLWaypointType.h"