From 3b1eefd197d832be639eedd4eb04e5b3f18658ab Mon Sep 17 00:00:00 2001 From: Grzegorz Janosz Date: Wed, 2 Feb 2022 12:58:51 +0100 Subject: [PATCH] Release 2.4.1 --- SiliconLabsApp.xcodeproj/project.pbxproj | 246 +++++++-------- SiliconLabsApp/Categories/Data+Helpers.swift | 8 +- .../Categories/Data+ManufacturerData.swift | 36 +++ .../SILGattConfiguratorServiceHelper.swift | 8 +- .../SILAppTypeConnectedLighting.storyboard | 14 +- .../DemoApps/SILAppTypeThroughput.storyboard | 2 +- .../DevelopApps/SILIOPTest.storyboard | 26 +- .../Storyboards/HomeScreen.storyboard | 16 +- .../BlueGecko/Entitlements.entitlements | 4 + .../SupportingFiles/BlueGecko/Info.plist | 10 +- .../Demos/IO/IoDemoInteraction.swift | 10 + .../Demos/IO/IoDemoInteractionProtocol.swift | 1 + .../Demos/IO/IoDemoViewController.swift | 148 ++++----- .../DeviceSupport/BLE Module/BleDevice.swift | 45 +++ .../BLE Module/BleIoDemoConnection.swift | 2 +- .../DeviceSupport/BLE Module/BleManager.swift | 4 +- .../BLE Module/CBUUIDExtensions.swift | 8 + .../DeviceSupport/Protocols/Device.swift | 2 + .../Protocols/DeviceExtensions.swift | 2 +- .../SimulatedModule/SimulatedDevice.swift | 4 + .../SILDeviceSelectionViewController.h | 32 -- .../SILDeviceSelectionViewController.m | 246 --------------- .../SILAppSelectionViewController.swift | 18 +- .../SILLocalGattServerViewController.swift | 4 +- .../SILGattConfiguratorHomeWireframe.swift | 2 +- .../SILIOPTesterPeripheralDelegate.swift | 116 ------- .../TestHelpers/SILDiscoverRFUFeatures.swift | 188 ----------- .../SILDiscoverTestConnectionParameters.swift | 2 +- .../UI/SILIOPDeviceNamePopup.swift | 115 ------- .../IOP Test App/UI/SILIOPDeviceNamePopup.xib | 198 ------------ .../UI/SILIOPTesterViewController.swift | 2 +- .../Peripheral/SILRangeTestPeripheral.swift | 17 +- .../SILConnectionParameterLabel.swift | 54 ---- .../Througput/SILThroughputGaugeView.swift | 288 ----------------- .../SILThroughputViewController.swift | 293 ------------------ .../Throughput/SILThroughputViewModel.swift | 3 +- 36 files changed, 374 insertions(+), 1800 deletions(-) create mode 100644 SiliconLabsApp/Categories/Data+ManufacturerData.swift delete mode 100644 SiliconLabsApp/ViewControllers/AppSelection/DeviceSelection/SILDeviceSelectionViewController.h delete mode 100644 SiliconLabsApp/ViewControllers/AppSelection/DeviceSelection/SILDeviceSelectionViewController.m delete mode 100644 SiliconLabsApp/ViewControllers/IOP Test App/Helpers/SILIOPTesterPeripheralDelegate.swift delete mode 100644 SiliconLabsApp/ViewControllers/IOP Test App/TestScenario/Test_4/TestHelpers/SILDiscoverRFUFeatures.swift delete mode 100644 SiliconLabsApp/ViewControllers/IOP Test App/UI/SILIOPDeviceNamePopup.swift delete mode 100644 SiliconLabsApp/ViewControllers/IOP Test App/UI/SILIOPDeviceNamePopup.xib delete mode 100644 SiliconLabsApp/ViewControllers/Througput/SILConnectionParameterLabel.swift delete mode 100644 SiliconLabsApp/ViewControllers/Througput/SILThroughputGaugeView.swift delete mode 100644 SiliconLabsApp/ViewControllers/Througput/SILThroughputViewController.swift diff --git a/SiliconLabsApp.xcodeproj/project.pbxproj b/SiliconLabsApp.xcodeproj/project.pbxproj index 434b8e1c..bbc0ca3b 100644 --- a/SiliconLabsApp.xcodeproj/project.pbxproj +++ b/SiliconLabsApp.xcodeproj/project.pbxproj @@ -959,27 +959,10 @@ 79C40C6D1EC9F59B00B729BF /* SILHomeKitDebugDeviceTableViewCell~iphone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 79C40C6B1EC9F59B00B729BF /* SILHomeKitDebugDeviceTableViewCell~iphone.xib */; }; 79C40C701EC9F6A800B729BF /* SILHomeKitDebugDeviceTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 79C40C6F1EC9F6A800B729BF /* SILHomeKitDebugDeviceTableViewCell.m */; }; 79E62B4F1ECCA29400344CAA /* SILBluetoothSearch.m in Sources */ = {isa = PBXBuildFile; fileRef = 79E62B4E1ECCA29400344CAA /* SILBluetoothSearch.m */; }; - 80066DBD27626076007A861C /* SILAppTypeWifiCommissioning.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 80066DBC27626075007A861C /* SILAppTypeWifiCommissioning.storyboard */; }; - 80066DC42762608E007A861C /* String+Subscript.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80066DC32762608E007A861C /* String+Subscript.swift */; }; - 80066DD4276260C9007A861C /* SILWifiCommissioningAPCellView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80066DCB276260C9007A861C /* SILWifiCommissioningAPCellView.swift */; }; - 80066DD5276260C9007A861C /* SILWifiCommissioningViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80066DCC276260C9007A861C /* SILWifiCommissioningViewController.swift */; }; - 80066DD6276260C9007A861C /* SILWifiCommissioningConnectedAPCellView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80066DCD276260C9007A861C /* SILWifiCommissioningConnectedAPCellView.swift */; }; - 80066DD7276260C9007A861C /* SILWifiCommissioningDisconnectPopup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80066DCF276260C9007A861C /* SILWifiCommissioningDisconnectPopup.swift */; }; - 80066DD8276260C9007A861C /* SILWifiCommissioningDisconnectPopup.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80066DD0276260C9007A861C /* SILWifiCommissioningDisconnectPopup.xib */; }; - 80066DD9276260C9007A861C /* SILWifiCommissioningPasswordPopup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80066DD2276260C9007A861C /* SILWifiCommissioningPasswordPopup.swift */; }; - 80066DDA276260C9007A861C /* SILWifiCommissioningPasswordPopup.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80066DD3276260C9007A861C /* SILWifiCommissioningPasswordPopup.xib */; }; - 80066DE1276260ED007A861C /* SILDot.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80066DE0276260ED007A861C /* SILDot.swift */; }; - 80066DEF27626100007A861C /* SILWifiCommissioningPeripheralGATTDatabase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80066DE827626100007A861C /* SILWifiCommissioningPeripheralGATTDatabase.swift */; }; - 80066DF027626100007A861C /* SILTimeoutTimer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80066DE927626100007A861C /* SILTimeoutTimer.swift */; }; - 80066DF127626100007A861C /* SILWifiCommissioningWriteCommandType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80066DEA27626100007A861C /* SILWifiCommissioningWriteCommandType.swift */; }; - 80066DF227626100007A861C /* SILWifiCommissioningSecurityType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80066DEB27626100007A861C /* SILWifiCommissioningSecurityType.swift */; }; - 80066DF327626100007A861C /* SILWifiCommissioningAPCellViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80066DEC27626100007A861C /* SILWifiCommissioningAPCellViewModel.swift */; }; - 80066DF427626100007A861C /* SILWifiCommissioningViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80066DED27626100007A861C /* SILWifiCommissioningViewModel.swift */; }; - 80066DF527626100007A861C /* SILWifiCommissioningConnectedAPCellViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80066DEE27626100007A861C /* SILWifiCommissioningConnectedAPCellViewModel.swift */; }; - 80066E2327626178007A861C /* SILPeripheralDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80066E2227626178007A861C /* SILPeripheralDelegate.swift */; }; - 80066ECB2763534A007A861C /* String+VersionCompare.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80066ECA2763534A007A861C /* String+VersionCompare.swift */; }; + 80066FF72768AFB6007A861C /* String+VersionCompare.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80066FF62768AFB6007A861C /* String+VersionCompare.swift */; }; 8008B8FD25E67DB400439F3A /* DebugDeviceFilterViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8008B8FC25E67DB400439F3A /* DebugDeviceFilterViewModelSpec.swift */; }; 8008B99925E6918400439F3A /* SILTemperatureMeasurementSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8008B99825E6918400439F3A /* SILTemperatureMeasurementSpec.m */; }; + 8012744E278C30E5006E12E5 /* Data+ManufacturerData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8012744D278C30E5006E12E5 /* Data+ManufacturerData.swift */; }; 802A28A327566F7800E701A1 /* SILBlinkyPeripheralGATTDatabase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802A28A227566F7800E701A1 /* SILBlinkyPeripheralGATTDatabase.swift */; }; 802A28AA27566F9D00E701A1 /* SILThunderboardPeripheralGATTDatabase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802A28A927566F9D00E701A1 /* SILThunderboardPeripheralGATTDatabase.swift */; }; 802A2997275778AF00E701A1 /* DemoViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802A2996275778AF00E701A1 /* DemoViewController.swift */; }; @@ -1019,6 +1002,24 @@ 809656852524A71C000E98F5 /* SILDebugCharacteristicEncodingFieldView.m in Sources */ = {isa = PBXBuildFile; fileRef = 809656832524A71C000E98F5 /* SILDebugCharacteristicEncodingFieldView.m */; }; 809656862524A71C000E98F5 /* SILDebugCharacteristicEncodingFieldView.m in Sources */ = {isa = PBXBuildFile; fileRef = 809656832524A71C000E98F5 /* SILDebugCharacteristicEncodingFieldView.m */; }; 80AF191E2677A068002A58DB /* SILGattConfiguratorCheckBoxCellView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80AF191D2677A068002A58DB /* SILGattConfiguratorCheckBoxCellView.swift */; }; + 80B5FE73275F7474008F08A8 /* SILAppTypeWifiCommissioning.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 80B5FE72275F7474008F08A8 /* SILAppTypeWifiCommissioning.storyboard */; }; + 80B5FE7A275F8FDD008F08A8 /* String+Subscript.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80B5FE79275F8FDC008F08A8 /* String+Subscript.swift */; }; + 80B5FE81275F900B008F08A8 /* SILPeripheralDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80B5FE80275F900B008F08A8 /* SILPeripheralDelegate.swift */; }; + 80B5FF87275F911E008F08A8 /* SILWifiCommissioningPeripheralGATTDatabase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80B5FF80275F911E008F08A8 /* SILWifiCommissioningPeripheralGATTDatabase.swift */; }; + 80B5FF88275F911E008F08A8 /* SILTimeoutTimer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80B5FF81275F911E008F08A8 /* SILTimeoutTimer.swift */; }; + 80B5FF89275F911E008F08A8 /* SILWifiCommissioningWriteCommandType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80B5FF82275F911E008F08A8 /* SILWifiCommissioningWriteCommandType.swift */; }; + 80B5FF8A275F911E008F08A8 /* SILWifiCommissioningSecurityType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80B5FF83275F911E008F08A8 /* SILWifiCommissioningSecurityType.swift */; }; + 80B5FF8B275F911E008F08A8 /* SILWifiCommissioningAPCellViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80B5FF84275F911E008F08A8 /* SILWifiCommissioningAPCellViewModel.swift */; }; + 80B5FF8C275F911E008F08A8 /* SILWifiCommissioningViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80B5FF85275F911E008F08A8 /* SILWifiCommissioningViewModel.swift */; }; + 80B5FF8D275F911E008F08A8 /* SILWifiCommissioningConnectedAPCellViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80B5FF86275F911E008F08A8 /* SILWifiCommissioningConnectedAPCellViewModel.swift */; }; + 80B5FF9D275F912F008F08A8 /* SILWifiCommissioningAPCellView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80B5FF94275F912F008F08A8 /* SILWifiCommissioningAPCellView.swift */; }; + 80B5FF9E275F912F008F08A8 /* SILWifiCommissioningViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80B5FF95275F912F008F08A8 /* SILWifiCommissioningViewController.swift */; }; + 80B5FF9F275F912F008F08A8 /* SILWifiCommissioningConnectedAPCellView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80B5FF96275F912F008F08A8 /* SILWifiCommissioningConnectedAPCellView.swift */; }; + 80B5FFA0275F912F008F08A8 /* SILWifiCommissioningDisconnectPopup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80B5FF98275F912F008F08A8 /* SILWifiCommissioningDisconnectPopup.swift */; }; + 80B5FFA1275F912F008F08A8 /* SILWifiCommissioningDisconnectPopup.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80B5FF99275F912F008F08A8 /* SILWifiCommissioningDisconnectPopup.xib */; }; + 80B5FFA2275F912F008F08A8 /* SILWifiCommissioningPasswordPopup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80B5FF9B275F912F008F08A8 /* SILWifiCommissioningPasswordPopup.swift */; }; + 80B5FFA3275F912F008F08A8 /* SILWifiCommissioningPasswordPopup.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80B5FF9C275F912F008F08A8 /* SILWifiCommissioningPasswordPopup.xib */; }; + 80B5FFAA275F9148008F08A8 /* SILDot.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80B5FFA9275F9148008F08A8 /* SILDot.swift */; }; 80C67059255169950083D20C /* SILRadioButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80C67058255169950083D20C /* SILRadioButton.swift */; }; 80C6705A255169950083D20C /* SILRadioButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80C67058255169950083D20C /* SILRadioButton.swift */; }; 80C6705B255169950083D20C /* SILRadioButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80C67058255169950083D20C /* SILRadioButton.swift */; }; @@ -1893,30 +1894,13 @@ 79E62B4E1ECCA29400344CAA /* SILBluetoothSearch.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SILBluetoothSearch.m; sourceTree = ""; }; 7AAD8E27028334FE640216CD /* Pods_SiliconLabsAppWithoutHomeKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SiliconLabsAppWithoutHomeKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 7D7E90CFE18ED0DFB6F387D5 /* Pods-SiliconLabsAppWithoutHomeKit Dev.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SiliconLabsAppWithoutHomeKit Dev.debug.xcconfig"; path = "Pods/Target Support Files/Pods-SiliconLabsAppWithoutHomeKit Dev/Pods-SiliconLabsAppWithoutHomeKit Dev.debug.xcconfig"; sourceTree = ""; }; - 80066DBC27626075007A861C /* SILAppTypeWifiCommissioning.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = SILAppTypeWifiCommissioning.storyboard; sourceTree = ""; }; - 80066DC32762608E007A861C /* String+Subscript.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "String+Subscript.swift"; sourceTree = ""; }; - 80066DCB276260C9007A861C /* SILWifiCommissioningAPCellView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SILWifiCommissioningAPCellView.swift; sourceTree = ""; }; - 80066DCC276260C9007A861C /* SILWifiCommissioningViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SILWifiCommissioningViewController.swift; sourceTree = ""; }; - 80066DCD276260C9007A861C /* SILWifiCommissioningConnectedAPCellView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SILWifiCommissioningConnectedAPCellView.swift; sourceTree = ""; }; - 80066DCF276260C9007A861C /* SILWifiCommissioningDisconnectPopup.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SILWifiCommissioningDisconnectPopup.swift; sourceTree = ""; }; - 80066DD0276260C9007A861C /* SILWifiCommissioningDisconnectPopup.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SILWifiCommissioningDisconnectPopup.xib; sourceTree = ""; }; - 80066DD2276260C9007A861C /* SILWifiCommissioningPasswordPopup.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SILWifiCommissioningPasswordPopup.swift; sourceTree = ""; }; - 80066DD3276260C9007A861C /* SILWifiCommissioningPasswordPopup.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SILWifiCommissioningPasswordPopup.xib; sourceTree = ""; }; - 80066DE0276260ED007A861C /* SILDot.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SILDot.swift; sourceTree = ""; }; - 80066DE827626100007A861C /* SILWifiCommissioningPeripheralGATTDatabase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SILWifiCommissioningPeripheralGATTDatabase.swift; sourceTree = ""; }; - 80066DE927626100007A861C /* SILTimeoutTimer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SILTimeoutTimer.swift; sourceTree = ""; }; - 80066DEA27626100007A861C /* SILWifiCommissioningWriteCommandType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SILWifiCommissioningWriteCommandType.swift; sourceTree = ""; }; - 80066DEB27626100007A861C /* SILWifiCommissioningSecurityType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SILWifiCommissioningSecurityType.swift; sourceTree = ""; }; - 80066DEC27626100007A861C /* SILWifiCommissioningAPCellViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SILWifiCommissioningAPCellViewModel.swift; sourceTree = ""; }; - 80066DED27626100007A861C /* SILWifiCommissioningViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SILWifiCommissioningViewModel.swift; sourceTree = ""; }; - 80066DEE27626100007A861C /* SILWifiCommissioningConnectedAPCellViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SILWifiCommissioningConnectedAPCellViewModel.swift; sourceTree = ""; }; - 80066E2227626178007A861C /* SILPeripheralDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SILPeripheralDelegate.swift; sourceTree = ""; }; - 80066ECA2763534A007A861C /* String+VersionCompare.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+VersionCompare.swift"; sourceTree = ""; }; + 80066FF62768AFB6007A861C /* String+VersionCompare.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "String+VersionCompare.swift"; sourceTree = ""; }; 8008B8ED25E67D7A00439F3A /* BlueGeckoTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = BlueGeckoTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 8008B8F125E67D7A00439F3A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 8008B8FC25E67DB400439F3A /* DebugDeviceFilterViewModelSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DebugDeviceFilterViewModelSpec.swift; sourceTree = ""; }; 8008B99725E6918300439F3A /* BlueGeckoTests-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "BlueGeckoTests-Bridging-Header.h"; sourceTree = ""; }; 8008B99825E6918400439F3A /* SILTemperatureMeasurementSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SILTemperatureMeasurementSpec.m; sourceTree = ""; }; + 8012744D278C30E5006E12E5 /* Data+ManufacturerData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Data+ManufacturerData.swift"; sourceTree = ""; }; 802A28A227566F7800E701A1 /* SILBlinkyPeripheralGATTDatabase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SILBlinkyPeripheralGATTDatabase.swift; sourceTree = ""; }; 802A28A927566F9D00E701A1 /* SILThunderboardPeripheralGATTDatabase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SILThunderboardPeripheralGATTDatabase.swift; sourceTree = ""; }; 802A2996275778AF00E701A1 /* DemoViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DemoViewController.swift; sourceTree = ""; }; @@ -1949,6 +1933,24 @@ 809656822524A71C000E98F5 /* SILDebugCharacteristicEncodingFieldView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SILDebugCharacteristicEncodingFieldView.h; sourceTree = ""; }; 809656832524A71C000E98F5 /* SILDebugCharacteristicEncodingFieldView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SILDebugCharacteristicEncodingFieldView.m; sourceTree = ""; }; 80AF191D2677A068002A58DB /* SILGattConfiguratorCheckBoxCellView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SILGattConfiguratorCheckBoxCellView.swift; sourceTree = ""; }; + 80B5FE72275F7474008F08A8 /* SILAppTypeWifiCommissioning.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = SILAppTypeWifiCommissioning.storyboard; sourceTree = ""; }; + 80B5FE79275F8FDC008F08A8 /* String+Subscript.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "String+Subscript.swift"; sourceTree = ""; }; + 80B5FE80275F900B008F08A8 /* SILPeripheralDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SILPeripheralDelegate.swift; sourceTree = ""; }; + 80B5FF80275F911E008F08A8 /* SILWifiCommissioningPeripheralGATTDatabase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SILWifiCommissioningPeripheralGATTDatabase.swift; sourceTree = ""; }; + 80B5FF81275F911E008F08A8 /* SILTimeoutTimer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SILTimeoutTimer.swift; sourceTree = ""; }; + 80B5FF82275F911E008F08A8 /* SILWifiCommissioningWriteCommandType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SILWifiCommissioningWriteCommandType.swift; sourceTree = ""; }; + 80B5FF83275F911E008F08A8 /* SILWifiCommissioningSecurityType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SILWifiCommissioningSecurityType.swift; sourceTree = ""; }; + 80B5FF84275F911E008F08A8 /* SILWifiCommissioningAPCellViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SILWifiCommissioningAPCellViewModel.swift; sourceTree = ""; }; + 80B5FF85275F911E008F08A8 /* SILWifiCommissioningViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SILWifiCommissioningViewModel.swift; sourceTree = ""; }; + 80B5FF86275F911E008F08A8 /* SILWifiCommissioningConnectedAPCellViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SILWifiCommissioningConnectedAPCellViewModel.swift; sourceTree = ""; }; + 80B5FF94275F912F008F08A8 /* SILWifiCommissioningAPCellView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SILWifiCommissioningAPCellView.swift; sourceTree = ""; }; + 80B5FF95275F912F008F08A8 /* SILWifiCommissioningViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SILWifiCommissioningViewController.swift; sourceTree = ""; }; + 80B5FF96275F912F008F08A8 /* SILWifiCommissioningConnectedAPCellView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SILWifiCommissioningConnectedAPCellView.swift; sourceTree = ""; }; + 80B5FF98275F912F008F08A8 /* SILWifiCommissioningDisconnectPopup.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SILWifiCommissioningDisconnectPopup.swift; sourceTree = ""; }; + 80B5FF99275F912F008F08A8 /* SILWifiCommissioningDisconnectPopup.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SILWifiCommissioningDisconnectPopup.xib; sourceTree = ""; }; + 80B5FF9B275F912F008F08A8 /* SILWifiCommissioningPasswordPopup.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SILWifiCommissioningPasswordPopup.swift; sourceTree = ""; }; + 80B5FF9C275F912F008F08A8 /* SILWifiCommissioningPasswordPopup.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SILWifiCommissioningPasswordPopup.xib; sourceTree = ""; }; + 80B5FFA9275F9148008F08A8 /* SILDot.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SILDot.swift; sourceTree = ""; }; 80BA5B4F266A5B2100760636 /* SILGattConfiguratorCheckBoxCellView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SILGattConfiguratorCheckBoxCellView.swift; sourceTree = ""; }; 80BA5B74266A685400760636 /* SILGattConfiguratorCheckBoxCellViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SILGattConfiguratorCheckBoxCellViewModel.swift; sourceTree = ""; }; 80C67058255169950083D20C /* SILRadioButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SILRadioButton.swift; sourceTree = ""; }; @@ -2450,7 +2452,7 @@ 07B1AD741BFCFF6900D4D454 /* ViewModels */ = { isa = PBXGroup; children = ( - 80066DE727626100007A861C /* WifiCommissioning */, + 80B5FF7F275F911E008F08A8 /* WifiCommissioning */, 205131222703639400C27B92 /* Environment */, 205131202703639400C27B92 /* Motion */, 1EFC76B426AEE0120035594E /* Blinky */, @@ -3666,7 +3668,7 @@ 1EC92F0923A39EDC00FD2219 /* DemoApps */ = { isa = PBXGroup; children = ( - 80066DBC27626075007A861C /* SILAppTypeWifiCommissioning.storyboard */, + 80B5FE72275F7474008F08A8 /* SILAppTypeWifiCommissioning.storyboard */, 205131172703636D00C27B92 /* SILAppTypeEnvironment.storyboard */, 205131162703636D00C27B92 /* SILAppTypeMotion.storyboard */, 1E973CE92672691600B5FC71 /* SILAppTypeBlinky.storyboard */, @@ -4197,50 +4199,6 @@ name = HomeKit; sourceTree = ""; }; - 80066DCA276260C9007A861C /* WifiCommissioning */ = { - isa = PBXGroup; - children = ( - 80066DCE276260C9007A861C /* DisconnectPopup */, - 80066DD1276260C9007A861C /* PasswordPopup */, - 80066DCB276260C9007A861C /* SILWifiCommissioningAPCellView.swift */, - 80066DCC276260C9007A861C /* SILWifiCommissioningViewController.swift */, - 80066DCD276260C9007A861C /* SILWifiCommissioningConnectedAPCellView.swift */, - ); - path = WifiCommissioning; - sourceTree = ""; - }; - 80066DCE276260C9007A861C /* DisconnectPopup */ = { - isa = PBXGroup; - children = ( - 80066DCF276260C9007A861C /* SILWifiCommissioningDisconnectPopup.swift */, - 80066DD0276260C9007A861C /* SILWifiCommissioningDisconnectPopup.xib */, - ); - path = DisconnectPopup; - sourceTree = ""; - }; - 80066DD1276260C9007A861C /* PasswordPopup */ = { - isa = PBXGroup; - children = ( - 80066DD2276260C9007A861C /* SILWifiCommissioningPasswordPopup.swift */, - 80066DD3276260C9007A861C /* SILWifiCommissioningPasswordPopup.xib */, - ); - path = PasswordPopup; - sourceTree = ""; - }; - 80066DE727626100007A861C /* WifiCommissioning */ = { - isa = PBXGroup; - children = ( - 80066DE827626100007A861C /* SILWifiCommissioningPeripheralGATTDatabase.swift */, - 80066DE927626100007A861C /* SILTimeoutTimer.swift */, - 80066DEA27626100007A861C /* SILWifiCommissioningWriteCommandType.swift */, - 80066DEB27626100007A861C /* SILWifiCommissioningSecurityType.swift */, - 80066DEC27626100007A861C /* SILWifiCommissioningAPCellViewModel.swift */, - 80066DED27626100007A861C /* SILWifiCommissioningViewModel.swift */, - 80066DEE27626100007A861C /* SILWifiCommissioningConnectedAPCellViewModel.swift */, - ); - path = WifiCommissioning; - sourceTree = ""; - }; 8008B8EE25E67D7A00439F3A /* BlueGeckoTests */ = { isa = PBXGroup; children = ( @@ -4371,6 +4329,50 @@ name = "Recovered References"; sourceTree = ""; }; + 80B5FF7F275F911E008F08A8 /* WifiCommissioning */ = { + isa = PBXGroup; + children = ( + 80B5FF80275F911E008F08A8 /* SILWifiCommissioningPeripheralGATTDatabase.swift */, + 80B5FF81275F911E008F08A8 /* SILTimeoutTimer.swift */, + 80B5FF82275F911E008F08A8 /* SILWifiCommissioningWriteCommandType.swift */, + 80B5FF83275F911E008F08A8 /* SILWifiCommissioningSecurityType.swift */, + 80B5FF84275F911E008F08A8 /* SILWifiCommissioningAPCellViewModel.swift */, + 80B5FF85275F911E008F08A8 /* SILWifiCommissioningViewModel.swift */, + 80B5FF86275F911E008F08A8 /* SILWifiCommissioningConnectedAPCellViewModel.swift */, + ); + path = WifiCommissioning; + sourceTree = ""; + }; + 80B5FF93275F912F008F08A8 /* WifiCommissioning */ = { + isa = PBXGroup; + children = ( + 80B5FF94275F912F008F08A8 /* SILWifiCommissioningAPCellView.swift */, + 80B5FF95275F912F008F08A8 /* SILWifiCommissioningViewController.swift */, + 80B5FF96275F912F008F08A8 /* SILWifiCommissioningConnectedAPCellView.swift */, + 80B5FF97275F912F008F08A8 /* DisconnectPopup */, + 80B5FF9A275F912F008F08A8 /* PasswordPopup */, + ); + path = WifiCommissioning; + sourceTree = ""; + }; + 80B5FF97275F912F008F08A8 /* DisconnectPopup */ = { + isa = PBXGroup; + children = ( + 80B5FF98275F912F008F08A8 /* SILWifiCommissioningDisconnectPopup.swift */, + 80B5FF99275F912F008F08A8 /* SILWifiCommissioningDisconnectPopup.xib */, + ); + path = DisconnectPopup; + sourceTree = ""; + }; + 80B5FF9A275F912F008F08A8 /* PasswordPopup */ = { + isa = PBXGroup; + children = ( + 80B5FF9B275F912F008F08A8 /* SILWifiCommissioningPasswordPopup.swift */, + 80B5FF9C275F912F008F08A8 /* SILWifiCommissioningPasswordPopup.xib */, + ); + path = PasswordPopup; + sourceTree = ""; + }; 9B44734F25139BFD00355E0A /* ExitPopup */ = { isa = PBXGroup; children = ( @@ -4417,7 +4419,7 @@ E621B33D1A65562400223C5A /* ViewControllers */ = { isa = PBXGroup; children = ( - 80066DCA276260C9007A861C /* WifiCommissioning */, + 80B5FF93275F912F008F08A8 /* WifiCommissioning */, 2051311A2703638900C27B92 /* Environment */, 2051311C2703638900C27B92 /* Motion */, 1E973CF02672693400B5FC71 /* Blinky */, @@ -4548,7 +4550,9 @@ E63DD42E1A71449500E0040F /* Categories */ = { isa = PBXGroup; children = ( - 80066DC32762608E007A861C /* String+Subscript.swift */, + 8012744D278C30E5006E12E5 /* Data+ManufacturerData.swift */, + 80066FF62768AFB6007A861C /* String+VersionCompare.swift */, + 80B5FE79275F8FDC008F08A8 /* String+Subscript.swift */, 1E1457E1266E0522009792C2 /* Data+Helpers.swift */, 1E4DB2EA266A701C00405BD2 /* Realm+CascadeDeleting.swift */, 1E4DB2E9266A701C00405BD2 /* UITextView+AddHyperLinksToText.swift */, @@ -4602,7 +4606,6 @@ 2FD579D6257933DD001D7E9E /* NSObject+SILAssociatedObject.m */, 2FD579DC2579352C001D7E9E /* UIViewController+SILContext.swift */, 1E8529822591F6480064F419 /* UIViewController+Alert.swift */, - 80066ECA2763534A007A861C /* String+VersionCompare.swift */, ); path = Categories; sourceTree = ""; @@ -4647,7 +4650,7 @@ E666CBE81A77C70700676C5C /* Views */ = { isa = PBXGroup; children = ( - 80066DE0276260ED007A861C /* SILDot.swift */, + 80B5FFA9275F9148008F08A8 /* SILDot.swift */, 1E4DB3C2266A722600405BD2 /* SILTableViewControllerHelper.swift */, 1394F95D2566BD4400795E5A /* SILBigButton.swift */, 1E26ECC425501A20002FFAAB /* SILPrimaryButton.swift */, @@ -4667,7 +4670,7 @@ E6B773D71A67082300B93058 /* BluetoothControllers */ = { isa = PBXGroup; children = ( - 80066E2227626178007A861C /* SILPeripheralDelegate.swift */, + 80B5FE80275F900B008F08A8 /* SILPeripheralDelegate.swift */, 1E4DB2DD266A6FF600405BD2 /* SILGattConfiguratorService.swift */, 1E26EC472550197A002FFAAB /* SILAdvertiserService.swift */, E6A37E3F1A82809B00510E39 /* SILCentralManager.h */, @@ -4925,7 +4928,7 @@ ORGANIZATIONNAME = SiliconLabs; TargetAttributes = { 0C2FCB001F9A542300F4F259 = { - DevelopmentTeam = 7FEJ9Q5RV7; + DevelopmentTeam = 52444FG85C; ProvisioningStyle = Automatic; SystemCapabilities = { com.apple.HomeKit = { @@ -5008,7 +5011,7 @@ 0C2FCB9E1F9A542300F4F259 /* SILDebugDeviceFilterViewController.xib in Resources */, 1EDCA5B923E1C05B00F78B14 /* SILBrowserConnectionsTableViewCell.xib in Resources */, 205131182703636D00C27B92 /* SILAppTypeMotion.storyboard in Resources */, - 80066DDA276260C9007A861C /* SILWifiCommissioningPasswordPopup.xib in Resources */, + 80B5FFA3275F912F008F08A8 /* SILWifiCommissioningPasswordPopup.xib in Resources */, 1E4C37A52429095300C822E4 /* Roboto-Medium.ttf in Resources */, 1EEFB21B252347FC00DD2DD7 /* SILCharacteristicWriteEnumListTableViewCell.xib in Resources */, 0C2FCB9F1F9A542300F4F259 /* SILBeaconRegistryEntryCell.xib in Resources */, @@ -5087,9 +5090,9 @@ 1EDA0A0F253472EE0031961D /* SILErrorDetailsViewController.xib in Resources */, 0C2FCBC01F9A542300F4F259 /* SILDebugServiceTableViewCell~ipad.xib in Resources */, 1EA78D0B2435DCBF001656E9 /* SILDeviceSelectionCollectionViewCell.xib in Resources */, - 80066DD8276260C9007A861C /* SILWifiCommissioningDisconnectPopup.xib in Resources */, + 80B5FFA1275F912F008F08A8 /* SILWifiCommissioningDisconnectPopup.xib in Resources */, 0C2FCBC31F9A542300F4F259 /* SILAppSelectionInfoViewController.xib in Resources */, - 80066DBD27626076007A861C /* SILAppTypeWifiCommissioning.storyboard in Resources */, + 80B5FE73275F7474008F08A8 /* SILAppTypeWifiCommissioning.storyboard in Resources */, 20513279270365A800C27B92 /* MotionSenseBoardDemoViewController.storyboard in Resources */, 80671C3A271EE2A4009B6284 /* BRD4184A_LowPoly_Front.jpg in Resources */, 0C2FCBC51F9A542300F4F259 /* SILOTASetupViewController.xib in Resources */, @@ -5675,7 +5678,6 @@ 1EC1F328260CF4D100508552 /* SILIOPTester_Test7.swift in Sources */, 1EFC769A26AEDFA40035594E /* SILGattConfiguratorHomeViewModel.swift in Sources */, 8041CCC8256E5A0900C5C368 /* SILDescriptorTableViewCell.swift in Sources */, - 80066DF127626100007A861C /* SILWifiCommissioningWriteCommandType.swift in Sources */, 0C2FCB061F9A542300F4F259 /* SILActivityBarViewController.m in Sources */, 1EC1F2CE260CF43300508552 /* SILIOPTester_Test2.swift in Sources */, 1E26EC53255019A1002FFAAB /* SILAdvertisingSetEntity.swift in Sources */, @@ -5683,7 +5685,6 @@ 1EFC765826AEDF770035594E /* SILGattConfigurationModel.swift in Sources */, 4D9E26212212BFB200617DBA /* SILRangeTestBoardFeatures.swift in Sources */, 1EC1F266260CEB3400508552 /* SILGATT5_7TestCase.swift in Sources */, - 80066DF027626100007A861C /* SILTimeoutTimer.swift in Sources */, 1EFC766826AEDF770035594E /* SILGattCapabilitiesMarker.swift in Sources */, 1EC1F299260CED4A00508552 /* SILSecurity_7_4TestCase.swift in Sources */, 1E2D26D8244050430006B84A /* SILDocumentPickerViewController.swift in Sources */, @@ -5696,7 +5697,9 @@ 1E90F5F12476C3C90013AABD /* SILKeychainInfoViewController.swift in Sources */, 2051311E2703638900C27B92 /* SILEnvironmentViewController.swift in Sources */, 1E4DB386266A71E000405BD2 /* SILLocalGattServerViewController.swift in Sources */, + 80B5FF89275F911E008F08A8 /* SILWifiCommissioningWriteCommandType.swift in Sources */, 1E973CD6267268D100B5FC71 /* SILBlinkyPeripheralDelegate.swift in Sources */, + 80B5FE7A275F8FDD008F08A8 /* String+Subscript.swift in Sources */, 0C2FCB0B1F9A542300F4F259 /* SILDebugCharacteristicTableViewCell.m in Sources */, 1E586CDB23FBF3FC00E2C385 /* SILBrowserBeaconType.m in Sources */, 0C2FCB0C1F9A542300F4F259 /* SILBluetoothModelManager.m in Sources */, @@ -5719,6 +5722,7 @@ 1E4DB3BB266A720600405BD2 /* SILCreateGattDescriptorViewController.swift in Sources */, 0C2FCB111F9A542300F4F259 /* SILDebugServiceTableViewCell.m in Sources */, 1E26ECBF25501A0A002FFAAB /* SILAdvertisingDataValueCellViewModel.swift in Sources */, + 80B5FF8C275F911E008F08A8 /* SILWifiCommissioningViewModel.swift in Sources */, 0C2FCB121F9A542300F4F259 /* SILDebugAdvDetailsViewController.m in Sources */, 0C39082B1FA233F900934AD1 /* SILDeviceSelectionViewModel.m in Sources */, 0C2FCB151F9A542300F4F259 /* SILBeaconViewModel.m in Sources */, @@ -5759,7 +5763,6 @@ 0C2FCB1C1F9A542300F4F259 /* SILDebugAdvDetailCollectionViewCell.m in Sources */, 1E1457F7266E0555009792C2 /* SILThroughputPeripheralManager.swift in Sources */, 20513262270365A800C27B92 /* SettingsViewCell.swift in Sources */, - 80066DD4276260C9007A861C /* SILWifiCommissioningAPCellView.swift in Sources */, 1EC1F227260CEAC000508552 /* SILGATT4_8TestCase.swift in Sources */, 0C2FCB1D1F9A542300F4F259 /* SILHealthThermometerAppViewController.m in Sources */, 0C2FCB1E1F9A542300F4F259 /* SILProximityCalculator.m in Sources */, @@ -5772,25 +5775,23 @@ 0C2FCB1F1F9A542300F4F259 /* SILDoubleKeyDictionaryPair.m in Sources */, 1E4DB3B6266A720600405BD2 /* SILGattConfiguratorDescriptorTitleCellView.swift in Sources */, 1E1A43C1246EA3CB0052DE8D /* SILAdTypeCBPeripheralDecoder.swift in Sources */, - 80066DF227626100007A861C /* SILWifiCommissioningSecurityType.swift in Sources */, 1EFC76A626AEDFA40035594E /* SILGattConfiguratorDescriptorTitleCellViewModel.swift in Sources */, 8052147E255A80F40021385F /* SILSortTypeViewCell.swift in Sources */, 1E586CE023FBFEF900E2C385 /* SILBrowserSavedSearches.m in Sources */, 1EFC766026AEDF770035594E /* SILGattConfigurationEntity+SILGattXMLExportable.swift in Sources */, 0C2FCB211F9A542300F4F259 /* SILBluetoothEnumerationModel.m in Sources */, + 80B5FFAA275F9148008F08A8 /* SILDot.swift in Sources */, 1E4DB3AD266A720600405BD2 /* SILCreateGattServiceViewController.swift in Sources */, 2051323F270365A800C27B92 /* MotionCell.swift in Sources */, 20513223270365A800C27B92 /* Throttle.swift in Sources */, - 80066E2327626178007A861C /* SILPeripheralDelegate.swift in Sources */, - 80066DD5276260C9007A861C /* SILWifiCommissioningViewController.swift in Sources */, 1E90FFE426861F01008EFADA /* SILIOPFileWriter.swift in Sources */, 0C2FCB221F9A542300F4F259 /* RSSISliderTableViewCell.swift in Sources */, 1EFC766326AEDF770035594E /* SILGattPropertyMarker.swift in Sources */, 0C2FCB241F9A542300F4F259 /* SILBGBeaconViewModel.m in Sources */, - 80066DD9276260C9007A861C /* SILWifiCommissioningPasswordPopup.swift in Sources */, 20513219270365A800C27B92 /* RoundView.swift in Sources */, 80671D73272008F5009B6284 /* SILThunderboardDeviceSelectionViewController.swift in Sources */, 1E26EC97255019E0002FFAAB /* SILIntrinsicTableView.swift in Sources */, + 80B5FF8D275F911E008F08A8 /* SILWifiCommissioningConnectedAPCellViewModel.swift in Sources */, 4C2C63382409242D0080CE76 /* SILFavoritePeripheral.swift in Sources */, 807B13A8252335A50056CFCC /* SILDebugCharacteristicEncodingFieldEntryCell.m in Sources */, 20513257270365A800C27B92 /* EnvironmentDemoViewModel.swift in Sources */, @@ -5824,6 +5825,7 @@ 1E4DB3B9266A720600405BD2 /* SILGattConfiguratorDetailsViewController.swift in Sources */, 4C3BA28B240D599200CF3268 /* SILBrowserMappingsSegmentedControl.swift in Sources */, 0C2FCB2F1F9A542300F4F259 /* SILCharacteristicTableModel.m in Sources */, + 80B5FF8A275F911E008F08A8 /* SILWifiCommissioningSecurityType.swift in Sources */, 20513242270365A800C27B92 /* SwitchStatusCell.swift in Sources */, 1EC1F320260CF4B300508552 /* SILIOPTester_Test6.swift in Sources */, 1E14580F266E05CF009792C2 /* SILThroughputViewController.swift in Sources */, @@ -5878,7 +5880,6 @@ 1E90F5E42473E73E0013AABD /* SILDebugServicesMenuViewController.swift in Sources */, 1EC1F1DB260CE95900508552 /* SILDiscoverFirmwareInfo.swift in Sources */, 2F0DE91D258B7F4D00BEFF76 /* SILContextMenu.swift in Sources */, - 80066DD6276260C9007A861C /* SILWifiCommissioningConnectedAPCellView.swift in Sources */, 1EFC76AA26AEDFA40035594E /* SILCreateGattDescriptorViewModel.swift in Sources */, 1EC1F258260CEB1C00508552 /* SILGATT5_5TestCase.swift in Sources */, 1E6CBCF92588AE3500B11648 /* SILExitAdvertiserPopupViewController.swift in Sources */, @@ -5900,6 +5901,7 @@ 1EFC76A726AEDFA40035594E /* SILGattConfiguratorCharacteristicShadowCellViewModel.swift in Sources */, 0C6745FF1FAC033F0032CBF5 /* SILCentralManager.m in Sources */, 0C2FCB471F9A542300F4F259 /* CBService+Categories.m in Sources */, + 80B5FF9F275F912F008F08A8 /* SILWifiCommissioningConnectedAPCellView.swift in Sources */, 1E26EC85255019E0002FFAAB /* SILAdvertiserCellView.swift in Sources */, 13ACBA87256FB1D400D3EE11 /* SILRangeTestAppContainerViewController.swift in Sources */, 1E26EC9C255019E0002FFAAB /* SILAdvertiserAdd16BitServiceDialogViewController.swift in Sources */, @@ -5928,6 +5930,7 @@ 1E26ECB925501A0A002FFAAB /* SILAdvertiserHomeViewModel.swift in Sources */, 20513252270365A800C27B92 /* NavBar.swift in Sources */, 1EFC76AC26AEDFA40035594E /* SILDefaultDescriptorsHelper.swift in Sources */, + 80B5FF9D275F912F008F08A8 /* SILWifiCommissioningAPCellView.swift in Sources */, 20513214270365A800C27B92 /* StrengthCell.swift in Sources */, 1E4D8F6926035FE000924430 /* StringExtension.swift in Sources */, 133D39522554089500BFB484 /* SILContextMenuViewController.swift in Sources */, @@ -5944,6 +5947,7 @@ 1EEFB2242524B13A00DD2DD7 /* SILCharacteristicWriteEnumOptionsTableViewController.swift in Sources */, 20513246270365A800C27B92 /* SimulatedMotionDemoConnection.swift in Sources */, 1E4D8F6526035FE000924430 /* UIDeviceExtension.swift in Sources */, + 80B5FE81275F900B008F08A8 /* SILPeripheralDelegate.swift in Sources */, 205131F6270365A800C27B92 /* BleManager.swift in Sources */, 0C2FCB4E1F9A542300F4F259 /* SILDebugCharacteristicEnumerationFieldTableViewCell.m in Sources */, 1E26EC37254B1528002FFAAB /* SILShadowView.m in Sources */, @@ -5965,6 +5969,7 @@ 0C2FCB521F9A542300F4F259 /* SILOTAFirmwareUpdate.m in Sources */, 20513268270365A800C27B92 /* RGBCell.swift in Sources */, 1E4D8F5B26035FE000924430 /* SILIOPTesterViewController.swift in Sources */, + 80B5FFA0275F912F008F08A8 /* SILWifiCommissioningDisconnectPopup.swift in Sources */, 20513213270365A800C27B92 /* UIDevice+extensions.swift in Sources */, 2051320E270365A800C27B92 /* DemoConfiguration.swift in Sources */, 1E56B2222636EF96004F3EA6 /* SILIOPSecurityTestHelper.swift in Sources */, @@ -5978,11 +5983,11 @@ 1E26EC91255019E0002FFAAB /* SILDropDownCellView.swift in Sources */, 20513273270365A800C27B92 /* DeviceTransportDelegate.swift in Sources */, 1E48A1E92484E27300C188C0 /* SILAnimatedUIButton.swift in Sources */, + 80B5FF88275F911E008F08A8 /* SILTimeoutTimer.swift in Sources */, 0C08FD5820CB1CA90016CABC /* SILConnectedLightingViewController.m in Sources */, 1EFC770C26AEE1D60035594E /* SILCharacteristicWriteViewModel.swift in Sources */, 807B13D7252347390056CFCC /* SILEncodingTextField.m in Sources */, 20513259270365A800C27B92 /* Style.swift in Sources */, - 80066DF327626100007A861C /* SILWifiCommissioningAPCellViewModel.swift in Sources */, 0C2FCB551F9A542300F4F259 /* SILCharacteristicFieldBuilder.m in Sources */, 1E26EC83255019E0002FFAAB /* SILAdvertiserAdd128BitServiceDialogViewController.swift in Sources */, 0C2FCB561F9A542300F4F259 /* SILApp.m in Sources */, @@ -5990,7 +5995,6 @@ 1E6AF80123CDB32800EE8280 /* SILBrowserConnectionsViewController.m in Sources */, 1E4DB3B8266A720600405BD2 /* SILGattConfiguratorDetailsWireframe.swift in Sources */, 9B44736125139C5900355E0A /* SILExitPopupViewController.m in Sources */, - 80066DE1276260ED007A861C /* SILDot.swift in Sources */, 205131EC270365A800C27B92 /* DeviceConnection.swift in Sources */, 1E1457F5266E0555009792C2 /* SILThroughputPeripheral.swift in Sources */, 2051326C270365A800C27B92 /* DemoConnection.swift in Sources */, @@ -6046,10 +6050,8 @@ 1EFC765D26AEDF770035594E /* SILGattConfiguratorExportValueHelper.swift in Sources */, 1EFC76A926AEDFA40035594E /* SILCreateGattServiceViewModel.swift in Sources */, 4C2CB437240E798D0079040D /* Array+Extensions.swift in Sources */, - 80066DF427626100007A861C /* SILWifiCommissioningViewModel.swift in Sources */, 0C2FCB631F9A542300F4F259 /* SILOTAFirmwareUpdateManager.m in Sources */, 0C2FCB641F9A542300F4F259 /* SILOTAProgressViewController.m in Sources */, - 80066DF527626100007A861C /* SILWifiCommissioningConnectedAPCellViewModel.swift in Sources */, 1EFC766C26AEDF770035594E /* SILGattImportHelper.swift in Sources */, 20513248270365A800C27B92 /* UITableView+Extensions.swift in Sources */, 4C2CB431240E5A110079040D /* SILServiceMap.swift in Sources */, @@ -6100,7 +6102,6 @@ 802A28AA27566F9D00E701A1 /* SILThunderboardPeripheralGATTDatabase.swift in Sources */, 0C2FCB741F9A542300F4F259 /* UIView+SILAnimations.m in Sources */, 0C2FCB751F9A542300F4F259 /* SILValueFieldRowModel.m in Sources */, - 80066DD7276260C9007A861C /* SILWifiCommissioningDisconnectPopup.swift in Sources */, 0C2FCB761F9A542300F4F259 /* SILEnumerationFieldRowModel.m in Sources */, 205131FB270365A800C27B92 /* ColorSlider.swift in Sources */, 0C2FCB771F9A542300F4F259 /* Int+Extensions.swift in Sources */, @@ -6117,6 +6118,7 @@ 1E4DB3B0266A720600405BD2 /* SILGattConfiguratorCharacteristicCellView.swift in Sources */, 1E4D8F6A26035FE000924430 /* DateExtension.swift in Sources */, 0C2FCB791F9A542300F4F259 /* SILOTAHUDView.m in Sources */, + 8012744E278C30E5006E12E5 /* Data+ManufacturerData.swift in Sources */, 80521478255A7A510021385F /* SILSortViewController.swift in Sources */, 1EFC767026AEDF770035594E /* SILGattAssignedNumberEntity.swift in Sources */, 20513245270365A800C27B92 /* MotionDemoConnection.swift in Sources */, @@ -6125,16 +6127,16 @@ 0C2FCB7D1F9A542300F4F259 /* SILBluetoothCharacteristicModel.m in Sources */, 0C2FCB7E1F9A542300F4F259 /* SILDiscoveredPeripheral.m in Sources */, 1EC1F27B260CEC5D00508552 /* SILOTANonAckTestCase.swift in Sources */, - 80066DC42762608E007A861C /* String+Subscript.swift in Sources */, 1EC1F25F260CEB2800508552 /* SILGATT5_6TestCase.swift in Sources */, + 80B5FF9E275F912F008F08A8 /* SILWifiCommissioningViewController.swift in Sources */, 20513264270365A800C27B92 /* EnvironmentDemoCollectionViewLayout.swift in Sources */, 0C2FCB7F1F9A542300F4F259 /* SILBluetoothServiceModel.m in Sources */, 0C2FCB801F9A542300F4F259 /* SILWeakNotificationPair.m in Sources */, - 80066DEF27626100007A861C /* SILWifiCommissioningPeripheralGATTDatabase.swift in Sources */, 0C2FCB811F9A542300F4F259 /* GradientSlider.swift in Sources */, - 80066ECB2763534A007A861C /* String+VersionCompare.swift in Sources */, + 80B5FF8B275F911E008F08A8 /* SILWifiCommissioningAPCellViewModel.swift in Sources */, 1EC1F20D260CEA8100508552 /* SILGATT4_4TestCase.swift in Sources */, 1E26EC51255019A1002FFAAB /* SILAdvertiserSettings.swift in Sources */, + 80066FF72768AFB6007A861C /* String+VersionCompare.swift in Sources */, 1E4DB385266A71E000405BD2 /* SILBrowserDetailsTabBarController.swift in Sources */, 0C2FCB831F9A542300F4F259 /* main.m in Sources */, 1E26EC96255019E0002FFAAB /* SILAdvertiserDetailsViewController.swift in Sources */, @@ -6152,6 +6154,7 @@ 4C2CB435240E725C0079040D /* SILMap.swift in Sources */, 1E4DB3AA266A720600405BD2 /* SILGattConfiguratorHomeViewController.swift in Sources */, 9BCA4F122514C2BB00E3AADD /* SILBrowserSettings.m in Sources */, + 80B5FFA2275F912F008F08A8 /* SILWifiCommissioningPasswordPopup.swift in Sources */, 1E26ECC125501A0A002FFAAB /* SILAdvertiserAdd16BitServiceDialogViewModel.swift in Sources */, 0C2FCB891F9A542300F4F259 /* SILBluetoothBitModel.m in Sources */, 1E4DB374266A71AE00405BD2 /* SILHomeTabBar.swift in Sources */, @@ -6173,6 +6176,7 @@ 1EFC76A026AEDFA40035594E /* SILGattConfiguratorCharacteristicCellViewModel.swift in Sources */, 0C2FCB8C1F9A542300F4F259 /* GradientView.swift in Sources */, 20513260270365A800C27B92 /* AsyncOperation.swift in Sources */, + 80B5FF87275F911E008F08A8 /* SILWifiCommissioningPeripheralGATTDatabase.swift in Sources */, 0C2FCB8E1F9A542300F4F259 /* KZBehaviour.m in Sources */, 0C2FCB8F1F9A542300F4F259 /* SILDescriptorTableModel.m in Sources */, 80671D8127217A54009B6284 /* SILDeviceSelectionViewController.swift in Sources */, @@ -6611,7 +6615,6 @@ isa = XCBuildConfiguration; baseConfigurationReference = 4491900FB788A5F0E74824C6 /* Pods-BlueGecko.debug.xcconfig */; buildSettings = { - ARCHS = "$(ARCHS_STANDARD)"; ASSETCATALOG_COMPILER_APPICON_NAME = AppIconBlueGecko; ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; CLANG_ENABLE_MODULES = YES; @@ -6621,22 +6624,18 @@ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_RESOURCE_RULES_PATH = ""; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 26; + CURRENT_PROJECT_VERSION = 45; DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = 7FEJ9Q5RV7; + DEVELOPMENT_TEAM = 52444FG85C; DISPLAY_NAME = "EFR Connect"; ENABLE_BITCODE = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/SiliconLabsApp/External", - ); GCC_PREFIX_HEADER = "$(SRCROOT)/SiliconLabsApp/SupportingFiles/BlueGecko/BlueGecko.pch"; "GCC_PREPROCESSOR_DEFINITIONS[arch=*]" = "$(inherited)"; INFOPLIST_FILE = "$(SRCROOT)/SiliconLabsApp/SupportingFiles/BlueGecko/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MARKETING_VERSION = 2.3.1; - PRODUCT_BUNDLE_IDENTIFIER = com.comarch.technologies.siliconlabs.gecko; + MARKETING_VERSION = 2.4.1; + PRODUCT_BUNDLE_IDENTIFIER = com.silabs.BlueGeckoDemoApp; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_OBJC_BRIDGING_HEADER = "SiliconLabsApp-Bridging-Header.h"; @@ -6650,7 +6649,6 @@ isa = XCBuildConfiguration; baseConfigurationReference = 9D503111803F12397900799A /* Pods-BlueGecko.release.xcconfig */; buildSettings = { - ARCHS = "$(ARCHS_STANDARD)"; ASSETCATALOG_COMPILER_APPICON_NAME = AppIconBlueGecko; ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; CLANG_ENABLE_MODULES = YES; @@ -6660,20 +6658,16 @@ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_RESOURCE_RULES_PATH = ""; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 26; + CURRENT_PROJECT_VERSION = 45; DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; + DEVELOPMENT_TEAM = 52444FG85C; DISPLAY_NAME = "EFR Connect"; ENABLE_BITCODE = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/SiliconLabsApp/External", - ); GCC_PREFIX_HEADER = "$(SRCROOT)/SiliconLabsApp/SupportingFiles/BlueGecko/BlueGecko.pch"; INFOPLIST_FILE = "$(SRCROOT)/SiliconLabsApp/SupportingFiles/BlueGecko/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MARKETING_VERSION = 2.3.1; + MARKETING_VERSION = 2.4.1; PRODUCT_BUNDLE_IDENTIFIER = com.silabs.BlueGeckoDemoApp; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; diff --git a/SiliconLabsApp/Categories/Data+Helpers.swift b/SiliconLabsApp/Categories/Data+Helpers.swift index 3cff7e35..6800be77 100644 --- a/SiliconLabsApp/Categories/Data+Helpers.swift +++ b/SiliconLabsApp/Categories/Data+Helpers.swift @@ -21,6 +21,10 @@ extension Data { return value } + var hexDescription: String { + return reduce("") {$0 + String(format: "%02x", $1)} + } + fileprivate func convertData(data: Data) -> [UInt8] { return [UInt8](data) } @@ -34,8 +38,4 @@ extension Data { } return value } - - var hexDescription: String { - return reduce("") {$0 + String(format: "%02x", $1)} - } } diff --git a/SiliconLabsApp/Categories/Data+ManufacturerData.swift b/SiliconLabsApp/Categories/Data+ManufacturerData.swift new file mode 100644 index 00000000..5647cacc --- /dev/null +++ b/SiliconLabsApp/Categories/Data+ManufacturerData.swift @@ -0,0 +1,36 @@ +// +// SILManufacturerData.swift +// BlueGecko +// +// Created by Grzegorz Janosz on 10/01/2022. +// Copyright © 2022 SiliconLabs. All rights reserved. +// + +import Foundation + +extension Data { + func checkManufacturerData(manufacturerIdentifier: Int, manufacturerData expected: [UInt8], manufacturerDataMask mask: [UInt8]? = nil) -> Bool { + let length = self.bytes.count + guard length > 2 else { + return false + } + let idBytes = Data(bytes: self.bytes[0...1]) + guard idBytes.integerValueFromData() == manufacturerIdentifier else { + return false + } + + let data = Data(bytes: self.bytes[2...(length - 1)]) + guard data.bytes.count == expected.count else { + return false + } + + let mask = mask ?? Array(repeating: 1, count: expected.count) + let zipped = Array(zip(expected, mask)) + for (ind, (expectedByte, maskByte)) in zipped.enumerated() { + if maskByte != 0 && data.bytes[ind] != expectedByte { + return false + } + } + return true + } +} diff --git a/SiliconLabsApp/Models/GattConfigurator/SILGattConfiguratorServiceHelper.swift b/SiliconLabsApp/Models/GattConfigurator/SILGattConfiguratorServiceHelper.swift index f45fc74b..c6685f44 100644 --- a/SiliconLabsApp/Models/GattConfigurator/SILGattConfiguratorServiceHelper.swift +++ b/SiliconLabsApp/Models/GattConfigurator/SILGattConfiguratorServiceHelper.swift @@ -175,7 +175,7 @@ class SILGattConfiguratorServiceHelper: SILGattConfiguratorServiceHelperType { } func peripheralManager(_ peripheral: CBPeripheralManager, didReceiveRead request: CBATTRequest) { - if let characteristic = self.characteristicMap[request.characteristic.service.uuid]?[request.characteristic.uuid], let value = characteristic.value { + if let service = request.characteristic.service, let characteristic = self.characteristicMap[service.uuid]?[request.characteristic.uuid], let value = characteristic.value { if request.offset > characteristic.value?.count ?? 0 { peripheral.respond(to: request, withResult: .invalidOffset) return @@ -191,7 +191,7 @@ class SILGattConfiguratorServiceHelper: SILGattConfiguratorServiceHelperType { func peripheralManager(_ peripheral: CBPeripheralManager, didReceiveWrite requests: [CBATTRequest]) { for request in requests { - if let characteristic = self.characteristicMap[request.characteristic.service.uuid]?[request.characteristic.uuid] { + if let service = request.characteristic.service, let characteristic = self.characteristicMap[service.uuid]?[request.characteristic.uuid] { if request.offset > characteristic.value?.count ?? 0 { peripheral.respond(to: request, withResult: .invalidOffset) return @@ -206,7 +206,7 @@ class SILGattConfiguratorServiceHelper: SILGattConfiguratorServiceHelperType { } func peripheralManager(_ peripheral: CBPeripheralManager, central: CBCentral, didSubscribeTo characteristic: CBCharacteristic) { - if let characteristic = self.characteristicMap[characteristic.service.uuid]?[characteristic.uuid] { + if let service = characteristic.service, let characteristic = self.characteristicMap[service.uuid]?[characteristic.uuid] { if let value = characteristic.value { peripheral.updateValue(value, for: characteristic, onSubscribedCentrals: [central]) } @@ -215,7 +215,7 @@ class SILGattConfiguratorServiceHelper: SILGattConfiguratorServiceHelperType { } func peripheralManager(_ peripheral: CBPeripheralManager, central: CBCentral, didUnsubscribeFrom characteristic: CBCharacteristic) { - if let characteristic = self.characteristicMap[characteristic.service.uuid]?[characteristic.uuid] { + if let service = characteristic.service, let characteristic = self.characteristicMap[service.uuid]?[characteristic.uuid] { print("Subscribed centrals of characteristic after unsubscription ", characteristic.subscribedCentrals ?? "") } } diff --git a/SiliconLabsApp/Storyboards/DemoApps/SILAppTypeConnectedLighting.storyboard b/SiliconLabsApp/Storyboards/DemoApps/SILAppTypeConnectedLighting.storyboard index e2dfc11b..e416edbe 100644 --- a/SiliconLabsApp/Storyboards/DemoApps/SILAppTypeConnectedLighting.storyboard +++ b/SiliconLabsApp/Storyboards/DemoApps/SILAppTypeConnectedLighting.storyboard @@ -1,9 +1,9 @@ - + - + @@ -116,7 +116,7 @@