diff options
author | NicoleYarroch <nicole@livio.io> | 2021-01-22 08:53:13 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-22 08:53:13 -0500 |
commit | ff81c9bce110f7798520fdfeaed4bbb4d7722911 (patch) | |
tree | 0c36f2db5dc9ad4cd785baa446d3731140e97cf9 | |
parent | 869ffa6f89037f503966c6517dfd3857443e48e6 (diff) | |
parent | 8d4e364a0103a73846522cbf6667844a1acc4c33 (diff) | |
download | sdl_ios-ff81c9bce110f7798520fdfeaed4bbb4d7722911.tar.gz |
Merge pull request #1868 from LuxoftSDL/feature/sdl_0255_enhance_bodyInformation
SDL-0255 Enhance BodyInformation vehicle data
19 files changed, 1176 insertions, 71 deletions
diff --git a/SmartDeviceLink-iOS.xcodeproj/project.pbxproj b/SmartDeviceLink-iOS.xcodeproj/project.pbxproj index 2773665f2..6c8b2b74a 100644 --- a/SmartDeviceLink-iOS.xcodeproj/project.pbxproj +++ b/SmartDeviceLink-iOS.xcodeproj/project.pbxproj @@ -1667,6 +1667,18 @@ 9FA0D00C22DF0B65009CF344 /* SDLCreateWindowResponseSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FA0D00B22DF0B65009CF344 /* SDLCreateWindowResponseSpec.m */; }; 9FA0D00F22DF0B90009CF344 /* SDLDeleteWindowSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FA0D00E22DF0B90009CF344 /* SDLDeleteWindowSpec.m */; }; 9FA0D01222DF0BAC009CF344 /* SDLDeleteWindowResponseSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FA0D01122DF0BAC009CF344 /* SDLDeleteWindowResponseSpec.m */; }; + B3838A01257C47FD00420C11 /* SDLDoorStatusTypeSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A00257C47FD00420C11 /* SDLDoorStatusTypeSpec.m */; }; + B3838A09257C4EB400420C11 /* SDLDoorStatusSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A08257C4EB300420C11 /* SDLDoorStatusSpec.m */; }; + B3838A0F257C4EE100420C11 /* SDLGateStatusSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A0E257C4EE100420C11 /* SDLGateStatusSpec.m */; }; + B3838A15257C4EFD00420C11 /* SDLRoofStatusSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A14257C4EFD00420C11 /* SDLRoofStatusSpec.m */; }; + B3838A20257C5BB000420C11 /* SDLRoofStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = B3838A1E257C5BAF00420C11 /* SDLRoofStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B3838A21257C5BB000420C11 /* SDLRoofStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A1F257C5BB000420C11 /* SDLRoofStatus.m */; }; + B3838A28257C5CE600420C11 /* SDLDoorStatusType.h in Headers */ = {isa = PBXBuildFile; fileRef = B3838A26257C5CE600420C11 /* SDLDoorStatusType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B3838A29257C5CE600420C11 /* SDLDoorStatusType.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A27257C5CE600420C11 /* SDLDoorStatusType.m */; }; + B3838A30257C5D1B00420C11 /* SDLGateStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A2E257C5D1A00420C11 /* SDLGateStatus.m */; }; + B3838A31257C5D1B00420C11 /* SDLGateStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = B3838A2F257C5D1B00420C11 /* SDLGateStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B3838A3A257C6AB700420C11 /* SDLDoorStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A38257C6AB600420C11 /* SDLDoorStatus.m */; }; + B3838A3B257C6AB700420C11 /* SDLDoorStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = B3838A39257C6AB600420C11 /* SDLDoorStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; B38D8E7E24A118BD00B977D0 /* SDLGearStatusSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B38D8E7D24A118BD00B977D0 /* SDLGearStatusSpec.m */; }; B38D8E8024A1E3D000B977D0 /* SDLTransmissionTypeSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B38D8E7F24A1E3D000B977D0 /* SDLTransmissionTypeSpec.m */; }; B38D8E8224A1F53500B977D0 /* SDLCapacityUnitSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B38D8E8124A1F53500B977D0 /* SDLCapacityUnitSpec.m */; }; @@ -3495,6 +3507,18 @@ 9FA0D00B22DF0B65009CF344 /* SDLCreateWindowResponseSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLCreateWindowResponseSpec.m; sourceTree = "<group>"; }; 9FA0D00E22DF0B90009CF344 /* SDLDeleteWindowSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLDeleteWindowSpec.m; sourceTree = "<group>"; }; 9FA0D01122DF0BAC009CF344 /* SDLDeleteWindowResponseSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLDeleteWindowResponseSpec.m; sourceTree = "<group>"; }; + B3838A00257C47FD00420C11 /* SDLDoorStatusTypeSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLDoorStatusTypeSpec.m; sourceTree = "<group>"; }; + B3838A08257C4EB300420C11 /* SDLDoorStatusSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLDoorStatusSpec.m; path = SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDoorStatusSpec.m; sourceTree = SOURCE_ROOT; }; + B3838A0E257C4EE100420C11 /* SDLGateStatusSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLGateStatusSpec.m; path = SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLGateStatusSpec.m; sourceTree = SOURCE_ROOT; }; + B3838A14257C4EFD00420C11 /* SDLRoofStatusSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLRoofStatusSpec.m; path = SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRoofStatusSpec.m; sourceTree = SOURCE_ROOT; }; + B3838A1E257C5BAF00420C11 /* SDLRoofStatus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLRoofStatus.h; path = public/SDLRoofStatus.h; sourceTree = "<group>"; }; + B3838A1F257C5BB000420C11 /* SDLRoofStatus.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLRoofStatus.m; path = public/SDLRoofStatus.m; sourceTree = "<group>"; }; + B3838A26257C5CE600420C11 /* SDLDoorStatusType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLDoorStatusType.h; path = public/SDLDoorStatusType.h; sourceTree = "<group>"; }; + B3838A27257C5CE600420C11 /* SDLDoorStatusType.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLDoorStatusType.m; path = public/SDLDoorStatusType.m; sourceTree = "<group>"; }; + B3838A2E257C5D1A00420C11 /* SDLGateStatus.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLGateStatus.m; path = public/SDLGateStatus.m; sourceTree = "<group>"; }; + B3838A2F257C5D1B00420C11 /* SDLGateStatus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLGateStatus.h; path = public/SDLGateStatus.h; sourceTree = "<group>"; }; + B3838A38257C6AB600420C11 /* SDLDoorStatus.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLDoorStatus.m; path = public/SDLDoorStatus.m; sourceTree = "<group>"; }; + B3838A39257C6AB600420C11 /* SDLDoorStatus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLDoorStatus.h; path = public/SDLDoorStatus.h; sourceTree = "<group>"; }; B38D8E7D24A118BD00B977D0 /* SDLGearStatusSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLGearStatusSpec.m; sourceTree = "<group>"; }; B38D8E7F24A1E3D000B977D0 /* SDLTransmissionTypeSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLTransmissionTypeSpec.m; sourceTree = "<group>"; }; B38D8E8124A1F53500B977D0 /* SDLCapacityUnitSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLCapacityUnitSpec.m; sourceTree = "<group>"; }; @@ -3690,6 +3714,7 @@ 162E81F11A9BDE8A00906325 /* SDLDisplayTypeSpec.m */, 1EAA475D2035B177000FE74B /* SDLDisplayModeSpec.m */, 1EAA47612035B1AE000FE74B /* SDLDistanceUnitSpec.m */, + B3838A00257C47FD00420C11 /* SDLDoorStatusTypeSpec.m */, 162E81F21A9BDE8A00906325 /* SDLDriverDistractionStateSpec.m */, 162E81F31A9BDE8A00906325 /* SDLECallConfirmationStatusSpec.m */, 5DD8406420FCE21A0082CE04 /* SDLElectronicParkBrakeStatusSpec.m */, @@ -3983,11 +4008,13 @@ 162E82981A9BDE8A00906325 /* SDLDIDResult.m */, 9FA0D00522DF06D3009CF344 /* SDLDisplayCapabilitySpec.m */, 162E82991A9BDE8A00906325 /* SDLDisplayCapabilitiesSpec.m */, + B3838A08257C4EB300420C11 /* SDLDoorStatusSpec.m */, 4A1B036E24CF484E008C6B13 /* SDLDriverDistractionCapabilitySpec.m */, 162E829A1A9BDE8A00906325 /* SDLECallInfoSpec.m */, 162E829B1A9BDE8A00906325 /* SDLEmergencyEventSpec.m */, 88B3BFA120DA911E00943565 /* SDLFuelRangeSpec.m */, 1EAA47752036B847000FE74B /* SDLEqualizerSettingsSpec.m */, + B3838A0E257C4EE100420C11 /* SDLGateStatusSpec.m */, B38D8E7D24A118BD00B977D0 /* SDLGearStatusSpec.m */, 162E829C1A9BDE8A00906325 /* SDLGPSDataSpec.m */, 88EED83A1F33BECB00E6C42E /* SDLHapticRectSpec.m */, @@ -4029,6 +4056,7 @@ 1EE8C44F1F38629200FDC2CF /* SDLRemoteControlCapabilitiesSpec.m */, 5DADA7771F4E059E0084D17D /* SDLRectangleSpec.m */, 5D92934F20AF526200FCC775 /* SDLRGBColorSpec.m */, + B3838A14257C4EFD00420C11 /* SDLRoofStatusSpec.m */, 162E82A71A9BDE8A00906325 /* SDLScreenParamsSpec.m */, 1E89B0E1203196B800A47992 /* SDLSeatControlCapabilitiesSpec.m */, 1E89B0DD2031636000A47992 /* SDLSeatControlDataSpec.m */, @@ -5028,6 +5056,8 @@ 4ABB2B2524F84EF10061BF55 /* SDLDisplayCapabilities.m */, 4ABB2B3324F84EF30061BF55 /* SDLDisplayCapability.h */, 4ABB2B3824F84EF40061BF55 /* SDLDisplayCapability.m */, + B3838A39257C6AB600420C11 /* SDLDoorStatus.h */, + B3838A38257C6AB600420C11 /* SDLDoorStatus.m */, 4ABB2B3724F84EF40061BF55 /* SDLDriverDistractionCapability.h */, 4ABB2B2B24F84EF20061BF55 /* SDLDriverDistractionCapability.m */, 4A8BD3B924F98F89000945E3 /* SDLDynamicUpdateCapabilities.h */, @@ -5040,6 +5070,8 @@ 4ABB2B5D24F84FE30061BF55 /* SDLEqualizerSettings.m */, 4ABB2B6424F84FE50061BF55 /* SDLFuelRange.h */, 4ABB2B6524F84FE50061BF55 /* SDLFuelRange.m */, + B3838A2F257C5D1B00420C11 /* SDLGateStatus.h */, + B3838A2E257C5D1A00420C11 /* SDLGateStatus.m */, 4ABB2B5C24F84FE30061BF55 /* SDLGearStatus.h */, 4ABB2B5F24F84FE40061BF55 /* SDLGearStatus.m */, 4ABB2B5A24F84FE30061BF55 /* SDLGPSData.h */, @@ -5128,6 +5160,8 @@ 4A8BD26C24F9343D000945E3 /* SDLRemoteControlCapabilities.m */, 4A8BD28724F934F2000945E3 /* SDLRGBColor.h */, 4A8BD28A24F934F3000945E3 /* SDLRGBColor.m */, + B3838A1E257C5BAF00420C11 /* SDLRoofStatus.h */, + B3838A1F257C5BB000420C11 /* SDLRoofStatus.m */, 4A8BD29124F93533000945E3 /* SDLScreenParams.h */, 4A8BD28F24F93533000945E3 /* SDLScreenParams.m */, 4A8BD29024F93533000945E3 /* SDLSeatControlCapabilities.h */, @@ -5259,6 +5293,8 @@ 4ABB272A24F7FD1B0061BF55 /* SDLDistanceUnit.m */, 4ABB272D24F7FD1C0061BF55 /* SDLDisplayType.h */, 4ABB272B24F7FD1B0061BF55 /* SDLDisplayType.m */, + B3838A26257C5CE600420C11 /* SDLDoorStatusType.h */, + B3838A27257C5CE600420C11 /* SDLDoorStatusType.m */, 4ABB274424F7FD9A0061BF55 /* SDLDriverDistractionState.h */, 4ABB274924F7FD9B0061BF55 /* SDLDriverDistractionState.m */, 4ABB274724F7FD9B0061BF55 /* SDLECallConfirmationStatus.h */, @@ -6920,6 +6956,7 @@ 4ABB269624F7F9400061BF55 /* SDLRPCFunctionNames.h in Headers */, 4ABB2B4024F84EF50061BF55 /* SDLCloudAppProperties.h in Headers */, 4ABB2A5824F847B10061BF55 /* SDLGetInteriorVehicleDataConsentResponse.h in Headers */, + B3838A20257C5BB000420C11 /* SDLRoofStatus.h in Headers */, 4ABB271824F7FC4E0061BF55 /* SDLCompassDirection.h in Headers */, 4ABB2B5924F84EF50061BF55 /* SDLDeviceStatus.h in Headers */, 4A8BD2CF24F93803000945E3 /* SDLTouchEvent.h in Headers */, @@ -7043,6 +7080,7 @@ 4ABB280124F823F20061BF55 /* SDLResult.h in Headers */, 4ABB2B8624F8504A0061BF55 /* SDLHMISettingsControlCapabilities.h in Headers */, 4ABB276924F7FE480061BF55 /* SDLHMIZoneCapabilities.h in Headers */, + B3838A3B257C6AB700420C11 /* SDLDoorStatus.h in Headers */, 4ABB29DF24F846880061BF55 /* SDLSystemRequest.h in Headers */, 4ABB290224F82BE90061BF55 /* SDLAddCommand.h in Headers */, 4ABB260624F7E9650061BF55 /* SDLStreamingMediaManager.h in Headers */, @@ -7215,6 +7253,7 @@ 4ABB24C924F593090061BF55 /* SDLStreamingProtocolDelegate.h in Headers */, 4ABB275F24F7FE1F0061BF55 /* SDLFuelType.h in Headers */, 4A8BD3A024F9474B000945E3 /* SDLIAPDataSessionDelegate.h in Headers */, + B3838A28257C5CE600420C11 /* SDLDoorStatusType.h in Headers */, 4A8BD2F724F93872000945E3 /* SDLVrHelpItem.h in Headers */, 4ABB2A0024F8477F0061BF55 /* SDLAddCommandResponse.h in Headers */, 4ABB291124F842160061BF55 /* SDLChangeRegistration.h in Headers */, @@ -7389,6 +7428,7 @@ 4ABB296524F844020061BF55 /* SDLListFiles.h in Headers */, 4ABB281824F824A50061BF55 /* SDLStaticIconName.h in Headers */, 4ABB290524F82BE90061BF55 /* SDLAlert.h in Headers */, + B3838A31257C5D1B00420C11 /* SDLGateStatus.h in Headers */, 4ABB26BA24F7FA1C0061BF55 /* SDLLogConstants.h in Headers */, 4ABB28DB24F82A6A0061BF55 /* SDLOnSystemCapabilityUpdated.h in Headers */, 4ABB269324F7F9060061BF55 /* SDLTimer.h in Headers */, @@ -7867,6 +7907,7 @@ 4ABB28D624F82A6A0061BF55 /* SDLOnAudioPassThru.m in Sources */, 4A8BD25224F93135000945E3 /* SDLKeyboardProperties.m in Sources */, 4ABB2B1324F84D950061BF55 /* SDLAppServiceRecord.m in Sources */, + B3838A29257C5CE600420C11 /* SDLDoorStatusType.m in Sources */, 4ABB290424F82BE90061BF55 /* SDLAlertManeuver.m in Sources */, 4ABB27B224F7FFDA0061BF55 /* SDLMassageMode.m in Sources */, 4ABB274F24F7FD9C0061BF55 /* SDLECallConfirmationStatus.m in Sources */, @@ -8012,6 +8053,7 @@ 4A8BD24C24F93135000945E3 /* SDLLocationDetails.m in Sources */, 4ABB275C24F7FE1F0061BF55 /* SDLFuelType.m in Sources */, 4ABB2B4324F84EF50061BF55 /* SDLDisplayCapabilities.m in Sources */, + B3838A3A257C6AB700420C11 /* SDLDoorStatus.m in Sources */, 4ABB267724F7F6720061BF55 /* SDLObjectWithPriority.m in Sources */, 4ABB29FE24F8477F0061BF55 /* SDLAddCommandResponse.m in Sources */, 4ABB251324F7E3A30061BF55 /* SDLLifecycleConfiguration.m in Sources */, @@ -8166,6 +8208,7 @@ 4ABB2A5B24F847B10061BF55 /* SDLGetCloudAppPropertiesResponse.m in Sources */, 4ABB25F424F7E7EF0061BF55 /* SDLTouch.m in Sources */, 4ABB2B3E24F84EF50061BF55 /* SDLDeviceStatus.m in Sources */, + B3838A21257C5BB000420C11 /* SDLRoofStatus.m in Sources */, 4ABB28BE24F82A6A0061BF55 /* SDLOnSyncPData.m in Sources */, 4ABB275724F7FD9C0061BF55 /* SDLEmergencyEventType.m in Sources */, 4ABB29B824F845DB0061BF55 /* SDLSetMediaClockTimer.m in Sources */, @@ -8231,6 +8274,7 @@ 4ABB2AA224F847F40061BF55 /* SDLSetCloudAppPropertiesResponse.m in Sources */, 4A8BD3A224F9474B000945E3 /* SDLIAPDataSession.m in Sources */, 4A8BD3B624F98F64000945E3 /* SDLOnUpdateSubMenu.m in Sources */, + B3838A30257C5D1B00420C11 /* SDLGateStatus.m in Sources */, 4ABB256624F7E5B80061BF55 /* SDLRPCPermissionStatus.m in Sources */, 4ABB299824F845440061BF55 /* SDLReleaseInteriorVehicleDataModule.m in Sources */, 4ABB277724F7FE910061BF55 /* SDLIgnitionStatus.m in Sources */, @@ -8346,6 +8390,7 @@ 162E82E31A9BDE8B00906325 /* SDLIgnitionStatusSpec.m in Sources */, 162E83511A9BDE8B00906325 /* SDLDeleteInteractionChoiceSetResponseSpec.m in Sources */, DA9F7EB41DCC086400ACAE48 /* SDLDateTimeSpec.m in Sources */, + B3838A0F257C4EE100420C11 /* SDLGateStatusSpec.m in Sources */, 162E82E41A9BDE8B00906325 /* SDLImageFieldNameSpec.m in Sources */, 162E82ED1A9BDE8B00906325 /* SDLMaintenanceModeStatusSpec.m in Sources */, 8B9376DB1F33656C009605C4 /* SDLMetadataTagsSpec.m in Sources */, @@ -8468,6 +8513,7 @@ 162E82F71A9BDE8B00906325 /* SDLResultSpec.m in Sources */, 88DDD0F9229ECA57002F9623 /* SDLIAPConstantsSpec.m in Sources */, 1680B1141A9CD7AD00DBD79E /* SDLV1ProtocolHeaderSpec.m in Sources */, + B3838A15257C4EFD00420C11 /* SDLRoofStatusSpec.m in Sources */, 880D2680220E038800B3F496 /* SDLWeatherServiceManifestSpec.m in Sources */, 88EEC5BE220A3B8B005AA2F9 /* SDLPublishAppServiceResponseSpec.m in Sources */, 1680B1161A9CD7AD00DBD79E /* SDLProtocolMessageSpec.m in Sources */, @@ -8533,6 +8579,7 @@ 1EAA47762036B847000FE74B /* SDLEqualizerSettingsSpec.m in Sources */, 752ECDB9228C42E100D945F4 /* SDLMenuRunScoreSpec.m in Sources */, 162E83141A9BDE8B00906325 /* SDLOnDriverDistractionSpec.m in Sources */, + B3838A09257C4EB400420C11 /* SDLDoorStatusSpec.m in Sources */, 162E83371A9BDE8B00906325 /* SDLResetGlobalPropertiesSpec.m in Sources */, 162E82DF1A9BDE8B00906325 /* SDLGlobalProperySpec.m in Sources */, 88DF998F22035D1700477AC1 /* SDLIAPSessionSpec.m in Sources */, @@ -8734,6 +8781,7 @@ 1EAA47782036BA74000FE74B /* SDLAudioControlCapabilitiesSpec.m in Sources */, 5DB1BCD51D243A8E002FFC37 /* SDLUploadFileOperationSpec.m in Sources */, 162E83401A9BDE8B00906325 /* SDLSpeakSpec.m in Sources */, + B3838A01257C47FD00420C11 /* SDLDoorStatusTypeSpec.m in Sources */, 88A5E7F4220B57F900495E8A /* SDLOnSystemCapabilityUpdatedSpec.m in Sources */, 5DCF76FC1ACDDB4200BB647B /* SDLSendLocationSpec.m in Sources */, 5DB1BCD81D243AA6002FFC37 /* SDLPermissionFilterSpec.m in Sources */, diff --git a/SmartDeviceLink/private/SDLRPCParameterNames.h b/SmartDeviceLink/private/SDLRPCParameterNames.h index e7e526eee..a90235e16 100644 --- a/SmartDeviceLink/private/SDLRPCParameterNames.h +++ b/SmartDeviceLink/private/SDLRPCParameterNames.h @@ -198,6 +198,7 @@ extern SDLRPCParameterName const SDLRPCParameterNameDistanceToEmpty; extern SDLRPCParameterName const SDLRPCParameterNameDistanceToManeuver; extern SDLRPCParameterName const SDLRPCParameterNameDistanceToManeuverScale; extern SDLRPCParameterName const SDLRPCParameterNameDistanceUnitAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameDoorStatuses; extern SDLRPCParameterName const SDLRPCParameterNameDoublePressAvailable; extern SDLRPCParameterName const SDLRPCParameterNameDriverAirbagDeployed; extern SDLRPCParameterName const SDLRPCParameterNameDriverBeltDeployed; @@ -207,7 +208,7 @@ extern SDLRPCParameterName const SDLRPCParameterNameDriverCurtainAirbagDeployed; extern SDLRPCParameterName const SDLRPCParameterNameDriverDistraction; extern SDLRPCParameterName const SDLRPCParameterNameDriverDistractionCapability; extern SDLRPCParameterName const SDLRPCParameterNameDriverDistractionStatus; -extern SDLRPCParameterName const SDLRPCParameterNameDriverDoorAjar; +extern SDLRPCParameterName const SDLRPCParameterNameDriverDoorAjar __deprecated; extern SDLRPCParameterName const SDLRPCParameterNameDriverKneeAirbagDeployed; extern SDLRPCParameterName const SDLRPCParameterNameDriverSideAirbagDeployed; extern SDLRPCParameterName const SDLRPCParameterNameDrivingSide; @@ -261,6 +262,7 @@ extern SDLRPCParameterName const SDLRPCParameterNameFuelMaintenanceMode; extern SDLRPCParameterName const SDLRPCParameterNameFuelRange; extern SDLRPCParameterName const SDLRPCParameterNameFullAppID; extern SDLRPCParameterName const SDLRPCParameterNameFunctionID; +extern SDLRPCParameterName const SDLRPCParameterNameGateStatuses; extern SDLRPCParameterName const SDLRPCParameterNameGetWayPointsEnabled; extern SDLRPCParameterName const SDLRPCParameterNameGPS; extern SDLRPCParameterName const SDLRPCParameterNameGearStatus; @@ -495,7 +497,7 @@ extern SDLRPCParameterName const SDLRPCParameterNamePassengerBeltDeployed; extern SDLRPCParameterName const SDLRPCParameterNamePassengerBuckleBelted; extern SDLRPCParameterName const SDLRPCParameterNamePassengerChildDetected; extern SDLRPCParameterName const SDLRPCParameterNamePassengerCurtainAirbagDeployed; -extern SDLRPCParameterName const SDLRPCParameterNamePassengerDoorAjar; +extern SDLRPCParameterName const SDLRPCParameterNamePassengerDoorAjar __deprecated; extern SDLRPCParameterName const SDLRPCParameterNamePassengerKneeAirbagDeployed; extern SDLRPCParameterName const SDLRPCParameterNamePassengerSideAirbagDeployed; extern SDLRPCParameterName const SDLRPCParameterNamePatchVersion; @@ -547,8 +549,8 @@ extern SDLRPCParameterName const SDLRPCParameterNameRadioFrequencyAvailable; extern SDLRPCParameterName const SDLRPCParameterNameRange; extern SDLRPCParameterName const SDLRPCParameterNameRDSData; extern SDLRPCParameterName const SDLRPCParameterNameRDSDataAvailable; -extern SDLRPCParameterName const SDLRPCParameterNameRearLeftDoorAjar; -extern SDLRPCParameterName const SDLRPCParameterNameRearRightDoorAjar; +extern SDLRPCParameterName const SDLRPCParameterNameRearLeftDoorAjar __deprecated; +extern SDLRPCParameterName const SDLRPCParameterNameRearRightDoorAjar __deprecated; extern SDLRPCParameterName const SDLRPCParameterNameReason; extern SDLRPCParameterName const SDLRPCParameterNameRect; extern SDLRPCParameterName const SDLRPCParameterNameRed; @@ -574,6 +576,7 @@ extern SDLRPCParameterName const SDLRPCParameterNameRightRearInflatableBelted; extern SDLRPCParameterName const SDLRPCParameterNameRightRow2BuckleBelted; extern SDLRPCParameterName const SDLRPCParameterNameRightRow3BuckleBelted; extern SDLRPCParameterName const SDLRPCParameterNameRolloverEvent; +extern SDLRPCParameterName const SDLRPCParameterNameRoofStatuses; extern SDLRPCParameterName const SDLRPCParameterNameRow; extern SDLRPCParameterName const SDLRPCParameterNameRows; extern SDLRPCParameterName const SDLRPCParameterNameRowSpan; diff --git a/SmartDeviceLink/private/SDLRPCParameterNames.m b/SmartDeviceLink/private/SDLRPCParameterNames.m index 0761190d7..fb10c669e 100644 --- a/SmartDeviceLink/private/SDLRPCParameterNames.m +++ b/SmartDeviceLink/private/SDLRPCParameterNames.m @@ -196,6 +196,7 @@ SDLRPCParameterName const SDLRPCParameterNameDistanceToManeuver = @"distanceToMa SDLRPCParameterName const SDLRPCParameterNameDistanceToManeuverScale = @"distanceToManeuverScale"; SDLRPCParameterName const SDLRPCParameterNameDistanceUnitAvailable = @"distanceUnitAvailable"; SDLRPCParameterName const SDLRPCParameterNameDistanceUnit = @"distanceUnit"; +SDLRPCParameterName const SDLRPCParameterNameDoorStatuses = @"doorStatuses"; SDLRPCParameterName const SDLRPCParameterNameDoublePressAvailable = @"doublePressAvailable"; SDLRPCParameterName const SDLRPCParameterNameDriverAirbagDeployed = @"driverAirbagDeployed"; SDLRPCParameterName const SDLRPCParameterNameDriverBeltDeployed = @"driverBeltDeployed"; @@ -259,6 +260,7 @@ SDLRPCParameterName const SDLRPCParameterNameFuelMaintenanceMode = @"fuelMainten SDLRPCParameterName const SDLRPCParameterNameFuelRange = @"fuelRange"; SDLRPCParameterName const SDLRPCParameterNameFunctionID = @"functionID"; SDLRPCParameterName const SDLRPCParameterNameFullAppID = @"fullAppID"; +SDLRPCParameterName const SDLRPCParameterNameGateStatuses = @"gateStatuses"; SDLRPCParameterName const SDLRPCParameterNameGearStatus = @"gearStatus"; SDLRPCParameterName const SDLRPCParameterNameGetWayPointsEnabled = @"getWayPointsEnabled"; SDLRPCParameterName const SDLRPCParameterNameGPS = @"gps"; @@ -571,6 +573,7 @@ SDLRPCParameterName const SDLRPCParameterNameRightRearInflatableBelted = @"right SDLRPCParameterName const SDLRPCParameterNameRightRow2BuckleBelted = @"rightRow2BuckleBelted"; SDLRPCParameterName const SDLRPCParameterNameRightRow3BuckleBelted = @"rightRow3BuckleBelted"; SDLRPCParameterName const SDLRPCParameterNameRolloverEvent = @"rolloverEvent"; +SDLRPCParameterName const SDLRPCParameterNameRoofStatuses = @"roofStatuses"; SDLRPCParameterName const SDLRPCParameterNameRow = @"row"; SDLRPCParameterName const SDLRPCParameterNameRows = @"rows"; SDLRPCParameterName const SDLRPCParameterNameRowSpan = @"rowspan"; diff --git a/SmartDeviceLink/public/SDLBodyInformation.h b/SmartDeviceLink/public/SDLBodyInformation.h index bed364503..081033a1d 100644 --- a/SmartDeviceLink/public/SDLBodyInformation.h +++ b/SmartDeviceLink/public/SDLBodyInformation.h @@ -5,17 +5,36 @@ #import "SDLIgnitionStableStatus.h" #import "SDLIgnitionStatus.h" +#import "SDLRPCStruct.h" - -/** - * The body information including power modes. - */ +@class SDLDoorStatus; +@class SDLGateStatus; +@class SDLRoofStatus; NS_ASSUME_NONNULL_BEGIN @interface SDLBodyInformation : SDLRPCStruct /** + * @param parkBrakeActive - @(parkBrakeActive) + * @param ignitionStableStatus - ignitionStableStatus + * @param ignitionStatus - ignitionStatus + * @return A SDLBodyInformation object + */ +- (instancetype)initWithParkBrakeActive:(BOOL)parkBrakeActive ignitionStableStatus:(SDLIgnitionStableStatus)ignitionStableStatus ignitionStatus:(SDLIgnitionStatus)ignitionStatus; + +/** + * @param parkBrakeActive - @(parkBrakeActive) + * @param ignitionStableStatus - ignitionStableStatus + * @param ignitionStatus - ignitionStatus + * @param doorStatuses - doorStatuses + * @param gateStatuses - gateStatuses + * @param roofStatuses - roofStatuses + * @return A SDLBodyInformation object + */ +- (instancetype)initWithParkBrakeActive:(BOOL)parkBrakeActive ignitionStableStatus:(SDLIgnitionStableStatus)ignitionStableStatus ignitionStatus:(SDLIgnitionStatus)ignitionStatus doorStatuses:(nullable NSArray<SDLDoorStatus *> *)doorStatuses gateStatuses:(nullable NSArray<SDLGateStatus *> *)gateStatuses roofStatuses:(nullable NSArray<SDLRoofStatus *> *)roofStatuses; + +/** * References signal "PrkBrkActv_B_Actl". Required @@ -37,32 +56,60 @@ NS_ASSUME_NONNULL_BEGIN @property (strong, nonatomic) SDLIgnitionStatus ignitionStatus; /** - * References signal "DrStatDrv_B_Actl". - - Optional + * References signal "DrStatDrv_B_Actl". Deprecated starting with RPC Spec 7.1.0. + * + * @deprecated in SmartDeviceLink 7.1.0 + * @added in SmartDeviceLink 2.0.0 */ -@property (nullable, strong, nonatomic) NSNumber<SDLBool> *driverDoorAjar; +@property (nullable, strong, nonatomic) NSNumber<SDLBool> *driverDoorAjar __deprecated_msg("use doorStatuses instead"); /** - * References signal "DrStatPsngr_B_Actl". + * References signal "DrStatPsngr_B_Actl". Deprecated starting with RPC Spec 7.1.0. + * + * @deprecated in SmartDeviceLink 7.1.0 + * @added in SmartDeviceLink 2.0.0 + */ +@property (nullable, strong, nonatomic) NSNumber<SDLBool> *passengerDoorAjar __deprecated_msg("use doorStatuses instead"); - Optional +/** + * References signal "DrStatRl_B_Actl". Deprecated starting with RPC Spec 7.1.0. + * + * @deprecated in SmartDeviceLink 7.1.0 + * @added in SmartDeviceLink 2.0.0 */ -@property (nullable, strong, nonatomic) NSNumber<SDLBool> *passengerDoorAjar; +@property (nullable, strong, nonatomic) NSNumber<SDLBool> *rearLeftDoorAjar __deprecated_msg("use doorStatuses instead"); /** - * References signal "DrStatRl_B_Actl". + * References signal "DrStatRr_B_Actl". Deprecated starting with RPC Spec 7.1.0. + * + * @deprecated in SmartDeviceLink 7.1.0 + * @added in SmartDeviceLink 2.0.0 + */ +@property (nullable, strong, nonatomic) NSNumber<SDLBool> *rearRightDoorAjar __deprecated_msg("use doorStatuses instead"); - Optional +/** + * Provides status for doors if Ajar/Closed/Locked + * {"array_min_size": 0, "array_max_size": 100} + * + * @added in SmartDeviceLink 7.1.0 */ -@property (nullable, strong, nonatomic) NSNumber<SDLBool> *rearLeftDoorAjar; +@property (nullable, strong, nonatomic) NSArray<SDLDoorStatus *> *doorStatuses; /** - * References signal "DrStatRr_B_Actl". + * Provides status for trunk/hood/etc. if Ajar/Closed/Locked + * {"array_min_size": 0, "array_max_size": 100} + * + * @added in SmartDeviceLink 7.1.0 + */ +@property (nullable, strong, nonatomic) NSArray<SDLGateStatus *> *gateStatuses; - Optional +/** + * Provides status for roof/convertible roof/sunroof/moonroof etc., if Closed/Ajar/Removed etc. + * {"array_min_size": 0, "array_max_size": 100} + * + * @added in SmartDeviceLink 7.1.0 */ -@property (nullable, strong, nonatomic) NSNumber<SDLBool> *rearRightDoorAjar; +@property (nullable, strong, nonatomic) NSArray<SDLRoofStatus *> *roofStatuses; @end diff --git a/SmartDeviceLink/public/SDLBodyInformation.m b/SmartDeviceLink/public/SDLBodyInformation.m index fe8aa8b29..d3d6f917e 100644 --- a/SmartDeviceLink/public/SDLBodyInformation.m +++ b/SmartDeviceLink/public/SDLBodyInformation.m @@ -2,17 +2,41 @@ // -#import "SDLBodyInformation.h" - #import "NSMutableDictionary+Store.h" +#import "SDLBodyInformation.h" +#import "SDLDoorStatus.h" +#import "SDLGateStatus.h" #import "SDLIgnitionStableStatus.h" #import "SDLIgnitionStatus.h" #import "SDLRPCParameterNames.h" +#import "SDLRoofStatus.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLBodyInformation +- (instancetype)initWithParkBrakeActive:(BOOL)parkBrakeActive ignitionStableStatus:(SDLIgnitionStableStatus)ignitionStableStatus ignitionStatus:(SDLIgnitionStatus)ignitionStatus { + self = [self init]; + if (!self) { + return nil; + } + self.parkBrakeActive = @(parkBrakeActive); + self.ignitionStableStatus = ignitionStableStatus; + self.ignitionStatus = ignitionStatus; + return self; +} + +- (instancetype)initWithParkBrakeActive:(BOOL)parkBrakeActive ignitionStableStatus:(SDLIgnitionStableStatus)ignitionStableStatus ignitionStatus:(SDLIgnitionStatus)ignitionStatus doorStatuses:(nullable NSArray<SDLDoorStatus *> *)doorStatuses gateStatuses:(nullable NSArray<SDLGateStatus *> *)gateStatuses roofStatuses:(nullable NSArray<SDLRoofStatus *> *)roofStatuses { + self = [self initWithParkBrakeActive:parkBrakeActive ignitionStableStatus:ignitionStableStatus ignitionStatus:ignitionStatus]; + if (!self) { + return nil; + } + self.doorStatuses = doorStatuses; + self.gateStatuses = gateStatuses; + self.roofStatuses = roofStatuses; + return self; +} + - (void)setParkBrakeActive:(NSNumber<SDLBool> *)parkBrakeActive { [self.store sdl_setObject:parkBrakeActive forName:SDLRPCParameterNameParkBrakeActive]; } @@ -72,6 +96,30 @@ NS_ASSUME_NONNULL_BEGIN return [self.store sdl_objectForName:SDLRPCParameterNameRearRightDoorAjar ofClass:NSNumber.class error:nil]; } +- (void)setDoorStatuses:(nullable NSArray<SDLDoorStatus *> *)doorStatuses { + [self.store sdl_setObject:doorStatuses forName:SDLRPCParameterNameDoorStatuses]; +} + +- (nullable NSArray<SDLDoorStatus *> *)doorStatuses { + return [self.store sdl_objectsForName:SDLRPCParameterNameDoorStatuses ofClass:SDLDoorStatus.class error:nil]; +} + +- (void)setGateStatuses:(nullable NSArray<SDLGateStatus *> *)gateStatuses { + [self.store sdl_setObject:gateStatuses forName:SDLRPCParameterNameGateStatuses]; +} + +- (nullable NSArray<SDLGateStatus *> *)gateStatuses { + return [self.store sdl_objectsForName:SDLRPCParameterNameGateStatuses ofClass:SDLGateStatus.class error:nil]; +} + +- (void)setRoofStatuses:(nullable NSArray<SDLRoofStatus *> *)roofStatuses { + [self.store sdl_setObject:roofStatuses forName:SDLRPCParameterNameRoofStatuses]; +} + +- (nullable NSArray<SDLRoofStatus *> *)roofStatuses { + return [self.store sdl_objectsForName:SDLRPCParameterNameRoofStatuses ofClass:SDLRoofStatus.class error:nil]; +} + @end NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/public/SDLDoorStatus.h b/SmartDeviceLink/public/SDLDoorStatus.h new file mode 100644 index 000000000..9562a9ebf --- /dev/null +++ b/SmartDeviceLink/public/SDLDoorStatus.h @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2020, SmartDeviceLink Consortium, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the SmartDeviceLink Consortium Inc. nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#import "SDLDoorStatusType.h" +#import "SDLRPCStruct.h" + +@class SDLGrid; + +NS_ASSUME_NONNULL_BEGIN + +/** + * Describes the status of a parameter of door. + * + * @added in SmartDeviceLink 7.1.0 + */ +@interface SDLDoorStatus : SDLRPCStruct + +/** + * @param location - location + * @param status - status + * @return A SDLDoorStatus object + */ +- (instancetype)initWithLocation:(SDLGrid *)location status:(SDLDoorStatusType)status; + +@property (strong, nonatomic) SDLGrid *location; + +@property (strong, nonatomic) SDLDoorStatusType status; + +@end + +NS_ASSUME_NONNULL_END
\ No newline at end of file diff --git a/SmartDeviceLink/public/SDLDoorStatus.m b/SmartDeviceLink/public/SDLDoorStatus.m new file mode 100644 index 000000000..0c1e6e8ea --- /dev/null +++ b/SmartDeviceLink/public/SDLDoorStatus.m @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2020, SmartDeviceLink Consortium, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the SmartDeviceLink Consortium Inc. nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#import "NSMutableDictionary+Store.h" +#import "SDLDoorStatus.h" +#import "SDLDoorStatusType.h" +#import "SDLGrid.h" +#import "SDLRPCParameterNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLDoorStatus + +- (instancetype)initWithLocation:(SDLGrid *)location status:(SDLDoorStatusType)status { + self = [self init]; + if (!self) { + return nil; + } + self.location = location; + self.status = status; + return self; +} + +- (void)setLocation:(SDLGrid *)location { + [self.store sdl_setObject:location forName:SDLRPCParameterNameLocation]; +} + +- (SDLGrid *)location { + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameLocation ofClass:SDLGrid.class error:&error]; +} + +- (void)setStatus:(SDLDoorStatusType)status { + [self.store sdl_setObject:status forName:SDLRPCParameterNameStatus]; +} + +- (SDLDoorStatusType)status { + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameStatus error:&error]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/public/SDLDoorStatusType.h b/SmartDeviceLink/public/SDLDoorStatusType.h new file mode 100644 index 000000000..b4e399bfc --- /dev/null +++ b/SmartDeviceLink/public/SDLDoorStatusType.h @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2020, SmartDeviceLink Consortium, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the SmartDeviceLink Consortium Inc. nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#import "SDLEnum.h" + +/** + * @added in SmartDeviceLink 7.1.0 + */ +typedef SDLEnum SDLDoorStatusType NS_TYPED_ENUM; + +extern SDLDoorStatusType const SDLDoorStatusTypeClosed; + +extern SDLDoorStatusType const SDLDoorStatusTypeLocked; + +extern SDLDoorStatusType const SDLDoorStatusTypeAjar; + +extern SDLDoorStatusType const SDLDoorStatusTypeRemoved; diff --git a/SmartDeviceLink/public/SDLDoorStatusType.m b/SmartDeviceLink/public/SDLDoorStatusType.m new file mode 100644 index 000000000..77e523426 --- /dev/null +++ b/SmartDeviceLink/public/SDLDoorStatusType.m @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2020, SmartDeviceLink Consortium, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the SmartDeviceLink Consortium Inc. nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#import "SDLDoorStatusType.h" + +SDLDoorStatusType const SDLDoorStatusTypeClosed = @"CLOSED"; +SDLDoorStatusType const SDLDoorStatusTypeLocked = @"LOCKED"; +SDLDoorStatusType const SDLDoorStatusTypeAjar = @"AJAR"; +SDLDoorStatusType const SDLDoorStatusTypeRemoved = @"REMOVED"; + diff --git a/SmartDeviceLink/public/SDLGateStatus.h b/SmartDeviceLink/public/SDLGateStatus.h new file mode 100644 index 000000000..0aa78a810 --- /dev/null +++ b/SmartDeviceLink/public/SDLGateStatus.h @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2020, SmartDeviceLink Consortium, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the SmartDeviceLink Consortium Inc. nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#import "SDLDoorStatusType.h" +#import "SDLRPCStruct.h" + +@class SDLGrid; + +NS_ASSUME_NONNULL_BEGIN + +/** + * Describes the status of a parameter of trunk/hood/etc. + * + * @added in SmartDeviceLink 7.1.0 + */ +@interface SDLGateStatus : SDLRPCStruct + +/** + * @param location - location + * @param status - status + * @return A SDLGateStatus object + */ +- (instancetype)initWithLocation:(SDLGrid *)location status:(SDLDoorStatusType)status; + +@property (strong, nonatomic) SDLGrid *location; + +@property (strong, nonatomic) SDLDoorStatusType status; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/public/SDLGateStatus.m b/SmartDeviceLink/public/SDLGateStatus.m new file mode 100644 index 000000000..f82885f90 --- /dev/null +++ b/SmartDeviceLink/public/SDLGateStatus.m @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2020, SmartDeviceLink Consortium, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the SmartDeviceLink Consortium Inc. nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#import "NSMutableDictionary+Store.h" +#import "SDLDoorStatusType.h" +#import "SDLGateStatus.h" +#import "SDLGrid.h" +#import "SDLRPCParameterNames.h" + +NS_ASSUME_NONNULL_BEGIN +@implementation SDLGateStatus + +- (instancetype)initWithLocation:(SDLGrid *)location status:(SDLDoorStatusType)status { + self = [self init]; + if (!self) { + return nil; + } + self.location = location; + self.status = status; + return self; +} + +- (void)setLocation:(SDLGrid *)location { + [self.store sdl_setObject:location forName:SDLRPCParameterNameLocation]; +} + +- (SDLGrid *)location { + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameLocation ofClass:SDLGrid.class error:&error]; +} + +- (void)setStatus:(SDLDoorStatusType)status { + [self.store sdl_setObject:status forName:SDLRPCParameterNameStatus]; +} + +- (SDLDoorStatusType)status { + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameStatus error:&error]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/public/SDLRoofStatus.h b/SmartDeviceLink/public/SDLRoofStatus.h new file mode 100644 index 000000000..e2ec90b07 --- /dev/null +++ b/SmartDeviceLink/public/SDLRoofStatus.h @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2020, SmartDeviceLink Consortium, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the SmartDeviceLink Consortium Inc. nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#import "SDLDoorStatusType.h" +#import "SDLRPCStruct.h" + +@class SDLGrid; +@class SDLWindowState; + +NS_ASSUME_NONNULL_BEGIN + +/** + * Describes the status of a parameter of roof/convertible roof/sunroof/moonroof etc. If roof is open (AJAR), state will determine percentage of roof open. + * + * @added in SmartDeviceLink 7.1.0 + */ +@interface SDLRoofStatus : SDLRPCStruct + +/** + * @param location - location + * @param status - status + * @return A SDLRoofStatus object + */ +- (instancetype)initWithLocation:(SDLGrid *)location status:(SDLDoorStatusType)status; + +/** + * @param location - location + * @param status - status + * @param state - state + * @return A SDLRoofStatus object + */ +- (instancetype)initWithLocation:(SDLGrid *)location status:(SDLDoorStatusType)status state:(nullable SDLWindowState *)state; + +@property (strong, nonatomic) SDLGrid *location; + +@property (strong, nonatomic) SDLDoorStatusType status; + +@property (nullable, strong, nonatomic) SDLWindowState *state; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/public/SDLRoofStatus.m b/SmartDeviceLink/public/SDLRoofStatus.m new file mode 100644 index 000000000..666286575 --- /dev/null +++ b/SmartDeviceLink/public/SDLRoofStatus.m @@ -0,0 +1,91 @@ +/* + * Copyright (c) 2020, SmartDeviceLink Consortium, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the SmartDeviceLink Consortium Inc. nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#import "NSMutableDictionary+Store.h" +#import "SDLDoorStatusType.h" +#import "SDLGrid.h" +#import "SDLRPCParameterNames.h" +#import "SDLRoofStatus.h" +#import "SDLWindowState.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLRoofStatus + +- (instancetype)initWithLocation:(SDLGrid *)location status:(SDLDoorStatusType)status { + self = [self init]; + if (!self) { + return nil; + } + self.location = location; + self.status = status; + return self; +} + +- (instancetype)initWithLocation:(SDLGrid *)location status:(SDLDoorStatusType)status state:(nullable SDLWindowState *)state { + self = [self initWithLocation:location status:status]; + if (!self) { + return nil; + } + self.state = state; + return self; +} + +- (void)setLocation:(SDLGrid *)location { + [self.store sdl_setObject:location forName:SDLRPCParameterNameLocation]; +} + +- (SDLGrid *)location { + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameLocation ofClass:SDLGrid.class error:&error]; +} + +- (void)setStatus:(SDLDoorStatusType)status { + [self.store sdl_setObject:status forName:SDLRPCParameterNameStatus]; +} + +- (SDLDoorStatusType)status { + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameStatus error:&error]; +} + +- (void)setState:(nullable SDLWindowState *)state { + [self.store sdl_setObject:state forName:SDLRPCParameterNameState]; +} + +- (nullable SDLWindowState *)state { + return [self.store sdl_objectForName:SDLRPCParameterNameState ofClass:SDLWindowState.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/public/SmartDeviceLink.h b/SmartDeviceLink/public/SmartDeviceLink.h index 197e01b4c..120fa64a4 100644 --- a/SmartDeviceLink/public/SmartDeviceLink.h +++ b/SmartDeviceLink/public/SmartDeviceLink.h @@ -203,12 +203,15 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLDeviceStatus.h" #import "SDLDisplayCapabilities.h" #import "SDLDisplayCapability.h" +#import "SDLDoorStatus.h" +#import "SDLDoorStatusType.h" #import "SDLDynamicUpdateCapabilities.h" #import "SDLDriverDistractionCapability.h" #import "SDLECallInfo.h" #import "SDLEmergencyEvent.h" #import "SDLFuelRange.h" #import "SDLEqualizerSettings.h" +#import "SDLGateStatus.h" #import "SDLGearStatus.h" #import "SDLGPSData.h" #import "SDLGrid.h" @@ -252,6 +255,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLRectangle.h" #import "SDLRemoteControlCapabilities.h" #import "SDLRGBColor.h" +#import "SDLRoofStatus.h" #import "SDLScreenParams.h" #import "SDLSeatControlCapabilities.h" #import "SDLSeatControlData.h" diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLDoorStatusTypeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLDoorStatusTypeSpec.m new file mode 100644 index 000000000..04a16c159 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLDoorStatusTypeSpec.m @@ -0,0 +1,24 @@ +// +// SDLDoorStatusTypeSpec.m +// SmartDeviceLink + + +#import <Foundation/Foundation.h> + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLDoorStatusType.h" + +QuickSpecBegin(SDLDoorStatusTypeSpec) + +describe(@"individual enum value tests", ^{ + it(@"should match internal values", ^{ + expect(SDLDoorStatusTypeClosed).to(equal(@"CLOSED")); + expect(SDLDoorStatusTypeLocked).to(equal(@"LOCKED")); + expect(SDLDoorStatusTypeAjar).to(equal(@"AJAR")); + expect(SDLDoorStatusTypeRemoved).to(equal(@"REMOVED")); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLBodyInformationSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLBodyInformationSpec.m index 9c8765525..a7fa46263 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLBodyInformationSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLBodyInformationSpec.m @@ -9,62 +9,179 @@ #import <Nimble/Nimble.h> #import "SDLBodyInformation.h" +#import "SDLDoorStatus.h" +#import "SDLGateStatus.h" #import "SDLIgnitionStableStatus.h" #import "SDLIgnitionStatus.h" +#import "SDLRoofStatus.h" #import "SDLRPCParameterNames.h" QuickSpecBegin(SDLBodyInformationSpec) -describe(@"Getter/Setter Tests", ^ { - it(@"Should set and get correctly", ^ { - SDLBodyInformation* testStruct = [[SDLBodyInformation alloc] init]; - - testStruct.parkBrakeActive = @YES; - testStruct.ignitionStableStatus = SDLIgnitionStableStatusStable; - testStruct.ignitionStatus = SDLIgnitionStatusStart; - testStruct.driverDoorAjar = @NO; - testStruct.passengerDoorAjar = @NO; - testStruct.rearLeftDoorAjar = @NO; - testStruct.rearRightDoorAjar = @YES; - - expect(testStruct.parkBrakeActive).to(equal(@YES)); - expect(testStruct.ignitionStableStatus).to(equal(SDLIgnitionStableStatusStable)); - expect(testStruct.ignitionStatus).to(equal(SDLIgnitionStatusStart)); - expect(testStruct.driverDoorAjar).to(equal(@NO)); - expect(testStruct.passengerDoorAjar).to(equal(@NO)); - expect(testStruct.rearLeftDoorAjar).to(equal(@NO)); - expect(testStruct.rearRightDoorAjar).to(equal(@YES)); +NSArray<SDLDoorStatus *> *doorStatuses = @[[[SDLDoorStatus alloc] init]]; +NSArray<SDLGateStatus *> *gateStatuses = @[[[SDLGateStatus alloc] init]]; +NSArray<SDLRoofStatus *> *roofStatuses = @[[[SDLRoofStatus alloc] init]]; +SDLIgnitionStableStatus ignitionStableStatus = SDLIgnitionStableStatusStable; +SDLIgnitionStatus ignitionStatus = SDLIgnitionStatusStart; +__block SDLBodyInformation *testStruct = nil; + +describe(@"getter/setter tests", ^{ + context(@"init and assign", ^{ + beforeEach(^{ + testStruct = [[SDLBodyInformation alloc] init]; + testStruct.parkBrakeActive = @YES; + testStruct.ignitionStableStatus = SDLIgnitionStableStatusStable; + testStruct.ignitionStatus = SDLIgnitionStatusStart; +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + testStruct.driverDoorAjar = @NO; + testStruct.passengerDoorAjar = @NO; + testStruct.rearLeftDoorAjar = @NO; + testStruct.rearRightDoorAjar = @YES; +#pragma clang diagnostic pop + testStruct.doorStatuses = doorStatuses; + testStruct.gateStatuses = gateStatuses; + testStruct.roofStatuses = roofStatuses; + }); + + it(@"expect struct is not nil", ^{ + expect(testStruct).notTo(beNil()); + }); + + it(@"expect all properties to be set correctly", ^{ + expect(testStruct.parkBrakeActive).to(equal(@YES)); + expect(testStruct.ignitionStableStatus).to(equal(SDLIgnitionStableStatusStable)); + expect(testStruct.ignitionStatus).to(equal(SDLIgnitionStatusStart)); +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + expect(testStruct.driverDoorAjar).to(equal(@NO)); + expect(testStruct.passengerDoorAjar).to(equal(@NO)); + expect(testStruct.rearLeftDoorAjar).to(equal(@NO)); + expect(testStruct.rearRightDoorAjar).to(equal(@YES)); +#pragma clang diagnostic pop + expect(testStruct.doorStatuses).to(equal(doorStatuses)); + expect(testStruct.gateStatuses).to(equal(gateStatuses)); + expect(testStruct.roofStatuses).to(equal(roofStatuses)); + }); }); - - it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLRPCParameterNameParkBrakeActive:@YES, - SDLRPCParameterNameIgnitionStableStatus:SDLIgnitionStableStatusNotStable, - SDLRPCParameterNameIgnitionStatus:SDLIgnitionStatusStart, - SDLRPCParameterNameDriverDoorAjar:@NO, - SDLRPCParameterNamePassengerDoorAjar:@NO, - SDLRPCParameterNameRearLeftDoorAjar:@NO, - SDLRPCParameterNameRearRightDoorAjar:@YES} mutableCopy]; - SDLBodyInformation* testStruct = [[SDLBodyInformation alloc] initWithDictionary:dict]; - - expect(testStruct.parkBrakeActive).to(equal(@YES)); - expect(testStruct.ignitionStableStatus).to(equal(SDLIgnitionStableStatusNotStable)); - expect(testStruct.ignitionStatus).to(equal(SDLIgnitionStatusStart)); - expect(testStruct.driverDoorAjar).to(equal(@NO)); - expect(testStruct.passengerDoorAjar).to(equal(@NO)); - expect(testStruct.rearLeftDoorAjar).to(equal(@NO)); - expect(testStruct.rearRightDoorAjar).to(equal(@YES)); + + context(@"initWithDictionary:", ^{ + beforeEach(^{ + NSDictionary *dict = @{ + SDLRPCParameterNameParkBrakeActive:@YES, + SDLRPCParameterNameIgnitionStableStatus:SDLIgnitionStableStatusNotStable, + SDLRPCParameterNameIgnitionStatus:SDLIgnitionStatusStart, +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + SDLRPCParameterNameDriverDoorAjar:@NO, + SDLRPCParameterNamePassengerDoorAjar:@NO, + SDLRPCParameterNameRearLeftDoorAjar:@NO, + SDLRPCParameterNameRearRightDoorAjar:@YES, +#pragma clang diagnostic pop + SDLRPCParameterNameDoorStatuses:doorStatuses, + SDLRPCParameterNameGateStatuses:gateStatuses, + SDLRPCParameterNameRoofStatuses:roofStatuses, + }; + testStruct = [[SDLBodyInformation alloc] initWithDictionary:dict]; + }); + + it(@"expect struct is not nil", ^{ + expect(testStruct).notTo(beNil()); + }); + + it(@"expect all properties to be set correctly", ^{ + expect(testStruct.parkBrakeActive).to(equal(@YES)); + expect(testStruct.ignitionStableStatus).to(equal(SDLIgnitionStableStatusNotStable)); + expect(testStruct.ignitionStatus).to(equal(SDLIgnitionStatusStart)); +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + expect(testStruct.driverDoorAjar).to(equal(@NO)); + expect(testStruct.passengerDoorAjar).to(equal(@NO)); + expect(testStruct.rearLeftDoorAjar).to(equal(@NO)); + expect(testStruct.rearRightDoorAjar).to(equal(@YES)); +#pragma clang diagnostic pop + expect(testStruct.doorStatuses).to(equal(doorStatuses)); + expect(testStruct.gateStatuses).to(equal(gateStatuses)); + expect(testStruct.roofStatuses).to(equal(roofStatuses)); + }); }); - - it(@"Should return nil if not set", ^ { - SDLBodyInformation* testStruct = [[SDLBodyInformation alloc] init]; - - expect(testStruct.parkBrakeActive).to(beNil()); - expect(testStruct.ignitionStableStatus).to(beNil()); - expect(testStruct.ignitionStatus).to(beNil()); - expect(testStruct.driverDoorAjar).to(beNil()); - expect(testStruct.passengerDoorAjar).to(beNil()); - expect(testStruct.rearLeftDoorAjar).to(beNil()); - expect(testStruct.rearRightDoorAjar).to(beNil()); + + context(@"init", ^{ + beforeEach(^{ + testStruct = [[SDLBodyInformation alloc] init]; + }); + + it(@"expect struct is not nil", ^{ + expect(testStruct).notTo(beNil()); + }); + + it(@"expect all properties to be nil", ^{ + expect(testStruct.parkBrakeActive).to(beNil()); + expect(testStruct.ignitionStableStatus).to(beNil()); + expect(testStruct.ignitionStatus).to(beNil()); + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wdeprecated-declarations" + expect(testStruct.driverDoorAjar).to(beNil()); + expect(testStruct.passengerDoorAjar).to(beNil()); + expect(testStruct.rearLeftDoorAjar).to(beNil()); + expect(testStruct.rearRightDoorAjar).to(beNil()); + #pragma clang diagnostic pop + expect(testStruct.doorStatuses).to(beNil()); + expect(testStruct.gateStatuses).to(beNil()); + expect(testStruct.roofStatuses).to(beNil()); + }); + }); + + context(@"initWithParkBrakeActive:ignitionStableStatus:ignitionStatus:", ^{ + beforeEach(^{ + testStruct = [[SDLBodyInformation alloc] initWithParkBrakeActive:YES ignitionStableStatus:ignitionStableStatus ignitionStatus:ignitionStatus]; + }); + + it(@"expect struct is not nil", ^{ + expect(testStruct).notTo(beNil()); + }); + + it(@"expect all properties to be set correctly", ^{ + expect(testStruct.parkBrakeActive).to(equal(@YES)); + expect(testStruct.ignitionStableStatus).to(equal(ignitionStableStatus)); + expect(testStruct.ignitionStatus).to(equal(ignitionStatus)); +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + expect(testStruct.driverDoorAjar).to(beNil()); + expect(testStruct.passengerDoorAjar).to(beNil()); + expect(testStruct.rearLeftDoorAjar).to(beNil()); + expect(testStruct.rearRightDoorAjar).to(beNil()); +#pragma clang diagnostic pop + expect(testStruct.doorStatuses).to(beNil()); + expect(testStruct.gateStatuses).to(beNil()); + expect(testStruct.roofStatuses).to(beNil()); + }); + }); + + context(@"initWithParkBrakeActive:ignitionStableStatus:ignitionStatus:", ^{ + beforeEach(^{ + testStruct = [[SDLBodyInformation alloc] initWithParkBrakeActive:YES ignitionStableStatus:ignitionStableStatus ignitionStatus:ignitionStatus doorStatuses:doorStatuses gateStatuses:gateStatuses roofStatuses:roofStatuses]; + }); + + it(@"expect struct is not nil", ^{ + expect(testStruct).notTo(beNil()); + }); + + it(@"expect all properties to be set correctly", ^{ + expect(testStruct.parkBrakeActive).to(equal(@YES)); + expect(testStruct.ignitionStableStatus).to(equal(ignitionStableStatus)); + expect(testStruct.ignitionStatus).to(equal(ignitionStatus)); +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + expect(testStruct.driverDoorAjar).to(beNil()); + expect(testStruct.passengerDoorAjar).to(beNil()); + expect(testStruct.rearLeftDoorAjar).to(beNil()); + expect(testStruct.rearRightDoorAjar).to(beNil()); +#pragma clang diagnostic pop + expect(testStruct.doorStatuses).to(equal(doorStatuses)); + expect(testStruct.gateStatuses).to(equal(gateStatuses)); + expect(testStruct.roofStatuses).to(equal(roofStatuses)); + }); }); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDoorStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDoorStatusSpec.m new file mode 100644 index 000000000..17eed73b7 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDoorStatusSpec.m @@ -0,0 +1,92 @@ +// +// SDLDoorStatusSpec.m +// SmartDeviceLink + + +#import <Foundation/Foundation.h> + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLDoorStatus.h" +#import "SDLDoorStatusType.h" +#import "SDLGrid.h" +#import "SDLRPCParameterNames.h" + +QuickSpecBegin(SDLDoorStatusSpec) + +SDLGrid *location = [[SDLGrid alloc] init]; +SDLDoorStatusType status = SDLDoorStatusTypeAjar; +__block SDLDoorStatus *testStruct = nil; + +describe(@"getter/setter tests", ^{ + context(@"init and assign", ^{ + beforeEach(^{ + testStruct = [[SDLDoorStatus alloc] init]; + testStruct.location = location; + testStruct.status = status; + }); + + it(@"expect struct is not nil", ^{ + expect(testStruct).notTo(beNil()); + }); + + it(@"expect all properties to be set correctly", ^{ + expect(testStruct.location).to(equal(location)); + expect(testStruct.status).to(equal(status)); + }); + }); + + context(@"initWithDictionary:", ^{ + beforeEach(^{ + NSDictionary *dict = @{ + SDLRPCParameterNameLocation:location, + SDLRPCParameterNameStatus:status, + }; + testStruct = [[SDLDoorStatus alloc] initWithDictionary:dict]; + }); + + it(@"expect struct is not nil", ^{ + expect(testStruct).notTo(beNil()); + }); + + it(@"expect all properties to be set correctly", ^{ + expect(testStruct.location).to(equal(location)); + expect(testStruct.status).to(equal(status)); + }); + }); + + context(@"init", ^{ + beforeEach(^{ + testStruct = [[SDLDoorStatus alloc] init]; + }); + + it(@"expect struct is not nil", ^{ + expect(testStruct).notTo(beNil()); + }); + + it(@"expect all properties to be nil", ^{ + expect(testStruct.location).to(beNil()); + expect(testStruct.status).to(beNil()); + }); + }); + + context(@"initWithLocation:status:", ^{ + beforeEach(^{ + testStruct = [[SDLDoorStatus alloc] initWithLocation:location status:status]; + testStruct.location = location; + testStruct.status = status; + }); + + it(@"expect struct is not nil", ^{ + expect(testStruct).notTo(beNil()); + }); + + it(@"expect all properties to be set correctly", ^{ + expect(testStruct.location).to(equal(location)); + expect(testStruct.status).to(equal(status)); + }); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLGateStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLGateStatusSpec.m new file mode 100644 index 000000000..d35517cea --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLGateStatusSpec.m @@ -0,0 +1,93 @@ +// +// SDLGateStatusSpec.m +// SmartDeviceLink + + +#import <Foundation/Foundation.h> + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLDoorStatusType.h" +#import "SDLGateStatus.h" +#import "SDLGrid.h" +#import "SDLIgnitionStableStatus.h" +#import "SDLRPCParameterNames.h" + +QuickSpecBegin(SDLGateStatusSpec) + +SDLGrid *location = [[SDLGrid alloc] init]; +SDLDoorStatusType status = SDLDoorStatusTypeAjar; +__block SDLGateStatus *testStruct = nil; + +describe(@"getter/setter tests", ^{ + context(@"init and assign", ^{ + beforeEach(^{ + testStruct = [[SDLGateStatus alloc] init]; + testStruct.location = location; + testStruct.status = status; + }); + + it(@"expect struct is not nil", ^{ + expect(testStruct).notTo(beNil()); + }); + + it(@"expect all properties to be set correctly", ^{ + expect(testStruct.location).to(equal(location)); + expect(testStruct.status).to(equal(status)); + }); + }); + + context(@"initWithDictionary:", ^{ + beforeEach(^{ + NSDictionary *dict = @{ + SDLRPCParameterNameLocation:location, + SDLRPCParameterNameStatus:status, + }; + testStruct = [[SDLGateStatus alloc] initWithDictionary:dict]; + }); + + it(@"expect struct is not nil", ^{ + expect(testStruct).notTo(beNil()); + }); + + it(@"expect all properties to be set correctly", ^{ + expect(testStruct.location).to(equal(location)); + expect(testStruct.status).to(equal(status)); + }); + }); + + context(@"init", ^{ + beforeEach(^{ + testStruct = [[SDLGateStatus alloc] init]; + }); + + it(@"expect struct is not nil", ^{ + expect(testStruct).notTo(beNil()); + }); + + it(@"expect all properties to be nil", ^{ + expect(testStruct.location).to(beNil()); + expect(testStruct.status).to(beNil()); + }); + }); + + context(@"initWithLocation:status:", ^{ + beforeEach(^{ + testStruct = [[SDLGateStatus alloc] initWithLocation:location status:status]; + testStruct.location = location; + testStruct.status = status; + }); + + it(@"expect struct is not nil", ^{ + expect(testStruct).notTo(beNil()); + }); + + it(@"expect all properties to be set correctly", ^{ + expect(testStruct.location).to(equal(location)); + expect(testStruct.status).to(equal(status)); + }); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRoofStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRoofStatusSpec.m new file mode 100644 index 000000000..933ad1d0c --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRoofStatusSpec.m @@ -0,0 +1,114 @@ +// +// SDLRoofStatusSpec.m +// SmartDeviceLink + + +#import <Foundation/Foundation.h> + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLDoorStatusType.h" +#import "SDLGrid.h" +#import "SDLRoofStatus.h" +#import "SDLRPCParameterNames.h" +#import "SDLWindowState.h" + +QuickSpecBegin(SDLRoofStatusSpec) + +SDLGrid *location = [[SDLGrid alloc] init]; +SDLDoorStatusType status = SDLDoorStatusTypeAjar; +SDLWindowState *state = [[SDLWindowState alloc] init]; +__block SDLRoofStatus *testStruct = nil; + +describe(@"getter/setter tests", ^{ + context(@"init and assign", ^{ + beforeEach(^{ + testStruct = [[SDLRoofStatus alloc] init]; + testStruct.location = location; + testStruct.status = status; + testStruct.state = state; + }); + + it(@"expect struct is not nil", ^{ + expect(testStruct).notTo(beNil()); + }); + + it(@"expect all properties to be set correctly", ^{ + expect(testStruct.location).to(equal(location)); + expect(testStruct.status).to(equal(status)); + expect(testStruct.state).to(equal(state)); + }); + }); + + context(@"initWithDictionary:", ^{ + beforeEach(^{ + NSDictionary *dict = @{ + SDLRPCParameterNameLocation:location, + SDLRPCParameterNameStatus:status, + SDLRPCParameterNameState:state, + }; + testStruct = [[SDLRoofStatus alloc] initWithDictionary:dict]; + }); + + it(@"expect struct is not nil", ^{ + expect(testStruct).notTo(beNil()); + }); + + it(@"expect all properties to be set correctly", ^{ + expect(testStruct.location).to(equal(location)); + expect(testStruct.status).to(equal(status)); + expect(testStruct.state).to(equal(state)); + }); + }); + + context(@"init", ^{ + beforeEach(^{ + testStruct = [[SDLRoofStatus alloc] init]; + }); + + it(@"expect struct is not nil", ^{ + expect(testStruct).notTo(beNil()); + }); + + it(@"expect all properties to be nil", ^{ + expect(testStruct.location).to(beNil()); + expect(testStruct.status).to(beNil()); + expect(testStruct.state).to(beNil()); + }); + }); + + context(@"initWithLocation:status:", ^{ + beforeEach(^{ + testStruct = [[SDLRoofStatus alloc] initWithLocation:location status:status]; + }); + + it(@"expect struct is not nil", ^{ + expect(testStruct).notTo(beNil()); + }); + + it(@"expect all properties to be set correctly", ^{ + expect(testStruct.location).to(equal(location)); + expect(testStruct.status).to(equal(status)); + expect(testStruct.state).to(beNil()); + }); + }); + + context(@"initWithLocation:status:state:", ^{ + beforeEach(^{ + testStruct = [[SDLRoofStatus alloc] initWithLocation:location status:status state:state]; + }); + + it(@"expect struct is not nil", ^{ + expect(testStruct).notTo(beNil()); + }); + + it(@"expect all properties to be set correctly", ^{ + expect(testStruct.location).to(equal(location)); + expect(testStruct.status).to(equal(status)); + expect(testStruct.state).to(equal(state)); + }); + }); +}); + +QuickSpecEnd |