diff --git a/.github/workflows/dotnet.yml b/.github/workflows/ShimmerBLEAPIUnitTest.yml similarity index 95% rename from .github/workflows/dotnet.yml rename to .github/workflows/ShimmerBLEAPIUnitTest.yml index fffa54f8..1507d51c 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/ShimmerBLEAPIUnitTest.yml @@ -1,4 +1,4 @@ -name: .NET +name: ShimmerBLEAPIUnitTest on: push: diff --git a/.github/workflows/ShimmerBluetoothAPIUnitTest.yml b/.github/workflows/ShimmerBluetoothAPIUnitTest.yml new file mode 100644 index 00000000..5a069ce6 --- /dev/null +++ b/.github/workflows/ShimmerBluetoothAPIUnitTest.yml @@ -0,0 +1,33 @@ +name: ShimmerBluetoothAPIUnitTest + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + build: + + runs-on: windows-latest + + steps: + - uses: actions/checkout@v2 + - name: Setup .NET + uses: actions/setup-dotnet@v1 + with: + dotnet-version: 5.0.x + - name: Setup VSTest Path + uses: darenm/Setup-VSTest@v1 + - name: Setup MSBuild Path + uses: microsoft/setup-msbuild@v1 + - name: Setup Nuget + uses: Nuget/setup-nuget@v1.0.5 + - name: Restore nuget packages + run: nuget restore ./ShimmerAPI/ShimmerAPITest.sln + - name: Build + run: msbuild ./ShimmerAPI/ShimmerAPITest.sln + - name: VSTest + run: vstest.console.exe ./ShimmerAPI/ShimmerUnitTests/bin/Debug/ShimmerBluetoothTests.dll + + diff --git a/.github/workflows/dotnet472.yml b/.github/workflows/dotnet472.yml deleted file mode 100644 index 7d743e74..00000000 --- a/.github/workflows/dotnet472.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: .NET - -on: - push: - branches: [ master ] - pull_request: - branches: [ master ] - -jobs: - build: - - runs-on: windows-latest - - steps: - - uses: actions/checkout@v2 - - name: Setup MSBuild Path - uses: microsoft/setup-msbuild@v1 - - name: Setup NuGet - uses: NuGet/setup-nuget@v1.0.2 - - name: Build - run: msbuild ./ShimmerAPI/ShimmerAPITest.sln - - name: Test - run: msbuild test ./ShimmerAPI/ShimmerAPITest.sln --no-build --verbosity normal - diff --git a/ShimmerAPI/ShimmerAPI.sln b/ShimmerAPI/ShimmerAPI.sln index dfc7f51c..6aef3ac5 100644 --- a/ShimmerAPI/ShimmerAPI.sln +++ b/ShimmerAPI/ShimmerAPI.sln @@ -25,6 +25,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Shimmer32FeetAPI", "..\Shim EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ShimmerAPI", "ShimmerAPI\ShimmerAPI.csproj", "{6E320423-1D88-47EE-97BA-51113E538D33}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ShimmerUnitTests", "ShimmerUnitTests\ShimmerUnitTests.csproj", "{30C7273A-87CC-499F-9206-48F89082AE0C}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -304,6 +306,30 @@ Global {6E320423-1D88-47EE-97BA-51113E538D33}.ShimmerAPIBasic|x64.Build.0 = Debug|Any CPU {6E320423-1D88-47EE-97BA-51113E538D33}.ShimmerAPIBasic|x86.ActiveCfg = Debug|Any CPU {6E320423-1D88-47EE-97BA-51113E538D33}.ShimmerAPIBasic|x86.Build.0 = Debug|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.Debug|x64.ActiveCfg = Debug|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.Debug|x64.Build.0 = Debug|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.Debug|x86.ActiveCfg = Debug|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.Debug|x86.Build.0 = Debug|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.Release|Any CPU.Build.0 = Release|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.Release|x64.ActiveCfg = Release|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.Release|x64.Build.0 = Release|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.Release|x86.ActiveCfg = Release|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.Release|x86.Build.0 = Release|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.ShimmerAPI|Any CPU.ActiveCfg = Debug|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.ShimmerAPI|Any CPU.Build.0 = Debug|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.ShimmerAPI|x64.ActiveCfg = Debug|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.ShimmerAPI|x64.Build.0 = Debug|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.ShimmerAPI|x86.ActiveCfg = Debug|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.ShimmerAPI|x86.Build.0 = Debug|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.ShimmerAPIBasic|Any CPU.ActiveCfg = Debug|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.ShimmerAPIBasic|Any CPU.Build.0 = Debug|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.ShimmerAPIBasic|x64.ActiveCfg = Debug|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.ShimmerAPIBasic|x64.Build.0 = Debug|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.ShimmerAPIBasic|x86.ActiveCfg = Debug|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.ShimmerAPIBasic|x86.Build.0 = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/ShimmerAPI/ShimmerAPITest.sln b/ShimmerAPI/ShimmerAPITest.sln new file mode 100644 index 00000000..370ec5f2 --- /dev/null +++ b/ShimmerAPI/ShimmerAPITest.sln @@ -0,0 +1,81 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30907.101 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ShimmerAPI", "ShimmerAPI\ShimmerAPI.csproj", "{6E320423-1D88-47EE-97BA-51113E538D33}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ShimmerUnitTests", "ShimmerUnitTests\ShimmerUnitTests.csproj", "{30C7273A-87CC-499F-9206-48F89082AE0C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + ShimmerAPI|Any CPU = ShimmerAPI|Any CPU + ShimmerAPI|x64 = ShimmerAPI|x64 + ShimmerAPI|x86 = ShimmerAPI|x86 + ShimmerAPIBasic|Any CPU = ShimmerAPIBasic|Any CPU + ShimmerAPIBasic|x64 = ShimmerAPIBasic|x64 + ShimmerAPIBasic|x86 = ShimmerAPIBasic|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {6E320423-1D88-47EE-97BA-51113E538D33}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6E320423-1D88-47EE-97BA-51113E538D33}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6E320423-1D88-47EE-97BA-51113E538D33}.Debug|x64.ActiveCfg = Debug|Any CPU + {6E320423-1D88-47EE-97BA-51113E538D33}.Debug|x64.Build.0 = Debug|Any CPU + {6E320423-1D88-47EE-97BA-51113E538D33}.Debug|x86.ActiveCfg = Debug|Any CPU + {6E320423-1D88-47EE-97BA-51113E538D33}.Debug|x86.Build.0 = Debug|Any CPU + {6E320423-1D88-47EE-97BA-51113E538D33}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6E320423-1D88-47EE-97BA-51113E538D33}.Release|Any CPU.Build.0 = Release|Any CPU + {6E320423-1D88-47EE-97BA-51113E538D33}.Release|x64.ActiveCfg = Release|Any CPU + {6E320423-1D88-47EE-97BA-51113E538D33}.Release|x64.Build.0 = Release|Any CPU + {6E320423-1D88-47EE-97BA-51113E538D33}.Release|x86.ActiveCfg = Release|Any CPU + {6E320423-1D88-47EE-97BA-51113E538D33}.Release|x86.Build.0 = Release|Any CPU + {6E320423-1D88-47EE-97BA-51113E538D33}.ShimmerAPI|Any CPU.ActiveCfg = Debug|Any CPU + {6E320423-1D88-47EE-97BA-51113E538D33}.ShimmerAPI|Any CPU.Build.0 = Debug|Any CPU + {6E320423-1D88-47EE-97BA-51113E538D33}.ShimmerAPI|x64.ActiveCfg = Debug|Any CPU + {6E320423-1D88-47EE-97BA-51113E538D33}.ShimmerAPI|x64.Build.0 = Debug|Any CPU + {6E320423-1D88-47EE-97BA-51113E538D33}.ShimmerAPI|x86.ActiveCfg = Debug|Any CPU + {6E320423-1D88-47EE-97BA-51113E538D33}.ShimmerAPI|x86.Build.0 = Debug|Any CPU + {6E320423-1D88-47EE-97BA-51113E538D33}.ShimmerAPIBasic|Any CPU.ActiveCfg = Debug|Any CPU + {6E320423-1D88-47EE-97BA-51113E538D33}.ShimmerAPIBasic|Any CPU.Build.0 = Debug|Any CPU + {6E320423-1D88-47EE-97BA-51113E538D33}.ShimmerAPIBasic|x64.ActiveCfg = Debug|Any CPU + {6E320423-1D88-47EE-97BA-51113E538D33}.ShimmerAPIBasic|x64.Build.0 = Debug|Any CPU + {6E320423-1D88-47EE-97BA-51113E538D33}.ShimmerAPIBasic|x86.ActiveCfg = Debug|Any CPU + {6E320423-1D88-47EE-97BA-51113E538D33}.ShimmerAPIBasic|x86.Build.0 = Debug|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.Debug|x64.ActiveCfg = Debug|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.Debug|x64.Build.0 = Debug|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.Debug|x86.ActiveCfg = Debug|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.Debug|x86.Build.0 = Debug|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.Release|Any CPU.Build.0 = Release|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.Release|x64.ActiveCfg = Release|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.Release|x64.Build.0 = Release|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.Release|x86.ActiveCfg = Release|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.Release|x86.Build.0 = Release|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.ShimmerAPI|Any CPU.ActiveCfg = Debug|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.ShimmerAPI|Any CPU.Build.0 = Debug|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.ShimmerAPI|x64.ActiveCfg = Debug|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.ShimmerAPI|x64.Build.0 = Debug|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.ShimmerAPI|x86.ActiveCfg = Debug|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.ShimmerAPI|x86.Build.0 = Debug|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.ShimmerAPIBasic|Any CPU.ActiveCfg = Debug|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.ShimmerAPIBasic|Any CPU.Build.0 = Debug|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.ShimmerAPIBasic|x64.ActiveCfg = Debug|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.ShimmerAPIBasic|x64.Build.0 = Debug|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.ShimmerAPIBasic|x86.ActiveCfg = Debug|Any CPU + {30C7273A-87CC-499F-9206-48F89082AE0C}.ShimmerAPIBasic|x86.Build.0 = Debug|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {0118CC67-3FFA-4D59-B6DD-22E5138CDBBC} + EndGlobalSection +EndGlobal diff --git a/ShimmerAPI/ShimmerBluetoothTests/ShimmerBluetoothTests.csproj b/ShimmerAPI/ShimmerBluetoothTests/ShimmerBluetoothTests.csproj index b28387ce..7cdb20c0 100644 --- a/ShimmerAPI/ShimmerBluetoothTests/ShimmerBluetoothTests.csproj +++ b/ShimmerAPI/ShimmerBluetoothTests/ShimmerBluetoothTests.csproj @@ -56,12 +56,9 @@ - - - diff --git a/ShimmerAPI/ShimmerUnitTests/Properties/AssemblyInfo.cs b/ShimmerAPI/ShimmerUnitTests/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..c80e005f --- /dev/null +++ b/ShimmerAPI/ShimmerUnitTests/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ShimmerBluetoothTests")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("ShimmerBluetoothTests")] +[assembly: AssemblyCopyright("Copyright © 2018")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("f5dd4aa6-b826-49cb-96e2-a6dae01a1c47")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/ShimmerAPI/ShimmerBluetoothTests/ShimmerBluetoothReadData.cs b/ShimmerAPI/ShimmerUnitTests/ShimmerBluetoothReadData.cs similarity index 100% rename from ShimmerAPI/ShimmerBluetoothTests/ShimmerBluetoothReadData.cs rename to ShimmerAPI/ShimmerUnitTests/ShimmerBluetoothReadData.cs diff --git a/ShimmerAPI/ShimmerBluetoothTests/ShimmerReadDataPacketTest.cs b/ShimmerAPI/ShimmerUnitTests/ShimmerReadDataPacketTest.cs similarity index 100% rename from ShimmerAPI/ShimmerBluetoothTests/ShimmerReadDataPacketTest.cs rename to ShimmerAPI/ShimmerUnitTests/ShimmerReadDataPacketTest.cs diff --git a/ShimmerAPI/ShimmerBluetoothTests/ShimmerTest.cs b/ShimmerAPI/ShimmerUnitTests/ShimmerTest.cs similarity index 100% rename from ShimmerAPI/ShimmerBluetoothTests/ShimmerTest.cs rename to ShimmerAPI/ShimmerUnitTests/ShimmerTest.cs diff --git a/ShimmerAPI/ShimmerUnitTests/ShimmerUnitTests.csproj b/ShimmerAPI/ShimmerUnitTests/ShimmerUnitTests.csproj new file mode 100644 index 00000000..cb3d2084 --- /dev/null +++ b/ShimmerAPI/ShimmerUnitTests/ShimmerUnitTests.csproj @@ -0,0 +1,100 @@ + + + + Debug + AnyCPU + {30C7273A-87CC-499F-9206-48F89082AE0C} + Library + Properties + ShimmerBluetoothTests + ShimmerBluetoothTests + v4.7.2 + 512 + {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 10.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + $(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages + False + UnitTest + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + ..\packages\System.IO.Ports.5.0.1\lib\net461\System.IO.Ports.dll + + + + + + + + + + + + False + + + + + + + + + + + + + + + + {6e320423-1d88-47ee-97ba-51113e538d33} + ShimmerAPI + + + + + + + False + + + False + + + False + + + False + + + + + + + + \ No newline at end of file diff --git a/ShimmerAPI/ShimmerUnitTests/packages.config b/ShimmerAPI/ShimmerUnitTests/packages.config new file mode 100644 index 00000000..9d2e8c4e --- /dev/null +++ b/ShimmerAPI/ShimmerUnitTests/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/ShimmerBLE/ShimmerBLEAPI/FodyWeavers.xml b/ShimmerBLE/ShimmerBLEAPI/FodyWeavers.xml index 39ad1cbf..4e68ed1a 100644 --- a/ShimmerBLE/ShimmerBLEAPI/FodyWeavers.xml +++ b/ShimmerBLE/ShimmerBLEAPI/FodyWeavers.xml @@ -1,5 +1,4 @@  - \ No newline at end of file diff --git a/ShimmerBLE/ShimmerBLEAPI/FodyWeavers.xsd b/ShimmerBLE/ShimmerBLEAPI/FodyWeavers.xsd index a608e3f5..69dbe488 100644 --- a/ShimmerBLE/ShimmerBLEAPI/FodyWeavers.xsd +++ b/ShimmerBLE/ShimmerBLEAPI/FodyWeavers.xsd @@ -1,6 +1,6 @@  - + @@ -11,6 +11,16 @@ Used to control if the On_PropertyName_Changed feature is enabled. + + + Used to control if the Dependent properties feature is enabled. + + + + + Used to control if the IsChanged property feature is enabled. + + Used to change the name of the method that fires the notify event. This is a string that accepts multiple values in a comma separated form. @@ -31,17 +41,32 @@ Used to control if equality checks should use the static Equals method resolved from the base class. + + + Used to turn off build warnings from this weaver. + + + + + Used to turn off build warnings about mismatched On_PropertyName_Changed methods. + + - 'true' to run assembly verification on the target assembly after all weavers have been finished. + 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed. - A comma separated list of error codes that can be safely ignored in assembly verification. + A comma-separated list of error codes that can be safely ignored in assembly verification. + + + + + 'false' to turn off automatic generation of the XML Schema file. diff --git a/ShimmerBLE/ShimmerBLEAPI/ShimmerBLEAPI.csproj b/ShimmerBLE/ShimmerBLEAPI/ShimmerBLEAPI.csproj index 78e64e35..b57ee6f2 100644 --- a/ShimmerBLE/ShimmerBLEAPI/ShimmerBLEAPI.csproj +++ b/ShimmerBLE/ShimmerBLEAPI/ShimmerBLEAPI.csproj @@ -23,11 +23,11 @@ + - diff --git a/ShimmerBLE/ShimmerBLETests/ShimmerBLETests.csproj b/ShimmerBLE/ShimmerBLETests/ShimmerBLETests.csproj index 72d3dcd8..ff775d4b 100644 --- a/ShimmerBLE/ShimmerBLETests/ShimmerBLETests.csproj +++ b/ShimmerBLE/ShimmerBLETests/ShimmerBLETests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 false diff --git a/ShimmerBLE/VerisenseBLEDemoApp/VerisenseBLEDemoApp/MainPage.xaml.cs b/ShimmerBLE/VerisenseBLEDemoApp/VerisenseBLEDemoApp/MainPage.xaml.cs index 9df46711..883afaae 100644 --- a/ShimmerBLE/VerisenseBLEDemoApp/VerisenseBLEDemoApp/MainPage.xaml.cs +++ b/ShimmerBLE/VerisenseBLEDemoApp/VerisenseBLEDemoApp/MainPage.xaml.cs @@ -750,8 +750,11 @@ async void OnButtonClickedPair(object sender, EventArgs args) } LBLPairing.Text = "Pairing..."; - verisenseBLEDevice.ShimmerBLEEvent += ShimmerDevice_BLEEvent; var result = await bleManager.PairVerisenseDevice(DeviceToBePaired, new VerisenseBLEPairingKeyGenerator()); + if (verisenseBLEDevice != null) + { + verisenseBLEDevice.ShimmerBLEEvent += ShimmerDevice_BLEEvent; + } if (!result) { LBLPairing.Text = "Device Failed To Pair";