diff --git a/Common/.vs/config/applicationhost.config b/Common/.vs/config/applicationhost.config index ecc20ba7..a894c3cf 100644 --- a/Common/.vs/config/applicationhost.config +++ b/Common/.vs/config/applicationhost.config @@ -155,7 +155,7 @@ - + diff --git a/Common/Common.sln b/Common/Common.sln index c448e678..273eef2e 100644 --- a/Common/Common.sln +++ b/Common/Common.sln @@ -27,10 +27,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataPackages", "Hardware\Wa EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".Shared", ".Shared", "{26EB462B-1FAC-4CEA-A9B9-DB96CA9CC864}" ProjectSection(SolutionItems) = preProject - ..\.gitignore = ..\.gitignore Hardware\WaterMeter\Genesis\GenesisCore\configuration.json = Hardware\WaterMeter\Genesis\GenesisCore\configuration.json .shared\NlogConfig.xml = .shared\NlogConfig.xml - ..\ReSharperSettings\ReSharperSettings.DotSettings = ..\ReSharperSettings\ReSharperSettings.DotSettings .shared\SharedAssemblyInfo.cs = .shared\SharedAssemblyInfo.cs .shared\status.json = .shared\status.json EndProjectSection @@ -173,31 +171,21 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataPackages", "Hardware\Wa EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtocolCore", "Hardware\Interfaces\Protocols\ProtocolCore\ProtocolCore.csproj", "{8BDD2789-96D4-43EA-AAD7-0F49D0347998}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SIRTBroadcaster.UI", "SIRTBroadcaster.UI\SIRTBroadcaster.UI.csproj", "{2550B77D-D975-4A50-9C6A-526D4E07754D}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SIRTBroadcaster.Abstraction", "SIRTBroadcaster.Abstraction\SIRTBroadcaster.Abstraction.csproj", "{C27BA66C-C3A7-48A2-A644-CBA77E28E531}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SIRTBroadcaster.Client", "SIRTBroadcaster.Client\SIRTBroadcaster.Client.csproj", "{4221F992-599E-498C-A409-6D1E70E0A6F9}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SIRT", "SIRT", "{AF973E0E-2B44-4F1A-B1E7-77C8B4F30579}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SIRTBroadcaster.Host", "SIRTBroadcaster.Host\SIRTBroadcaster.Host.csproj", "{A9D1A99D-6E55-4394-86AD-B5C53E9225EB}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LaaProduction", "LaaProduction\LaaProduction.csproj", "{FD30EB7A-7809-4E62-9374-791D31877D6D}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CommonConsole", "CommonConsole\CommonConsole.csproj", "{AFC428F5-0141-4A3F-BEF2-470A89D972F6}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "modbus_master_csharp", "modbus_master_csharp\modbus_master_csharp.csproj", "{F14940F8-3C86-4BB7-A915-B021E4B3052D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "eRegister", "eRegister", "{FBF162DF-A4C6-41D1-9324-5517C13C658B}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "OmniPlus", "OmniPlus", "{68323534-4337-4E3A-89BC-11D8BB55343A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Protocols", "Protocols", "{1B519B0D-5E1C-4400-A8CE-F7B3CC045745}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExchangeHub", "OmniPlus\ExchangeHub\ExchangeHub.csproj", "{6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StreamingProtocol", "Hardware\WaterMeter\eRegister\Protocols\StreamingProtocol.csproj", "{B6A19B80-0F0F-434C-A754-A7712FC208B2}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OmniPlus", "OmniPlus\OmniPlus\OmniPlus.csproj", "{F8D84B9A-0FCF-4083-B067-8C39B7314152}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataPackages", "Hardware\WaterMeter\eRegister\DataPackages\DataPackages.csproj", "{C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SqlExtensions", "OmniPlus\SqlExtensions\SqlExtensions.csproj", "{B8523894-2C40-4FF0-A399-B7A91FAE45EA}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eRegisterCore", "Hardware\WaterMeter\eRegister\eRegisterCore\eRegisterCore.csproj", "{A83696BF-D8A2-4809-8424-CFE172AED5B6}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InspectionUI", "OmniPlus\InspectionUI\InspectionUI.csproj", "{01A28A70-D5E6-4898-8C22-E64400A3B80F}" EndProject Global GlobalSection(SharedMSBuildProjectFiles) = preSolution @@ -3945,262 +3933,6 @@ Global {8BDD2789-96D4-43EA-AAD7-0F49D0347998}.XP32bit|x64.Build.0 = XP32bit|x64 {8BDD2789-96D4-43EA-AAD7-0F49D0347998}.XP32bit|x86.ActiveCfg = XP32bit|x86 {8BDD2789-96D4-43EA-AAD7-0F49D0347998}.XP32bit|x86.Build.0 = XP32bit|x86 - {2550B77D-D975-4A50-9C6A-526D4E07754D}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}._MANUAL_CONTROL|x64.ActiveCfg = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}._MANUAL_CONTROL|x64.Build.0 = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}._MANUAL_CONTROL|x86.ActiveCfg = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}._MANUAL_CONTROL|x86.Build.0 = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.COM|Any CPU.ActiveCfg = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.COM|Any CPU.Build.0 = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.COM|Mixed Platforms.ActiveCfg = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.COM|Mixed Platforms.Build.0 = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.COM|x64.ActiveCfg = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.COM|x64.Build.0 = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.COM|x86.ActiveCfg = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.COM|x86.Build.0 = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.Debug|x64.ActiveCfg = Debug|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.Debug|x64.Build.0 = Debug|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.Debug|x86.ActiveCfg = Debug|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.Debug|x86.Build.0 = Debug|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.GenesisDisplayTool_V01|Any CPU.Build.0 = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.GenesisDisplayTool_V01|Mixed Platforms.ActiveCfg = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.GenesisDisplayTool_V01|Mixed Platforms.Build.0 = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.GenesisDisplayTool_V01|x64.ActiveCfg = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.GenesisDisplayTool_V01|x64.Build.0 = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.GenesisDisplayTool_V01|x86.ActiveCfg = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.GenesisDisplayTool_V01|x86.Build.0 = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.PerformTest|Any CPU.ActiveCfg = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.PerformTest|Any CPU.Build.0 = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.PerformTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.PerformTest|Mixed Platforms.Build.0 = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.PerformTest|x64.ActiveCfg = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.PerformTest|x64.Build.0 = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.PerformTest|x86.ActiveCfg = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.PerformTest|x86.Build.0 = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.Release|Any CPU.Build.0 = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.Release|x64.ActiveCfg = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.Release|x64.Build.0 = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.Release|x86.ActiveCfg = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.Release|x86.Build.0 = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.ReleaseTest|x64.ActiveCfg = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.ReleaseTest|x64.Build.0 = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.ReleaseTest|x86.ActiveCfg = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.ReleaseTest|x86.Build.0 = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.XP32bit|Any CPU.ActiveCfg = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.XP32bit|Any CPU.Build.0 = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.XP32bit|Mixed Platforms.ActiveCfg = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.XP32bit|Mixed Platforms.Build.0 = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.XP32bit|x64.ActiveCfg = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.XP32bit|x64.Build.0 = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.XP32bit|x86.ActiveCfg = Release|Any CPU - {2550B77D-D975-4A50-9C6A-526D4E07754D}.XP32bit|x86.Build.0 = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}._MANUAL_CONTROL|x64.ActiveCfg = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}._MANUAL_CONTROL|x64.Build.0 = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}._MANUAL_CONTROL|x86.ActiveCfg = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}._MANUAL_CONTROL|x86.Build.0 = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.COM|Any CPU.ActiveCfg = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.COM|Any CPU.Build.0 = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.COM|Mixed Platforms.ActiveCfg = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.COM|Mixed Platforms.Build.0 = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.COM|x64.ActiveCfg = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.COM|x64.Build.0 = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.COM|x86.ActiveCfg = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.COM|x86.Build.0 = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.Debug|x64.ActiveCfg = Debug|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.Debug|x64.Build.0 = Debug|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.Debug|x86.ActiveCfg = Debug|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.Debug|x86.Build.0 = Debug|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.GenesisDisplayTool_V01|Any CPU.Build.0 = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.GenesisDisplayTool_V01|Mixed Platforms.ActiveCfg = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.GenesisDisplayTool_V01|Mixed Platforms.Build.0 = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.GenesisDisplayTool_V01|x64.ActiveCfg = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.GenesisDisplayTool_V01|x64.Build.0 = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.GenesisDisplayTool_V01|x86.ActiveCfg = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.GenesisDisplayTool_V01|x86.Build.0 = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.PerformTest|Any CPU.ActiveCfg = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.PerformTest|Any CPU.Build.0 = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.PerformTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.PerformTest|Mixed Platforms.Build.0 = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.PerformTest|x64.ActiveCfg = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.PerformTest|x64.Build.0 = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.PerformTest|x86.ActiveCfg = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.PerformTest|x86.Build.0 = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.Release|Any CPU.Build.0 = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.Release|x64.ActiveCfg = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.Release|x64.Build.0 = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.Release|x86.ActiveCfg = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.Release|x86.Build.0 = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.ReleaseTest|x64.ActiveCfg = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.ReleaseTest|x64.Build.0 = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.ReleaseTest|x86.ActiveCfg = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.ReleaseTest|x86.Build.0 = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.XP32bit|Any CPU.ActiveCfg = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.XP32bit|Any CPU.Build.0 = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.XP32bit|Mixed Platforms.ActiveCfg = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.XP32bit|Mixed Platforms.Build.0 = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.XP32bit|x64.ActiveCfg = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.XP32bit|x64.Build.0 = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.XP32bit|x86.ActiveCfg = Release|Any CPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531}.XP32bit|x86.Build.0 = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}._MANUAL_CONTROL|x64.ActiveCfg = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}._MANUAL_CONTROL|x64.Build.0 = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}._MANUAL_CONTROL|x86.ActiveCfg = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}._MANUAL_CONTROL|x86.Build.0 = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.COM|Any CPU.ActiveCfg = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.COM|Any CPU.Build.0 = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.COM|Mixed Platforms.ActiveCfg = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.COM|Mixed Platforms.Build.0 = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.COM|x64.ActiveCfg = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.COM|x64.Build.0 = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.COM|x86.ActiveCfg = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.COM|x86.Build.0 = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.Debug|x64.ActiveCfg = Debug|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.Debug|x64.Build.0 = Debug|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.Debug|x86.ActiveCfg = Debug|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.Debug|x86.Build.0 = Debug|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.GenesisDisplayTool_V01|Any CPU.Build.0 = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.GenesisDisplayTool_V01|Mixed Platforms.ActiveCfg = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.GenesisDisplayTool_V01|Mixed Platforms.Build.0 = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.GenesisDisplayTool_V01|x64.ActiveCfg = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.GenesisDisplayTool_V01|x64.Build.0 = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.GenesisDisplayTool_V01|x86.ActiveCfg = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.GenesisDisplayTool_V01|x86.Build.0 = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.PerformTest|Any CPU.ActiveCfg = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.PerformTest|Any CPU.Build.0 = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.PerformTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.PerformTest|Mixed Platforms.Build.0 = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.PerformTest|x64.ActiveCfg = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.PerformTest|x64.Build.0 = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.PerformTest|x86.ActiveCfg = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.PerformTest|x86.Build.0 = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.Release|Any CPU.Build.0 = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.Release|x64.ActiveCfg = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.Release|x64.Build.0 = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.Release|x86.ActiveCfg = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.Release|x86.Build.0 = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.ReleaseTest|x64.ActiveCfg = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.ReleaseTest|x64.Build.0 = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.ReleaseTest|x86.ActiveCfg = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.ReleaseTest|x86.Build.0 = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.XP32bit|Any CPU.ActiveCfg = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.XP32bit|Any CPU.Build.0 = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.XP32bit|Mixed Platforms.ActiveCfg = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.XP32bit|Mixed Platforms.Build.0 = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.XP32bit|x64.ActiveCfg = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.XP32bit|x64.Build.0 = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.XP32bit|x86.ActiveCfg = Release|Any CPU - {4221F992-599E-498C-A409-6D1E70E0A6F9}.XP32bit|x86.Build.0 = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}._MANUAL_CONTROL|x64.ActiveCfg = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}._MANUAL_CONTROL|x64.Build.0 = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}._MANUAL_CONTROL|x86.ActiveCfg = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}._MANUAL_CONTROL|x86.Build.0 = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.COM|Any CPU.ActiveCfg = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.COM|Any CPU.Build.0 = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.COM|Mixed Platforms.ActiveCfg = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.COM|Mixed Platforms.Build.0 = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.COM|x64.ActiveCfg = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.COM|x64.Build.0 = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.COM|x86.ActiveCfg = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.COM|x86.Build.0 = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.Debug|x64.ActiveCfg = Debug|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.Debug|x64.Build.0 = Debug|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.Debug|x86.ActiveCfg = Debug|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.Debug|x86.Build.0 = Debug|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.GenesisDisplayTool_V01|Any CPU.Build.0 = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.GenesisDisplayTool_V01|Mixed Platforms.ActiveCfg = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.GenesisDisplayTool_V01|Mixed Platforms.Build.0 = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.GenesisDisplayTool_V01|x64.ActiveCfg = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.GenesisDisplayTool_V01|x64.Build.0 = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.GenesisDisplayTool_V01|x86.ActiveCfg = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.GenesisDisplayTool_V01|x86.Build.0 = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.PerformTest|Any CPU.ActiveCfg = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.PerformTest|Any CPU.Build.0 = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.PerformTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.PerformTest|Mixed Platforms.Build.0 = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.PerformTest|x64.ActiveCfg = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.PerformTest|x64.Build.0 = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.PerformTest|x86.ActiveCfg = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.PerformTest|x86.Build.0 = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.Release|Any CPU.Build.0 = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.Release|x64.ActiveCfg = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.Release|x64.Build.0 = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.Release|x86.ActiveCfg = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.Release|x86.Build.0 = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.ReleaseTest|x64.ActiveCfg = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.ReleaseTest|x64.Build.0 = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.ReleaseTest|x86.ActiveCfg = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.ReleaseTest|x86.Build.0 = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.XP32bit|Any CPU.ActiveCfg = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.XP32bit|Any CPU.Build.0 = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.XP32bit|Mixed Platforms.ActiveCfg = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.XP32bit|Mixed Platforms.Build.0 = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.XP32bit|x64.ActiveCfg = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.XP32bit|x64.Build.0 = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.XP32bit|x86.ActiveCfg = Release|Any CPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB}.XP32bit|x86.Build.0 = Release|Any CPU {FD30EB7A-7809-4E62-9374-791D31877D6D}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU {FD30EB7A-7809-4E62-9374-791D31877D6D}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU {FD30EB7A-7809-4E62-9374-791D31877D6D}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU @@ -4393,198 +4125,262 @@ Global {F14940F8-3C86-4BB7-A915-B021E4B3052D}.XP32bit|x64.Build.0 = Release|Any CPU {F14940F8-3C86-4BB7-A915-B021E4B3052D}.XP32bit|x86.ActiveCfg = Release|Any CPU {F14940F8-3C86-4BB7-A915-B021E4B3052D}.XP32bit|x86.Build.0 = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}._MANUAL_CONTROL|x64.ActiveCfg = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}._MANUAL_CONTROL|x64.Build.0 = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}._MANUAL_CONTROL|x86.ActiveCfg = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}._MANUAL_CONTROL|x86.Build.0 = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.COM|Any CPU.ActiveCfg = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.COM|Any CPU.Build.0 = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.COM|Mixed Platforms.ActiveCfg = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.COM|Mixed Platforms.Build.0 = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.COM|x64.ActiveCfg = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.COM|x64.Build.0 = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.COM|x86.ActiveCfg = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.COM|x86.Build.0 = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Debug|x64.ActiveCfg = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Debug|x64.Build.0 = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Debug|x86.ActiveCfg = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Debug|x86.Build.0 = Debug|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.GenesisDisplayTool_V01|Any CPU.Build.0 = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.GenesisDisplayTool_V01|Mixed Platforms.ActiveCfg = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.GenesisDisplayTool_V01|Mixed Platforms.Build.0 = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.GenesisDisplayTool_V01|x64.ActiveCfg = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.GenesisDisplayTool_V01|x64.Build.0 = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.GenesisDisplayTool_V01|x86.ActiveCfg = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.GenesisDisplayTool_V01|x86.Build.0 = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.PerformTest|Any CPU.ActiveCfg = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.PerformTest|Any CPU.Build.0 = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.PerformTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.PerformTest|Mixed Platforms.Build.0 = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.PerformTest|x64.ActiveCfg = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.PerformTest|x64.Build.0 = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.PerformTest|x86.ActiveCfg = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.PerformTest|x86.Build.0 = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Release|Any CPU.Build.0 = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Release|x64.ActiveCfg = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Release|x64.Build.0 = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Release|x86.ActiveCfg = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.Release|x86.Build.0 = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.ReleaseTest|x64.ActiveCfg = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.ReleaseTest|x64.Build.0 = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.ReleaseTest|x86.ActiveCfg = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.ReleaseTest|x86.Build.0 = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.XP32bit|Any CPU.ActiveCfg = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.XP32bit|Any CPU.Build.0 = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.XP32bit|Mixed Platforms.ActiveCfg = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.XP32bit|Mixed Platforms.Build.0 = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.XP32bit|x64.ActiveCfg = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.XP32bit|x64.Build.0 = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.XP32bit|x86.ActiveCfg = Release|Any CPU - {B6A19B80-0F0F-434C-A754-A7712FC208B2}.XP32bit|x86.Build.0 = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}._MANUAL_CONTROL|x64.ActiveCfg = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}._MANUAL_CONTROL|x64.Build.0 = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}._MANUAL_CONTROL|x86.ActiveCfg = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}._MANUAL_CONTROL|x86.Build.0 = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.COM|Any CPU.ActiveCfg = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.COM|Any CPU.Build.0 = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.COM|Mixed Platforms.ActiveCfg = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.COM|Mixed Platforms.Build.0 = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.COM|x64.ActiveCfg = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.COM|x64.Build.0 = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.COM|x86.ActiveCfg = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.COM|x86.Build.0 = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Debug|x64.ActiveCfg = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Debug|x64.Build.0 = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Debug|x86.ActiveCfg = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Debug|x86.Build.0 = Debug|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.GenesisDisplayTool_V01|Any CPU.Build.0 = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.GenesisDisplayTool_V01|Mixed Platforms.ActiveCfg = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.GenesisDisplayTool_V01|Mixed Platforms.Build.0 = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.GenesisDisplayTool_V01|x64.ActiveCfg = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.GenesisDisplayTool_V01|x64.Build.0 = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.GenesisDisplayTool_V01|x86.ActiveCfg = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.GenesisDisplayTool_V01|x86.Build.0 = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.PerformTest|Any CPU.ActiveCfg = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.PerformTest|Any CPU.Build.0 = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.PerformTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.PerformTest|Mixed Platforms.Build.0 = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.PerformTest|x64.ActiveCfg = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.PerformTest|x64.Build.0 = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.PerformTest|x86.ActiveCfg = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.PerformTest|x86.Build.0 = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Release|Any CPU.Build.0 = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Release|x64.ActiveCfg = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Release|x64.Build.0 = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Release|x86.ActiveCfg = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.Release|x86.Build.0 = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.ReleaseTest|x64.ActiveCfg = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.ReleaseTest|x64.Build.0 = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.ReleaseTest|x86.ActiveCfg = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.ReleaseTest|x86.Build.0 = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.XP32bit|Any CPU.ActiveCfg = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.XP32bit|Any CPU.Build.0 = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.XP32bit|Mixed Platforms.ActiveCfg = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.XP32bit|Mixed Platforms.Build.0 = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.XP32bit|x64.ActiveCfg = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.XP32bit|x64.Build.0 = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.XP32bit|x86.ActiveCfg = Release|Any CPU - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478}.XP32bit|x86.Build.0 = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}._MANUAL_CONTROL|x64.ActiveCfg = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}._MANUAL_CONTROL|x64.Build.0 = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}._MANUAL_CONTROL|x86.ActiveCfg = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}._MANUAL_CONTROL|x86.Build.0 = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.COM|Any CPU.ActiveCfg = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.COM|Any CPU.Build.0 = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.COM|Mixed Platforms.ActiveCfg = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.COM|Mixed Platforms.Build.0 = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.COM|x64.ActiveCfg = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.COM|x64.Build.0 = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.COM|x86.ActiveCfg = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.COM|x86.Build.0 = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.Debug|x64.ActiveCfg = Debug|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.Debug|x64.Build.0 = Debug|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.Debug|x86.ActiveCfg = Debug|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.Debug|x86.Build.0 = Debug|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.GenesisDisplayTool_V01|Any CPU.Build.0 = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.GenesisDisplayTool_V01|Mixed Platforms.ActiveCfg = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.GenesisDisplayTool_V01|Mixed Platforms.Build.0 = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.GenesisDisplayTool_V01|x64.ActiveCfg = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.GenesisDisplayTool_V01|x64.Build.0 = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.GenesisDisplayTool_V01|x86.ActiveCfg = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.GenesisDisplayTool_V01|x86.Build.0 = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.PerformTest|Any CPU.ActiveCfg = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.PerformTest|Any CPU.Build.0 = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.PerformTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.PerformTest|Mixed Platforms.Build.0 = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.PerformTest|x64.ActiveCfg = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.PerformTest|x64.Build.0 = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.PerformTest|x86.ActiveCfg = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.PerformTest|x86.Build.0 = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.Release|Any CPU.Build.0 = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.Release|x64.ActiveCfg = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.Release|x64.Build.0 = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.Release|x86.ActiveCfg = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.Release|x86.Build.0 = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.ReleaseTest|x64.ActiveCfg = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.ReleaseTest|x64.Build.0 = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.ReleaseTest|x86.ActiveCfg = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.ReleaseTest|x86.Build.0 = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.XP32bit|Any CPU.ActiveCfg = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.XP32bit|Any CPU.Build.0 = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.XP32bit|Mixed Platforms.ActiveCfg = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.XP32bit|Mixed Platforms.Build.0 = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.XP32bit|x64.ActiveCfg = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.XP32bit|x64.Build.0 = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.XP32bit|x86.ActiveCfg = Release|Any CPU - {A83696BF-D8A2-4809-8424-CFE172AED5B6}.XP32bit|x86.Build.0 = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}._MANUAL_CONTROL|x64.ActiveCfg = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}._MANUAL_CONTROL|x64.Build.0 = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}._MANUAL_CONTROL|x86.ActiveCfg = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}._MANUAL_CONTROL|x86.Build.0 = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.COM|Any CPU.ActiveCfg = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.COM|Any CPU.Build.0 = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.COM|Mixed Platforms.ActiveCfg = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.COM|Mixed Platforms.Build.0 = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.COM|x64.ActiveCfg = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.COM|x64.Build.0 = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.COM|x86.ActiveCfg = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.COM|x86.Build.0 = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.Debug|x64.ActiveCfg = Debug|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.Debug|x64.Build.0 = Debug|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.Debug|x86.ActiveCfg = Debug|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.Debug|x86.Build.0 = Debug|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.GenesisDisplayTool_V01|Any CPU.Build.0 = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.GenesisDisplayTool_V01|Mixed Platforms.ActiveCfg = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.GenesisDisplayTool_V01|Mixed Platforms.Build.0 = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.GenesisDisplayTool_V01|x64.ActiveCfg = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.GenesisDisplayTool_V01|x64.Build.0 = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.GenesisDisplayTool_V01|x86.ActiveCfg = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.GenesisDisplayTool_V01|x86.Build.0 = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.PerformTest|Any CPU.ActiveCfg = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.PerformTest|Any CPU.Build.0 = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.PerformTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.PerformTest|Mixed Platforms.Build.0 = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.PerformTest|x64.ActiveCfg = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.PerformTest|x64.Build.0 = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.PerformTest|x86.ActiveCfg = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.PerformTest|x86.Build.0 = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.Release|Any CPU.Build.0 = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.Release|x64.ActiveCfg = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.Release|x64.Build.0 = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.Release|x86.ActiveCfg = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.Release|x86.Build.0 = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.ReleaseTest|x64.ActiveCfg = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.ReleaseTest|x64.Build.0 = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.ReleaseTest|x86.ActiveCfg = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.ReleaseTest|x86.Build.0 = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.XP32bit|Any CPU.ActiveCfg = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.XP32bit|Any CPU.Build.0 = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.XP32bit|Mixed Platforms.ActiveCfg = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.XP32bit|Mixed Platforms.Build.0 = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.XP32bit|x64.ActiveCfg = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.XP32bit|x64.Build.0 = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.XP32bit|x86.ActiveCfg = Release|Any CPU + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D}.XP32bit|x86.Build.0 = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}._MANUAL_CONTROL|x64.ActiveCfg = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}._MANUAL_CONTROL|x64.Build.0 = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}._MANUAL_CONTROL|x86.ActiveCfg = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}._MANUAL_CONTROL|x86.Build.0 = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.COM|Any CPU.ActiveCfg = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.COM|Any CPU.Build.0 = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.COM|Mixed Platforms.ActiveCfg = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.COM|Mixed Platforms.Build.0 = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.COM|x64.ActiveCfg = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.COM|x64.Build.0 = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.COM|x86.ActiveCfg = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.COM|x86.Build.0 = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.Debug|x64.ActiveCfg = Debug|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.Debug|x64.Build.0 = Debug|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.Debug|x86.ActiveCfg = Debug|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.Debug|x86.Build.0 = Debug|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.GenesisDisplayTool_V01|Any CPU.Build.0 = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.GenesisDisplayTool_V01|Mixed Platforms.ActiveCfg = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.GenesisDisplayTool_V01|Mixed Platforms.Build.0 = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.GenesisDisplayTool_V01|x64.ActiveCfg = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.GenesisDisplayTool_V01|x64.Build.0 = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.GenesisDisplayTool_V01|x86.ActiveCfg = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.GenesisDisplayTool_V01|x86.Build.0 = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.PerformTest|Any CPU.ActiveCfg = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.PerformTest|Any CPU.Build.0 = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.PerformTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.PerformTest|Mixed Platforms.Build.0 = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.PerformTest|x64.ActiveCfg = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.PerformTest|x64.Build.0 = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.PerformTest|x86.ActiveCfg = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.PerformTest|x86.Build.0 = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.Release|Any CPU.Build.0 = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.Release|x64.ActiveCfg = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.Release|x64.Build.0 = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.Release|x86.ActiveCfg = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.Release|x86.Build.0 = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.ReleaseTest|x64.ActiveCfg = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.ReleaseTest|x64.Build.0 = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.ReleaseTest|x86.ActiveCfg = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.ReleaseTest|x86.Build.0 = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.XP32bit|Any CPU.ActiveCfg = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.XP32bit|Any CPU.Build.0 = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.XP32bit|Mixed Platforms.ActiveCfg = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.XP32bit|Mixed Platforms.Build.0 = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.XP32bit|x64.ActiveCfg = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.XP32bit|x64.Build.0 = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.XP32bit|x86.ActiveCfg = Release|Any CPU + {F8D84B9A-0FCF-4083-B067-8C39B7314152}.XP32bit|x86.Build.0 = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}._MANUAL_CONTROL|x64.ActiveCfg = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}._MANUAL_CONTROL|x64.Build.0 = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}._MANUAL_CONTROL|x86.ActiveCfg = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}._MANUAL_CONTROL|x86.Build.0 = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.COM|Any CPU.ActiveCfg = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.COM|Any CPU.Build.0 = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.COM|Mixed Platforms.ActiveCfg = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.COM|Mixed Platforms.Build.0 = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.COM|x64.ActiveCfg = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.COM|x64.Build.0 = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.COM|x86.ActiveCfg = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.COM|x86.Build.0 = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.Debug|x64.ActiveCfg = Debug|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.Debug|x64.Build.0 = Debug|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.Debug|x86.ActiveCfg = Debug|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.Debug|x86.Build.0 = Debug|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.GenesisDisplayTool_V01|Any CPU.Build.0 = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.GenesisDisplayTool_V01|Mixed Platforms.ActiveCfg = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.GenesisDisplayTool_V01|Mixed Platforms.Build.0 = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.GenesisDisplayTool_V01|x64.ActiveCfg = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.GenesisDisplayTool_V01|x64.Build.0 = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.GenesisDisplayTool_V01|x86.ActiveCfg = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.GenesisDisplayTool_V01|x86.Build.0 = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.PerformTest|Any CPU.ActiveCfg = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.PerformTest|Any CPU.Build.0 = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.PerformTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.PerformTest|Mixed Platforms.Build.0 = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.PerformTest|x64.ActiveCfg = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.PerformTest|x64.Build.0 = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.PerformTest|x86.ActiveCfg = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.PerformTest|x86.Build.0 = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.Release|Any CPU.Build.0 = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.Release|x64.ActiveCfg = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.Release|x64.Build.0 = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.Release|x86.ActiveCfg = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.Release|x86.Build.0 = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.ReleaseTest|x64.ActiveCfg = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.ReleaseTest|x64.Build.0 = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.ReleaseTest|x86.ActiveCfg = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.ReleaseTest|x86.Build.0 = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.XP32bit|Any CPU.ActiveCfg = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.XP32bit|Any CPU.Build.0 = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.XP32bit|Mixed Platforms.ActiveCfg = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.XP32bit|Mixed Platforms.Build.0 = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.XP32bit|x64.ActiveCfg = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.XP32bit|x64.Build.0 = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.XP32bit|x86.ActiveCfg = Release|Any CPU + {B8523894-2C40-4FF0-A399-B7A91FAE45EA}.XP32bit|x86.Build.0 = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}._MANUAL_CONTROL|x64.ActiveCfg = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}._MANUAL_CONTROL|x64.Build.0 = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}._MANUAL_CONTROL|x86.ActiveCfg = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}._MANUAL_CONTROL|x86.Build.0 = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.COM|Any CPU.ActiveCfg = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.COM|Any CPU.Build.0 = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.COM|Mixed Platforms.ActiveCfg = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.COM|Mixed Platforms.Build.0 = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.COM|x64.ActiveCfg = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.COM|x64.Build.0 = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.COM|x86.ActiveCfg = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.COM|x86.Build.0 = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.Debug|x64.ActiveCfg = Debug|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.Debug|x64.Build.0 = Debug|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.Debug|x86.ActiveCfg = Debug|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.Debug|x86.Build.0 = Debug|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.GenesisDisplayTool_V01|Any CPU.Build.0 = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.GenesisDisplayTool_V01|Mixed Platforms.ActiveCfg = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.GenesisDisplayTool_V01|Mixed Platforms.Build.0 = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.GenesisDisplayTool_V01|x64.ActiveCfg = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.GenesisDisplayTool_V01|x64.Build.0 = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.GenesisDisplayTool_V01|x86.ActiveCfg = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.GenesisDisplayTool_V01|x86.Build.0 = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.PerformTest|Any CPU.ActiveCfg = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.PerformTest|Any CPU.Build.0 = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.PerformTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.PerformTest|Mixed Platforms.Build.0 = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.PerformTest|x64.ActiveCfg = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.PerformTest|x64.Build.0 = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.PerformTest|x86.ActiveCfg = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.PerformTest|x86.Build.0 = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.Release|Any CPU.Build.0 = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.Release|x64.ActiveCfg = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.Release|x64.Build.0 = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.Release|x86.ActiveCfg = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.Release|x86.Build.0 = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.ReleaseTest|x64.ActiveCfg = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.ReleaseTest|x64.Build.0 = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.ReleaseTest|x86.ActiveCfg = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.ReleaseTest|x86.Build.0 = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.XP32bit|Any CPU.ActiveCfg = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.XP32bit|Any CPU.Build.0 = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.XP32bit|Mixed Platforms.ActiveCfg = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.XP32bit|Mixed Platforms.Build.0 = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.XP32bit|x64.ActiveCfg = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.XP32bit|x64.Build.0 = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.XP32bit|x86.ActiveCfg = Release|Any CPU + {01A28A70-D5E6-4898-8C22-E64400A3B80F}.XP32bit|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -4662,19 +4458,13 @@ Global {D6B81C60-2763-4C4D-989F-90822F53B01A} = {94579693-7AC6-4FF0-B540-1F3780E1BCFA} {BA17D20E-0CEB-4B27-9772-2392BD750ED5} = {C9393A97-C0BB-4D59-A879-B572BE04CE15} {8BDD2789-96D4-43EA-AAD7-0F49D0347998} = {EC10DAFE-88CF-42D5-99E7-D247938B6430} - {2550B77D-D975-4A50-9C6A-526D4E07754D} = {03D4F23E-7E4A-4091-BC96-036C996D351A} - {C27BA66C-C3A7-48A2-A644-CBA77E28E531} = {AF973E0E-2B44-4F1A-B1E7-77C8B4F30579} - {4221F992-599E-498C-A409-6D1E70E0A6F9} = {AF973E0E-2B44-4F1A-B1E7-77C8B4F30579} - {AF973E0E-2B44-4F1A-B1E7-77C8B4F30579} = {99B23EE9-CE50-4924-A055-C39EFA038721} - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB} = {AF973E0E-2B44-4F1A-B1E7-77C8B4F30579} {FD30EB7A-7809-4E62-9374-791D31877D6D} = {696A94BE-7237-4AE2-9E36-6059DE519971} {AFC428F5-0141-4A3F-BEF2-470A89D972F6} = {C17363DF-A043-4F25-8EBA-2B3B078227DC} {F14940F8-3C86-4BB7-A915-B021E4B3052D} = {B4F8545B-F379-42A5-BDE9-763FD7B79598} - {FBF162DF-A4C6-41D1-9324-5517C13C658B} = {5563DD3B-2287-4BED-97BF-F0389FF505AF} - {1B519B0D-5E1C-4400-A8CE-F7B3CC045745} = {FBF162DF-A4C6-41D1-9324-5517C13C658B} - {B6A19B80-0F0F-434C-A754-A7712FC208B2} = {1B519B0D-5E1C-4400-A8CE-F7B3CC045745} - {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478} = {FBF162DF-A4C6-41D1-9324-5517C13C658B} - {A83696BF-D8A2-4809-8424-CFE172AED5B6} = {FBF162DF-A4C6-41D1-9324-5517C13C658B} + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D} = {68323534-4337-4E3A-89BC-11D8BB55343A} + {F8D84B9A-0FCF-4083-B067-8C39B7314152} = {68323534-4337-4E3A-89BC-11D8BB55343A} + {B8523894-2C40-4FF0-A399-B7A91FAE45EA} = {68323534-4337-4E3A-89BC-11D8BB55343A} + {01A28A70-D5E6-4898-8C22-E64400A3B80F} = {68323534-4337-4E3A-89BC-11D8BB55343A} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {4BCB7B69-696C-436A-86F7-C91EA5588164} diff --git a/Common/CommonConsole/App.config b/Common/CommonConsole/App.config deleted file mode 100644 index aee9adf4..00000000 --- a/Common/CommonConsole/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/Common/CommonConsole/CommonConsole.csproj b/Common/CommonConsole/CommonConsole.csproj index 02d1be4a..bd62393d 100644 --- a/Common/CommonConsole/CommonConsole.csproj +++ b/Common/CommonConsole/CommonConsole.csproj @@ -8,10 +8,11 @@ Exe CommonConsole CommonConsole - v4.8.1 + v4.0 512 true true + AnyCPU @@ -33,40 +34,40 @@ 4 - - ..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll + + False + ..\packages\Newtonsoft.Json.13.0.3\lib\net40\Newtonsoft.Json.dll + + ..\..\..\..\..\..\..\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\System.Net.Http.dll + - - + + + - - + + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D} + ExchangeHub + + + {F8D84B9A-0FCF-4083-B067-8C39B7314152} + OmniPlus + - - {F7E3DF42-4D35-4A0C-9182-90438F9956E1} - ServiceCore - - - {1057AD21-BA22-4CAB-B3FE-88C5C9980E6A} - MeterProcessState - - - {8A619CD5-6C8D-420C-A132-7946C6F13E6E} - ByteArrayStyle - + \ No newline at end of file diff --git a/Common/CommonConsole/FactoryUnseal.cs b/Common/CommonConsole/FactoryUnseal.cs new file mode 100644 index 00000000..27f55287 --- /dev/null +++ b/Common/CommonConsole/FactoryUnseal.cs @@ -0,0 +1,306 @@ +namespace CommonConsole +{ + using OmniPlus; + + using System; + using System.Linq; + using System.Text; + + public static class OmniExtensions + { + public static void FactoryUnseal(OmniUniProConnection connection) + { + var _sealed = connection.Send(0xFD, 0x63)[1] == 1; + Console.WriteLine($"--- Sealed: {connection.Send(0xFD, 0x63)[1] == 1}"); + Console.WriteLine($"--- Version & Type: {Encoding.ASCII.GetString(connection.Send(0x05))}"); + Console.WriteLine("----------------------------------------------------------------------"); + Console.WriteLine("--- 0. Test parameters:"); + Console.WriteLine("--- SSSS: 1"); + Console.WriteLine("--- IIII: 2"); + Console.WriteLine("--- CCCC: 3"); + Console.WriteLine("--- CCCC: 4"); + Console.WriteLine("--- Command: FD 64 00 SS SS II II CC CC VV VV (Hash is BE)"); + Console.WriteLine("--- : FD 64 00 each part is LE except the last one"); + Console.WriteLine("--- 1.0 According docs: FD 64 00 01 00 02 00 03 00 00 04 (Hash is BE)"); + Console.WriteLine("--- 1.1 According docs: FD 64 00 04 00 00 03 00 02 00 01 (Hash is LE)"); + Console.WriteLine("--- 2.0 When all LE: FD 64 00 01 00 02 00 03 00 04 00 (Hash is BE)"); + Console.WriteLine("--- 2.1 When all LE: FD 64 00 00 04 00 03 00 02 00 01 (Hash is LE)"); + Console.WriteLine("--- 3.0 When all BE: FD 64 00 00 01 00 02 00 03 00 04 (Hash is BE)"); + Console.WriteLine("--- 3.1 When all BE: FD 64 00 04 00 03 00 02 00 01 00 (Hash is LE)"); + Console.WriteLine("----------------------------------------------------------------------"); + + if (_sealed) + { + //____________________0_____1_____2_____3_____4_____5_____6_____7_____8_____9____10__ + //_____________________________________SS____SS____II____II____CC____CC____VV____VV__ + byte[] request = new byte[] { 0xFD, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + + Console.WriteLine("--- 1.0 According docs: hash is sent BE"); + Console.WriteLine("----------------------------------------------------------------------"); + + byte[] hash = new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + // Test case 1 - according documentation - hash BE + connection.Calculate_IIII_LE().CopyTo(hash, 2); + connection.Calculate_CCCC_LE().CopyTo(hash, 4); + connection.Calculate_VVVV_LE().CopyTo(hash, 6); + connection.Calculate_SSSS_LE().CopyTo(hash, 0); // .Reverse().ToArray() + + Array.Copy(hash, 0, request, 3, 8); + connection.Send(request); + } + + //Console.WriteLine("----------------------------------------------------------------------"); + //Console.WriteLine("--- 1.1 According docs: hash is sent LE"); + //Console.WriteLine("----------------------------------------------------------------------"); + //hash = new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + //// Test case 1 - according documentation - hash LE + //connection.Calculate_IIII_LE().CopyTo(hash, 2); + //connection.Calculate_CCCC_LE().CopyTo(hash, 4); + //connection.Calculate_VVVV_LE().CopyTo(hash, 6); + //connection.Calculate_SSSS_LE().Reverse().ToArray().CopyTo(hash, 0); + + //Array.Copy(hash.Reverse().ToArray(), 0, request, 3, 8); + //connection.Send(request); + //Console.WriteLine("----------------------------------------------------------------------"); + //Console.WriteLine("--- 2.0 When all LE: hash is sent BE"); + //Console.WriteLine("----------------------------------------------------------------------"); + + //hash = new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + //// Test case 2 all Little endian - hash BE + //connection.Calculate_IIII_LE().CopyTo(hash, 2); + //connection.Calculate_CCCC_LE().CopyTo(hash, 4); + //connection.Calculate_VVVV_LE().CopyTo(hash, 6); + //connection.Calculate_SSSS_LE().CopyTo(hash, 0); + + //Array.Copy(hash, 0, request, 3, 8); + //connection.Send(request); + //Console.WriteLine("----------------------------------------------------------------------"); + //Console.WriteLine("--- 2.1 When all LE: hash is sent LE"); + //Console.WriteLine("----------------------------------------------------------------------"); + + //hash = new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + //// Test case 2 all Little endian - hash LE + //connection.Calculate_IIII_LE().CopyTo(hash, 2); + //connection.Calculate_CCCC_LE().CopyTo(hash, 4); + //connection.Calculate_VVVV_LE().CopyTo(hash, 6); + //connection.Calculate_SSSS_LE().CopyTo(hash, 0); + + //Array.Copy(hash.Reverse().ToArray(), 0, request, 3, 8); + //connection.Send(request); + //Console.WriteLine("----------------------------------------------------------------------"); + //Console.WriteLine("--- 3.0 When all BE: hash is sent BE"); + //Console.WriteLine("----------------------------------------------------------------------"); + + //hash = new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + //// Test case 3 all Big endian - hash BE + //connection.Calculate_IIII_LE().Reverse().ToArray().CopyTo(hash, 2); + //connection.Calculate_CCCC_LE().Reverse().ToArray().CopyTo(hash, 4); + //connection.Calculate_VVVV_LE().Reverse().ToArray().CopyTo(hash, 6); + //connection.Calculate_SSSS_LE().Reverse().ToArray().CopyTo(hash, 0); + + //Array.Copy(hash, 0, request, 3, 8); + //connection.Send(request); + //Console.WriteLine("----------------------------------------------------------------------"); + //Console.WriteLine("--- 3.1 When all BE: hash is sent LE"); + //Console.WriteLine("----------------------------------------------------------------------"); + + //hash = new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + //// Test case 3 all Big endian - hash BE + //connection.Calculate_IIII_LE().Reverse().ToArray().CopyTo(hash, 2); + //connection.Calculate_CCCC_LE().Reverse().ToArray().CopyTo(hash, 4); + //connection.Calculate_VVVV_LE().Reverse().ToArray().CopyTo(hash, 6); + //connection.Calculate_SSSS_LE().Reverse().ToArray().CopyTo(hash, 0); + + //Array.Copy(hash.Reverse().ToArray(), 0, request, 3, 8); + //connection.Send(request); + + Console.WriteLine("----------------------------------------------------------------------"); + Console.WriteLine($"--- Sealed: {connection.Send(0xFD, 0x63)[1] == 1}"); + } + + static byte[] Calculate_SSSS_LE(this OmniUniProConnection connection) + { + // response with status byte at the start + byte[] response = connection.Send(0xFD, 0x3D); + + ushort result = 0; + + if (response[0] == 0x01) + { + // returns uint32 from 4 little endian bytes + uint seconds = BitConverter.ToUInt32(response, 1); + Console.WriteLine($"--- Seconds active: {seconds}"); + + result = (ushort)((seconds >> 8) & 0xFFFF); + Console.WriteLine($"--- (x >> 8) & 0xFFFF: {result}"); + } + + var ssss_LE = BitConverter.GetBytes(result); + + // returns 2 little endian bytes array from the ushort result + Console.WriteLine($"--- SSSS (LE): {BitConverter.ToString(ssss_LE).Replace("-", " ")}"); + + return ssss_LE; + } + + static byte[] Calculate_IIII_LE(this OmniUniProConnection connection) + { + // response with status byte at the start + byte[] response = connection.Send(0x01); + int responseLength = Math.Max(response.Length - 1, 0); + string factoryID = Encoding + .ASCII + .GetString(response, 1, responseLength) + .Trim('\0') + .Trim(); + ushort crcU16 = 0; + + Console.WriteLine($"--- Factory ID: {factoryID}"); + + if (response[0] == 0x01) + { + byte[] plainData; + + if (string.IsNullOrWhiteSpace(factoryID)) + { + plainData = Encoding.ASCII.GetBytes("Factory"); + } + else + { + plainData = Encoding.ASCII.GetBytes(factoryID); + } + + Console.WriteLine($"--- Bytes to encode: {BitConverter.ToString(plainData).Replace("-", " ")}"); + + foreach (byte byteU8 in plainData) + { + ushort tempU16 = crcU16; + + crcU16 = (ushort)(tempU16 >> 8); + crcU16 += (ushort)(tempU16 << 8); + + crcU16 ^= byteU8; + + tempU16 = (ushort)((crcU16 >> 4) & 0x000F); + crcU16 ^= tempU16; + + tempU16 = (ushort)((crcU16 & 0x000F) << 12); + crcU16 ^= tempU16; + + tempU16 = (ushort)((crcU16 & 0x00FF) << 5); + crcU16 ^= tempU16; + } + } + + byte[] crc_Bytes_LE = BitConverter.GetBytes(crcU16); + + Console.WriteLine($"--- CRC uint16: {crcU16}"); + Console.WriteLine($"--- IIII (LE): {BitConverter.ToString(crc_Bytes_LE).Replace("-", " ")}"); + + // returns 2 little endian bytes array from the ushort crcU16 + return crc_Bytes_LE; + } + + static byte[] Calculate_CCCC_LE(this OmniUniProConnection connection) + { + // response with status byte at the start + byte[] response = connection.Send(0x07); + int responseLength = Math.Max(response.Length - 1, 0); + string customerText = Encoding + .ASCII + .GetString(response, 1, responseLength) + .Trim('\0'); + Console.WriteLine($"--- Customer text: {customerText}"); + byte[] cccc = new byte[2]; + + if (response[0] == 0x01) + { + byte[] plainData = new byte[4]; + + if (string.IsNullOrWhiteSpace(customerText)) + { + plainData = Encoding.ASCII.GetBytes("Factory"); + } + else if (customerText.Length < 4) + { + Encoding.ASCII.GetBytes(customerText).CopyTo(plainData, 0); + } + else + { + plainData = Encoding.ASCII.GetBytes(customerText); + } + + Console.WriteLine($"--- Text to encode: {Encoding.ASCII.GetString(plainData)}"); + Console.Write("--- |"); + + byte[] bits = new byte[16]; + string hex = string.Empty; + + // for each byte from the first 4 bytes + for (int i = 0; i < 4; i++) + { + byte current = plainData[i]; + byte count1 = 0; + + Console.Write($"{current}:"); + + // count bits set to 1 + for (int b = 0; b < 8; b++) + { + int bit = current >> b & 1; + count1 += (byte)bit; + + Console.Write(bit); + } + + hex += count1; + + Console.Write($":{count1}|"); + } + + Console.WriteLine(); + + cccc[0] = Convert.ToByte(hex.Substring(0, 2), 16); + cccc[1] = Convert.ToByte(hex.Substring(2, 2), 16); + } + + Console.WriteLine($"--- CCCC (LE): {BitConverter.ToString(cccc).Replace("-", " ")}"); + + return cccc; + } + + static byte[] Calculate_VVVV_LE(this OmniUniProConnection connection) + { + byte[] response = connection.Send(0x13); + int responseLength = Math.Max(response.Length - 1, 0); + string readingPreset = Encoding + .ASCII + .GetString(response, 1, responseLength) + .Trim('\0'); + Console.WriteLine($"--- Customer text: {readingPreset}"); + Console.WriteLine($"--- Reading preset: {Encoding.ASCII.GetString(response)}"); + + ushort result = 0; + + if (response[0] == 0x01) + { + byte[] bytes = new byte[4]; + Array.Copy(response, 3, bytes, 0, 4); + bytes = bytes.Reverse().ToArray(); + + // copies response bytes 3..6 + uint number = BitConverter.ToUInt32(bytes, 0); + Console.WriteLine($"--- UInt32: {number}"); + + result = (ushort)(number % 11); + Console.WriteLine($"--- UInt32 % 11: {result}"); + } + + byte[] vvvv_LE = BitConverter.GetBytes(result); + Console.WriteLine($"--- VVVV (LE): {BitConverter.ToString(vvvv_LE).Replace("-", " ")}"); + + // returns 2 little endian bytes array from the ushort result + return vvvv_LE; + } + } +} diff --git a/Common/CommonConsole/Program.cs b/Common/CommonConsole/Program.cs index 91a86a8a..1aacd1bc 100644 --- a/Common/CommonConsole/Program.cs +++ b/Common/CommonConsole/Program.cs @@ -1,184 +1,33 @@ namespace CommonConsole { + using OmniPlus; + using System; + using System.Collections.Concurrent; using System.Collections.Generic; - using System.Globalization; using System.IO; - using System.IO.Ports; using System.Linq; - using System.Runtime.InteropServices; + using System.Text; using System.Threading; + using System.Threading.Tasks; - public class Program + public partial class Program { - //[DllImport("GMH3x32E.dll")] - //public static extern Int16 UniversalOpenCom(Int16 ini16COMPortNumber, UInt32 inui32BaudRate, Int16 inui16ConverterType, Int16 ini16Parity, Int16 ini16StoppBits); - //[DllImport("GMH3x32E.dll")] - //public static extern Int16 GMH_CloseCom(); - //[DllImport("GMH3x32E.dll")] - //unsafe public static extern Int16 GMH_Transmit(Int16 ini16DeviceAddress, Int16 ini16TransmitCode, Int16* refi16ptrPriority, double* refdblptrFloatValue, Int32* refi32ptrIntegerValue); - public static void Main() { - // UniversalOpenCom(12, 4800, 8, 0, 0); - - // Int16 i16Priority; - // Double dblFloatValue; - // Int32 i32IntergerValue; - - // unsafe - // { - // var i16ErrorCode = GMH_Transmit(1, 0, &i16Priority, &dblFloatValue, &i32IntergerValue); - // } - - - // Console.WriteLine(dblFloatValue); - - // GMH_CloseCom(); } - //public static void Main(string[] args) + //public static void Main() //{ - // var messurementLines = File.ReadLines(@".\messurements.txt"); - // var messurements = new List(); + // //var connection = new OmniUniProConnection("COM16"); + // var connection = new OmniIrdaConnection("COM4"); + // connection.StateChenged += Console.WriteLine; - // var parsedData = new List(); - // var us = new CultureInfo("en-US"); - // var de = new CultureInfo("de-DE"); - // var any = NumberStyles.Any; - // var skipNext = true; - - // foreach (var line in messurementLines) - // { - // if (string.IsNullOrWhiteSpace(line)) - // { - // if (parsedData.Count > 0) - // { - // messurements.Add(new Messurement - // { - // PcbId = parsedData.First().PcbId, - // Start = parsedData.Min(x => x.Timestamp), - // MinT = parsedData.Min(x => x.CurrentT), - // MinTOF = parsedData.Min(x => x.CurrentTOF), - // AvgT = parsedData.Average(x => x.CurrentT), - // AvgTOF = parsedData.Average(x => x.CurrentTOF), - // MaxT = parsedData.Max(x => x.CurrentT), - // MaxTOF = parsedData.Max(x => x.CurrentTOF), - // End = parsedData.Max(x => x.Timestamp), - // }); - // } - - // parsedData = new List(); - // skipNext = true; - - // continue; - // } - - // if (skipNext) - // { - // skipNext = false; - - // continue; - // } - - // var lineTokens = line.Split(new[] { '\t' }, StringSplitOptions.RemoveEmptyEntries); - - // if (lineTokens.Length != 4) - // { - // continue; - // } - - // var dateString = lineTokens[0]; - // var pcbId = lineTokens[1]; - // var temperatureString = lineTokens[2]; - // var tofString = lineTokens[3]; - - // _ = DateTime.TryParse(dateString.Substring(1, dateString.Length - 2), out var timestamp); - // _ = double.TryParse(temperatureString, any, us, out var currentT) || double.TryParse(temperatureString, any, de, out currentT); - // _ = double.TryParse(tofString, any, us, out var currentTOF) || double.TryParse(tofString, any, de, out currentT); - - // parsedData.Add(new MessurementData - // { - // PcbId = pcbId, - // CurrentT = currentT, - // CurrentTOF = currentTOF, - // Timestamp = timestamp - // }); - // } - - // File.WriteAllLines(@".\messurements.csv", messurements.Select(x - // => $"{x.PcbId,10}\t" - // + $"{x.AvgT,5:0.00}\t" - // + $"{x.AvgTOF,12:0.0000000000}\t" - // + $"{x.DifferenceT,5:00.00}\t" - // + $"{x.DifferenceTOF,12:0.0000000000}")); - - // Console.WriteLine(Messurement.Header); - - // messurements.ForEach(Console.WriteLine); + // connection.Open(); + // connection.FactorySeal(true); + // connection.FactorySeal(); + // connection.Close(); //} } - - public class MessurementData - { - public string PcbId { get; set; } - - public double CurrentT { get; set; } - - public double CurrentTOF { get; set; } - - public DateTime Timestamp { get; set; } - } - - public class Messurement - { - public string PcbId { get; set; } - - public DateTime Start { get; set; } - - public double MinTOF { get; set; } - - public double MinT { get; set; } - - public double AvgTOF { get; set; } - - public double AvgT { get; set; } - - public double MaxTOF { get; set; } - - public double MaxT { get; set; } - - public DateTime End { get; set; } - - public double DifferenceT => Math.Abs(this.MaxT - this.MinT); - - public double DifferenceTOF => Math.Abs(this.MaxTOF - this.MinTOF); - - public override String ToString() - => $"{this.PcbId,10}\t" - + $"{this.Start,21:yyyy-MM-dd hh:mm:ss}\t" - + $"{this.MinT,5:0.00}\t" - + $"{this.MinTOF,12:0.0000000000}\t" - + $"{this.AvgT,5:0.00}\t" - + $"{this.AvgTOF,12:0.0000000000}\t" - + $"{this.MaxT,5:0.00}\t" - + $"{this.MaxTOF,12:0.0000000000}\t" - + $"{this.End,21:yyyy-MM-dd hh:mm:ss}\t" - + $"{this.DifferenceT,5:00.00}\t" - + $"{this.DifferenceTOF,12:0.0000000000}"; - - public static string Header - => $"{"PcbId",10}\t" - + $"{"Start",21}\t" - + $"{"Min T",5}\t" - + $"{"Min TOF",12}\t" - + $"{"Avg T",5}\t" - + $"{"Avg TOF",12}\t" - + $"{"Max T",5}\t" - + $"{"Max TOF",12}\t" - + $"{"End",21}\t" - + $"{"Dif T",5}\t" - + $"{"Dif TOF",12}"; - } -} +} \ No newline at end of file diff --git a/Common/CommonConsole/ReflectionExtensions.cs b/Common/CommonConsole/ReflectionExtensions.cs new file mode 100644 index 00000000..699352fe --- /dev/null +++ b/Common/CommonConsole/ReflectionExtensions.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.Reflection; + +namespace CommonConsole +{ + public static class ReflectionExtensions + { + private static readonly ConcurrentDictionary, Action>> metadata + = new ConcurrentDictionary, Action>>(); + + public static void CopyTo(this T source, T destination) where T : class + { + var type = typeof(T); + var properties = metadata.GetOrAdd(type, AddTypeProperties); + + foreach (var kvp in properties) + { + var getter = kvp.Key; + var setter = kvp.Value; + var value = getter(source, null); + + setter(destination, value, null); + } + } + + private static IDictionary, Action> AddTypeProperties(Type type) + { + var properties = new Dictionary, Action>(); + + foreach (var property in type.GetProperties(BindingFlags.Instance | BindingFlags.Public)) + { + if (property.CanWrite) + { + properties[property.GetValue] = property.SetValue; + } + } + + return properties; + } + } +} diff --git a/Common/CommonConsole/ServiceProvider.cs b/Common/CommonConsole/ServiceProvider.cs new file mode 100644 index 00000000..0890906d --- /dev/null +++ b/Common/CommonConsole/ServiceProvider.cs @@ -0,0 +1,158 @@ +namespace CommonConsole +{ + using System; + using System.Collections.Concurrent; + using System.Linq; + using System.Reflection; + + public partial class Program + { + class Outer + { + private readonly Middle middle; + + Outer(Middle middle) + { + Console.WriteLine($"{nameof(Outer)}: I am transient!"); + + this.middle = middle; + } + + internal string Text => $"{nameof(Outer)}.{nameof(Text)} => {this.middle.Text}"; + } + + class Middle + { + private readonly Inner inner; + + Middle(Inner inner) + { + Console.WriteLine($"{nameof(Middle)}: I am transient!"); + + this.inner = inner; + } + + internal string Text => $"{nameof(Middle)}.{nameof(Text)} => {this.inner.Text}"; + } + + class Inner + { + private readonly string text; + + internal Inner(string text) + { + Console.WriteLine($"{nameof(Inner)}: I am singleton!"); + + this.text = text; + } + + internal string Text => $"{nameof(Inner)}.{nameof(Text)} => {this.text}"; + } + + public static void DependencyInjectionTest() + { + ServiceProvider + .ServiceCollection + .AddSingleton(new Inner("It works!")); + + var outer = ServiceProvider.GetService(); + + Console.WriteLine(outer.Text); + } + } + + public interface IServiceCollection + { + IServiceCollection AddSingleton(T instance); + } + + public class ServiceProvider : IServiceProvider, IServiceCollection + { + private static readonly ServiceProvider serviceProvider = new ServiceProvider(); + + private readonly ConcurrentDictionary services; + + private ServiceProvider() + { + this.services = new ConcurrentDictionary(); + } + + public IServiceCollection AddSingleton(T instance) + { + services.AddOrUpdate(typeof(T), instance, (t, i) => instance); + + return this; + } + + public object GetService(Type serviceType) + { + return services.GetOrAdd(serviceType, default(object)); + } + + public static IServiceCollection ServiceCollection + { + get => serviceProvider; + } + + public static T GetService() + { + var serviceType = typeof(T); + var serviceInstance = default(T); + + if (serviceProvider.GetService(serviceType) is T existingInstance) + { + serviceInstance = existingInstance; + } + else if (CreateInstance(serviceType) is T newInstance) + { + serviceInstance = newInstance; + } + + return serviceInstance; + } + + private static object CreateInstance(Type instanceType) + { + var instance = default(object); + var constructors = instanceType + .GetConstructors(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic) + .OrderByDescending(x => x.GetParameters().Length); + + foreach (var constructor in constructors) + { + var parameters = constructor.GetParameters(); + var parametersLength = parameters.Length; + var createParameters = new object[parametersLength]; + + for (int i = 0; i < parametersLength; i++) + { + var parameterType = parameters[i].ParameterType; + var parameter = serviceProvider.GetService(parameterType); + + if (parameter is null) + { + parameter = CreateInstance(parameterType); + } + + createParameters[i] = parameter; + } + + try + { + instance = constructor.Invoke(createParameters); + + if (instance != null) + { + break; + } + } + catch (Exception e) + { + Console.WriteLine(e); + } + } + + return instance; + } + } +} diff --git a/Common/SIRTBroadcaster.UI/App.config b/Common/CommonConsole/app.config similarity index 79% rename from Common/SIRTBroadcaster.UI/App.config rename to Common/CommonConsole/app.config index 192e052b..a0cefc2f 100644 --- a/Common/SIRTBroadcaster.UI/App.config +++ b/Common/CommonConsole/app.config @@ -1,8 +1,5 @@  - - - diff --git a/Common/CommonConsole/packages.config b/Common/CommonConsole/packages.config deleted file mode 100644 index c865026e..00000000 --- a/Common/CommonConsole/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/Common/SIRTBroadcaster.Abstraction/SIRTBroadcaster.Abstraction.csproj b/Common/CommonCore/Common.Abstraction/Common.Abstraction.csproj similarity index 67% rename from Common/SIRTBroadcaster.Abstraction/SIRTBroadcaster.Abstraction.csproj rename to Common/CommonCore/Common.Abstraction/Common.Abstraction.csproj index 5dc2fda2..2a21bd41 100644 --- a/Common/SIRTBroadcaster.Abstraction/SIRTBroadcaster.Abstraction.csproj +++ b/Common/CommonCore/Common.Abstraction/Common.Abstraction.csproj @@ -4,12 +4,12 @@ Debug AnyCPU - {C27BA66C-C3A7-48A2-A644-CBA77E28E531} + {1743B349-E347-4DCF-A106-15AE3F95C3A3} Library Properties - SIRTBroadcaster.Abstraction - SIRTBroadcaster.Abstraction - v4.8.1 + Common.Abstraction + Common.Abstraction + v4.5 512 true @@ -31,9 +31,6 @@ 4 - - ..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll - @@ -44,20 +41,10 @@ - - - - - - - - - - + - \ No newline at end of file diff --git a/Common/SIRTBroadcaster.UI/Properties/AssemblyInfo.cs b/Common/CommonCore/Common.Abstraction/Properties/AssemblyInfo.cs similarity index 88% rename from Common/SIRTBroadcaster.UI/Properties/AssemblyInfo.cs rename to Common/CommonCore/Common.Abstraction/Properties/AssemblyInfo.cs index ba211a93..fbb92683 100644 --- a/Common/SIRTBroadcaster.UI/Properties/AssemblyInfo.cs +++ b/Common/CommonCore/Common.Abstraction/Properties/AssemblyInfo.cs @@ -5,11 +5,11 @@ 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("SIRTBroadcaster.UI")] +[assembly: AssemblyTitle("Common.Abstraction")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("SIRTBroadcaster.UI")] +[assembly: AssemblyProduct("Common.Abstraction")] [assembly: AssemblyCopyright("Copyright © 2023")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -20,7 +20,7 @@ using System.Runtime.InteropServices; [assembly: ComVisible(false)] // The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("2550b77d-d975-4a50-9c6a-526d4e07754d")] +[assembly: Guid("1743b349-e347-4dcf-a106-15ae3f95c3a3")] // Version information for an assembly consists of the following four values: // diff --git a/Common/OmniPlus/ExchangeHub/Contracts/EventHandlers.cs b/Common/OmniPlus/ExchangeHub/Contracts/EventHandlers.cs new file mode 100644 index 00000000..e868f489 --- /dev/null +++ b/Common/OmniPlus/ExchangeHub/Contracts/EventHandlers.cs @@ -0,0 +1,10 @@ +namespace ExchangeHub.Contracts +{ + public delegate void VoidEventHandler(string groupName); + + public delegate void IntEventHandler(int value, string groupName); + + public delegate void DoubleEventHandler(double value, string groupName); + + public delegate void StringEventHandler(string value, string groupName); +} diff --git a/Common/OmniPlus/ExchangeHub/Contracts/IExchangeEvents.cs b/Common/OmniPlus/ExchangeHub/Contracts/IExchangeEvents.cs new file mode 100644 index 00000000..f89865ed --- /dev/null +++ b/Common/OmniPlus/ExchangeHub/Contracts/IExchangeEvents.cs @@ -0,0 +1,43 @@ +namespace ExchangeHub.Contracts +{ + using System; + using System.Runtime.InteropServices; + + /// + /// Only for COM usage. + /// Exposes event handlers for the (VB6) master. + /// + [Guid("9FAA6100-E33F-46F7-9151-C85903472388")] + [InterfaceType(ComInterfaceType.InterfaceIsIDispatch)] + public interface IExchangeEvents + { + /// + /// On received: VB6 should stop all running tasks. + /// + void Disposed(string groupName); + + /// + /// On received: VB6 should start given flow. + /// On sent: VB6 notifies that the flow is reached. + /// + void StartFlow(double valueM3H, string groupName); + + /// + /// On received: VB6 should stop any flow. + /// On sent: VB6 notifies that the flow is stopped. + /// + void StopFlow(string groupName); + + /// + /// On received: VB6 should start reference volume messuring. + /// On sent: VB6 notifies that the reference messuring has started. + /// + void StartReferenceMessurement(int durationSeconds, string groupName); + + /// + /// On received: VB6 should stop reference volume messuring. + /// On sent: VB6 sends the volume messured. + /// + void StopReferenceMessurement(double valueM3, string groupName); + } +} diff --git a/Common/OmniPlus/ExchangeHub/Contracts/IExchangeHub.cs b/Common/OmniPlus/ExchangeHub/Contracts/IExchangeHub.cs new file mode 100644 index 00000000..42bdb309 --- /dev/null +++ b/Common/OmniPlus/ExchangeHub/Contracts/IExchangeHub.cs @@ -0,0 +1,10 @@ +namespace ExchangeHub.Contracts +{ + /// + /// Only for the SignalR host. + /// Exposes used events as methods. + /// + public interface IExchangeHub : IExchangeEvents + { + } +} diff --git a/Common/OmniPlus/ExchangeHub/Contracts/IExchangeHubMaster.cs b/Common/OmniPlus/ExchangeHub/Contracts/IExchangeHubMaster.cs new file mode 100644 index 00000000..a425d869 --- /dev/null +++ b/Common/OmniPlus/ExchangeHub/Contracts/IExchangeHubMaster.cs @@ -0,0 +1,22 @@ +namespace ExchangeHub.Contracts +{ + using System; + using System.Runtime.InteropServices; + + [Guid("21EA6C57-A004-456E-8D99-7DCAD3481205")] + [InterfaceType(ComInterfaceType.InterfaceIsIDispatch)] + public interface IExchangeHubMaster : IExchangeHubSlave + { + void Connect(string url); + + void SendDisposed(string _ = ""); + + void SendStartFlow(double volumeM3H, string _ = ""); + + void SendStopFlow(string _ = ""); + + void SendStartReferenceMessurement(int durationSeconds, string _ = ""); + + void SendStopReferenceMessurement(double volumeM3 = 0D, string _ = ""); + } +} diff --git a/Common/OmniPlus/ExchangeHub/Contracts/IExchangeHubSlave.cs b/Common/OmniPlus/ExchangeHub/Contracts/IExchangeHubSlave.cs new file mode 100644 index 00000000..06aad5ec --- /dev/null +++ b/Common/OmniPlus/ExchangeHub/Contracts/IExchangeHubSlave.cs @@ -0,0 +1,15 @@ +namespace ExchangeHub.Contracts +{ + public interface IExchangeHubSlave + { + event VoidEventHandler Disposed; + + event DoubleEventHandler StartFlow; + + event VoidEventHandler StopFlow; + + event IntEventHandler StartReferenceMessurement; + + event DoubleEventHandler StopReferenceMessurement; + } +} diff --git a/Common/OmniPlus/ExchangeHub/ExchangeConnection.cs b/Common/OmniPlus/ExchangeHub/ExchangeConnection.cs new file mode 100644 index 00000000..9004f012 --- /dev/null +++ b/Common/OmniPlus/ExchangeHub/ExchangeConnection.cs @@ -0,0 +1,236 @@ +namespace ExchangeHub +{ + using ExchangeHub.Contracts; + + using System; + using System.Collections.Generic; + using System.Runtime.InteropServices; + using System.Threading.Tasks; + + using Microsoft.AspNet.SignalR.Client; + + [ClassInterface(ClassInterfaceType.None)] + [ComSourceInterfaces(typeof(IExchangeEvents))] + [Guid("2ABFAC6C-9F3C-4702-9E08-4979A26577EF")] + [ProgId("ExchangeHub.ExchangeConnection")] + public class ExchangeConnection : IExchangeHubMaster + { + public const string GROUP_KEY = "GroupNameKey"; + public const string HUB_NAME = "ExchangeHub"; + public const string STR_EMPTY = ""; + + private static readonly string GroupName = Environment.MachineName; + + private readonly ICollection disposables; + + private HubConnection connection; + private IHubProxy proxy; + + public ExchangeConnection() + => this.disposables = new List(); + + public event VoidEventHandler Disposed; + public event DoubleEventHandler StartFlow; + public event VoidEventHandler StopFlow; + public event IntEventHandler StartReferenceMessurement; + public event DoubleEventHandler StopReferenceMessurement; + public event StringEventHandler StateChanged; + + public void Connect(string url) + { + this.connection = new HubConnection(url, queryString: $"{GROUP_KEY}={Environment.MachineName}"); + this.connection.Closed += this.Connection_Closed; + this.connection.ConnectionSlow += this.Connection_ConnectionSlow; + this.connection.Error += this.Connection_Error; + this.connection.Received += this.Connection_Received; + this.connection.Reconnected += this.Connection_Reconnected; + this.connection.Reconnecting += this.Connection_Reconnecting; + this.connection.StateChanged += this.Connection_StateChanged; + + this.proxy = this.connection.CreateHubProxy(HUB_NAME); + + this.disposables.Add(this.proxy.On( nameof(this.Disposed), this.ReceiveDisposed)); + this.disposables.Add(this.proxy.On( nameof(this.StartFlow), this.FlowStarted)); + this.disposables.Add(this.proxy.On( nameof(this.StopFlow), this.FlowStopped)); + this.disposables.Add(this.proxy.On( nameof(this.StartReferenceMessurement), this.MessurementStarted)); + this.disposables.Add(this.proxy.On( nameof(this.StopReferenceMessurement), this.MessurementStopped)); + + try + { + this.connection + .Start() + .Wait(); + } + catch (Exception e) + { + this.NotifyStateChanged(e.ToString()); + } + } + + public void Disconnect() + { + try + { + this.SendDisposed(); + + this.connection.Closed -= this.Connection_Closed; + this.connection.ConnectionSlow -= this.Connection_ConnectionSlow; + this.connection.Error -= this.Connection_Error; + this.connection.Received -= this.Connection_Received; + this.connection.Reconnected -= this.Connection_Reconnected; + this.connection.Reconnecting -= this.Connection_Reconnecting; + this.connection.StateChanged -= this.Connection_StateChanged; + + foreach (var disposable in this.disposables) + { + disposable.Dispose(); + } + + Task.Factory.StartNew(this.connection.Dispose); + + this.NotifyStateChanged($"Connection disconnected."); + } + catch (Exception e) + { + this.NotifyStateChanged(e.ToString()); + } + } + + public void SendDisposed(string _ = STR_EMPTY) + { + if (this.connection?.State == ConnectionState.Connected) + { + this.proxy.Invoke(nameof(this.Disposed), GroupName); + this.NotifyStateChanged($"{nameof(SendDisposed)}"); + } + } + + public void SendStartFlow(double volumeM3H, string _ = STR_EMPTY) + { + if (this.connection?.State == ConnectionState.Connected) + { + this.proxy.Invoke(nameof(this.StartFlow), volumeM3H, GroupName); + this.NotifyStateChanged($"{nameof(SendStartFlow)}"); + } + } + + public void SendStopFlow(string _ = STR_EMPTY) + { + if (this.connection?.State == ConnectionState.Connected) + { + this.proxy.Invoke(nameof(this.StopFlow), GroupName); + this.NotifyStateChanged($"{nameof(SendStopFlow)}"); + } + } + + public void SendStartReferenceMessurement(int durationSeconds, string _ = STR_EMPTY) + { + if (this.connection?.State == ConnectionState.Connected) + { + this.proxy.Invoke(nameof(this.StartReferenceMessurement), durationSeconds, GroupName); + this.NotifyStateChanged($"{nameof(SendStartReferenceMessurement)}"); + } + } + + public void SendStopReferenceMessurement(double volumeM3H = 0D, string _ = STR_EMPTY) + { + if (this.connection?.State == ConnectionState.Connected) + { + this.proxy.Invoke(nameof(this.StopReferenceMessurement), volumeM3H, GroupName); + this.NotifyStateChanged($"{nameof(SendStopReferenceMessurement)}"); + } + } + + private void ReceiveDisposed(string groupName) + { + if (GroupName == groupName) + { + this.Disposed?.Invoke(groupName); + this.NotifyStateChanged($"{nameof(Disposed)}"); + } + } + + private void FlowStarted(double volumeM3H, string groupName) + { + if (GroupName == groupName) + { + this.StartFlow?.Invoke(volumeM3H, groupName); + this.NotifyStateChanged($"{nameof(FlowStarted)} -> {volumeM3H}m³/h"); + } + } + + private void FlowStopped(string groupName) + { + if (GroupName == groupName) + { + this.StopFlow?.Invoke(groupName); + this.NotifyStateChanged($"{nameof(FlowStopped)}"); + } + } + + private void MessurementStarted(int seconds, string groupName) + { + if (GroupName == groupName) + { + this.StartReferenceMessurement?.Invoke(seconds, groupName); + this.NotifyStateChanged($"{nameof(MessurementStarted)} -> {seconds}s"); + } + } + + private void MessurementStopped(double volumeMessured, string groupName) + { + if (GroupName == groupName) + { + this.StopReferenceMessurement?.Invoke(volumeMessured, groupName); + this.NotifyStateChanged($"{nameof(MessurementStopped)} -> {volumeMessured}m³/h"); + } + } + + private void Connection_Closed() + { + this.NotifyStateChanged("HubConnection closed!"); + } + + private void Connection_ConnectionSlow() + { + this.NotifyStateChanged("HubConnection is about to timeout!"); + } + + private void Connection_Error(Exception e) + { + this.NotifyStateChanged(e.ToString()); + } + + private void Connection_Received(string data) + { + this.NotifyStateChanged(data); + } + + private void Connection_Reconnected() + { + this.NotifyStateChanged("HubConnection reconnected!"); + } + + private void Connection_Reconnecting() + { + this.NotifyStateChanged("HubConnection reconnecting!"); + } + + private void Connection_StateChanged(StateChange state) + { + this.NotifyStateChanged($"{state.OldState} -> {state.NewState}"); + } + + private void NotifyStateChanged(string text) + { + try + { + this.StateChanged?.Invoke(text, GroupName); + } + catch (Exception e) + { + this.StateChanged?.Invoke(e.ToString(), GroupName); + } + } + } +} diff --git a/Common/SIRTBroadcaster.Host/SIRTBroadcaster.Host.csproj b/Common/OmniPlus/ExchangeHub/ExchangeHub.csproj similarity index 68% rename from Common/SIRTBroadcaster.Host/SIRTBroadcaster.Host.csproj rename to Common/OmniPlus/ExchangeHub/ExchangeHub.csproj index 1caad504..d4494952 100644 --- a/Common/SIRTBroadcaster.Host/SIRTBroadcaster.Host.csproj +++ b/Common/OmniPlus/ExchangeHub/ExchangeHub.csproj @@ -4,12 +4,12 @@ Debug AnyCPU - {A9D1A99D-6E55-4394-86AD-B5C53E9225EB} + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D} Library Properties - SIRTBroadcaster.Host - SIRTBroadcaster.Host - v4.8.1 + ExchangeHub + ExchangeHub + v4.0 512 true @@ -32,32 +32,27 @@ - ..\packages\Microsoft.AspNet.SignalR.Client.2.4.3\lib\net45\Microsoft.AspNet.SignalR.Client.dll + ..\packages\Microsoft.AspNet.SignalR.Client.2.4.3\lib\net40\Microsoft.AspNet.SignalR.Client.dll - - ..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll + + ..\packages\Newtonsoft.Json.6.0.4\lib\net40\Newtonsoft.Json.dll - - - + + + + + + - - - - - - {C27BA66C-C3A7-48A2-A644-CBA77E28E531} - SIRTBroadcaster.Abstraction - diff --git a/LaaProductionWeb/LaaProduction.Personalization.Updater/Properties/AssemblyInfo.cs b/Common/OmniPlus/ExchangeHub/Properties/AssemblyInfo.cs similarity index 84% rename from LaaProductionWeb/LaaProduction.Personalization.Updater/Properties/AssemblyInfo.cs rename to Common/OmniPlus/ExchangeHub/Properties/AssemblyInfo.cs index 52692cbd..740b4171 100644 --- a/LaaProductionWeb/LaaProduction.Personalization.Updater/Properties/AssemblyInfo.cs +++ b/Common/OmniPlus/ExchangeHub/Properties/AssemblyInfo.cs @@ -5,11 +5,11 @@ 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("LaaProduction.Personalization.Updater")] +[assembly: AssemblyTitle("ExchangeHub")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("LaaProduction.Personalization.Updater")] +[assembly: AssemblyProduct("ExchangeHub")] [assembly: AssemblyCopyright("Copyright © 2023")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -17,10 +17,10 @@ using System.Runtime.InteropServices; // 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)] +[assembly: ComVisible(true)] // The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("4b7f1659-2a57-414c-a192-fa0a822b6612")] +[assembly: Guid("6033ff0c-cf32-4bc5-8efe-4774ccdc663d")] // Version information for an assembly consists of the following four values: // diff --git a/Common/SIRTBroadcaster.Client/packages.config b/Common/OmniPlus/ExchangeHub/packages.config similarity index 54% rename from Common/SIRTBroadcaster.Client/packages.config rename to Common/OmniPlus/ExchangeHub/packages.config index 962cb5a6..40ba5fb2 100644 --- a/Common/SIRTBroadcaster.Client/packages.config +++ b/Common/OmniPlus/ExchangeHub/packages.config @@ -1,5 +1,5 @@  - - + + \ No newline at end of file diff --git a/Common/OmniPlus/InspectionUI/App.config b/Common/OmniPlus/InspectionUI/App.config new file mode 100644 index 00000000..d1c9c3ea --- /dev/null +++ b/Common/OmniPlus/InspectionUI/App.config @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/Common/OmniPlus/InspectionUI/App.xaml b/Common/OmniPlus/InspectionUI/App.xaml new file mode 100644 index 00000000..f84439b0 --- /dev/null +++ b/Common/OmniPlus/InspectionUI/App.xaml @@ -0,0 +1,305 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Common/OmniPlus/InspectionUI/App.xaml.cs b/Common/OmniPlus/InspectionUI/App.xaml.cs new file mode 100644 index 00000000..48a1d946 --- /dev/null +++ b/Common/OmniPlus/InspectionUI/App.xaml.cs @@ -0,0 +1,26 @@ +namespace InspectionUI +{ + using InspectionUI.Models; + + using OmniPlus; + + using System; + using System.Windows; + + public partial class App : Application + { + public App() + { + ServiceProvider + .ServiceCollection + .AddSingleton(new OmniContext(Appsettings.OmniDB, Appsettings.OutputDirectory)); + } + + internal static event Action Exiting; + + protected override void OnExit(ExitEventArgs e) + { + Exiting?.Invoke(); + } + } +} diff --git a/Common/SIRTBroadcaster.UI/SIRTBroadcaster.UI.csproj b/Common/OmniPlus/InspectionUI/InspectionUI.csproj similarity index 51% rename from Common/SIRTBroadcaster.UI/SIRTBroadcaster.UI.csproj rename to Common/OmniPlus/InspectionUI/InspectionUI.csproj index 908dbfcc..39f55a16 100644 --- a/Common/SIRTBroadcaster.UI/SIRTBroadcaster.UI.csproj +++ b/Common/OmniPlus/InspectionUI/InspectionUI.csproj @@ -4,14 +4,17 @@ Debug AnyCPU - {2550B77D-D975-4A50-9C6A-526D4E07754D} + {01A28A70-D5E6-4898-8C22-E64400A3B80F} WinExe - SIRTBroadcaster.UI - SIRTBroadcaster.UI - v4.8.1 + InspectionUI + InspectionUI + v4.0 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 true true + AnyCPU @@ -33,78 +36,103 @@ 4 - - ..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll - + + + - - - - - - - - - ..\Ui\LegacyGenesisControl\obj\Debug\XylemCommonUiLegacyGenCtl.dll + + 4.0 + + + - - Form - - - MainForm.cs - - - - - UserControl - - - PruefungInitialisierung.cs - - - MainForm.cs - - - ResXFileCodeGenerator - Resources.Designer.cs + + MSBuild:Compile Designer - + + + ItemsGrid.xaml + + + + + + + + + + + + + + + + + + + + Designer + MSBuild:Compile + + + MSBuild:Compile + Designer + + + App.xaml + Code + + + MainWindow.xaml + Code + + + + + Code + True + True Resources.resx - - - SettingsSingleFileGenerator - Settings.Designer.cs - True Settings.settings True + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + - - {c27ba66c-c3a7-48a2-a644-cba77e28e531} - SIRTBroadcaster.Abstraction + + Always + + + + + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D} + ExchangeHub - - {4221F992-599E-498C-A409-6D1E70E0A6F9} - SIRTBroadcaster.Client - - - {a9d1a99d-6e55-4394-86ad-b5c53e9225eb} - SIRTBroadcaster.Host + + {F8D84B9A-0FCF-4083-B067-8C39B7314152} + OmniPlus diff --git a/Common/OmniPlus/InspectionUI/ItemsGrid.xaml b/Common/OmniPlus/InspectionUI/ItemsGrid.xaml new file mode 100644 index 00000000..4711f782 --- /dev/null +++ b/Common/OmniPlus/InspectionUI/ItemsGrid.xaml @@ -0,0 +1,80 @@ + + + + + + + + + +