diff options
| author | Roy <Roy.mail.net@gmail.com> | 2023-09-03 16:18:55 +0300 |
|---|---|---|
| committer | Roy <Roy.mail.net@gmail.com> | 2023-09-03 16:18:55 +0300 |
| commit | c66acc359b311ecc940f3c4e74bd9e21dc0bfd51 (patch) | |
| tree | 8869b9d48fbad776c94df401680afc43fc350e69 /Software/Visual_Studio | |
| parent | 6cdea71fa07d092139697d9c67651dade37aed96 (diff) | |
| parent | b271fe1c21172ed22a34b987a2cb9457b39ce8a3 (diff) | |
| download | Tango-c66acc359b311ecc940f3c4e74bd9e21dc0bfd51.tar.gz Tango-c66acc359b311ecc940f3c4e74bd9e21dc0bfd51.zip | |
Merged Eureka Branch !!!
Diffstat (limited to 'Software/Visual_Studio')
431 files changed, 34305 insertions, 1451 deletions
diff --git a/Software/Visual_Studio/Advanced Installer Projects/Eureka Installer.aip b/Software/Visual_Studio/Advanced Installer Projects/Eureka Installer.aip new file mode 100644 index 000000000..a0ee3bf70 --- /dev/null +++ b/Software/Visual_Studio/Advanced Installer Projects/Eureka Installer.aip @@ -0,0 +1,1131 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<DOCUMENT Type="Advanced Installer" CreateVersion="16.2" version="16.2" Modules="professional" RootPath="." Language="en" Id="{063B15FD-D9F7-4763-BDD8-90A08BF65800}"> + <COMPONENT cid="caphyon.advinst.msicomp.ProjectOptionsComponent"> + <ROW Name="HiddenItems" Value="AppXProductDetailsComponent;AppXDependenciesComponent;AppXAppDetailsComponent;AppXVisualAssetsComponent;AppXCapabilitiesComponent;AppXAppDeclarationsComponent;AppXUriRulesComponent;MsiJavaComponent;MsiDriverPackagesComponent;UserAccountsComponent;ScheduledTasksComponent;SqlConnectionComponent;AutorunComponent;FirewallExceptionComponent;GameUxComponent;MsiDirectEditorComponent;SharePointSlnComponent;SilverlightSlnComponent;MultipleInstancesComponent;SccmComponent;ActSyncAppComponent;FixupComponent"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.MsiPropsComponent"> + <ROW Property="AI_BITMAP_DISPLAY_MODE" Value="0"/> + <ROW Property="AI_FINDEXE_TITLE" Value="Select the installation package for [|ProductName]" ValueLocId="AI.Property.FindExeTitle"/> + <ROW Property="AI_PREDEF_LCONDS_PROPS" Value="AI_DETECTED_INTERNET_CONNECTION"/> + <ROW Property="AI_RUN_AS_ADMIN" Value="0"/> + <ROW Property="ALLUSERS" Value="1"/> + <ROW Property="ARPCOMMENTS" Value="This installer database contains the logic and data required to install [|ProductName]." ValueLocId="*"/> + <ROW Property="ARPNOREPAIR" MultiBuildValue="DefaultBuild:1"/> + <ROW Property="ARPPRODUCTICON" Value="Tango.PPC.UI.exe" Type="8"/> + <ROW Property="CTRLS" Value="2"/> + <ROW Property="ExtractFilesFirst" Value="1"/> + <ROW Property="Manufacturer" Value="Twine Solutions LTD"/> + <ROW Property="ProductCode" Value="1033:{9F0F61B8-72B3-4439-A090-6CF84FF9C642} " Type="16"/> + <ROW Property="ProductLanguage" Value="1033"/> + <ROW Property="ProductName" Value="Twine X4"/> + <ROW Property="ProductVersion" Value="2.0.13.0" Type="32" TargetFile="Tango.PPC.UI.exe"/> + <ROW Property="SecureCustomProperties" Value="OLDPRODUCTS;AI_NEWERPRODUCTFOUND;AI_SETUPEXEPATH;SETUPEXEDIR"/> + <ROW Property="UpgradeCode" Value="{4D8FDA03-F63E-4002-9A96-4BDE65B04355}"/> + <ROW Property="WindowsType9X" MultiBuildValue="DefaultBuild:Windows 9x/ME" ValueLocId="-"/> + <ROW Property="WindowsType9XDisplay" MultiBuildValue="DefaultBuild:Windows 9x/ME" ValueLocId="-"/> + <ROW Property="WindowsTypeNT40" MultiBuildValue="DefaultBuild:Windows NT 4.0" ValueLocId="-"/> + <ROW Property="WindowsTypeNT40Display" MultiBuildValue="DefaultBuild:Windows NT 4.0" ValueLocId="-"/> + <ROW Property="WindowsTypeNT50" MultiBuildValue="DefaultBuild:Windows 2000" ValueLocId="-"/> + <ROW Property="WindowsTypeNT50Display" MultiBuildValue="DefaultBuild:Windows 2000" ValueLocId="-"/> + <ROW Property="WindowsTypeNT5X" MultiBuildValue="DefaultBuild:Windows XP/2003 RTM, Windows XP/2003 SP1, Windows XP SP2 x86" ValueLocId="-"/> + <ROW Property="WindowsTypeNT5XDisplay" MultiBuildValue="DefaultBuild:Windows XP/2003 RTM, Windows XP/2003 SP1, Windows XP SP2 x86" ValueLocId="-"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.MsiDirsComponent"> + <ROW Directory="APPDIR" Directory_Parent="TARGETDIR" DefaultDir="APPDIR:." IsPseudoRoot="1"/> + <ROW Directory="Configurations_Dir" Directory_Parent="SQLExaminer_Dir" DefaultDir="CONFIG~1|Configurations"/> + <ROW Directory="DesktopFolder" Directory_Parent="TARGETDIR" DefaultDir="DESKTO~1|DesktopFolder" IsPseudoRoot="1"/> + <ROW Directory="Packages_Dir" Directory_Parent="APPDIR" DefaultDir="Packages"/> + <ROW Directory="SHORTCUTDIR" Directory_Parent="TARGETDIR" DefaultDir="SHORTC~1|SHORTCUTDIR" IsPseudoRoot="1"/> + <ROW Directory="SQLExaminer_Dir" Directory_Parent="APPDIR" DefaultDir="SQLEXA~1|SQLExaminer"/> + <ROW Directory="TARGETDIR" DefaultDir="SourceDir"/> + <ROW Directory="win7x64_Dir" Directory_Parent="APPDIR" DefaultDir="win7-x64"/> + <ROW Directory="win7x86_Dir" Directory_Parent="APPDIR" DefaultDir="win7-x86"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.MsiCompsComponent"> + <ROW Component="AI_ExePath" ComponentId="{0EE00C00-4148-477E-891A-4759FC9DF13B}" Directory_="APPDIR" Attributes="4" KeyPath="AI_ExePath"/> + <ROW Component="APPDIR" ComponentId="{A5F469AF-2587-435E-AE20-479C6D654E91}" Directory_="APPDIR" Attributes="0"/> + <ROW Component="ColorMine.dll" ComponentId="{9B139184-3E64-4BB9-955B-58583A266459}" Directory_="APPDIR" Attributes="0" KeyPath="ColorMine.dll"/> + <ROW Component="CommandLine.dll" ComponentId="{B36C45CA-B159-4968-A2D5-0BBA85EDBB64}" Directory_="APPDIR" Attributes="0" KeyPath="CommandLine.dll"/> + <ROW Component="ControlzEx.dll" ComponentId="{531AF187-B39C-48E6-9136-6238854A1C75}" Directory_="APPDIR" Attributes="0" KeyPath="ControlzEx.dll"/> + <ROW Component="DirectShowLib2005.dll" ComponentId="{15923B8D-71FF-46B0-B1E0-2753A5765F7E}" Directory_="APPDIR" Attributes="0" KeyPath="DirectShowLib2005.dll"/> + <ROW Component="DocumentFormat.OpenXml.dll" ComponentId="{4EB39E8C-3B91-49E5-AA7A-281583E66544}" Directory_="APPDIR" Attributes="0" KeyPath="DocumentFormat.OpenXml.dll"/> + <ROW Component="EFCache.dll" ComponentId="{3BFE31B3-158C-47AA-80A9-9FE8E6EB67F5}" Directory_="APPDIR" Attributes="0" KeyPath="EFCache.dll"/> + <ROW Component="EVRPresenter32.dll" ComponentId="{DC63912F-BBFC-432B-862E-622B00F54C32}" Directory_="APPDIR" Attributes="0" KeyPath="EVRPresenter32.dll"/> + <ROW Component="EVRPresenter64.dll" ComponentId="{4171532E-2880-4310-AF72-67D4F28BF5FB}" Directory_="APPDIR" Attributes="256" KeyPath="EVRPresenter64.dll"/> + <ROW Component="EntityFramework.SqlServer.dll" ComponentId="{728B6CE9-DD44-42CA-8884-95BD5A3466AA}" Directory_="APPDIR" Attributes="0" KeyPath="EntityFramework.SqlServer.dll"/> + <ROW Component="EntityFramework.dll" ComponentId="{67C07F0F-D157-4DA1-B657-991509D43F57}" Directory_="APPDIR" Attributes="0" KeyPath="EntityFramework.dll"/> + <ROW Component="FluentFTP.dll" ComponentId="{C3DD16E3-01F3-4EA6-8BAE-C76FE5BEB694}" Directory_="APPDIR" Attributes="0" KeyPath="FluentFTP.dll"/> + <ROW Component="FontAwesome.WPF.dll" ComponentId="{DD74F47C-D1FA-42A6-A3CF-715E58B66310}" Directory_="APPDIR" Attributes="0" KeyPath="FontAwesome.WPF.dll"/> + <ROW Component="GetVersionTag.bat" ComponentId="{E2BA3D62-2C11-409E-8679-8284CDEB99A9}" Directory_="APPDIR" Attributes="0" KeyPath="GetVersionTag.bat" Type="0"/> + <ROW Component="Google.Protobuf.dll" ComponentId="{43B7CE55-F225-4BD1-97E4-850FD5C984AF}" Directory_="APPDIR" Attributes="0" KeyPath="Google.Protobuf.dll"/> + <ROW Component="HiraokaHyperTools.PdfSharp.Xps.dll" ComponentId="{9DECD027-E42B-406A-9E63-814E1C379A6B}" Directory_="APPDIR" Attributes="0" KeyPath="HiraokaHyperTools.PdfSharp.Xps.dll"/> + <ROW Component="HiraokaHyperTools.PdfSharpWPF.dll" ComponentId="{2557B339-79A2-48A7-9E6C-636EF55C295F}" Directory_="APPDIR" Attributes="0" KeyPath="HiraokaHyperTools.PdfSharpWPF.dll"/> + <ROW Component="Hyak.Common.dll" ComponentId="{F48428A8-0279-429A-B60A-DF76A70E47E8}" Directory_="APPDIR" Attributes="0" KeyPath="Hyak.Common.dll"/> + <ROW Component="Interop.MSDASC.dll" ComponentId="{F02E80A8-BDDA-4435-9089-6BC46F362BC5}" Directory_="SQLExaminer_Dir" Attributes="0" KeyPath="Interop.MSDASC.dll"/> + <ROW Component="Ionic.Zip.dll" ComponentId="{5EA483CE-3D94-4644-8945-A64E3895B695}" Directory_="APPDIR" Attributes="0" KeyPath="Ionic.Zip.dll"/> + <ROW Component="JWT.dll" ComponentId="{CBA6AA40-B344-44C8-B54C-94B57A26DF9F}" Directory_="APPDIR" Attributes="0" KeyPath="JWT.dll"/> + <ROW Component="LibGit2Sharp.dll" ComponentId="{3BBC9D3F-BBCC-4EBE-96FC-CA219B8538E6}" Directory_="APPDIR" Attributes="0" KeyPath="LibGit2Sharp.dll"/> + <ROW Component="License.lic" ComponentId="{2BB84404-F410-4628-B161-77CD604DABC5}" Directory_="SQLExaminer_Dir" Attributes="0" KeyPath="License.lic" Type="0"/> + <ROW Component="LiteDB.dll" ComponentId="{19DC3560-1C92-492E-BD9B-DC36E71185B2}" Directory_="APPDIR" Attributes="0" KeyPath="LiteDB.dll"/> + <ROW Component="Microsoft.AspNet.SignalR.Client.dll" ComponentId="{8359389B-8413-48E3-9361-27D8DB9744EB}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.AspNet.SignalR.Client.dll"/> + <ROW Component="Microsoft.Azure.ActiveDirectory.GraphClient.dll" ComponentId="{3925347D-F3C9-4305-B16A-0ED7EC469370}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.Azure.ActiveDirectory.GraphClient.dll"/> + <ROW Component="Microsoft.Azure.Common.NetFramework.dll" ComponentId="{1A6C9C10-4CBB-4035-BECD-57E7DCA5D682}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.Azure.Common.NetFramework.dll"/> + <ROW Component="Microsoft.Azure.Common.dll" ComponentId="{9C75A42B-E2D9-42AC-8E0D-9DD77F7909F5}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.Azure.Common.dll"/> + <ROW Component="Microsoft.Azure.ResourceManager.dll" ComponentId="{6F437382-182A-4715-AAB3-2FB0862F73C2}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.Azure.ResourceManager.dll"/> + <ROW Component="Microsoft.Data.Edm.dll" ComponentId="{B99E42BE-BF1B-4ABF-AE7E-6BBE29B9A120}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.Data.Edm.dll"/> + <ROW Component="Microsoft.Data.OData.dll" ComponentId="{6A9CCDC9-9F38-48A3-931B-A0FD4FC04142}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.Data.OData.dll"/> + <ROW Component="Microsoft.Data.Services.Client.dll" ComponentId="{C7C4F083-FDF1-45A7-8787-58F0788A3467}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.Data.Services.Client.dll"/> + <ROW Component="Microsoft.IdentityModel.Clients.ActiveDirectory.dll" ComponentId="{33A72E59-DC78-457D-AD80-7BE99191B663}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.IdentityModel.Clients.ActiveDirectory.dll"/> + <ROW Component="Microsoft.ServiceBus.dll" ComponentId="{C08F188F-0E73-4FEB-9B56-849D9604E6F4}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.ServiceBus.dll"/> + <ROW Component="Microsoft.SqlServer.AzureStorageEnum.dll" ComponentId="{F3633EB3-CB5B-407D-8501-CDDFEAB5AC6F}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.SqlServer.AzureStorageEnum.dll"/> + <ROW Component="Microsoft.SqlServer.ConnectionInfo.dll" ComponentId="{380CCB99-BE98-425C-A111-9BDF520EB71C}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.SqlServer.ConnectionInfo.dll"/> + <ROW Component="Microsoft.SqlServer.Diagnostics.STrace.dll" ComponentId="{76B98EF0-711F-4BF4-B463-837C27237626}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.SqlServer.Diagnostics.STrace.dll"/> + <ROW Component="Microsoft.SqlServer.Dmf.Common.dll" ComponentId="{4EEF836D-0983-4FC1-8A80-2E6741CE5D99}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.SqlServer.Dmf.Common.dll"/> + <ROW Component="Microsoft.SqlServer.Management.Sdk.Sfc.dll" ComponentId="{A02BA871-E627-4639-95CE-676F7B627F19}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.SqlServer.Management.Sdk.Sfc.dll"/> + <ROW Component="Microsoft.SqlServer.ServiceBrokerEnum.dll" ComponentId="{8A789C43-2F56-4493-A514-AC51D17D69FA}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.SqlServer.ServiceBrokerEnum.dll"/> + <ROW Component="Microsoft.SqlServer.Smo.dll" ComponentId="{DC57E02A-BAC2-48A2-88C5-29A1F6285135}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.SqlServer.Smo.dll"/> + <ROW Component="Microsoft.SqlServer.SqlClrProvider.dll" ComponentId="{02030230-D354-4428-A191-0562169376E0}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.SqlServer.SqlClrProvider.dll"/> + <ROW Component="Microsoft.SqlServer.SqlEnum.dll" ComponentId="{C0E7CCEE-126D-4D23-8BEA-46DFB7C5E5DC}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.SqlServer.SqlEnum.dll"/> + <ROW Component="Microsoft.TeamFoundation.Client.dll" ComponentId="{5C41618C-8B34-4EA9-8AAF-EA13F8E314D7}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.Client.dll"/> + <ROW Component="Microsoft.TeamFoundation.Common.dll" ComponentId="{9D6AEB90-A2F2-4C2B-BE82-62A002DE4009}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.Common.dll"/> + <ROW Component="Microsoft.TeamFoundation.Core.WebApi.dll" ComponentId="{0F01E78E-01C2-40B3-BB4A-DF2BDE4923B1}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.Core.WebApi.dll"/> + <ROW Component="Microsoft.TeamFoundation.Diff.dll" ComponentId="{8F975948-A4D3-4B6A-A350-F7F4B8D3FF03}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.Diff.dll"/> + <ROW Component="Microsoft.TeamFoundation.Work.WebApi.dll" ComponentId="{56BF6DDA-F1F7-4E38-B538-9788F4F5FC92}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.Work.WebApi.dll"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader.dll" ComponentId="{3EC89528-5C01-4534-983A-A4AFB3FEABD2}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader.dll"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.dll" ComponentId="{4460D385-70BF-4223-9C53-54A3550A4B8E}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.dll"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.dll" ComponentId="{06609E49-5BE7-43F6-932D-B8EE3A96EBC9}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.dll"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Common.dll" ComponentId="{1659A14D-ABCE-424E-8E34-41B488501FD1}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Common.dll"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Proxy.dll" ComponentId="{1E90E451-1392-4E87-9A45-EC788C860335}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Proxy.dll"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.WebApi.dll" ComponentId="{B9225D16-72E8-40A3-84D4-B7896C1ECDA7}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.WebApi.dll"/> + <ROW Component="Microsoft.VisualStudio.Services.Client.Interactive.dll" ComponentId="{78AC1534-08FE-4C93-BB6C-B33A5AE63E97}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Client.Interactive.dll"/> + <ROW Component="Microsoft.VisualStudio.Services.Common.dll" ComponentId="{7AF525A9-3D5A-4600-A4F7-6F407820F23B}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Common.dll"/> + <ROW Component="Microsoft.VisualStudio.Services.WebApi.dll" ComponentId="{7B099B1C-1379-4CBC-8761-AA946595700A}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.WebApi.dll"/> + <ROW Component="Microsoft.WITDataStore32.dll" ComponentId="{EE603CD8-1E82-4758-80AA-E4802A2D06F6}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.WITDataStore32.dll"/> + <ROW Component="Microsoft.Win32.Primitives.dll" ComponentId="{A361A734-5D52-4BBA-9D96-F64FC8BCD4F8}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.Win32.Primitives.dll"/> + <ROW Component="Microsoft.WindowsAPICodePack.Shell.dll" ComponentId="{4B7A01A1-19A8-425B-AEEC-FBE59915FAB8}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.WindowsAPICodePack.Shell.dll"/> + <ROW Component="Microsoft.WindowsAPICodePack.dll" ComponentId="{D685DB51-A99E-4520-AFF6-E254CE3BA4A4}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.WindowsAPICodePack.dll"/> + <ROW Component="Microsoft.WindowsAzure.Storage.dll" ComponentId="{2CEEB2CF-6686-4B69-AFCF-A0C909D80B38}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.WindowsAzure.Storage.dll"/> + <ROW Component="Newtonsoft.Json.dll" ComponentId="{8AE7E6F8-3BC1-4251-B5A1-C40251299D64}" Directory_="APPDIR" Attributes="0" KeyPath="Newtonsoft.Json.dll"/> + <ROW Component="OverrideData.xml" ComponentId="{91EE7227-E457-4018-99A9-0E5B3CEB1A9B}" Directory_="Configurations_Dir" Attributes="0" KeyPath="OverrideData.xml" Type="0"/> + <ROW Component="Packages" ComponentId="{629384BE-9E66-44DD-91D4-465581612ECA}" Directory_="Packages_Dir" Attributes="0"/> + <ROW Component="ProductInformation" ComponentId="{40D8A01C-085B-4573-A849-57B2179D84F5}" Directory_="APPDIR" Attributes="4" KeyPath="Version"/> + <ROW Component="Quamotion.TurboJpegWrapper.dll" ComponentId="{466D5D51-5EAA-4D17-8DE3-1A4B686DBA15}" Directory_="APPDIR" Attributes="0" KeyPath="Quamotion.TurboJpegWrapper.dll"/> + <ROW Component="RazorEngine.dll" ComponentId="{E57A4ECC-7D13-41F6-B1AC-CE58163CB860}" Directory_="APPDIR" Attributes="0" KeyPath="RazorEngine.dll"/> + <ROW Component="RealTimeGraphX.WPF.dll" ComponentId="{BD65D4FC-0030-480F-AD34-DA4463E0AED1}" Directory_="APPDIR" Attributes="0" KeyPath="RealTimeGraphX.WPF.dll"/> + <ROW Component="RealTimeGraphX.dll" ComponentId="{04A06730-8231-49D1-B1B8-ACDCD61F0DDF}" Directory_="APPDIR" Attributes="0" KeyPath="RealTimeGraphX.dll"/> + <ROW Component="SA.Binary.dll" ComponentId="{80FA77FB-9D9B-4B98-AA26-4B9CBD0E2BAF}" Directory_="SQLExaminer_Dir" Attributes="0" KeyPath="SA.Binary.dll"/> + <ROW Component="SA.CodeView.dll" ComponentId="{D8469E76-F243-44D2-9852-2F574149506D}" Directory_="SQLExaminer_Dir" Attributes="0" KeyPath="SA.CodeView.dll"/> + <ROW Component="SA.CommonTypes.dll" ComponentId="{F282F23C-78DF-4F53-8230-C256EBB13689}" Directory_="SQLExaminer_Dir" Attributes="0" KeyPath="SA.CommonTypes.dll"/> + <ROW Component="SA.CommonUI.dll" ComponentId="{107AEBD2-B785-49D1-99DA-75F773C1559C}" Directory_="SQLExaminer_Dir" Attributes="0" KeyPath="SA.CommonUI.dll"/> + <ROW Component="SA.SCBaseProvider.dll" ComponentId="{87B2A016-59A7-42E7-9948-00F0F43027B0}" Directory_="SQLExaminer_Dir" Attributes="0" KeyPath="SA.SCBaseProvider.dll"/> + <ROW Component="SA.SQLDataExaminer.Engine.dll" ComponentId="{56173595-3727-44B6-8B71-C41DB73BAAF5}" Directory_="SQLExaminer_Dir" Attributes="0" KeyPath="SA.SQLDataExaminer.Engine.dll"/> + <ROW Component="SA.SQLExaminer.Engine.dll" ComponentId="{6503E0B9-CD87-431E-B1BE-ABF91751894F}" Directory_="SQLExaminer_Dir" Attributes="0" KeyPath="SA.SQLExaminer.Engine.dll"/> + <ROW Component="SA.Utils.ErrorReporter.dll" ComponentId="{B5A0BB96-D4E1-4B2B-B4B0-ACE7800C27E2}" Directory_="SQLExaminer_Dir" Attributes="0" KeyPath="SA.Utils.ErrorReporter.dll"/> + <ROW Component="SHORTCUTDIR" ComponentId="{E06BEFF4-7657-4641-A3DC-56277AC8566D}" Directory_="SHORTCUTDIR" Attributes="0"/> + <ROW Component="SQLDECmd.exe" ComponentId="{193275C4-245E-4D62-BC5F-31E5DF3092CC}" Directory_="SQLExaminer_Dir" Attributes="0" KeyPath="SQLDECmd.exe"/> + <ROW Component="SQLECmd.exe" ComponentId="{9894A14D-DFBE-4B71-93E7-A5ED0FE515AE}" Directory_="SQLExaminer_Dir" Attributes="0" KeyPath="SQLECmd.exe"/> + <ROW Component="SharpDX.DXGI.dll" ComponentId="{6EB41928-897B-4B43-BF61-5A020A7E93E6}" Directory_="APPDIR" Attributes="0" KeyPath="SharpDX.DXGI.dll"/> + <ROW Component="SharpDX.Direct3D11.dll" ComponentId="{3F722702-CC64-497F-9EC2-B9931F1658C3}" Directory_="APPDIR" Attributes="0" KeyPath="SharpDX.Direct3D11.dll"/> + <ROW Component="SharpDX.Mathematics.dll" ComponentId="{CF277791-8421-451B-B4BF-34AA5B5541F1}" Directory_="APPDIR" Attributes="0" KeyPath="SharpDX.Mathematics.dll"/> + <ROW Component="SharpDX.dll" ComponentId="{DB04B87D-65D8-4646-AD5F-0F2B8B29DA93}" Directory_="APPDIR" Attributes="0" KeyPath="SharpDX.dll"/> + <ROW Component="SimpleValidator.dll" ComponentId="{8105A679-43DE-451F-A21E-E7BF67AFB608}" Directory_="APPDIR" Attributes="0" KeyPath="SimpleValidator.dll"/> + <ROW Component="System.AppContext.dll" ComponentId="{A67AD5C7-3A82-4729-A923-7BB6547F28AE}" Directory_="APPDIR" Attributes="0" KeyPath="System.AppContext.dll"/> + <ROW Component="System.Collections.Concurrent.dll" ComponentId="{CC6AC3EB-9C3D-4205-B3DD-F6947E049279}" Directory_="APPDIR" Attributes="0" KeyPath="System.Collections.Concurrent.dll"/> + <ROW Component="System.Collections.NonGeneric.dll" ComponentId="{FE472305-462B-47F5-8351-7DD1ED9A6CF9}" Directory_="APPDIR" Attributes="0" KeyPath="System.Collections.NonGeneric.dll"/> + <ROW Component="System.Collections.Specialized.dll" ComponentId="{87B55B16-5AB8-4533-9887-B3191D415CB6}" Directory_="APPDIR" Attributes="0" KeyPath="System.Collections.Specialized.dll"/> + <ROW Component="System.Collections.dll" ComponentId="{4808331A-8932-408B-867F-C5381CD79F55}" Directory_="APPDIR" Attributes="0" KeyPath="System.Collections.dll"/> + <ROW Component="System.ComponentModel.EventBasedAsync.dll" ComponentId="{A50C66A4-EEC7-493D-8979-2329237F0DC9}" Directory_="APPDIR" Attributes="0" KeyPath="System.ComponentModel.EventBasedAsync.dll"/> + <ROW Component="System.ComponentModel.Primitives.dll" ComponentId="{7912244B-3BF1-4738-85EB-F56B15CD30BC}" Directory_="APPDIR" Attributes="0" KeyPath="System.ComponentModel.Primitives.dll"/> + <ROW Component="System.ComponentModel.TypeConverter.dll" ComponentId="{A8DE45F4-32E0-4CD5-98DC-44F03B161921}" Directory_="APPDIR" Attributes="0" KeyPath="System.ComponentModel.TypeConverter.dll"/> + <ROW Component="System.ComponentModel.dll" ComponentId="{E68706EF-B964-49D8-B5FA-EB8177E4CADE}" Directory_="APPDIR" Attributes="0" KeyPath="System.ComponentModel.dll"/> + <ROW Component="System.Console.dll" ComponentId="{48707FC1-E092-4A5A-AA97-EE1B2B445C87}" Directory_="APPDIR" Attributes="0" KeyPath="System.Console.dll"/> + <ROW Component="System.Data.Common.dll" ComponentId="{D00D1950-3A35-43BE-9AFF-3816D1149742}" Directory_="APPDIR" Attributes="0" KeyPath="System.Data.Common.dll"/> + <ROW Component="System.Data.SQLite.EF6.dll" ComponentId="{0DFB0FC1-0100-419F-B556-188FEE5F1DF3}" Directory_="APPDIR" Attributes="0" KeyPath="System.Data.SQLite.EF6.dll"/> + <ROW Component="System.Data.SQLite.Linq.dll" ComponentId="{2F09659A-7493-4421-B722-CDAFA4EAB33A}" Directory_="APPDIR" Attributes="0" KeyPath="System.Data.SQLite.Linq.dll"/> + <ROW Component="System.Data.SQLite.dll" ComponentId="{FA4C9531-DADE-4B95-BEDB-778B1D7BDBF0}" Directory_="APPDIR" Attributes="0" KeyPath="System.Data.SQLite.dll"/> + <ROW Component="System.Diagnostics.Contracts.dll" ComponentId="{719DE5EC-1DA5-4117-ABF6-D2FC10C8BEF1}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.Contracts.dll"/> + <ROW Component="System.Diagnostics.Debug.dll" ComponentId="{1676AA51-40BD-4995-BA76-7F17A138FEC2}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.Debug.dll"/> + <ROW Component="System.Diagnostics.FileVersionInfo.dll" ComponentId="{B4852A91-0CC3-4941-B8E8-A0C341636B52}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.FileVersionInfo.dll"/> + <ROW Component="System.Diagnostics.Process.dll" ComponentId="{EA11FBE2-6159-4921-810F-838319F879E0}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.Process.dll"/> + <ROW Component="System.Diagnostics.StackTrace.dll" ComponentId="{D9631AE4-45F7-45D8-A6B4-D92EE6F0016A}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.StackTrace.dll"/> + <ROW Component="System.Diagnostics.TextWriterTraceListener.dll" ComponentId="{3A75E709-BF48-49A5-B6CE-8BB0622EA661}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.TextWriterTraceListener.dll"/> + <ROW Component="System.Diagnostics.Tools.dll" ComponentId="{4B38C158-CF9B-4B13-90C9-DB93F00A66B3}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.Tools.dll"/> + <ROW Component="System.Diagnostics.TraceSource.dll" ComponentId="{706D31E0-D3A6-4A1A-A129-99C6F83767EE}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.TraceSource.dll"/> + <ROW Component="System.Diagnostics.Tracing.dll" ComponentId="{4486BFA3-696A-43E7-B3F6-8D51DBE3F6C6}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.Tracing.dll"/> + <ROW Component="System.Drawing.Primitives.dll" ComponentId="{FE26ECDA-8198-4D73-B456-BC3EBDFB79CA}" Directory_="APPDIR" Attributes="0" KeyPath="System.Drawing.Primitives.dll"/> + <ROW Component="System.Dynamic.Runtime.dll" ComponentId="{20D6F0C0-7191-4651-8244-64B03DD1A846}" Directory_="APPDIR" Attributes="0" KeyPath="System.Dynamic.Runtime.dll"/> + <ROW Component="System.Globalization.Calendars.dll" ComponentId="{94989E3E-F2D0-4742-BED7-09991DA04CFB}" Directory_="APPDIR" Attributes="0" KeyPath="System.Globalization.Calendars.dll"/> + <ROW Component="System.Globalization.Extensions.dll" ComponentId="{76C98276-6636-477C-8294-7967A030268C}" Directory_="APPDIR" Attributes="0" KeyPath="System.Globalization.Extensions.dll"/> + <ROW Component="System.Globalization.dll" ComponentId="{534BF954-54A0-4A02-895C-0D1AEE194619}" Directory_="APPDIR" Attributes="0" KeyPath="System.Globalization.dll"/> + <ROW Component="System.IO.Compression.FileSystem.dll" ComponentId="{F165C128-766B-415D-995A-0EF0EAFCB426}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.Compression.FileSystem.dll"/> + <ROW Component="System.IO.Compression.ZipFile.dll" ComponentId="{7E28CB83-78C9-4B91-B970-3BB18D5B5C06}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.Compression.ZipFile.dll"/> + <ROW Component="System.IO.Compression.dll" ComponentId="{70B66455-64C4-437F-9669-6206D84EFEE0}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.Compression.dll"/> + <ROW Component="System.IO.FileSystem.DriveInfo.dll" ComponentId="{BE69DE93-1B85-43D8-8C87-3E01295EDBAA}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.FileSystem.DriveInfo.dll"/> + <ROW Component="System.IO.FileSystem.Primitives.dll" ComponentId="{62B564D3-7868-4C07-8A36-F8F1FC1A7234}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.FileSystem.Primitives.dll"/> + <ROW Component="System.IO.FileSystem.Watcher.dll" ComponentId="{FA9CF368-317F-4895-BFC4-A89A4F987AEA}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.FileSystem.Watcher.dll"/> + <ROW Component="System.IO.FileSystem.dll" ComponentId="{3431654B-8225-4C07-BEC5-E073C313A14C}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.FileSystem.dll"/> + <ROW Component="System.IO.IsolatedStorage.dll" ComponentId="{4A3CE8CD-DB48-4963-B00D-490E3F5FE8EA}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.IsolatedStorage.dll"/> + <ROW Component="System.IO.MemoryMappedFiles.dll" ComponentId="{7521D5AA-538B-4C9E-AC06-A8108906A3A5}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.MemoryMappedFiles.dll"/> + <ROW Component="System.IO.Pipes.dll" ComponentId="{6706EB39-04A6-4C31-A951-3715D32321B9}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.Pipes.dll"/> + <ROW Component="System.IO.UnmanagedMemoryStream.dll" ComponentId="{CBE47FB3-B580-4CB3-BF98-AD69E2ABD574}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.UnmanagedMemoryStream.dll"/> + <ROW Component="System.IO.dll" ComponentId="{EEBBDF01-0CD2-4057-AD76-9076C3DA37AD}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.dll"/> + <ROW Component="System.IdentityModel.Tokens.Jwt.dll" ComponentId="{5C3A6074-5479-472B-B87D-BF6C17F5A610}" Directory_="APPDIR" Attributes="0" KeyPath="System.IdentityModel.Tokens.Jwt.dll"/> + <ROW Component="System.Linq.Expressions.dll" ComponentId="{876602BF-EC80-40A7-B709-37C5777B5467}" Directory_="APPDIR" Attributes="0" KeyPath="System.Linq.Expressions.dll"/> + <ROW Component="System.Linq.Parallel.dll" ComponentId="{6DDC88FC-7F8F-4B92-85FC-D97551EE48D5}" Directory_="APPDIR" Attributes="0" KeyPath="System.Linq.Parallel.dll"/> + <ROW Component="System.Linq.Queryable.dll" ComponentId="{1DC6D8CB-37FB-448F-9DD1-FF034D84F003}" Directory_="APPDIR" Attributes="0" KeyPath="System.Linq.Queryable.dll"/> + <ROW Component="System.Linq.dll" ComponentId="{04A2EEA2-6DBE-4084-B67E-FA5A31DD5741}" Directory_="APPDIR" Attributes="0" KeyPath="System.Linq.dll"/> + <ROW Component="System.Net.Http.Formatting.dll" ComponentId="{EFB30A9E-95D8-4092-8172-0D1B9896ACA0}" Directory_="APPDIR" Attributes="0" KeyPath="System.Net.Http.Formatting.dll"/> + <ROW Component="System.Net.Http.dll" ComponentId="{15B7ACD4-BF3C-400A-BD0C-A5EEABB25631}" Directory_="APPDIR" Attributes="0" KeyPath="System.Net.Http.dll"/> + <ROW Component="System.Net.NameResolution.dll" ComponentId="{2635863A-F155-40DA-8AAB-FB594184EC5F}" Directory_="APPDIR" Attributes="0" KeyPath="System.Net.NameResolution.dll"/> + <ROW Component="System.Net.NetworkInformation.dll" ComponentId="{CA1C56F5-6620-4DC6-8688-223B200A6D68}" Directory_="APPDIR" Attributes="0" KeyPath="System.Net.NetworkInformation.dll"/> + <ROW Component="System.Net.Ping.dll" ComponentId="{EDEBD422-4D43-4C41-A61C-BC5BD55D0E26}" Directory_="APPDIR" Attributes="0" KeyPath="System.Net.Ping.dll"/> + <ROW Component="System.Net.Primitives.dll" ComponentId="{0F09EECC-E674-447C-BD10-CDF09F64A767}" Directory_="APPDIR" Attributes="0" KeyPath="System.Net.Primitives.dll"/> + <ROW Component="System.Net.Requests.dll" ComponentId="{98569ACE-2F5F-4B1E-878E-CD1B5D25B96F}" Directory_="APPDIR" Attributes="0" KeyPath="System.Net.Requests.dll"/> + <ROW Component="System.Net.Security.dll" ComponentId="{035C3143-5A64-4967-AED6-BF404CA97601}" Directory_="APPDIR" Attributes="0" KeyPath="System.Net.Security.dll"/> + <ROW Component="System.Net.Sockets.dll" ComponentId="{2D1BEAE0-C660-4C54-8C8B-8E4D7F2B2782}" Directory_="APPDIR" Attributes="0" KeyPath="System.Net.Sockets.dll"/> + <ROW Component="System.Net.WebHeaderCollection.dll" ComponentId="{5BDCBC67-BFA7-4E3D-B0A2-3183A468FFB8}" Directory_="APPDIR" Attributes="0" KeyPath="System.Net.WebHeaderCollection.dll"/> + <ROW Component="System.Net.WebSockets.Client.dll" ComponentId="{60ED738A-4F2F-4F1B-8B17-60069D8962CA}" Directory_="APPDIR" Attributes="0" KeyPath="System.Net.WebSockets.Client.dll"/> + <ROW Component="System.Net.WebSockets.dll" ComponentId="{4BE225E1-8F23-4C08-9BE5-35371655879B}" Directory_="APPDIR" Attributes="0" KeyPath="System.Net.WebSockets.dll"/> + <ROW Component="System.ObjectModel.dll" ComponentId="{E56C6924-727B-4D70-8A46-BFD98330EAF0}" Directory_="APPDIR" Attributes="0" KeyPath="System.ObjectModel.dll"/> + <ROW Component="System.Reactive.Core.dll" ComponentId="{62E95FC6-34DB-4CCA-98FA-340519D8B00A}" Directory_="APPDIR" Attributes="0" KeyPath="System.Reactive.Core.dll"/> + <ROW Component="System.Reactive.Interfaces.dll" ComponentId="{F8ADD7D3-7FA5-4D5A-B6AF-7865E656DF18}" Directory_="APPDIR" Attributes="0" KeyPath="System.Reactive.Interfaces.dll"/> + <ROW Component="System.Reactive.Linq.dll" ComponentId="{CB3B39C5-A09D-41C3-BD3D-2418EDEE1B7E}" Directory_="APPDIR" Attributes="0" KeyPath="System.Reactive.Linq.dll"/> + <ROW Component="System.Reactive.PlatformServices.dll" ComponentId="{FD7A1A65-6497-4392-AA5E-032B1CEAAD0B}" Directory_="APPDIR" Attributes="0" KeyPath="System.Reactive.PlatformServices.dll"/> + <ROW Component="System.Reflection.Extensions.dll" ComponentId="{73BB2BFB-98AD-4D9E-AEC6-99187E422E6C}" Directory_="APPDIR" Attributes="0" KeyPath="System.Reflection.Extensions.dll"/> + <ROW Component="System.Reflection.Primitives.dll" ComponentId="{5B6CD5C2-2396-4760-B6AC-E26672BB1CE7}" Directory_="APPDIR" Attributes="0" KeyPath="System.Reflection.Primitives.dll"/> + <ROW Component="System.Reflection.dll" ComponentId="{676E610A-2D36-43A6-88E4-60243B050F17}" Directory_="APPDIR" Attributes="0" KeyPath="System.Reflection.dll"/> + <ROW Component="System.Resources.Reader.dll" ComponentId="{6678C452-1188-4C5C-8E64-ADCF162857F3}" Directory_="APPDIR" Attributes="0" KeyPath="System.Resources.Reader.dll"/> + <ROW Component="System.Resources.ResourceManager.dll" ComponentId="{8B064109-6900-4DA7-82DB-ECED0F9DEDC6}" Directory_="APPDIR" Attributes="0" KeyPath="System.Resources.ResourceManager.dll"/> + <ROW Component="System.Resources.Writer.dll" ComponentId="{3BDAAA0D-EABE-4BE0-AFEE-3B6795F2C4BB}" Directory_="APPDIR" Attributes="0" KeyPath="System.Resources.Writer.dll"/> + <ROW Component="System.Runtime.CompilerServices.VisualC.dll" ComponentId="{19C82358-EE83-4F8B-98D6-22970AB72BB3}" Directory_="APPDIR" Attributes="0" KeyPath="System.Runtime.CompilerServices.VisualC.dll"/> + <ROW Component="System.Runtime.Extensions.dll" ComponentId="{9D247F14-0B9B-4AF3-99BD-8DC5923B024D}" Directory_="APPDIR" Attributes="0" KeyPath="System.Runtime.Extensions.dll"/> + <ROW Component="System.Runtime.Handles.dll" ComponentId="{CB3F22EC-22D4-4F8C-8B60-E01EA27E392C}" Directory_="APPDIR" Attributes="0" KeyPath="System.Runtime.Handles.dll"/> + <ROW Component="System.Runtime.InteropServices.RuntimeInformation.dll" ComponentId="{7833C7AE-E023-4B93-88FA-563016F8CA0E}" Directory_="APPDIR" Attributes="0" KeyPath="System.Runtime.InteropServices.RuntimeInformation.dll"/> + <ROW Component="System.Runtime.InteropServices.dll" ComponentId="{A83A1B9A-9188-41EA-9E25-1285174DA304}" Directory_="APPDIR" Attributes="0" KeyPath="System.Runtime.InteropServices.dll"/> + <ROW Component="System.Runtime.Numerics.dll" ComponentId="{AD3A4D2D-C688-448D-9975-F3E8CFF6763B}" Directory_="APPDIR" Attributes="0" KeyPath="System.Runtime.Numerics.dll"/> + <ROW Component="System.Runtime.Serialization.Formatters.dll" ComponentId="{2F9D3061-0E05-4AEE-BF94-88009429F966}" Directory_="APPDIR" Attributes="0" KeyPath="System.Runtime.Serialization.Formatters.dll"/> + <ROW Component="System.Runtime.Serialization.Json.dll" ComponentId="{79DC847B-DC38-4888-9947-10A91C32392C}" Directory_="APPDIR" Attributes="0" KeyPath="System.Runtime.Serialization.Json.dll"/> + <ROW Component="System.Runtime.Serialization.Primitives.dll" ComponentId="{77BC2C68-F02C-40D2-8ADF-23016DBEE7F7}" Directory_="APPDIR" Attributes="0" KeyPath="System.Runtime.Serialization.Primitives.dll"/> + <ROW Component="System.Runtime.Serialization.Xml.dll" ComponentId="{7E616B70-5412-49F4-8ACE-FC705F99AF15}" Directory_="APPDIR" Attributes="0" KeyPath="System.Runtime.Serialization.Xml.dll"/> + <ROW Component="System.Runtime.dll" ComponentId="{D3EF6533-9CF6-4142-A3B4-76488F4EAD17}" Directory_="APPDIR" Attributes="0" KeyPath="System.Runtime.dll"/> + <ROW Component="System.Security.Claims.dll" ComponentId="{037B3972-4FFD-47FB-B492-E5965237537D}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.Claims.dll"/> + <ROW Component="System.Security.Cryptography.Algorithms.dll" ComponentId="{9B8366F8-1867-4477-BA22-06151C36AE30}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.Cryptography.Algorithms.dll"/> + <ROW Component="System.Security.Cryptography.Csp.dll" ComponentId="{7BCBEA04-48BE-44BA-8D28-747E21B931FA}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.Cryptography.Csp.dll"/> + <ROW Component="System.Security.Cryptography.Encoding.dll" ComponentId="{C314578B-DB2D-4E37-89F9-8CB90876E268}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.Cryptography.Encoding.dll"/> + <ROW Component="System.Security.Cryptography.Primitives.dll" ComponentId="{782C1EF9-172B-4277-BAC3-0889428B4A07}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.Cryptography.Primitives.dll"/> + <ROW Component="System.Security.Cryptography.X509Certificates.dll" ComponentId="{D0C68A19-1CA9-4758-9FC3-F5C6C1FDE73C}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.Cryptography.X509Certificates.dll"/> + <ROW Component="System.Security.Principal.dll" ComponentId="{400FDAA7-5D5A-4765-BF38-E28160E36D16}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.Principal.dll"/> + <ROW Component="System.Security.SecureString.dll" ComponentId="{3289F64A-2DBF-45CE-B9CC-C52988C38FB6}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.SecureString.dll"/> + <ROW Component="System.Spatial.dll" ComponentId="{AB00DDF9-EDFC-4D58-ACEB-22F491765FB0}" Directory_="APPDIR" Attributes="0" KeyPath="System.Spatial.dll"/> + <ROW Component="System.Text.Encoding.Extensions.dll" ComponentId="{64EBCAAA-8A6E-4E52-83B5-6BFCDDB16682}" Directory_="APPDIR" Attributes="0" KeyPath="System.Text.Encoding.Extensions.dll"/> + <ROW Component="System.Text.Encoding.dll" ComponentId="{8F91F004-ED48-4DD5-8616-4BEB128D1CE5}" Directory_="APPDIR" Attributes="0" KeyPath="System.Text.Encoding.dll"/> + <ROW Component="System.Text.RegularExpressions.dll" ComponentId="{E8AC2491-ECF8-4180-B0F8-B564546BAB32}" Directory_="APPDIR" Attributes="0" KeyPath="System.Text.RegularExpressions.dll"/> + <ROW Component="System.Threading.Overlapped.dll" ComponentId="{F536CF8E-3CAA-4179-9692-7307EF2B2141}" Directory_="APPDIR" Attributes="0" KeyPath="System.Threading.Overlapped.dll"/> + <ROW Component="System.Threading.Tasks.Parallel.dll" ComponentId="{D2B66EF6-97EE-4F88-9667-3550C08BA473}" Directory_="APPDIR" Attributes="0" KeyPath="System.Threading.Tasks.Parallel.dll"/> + <ROW Component="System.Threading.Tasks.dll" ComponentId="{AC190BD9-30D5-4355-94B1-85179AA59A5F}" Directory_="APPDIR" Attributes="0" KeyPath="System.Threading.Tasks.dll"/> + <ROW Component="System.Threading.Thread.dll" ComponentId="{0DAD78EA-56C4-41B7-A379-F38828A33505}" Directory_="APPDIR" Attributes="0" KeyPath="System.Threading.Thread.dll"/> + <ROW Component="System.Threading.ThreadPool.dll" ComponentId="{0F1DD8C5-1EE6-4640-B01C-46FB4CB83F75}" Directory_="APPDIR" Attributes="0" KeyPath="System.Threading.ThreadPool.dll"/> + <ROW Component="System.Threading.Timer.dll" ComponentId="{B4CAFB30-B6C7-45CD-AA8B-B195D33F33C0}" Directory_="APPDIR" Attributes="0" KeyPath="System.Threading.Timer.dll"/> + <ROW Component="System.Threading.dll" ComponentId="{890DC656-6BEA-4F56-A742-806C87C0EA9C}" Directory_="APPDIR" Attributes="0" KeyPath="System.Threading.dll"/> + <ROW Component="System.ValueTuple.dll" ComponentId="{F13628B5-C5E3-479C-A515-0A975855FEC7}" Directory_="APPDIR" Attributes="0" KeyPath="System.ValueTuple.dll"/> + <ROW Component="System.Web.Http.WebHost.dll" ComponentId="{18DD2F13-E03E-4535-BBDF-3621387564FC}" Directory_="APPDIR" Attributes="0" KeyPath="System.Web.Http.WebHost.dll"/> + <ROW Component="System.Web.Http.dll" ComponentId="{02EE2ED8-EDE7-4DDA-BBCE-77D0998E3815}" Directory_="APPDIR" Attributes="0" KeyPath="System.Web.Http.dll"/> + <ROW Component="System.Web.Razor.dll" ComponentId="{58F85C46-451E-4EE8-8CCF-2052C92FDD1A}" Directory_="APPDIR" Attributes="0" KeyPath="System.Web.Razor.dll"/> + <ROW Component="System.Windows.Interactivity.dll" ComponentId="{DE8D82AC-01FE-4839-8BF4-29D5DB049D1A}" Directory_="APPDIR" Attributes="0" KeyPath="System.Windows.Interactivity.dll"/> + <ROW Component="System.Xml.ReaderWriter.dll" ComponentId="{32E4FBE3-408E-4BA1-B9A4-7493FC692C95}" Directory_="APPDIR" Attributes="0" KeyPath="System.Xml.ReaderWriter.dll"/> + <ROW Component="System.Xml.XDocument.dll" ComponentId="{281AB200-4E26-4E05-AF86-A63D2D21945C}" Directory_="APPDIR" Attributes="0" KeyPath="System.Xml.XDocument.dll"/> + <ROW Component="System.Xml.XPath.XDocument.dll" ComponentId="{C4B5736C-DCA6-4E70-AC3E-7ACD22B016F9}" Directory_="APPDIR" Attributes="0" KeyPath="System.Xml.XPath.XDocument.dll"/> + <ROW Component="System.Xml.XPath.dll" ComponentId="{7596FA31-0649-4230-8C74-4B0D00D6BBB9}" Directory_="APPDIR" Attributes="0" KeyPath="System.Xml.XPath.dll"/> + <ROW Component="System.Xml.XmlDocument.dll" ComponentId="{05453417-03C4-4496-8E1A-8C7C709BC95D}" Directory_="APPDIR" Attributes="0" KeyPath="System.Xml.XmlDocument.dll"/> + <ROW Component="System.Xml.XmlSerializer.dll" ComponentId="{1DDA637D-8907-4954-A1B0-92BA9428C040}" Directory_="APPDIR" Attributes="0" KeyPath="System.Xml.XmlSerializer.dll"/> + <ROW Component="Tango.AdvancedInstaller.dll" ComponentId="{3A9B6729-87A1-47A5-AC7D-AB028041F0D2}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.AdvancedInstaller.dll"/> + <ROW Component="Tango.AnimatedGif.dll" ComponentId="{9F1620F9-14FE-491C-97FF-E1FFD8BEB39D}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.AnimatedGif.dll"/> + <ROW Component="Tango.BL.dll" ComponentId="{2F671852-9B0F-4B76-87EF-B01A824E3395}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.BL.dll"/> + <ROW Component="Tango.CSV.dll" ComponentId="{47CBA01E-67E3-45AC-BF23-01B145FE9FC6}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.CSV.dll"/> + <ROW Component="Tango.CodeGeneration.dll" ComponentId="{3F2637CB-6483-4159-A9A3-48D48EBA97C3}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.CodeGeneration.dll"/> + <ROW Component="Tango.ColorConversion.dll" ComponentId="{07A037A2-63A4-43CD-96CF-AD00ACBBCE82}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.ColorConversion.dll"/> + <ROW Component="Tango.ColorLib_v1.dll" ComponentId="{B1DA08EE-4CBA-422B-B00B-389BE2C6C494}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.ColorLib_v1.dll"/> + <ROW Component="Tango.ColorLib_v2.dll" ComponentId="{CE35AA7C-9674-44D2-86A6-D911B7A07DD8}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.ColorLib_v2.dll"/> + <ROW Component="Tango.ColorLib_v3.dll" ComponentId="{2925DA8C-C511-4D8D-82F4-2270820960C1}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.ColorLib_v3.dll"/> + <ROW Component="Tango.ColorLib_v4.dll" ComponentId="{3051180C-BDFC-40A5-89E6-BB2704414BC8}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.ColorLib_v4.dll"/> + <ROW Component="Tango.ColorLib_v5.dll" ComponentId="{E79E49A6-BD7D-4229-90D1-5A1E9AD2BF8D}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.ColorLib_v5.dll"/> + <ROW Component="Tango.ColorLib_v6.dll" ComponentId="{49BE3D85-4F8A-46C5-8027-295FF3BE9382}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.ColorLib_v6.dll"/> + <ROW Component="Tango.Colorful.dll" ComponentId="{30883320-6F05-438C-8C9B-5D9A24DD1949}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Colorful.dll"/> + <ROW Component="Tango.Console.dll" ComponentId="{0C4A4549-05F8-45AC-A2A1-50928C22AB1F}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Console.dll"/> + <ROW Component="Tango.Core.dll" ComponentId="{03FFCE4B-103D-471C-9BC4-BA61F308CD50}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Core.dll"/> + <ROW Component="Tango.DataStore.EF.dll" ComponentId="{0C314E44-E58A-471E-99AB-2AFD99078A99}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.DataStore.EF.dll"/> + <ROW Component="Tango.DataStore.Editing.dll" ComponentId="{D639C94D-6CA8-495B-B539-5DDD5DB39910}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.DataStore.Editing.dll"/> + <ROW Component="Tango.DataStore.Lite.dll" ComponentId="{7CAAB878-0A1E-48E0-AA3E-0E8AF9C2278B}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.DataStore.Lite.dll"/> + <ROW Component="Tango.DataStore.Remote.dll" ComponentId="{1D14AA13-DFB1-44F8-B462-9D3018593209}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.DataStore.Remote.dll"/> + <ROW Component="Tango.DataStore.dll" ComponentId="{3AF6B88E-E0FE-4891-92A4-9689590258F4}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.DataStore.dll"/> + <ROW Component="Tango.Documents.dll" ComponentId="{E5AB4E1D-1AA5-4B59-B12F-A307742242BB}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Documents.dll"/> + <ROW Component="Tango.DragAndDrop.dll" ComponentId="{26C7101A-FD53-4D76-A1A2-2065394CEC54}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.DragAndDrop.dll"/> + <ROW Component="Tango.Emulations.dll" ComponentId="{B49603F7-F3D4-438F-92FA-FA36BD801934}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Emulations.dll"/> + <ROW Component="Tango.Explorer.dll" ComponentId="{3B205CF0-B682-4938-9738-88DCD0904C1E}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Explorer.dll"/> + <ROW Component="Tango.FileSystem.dll" ComponentId="{2DC5A6C3-8F58-45BB-B90E-E580A14DBC6B}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.FileSystem.dll"/> + <ROW Component="Tango.FirmwareUpdateLib.WPF.dll" ComponentId="{6F79848C-43CE-430A-8F2D-B79DA1F67E70}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.FirmwareUpdateLib.WPF.dll"/> + <ROW Component="Tango.FirmwareUpdateLib.dll" ComponentId="{296922F3-B8CA-47CC-A5B9-FF6885FC9C7E}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.FirmwareUpdateLib.dll"/> + <ROW Component="Tango.Git.dll" ComponentId="{719AFAAA-806B-43AD-B61E-D95538565D41}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Git.dll"/> + <ROW Component="Tango.Insights.dll" ComponentId="{54810EAB-618E-40DE-825A-70B1A78C2442}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Insights.dll"/> + <ROW Component="Tango.Integration.dll" ComponentId="{6D218681-1823-4AED-8688-F2DA321E83B9}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Integration.dll"/> + <ROW Component="Tango.Logging.dll" ComponentId="{5256735A-F5A7-4F19-A800-227260121838}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Logging.dll"/> + <ROW Component="Tango.PDF.dll" ComponentId="{E47D232C-3670-40D8-9C5E-E20920DE0A5B}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.PDF.dll"/> + <ROW Component="Tango.PMR.dll" ComponentId="{B4C51C81-321D-48A9-93F6-F83B13E97880}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.PMR.dll"/> + <ROW Component="Tango.PPC.BackupRestore.dll" ComponentId="{70CF99A3-B297-4EA6-A524-91CFB9C43FD9}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.PPC.BackupRestore.dll"/> + <ROW Component="Tango.PPC.BugReporting.dll" ComponentId="{98287604-CBAA-4A84-9CB7-4F9B15A0CF90}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.PPC.BugReporting.dll"/> + <ROW Component="Tango.PPC.Common.dll" ComponentId="{938E4DF2-9097-4F5D-9E31-3E12F4F8578E}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.PPC.Common.dll"/> + <ROW Component="Tango.PPC.Events.dll" ComponentId="{DA5DD140-32EB-4626-A17B-57B0B4244FD9}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.PPC.Events.dll"/> + <ROW Component="Tango.PPC.JobsV2.dll" ComponentId="{A05CA7E1-C471-4364-927E-10A5557B62E2}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.PPC.JobsV2.dll"/> + <ROW Component="Tango.PPC.MachineSettings.dll" ComponentId="{42FF302C-CC24-4990-A83C-9FE60F7F96D1}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.PPC.MachineSettings.dll"/> + <ROW Component="Tango.PPC.Maintenance.dll" ComponentId="{F51D866F-24EB-4BF5-9547-487163A11333}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.PPC.Maintenance.dll"/> + <ROW Component="Tango.PPC.Shared.dll" ComponentId="{1E762A0A-D386-409B-ADB7-8B9C3D491EDB}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.PPC.Shared.dll"/> + <ROW Component="Tango.PPC.Storage.dll" ComponentId="{EE46C6FE-ED22-4F15-B481-52D8974777B3}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.PPC.Storage.dll"/> + <ROW Component="Tango.PPC.Technician.dll" ComponentId="{9F4C652D-6530-458B-940A-D2383B087B11}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.PPC.Technician.dll"/> + <ROW Component="Tango.PPC.UI.exe" ComponentId="{683BF992-5971-420D-B92F-5EE85CBA93B1}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.PPC.UI.exe"/> + <ROW Component="Tango.PPC.Updater.exe" ComponentId="{8826CE42-B6B9-466B-8A87-EFC6947086F0}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.PPC.Updater.exe"/> + <ROW Component="Tango.Pulse.dll" ComponentId="{7E8F504F-1125-4E4A-9367-A7F1AA5E77B1}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Pulse.dll"/> + <ROW Component="Tango.RemoteDesktop.dll" ComponentId="{2AB79FAE-D74A-407B-B40E-14CE343102C1}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.RemoteDesktop.dll"/> + <ROW Component="Tango.SQLExaminer.dll" ComponentId="{3B98ED7F-3935-4C9A-857B-4D2589ABE853}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.SQLExaminer.dll"/> + <ROW Component="Tango.Serialization.dll" ComponentId="{E613913D-9EF4-4AC0-ABB8-B516BE57DFAA}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Serialization.dll"/> + <ROW Component="Tango.Settings.dll" ComponentId="{0DEDDC60-7E7F-41C8-BDA2-7601FFD63769}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Settings.dll"/> + <ROW Component="Tango.SharedUI.dll" ComponentId="{B7D82F19-79F1-47B4-BBAA-0D96BD9FA0F7}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.SharedUI.dll"/> + <ROW Component="Tango.SystemInfo.dll" ComponentId="{B64CF925-0BC6-44CD-B13C-26A58C62A38F}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.SystemInfo.dll"/> + <ROW Component="Tango.TFS.dll" ComponentId="{3324A8D4-DC5D-4A8A-9BAE-6D18DEAAF872}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.TFS.dll"/> + <ROW Component="Tango.Touch.dll" ComponentId="{DDCFB82B-AF5F-4B04-B80A-27FB3A6038B8}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Touch.dll"/> + <ROW Component="Tango.Transport.dll" ComponentId="{0AEA439D-68A9-4FD9-B3BD-DBC4F4A3EF84}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Transport.dll"/> + <ROW Component="Tango.Web.dll" ComponentId="{D3043D33-4676-48B4-B122-2F2B57BB20D2}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Web.dll"/> + <ROW Component="Tango.WebRTC.dll" ComponentId="{6FC621F5-A14A-4BBB-A3E5-774B982C3527}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.WebRTC.dll"/> + <ROW Component="Tango.WiFi.dll" ComponentId="{BE79796A-C78B-4F03-B9E1-14DB08A8AE34}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.WiFi.dll"/> + <ROW Component="WPFMediaKit.dll" ComponentId="{682E3B5C-3A2E-4EBE-A62C-48EC158A8E40}" Directory_="APPDIR" Attributes="0" KeyPath="WPFMediaKit.dll"/> + <ROW Component="WebRtc.NET.dll" ComponentId="{937B957F-326D-44FF-AFA4-E863A10C31D3}" Directory_="APPDIR" Attributes="0" KeyPath="WebRtc.NET.dll"/> + <ROW Component="WindowsInput.dll" ComponentId="{0B5BB534-35DF-4C8E-9EA9-343A0A313518}" Directory_="APPDIR" Attributes="0" KeyPath="WindowsInput.dll"/> + <ROW Component="mscoree.dll" ComponentId="{AA32C32C-5143-4899-AD35-96FC51E521B0}" Directory_="APPDIR" Attributes="0" KeyPath="mscoree.dll"/> + <ROW Component="msvcp140d.dll" ComponentId="{EB34D5FE-FCFF-46A6-882A-F9B34C958DCB}" Directory_="APPDIR" Attributes="0" KeyPath="msvcp140d.dll"/> + <ROW Component="netstandard.dll" ComponentId="{DE31E227-FD3C-4CF2-9C94-74C321D20200}" Directory_="APPDIR" Attributes="0" KeyPath="netstandard.dll"/> + <ROW Component="protobufnet.dll" ComponentId="{6EFD03F3-D1BD-4948-93EB-E9C24273FB0E}" Directory_="APPDIR" Attributes="0" KeyPath="protobufnet.dll"/> + <ROW Component="rc.exe" ComponentId="{F37FD42F-F697-4891-9F10-FCDA5B659035}" Directory_="APPDIR" Attributes="256" KeyPath="rc.exe"/> + <ROW Component="turbojpeg.dll" ComponentId="{56532295-4230-4C31-87BB-E750421A1399}" Directory_="win7x64_Dir" Attributes="256" KeyPath="turbojpeg.dll"/> + <ROW Component="turbojpeg.dll.meta" ComponentId="{694B77D2-534D-49CD-91F8-FEE887D5A02A}" Directory_="win7x64_Dir" Attributes="0" KeyPath="turbojpeg.dll.meta" Type="0"/> + <ROW Component="turbojpeg.dll.meta_1" ComponentId="{8BC477AD-D9E8-44D8-AF39-25BD461F5FA4}" Directory_="win7x86_Dir" Attributes="0" KeyPath="turbojpeg.dll.meta_1" Type="0"/> + <ROW Component="turbojpeg.dll_1" ComponentId="{CDE71D36-D7C8-47B0-B24A-156C101D8193}" Directory_="win7x86_Dir" Attributes="0" KeyPath="turbojpeg.dll_1"/> + <ROW Component="ucrtbased.dll" ComponentId="{4C4B5F18-0749-4F1F-8645-381A4DE86894}" Directory_="APPDIR" Attributes="0" KeyPath="ucrtbased.dll"/> + <ROW Component="vcruntime140.dll" ComponentId="{6AB8BB00-0CEB-4F31-AC89-45BEB7839ED3}" Directory_="APPDIR" Attributes="0" KeyPath="vcruntime140.dll"/> + <ROW Component="vcruntime140d.dll" ComponentId="{A04FC8B1-2D31-4DCE-B151-BB57EB1197C8}" Directory_="APPDIR" Attributes="0" KeyPath="vcruntime140d.dll"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.MsiFeatsComponent"> + <ROW Feature="MainFeature" Title="MainFeature" Description="Description" Display="1" Level="1" Directory_="APPDIR" Attributes="0"/> + <ATTRIBUTE name="CurrentFeature" value="MainFeature"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.MsiFilesComponent"> + <ROW File="ColorMine.dll" Component_="ColorMine.dll" FileName="COLORM~1.DLL|ColorMine.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\ColorMine.dll" SelfReg="false"/> + <ROW File="ColorMine.pdb" Component_="ColorMine.dll" FileName="COLORM~1.PDB|ColorMine.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\ColorMine.pdb" SelfReg="false"/> + <ROW File="CommandLine.dll" Component_="CommandLine.dll" FileName="COMMAN~1.DLL|CommandLine.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\CommandLine.dll" SelfReg="false"/> + <ROW File="ControlzEx.dll" Component_="ControlzEx.dll" FileName="CONTRO~1.DLL|ControlzEx.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\ControlzEx.dll" SelfReg="false"/> + <ROW File="ControlzEx.pdb" Component_="ControlzEx.dll" FileName="CONTRO~1.PDB|ControlzEx.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\ControlzEx.pdb" SelfReg="false"/> + <ROW File="DocumentFormat.OpenXml.dll" Component_="DocumentFormat.OpenXml.dll" FileName="DOCUME~1.DLL|DocumentFormat.OpenXml.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\DocumentFormat.OpenXml.dll" SelfReg="false"/> + <ROW File="EFCache.dll" Component_="EFCache.dll" FileName="EFCache.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\EFCache.dll" SelfReg="false"/> + <ROW File="EntityFramework.dll" Component_="EntityFramework.dll" FileName="ENTITY~1.DLL|EntityFramework.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\EntityFramework.dll" SelfReg="false"/> + <ROW File="EntityFramework.SqlServer.dll" Component_="EntityFramework.SqlServer.dll" FileName="ENTITY~2.DLL|EntityFramework.SqlServer.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\EntityFramework.SqlServer.dll" SelfReg="false"/> + <ROW File="FontAwesome.WPF.dll" Component_="FontAwesome.WPF.dll" FileName="FONTAW~1.DLL|FontAwesome.WPF.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\FontAwesome.WPF.dll" SelfReg="false"/> + <ROW File="GetVersionTag.bat" Component_="GetVersionTag.bat" FileName="GETVER~1.BAT|GetVersionTag.bat" Attributes="0" SourcePath="..\Build\PPC\Eureka\GetVersionTag.bat" SelfReg="false"/> + <ROW File="Google.Protobuf.dll" Component_="Google.Protobuf.dll" FileName="GOOGLE~1.DLL|Google.Protobuf.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Google.Protobuf.dll" SelfReg="false"/> + <ROW File="HiraokaHyperTools.PdfSharpWPF.dll" Component_="HiraokaHyperTools.PdfSharpWPF.dll" FileName="HIRAOK~1.DLL|HiraokaHyperTools.PdfSharp-WPF.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\HiraokaHyperTools.PdfSharp-WPF.dll" SelfReg="false"/> + <ROW File="HiraokaHyperTools.PdfSharp.Xps.dll" Component_="HiraokaHyperTools.PdfSharp.Xps.dll" FileName="HIRAOK~2.DLL|HiraokaHyperTools.PdfSharp.Xps.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\HiraokaHyperTools.PdfSharp.Xps.dll" SelfReg="false"/> + <ROW File="Ionic.Zip.dll" Component_="Ionic.Zip.dll" FileName="IONICZ~1.DLL|Ionic.Zip.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Ionic.Zip.dll" SelfReg="false"/> + <ROW File="JWT.dll" Component_="JWT.dll" FileName="JWT.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\JWT.dll" SelfReg="false"/> + <ROW File="LibGit2Sharp.dll" Component_="LibGit2Sharp.dll" FileName="LIBGIT~1.DLL|LibGit2Sharp.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\LibGit2Sharp.dll" SelfReg="false"/> + <ROW File="LibGit2Sharp.pdb" Component_="LibGit2Sharp.dll" FileName="LIBGIT~1.PDB|LibGit2Sharp.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\LibGit2Sharp.pdb" SelfReg="false"/> + <ROW File="LiteDB.dll" Component_="LiteDB.dll" FileName="LiteDB.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\LiteDB.dll" SelfReg="false"/> + <ROW File="Microsoft.AspNet.SignalR.Client.dll" Component_="Microsoft.AspNet.SignalR.Client.dll" FileName="MICROS~1.DLL|Microsoft.AspNet.SignalR.Client.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.AspNet.SignalR.Client.dll" SelfReg="false"/> + <ROW File="Microsoft.AspNet.SignalR.Client.pdb" Component_="Microsoft.AspNet.SignalR.Client.dll" FileName="MICROS~1.PDB|Microsoft.AspNet.SignalR.Client.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.AspNet.SignalR.Client.pdb" SelfReg="false"/> + <ROW File="Microsoft.Azure.ActiveDirectory.GraphClient.dll" Component_="Microsoft.Azure.ActiveDirectory.GraphClient.dll" FileName="MICROS~2.DLL|Microsoft.Azure.ActiveDirectory.GraphClient.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.Azure.ActiveDirectory.GraphClient.dll" SelfReg="false"/> + <ROW File="Microsoft.IdentityModel.Clients.ActiveDirectory.dll" Component_="Microsoft.IdentityModel.Clients.ActiveDirectory.dll" FileName="MICROS~6.DLL|Microsoft.IdentityModel.Clients.ActiveDirectory.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.IdentityModel.Clients.ActiveDirectory.dll" SelfReg="false"/> + <ROW File="Microsoft.IdentityModel.Clients.ActiveDirectory.pdb" Component_="Microsoft.IdentityModel.Clients.ActiveDirectory.dll" FileName="MICROS~2.PDB|Microsoft.IdentityModel.Clients.ActiveDirectory.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.IdentityModel.Clients.ActiveDirectory.pdb" SelfReg="false"/> + <ROW File="Microsoft.ServiceBus.dll" Component_="Microsoft.ServiceBus.dll" FileName="MICROS~7.DLL|Microsoft.ServiceBus.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.ServiceBus.dll" SelfReg="false"/> + <ROW File="Microsoft.SqlServer.ConnectionInfo.dll" Component_="Microsoft.SqlServer.ConnectionInfo.dll" FileName="MICROS~8.DLL|Microsoft.SqlServer.ConnectionInfo.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.SqlServer.ConnectionInfo.dll" SelfReg="false"/> + <ROW File="Microsoft.SqlServer.Diagnostics.STrace.dll" Component_="Microsoft.SqlServer.Diagnostics.STrace.dll" FileName="MICROS~9.DLL|Microsoft.SqlServer.Diagnostics.STrace.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.SqlServer.Diagnostics.STrace.dll" SelfReg="false"/> + <ROW File="Microsoft.SqlServer.Dmf.Common.dll" Component_="Microsoft.SqlServer.Dmf.Common.dll" FileName="MICRO~10.DLL|Microsoft.SqlServer.Dmf.Common.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.SqlServer.Dmf.Common.dll" SelfReg="false"/> + <ROW File="Microsoft.SqlServer.Management.Sdk.Sfc.dll" Component_="Microsoft.SqlServer.Management.Sdk.Sfc.dll" FileName="MICRO~11.DLL|Microsoft.SqlServer.Management.Sdk.Sfc.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.SqlServer.Management.Sdk.Sfc.dll" SelfReg="false"/> + <ROW File="Microsoft.SqlServer.ServiceBrokerEnum.dll" Component_="Microsoft.SqlServer.ServiceBrokerEnum.dll" FileName="MICRO~12.DLL|Microsoft.SqlServer.ServiceBrokerEnum.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.SqlServer.ServiceBrokerEnum.dll" SelfReg="false"/> + <ROW File="Microsoft.SqlServer.Smo.dll" Component_="Microsoft.SqlServer.Smo.dll" FileName="MICRO~13.DLL|Microsoft.SqlServer.Smo.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.SqlServer.Smo.dll" SelfReg="false"/> + <ROW File="Microsoft.SqlServer.SqlClrProvider.dll" Component_="Microsoft.SqlServer.SqlClrProvider.dll" FileName="MICRO~14.DLL|Microsoft.SqlServer.SqlClrProvider.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.SqlServer.SqlClrProvider.dll" SelfReg="false"/> + <ROW File="Microsoft.SqlServer.SqlEnum.dll" Component_="Microsoft.SqlServer.SqlEnum.dll" FileName="MICRO~15.DLL|Microsoft.SqlServer.SqlEnum.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.SqlServer.SqlEnum.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Client.dll" Component_="Microsoft.TeamFoundation.Client.dll" FileName="MICRO~16.DLL|Microsoft.TeamFoundation.Client.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.TeamFoundation.Client.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Common.dll" Component_="Microsoft.TeamFoundation.Common.dll" FileName="MICRO~17.DLL|Microsoft.TeamFoundation.Common.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.TeamFoundation.Common.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Core.WebApi.dll" Component_="Microsoft.TeamFoundation.Core.WebApi.dll" FileName="MICRO~18.DLL|Microsoft.TeamFoundation.Core.WebApi.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.TeamFoundation.Core.WebApi.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Diff.dll" Component_="Microsoft.TeamFoundation.Diff.dll" FileName="MICRO~19.DLL|Microsoft.TeamFoundation.Diff.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.TeamFoundation.Diff.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Work.WebApi.dll" Component_="Microsoft.TeamFoundation.Work.WebApi.dll" FileName="MICRO~20.DLL|Microsoft.TeamFoundation.Work.WebApi.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.TeamFoundation.Work.WebApi.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader.dll" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader.dll" FileName="MICRO~21.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.dll" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.dll" FileName="MICRO~22.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.TeamFoundation.WorkItemTracking.Client.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.dll" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.dll" FileName="MICRO~23.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Common.dll" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.dll" FileName="MICRO~24.DLL|Microsoft.TeamFoundation.WorkItemTracking.Common.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.TeamFoundation.WorkItemTracking.Common.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Proxy.dll" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.dll" FileName="MICRO~25.DLL|Microsoft.TeamFoundation.WorkItemTracking.Proxy.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.TeamFoundation.WorkItemTracking.Proxy.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.WebApi.dll" Component_="Microsoft.TeamFoundation.WorkItemTracking.WebApi.dll" FileName="MICRO~26.DLL|Microsoft.TeamFoundation.WorkItemTracking.WebApi.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.TeamFoundation.WorkItemTracking.WebApi.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.Client.Interactive.dll" Component_="Microsoft.VisualStudio.Services.Client.Interactive.dll" FileName="MICRO~27.DLL|Microsoft.VisualStudio.Services.Client.Interactive.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.VisualStudio.Services.Client.Interactive.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.Common.dll" Component_="Microsoft.VisualStudio.Services.Common.dll" FileName="MICRO~28.DLL|Microsoft.VisualStudio.Services.Common.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.VisualStudio.Services.Common.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.WebApi.dll" Component_="Microsoft.VisualStudio.Services.WebApi.dll" FileName="MICRO~29.DLL|Microsoft.VisualStudio.Services.WebApi.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.VisualStudio.Services.WebApi.dll" SelfReg="false"/> + <ROW File="Microsoft.WindowsAPICodePack.dll" Component_="Microsoft.WindowsAPICodePack.dll" FileName="MICRO~30.DLL|Microsoft.WindowsAPICodePack.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.WindowsAPICodePack.dll" SelfReg="false"/> + <ROW File="Microsoft.WindowsAPICodePack.pdb" Component_="Microsoft.WindowsAPICodePack.dll" FileName="MICROS~3.PDB|Microsoft.WindowsAPICodePack.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.WindowsAPICodePack.pdb" SelfReg="false"/> + <ROW File="Microsoft.WindowsAPICodePack.Shell.dll" Component_="Microsoft.WindowsAPICodePack.Shell.dll" FileName="MICRO~31.DLL|Microsoft.WindowsAPICodePack.Shell.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.WindowsAPICodePack.Shell.dll" SelfReg="false"/> + <ROW File="Microsoft.WindowsAzure.Storage.dll" Component_="Microsoft.WindowsAzure.Storage.dll" FileName="MICRO~32.DLL|Microsoft.WindowsAzure.Storage.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.WindowsAzure.Storage.dll" SelfReg="false"/> + <ROW File="Microsoft.WITDataStore32.dll" Component_="Microsoft.WITDataStore32.dll" FileName="MICRO~33.DLL|Microsoft.WITDataStore32.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.WITDataStore32.dll" SelfReg="false"/> + <ROW File="mscoree.dll" Component_="mscoree.dll" FileName="mscoree.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\mscoree.dll" SelfReg="false"/> + <ROW File="msvcp140d.dll" Component_="msvcp140d.dll" FileName="MSVCP1~1.DLL|msvcp140d.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\msvcp140d.dll" SelfReg="false"/> + <ROW File="Newtonsoft.Json.dll" Component_="Newtonsoft.Json.dll" FileName="NEWTON~1.DLL|Newtonsoft.Json.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Newtonsoft.Json.dll" SelfReg="false"/> + <ROW File="protobufnet.dll" Component_="protobufnet.dll" FileName="PROTOB~1.DLL|protobuf-net.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\protobuf-net.dll" SelfReg="false"/> + <ROW File="Quamotion.TurboJpegWrapper.dll" Component_="Quamotion.TurboJpegWrapper.dll" FileName="QUAMOT~1.DLL|Quamotion.TurboJpegWrapper.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Quamotion.TurboJpegWrapper.dll" SelfReg="false"/> + <ROW File="Quamotion.TurboJpegWrapper.pdb" Component_="Quamotion.TurboJpegWrapper.dll" FileName="QUAMOT~1.PDB|Quamotion.TurboJpegWrapper.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Quamotion.TurboJpegWrapper.pdb" SelfReg="false"/> + <ROW File="RazorEngine.dll" Component_="RazorEngine.dll" FileName="RAZORE~1.DLL|RazorEngine.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\RazorEngine.dll" SelfReg="false"/> + <ROW File="rc.exe" Component_="rc.exe" FileName="rc.exe" Attributes="0" SourcePath="..\Build\PPC\Eureka\rc.exe" SelfReg="false" DigSign="true"/> + <ROW File="SharpDX.Direct3D11.dll" Component_="SharpDX.Direct3D11.dll" FileName="SHARPD~1.DLL|SharpDX.Direct3D11.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\SharpDX.Direct3D11.dll" SelfReg="false"/> + <ROW File="SharpDX.dll" Component_="SharpDX.dll" FileName="SharpDX.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\SharpDX.dll" SelfReg="false"/> + <ROW File="SharpDX.DXGI.dll" Component_="SharpDX.DXGI.dll" FileName="SHARPD~2.DLL|SharpDX.DXGI.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\SharpDX.DXGI.dll" SelfReg="false"/> + <ROW File="SharpDX.Mathematics.dll" Component_="SharpDX.Mathematics.dll" FileName="SHARPD~3.DLL|SharpDX.Mathematics.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\SharpDX.Mathematics.dll" SelfReg="false"/> + <ROW File="SimpleValidator.dll" Component_="SimpleValidator.dll" FileName="SIMPLE~1.DLL|SimpleValidator.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\SimpleValidator.dll" SelfReg="false"/> + <ROW File="OverrideData.xml" Component_="OverrideData.xml" FileName="OVERRI~1.XML|OverrideData.xml" Attributes="0" SourcePath="..\Build\PPC\Eureka\SQLExaminer\Configurations\OverrideData.xml" SelfReg="false"/> + <ROW File="ProvisionMachine.xml" Component_="OverrideData.xml" FileName="PROVIS~1.XML|ProvisionMachine.xml" Attributes="0" SourcePath="..\Build\PPC\Eureka\SQLExaminer\Configurations\ProvisionMachine.xml" SelfReg="false"/> + <ROW File="Schema.xml" Component_="OverrideData.xml" FileName="Schema.xml" Attributes="0" SourcePath="..\Build\PPC\Eureka\SQLExaminer\Configurations\Schema.xml" SelfReg="false"/> + <ROW File="UpdateMachine.xml" Component_="OverrideData.xml" FileName="UPDATE~1.XML|UpdateMachine.xml" Attributes="0" SourcePath="..\Build\PPC\Eureka\SQLExaminer\Configurations\UpdateMachine.xml" SelfReg="false"/> + <ROW File="UpdateTwineDB.xml" Component_="OverrideData.xml" FileName="UPDATE~2.XML|UpdateTwineDB.xml" Attributes="0" SourcePath="..\Build\PPC\Eureka\SQLExaminer\Configurations\UpdateTwineDB.xml" SelfReg="false"/> + <ROW File="Interop.MSDASC.dll" Component_="Interop.MSDASC.dll" FileName="INTERO~1.DLL|Interop.MSDASC.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\SQLExaminer\Interop.MSDASC.dll" SelfReg="false"/> + <ROW File="License.lic" Component_="License.lic" FileName="License.lic" Attributes="0" SourcePath="..\Build\PPC\Eureka\SQLExaminer\License.lic" SelfReg="false"/> + <ROW File="SA.Binary.dll" Component_="SA.Binary.dll" FileName="SABINA~1.DLL|SA.Binary.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\SQLExaminer\SA.Binary.dll" SelfReg="false"/> + <ROW File="SA.CodeView.dll" Component_="SA.CodeView.dll" FileName="SACODE~1.DLL|SA.CodeView.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\SQLExaminer\SA.CodeView.dll" SelfReg="false"/> + <ROW File="SA.CommonTypes.dll" Component_="SA.CommonTypes.dll" FileName="SACOMM~1.DLL|SA.CommonTypes.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\SQLExaminer\SA.CommonTypes.dll" SelfReg="false"/> + <ROW File="SA.CommonUI.dll" Component_="SA.CommonUI.dll" FileName="SACOMM~2.DLL|SA.CommonUI.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\SQLExaminer\SA.CommonUI.dll" SelfReg="false"/> + <ROW File="SA.SCBaseProvider.dll" Component_="SA.SCBaseProvider.dll" FileName="SASCBA~1.DLL|SA.SCBaseProvider.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\SQLExaminer\SA.SCBaseProvider.dll" SelfReg="false"/> + <ROW File="SA.SQLDataExaminer.Engine.dll" Component_="SA.SQLDataExaminer.Engine.dll" FileName="SASQLD~1.DLL|SA.SQLDataExaminer.Engine.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\SQLExaminer\SA.SQLDataExaminer.Engine.dll" SelfReg="false"/> + <ROW File="SA.SQLExaminer.Engine.dll" Component_="SA.SQLExaminer.Engine.dll" FileName="SASQLE~1.DLL|SA.SQLExaminer.Engine.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\SQLExaminer\SA.SQLExaminer.Engine.dll" SelfReg="false"/> + <ROW File="SA.Utils.ErrorReporter.dll" Component_="SA.Utils.ErrorReporter.dll" FileName="SAUTIL~1.DLL|SA.Utils.ErrorReporter.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\SQLExaminer\SA.Utils.ErrorReporter.dll" SelfReg="false"/> + <ROW File="SQLDECmd.exe" Component_="SQLDECmd.exe" FileName="SQLDECmd.exe" Attributes="0" SourcePath="..\Build\PPC\Eureka\SQLExaminer\SQLDECmd.exe" SelfReg="false" DigSign="true"/> + <ROW File="SQLECmd.exe" Component_="SQLECmd.exe" FileName="SQLECmd.exe" Attributes="0" SourcePath="..\Build\PPC\Eureka\SQLExaminer\SQLECmd.exe" SelfReg="false" DigSign="true"/> + <ROW File="System.Data.SQLite.dll" Component_="System.Data.SQLite.dll" FileName="SYSTEM~1.DLL|System.Data.SQLite.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Data.SQLite.dll" SelfReg="false"/> + <ROW File="System.Data.SQLite.dll.config" Component_="GetVersionTag.bat" FileName="SYSTEM~1.CON|System.Data.SQLite.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Data.SQLite.dll.config" SelfReg="false"/> + <ROW File="System.Data.SQLite.EF6.dll" Component_="System.Data.SQLite.EF6.dll" FileName="SYSTEM~2.DLL|System.Data.SQLite.EF6.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Data.SQLite.EF6.dll" SelfReg="false"/> + <ROW File="System.Data.SQLite.Linq.dll" Component_="System.Data.SQLite.Linq.dll" FileName="SYSTEM~3.DLL|System.Data.SQLite.Linq.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Data.SQLite.Linq.dll" SelfReg="false"/> + <ROW File="System.IdentityModel.Tokens.Jwt.dll" Component_="System.IdentityModel.Tokens.Jwt.dll" FileName="SYSTEM~4.DLL|System.IdentityModel.Tokens.Jwt.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.IdentityModel.Tokens.Jwt.dll" SelfReg="false"/> + <ROW File="System.IdentityModel.Tokens.Jwt.pdb" Component_="System.IdentityModel.Tokens.Jwt.dll" FileName="SYSTEM~1.PDB|System.IdentityModel.Tokens.Jwt.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.IdentityModel.Tokens.Jwt.pdb" SelfReg="false"/> + <ROW File="System.Net.Http.Formatting.dll" Component_="System.Net.Http.Formatting.dll" FileName="SYSTEM~5.DLL|System.Net.Http.Formatting.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Net.Http.Formatting.dll" SelfReg="false"/> + <ROW File="System.Reactive.Core.dll" Component_="System.Reactive.Core.dll" FileName="SYSTEM~6.DLL|System.Reactive.Core.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Reactive.Core.dll" SelfReg="false"/> + <ROW File="System.Reactive.Interfaces.dll" Component_="System.Reactive.Interfaces.dll" FileName="SYSTEM~7.DLL|System.Reactive.Interfaces.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Reactive.Interfaces.dll" SelfReg="false"/> + <ROW File="System.Reactive.Linq.dll" Component_="System.Reactive.Linq.dll" FileName="SYSTEM~8.DLL|System.Reactive.Linq.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Reactive.Linq.dll" SelfReg="false"/> + <ROW File="System.Reactive.PlatformServices.dll" Component_="System.Reactive.PlatformServices.dll" FileName="SYSTEM~9.DLL|System.Reactive.PlatformServices.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Reactive.PlatformServices.dll" SelfReg="false"/> + <ROW File="System.Web.Http.dll" Component_="System.Web.Http.dll" FileName="SYSTE~11.DLL|System.Web.Http.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Web.Http.dll" SelfReg="false"/> + <ROW File="System.Web.Http.WebHost.dll" Component_="System.Web.Http.WebHost.dll" FileName="SYSTE~12.DLL|System.Web.Http.WebHost.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Web.Http.WebHost.dll" SelfReg="false"/> + <ROW File="System.Web.Razor.dll" Component_="System.Web.Razor.dll" FileName="SYSTE~13.DLL|System.Web.Razor.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Web.Razor.dll" SelfReg="false"/> + <ROW File="System.Windows.Interactivity.dll" Component_="System.Windows.Interactivity.dll" FileName="SYSTE~14.DLL|System.Windows.Interactivity.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Windows.Interactivity.dll" SelfReg="false"/> + <ROW File="Tango.AdvancedInstaller.dll" Component_="Tango.AdvancedInstaller.dll" FileName="TANGOA~1.DLL|Tango.AdvancedInstaller.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.AdvancedInstaller.dll" SelfReg="false"/> + <ROW File="Tango.AdvancedInstaller.pdb" Component_="Tango.AdvancedInstaller.dll" FileName="TANGOA~1.PDB|Tango.AdvancedInstaller.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.AdvancedInstaller.pdb" SelfReg="false"/> + <ROW File="Tango.AnimatedGif.dll" Component_="Tango.AnimatedGif.dll" FileName="TANGOA~2.DLL|Tango.AnimatedGif.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.AnimatedGif.dll" SelfReg="false"/> + <ROW File="Tango.AnimatedGif.pdb" Component_="Tango.AnimatedGif.dll" FileName="TANGOA~2.PDB|Tango.AnimatedGif.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.AnimatedGif.pdb" SelfReg="false"/> + <ROW File="Tango.BL.dll" Component_="Tango.BL.dll" FileName="TANGOB~1.DLL|Tango.BL.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.BL.dll" SelfReg="false"/> + <ROW File="Tango.BL.dll.config" Component_="GetVersionTag.bat" FileName="TANGOB~1.CON|Tango.BL.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.BL.dll.config" SelfReg="false"/> + <ROW File="Tango.BL.pdb" Component_="Tango.BL.dll" FileName="TANGOB~1.PDB|Tango.BL.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.BL.pdb" SelfReg="false"/> + <ROW File="Tango.CodeGeneration.dll" Component_="Tango.CodeGeneration.dll" FileName="TANGOC~1.DLL|Tango.CodeGeneration.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.CodeGeneration.dll" SelfReg="false"/> + <ROW File="Tango.CodeGeneration.pdb" Component_="Tango.CodeGeneration.dll" FileName="TANGOC~1.PDB|Tango.CodeGeneration.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.CodeGeneration.pdb" SelfReg="false"/> + <ROW File="Tango.ColorConversion.dll" Component_="Tango.ColorConversion.dll" FileName="TANGOC~2.DLL|Tango.ColorConversion.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.ColorConversion.dll" SelfReg="false"/> + <ROW File="Tango.ColorConversion.pdb" Component_="Tango.ColorConversion.dll" FileName="TANGOC~2.PDB|Tango.ColorConversion.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.ColorConversion.pdb" SelfReg="false"/> + <ROW File="Tango.Colorful.dll" Component_="Tango.Colorful.dll" FileName="TANGOC~3.DLL|Tango.Colorful.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Colorful.dll" SelfReg="false"/> + <ROW File="Tango.Colorful.pdb" Component_="Tango.Colorful.dll" FileName="TANGOC~3.PDB|Tango.Colorful.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Colorful.pdb" SelfReg="false"/> + <ROW File="Tango.ColorLib_v1.dll" Component_="Tango.ColorLib_v1.dll" FileName="TANGOC~4.DLL|Tango.ColorLib_v1.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.ColorLib_v1.dll" SelfReg="false"/> + <ROW File="Tango.ColorLib_v2.dll" Component_="Tango.ColorLib_v2.dll" FileName="TANGOC~5.DLL|Tango.ColorLib_v2.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.ColorLib_v2.dll" SelfReg="false"/> + <ROW File="Tango.ColorLib_v3.dll" Component_="Tango.ColorLib_v3.dll" FileName="TANGOC~6.DLL|Tango.ColorLib_v3.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.ColorLib_v3.dll" SelfReg="false"/> + <ROW File="Tango.ColorLib_v4.dll" Component_="Tango.ColorLib_v4.dll" FileName="TANGOC~7.DLL|Tango.ColorLib_v4.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.ColorLib_v4.dll" SelfReg="false"/> + <ROW File="Tango.ColorLib_v5.dll" Component_="Tango.ColorLib_v5.dll" FileName="TANGOC~8.DLL|Tango.ColorLib_v5.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.ColorLib_v5.dll" SelfReg="false"/> + <ROW File="Tango.ColorLib_v6.dll" Component_="Tango.ColorLib_v6.dll" FileName="TANGOC~9.DLL|Tango.ColorLib_v6.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.ColorLib_v6.dll" SelfReg="false"/> + <ROW File="Tango.Console.dll" Component_="Tango.Console.dll" FileName="TANGO~10.DLL|Tango.Console.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Console.dll" SelfReg="false"/> + <ROW File="Tango.Console.pdb" Component_="Tango.Console.dll" FileName="TANGOC~4.PDB|Tango.Console.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Console.pdb" SelfReg="false"/> + <ROW File="Tango.Core.dll" Component_="Tango.Core.dll" FileName="TANGO~11.DLL|Tango.Core.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Core.dll" SelfReg="false"/> + <ROW File="Tango.Core.dll.config" Component_="GetVersionTag.bat" FileName="TANGOC~1.CON|Tango.Core.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Core.dll.config" SelfReg="false"/> + <ROW File="Tango.Core.pdb" Component_="Tango.Core.dll" FileName="TANGOC~5.PDB|Tango.Core.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Core.pdb" SelfReg="false"/> + <ROW File="Tango.CSV.dll" Component_="Tango.CSV.dll" FileName="TANGO~12.DLL|Tango.CSV.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.CSV.dll" SelfReg="false"/> + <ROW File="Tango.CSV.pdb" Component_="Tango.CSV.dll" FileName="TANGOC~6.PDB|Tango.CSV.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.CSV.pdb" SelfReg="false"/> + <ROW File="Tango.DataStore.dll" Component_="Tango.DataStore.dll" FileName="TANGOD~1.DLL|Tango.DataStore.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.DataStore.dll" SelfReg="false"/> + <ROW File="Tango.DataStore.Editing.dll" Component_="Tango.DataStore.Editing.dll" FileName="TANGOD~2.DLL|Tango.DataStore.Editing.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.DataStore.Editing.dll" SelfReg="false"/> + <ROW File="Tango.DataStore.Editing.pdb" Component_="Tango.DataStore.Editing.dll" FileName="TANGOD~1.PDB|Tango.DataStore.Editing.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.DataStore.Editing.pdb" SelfReg="false"/> + <ROW File="Tango.DataStore.EF.dll" Component_="Tango.DataStore.EF.dll" FileName="TANGOD~3.DLL|Tango.DataStore.EF.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.DataStore.EF.dll" SelfReg="false"/> + <ROW File="Tango.DataStore.EF.pdb" Component_="Tango.DataStore.EF.dll" FileName="TANGOD~2.PDB|Tango.DataStore.EF.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.DataStore.EF.pdb" SelfReg="false"/> + <ROW File="Tango.DataStore.pdb" Component_="Tango.DataStore.dll" FileName="TANGOD~3.PDB|Tango.DataStore.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.DataStore.pdb" SelfReg="false"/> + <ROW File="Tango.DataStore.Remote.dll" Component_="Tango.DataStore.Remote.dll" FileName="TANGOD~4.DLL|Tango.DataStore.Remote.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.DataStore.Remote.dll" SelfReg="false"/> + <ROW File="Tango.DataStore.Remote.pdb" Component_="Tango.DataStore.Remote.dll" FileName="TANGOD~4.PDB|Tango.DataStore.Remote.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.DataStore.Remote.pdb" SelfReg="false"/> + <ROW File="Tango.Documents.dll" Component_="Tango.Documents.dll" FileName="TANGOD~5.DLL|Tango.Documents.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Documents.dll" SelfReg="false"/> + <ROW File="Tango.Documents.pdb" Component_="Tango.Documents.dll" FileName="TANGOD~5.PDB|Tango.Documents.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Documents.pdb" SelfReg="false"/> + <ROW File="Tango.DragAndDrop.dll" Component_="Tango.DragAndDrop.dll" FileName="TANGOD~6.DLL|Tango.DragAndDrop.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.DragAndDrop.dll" SelfReg="false"/> + <ROW File="Tango.DragAndDrop.dll.config" Component_="GetVersionTag.bat" FileName="TANGOD~1.CON|Tango.DragAndDrop.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.DragAndDrop.dll.config" SelfReg="false"/> + <ROW File="Tango.DragAndDrop.pdb" Component_="Tango.DragAndDrop.dll" FileName="TANGOD~6.PDB|Tango.DragAndDrop.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.DragAndDrop.pdb" SelfReg="false"/> + <ROW File="Tango.Emulations.dll" Component_="Tango.Emulations.dll" FileName="TANGOE~1.DLL|Tango.Emulations.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Emulations.dll" SelfReg="false"/> + <ROW File="Tango.Emulations.dll.config" Component_="GetVersionTag.bat" FileName="TANGOE~1.CON|Tango.Emulations.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Emulations.dll.config" SelfReg="false"/> + <ROW File="Tango.Emulations.pdb" Component_="Tango.Emulations.dll" FileName="TANGOE~1.PDB|Tango.Emulations.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Emulations.pdb" SelfReg="false"/> + <ROW File="Tango.Explorer.dll" Component_="Tango.Explorer.dll" FileName="TANGOE~2.DLL|Tango.Explorer.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Explorer.dll" SelfReg="false"/> + <ROW File="Tango.Explorer.dll.config" Component_="GetVersionTag.bat" FileName="TANGOE~2.CON|Tango.Explorer.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Explorer.dll.config" SelfReg="false"/> + <ROW File="Tango.Explorer.pdb" Component_="Tango.Explorer.dll" FileName="TANGOE~2.PDB|Tango.Explorer.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Explorer.pdb" SelfReg="false"/> + <ROW File="Tango.FileSystem.dll" Component_="Tango.FileSystem.dll" FileName="TANGOF~1.DLL|Tango.FileSystem.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.FileSystem.dll" SelfReg="false"/> + <ROW File="Tango.FileSystem.pdb" Component_="Tango.FileSystem.dll" FileName="TANGOF~1.PDB|Tango.FileSystem.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.FileSystem.pdb" SelfReg="false"/> + <ROW File="Tango.FirmwareUpdateLib.dll" Component_="Tango.FirmwareUpdateLib.dll" FileName="TANGOF~2.DLL|Tango.FirmwareUpdateLib.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.FirmwareUpdateLib.dll" SelfReg="false"/> + <ROW File="Tango.FirmwareUpdateLib.pdb" Component_="Tango.FirmwareUpdateLib.dll" FileName="TANGOF~2.PDB|Tango.FirmwareUpdateLib.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.FirmwareUpdateLib.pdb" SelfReg="false"/> + <ROW File="Tango.FirmwareUpdateLib.WPF.dll" Component_="Tango.FirmwareUpdateLib.WPF.dll" FileName="TANGOF~3.DLL|Tango.FirmwareUpdateLib.WPF.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.FirmwareUpdateLib.WPF.dll" SelfReg="false"/> + <ROW File="Tango.FirmwareUpdateLib.WPF.pdb" Component_="Tango.FirmwareUpdateLib.WPF.dll" FileName="TANGOF~3.PDB|Tango.FirmwareUpdateLib.WPF.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.FirmwareUpdateLib.WPF.pdb" SelfReg="false"/> + <ROW File="Tango.Git.dll" Component_="Tango.Git.dll" FileName="TANGOG~1.DLL|Tango.Git.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Git.dll" SelfReg="false"/> + <ROW File="Tango.Git.pdb" Component_="Tango.Git.dll" FileName="TANGOG~1.PDB|Tango.Git.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Git.pdb" SelfReg="false"/> + <ROW File="Tango.Insights.dll" Component_="Tango.Insights.dll" FileName="TANGOI~1.DLL|Tango.Insights.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Insights.dll" SelfReg="false"/> + <ROW File="Tango.Insights.pdb" Component_="Tango.Insights.dll" FileName="TANGOI~1.PDB|Tango.Insights.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Insights.pdb" SelfReg="false"/> + <ROW File="Tango.Integration.dll" Component_="Tango.Integration.dll" FileName="TANGOI~2.DLL|Tango.Integration.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Integration.dll" SelfReg="false"/> + <ROW File="Tango.Integration.dll.config" Component_="GetVersionTag.bat" FileName="TANGOI~1.CON|Tango.Integration.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Integration.dll.config" SelfReg="false"/> + <ROW File="Tango.Integration.pdb" Component_="Tango.Integration.dll" FileName="TANGOI~2.PDB|Tango.Integration.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Integration.pdb" SelfReg="false"/> + <ROW File="Tango.Logging.dll" Component_="Tango.Logging.dll" FileName="TANGOL~1.DLL|Tango.Logging.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Logging.dll" SelfReg="false"/> + <ROW File="Tango.Logging.pdb" Component_="Tango.Logging.dll" FileName="TANGOL~1.PDB|Tango.Logging.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Logging.pdb" SelfReg="false"/> + <ROW File="Tango.PDF.dll" Component_="Tango.PDF.dll" FileName="TANGOP~1.DLL|Tango.PDF.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PDF.dll" SelfReg="false"/> + <ROW File="Tango.PDF.pdb" Component_="Tango.PDF.dll" FileName="TANGOP~1.PDB|Tango.PDF.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PDF.pdb" SelfReg="false"/> + <ROW File="Tango.PMR.dll" Component_="Tango.PMR.dll" FileName="TANGOP~2.DLL|Tango.PMR.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PMR.dll" SelfReg="false"/> + <ROW File="Tango.PMR.pdb" Component_="Tango.PMR.dll" FileName="TANGOP~2.PDB|Tango.PMR.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PMR.pdb" SelfReg="false"/> + <ROW File="Tango.PPC.BackupRestore.dll" Component_="Tango.PPC.BackupRestore.dll" FileName="TANGOP~3.DLL|Tango.PPC.BackupRestore.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.BackupRestore.dll" SelfReg="false"/> + <ROW File="Tango.PPC.BackupRestore.dll.config" Component_="GetVersionTag.bat" FileName="TANGOP~1.CON|Tango.PPC.BackupRestore.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.BackupRestore.dll.config" SelfReg="false"/> + <ROW File="Tango.PPC.BackupRestore.pdb" Component_="Tango.PPC.BackupRestore.dll" FileName="TANGOP~3.PDB|Tango.PPC.BackupRestore.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.BackupRestore.pdb" SelfReg="false"/> + <ROW File="Tango.PPC.BugReporting.dll" Component_="Tango.PPC.BugReporting.dll" FileName="TANGOP~4.DLL|Tango.PPC.BugReporting.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.BugReporting.dll" SelfReg="false"/> + <ROW File="Tango.PPC.BugReporting.dll.config" Component_="GetVersionTag.bat" FileName="TANGOP~2.CON|Tango.PPC.BugReporting.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.BugReporting.dll.config" SelfReg="false"/> + <ROW File="Tango.PPC.BugReporting.pdb" Component_="Tango.PPC.BugReporting.dll" FileName="TANGOP~4.PDB|Tango.PPC.BugReporting.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.BugReporting.pdb" SelfReg="false"/> + <ROW File="Tango.PPC.Common.dll" Component_="Tango.PPC.Common.dll" FileName="TANGOP~5.DLL|Tango.PPC.Common.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Common.dll" SelfReg="false"/> + <ROW File="Tango.PPC.Common.dll.config" Component_="GetVersionTag.bat" FileName="TANGOP~3.CON|Tango.PPC.Common.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Common.dll.config" SelfReg="false"/> + <ROW File="Tango.PPC.Common.pdb" Component_="Tango.PPC.Common.dll" FileName="TANGOP~5.PDB|Tango.PPC.Common.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Common.pdb" SelfReg="false"/> + <ROW File="Tango.PPC.Events.dll" Component_="Tango.PPC.Events.dll" FileName="TANGOP~6.DLL|Tango.PPC.Events.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Events.dll" SelfReg="false"/> + <ROW File="Tango.PPC.Events.dll.config" Component_="GetVersionTag.bat" FileName="TANGOP~4.CON|Tango.PPC.Events.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Events.dll.config" SelfReg="false"/> + <ROW File="Tango.PPC.Events.pdb" Component_="Tango.PPC.Events.dll" FileName="TANGOP~6.PDB|Tango.PPC.Events.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Events.pdb" SelfReg="false"/> + <ROW File="Tango.PPC.JobsV2.dll" Component_="Tango.PPC.JobsV2.dll" FileName="TANGOP~7.DLL|Tango.PPC.JobsV2.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.JobsV2.dll" SelfReg="false"/> + <ROW File="Tango.PPC.JobsV2.dll.config" Component_="GetVersionTag.bat" FileName="TANGOP~5.CON|Tango.PPC.JobsV2.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.JobsV2.dll.config" SelfReg="false"/> + <ROW File="Tango.PPC.JobsV2.pdb" Component_="Tango.PPC.JobsV2.dll" FileName="TANGOP~7.PDB|Tango.PPC.JobsV2.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.JobsV2.pdb" SelfReg="false"/> + <ROW File="Tango.PPC.MachineSettings.dll" Component_="Tango.PPC.MachineSettings.dll" FileName="TANGOP~8.DLL|Tango.PPC.MachineSettings.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.MachineSettings.dll" SelfReg="false"/> + <ROW File="Tango.PPC.MachineSettings.dll.config" Component_="GetVersionTag.bat" FileName="TANGOP~6.CON|Tango.PPC.MachineSettings.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.MachineSettings.dll.config" SelfReg="false"/> + <ROW File="Tango.PPC.MachineSettings.pdb" Component_="Tango.PPC.MachineSettings.dll" FileName="TANGOP~8.PDB|Tango.PPC.MachineSettings.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.MachineSettings.pdb" SelfReg="false"/> + <ROW File="Tango.PPC.Maintenance.dll" Component_="Tango.PPC.Maintenance.dll" FileName="TANGOP~9.DLL|Tango.PPC.Maintenance.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Maintenance.dll" SelfReg="false"/> + <ROW File="Tango.PPC.Maintenance.dll.config" Component_="GetVersionTag.bat" FileName="TANGOP~7.CON|Tango.PPC.Maintenance.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Maintenance.dll.config" SelfReg="false"/> + <ROW File="Tango.PPC.Maintenance.pdb" Component_="Tango.PPC.Maintenance.dll" FileName="TANGOP~9.PDB|Tango.PPC.Maintenance.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Maintenance.pdb" SelfReg="false"/> + <ROW File="Tango.PPC.Shared.dll" Component_="Tango.PPC.Shared.dll" FileName="TANGO~13.DLL|Tango.PPC.Shared.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Shared.dll" SelfReg="false"/> + <ROW File="Tango.PPC.Shared.pdb" Component_="Tango.PPC.Shared.dll" FileName="TANGO~10.PDB|Tango.PPC.Shared.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Shared.pdb" SelfReg="false"/> + <ROW File="Tango.PPC.Storage.dll" Component_="Tango.PPC.Storage.dll" FileName="TANGO~14.DLL|Tango.PPC.Storage.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Storage.dll" SelfReg="false"/> + <ROW File="Tango.PPC.Storage.dll.config" Component_="GetVersionTag.bat" FileName="TANGOP~8.CON|Tango.PPC.Storage.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Storage.dll.config" SelfReg="false"/> + <ROW File="Tango.PPC.Storage.pdb" Component_="Tango.PPC.Storage.dll" FileName="TANGO~11.PDB|Tango.PPC.Storage.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Storage.pdb" SelfReg="false"/> + <ROW File="Tango.PPC.Technician.dll" Component_="Tango.PPC.Technician.dll" FileName="TANGO~15.DLL|Tango.PPC.Technician.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Technician.dll" SelfReg="false"/> + <ROW File="Tango.PPC.Technician.dll.config" Component_="GetVersionTag.bat" FileName="TANGOP~9.CON|Tango.PPC.Technician.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Technician.dll.config" SelfReg="false"/> + <ROW File="Tango.PPC.Technician.pdb" Component_="Tango.PPC.Technician.dll" FileName="TANGO~12.PDB|Tango.PPC.Technician.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Technician.pdb" SelfReg="false"/> + <ROW File="Tango.PPC.UI.exe" Component_="Tango.PPC.UI.exe" FileName="TANGOP~1.EXE|Tango.PPC.UI.exe" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.UI.exe" SelfReg="false" DigSign="true"/> + <ROW File="Tango.PPC.UI.exe.config" Component_="GetVersionTag.bat" FileName="TANGO~10.CON|Tango.PPC.UI.exe.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.UI.exe.config" SelfReg="false"/> + <ROW File="Tango.PPC.UI.pdb" Component_="Tango.PPC.UI.exe" FileName="TANGO~13.PDB|Tango.PPC.UI.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.UI.pdb" SelfReg="false"/> + <ROW File="Tango.Pulse.dll" Component_="Tango.Pulse.dll" FileName="TANGO~16.DLL|Tango.Pulse.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Pulse.dll" SelfReg="false"/> + <ROW File="Tango.Pulse.pdb" Component_="Tango.Pulse.dll" FileName="TANGO~14.PDB|Tango.Pulse.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Pulse.pdb" SelfReg="false"/> + <ROW File="Tango.RemoteDesktop.dll" Component_="Tango.RemoteDesktop.dll" FileName="TANGOR~1.DLL|Tango.RemoteDesktop.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.RemoteDesktop.dll" SelfReg="false"/> + <ROW File="Tango.RemoteDesktop.pdb" Component_="Tango.RemoteDesktop.dll" FileName="TANGOR~1.PDB|Tango.RemoteDesktop.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.RemoteDesktop.pdb" SelfReg="false"/> + <ROW File="Tango.Serialization.dll" Component_="Tango.Serialization.dll" FileName="TANGOS~1.DLL|Tango.Serialization.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Serialization.dll" SelfReg="false"/> + <ROW File="Tango.Serialization.pdb" Component_="Tango.Serialization.dll" FileName="TANGOS~1.PDB|Tango.Serialization.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Serialization.pdb" SelfReg="false"/> + <ROW File="Tango.Settings.dll" Component_="Tango.Settings.dll" FileName="TANGOS~2.DLL|Tango.Settings.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Settings.dll" SelfReg="false"/> + <ROW File="Tango.Settings.pdb" Component_="Tango.Settings.dll" FileName="TANGOS~2.PDB|Tango.Settings.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Settings.pdb" SelfReg="false"/> + <ROW File="Tango.SharedUI.dll" Component_="Tango.SharedUI.dll" FileName="TANGOS~3.DLL|Tango.SharedUI.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.SharedUI.dll" SelfReg="false"/> + <ROW File="Tango.SharedUI.dll.config" Component_="GetVersionTag.bat" FileName="TANGOS~1.CON|Tango.SharedUI.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.SharedUI.dll.config" SelfReg="false"/> + <ROW File="Tango.SharedUI.pdb" Component_="Tango.SharedUI.dll" FileName="TANGOS~3.PDB|Tango.SharedUI.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.SharedUI.pdb" SelfReg="false"/> + <ROW File="Tango.SQLExaminer.dll" Component_="Tango.SQLExaminer.dll" FileName="TANGOS~4.DLL|Tango.SQLExaminer.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.SQLExaminer.dll" SelfReg="false"/> + <ROW File="Tango.SQLExaminer.pdb" Component_="Tango.SQLExaminer.dll" FileName="TANGOS~4.PDB|Tango.SQLExaminer.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.SQLExaminer.pdb" SelfReg="false"/> + <ROW File="Tango.SystemInfo.dll" Component_="Tango.SystemInfo.dll" FileName="TANGOS~5.DLL|Tango.SystemInfo.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.SystemInfo.dll" SelfReg="false"/> + <ROW File="Tango.SystemInfo.pdb" Component_="Tango.SystemInfo.dll" FileName="TANGOS~5.PDB|Tango.SystemInfo.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.SystemInfo.pdb" SelfReg="false"/> + <ROW File="Tango.TFS.dll" Component_="Tango.TFS.dll" FileName="TANGOT~1.DLL|Tango.TFS.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.TFS.dll" SelfReg="false"/> + <ROW File="Tango.TFS.dll.config" Component_="GetVersionTag.bat" FileName="TANGOT~1.CON|Tango.TFS.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.TFS.dll.config" SelfReg="false"/> + <ROW File="Tango.TFS.pdb" Component_="Tango.TFS.dll" FileName="TANGOT~1.PDB|Tango.TFS.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.TFS.pdb" SelfReg="false"/> + <ROW File="Tango.Touch.dll" Component_="Tango.Touch.dll" FileName="TANGOT~2.DLL|Tango.Touch.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Touch.dll" SelfReg="false"/> + <ROW File="Tango.Touch.dll.config" Component_="GetVersionTag.bat" FileName="TANGOT~2.CON|Tango.Touch.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Touch.dll.config" SelfReg="false"/> + <ROW File="Tango.Touch.pdb" Component_="Tango.Touch.dll" FileName="TANGOT~2.PDB|Tango.Touch.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Touch.pdb" SelfReg="false"/> + <ROW File="Tango.Transport.dll" Component_="Tango.Transport.dll" FileName="TANGOT~3.DLL|Tango.Transport.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Transport.dll" SelfReg="false"/> + <ROW File="Tango.Transport.dll.config" Component_="GetVersionTag.bat" FileName="TANGOT~3.CON|Tango.Transport.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Transport.dll.config" SelfReg="false"/> + <ROW File="Tango.Transport.pdb" Component_="Tango.Transport.dll" FileName="TANGOT~3.PDB|Tango.Transport.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Transport.pdb" SelfReg="false"/> + <ROW File="Tango.Web.dll" Component_="Tango.Web.dll" FileName="TANGOW~1.DLL|Tango.Web.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Web.dll" SelfReg="false"/> + <ROW File="Tango.Web.dll.config" Component_="GetVersionTag.bat" FileName="TANGOW~1.CON|Tango.Web.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Web.dll.config" SelfReg="false"/> + <ROW File="Tango.Web.pdb" Component_="Tango.Web.dll" FileName="TANGOW~1.PDB|Tango.Web.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Web.pdb" SelfReg="false"/> + <ROW File="Tango.WebRTC.dll" Component_="Tango.WebRTC.dll" FileName="TANGOW~2.DLL|Tango.WebRTC.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.WebRTC.dll" SelfReg="false"/> + <ROW File="Tango.WebRTC.pdb" Component_="Tango.WebRTC.dll" FileName="TANGOW~2.PDB|Tango.WebRTC.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.WebRTC.pdb" SelfReg="false"/> + <ROW File="Tango.WiFi.dll" Component_="Tango.WiFi.dll" FileName="TANGOW~3.DLL|Tango.WiFi.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.WiFi.dll" SelfReg="false"/> + <ROW File="Tango.WiFi.pdb" Component_="Tango.WiFi.dll" FileName="TANGOW~3.PDB|Tango.WiFi.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.WiFi.pdb" SelfReg="false"/> + <ROW File="ucrtbased.dll" Component_="ucrtbased.dll" FileName="UCRTBA~1.DLL|ucrtbased.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\ucrtbased.dll" SelfReg="false"/> + <ROW File="vcruntime140.dll" Component_="vcruntime140.dll" FileName="VCRUNT~1.DLL|vcruntime140.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\vcruntime140.dll" SelfReg="false"/> + <ROW File="vcruntime140d.dll" Component_="vcruntime140d.dll" FileName="VCRUNT~2.DLL|vcruntime140d.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\vcruntime140d.dll" SelfReg="false"/> + <ROW File="WebRtc.NET.dll" Component_="WebRtc.NET.dll" FileName="WEBRTC~1.DLL|WebRtc.NET.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\WebRtc.NET.dll" SelfReg="false"/> + <ROW File="turbojpeg.dll" Component_="turbojpeg.dll" FileName="TURBOJ~1.DLL|turbojpeg.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\win7-x64\turbojpeg.dll" SelfReg="false"/> + <ROW File="turbojpeg.dll.meta" Component_="turbojpeg.dll.meta" FileName="TURBOJ~1.MET|turbojpeg.dll.meta" Attributes="0" SourcePath="..\Build\PPC\Eureka\win7-x64\turbojpeg.dll.meta" SelfReg="false"/> + <ROW File="turbojpeg.dll_1" Component_="turbojpeg.dll_1" FileName="TURBOJ~1.DLL|turbojpeg.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\win7-x86\turbojpeg.dll" SelfReg="false"/> + <ROW File="turbojpeg.dll.meta_1" Component_="turbojpeg.dll.meta_1" FileName="TURBOJ~1.MET|turbojpeg.dll.meta" Attributes="0" SourcePath="..\Build\PPC\Eureka\win7-x86\turbojpeg.dll.meta" SelfReg="false"/> + <ROW File="WindowsInput.dll" Component_="WindowsInput.dll" FileName="WINDOW~1.DLL|WindowsInput.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\WindowsInput.dll" SelfReg="false"/> + <ROW File="Tango.PPC.Updater.exe" Component_="Tango.PPC.Updater.exe" FileName="TANGOP~2.EXE|Tango.PPC.Updater.exe" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Updater.exe" SelfReg="false" DigSign="true"/> + <ROW File="Tango.PPC.Updater.exe.config" Component_="GetVersionTag.bat" FileName="TANGO~11.CON|Tango.PPC.Updater.exe.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Updater.exe.config" SelfReg="false"/> + <ROW File="Tango.PPC.Updater.pdb" Component_="Tango.PPC.Updater.exe" FileName="TANGO~15.PDB|Tango.PPC.Updater.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Updater.pdb" SelfReg="false"/> + <ROW File="FluentFTP.dll" Component_="FluentFTP.dll" FileName="FLUENT~1.DLL|FluentFTP.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\FluentFTP.dll" SelfReg="false"/> + <ROW File="Hyak.Common.dll" Component_="Hyak.Common.dll" FileName="HYAKCO~1.DLL|Hyak.Common.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Hyak.Common.dll" SelfReg="false"/> + <ROW File="Microsoft.Azure.Common.dll" Component_="Microsoft.Azure.Common.dll" FileName="MICROS~3.DLL|Microsoft.Azure.Common.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.Azure.Common.dll" SelfReg="false"/> + <ROW File="Microsoft.Azure.Common.NetFramework.dll" Component_="Microsoft.Azure.Common.NetFramework.dll" FileName="MICROS~4.DLL|Microsoft.Azure.Common.NetFramework.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.Azure.Common.NetFramework.dll" SelfReg="false"/> + <ROW File="Microsoft.Azure.ResourceManager.dll" Component_="Microsoft.Azure.ResourceManager.dll" FileName="MICROS~5.DLL|Microsoft.Azure.ResourceManager.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.Azure.ResourceManager.dll" SelfReg="false"/> + <ROW File="Microsoft.Data.Edm.dll" Component_="Microsoft.Data.Edm.dll" FileName="MICRO~34.DLL|Microsoft.Data.Edm.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.Data.Edm.dll" SelfReg="false"/> + <ROW File="Microsoft.Data.OData.dll" Component_="Microsoft.Data.OData.dll" FileName="MICRO~35.DLL|Microsoft.Data.OData.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.Data.OData.dll" SelfReg="false"/> + <ROW File="Microsoft.Data.Services.Client.dll" Component_="Microsoft.Data.Services.Client.dll" FileName="MICRO~36.DLL|Microsoft.Data.Services.Client.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.Data.Services.Client.dll" SelfReg="false"/> + <ROW File="Microsoft.SqlServer.AzureStorageEnum.dll" Component_="Microsoft.SqlServer.AzureStorageEnum.dll" FileName="MICRO~37.DLL|Microsoft.SqlServer.AzureStorageEnum.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.SqlServer.AzureStorageEnum.dll" SelfReg="false"/> + <ROW File="System.IO.Compression.FileSystem.dll" Component_="System.IO.Compression.FileSystem.dll" FileName="SYSTE~10.DLL|System.IO.Compression.FileSystem.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.IO.Compression.FileSystem.dll" SelfReg="false"/> + <ROW File="System.Spatial.dll" Component_="System.Spatial.dll" FileName="SYSTE~15.DLL|System.Spatial.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Spatial.dll" SelfReg="false"/> + <ROW File="Tango.DataStore.Lite.dll" Component_="Tango.DataStore.Lite.dll" FileName="TANGOD~7.DLL|Tango.DataStore.Lite.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.DataStore.Lite.dll" SelfReg="false"/> + <ROW File="Tango.DataStore.Lite.pdb" Component_="Tango.DataStore.Lite.dll" FileName="TANGOD~7.PDB|Tango.DataStore.Lite.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.DataStore.Lite.pdb" SelfReg="false"/> + <ROW File="Intro.wmv" Component_="GetVersionTag.bat" FileName="Intro.wmv" Attributes="0" SourcePath="..\Build\PPC\Eureka\Intro.wmv" SelfReg="false"/> + <ROW File="WPFMediaKit.dll" Component_="WPFMediaKit.dll" FileName="WPFMED~1.DLL|WPFMediaKit.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\WPFMediaKit.dll" SelfReg="false"/> + <ROW File="DirectShowLib2005.dll" Component_="DirectShowLib2005.dll" FileName="DIRECT~1.DLL|DirectShowLib-2005.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\DirectShowLib-2005.dll" SelfReg="false"/> + <ROW File="EVRPresenter32.dll" Component_="EVRPresenter32.dll" FileName="EVRPRE~1.DLL|EVRPresenter32.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\EVRPresenter32.dll" SelfReg="false"/> + <ROW File="EVRPresenter64.dll" Component_="EVRPresenter64.dll" FileName="EVRPRE~2.DLL|EVRPresenter64.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\EVRPresenter64.dll" SelfReg="false"/> + <ROW File="Microsoft.Win32.Primitives.dll" Component_="Microsoft.Win32.Primitives.dll" FileName="MICRO~38.DLL|Microsoft.Win32.Primitives.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.Win32.Primitives.dll" SelfReg="false"/> + <ROW File="netstandard.dll" Component_="netstandard.dll" FileName="NETSTA~1.DLL|netstandard.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\netstandard.dll" SelfReg="false"/> + <ROW File="RealTimeGraphX.dll" Component_="RealTimeGraphX.dll" FileName="REALTI~1.DLL|RealTimeGraphX.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\RealTimeGraphX.dll" SelfReg="false"/> + <ROW File="RealTimeGraphX.pdb" Component_="RealTimeGraphX.dll" FileName="REALTI~1.PDB|RealTimeGraphX.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\RealTimeGraphX.pdb" SelfReg="false"/> + <ROW File="RealTimeGraphX.WPF.dll" Component_="RealTimeGraphX.WPF.dll" FileName="REALTI~2.DLL|RealTimeGraphX.WPF.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\RealTimeGraphX.WPF.dll" SelfReg="false"/> + <ROW File="RealTimeGraphX.WPF.pdb" Component_="RealTimeGraphX.WPF.dll" FileName="REALTI~2.PDB|RealTimeGraphX.WPF.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\RealTimeGraphX.WPF.pdb" SelfReg="false"/> + <ROW File="System.AppContext.dll" Component_="System.AppContext.dll" FileName="SYSTE~16.DLL|System.AppContext.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.AppContext.dll" SelfReg="false"/> + <ROW File="System.Collections.Concurrent.dll" Component_="System.Collections.Concurrent.dll" FileName="SYSTE~17.DLL|System.Collections.Concurrent.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Collections.Concurrent.dll" SelfReg="false"/> + <ROW File="System.Collections.dll" Component_="System.Collections.dll" FileName="SYSTE~18.DLL|System.Collections.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Collections.dll" SelfReg="false"/> + <ROW File="System.Collections.NonGeneric.dll" Component_="System.Collections.NonGeneric.dll" FileName="SYSTE~19.DLL|System.Collections.NonGeneric.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Collections.NonGeneric.dll" SelfReg="false"/> + <ROW File="System.Collections.Specialized.dll" Component_="System.Collections.Specialized.dll" FileName="SYSTE~20.DLL|System.Collections.Specialized.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Collections.Specialized.dll" SelfReg="false"/> + <ROW File="System.ComponentModel.dll" Component_="System.ComponentModel.dll" FileName="SYSTE~21.DLL|System.ComponentModel.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.ComponentModel.dll" SelfReg="false"/> + <ROW File="System.ComponentModel.EventBasedAsync.dll" Component_="System.ComponentModel.EventBasedAsync.dll" FileName="SYSTE~22.DLL|System.ComponentModel.EventBasedAsync.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.ComponentModel.EventBasedAsync.dll" SelfReg="false"/> + <ROW File="System.ComponentModel.Primitives.dll" Component_="System.ComponentModel.Primitives.dll" FileName="SYSTE~23.DLL|System.ComponentModel.Primitives.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.ComponentModel.Primitives.dll" SelfReg="false"/> + <ROW File="System.ComponentModel.TypeConverter.dll" Component_="System.ComponentModel.TypeConverter.dll" FileName="SYSTE~24.DLL|System.ComponentModel.TypeConverter.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.ComponentModel.TypeConverter.dll" SelfReg="false"/> + <ROW File="System.Console.dll" Component_="System.Console.dll" FileName="SYSTE~25.DLL|System.Console.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Console.dll" SelfReg="false"/> + <ROW File="System.Data.Common.dll" Component_="System.Data.Common.dll" FileName="SYSTE~26.DLL|System.Data.Common.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Data.Common.dll" SelfReg="false"/> + <ROW File="System.Diagnostics.Contracts.dll" Component_="System.Diagnostics.Contracts.dll" FileName="SYSTE~27.DLL|System.Diagnostics.Contracts.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Diagnostics.Contracts.dll" SelfReg="false"/> + <ROW File="System.Diagnostics.Debug.dll" Component_="System.Diagnostics.Debug.dll" FileName="SYSTE~28.DLL|System.Diagnostics.Debug.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Diagnostics.Debug.dll" SelfReg="false"/> + <ROW File="System.Diagnostics.FileVersionInfo.dll" Component_="System.Diagnostics.FileVersionInfo.dll" FileName="SYSTE~29.DLL|System.Diagnostics.FileVersionInfo.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Diagnostics.FileVersionInfo.dll" SelfReg="false"/> + <ROW File="System.Diagnostics.Process.dll" Component_="System.Diagnostics.Process.dll" FileName="SYSTE~30.DLL|System.Diagnostics.Process.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Diagnostics.Process.dll" SelfReg="false"/> + <ROW File="System.Diagnostics.StackTrace.dll" Component_="System.Diagnostics.StackTrace.dll" FileName="SYSTE~31.DLL|System.Diagnostics.StackTrace.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Diagnostics.StackTrace.dll" SelfReg="false"/> + <ROW File="System.Diagnostics.TextWriterTraceListener.dll" Component_="System.Diagnostics.TextWriterTraceListener.dll" FileName="SYSTE~32.DLL|System.Diagnostics.TextWriterTraceListener.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Diagnostics.TextWriterTraceListener.dll" SelfReg="false"/> + <ROW File="System.Diagnostics.Tools.dll" Component_="System.Diagnostics.Tools.dll" FileName="SYSTE~33.DLL|System.Diagnostics.Tools.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Diagnostics.Tools.dll" SelfReg="false"/> + <ROW File="System.Diagnostics.TraceSource.dll" Component_="System.Diagnostics.TraceSource.dll" FileName="SYSTE~34.DLL|System.Diagnostics.TraceSource.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Diagnostics.TraceSource.dll" SelfReg="false"/> + <ROW File="System.Diagnostics.Tracing.dll" Component_="System.Diagnostics.Tracing.dll" FileName="SYSTE~35.DLL|System.Diagnostics.Tracing.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Diagnostics.Tracing.dll" SelfReg="false"/> + <ROW File="System.Drawing.Primitives.dll" Component_="System.Drawing.Primitives.dll" FileName="SYSTE~36.DLL|System.Drawing.Primitives.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Drawing.Primitives.dll" SelfReg="false"/> + <ROW File="System.Dynamic.Runtime.dll" Component_="System.Dynamic.Runtime.dll" FileName="SYSTE~37.DLL|System.Dynamic.Runtime.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Dynamic.Runtime.dll" SelfReg="false"/> + <ROW File="System.Globalization.Calendars.dll" Component_="System.Globalization.Calendars.dll" FileName="SYSTE~38.DLL|System.Globalization.Calendars.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Globalization.Calendars.dll" SelfReg="false"/> + <ROW File="System.Globalization.dll" Component_="System.Globalization.dll" FileName="SYSTE~39.DLL|System.Globalization.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Globalization.dll" SelfReg="false"/> + <ROW File="System.Globalization.Extensions.dll" Component_="System.Globalization.Extensions.dll" FileName="SYSTE~40.DLL|System.Globalization.Extensions.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Globalization.Extensions.dll" SelfReg="false"/> + <ROW File="System.IO.Compression.dll" Component_="System.IO.Compression.dll" FileName="SYSTE~41.DLL|System.IO.Compression.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.IO.Compression.dll" SelfReg="false"/> + <ROW File="System.IO.Compression.ZipFile.dll" Component_="System.IO.Compression.ZipFile.dll" FileName="SYSTE~42.DLL|System.IO.Compression.ZipFile.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.IO.Compression.ZipFile.dll" SelfReg="false"/> + <ROW File="System.IO.dll" Component_="System.IO.dll" FileName="SYSTE~43.DLL|System.IO.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.IO.dll" SelfReg="false"/> + <ROW File="System.IO.FileSystem.dll" Component_="System.IO.FileSystem.dll" FileName="SYSTE~44.DLL|System.IO.FileSystem.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.IO.FileSystem.dll" SelfReg="false"/> + <ROW File="System.IO.FileSystem.DriveInfo.dll" Component_="System.IO.FileSystem.DriveInfo.dll" FileName="SYSTE~45.DLL|System.IO.FileSystem.DriveInfo.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.IO.FileSystem.DriveInfo.dll" SelfReg="false"/> + <ROW File="System.IO.FileSystem.Primitives.dll" Component_="System.IO.FileSystem.Primitives.dll" FileName="SYSTE~46.DLL|System.IO.FileSystem.Primitives.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.IO.FileSystem.Primitives.dll" SelfReg="false"/> + <ROW File="System.IO.FileSystem.Watcher.dll" Component_="System.IO.FileSystem.Watcher.dll" FileName="SYSTE~47.DLL|System.IO.FileSystem.Watcher.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.IO.FileSystem.Watcher.dll" SelfReg="false"/> + <ROW File="System.IO.IsolatedStorage.dll" Component_="System.IO.IsolatedStorage.dll" FileName="SYSTE~48.DLL|System.IO.IsolatedStorage.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.IO.IsolatedStorage.dll" SelfReg="false"/> + <ROW File="System.IO.MemoryMappedFiles.dll" Component_="System.IO.MemoryMappedFiles.dll" FileName="SYSTE~49.DLL|System.IO.MemoryMappedFiles.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.IO.MemoryMappedFiles.dll" SelfReg="false"/> + <ROW File="System.IO.Pipes.dll" Component_="System.IO.Pipes.dll" FileName="SYSTE~50.DLL|System.IO.Pipes.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.IO.Pipes.dll" SelfReg="false"/> + <ROW File="System.IO.UnmanagedMemoryStream.dll" Component_="System.IO.UnmanagedMemoryStream.dll" FileName="SYSTE~51.DLL|System.IO.UnmanagedMemoryStream.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.IO.UnmanagedMemoryStream.dll" SelfReg="false"/> + <ROW File="System.Linq.dll" Component_="System.Linq.dll" FileName="SYSTE~52.DLL|System.Linq.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Linq.dll" SelfReg="false"/> + <ROW File="System.Linq.Expressions.dll" Component_="System.Linq.Expressions.dll" FileName="SYSTE~53.DLL|System.Linq.Expressions.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Linq.Expressions.dll" SelfReg="false"/> + <ROW File="System.Linq.Parallel.dll" Component_="System.Linq.Parallel.dll" FileName="SYSTE~54.DLL|System.Linq.Parallel.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Linq.Parallel.dll" SelfReg="false"/> + <ROW File="System.Linq.Queryable.dll" Component_="System.Linq.Queryable.dll" FileName="SYSTE~55.DLL|System.Linq.Queryable.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Linq.Queryable.dll" SelfReg="false"/> + <ROW File="System.Net.Http.dll" Component_="System.Net.Http.dll" FileName="SYSTE~56.DLL|System.Net.Http.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Net.Http.dll" SelfReg="false"/> + <ROW File="System.Net.NameResolution.dll" Component_="System.Net.NameResolution.dll" FileName="SYSTE~57.DLL|System.Net.NameResolution.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Net.NameResolution.dll" SelfReg="false"/> + <ROW File="System.Net.NetworkInformation.dll" Component_="System.Net.NetworkInformation.dll" FileName="SYSTE~58.DLL|System.Net.NetworkInformation.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Net.NetworkInformation.dll" SelfReg="false"/> + <ROW File="System.Net.Ping.dll" Component_="System.Net.Ping.dll" FileName="SYSTE~59.DLL|System.Net.Ping.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Net.Ping.dll" SelfReg="false"/> + <ROW File="System.Net.Primitives.dll" Component_="System.Net.Primitives.dll" FileName="SYSTE~60.DLL|System.Net.Primitives.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Net.Primitives.dll" SelfReg="false"/> + <ROW File="System.Net.Requests.dll" Component_="System.Net.Requests.dll" FileName="SYSTE~61.DLL|System.Net.Requests.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Net.Requests.dll" SelfReg="false"/> + <ROW File="System.Net.Security.dll" Component_="System.Net.Security.dll" FileName="SYSTE~62.DLL|System.Net.Security.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Net.Security.dll" SelfReg="false"/> + <ROW File="System.Net.Sockets.dll" Component_="System.Net.Sockets.dll" FileName="SYSTE~63.DLL|System.Net.Sockets.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Net.Sockets.dll" SelfReg="false"/> + <ROW File="System.Net.WebHeaderCollection.dll" Component_="System.Net.WebHeaderCollection.dll" FileName="SYSTE~64.DLL|System.Net.WebHeaderCollection.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Net.WebHeaderCollection.dll" SelfReg="false"/> + <ROW File="System.Net.WebSockets.Client.dll" Component_="System.Net.WebSockets.Client.dll" FileName="SYSTE~65.DLL|System.Net.WebSockets.Client.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Net.WebSockets.Client.dll" SelfReg="false"/> + <ROW File="System.Net.WebSockets.dll" Component_="System.Net.WebSockets.dll" FileName="SYSTE~66.DLL|System.Net.WebSockets.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Net.WebSockets.dll" SelfReg="false"/> + <ROW File="System.ObjectModel.dll" Component_="System.ObjectModel.dll" FileName="SYSTE~67.DLL|System.ObjectModel.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.ObjectModel.dll" SelfReg="false"/> + <ROW File="System.Reflection.dll" Component_="System.Reflection.dll" FileName="SYSTE~68.DLL|System.Reflection.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Reflection.dll" SelfReg="false"/> + <ROW File="System.Reflection.Extensions.dll" Component_="System.Reflection.Extensions.dll" FileName="SYSTE~69.DLL|System.Reflection.Extensions.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Reflection.Extensions.dll" SelfReg="false"/> + <ROW File="System.Reflection.Primitives.dll" Component_="System.Reflection.Primitives.dll" FileName="SYSTE~70.DLL|System.Reflection.Primitives.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Reflection.Primitives.dll" SelfReg="false"/> + <ROW File="System.Resources.Reader.dll" Component_="System.Resources.Reader.dll" FileName="SYSTE~71.DLL|System.Resources.Reader.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Resources.Reader.dll" SelfReg="false"/> + <ROW File="System.Resources.ResourceManager.dll" Component_="System.Resources.ResourceManager.dll" FileName="SYSTE~72.DLL|System.Resources.ResourceManager.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Resources.ResourceManager.dll" SelfReg="false"/> + <ROW File="System.Resources.Writer.dll" Component_="System.Resources.Writer.dll" FileName="SYSTE~73.DLL|System.Resources.Writer.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Resources.Writer.dll" SelfReg="false"/> + <ROW File="System.Runtime.CompilerServices.VisualC.dll" Component_="System.Runtime.CompilerServices.VisualC.dll" FileName="SYSTE~74.DLL|System.Runtime.CompilerServices.VisualC.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Runtime.CompilerServices.VisualC.dll" SelfReg="false"/> + <ROW File="System.Runtime.dll" Component_="System.Runtime.dll" FileName="SYSTE~75.DLL|System.Runtime.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Runtime.dll" SelfReg="false"/> + <ROW File="System.Runtime.Extensions.dll" Component_="System.Runtime.Extensions.dll" FileName="SYSTE~76.DLL|System.Runtime.Extensions.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Runtime.Extensions.dll" SelfReg="false"/> + <ROW File="System.Runtime.Handles.dll" Component_="System.Runtime.Handles.dll" FileName="SYSTE~77.DLL|System.Runtime.Handles.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Runtime.Handles.dll" SelfReg="false"/> + <ROW File="System.Runtime.InteropServices.dll" Component_="System.Runtime.InteropServices.dll" FileName="SYSTE~78.DLL|System.Runtime.InteropServices.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Runtime.InteropServices.dll" SelfReg="false"/> + <ROW File="System.Runtime.InteropServices.RuntimeInformation.dll" Component_="System.Runtime.InteropServices.RuntimeInformation.dll" FileName="SYSTE~79.DLL|System.Runtime.InteropServices.RuntimeInformation.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Runtime.InteropServices.RuntimeInformation.dll" SelfReg="false"/> + <ROW File="System.Runtime.Numerics.dll" Component_="System.Runtime.Numerics.dll" FileName="SYSTE~80.DLL|System.Runtime.Numerics.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Runtime.Numerics.dll" SelfReg="false"/> + <ROW File="System.Runtime.Serialization.Formatters.dll" Component_="System.Runtime.Serialization.Formatters.dll" FileName="SYSTE~81.DLL|System.Runtime.Serialization.Formatters.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Runtime.Serialization.Formatters.dll" SelfReg="false"/> + <ROW File="System.Runtime.Serialization.Json.dll" Component_="System.Runtime.Serialization.Json.dll" FileName="SYSTE~82.DLL|System.Runtime.Serialization.Json.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Runtime.Serialization.Json.dll" SelfReg="false"/> + <ROW File="System.Runtime.Serialization.Primitives.dll" Component_="System.Runtime.Serialization.Primitives.dll" FileName="SYSTE~83.DLL|System.Runtime.Serialization.Primitives.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Runtime.Serialization.Primitives.dll" SelfReg="false"/> + <ROW File="System.Runtime.Serialization.Xml.dll" Component_="System.Runtime.Serialization.Xml.dll" FileName="SYSTE~84.DLL|System.Runtime.Serialization.Xml.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Runtime.Serialization.Xml.dll" SelfReg="false"/> + <ROW File="System.Security.Claims.dll" Component_="System.Security.Claims.dll" FileName="SYSTE~85.DLL|System.Security.Claims.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Security.Claims.dll" SelfReg="false"/> + <ROW File="System.Security.Cryptography.Algorithms.dll" Component_="System.Security.Cryptography.Algorithms.dll" FileName="SYSTE~86.DLL|System.Security.Cryptography.Algorithms.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Security.Cryptography.Algorithms.dll" SelfReg="false"/> + <ROW File="System.Security.Cryptography.Csp.dll" Component_="System.Security.Cryptography.Csp.dll" FileName="SYSTE~87.DLL|System.Security.Cryptography.Csp.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Security.Cryptography.Csp.dll" SelfReg="false"/> + <ROW File="System.Security.Cryptography.Encoding.dll" Component_="System.Security.Cryptography.Encoding.dll" FileName="SYSTE~88.DLL|System.Security.Cryptography.Encoding.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Security.Cryptography.Encoding.dll" SelfReg="false"/> + <ROW File="System.Security.Cryptography.Primitives.dll" Component_="System.Security.Cryptography.Primitives.dll" FileName="SYSTE~89.DLL|System.Security.Cryptography.Primitives.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Security.Cryptography.Primitives.dll" SelfReg="false"/> + <ROW File="System.Security.Cryptography.X509Certificates.dll" Component_="System.Security.Cryptography.X509Certificates.dll" FileName="SYSTE~90.DLL|System.Security.Cryptography.X509Certificates.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Security.Cryptography.X509Certificates.dll" SelfReg="false"/> + <ROW File="System.Security.Principal.dll" Component_="System.Security.Principal.dll" FileName="SYSTE~91.DLL|System.Security.Principal.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Security.Principal.dll" SelfReg="false"/> + <ROW File="System.Security.SecureString.dll" Component_="System.Security.SecureString.dll" FileName="SYSTE~92.DLL|System.Security.SecureString.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Security.SecureString.dll" SelfReg="false"/> + <ROW File="System.Text.Encoding.dll" Component_="System.Text.Encoding.dll" FileName="SYSTE~93.DLL|System.Text.Encoding.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Text.Encoding.dll" SelfReg="false"/> + <ROW File="System.Text.Encoding.Extensions.dll" Component_="System.Text.Encoding.Extensions.dll" FileName="SYSTE~94.DLL|System.Text.Encoding.Extensions.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Text.Encoding.Extensions.dll" SelfReg="false"/> + <ROW File="System.Text.RegularExpressions.dll" Component_="System.Text.RegularExpressions.dll" FileName="SYSTE~95.DLL|System.Text.RegularExpressions.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Text.RegularExpressions.dll" SelfReg="false"/> + <ROW File="System.Threading.dll" Component_="System.Threading.dll" FileName="SYSTE~96.DLL|System.Threading.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Threading.dll" SelfReg="false"/> + <ROW File="System.Threading.Overlapped.dll" Component_="System.Threading.Overlapped.dll" FileName="SYSTE~97.DLL|System.Threading.Overlapped.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Threading.Overlapped.dll" SelfReg="false"/> + <ROW File="System.Threading.Tasks.dll" Component_="System.Threading.Tasks.dll" FileName="SYSTE~98.DLL|System.Threading.Tasks.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Threading.Tasks.dll" SelfReg="false"/> + <ROW File="System.Threading.Tasks.Parallel.dll" Component_="System.Threading.Tasks.Parallel.dll" FileName="SYSTE~99.DLL|System.Threading.Tasks.Parallel.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Threading.Tasks.Parallel.dll" SelfReg="false"/> + <ROW File="System.Threading.Thread.dll" Component_="System.Threading.Thread.dll" FileName="SYST~100.DLL|System.Threading.Thread.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Threading.Thread.dll" SelfReg="false"/> + <ROW File="System.Threading.ThreadPool.dll" Component_="System.Threading.ThreadPool.dll" FileName="SYST~101.DLL|System.Threading.ThreadPool.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Threading.ThreadPool.dll" SelfReg="false"/> + <ROW File="System.Threading.Timer.dll" Component_="System.Threading.Timer.dll" FileName="SYST~102.DLL|System.Threading.Timer.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Threading.Timer.dll" SelfReg="false"/> + <ROW File="System.ValueTuple.dll" Component_="System.ValueTuple.dll" FileName="SYST~103.DLL|System.ValueTuple.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.ValueTuple.dll" SelfReg="false"/> + <ROW File="System.Xml.ReaderWriter.dll" Component_="System.Xml.ReaderWriter.dll" FileName="SYST~104.DLL|System.Xml.ReaderWriter.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Xml.ReaderWriter.dll" SelfReg="false"/> + <ROW File="System.Xml.XDocument.dll" Component_="System.Xml.XDocument.dll" FileName="SYST~105.DLL|System.Xml.XDocument.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Xml.XDocument.dll" SelfReg="false"/> + <ROW File="System.Xml.XmlDocument.dll" Component_="System.Xml.XmlDocument.dll" FileName="SYST~106.DLL|System.Xml.XmlDocument.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Xml.XmlDocument.dll" SelfReg="false"/> + <ROW File="System.Xml.XmlSerializer.dll" Component_="System.Xml.XmlSerializer.dll" FileName="SYST~107.DLL|System.Xml.XmlSerializer.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Xml.XmlSerializer.dll" SelfReg="false"/> + <ROW File="System.Xml.XPath.dll" Component_="System.Xml.XPath.dll" FileName="SYST~108.DLL|System.Xml.XPath.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Xml.XPath.dll" SelfReg="false"/> + <ROW File="System.Xml.XPath.XDocument.dll" Component_="System.Xml.XPath.XDocument.dll" FileName="SYST~109.DLL|System.Xml.XPath.XDocument.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Xml.XPath.XDocument.dll" SelfReg="false"/> + <ROW File="LibGit2Sharp.dll.config" Component_="GetVersionTag.bat" FileName="LIBGIT~1.CON|LibGit2Sharp.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\LibGit2Sharp.dll.config" SelfReg="false"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.BootstrOptComponent"> + <ROW BootstrOptKey="GlobalOptions" DownloadFolder="[AppDataFolder][|Manufacturer]\[|ProductName]\prerequisites" Options="2"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.BootstrapperUISequenceComponent"> + <ROW Action="AI_DetectSoftware" Sequence="101"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.BuildComponent"> + <ROW BuildKey="DefaultBuild" BuildName="DefaultBuild" BuildOrder="1" BuildType="0" PackageFolder="..\Build\Installers\Eureka" PackageFileName="TwineX4 Installer_v2.0.13" Languages="en" InstallationType="4" CabsLocation="1" PackageType="1" FilesInsideExe="true" ExtractionFolder="[AppDataFolder][|Manufacturer]\[|ProductName] [|ProductVersion]\install" ExtUI="true" UseLargeSchema="true" ExeName="TwineX4 Installer_v2.0.13"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.DictionaryComponent"> + <ROW Path="<AI_DICTS>ui.ail"/> + <ROW Path="<AI_DICTS>ui_en.ail"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.FragmentComponent"> + <ROW Fragment="CommonUI.aip" Path="<AI_FRAGS>CommonUI.aip"/> + <ROW Fragment="FolderDlg.aip" Path="<AI_THEMES>azure\fragments\FolderDlg.aip"/> + <ROW Fragment="MaintenanceTypeDlg.aip" Path="<AI_THEMES>azure\fragments\MaintenanceTypeDlg.aip"/> + <ROW Fragment="MaintenanceWelcomeDlg.aip" Path="<AI_THEMES>azure\fragments\MaintenanceWelcomeDlg.aip"/> + <ROW Fragment="PreparePrereqDlg.aip" Path="<AI_THEMES>azure\fragments\PreparePrereqDlg.aip"/> + <ROW Fragment="PrerequisitesDlg.aip" Path="<AI_THEMES>azure\fragments\PrerequisitesDlg.aip"/> + <ROW Fragment="ProgressPrereqDlg.aip" Path="<AI_THEMES>azure\fragments\ProgressPrereqDlg.aip"/> + <ROW Fragment="SequenceDialogs.aip" Path="<AI_THEMES>azure\fragments\SequenceDialogs.aip"/> + <ROW Fragment="Sequences.aip" Path="<AI_FRAGS>Sequences.aip"/> + <ROW Fragment="StaticUIStrings.aip" Path="<AI_FRAGS>StaticUIStrings.aip"/> + <ROW Fragment="UI.aip" Path="<AI_THEMES>azure\fragments\UI.aip"/> + <ROW Fragment="Validation.aip" Path="<AI_FRAGS>Validation.aip"/> + <ROW Fragment="VerifyRemoveDlg.aip" Path="<AI_THEMES>azure\fragments\VerifyRemoveDlg.aip"/> + <ROW Fragment="VerifyRepairDlg.aip" Path="<AI_THEMES>azure\fragments\VerifyRepairDlg.aip"/> + <ROW Fragment="WelcomeDlg.aip" Path="<AI_THEMES>azure\fragments\WelcomeDlg.aip"/> + <ROW Fragment="WelcomePrereqDlg.aip" Path="<AI_THEMES>azure\fragments\WelcomePrereqDlg.aip"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.MsiActionTextComponent"> + <ROW Action="AI_DeleteLzma" Description="Deleting files extracted from archive" DescriptionLocId="ActionText.Description.AI_DeleteLzma" TemplateLocId="-"/> + <ROW Action="AI_DeleteRLzma" Description="Deleting files extracted from archive" DescriptionLocId="ActionText.Description.AI_DeleteLzma" TemplateLocId="-"/> + <ROW Action="AI_ExtractFiles" Description="Extracting files from archive" DescriptionLocId="ActionText.Description.AI_ExtractLzma" TemplateLocId="-"/> + <ROW Action="AI_ExtractLzma" Description="Extracting files from archive" DescriptionLocId="ActionText.Description.AI_ExtractLzma" TemplateLocId="-"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.MsiAppSearchComponent"> + <ROW Property="AI_SETUPEXEPATH" Signature_="AI_EXE_PATH_LM" Builds="DefaultBuild"/> + <ROW Property="AI_SETUPEXEPATH" Signature_="AI_EXE_PATH_CU" Builds="DefaultBuild"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.MsiBinaryComponent"> + <ROW Name="Prereq.dll" SourcePath="<AI_CUSTACTS>Prereq.dll"/> + <ROW Name="SoftwareDetector.dll" SourcePath="<AI_CUSTACTS>SoftwareDetector.dll"/> + <ROW Name="aicustact.dll" SourcePath="<AI_CUSTACTS>aicustact.dll"/> + <ROW Name="lzmaextractor.dll" SourcePath="<AI_CUSTACTS>lzmaextractor.dll"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.MsiControlEventComponent"> + <ROW Dialog_="WelcomePrereqDlg" Control_="Next" Event="NewDialog" Argument="PrerequisitesDlg" Condition="AI_BOOTSTRAPPER" Ordering="1"/> + <ROW Dialog_="PrerequisitesDlg" Control_="Next" Event="EndDialog" Argument="Return" Condition="AI_BOOTSTRAPPER" Ordering="1"/> + <ROW Dialog_="PrerequisitesDlg" Control_="Back" Event="NewDialog" Argument="WelcomePrereqDlg" Condition="AI_BOOTSTRAPPER" Ordering="1"/> + <ROW Dialog_="WelcomeDlg" Control_="Next" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL" Ordering="1"/> + <ROW Dialog_="FolderDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_INSTALL" Ordering="201"/> + <ROW Dialog_="FolderDlg" Control_="Back" Event="NewDialog" Argument="WelcomeDlg" Condition="AI_INSTALL" Ordering="1"/> + <ROW Dialog_="VerifyReadyDlg" Control_="Install" Event="EndDialog" Argument="Return" Condition="AI_INSTALL" Ordering="197"/> + <ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL" Ordering="201"/> + <ROW Dialog_="MaintenanceWelcomeDlg" Control_="Next" Event="NewDialog" Argument="MaintenanceTypeDlg" Condition="AI_MAINT" Ordering="99"/> + <ROW Dialog_="CustomizeDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_MAINT" Ordering="101"/> + <ROW Dialog_="CustomizeDlg" Control_="Back" Event="NewDialog" Argument="MaintenanceTypeDlg" Condition="AI_MAINT" Ordering="1"/> + <ROW Dialog_="VerifyReadyDlg" Control_="Install" Event="EndDialog" Argument="Return" Condition="AI_MAINT" Ordering="198"/> + <ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="CustomizeDlg" Condition="AI_MAINT" Ordering="202"/> + <ROW Dialog_="MaintenanceTypeDlg" Control_="ChangeButton" Event="NewDialog" Argument="CustomizeDlg" Condition="AI_MAINT" Ordering="501"/> + <ROW Dialog_="MaintenanceTypeDlg" Control_="Back" Event="NewDialog" Argument="MaintenanceWelcomeDlg" Condition="AI_MAINT" Ordering="1"/> + <ROW Dialog_="MaintenanceTypeDlg" Control_="RemoveButton" Event="NewDialog" Argument="VerifyRemoveDlg" Condition="AI_MAINT AND InstallMode="Remove"" Ordering="601"/> + <ROW Dialog_="VerifyRemoveDlg" Control_="Back" Event="NewDialog" Argument="MaintenanceTypeDlg" Condition="AI_MAINT AND InstallMode="Remove"" Ordering="1"/> + <ROW Dialog_="MaintenanceTypeDlg" Control_="RepairButton" Event="NewDialog" Argument="VerifyRepairDlg" Condition="AI_MAINT AND InstallMode="Repair"" Ordering="601"/> + <ROW Dialog_="VerifyRepairDlg" Control_="Back" Event="NewDialog" Argument="MaintenanceTypeDlg" Condition="AI_MAINT AND InstallMode="Repair"" Ordering="1"/> + <ROW Dialog_="VerifyRepairDlg" Control_="Repair" Event="EndDialog" Argument="Return" Condition="AI_MAINT AND InstallMode="Repair"" Ordering="399" Options="1"/> + <ROW Dialog_="VerifyRemoveDlg" Control_="Remove" Event="EndDialog" Argument="Return" Condition="AI_MAINT AND InstallMode="Remove"" Ordering="299" Options="1"/> + <ROW Dialog_="PatchWelcomeDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_PATCH" Ordering="201"/> + <ROW Dialog_="VerifyReadyDlg" Control_="Install" Event="EndDialog" Argument="Return" Condition="AI_PATCH" Ordering="199"/> + <ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="PatchWelcomeDlg" Condition="AI_PATCH" Ordering="203"/> + <ROW Dialog_="ResumeDlg" Control_="Install" Event="EndDialog" Argument="Return" Condition="AI_RESUME" Ordering="299"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.MsiCreateFolderComponent"> + <ROW Directory_="APPDIR" Component_="APPDIR" ManualDelete="true"/> + <ROW Directory_="SHORTCUTDIR" Component_="SHORTCUTDIR" ManualDelete="false"/> + <ROW Directory_="Packages_Dir" Component_="Packages" ManualDelete="false"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.MsiCustActComponent"> + <ROW Action="AI_AppSearchEx" Type="1" Source="Prereq.dll" Target="DoAppSearchEx"/> + <ROW Action="AI_BACKUP_AI_SETUPEXEPATH" Type="51" Source="AI_SETUPEXEPATH_ORIGINAL" Target="[AI_SETUPEXEPATH]"/> + <ROW Action="AI_DATA_SETTER" Type="51" Source="AI_ExtractFiles" Target="[AI_SETUPEXEPATH]"/> + <ROW Action="AI_DOWNGRADE" Type="19" Target="4010"/> + <ROW Action="AI_DeleteCadLzma" Type="51" Source="AI_DeleteLzma" Target="[AI_SETUPEXEPATH]"/> + <ROW Action="AI_DeleteLzma" Type="1025" Source="lzmaextractor.dll" Target="DeleteLZMAFiles"/> + <ROW Action="AI_DeleteRCadLzma" Type="51" Source="AI_DeleteRLzma" Target="[AI_SETUPEXEPATH]"/> + <ROW Action="AI_DeleteRLzma" Type="1281" Source="lzmaextractor.dll" Target="DeleteLZMAFiles"/> + <ROW Action="AI_DetectSoftware" Type="257" Source="SoftwareDetector.dll" Target="OnDetectSoftware"/> + <ROW Action="AI_DpiContentScale" Type="1" Source="aicustact.dll" Target="DpiContentScale"/> + <ROW Action="AI_EnableDebugLog" Type="321" Source="aicustact.dll" Target="EnableDebugLog"/> + <ROW Action="AI_EstimateExtractFiles" Type="1" Source="Prereq.dll" Target="EstimateExtractFiles"/> + <ROW Action="AI_ExtractCadLzma" Type="51" Source="AI_ExtractLzma" Target="[AI_SETUPEXEPATH]"/> + <ROW Action="AI_ExtractFiles" Type="1025" Source="Prereq.dll" Target="ExtractSourceFiles" AdditionalSeq="AI_DATA_SETTER"/> + <ROW Action="AI_ExtractLzma" Type="1025" Source="lzmaextractor.dll" Target="ExtractLZMAFiles"/> + <ROW Action="AI_FindExeLzma" Type="1" Source="lzmaextractor.dll" Target="FindEXE"/> + <ROW Action="AI_InstallModeCheck" Type="1" Source="aicustact.dll" Target="UpdateInstallMode" WithoutSeq="true"/> + <ROW Action="AI_LaunchApp" Type="1" Source="aicustact.dll" Target="[#Tango.PPC.UI.exe]"/> + <ROW Action="AI_PREPARE_UPGRADE" Type="65" Source="aicustact.dll" Target="PrepareUpgrade"/> + <ROW Action="AI_RESTORE_AI_SETUPEXEPATH" Type="51" Source="AI_SETUPEXEPATH" Target="[AI_SETUPEXEPATH_ORIGINAL]"/> + <ROW Action="AI_RESTORE_LOCATION" Type="65" Source="aicustact.dll" Target="RestoreLocation"/> + <ROW Action="AI_ResolveKnownFolders" Type="1" Source="aicustact.dll" Target="AI_ResolveKnownFolders"/> + <ROW Action="AI_RunFinishActions" Type="1" Source="aicustact.dll" Target="RunFinishActions" WithoutSeq="true"/> + <ROW Action="AI_SHOW_LOG" Type="65" Source="aicustact.dll" Target="LaunchLogFile" WithoutSeq="true"/> + <ROW Action="AI_STORE_LOCATION" Type="51" Source="ARPINSTALLLOCATION" Target="[APPDIR]"/> + <ROW Action="SET_APPDIR" Type="307" Source="APPDIR" Target="[ProgramFilesFolder][Manufacturer]\[ProductName]"/> + <ROW Action="SET_SHORTCUTDIR" Type="307" Source="SHORTCUTDIR" Target="[ProgramMenuFolder][ProductName]"/> + <ROW Action="SET_TARGETDIR_TO_APPDIR" Type="51" Source="TARGETDIR" Target="[APPDIR]"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.MsiFeatCompsComponent"> + <ROW Feature_="MainFeature" Component_="APPDIR"/> + <ROW Feature_="MainFeature" Component_="ProductInformation"/> + <ROW Feature_="MainFeature" Component_="AI_ExePath"/> + <ROW Feature_="MainFeature" Component_="ColorMine.dll"/> + <ROW Feature_="MainFeature" Component_="CommandLine.dll"/> + <ROW Feature_="MainFeature" Component_="ControlzEx.dll"/> + <ROW Feature_="MainFeature" Component_="DocumentFormat.OpenXml.dll"/> + <ROW Feature_="MainFeature" Component_="EFCache.dll"/> + <ROW Feature_="MainFeature" Component_="EntityFramework.dll"/> + <ROW Feature_="MainFeature" Component_="EntityFramework.SqlServer.dll"/> + <ROW Feature_="MainFeature" Component_="FontAwesome.WPF.dll"/> + <ROW Feature_="MainFeature" Component_="GetVersionTag.bat"/> + <ROW Feature_="MainFeature" Component_="Google.Protobuf.dll"/> + <ROW Feature_="MainFeature" Component_="HiraokaHyperTools.PdfSharpWPF.dll"/> + <ROW Feature_="MainFeature" Component_="HiraokaHyperTools.PdfSharp.Xps.dll"/> + <ROW Feature_="MainFeature" Component_="Ionic.Zip.dll"/> + <ROW Feature_="MainFeature" Component_="JWT.dll"/> + <ROW Feature_="MainFeature" Component_="LibGit2Sharp.dll"/> + <ROW Feature_="MainFeature" Component_="LiteDB.dll"/> + <ROW Feature_="MainFeature" Component_="Microsoft.AspNet.SignalR.Client.dll"/> + <ROW Feature_="MainFeature" Component_="Microsoft.Azure.ActiveDirectory.GraphClient.dll"/> + <ROW Feature_="MainFeature" Component_="Microsoft.IdentityModel.Clients.ActiveDirectory.dll"/> + <ROW Feature_="MainFeature" Component_="Microsoft.ServiceBus.dll"/> + <ROW Feature_="MainFeature" Component_="Microsoft.SqlServer.ConnectionInfo.dll"/> + <ROW Feature_="MainFeature" Component_="Microsoft.SqlServer.Diagnostics.STrace.dll"/> + <ROW Feature_="MainFeature" Component_="Microsoft.SqlServer.Dmf.Common.dll"/> + <ROW Feature_="MainFeature" Component_="Microsoft.SqlServer.Management.Sdk.Sfc.dll"/> + <ROW Feature_="MainFeature" Component_="Microsoft.SqlServer.ServiceBrokerEnum.dll"/> + <ROW Feature_="MainFeature" Component_="Microsoft.SqlServer.Smo.dll"/> + <ROW Feature_="MainFeature" Component_="Microsoft.SqlServer.SqlClrProvider.dll"/> + <ROW Feature_="MainFeature" Component_="Microsoft.SqlServer.SqlEnum.dll"/> + <ROW Feature_="MainFeature" Component_="Microsoft.TeamFoundation.Client.dll"/> + <ROW Feature_="MainFeature" Component_="Microsoft.TeamFoundation.Common.dll"/> + <ROW Feature_="MainFeature" Component_="Microsoft.TeamFoundation.Core.WebApi.dll"/> + <ROW Feature_="MainFeature" Component_="Microsoft.TeamFoundation.Diff.dll"/> + <ROW Feature_="MainFeature" Component_="Microsoft.TeamFoundation.Work.WebApi.dll"/> + <ROW Feature_="MainFeature" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader.dll"/> + <ROW Feature_="MainFeature" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.dll"/> + <ROW Feature_="MainFeature" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.dll"/> + <ROW Feature_="MainFeature" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.dll"/> + <ROW Feature_="MainFeature" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.dll"/> + <ROW Feature_="MainFeature" Component_="Microsoft.TeamFoundation.WorkItemTracking.WebApi.dll"/> + <ROW Feature_="MainFeature" Component_="Microsoft.VisualStudio.Services.Client.Interactive.dll"/> + <ROW Feature_="MainFeature" Component_="Microsoft.VisualStudio.Services.Common.dll"/> + <ROW Feature_="MainFeature" Component_="Microsoft.VisualStudio.Services.WebApi.dll"/> + <ROW Feature_="MainFeature" Component_="Microsoft.WindowsAPICodePack.dll"/> + <ROW Feature_="MainFeature" Component_="Microsoft.WindowsAPICodePack.Shell.dll"/> + <ROW Feature_="MainFeature" Component_="Microsoft.WindowsAzure.Storage.dll"/> + <ROW Feature_="MainFeature" Component_="Microsoft.WITDataStore32.dll"/> + <ROW Feature_="MainFeature" Component_="mscoree.dll"/> + <ROW Feature_="MainFeature" Component_="msvcp140d.dll"/> + <ROW Feature_="MainFeature" Component_="Newtonsoft.Json.dll"/> + <ROW Feature_="MainFeature" Component_="protobufnet.dll"/> + <ROW Feature_="MainFeature" Component_="Quamotion.TurboJpegWrapper.dll"/> + <ROW Feature_="MainFeature" Component_="RazorEngine.dll"/> + <ROW Feature_="MainFeature" Component_="rc.exe"/> + <ROW Feature_="MainFeature" Component_="SharpDX.Direct3D11.dll"/> + <ROW Feature_="MainFeature" Component_="SharpDX.dll"/> + <ROW Feature_="MainFeature" Component_="SharpDX.DXGI.dll"/> + <ROW Feature_="MainFeature" Component_="SharpDX.Mathematics.dll"/> + <ROW Feature_="MainFeature" Component_="SimpleValidator.dll"/> + <ROW Feature_="MainFeature" Component_="OverrideData.xml"/> + <ROW Feature_="MainFeature" Component_="Interop.MSDASC.dll"/> + <ROW Feature_="MainFeature" Component_="License.lic"/> + <ROW Feature_="MainFeature" Component_="SA.Binary.dll"/> + <ROW Feature_="MainFeature" Component_="SA.CodeView.dll"/> + <ROW Feature_="MainFeature" Component_="SA.CommonTypes.dll"/> + <ROW Feature_="MainFeature" Component_="SA.CommonUI.dll"/> + <ROW Feature_="MainFeature" Component_="SA.SCBaseProvider.dll"/> + <ROW Feature_="MainFeature" Component_="SA.SQLDataExaminer.Engine.dll"/> + <ROW Feature_="MainFeature" Component_="SA.SQLExaminer.Engine.dll"/> + <ROW Feature_="MainFeature" Component_="SA.Utils.ErrorReporter.dll"/> + <ROW Feature_="MainFeature" Component_="SQLDECmd.exe"/> + <ROW Feature_="MainFeature" Component_="SQLECmd.exe"/> + <ROW Feature_="MainFeature" Component_="System.Data.SQLite.dll"/> + <ROW Feature_="MainFeature" Component_="System.Data.SQLite.EF6.dll"/> + <ROW Feature_="MainFeature" Component_="System.Data.SQLite.Linq.dll"/> + <ROW Feature_="MainFeature" Component_="System.IdentityModel.Tokens.Jwt.dll"/> + <ROW Feature_="MainFeature" Component_="System.Net.Http.Formatting.dll"/> + <ROW Feature_="MainFeature" Component_="System.Reactive.Core.dll"/> + <ROW Feature_="MainFeature" Component_="System.Reactive.Interfaces.dll"/> + <ROW Feature_="MainFeature" Component_="System.Reactive.Linq.dll"/> + <ROW Feature_="MainFeature" Component_="System.Reactive.PlatformServices.dll"/> + <ROW Feature_="MainFeature" Component_="System.Web.Http.dll"/> + <ROW Feature_="MainFeature" Component_="System.Web.Http.WebHost.dll"/> + <ROW Feature_="MainFeature" Component_="System.Web.Razor.dll"/> + <ROW Feature_="MainFeature" Component_="System.Windows.Interactivity.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.AdvancedInstaller.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.AnimatedGif.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.BL.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.CodeGeneration.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.ColorConversion.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.Colorful.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.ColorLib_v1.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.ColorLib_v2.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.ColorLib_v3.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.ColorLib_v4.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.ColorLib_v5.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.ColorLib_v6.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.Console.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.Core.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.CSV.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.DataStore.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.DataStore.Editing.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.DataStore.EF.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.DataStore.Remote.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.Documents.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.DragAndDrop.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.Emulations.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.Explorer.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.FileSystem.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.FirmwareUpdateLib.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.FirmwareUpdateLib.WPF.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.Git.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.Insights.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.Integration.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.Logging.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.PDF.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.PMR.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.PPC.BackupRestore.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.PPC.BugReporting.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.PPC.Common.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.PPC.Events.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.PPC.JobsV2.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.PPC.MachineSettings.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.PPC.Maintenance.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.PPC.Shared.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.PPC.Storage.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.PPC.Technician.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.PPC.UI.exe"/> + <ROW Feature_="MainFeature" Component_="Tango.Pulse.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.RemoteDesktop.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.Serialization.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.Settings.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.SharedUI.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.SQLExaminer.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.SystemInfo.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.TFS.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.Touch.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.Transport.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.Web.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.WebRTC.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.WiFi.dll"/> + <ROW Feature_="MainFeature" Component_="ucrtbased.dll"/> + <ROW Feature_="MainFeature" Component_="vcruntime140.dll"/> + <ROW Feature_="MainFeature" Component_="vcruntime140d.dll"/> + <ROW Feature_="MainFeature" Component_="WebRtc.NET.dll"/> + <ROW Feature_="MainFeature" Component_="turbojpeg.dll"/> + <ROW Feature_="MainFeature" Component_="turbojpeg.dll.meta"/> + <ROW Feature_="MainFeature" Component_="turbojpeg.dll_1"/> + <ROW Feature_="MainFeature" Component_="turbojpeg.dll.meta_1"/> + <ROW Feature_="MainFeature" Component_="WindowsInput.dll"/> + <ROW Feature_="MainFeature" Component_="SHORTCUTDIR"/> + <ROW Feature_="MainFeature" Component_="Packages"/> + <ROW Feature_="MainFeature" Component_="Tango.PPC.Updater.exe"/> + <ROW Feature_="MainFeature" Component_="FluentFTP.dll"/> + <ROW Feature_="MainFeature" Component_="Hyak.Common.dll"/> + <ROW Feature_="MainFeature" Component_="Microsoft.Azure.Common.dll"/> + <ROW Feature_="MainFeature" Component_="Microsoft.Azure.Common.NetFramework.dll"/> + <ROW Feature_="MainFeature" Component_="Microsoft.Azure.ResourceManager.dll"/> + <ROW Feature_="MainFeature" Component_="Microsoft.Data.Edm.dll"/> + <ROW Feature_="MainFeature" Component_="Microsoft.Data.OData.dll"/> + <ROW Feature_="MainFeature" Component_="Microsoft.Data.Services.Client.dll"/> + <ROW Feature_="MainFeature" Component_="Microsoft.SqlServer.AzureStorageEnum.dll"/> + <ROW Feature_="MainFeature" Component_="System.IO.Compression.FileSystem.dll"/> + <ROW Feature_="MainFeature" Component_="System.Spatial.dll"/> + <ROW Feature_="MainFeature" Component_="Tango.DataStore.Lite.dll"/> + <ROW Feature_="MainFeature" Component_="WPFMediaKit.dll"/> + <ROW Feature_="MainFeature" Component_="DirectShowLib2005.dll"/> + <ROW Feature_="MainFeature" Component_="EVRPresenter32.dll"/> + <ROW Feature_="MainFeature" Component_="EVRPresenter64.dll"/> + <ROW Feature_="MainFeature" Component_="Microsoft.Win32.Primitives.dll"/> + <ROW Feature_="MainFeature" Component_="netstandard.dll"/> + <ROW Feature_="MainFeature" Component_="RealTimeGraphX.dll"/> + <ROW Feature_="MainFeature" Component_="RealTimeGraphX.WPF.dll"/> + <ROW Feature_="MainFeature" Component_="System.AppContext.dll"/> + <ROW Feature_="MainFeature" Component_="System.Collections.Concurrent.dll"/> + <ROW Feature_="MainFeature" Component_="System.Collections.dll"/> + <ROW Feature_="MainFeature" Component_="System.Collections.NonGeneric.dll"/> + <ROW Feature_="MainFeature" Component_="System.Collections.Specialized.dll"/> + <ROW Feature_="MainFeature" Component_="System.ComponentModel.dll"/> + <ROW Feature_="MainFeature" Component_="System.ComponentModel.EventBasedAsync.dll"/> + <ROW Feature_="MainFeature" Component_="System.ComponentModel.Primitives.dll"/> + <ROW Feature_="MainFeature" Component_="System.ComponentModel.TypeConverter.dll"/> + <ROW Feature_="MainFeature" Component_="System.Console.dll"/> + <ROW Feature_="MainFeature" Component_="System.Data.Common.dll"/> + <ROW Feature_="MainFeature" Component_="System.Diagnostics.Contracts.dll"/> + <ROW Feature_="MainFeature" Component_="System.Diagnostics.Debug.dll"/> + <ROW Feature_="MainFeature" Component_="System.Diagnostics.FileVersionInfo.dll"/> + <ROW Feature_="MainFeature" Component_="System.Diagnostics.Process.dll"/> + <ROW Feature_="MainFeature" Component_="System.Diagnostics.StackTrace.dll"/> + <ROW Feature_="MainFeature" Component_="System.Diagnostics.TextWriterTraceListener.dll"/> + <ROW Feature_="MainFeature" Component_="System.Diagnostics.Tools.dll"/> + <ROW Feature_="MainFeature" Component_="System.Diagnostics.TraceSource.dll"/> + <ROW Feature_="MainFeature" Component_="System.Diagnostics.Tracing.dll"/> + <ROW Feature_="MainFeature" Component_="System.Drawing.Primitives.dll"/> + <ROW Feature_="MainFeature" Component_="System.Dynamic.Runtime.dll"/> + <ROW Feature_="MainFeature" Component_="System.Globalization.Calendars.dll"/> + <ROW Feature_="MainFeature" Component_="System.Globalization.dll"/> + <ROW Feature_="MainFeature" Component_="System.Globalization.Extensions.dll"/> + <ROW Feature_="MainFeature" Component_="System.IO.Compression.dll"/> + <ROW Feature_="MainFeature" Component_="System.IO.Compression.ZipFile.dll"/> + <ROW Feature_="MainFeature" Component_="System.IO.dll"/> + <ROW Feature_="MainFeature" Component_="System.IO.FileSystem.dll"/> + <ROW Feature_="MainFeature" Component_="System.IO.FileSystem.DriveInfo.dll"/> + <ROW Feature_="MainFeature" Component_="System.IO.FileSystem.Primitives.dll"/> + <ROW Feature_="MainFeature" Component_="System.IO.FileSystem.Watcher.dll"/> + <ROW Feature_="MainFeature" Component_="System.IO.IsolatedStorage.dll"/> + <ROW Feature_="MainFeature" Component_="System.IO.MemoryMappedFiles.dll"/> + <ROW Feature_="MainFeature" Component_="System.IO.Pipes.dll"/> + <ROW Feature_="MainFeature" Component_="System.IO.UnmanagedMemoryStream.dll"/> + <ROW Feature_="MainFeature" Component_="System.Linq.dll"/> + <ROW Feature_="MainFeature" Component_="System.Linq.Expressions.dll"/> + <ROW Feature_="MainFeature" Component_="System.Linq.Parallel.dll"/> + <ROW Feature_="MainFeature" Component_="System.Linq.Queryable.dll"/> + <ROW Feature_="MainFeature" Component_="System.Net.Http.dll"/> + <ROW Feature_="MainFeature" Component_="System.Net.NameResolution.dll"/> + <ROW Feature_="MainFeature" Component_="System.Net.NetworkInformation.dll"/> + <ROW Feature_="MainFeature" Component_="System.Net.Ping.dll"/> + <ROW Feature_="MainFeature" Component_="System.Net.Primitives.dll"/> + <ROW Feature_="MainFeature" Component_="System.Net.Requests.dll"/> + <ROW Feature_="MainFeature" Component_="System.Net.Security.dll"/> + <ROW Feature_="MainFeature" Component_="System.Net.Sockets.dll"/> + <ROW Feature_="MainFeature" Component_="System.Net.WebHeaderCollection.dll"/> + <ROW Feature_="MainFeature" Component_="System.Net.WebSockets.Client.dll"/> + <ROW Feature_="MainFeature" Component_="System.Net.WebSockets.dll"/> + <ROW Feature_="MainFeature" Component_="System.ObjectModel.dll"/> + <ROW Feature_="MainFeature" Component_="System.Reflection.dll"/> + <ROW Feature_="MainFeature" Component_="System.Reflection.Extensions.dll"/> + <ROW Feature_="MainFeature" Component_="System.Reflection.Primitives.dll"/> + <ROW Feature_="MainFeature" Component_="System.Resources.Reader.dll"/> + <ROW Feature_="MainFeature" Component_="System.Resources.ResourceManager.dll"/> + <ROW Feature_="MainFeature" Component_="System.Resources.Writer.dll"/> + <ROW Feature_="MainFeature" Component_="System.Runtime.CompilerServices.VisualC.dll"/> + <ROW Feature_="MainFeature" Component_="System.Runtime.dll"/> + <ROW Feature_="MainFeature" Component_="System.Runtime.Extensions.dll"/> + <ROW Feature_="MainFeature" Component_="System.Runtime.Handles.dll"/> + <ROW Feature_="MainFeature" Component_="System.Runtime.InteropServices.dll"/> + <ROW Feature_="MainFeature" Component_="System.Runtime.InteropServices.RuntimeInformation.dll"/> + <ROW Feature_="MainFeature" Component_="System.Runtime.Numerics.dll"/> + <ROW Feature_="MainFeature" Component_="System.Runtime.Serialization.Formatters.dll"/> + <ROW Feature_="MainFeature" Component_="System.Runtime.Serialization.Json.dll"/> + <ROW Feature_="MainFeature" Component_="System.Runtime.Serialization.Primitives.dll"/> + <ROW Feature_="MainFeature" Component_="System.Runtime.Serialization.Xml.dll"/> + <ROW Feature_="MainFeature" Component_="System.Security.Claims.dll"/> + <ROW Feature_="MainFeature" Component_="System.Security.Cryptography.Algorithms.dll"/> + <ROW Feature_="MainFeature" Component_="System.Security.Cryptography.Csp.dll"/> + <ROW Feature_="MainFeature" Component_="System.Security.Cryptography.Encoding.dll"/> + <ROW Feature_="MainFeature" Component_="System.Security.Cryptography.Primitives.dll"/> + <ROW Feature_="MainFeature" Component_="System.Security.Cryptography.X509Certificates.dll"/> + <ROW Feature_="MainFeature" Component_="System.Security.Principal.dll"/> + <ROW Feature_="MainFeature" Component_="System.Security.SecureString.dll"/> + <ROW Feature_="MainFeature" Component_="System.Text.Encoding.dll"/> + <ROW Feature_="MainFeature" Component_="System.Text.Encoding.Extensions.dll"/> + <ROW Feature_="MainFeature" Component_="System.Text.RegularExpressions.dll"/> + <ROW Feature_="MainFeature" Component_="System.Threading.dll"/> + <ROW Feature_="MainFeature" Component_="System.Threading.Overlapped.dll"/> + <ROW Feature_="MainFeature" Component_="System.Threading.Tasks.dll"/> + <ROW Feature_="MainFeature" Component_="System.Threading.Tasks.Parallel.dll"/> + <ROW Feature_="MainFeature" Component_="System.Threading.Thread.dll"/> + <ROW Feature_="MainFeature" Component_="System.Threading.ThreadPool.dll"/> + <ROW Feature_="MainFeature" Component_="System.Threading.Timer.dll"/> + <ROW Feature_="MainFeature" Component_="System.ValueTuple.dll"/> + <ROW Feature_="MainFeature" Component_="System.Xml.ReaderWriter.dll"/> + <ROW Feature_="MainFeature" Component_="System.Xml.XDocument.dll"/> + <ROW Feature_="MainFeature" Component_="System.Xml.XmlDocument.dll"/> + <ROW Feature_="MainFeature" Component_="System.Xml.XmlSerializer.dll"/> + <ROW Feature_="MainFeature" Component_="System.Xml.XPath.dll"/> + <ROW Feature_="MainFeature" Component_="System.Xml.XPath.XDocument.dll"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.MsiIconsComponent"> + <ROW Name="Tango.PPC.UI.exe" SourcePath="..\Build\PPC\Eureka\Tango.PPC.UI.exe" Index="0"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.MsiInstExSeqComponent"> + <ROW Action="AI_DOWNGRADE" Condition="AI_NEWERPRODUCTFOUND AND (UILevel <> 5)" Sequence="210"/> + <ROW Action="AI_RESTORE_LOCATION" Condition="APPDIR=""" Sequence="749"/> + <ROW Action="AI_STORE_LOCATION" Condition="(Not Installed) OR REINSTALL" Sequence="1501"/> + <ROW Action="AI_PREPARE_UPGRADE" Condition="AI_UPGRADE="No" AND (Not Installed)" Sequence="1399"/> + <ROW Action="AI_ResolveKnownFolders" Sequence="52"/> + <ROW Action="AI_EnableDebugLog" Sequence="51"/> + <ROW Action="AI_BACKUP_AI_SETUPEXEPATH" Sequence="99" Builds="DefaultBuild"/> + <ROW Action="AI_RESTORE_AI_SETUPEXEPATH" Condition="AI_SETUPEXEPATH_ORIGINAL" Sequence="103" Builds="DefaultBuild"/> + <ROW Action="AI_DeleteCadLzma" Condition="SETUPEXEDIR="" AND Installed AND (REMOVE<>"ALL") AND (AI_INSTALL_MODE<>"Remove") AND (NOT PATCH)" Sequence="199" Builds="DefaultBuild"/> + <ROW Action="AI_DeleteRCadLzma" Condition="SETUPEXEDIR="" AND Installed AND (REMOVE<>"ALL") AND (AI_INSTALL_MODE<>"Remove") AND (NOT PATCH)" Sequence="198" Builds="DefaultBuild"/> + <ROW Action="AI_ExtractCadLzma" Condition="SETUPEXEDIR="" AND Installed AND (REMOVE<>"ALL") AND (AI_INSTALL_MODE<>"Remove") AND (NOT PATCH)" Sequence="197" Builds="DefaultBuild"/> + <ROW Action="AI_FindExeLzma" Condition="SETUPEXEDIR="" AND Installed AND (REMOVE<>"ALL") AND (AI_INSTALL_MODE<>"Remove") AND (NOT PATCH)" Sequence="196" Builds="DefaultBuild"/> + <ROW Action="AI_ExtractLzma" Condition="SETUPEXEDIR="" AND Installed AND (REMOVE<>"ALL") AND (AI_INSTALL_MODE<>"Remove") AND (NOT PATCH)" Sequence="1549" Builds="DefaultBuild"/> + <ROW Action="AI_DeleteRLzma" Condition="SETUPEXEDIR="" AND Installed AND (REMOVE<>"ALL") AND (AI_INSTALL_MODE<>"Remove") AND (NOT PATCH)" Sequence="1548" Builds="DefaultBuild"/> + <ROW Action="AI_DeleteLzma" Condition="SETUPEXEDIR="" AND Installed AND (REMOVE<>"ALL") AND (AI_INSTALL_MODE<>"Remove") AND (NOT PATCH)" Sequence="6599" Builds="DefaultBuild"/> + <ROW Action="AI_ExtractFiles" Sequence="3998" Builds="DefaultBuild"/> + <ROW Action="AI_DATA_SETTER" Sequence="3997"/> + <ROW Action="AI_EstimateExtractFiles" Sequence="3999" Builds="DefaultBuild"/> + <ROW Action="AI_AppSearchEx" Sequence="102"/> + <ROW Action="AI_DetectSoftware" Sequence="101"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.MsiInstallUISequenceComponent"> + <ROW Action="AI_RESTORE_LOCATION" Condition="APPDIR=""" Sequence="749"/> + <ROW Action="AI_ResolveKnownFolders" Sequence="53"/> + <ROW Action="AI_DpiContentScale" Sequence="52"/> + <ROW Action="AI_EnableDebugLog" Sequence="51"/> + <ROW Action="AI_BACKUP_AI_SETUPEXEPATH" Sequence="99"/> + <ROW Action="AI_RESTORE_AI_SETUPEXEPATH" Condition="AI_SETUPEXEPATH_ORIGINAL" Sequence="103"/> + <ROW Action="AI_AppSearchEx" Sequence="102"/> + <ROW Action="AI_DetectSoftware" Sequence="101"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.MsiLaunchConditionsComponent"> + <ROW Condition="(VersionNT <> 400)" Description="[ProductName] cannot be installed on [WindowsTypeNT40Display]." DescriptionLocId="AI.LaunchCondition.NoNT40" IsPredefined="true" Builds="DefaultBuild"/> + <ROW Condition="(VersionNT <> 500)" Description="[ProductName] cannot be installed on [WindowsTypeNT50Display]." DescriptionLocId="AI.LaunchCondition.NoNT50" IsPredefined="true" Builds="DefaultBuild"/> + <ROW Condition="(VersionNT64 OR ((VersionNT <> 501) OR (ServicePackLevel = 3))) AND ((VersionNT <> 502) OR (ServicePackLevel = 2))" Description="[ProductName] cannot be installed on [WindowsTypeNT5XDisplay]." DescriptionLocId="AI.LaunchCondition.NoNT5X" IsPredefined="true" Builds="DefaultBuild"/> + <ROW Condition="AI_DETECTED_INTERNET_CONNECTION" Description="[ProductName] requires an active Internet connection for installation. Please check your network configuration and proxy settings." DescriptionLocId="AI.LaunchCondition.Internet" IsPredefined="true" Builds="DefaultBuild"/> + <ROW Condition="SETUPEXEDIR OR (REMOVE="ALL")" Description="This package can only be run from a bootstrapper." DescriptionLocId="AI.LaunchCondition.RequireBootstrapper" IsPredefined="true" Builds="DefaultBuild"/> + <ROW Condition="VersionNT" Description="[ProductName] cannot be installed on [WindowsType9XDisplay]." DescriptionLocId="AI.LaunchCondition.No9X" IsPredefined="true" Builds="DefaultBuild"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.MsiRegLocatorComponent"> + <ROW Signature_="AI_EXE_PATH_CU" Root="1" Key="Software\Caphyon\Advanced Installer\LZMA\[ProductCode]\[ProductVersion]" Name="AI_ExePath" Type="2"/> + <ROW Signature_="AI_EXE_PATH_LM" Root="2" Key="Software\Caphyon\Advanced Installer\LZMA\[ProductCode]\[ProductVersion]" Name="AI_ExePath" Type="2"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.MsiRegsComponent"> + <ROW Registry="AI_ExePath" Root="-1" Key="Software\Caphyon\Advanced Installer\LZMA\[ProductCode]\[ProductVersion]" Name="AI_ExePath" Value="[AI_SETUPEXEPATH]" Component_="AI_ExePath"/> + <ROW Registry="Path" Root="-1" Key="Software\[Manufacturer]\[ProductName]" Name="Path" Value="[APPDIR]" Component_="ProductInformation"/> + <ROW Registry="Version" Root="-1" Key="Software\[Manufacturer]\[ProductName]" Name="Version" Value="[ProductVersion]" Component_="ProductInformation"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.MsiShortsComponent"> + <ROW Shortcut="TwineX4" Directory_="SHORTCUTDIR" Name="TWINEX~1|Twine X4" Component_="Tango.PPC.UI.exe" Target="[#Tango.PPC.UI.exe]" Description="Twine X4" Hotkey="0" IconIndex="0" ShowCmd="1" WkDir="APPDIR"/> + <ROW Shortcut="TwineX4_1" Directory_="DesktopFolder" Name="TWINEX~1|Twine X4" Component_="Tango.PPC.UI.exe" Target="[#Tango.PPC.UI.exe]" Description="Twine X4" Hotkey="0" IconIndex="0" ShowCmd="1" WkDir="APPDIR"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.MsiThemeComponent"> + <ATTRIBUTE name="UsedTheme" value="azure"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.MsiUpgradeComponent"> + <ROW UpgradeCode="[|UpgradeCode]" VersionMin="0.0.1" VersionMax="[|ProductVersion]" Attributes="257" ActionProperty="OLDPRODUCTS"/> + <ROW UpgradeCode="[|UpgradeCode]" VersionMin="[|ProductVersion]" Attributes="2" ActionProperty="AI_NEWERPRODUCTFOUND"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.PreReqComponent"> + <ROW PrereqKey="F4_28D6_4E08_8648_3469A5B0C76D" DisplayName=".NET Framework 3.5 (web installer)" SetupFileUrl="http://download.microsoft.com/download/7/0/3/703455ee-a747-4cc8-bd3e-98a615c3aedb/dotNetFx35setup.exe" Location="1" ExactSize="2869264" WinNTVersions="Windows 7 x86, Windows 8 x86, Windows 8.1 x86, Windows 10 x86" WinNT64Versions="Windows 7 x64, Windows Server 2008 R2 x64, Windows 8 x64, Windows Server 2012 x64, Windows 8.1 x64, Windows Server 2012 R2 x64, Windows 10 x64, Windows Server x64" Operator="1" NoUiComLine="/q /norestart" Options="xy" MD5="269f314b87e6222a20e5f745b6b89783" TargetName=".NET Framework 3.5"/> + <ROW PrereqKey="RequiredApplication" DisplayName="SQL Server Express 2017" SetupFileUrl="https://download.microsoft.com/download/5/E/9/5E9B18CC-8FD5-467E-B5BF-BADE39C51F73/SQLServer2017-SSEI-Expr.exe" Location="1" ExactSize="0" Operator="1" Options="ym"/> + <ATTRIBUTE name="PrereqsOrder" value="RequiredApplication F4_28D6_4E08_8648_3469A5B0C76D"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.PreReqSearchComponent"> + <ROW SearchKey="F4_28D6_4E08_8648_3469A5B0C76DInsta" Prereq="F4_28D6_4E08_8648_3469A5B0C76D" SearchType="9" SearchString="HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5\Install" RefContent="M1" Order="1" Property="PreReqSearch_F4_28D6_4E08_8648_3469"/> + <ROW SearchKey="SystemFolderfile.dll" Prereq="RequiredApplication" SearchType="2" SearchString="HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\140\Tools\ClientSetup\CurrentVersion\CurrentVersion" VerMin="14.0" Order="1" Property="PreReqSearch"/> + </COMPONENT> + <COMPONENT cid="caphyon.advinst.msicomp.SynchronizedFolderComponent"> + <ROW Directory_="APPDIR" SourcePath="..\Build\PPC\Eureka" Feature="MainFeature" ExcludePattern="*~|#*#|%*%|._|CVS|.cvsignore|SCCS|vssver.scc|mssccprj.scc|vssver2.scc|.svn|.DS_Store" ExcludeFlags="6"/> + </COMPONENT> +</DOCUMENT> diff --git a/Software/Visual_Studio/Advanced Installer Projects/FSE Installer.aip b/Software/Visual_Studio/Advanced Installer Projects/FSE Installer.aip index 344bb6883..baa6d6fb9 100644 --- a/Software/Visual_Studio/Advanced Installer Projects/FSE Installer.aip +++ b/Software/Visual_Studio/Advanced Installer Projects/FSE Installer.aip @@ -29,10 +29,10 @@ <ROW Property="ExtractFilesFirst" Value="1"/> <ROW Property="LogoIcon" Value="externalui.ico" MultiBuildValue="DefaultBuild:machine_full_0UZ_icon.ico_1" Type="1" MsiKey="LogoIcon"/> <ROW Property="Manufacturer" Value="Twine Solutions LTD"/> - <ROW Property="ProductCode" Value="1033:{572553AE-7CED-4471-BE84-9D5252E1E4C4} " Type="16"/> + <ROW Property="ProductCode" Value="1033:{ACD29FBD-AB01-477D-8FDB-4D8625896C70} " Type="16"/> <ROW Property="ProductLanguage" Value="1033"/> <ROW Property="ProductName" Value="Tango FSE"/> - <ROW Property="ProductVersion" Value="1.4.7.0" Type="32"/> + <ROW Property="ProductVersion" Value="2.0.2.0" Type="32"/> <ROW Property="RUNAPPLICATION" Value="1" Type="4"/> <ROW Property="SecureCustomProperties" Value="OLDPRODUCTS;AI_NEWERPRODUCTFOUND;AI_SETUPEXEPATH;SETUPEXEDIR"/> <ROW Property="UpgradeCode" Value="{0E13CB0D-89F7-465E-9F56-F1CBD6773E6E}"/> @@ -515,10 +515,10 @@ <ROW Component="shell" ComponentId="{A08B0CB0-9A35-4E7B-B7A3-F0039D92CBE4}" Directory_="APPDIR" Attributes="4" KeyPath="shell"/> <ROW Component="shell_1" ComponentId="{082186C6-1C9B-401A-85E8-3F1DA42DD4C6}" Directory_="APPDIR" Attributes="4" KeyPath="shell_1"/> <ROW Component="sysglobl.dll" ComponentId="{A8218B40-45BD-4818-B9F2-88F081F76303}" Directory_="ProceduresAssemblies_Dir" Attributes="0" KeyPath="sysglobl.dll"/> - <ROW Component="turbojpeg.dll" ComponentId="{DB334C2E-C1B9-45D6-88C1-6CFDA17EB4A3}" Directory_="win7x64_Dir" Attributes="256" KeyPath="turbojpeg.dll"/> - <ROW Component="turbojpeg.dll.meta" ComponentId="{6C2C631D-5F51-4649-8DCC-17B00C80C311}" Directory_="win7x64_Dir" Attributes="0" KeyPath="turbojpeg.dll.meta" Type="0"/> - <ROW Component="turbojpeg.dll.meta_1" ComponentId="{B10DDC60-7539-4FAB-9C5E-45E6EE867C49}" Directory_="win7x86_Dir" Attributes="0" KeyPath="turbojpeg.dll.meta_1" Type="0"/> - <ROW Component="turbojpeg.dll_1" ComponentId="{1C8AB217-7B7A-4D11-9531-42272081A499}" Directory_="win7x86_Dir" Attributes="0" KeyPath="turbojpeg.dll_1"/> + <ROW Component="turbojpeg.dll" ComponentId="{A29DB622-229B-400D-B1BE-C3312C60A442}" Directory_="win7x64_Dir" Attributes="256" KeyPath="turbojpeg.dll"/> + <ROW Component="turbojpeg.dll.meta" ComponentId="{A6D6CFBE-A169-421F-B951-6DCEFF56E7CC}" Directory_="win7x64_Dir" Attributes="0" KeyPath="turbojpeg.dll.meta" Type="0"/> + <ROW Component="turbojpeg.dll.meta_1" ComponentId="{9BA9D016-B300-4B32-A23F-C3EC1658FFD3}" Directory_="win7x86_Dir" Attributes="0" KeyPath="turbojpeg.dll.meta_1" Type="0"/> + <ROW Component="turbojpeg.dll_1" ComponentId="{FFD6EB51-256F-44BC-B7AF-86FFDE3A45D2}" Directory_="win7x86_Dir" Attributes="0" KeyPath="turbojpeg.dll_1"/> <ROW Component="ucrtbased.dll" ComponentId="{E62DD38B-E521-4526-81F2-F5A404504F4F}" Directory_="APPDIR" Attributes="0" KeyPath="ucrtbased.dll"/> <ROW Component="vcruntime140.dll" ComponentId="{AA9985D1-8172-473C-BD9F-FA29A60F7E46}" Directory_="APPDIR" Attributes="0" KeyPath="vcruntime140.dll"/> <ROW Component="vcruntime140d.dll" ComponentId="{BBF9A450-5DF1-4FEF-A22F-350FF9C558B8}" Directory_="APPDIR" Attributes="0" KeyPath="vcruntime140d.dll"/> @@ -1201,7 +1201,7 @@ <ROW Action="AI_DetectSoftware" Sequence="101"/> </COMPONENT> <COMPONENT cid="caphyon.advinst.msicomp.BuildComponent"> - <ROW BuildKey="DefaultBuild" BuildName="DefaultBuild" BuildOrder="1" BuildType="0" PackageFolder="..\Build\Installers\FSE\Release" PackageFileName="Tango FSE v1.4.7" Languages="en" InstallationType="4" CabsLocation="1" PackageType="1" FilesInsideExe="true" ExtractionFolder="[AppDataFolder][|Manufacturer]\[|ProductName] [|ProductVersion]\install" ExtUI="true" UseLargeSchema="true" ExeName="Tango FSE v1.4.7"/> + <ROW BuildKey="DefaultBuild" BuildName="DefaultBuild" BuildOrder="1" BuildType="0" PackageFolder="..\Build\Installers\FSE\Release" PackageFileName="Tango FSE v2.0.2" Languages="en" InstallationType="4" CabsLocation="1" PackageType="1" FilesInsideExe="true" ExtractionFolder="[AppDataFolder][|Manufacturer]\[|ProductName] [|ProductVersion]\install" ExtUI="true" UseLargeSchema="true" ExeName="Tango FSE v2.0.2"/> </COMPONENT> <COMPONENT cid="caphyon.advinst.msicomp.DictionaryComponent"> <ROW Path="<AI_DICTS>ui.ail"/> diff --git a/Software/Visual_Studio/Advanced Installer Projects/Machine Studio Installer.aip b/Software/Visual_Studio/Advanced Installer Projects/Machine Studio Installer.aip index 72fc27314..098af50cf 100644 --- a/Software/Visual_Studio/Advanced Installer Projects/Machine Studio Installer.aip +++ b/Software/Visual_Studio/Advanced Installer Projects/Machine Studio Installer.aip @@ -16,10 +16,10 @@ <ROW Property="ARPCOMMENTS" Value="This installer database contains the logic and data required to install [|ProductName]." ValueLocId="*"/> <ROW Property="ARPNOREPAIR" MultiBuildValue="DefaultBuild:1"/> <ROW Property="Manufacturer" Value="Twine"/> - <ROW Property="ProductCode" Value="1033:{1B559EB3-5D6B-47D1-A6B7-996BFAADFD68} " Type="16"/> + <ROW Property="ProductCode" Value="1033:{68115B02-4748-418E-8A0A-256318D8D8D2} " Type="16"/> <ROW Property="ProductLanguage" Value="1033"/> <ROW Property="ProductName" Value="Machine Studio"/> - <ROW Property="ProductVersion" Value="4.9.9.0" Type="32"/> + <ROW Property="ProductVersion" Value="5.9.0.0" Type="32"/> <ROW Property="SecureCustomProperties" Value="OLDPRODUCTS;AI_NEWERPRODUCTFOUND;AI_SETUPEXEPATH;SETUPEXEDIR"/> <ROW Property="UpgradeCode" Value="{CBEE5CAE-7C5A-4280-98DE-AA98113764E4}"/> <ROW Property="WindowsType9X" MultiBuildValue="DefaultBuild:Windows 9x/ME" ValueLocId="-"/> @@ -44,7 +44,22 @@ <ROW Directory="SQLExaminer_Dir" Directory_Parent="APPDIR" DefaultDir="SQLEXA~1|SQLExaminer" DirectoryOptions="3"/> <ROW Directory="TARGETDIR" DefaultDir="SourceDir"/> <ROW Directory="TCC_Dir" Directory_Parent="APPDIR" DefaultDir="TCC" DirectoryOptions="3"/> + <ROW Directory="alpine.3.9x64_Dir" Directory_Parent="lib_Dir" DefaultDir="ALPINE~1.9-X|alpine.3.9-x64" DirectoryOptions="3"/> + <ROW Directory="alpinex64_Dir" Directory_Parent="lib_Dir" DefaultDir="ALPINE~1|alpine-x64" DirectoryOptions="3"/> + <ROW Directory="debian.9x64_Dir" Directory_Parent="lib_Dir" DefaultDir="DEBIAN~1.9-X|debian.9-x64" DirectoryOptions="3"/> + <ROW Directory="debianarm64_Dir" Directory_Parent="lib_Dir" DefaultDir="DEBIAN~1|debian-arm64" DirectoryOptions="3"/> + <ROW Directory="fedorax64_Dir" Directory_Parent="lib_Dir" DefaultDir="FEDORA~1|fedora-x64" DirectoryOptions="3"/> + <ROW Directory="lib_Dir" Directory_Parent="APPDIR" DefaultDir="lib" DirectoryOptions="3"/> + <ROW Directory="linuxx64_Dir" Directory_Parent="lib_Dir" DefaultDir="LINUX-~1|linux-x64" DirectoryOptions="3"/> + <ROW Directory="osx_Dir" Directory_Parent="lib_Dir" DefaultDir="osx" DirectoryOptions="3"/> + <ROW Directory="rhelx64_Dir" Directory_Parent="lib_Dir" DefaultDir="rhel-x64" DirectoryOptions="3"/> + <ROW Directory="roslyn_Dir" Directory_Parent="APPDIR" DefaultDir="roslyn" DirectoryOptions="3"/> + <ROW Directory="ubuntu.16.04arm64_Dir" Directory_Parent="lib_Dir" DefaultDir="UBUNTU~1.04-|ubuntu.16.04-arm64" DirectoryOptions="3"/> + <ROW Directory="ubuntu.18.04x64_Dir" Directory_Parent="lib_Dir" DefaultDir="UBUNTU~2.04-|ubuntu.18.04-x64" DirectoryOptions="3"/> + <ROW Directory="win32_Dir" Directory_Parent="lib_Dir" DefaultDir="win32" DirectoryOptions="3"/> + <ROW Directory="x64_1_Dir" Directory_Parent="win32_Dir" DefaultDir="x64" DirectoryOptions="3"/> <ROW Directory="x64_Dir" Directory_Parent="APPDIR" DefaultDir="x64" DirectoryOptions="3"/> + <ROW Directory="x86_1_Dir" Directory_Parent="win32_Dir" DefaultDir="x86" DirectoryOptions="3"/> <ROW Directory="x86_Dir" Directory_Parent="APPDIR" DefaultDir="x86" DirectoryOptions="3"/> </COMPONENT> <COMPONENT cid="caphyon.advinst.msicomp.MsiCompsComponent"> @@ -83,9 +98,17 @@ <ROW Component="MaterialDesignThemes.Wpf.dll" ComponentId="{D4A89F22-F969-46C3-915C-C565E7BE99D1}" Directory_="APPDIR" Attributes="0" KeyPath="MaterialDesignThemes.Wpf.dll"/> <ROW Component="Microsoft.AspNet.SignalR.Client.dll" ComponentId="{A6A1BE43-A965-4718-8B9B-E8BB2D2B6FA9}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.AspNet.SignalR.Client.dll"/> <ROW Component="Microsoft.Azure.ActiveDirectory.GraphClient.dll" ComponentId="{623FE6DD-F44D-4E99-8FD5-E54A608BE511}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.Azure.ActiveDirectory.GraphClient.dll"/> + <ROW Component="Microsoft.Build.Tasks.CodeAnalysis.dll" ComponentId="{1BCE1248-761D-4264-9E7F-E9F4D0D91D2A}" Directory_="roslyn_Dir" Attributes="0" KeyPath="Microsoft.Build.Tasks.CodeAnalysis.dll"/> + <ROW Component="Microsoft.CodeAnalysis.CSharp.Scripting.dll" ComponentId="{8A0AD9F6-646C-44DC-89B8-60EF3A8A48E5}" Directory_="roslyn_Dir" Attributes="0" KeyPath="Microsoft.CodeAnalysis.CSharp.Scripting.dll"/> + <ROW Component="Microsoft.CodeAnalysis.CSharp.dll" ComponentId="{A515FD93-C530-4DE6-B103-1956165EF88B}" Directory_="roslyn_Dir" Attributes="0" KeyPath="Microsoft.CodeAnalysis.CSharp.dll"/> + <ROW Component="Microsoft.CodeAnalysis.Scripting.dll" ComponentId="{F863D211-5006-4831-8388-0EE65357F40D}" Directory_="roslyn_Dir" Attributes="0" KeyPath="Microsoft.CodeAnalysis.Scripting.dll"/> + <ROW Component="Microsoft.CodeAnalysis.VisualBasic.dll" ComponentId="{305F9E2B-9F03-4F2D-A382-07DC75ACD126}" Directory_="roslyn_Dir" Attributes="0" KeyPath="Microsoft.CodeAnalysis.VisualBasic.dll"/> + <ROW Component="Microsoft.CodeAnalysis.dll" ComponentId="{9ACDD738-0254-4691-A294-AB4C05A31616}" Directory_="roslyn_Dir" Attributes="0" KeyPath="Microsoft.CodeAnalysis.dll"/> <ROW Component="Microsoft.Data.Edm.dll" ComponentId="{2350532D-AD9C-40A6-A70E-169F339F0451}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.Data.Edm.dll"/> <ROW Component="Microsoft.Data.OData.dll" ComponentId="{55F248A2-158B-42D6-B1BB-4D0EFA28E7CF}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.Data.OData.dll"/> <ROW Component="Microsoft.Data.Services.Client.dll" ComponentId="{B6076FF3-B531-4AF2-BAE4-17BD2870C982}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.Data.Services.Client.dll"/> + <ROW Component="Microsoft.DiaSymReader.Native.amd64.dll" ComponentId="{A4AEBA9B-B3B5-4DD6-A6CD-94E023022422}" Directory_="roslyn_Dir" Attributes="256" KeyPath="Microsoft.DiaSymReader.Native.amd64.dll"/> + <ROW Component="Microsoft.DiaSymReader.Native.x86.dll" ComponentId="{A5AB6A2C-4B36-4779-91BA-8E76BFCB0CB2}" Directory_="roslyn_Dir" Attributes="0" KeyPath="Microsoft.DiaSymReader.Native.x86.dll"/> <ROW Component="Microsoft.IdentityModel.Clients.ActiveDirectory.dll" ComponentId="{C8FF51E6-B8BB-401D-BD03-58FD08E4C389}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.IdentityModel.Clients.ActiveDirectory.dll"/> <ROW Component="Microsoft.Practices.ServiceLocation.dll" ComponentId="{FD4F5E8C-62FB-4E90-8AFE-91B6F9458007}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.Practices.ServiceLocation.dll"/> <ROW Component="Microsoft.ServiceBus.dll" ComponentId="{B19BCB1E-6C52-4BF7-A128-DDA1DC047D0E}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.ServiceBus.dll"/> @@ -114,6 +137,7 @@ <ROW Component="Microsoft.VisualStudio.Services.WebApi.dll" ComponentId="{C7189E85-DD7D-4AE6-B417-4EC21AF1CE83}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.WebApi.dll"/> <ROW Component="Microsoft.WITDataStore32.dll" ComponentId="{4C13EE15-BCEC-400D-A528-50AF945B8F8D}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.WITDataStore32.dll"/> <ROW Component="Microsoft.Win32.Primitives.dll" ComponentId="{BF151A6C-FFF4-4A01-BC24-A9F7DD9A5FDF}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.Win32.Primitives.dll"/> + <ROW Component="Microsoft.Win32.Primitives.dll_1" ComponentId="{A40ECA54-B6F2-47BA-8267-B8A7E3338E72}" Directory_="roslyn_Dir" Attributes="0" KeyPath="Microsoft.Win32.Primitives.dll_1"/> <ROW Component="Microsoft.WindowsAPICodePack.Shell.dll" ComponentId="{9012CCFC-2D61-447A-BD29-4A21EB0F931B}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.WindowsAPICodePack.Shell.dll"/> <ROW Component="Microsoft.WindowsAPICodePack.ShellExtensions.dll" ComponentId="{EA4E42E9-528C-4EB5-82B4-84F6CA646FC4}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.WindowsAPICodePack.ShellExtensions.dll"/> <ROW Component="Microsoft.WindowsAPICodePack.dll" ComponentId="{C451DC70-A14F-4DE9-8E91-B3CAE54178FB}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.WindowsAPICodePack.dll"/> @@ -141,7 +165,9 @@ <ROW Component="SQLite.Interop.dll_1" ComponentId="{953C72C6-AD84-44D2-B02D-5CBD0511E5C0}" Directory_="x86_Dir" Attributes="0" KeyPath="SQLite.Interop.dll_1"/> <ROW Component="SimpleValidator.dll" ComponentId="{81091AC7-AB7A-4043-8D23-F329BBCA40BD}" Directory_="APPDIR" Attributes="0" KeyPath="SimpleValidator.dll"/> <ROW Component="System.AppContext.dll" ComponentId="{358E356C-62BE-4F21-8647-16E76597A83B}" Directory_="APPDIR" Attributes="0" KeyPath="System.AppContext.dll"/> + <ROW Component="System.AppContext.dll_1" ComponentId="{ADDE600C-810C-4202-9B2D-446121A122F6}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.AppContext.dll_1"/> <ROW Component="System.Collections.Concurrent.dll" ComponentId="{E0EB1925-1EA9-4E60-BDF7-FDAD9CDCCA54}" Directory_="APPDIR" Attributes="0" KeyPath="System.Collections.Concurrent.dll"/> + <ROW Component="System.Collections.Immutable.dll" ComponentId="{9A517387-B542-4AEF-82D6-18C774F37ED6}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Collections.Immutable.dll"/> <ROW Component="System.Collections.NonGeneric.dll" ComponentId="{011DA1E5-BA07-477C-8A6B-6F7F1C82CEC2}" Directory_="APPDIR" Attributes="0" KeyPath="System.Collections.NonGeneric.dll"/> <ROW Component="System.Collections.Specialized.dll" ComponentId="{26CC4B96-5E70-45BF-BA53-BEF10D2D2EC7}" Directory_="APPDIR" Attributes="0" KeyPath="System.Collections.Specialized.dll"/> <ROW Component="System.Collections.dll" ComponentId="{EB70E9A5-F888-4B4B-840C-E94098874BBC}" Directory_="APPDIR" Attributes="0" KeyPath="System.Collections.dll"/> @@ -150,6 +176,7 @@ <ROW Component="System.ComponentModel.TypeConverter.dll" ComponentId="{29481774-C7DE-404C-866B-00C152FD9F54}" Directory_="APPDIR" Attributes="0" KeyPath="System.ComponentModel.TypeConverter.dll"/> <ROW Component="System.ComponentModel.dll" ComponentId="{66A049C3-F933-41FB-B446-1B59D998A76D}" Directory_="APPDIR" Attributes="0" KeyPath="System.ComponentModel.dll"/> <ROW Component="System.Console.dll" ComponentId="{F70C16C5-D638-4396-94D7-60D61AD29043}" Directory_="APPDIR" Attributes="0" KeyPath="System.Console.dll"/> + <ROW Component="System.Console.dll_1" ComponentId="{C2B7A32A-3F53-44B4-A836-6CBDA9E0904E}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Console.dll_1"/> <ROW Component="System.Data.Common.dll" ComponentId="{12CBF4E7-6852-4A9B-BEA3-68E4D59C74D0}" Directory_="APPDIR" Attributes="0" KeyPath="System.Data.Common.dll"/> <ROW Component="System.Data.SQLite.EF6.dll" ComponentId="{E1451EC3-9A1A-4AA6-9847-85C335CE1D14}" Directory_="APPDIR" Attributes="0" KeyPath="System.Data.SQLite.EF6.dll"/> <ROW Component="System.Data.SQLite.Linq.dll" ComponentId="{EBAE90CC-361C-4FAA-973A-FB6530A43290}" Directory_="APPDIR" Attributes="0" KeyPath="System.Data.SQLite.Linq.dll"/> @@ -157,8 +184,11 @@ <ROW Component="System.Diagnostics.Contracts.dll" ComponentId="{F7F8A2C5-672E-4DDF-9B06-813BE46ABE9A}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.Contracts.dll"/> <ROW Component="System.Diagnostics.Debug.dll" ComponentId="{5398838C-738A-4FFD-9FC4-7A91BE89B332}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.Debug.dll"/> <ROW Component="System.Diagnostics.FileVersionInfo.dll" ComponentId="{F5D89192-D7C9-401A-AE25-B55DF0EAF352}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.FileVersionInfo.dll"/> + <ROW Component="System.Diagnostics.FileVersionInfo.dll_1" ComponentId="{599BAB63-882B-48BD-94D2-AC5B490E8FC5}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Diagnostics.FileVersionInfo.dll_1"/> <ROW Component="System.Diagnostics.Process.dll" ComponentId="{AD6B2C65-C00C-4CCE-9857-4525E5155685}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.Process.dll"/> + <ROW Component="System.Diagnostics.Process.dll_1" ComponentId="{3D91E365-A698-44B0-994A-4F581A5F47BE}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Diagnostics.Process.dll_1"/> <ROW Component="System.Diagnostics.StackTrace.dll" ComponentId="{9D42C40E-BA14-446E-9F28-700F79F93CF1}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.StackTrace.dll"/> + <ROW Component="System.Diagnostics.StackTrace.dll_1" ComponentId="{332192FB-5338-4DF7-AF0F-A205EB4B89D7}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Diagnostics.StackTrace.dll_1"/> <ROW Component="System.Diagnostics.TextWriterTraceListener.dll" ComponentId="{8763EE73-B2CF-4675-BC65-61A5A2844030}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.TextWriterTraceListener.dll"/> <ROW Component="System.Diagnostics.Tools.dll" ComponentId="{5F0560B5-B294-4C8E-814D-AA2A7CD38CBE}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.Tools.dll"/> <ROW Component="System.Diagnostics.TraceSource.dll" ComponentId="{81026182-D1C0-40AD-B6DF-DA82096ADAAE}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.TraceSource.dll"/> @@ -170,13 +200,18 @@ <ROW Component="System.Globalization.dll" ComponentId="{7AF72BE3-61B7-4285-8471-EF35418DE3F7}" Directory_="APPDIR" Attributes="0" KeyPath="System.Globalization.dll"/> <ROW Component="System.IO.Compression.ZipFile.dll" ComponentId="{CF2092A8-AE50-4D12-860E-2F0BD0CE6A6A}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.Compression.ZipFile.dll"/> <ROW Component="System.IO.Compression.dll" ComponentId="{E35A2B0E-E9DD-4B5D-A7BE-D501A42C9DF4}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.Compression.dll"/> + <ROW Component="System.IO.Compression.dll_1" ComponentId="{09B73784-6B70-469D-94F8-512DA09D4FF1}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.IO.Compression.dll_1"/> <ROW Component="System.IO.FileSystem.DriveInfo.dll" ComponentId="{983AC4A9-31A9-4D80-98BA-ECFC143D5E7F}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.FileSystem.DriveInfo.dll"/> + <ROW Component="System.IO.FileSystem.DriveInfo.dll_1" ComponentId="{A8588274-7B01-4753-ACD9-F32231F552E2}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.IO.FileSystem.DriveInfo.dll_1"/> <ROW Component="System.IO.FileSystem.Primitives.dll" ComponentId="{29A233E2-6200-43EE-87E9-7313437223EB}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.FileSystem.Primitives.dll"/> + <ROW Component="System.IO.FileSystem.Primitives.dll_1" ComponentId="{674647B6-F3CA-49D1-971A-13B35B2DFE03}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.IO.FileSystem.Primitives.dll_1"/> <ROW Component="System.IO.FileSystem.Watcher.dll" ComponentId="{A84EDD4B-8636-492F-8114-EA248483C1E6}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.FileSystem.Watcher.dll"/> <ROW Component="System.IO.FileSystem.dll" ComponentId="{CEDBD51C-2D62-42FF-8C1D-84219B6029EF}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.FileSystem.dll"/> + <ROW Component="System.IO.FileSystem.dll_1" ComponentId="{0699564F-B508-436B-90E0-D4932D341BA3}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.IO.FileSystem.dll_1"/> <ROW Component="System.IO.IsolatedStorage.dll" ComponentId="{83D8FD3C-958D-47B6-849E-15CD940244E0}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.IsolatedStorage.dll"/> <ROW Component="System.IO.MemoryMappedFiles.dll" ComponentId="{C874420A-A38B-482E-8EC8-5D73CBB256E0}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.MemoryMappedFiles.dll"/> <ROW Component="System.IO.Pipes.dll" ComponentId="{AF452794-8BF8-4BAD-AA3B-B9DB59D723E3}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.Pipes.dll"/> + <ROW Component="System.IO.Pipes.dll_1" ComponentId="{605BD35F-074F-41A1-B2C6-6AC170EC1014}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.IO.Pipes.dll_1"/> <ROW Component="System.IO.UnmanagedMemoryStream.dll" ComponentId="{514B14A8-9B28-4268-90BD-A39B895B0041}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.UnmanagedMemoryStream.dll"/> <ROW Component="System.IO.dll" ComponentId="{A5AA6EF0-C89E-4F78-A468-ACFD84069FCF}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.dll"/> <ROW Component="System.IdentityModel.Tokens.Jwt.dll" ComponentId="{E4D36818-F673-4F97-89E3-3ACEE6B795CC}" Directory_="APPDIR" Attributes="0" KeyPath="System.IdentityModel.Tokens.Jwt.dll"/> @@ -203,6 +238,7 @@ <ROW Component="System.Reactive.PlatformServices.dll" ComponentId="{2DD8FDBF-C96F-4DC9-AA12-1F5A88FB9370}" Directory_="APPDIR" Attributes="0" KeyPath="System.Reactive.PlatformServices.dll"/> <ROW Component="System.Reactive.Windows.Threading.dll" ComponentId="{B460E505-47E6-4146-BF7D-F1FF8E52EB8A}" Directory_="APPDIR" Attributes="0" KeyPath="System.Reactive.Windows.Threading.dll"/> <ROW Component="System.Reflection.Extensions.dll" ComponentId="{5FCB5312-1D48-4D99-8728-7628637BB4F2}" Directory_="APPDIR" Attributes="0" KeyPath="System.Reflection.Extensions.dll"/> + <ROW Component="System.Reflection.Metadata.dll" ComponentId="{9DA91072-C351-430B-A14A-35B771A2CCF7}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Reflection.Metadata.dll"/> <ROW Component="System.Reflection.Primitives.dll" ComponentId="{11C0857E-2BD7-4A36-B20B-F227826B99F0}" Directory_="APPDIR" Attributes="0" KeyPath="System.Reflection.Primitives.dll"/> <ROW Component="System.Reflection.dll" ComponentId="{4889F7EB-7BBE-4926-B487-65F9E50FD867}" Directory_="APPDIR" Attributes="0" KeyPath="System.Reflection.dll"/> <ROW Component="System.Resources.Reader.dll" ComponentId="{EBDB1797-7E2A-4C28-889D-DF29D154127A}" Directory_="APPDIR" Attributes="0" KeyPath="System.Resources.Reader.dll"/> @@ -219,15 +255,23 @@ <ROW Component="System.Runtime.Serialization.Primitives.dll" ComponentId="{05D7F62B-3EA2-4487-800F-2E3E26A17623}" Directory_="APPDIR" Attributes="0" KeyPath="System.Runtime.Serialization.Primitives.dll"/> <ROW Component="System.Runtime.Serialization.Xml.dll" ComponentId="{72603E1F-3B97-4A61-B3D4-864FF9865F6A}" Directory_="APPDIR" Attributes="0" KeyPath="System.Runtime.Serialization.Xml.dll"/> <ROW Component="System.Runtime.dll" ComponentId="{1A86F578-5323-432C-834E-6A1C7AB1CE76}" Directory_="APPDIR" Attributes="0" KeyPath="System.Runtime.dll"/> + <ROW Component="System.Security.AccessControl.dll" ComponentId="{C9B1FC6B-C4F2-4B9C-A29F-C38D47111179}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Security.AccessControl.dll"/> <ROW Component="System.Security.Claims.dll" ComponentId="{A58BFEA5-776F-4F09-AD57-783855FBFD2C}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.Claims.dll"/> + <ROW Component="System.Security.Claims.dll_1" ComponentId="{1797D00D-8329-4347-925E-FB04704EB6BC}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Security.Claims.dll_1"/> <ROW Component="System.Security.Cryptography.Algorithms.dll" ComponentId="{5510E981-08E6-4C71-AB20-55EC75BD52D3}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.Cryptography.Algorithms.dll"/> + <ROW Component="System.Security.Cryptography.Algorithms.dll_1" ComponentId="{BEA56F15-BD53-4D9A-A06F-9FF0AAFFD272}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Security.Cryptography.Algorithms.dll_1"/> <ROW Component="System.Security.Cryptography.Csp.dll" ComponentId="{3F6AAE9A-0126-43EF-894E-65A4931597F8}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.Cryptography.Csp.dll"/> <ROW Component="System.Security.Cryptography.Encoding.dll" ComponentId="{086BF834-ACD2-41FC-9C95-098F1C731B0B}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.Cryptography.Encoding.dll"/> + <ROW Component="System.Security.Cryptography.Encoding.dll_1" ComponentId="{939F660B-6699-4BA4-B42B-4D41598C462D}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Security.Cryptography.Encoding.dll_1"/> <ROW Component="System.Security.Cryptography.Primitives.dll" ComponentId="{AC2E9278-0D19-40A4-83B9-E97716BD255D}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.Cryptography.Primitives.dll"/> + <ROW Component="System.Security.Cryptography.Primitives.dll_1" ComponentId="{23626E8C-4011-407F-85A4-F2415DB164F3}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Security.Cryptography.Primitives.dll_1"/> <ROW Component="System.Security.Cryptography.X509Certificates.dll" ComponentId="{00F4F6C1-6B4D-4DFD-BD59-72EE690FC246}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.Cryptography.X509Certificates.dll"/> + <ROW Component="System.Security.Cryptography.X509Certificates.dll_1" ComponentId="{55475D52-5B8D-42A2-86D0-CCB0C999ED7A}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Security.Cryptography.X509Certificates.dll_1"/> + <ROW Component="System.Security.Principal.Windows.dll" ComponentId="{0E71A106-4E6D-4062-9021-2428497116A0}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Security.Principal.Windows.dll"/> <ROW Component="System.Security.Principal.dll" ComponentId="{127424E0-24F8-456F-BBEC-F23E331E1669}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.Principal.dll"/> <ROW Component="System.Security.SecureString.dll" ComponentId="{C40FA779-F72E-4CF2-9A42-368ADB1D05E4}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.SecureString.dll"/> <ROW Component="System.Spatial.dll" ComponentId="{A65F504C-A7EC-41BF-9C4F-3752037EFE25}" Directory_="APPDIR" Attributes="0" KeyPath="System.Spatial.dll"/> + <ROW Component="System.Text.Encoding.CodePages.dll" ComponentId="{493DD921-91C0-4731-BD4B-588DA7D4B4F6}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Text.Encoding.CodePages.dll"/> <ROW Component="System.Text.Encoding.Extensions.dll" ComponentId="{C177E423-71AE-4FB7-BDC1-1FFF650EFEBC}" Directory_="APPDIR" Attributes="0" KeyPath="System.Text.Encoding.Extensions.dll"/> <ROW Component="System.Text.Encoding.dll" ComponentId="{903DBCE1-0C97-4F99-BF85-41B54EF26B33}" Directory_="APPDIR" Attributes="0" KeyPath="System.Text.Encoding.dll"/> <ROW Component="System.Text.RegularExpressions.dll" ComponentId="{BFF6B45B-522B-44D6-8421-EC4B091B3DB5}" Directory_="APPDIR" Attributes="0" KeyPath="System.Text.RegularExpressions.dll"/> @@ -235,19 +279,25 @@ <ROW Component="System.Threading.Tasks.Parallel.dll" ComponentId="{987E51AD-AF06-4D03-B691-7318BD6BDA34}" Directory_="APPDIR" Attributes="0" KeyPath="System.Threading.Tasks.Parallel.dll"/> <ROW Component="System.Threading.Tasks.dll" ComponentId="{B92EED7E-FE98-4A94-B157-F75D4E92EB85}" Directory_="APPDIR" Attributes="0" KeyPath="System.Threading.Tasks.dll"/> <ROW Component="System.Threading.Thread.dll" ComponentId="{4C4CAEB2-FB35-4937-BDCB-2FF8E541EB65}" Directory_="APPDIR" Attributes="0" KeyPath="System.Threading.Thread.dll"/> + <ROW Component="System.Threading.Thread.dll_1" ComponentId="{71B6832A-77A9-4CDE-868B-64CC66AFB7EB}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Threading.Thread.dll_1"/> <ROW Component="System.Threading.ThreadPool.dll" ComponentId="{4AD2E492-AA1B-4C56-98F6-AAF9AC9DD7F5}" Directory_="APPDIR" Attributes="0" KeyPath="System.Threading.ThreadPool.dll"/> <ROW Component="System.Threading.Timer.dll" ComponentId="{8DBA4386-A1D8-4D98-9A3E-FA449DAA031F}" Directory_="APPDIR" Attributes="0" KeyPath="System.Threading.Timer.dll"/> <ROW Component="System.Threading.dll" ComponentId="{08B42E48-C46A-402F-B07A-D944F647A72F}" Directory_="APPDIR" Attributes="0" KeyPath="System.Threading.dll"/> <ROW Component="System.ValueTuple.dll" ComponentId="{33243DAF-2CB1-4158-BD3E-646D178E6BE3}" Directory_="APPDIR" Attributes="0" KeyPath="System.ValueTuple.dll"/> + <ROW Component="System.ValueTuple.dll_1" ComponentId="{B645B514-431C-405E-A84F-795718582196}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.ValueTuple.dll_1"/> <ROW Component="System.Web.Http.WebHost.dll" ComponentId="{76AA8551-7C36-44F1-8076-7DC8C0159CB6}" Directory_="APPDIR" Attributes="0" KeyPath="System.Web.Http.WebHost.dll"/> <ROW Component="System.Web.Http.dll" ComponentId="{7F609038-B81D-44BC-821F-2A742860ECD5}" Directory_="APPDIR" Attributes="0" KeyPath="System.Web.Http.dll"/> <ROW Component="System.Web.Razor.dll" ComponentId="{40A62E23-8887-4240-8D87-D8D07E2C347F}" Directory_="APPDIR" Attributes="0" KeyPath="System.Web.Razor.dll"/> <ROW Component="System.Windows.Interactivity.dll" ComponentId="{844D2D3C-AC50-418F-A9D4-8D928DBA49A7}" Directory_="APPDIR" Attributes="0" KeyPath="System.Windows.Interactivity.dll"/> <ROW Component="System.Xml.ReaderWriter.dll" ComponentId="{6DAC8C4A-BB06-465D-98B1-9D1015022B9C}" Directory_="APPDIR" Attributes="0" KeyPath="System.Xml.ReaderWriter.dll"/> + <ROW Component="System.Xml.ReaderWriter.dll_1" ComponentId="{159C7118-2AAA-43AD-948F-0B6B214DE77C}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Xml.ReaderWriter.dll_1"/> <ROW Component="System.Xml.XDocument.dll" ComponentId="{A37644F6-E28C-4F46-8A2F-FF8148DE4CEE}" Directory_="APPDIR" Attributes="0" KeyPath="System.Xml.XDocument.dll"/> <ROW Component="System.Xml.XPath.XDocument.dll" ComponentId="{4D676094-4D89-4619-A5C2-C6E26D44F46E}" Directory_="APPDIR" Attributes="0" KeyPath="System.Xml.XPath.XDocument.dll"/> + <ROW Component="System.Xml.XPath.XDocument.dll_1" ComponentId="{D137B4CE-A31F-4CB4-A5A8-3C45799EC935}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Xml.XPath.XDocument.dll_1"/> <ROW Component="System.Xml.XPath.dll" ComponentId="{60E883E1-D85B-432F-BB51-F83BF3E79BFA}" Directory_="APPDIR" Attributes="0" KeyPath="System.Xml.XPath.dll"/> + <ROW Component="System.Xml.XPath.dll_1" ComponentId="{73C84E5E-DA39-404A-BD5B-7717983C4213}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Xml.XPath.dll_1"/> <ROW Component="System.Xml.XmlDocument.dll" ComponentId="{A0706488-0521-4073-AB50-2345AC9C663D}" Directory_="APPDIR" Attributes="0" KeyPath="System.Xml.XmlDocument.dll"/> + <ROW Component="System.Xml.XmlDocument.dll_1" ComponentId="{5DD496B2-F222-4697-AFC3-88B5549FF78D}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Xml.XmlDocument.dll_1"/> <ROW Component="System.Xml.XmlSerializer.dll" ComponentId="{2DD41ED6-51F1-4B11-B7F8-923AD51C1271}" Directory_="APPDIR" Attributes="0" KeyPath="System.Xml.XmlSerializer.dll"/> <ROW Component="Tango.AdvancedInstaller.dll" ComponentId="{1B4CE66E-9A77-4A06-8BCC-8D39EC9F27A7}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.AdvancedInstaller.dll"/> <ROW Component="Tango.AnimatedGif.dll" ComponentId="{4E1F5301-EA6D-45D5-9C99-23E59875096A}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.AnimatedGif.dll"/> @@ -328,6 +378,7 @@ <ROW Component="Tango.Video.dll" ComponentId="{3CC4C095-51B4-44F0-ACB2-DEB38DCECDCD}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Video.dll"/> <ROW Component="Tango.Visuals.dll" ComponentId="{B7CD722E-F1B8-4512-9136-4E8C89A2C6EB}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Visuals.dll"/> <ROW Component="Tango.Web.dll" ComponentId="{7544BD5E-0E9E-4E4E-8952-9FFF36EABC33}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Web.dll"/> + <ROW Component="VBCSCompiler.exe" ComponentId="{C2852448-4039-4B8D-B3AB-37FFF7635382}" Directory_="roslyn_Dir" Attributes="0" KeyPath="VBCSCompiler.exe"/> <ROW Component="WpfAnimatedGif.dll" ComponentId="{BF256556-2C42-4205-BA49-9E1623855ED9}" Directory_="APPDIR" Attributes="0" KeyPath="WpfAnimatedGif.dll"/> <ROW Component="Z.EntityFramework.Extensions.dll" ComponentId="{6015DA13-CC4C-40F5-B1D9-7B4B02545E10}" Directory_="APPDIR" Attributes="0" KeyPath="Z.EntityFramework.Extensions.dll"/> <ROW Component="Z.EntityFramework.Plus.EF6.dll" ComponentId="{F4F59D2D-274A-4524-AB1A-B878E4007709}" Directory_="APPDIR" Attributes="0" KeyPath="Z.EntityFramework.Plus.EF6.dll"/> @@ -336,10 +387,25 @@ <ROW Component="ZedGraph.resources.dll" ComponentId="{C19A98E8-041E-475F-B94C-2DBD2C3AEB54}" Directory_="APPDIR" Attributes="0" KeyPath="ZedGraph.resources.dll"/> <ROW Component="benchmarks_rgb_lab.csv" ComponentId="{227CFC36-C088-48B6-B3FB-99170EB7B182}" Directory_="TCC_Dir" Attributes="0" KeyPath="benchmarks_rgb_lab.csv" Type="0"/> <ROW Component="concrt140.dll" ComponentId="{BA1FDE96-3FAB-4FE6-BCDF-547FB5468791}" Directory_="APPDIR" Attributes="256" KeyPath="concrt140.dll"/> + <ROW Component="csc.exe" ComponentId="{9E02905A-7CAD-4882-94E4-3ED85FC909CD}" Directory_="roslyn_Dir" Attributes="0" KeyPath="csc.exe"/> + <ROW Component="csc.exe.config" ComponentId="{C2010BC3-8EEC-4240-914E-DF695CF3DD19}" Directory_="roslyn_Dir" Attributes="0" KeyPath="csc.exe.config" Type="0"/> + <ROW Component="csi.exe" ComponentId="{9E9E7113-F15F-4055-8079-CB8D4F737103}" Directory_="roslyn_Dir" Attributes="0" KeyPath="csi.exe"/> <ROW Component="cvextern.dll" ComponentId="{5FBA3BA5-D6C4-48B0-B108-61E7F9915D5A}" Directory_="APPDIR" Attributes="256" KeyPath="cvextern.dll"/> <ROW Component="fpgen.exe" ComponentId="{457206AA-0093-4C01-80E4-BBCAB192F18F}" Directory_="APPDIR" Attributes="0" KeyPath="fpgen.exe"/> + <ROW Component="git2106a5f2.dll" ComponentId="{3947226D-AE97-4200-ACE5-C2C0D4698C19}" Directory_="x64_1_Dir" Attributes="256" KeyPath="git2106a5f2.dll"/> + <ROW Component="git2106a5f2.dll_1" ComponentId="{5806E7F5-63C4-432A-92F2-FD1F83CF4C11}" Directory_="x86_1_Dir" Attributes="0" KeyPath="git2106a5f2.dll_1"/> <ROW Component="libMagickCore2.dll" ComponentId="{858FD670-C906-401C-834B-AA69D5D7B106}" Directory_="APPDIR" Attributes="0" KeyPath="libMagickCore2.dll"/> <ROW Component="libMagickWand2.dll" ComponentId="{2E38FD24-82A5-432F-9847-E9A78CB2A5A6}" Directory_="APPDIR" Attributes="0" KeyPath="libMagickWand2.dll"/> + <ROW Component="libgit2106a5f2.dylib" ComponentId="{2E4E4943-AFC7-4B0D-BF24-C10D92715CB7}" Directory_="osx_Dir" Attributes="0" KeyPath="libgit2106a5f2.dylib" Type="0"/> + <ROW Component="libgit2106a5f2.so" ComponentId="{6132FC72-0E0D-4B56-94C3-1856A9D83A10}" Directory_="alpinex64_Dir" Attributes="0" KeyPath="libgit2106a5f2.so" Type="0"/> + <ROW Component="libgit2106a5f2.so_1" ComponentId="{8382554A-45C3-45B7-80D4-0A807913318F}" Directory_="alpine.3.9x64_Dir" Attributes="0" KeyPath="libgit2106a5f2.so_1" Type="0"/> + <ROW Component="libgit2106a5f2.so_2" ComponentId="{A926BABA-3F99-4452-8735-F2C1E4299AC5}" Directory_="debianarm64_Dir" Attributes="0" KeyPath="libgit2106a5f2.so_2" Type="0"/> + <ROW Component="libgit2106a5f2.so_3" ComponentId="{BB92FD4B-C44B-4D1F-9FC8-2F831CB1C3CE}" Directory_="debian.9x64_Dir" Attributes="0" KeyPath="libgit2106a5f2.so_3" Type="0"/> + <ROW Component="libgit2106a5f2.so_4" ComponentId="{9DA3CC8D-B5D1-42B1-A12F-CE446DBC07DF}" Directory_="fedorax64_Dir" Attributes="0" KeyPath="libgit2106a5f2.so_4" Type="0"/> + <ROW Component="libgit2106a5f2.so_5" ComponentId="{33D1A65F-2C29-4345-9E4B-91B795875986}" Directory_="linuxx64_Dir" Attributes="0" KeyPath="libgit2106a5f2.so_5" Type="0"/> + <ROW Component="libgit2106a5f2.so_6" ComponentId="{8FF6DB35-CBA4-4895-8974-C7959FB60DA8}" Directory_="rhelx64_Dir" Attributes="0" KeyPath="libgit2106a5f2.so_6" Type="0"/> + <ROW Component="libgit2106a5f2.so_7" ComponentId="{601C20DD-9218-4B01-9B41-C3F526E09DDC}" Directory_="ubuntu.16.04arm64_Dir" Attributes="0" KeyPath="libgit2106a5f2.so_7" Type="0"/> + <ROW Component="libgit2106a5f2.so_8" ComponentId="{5B803211-BED1-4F87-94C8-FAD76D18F05C}" Directory_="ubuntu.18.04x64_Dir" Attributes="0" KeyPath="libgit2106a5f2.so_8" Type="0"/> <ROW Component="libiconv2.dll" ComponentId="{2700198B-26A6-4D84-93C7-8855FD014A13}" Directory_="APPDIR" Attributes="0" KeyPath="libiconv2.dll"/> <ROW Component="libjpeg7.dll" ComponentId="{88A7E4EB-DBA8-40A6-AB9A-54F0DE726F06}" Directory_="APPDIR" Attributes="0" KeyPath="libjpeg7.dll"/> <ROW Component="libpng120.dll" ComponentId="{45735C72-6B1C-421C-8F92-561795B2B945}" Directory_="APPDIR" Attributes="0" KeyPath="libpng120.dll"/> @@ -376,6 +442,7 @@ <ROW Component="protobufnet.dll" ComponentId="{EC7E9950-BFF7-4B28-918D-7F5EBAD54696}" Directory_="APPDIR" Attributes="0" KeyPath="protobufnet.dll"/> <ROW Component="template.bmp" ComponentId="{927DB4C0-6F7A-4D61-8BFC-16AE3116AD96}" Directory_="TCC_Dir" Attributes="0" KeyPath="template.bmp"/> <ROW Component="ucrtbased.dll" ComponentId="{4188BB88-A714-488A-A02D-98710ACC94F5}" Directory_="APPDIR" Attributes="0" KeyPath="ucrtbased.dll"/> + <ROW Component="vbc.exe" ComponentId="{F0A093C2-E31E-4D71-9D0A-F3A87D12E6FE}" Directory_="roslyn_Dir" Attributes="0" KeyPath="vbc.exe"/> <ROW Component="vcruntime140.dll" ComponentId="{078A42AF-E964-4CA3-8A9C-CBE6D0FD76AA}" Directory_="APPDIR" Attributes="0" KeyPath="vcruntime140.dll"/> <ROW Component="vcruntime140d.dll" ComponentId="{AF42196B-67BB-4EBA-8C3A-38B9527F9775}" Directory_="APPDIR" Attributes="0" KeyPath="vcruntime140d.dll"/> <ROW Component="zlib1.dll" ComponentId="{B1077B58-3ED7-4166-8329-8FF92411C301}" Directory_="APPDIR" Attributes="0" KeyPath="zlib1.dll"/> @@ -834,6 +901,97 @@ <ROW File="Microsoft.Data.Services.Client.dll" Component_="Microsoft.Data.Services.Client.dll" FileName="MICRO~26.DLL|Microsoft.Data.Services.Client.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\Microsoft.Data.Services.Client.dll" SelfReg="false"/> <ROW File="System.Spatial.dll" Component_="System.Spatial.dll" FileName="SYSTE~11.DLL|System.Spatial.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\System.Spatial.dll" SelfReg="false"/> <ROW File="Tango.ColorLib_v6.dll" Component_="Tango.ColorLib_v6.dll" FileName="TANGO~24.DLL|Tango.ColorLib_v6.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\Tango.ColorLib_v6.dll" SelfReg="false"/> + <ROW File="CommandLine.xml" Component_="Dragablz.xml" FileName="COMMAN~1.XML|CommandLine.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\CommandLine.xml" SelfReg="false"/> + <ROW File="DocumentFormat.OpenXml.xml" Component_="Dragablz.xml" FileName="DOCUME~1.XML|DocumentFormat.OpenXml.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\DocumentFormat.OpenXml.xml" SelfReg="false"/> + <ROW File="EntityFramework.SqlServer.xml" Component_="Dragablz.xml" FileName="ENTITY~1.XML|EntityFramework.SqlServer.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\EntityFramework.SqlServer.xml" SelfReg="false"/> + <ROW File="EntityFramework.xml" Component_="Dragablz.xml" FileName="ENTITY~2.XML|EntityFramework.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\EntityFramework.xml" SelfReg="false"/> + <ROW File="Google.Protobuf.xml" Component_="Dragablz.xml" FileName="GOOGLE~1.XML|Google.Protobuf.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\Google.Protobuf.xml" SelfReg="false"/> + <ROW File="JWT.xml" Component_="Dragablz.xml" FileName="JWT.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\JWT.xml" SelfReg="false"/> + <ROW File="libgit2106a5f2.so" Component_="libgit2106a5f2.so" FileName="LIBGIT~1.SO|libgit2-106a5f2.so" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\lib\alpine-x64\libgit2-106a5f2.so" SelfReg="false"/> + <ROW File="libgit2106a5f2.so_1" Component_="libgit2106a5f2.so_1" FileName="LIBGIT~1.SO|libgit2-106a5f2.so" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\lib\alpine.3.9-x64\libgit2-106a5f2.so" SelfReg="false"/> + <ROW File="libgit2106a5f2.so_2" Component_="libgit2106a5f2.so_2" FileName="LIBGIT~1.SO|libgit2-106a5f2.so" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\lib\debian-arm64\libgit2-106a5f2.so" SelfReg="false"/> + <ROW File="libgit2106a5f2.so_3" Component_="libgit2106a5f2.so_3" FileName="LIBGIT~1.SO|libgit2-106a5f2.so" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\lib\debian.9-x64\libgit2-106a5f2.so" SelfReg="false"/> + <ROW File="libgit2106a5f2.so_4" Component_="libgit2106a5f2.so_4" FileName="LIBGIT~1.SO|libgit2-106a5f2.so" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\lib\fedora-x64\libgit2-106a5f2.so" SelfReg="false"/> + <ROW File="libgit2106a5f2.so_5" Component_="libgit2106a5f2.so_5" FileName="LIBGIT~1.SO|libgit2-106a5f2.so" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\lib\linux-x64\libgit2-106a5f2.so" SelfReg="false"/> + <ROW File="libgit2106a5f2.dylib" Component_="libgit2106a5f2.dylib" FileName="LIBGIT~1.DYL|libgit2-106a5f2.dylib" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\lib\osx\libgit2-106a5f2.dylib" SelfReg="false"/> + <ROW File="libgit2106a5f2.so_6" Component_="libgit2106a5f2.so_6" FileName="LIBGIT~1.SO|libgit2-106a5f2.so" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\lib\rhel-x64\libgit2-106a5f2.so" SelfReg="false"/> + <ROW File="libgit2106a5f2.so_7" Component_="libgit2106a5f2.so_7" FileName="LIBGIT~1.SO|libgit2-106a5f2.so" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\lib\ubuntu.16.04-arm64\libgit2-106a5f2.so" SelfReg="false"/> + <ROW File="libgit2106a5f2.so_8" Component_="libgit2106a5f2.so_8" FileName="LIBGIT~1.SO|libgit2-106a5f2.so" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\lib\ubuntu.18.04-x64\libgit2-106a5f2.so" SelfReg="false"/> + <ROW File="git2106a5f2.dll" Component_="git2106a5f2.dll" FileName="GIT2-1~1.DLL|git2-106a5f2.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\lib\win32\x64\git2-106a5f2.dll" SelfReg="false"/> + <ROW File="git2106a5f2.pdb" Component_="git2106a5f2.dll" FileName="GIT2-1~1.PDB|git2-106a5f2.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\lib\win32\x64\git2-106a5f2.pdb" SelfReg="false"/> + <ROW File="git2106a5f2.dll_1" Component_="git2106a5f2.dll_1" FileName="GIT2-1~1.DLL|git2-106a5f2.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\lib\win32\x86\git2-106a5f2.dll" SelfReg="false"/> + <ROW File="git2106a5f2.pdb_1" Component_="git2106a5f2.dll_1" FileName="GIT2-1~1.PDB|git2-106a5f2.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\lib\win32\x86\git2-106a5f2.pdb" SelfReg="false"/> + <ROW File="LibGit2Sharp.xml" Component_="Dragablz.xml" FileName="LIBGIT~1.XML|LibGit2Sharp.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\LibGit2Sharp.xml" SelfReg="false"/> + <ROW File="LiteDB.xml" Component_="Dragablz.xml" FileName="LiteDB.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\LiteDB.xml" SelfReg="false"/> + <ROW File="MahApps.Metro.xml" Component_="Dragablz.xml" FileName="MAHAPP~1.XML|MahApps.Metro.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\MahApps.Metro.xml" SelfReg="false"/> + <ROW File="MaterialDesignThemes.Wpf.xml" Component_="Dragablz.xml" FileName="MATERI~1.XML|MaterialDesignThemes.Wpf.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\MaterialDesignThemes.Wpf.xml" SelfReg="false"/> + <ROW File="Microsoft.AspNet.SignalR.Client.xml" Component_="Dragablz.xml" FileName="MICROS~1.XML|Microsoft.AspNet.SignalR.Client.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\Microsoft.AspNet.SignalR.Client.xml" SelfReg="false"/> + <ROW File="Microsoft.IdentityModel.Clients.ActiveDirectory.xml" Component_="Dragablz.xml" FileName="MICROS~2.XML|Microsoft.IdentityModel.Clients.ActiveDirectory.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\Microsoft.IdentityModel.Clients.ActiveDirectory.xml" SelfReg="false"/> + <ROW File="Microsoft.SqlServer.AzureStorageEnum.xml" Component_="Dragablz.xml" FileName="MICROS~3.XML|Microsoft.SqlServer.AzureStorageEnum.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\Microsoft.SqlServer.AzureStorageEnum.xml" SelfReg="false"/> + <ROW File="Microsoft.SqlServer.ConnectionInfo.xml" Component_="Dragablz.xml" FileName="MICROS~4.XML|Microsoft.SqlServer.ConnectionInfo.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\Microsoft.SqlServer.ConnectionInfo.xml" SelfReg="false"/> + <ROW File="Microsoft.SqlServer.Dmf.Common.xml" Component_="Dragablz.xml" FileName="MICROS~5.XML|Microsoft.SqlServer.Dmf.Common.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\Microsoft.SqlServer.Dmf.Common.xml" SelfReg="false"/> + <ROW File="Microsoft.SqlServer.ServiceBrokerEnum.xml" Component_="Dragablz.xml" FileName="MICROS~6.XML|Microsoft.SqlServer.ServiceBrokerEnum.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\Microsoft.SqlServer.ServiceBrokerEnum.xml" SelfReg="false"/> + <ROW File="Microsoft.SqlServer.Smo.xml" Component_="Dragablz.xml" FileName="MICROS~7.XML|Microsoft.SqlServer.Smo.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\Microsoft.SqlServer.Smo.xml" SelfReg="false"/> + <ROW File="Microsoft.SqlServer.SqlEnum.xml" Component_="Dragablz.xml" FileName="MICROS~8.XML|Microsoft.SqlServer.SqlEnum.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\Microsoft.SqlServer.SqlEnum.xml" SelfReg="false"/> + <ROW File="Newtonsoft.Json.xml" Component_="Dragablz.xml" FileName="NEWTON~1.XML|Newtonsoft.Json.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\Newtonsoft.Json.xml" SelfReg="false"/> + <ROW File="protobufnet.xml" Component_="Dragablz.xml" FileName="PROTOB~1.XML|protobuf-net.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\protobuf-net.xml" SelfReg="false"/> + <ROW File="csc.exe" Component_="csc.exe" FileName="csc.exe" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\csc.exe" SelfReg="false" DigSign="true"/> + <ROW File="csc.exe.config" Component_="csc.exe.config" FileName="CSCEXE~1.CON|csc.exe.config" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\csc.exe.config" SelfReg="false"/> + <ROW File="csc.rsp" Component_="csc.exe.config" FileName="csc.rsp" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\csc.rsp" SelfReg="false"/> + <ROW File="csi.exe" Component_="csi.exe" FileName="csi.exe" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\csi.exe" SelfReg="false" DigSign="true"/> + <ROW File="csi.exe.config" Component_="csc.exe.config" FileName="CSIEXE~1.CON|csi.exe.config" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\csi.exe.config" SelfReg="false"/> + <ROW File="csi.rsp" Component_="csc.exe.config" FileName="csi.rsp" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\csi.rsp" SelfReg="false"/> + <ROW File="Microsoft.Build.Tasks.CodeAnalysis.dll" Component_="Microsoft.Build.Tasks.CodeAnalysis.dll" FileName="MICROS~1.DLL|Microsoft.Build.Tasks.CodeAnalysis.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\Microsoft.Build.Tasks.CodeAnalysis.dll" SelfReg="false"/> + <ROW File="Microsoft.CodeAnalysis.CSharp.dll" Component_="Microsoft.CodeAnalysis.CSharp.dll" FileName="MICROS~2.DLL|Microsoft.CodeAnalysis.CSharp.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\Microsoft.CodeAnalysis.CSharp.dll" SelfReg="false"/> + <ROW File="Microsoft.CodeAnalysis.CSharp.Scripting.dll" Component_="Microsoft.CodeAnalysis.CSharp.Scripting.dll" FileName="MICROS~3.DLL|Microsoft.CodeAnalysis.CSharp.Scripting.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\Microsoft.CodeAnalysis.CSharp.Scripting.dll" SelfReg="false"/> + <ROW File="Microsoft.CodeAnalysis.dll" Component_="Microsoft.CodeAnalysis.dll" FileName="MICROS~4.DLL|Microsoft.CodeAnalysis.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\Microsoft.CodeAnalysis.dll" SelfReg="false"/> + <ROW File="Microsoft.CodeAnalysis.Scripting.dll" Component_="Microsoft.CodeAnalysis.Scripting.dll" FileName="MICROS~5.DLL|Microsoft.CodeAnalysis.Scripting.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\Microsoft.CodeAnalysis.Scripting.dll" SelfReg="false"/> + <ROW File="Microsoft.CodeAnalysis.VisualBasic.dll" Component_="Microsoft.CodeAnalysis.VisualBasic.dll" FileName="MICROS~6.DLL|Microsoft.CodeAnalysis.VisualBasic.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\Microsoft.CodeAnalysis.VisualBasic.dll" SelfReg="false"/> + <ROW File="Microsoft.CSharp.Core.targets" Component_="csc.exe.config" FileName="MICROS~1.TAR|Microsoft.CSharp.Core.targets" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\Microsoft.CSharp.Core.targets" SelfReg="false"/> + <ROW File="Microsoft.DiaSymReader.Native.amd64.dll" Component_="Microsoft.DiaSymReader.Native.amd64.dll" FileName="MICROS~7.DLL|Microsoft.DiaSymReader.Native.amd64.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\Microsoft.DiaSymReader.Native.amd64.dll" SelfReg="false"/> + <ROW File="Microsoft.DiaSymReader.Native.x86.dll" Component_="Microsoft.DiaSymReader.Native.x86.dll" FileName="MICROS~8.DLL|Microsoft.DiaSymReader.Native.x86.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\Microsoft.DiaSymReader.Native.x86.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualBasic.Core.targets" Component_="csc.exe.config" FileName="MICROS~2.TAR|Microsoft.VisualBasic.Core.targets" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\Microsoft.VisualBasic.Core.targets" SelfReg="false"/> + <ROW File="Microsoft.Win32.Primitives.dll_1" Component_="Microsoft.Win32.Primitives.dll_1" FileName="MICROS~9.DLL|Microsoft.Win32.Primitives.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\Microsoft.Win32.Primitives.dll" SelfReg="false"/> + <ROW File="System.AppContext.dll_1" Component_="System.AppContext.dll_1" FileName="SYSTEM~1.DLL|System.AppContext.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.AppContext.dll" SelfReg="false"/> + <ROW File="System.Collections.Immutable.dll" Component_="System.Collections.Immutable.dll" FileName="SYSTEM~2.DLL|System.Collections.Immutable.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.Collections.Immutable.dll" SelfReg="false"/> + <ROW File="System.Console.dll_1" Component_="System.Console.dll_1" FileName="SYSTEM~3.DLL|System.Console.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.Console.dll" SelfReg="false"/> + <ROW File="System.Diagnostics.FileVersionInfo.dll_1" Component_="System.Diagnostics.FileVersionInfo.dll_1" FileName="SYSTEM~4.DLL|System.Diagnostics.FileVersionInfo.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.Diagnostics.FileVersionInfo.dll" SelfReg="false"/> + <ROW File="System.Diagnostics.Process.dll_1" Component_="System.Diagnostics.Process.dll_1" FileName="SYSTEM~5.DLL|System.Diagnostics.Process.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.Diagnostics.Process.dll" SelfReg="false"/> + <ROW File="System.Diagnostics.StackTrace.dll_1" Component_="System.Diagnostics.StackTrace.dll_1" FileName="SYSTEM~6.DLL|System.Diagnostics.StackTrace.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.Diagnostics.StackTrace.dll" SelfReg="false"/> + <ROW File="System.IO.Compression.dll_1" Component_="System.IO.Compression.dll_1" FileName="SYSTEM~7.DLL|System.IO.Compression.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.IO.Compression.dll" SelfReg="false"/> + <ROW File="System.IO.FileSystem.dll_1" Component_="System.IO.FileSystem.dll_1" FileName="SYSTEM~8.DLL|System.IO.FileSystem.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.IO.FileSystem.dll" SelfReg="false"/> + <ROW File="System.IO.FileSystem.DriveInfo.dll_1" Component_="System.IO.FileSystem.DriveInfo.dll_1" FileName="SYSTEM~9.DLL|System.IO.FileSystem.DriveInfo.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.IO.FileSystem.DriveInfo.dll" SelfReg="false"/> + <ROW File="System.IO.FileSystem.Primitives.dll_1" Component_="System.IO.FileSystem.Primitives.dll_1" FileName="SYSTE~10.DLL|System.IO.FileSystem.Primitives.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.IO.FileSystem.Primitives.dll" SelfReg="false"/> + <ROW File="System.IO.Pipes.dll_1" Component_="System.IO.Pipes.dll_1" FileName="SYSTE~11.DLL|System.IO.Pipes.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.IO.Pipes.dll" SelfReg="false"/> + <ROW File="System.Reflection.Metadata.dll" Component_="System.Reflection.Metadata.dll" FileName="SYSTE~12.DLL|System.Reflection.Metadata.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.Reflection.Metadata.dll" SelfReg="false"/> + <ROW File="System.Security.AccessControl.dll" Component_="System.Security.AccessControl.dll" FileName="SYSTE~13.DLL|System.Security.AccessControl.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.Security.AccessControl.dll" SelfReg="false"/> + <ROW File="System.Security.Claims.dll_1" Component_="System.Security.Claims.dll_1" FileName="SYSTE~14.DLL|System.Security.Claims.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.Security.Claims.dll" SelfReg="false"/> + <ROW File="System.Security.Cryptography.Algorithms.dll_1" Component_="System.Security.Cryptography.Algorithms.dll_1" FileName="SYSTE~15.DLL|System.Security.Cryptography.Algorithms.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.Security.Cryptography.Algorithms.dll" SelfReg="false"/> + <ROW File="System.Security.Cryptography.Encoding.dll_1" Component_="System.Security.Cryptography.Encoding.dll_1" FileName="SYSTE~16.DLL|System.Security.Cryptography.Encoding.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.Security.Cryptography.Encoding.dll" SelfReg="false"/> + <ROW File="System.Security.Cryptography.Primitives.dll_1" Component_="System.Security.Cryptography.Primitives.dll_1" FileName="SYSTE~17.DLL|System.Security.Cryptography.Primitives.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.Security.Cryptography.Primitives.dll" SelfReg="false"/> + <ROW File="System.Security.Cryptography.X509Certificates.dll_1" Component_="System.Security.Cryptography.X509Certificates.dll_1" FileName="SYSTE~18.DLL|System.Security.Cryptography.X509Certificates.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.Security.Cryptography.X509Certificates.dll" SelfReg="false"/> + <ROW File="System.Security.Principal.Windows.dll" Component_="System.Security.Principal.Windows.dll" FileName="SYSTE~19.DLL|System.Security.Principal.Windows.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.Security.Principal.Windows.dll" SelfReg="false"/> + <ROW File="System.Text.Encoding.CodePages.dll" Component_="System.Text.Encoding.CodePages.dll" FileName="SYSTE~20.DLL|System.Text.Encoding.CodePages.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.Text.Encoding.CodePages.dll" SelfReg="false"/> + <ROW File="System.Threading.Thread.dll_1" Component_="System.Threading.Thread.dll_1" FileName="SYSTE~21.DLL|System.Threading.Thread.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.Threading.Thread.dll" SelfReg="false"/> + <ROW File="System.ValueTuple.dll_1" Component_="System.ValueTuple.dll_1" FileName="SYSTE~22.DLL|System.ValueTuple.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.ValueTuple.dll" SelfReg="false"/> + <ROW File="System.Xml.ReaderWriter.dll_1" Component_="System.Xml.ReaderWriter.dll_1" FileName="SYSTE~23.DLL|System.Xml.ReaderWriter.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.Xml.ReaderWriter.dll" SelfReg="false"/> + <ROW File="System.Xml.XmlDocument.dll_1" Component_="System.Xml.XmlDocument.dll_1" FileName="SYSTE~24.DLL|System.Xml.XmlDocument.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.Xml.XmlDocument.dll" SelfReg="false"/> + <ROW File="System.Xml.XPath.dll_1" Component_="System.Xml.XPath.dll_1" FileName="SYSTE~25.DLL|System.Xml.XPath.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.Xml.XPath.dll" SelfReg="false"/> + <ROW File="System.Xml.XPath.XDocument.dll_1" Component_="System.Xml.XPath.XDocument.dll_1" FileName="SYSTE~26.DLL|System.Xml.XPath.XDocument.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.Xml.XPath.XDocument.dll" SelfReg="false"/> + <ROW File="vbc.exe" Component_="vbc.exe" FileName="vbc.exe" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\vbc.exe" SelfReg="false" DigSign="true"/> + <ROW File="vbc.exe.config" Component_="csc.exe.config" FileName="VBCEXE~1.CON|vbc.exe.config" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\vbc.exe.config" SelfReg="false"/> + <ROW File="vbc.rsp" Component_="csc.exe.config" FileName="vbc.rsp" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\vbc.rsp" SelfReg="false"/> + <ROW File="VBCSCompiler.exe" Component_="VBCSCompiler.exe" FileName="VBCSCO~1.EXE|VBCSCompiler.exe" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\VBCSCompiler.exe" SelfReg="false" DigSign="true"/> + <ROW File="VBCSCompiler.exe.config" Component_="csc.exe.config" FileName="VBCSCO~1.CON|VBCSCompiler.exe.config" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\VBCSCompiler.exe.config" SelfReg="false"/> + <ROW File="System.Data.SQLite.xml" Component_="Dragablz.xml" FileName="SYSTEM~1.XML|System.Data.SQLite.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\System.Data.SQLite.xml" SelfReg="false"/> + <ROW File="System.Net.Http.Formatting.xml" Component_="Dragablz.xml" FileName="SYSTEM~2.XML|System.Net.Http.Formatting.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\System.Net.Http.Formatting.xml" SelfReg="false"/> + <ROW File="System.Reactive.Core.xml" Component_="Dragablz.xml" FileName="SYSTEM~3.XML|System.Reactive.Core.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\System.Reactive.Core.xml" SelfReg="false"/> + <ROW File="System.Reactive.Interfaces.xml" Component_="Dragablz.xml" FileName="SYSTEM~4.XML|System.Reactive.Interfaces.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\System.Reactive.Interfaces.xml" SelfReg="false"/> + <ROW File="System.Reactive.Linq.xml" Component_="Dragablz.xml" FileName="SYSTEM~5.XML|System.Reactive.Linq.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\System.Reactive.Linq.xml" SelfReg="false"/> + <ROW File="System.Reactive.PlatformServices.xml" Component_="Dragablz.xml" FileName="SYSTEM~6.XML|System.Reactive.PlatformServices.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\System.Reactive.PlatformServices.xml" SelfReg="false"/> + <ROW File="System.Web.Http.WebHost.xml" Component_="Dragablz.xml" FileName="SYSTEM~7.XML|System.Web.Http.WebHost.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\System.Web.Http.WebHost.xml" SelfReg="false"/> + <ROW File="System.Web.Http.xml" Component_="Dragablz.xml" FileName="SYSTEM~8.XML|System.Web.Http.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\System.Web.Http.xml" SelfReg="false"/> + <ROW File="Tango.DataStore.xml" Component_="Dragablz.xml" FileName="TANGOD~1.XML|Tango.DataStore.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\Tango.DataStore.xml" SelfReg="false"/> </COMPONENT> <COMPONENT cid="caphyon.advinst.msicomp.AiRemoveFileComponent"> <ROW RemoveFile="_" Options="3"/> @@ -845,7 +1003,7 @@ <ROW Action="AI_DetectSoftware" Sequence="101"/> </COMPONENT> <COMPONENT cid="caphyon.advinst.msicomp.BuildComponent"> - <ROW BuildKey="DefaultBuild" BuildName="DefaultBuild" BuildOrder="1" BuildType="0" PackageFolder="..\Build\Installers\Machine Studio\Release" PackageFileName="Machine Studio Installer_v4.9.9" Languages="en" InstallationType="4" CabsLocation="1" PackageType="1" FilesInsideExe="true" ExtractionFolder="[AppDataFolder][|Manufacturer]\[|ProductName] [|ProductVersion]\install" ExtUI="true" UseLargeSchema="true" ExeName="Machine Studio Installer_v4.9.9"/> + <ROW BuildKey="DefaultBuild" BuildName="DefaultBuild" BuildOrder="1" BuildType="0" PackageFolder="..\Build\Installers\Machine Studio\Release" PackageFileName="Machine Studio Installer_v5.9.0" Languages="en" InstallationType="4" CabsLocation="1" PackageType="1" FilesInsideExe="true" ExtractionFolder="[AppDataFolder][|Manufacturer]\[|ProductName] [|ProductVersion]\install" ExtUI="true" UseLargeSchema="true" ExeName="Machine Studio Installer_v5.9.0"/> </COMPONENT> <COMPONENT cid="caphyon.advinst.msicomp.DictionaryComponent"> <ROW Path="<AI_DICTS>ui.ail"/> @@ -1321,6 +1479,58 @@ <ROW Feature_="MachineStudio" Component_="Microsoft.Data.Services.Client.dll"/> <ROW Feature_="MachineStudio" Component_="System.Spatial.dll"/> <ROW Feature_="MachineStudio" Component_="Tango.ColorLib_v6.dll"/> + <ROW Feature_="MachineStudio" Component_="libgit2106a5f2.so"/> + <ROW Feature_="MachineStudio" Component_="libgit2106a5f2.so_1"/> + <ROW Feature_="MachineStudio" Component_="libgit2106a5f2.so_2"/> + <ROW Feature_="MachineStudio" Component_="libgit2106a5f2.so_3"/> + <ROW Feature_="MachineStudio" Component_="libgit2106a5f2.so_4"/> + <ROW Feature_="MachineStudio" Component_="libgit2106a5f2.so_5"/> + <ROW Feature_="MachineStudio" Component_="libgit2106a5f2.dylib"/> + <ROW Feature_="MachineStudio" Component_="libgit2106a5f2.so_6"/> + <ROW Feature_="MachineStudio" Component_="libgit2106a5f2.so_7"/> + <ROW Feature_="MachineStudio" Component_="libgit2106a5f2.so_8"/> + <ROW Feature_="MachineStudio" Component_="git2106a5f2.dll"/> + <ROW Feature_="MachineStudio" Component_="git2106a5f2.dll_1"/> + <ROW Feature_="MachineStudio" Component_="csc.exe"/> + <ROW Feature_="MachineStudio" Component_="csc.exe.config"/> + <ROW Feature_="MachineStudio" Component_="csi.exe"/> + <ROW Feature_="MachineStudio" Component_="Microsoft.Build.Tasks.CodeAnalysis.dll"/> + <ROW Feature_="MachineStudio" Component_="Microsoft.CodeAnalysis.CSharp.dll"/> + <ROW Feature_="MachineStudio" Component_="Microsoft.CodeAnalysis.CSharp.Scripting.dll"/> + <ROW Feature_="MachineStudio" Component_="Microsoft.CodeAnalysis.dll"/> + <ROW Feature_="MachineStudio" Component_="Microsoft.CodeAnalysis.Scripting.dll"/> + <ROW Feature_="MachineStudio" Component_="Microsoft.CodeAnalysis.VisualBasic.dll"/> + <ROW Feature_="MachineStudio" Component_="Microsoft.DiaSymReader.Native.amd64.dll"/> + <ROW Feature_="MachineStudio" Component_="Microsoft.DiaSymReader.Native.x86.dll"/> + <ROW Feature_="MachineStudio" Component_="Microsoft.Win32.Primitives.dll_1"/> + <ROW Feature_="MachineStudio" Component_="System.AppContext.dll_1"/> + <ROW Feature_="MachineStudio" Component_="System.Collections.Immutable.dll"/> + <ROW Feature_="MachineStudio" Component_="System.Console.dll_1"/> + <ROW Feature_="MachineStudio" Component_="System.Diagnostics.FileVersionInfo.dll_1"/> + <ROW Feature_="MachineStudio" Component_="System.Diagnostics.Process.dll_1"/> + <ROW Feature_="MachineStudio" Component_="System.Diagnostics.StackTrace.dll_1"/> + <ROW Feature_="MachineStudio" Component_="System.IO.Compression.dll_1"/> + <ROW Feature_="MachineStudio" Component_="System.IO.FileSystem.dll_1"/> + <ROW Feature_="MachineStudio" Component_="System.IO.FileSystem.DriveInfo.dll_1"/> + <ROW Feature_="MachineStudio" Component_="System.IO.FileSystem.Primitives.dll_1"/> + <ROW Feature_="MachineStudio" Component_="System.IO.Pipes.dll_1"/> + <ROW Feature_="MachineStudio" Component_="System.Reflection.Metadata.dll"/> + <ROW Feature_="MachineStudio" Component_="System.Security.AccessControl.dll"/> + <ROW Feature_="MachineStudio" Component_="System.Security.Claims.dll_1"/> + <ROW Feature_="MachineStudio" Component_="System.Security.Cryptography.Algorithms.dll_1"/> + <ROW Feature_="MachineStudio" Component_="System.Security.Cryptography.Encoding.dll_1"/> + <ROW Feature_="MachineStudio" Component_="System.Security.Cryptography.Primitives.dll_1"/> + <ROW Feature_="MachineStudio" Component_="System.Security.Cryptography.X509Certificates.dll_1"/> + <ROW Feature_="MachineStudio" Component_="System.Security.Principal.Windows.dll"/> + <ROW Feature_="MachineStudio" Component_="System.Text.Encoding.CodePages.dll"/> + <ROW Feature_="MachineStudio" Component_="System.Threading.Thread.dll_1"/> + <ROW Feature_="MachineStudio" Component_="System.ValueTuple.dll_1"/> + <ROW Feature_="MachineStudio" Component_="System.Xml.ReaderWriter.dll_1"/> + <ROW Feature_="MachineStudio" Component_="System.Xml.XmlDocument.dll_1"/> + <ROW Feature_="MachineStudio" Component_="System.Xml.XPath.dll_1"/> + <ROW Feature_="MachineStudio" Component_="System.Xml.XPath.XDocument.dll_1"/> + <ROW Feature_="MachineStudio" Component_="vbc.exe"/> + <ROW Feature_="MachineStudio" Component_="VBCSCompiler.exe"/> </COMPONENT> <COMPONENT cid="caphyon.advinst.msicomp.MsiInstExSeqComponent"> <ROW Action="AI_DOWNGRADE" Condition="AI_NEWERPRODUCTFOUND AND (UILevel <> 5)" Sequence="210"/> diff --git a/Software/Visual_Studio/Advanced Installer Projects/TwineRSM Installer.aip b/Software/Visual_Studio/Advanced Installer Projects/TwineRSM Installer.aip index 85f4a0944..ca88f458d 100644 --- a/Software/Visual_Studio/Advanced Installer Projects/TwineRSM Installer.aip +++ b/Software/Visual_Studio/Advanced Installer Projects/TwineRSM Installer.aip @@ -25,10 +25,10 @@ <ROW Property="ExtractFilesFirst" Value="1"/> <ROW Property="LogoIcon" Value="externalui.ico" MultiBuildValue="DefaultBuild:rsm.ico" Type="1" MsiKey="LogoIcon"/> <ROW Property="Manufacturer" Value="Twine Solutions LTD"/> - <ROW Property="ProductCode" Value="1033:{DC0B8571-DFD2-4A85-8AD4-8BD2D8D7DC39} " Type="16"/> + <ROW Property="ProductCode" Value="1033:{E15F6F0B-BE57-45F3-94BA-F150CBACA71B} " Type="16"/> <ROW Property="ProductLanguage" Value="1033"/> <ROW Property="ProductName" Value="Twine RSM"/> - <ROW Property="ProductVersion" Value="1.4.7.0" Type="32"/> + <ROW Property="ProductVersion" Value="2.0.0.0" Type="32"/> <ROW Property="RUNAPPLICATION" Value="1" Type="4"/> <ROW Property="SecureCustomProperties" Value="OLDPRODUCTS;AI_NEWERPRODUCTFOUND;AI_SETUPEXEPATH;SETUPEXEDIR"/> <ROW Property="UpgradeCode" Value="{22D27628-0032-4538-8C96-8A699B84A3EC}"/> @@ -1138,7 +1138,7 @@ <ROW Action="AI_DetectSoftware" Sequence="101"/> </COMPONENT> <COMPONENT cid="caphyon.advinst.msicomp.BuildComponent"> - <ROW BuildKey="DefaultBuild" BuildName="DefaultBuild" BuildOrder="1" BuildType="0" PackageFolder="..\Build\Installers\TwineRSM\Release" PackageFileName="Twine RSM v1.4.7" Languages="en" InstallationType="4" CabsLocation="1" PackageType="1" FilesInsideExe="true" ExtractionFolder="[AppDataFolder][|Manufacturer]\[|ProductName] [|ProductVersion]\install" ExtUI="true" UseLargeSchema="true" ExeName="Twine RSM v1.4.7"/> + <ROW BuildKey="DefaultBuild" BuildName="DefaultBuild" BuildOrder="1" BuildType="0" PackageFolder="..\Build\Installers\TwineRSM\Release" PackageFileName="Twine RSM v2.0.0" Languages="en" InstallationType="4" CabsLocation="1" PackageType="1" FilesInsideExe="true" ExtractionFolder="[AppDataFolder][|Manufacturer]\[|ProductName] [|ProductVersion]\install" ExtUI="true" UseLargeSchema="true" ExeName="Twine RSM v2.0.0"/> </COMPONENT> <COMPONENT cid="caphyon.advinst.msicomp.DictionaryComponent"> <ROW Path="<AI_DICTS>ui.ail"/> diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/RecommendedProcessTableInput.pb-c.c b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/RecommendedProcessTableInput.pb-c.c index 39c139cda..90164c8b7 100644 --- a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/RecommendedProcessTableInput.pb-c.c +++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/RecommendedProcessTableInput.pb-c.c @@ -52,7 +52,7 @@ void recommended_process_table_input__free_unpacked assert(message->base.descriptor == &recommended_process_table_input__descriptor); protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); } -static const ProtobufCFieldDescriptor recommended_process_table_input__field_descriptors[11] = +static const ProtobufCFieldDescriptor recommended_process_table_input__field_descriptors[12] = { { "ThreadL", @@ -186,6 +186,18 @@ static const ProtobufCFieldDescriptor recommended_process_table_input__field_des 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, + { + "VMax", + 12, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(RecommendedProcessTableInput, has_vmax), + offsetof(RecommendedProcessTableInput, vmax), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, }; static const unsigned recommended_process_table_input__field_indices_by_name[] = { 3, /* field[3] = ForwardData */ @@ -199,11 +211,12 @@ static const unsigned recommended_process_table_input__field_indices_by_name[] = 0, /* field[0] = ThreadL */ 7, /* field[7] = UseLightInks */ 10, /* field[10] = UseLubricantTransform */ + 11, /* field[11] = VMax */ }; static const ProtobufCIntRange recommended_process_table_input__number_ranges[1 + 1] = { { 1, 0 }, - { 0, 11 } + { 0, 12 } }; const ProtobufCMessageDescriptor recommended_process_table_input__descriptor = { @@ -213,7 +226,7 @@ const ProtobufCMessageDescriptor recommended_process_table_input__descriptor = "RecommendedProcessTableInput", "", sizeof(RecommendedProcessTableInput), - 11, + 12, recommended_process_table_input__field_descriptors, recommended_process_table_input__field_indices_by_name, 1, recommended_process_table_input__number_ranges, diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/RecommendedProcessTableInput.pb-c.h b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/RecommendedProcessTableInput.pb-c.h index e75ddd39e..df4a26da3 100644 --- a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/RecommendedProcessTableInput.pb-c.h +++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/RecommendedProcessTableInput.pb-c.h @@ -51,10 +51,12 @@ struct _RecommendedProcessTableInput ProtobufCBinaryData lubdata; protobuf_c_boolean has_uselubricanttransform; protobuf_c_boolean uselubricanttransform; + protobuf_c_boolean has_vmax; + double vmax; }; #define RECOMMENDED_PROCESS_TABLE_INPUT__INIT \ { PROTOBUF_C_MESSAGE_INIT (&recommended_process_table_input__descriptor) \ - , 0, 0, 0, 0, 0, 0, 0, {0,NULL}, 0,NULL, 0,NULL, 0,NULL, 0, 0, 0, {0,NULL}, 0, {0,NULL}, 0, 0 } + , 0, 0, 0, 0, 0, 0, 0, {0,NULL}, 0,NULL, 0,NULL, 0,NULL, 0, 0, 0, {0,NULL}, 0, {0,NULL}, 0, 0, 0, 0 } /* RecommendedProcessTableInput methods */ diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/RecommendedProcessTableInput.pb-c.c b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/RecommendedProcessTableInput.pb-c.c index 39c139cda..90164c8b7 100644 --- a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/RecommendedProcessTableInput.pb-c.c +++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/RecommendedProcessTableInput.pb-c.c @@ -52,7 +52,7 @@ void recommended_process_table_input__free_unpacked assert(message->base.descriptor == &recommended_process_table_input__descriptor); protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); } -static const ProtobufCFieldDescriptor recommended_process_table_input__field_descriptors[11] = +static const ProtobufCFieldDescriptor recommended_process_table_input__field_descriptors[12] = { { "ThreadL", @@ -186,6 +186,18 @@ static const ProtobufCFieldDescriptor recommended_process_table_input__field_des 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, + { + "VMax", + 12, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(RecommendedProcessTableInput, has_vmax), + offsetof(RecommendedProcessTableInput, vmax), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, }; static const unsigned recommended_process_table_input__field_indices_by_name[] = { 3, /* field[3] = ForwardData */ @@ -199,11 +211,12 @@ static const unsigned recommended_process_table_input__field_indices_by_name[] = 0, /* field[0] = ThreadL */ 7, /* field[7] = UseLightInks */ 10, /* field[10] = UseLubricantTransform */ + 11, /* field[11] = VMax */ }; static const ProtobufCIntRange recommended_process_table_input__number_ranges[1 + 1] = { { 1, 0 }, - { 0, 11 } + { 0, 12 } }; const ProtobufCMessageDescriptor recommended_process_table_input__descriptor = { @@ -213,7 +226,7 @@ const ProtobufCMessageDescriptor recommended_process_table_input__descriptor = "RecommendedProcessTableInput", "", sizeof(RecommendedProcessTableInput), - 11, + 12, recommended_process_table_input__field_descriptors, recommended_process_table_input__field_indices_by_name, 1, recommended_process_table_input__number_ranges, diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/RecommendedProcessTableInput.pb-c.h b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/RecommendedProcessTableInput.pb-c.h index e75ddd39e..df4a26da3 100644 --- a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/RecommendedProcessTableInput.pb-c.h +++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/RecommendedProcessTableInput.pb-c.h @@ -51,10 +51,12 @@ struct _RecommendedProcessTableInput ProtobufCBinaryData lubdata; protobuf_c_boolean has_uselubricanttransform; protobuf_c_boolean uselubricanttransform; + protobuf_c_boolean has_vmax; + double vmax; }; #define RECOMMENDED_PROCESS_TABLE_INPUT__INIT \ { PROTOBUF_C_MESSAGE_INIT (&recommended_process_table_input__descriptor) \ - , 0, 0, 0, 0, 0, 0, 0, {0,NULL}, 0,NULL, 0,NULL, 0,NULL, 0, 0, 0, {0,NULL}, 0, {0,NULL}, 0, 0 } + , 0, 0, 0, 0, 0, 0, 0, {0,NULL}, 0,NULL, 0,NULL, 0,NULL, 0, 0, 0, {0,NULL}, 0, {0,NULL}, 0, 0, 0, 0 } /* RecommendedProcessTableInput methods */ diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/RecommendedProcessTableInput.pb-c.c b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/RecommendedProcessTableInput.pb-c.c index 39c139cda..90164c8b7 100644 --- a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/RecommendedProcessTableInput.pb-c.c +++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/RecommendedProcessTableInput.pb-c.c @@ -52,7 +52,7 @@ void recommended_process_table_input__free_unpacked assert(message->base.descriptor == &recommended_process_table_input__descriptor); protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); } -static const ProtobufCFieldDescriptor recommended_process_table_input__field_descriptors[11] = +static const ProtobufCFieldDescriptor recommended_process_table_input__field_descriptors[12] = { { "ThreadL", @@ -186,6 +186,18 @@ static const ProtobufCFieldDescriptor recommended_process_table_input__field_des 0, /* flags */ 0,NULL,NULL /* reserved1,reserved2, etc */ }, + { + "VMax", + 12, + PROTOBUF_C_LABEL_OPTIONAL, + PROTOBUF_C_TYPE_DOUBLE, + offsetof(RecommendedProcessTableInput, has_vmax), + offsetof(RecommendedProcessTableInput, vmax), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, }; static const unsigned recommended_process_table_input__field_indices_by_name[] = { 3, /* field[3] = ForwardData */ @@ -199,11 +211,12 @@ static const unsigned recommended_process_table_input__field_indices_by_name[] = 0, /* field[0] = ThreadL */ 7, /* field[7] = UseLightInks */ 10, /* field[10] = UseLubricantTransform */ + 11, /* field[11] = VMax */ }; static const ProtobufCIntRange recommended_process_table_input__number_ranges[1 + 1] = { { 1, 0 }, - { 0, 11 } + { 0, 12 } }; const ProtobufCMessageDescriptor recommended_process_table_input__descriptor = { @@ -213,7 +226,7 @@ const ProtobufCMessageDescriptor recommended_process_table_input__descriptor = "RecommendedProcessTableInput", "", sizeof(RecommendedProcessTableInput), - 11, + 12, recommended_process_table_input__field_descriptors, recommended_process_table_input__field_indices_by_name, 1, recommended_process_table_input__number_ranges, diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/RecommendedProcessTableInput.pb-c.h b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/RecommendedProcessTableInput.pb-c.h index e75ddd39e..df4a26da3 100644 --- a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/RecommendedProcessTableInput.pb-c.h +++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/RecommendedProcessTableInput.pb-c.h @@ -51,10 +51,12 @@ struct _RecommendedProcessTableInput ProtobufCBinaryData lubdata; protobuf_c_boolean has_uselubricanttransform; protobuf_c_boolean uselubricanttransform; + protobuf_c_boolean has_vmax; + double vmax; }; #define RECOMMENDED_PROCESS_TABLE_INPUT__INIT \ { PROTOBUF_C_MESSAGE_INIT (&recommended_process_table_input__descriptor) \ - , 0, 0, 0, 0, 0, 0, 0, {0,NULL}, 0,NULL, 0,NULL, 0,NULL, 0, 0, 0, {0,NULL}, 0, {0,NULL}, 0, 0 } + , 0, 0, 0, 0, 0, 0, 0, {0,NULL}, 0,NULL, 0,NULL, 0,NULL, 0, 0, 0, {0,NULL}, 0, {0,NULL}, 0, 0, 0, 0 } /* RecommendedProcessTableInput methods */ diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/MachineView.xaml b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/MachineView.xaml index d33966e18..3de00198c 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/MachineView.xaml +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/MachineView.xaml @@ -27,7 +27,7 @@ <DockPanel> <StackPanel Orientation="Horizontal" DockPanel.Dock="Top" HorizontalAlignment="Left"> - <Image Source="{StaticResource FSE_Machine_Full}" Width="100" Stretch="Uniform" RenderOptions.BitmapScalingMode="Fant" /> + <commonControls:MachineIconFull Height="80" DataContext="{Binding EditingComposition.Machine}" /> <StackPanel Margin="5 0 0 0"> <TextBlock Text="{Binding EditingComposition.Machine.SerialNumber,FallbackValue='101010'}" FontSize="{StaticResource FSE_ModuleHeaderFontSize}"></TextBlock> <TextBlock Text="{Binding EditingComposition.Machine.Organization.Name,FallbackValue='Organization'}" FontSize="{StaticResource FSE_LargerFontSize}" Foreground="{StaticResource FSE_GrayBrush}"></TextBlock> diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/SelectionView.xaml b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/SelectionView.xaml index a2aa7240b..ca6d3ca4c 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/SelectionView.xaml +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/SelectionView.xaml @@ -4,6 +4,7 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:Tango.FSE.MachineConfiguration.Views" + xmlns:controls="clr-namespace:Tango.FSE.Common.Controls;assembly=Tango.FSE.Common" xmlns:material="http://materialdesigninxaml.net/winfx/xaml/themes" xmlns:global="clr-namespace:Tango.FSE.MachineConfiguration" xmlns:autoComplete="clr-namespace:Tango.AutoComplete.Editors;assembly=Tango.AutoComplete" @@ -28,7 +29,7 @@ <autoComplete:AutoCompleteTextBox.SelectedItemTemplate> <DataTemplate> <DockPanel VerticalAlignment="Center"> - <Image RenderOptions.BitmapScalingMode="Fant" Source="{StaticResource FSE_Machine_Small}" Width="24" /> + <controls:MachineIcon RenderOptions.BitmapScalingMode="Fant" Height="24" /> <StackPanel VerticalAlignment="Center" Margin="10 0 0 0" Orientation="Horizontal"> <TextBlock Text="{Binding SerialNumber}" FontSize="{StaticResource FSE_SmallFontSize}"></TextBlock> <TextBlock Margin="10 0 0 0" FontSize="{StaticResource FSE_SmallFontSize}" Foreground="{StaticResource FSE_GrayBrush}" Text="{Binding Name}"></TextBlock> @@ -39,7 +40,7 @@ <autoComplete:AutoCompleteTextBox.ItemTemplate> <DataTemplate> <DockPanel VerticalAlignment="Center"> - <Image RenderOptions.BitmapScalingMode="Fant" Source="{StaticResource FSE_Machine_Small}" Width="32" /> + <controls:MachineIcon Height="32" /> <StackPanel Margin="5 0 0 0"> <TextBlock Text="{Binding SerialNumber}"></TextBlock> <TextBlock Margin="0 5 0 0" FontSize="{StaticResource FSE_SmallerFontSize}" Foreground="{StaticResource FSE_GrayBrush}" Text="{Binding Name}"></TextBlock> diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Controls/RemoteDesktopControl.xaml b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Controls/RemoteDesktopControl.xaml index 4e6959e5b..da3cb101c 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Controls/RemoteDesktopControl.xaml +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Controls/RemoteDesktopControl.xaml @@ -32,7 +32,19 @@ <Border.Background> <ImageBrush ImageSource="{StaticResource FSE_PPC_Back}" /> </Border.Background> - <Border Width="{Binding RelativeSource={RelativeSource Self},Path=ActualHeight,Converter={StaticResource MathOperatorConverter},ConverterParameter='/1.6',FallbackValue=500,TargetNullValue=500}"> + <Border> + <Border.Style> + <Style TargetType="Border"> + <Setter Property="Width" Value="{Binding RelativeSource={RelativeSource Self},Path=ActualHeight,Converter={StaticResource MathOperatorConverter},ConverterParameter='/1.6',FallbackValue=500,TargetNullValue=500}"></Setter> + <Setter Property="Height" Value="Auto"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding MachineProvider.MachineOperator.MachineType}" Value="Eureka"> + <Setter Property="Width" Value="Auto"></Setter> + <Setter Property="Height" Value="{Binding RelativeSource={RelativeSource Self},Path=ActualWidth,Converter={StaticResource MathOperatorConverter},ConverterParameter='/1.7',FallbackValue=500,TargetNullValue=500}"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </Border.Style> <Grid> <Image x:Name="img" FocusVisualStyle="{x:Null}" Focusable="True" Source="{Binding Source}" RenderOptions.BitmapScalingMode="Fant" Stretch="Fill" Visibility="{Binding RemoteDesktopProvider.InSession,Converter={StaticResource BooleanToVisibilityConverter}}"></Image> <Rectangle x:Name="rectSnapshot" Fill="White" IsHitTestVisible="False" Opacity="0"></Rectangle> diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Views/RemoteDesktopView.xaml b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Views/RemoteDesktopView.xaml index 833e3bd44..1560b759d 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Views/RemoteDesktopView.xaml +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Views/RemoteDesktopView.xaml @@ -16,18 +16,42 @@ <Grid> <DockPanel IsEnabled="{Binding IsFree}"> <Grid DockPanel.Dock="Right" IsEnabled="{Binding MachineProvider.IsPPCAvailable}"> + <Grid.Style> + <Style TargetType="Grid"> + <Setter Property="VerticalAlignment" Value="Stretch"></Setter> + <Setter Property="Width" Value="Auto"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding MachineProvider.MachineOperator.MachineType}" Value="Eureka"> + <Setter Property="VerticalAlignment" Value="Top"></Setter> + <Setter Property="Width" Value="490"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </Grid.Style> <Border> - <localControls:RemoteDesktopControl - x:Name="remoteDesktopControl" - win:WindowsManagerHelper.MinWidth="400" - win:WindowsManagerHelper.MinHeight="640" - win:WindowsManagerHelper.StartWidth="400" - win:WindowsManagerHelper.StartHeight="640" + <localControls:RemoteDesktopControl x:Name="remoteDesktopControl" win:WindowsManagerHelper.LockAspectRatio="True" win:WindowsManagerHelper.WindowTitle="{Binding MachineProvider.Machine.SerialNumber}" win:WindowsManagerHelper.DisableMaximize="True" win:WindowsManagerHelper.PreservePlaceHolder="True" - win:WindowsManagerHelper.DisableResolutionServiceInjection="True"/> + win:WindowsManagerHelper.DisableResolutionServiceInjection="True"> + <localControls:RemoteDesktopControl.Style> + <Style TargetType="localControls:RemoteDesktopControl"> + <Setter Property="win:WindowsManagerHelper.MinWidth" Value="400"/> + <Setter Property="win:WindowsManagerHelper.MinWidth" Value="640"/> + <Setter Property="win:WindowsManagerHelper.StartWidth" Value="400"/> + <Setter Property="win:WindowsManagerHelper.StartHeight" Value="640"/> + <Style.Triggers> + <DataTrigger Binding="{Binding MachineProvider.MachineOperator.MachineType}" Value="Eureka"> + <Setter Property="win:WindowsManagerHelper.MinWidth" Value="640"/> + <Setter Property="win:WindowsManagerHelper.MinHeight" Value="440"/> + <Setter Property="win:WindowsManagerHelper.StartWidth" Value="640"/> + <Setter Property="win:WindowsManagerHelper.StartHeight" Value="440"/> + </DataTrigger> + </Style.Triggers> + </Style> + </localControls:RemoteDesktopControl.Style> + </localControls:RemoteDesktopControl> </Border> </Grid> diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures.Documentation/Help/proc-doc.chm b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures.Documentation/Help/proc-doc.chm Binary files differindex eeeb72237..b6bc6d4cd 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures.Documentation/Help/proc-doc.chm +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures.Documentation/Help/proc-doc.chm diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/StopModel.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/StopModel.cs index 24ddc80bf..3d616f957 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/StopModel.cs +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/StopModel.cs @@ -29,6 +29,7 @@ namespace Tango.FSE.Statistics.Models public JobRunExtendedInfo ExtendedInfo { get; set; } public bool IsAdvancedMode { get; set; } public VectorFineTuningRunModel FineTuningModel { get; set; } + public bool IsEureka { get; set; } public bool IsFineTuning { @@ -163,7 +164,18 @@ namespace Tango.FSE.Statistics.Models public String LogicalLength { - get { return JobRun.NumberOfUnits > 1 ? $"{JobRun.JobLogicalLength} x{JobRun.NumberOfUnits}" : JobRun.JobLogicalLength.ToString(); } + get { var length = IsEureka ? JobRun.JobLogicalLength * 4 : JobRun.JobLogicalLength; + return JobRun.NumberOfUnits > 1 ? $"{length} x{JobRun.NumberOfUnits}" : length.ToString(); } + } + + public double JobLength + { + get { return IsEureka ? JobRun.JobLength * 4 : JobRun.JobLength; } + } + + public double EndPosition + { + get { return IsEureka ? JobRun.EndPosition * 4 : JobRun.EndPosition; } } public String FineTuningMeasured diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/ViewModels/MainViewVM.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/ViewModels/MainViewVM.cs index d77b0b5a1..ae4444f06 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/ViewModels/MainViewVM.cs @@ -422,6 +422,7 @@ namespace Tango.FSE.Statistics.ViewModels stop.ThreadName = rmlName; stop.IsAdvancedMode = !BuildProvider.IsTwineRSM && CurrentUser.HasRole(Roles.FSEAdvancedTechnician); stop.FineTuningModel = fineTuningModel; + stop.IsEureka = MachineProvider.MachineOperator.MachineType == MachineTypes.Eureka; if (fineTuningModel != null) { @@ -735,11 +736,11 @@ namespace Tango.FSE.Statistics.ViewModels model.JobName = stop.JobRun.JobName; model.JobKind = ((JobDesignations)stop.JobRun.JobDesignation).ToDescription(); model.Thread = stop.ThreadName; - model.Length = ((int)stop.JobRun.JobLogicalLength).ToString(); + model.Length = stop.LogicalLength; model.NumberOfUnits = stop.JobRun.NumberOfUnits.ToString(); model.StartTime = stop.JobRun.StartDate.ToLocalTime().ToString(); model.Duration = stop.Duration.ToStringUnlimitedHours(); - model.EndPosition = stop.JobRun.EndPosition.ToString(); + model.EndPosition = stop.EndPosition.ToString(); model.Status = ((JobRunStatus)stop.JobRun.Status).ToString(); model.SegmentIndex = stop.SegmentIndex.ToString(); model.Offset = stop.StartMeters.ToString(); diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Views/MainView.xaml b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Views/MainView.xaml index 5f0ceaa5a..88b460ab1 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Views/MainView.xaml +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Views/MainView.xaml @@ -138,13 +138,13 @@ <TextBlock> <Run>Actual Length:</Run> <LineBreak/> - <Run Text="{Binding Items[0].Items[0].JobRun.JobLength}"></Run> + <Run Text="{Binding Items[0].Items[0].JobLength, Mode=OneWay}"></Run> </TextBlock> </TextBlock.ToolTip> </TextBlock> <TextBlock Text="{Binding Items[0].Items[0].JobRun.StartDate,Converter={StaticResource DateTimeUTCToShortDateTimeConverter}}" VerticalAlignment="Center" Width="120"></TextBlock> <TextBlock Text="{Binding Items[0].Items[0].Duration,Mode=OneWay,Converter={StaticResource TotalDyeTimeConverter}}" VerticalAlignment="Center" Width="100"></TextBlock> - <TextBlock Text="{Binding Items[0].Items[0].JobRun.EndPosition,StringFormat=N1}" VerticalAlignment="Center" Width="80"></TextBlock> + <TextBlock Text="{Binding Items[0].Items[0].EndPosition,StringFormat=N1}" VerticalAlignment="Center" Width="80"></TextBlock> </StackPanel> <Grid Visibility="{Binding IsAdvancedMode,Converter={StaticResource BooleanToVisibilityConverter}}" DataContext="{Binding Items[0].Items[0]}" Width="250" Margin="0 0 50 5" HorizontalAlignment="Right" VerticalAlignment="Bottom"> diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Connection/MachineConnectionTypes.cs b/Software/Visual_Studio/FSE/Tango.FSE.Common/Connection/MachineConnectionTypes.cs index ef233dda8..5b585533e 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.Common/Connection/MachineConnectionTypes.cs +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Connection/MachineConnectionTypes.cs @@ -17,6 +17,10 @@ namespace Tango.FSE.Common.Connection /// </summary> USB, /// <summary> + /// Local TCP connection. + /// </summary> + TCP, + /// <summary> /// Local area network. /// </summary> Wifi, diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/ConnectedMachineIcon.xaml b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/ConnectedMachineIcon.xaml index f6be93ec9..98d9dc13d 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/ConnectedMachineIcon.xaml +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/ConnectedMachineIcon.xaml @@ -9,24 +9,6 @@ mc:Ignorable="d" d:DesignHeight="50" d:DesignWidth="50" Height="50"> <Grid> - <ContentControl Content="{Binding}" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch"> - <ContentControl.Resources> - <DataTemplate DataType="{x:Type integration:ExternalBridgeSignalRClient}"> - <ContentControl Style="{StaticResource FSE_SignalRMachineIcon}" /> - </DataTemplate> - - <DataTemplate DataType="{x:Type integration:ExternalBridgeTcpClient}"> - <ContentControl Style="{StaticResource FSE_WifiMachineIcon}" /> - </DataTemplate> - - <DataTemplate DataType="{x:Type integration:ExternalBridgeUsbClient}"> - <ContentControl Style="{StaticResource FSE_UsbMachineIcon}" /> - </DataTemplate> - - <DataTemplate DataType="{x:Type emulations:EmulatorExternalBridge}"> - <ContentControl Style="{StaticResource FSE_EmulatorMachineIcon}"/> - </DataTemplate> - </ContentControl.Resources> - </ContentControl> + <local:MachineConnectionIcon ExternalBridgeClient="{Binding}" /> </Grid> </UserControl> diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineConnectionIcon.cs b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineConnectionIcon.cs new file mode 100644 index 000000000..d739ac6e5 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineConnectionIcon.cs @@ -0,0 +1,83 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using Tango.BL.Enumerations; +using Tango.Emulations.ExternalBridge; +using Tango.FSE.Common.Connection; +using Tango.Integration.ExternalBridge; + +namespace Tango.FSE.Common.Controls +{ + public class MachineConnectionIcon : Control + { + public MachineTypes MachineType + { + get { return (MachineTypes)GetValue(MachineTypeProperty); } + set { SetValue(MachineTypeProperty, value); } + } + public static readonly DependencyProperty MachineTypeProperty = + DependencyProperty.Register("MachineType", typeof(MachineTypes), typeof(MachineConnectionIcon), new PropertyMetadata(MachineTypes.TS1800)); + + public IExternalBridgeClient ExternalBridgeClient + { + get { return (IExternalBridgeClient)GetValue(ExternalBridgeClientProperty); } + set { SetValue(ExternalBridgeClientProperty, value); } + } + public static readonly DependencyProperty ExternalBridgeClientProperty = + DependencyProperty.Register("ExternalBridgeClient", typeof(IExternalBridgeClient), typeof(MachineConnectionIcon), new PropertyMetadata((d, e) => (d as MachineConnectionIcon).OnExternalBridgeClientChanged())); + + public MachineConnectionTypes ExternalBridgeClientType + { + get { return (MachineConnectionTypes)GetValue(ExternalBridgeClientTypeProperty); } + set { SetValue(ExternalBridgeClientTypeProperty, value); } + } + public static readonly DependencyProperty ExternalBridgeClientTypeProperty = + DependencyProperty.Register("ExternalBridgeClientType", typeof(MachineConnectionTypes), typeof(MachineConnectionIcon), new PropertyMetadata(MachineConnectionTypes.USB)); + + private void OnExternalBridgeClientChanged() + { + if (ExternalBridgeClient != null) + { + if (ExternalBridgeClient.GetType() == typeof(ExternalBridgeUsbClient)) + { + ExternalBridgeClientType = MachineConnectionTypes.USB; + } + else if (ExternalBridgeClient.GetType() == typeof(ExternalBridgeTcpFirmwareClient)) + { + ExternalBridgeClientType = MachineConnectionTypes.TCP; + MachineType = MachineTypes.Eureka; + } + else if (ExternalBridgeClient.GetType() == typeof(ExternalBridgeTcpClient)) + { + ExternalBridgeClientType = MachineConnectionTypes.Wifi; + MachineType = ExternalBridgeClient.MachineType; + } + else if (ExternalBridgeClient.GetType() == typeof(ExternalBridgeSignalRClient)) + { + ExternalBridgeClientType = MachineConnectionTypes.SignalR; + MachineType = ExternalBridgeClient.MachineType; + } + else if (ExternalBridgeClient.GetType() == typeof(EmulatorExternalBridge)) + { + ExternalBridgeClientType = MachineConnectionTypes.Emulator; + } + } + } + + static MachineConnectionIcon() + { + DefaultStyleKeyProperty.OverrideMetadata(typeof(MachineConnectionIcon), new FrameworkPropertyMetadata(typeof(MachineConnectionIcon))); + } + } +} diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineConnectionIcon.xaml b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineConnectionIcon.xaml new file mode 100644 index 000000000..c402b2d21 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineConnectionIcon.xaml @@ -0,0 +1,64 @@ +<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:material="http://materialdesigninxaml.net/winfx/xaml/themes" + xmlns:local="clr-namespace:Tango.FSE.Common.Controls"> + + <Style TargetType="{x:Type local:MachineConnectionIcon}"> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type local:MachineConnectionIcon}"> + <Border Background="{TemplateBinding Background}" + BorderBrush="{TemplateBinding BorderBrush}" + BorderThickness="{TemplateBinding BorderThickness}"> + <Grid DataContext="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local:MachineConnectionIcon}}"> + <Image Margin="0 5 10 0" RenderOptions.BitmapScalingMode="Fant"> + <Image.Style> + <Style TargetType="Image"> + <Setter Property="Source" Value="../Images/Connections/ts1800.png"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding MachineType}" Value="Eureka"> + <Setter Property="Source" Value="../Images/Connections/eureka.png"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </Image.Style> + </Image> + + <material:PackIcon RenderOptions.BitmapScalingMode="Fant" Width="20" Height="20" VerticalAlignment="Top" HorizontalAlignment="Right" Margin="0 0 -1 0"> + <material:PackIcon.Style> + <Style TargetType="material:PackIcon"> + <Setter Property="Kind" Value="Usb"></Setter> + <Setter Property="Foreground" Value="{StaticResource FSE_UsbBrush}"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding ExternalBridgeClientType}" Value="USB"> + <Setter Property="Kind" Value="Usb"></Setter> + <Setter Property="Foreground" Value="{StaticResource FSE_UsbBrush}"></Setter> + </DataTrigger> + <DataTrigger Binding="{Binding ExternalBridgeClientType}" Value="TCP"> + <Setter Property="Kind" Value="Lan"></Setter> + <Setter Property="Foreground" Value="{StaticResource FSE_LanBrush}"></Setter> + </DataTrigger> + <DataTrigger Binding="{Binding ExternalBridgeClientType}" Value="Wifi"> + <Setter Property="Kind" Value="Wifi"></Setter> + <Setter Property="Foreground" Value="{StaticResource FSE_WifiBrush}"></Setter> + </DataTrigger> + <DataTrigger Binding="{Binding ExternalBridgeClientType}" Value="SignalR"> + <Setter Property="Kind" Value="Cloud"></Setter> + <Setter Property="Foreground" Value="{StaticResource FSE_SignalRBrush}"></Setter> + </DataTrigger> + <DataTrigger Binding="{Binding ExternalBridgeClientType}" Value="Emulator"> + <Setter Property="Kind" Value="SdCard"></Setter> + <Setter Property="Foreground" Value="{StaticResource FSE_EmulatorBrush}"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </material:PackIcon.Style> + </material:PackIcon> + </Grid> + </Border> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + +</ResourceDictionary>
\ No newline at end of file diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineIcon.cs b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineIcon.cs new file mode 100644 index 000000000..349328676 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineIcon.cs @@ -0,0 +1,54 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace Tango.FSE.Common.Controls +{ + /// <summary> + /// Follow steps 1a or 1b and then 2 to use this custom control in a XAML file. + /// + /// Step 1a) Using this custom control in a XAML file that exists in the current project. + /// Add this XmlNamespace attribute to the root element of the markup file where it is + /// to be used: + /// + /// xmlns:MyNamespace="clr-namespace:Tango.FSE.Common.Controls" + /// + /// + /// Step 1b) Using this custom control in a XAML file that exists in a different project. + /// Add this XmlNamespace attribute to the root element of the markup file where it is + /// to be used: + /// + /// xmlns:MyNamespace="clr-namespace:Tango.FSE.Common.Controls;assembly=Tango.FSE.Common.Controls" + /// + /// You will also need to add a project reference from the project where the XAML file lives + /// to this project and Rebuild to avoid compilation errors: + /// + /// Right click on the target project in the Solution Explorer and + /// "Add Reference"->"Projects"->[Browse to and select this project] + /// + /// + /// Step 2) + /// Go ahead and use your control in the XAML file. + /// + /// <MyNamespace:MachineIcon/> + /// + /// </summary> + public class MachineIcon : Control + { + static MachineIcon() + { + DefaultStyleKeyProperty.OverrideMetadata(typeof(MachineIcon), new FrameworkPropertyMetadata(typeof(MachineIcon))); + } + } +} diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineIcon.xaml b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineIcon.xaml new file mode 100644 index 000000000..e4e9e1b48 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineIcon.xaml @@ -0,0 +1,30 @@ +<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:local="clr-namespace:Tango.FSE.Common.Controls"> + + <Style TargetType="{x:Type local:MachineIcon}"> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type local:MachineIcon}"> + <Border Background="{TemplateBinding Background}" + BorderBrush="{TemplateBinding BorderBrush}" + BorderThickness="{TemplateBinding BorderThickness}"> + <Image RenderOptions.BitmapScalingMode="Fant"> + <Image.Style> + <Style TargetType="Image"> + <Setter Property="Source" Value="{StaticResource FSE_Machine_Small}"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding MachineType}" Value="1"> + <Setter Property="Source" Value="{StaticResource FSE_Machine_Eureka_Small}"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </Image.Style> + </Image> + </Border> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + +</ResourceDictionary>
\ No newline at end of file diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineIconFull.cs b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineIconFull.cs new file mode 100644 index 000000000..c6f1da030 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineIconFull.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace Tango.FSE.Common.Controls +{ + public class MachineIconFull : Control + { + static MachineIconFull() + { + DefaultStyleKeyProperty.OverrideMetadata(typeof(MachineIconFull), new FrameworkPropertyMetadata(typeof(MachineIconFull))); + } + } +} diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineIconFull.xaml b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineIconFull.xaml new file mode 100644 index 000000000..10a4d655d --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineIconFull.xaml @@ -0,0 +1,30 @@ +<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:local="clr-namespace:Tango.FSE.Common.Controls"> + + <Style TargetType="{x:Type local:MachineIconFull}"> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type local:MachineIconFull}"> + <Border Background="{TemplateBinding Background}" + BorderBrush="{TemplateBinding BorderBrush}" + BorderThickness="{TemplateBinding BorderThickness}"> + <Image RenderOptions.BitmapScalingMode="Fant"> + <Image.Style> + <Style TargetType="Image"> + <Setter Property="Source" Value="{StaticResource FSE_Machine_Full}"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding MachineType}" Value="1"> + <Setter Property="Source" Value="{StaticResource FSE_Machine_Eureka_Full}"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </Image.Style> + </Image> + </Border> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + +</ResourceDictionary>
\ No newline at end of file diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineView.xaml b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineView.xaml index c82b5b460..25fc3f88e 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineView.xaml +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineView.xaml @@ -24,247 +24,426 @@ </UserControl.Resources> <Grid> - <Viewbox MaxWidth="1200" Grid.Row="1" > - <Grid VerticalAlignment="Top"> - - <Image IsHitTestVisible="False" Source="{StaticResource FSE_Machine_Full}" MaxWidth="800" RenderOptions.BitmapScalingMode="Fant"> - <!--<Image.Effect> + <Grid> + <Grid.Style> + <Style TargetType="Grid"> + <Setter Property="Visibility" Value="Visible"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding Type}" Value="Eureka"> + <Setter Property="Visibility" Value="Hidden"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </Grid.Style> + <Viewbox MaxWidth="1200" Grid.Row="1" > + <Grid VerticalAlignment="Top"> + <Grid> + <Image IsHitTestVisible="False" Source="{StaticResource FSE_Machine_Full}" MaxWidth="800" RenderOptions.BitmapScalingMode="Fant"> + <!--<Image.Effect> <DropShadowEffect ShadowDepth="0" BlurRadius="20" Opacity="1" RenderingBias="Performance" Color="DimGray"></DropShadowEffect> </Image.Effect>--> - </Image> + </Image> - <Canvas ClipToBounds="False" x:Name="canvas"> + <Canvas ClipToBounds="False" x:Name="canvas"> - <Grid x:Name="hardwareGrid" Width="180" ToolTip="{Binding Configuration.HardwareVersion.Name}" Height="27" Canvas.Left="342" Canvas.Top="80" Background="#6B303030" IsHitTestVisible="True"> - <Border BorderBrush="#6C6C6C" BorderThickness="1" IsHitTestVisible="False"> - <StackPanel Orientation="Horizontal"> - <Image Source="../Images/hardware.png" Width="10" VerticalAlignment="Center" Margin="5" RenderOptions.BitmapScalingMode="Fant"></Image> - <TextBlock Padding="2 0 2 0" VerticalAlignment="Center" TextAlignment="Center" Foreground="{StaticResource FSE_GrayBrush}" IsHitTestVisible="False" FontSize="12" TextWrapping="Wrap"> + <Grid x:Name="hardwareGrid" Width="180" ToolTip="{Binding Configuration.HardwareVersion.Name}" Height="27" Canvas.Left="342" Canvas.Top="80" Background="#6B303030" IsHitTestVisible="True"> + <Border BorderBrush="#6C6C6C" BorderThickness="1" IsHitTestVisible="False"> + <StackPanel Orientation="Horizontal"> + <Image Source="../Images/hardware.png" Width="10" VerticalAlignment="Center" Margin="5" RenderOptions.BitmapScalingMode="Fant"></Image> + <TextBlock Padding="2 0 2 0" VerticalAlignment="Center" TextAlignment="Center" Foreground="{StaticResource FSE_GrayBrush}" IsHitTestVisible="False" FontSize="12" TextWrapping="Wrap"> <Run Text="{Binding Configuration.HardwareVersion.Name}"></Run> <Run Text="{Binding Configuration.HardwareVersion.Version}"></Run> - </TextBlock> - </StackPanel> - </Border> - </Grid> + </TextBlock> + </StackPanel> + </Border> + </Grid> - <!--<TextBlock Canvas.Left="532" FontStyle="Italic" Foreground="Gray" Canvas.Top="-22">Hardware</TextBlock> + <!--<TextBlock Canvas.Left="532" FontStyle="Italic" Foreground="Gray" Canvas.Top="-22">Hardware</TextBlock> <Grid Width="97" Height="90" Canvas.Left="431" Canvas.Top="-13"> <Rectangle Stroke="Gray" VerticalAlignment="Top" StrokeThickness="1" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/> <Rectangle Stroke="Gray" HorizontalAlignment="Left" StrokeThickness="1" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/> </Grid>--> - <UniformGrid Width="310" Canvas.Top="295" Canvas.Left="420" TextElement.Foreground="#252525" Rows="1" Columns="10" TextElement.FontSize="9"> - <TextBlock HorizontalAlignment="Center">1</TextBlock> - <TextBlock HorizontalAlignment="Center">2</TextBlock> - <TextBlock HorizontalAlignment="Center">3</TextBlock> - <TextBlock HorizontalAlignment="Center">4</TextBlock> - <TextBlock HorizontalAlignment="Center">5</TextBlock> - <TextBlock HorizontalAlignment="Center">6</TextBlock> - <TextBlock HorizontalAlignment="Center">7</TextBlock> - <TextBlock HorizontalAlignment="Center">8</TextBlock> - <TextBlock HorizontalAlignment="Center">9</TextBlock> - <TextBlock HorizontalAlignment="Center">10</TextBlock> - </UniformGrid> + <UniformGrid Width="310" Canvas.Top="295" Canvas.Left="420" TextElement.Foreground="#252525" Rows="1" Columns="10" TextElement.FontSize="9"> + <TextBlock HorizontalAlignment="Center">1</TextBlock> + <TextBlock HorizontalAlignment="Center">2</TextBlock> + <TextBlock HorizontalAlignment="Center">3</TextBlock> + <TextBlock HorizontalAlignment="Center">4</TextBlock> + <TextBlock HorizontalAlignment="Center">5</TextBlock> + <TextBlock HorizontalAlignment="Center">6</TextBlock> + <TextBlock HorizontalAlignment="Center">7</TextBlock> + <TextBlock HorizontalAlignment="Center">8</TextBlock> + <TextBlock HorizontalAlignment="Center">9</TextBlock> + <TextBlock HorizontalAlignment="Center">10</TextBlock> + </UniformGrid> - <Grid x:Name="gridIds" Width="310" Height="195" Canvas.Top="314" Canvas.Left="420"> - <ListBox ItemsSource="{Binding Configuration.IdsPacks}" ScrollViewer.VerticalScrollBarVisibility="Disabled" ScrollViewer.HorizontalScrollBarVisibility="Disabled"> - <ListBox.ItemContainerStyle> - <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> - <Setter Property="Padding" Value="0"></Setter> - <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> - <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> - </Style> - </ListBox.ItemContainerStyle> - <ItemsControl.ItemsPanel> - <ItemsPanelTemplate> - <UniformGrid Columns="10"></UniformGrid> - </ItemsPanelTemplate> - </ItemsControl.ItemsPanel> - <ItemsControl.ItemTemplate> - <DataTemplate> - <Grid> - <Grid.RowDefinitions> - <RowDefinition Height="1*"/> - <RowDefinition Height="30"/> - </Grid.RowDefinitions> - <UniformGrid Columns="1" Rows="2"> - <Grid Margin="2"> - <Image IsHitTestVisible="False" Source="../Images/dispenser.png" RenderOptions.BitmapScalingMode="Fant"> - <Image.Style> - <Style TargetType="Image"> - <Style.Triggers> - <DataTrigger Binding="{Binding Dispenser}" Value="{x:Null}"> - <Setter Property="Opacity" Value="0.2"></Setter> - </DataTrigger> - </Style.Triggers> - </Style> - </Image.Style> - </Image> - <Rectangle IsHitTestVisible="False" Margin="14 25 13 34"> - <Rectangle.Fill> - <LinearGradientBrush StartPoint="0,0" EndPoint="0,0.8" Opacity="0.8"> - <GradientStop Offset="0" Color="Transparent" /> - <GradientStop Offset="1" Color="{Binding LiquidType.Color,Converter={StaticResource ColorToIntegerConverter}}"/> - </LinearGradientBrush> - </Rectangle.Fill> - </Rectangle> - </Grid> + <Grid x:Name="gridIds" Width="310" Height="195" Canvas.Top="314" Canvas.Left="420"> + <ListBox ItemsSource="{Binding Configuration.IdsPacks}" ScrollViewer.VerticalScrollBarVisibility="Disabled" ScrollViewer.HorizontalScrollBarVisibility="Disabled"> + <ListBox.ItemContainerStyle> + <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> + <Setter Property="Padding" Value="0"></Setter> + <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> + <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> + </Style> + </ListBox.ItemContainerStyle> + <ItemsControl.ItemsPanel> + <ItemsPanelTemplate> + <UniformGrid Columns="10"></UniformGrid> + </ItemsPanelTemplate> + </ItemsControl.ItemsPanel> + <ItemsControl.ItemTemplate> + <DataTemplate> + <Grid> + <Grid.RowDefinitions> + <RowDefinition Height="1*"/> + <RowDefinition Height="30"/> + </Grid.RowDefinitions> + <UniformGrid Columns="1" Rows="2"> + <Grid Margin="2"> + <Image IsHitTestVisible="False" Source="../Images/dispenser.png" RenderOptions.BitmapScalingMode="Fant"> + <Image.Style> + <Style TargetType="Image"> + <Style.Triggers> + <DataTrigger Binding="{Binding Dispenser}" Value="{x:Null}"> + <Setter Property="Opacity" Value="0.2"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </Image.Style> + </Image> + <Rectangle IsHitTestVisible="False" Margin="14 25 13 34"> + <Rectangle.Fill> + <LinearGradientBrush StartPoint="0,0" EndPoint="0,0.8" Opacity="0.8"> + <GradientStop Offset="0" Color="Transparent" /> + <GradientStop Offset="1" Color="{Binding LiquidType.Color,Converter={StaticResource ColorToIntegerConverter}}"/> + </LinearGradientBrush> + </Rectangle.Fill> + </Rectangle> + </Grid> + + <Grid Margin="2"> + <Image IsHitTestVisible="False" Stretch="Fill" Source="../Images/mid-tank.png" RenderOptions.BitmapScalingMode="Fant"> + <Image.Style> + <Style TargetType="Image"> + <Style.Triggers> + <DataTrigger Binding="{Binding MidTankType}" Value="{x:Null}"> + <Setter Property="Opacity" Value="0.2"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </Image.Style> + </Image> + <Rectangle IsHitTestVisible="False" Margin="4 25 4 1"> + <Rectangle.Fill> + <LinearGradientBrush StartPoint="0,0" EndPoint="0,0.8" Opacity="0.8"> + <GradientStop Offset="0" Color="Transparent" /> + <GradientStop Offset="1" Color="{Binding LiquidType.Color,Converter={StaticResource ColorToIntegerConverter}}"/> + </LinearGradientBrush> + </Rectangle.Fill> + </Rectangle> + </Grid> + </UniformGrid> - <Grid Margin="2"> - <Image IsHitTestVisible="False" Stretch="Fill" Source="../Images/mid-tank.png" RenderOptions.BitmapScalingMode="Fant"> - <Image.Style> - <Style TargetType="Image"> + <Grid Grid.Row="1" Margin="3" IsHitTestVisible="False"> + <Grid.Style> + <Style TargetType="Grid"> <Style.Triggers> - <DataTrigger Binding="{Binding MidTankType}" Value="{x:Null}"> + <DataTrigger Binding="{Binding CartridgeType}" Value="{x:Null}"> <Setter Property="Opacity" Value="0.2"></Setter> </DataTrigger> </Style.Triggers> </Style> - </Image.Style> - </Image> - <Rectangle IsHitTestVisible="False" Margin="4 25 4 1"> - <Rectangle.Fill> - <LinearGradientBrush StartPoint="0,0" EndPoint="0,0.8" Opacity="0.8"> - <GradientStop Offset="0" Color="Transparent" /> - <GradientStop Offset="1" Color="{Binding LiquidType.Color,Converter={StaticResource ColorToIntegerConverter}}"/> - </LinearGradientBrush> - </Rectangle.Fill> - </Rectangle> + </Grid.Style> + <Border BorderBrush="#252525" BorderThickness="1" CornerRadius="3"> + <Border.Background> + <LinearGradientBrush> + <GradientStop Color="#FF252525"/> + <GradientStop Color="#FF838383" Offset="1"/> + </LinearGradientBrush> + </Border.Background> + </Border> + <Border BorderBrush="#252525" BorderThickness="1" CornerRadius="3"> + <Border.Background> + <LinearGradientBrush Opacity="0.7"> + <GradientStop Offset="0" Color="Transparent" /> + <GradientStop Offset="1" Color="{Binding LiquidType.Color,Converter={StaticResource ColorToIntegerConverter}}"/> + </LinearGradientBrush> + </Border.Background> + </Border> + </Grid> </Grid> - </UniformGrid> + </DataTemplate> + </ItemsControl.ItemTemplate> + </ListBox> - <Grid Grid.Row="1" Margin="3" IsHitTestVisible="False"> - <Grid.Style> - <Style TargetType="Grid"> - <Style.Triggers> - <DataTrigger Binding="{Binding CartridgeType}" Value="{x:Null}"> - <Setter Property="Opacity" Value="0.2"></Setter> - </DataTrigger> - </Style.Triggers> - </Style> - </Grid.Style> - <Border BorderBrush="#252525" BorderThickness="1" CornerRadius="3"> - <Border.Background> - <LinearGradientBrush> - <GradientStop Color="#FF252525"/> - <GradientStop Color="#FF838383" Offset="1"/> - </LinearGradientBrush> - </Border.Background> - </Border> - <Border BorderBrush="#252525" BorderThickness="1" CornerRadius="3"> - <Border.Background> - <LinearGradientBrush Opacity="0.7"> - <GradientStop Offset="0" Color="Transparent" /> - <GradientStop Offset="1" Color="{Binding LiquidType.Color,Converter={StaticResource ColorToIntegerConverter}}"/> - </LinearGradientBrush> - </Border.Background> - </Border> - </Grid> - </Grid> - </DataTemplate> - </ItemsControl.ItemTemplate> - </ListBox> - - <Grid Margin="0 50 0 0"> - <Grid.Style> - <Style TargetType="Grid"> - <Setter Property="Visibility" Value="Hidden"></Setter> - <Style.Triggers> - <DataTrigger Binding="{Binding Configuration.IdsPacks.Count}" Value="0"> - <Setter Property="Visibility" Value="Visible"></Setter> - </DataTrigger> - </Style.Triggers> - </Style> - </Grid.Style> - <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="20" FontWeight="Bold" Foreground="{StaticResource FSE_GrayBrush}">NO IDS PACKS</TextBlock> - </Grid> + <Grid Margin="0 50 0 0"> + <Grid.Style> + <Style TargetType="Grid"> + <Setter Property="Visibility" Value="Hidden"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding Configuration.IdsPacks.Count}" Value="0"> + <Setter Property="Visibility" Value="Visible"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </Grid.Style> + <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="20" FontWeight="Bold" Foreground="{StaticResource FSE_GrayBrush}">NO IDS PACKS</TextBlock> + </Grid> - <Rectangle VerticalAlignment="Bottom" Stroke="DimGray" StrokeThickness="2"> - <!--<Rectangle.Effect> + <Rectangle VerticalAlignment="Bottom" Stroke="DimGray" StrokeThickness="2"> + <!--<Rectangle.Effect> <DropShadowEffect ShadowDepth="1" Opacity="1" Color="Black" /> </Rectangle.Effect>--> - </Rectangle> - </Grid> + </Rectangle> + </Grid> - <Grid x:Name="gridEmbedded" Width="70" Height="100" Canvas.Left="80" Canvas.Top="331" IsHitTestVisible="True" SnapsToDevicePixels="True"> - <Image Source="../Images/ti-tm4c129x.png" RenderOptions.BitmapScalingMode="Fant"></Image> - </Grid> + <Grid x:Name="gridEmbedded" Width="70" Height="100" Canvas.Left="80" Canvas.Top="331" IsHitTestVisible="True" SnapsToDevicePixels="True"> + <Image Source="../Images/ti-tm4c129x.png" RenderOptions.BitmapScalingMode="Fant"></Image> + </Grid> - <Grid Width="61" IsHitTestVisible="True" SnapsToDevicePixels="True" ClipToBounds="True" Height="42" Canvas.Left="85" Canvas.Top="385"> - <Grid.RowDefinitions> - <RowDefinition Height="1*" /> - </Grid.RowDefinitions> + <Grid Width="61" IsHitTestVisible="True" SnapsToDevicePixels="True" ClipToBounds="True" Height="42" Canvas.Left="85" Canvas.Top="385"> + <Grid.RowDefinitions> + <RowDefinition Height="1*" /> + </Grid.RowDefinitions> - <StackPanel Orientation="Horizontal"> - <Image Source="../Images/embedded.png" Width="10" VerticalAlignment="Center" Margin="1" RenderOptions.BitmapScalingMode="Fant"></Image> - <TextBlock VerticalAlignment="Center" Padding="1" Foreground="{StaticResource FSE_GrayBrush}" IsHitTestVisible="False" FontSize="5" TextAlignment="Center" TextWrapping="Wrap" Height="15" Margin="0,6,0,0" Width="47"><Run Text="{Binding Configuration.EmbeddedFirmwareVersion.Name}"/><Run Text=" "/><Run Text="{Binding Configuration.EmbeddedFirmwareVersion.Version}"/></TextBlock> - </StackPanel> - </Grid> + <StackPanel Orientation="Horizontal"> + <Image Source="../Images/embedded.png" Width="10" VerticalAlignment="Center" Margin="1" RenderOptions.BitmapScalingMode="Fant"></Image> + <TextBlock VerticalAlignment="Center" Padding="1" Foreground="{StaticResource FSE_GrayBrush}" IsHitTestVisible="False" FontSize="5" TextAlignment="Center" TextWrapping="Wrap" Height="15" Margin="0,6,0,0" Width="47"><Run Text="{Binding Configuration.EmbeddedFirmwareVersion.Name}"/><Run Text=" "/><Run Text="{Binding Configuration.EmbeddedFirmwareVersion.Version}"/></TextBlock> + </StackPanel> + </Grid> - <TextBlock Canvas.Top="163" Canvas.Left="288" FontStyle="Italic" Foreground="Gray">Touch Panel</TextBlock> - <Grid Width="53" Height="55" Canvas.Top="184" Canvas.Left="279"> - <Rectangle Stroke="Gray" VerticalAlignment="Bottom" StrokeThickness="2" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/> - <Rectangle Stroke="Gray" HorizontalAlignment="Right" StrokeThickness="1" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/> - </Grid> + <TextBlock Canvas.Top="163" Canvas.Left="288" FontStyle="Italic" Foreground="Gray">Touch Panel</TextBlock> + <Grid Width="53" Height="55" Canvas.Top="184" Canvas.Left="279"> + <Rectangle Stroke="Gray" VerticalAlignment="Bottom" StrokeThickness="2" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/> + <Rectangle Stroke="Gray" HorizontalAlignment="Right" StrokeThickness="1" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/> + </Grid> - <TextBlock Canvas.Top="441" Canvas.Left="156" FontStyle="Italic" Foreground="Gray">Embedded Firmware</TextBlock> - <Grid Width="82" Height="26" Canvas.Top="410" Canvas.Left="158"> - <Rectangle Stroke="Gray" VerticalAlignment="Top" StrokeThickness="1" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/> - <Rectangle Stroke="Gray" HorizontalAlignment="Right" StrokeThickness="1" StrokeDashArray="6" RenderTransformOrigin="0.5,0.5"/> - </Grid> + <TextBlock Canvas.Top="441" Canvas.Left="156" FontStyle="Italic" Foreground="Gray">Embedded Firmware</TextBlock> + <Grid Width="82" Height="26" Canvas.Top="410" Canvas.Left="158"> + <Rectangle Stroke="Gray" VerticalAlignment="Top" StrokeThickness="1" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/> + <Rectangle Stroke="Gray" HorizontalAlignment="Right" StrokeThickness="1" StrokeDashArray="6" RenderTransformOrigin="0.5,0.5"/> + </Grid> - <TextBlock Canvas.Top="310" Canvas.Left="340" FontStyle="Italic" Foreground="Gray">Dispensers</TextBlock> - <Grid Width="53" Height="20" Canvas.Top="331" Canvas.Left="377"> - <Rectangle Stroke="Gray" VerticalAlignment="Bottom" StrokeThickness="2" StrokeDashArray="3" RenderTransformOrigin="0.5,0.5"/> - <Rectangle Stroke="Gray" HorizontalAlignment="Left" StrokeThickness="2" StrokeDashArray="3" RenderTransformOrigin="0.5,0.5"/> - </Grid> + <TextBlock Canvas.Top="310" Canvas.Left="340" FontStyle="Italic" Foreground="Gray">Dispensers</TextBlock> + <Grid Width="53" Height="20" Canvas.Top="331" Canvas.Left="377"> + <Rectangle Stroke="Gray" VerticalAlignment="Bottom" StrokeThickness="2" StrokeDashArray="3" RenderTransformOrigin="0.5,0.5"/> + <Rectangle Stroke="Gray" HorizontalAlignment="Left" StrokeThickness="2" StrokeDashArray="3" RenderTransformOrigin="0.5,0.5"/> + </Grid> - <!--<TextBlock Canvas.Top="395" Canvas.Left="331" FontStyle="Italic" Foreground="Gray">Mid Tanks</TextBlock> + <!--<TextBlock Canvas.Top="395" Canvas.Left="331" FontStyle="Italic" Foreground="Gray">Mid Tanks</TextBlock> <Grid Width="62" Height="29" Canvas.Top="418" Canvas.Left="357"> <Rectangle Stroke="Gray" VerticalAlignment="Bottom" StrokeThickness="2" StrokeDashArray="4" RenderTransformOrigin="0.5,0.5"/> <Rectangle Stroke="Gray" HorizontalAlignment="Left" StrokeThickness="1" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/> </Grid>--> - <!--<TextBlock Canvas.Top="469" Canvas.Left="304" FontStyle="Italic" Foreground="Gray">Cartridges</TextBlock> + <!--<TextBlock Canvas.Top="469" Canvas.Left="304" FontStyle="Italic" Foreground="Gray">Cartridges</TextBlock> <Grid Width="87" Height="10" Canvas.Top="487" Canvas.Left="332"> <Rectangle Stroke="Gray" VerticalAlignment="Bottom" StrokeThickness="2" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/> <Rectangle Stroke="Gray" HorizontalAlignment="Left" StrokeThickness="2" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/> </Grid>--> - <Grid x:Name="gridTablet" Width="67" IsHitTestVisible="True" SnapsToDevicePixels="True" ClipToBounds="True" Height="90" Canvas.Left="188" Canvas.Top="198"> - <Grid.RowDefinitions> - <RowDefinition Height="1*" /> - <RowDefinition Height="1*" /> - <RowDefinition Height="1*" /> - </Grid.RowDefinitions> + <Grid x:Name="gridTablet" Width="67" IsHitTestVisible="True" SnapsToDevicePixels="True" ClipToBounds="True" Height="90" Canvas.Left="188" Canvas.Top="198"> + <Grid.RowDefinitions> + <RowDefinition Height="1*" /> + <RowDefinition Height="1*" /> + <RowDefinition Height="1*" /> + </Grid.RowDefinitions> - <StackPanel> - <Image Source="../Images/tablet.png" Width="10" Margin="2" RenderOptions.BitmapScalingMode="Fant"></Image> - <TextBlock Padding="2 0 2 0" Foreground="{StaticResource FSE_GrayBrush}" IsHitTestVisible="False" FontSize="6" TextAlignment="Center" TextWrapping="Wrap"> + <StackPanel> + <Image Source="../Images/tablet.png" Width="10" Margin="2" RenderOptions.BitmapScalingMode="Fant"></Image> + <TextBlock Padding="2 0 2 0" Foreground="{StaticResource FSE_GrayBrush}" IsHitTestVisible="False" FontSize="6" TextAlignment="Center" TextWrapping="Wrap"> <Run Text="{Binding Configuration.ApplicationDisplayPanelVersion.Name}"></Run> <Run Text="{Binding Configuration.ApplicationDisplayPanelVersion.Version}"></Run> - </TextBlock> - </StackPanel> + </TextBlock> + </StackPanel> - <StackPanel Grid.Row="3" > - <Image Source="../Images/application-firmware.png" Width="10" Margin="2" RenderOptions.BitmapScalingMode="Fant"></Image> - <TextBlock Padding="2 0 2 0" IsHitTestVisible="False" Foreground="{StaticResource FSE_GrayBrush}" FontSize="6" TextAlignment="Center" TextWrapping="Wrap"> + <StackPanel Grid.Row="3" > + <Image Source="../Images/application-firmware.png" Width="10" Margin="2" RenderOptions.BitmapScalingMode="Fant"></Image> + <TextBlock Padding="2 0 2 0" IsHitTestVisible="False" Foreground="{StaticResource FSE_GrayBrush}" FontSize="6" TextAlignment="Center" TextWrapping="Wrap"> <Run Text="{Binding Configuration.ApplicationFirmwareVersion.Name}"></Run> <Run Text="{Binding Configuration.ApplicationFirmwareVersion.Version}"></Run> - </TextBlock> - </StackPanel> + </TextBlock> + </StackPanel> - <StackPanel Grid.Row="1" > - <Image Source="../Images/android.png" Width="10" Margin="2" RenderOptions.BitmapScalingMode="Fant"></Image> - <TextBlock Padding="2 0 2 0" IsHitTestVisible="False" Foreground="{StaticResource FSE_GrayBrush}" FontSize="6" TextAlignment="Center" TextWrapping="Wrap"> + <StackPanel Grid.Row="1" > + <Image Source="../Images/android.png" Width="10" Margin="2" RenderOptions.BitmapScalingMode="Fant"></Image> + <TextBlock Padding="2 0 2 0" IsHitTestVisible="False" Foreground="{StaticResource FSE_GrayBrush}" FontSize="6" TextAlignment="Center" TextWrapping="Wrap"> <Run Text="{Binding Configuration.ApplicationOsVersion.Name}"></Run> <Run Text="{Binding Configuration.ApplicationOsVersion.Version}"></Run> + </TextBlock> + </StackPanel> + </Grid> + </Canvas> + + </Grid> + + </Grid> + </Viewbox> + </Grid> + + <Grid> + <Grid.Style> + <Style TargetType="Grid"> + <Setter Property="Visibility" Value="Hidden"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding Type}" Value="Eureka"> + <Setter Property="Visibility" Value="Visible"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </Grid.Style> + <Viewbox MaxWidth="1200" Grid.Row="1" Margin="25 0 0 0"> + <Grid IsHitTestVisible="False" VerticalAlignment="Top"> + + <Image IsHitTestVisible="False" Source="{StaticResource FSE_Machine_Eureka_Full}" MaxWidth="1000" Margin="-150 -50 0 0" RenderOptions.BitmapScalingMode="Fant"/> + + <StackPanel Margin="160 150 0 0" Width="410" HorizontalAlignment="Left"> + <UniformGrid TextElement.Foreground="#252525" Rows="1" Columns="10" TextElement.FontSize="20"> + <TextBlock HorizontalAlignment="Center">1</TextBlock> + <TextBlock HorizontalAlignment="Center">2</TextBlock> + <TextBlock HorizontalAlignment="Center">3</TextBlock> + <TextBlock HorizontalAlignment="Center">4</TextBlock> + <TextBlock HorizontalAlignment="Center">5</TextBlock> + <TextBlock HorizontalAlignment="Center">6</TextBlock> + <TextBlock HorizontalAlignment="Center">7</TextBlock> + <TextBlock HorizontalAlignment="Center">8</TextBlock> + <TextBlock HorizontalAlignment="Center">9</TextBlock> + <TextBlock HorizontalAlignment="Center">10</TextBlock> + </UniformGrid> + + <Grid Height="218"> + <ListBox ItemsSource="{Binding Configuration.IdsPacks}" ScrollViewer.VerticalScrollBarVisibility="Disabled" ScrollViewer.HorizontalScrollBarVisibility="Disabled" Background="Transparent"> + <ListBox.ItemContainerStyle> + <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> + <Setter Property="Padding" Value="0"></Setter> + <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> + <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> + </Style> + </ListBox.ItemContainerStyle> + <ItemsControl.ItemsPanel> + <ItemsPanelTemplate> + <UniformGrid Columns="10"></UniformGrid> + </ItemsPanelTemplate> + </ItemsControl.ItemsPanel> + <ItemsControl.ItemTemplate> + <DataTemplate> + <Grid> + <Grid.RowDefinitions> + <RowDefinition Height="1*"/> + <RowDefinition Height="30"/> + </Grid.RowDefinitions> + <UniformGrid Columns="1" Rows="2"> + <Grid Margin="2"> + <Image IsHitTestVisible="False" Source="../Images/dispenser.png" RenderOptions.BitmapScalingMode="Fant"> + <Image.Style> + <Style TargetType="Image"> + <Style.Triggers> + <DataTrigger Binding="{Binding Dispenser}" Value="{x:Null}"> + <Setter Property="Opacity" Value="0.2"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </Image.Style> + </Image> + <Rectangle IsHitTestVisible="False" Margin="14 25 13 34"> + <Rectangle.Fill> + <LinearGradientBrush StartPoint="0,0" EndPoint="0,0.8" Opacity="0.8"> + <GradientStop Offset="0" Color="Transparent" /> + <GradientStop Offset="1" Color="{Binding LiquidType.Color,Converter={StaticResource ColorToIntegerConverter}}"/> + </LinearGradientBrush> + </Rectangle.Fill> + </Rectangle> + </Grid> + + <Grid Margin="2"> + <Image IsHitTestVisible="False" Stretch="Fill" Source="../Images/mid-tank.png" RenderOptions.BitmapScalingMode="Fant"> + <Image.Style> + <Style TargetType="Image"> + <Style.Triggers> + <DataTrigger Binding="{Binding MidTankType}" Value="{x:Null}"> + <Setter Property="Opacity" Value="0.2"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </Image.Style> + </Image> + <Rectangle IsHitTestVisible="False" Margin="4 25 4 1"> + <Rectangle.Fill> + <LinearGradientBrush StartPoint="0,0" EndPoint="0,0.8" Opacity="0.8"> + <GradientStop Offset="0" Color="Transparent" /> + <GradientStop Offset="1" Color="{Binding LiquidType.Color,Converter={StaticResource ColorToIntegerConverter}}"/> + </LinearGradientBrush> + </Rectangle.Fill> + </Rectangle> + </Grid> + </UniformGrid> + + <Grid Grid.Row="1" Margin="3" IsHitTestVisible="False"> + <Grid.Style> + <Style TargetType="Grid"> + <Style.Triggers> + <DataTrigger Binding="{Binding CartridgeType}" Value="{x:Null}"> + <Setter Property="Opacity" Value="0.2"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </Grid.Style> + <Border BorderBrush="#252525" BorderThickness="1" CornerRadius="3"> + <Border.Background> + <LinearGradientBrush> + <GradientStop Color="#FF252525"/> + <GradientStop Color="#FF838383" Offset="1"/> + </LinearGradientBrush> + </Border.Background> + </Border> + <Border BorderBrush="#252525" BorderThickness="1" CornerRadius="3"> + <Border.Background> + <LinearGradientBrush Opacity="0.7"> + <GradientStop Offset="0" Color="Transparent" /> + <GradientStop Offset="1" Color="{Binding LiquidType.Color,Converter={StaticResource ColorToIntegerConverter}}"/> + </LinearGradientBrush> + </Border.Background> + </Border> + </Grid> + </Grid> + </DataTemplate> + </ItemsControl.ItemTemplate> + </ListBox> + + <Grid Margin="0 50 0 0"> + <Grid.Style> + <Style TargetType="Grid"> + <Setter Property="Visibility" Value="Hidden"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding Configuration.IdsPacks.Count}" Value="0"> + <Setter Property="Visibility" Value="Visible"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </Grid.Style> + <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="20" FontWeight="Bold" Foreground="{StaticResource FSE_GrayBrush}">NO IDS PACKS</TextBlock> + </Grid> + + <Rectangle VerticalAlignment="Bottom" Stroke="DimGray" StrokeThickness="2"> + <!--<Rectangle.Effect> + <DropShadowEffect ShadowDepth="1" Opacity="1" Color="Black" /> + </Rectangle.Effect>--> + </Rectangle> + </Grid> + </StackPanel> + + <Border Margin="150 30 0 0" BorderThickness="1" IsHitTestVisible="False" HorizontalAlignment="Left" VerticalAlignment="Top"> + <StackPanel Orientation="Horizontal"> + <Image Source="../Images/hardware.png" Width="30" VerticalAlignment="Center" Margin="5" RenderOptions.BitmapScalingMode="Fant"></Image> + <TextBlock Padding="2 0 2 0" VerticalAlignment="Center" TextAlignment="Center" Foreground="{StaticResource FSE_GrayBrush}" IsHitTestVisible="False" FontSize="20" TextWrapping="Wrap"> + <Run Text="{Binding Configuration.HardwareVersion.Name}"></Run> + <Run Text="{Binding Configuration.HardwareVersion.Version}"></Run> </TextBlock> </StackPanel> - </Grid> - </Canvas> - </Grid> - </Viewbox> + </Border> + </Grid> + </Viewbox> + </Grid> </Grid> </UserControl> diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/RunningJobRingProgress.xaml b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/RunningJobRingProgress.xaml index d0121afa5..b683ae0d2 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/RunningJobRingProgress.xaml +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/RunningJobRingProgress.xaml @@ -5,9 +5,14 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:behaviors="clr-namespace:Tango.FSE.Common.Behaviors" xmlns:local="clr-namespace:Tango.FSE.Common.Controls" + xmlns:localConverters="clr-namespace:Tango.FSE.Common.Converters" xmlns:material="http://materialdesigninxaml.net/winfx/xaml/themes" mc:Ignorable="d" d:DesignHeight="450" d:DesignWidth="450" x:Name="control"> + <UserControl.Resources> + <localConverters:ProgressLengthSpoolConverter x:Key="ProgressLengthSpoolConverter"/> + </UserControl.Resources> + <Grid Opacity="0.7"> <Viewbox> <Grid> @@ -50,10 +55,31 @@ <TextBlock Margin="5 0 0 0" VerticalAlignment="Center">Completed</TextBlock> </StackPanel> - <TextBlock FontWeight="Light" FontSize="25" Margin="0 10 0 0" HorizontalAlignment="Center"> + <TextBlock FontWeight="Light" FontSize="25" Margin="0 10 0 0" HorizontalAlignment="Center" Visibility="Collapsed"> <Run Text="{Binding ElementName=control,Path=RunningJobStatus.ProgressMinusSettingUp,StringFormat=0,FallbackValue=0}"></Run><Run Text="/" /><Run Text="{Binding RunningJobStatus.TotalProgressMinusSettingUp,StringFormat=0,FallbackValue=0}"/> <Run FontSize="16">m</Run> </TextBlock> + <StackPanel Orientation="Horizontal" Margin="0 10 0 0" HorizontalAlignment="Center" Visibility="Visible"> + <TextBlock FontWeight="Light" FontSize="25" VerticalAlignment="Center" > + <TextBlock.Text> + <MultiBinding Converter="{StaticResource ProgressLengthSpoolConverter}" StringFormat="0.#" TargetNullValue='-' FallbackValue='0' Mode="OneWay"> + <Binding Path="RunningJobStatus.TotalProgressMinusSettingUp" /> + <Binding Path="IsEureka"/> + <Binding Path="RunningJobStatus.ProgressMinusSettingUp" /> + </MultiBinding> + </TextBlock.Text> + </TextBlock> + <TextBlock FontWeight="Light" FontSize="25" VerticalAlignment="Center" Text="/"></TextBlock> + <TextBlock FontWeight="Light" FontSize="25" VerticalAlignment="Center" > + <TextBlock.Text> + <MultiBinding Converter="{StaticResource ProgressLengthSpoolConverter}" StringFormat="0" TargetNullValue='-' FallbackValue='0' Mode="OneWay"> + <Binding Path="RunningJobStatus.TotalProgressMinusSettingUp"/> + <Binding Path="IsEureka"/> + </MultiBinding> + </TextBlock.Text> + </TextBlock> + <TextBlock FontWeight="Light" FontSize="25" VerticalAlignment="Center" Text=" m"></TextBlock> + </StackPanel> </StackPanel> <StackPanel Height="90" Visibility="{Binding ElementName=control,Path=RunningJobStatus.IsSettingUp,Converter={StaticResource BooleanToVisibilityConverter}}"> diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/RunningJobRingProgress.xaml.cs b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/RunningJobRingProgress.xaml.cs index 5e0f28419..d8374573c 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/RunningJobRingProgress.xaml.cs +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/RunningJobRingProgress.xaml.cs @@ -40,8 +40,15 @@ namespace Tango.FSE.Common.Controls public static readonly DependencyProperty IsRunningProperty = DependencyProperty.Register("IsRunning", typeof(bool), typeof(RunningJobRingProgress), new PropertyMetadata(false)); + public bool IsEureka + { + get { return (bool)GetValue(IsEurekaProperty); } + set { SetValue(IsEurekaProperty, value); } + } + public static readonly DependencyProperty IsEurekaProperty = + DependencyProperty.Register("IsEureka", typeof(bool), typeof(RunningJobRingProgress), new PropertyMetadata(false)); - + public RunningJobRingProgress() { InitializeComponent(); diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/RunningJobViewer.xaml b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/RunningJobViewer.xaml index 2cd4fa7ad..faf5e072f 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/RunningJobViewer.xaml +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/RunningJobViewer.xaml @@ -6,9 +6,14 @@ xmlns:enumerations="clr-namespace:Tango.BL.Enumerations;assembly=Tango.BL" xmlns:material="http://materialdesigninxaml.net/winfx/xaml/themes" xmlns:local="clr-namespace:Tango.FSE.Common.Controls" + xmlns:localConverters="clr-namespace:Tango.FSE.Common.Converters" mc:Ignorable="d" d:DesignHeight="120" d:DesignWidth="800"> + <UserControl.Resources> + <localConverters:ProgressLengthSpoolConverter x:Key="ProgressLengthSpoolConverter"/> + </UserControl.Resources> + <DockPanel> <Canvas Height="50" Margin="0" DockPanel.Dock="Top"> <StackPanel> @@ -132,7 +137,15 @@ </Style.Triggers> </Style> </TextBlock.Style> - <Run Text="{Binding LengthWithFactor,Mode=OneWay,StringFormat=N0}"></Run><Run Text="m"></Run> + <Run > + <Run.Text> + <MultiBinding Converter="{StaticResource ProgressLengthSpoolConverter}" StringFormat="N0" TargetNullValue=' ' FallbackValue='0' Mode="OneWay"> + <Binding Path="LengthWithFactor"/> + <Binding RelativeSource="{RelativeSource AncestorType=UserControl}" Path="IsEureka"/> + </MultiBinding> + </Run.Text> + </Run> + <Run Text="m"></Run> </TextBlock> </Grid> </DataTemplate> diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/RunningJobViewer.xaml.cs b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/RunningJobViewer.xaml.cs index 4a970ffda..459728264 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/RunningJobViewer.xaml.cs +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/RunningJobViewer.xaml.cs @@ -55,6 +55,14 @@ namespace Tango.FSE.Common.Controls public static readonly DependencyProperty JobProperty = DependencyProperty.Register("Job", typeof(Job), typeof(RunningJobViewer), new PropertyMetadata(null)); + public bool IsEureka + { + get { return (bool)GetValue(IsEurekaProperty); } + set { SetValue(IsEurekaProperty, value); } + } + public static readonly DependencyProperty IsEurekaProperty = + DependencyProperty.Register("IsEureka", typeof(bool), typeof(RunningJobViewer), new PropertyMetadata(false)); + /// <summary> /// Gets or sets the running job status. /// </summary> diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Converters/ProgressLengthSpoolConverter.cs b/Software/Visual_Studio/FSE/Tango.FSE.Common/Converters/ProgressLengthSpoolConverter.cs new file mode 100644 index 000000000..10c20c171 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Converters/ProgressLengthSpoolConverter.cs @@ -0,0 +1,61 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Data; +using Tango.BL.Entities; + +namespace Tango.FSE.Common.Converters +{ + public class ProgressLengthSpoolConverter : IMultiValueConverter + { + public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) + { + try + { + if (values.Count() == 2) + { + double length = System.Convert.ToDouble(values[0]); + bool isEureka = System.Convert.ToBoolean(values[1]); + int jobSpools = 1; + if (isEureka) + jobSpools = 4; + var totalBy4Spools = (double)length * jobSpools;// spools 4; + return totalBy4Spools; + + } + if (values.Count() == 3) + { + double length = System.Convert.ToDouble(values[0]); + var segment = values[1] as Segment; + bool isEureka = System.Convert.ToBoolean(values[1]); + int jobSpools = 1; + if (isEureka) + jobSpools = 4; + double currentProgresslength = System.Convert.ToDouble(values[2]); + + var totalBySpools = (double)length * jobSpools; + var currentProgressBySpools = (double)currentProgresslength * jobSpools; + + int coeff = (int)currentProgressBySpools / (int)totalBySpools; + var progressCurrent = (coeff == 0 || coeff == 1) ? currentProgressBySpools : currentProgressBySpools % (coeff * totalBySpools);//show for progress + + return progressCurrent; + } + return "-"; + } + catch + { + return "-"; + } + } + + public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/FSESettings.cs b/Software/Visual_Studio/FSE/Tango.FSE.Common/FSESettings.cs index d6b8bd492..f518ef2d2 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.Common/FSESettings.cs +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/FSESettings.cs @@ -190,6 +190,11 @@ namespace Tango.FSE.Common public StatisticsStreamingConfiguration StatisticsStreamingConfig { get; set; } /// <summary> + /// Gets or sets the last type of the connected machine. + /// </summary> + public int LastConnectedMachineType { get; set; } + + /// <summary> /// Initializes a new instance of the <see cref="FSESettings"/> class. /// </summary> public FSESettings() diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/emulator.png b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/emulator.png Binary files differnew file mode 100644 index 000000000..cd3478ab2 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/emulator.png diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/eureka.png b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/eureka.png Binary files differnew file mode 100644 index 000000000..212d391d4 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/eureka.png diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/signalr.png b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/signalr.png Binary files differnew file mode 100644 index 000000000..20d329640 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/signalr.png diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/tcp.png b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/tcp.png Binary files differnew file mode 100644 index 000000000..a19a64fec --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/tcp.png diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/ts1800.png b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/ts1800.png Binary files differnew file mode 100644 index 000000000..116e1e9c7 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/ts1800.png diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/usb.png b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/usb.png Binary files differnew file mode 100644 index 000000000..d0b917b44 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/usb.png diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/wifi.png b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/wifi.png Binary files differnew file mode 100644 index 000000000..8c4bfebc4 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/wifi.png diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/eureka_full.png b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/eureka_full.png Binary files differnew file mode 100644 index 000000000..484bb2ac1 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/eureka_full.png diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/eureka_small.png b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/eureka_small.png Binary files differnew file mode 100644 index 000000000..c9da4ae29 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/eureka_small.png diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/machines.png b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/machines.png Binary files differnew file mode 100644 index 000000000..788d1e67b --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/machines.png diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Colors.xaml b/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Colors.xaml index 792826d31..e10b0678d 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Colors.xaml +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Colors.xaml @@ -22,6 +22,7 @@ <Color x:Key="FSE_MessageBoxTitleHeaderBackgroundColor">#404040</Color> <Color x:Key="FSE_UsbColor">#FF6F6F</Color> + <Color x:Key="FSE_LanColor">#EA6FFF</Color> <Color x:Key="FSE_WifiColor">#58C13B</Color> <Color x:Key="FSE_SignalRColor">#6DDAFF</Color> <Color x:Key="FSE_EmulatorColor">#F3FF6D</Color> @@ -66,6 +67,7 @@ <SolidColorBrush x:Key="FSE_MessageBoxTitleHeaderBackgroundBrush" Color="{StaticResource FSE_MessageBoxTitleHeaderBackgroundColor}"></SolidColorBrush> <SolidColorBrush x:Key="FSE_UsbBrush" Color="{StaticResource FSE_UsbColor}"></SolidColorBrush> + <SolidColorBrush x:Key="FSE_LanBrush" Color="{StaticResource FSE_LanColor}"></SolidColorBrush> <SolidColorBrush x:Key="FSE_WifiBrush" Color="{StaticResource FSE_WifiColor}"></SolidColorBrush> <SolidColorBrush x:Key="FSE_SignalRBrush" Color="{StaticResource FSE_SignalRColor}"></SolidColorBrush> <SolidColorBrush x:Key="FSE_EmulatorBrush" Color="{StaticResource FSE_EmulatorColor}"></SolidColorBrush> diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Controls.xaml b/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Controls.xaml index e2b01843e..0204be2ea 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Controls.xaml +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Controls.xaml @@ -15,6 +15,9 @@ <ResourceDictionary Source="pack://application:,,,/Tango.FSE.Common;component/Controls/FSEGroupBox.xaml" /> <ResourceDictionary Source="pack://application:,,,/Tango.FSE.Common;component/Controls/FSERoundedCornersComboBox.xaml" /> <ResourceDictionary Source="pack://application:,,,/Tango.FSE.Common;component/Controls/SelectionComboBox.xaml" /> + <ResourceDictionary Source="pack://application:,,,/Tango.FSE.Common;component/Controls/MachineConnectionIcon.xaml" /> + <ResourceDictionary Source="pack://application:,,,/Tango.FSE.Common;component/Controls/MachineIcon.xaml" /> + <ResourceDictionary Source="pack://application:,,,/Tango.FSE.Common;component/Controls/MachineIconFull.xaml" /> </ResourceDictionary.MergedDictionaries> </ResourceDictionary>
\ No newline at end of file diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Images.xaml b/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Images.xaml index 91bf1816f..e69b69e44 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Images.xaml +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Images.xaml @@ -4,7 +4,10 @@ <BitmapImage x:Key="FSE_Machine_Big" UriSource="../Images/machine_big.png" /> <BitmapImage x:Key="FSE_Machine_Small" UriSource="../Images/machine_small.png" /> + <BitmapImage x:Key="FSE_Machine_Eureka_Small" UriSource="../Images/eureka_small.png" /> <BitmapImage x:Key="FSE_Machine_Full" UriSource="../Images/machine_full.png" /> + <BitmapImage x:Key="FSE_Machine_Eureka_Full" UriSource="../Images/eureka_full.png" /> + <BitmapImage x:Key="FSE_Machines_Full" UriSource="../Images/machines.png" /> <BitmapImage x:Key="FSE_Twine_Logo" UriSource="../Images/twine_logo.png" /> <BitmapImage x:Key="FSE_Twine_Logo_Colored" UriSource="../Images/twine_logo_colored.png" /> <BitmapImage x:Key="FSE_PPC" UriSource="../Images/tablet.png" /> diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Styles.xaml b/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Styles.xaml index 4b5d8f8d2..c7e36cafa 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Styles.xaml +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Styles.xaml @@ -4,6 +4,7 @@ xmlns:actions="clr-namespace:Tango.FSE.Common.EventTriggerActions" xmlns:material="http://materialdesigninxaml.net/winfx/xaml/themes" xmlns:controls="clr-namespace:Tango.SharedUI.Controls;assembly=Tango.SharedUI" + xmlns:commonControls="clr-namespace:Tango.FSE.Common.Controls" xmlns:wpf="http://materialdesigninxaml.net/winfx/xaml/themes" xmlns:mahapps="http://metro.mahapps.com/winfx/xaml/controls" xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" @@ -625,7 +626,7 @@ <Setter.Value> <DataTemplate> <DockPanel VerticalAlignment="Center"> - <Image RenderOptions.BitmapScalingMode="Fant" Source="{StaticResource FSE_Machine_Small}" Width="24" /> + <commonControls:MachineIcon Height="24" /> <StackPanel VerticalAlignment="Center" Margin="10 0 0 0" Orientation="Horizontal"> <TextBlock Text="{Binding SerialNumber}" FontSize="{StaticResource FSE_SmallFontSize}"></TextBlock> <TextBlock Margin="10 0 0 0" FontSize="{StaticResource FSE_SmallFontSize}" Foreground="{StaticResource FSE_GrayBrush}" Text="{Binding Name}"></TextBlock> @@ -638,7 +639,7 @@ <Setter.Value> <DataTemplate> <DockPanel VerticalAlignment="Center"> - <Image RenderOptions.BitmapScalingMode="Fant" Source="{StaticResource FSE_Machine_Small}" Width="32" /> + <commonControls:MachineIcon Height="32" /> <StackPanel Margin="5 0 0 0"> <TextBlock Text="{Binding SerialNumber}"></TextBlock> <TextBlock Margin="0 5 0 0" FontSize="{StaticResource FSE_SmallerFontSize}" Foreground="{StaticResource FSE_GrayBrush}" Text="{Binding Name}"></TextBlock> diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Tango.FSE.Common.csproj b/Software/Visual_Studio/FSE/Tango.FSE.Common/Tango.FSE.Common.csproj index 95ee0b2f5..8ef3551d5 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.Common/Tango.FSE.Common.csproj +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Tango.FSE.Common.csproj @@ -190,6 +190,9 @@ <Compile Include="Controls\FSEPanel.cs" /> <Compile Include="Controls\FSETabControl.cs" /> <Compile Include="Controls\IconButton.cs" /> + <Compile Include="Controls\MachineConnectionIcon.cs" /> + <Compile Include="Controls\MachineIcon.cs" /> + <Compile Include="Controls\MachineIconFull.cs" /> <Compile Include="Controls\MachineView.xaml.cs"> <DependentUpon>MachineView.xaml</DependentUpon> </Compile> @@ -217,6 +220,7 @@ <Compile Include="Converters\LiquidTypeToShortNameConverter.cs" /> <Compile Include="Converters\NanolitersToLitersConverter.cs" /> <Compile Include="Converters\ObjectToJsonConverter.cs" /> + <Compile Include="Converters\ProgressLengthSpoolConverter.cs" /> <Compile Include="Converters\TimeSpanHumanizeConverter.cs" /> <Compile Include="Converters\TotalDyeTimeConverter.cs" /> <Compile Include="Converters\TotalMetersConverter.cs" /> @@ -380,6 +384,18 @@ <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> </Page> + <Page Include="Controls\MachineConnectionIcon.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Controls\MachineIcon.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Controls\MachineIconFull.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> <Page Include="Controls\MachineView.xaml"> <Generator>MSBuild:Compile</Generator> <SubType>Designer</SubType> @@ -670,7 +686,36 @@ <Resource Include="Images\shadow_right.png" /> <Resource Include="Images\shadow_top.png" /> </ItemGroup> - <ItemGroup /> + <ItemGroup> + <Resource Include="Images\Connections\emulator.png" /> + </ItemGroup> + <ItemGroup> + <Resource Include="Images\Connections\signalr.png" /> + </ItemGroup> + <ItemGroup> + <Resource Include="Images\Connections\tcp.png" /> + </ItemGroup> + <ItemGroup> + <Resource Include="Images\Connections\ts1800.png" /> + </ItemGroup> + <ItemGroup> + <Resource Include="Images\Connections\usb.png" /> + </ItemGroup> + <ItemGroup> + <Resource Include="Images\Connections\wifi.png" /> + </ItemGroup> + <ItemGroup> + <Resource Include="Images\Connections\eureka.png" /> + </ItemGroup> + <ItemGroup> + <Resource Include="Images\eureka_full.png" /> + </ItemGroup> + <ItemGroup> + <Resource Include="Images\eureka_small.png" /> + </ItemGroup> + <ItemGroup> + <Resource Include="Images\machines.png" /> + </ItemGroup> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <PropertyGroup> <PreBuildEvent> diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Themes/Generic.xaml b/Software/Visual_Studio/FSE/Tango.FSE.Common/Themes/Generic.xaml index 9b1bd93cf..994dfc6ba 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.Common/Themes/Generic.xaml +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Themes/Generic.xaml @@ -3,5 +3,6 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:Tango.FSE.Common"> + </ResourceDictionary> diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/BugReporting/DefaultBugReporter.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/BugReporting/DefaultBugReporter.cs index 2f4d75b37..e902bfded 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.UI/BugReporting/DefaultBugReporter.cs +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/BugReporting/DefaultBugReporter.cs @@ -162,6 +162,7 @@ namespace Tango.FSE.UI.BugReporting item.State = State.New; item.Type = WorkItemType.Bug; item.Environment = AuthenticationProvider.CurrentEnvironment.Description; + item.MachineType = (MachineType)Settings.LastConnectedMachineType; bool hasPPCLogs = false; bool hasFirmwareLogs = false; diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Connection/DefaultMachineProvider.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/Connection/DefaultMachineProvider.cs index cf4337508..aee4613d4 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Connection/DefaultMachineProvider.cs +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Connection/DefaultMachineProvider.cs @@ -203,11 +203,11 @@ namespace Tango.FSE.UI.Connection if (machine.GetType() == typeof(ExternalBridgeUsbClient)) { - vm = await NotificationProvider.ShowDialog<MachineConnectionUsbViewVM>(); + vm = await NotificationProvider.ShowDialog(new MachineConnectionUsbViewVM() { Machine = machine }); } else if (machine.GetType() == typeof(EmulatorExternalBridge)) { - vm = await NotificationProvider.ShowDialog<MachineConnectionEmulatorViewVM>(); + vm = await NotificationProvider.ShowDialog(new MachineConnectionEmulatorViewVM() { Machine = machine }); } else if (machine is ExternalBridgeTcpClient) { @@ -566,6 +566,8 @@ namespace Tango.FSE.UI.Connection protected virtual void OnMachineConnected(IExternalBridgeClient machineOperator) { + Settings.LastConnectedMachineType = (int)machineOperator.MachineType; + MachineConnected?.Invoke(this, new MachineConnectedEventArgs() { MachineOperator = machineOperator, diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Converters/MidTankLevelToElementHeightConverter.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/Converters/MidTankLevelToElementHeightConverter.cs index 88a90484d..f96725816 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Converters/MidTankLevelToElementHeightConverter.cs +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Converters/MidTankLevelToElementHeightConverter.cs @@ -16,9 +16,9 @@ namespace Tango.FSE.UI.Converters try { double parentActualHeight = (double)values[0]; - double midTankLevel = Math.Min((double)values[1], MachineOperator.MAX_MIDTANK_LITERS); - //var test = (parentActualHeight - (midTankLevel / MachineOperator.MAX_MIDTANK_LITERS) * parentActualHeight); - return (parentActualHeight - (midTankLevel / MachineOperator.MAX_MIDTANK_LITERS) * parentActualHeight); + double max = (double)values[2]; + double midTankLevel = Math.Min((double)values[1], max); + return (parentActualHeight - (midTankLevel / max) * parentActualHeight); } catch { diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionEmulatorView.xaml b/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionEmulatorView.xaml index 45be0817b..0e78e8b55 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionEmulatorView.xaml +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionEmulatorView.xaml @@ -5,13 +5,14 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:autoComplete="clr-namespace:Tango.AutoComplete.Editors;assembly=Tango.AutoComplete" xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" + xmlns:controls="clr-namespace:Tango.FSE.Common.Controls;assembly=Tango.FSE.Common" xmlns:local="clr-namespace:Tango.FSE.UI.Dialogs" mc:Ignorable="d" Height="300" Width="700" d:DataContext="{d:DesignInstance Type=local:MachineConnectionEmulatorViewVM, IsDesignTimeCreatable=False}" Background="{StaticResource FSE_PrimaryBackgroundLightBrush}" Foreground="{StaticResource FSE_PrimaryForegroundBrush}"> <Grid> <DockPanel Margin="10"> <StackPanel DockPanel.Dock="Top" Orientation="Horizontal" Margin="10"> - <ContentControl Height="60" Margin="-10 0 0 0" Style="{StaticResource FSE_EmulatorMachineIcon}"></ContentControl> + <controls:MachineConnectionIcon ExternalBridgeClient="{Binding Machine}" Height="60" Margin="-10 0 0 0"></controls:MachineConnectionIcon> <TextBlock Text="Machine Selection" FontWeight="SemiBold" VerticalAlignment="Center" Margin="10 0 0 0" FontSize="{StaticResource FSE_MessageBoxTitleFontSize}"></TextBlock> </StackPanel> diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionLostView.xaml b/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionLostView.xaml index 06617885a..26fca9093 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionLostView.xaml +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionLostView.xaml @@ -5,17 +5,18 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:material="http://materialdesigninxaml.net/winfx/xaml/themes" xmlns:local="clr-namespace:Tango.FSE.UI.Dialogs" + xmlns:controls="clr-namespace:Tango.FSE.Common.Controls;assembly=Tango.FSE.Common" mc:Ignorable="d" Height="300" Width="700" d:DataContext="{d:DesignInstance Type=local:MachineConnectionLostViewVM, IsDesignTimeCreatable=False}" Background="{StaticResource FSE_PrimaryBackgroundLightBrush}" Foreground="{StaticResource FSE_PrimaryForegroundBrush}"> <Grid> <DockPanel Margin="10"> <StackPanel DockPanel.Dock="Top" Orientation="Horizontal" Margin="10"> <Grid> - <ContentControl Height="60" Margin="-10 0 0 0" Style="{StaticResource FSE_WifiMachineIcon}"> - <ContentControl.Effect> + <controls:MachineConnectionIcon ExternalBridgeClient="{Binding Machine}" Height="60" Margin="-10 0 0 0"> + <controls:MachineConnectionIcon.Effect> <BlurEffect Radius="5" /> - </ContentControl.Effect> - </ContentControl> + </controls:MachineConnectionIcon.Effect> + </controls:MachineConnectionIcon> <Canvas> <material:PackIcon Kind="Exclamation" Foreground="{StaticResource FSE_ErrorBrush}" Width="45" Height="45" Margin="-5 13 0 0" /> </Canvas> diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionSignalRView.xaml b/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionSignalRView.xaml index b091516df..43f32d820 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionSignalRView.xaml +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionSignalRView.xaml @@ -6,13 +6,14 @@ xmlns:autoComplete="clr-namespace:Tango.AutoComplete.Editors;assembly=Tango.AutoComplete" xmlns:helpers="clr-namespace:Tango.SharedUI.Helpers;assembly=Tango.SharedUI" xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" + xmlns:controls="clr-namespace:Tango.FSE.Common.Controls;assembly=Tango.FSE.Common" xmlns:local="clr-namespace:Tango.FSE.UI.Dialogs" mc:Ignorable="d" Height="300" Width="700" d:DataContext="{d:DesignInstance Type=local:MachineConnectionSignalRViewVM, IsDesignTimeCreatable=False}" Background="{StaticResource FSE_PrimaryBackgroundLightBrush}" Foreground="{StaticResource FSE_PrimaryForegroundBrush}"> <Grid> <DockPanel Margin="10"> <StackPanel DockPanel.Dock="Top" Orientation="Horizontal" Margin="10"> - <ContentControl Height="60" Margin="-10 0 0 0" Style="{StaticResource FSE_SignalRMachineIcon}"></ContentControl> + <controls:MachineConnectionIcon ExternalBridgeClient="{Binding Machine}" Height="60" Margin="-10 0 0 0"></controls:MachineConnectionIcon> <TextBlock FontWeight="SemiBold" VerticalAlignment="Center" Margin="10 0 0 0" FontSize="{StaticResource FSE_MessageBoxTitleFontSize}"> <Run>Connect to</Run> <Run>'</Run><Run FontWeight="Normal" Foreground="{StaticResource FSE_SignalRBrush}" Text="{Binding Machine.SerialNumber}"></Run><Run>'</Run> diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionUsbView.xaml b/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionUsbView.xaml index 6ab2414f3..c285d2ed6 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionUsbView.xaml +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionUsbView.xaml @@ -5,13 +5,14 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:autoComplete="clr-namespace:Tango.AutoComplete.Editors;assembly=Tango.AutoComplete" xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" + xmlns:controls="clr-namespace:Tango.FSE.Common.Controls;assembly=Tango.FSE.Common" xmlns:local="clr-namespace:Tango.FSE.UI.Dialogs" mc:Ignorable="d" Height="300" Width="700" d:DataContext="{d:DesignInstance Type=local:MachineConnectionUsbViewVM, IsDesignTimeCreatable=False}" Background="{StaticResource FSE_PrimaryBackgroundLightBrush}" Foreground="{StaticResource FSE_PrimaryForegroundBrush}"> <Grid> <DockPanel Margin="10"> <StackPanel DockPanel.Dock="Top" Orientation="Horizontal" Margin="10"> - <ContentControl Height="60" Margin="-10 0 0 0" Style="{StaticResource FSE_UsbMachineIcon}"></ContentControl> + <controls:MachineConnectionIcon ExternalBridgeClient="{Binding Machine}" Height="60" Margin="-10 0 0 0"></controls:MachineConnectionIcon> <TextBlock Text="Machine Selection" FontWeight="SemiBold" VerticalAlignment="Center" Margin="10 0 0 0" FontSize="{StaticResource FSE_MessageBoxTitleFontSize}"></TextBlock> </StackPanel> diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionUsbViewVM.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionUsbViewVM.cs index e881da0ac..9056e7f4d 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionUsbViewVM.cs +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionUsbViewVM.cs @@ -10,6 +10,7 @@ using Tango.Core.DI; using Tango.FSE.BL; using Tango.FSE.Common; using Tango.FSE.Common.AutoComplete; +using Tango.Integration.ExternalBridge; namespace Tango.FSE.UI.Dialogs { @@ -22,6 +23,8 @@ namespace Tango.FSE.UI.Dialogs [TangoInject] protected FSEServicesContainer Services { get; set; } + public IExternalBridgeClient Machine { get; set; } + /// <summary> /// Gets or sets the machines completion source. /// </summary> diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionWifiView.xaml b/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionWifiView.xaml index 5d9a5f74f..c1fd6fa7c 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionWifiView.xaml +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionWifiView.xaml @@ -3,6 +3,7 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:controls="clr-namespace:Tango.FSE.Common.Controls;assembly=Tango.FSE.Common" xmlns:autoComplete="clr-namespace:Tango.AutoComplete.Editors;assembly=Tango.AutoComplete" xmlns:helpers="clr-namespace:Tango.SharedUI.Helpers;assembly=Tango.SharedUI" xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" @@ -12,7 +13,7 @@ <Grid> <DockPanel Margin="10"> <StackPanel DockPanel.Dock="Top" Orientation="Horizontal" Margin="10"> - <ContentControl Height="60" Margin="-10 0 0 0" Style="{StaticResource FSE_WifiMachineIcon}"></ContentControl> + <controls:MachineConnectionIcon ExternalBridgeClient="{Binding Machine}" Height="60" Margin="-10 0 0 0"></controls:MachineConnectionIcon> <TextBlock FontWeight="SemiBold" VerticalAlignment="Center" Margin="10 0 0 0" FontSize="{StaticResource FSE_MessageBoxTitleFontSize}"> <Run>Connect to</Run> <Run>'</Run><Run FontWeight="Normal" Foreground="{StaticResource FSE_WifiBrush}" Text="{Binding Machine.SerialNumber}"></Run><Run>'</Run> diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineWaitForConnectionView.xaml b/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineWaitForConnectionView.xaml index 946e2bf0d..1d9359b04 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineWaitForConnectionView.xaml +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineWaitForConnectionView.xaml @@ -4,6 +4,7 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:material="http://materialdesigninxaml.net/winfx/xaml/themes" + xmlns:controls="clr-namespace:Tango.FSE.Common.Controls;assembly=Tango.FSE.Common" xmlns:local="clr-namespace:Tango.FSE.UI.Dialogs" mc:Ignorable="d" Height="300" Width="700" d:DataContext="{d:DesignInstance Type=local:MachineWaitForConnectionViewVM, IsDesignTimeCreatable=False}" Background="{StaticResource FSE_PrimaryBackgroundLightBrush}" Foreground="{StaticResource FSE_PrimaryForegroundBrush}"> @@ -11,11 +12,11 @@ <DockPanel Margin="10"> <StackPanel DockPanel.Dock="Top" Orientation="Horizontal" Margin="10"> <Grid> - <ContentControl Height="60" Margin="-10 0 0 0" Style="{StaticResource FSE_WifiMachineIcon}"> - <ContentControl.Effect> + <controls:MachineConnectionIcon ExternalBridgeClient="{Binding Machine}" Height="60" Margin="-10 0 0 0"> + <controls:MachineConnectionIcon.Effect> <BlurEffect Radius="5" /> - </ContentControl.Effect> - </ContentControl> + </controls:MachineConnectionIcon.Effect> + </controls:MachineConnectionIcon> <Canvas> <ProgressBar Style="{StaticResource FSE_CircularProgressBar}" Foreground="{StaticResource FSE_GrayBrush}" Opacity="0.5" Width="24" Height="24" Margin="5 24 0 0" /> </Canvas> diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Panes/MachineConnectionPane.xaml b/Software/Visual_Studio/FSE/Tango.FSE.UI/Panes/MachineConnectionPane.xaml index b4b70cffd..1c6668e2a 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Panes/MachineConnectionPane.xaml +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Panes/MachineConnectionPane.xaml @@ -5,6 +5,7 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:material="http://materialdesigninxaml.net/winfx/xaml/themes" xmlns:local="clr-namespace:Tango.FSE.UI.Panes" + xmlns:controls="clr-namespace:Tango.FSE.Common.Controls;assembly=Tango.FSE.Common" mc:Ignorable="d" d:DesignHeight="600" d:DesignWidth="350" d:DataContext="{d:DesignInstance Type=local:MachineConnectionPaneVM, IsDesignTimeCreatable=False}"> <Grid> @@ -34,7 +35,7 @@ <ListBox.ItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> - <ContentControl Style="{StaticResource FSE_EmulatorMachineIcon}" Height="35"></ContentControl> + <controls:MachineConnectionIcon ExternalBridgeClient="{Binding}" Height="35"></controls:MachineConnectionIcon> <StackPanel Margin="10 0 0 0"> <TextBlock FontSize="{StaticResource FSE_SmallFontSize}" FontWeight="SemiBold">In-Memory Emulator</TextBlock> <TextBlock FontSize="{StaticResource FSE_SmallFontSize}"> @@ -55,7 +56,7 @@ <ListBox.ItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> - <ContentControl Style="{StaticResource FSE_UsbMachineIcon}" Height="35"></ContentControl> + <controls:MachineConnectionIcon ExternalBridgeClient="{Binding}" Height="35"></controls:MachineConnectionIcon> <StackPanel Margin="10 0 0 0"> <TextBlock FontSize="{StaticResource FSE_SmallFontSize}"> <Run FontWeight="SemiBold">Port:</Run> <Run Text="{Binding ComPort,Mode=OneWay}"></Run> @@ -90,7 +91,7 @@ <ListBox.ItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> - <ContentControl Style="{StaticResource FSE_WifiMachineIcon}" /> + <controls:MachineConnectionIcon ExternalBridgeClient="{Binding}" Height="35"></controls:MachineConnectionIcon> <StackPanel Margin="10 0 0 0"> <TextBlock FontSize="{StaticResource FSE_SmallFontSize}"> <Run FontWeight="SemiBold">S/N:</Run> <Run Text="{Binding SerialNumber,Mode=OneWay}"></Run> @@ -117,7 +118,7 @@ <ListBox.ItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> - <ContentControl Style="{StaticResource FSE_SignalRMachineIcon}" /> + <controls:MachineConnectionIcon ExternalBridgeClient="{Binding}" Height="35"></controls:MachineConnectionIcon> <StackPanel Margin="10 0 0 0"> <TextBlock FontSize="{StaticResource FSE_SmallFontSize}"> <Run FontWeight="Bold">S/N:</Run> <Run Text="{Binding SerialNumber,Mode=OneWay}"></Run> diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/Properties/AssemblyInfo.cs index ccb936fc4..f13bd3e02 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Properties/AssemblyInfo.cs @@ -8,4 +8,4 @@ using System.Windows; // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("Tango FSE")] -[assembly: AssemblyVersion("1.4.7.0")] +[assembly: AssemblyVersion("2.0.2.0")] diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/Machine/MachineTile.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/Machine/MachineTile.cs index 611c4d93e..45265c636 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/Machine/MachineTile.cs +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/Machine/MachineTile.cs @@ -5,11 +5,19 @@ using System.Text; using System.Threading.Tasks; using System.Windows; using Tango.FSE.Common; +using Tango.FSE.Common.Connection; namespace Tango.FSE.UI.Tiles.Machine { public class MachineTile : DashboardTile { + private Tango.BL.Entities.Machine _machine; + public Tango.BL.Entities.Machine Machine + { + get { return _machine; } + set { _machine = value; RaisePropertyChangedAuto(); } + } + public MachineTile() { Name = "Machine Configuration"; @@ -21,6 +29,18 @@ namespace Tango.FSE.UI.Tiles.Machine RowSpan = 6; } + public override void OnApplicationReady() + { + base.OnApplicationReady(); + + MachineProvider.MachineConnected += MachineProvider_MachineConnected; + } + + private void MachineProvider_MachineConnected(object sender, MachineConnectedEventArgs e) + { + Machine = MachineProvider.Machine; + } + public override FrameworkElement GetView() { return new MachineTileView(); diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/Machine/MachineTileView.xaml b/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/Machine/MachineTileView.xaml index 625f0df7d..9f1d7bd30 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/Machine/MachineTileView.xaml +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/Machine/MachineTileView.xaml @@ -8,6 +8,6 @@ mc:Ignorable="d" d:DesignHeight="450" d:DesignWidth="800" d:DataContext="{d:DesignInstance Type=local:MachineTile, IsDesignTimeCreatable=False}"> <Grid Margin="20"> - <controls:MachineView Opacity="0.6" DataContext="{Binding MachineProvider.Machine}" /> + <controls:MachineView Opacity="0.6" DataContext="{Binding Machine}" /> </Grid> </UserControl> diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/MidTankLevels/MidTankLevelsTile.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/MidTankLevels/MidTankLevelsTile.cs index d8165d8aa..730055872 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/MidTankLevels/MidTankLevelsTile.cs +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/MidTankLevels/MidTankLevelsTile.cs @@ -142,7 +142,7 @@ namespace Tango.FSE.UI.Tiles.MidTankLevels { MidTankLevels = MachineProvider.Machine.Configuration.NoneEmptyIdsPacks.Where(x => x.MidTankType.HasLevelMeasure).OrderBy(x => x.PackIndex).Select(x => new MidTankLevelModel() { - Max = MachineOperator.MAX_MIDTANK_LITERS, + Max = x.MidTankType.LiterCapacity, IDSPack = x, }).ToList(); } diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/MidTankLevels/MidTankLevelsTileView.xaml b/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/MidTankLevels/MidTankLevelsTileView.xaml index 7465f41c0..5e4f8ed9a 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/MidTankLevels/MidTankLevelsTileView.xaml +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/MidTankLevels/MidTankLevelsTileView.xaml @@ -58,6 +58,7 @@ <MultiBinding Converter="{StaticResource MidTankLevelToElementHeightConverter}"> <Binding ElementName="pathBorder" Path="ActualHeight" /> <Binding Path="Level" /> + <Binding Path="Max" /> </MultiBinding> </Setter.Value> </Setter> diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/RemoteJob/RemoteJobProgressRingTileView.xaml b/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/RemoteJob/RemoteJobProgressRingTileView.xaml index 62e7c4798..c021b0a15 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/RemoteJob/RemoteJobProgressRingTileView.xaml +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/RemoteJob/RemoteJobProgressRingTileView.xaml @@ -9,6 +9,6 @@ mc:Ignorable="d" d:DesignHeight="450" d:DesignWidth="800" d:DataContext="{d:DesignInstance Type=local:RemoteJobProgressRingTile, IsDesignTimeCreatable=False}"> <Grid Margin="30"> - <controls:RunningJobRingProgress RunningJobStatus="{Binding RunningJobStatus}" IsRunning="{Binding IsRunning}" /> + <controls:RunningJobRingProgress RunningJobStatus="{Binding RunningJobStatus}" IsRunning="{Binding IsRunning}" IsEureka ="{Binding IsEureka}" /> </Grid> </UserControl> diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/RemoteJob/RemoteJobTile.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/RemoteJob/RemoteJobTile.cs index 650818c22..453a0892e 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/RemoteJob/RemoteJobTile.cs +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/RemoteJob/RemoteJobTile.cs @@ -6,6 +6,7 @@ using System.Threading.Tasks; using System.Windows; using System.Windows.Media; using Tango.BL.Entities; +using Tango.BL.Enumerations; using Tango.FSE.Common; using Tango.Integration.Operation; using Tango.PPC.Shared.Jobs; @@ -42,6 +43,15 @@ namespace Tango.FSE.UI.Tiles.RemoteJob set { _isRunning = value; RaisePropertyChangedAuto(); } } + private bool _isEureka; + + public bool IsEureka + { + get { return _isEureka; } + set { _isEureka = value; RaisePropertyChangedAuto(); } + } + + public RemoteJobTile() { Name = "Remote Job"; @@ -113,6 +123,7 @@ namespace Tango.FSE.UI.Tiles.RemoteJob Handler.StatusChanged += Handler_StatusChanged; Job = e.JobHandler.Job; IsRunning = true; + IsEureka = MachineProvider.MachineOperator.MachineType == MachineTypes.Eureka; } private void Handler_StatusChanged(object sender, RunningJobStatus status) diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/RemoteJob/RemoteJobTileView.xaml b/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/RemoteJob/RemoteJobTileView.xaml index ee05314ce..1323c9298 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/RemoteJob/RemoteJobTileView.xaml +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/RemoteJob/RemoteJobTileView.xaml @@ -10,7 +10,7 @@ <Grid TextElement.Foreground="{StaticResource FSE_PrimaryAccentBrush}"> <Viewbox Width="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=ActualWidth}"> <Border Background="#292929" CornerRadius="10" VerticalAlignment="Bottom" Padding="20 0" Width="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=ActualWidth}"> - <controls:RunningJobViewer IsRunning="{Binding IsRunning}" Job="{Binding Job}" RunningJobStatus="{Binding RunningJobStatus}" IsActive="True" Margin="30 10" Height="90" /> + <controls:RunningJobViewer IsRunning="{Binding IsRunning}" Job="{Binding Job}" RunningJobStatus="{Binding RunningJobStatus}" IsEureka="{Binding IsEureka}" IsActive="True" Margin="30 10" Height="90" /> </Border> </Viewbox> </Grid> diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Views/LayoutView.xaml b/Software/Visual_Studio/FSE/Tango.FSE.UI/Views/LayoutView.xaml index b897851fc..f1ed89aff 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Views/LayoutView.xaml +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Views/LayoutView.xaml @@ -548,7 +548,7 @@ <Grid Panel.ZIndex="100"> <DockPanel> - <Image x:Name="imgHome" RenderTransformOrigin="0.5,0.5" Cursor="Hand" Source="{StaticResource FSE_Machine_Full}" Stretch="Uniform" RenderOptions.BitmapScalingMode="Fant" Margin="10"> + <Image x:Name="imgHome" RenderTransformOrigin="0.5,0.5" Cursor="Hand" Source="{StaticResource FSE_Machines_Full}" Stretch="Uniform" RenderOptions.BitmapScalingMode="Fant" Margin="10"> <i:Interaction.Triggers> <i:EventTrigger EventName="PreviewMouseUp"> <i:InvokeCommandAction Command="{Binding NavigateHomeCommand}" /> diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Views/LoginView.xaml b/Software/Visual_Studio/FSE/Tango.FSE.UI/Views/LoginView.xaml index 0ab9c5018..ca56e7b05 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Views/LoginView.xaml +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Views/LoginView.xaml @@ -50,7 +50,7 @@ <Run FontSize="10">v</Run><Run Text="{Binding ApplicationVersion,Mode=OneWay,FallbackValue='1.0.0'}"></Run> </TextBlock> </StackPanel> - <Image Source="{StaticResource FSE_Machine_Full}" VerticalAlignment="Bottom" RenderOptions.BitmapScalingMode="Fant" Margin="0 0 0 150" MaxWidth="300" MinWidth="100" /> + <Image Source="{StaticResource FSE_Machines_Full}" VerticalAlignment="Bottom" RenderOptions.BitmapScalingMode="Fant" Margin="0 0 0 150" MaxWidth="300" MinWidth="100" /> <Rectangle HorizontalAlignment="Right" StrokeThickness="1" Stroke="{StaticResource FSE_BorderBrush}" StrokeDashArray="5" /> </Grid> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/ViewModels/MainViewVM.cs index 47fe19a05..ab86d8356 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/ViewModels/MainViewVM.cs @@ -19,6 +19,7 @@ using System.IO; using Tango.BL.ActionLogs; using Tango.MachineStudio.Common.Authentication; using Tango.BL.DTO; +using Tango.BL.Enumerations; namespace Tango.MachineStudio.HardwareDesigner.ViewModels { @@ -445,6 +446,8 @@ namespace Tango.MachineStudio.HardwareDesigner.ViewModels await Task.Factory.StartNew(() => { CurrentVersion.LastUpdated = DateTime.UtcNow; + CurrentVersion.UserName = _authentication.CurrentUser.Email; + _db.SaveChanges(); var dtoAfter = HardwareVersionDTO.FromObservable(CurrentVersion); diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Views/MainView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Views/MainView.xaml index 9ee2ffee7..134d5d455 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Views/MainView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Views/MainView.xaml @@ -14,13 +14,14 @@ xmlns:vm="clr-namespace:Tango.MachineStudio.HardwareDesigner.ViewModels" xmlns:observables="clr-namespace:Tango.BL.Entities;assembly=Tango.BL" xmlns:global="clr-namespace:Tango.MachineStudio.HardwareDesigner" + xmlns:enumerations="clr-namespace:Tango.BL.Enumerations;assembly=Tango.BL" mc:Ignorable="d" d:DesignHeight="2000" d:DesignWidth="1280" d:DataContext="{d:DesignInstance Type=vm:MainViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.MainViewVM}"> <UserControl.Resources> <converters:DoubleToIntConverter x:Key="DoubleToIntConverter" /> <converters:NullObjectToBooleanConverter x:Key="NullObjectToBooleanConverter" /> - + <converters:EnumToItemsSourceConverter x:Key="EnumToItemsSourceConverter" /> <Style TargetType="ListBox" x:Key="typesList" BasedOn="{StaticResource {x:Type ListBox}}"> <Setter Property="FontSize" Value="14"></Setter> <Setter Property="ItemContainerStyle"> @@ -58,10 +59,11 @@ <TextBlock FontSize="30" FontStyle="Italic" VerticalAlignment="Center" Margin="50 10 10 0" Foreground="Silver" FontWeight="Bold">HARDWARE DESIGNER</TextBlock> <StackPanel Orientation="Horizontal" VerticalAlignment="Center" Margin="10 10 0 0"> <materialDesign:PackIcon Kind="Pencil" Width="32" Height="32" Foreground="Silver" /> - <controls:SearchComboBox IsEnabled="{Binding IsFree}" ItemsSource="{Binding HardwareVersions}" SelectedItem="{Binding SelectedVersion}" Width="300" SearchProperty="FullName" FontSize="16" FontWeight="Bold" Margin="5 0 0 0" materialDesign:HintAssist.Hint="Hardware Version"> + + <controls:SearchComboBox IsEnabled="{Binding IsFree}" ItemsSource="{Binding HardwareVersions}" SelectedItem="{Binding SelectedVersion}" Width="400" SearchProperty="FullName" FontSize="16" FontWeight="Bold" Margin="5 0 0 0" materialDesign:HintAssist.Hint="Hardware Version"> <ComboBox.ItemTemplate> <DataTemplate> - <TextBlock><Run Text="{Binding Name}"></Run> <Run></Run> <Run Foreground="{StaticResource MainWindow.Foreground}" FontSize="14">v</Run><Run Foreground="{StaticResource MainWindow.Foreground}" FontSize="14" Text="{Binding Version}"></Run></TextBlock> + <TextBlock><Run Text="{Binding Name}"></Run> <Run></Run> <Run Foreground="{StaticResource MainWindow.Foreground}" FontSize="14">v</Run><Run Foreground="{StaticResource MainWindow.Foreground}" FontSize="14" Text="{Binding Version}"></Run> <Run Foreground="{StaticResource AccentColorBrush}" FontSize="14" Text="{Binding ForMachineType}"></Run></TextBlock> </DataTemplate> </ComboBox.ItemTemplate> </controls:SearchComboBox> @@ -385,8 +387,12 @@ <TextBlock Margin="0 10 0 0" FontSize="10" Foreground="{StaticResource GrayBrush}">Name</TextBlock> <TextBox Text="{Binding CurrentVersion.Name,UpdateSourceTrigger=PropertyChanged}"></TextBox> + <TextBlock Margin="0 20 0 0" FontSize="10" Foreground="{StaticResource GrayBrush}">Machine Type</TextBlock> + <ComboBox ItemsSource="{Binding Source={x:Type enumerations:MachineTypes},Converter={StaticResource EnumToItemsSourceConverter}}" SelectedValue="{Binding CurrentVersion.ForMachineType,Mode=TwoWay}" SelectedValuePath="Value" DisplayMemberPath="DisplayName"/> + <TextBlock Margin="0 20 0 0" FontSize="10" Foreground="{StaticResource GrayBrush}">Version</TextBlock> <mahApps:NumericUpDown Minimum="0" BorderThickness="0 0 0 1" HorizontalContentAlignment="Left" Maximum="1000" HasDecimals="True" Value="{Binding CurrentVersion.Version}" Foreground="{StaticResource GrayBrush}"/> + </StackPanel> </materialDesign:Card> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models/MachineModel.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models/MachineModel.cs index 8a2f5dd9f..38430e197 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models/MachineModel.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models/MachineModel.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using Tango.BL.Entities; +using Tango.BL.Enumerations; using Tango.Core; namespace Tango.MachineStudio.MachineDesigner.Models @@ -12,6 +13,8 @@ namespace Tango.MachineStudio.MachineDesigner.Models { public String Guid { get; set; } + public MachineTypes MachineType { get; set; } + public String SerialNumber { get; set; } public String Name { get; set; } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MachineCreationDialogVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MachineCreationDialogVM.cs index 168ff62dd..9d203b76d 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MachineCreationDialogVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MachineCreationDialogVM.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using Tango.BL.Entities; +using Tango.BL.Enumerations; using Tango.SharedUI; namespace Tango.MachineStudio.MachineDesigner.ViewModels @@ -14,9 +15,24 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels public List<HardwareVersion> HardwareVersions { get; set; } - public HardwareVersion SelectedHardwareVersion { get; set; } + public List<HardwareVersion> HardwareVersionsFiltered + { + get { return HardwareVersions.Where(x => x.MachineType == (int)MachineType).ToList(); } + } + + private HardwareVersion _selectedHardwareVersion; + public HardwareVersion SelectedHardwareVersion + { + get { return _selectedHardwareVersion; } + set { _selectedHardwareVersion = value; RaisePropertyChangedAuto(); } + } - public MachinePrototype SelectedPrototype { get; set; } + private MachinePrototype _selectedProtoType; + public MachinePrototype SelectedPrototype + { + get { return _selectedProtoType; } + set { _selectedProtoType = value; MachineType = (MachineTypes)value.MachineType; } + } private bool _isNewMachine; public bool IsNewMachine @@ -32,6 +48,13 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels set { _serialNumber = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); } } + private MachineTypes _machineType; + public MachineTypes MachineType + { + get { return _machineType; } + set { _machineType = value; RaisePropertyChanged(nameof(HardwareVersionsFiltered)); SelectedHardwareVersion = HardwareVersionsFiltered.FirstOrDefault(); } + } + private String _name; public String Name { @@ -41,7 +64,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels protected override bool CanOK() { - return base.CanOK() && !String.IsNullOrWhiteSpace(SerialNumber) && !String.IsNullOrWhiteSpace(Name); + return base.CanOK() && !String.IsNullOrWhiteSpace(SerialNumber) && !String.IsNullOrWhiteSpace(Name) && SelectedHardwareVersion != null; } } } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs index c31ea0a53..cad54c848 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs @@ -540,6 +540,8 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels ActiveMachine.Configuration = new Configuration(); ActiveMachine.SerialNumber = machineCreationDialogVM.SerialNumber; ActiveMachine.Name = machineCreationDialogVM.Name; + ActiveMachine.Type = machineCreationDialogVM.MachineType; + ActiveMachine.MachineVersion = ActiveMachineAdapter.MachineVersions.First(x => x.MachineType == machineCreationDialogVM.MachineType); ActiveMachineAdapter.Context.Machines.Add(ActiveMachine); } else @@ -548,7 +550,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels { initHwConfig = false; ActiveMachine = machineCreationDialogVM.SelectedPrototype.CreateMachine(machineCreationDialogVM.SerialNumber, machineCreationDialogVM.Name); - ActiveMachine.MachineVersion = ActiveMachineAdapter.MachineVersions.FirstOrDefault(x => x.Guid == ActiveMachine.MachineVersionGuid); + ActiveMachine.MachineVersion = ActiveMachineAdapter.MachineVersions.First(x => x.MachineType == machineCreationDialogVM.MachineType); if (machineCreationDialogVM.SelectedHardwareVersion != null) { @@ -713,6 +715,14 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels errors.Add("Hardware version is required."); } + if (ActiveMachine.Configuration.HardwareVersion != null) + { + if (ActiveMachine.Configuration.HardwareVersion.ForMachineType != ActiveMachine.Type) + { + errors.Add($"Hardware version '{ActiveMachine.Configuration.HardwareVersion.Name}' is intended only for {ActiveMachine.Configuration.HardwareVersion.ForMachineType} machines."); + } + } + foreach (var pack in ActiveMachine.Configuration.IdsPacks) { if (pack.LiquidType != null || pack.CartridgeType != null || pack.Dispenser != null || pack.IdsPackFormula != null || pack.MidTankType != null) @@ -853,7 +863,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels vm.IsNewMachine = true; vm.Prototypes = prototypes.ToList(); vm.HardwareVersions = hardwareVersions.OrderByDescending(x => x.Version).ToList(); - vm.SelectedHardwareVersion = vm.HardwareVersions.FirstOrDefault(); + vm.SelectedHardwareVersion = vm.HardwareVersions.Where(x => x.ForMachineType == MachineTypes.TS1800).FirstOrDefault(); _notification.ShowModalDialog<MachineCreationDialogVM, Views.MachineCreationDialog>(vm, (x) => { using (ObservablesContext db = ObservablesContext.CreateDefault()) @@ -1013,6 +1023,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels { x.Guid, x.SerialNumber, + x.MachineType, x.Name, Organization = x.Organization.Name, MachineVersion = x.MachineVersion.Name, @@ -1030,6 +1041,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels MachineModel model = new MachineModel(); model.Guid = machine.Guid; model.SerialNumber = machine.SerialNumber; + model.MachineType = (MachineTypes)machine.MachineType; model.Name = machine.Name; model.Organization = machine.Organization; model.HardwareVersion = machine.HardwareVersionName + " v" + machine.HardwareVersionVersion; diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineCreationDialog.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineCreationDialog.xaml index 8b3851036..8a4a9161b 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineCreationDialog.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineCreationDialog.xaml @@ -8,11 +8,14 @@ xmlns:vm="clr-namespace:Tango.MachineStudio.MachineDesigner.ViewModels" xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI" xmlns:local="clr-namespace:Tango.MachineStudio.MachineDesigner.Views" + xmlns:enumerations="clr-namespace:Tango.BL.Enumerations;assembly=Tango.BL" mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="700" Height="460" Width="750" Background="{StaticResource Dialog.Background}" d:DataContext="{d:DesignInstance Type=vm:MachineCreationDialogVM, IsDesignTimeCreatable=False}" Foreground="{StaticResource Dialog.Foreground}"> <UserControl.Resources> <converters:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"></converters:BooleanToVisibilityConverter> + <converters:EnumToItemsSourceConverter x:Key="EnumToItemsSourceConverter" /> + <converters:IsNullToVisibilityInverseConverter x:Key="IsNullToVisibilityInverseConverter" /> </UserControl.Resources> <Grid Margin="10"> @@ -20,7 +23,7 @@ <Grid DockPanel.Dock="Top"> <StackPanel Orientation="Horizontal"> <Grid> - <Image Source="../Images/machine-full-fx.png" Width="120" RenderOptions.BitmapScalingMode="Fant"></Image> + <Image Source="{StaticResource Machines}" Width="120" RenderOptions.BitmapScalingMode="Fant"></Image> <materialDesign:PackIcon HorizontalAlignment="Right" VerticalAlignment="Bottom" Margin="0 0 -10 -10" Kind="PlusCircle" Foreground="#15C315" Width="42" Height="42" /> </Grid> <TextBlock Margin="30 0 0 0" VerticalAlignment="Bottom" FontSize="22"> @@ -52,11 +55,16 @@ <Grid> <StackPanel HorizontalAlignment="Left" VerticalAlignment="Top" Margin="20 20 0 0" Width="400"> <TextBlock TextWrapping="Wrap" Visibility="{Binding IsNewMachine,Converter={StaticResource BooleanToVisibilityConverter}}"> - <Run>Specify a machine prototype to create the new machine with default settings and configuration.</Run> + <Run>Specify a machine prototype and machine type to create the new machine with default settings and configuration.</Run> </TextBlock> - <ComboBox Visibility="{Binding IsNewMachine,Converter={StaticResource BooleanToVisibilityConverter}}" ItemsSource="{Binding Prototypes}" SelectedItem="{Binding SelectedPrototype}" DisplayMemberPath="Name" Margin="0 10 0 0" FontSize="16" materialDesign:HintAssist.Hint="NONE"></ComboBox> - + <DockPanel Visibility="{Binding IsNewMachine,Converter={StaticResource BooleanToVisibilityConverter}}" Margin="0 10 0 0"> + <ComboBox x:Name="comboProto" Width="200" ItemsSource="{Binding Prototypes}" SelectedItem="{Binding SelectedPrototype}" DisplayMemberPath="Name" FontSize="16" materialDesign:HintAssist.Hint="NONE"></ComboBox> + <ComboBox Visibility="{Binding ElementName=comboProto,Path=SelectedItem,Converter={StaticResource IsNullToVisibilityInverseConverter}}" Margin="30 0 0 0" ItemsSource="{Binding Source={x:Type enumerations:MachineTypes},Converter={StaticResource EnumToItemsSourceConverter}}" FontSize="16" SelectedValue="{Binding MachineType,Mode=TwoWay}" SelectedValuePath="Value" DisplayMemberPath="DisplayName"> + + </ComboBox> + </DockPanel> + <TextBlock Margin="0 20 0 0" FontSize="10">Serial Number</TextBlock> <TextBox Margin="0 2 0 0" Text="{Binding SerialNumber,UpdateSourceTrigger=PropertyChanged}"></TextBox> @@ -65,7 +73,7 @@ <StackPanel Margin="0 20 0 0" Visibility="{Binding IsNewMachine,Converter={StaticResource BooleanToVisibilityConverter}}"> <TextBlock FontSize="10">Hardware Version</TextBlock> - <ComboBox Margin="0 2 0 0" ItemsSource="{Binding HardwareVersions}" SelectedItem="{Binding SelectedHardwareVersion}" DisplayMemberPath="FullName"></ComboBox> + <ComboBox Margin="0 2 0 0" ItemsSource="{Binding HardwareVersionsFiltered}" SelectedItem="{Binding SelectedHardwareVersion}" DisplayMemberPath="FullName"></ComboBox> </StackPanel> </StackPanel> </Grid> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineSettingsView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineSettingsView.xaml index 4ba79d3f5..852e60d0f 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineSettingsView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineSettingsView.xaml @@ -54,7 +54,7 @@ <ComboBox ItemsSource="{Binding Source={x:Type enumerations:HeadTypes},Converter={StaticResource EnumToItemsSourceConverter}}" SelectedValue="{Binding ActiveMachine.MachineHeadType}" SelectedValuePath="Value" DisplayMemberPath="DisplayName" Style="{StaticResource TransparentComboBoxStyle}"></ComboBox> <TextBlock FontWeight="SemiBold">Machine Version</TextBlock> - <ComboBox Background="Transparent" ItemsSource="{Binding ActiveMachineAdapter.MachineVersions}" SelectedItem="{Binding ActiveMachine.MachineVersion}" DisplayMemberPath="Name" Style="{StaticResource TransparentComboBoxStyle}" ></ComboBox> + <ComboBox IsEnabled="False" Background="Transparent" ItemsSource="{Binding ActiveMachineAdapter.MachineVersions}" SelectedItem="{Binding ActiveMachine.MachineVersion}" DisplayMemberPath="Name" Style="{StaticResource TransparentComboBoxStyle}" ></ComboBox> <TextBlock FontWeight="SemiBold">Version Tag</TextBlock> <ComboBox Background="Transparent" ItemsSource="{Binding Tags}" SelectedItem="{Binding ActiveMachine.VersionTag}" Style="{StaticResource TransparentComboBoxStyle}" ></ComboBox> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachinesView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachinesView.xaml index 5fda6dbfa..3c73ecc2b 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachinesView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachinesView.xaml @@ -22,7 +22,7 @@ <DockPanel Margin="100" MaxWidth="1200"> <Grid DockPanel.Dock="Top"> <StackPanel Orientation="Horizontal"> - <Image Source="../Images/machine-full-fx.png" Width="350" RenderOptions.BitmapScalingMode="Fant" Margin="10" /> + <Image Source="{StaticResource Machines}" Width="350" RenderOptions.BitmapScalingMode="Fant" Margin="10" /> <StackPanel Orientation="Horizontal" VerticalAlignment="Bottom" Margin="0 0 0 10"> <materialDesign:PackIcon VerticalAlignment="Center" Kind="BarcodeScan" Width="32" Height="32" /> @@ -70,6 +70,7 @@ </Style> </DataGrid.CellStyle> <DataGrid.Columns> + <DataGridTextColumn Header="TYPE" Binding="{Binding MachineType}" Width="Auto" /> <DataGridTextColumn Header="SERIAL NUMBER" Binding="{Binding SerialNumber}" Width="Auto" /> <DataGridTextColumn Header="NAME" Binding="{Binding Name}" Width="Auto" /> <DataGridTextColumn Header="ORGANIZATION" Binding="{Binding Organization}" Width="Auto" /> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Models/RmlModel.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Models/RmlModel.cs index b1be35a38..dce3432e2 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Models/RmlModel.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Models/RmlModel.cs @@ -11,10 +11,16 @@ namespace Tango.MachineStudio.RML.Models { public class RmlModel : ExtendedObject { + public class LiquidTypeColorValue + { + public int Color { get; set; } + + public double LiquidTypeValue { get; set; } + } public String Guid { get; set; } public String Name { get; set; } - + public String DisplayName { get; set; } public String CCT { get; set; } @@ -27,8 +33,23 @@ namespace Tango.MachineStudio.RML.Models public String Btsr { get; set; } + public String DyeingSpeed { get; set; } + + public String Zone1InkUptake { get; set; } + + public String Zone2InkUptake { get; set; } + public DateTime LastUpdated { get; set; } public List<int> LiquidTypes { get; set; } + + public List<LiquidTypeColorValue> LiquidTypesR { get; set; } + + public RmlModel() + { + DyeingSpeed = "-"; + Zone1InkUptake = "-"; + Zone2InkUptake = "-"; + } } } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/ViewModels/MainViewVM.cs index fd276ea65..7eb6e9058 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/ViewModels/MainViewVM.cs @@ -28,6 +28,7 @@ using Tango.BL.Enumerations; using Google.Protobuf; using Tango.ColorConversion; using Tango.CSV; +using Tango.Core; namespace Tango.MachineStudio.RML.ViewModels { @@ -345,18 +346,21 @@ namespace Tango.MachineStudio.RML.ViewModels private async Task LoadRmls() { var filter = RMLFilter.ToStringOrEmpty().ToLower(); - + using (ObservablesContext db = ObservablesContext.CreateDefault()) { + var rmls = await db.Rmls.Where(x => x.Name.ToLower().Contains(filter) || x.DisplayName.ToLower().Contains(filter)) .Include(x => x.Cct.FileName) + .Include(x => x.LiquidTypesRmls) .Include(x => x.LiquidTypesRmls.Select(y => y.LiquidType)) .Include(x => x.BtsrApplicationType.Name) .Include(x => x.BtsrYarnType.Name) + .Include(x => x.ProcessParametersTablesGroups) .Select(x => new { - x.Guid, x.Name, + x.Guid, x.DisplayName, x.Cct.FileName, x.ColorConversionVersion, @@ -366,13 +370,44 @@ namespace Tango.MachineStudio.RML.ViewModels x.LastUpdated, BtsrApplicationType = x.BtsrApplicationType != null ? x.BtsrApplicationType.Name : String.Empty, BtsrYarnType = x.BtsrYarnType != null ? x.BtsrYarnType.Name : String.Empty, - LiquidTypes = x.LiquidTypesRmls.Select(y => y.LiquidType) + LiquidTypesRmls = x.LiquidTypesRmls, + LiquidTypes = x.LiquidTypesRmls.Select(y => y.LiquidType), + ProcessParametersTables = x.ProcessParametersTablesGroups }).ToListAsync(); + List<RmlModel> models = new List<RmlModel>(); + //var tables = ActiveRML.GetActiveProcessGroup().ProcessParametersTables; + foreach (var rml in rmls.OrderBy(x => x.Name).ToList()) { + ProcessParametersTable tableZone1 = null; + ProcessParametersTable tableZone2 = null; + if (rml.ProcessParametersTables != null) + { + var activeTablesGroup = rml.ProcessParametersTables.Where(x=>x.Active).FirstOrDefault(); + if ( activeTablesGroup != null) + { + try + { + var tables = await db.ProcessParametersTables.Where(x => x.ProcessParametersTablesGroupGuid == activeTablesGroup.Guid).OrderBy(x => x.TableIndex).ToListAsync(); + if (tables.Count > 0) + { + tableZone1 = tables[0]; + } + if (tables.Count > 1) + { + tableZone2 = tables[1]; + } + } + catch (Exception ex) + { + LogManager.Log($"Error loading ProcessParametersTables {ex.Message}"); + } + }; + } + RmlModel model = new RmlModel(); model.Guid = rml.Guid; model.Name = rml.Name; @@ -383,8 +418,21 @@ namespace Tango.MachineStudio.RML.ViewModels model.UseLightInks = rml.UseLightInks; model.HeadType = (HeadTypes)rml.HeadType; model.Btsr = (String.IsNullOrEmpty(rml.BtsrApplicationType) ? "N/A" : rml.BtsrApplicationType) + ", " + (String.IsNullOrEmpty(rml.BtsrYarnType) ? "N/A" : rml.BtsrYarnType); - model.LiquidTypes = rml.LiquidTypes.OrderBy(x => x.Code).Select(x => x.Color).ToList(); + + if( tableZone1 != null) + { + model.Zone1InkUptake = String.Format($"{tableZone1.MinInkUptake}-{tableZone1.MaxInkUptake}"); + model.DyeingSpeed = tableZone1.DyeingSpeed.ToString(); + } + if(tableZone2 != null) + { + model.DyeingSpeed += String.Format($"-{tableZone2.DyeingSpeed}"); + model.Zone2InkUptake = tableZone2 == null ? "-" : String.Format($"{tableZone2.MinInkUptake}-{tableZone2.MaxInkUptake}"); + } + model.LiquidTypes = rml.LiquidTypes.OrderBy(x => x.Code).Select(x => x.Color).ToList(); + model.LiquidTypesR = rml.LiquidTypesRmls.OrderBy(x => x.LiquidType.Code).ToList().Select((n) => new RmlModel.LiquidTypeColorValue(){ Color = n.LiquidType.Color, LiquidTypeValue = n.MaxNlPerCm }).ToList(); + models.Add(model); } @@ -482,6 +530,11 @@ namespace Tango.MachineStudio.RML.ViewModels } ActiveProcessParametersGroup = ActiveRML.ProcessParametersTablesGroups.ToList().FirstOrDefault(); + + var tables= ActiveRML.ProcessParametersTablesGroups.ToList(); + var zone1 = tables[0].ProcessParametersTables; + /* + * */ ActiveProcessParametersTableView = CollectionViewSource.GetDefaultView(ActiveProcessParametersGroup.ProcessParametersTables); ActiveProcessParametersTableView.SortDescriptions.Add(new SortDescription(nameof(ProcessParametersTable.TableIndex), ListSortDirection.Ascending)); @@ -1075,10 +1128,10 @@ namespace Tango.MachineStudio.RML.ViewModels } } - private void BackToRmls() + private async void BackToRmls() { View.NavigateTo(RmlNavigationView.RmlsView); - LoadRmls(); + await LoadRmls(); } #region Batch Conversion diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlView.xaml index 08af47ef4..8730355cc 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlView.xaml @@ -5,6 +5,7 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:global="clr-namespace:Tango.MachineStudio.RML" xmlns:enumerations="clr-namespace:Tango.BL.Enumerations;assembly=Tango.BL" + xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:observables="clr-namespace:Tango.BL.Entities;assembly=Tango.BL" xmlns:shapes="clr-namespace:Tango.SharedUI.Shapes;assembly=Tango.SharedUI" xmlns:controls="clr-namespace:Tango.SharedUI.Controls;assembly=Tango.SharedUI" @@ -21,6 +22,14 @@ <UserControl.Resources> <converters:ColorToIntegerConverter x:Key="ColorToIntegerConverter"></converters:ColorToIntegerConverter> <converters:EnumToItemsSourceConverter x:Key="EnumToItemsSourceConverter"/> + <converters:EnumToDescriptionConverter x:Key="EnumToDescriptionConverter"/> + + <ObjectDataProvider x:Key="Plies" ObjectType="{x:Type sys:Enum}" MethodName="GetValues"> + <ObjectDataProvider.MethodParameters> + <x:Type TypeName="enumerations:Plies"/> + </ObjectDataProvider.MethodParameters> + </ObjectDataProvider> + </UserControl.Resources> <Grid Margin="20"> @@ -94,45 +103,60 @@ <ComboBox ItemsSource="{Binding Purposes}" SelectedItem="{Binding ActiveRML.MediaPurpose,Mode=TwoWay}" DisplayMemberPath="Name"></ComboBox> <TextBlock Text="Condition:" ></TextBlock> - <ComboBox ItemsSource="{Binding Conditions}" SelectedItem="{Binding ActiveRML.MediaCondition,Mode=TwoWay}" DisplayMemberPath="Name"></ComboBox> + <ComboBox ItemsSource="{Binding Conditions}" SelectedItem="{Binding ActiveRML.MediaCondition,Mode=TwoWay}" DisplayMemberPath="Name"></ComboBox>--> + + + <TextBlock Text="Linear Density:" ></TextBlock> + <mahapps:NumericUpDown Minimum="0" Maximum="9999" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="False" HorizontalContentAlignment="Left" Value="{Binding ActiveRML.FiberSize,Mode=TwoWay}" FontSize="16"></mahapps:NumericUpDown> - <TextBlock Text="Linear Mass Density Unit:" ></TextBlock> + <TextBlock Text="Linear Density Unit:" ></TextBlock> <ComboBox ItemsSource="{Binding LinearMassDensityUnits}" SelectedItem="{Binding ActiveRML.LinearMassDensityUnit,Mode=TwoWay}" DisplayMemberPath="Name"></ComboBox> - <TextBlock Text="Fiber Shape:" ></TextBlock> - <ComboBox ItemsSource="{Binding FiberShapes}" SelectedItem="{Binding ActiveRML.FiberShape,Mode=TwoWay}" DisplayMemberPath="Name"></ComboBox> + <TextBlock Text="Plies:" ></TextBlock> + <ComboBox ItemsSource="{Binding Source={StaticResource Plies}}" SelectedItem="{Binding ActiveRML.RMLPlies, Mode=TwoWay}" > + <ComboBox.ItemTemplate> + <DataTemplate> + <TextBlock Text="{Binding Converter={StaticResource EnumToDescriptionConverter}}"></TextBlock> + </DataTemplate> + </ComboBox.ItemTemplate> + </ComboBox> + + <TextBlock Text="Count (den):" ></TextBlock> + <TextBlock Text="{Binding ActiveRML.DencityCount}" Foreground="Blue" ></TextBlock> - <TextBlock Text="Fiber Syntheses:" ></TextBlock> - <ComboBox ItemsSource="{Binding FiberSynths}" SelectedItem="{Binding ActiveRML.FiberSynth,Mode=TwoWay}" DisplayMemberPath="Name"></ComboBox> + + <!--<TextBlock Text="Fiber Shape:" ></TextBlock> + <ComboBox ItemsSource="{Binding FiberShapes}" SelectedItem="{Binding ActiveRML.FiberShape,Mode=TwoWay}" DisplayMemberPath="Name"></ComboBox>--> - <TextBlock Text="Fiber Size:" ></TextBlock> - <mahapps:NumericUpDown Minimum="0" Maximum="10000" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="True" HorizontalContentAlignment="Left" Value="{Binding ActiveRML.FiberSize,Mode=TwoWay}"></mahapps:NumericUpDown> + <!--<TextBlock Text="Fiber Syntheses:" ></TextBlock> + <ComboBox ItemsSource="{Binding FiberSynths}" SelectedItem="{Binding ActiveRML.FiberSynth,Mode=TwoWay}" DisplayMemberPath="Name"></ComboBox>--> - <TextBlock Text="Fibers Count:" ></TextBlock> - <mahapps:NumericUpDown Minimum="0" Maximum="10000" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="False" HorizontalContentAlignment="Left" Value="{Binding ActiveRML.NumberOfFibers,Mode=TwoWay}"></mahapps:NumericUpDown> + <!--<TextBlock Text="Fiber Size:" ></TextBlock> + <mahapps:NumericUpDown Minimum="0" Maximum="10000" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="True" HorizontalContentAlignment="Left" Value="{Binding ActiveRML.FiberSize,Mode=TwoWay}"></mahapps:NumericUpDown>--> - <TextBlock Text="Plies Per Fiber:" ></TextBlock> - <mahapps:NumericUpDown Minimum="0" Maximum="10000" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="False" HorizontalContentAlignment="Left" Value="{Binding ActiveRML.PliesPerFiber,Mode=TwoWay}"></mahapps:NumericUpDown> + <!--<TextBlock Text="Fibers Count:" ></TextBlock> + <mahapps:NumericUpDown Minimum="0" Maximum="10000" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="False" HorizontalContentAlignment="Left" Value="{Binding ActiveRML.NumberOfFibers,Mode=TwoWay}"></mahapps:NumericUpDown>--> - <TextBlock Text="Plies Per Thread:" ></TextBlock> - <mahapps:NumericUpDown Minimum="0" Maximum="10000" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="False" HorizontalContentAlignment="Left" Value="{Binding ActiveRML.PliesPerThread,Mode=TwoWay}"></mahapps:NumericUpDown> + <!--<TextBlock Text="Plies Per Thread:" ></TextBlock> + <mahapps:NumericUpDown Minimum="0" Maximum="10000" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="False" HorizontalContentAlignment="Left" Value="{Binding ActiveRML.PliesPerThread,Mode=TwoWay}"></mahapps:NumericUpDown>--> + - <TextBlock Text="Tensile Strength:" ></TextBlock> + <!--<TextBlock Text="Tensile Strength:" ></TextBlock> <mahapps:NumericUpDown Minimum="0" Maximum="10000" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="True" HorizontalContentAlignment="Left" Value="{Binding ActiveRML.TensileStrength,Mode=TwoWay}"></mahapps:NumericUpDown> <TextBlock Text="Elongation Break Percentage:" ></TextBlock> - <mahapps:NumericUpDown Minimum="0" Maximum="10000" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="True" HorizontalContentAlignment="Left" Value="{Binding ActiveRML.ElongationAtBreakPercentage,Mode=TwoWay}"></mahapps:NumericUpDown> + <mahapps:NumericUpDown Minimum="0" Maximum="10000" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="True" HorizontalContentAlignment="Left" Value="{Binding ActiveRML.ElongationAtBreakPercentage,Mode=TwoWay}"></mahapps:NumericUpDown>--> - <TextBlock Text="Estimated Thread Diameter:" ></TextBlock> - <mahapps:NumericUpDown Minimum="0" Maximum="10000" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="True" HorizontalContentAlignment="Left" Value="{Binding ActiveRML.EstimatedThreadDiameter,Mode=TwoWay}"></mahapps:NumericUpDown> + <!--<TextBlock Text="Estimated Thread Diameter:" ></TextBlock> + <mahapps:NumericUpDown Minimum="0" Maximum="10000" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="True" HorizontalContentAlignment="Left" Value="{Binding ActiveRML.EstimatedThreadDiameter,Mode=TwoWay}"></mahapps:NumericUpDown>--> - <TextBlock Text="Twisted:" ></TextBlock> + <!--<TextBlock Text="Twisted:" ></TextBlock> <ToggleButton HorizontalAlignment="Right" IsChecked="{Binding ActiveRML.Twisted}" Style="{StaticResource MaterialDesignSwitchToggleButton}" /> <TextBlock Text="Air Entanglement:" ></TextBlock> - <ToggleButton HorizontalAlignment="Right" IsChecked="{Binding ActiveRML.AirEntanglement}" Style="{StaticResource MaterialDesignSwitchToggleButton}" /> + <ToggleButton HorizontalAlignment="Right" IsChecked="{Binding ActiveRML.AirEntanglement}" Style="{StaticResource MaterialDesignSwitchToggleButton}" />--> - <TextBlock Text="Lubricant:" ></TextBlock> + <!--<TextBlock Text="Lubricant:" ></TextBlock> <ToggleButton HorizontalAlignment="Right" IsChecked="{Binding ActiveRML.Lubricant}" Style="{StaticResource MaterialDesignSwitchToggleButton}" />--> </controls:TableGrid> </DockPanel> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlsView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlsView.xaml index d5f4165c9..9c684c052 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlsView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlsView.xaml @@ -81,7 +81,7 @@ </StackPanel> </Grid> <Grid> - <DataGrid Margin="0 0 0 10" BorderBrush="Silver" IsReadOnly="True" BorderThickness="1" SelectionUnit="FullRow" RowHeight="60" Background="{StaticResource TransparentBackgroundBrush}" AlternatingRowBackground="{StaticResource Transparent200}" AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False" ItemsSource="{Binding Rmls}" SelectedItem="{Binding SelectedRML}" HorizontalScrollBarVisibility="Disabled"> + <DataGrid Margin="0 0 0 10" BorderBrush="Silver" IsReadOnly="True" BorderThickness="1" SelectionUnit="FullRow" RowHeight="60" Background="{StaticResource TransparentBackgroundBrush}" AlternatingRowBackground="{StaticResource Transparent200}" AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False" ItemsSource="{Binding Rmls}" SelectedItem="{Binding SelectedRML}" HorizontalScrollBarVisibility="Disabled" EnableRowVirtualization="False"> <DataGrid.CellStyle> <Style TargetType="DataGridCell" BasedOn="{StaticResource {x:Type DataGridCell}}"> <Setter Property="BorderThickness" Value="0"/> @@ -90,31 +90,34 @@ </Style> </DataGrid.CellStyle> <DataGrid.Columns> - <DataGridTemplateColumn Header="NAME" Width="200"> + <DataGridTemplateColumn Header="NAME" Width="220"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <StackPanel> - <TextBlock Text="{Binding Name}"></TextBlock> - <TextBlock Visibility="{Binding DisplayName,Converter={StaticResource IsNullToVisibilityConverter}}" FontSize="11" Foreground="{StaticResource GrayBrush}" Margin="2 2 0 0"> + <TextBlock Text="{Binding Name}" TextTrimming="CharacterEllipsis"></TextBlock> + <TextBlock Visibility="{Binding DisplayName,Converter={StaticResource IsNullToVisibilityConverter}}" FontSize="11" Foreground="{StaticResource GrayBrush}" Margin="2 2 0 0" TextTrimming="CharacterEllipsis"> <Run>(</Run><Run Text="{Binding DisplayName,Mode=OneWay}"></Run><Run>)</Run> </TextBlock> </StackPanel> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> - <DataGridTextColumn Header="HEAD" Binding="{Binding HeadType}" Width="Auto" /> - <DataGridTextColumn Header="BTSR" Binding="{Binding Btsr}" Width="Auto" /> + <DataGridTextColumn Header="Dyeing speed" Width="Auto" Binding="{Binding DyeingSpeed}"></DataGridTextColumn> + <DataGridTextColumn Header="Zone1 ink uptake" Width="Auto" Binding="{Binding Zone1InkUptake}"></DataGridTextColumn> + <DataGridTextColumn Header="Zone2 ink uptake" Width="Auto" Binding="{Binding Zone2InkUptake}"></DataGridTextColumn> + <!--<DataGridTextColumn Header="HEAD" Binding="{Binding HeadType}" Width="Auto" />--> + <!--<DataGridTextColumn Header="BTSR" Binding="{Binding Btsr}" Width="Auto" />--> <DataGridTextColumn Header="CCT" Binding="{Binding CCT}" Width="Auto" /> - <DataGridTextColumn Header="CL GR" Binding="{Binding UseGradients,Converter={StaticResource BooleanToYesNoConverter}}" Width="Auto" /> - <DataGridTextColumn Header="LIGHT INKS" Binding="{Binding UseLightInks,Converter={StaticResource BooleanToYesNoConverter}}" Width="Auto" /> + <!--<DataGridTextColumn Header="CL GR" Binding="{Binding UseGradients,Converter={StaticResource BooleanToYesNoConverter}}" Width="Auto" />--> + <!--<DataGridTextColumn Header="LIGHT INKS" Binding="{Binding UseLightInks,Converter={StaticResource BooleanToYesNoConverter}}" Width="Auto" />--> <DataGridTextColumn Header="LAST UPDATED" Binding="{Binding LastUpdated,Converter={StaticResource DateTimeUTCToShortDateTimeConverter}}" Width="Auto" /> <DataGridTemplateColumn Header="LIQUID FACTORS" Width="1*"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> - <ItemsControl ItemsSource="{Binding LiquidTypes}" Margin="0 -5 0 0"> + <ItemsControl ItemsSource="{Binding LiquidTypesR}" Margin="0 -5 0 0"> <ItemsControl.ItemsPanel> <ItemsPanelTemplate> - <StackPanel HorizontalAlignment="Left" Orientation="Horizontal" IsItemsHost="True"></StackPanel> + <StackPanel HorizontalAlignment="Left" Orientation="Horizontal" IsItemsHost="True" ></StackPanel> </ItemsPanelTemplate> </ItemsControl.ItemsPanel> <ItemsControl.ItemTemplate> @@ -123,11 +126,12 @@ <shapes:Hexagon StrokeThickness="1" Stroke="Gray"> <shapes:Hexagon.Fill> <LinearGradientBrush Opacity="0.7" > - <GradientStop Color="{Binding Converter={StaticResource ColorToIntegerConverter}}"/> + <GradientStop Color="{Binding Color, Converter={StaticResource ColorToIntegerConverter}}"/> <GradientStop Color="White" Offset="1"/> </LinearGradientBrush> </shapes:Hexagon.Fill> </shapes:Hexagon> + <TextBlock Text="{Binding LiquidTypeValue, TargetNullValue=0}" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="9"></TextBlock> </Grid> </DataTemplate> </ItemsControl.ItemTemplate> diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/MachineConnectionIcon.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/MachineConnectionIcon.xaml new file mode 100644 index 000000000..bfcf221c9 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/MachineConnectionIcon.xaml @@ -0,0 +1,48 @@ +<UserControl x:Class="Tango.MachineStudio.Common.Controls.MachineConnectionIcon" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:Tango.MachineStudio.Common.Controls" + mc:Ignorable="d" + d:DesignHeight="45" d:DesignWidth="45" d:DataContext="{d:DesignInstance Type=local:MachineConnectionIcon,IsDesignTimeCreatable=False}"> + <Grid DataContext="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}}"> + <Image Margin="0 5 5 0" RenderOptions.BitmapScalingMode="Fant"> + <Image.Style> + <Style TargetType="Image"> + <Setter Property="Source" Value="../Images/Connections/ts1800.png"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding MachineType}" Value="Eureka"> + <Setter Property="Source" Value="../Images/Connections/eureka.png"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </Image.Style> + </Image> + + <Image RenderOptions.BitmapScalingMode="Fant" Width="20" VerticalAlignment="Top" HorizontalAlignment="Right"> + <Image.Style> + <Style TargetType="Image"> + <Setter Property="Source" Value="../Images/Connections/usb.png"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding ExternalBridgeClientType}" Value="Usb"> + <Setter Property="Source" Value="../Images/Connections/usb.png"></Setter> + </DataTrigger> + <DataTrigger Binding="{Binding ExternalBridgeClientType}" Value="Tcp"> + <Setter Property="Source" Value="../Images/Connections/tcp.png"></Setter> + </DataTrigger> + <DataTrigger Binding="{Binding ExternalBridgeClientType}" Value="Wifi"> + <Setter Property="Source" Value="../Images/Connections/wifi.png"></Setter> + </DataTrigger> + <DataTrigger Binding="{Binding ExternalBridgeClientType}" Value="SignalR"> + <Setter Property="Source" Value="../Images/Connections/signalr.png"></Setter> + </DataTrigger> + <DataTrigger Binding="{Binding ExternalBridgeClientType}" Value="Emulator"> + <Setter Property="Source" Value="../Images/Connections/emulator.png"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </Image.Style> + </Image> + </Grid> +</UserControl> diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/MachineConnectionIcon.xaml.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/MachineConnectionIcon.xaml.cs new file mode 100644 index 000000000..6f754e306 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/MachineConnectionIcon.xaml.cs @@ -0,0 +1,94 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using Tango.BL.Enumerations; +using Tango.Emulations.ExternalBridge; +using Tango.Integration.ExternalBridge; + +namespace Tango.MachineStudio.Common.Controls +{ + public enum ExternalBridgeClientType + { + Usb, + Tcp, + Wifi, + SignalR, + Emulator, + } + + /// <summary> + /// Interaction logic for MachineConnectionIcon.xaml + /// </summary> + public partial class MachineConnectionIcon : UserControl + { + public MachineTypes MachineType + { + get { return (MachineTypes)GetValue(MachineTypeProperty); } + set { SetValue(MachineTypeProperty, value); } + } + public static readonly DependencyProperty MachineTypeProperty = + DependencyProperty.Register("MachineType", typeof(MachineTypes), typeof(MachineConnectionIcon), new PropertyMetadata(MachineTypes.TS1800)); + + public IExternalBridgeClient ExternalBridgeClient + { + get { return (IExternalBridgeClient)GetValue(ExternalBridgeClientProperty); } + set { SetValue(ExternalBridgeClientProperty, value); } + } + public static readonly DependencyProperty ExternalBridgeClientProperty = + DependencyProperty.Register("ExternalBridgeClient", typeof(IExternalBridgeClient), typeof(MachineConnectionIcon), new PropertyMetadata((d,e) => (d as MachineConnectionIcon).OnExternalBridgeClientChanged())); + + public ExternalBridgeClientType ExternalBridgeClientType + { + get { return (ExternalBridgeClientType)GetValue(ExternalBridgeClientTypeProperty); } + set { SetValue(ExternalBridgeClientTypeProperty, value); } + } + public static readonly DependencyProperty ExternalBridgeClientTypeProperty = + DependencyProperty.Register("ExternalBridgeClientType", typeof(ExternalBridgeClientType), typeof(MachineConnectionIcon), new PropertyMetadata(ExternalBridgeClientType.Usb)); + + private void OnExternalBridgeClientChanged() + { + if (ExternalBridgeClient != null) + { + if (ExternalBridgeClient.GetType() == typeof(ExternalBridgeUsbClient)) + { + ExternalBridgeClientType = ExternalBridgeClientType.Usb; + } + else if (ExternalBridgeClient.GetType() == typeof(ExternalBridgeTcpFirmwareClient)) + { + ExternalBridgeClientType = ExternalBridgeClientType.Tcp; + MachineType = MachineTypes.Eureka; + } + else if (ExternalBridgeClient.GetType() == typeof(ExternalBridgeTcpClient)) + { + ExternalBridgeClientType = ExternalBridgeClientType.Wifi; + MachineType = ExternalBridgeClient.MachineType; + } + else if (ExternalBridgeClient.GetType() == typeof(ExternalBridgeSignalRClient)) + { + ExternalBridgeClientType = ExternalBridgeClientType.SignalR; + MachineType = ExternalBridgeClient.MachineType; + } + else if (ExternalBridgeClient.GetType() == typeof(EmulatorExternalBridge)) + { + ExternalBridgeClientType = ExternalBridgeClientType.Emulator; + } + } + } + + public MachineConnectionIcon() + { + InitializeComponent(); + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/emulator.png b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/emulator.png Binary files differnew file mode 100644 index 000000000..cd3478ab2 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/emulator.png diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/eureka.png b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/eureka.png Binary files differnew file mode 100644 index 000000000..212d391d4 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/eureka.png diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/signalr.png b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/signalr.png Binary files differnew file mode 100644 index 000000000..20d329640 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/signalr.png diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/tcp.png b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/tcp.png Binary files differnew file mode 100644 index 000000000..a19a64fec --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/tcp.png diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/ts1800.png b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/ts1800.png Binary files differnew file mode 100644 index 000000000..116e1e9c7 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/ts1800.png diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/usb.png b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/usb.png Binary files differnew file mode 100644 index 000000000..d0b917b44 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/usb.png diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/wifi.png b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/wifi.png Binary files differnew file mode 100644 index 000000000..8c4bfebc4 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/wifi.png diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/eureka_full.png b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/eureka_full.png Binary files differnew file mode 100644 index 000000000..484bb2ac1 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/eureka_full.png diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/eureka_small.png b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/eureka_small.png Binary files differnew file mode 100644 index 000000000..c9da4ae29 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/eureka_small.png diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/machines.png b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/machines.png Binary files differnew file mode 100644 index 000000000..788d1e67b --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/machines.png diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs index 25dfc2dc8..6ae71d50d 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs @@ -9,6 +9,7 @@ using Tango.BL; using Tango.Integration.Operation; using Tango.Logging; using Tango.MachineStudio.Common.Web; +using Tango.PMR.Common; using Tango.PMR.Printing; using Tango.Settings; using Tango.Transport.Adapters; @@ -178,6 +179,8 @@ namespace Tango.MachineStudio.Common /// </summary> public MachineStudioTheme Theme { get; set; } + public int LastConnectedMachineType { get; set; } + /// <summary> /// Initializes a new instance of the <see cref="MachineStudio"/> class. /// </summary> diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Resources/MaterialDesign.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Resources/MaterialDesign.xaml index d8e2017ec..bd35677d2 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Resources/MaterialDesign.xaml +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Resources/MaterialDesign.xaml @@ -73,6 +73,9 @@ <ResourceDictionary> <BitmapImage x:Key="MachineBig" UriSource="../Images/machine_new.png"></BitmapImage> <BitmapImage x:Key="MachineSmall" UriSource="../Images/machine_new_small.png"></BitmapImage> + <BitmapImage x:Key="MachineEurekaSmall" UriSource="../Images/eureka_small.png"></BitmapImage> + <BitmapImage x:Key="MachineEurekaFull" UriSource="../Images/eureka_full.png"></BitmapImage> + <BitmapImage x:Key="Machines" UriSource="../Images/machines.png"></BitmapImage> </ResourceDictionary> <!--Styles--> diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj index a14bb4e2a..af0d6aab8 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj @@ -93,6 +93,9 @@ <Link>GlobalVersionInfo.cs</Link> </Compile> <Compile Include="Authentication\AuthenticationLoginResult.cs" /> + <Compile Include="Controls\MachineConnectionIcon.xaml.cs"> + <DependentUpon>MachineConnectionIcon.xaml</DependentUpon> + </Compile> <Compile Include="Controls\MachineView.xaml.cs"> <DependentUpon>MachineView.xaml</DependentUpon> </Compile> @@ -189,6 +192,10 @@ <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> </Page> + <Page Include="Controls\MachineConnectionIcon.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> <Page Include="Controls\MachineView.xaml"> <Generator>MSBuild:Compile</Generator> <SubType>Designer</SubType> @@ -298,6 +305,10 @@ <Project>{de2f2b86-025b-4f26-83a4-38bd48224ed5}</Project> <Name>Tango.Editors</Name> </ProjectReference> + <ProjectReference Include="..\..\Tango.Emulations\Tango.Emulations.csproj"> + <Project>{63561e19-ff5a-414b-a5ef-e30711543e1d}</Project> + <Name>Tango.Emulations</Name> + </ProjectReference> <ProjectReference Include="..\..\Tango.Git\Tango.Git.csproj"> <Project>{99081c0e-065c-4d68-bf60-f82330cca02d}</Project> <Name>Tango.Git</Name> @@ -428,10 +439,24 @@ <ItemGroup> <Resource Include="Images\machine_new_small.png" /> </ItemGroup> + <ItemGroup> + <Resource Include="Images\Connections\usb.png" /> + <Resource Include="Images\Connections\emulator.png" /> + <Resource Include="Images\Connections\eureka.png" /> + <Resource Include="Images\Connections\signalr.png" /> + <Resource Include="Images\Connections\tcp.png" /> + <Resource Include="Images\Connections\ts1800.png" /> + <Resource Include="Images\Connections\wifi.png" /> + </ItemGroup> + <ItemGroup> + <Resource Include="Images\eureka_full.png" /> + <Resource Include="Images\eureka_small.png" /> + <Resource Include="Images\machines.png" /> + </ItemGroup> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <ProjectExtensions> <VisualStudio> - <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" /> + <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" /> </VisualStudio> </ProjectExtensions> <PropertyGroup> diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Images/external-bridge-lan.png b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Images/external-bridge-lan.png Binary files differnew file mode 100644 index 000000000..461b29b75 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Images/external-bridge-lan.png diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Properties/AssemblyInfo.cs index 2a49c1d8d..90fab6ad9 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Properties/AssemblyInfo.cs @@ -4,5 +4,5 @@ using System.Runtime.InteropServices; [assembly: System.Windows.ThemeInfo(System.Windows.ResourceDictionaryLocation.None, System.Windows.ResourceDictionaryLocation.SourceAssembly)] [assembly: AssemblyTitle("Tango - Machine Studio")] -[assembly: AssemblyVersion("4.9.9.0")] +[assembly: AssemblyVersion("5.9.0.0")] [assembly: ComVisible(false)]
\ No newline at end of file diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs index feed9e193..2efe4c719 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs @@ -395,10 +395,14 @@ namespace Tango.MachineStudio.UI.StudioApplication throw new NullReferenceException($"The specified machine '{connectedMachine.SerialNumber}' could not be found on the database."); } + //Adjust Dryer Buffer Length Mode + ProcessParametersTable.DryerBufferMode = Machine.Type; + connectedMachine.SetMachine(Machine); ConnectedMachine = connectedMachine; var settings = SettingsManager.Default.GetOrCreate<MachineStudioSettings>(); ConnectedMachine.JobUploadStrategy = settings.JobUploadStrategy; + settings.LastConnectedMachineType = Machine.MachineType; } else { diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/TFS/TeamFoundationServiceExtendedClient.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/TFS/TeamFoundationServiceExtendedClient.cs index b716ed1fb..7a0a9414c 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/TFS/TeamFoundationServiceExtendedClient.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/TFS/TeamFoundationServiceExtendedClient.cs @@ -152,6 +152,8 @@ namespace Tango.MachineStudio.UI.TFS throw LogManager.Default.Log(new AuthenticationException($"User '{user_email}' is not part of the Tango VSTS team. Please contact your administrator.")); } + var settings = SettingsManager.Default.GetOrCreate<MachineStudioSettings>(); + item.CreatedBy = currentUser; item.ChangedBy = currentUser; item.AuthorizedAs = currentUser; @@ -161,7 +163,8 @@ namespace Tango.MachineStudio.UI.TFS item.Severity = Severity.Medium; item.State = State.New; item.Type = WorkItemType.Bug; - item.Environment = SettingsManager.Default.GetOrCreate<MachineStudioSettings>().DeploymentSlot.ToDescription(); + item.Environment = settings.DeploymentSlot.ToDescription(); + item.MachineType = (MachineType)settings.LastConnectedMachineType; foreach (var window in Application.Current.Windows.OfType<Window>().Where(x => !String.IsNullOrWhiteSpace(x.Title))) { diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj index eca12dfef..4dbcbf600 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj @@ -360,6 +360,7 @@ <Link>TCC\template.bmp</Link> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </Content> + <Resource Include="Images\external-bridge-lan.png" /> <Resource Include="Images\login_white.png" /> <Resource Include="Images\login.png" /> <Resource Include="Images\active_directory.png" /> diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MachineConnectionViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MachineConnectionViewVM.cs index c7c8335f0..511733984 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MachineConnectionViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MachineConnectionViewVM.cs @@ -21,6 +21,8 @@ namespace Tango.MachineStudio.UI.ViewModels /// <seealso cref="Tango.MachineStudio.Common.Notifications.DialogViewVM" /> public class MachineConnectionViewVM : DialogViewVM { + private ExternalBridgeTcpFirmwareClient _firmwareTcpClient; + private static ExternalBridgeScanner _scanner; public ExternalBridgeScanner Scanner { @@ -107,7 +109,7 @@ namespace Tango.MachineStudio.UI.ViewModels /// <summary> /// Called when the dialog has been shown. /// </summary> - public override void OnShow() + public async override void OnShow() { base.OnShow(); @@ -123,9 +125,12 @@ namespace Tango.MachineStudio.UI.ViewModels _emulator.Disconnect(); } _emulator = new EmulatorExternalBridge(); + _scanner.AvailableMachines.Add(_emulator); } - _scanner.AvailableMachines.Add(_emulator); + _firmwareTcpClient = new ExternalBridgeTcpFirmwareClient(); + _scanner.AvailableMachines.Add(_firmwareTcpClient); + _scanner.Start(); } catch (Exception ex) diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs index 0550383fb..293cccec4 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs @@ -478,13 +478,12 @@ namespace Tango.MachineStudio.UI.ViewModels x.SelectedMachine.JobUnitsMethod = _settings.JobUnitsMethod; x.SelectedMachine.JobRunsLogger.JobSource = BL.Enumerations.JobSource.Remote; - if (x.SelectedMachine is ExternalBridgeTcpClient) + if (x.SelectedMachine is ExternalBridgeTcpClient && x.SelectedMachine.GetType() != typeof(ExternalBridgeTcpFirmwareClient)) { x.SelectedMachine.As<ExternalBridgeTcpClient>().EnableApplicationLogs = x.EnableApplicationLogs; x.SelectedMachine.RequestTimeout = _settings.ExternalBridgeRequestTimeout; x.SelectedMachine.ContinuousRequestTimeout = _settings.ExternalBridgeContinuousRequestTimeout; } - if (x.SelectedMachine.Adapter is TcpTransportAdapter) { (x.SelectedMachine.Adapter as TcpTransportAdapter).WriteMode = _settings.TcpTransportAdapterWriteMode; @@ -581,6 +580,7 @@ namespace Tango.MachineStudio.UI.ViewModels { _reconnectionMachine = client; + client.MachineType = machine.Type; //In case trying to connect to Eureka on USB. await client.Connect(); client.SerialNumber = machine.SerialNumber; ApplicationManager.SetConnectedMachine(client); diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ConnectedMachineView.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ConnectedMachineView.xaml index 600104095..f7751958a 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ConnectedMachineView.xaml +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ConnectedMachineView.xaml @@ -9,6 +9,7 @@ xmlns:emulations="clr-namespace:Tango.Emulations.ExternalBridge;assembly=Tango.Emulations" xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI" xmlns:controls="clr-namespace:Tango.SharedUI.Controls;assembly=Tango.SharedUI" + xmlns:commonControls="clr-namespace:Tango.MachineStudio.Common.Controls;assembly=Tango.MachineStudio.Common" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:Tango.MachineStudio.UI.Views" mc:Ignorable="d" @@ -32,25 +33,7 @@ <Grid> <StackPanel Orientation="Horizontal" Margin="10"> - <ContentControl Content="{Binding ApplicationManager.ConnectedMachine}"> - <ContentControl.Resources> - <DataTemplate DataType="{x:Type integration:ExternalBridgeSignalRClient}"> - <Image Source="/Images/external-bridge-signalr.png" Width="48" Height="48" RenderOptions.BitmapScalingMode="Fant"></Image> - </DataTemplate> - - <DataTemplate DataType="{x:Type integration:ExternalBridgeTcpClient}"> - <Image Source="/Images/external-bridge-tcp.png" Width="48" Height="48" RenderOptions.BitmapScalingMode="Fant"></Image> - </DataTemplate> - - <DataTemplate DataType="{x:Type integration:ExternalBridgeUsbClient}"> - <Image Source="/Images/external-bridge-usb.png" Width="48" Height="48" RenderOptions.BitmapScalingMode="Fant"></Image> - </DataTemplate> - - <DataTemplate DataType="{x:Type emulations:EmulatorExternalBridge}"> - <Image Source="/Images/external-bridge-emulator.png" Width="48" Height="48" RenderOptions.BitmapScalingMode="Fant"></Image> - </DataTemplate> - </ContentControl.Resources> - </ContentControl> + <commonControls:MachineConnectionIcon ExternalBridgeClient="{Binding ApplicationManager.ConnectedMachine}" /> <TextBlock Text="Machine Connection" VerticalAlignment="Center" Margin="10 0 0 0" FontSize="20"></TextBlock> </StackPanel> @@ -222,6 +205,47 @@ </controls:TableGrid> </DataTemplate> + <DataTemplate DataType="{x:Type integration:ExternalBridgeTcpFirmwareClient}"> + <controls:TableGrid RowHeight="22"> + <TextBlock FontWeight="SemiBold" Text="Serial Number:" /> + <TextBlock Text="{Binding SerialNumber}" /> + <TextBlock FontWeight="SemiBold" Text="Name:" /> + <TextBlock Text="{Binding Machine.Name}" /> + <TextBlock FontWeight="SemiBold" Text="Organization:" /> + <TextBlock Text="{Binding Machine.Organization.Name}" /> + <TextBlock FontWeight="SemiBold" Text="Total Dye Time:" /> + <TextBlock Text="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.TotalMachineWorkTime}" /> + <TextBlock FontWeight="SemiBold" Text="Total Dye Meters:" /> + <TextBlock Text="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.TotalMachineMeters}" /> + <TextBlock FontWeight="SemiBold" Text="Embedded Software Version:" /> + <TextBlock Text="{Binding DeviceInformation.Version}" /> + <TextBlock FontWeight="SemiBold" Text="IP Address:" /> + <TextBlock Text="{Binding IPAddress}" /> + <TextBlock FontWeight="SemiBold" Text="Total Bytes Sent:" /> + <TextBlock Text="{Binding Adapter.TotalBytesSent,Converter={StaticResource ByteArrayToFileSizeConverter},Mode=OneWay}" /> + <TextBlock FontWeight="SemiBold" Text="Total Bytes Received:" /> + <TextBlock Text="{Binding Adapter.TotalBytesReceived,Converter={StaticResource ByteArrayToFileSizeConverter},Mode=OneWay}" /> + <TextBlock FontWeight="SemiBold" Text="Transfer Rate:" /> + <TextBlock> + <Run Text="{Binding Adapter.TransferRate,Converter={StaticResource ByteArrayToFileSizeConverter},Mode=OneWay}"></Run> + <Run Text="/ sec"></Run> + </TextBlock> + <TextBlock FontWeight="SemiBold" Text="Diagnostics Frame Rate:" /> + <TextBlock> + <Run Text="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.DiagnosticsFrameProvider.FrameRate,Mode=OneWay,IsAsync=True}"></Run> + <Run Text="/ sec"></Run> + </TextBlock> + <TextBlock FontWeight="SemiBold" Text="Enable Diagnostics:" /> + <ToggleButton IsChecked="{Binding EnableDiagnostics}" HorizontalAlignment="Left"></ToggleButton> + <TextBlock FontWeight="SemiBold" Text="Enable Embedded Debug Logs:" /> + <ToggleButton IsChecked="{Binding EnableEmbeddedDebugging}" HorizontalAlignment="Left"></ToggleButton> + <TextBlock FontWeight="SemiBold" Text="Enable KeepAlive:" /> + <ToggleButton IsChecked="{Binding UseKeepAlive}" HorizontalAlignment="Left"></ToggleButton> + <TextBlock FontWeight="SemiBold" Text="Enable Events:" /> + <ToggleButton IsChecked="{Binding EnableEventsNotification}" HorizontalAlignment="Left"></ToggleButton> + </controls:TableGrid> + </DataTemplate> + <DataTemplate DataType="{x:Type emulations:EmulatorExternalBridge}"> <controls:TableGrid RowHeight="22"> <TextBlock FontWeight="SemiBold" Text="Address:" /> diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MachineConnectionView.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MachineConnectionView.xaml index 78557a42e..59b9fe67f 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MachineConnectionView.xaml +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MachineConnectionView.xaml @@ -8,6 +8,7 @@ xmlns:integration="clr-namespace:Tango.Integration.ExternalBridge;assembly=Tango.Integration" xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI" xmlns:emulations="clr-namespace:Tango.Emulations.ExternalBridge;assembly=Tango.Emulations" + xmlns:controls="clr-namespace:Tango.MachineStudio.Common.Controls;assembly=Tango.MachineStudio.Common" xmlns:local="clr-namespace:Tango.MachineStudio.UI.Views" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="400" Width="700" Height="500" Background="{StaticResource Dialog.Background}" DataContext="{Binding MachineConnectionViewVM, Source={StaticResource Locator}}" Foreground="{StaticResource MainWindow.Foreground}"> @@ -58,7 +59,7 @@ <DataTemplate DataType="{x:Type integration:ExternalBridgeSignalRClient}"> <DockPanel> <StackPanel Orientation="Horizontal"> - <Image Source="/Images/external-bridge-signalr.png" Height="45" RenderOptions.BitmapScalingMode="Fant"></Image> + <controls:MachineConnectionIcon ExternalBridgeClient="{Binding}" Height="45" /> <StackPanel Margin="10 0 0 0"> <TextBlock FontSize="11"> <Run FontWeight="Bold">S/N:</Run> <Run Text="{Binding SerialNumber,Mode=OneWay}"></Run> @@ -76,7 +77,7 @@ <DataTemplate DataType="{x:Type integration:ExternalBridgeTcpClient}"> <DockPanel> <StackPanel Orientation="Horizontal"> - <Image Source="/Images/external-bridge-tcp.png" Height="45" RenderOptions.BitmapScalingMode="Fant"></Image> + <controls:MachineConnectionIcon ExternalBridgeClient="{Binding}" Height="45" /> <StackPanel Margin="10 0 0 0"> <TextBlock FontSize="11"> <Run FontWeight="Bold">S/N:</Run> <Run Text="{Binding SerialNumber,Mode=OneWay}"></Run> @@ -94,7 +95,7 @@ <DataTemplate DataType="{x:Type integration:ExternalBridgeUsbClient}"> <DockPanel> <StackPanel Orientation="Horizontal"> - <Image Source="/Images/external-bridge-usb.png" Height="45" RenderOptions.BitmapScalingMode="Fant"></Image> + <controls:MachineConnectionIcon ExternalBridgeClient="{Binding}" Height="45" /> <StackPanel Margin="10 0 0 0"> <TextBlock FontSize="11"> <Run FontWeight="Bold">Port:</Run> <Run Text="{Binding ComPort,Mode=OneWay}"></Run> @@ -106,10 +107,22 @@ </StackPanel> </DockPanel> </DataTemplate> + <DataTemplate DataType="{x:Type integration:ExternalBridgeTcpFirmwareClient}"> + <DockPanel> + <StackPanel Orientation="Horizontal"> + <controls:MachineConnectionIcon ExternalBridgeClient="{Binding}" Height="45" /> + <StackPanel Margin="10 0 0 0"> + <TextBlock FontSize="11"> + <Run FontWeight="Bold">IP Address:</Run> <Run Text="{Binding IPAddress,Mode=OneWay}"></Run> + </TextBlock> + </StackPanel> + </StackPanel> + </DockPanel> + </DataTemplate> <DataTemplate DataType="{x:Type emulations:EmulatorExternalBridge}"> <DockPanel> <StackPanel Orientation="Horizontal"> - <Image Source="/Images/external-bridge-emulator.png" Height="45" RenderOptions.BitmapScalingMode="Fant"></Image> + <controls:MachineConnectionIcon ExternalBridgeClient="{Binding}" Height="45" /> <StackPanel Margin="10 0 0 0"> <TextBlock FontSize="11"> <Run Text="External Bridge Emulator"></Run> diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ReportIssueView.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ReportIssueView.xaml index aac712f59..3eeb5f901 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ReportIssueView.xaml +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ReportIssueView.xaml @@ -12,7 +12,7 @@ xmlns:tfs="clr-namespace:Tango.TFS;assembly=Tango.TFS" xmlns:tfss="clr-namespace:Tango.MachineStudio.UI.TFS" xmlns:local="clr-namespace:Tango.MachineStudio.UI.Views" - mc:Ignorable="d" Width="530" Height="660" Background="{StaticResource Dialog.Background}" d:DataContext="{d:DesignInstance Type=vm:ReportIssueViewVM, IsDesignTimeCreatable=False}" Foreground="{StaticResource MainWindow.Foreground}"> + mc:Ignorable="d" Width="530" Height="700" Background="{StaticResource Dialog.Background}" d:DataContext="{d:DesignInstance Type=vm:ReportIssueViewVM, IsDesignTimeCreatable=False}" Foreground="{StaticResource MainWindow.Foreground}"> <UserControl.Resources> <converters:EnumToItemsSourceConverter x:Key="EnumToItemsSourceConverter" /> @@ -44,6 +44,11 @@ </DockPanel> <DockPanel Margin="0 10 0 0"> + <materialDesign:PackIcon Kind="Settings" Width="24" Height="24" VerticalAlignment="Center" Margin="0 0 10 0" /> + <ComboBox materialDesign:HintAssist.Hint="Machine Type" materialDesign:HintAssist.IsFloating="True" ItemsSource="{Binding Source={x:Type tfs:MachineType},Converter={StaticResource EnumToItemsSourceConverter}}" SelectedValue="{Binding WorkItem.MachineType}" SelectedValuePath="Value" DisplayMemberPath="DisplayName"></ComboBox> + </DockPanel> + + <DockPanel Margin="0 10 0 0"> <materialDesign:PackIcon Kind="Account" Width="24" Height="24" VerticalAlignment="Center" Margin="0 0 10 0" /> <autoComplete:AutoCompleteTextBox Provider="{StaticResource TeamMembersProvider}" SelectedItem="{Binding WorkItem.AssignedTo,Mode=TwoWay}" DisplayMember="DisplayName" materialDesign:HintAssist.Hint="Assigned To" materialDesign:HintAssist.IsFloating="True"></autoComplete:AutoCompleteTextBox> </DockPanel> @@ -83,7 +88,7 @@ <materialDesign:PackIcon Kind="Tag" Width="24" Height="24" VerticalAlignment="Center" Margin="0 0 10 0" /> <TextBlock VerticalAlignment="Center"><Run>Tags</Run> <Run FontSize="10" Foreground="Gray">(highlight selected tags)</Run></TextBlock> </DockPanel> - <ScrollViewer Margin="30 0 0 0" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto" Height="120"> + <ScrollViewer Margin="30 0 0 0" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto" Height="100"> <ItemsControl ItemsSource="{Binding SelectedTags}"> <ItemsControl.ItemsPanel> <ItemsPanelTemplate> diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.BugReporting/TFS/TeamFoundationServicePPCClient.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.BugReporting/TFS/TeamFoundationServicePPCClient.cs index b84d11c37..c21d56f2a 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.BugReporting/TFS/TeamFoundationServicePPCClient.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.BugReporting/TFS/TeamFoundationServicePPCClient.cs @@ -15,6 +15,7 @@ using Tango.Core.ExtensionMethods; using Tango.Core.Helpers; using Tango.Settings; using Tango.PPC.Common; +using Tango.PPC.Common.Build; namespace Tango.PPC.BugReporting.TFS { @@ -22,6 +23,7 @@ namespace Tango.PPC.BugReporting.TFS { private IPPCApplicationManager _applicationManager; private IMachineProvider _machineProvider; + private IBuildProvider _buildProvider; public Project Project { get; private set; } @@ -33,6 +35,7 @@ namespace Tango.PPC.BugReporting.TFS { _applicationManager = TangoIOC.Default.GetInstance<IPPCApplicationManager>(); _machineProvider = TangoIOC.Default.GetInstance<IMachineProvider>(); + _buildProvider = TangoIOC.Default.GetInstance<IBuildProvider>(); _applicationManager.ApplicationReady += ApplicationManager_ApplicationReady; } @@ -82,7 +85,7 @@ namespace Tango.PPC.BugReporting.TFS { item.Title = title; - item.Area = Project.GetAreaByName("PPC"); + item.Area = _buildProvider.IsEureka ? Project.GetAreaByName("Twine X4") : Project.GetAreaByName("PPC"); item.Iteration = Project.Iterations.FirstOrDefault(); item.CreatedBy = createdBy; @@ -99,6 +102,8 @@ namespace Tango.PPC.BugReporting.TFS item.Type = WorkItemType.Bug; item.Environment = SettingsManager.Default.GetOrCreate<PPCSettings>().DeploymentSlot.ToDescription(); + item.MachineType = _buildProvider.IsEureka ? MachineType.TwineX4 : MachineType.TS1800; + FileLogger appFileLogger = LogManager.Default.RegisteredLoggers.FirstOrDefault(x => x.GetType() == typeof(FileLogger)) as FileLogger; FileLogger embeddedFileLogger = MachineOperator.EmbeddedLogManager.RegisteredLoggers.FirstOrDefault(x => x.GetType() == typeof(FileLogger)) as FileLogger; diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobsViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobsViewVM.cs index 0b039b618..90ca8ed0c 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobsViewVM.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobsViewVM.cs @@ -511,7 +511,17 @@ namespace Tango.PPC.Jobs.ViewModels job.JobSource = JobSource.Local; job.Name = "untitled"; job.NumberOfHeads = 1; - job.NumberOfUnits = 1; + + if(BuildProvider.IsEureka) + { + job.NumberOfUnits = 4; + //job.NumberOfHeads = 4; + } + else + { + job.NumberOfUnits = 1; + + } job.SampleUnitsOrMeters = 1; job.CreationDate = DateTime.UtcNow; job.JobStatus = JobStatuses.Draft; diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Controls/JobModelSummaryViewerControl.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Controls/JobModelSummaryViewerControl.xaml index afd05e902..4c2e0ba62 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Controls/JobModelSummaryViewerControl.xaml +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Controls/JobModelSummaryViewerControl.xaml @@ -104,6 +104,7 @@ <MultiDataTrigger.Conditions> <Condition Binding="{Binding ElementName=control,Path=JobModel.JobType}" Value="{x:Static enumerations:JobTypes.Embroidery}" /> <Condition Binding="{Binding ElementName=control,Path=IsActive}" Value="False" /> + <Condition Binding="{Binding ElementName=control,Path=DisplayUnits}" Value="True" /> </MultiDataTrigger.Conditions> <Setter Property="Visibility" Value="Visible"></Setter> </MultiDataTrigger> diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Controls/JobModelSummaryViewerControl.xaml.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Controls/JobModelSummaryViewerControl.xaml.cs index 5bc74e046..6ec36a8fe 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Controls/JobModelSummaryViewerControl.xaml.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Controls/JobModelSummaryViewerControl.xaml.cs @@ -55,6 +55,17 @@ namespace Tango.PPC.Jobs.Controls public static readonly DependencyProperty DisplayMarkersProperty = DependencyProperty.Register("DisplayMarkers", typeof(bool), typeof(JobModelSummaryViewerControl), new PropertyMetadata(true)); + + public bool DisplayUnits + { + get { return (bool)GetValue(DisplayUnitsProperty); } + set { SetValue(DisplayUnitsProperty, value); } + } + + // Using a DependencyProperty as the backing store for DisplayUnits. This enables animation, styling, binding, etc... + public static readonly DependencyProperty DisplayUnitsProperty = + DependencyProperty.Register("DisplayUnits", typeof(bool), typeof(JobModelSummaryViewerControl), new PropertyMetadata(true)); + public JobModelSummaryViewerControl() { InitializeComponent(); diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/FirstValueCollectionConverter.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/FirstValueCollectionConverter.cs new file mode 100644 index 000000000..9f5480e5e --- /dev/null +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/FirstValueCollectionConverter.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Data; +using Tango.Core; +using Tango.PPC.Jobs.Models; + +namespace Tango.PPC.Jobs.Converters +{ + public class FirstValueCollectionConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + if(value is SynchronizedObservableCollection<SegmentModel>) + { + SynchronizedObservableCollection<SegmentModel> list = value as SynchronizedObservableCollection<SegmentModel>; + if(list.Count >= 1) + { + return list[0]; + } + } + return null; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/LengthToWeightConverter.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/LengthToWeightConverter.cs new file mode 100644 index 000000000..e36dd3c63 --- /dev/null +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/LengthToWeightConverter.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Data; + +namespace Tango.PPC.Jobs.Converters +{ + public class LengthToWeightConverter : IMultiValueConverter + { + public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) + { + try + { + double length = System.Convert.ToDouble(values[0]); + double coef = System.Convert.ToDouble(values[1]); + //int spools = System.Convert.ToInt32(values[2]); + var weight = ((double)length * coef) / (1000);//(g) + return weight; + } + catch (Exception ex) + { + return "-"; + } + } + + public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/LengthWithSpoolsConverter.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/LengthWithSpoolsConverter.cs new file mode 100644 index 000000000..60f94b8aa --- /dev/null +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/LengthWithSpoolsConverter.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Data; + +namespace Tango.PPC.Jobs.Converters +{ + public class LengthWithSpoolsConverter : IMultiValueConverter + { + public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) + { + try + { + double length = System.Convert.ToDouble(values[0]); + bool isEureka = System.Convert.ToBoolean(values[1]); + double spools = System.Convert.ToDouble(values[2]); + + if (isEureka) + return length * spools; + else return length; + } + catch + { + return 0d; + } + } + + public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/ObjectsConverter.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/ObjectsConverter.cs new file mode 100644 index 000000000..c5585cc73 --- /dev/null +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/ObjectsConverter.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Data; + +namespace Tango.PPC.Jobs.Converters +{ + public class ObjectsConverter : IMultiValueConverter + { + public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) + { + return values.Clone(); + } + + public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/TimeSpanToHoursConverter.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/TimeSpanToHoursConverter.cs new file mode 100644 index 000000000..10c666c4e --- /dev/null +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/TimeSpanToHoursConverter.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Data; + +namespace Tango.PPC.Jobs.Converters +{ + public class TimeSpanToHoursConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + return ((TimeSpan)value).TotalHours; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + return TimeSpan.FromHours(double.Parse(value.ToString())); + } + } +} diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionView.xaml index 28958cbc8..e737a8f7a 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionView.xaml +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionView.xaml @@ -17,7 +17,7 @@ mc:Ignorable="d" Background="{StaticResource TangoMidBackgroundBrush}" d:DesignHeight="1280" d:DesignWidth="800" Width="750" Height="1200" - d:DataContext="{d:DesignInstance Type=vm:ColorSelectionViewVM, IsDesignTimeCreatable=False}" x:Name="colorSelectionView"> + d:DataContext="{d:DesignInstance Type=vm:ColorSelectionViewVM, IsDesignTimeCreatable=False}" x:Name="colorSelectionView" touch:TouchPanelEureka.MakeEurekaFullScreen="True"> <UserControl.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> @@ -25,6 +25,7 @@ </ResourceDictionary.MergedDictionaries> <converters:ColorTabToVisibilityConverter x:Key="ColorTabToVisibilityConverter" /> + <converters:ObjectsConverter x:Key="ObjectsConverter" /> <sharedConverters:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" /> <sharedConverters:BooleanToVisibilityInverseConverter x:Key="BooleanToVisibilityInverseConverter" /> <sharedConverters:BooleanInverseConverter x:Key="BooleanInverseConverter"/> @@ -268,12 +269,12 @@ <DockPanel Margin="40 0 20 20"> <StackPanel Orientation="Horizontal" DockPanel.Dock="Top" Visibility="{Binding EditColorsGroupMode , Converter={StaticResource BooleanToVisibilityInverseConverter}}"> <TextBlock Text="{Binding Name}" Height="30" Margin="0 10 0 0" FontSize="{StaticResource TangoButtonFontSize}" FontWeight="SemiBold" VerticalAlignment="Center" Foreground="{StaticResource TangoBlackInkBrush}" ></TextBlock> - <touch:TouchIconButton Margin="20 0 0 0" VerticalAlignment="Center" Foreground="{StaticResource TangoBlackInkBrush}" Height="16.5" Icon="PencilAltSolid" Command="{Binding DataContext.EditColorsLibraryCommand, ElementName=colorSelectionView}" CommandParameter="{Binding }" /> + <!--<touch:TouchIconButton Margin="20 0 0 0" VerticalAlignment="Center" Foreground="{StaticResource TangoBlackInkBrush}" Height="16.5" Icon="PencilAltSolid" Command="{Binding DataContext.EditColorsLibraryCommand, ElementName=colorSelectionView}" CommandParameter="{Binding }" />--> </StackPanel> <DockPanel DockPanel.Dock="Top" Visibility="{Binding EditColorsGroupMode , Converter={StaticResource BooleanToVisibilityConverter}}"> - <touch:TouchIconButton DockPanel.Dock="Right" Icon="TrashAltRegular" Width="16" Height="16.5" Margin="0 0 35 1" EnableDropShadow="False" Foreground="{StaticResource TangoBlackInkBrush}" Command="{Binding DataContext.DeleteGroupCommand , ElementName=colorSelectionView}" /> + <touch:TouchIconButton DockPanel.Dock="Right" Icon="TrashAltRegular" Width="16" Height="16.5" Margin="0 0 35 1" EnableDropShadow="False" Foreground="{StaticResource TangoBlackInkBrush}" Command="{Binding DataContext.DeleteGroupCommand , ElementName=colorSelectionView}" CommandParameter="{Binding DataContext,RelativeSource={RelativeSource Self}}"/> <StackPanel Orientation="Horizontal" DockPanel.Dock="Left"> - <touch:TouchTextBox MaxLength="20" Validation.ErrorTemplate="{StaticResource validationTemplate}" MinWidth="100" Margin="0 0 0 0" FontSize="{StaticResource TangoButtonFontSize}" FontWeight="SemiBold" VerticalAlignment="Center" Foreground="{StaticResource TangoBlackInkBrush}" > + <touch:TouchTextBox MaxLength="20" Validation.ErrorTemplate="{StaticResource validationTemplate}" MinWidth="100" Margin="0 0 0 0" FontSize="{StaticResource TangoButtonFontSize}" FontWeight="SemiBold" VerticalAlignment="Center" Foreground="{StaticResource TangoBlackInkBrush}" FocusSelectionMode="SelectAll" > <touch:TouchTextBox.Resources> <helpers:BindingProxy x:Key="proxy" Data="{Binding DataContext, ElementName=colorSelectionView}"/> </touch:TouchTextBox.Resources> @@ -289,7 +290,7 @@ </Binding> </touch:TouchTextBox.Text> </touch:TouchTextBox> - <touch:TouchIconButton Margin="20 0 0 0" VerticalAlignment="Center" Foreground="{StaticResource TangoPrimaryAccentBrush}" Height="16.5" Icon="PencilAltSolid" Command="{Binding DataContext.EditColorsLibraryCommand, ElementName=colorSelectionView}" CommandParameter="{Binding }" /> + <!--<touch:TouchIconButton Margin="20 0 0 0" VerticalAlignment="Center" Foreground="{StaticResource TangoPrimaryAccentBrush}" Height="16.5" Icon="PencilAltSolid" Command="{Binding DataContext.EditColorsLibraryCommand, ElementName=colorSelectionView}" CommandParameter="{Binding }" />--> </StackPanel> </DockPanel> <Rectangle DockPanel.Dock="Bottom" Margin="0 10 0 0" Height="1" Stroke="{StaticResource TangoDividerBrush}" VerticalAlignment="Bottom" /> @@ -310,15 +311,47 @@ <touch:TouchButton Width="68" Height="68" EnableDropShadow="False" Background="Transparent" BorderThickness="0" Command="{Binding DataContext.SelectColorCommand , ElementName=colorSelectionView}" CommandParameter="{Binding }" /> </Border> <Border Background="{Binding Brush}" Width="68" Height="68" CornerRadius="10" BorderBrush="{StaticResource TangoKeyboardKeyDarkBrush}" BorderThickness="2" HorizontalAlignment="Left" Visibility="{Binding DataContext.EditColorsGroupMode , ElementName=colorLibraryList, Converter={StaticResource BooleanToVisibilityConverter}}"> - <touch:TouchButton Width="68" Height="68" EnableDropShadow="False" Background="Transparent" BorderThickness="0" Command="{Binding DataContext.DeleteColorCommand , ElementName=colorSelectionView}" CommandParameter="{Binding }" > + <touch:TouchButton Width="68" Height="68" EnableDropShadow="False" Background="Transparent" BorderThickness="0" Command="{Binding DataContext.DeleteColorCommand , ElementName=colorSelectionView}" > <Border Height="26" Width="28" BorderThickness="0" BorderBrush="{StaticResource TangoKeyboardKeyDarkBrush}" Background="Transparent" HorizontalAlignment="Left"> <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/ColorSelection/delete_color.png" VerticalAlignment="Center" HorizontalAlignment="Center"/> </Border> + <touch:TouchButton.CommandParameter> + <MultiBinding Converter="{StaticResource ObjectsConverter}"> + <Binding/> + <Binding Path="DataContext" ElementName="colorLibraryList"/> + </MultiBinding> + </touch:TouchButton.CommandParameter> </touch:TouchButton> </Border> <!--<Border Background="{Binding Color}" Width="65" Height="65" CornerRadius="6"></Border>--> - <TextBlock Grid.Row="1" Margin="3 12 0 10" MaxWidth="78" HorizontalAlignment="Left" TextAlignment="Left" Text="{Binding Name}" TextWrapping="Wrap" TextTrimming="CharacterEllipsis" ToolTip="{Binding Name}" FontSize="{StaticResource TangoSmallFontSizeBar}" Visibility="{Binding DataContext.EditColorsGroupMode , ElementName=colorLibraryList , Converter={StaticResource BooleanToVisibilityInverseConverter}}"></TextBlock> - <touch:TouchTextBox MaxLength="24" Grid.Row="1" Margin="3 12 0 10" MaxWidth="78" Text="{Binding Name, UpdateSourceTrigger=LostFocus, Mode=TwoWay}" FontSize="{StaticResource TangoSmallFontSizeBar}" Visibility="{Binding DataContext.EditColorsGroupMode , ElementName=colorLibraryList, Converter={StaticResource BooleanToVisibilityConverter}}" HorizontalAlignment="Left" TextBlock.TextAlignment="Left"/> + <TextBlock Grid.Row="1" Margin="3 12 0 10" MaxWidth="78" HorizontalAlignment="Left" TextAlignment="Left" Text="{Binding Name}" TextWrapping="Wrap" TextTrimming="CharacterEllipsis" ToolTip="{Binding Name}" FontSize="{StaticResource TangoSmallFontSizeBar}" Visibility="{Binding DataContext.EditColorsGroupMode , ElementName=colorLibraryList , Converter={StaticResource BooleanToVisibilityInverseConverter}}"> + <TextBlock.Style> + <Style TargetType="TextBlock"> + <Setter Property="Foreground" Value="{StaticResource TangoDarkForegroundBrush}" /> + <Setter Property="Background" Value="Transparent" /> + <Style.Triggers> + <DataTrigger Binding="{Binding IsSelected}" Value="True"> + <!--<Setter Property="Foreground" Value="{StaticResource TangoRedBrush}" />--> + <Setter Property="Background" Value="LightBlue"/> + </DataTrigger> + </Style.Triggers> + </Style> + </TextBlock.Style> + </TextBlock> + <touch:TouchTextBox MaxLength="24" Grid.Row="1" Margin="3 12 0 10" MaxWidth="78" Text="{Binding Name, UpdateSourceTrigger=LostFocus, Mode=TwoWay}" FontSize="{StaticResource TangoSmallFontSizeBar}" Visibility="{Binding DataContext.EditColorsGroupMode , ElementName=colorLibraryList, Converter={StaticResource BooleanToVisibilityConverter}}" HorizontalAlignment="Left" TextBlock.TextAlignment="Left" FocusSelectionMode="SelectAll"> + <touch:TouchTextBox.Style> + <Style TargetType="touch:TouchTextBox"> + <Setter Property="Foreground" Value="{StaticResource TangoDarkForegroundBrush}" /> + <Setter Property="Background" Value="Transparent" /> + <Style.Triggers> + <DataTrigger Binding="{Binding IsSelected}" Value="True"> + <!--<Setter Property="Foreground" Value="{StaticResource TangoRedBrush}" />--> + <Setter Property="Background" Value="LightBlue"/> + </DataTrigger> + </Style.Triggers> + </Style> + </touch:TouchTextBox.Style> + </touch:TouchTextBox> </Grid> </DataTemplate> </ItemsControl.ItemTemplate> @@ -329,17 +362,21 @@ <DataTemplate x:Key="saveMyColorsDlg"> <Canvas Margin="200 50 100 0" Visibility="{Binding SaveMyColorMode, Mode=TwoWay, Converter={StaticResource BooleanToVisibilityConverter}}" > - <Border x:Name="SaveMyColorGroups" Width="280" Background="Transparent" Height="Auto" MinHeight="100" MaxHeight="450"> + <Border x:Name="SaveMyColorGroups" Width="380" Background="Transparent" Height="Auto" MinHeight="100" MaxHeight="550"> <Grid MinWidth="260" > <Border Background="{StaticResource TangoPrimaryBackgroundBrush}" CornerRadius="12" BorderThickness="0" MinHeight="100" Margin="0"> <Border.Effect> <DropShadowEffect Opacity="0.5" ShadowDepth="6" Color="Silver" BlurRadius="10" Direction="270"/> </Border.Effect> - <Grid> - <Border Background="{StaticResource TangoPrimaryBackgroundBrush}" CornerRadius="12" BorderThickness="0" Padding="10" MinHeight="100" Margin="0 20 0 0"> + <StackPanel Orientation="Vertical"> + <Border Background="{StaticResource TangoPrimaryBackgroundBrush}" CornerRadius="12" BorderThickness="0" Padding="10" MinHeight="100" Margin="0 10 0 0"> <StackPanel Orientation="Vertical"> + <StackPanel Orientation="Horizontal" Height="60" > + <TextBlock VerticalAlignment="Center" FontSize="{StaticResource TangoButtonFontSize}" Margin="20 0 0 0" >Name: </TextBlock> + <touch:TouchTextBox Width="220" Height="40" FontSize="{StaticResource TangoButtonFontSize}" Margin=" 20 0 10 0" Text="{Binding MyColorName}" FocusSelectionMode="SelectAll"></touch:TouchTextBox> + </StackPanel> <Grid Margin="14 10 14 10" > - <ListBox HorizontalAlignment="Stretch" MaxHeight="320" ItemsSource="{Binding Libraries}" Style="{StaticResource ListBoxVerticalScroll}" + <ListBox HorizontalAlignment="Stretch" MaxHeight="220" ItemsSource="{Binding Libraries}" Style="{StaticResource ListBoxVerticalScroll}" ScrollViewer.VerticalScrollBarVisibility="Visible" > <ListBox.ItemsPanel> <ItemsPanelTemplate> @@ -367,10 +404,26 @@ </StackPanel> </StackPanel> </Border> - <Border BorderThickness="0" Width="Auto" Height="Auto" BorderBrush="{StaticResource TangoDividerBrush}" Margin="0 18 15 0" HorizontalAlignment="Right" VerticalAlignment="Top"> + <!--<Border BorderThickness="0" Width="Auto" Height="Auto" BorderBrush="{StaticResource TangoDividerBrush}" Margin="0 18 15 0" HorizontalAlignment="Right" VerticalAlignment="Top"> <touch:TouchImageButton Width="22" Height="15" Image="{StaticResource Close_SaveMyColor}" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0 0 0 0" EnableDropShadow="False" Background="Transparent" BorderThickness="0" Command="{Binding SaveMyColorsCommand}" Focusable="False"/> + </Border>--> + <Border BorderThickness="0" Width="Auto" Height="Auto" BorderBrush="{StaticResource TangoDividerBrush}" Margin="0 10 0 20" Padding="0" HorizontalAlignment="Center" VerticalAlignment="Bottom"> + <touch:TouchButton Width="100" Height="40" CornerRadius="20" Command="{Binding SaveMyColorsCommand}" TextElement.Foreground="{StaticResource TangoLightForegroundBrush}" FontSize="{StaticResource TangoButtonFontSize}" ShadowDepth="0" Content="OK"> + <touch:TouchButton.Style > + <Style TargetType="touch:TouchButton" > + <Setter Property="Foreground" Value="{StaticResource TangoPrimaryAccentBrush}"></Setter> + <Setter Property="Background" Value="{StaticResource TangoMidAccentBrush}"/> + <Style.Triggers> + <Trigger Property="IsEnabled" Value="False"> + <Setter Property="Foreground" Value="{StaticResource TangoDisabledForegroundBrush}"></Setter> + <Setter Property="Background" Value="{StaticResource TangoDisabledBackgroundBrush}"></Setter> + </Trigger> + </Style.Triggers> + </Style> + </touch:TouchButton.Style> + </touch:TouchButton> </Border> - </Grid> + </StackPanel> </Border> </Grid> </Border> @@ -634,7 +687,7 @@ <DockPanel > <Grid DockPanel.Dock="Bottom" Height="137"> <Rectangle Height="1" Stroke="{StaticResource TangoDividerBrush}" HorizontalAlignment="Stretch"/> - <Grid Margin="48 50 0 0" > + <Grid Margin="48 30 0 0" > <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto"/> <ColumnDefinition Width="1*"/> @@ -650,15 +703,30 @@ </Grid> </Grid> <DockPanel x:Name="headerPanel" Height="122" DockPanel.Dock="Top"> - <Rectangle DockPanel.Dock="Bottom" Margin="43 0 63 10" Height="1" Stroke="{StaticResource TangoDividerBrush}" VerticalAlignment="Bottom"/> + <Rectangle DockPanel.Dock="Bottom" Margin="43 0 63 0" Height="1" Stroke="{StaticResource TangoDividerBrush}" VerticalAlignment="Bottom"/> <TextBlock DockPanel.Dock="Left" Margin="43 53 0 28" HorizontalAlignment="Left" VerticalAlignment="Center" FontSize="{StaticResource TangoHeaderFontSize}" FontWeight="SemiBold">My Colors</TextBlock> <touch:TouchImageButton DockPanel.Dock="Top" Width="32" Height="32" Image="{StaticResource Close_mycolorsdlg}" HorizontalAlignment="Right" Margin="0 20 23 0" EnableDropShadow="False" Background="Transparent" BorderThickness="0" Command="{Binding CloseMyColorsCommand}"/> </DockPanel> - <Grid> + <StackPanel Orientation="Vertical" Margin="0"> + <DockPanel> + <touch:TouchButton DockPanel.Dock="Right" Height="48" Command="{Binding DataContext.EditColorsLibrariesCommand, ElementName=colorSelectionView}" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0 0 30 10" Background="Transparent" ShadowDepth="0" ShadowColor="Transparent"> + <StackPanel Height="48" Width="160" Orientation="Horizontal"> + <touch:TouchIcon Margin="0 7 0 0" VerticalAlignment="Center" Foreground="{StaticResource TangoBlackInkBrush}" Height="16.5" Icon="PencilAltSolid" /> + <TextBlock Text="{Binding EditColorButtonName, Mode=TwoWay, TargetNullValue=EDIT}" Height="30" Margin="25 10 0 0" FontSize="{StaticResource TangoButtonFontSize}" FontWeight="SemiBold" VerticalAlignment="Center" Foreground="{StaticResource TangoBlackInkBrush}" ></TextBlock> + </StackPanel> + </touch:TouchButton> + <Grid DockPanel.Dock="Left" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="60 0 0 0" Width="280"> + <DockPanel> + <Image DockPanel.Dock="Left" HorizontalAlignment="Left" VerticalAlignment="Bottom" Width="40" Height="40" Source="{StaticResource SearchImage}"/> + <!--<touch:TouchIcon DockPanel.Dock="Left" Foreground="{StaticResource TangoGrayBrush}" Width="20" Height="20" VerticalAlignment="Bottom" Icon="Magnify" />--> + <touch:TouchTextBox Margin="5 0 0 0" Width="300" Text="{Binding SearchColorText,Mode=TwoWay, UpdateSourceTrigger=LostFocus}" ></touch:TouchTextBox> + </DockPanel> + </Grid> + </DockPanel> <ListBox x:Name="listLibraries" Grid.Row="1" Margin="10 0 10 60" ItemsSource="{Binding Libraries}" Style="{StaticResource ListBoxVerticalScroll}" - ScrollViewer.VerticalScrollBarVisibility="Visible" Width="560" ItemTemplate="{StaticResource ColorLibrary_Template}"> + ScrollViewer.VerticalScrollBarVisibility="Visible" Width="560" ItemTemplate="{StaticResource ColorLibrary_Template}" Height="580"> </ListBox> - </Grid> + </StackPanel> </DockPanel> </Grid> </Border> @@ -667,7 +735,7 @@ </Grid> </Border> <Border Visibility="{Binding IsOpenVectorFineTuningDialog, Converter={StaticResource BooleanToVisibilityConverter}}"> - <local:VectorFineTuningDialog DataContext="{Binding VectorFineTuningDialogVM}" /> + <local:VectorFineTuningDialog DataContext="{Binding VectorFineTuningDialogVM}" Width="{Binding ActualWidth, ElementName=local:ColorSelectionView}" Height="{Binding ActualHeight, ElementName=local:colorSelectionView}"/> </Border> </Grid> </UserControl> diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionViewVM.cs index 7e5f73637..3146da179 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionViewVM.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionViewVM.cs @@ -7,6 +7,7 @@ using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; +using System.Windows.Data; using Tango.BL.Entities; using Tango.BL.Enumerations; using Tango.ColorConversion; @@ -315,6 +316,8 @@ namespace Tango.PPC.Jobs.Dialogs } } + public ICollectionView ColorLibrariesView { get; private set; } + public Dictionary<ColorSpaces, List<FavoriteColor>> _colorSpaceToFavoriteColorDictionary; @@ -392,6 +395,16 @@ namespace Tango.PPC.Jobs.Dialogs } } + private String _searchColorText; + /// <summary> + /// Gets or sets the search filter. + /// </summary> + public String SearchColorText + { + get { return _searchColorText; } + set { _searchColorText = value; RaisePropertyChangedAuto(); OnSearchColorChanged(); } + } + private bool _isOpenVectorFineTuningDialog; public bool IsOpenVectorFineTuningDialog @@ -408,6 +421,24 @@ namespace Tango.PPC.Jobs.Dialogs get { return _vectorFineTuningDialogVM; } set { _vectorFineTuningDialogVM = value; RaisePropertyChangedAuto(); } } + + private String _myColorName; + + public String MyColorName + { + get { return _myColorName; } + set { _myColorName = value; + RaisePropertyChangedAuto();} + } + + private String _editColorButtonName; + + public String EditColorButtonName + { + get { return _editColorButtonName; } + set { _editColorButtonName = value; + RaisePropertyChangedAuto();} + } #endregion @@ -426,10 +457,11 @@ namespace Tango.PPC.Jobs.Dialogs public RelayCommand OpenMyColorsCommand { get; set; } public RelayCommand CloseMyColorsCommand { get; set; } public RelayCommand AddGroupCommand { get; set; } - public RelayCommand DeleteGroupCommand { get; set; } + public RelayCommand<ColorLibrary> DeleteGroupCommand { get; set; } public RelayCommand<FavoriteColor> SelectColorCommand { get; set; } public RelayCommand<ColorLibrary> EditColorsLibraryCommand { get; set; } - public RelayCommand<FavoriteColor> DeleteColorCommand { get; set; } + public RelayCommand EditColorsLibrariesCommand { get; set; } + public RelayCommand<object> DeleteColorCommand { get; set; } public RelayCommand VectorFineTuningCommand { get; set; } @@ -471,15 +503,16 @@ namespace Tango.PPC.Jobs.Dialogs SaveMyColorsCommand = new RelayCommand(SaveMyColors); OpenMyColorsCommand = new RelayCommand(() => { MyColorsMode = true; }); - CloseMyColorsCommand = new RelayCommand(() => { MyColorsMode = false; }); + CloseMyColorsCommand = new RelayCommand(() => { MyColorsMode = false; SearchColorText = "";}); SelectColorCommand = new RelayCommand<FavoriteColor>(SelectColor); AddGroupCommand = new RelayCommand(AddGroup); AddNewGroupCommand = new RelayCommand<string>(AddNewGroup); AddNewGroupAndColorCommand = new RelayCommand<string>(AddNewGroupAndColor); AddColorToLibraryCommand = new RelayCommand<ColorLibrary>(AddColorToLibrary); - DeleteGroupCommand = new RelayCommand(DeleteGroup); + DeleteGroupCommand = new RelayCommand<ColorLibrary>(DeleteGroup); EditColorsLibraryCommand = new RelayCommand<ColorLibrary>(EditColorsLibrary); - DeleteColorCommand = new RelayCommand<FavoriteColor>(DeleteColor); + EditColorsLibrariesCommand = new RelayCommand(EditColorsLibraries); + DeleteColorCommand = new RelayCommand<object>(DeleteColor); MyColorsMode = false; EditColorsGroupMode = false; SaveMyColorMode = false; @@ -497,6 +530,33 @@ namespace Tango.PPC.Jobs.Dialogs Libraries.CollectionChanged -= Libraries_CollectionChanged; Libraries.CollectionChanged += Libraries_CollectionChanged; + ColorLibrariesView = CollectionViewSource.GetDefaultView(Libraries); + ColorLibrariesView.SortDescriptions.Add(new SortDescription(nameof(ColorLibrary.Name), ListSortDirection.Ascending)); + ColorLibrariesView.Filter = new Predicate<object> (item => + { + var ColorLibraryItem = item as ColorLibrary; + + if (ColorLibraryItem != null) + { + if (String.IsNullOrEmpty(SearchColorText)) + { + ColorLibraryItem.ColorList.ToList().ForEach(x => x.IsSelected = false); + return true; + } + else + { + ColorLibraryItem.ColorList.ToList().ForEach( x=> x.IsSelected = x.Name.ToLower().StartsWith(SearchColorText.ToLower())); + + if(ColorLibraryItem.ColorList.ToList().Any(x=>x.Name.ToLower().StartsWith(SearchColorText.ToLower()))) + return true; + return (ColorLibraryItem.Name.ToLower().StartsWith(SearchColorText.ToLower())); + } + } + else + { + return true; + } + }); base.OnShow(); SegmentIndex = DialogEditObject.SelectedSegment.SegmentIndex; @@ -555,7 +615,7 @@ namespace Tango.PPC.Jobs.Dialogs SelectedBrushStop.ColorChanged += OnBrushColorChanged; CheckIsSelectedColorInLibrary(); SelectedBrushStop.ConvertColor();//test OOG - } + } @@ -667,6 +727,14 @@ namespace Tango.PPC.Jobs.Dialogs } } + private void OnSearchColorChanged() + { + if (ColorLibrariesView != null) + { + ColorLibrariesView.Refresh(); + } + } + private double GetMaxCMYKValueOrDefault(LiquidTypes type) { @@ -771,6 +839,7 @@ namespace Tango.PPC.Jobs.Dialogs var favoriteColor = colors.FirstOrDefault(item => item.Color == SelectedBrushStop.Color); if (favoriteColor != null) { + MyColorName = favoriteColor.Name; foreach (var library in Libraries) { if(library.IsColorExist(favoriteColor)) @@ -782,6 +851,7 @@ namespace Tango.PPC.Jobs.Dialogs } } } + } } catch( Exception ex) @@ -796,6 +866,15 @@ namespace Tango.PPC.Jobs.Dialogs else { SaveMyColorMode = !SaveMyColorMode; + String colorName = "MyColor"; + if (SelectedBrushStop != null && SelectedBrushStop.SegmentModel != null + && SelectedBrushStop.SegmentModel.Job != null) + { + colorName = SelectedBrushStop.SegmentModel.Job.Name; + if(colorName.Length > 40) + colorName = colorName.Substring(0, 40); + } + MyColorName = colorName; } IsBusy = false; @@ -885,7 +964,7 @@ namespace Tango.PPC.Jobs.Dialogs newcolor.Brightness = SelectedBrushStop.Brightness; newcolor.RmlGuid = SelectedBrushStop.SegmentModel.Job.Rml.Guid; int index = obj.ColorList.Count() + 1; - newcolor.Name = String.Format($"Color{index}");//String.Format("#{0:X2}{1:X2}{2:X2}", newcolor.Red, newcolor.Green, newcolor.Blue); + newcolor.Name = MyColorName;//String.Format($"Color{index}");//String.Format("#{0:X2}{1:X2}{2:X2}", newcolor.Red, newcolor.Green, newcolor.Blue); obj.AddToLibrary(newcolor); @@ -963,22 +1042,62 @@ namespace Tango.PPC.Jobs.Dialogs } } - private void DeleteColor(FavoriteColor favoriteColor) + private void EditColorsLibraries() { - if (favoriteColor != null && SelectedColorLibrary != null) + if (EditColorsGroupMode) { - SelectedColorLibrary.RemoveFromLibrary(favoriteColor); - LoadLibraryDictionary(); + //SelectedColorLibrary.EditColorsGroupMode = false; + EditColorsGroupMode = false; + EditColorButtonName = "EDIT"; + foreach (var library in Libraries) + { + library.EditColorsGroupMode = false; + } + //save all + } + else + { + EditColorsGroupMode = true; + EditColorButtonName = "SAVE"; + foreach (var library in Libraries) + { + library.EditColorsGroupMode = true; + } + + //SelectedColorLibrary = library;SelectedColorLibrary + //SelectedColorLibrary.EditColorsGroupMode = true; } } - private void DeleteGroup() + private void DeleteColor(object parameter) + { + var values = parameter as object[]; + if (values != null && values.Count() == 2) + { + var favoriteColor = values[0] as FavoriteColor; + var colorlibrary = values[1] as ColorLibrary; + if (favoriteColor != null && colorlibrary != null) + { + colorlibrary.RemoveFromLibrary(favoriteColor); + LoadLibraryDictionary(); + } + } + + } + + private void DeleteGroup(ColorLibrary library) { - if (SelectedColorLibrary != null) + //if (SelectedColorLibrary != null) + //{ + // //message + // Libraries.Remove(SelectedColorLibrary); + // SelectedColorLibrary.Delete(); + //} + if (library != null) { //message - Libraries.Remove(SelectedColorLibrary); - SelectedColorLibrary.Delete(); + Libraries.Remove(library); + library.Delete(); } } diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/JobCreationView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/JobCreationView.xaml index 19ef9cf4c..f018acf97 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/JobCreationView.xaml +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/JobCreationView.xaml @@ -10,7 +10,7 @@ xmlns:touch="clr-namespace:Tango.Touch.Controls;assembly=Tango.Touch" xmlns:keyboard="clr-namespace:Tango.Touch.Keyboard;assembly=Tango.Touch" mc:Ignorable="d" - Background="{StaticResource TangoMidBackgroundBrush}" d:DesignHeight="861" d:DesignWidth="600" Width="750" Height="1200" d:DataContext="{d:DesignInstance Type=local:JobCreationViewVM, IsDesignTimeCreatable=False}" HorizontalAlignment="Center"> + Background="{StaticResource TangoMidBackgroundBrush}" d:DesignHeight="861" d:DesignWidth="600" Width="750" Height="1200" d:DataContext="{d:DesignInstance Type=local:JobCreationViewVM, IsDesignTimeCreatable=False}" HorizontalAlignment="Center" touch:TouchPanelEureka.MakeEurekaFullScreen="True"> <UserControl.Resources> <converters:JobTypeToImageConverter x:Key="JobTypeToImageConverter" /> diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/MessageDiscardAdvancedOptions.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/MessageDiscardAdvancedOptions.xaml new file mode 100644 index 000000000..e28b719ba --- /dev/null +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/MessageDiscardAdvancedOptions.xaml @@ -0,0 +1,35 @@ +<UserControl x:Class="Tango.PPC.Jobs.Dialogs.MessageDiscardAdvancedOptions" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:touch="clr-namespace:Tango.Touch.Controls;assembly=Tango.Touch" + xmlns:local="clr-namespace:Tango.PPC.Jobs.Dialogs" + mc:Ignorable="d" + Background="Transparent" d:DesignHeight="630" d:DesignWidth="560" Width="480" Height="350" + d:DataContext="{d:DesignInstance Type=local:MessageDiscardAdvancedOptionsVM, IsDesignTimeCreatable=False}"> + <Border BorderBrush="{StaticResource TangoRippleDarkBrush}" Margin="-24" CornerRadius="40" BorderThickness="2" Background="{StaticResource TangoPrimaryBackgroundBrush}"> + + <Grid> + <Grid.RowDefinitions> + <RowDefinition Height="Auto"/> + <RowDefinition Height="Auto"/> + <RowDefinition Height="1*"/> + </Grid.RowDefinitions> + + <DockPanel VerticalAlignment="Top" Margin="0 16 18 18" Grid.Row="0"> + <touch:TouchIconButton DockPanel.Dock="Right" VerticalAlignment="Center" Height="46" Command="{Binding CloseCommand}" Icon="CloseCircleOutline" RippleBrush="{StaticResource TangoRippleDarkBrush}" Foreground="{StaticResource TangoDarkForegroundBrush}" HorizontalAlignment="Right" /> + </DockPanel> + + <StackPanel Grid.Row="1"> + <TextBlock Height="Auto" Margin="50 20 50 10" FontSize="{StaticResource TangoHeaderFontSize}" FontWeight="SemiBold" HorizontalAlignment="Center" TextWrapping="Wrap">Discard all advanced options?</TextBlock> + + <TextBlock Height="Auto" Margin="50 20 50 10" FontSize="{StaticResource TangoMessageBoxButtonFontSize}" FontWeight="SemiBold" HorizontalAlignment="Center" TextWrapping="Wrap">Only the first color will remain.</TextBlock> + </StackPanel> + <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Grid.Row="2"> + <touch:TouchButton Margin="0 21 0 0 " Command="{Binding CloseCommand}" Width="164" Height="60" FontSize="{StaticResource TangoMessageBoxButtonFontSize}" BorderBrush="{StaticResource TangoPrimaryAccentBrush}" VerticalAlignment="Center" HorizontalAlignment="Center" Style="{StaticResource TangoMessageBoxButton}" BorderThickness="2" >No</touch:TouchButton> + <touch:TouchButton Margin="40 21 0 0 " Command="{Binding OKCommand}" Width="164" Height="60" FontSize="{StaticResource TangoMessageBoxButtonFontSize}" Background="{StaticResource TangoPrimaryAccentBrush}" Foreground="{StaticResource TangoLightForegroundBrush}" VerticalAlignment="Center" HorizontalAlignment="Center" Style="{StaticResource TangoMessageBoxButton}">Yes</touch:TouchButton> + </StackPanel> + </Grid> + </Border> +</UserControl> diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/MessageDiscardAdvancedOptions.xaml.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/MessageDiscardAdvancedOptions.xaml.cs new file mode 100644 index 000000000..037f191ba --- /dev/null +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/MessageDiscardAdvancedOptions.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace Tango.PPC.Jobs.Dialogs +{ + /// <summary> + /// Interaction logic for MessageDiscardAdvancedOptionsDialog.xaml + /// </summary> + public partial class MessageDiscardAdvancedOptions : UserControl + { + public MessageDiscardAdvancedOptions() + { + InitializeComponent(); + } + } +} diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/MessageDiscardAdvancedOptionsVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/MessageDiscardAdvancedOptionsVM.cs new file mode 100644 index 000000000..8165a3013 --- /dev/null +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/MessageDiscardAdvancedOptionsVM.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.SharedUI; + +namespace Tango.PPC.Jobs.Dialogs +{ + public class MessageDiscardAdvancedOptionsVM : DialogViewVM + { + + public MessageDiscardAdvancedOptionsVM() + { + + } + } +} diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/VectorFineTuningDialog.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/VectorFineTuningDialog.xaml index b967ddec2..2e3732eff 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/VectorFineTuningDialog.xaml +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/VectorFineTuningDialog.xaml @@ -15,7 +15,7 @@ mc:Ignorable="d" Background="{StaticResource TangoMidBackgroundBrush}" d:DesignHeight="1280" d:DesignWidth="800" Width="750" Height="1200" - d:DataContext="{d:DesignInstance Type=vm:VectorFineTuningDialogVM, IsDesignTimeCreatable=False}" > + d:DataContext="{d:DesignInstance Type=vm:VectorFineTuningDialogVM, IsDesignTimeCreatable=False}" touch:TouchPanelEureka.MakeEurekaFullScreen="True"> <UserControl.Resources> <ResourceDictionary> @@ -231,7 +231,7 @@ <Run Text="{Binding TrialNumber, Mode=OneWay}" Foreground="{StaticResource TangoGrayTextBrush}"></Run> </TextBlock> </StackPanel> - + <Grid Grid.Row="1" HorizontalAlignment="Stretch" Grid.RowSpan="2" > <touch:TouchNavigationLinks Grid.Row="1" BorderBrush="{StaticResource TangoDividerBrush}" BorderThickness="0 0 0 3" x:Name="navigationCSTLinks" SelectionChanged="TouchNavigationLinks_SelectionChanged" HorizontalContentAlignment="Center" SelectedIndex="{Binding SelectedTabIndex,Mode=TwoWay}" VerticalAlignment="Bottom" Margin="0,0,0,30" Padding="40 0 40 0" FontSize="{StaticResource TangoNavigationLinksFontSize}" Grid.RowSpan="2" PreviewMouseDown="NavigationCSTLinks_PreviewMouseDown" PreviewTouchDown="NavigationCSTLinks_PreviewTouchDown" > @@ -262,6 +262,11 @@ </touch:TouchNavigationLinks.Style> </touch:TouchNavigationLinks> + <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Margin="0 0 20 20" > + <TextBlock HorizontalAlignment="Left" VerticalAlignment="Center" FontSize="{StaticResource TangoButtonFontSize}">Length:</TextBlock> + <touch:TouchNumericTextBox Margin="20 0 20 5" Width="80" Height="40" HorizontalAlignment="Stretch" BorderThickness="0.8" Minimum="60" Maximum="999" Value="{Binding FineTuningTrialLengthMeters, Mode=TwoWay}" FontSize="{StaticResource TangoButtonFontSize}" FontWeight="Normal" BorderBrush="{StaticResource TangoDividerBrush}" HideUnderline="True" HasDecimalPoint="False" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/> + </StackPanel> + </Grid> <Grid Grid.Row="3" Margin="40 0 20 0"> <Grid Visibility="{Binding IsManualFineTuning, Converter={StaticResource BooleanToVisibilityInverseConverter}}" Margin="0 0 24 0" x:Name="Automatic"> @@ -548,7 +553,18 @@ <TextBlock FontSize="{StaticResource TangoSmallFontSize}" FontWeight="SemiBold" Margin="10 0 0 -5" HorizontalAlignment="Left" >Correction</TextBlock> <Border Grid.Row="1" Height="220" Margin="0 10 0 0" CornerRadius="0 0 0 0" BorderThickness="0" BorderBrush="{StaticResource TangoGrayBrush}" Background="{Binding VisualCorrectionModel.ManualColorBrush}" > - <UniformGrid Rows="3" Columns="1" VerticalAlignment="Bottom" Background="Transparent"> + <Grid> + <Grid.RowDefinitions> + <RowDefinition Height="1*"/> + <RowDefinition Height="Auto"/> + </Grid.RowDefinitions> + <StackPanel Grid.Row="0" Orientation="Vertical" VerticalAlignment="Center" HorizontalAlignment="Center" Visibility="{Binding VisualCorrectionModel.IsOutOfGamut,Converter={StaticResource BooleanToVisibilityConverter}}"> + <Image Margin="30 0 24 0" Stretch="Fill" Width="47" Height="43" RenderOptions.BitmapScalingMode="Fant" Source="../Images/ColorSelection/Exclamation.png" HorizontalAlignment="Center"></Image> + <!--<Border Margin=" 0 10 0 0" MinWidth="115" Height="31" Background="{StaticResource TangoDarkForegroundBrush}" CornerRadius="2"> + <TextBlock Margin="10 0" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="{StaticResource TangoLightForegroundBrush}" FontSize="{StaticResource TangoSmallFontSize}" FontWeight="SemiBold" Text="This color is not supported." ></TextBlock> + </Border>--> + </StackPanel> + <UniformGrid Grid.Row="1" Rows="3" Columns="1" VerticalAlignment="Bottom" Background="Transparent"> <TextBlock FontWeight="Medium" Margin="10 10 0 0" VerticalAlignment="Center" Foreground="{Binding VisualCorrectionModel.ManualColorBrush, Converter={StaticResource ColorContrastConverter}}" FontSize="{StaticResource TangoSmallFontSize}"> <Run Text="L:" ></Run> <Run Text="{Binding VisualCorrectionModel.L, StringFormat={}{0:F2}}"></Run> @@ -562,7 +578,8 @@ <Run Text="{Binding VisualCorrectionModel.B, StringFormat={}{0:F2}}"></Run> </TextBlock> </UniformGrid> - </Border> + </Grid> + </Border> </StackPanel> <StackPanel Orientation="Vertical" Grid.Column="2" Grid.Row="1" Margin="0 10 0 0" Visibility="{Binding IsTargetVisible, Converter={StaticResource BooleanToVisibilityConverter}, Mode=TwoWay}"> <TextBlock FontSize="{StaticResource TangoSmallFontSize}" FontWeight="SemiBold" Margin="10 0 0 -5" HorizontalAlignment="Left" >Target</TextBlock> diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/VectorFineTuningDialogVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/VectorFineTuningDialogVM.cs index e473fa420..e6094d0d7 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/VectorFineTuningDialogVM.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/VectorFineTuningDialogVM.cs @@ -716,7 +716,20 @@ namespace Tango.PPC.Jobs.Dialogs } } } - + + private int _fineTuningTrialLengthMeters; + + public int FineTuningTrialLengthMeters + { + get { return _fineTuningTrialLengthMeters; } + set + { + _fineTuningTrialLengthMeters = value; + RaisePropertyChangedAuto(); + OnUpdateSettingineTuningTrialLengthMeters(); + } + } + #endregion #region Commands @@ -757,6 +770,9 @@ namespace Tango.PPC.Jobs.Dialogs IsManualFineTuning = false; IsOnlyManual = false; VisualCorrectionModel = new VisualOffsetModel(); + + var settings = SettingsManager.Default.GetOrCreate<PPCSettings>(); + FineTuningTrialLengthMeters = settings.FineTuningTrialLengthMeters; } /// <summary> @@ -818,6 +834,12 @@ namespace Tango.PPC.Jobs.Dialogs TargetB = brushstop.B; TargetA = brushstop.A; BrushStopModel.ConvertColorToVolume(); + if (BrushStopModel.Black > 0 && BrushStopModel.Black < 0.5) + { + BrushStopModel.PreventPropertyUpdate = true; + BrushStopModel.Black = 0; + BrushStopModel.PreventPropertyUpdate = false; + } BrushStopModel.ColorSpace = ColorSpaces.LAB; IsOnlyManual = false; } @@ -828,6 +850,7 @@ namespace Tango.PPC.Jobs.Dialogs Magenta = BrushStopModel.Magenta; Yellow = BrushStopModel.Yellow; Black = BrushStopModel.Black; + MeasuredL = MeasuredB = MeasuredA = null; TestColor = null; @@ -1319,6 +1342,7 @@ namespace Tango.PPC.Jobs.Dialogs ActiveLogModel.VectorCorrectionL = VisualCorrectionModel.L; ActiveLogModel.VectorCorrectionA = VisualCorrectionModel.A; ActiveLogModel.VectorCorrectionB = VisualCorrectionModel.B; + VisualCorrectionModel.IsOutOfGamut = IsOutOfGammot(); TestCommand.RaiseCanExecuteChanged(); ByPassTestCommand.RaiseCanExecuteChanged(); @@ -1333,6 +1357,7 @@ namespace Tango.PPC.Jobs.Dialogs ActiveLogModel.VectorCorrectionL = VisualCorrectionModel.L; ActiveLogModel.VectorCorrectionA = VisualCorrectionModel.A; ActiveLogModel.VectorCorrectionB = VisualCorrectionModel.B; + VisualCorrectionModel.IsOutOfGamut = IsOutOfGammot(); TestCommand.RaiseCanExecuteChanged(); ByPassTestCommand.RaiseCanExecuteChanged(); } @@ -1347,10 +1372,35 @@ namespace Tango.PPC.Jobs.Dialogs ActiveLogModel.VectorCorrectionL = VisualCorrectionModel.L; ActiveLogModel.VectorCorrectionA = VisualCorrectionModel.A; ActiveLogModel.VectorCorrectionB = VisualCorrectionModel.B; + VisualCorrectionModel.IsOutOfGamut = IsOutOfGammot(); TestCommand.RaiseCanExecuteChanged(); ByPassTestCommand.RaiseCanExecuteChanged(); } + private bool IsOutOfGammot() + { + BrushStopModel.ColorSpace = ColorSpaces.LAB; + BrushStopModel.PreventPropertyUpdate = true; + BrushStopModel.L = ActiveLogModel.VectorCorrectionL; + BrushStopModel.A = ActiveLogModel.VectorCorrectionA; + BrushStopModel.B = ActiveLogModel.VectorCorrectionB; + BrushStopModel.PreventPropertyUpdate = false; + BrushStopModel.IsOutputOfGamut(ColorSpaces.LAB); + + return BrushStopModel.IsOutOfGamut; + + } + + private void OnUpdateSettingineTuningTrialLengthMeters() + { + if (FineTuningTrialLengthMeters != 0) + { + var settings = SettingsManager.Default.GetOrCreate<PPCSettings>(); + settings.FineTuningTrialLengthMeters = FineTuningTrialLengthMeters; + settings.Save(); + } + } + #endregion #region Job @@ -1420,7 +1470,7 @@ namespace Tango.PPC.Jobs.Dialogs } BrushStopModel.ColorSpace = ColorSpaces.LAB; } - var settings = SettingsManager.Default.GetOrCreate<PPCSettings>(); + // var settings = SettingsManager.Default.GetOrCreate<PPCSettings>(); using (ObservablesContext db = ObservablesContext.CreateDefault()) { @@ -1440,7 +1490,7 @@ namespace Tango.PPC.Jobs.Dialogs Segment segment = new Segment(); segment.Name = "VFT Segment"; - segment.Length = settings.FineTuningTrialLengthMeters; + segment.Length = FineTuningTrialLengthMeters;//settings.FineTuningTrialLengthMeters; segment.Job = job; segment.JobGuid = job.Guid; diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/BrushStopModel.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/BrushStopModel.cs index d415dbb79..ffec3cfa1 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/BrushStopModel.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/BrushStopModel.cs @@ -1,23 +1,18 @@ -using System; -using ColorMine.ColorSpaces; +using ColorMine.ColorSpaces; +using Newtonsoft.Json; +using System; using System.Collections.Generic; using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Tango.BL.Entities; -using Tango.SharedUI; using System.Windows.Media; +using Tango.BL.Dispensing; +using Tango.BL.Entities; using Tango.BL.Enumerations; -using Tango.Core.Threading; using Tango.ColorConversion; -using System.Reflection; -using Tango.BL.Dispensing; -using Tango.BL; -using Tango.Core.ExtensionMethods; -using Newtonsoft.Json; -using Tango.Settings; -using Tango.PPC.Common; +using Tango.Core.Threading; using Tango.PMR.ColorLab; +using Tango.PPC.Common; +using Tango.Settings; +using Tango.SharedUI; namespace Tango.PPC.Jobs.Models { @@ -1558,6 +1553,10 @@ namespace Tango.PPC.Jobs.Models _yellow = (output.SingleCoordinates.OutputLiquids.SingleOrDefault(x => x.LiquidType == PMR.ColorLab.LiquidType.Yellow).Volume); _magenta = (output.SingleCoordinates.OutputLiquids.SingleOrDefault(x => x.LiquidType == PMR.ColorLab.LiquidType.Magenta).Volume); _black = (output.SingleCoordinates.OutputLiquids.SingleOrDefault(x => x.LiquidType == PMR.ColorLab.LiquidType.Black).Volume); + if(_black > 0 && _black < 0.5)//bug 7959 0.001 < K% < 0.5 ==> reset the K to 0. + { + _black = 0; + } IsOutOfGamut = output.OutOfGamut; if(IsOutOfGamut) { @@ -1728,7 +1727,17 @@ namespace Tango.PPC.Jobs.Models Configuration configuration = SegmentModel.Job.Machine.Configuration; Rml rml = SegmentModel.Job.Rml; + bool bChangedVersion = false; + if (stop.BrushColorSpace == BL.Enumerations.ColorSpaces.Volume && rml.ColorConversionVersion == 6) + { + rml.ColorConversionVersion = 5; + bChangedVersion = true; + } var output = _converter.Convert(stop, configuration, rml, false, false, false); + if (bChangedVersion) + { + rml.ColorConversionVersion = 6; + } //output.SingleCoordinates.OutputLiquids.SingleOrDefault(x => x.LiquidType == PMR.ColorLab.LiquidType.Cyan).Volume; if (stop.BrushColorSpace == BL.Enumerations.ColorSpaces.Volume) @@ -1796,6 +1805,25 @@ namespace Tango.PPC.Jobs.Models } } + public void IsOutputOfGamut(ColorSpaces colorSpace) + { + try + { + BrushStop stop = CreateBrushStop(colorSpace); + Configuration configuration = SegmentModel.Job.Machine.Configuration; + Rml rml = SegmentModel.Job.Rml; + IsOutOfGamut = _converter.IsOutOfGamut(stop, configuration, rml); + } + catch (Exception ex) + { + LogManager.Log(ex, "An error occurred while trying to test IsOutputOfGammut from conversion engine." + ex); + BestMatchColor = Color.FromRgb((byte)Red, (byte)Green, (byte)Blue); + } + finally + { + IsBusy = false; + } + } #endregion } } diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/FavoriteColor.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/FavoriteColor.cs index 43d41539e..00c8293bd 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/FavoriteColor.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/FavoriteColor.cs @@ -91,6 +91,17 @@ namespace Tango.PPC.Jobs.Models get { return new SolidColorBrush(Color); } } + [BsonIgnore] + private bool _isSelected; + [BsonIgnore] + public bool IsSelected + { + get { return _isSelected; } + set { _isSelected = value; + RaisePropertyChangedAuto();} + } + + #endregion public FavoriteColor() @@ -104,6 +115,7 @@ namespace Tango.PPC.Jobs.Models Cyan = Magenta = Yellow = Black = 0; Color = Colors.White; ColorSpace = ColorSpaces.Volume; + IsSelected = false; } } } diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/JobModel.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/JobModel.cs index d2ad7e96b..d8a71fc78 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/JobModel.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/JobModel.cs @@ -130,7 +130,7 @@ namespace Tango.PPC.Jobs.Models { _numberofunits = value; RaisePropertyChangedAuto(); - RaisePropertyChanged(nameof(LengthIncludingNumberOfUnits)); + OnUpdateLengthhWeight(); RaisePropertyChanged(nameof(GetEstimatedDuration)); } } @@ -191,6 +191,20 @@ namespace Tango.PPC.Jobs.Models } } + [JsonIgnore] + public double LengthIncludingNumberOfUnitsAndSpools + { + get + { + if(NumberSpools >= 4) + { + return LengthIncludingNumberOfUnits * NumberSpools; + } + + return LengthIncludingNumberOfUnits; + } + } + protected Rml _rml; /// <summary> @@ -211,6 +225,8 @@ namespace Tango.PPC.Jobs.Models _rml = value; RaisePropertyChangedAuto(); RaisePropertyChanged( nameof(GetEstimatedDuration)); + RaisePropertyChanged(nameof(GramPerLength)); + OnUpdateLengthhWeight(); } } } @@ -335,6 +351,55 @@ namespace Tango.PPC.Jobs.Models get { return SpoolType.Guid; } } + private int _numberSpools; + [JsonIgnore] + public int NumberSpools + { + get { return _numberSpools; } + set { + if(_numberSpools != value) + { + _numberSpools = value; + RaisePropertyChangedAuto(); + OnNumberOfSpoolsChanged(); + RaisePropertyChanged(nameof(Copies)); + OnUpdateLengthhWeight(); + } + } + } + + protected Int32 _copies; + [JsonIgnore] + public Int32 Copies //_numberOfUnitsMultipliedBySpools + { + get + { + return _copies; + } + + set + { + if (_copies != value) + { + if (NumberSpools>=4) + { + if(value < NumberSpools) + _copies = NumberSpools; + else + { + int coeff = (int)(value + NumberSpools - 1) / NumberSpools; + _copies = coeff * NumberSpools; + } + NumberOfUnits = (int)_copies / NumberSpools; + OnUpdateLengthhWeight(); + } + else + _copies = value; + RaisePropertyChangedAuto(); + } + } + } + protected User _user; /// <summary> @@ -606,11 +671,56 @@ namespace Tango.PPC.Jobs.Models } } + + + + [JsonIgnore] + public bool IsEureka { get; set; } + + [JsonIgnore] + public double GramPerLength + { + get + { + if(Rml != null) + return Rml.GetGramPer1000mLength; + return 0d; + } + } + + [JsonIgnore] + public double WeightIncludingNumberOfUnits + { + get + { + if (Rml == null) + return 0; + + var gramPerlength = Rml.GetGramPer1000mLength; + var weight = (LengthIncludingNumberOfUnits * gramPerlength) / (1000);//(g) + return weight; + } + } + + [JsonIgnore] + public double WeightIncludingNumberOfUnitsAndSpools + { + get + { + if (NumberSpools >= 4) + { + return WeightIncludingNumberOfUnits * NumberSpools; + } + + return WeightIncludingNumberOfUnits; + } + } + #endregion #region constructors - public JobModel(List<ColorSpace> list) + public JobModel(List<ColorSpace> list, bool isEureka) { ColorSpacesList = list; _segments = new SynchronizedObservableCollection<SegmentModel>(); @@ -625,7 +735,12 @@ namespace Tango.PPC.Jobs.Models GroupingSegments.CollectionChanged -= SegmentsGroup_CollectionChanged; GroupingSegments.CollectionChanged += SegmentsGroup_CollectionChanged; SelectAllSegments = false; - NumberOfUnits = 1; + //if not eurika + if (!isEureka) + NumberOfUnits = 1; + else + NumberOfUnits = 4; + IsEureka = isEureka; } #endregion @@ -973,7 +1088,9 @@ namespace Tango.PPC.Jobs.Models if (joblength > maxLength) { var maxRep = (maxLength == 0 ? 999 : (maxLength / Length)); - await TangoIOC.Default.GetInstance<INotificationProvider>().ShowError($"You have reached the maximum length for this job {maxLength}."); + + if(!IsEureka) + await TangoIOC.Default.GetInstance<INotificationProvider>().ShowError($"You have reached the maximum length for this job {maxLength}."); //if(NumberOfUnits > 1 && NumberOfUnits > maxRep) //{ @@ -981,12 +1098,20 @@ namespace Tango.PPC.Jobs.Models //} } RaisePropertyChanged(nameof(Length)); - RaisePropertyChanged(nameof(LengthIncludingNumberOfUnits)); - + OnUpdateLengthhWeight(); + } RaisePropertyChanged(nameof(GetEstimatedDuration)); } + private void OnUpdateLengthhWeight() + { + RaisePropertyChanged(nameof(LengthIncludingNumberOfUnits)); + RaisePropertyChanged(nameof(LengthIncludingNumberOfUnitsAndSpools)); + RaisePropertyChanged(nameof(WeightIncludingNumberOfUnits)); + RaisePropertyChanged(nameof(WeightIncludingNumberOfUnitsAndSpools)); + } + private void OnSelectAllChanged() { if (Segments != null ) @@ -1009,11 +1134,20 @@ namespace Tango.PPC.Jobs.Models _preventChange = false; OnLengthChanged(); } - + + private void OnNumberOfSpoolsChanged() + { + if(NumberSpools > 0) + { + int coeff = (int)(Copies + NumberSpools -1) / NumberSpools; + Copies = coeff * NumberSpools; + } + } + #endregion #region collapsed mode actions - + public void InsertWhiteGapToSelectedSegments() { if (false == Segments.ToList().Any(x => x.IsSelected)) diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/SegmentModel.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/SegmentModel.cs index 40450c001..fb4932a2e 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/SegmentModel.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/SegmentModel.cs @@ -96,7 +96,23 @@ namespace Tango.PPC.Jobs.Models UndoRedoManager.Instance.InsertAndExecuteCommand(new ChangeLengthCommand(this, _lastLength, value)); _lastLength = Length; } - + + private double _weight; + + public double Weight + { + get { return _weight; } + set + { + if(_weight != value) + { + _weight = value; + OnWeightChanged(); + RaisePropertyChangedAuto(); + } + } + } + protected Int32 _segmentindex; /// <summary> /// Gets or sets the index of the segment. @@ -813,19 +829,45 @@ namespace Tango.PPC.Jobs.Models /// <summary> /// Called when the Length has changed. - /// </summary> - /// <param name="length"></param> protected void OnLengthChanged(double length) { - //if (_lastLength != length) + if (Job != null && Job.Rml != null) { + var gramPerlength = Job.Rml.GetGramPer1000mLength; + var weight = (Length * gramPerlength)/( 1000 );//(kg) + _weight = weight; + RaisePropertyChanged(nameof(Weight)); + //if (_lastLength != length) + { + BrushStops.ToList().ForEach(x => x.RaiseOffsetChanged()); + //_lastLength = Length; + //RaisePropertyChanged(nameof(LengthWithFactor)); + RaisePropertyChanged(nameof(LengthWithInterSegment)); + RaisePropertyChanged(nameof(LeftOffsetLabel)); + RaisePropertyChanged(nameof(MiddleOffsetLabel)); + RaisePropertyChanged(nameof(RightOffsetLabel)); + } + } + } + + /// <summary> + /// Called when [weight changed]. + /// </summary> + private void OnWeightChanged() + { + if (Job != null && Job.Rml != null) + { + var gramPerlength = Job.Rml.GetGramPer1000mLength; + var length = (Weight * 1000 )/ gramPerlength;//(m) weight in gr + _length = length; + RaisePropertyChanged(nameof(Length)); + BrushStops.ToList().ForEach(x => x.RaiseOffsetChanged()); - //_lastLength = Length; - //RaisePropertyChanged(nameof(LengthWithFactor)); RaisePropertyChanged(nameof(LengthWithInterSegment)); RaisePropertyChanged(nameof(LeftOffsetLabel)); RaisePropertyChanged(nameof(MiddleOffsetLabel)); RaisePropertyChanged(nameof(RightOffsetLabel)); + } } @@ -834,49 +876,62 @@ namespace Tango.PPC.Jobs.Models /// </summary> /// <param name="brushstops"></param> protected void OnBrushStopsChanged(SynchronizedObservableCollection<BrushStopModel> brushstops) - { - if (brushstops != null) { - brushstops.CollectionChanged -= BrushStops_CollectionChanged; - brushstops.CollectionChanged += BrushStops_CollectionChanged; - - foreach (var stop in brushstops.ToList()) + if (brushstops != null) { - stop.RaiseOffsetChanged(); + brushstops.CollectionChanged -= BrushStops_CollectionChanged; + brushstops.CollectionChanged += BrushStops_CollectionChanged; + + foreach (var stop in brushstops.ToList()) + { + stop.RaiseOffsetChanged(); + } + + RaiseSegmentBrushChanged(); } + } - RaiseSegmentBrushChanged(); + private void AddGap() + { + EnableInterSegment = true; } - } - private void AddGap() - { - EnableInterSegment = true; - } + private void DeleteGap() + { + EnableInterSegment = false; + } - private void DeleteGap() - { - EnableInterSegment = false; - } + public void UpdateBrushStops() + { + foreach (var stop in BrushStops.Where(x => x.ColorSpace == BL.Enumerations.ColorSpaces.RGB || x.ColorSpace == BL.Enumerations.ColorSpaces.LAB).ToList()) + { + try + { + stop.OnBrushStopFieldValueChanged(); + stop.InitColorsFromBestmatch(); + //TODO ASK ROY!!!!!! + //output.ApplyOnBrushStopVolumesOnly(stop); + } + catch (Exception ex) + { + LogManager.Log(ex, $"Error updating stop volumes after changing thread on segment {stop.SegmentModel.SegmentIndex}, stop {stop.StopIndex}."); + } + } + } - public void UpdateBrushStops() - { - foreach (var stop in BrushStops.Where(x => x.ColorSpace == BL.Enumerations.ColorSpaces.RGB || x.ColorSpace == BL.Enumerations.ColorSpaces.LAB).ToList()) + public void UpdateWeightOnRMLChange( bool isWeightView) { - try + if(isWeightView) { - stop.OnBrushStopFieldValueChanged(); - stop.InitColorsFromBestmatch(); - //TODO ASK ROY!!!!!! - //output.ApplyOnBrushStopVolumesOnly(stop); + OnWeightChanged(); } - catch (Exception ex) + else { - LogManager.Log(ex, $"Error updating stop volumes after changing thread on segment {stop.SegmentModel.SegmentIndex}, stop {stop.StopIndex}."); + OnLengthChanged(Length); } } + + + #endregion } - - #endregion } -} diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/VisualOffsetModel.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/VisualOffsetModel.cs index a0b6156a3..74651992e 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/VisualOffsetModel.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/VisualOffsetModel.cs @@ -237,7 +237,24 @@ namespace Tango.PPC.Jobs.Models return new SolidColorBrush() { Color = Color.FromRgb((byte)rgb.R, (byte)rgb.G, (byte)rgb.B) }; } } - + + private bool _isOutOfGamut; + /// <summary> + /// Gets or sets a value indicating whether this instance is out of gamut. + /// </summary> + public bool IsOutOfGamut + { + get { return _isOutOfGamut; } + set + { + if (_isOutOfGamut != value) + { + _isOutOfGamut = value; + RaisePropertyChangedAuto(); + } + } + } + #endregion public VisualOffsetModel() @@ -248,7 +265,9 @@ namespace Tango.PPC.Jobs.Models MaxChroma = new VisualLCHOffset(TypeColorCorrection.Chroma, 1); MinHue = new VisualLCHOffset(TypeColorCorrection.Hue, -1); MaxHue = new VisualLCHOffset(TypeColorCorrection.Hue, 1); - + IsOutOfGamut = false; + + } public void InitLAB(double l, double a, double b, double c, double h) @@ -292,6 +311,7 @@ namespace Tango.PPC.Jobs.Models B = b; C = last_LCH.C; H = last_LCH.h; + IsOutOfGamut = false; } diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Resume/JobResumeDB.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Resume/JobResumeDB.cs new file mode 100644 index 000000000..28184eee1 --- /dev/null +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Resume/JobResumeDB.cs @@ -0,0 +1,83 @@ +using LiteDB; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.PPC.Jobs.Resume +{ + public class JobResumeDB : IDisposable + { + private LiteDatabase _db; + private ILiteCollection<JobResumeModel> _collection; + + private static Lazy<JobResumeDB> _default = new Lazy<JobResumeDB>(() => new JobResumeDB()); + + public static JobResumeDB Default + { + get + { + return _default.Value; + } + } + + private JobResumeDB() + { + Init(); + } + + private void Init() + { + String dbFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Twine", "Tango", "Job Resume v2"); + Directory.CreateDirectory(dbFolder); + _db = new LiteDatabase($"Filename={Path.Combine(dbFolder, "job_resume.db")};connection=shared"); + _collection = _db.GetCollection<JobResumeModel>("JobResume"); + } + + public void Update(JobResumeModel model) + { + _collection.Update(model); + } + + public void Add(JobResumeModel model) + { + _collection.Insert(model); + } + + public List<JobResumeModel> GetAll() + { + return _collection.FindAll().ToList(); + } + + public JobResumeModel Get(String jobGuild) + { + return _collection.FindOne(x => x.JobGuid == jobGuild); + } + + public void Delete(JobResumeModel model) + { + _collection.Delete(model.JobGuid); + } + + public void Delete(String jobGuid) + { + _collection.Delete(jobGuid); + } + + ~JobResumeDB() + { + Dispose(); + } + + public void Dispose() + { + try + { + _db?.Dispose(); + } + catch { } + } + } +} diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Resume/JobResumeModel.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Resume/JobResumeModel.cs new file mode 100644 index 000000000..4ded7e313 --- /dev/null +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Resume/JobResumeModel.cs @@ -0,0 +1,21 @@ +using LiteDB; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.PPC.Jobs.Resume +{ + public class JobResumeModel + { + [BsonId] + public String JobGuid { get; set; } + + public int RemainingUnits { get; set; } + + public double GlobalStartPosition { get; set; } + + public double FirstUnitStartPosition { get; set; } + } +} diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Tango.PPC.JobsV2.csproj b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Tango.PPC.JobsV2.csproj index 6263cab77..5ec7c3f39 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Tango.PPC.JobsV2.csproj +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Tango.PPC.JobsV2.csproj @@ -143,6 +143,10 @@ <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> </Page> + <Page Include="Dialogs\MessageDiscardAdvancedOptions.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> <Page Include="Dialogs\RepeatJobView.xaml"> <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> @@ -179,6 +183,10 @@ <Generator>MSBuild:Compile</Generator> <SubType>Designer</SubType> </Page> + <Page Include="Views\JobEurekaView.xaml"> + <Generator>MSBuild:Compile</Generator> + <SubType>Designer</SubType> + </Page> <Page Include="Views\JobView.xaml"> <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> @@ -222,6 +230,7 @@ <Compile Include="Converters\ColorTabToVisibilityConverter.cs" /> <Compile Include="Converters\DeltaLCHToTextConverter.cs" /> <Compile Include="Converters\DoubleNullConverter.cs" /> + <Compile Include="Converters\FirstValueCollectionConverter.cs" /> <Compile Include="Converters\HueValueToTextConvereter.cs" /> <Compile Include="Converters\InterSegmentLengthToWidthConverter.cs" /> <Compile Include="Converters\JobsCategoryToOpacityConverter.cs" /> @@ -230,8 +239,12 @@ <Compile Include="Converters\JobToEmbroideryImageConverter.cs" /> <Compile Include="Converters\JobToPieImageConverter.cs" /> <Compile Include="Converters\JobTypeToImageConverter.cs" /> + <Compile Include="Converters\LengthToWeightConverter.cs" /> + <Compile Include="Converters\LengthWithSpoolsConverter.cs" /> <Compile Include="Converters\MarginOffsetSliderConverter .cs" /> + <Compile Include="Converters\ObjectsConverter.cs" /> <Compile Include="Converters\RoundDoubleConverter.cs" /> + <Compile Include="Converters\TimeSpanToHoursConverter.cs" /> <Compile Include="Dialogs\AddSegmentWarningDialog.xaml.cs"> <DependentUpon>AddSegmentWarningDialog.xaml</DependentUpon> </Compile> @@ -279,6 +292,10 @@ </Compile> <Compile Include="Dialogs\CatalogSelectionViewVM.cs" /> <Compile Include="Dialogs\JobCreationViewVM.cs" /> + <Compile Include="Dialogs\MessageDiscardAdvancedOptionsVM.cs" /> + <Compile Include="Dialogs\MessageDiscardAdvancedOptions.xaml.cs"> + <DependentUpon>MessageDiscardAdvancedOptions.xaml</DependentUpon> + </Compile> <Compile Include="Dialogs\RepeatJobView.xaml.cs"> <DependentUpon>RepeatJobView.xaml</DependentUpon> </Compile> @@ -335,6 +352,8 @@ <DependentUpon>ColorCorrectionReport.xaml</DependentUpon> </Compile> <Compile Include="Reports\ColorCorrectionRepotVM.cs" /> + <Compile Include="Resume\JobResumeDB.cs" /> + <Compile Include="Resume\JobResumeModel.cs" /> <Compile Include="UndoRedoCommands\AddBrushStopCommand.cs" /> <Compile Include="UndoRedoCommands\AddNewSegmentCommand.cs" /> <Compile Include="UndoRedoCommands\ChangeLengthCommand.cs" /> @@ -370,6 +389,9 @@ <Compile Include="Views\JobSummeryView.xaml.cs"> <DependentUpon>JobSummeryView.xaml</DependentUpon> </Compile> + <Compile Include="Views\JobEurekaView.xaml.cs"> + <DependentUpon>JobEurekaView.xaml</DependentUpon> + </Compile> <Compile Include="Views\JobView.xaml.cs"> <DependentUpon>JobView.xaml</DependentUpon> </Compile> @@ -735,7 +757,7 @@ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <ProjectExtensions> <VisualStudio> - <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" /> + <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" /> </VisualStudio> </ProjectExtensions> </Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/JobViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/JobViewVM.cs index 60db14e21..9d8ae1555 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/JobViewVM.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/JobViewVM.cs @@ -46,6 +46,8 @@ using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Tango.PPC.Jobs.ColorCorrectionTool; using Tango.PPC.Common.Printing; +using Tango.PPC.Jobs.Resume; +using Tango.Core.ExtensionMethods; namespace Tango.PPC.Jobs.ViewModels { @@ -68,7 +70,6 @@ namespace Tango.PPC.Jobs.ViewModels private string _current_job_string; private bool startingJob = false; private List<ColorCatalog> _catalogs; - private string _jsonJobModelLoaded; #region Properties @@ -88,7 +89,6 @@ namespace Tango.PPC.Jobs.ViewModels } private JobModel _jobModel; - public JobModel JobModel { get { return _jobModel; } @@ -99,6 +99,16 @@ namespace Tango.PPC.Jobs.ViewModels } } + public bool CanEdit + { + get { + return Job != null && + (!MachineProvider.MachineOperator.IsPrinting + || MachineProvider.MachineOperator.RunningJob == null + || MachineProvider.MachineOperator.RunningJob.Guid != Job.Guid) + && !HasResumeModel; + } + } private ICollectionView _segmentsCollectionView; /// <summary> @@ -220,6 +230,30 @@ namespace Tango.PPC.Jobs.ViewModels } } + private bool _isBasicMode; + + public bool IsBasicMode + { + get { return _isBasicMode; } + set + { + if (_isBasicMode != value) + { + if (value == true && JobModel != null && JobModel.Segments.Count > 0) + { + var firstSegment = JobModel.Segments.Where(x => x.SegmentIndex == 1).FirstOrDefault(); + if (JobModel.Segments.Count > 1 || firstSegment.IsGradient) + { + SetOrDiscardAll(); + return; + } + } + _isBasicMode = value; + RaisePropertyChangedAuto(); + } + } + } + private bool _isSummaryOpened; public bool IsSummaryOpened @@ -231,6 +265,45 @@ namespace Tango.PPC.Jobs.ViewModels RaisePropertyChangedAuto(); } } + private bool _isWeigthView; + + public bool IsWeightView + { + get { return _isWeigthView; } + set + { + if (_isWeigthView != value) + { + _isWeigthView = value; + + RaisePropertyChangedAuto(); + } + } + } + + private bool _showAdvanced; + + public bool ShowAdvanced + { + get { return _showAdvanced; } + set + { + _showAdvanced = value; + RaisePropertyChangedAuto(); + } + } + + private JobResumeModel _resumeModel; + public JobResumeModel ResumeModel + { + get { return _resumeModel; } + set { _resumeModel = value; RaisePropertyChangedAuto(); RaisePropertyChanged(nameof(HasResumeModel)); RaisePropertyChanged(nameof(CanEdit)); } + } + + public bool HasResumeModel + { + get { return ResumeModel != null; } + } #endregion @@ -286,6 +359,10 @@ namespace Tango.PPC.Jobs.ViewModels public RelayCommand<SegmentsGroupModel> DeleteSegmentsGroupCommand { get; set; } public RelayCommand<SegmentsGroupModel> RepeatSegmentsGroupCommand { get; set; } + public RelayCommand NavigateBackToJobs { get; set; } + + public RelayCommand DropResumeCommand { get; set; } + #endregion #region collapsed mode commands @@ -358,7 +435,10 @@ namespace Tango.PPC.Jobs.ViewModels CopyCommand = new RelayCommand(Copy); UndoCommand = new RelayCommand(Undo);//(x) => { return UndoRedoManager.Instance.IsEnableUndoOperation(); } RedoCommand = new RelayCommand(Redo);//(x) => { return UndoRedoManager.Instance.IsEnableRedoOperation();} + DropResumeCommand = new RelayCommand(DropResume); + + NavigateBackToJobs = new RelayCommand(NavigateBack); IsFullMode = true; IsSummaryOpened = true; _not_show_warning = false; @@ -427,6 +507,22 @@ namespace Tango.PPC.Jobs.ViewModels .WithSegmentsGroups() .BuildAsync(); + try + { + ResumeModel = JobResumeDB.Default.Get(Job.Guid); + + if (ResumeModel != null) + { + LogManager.Log($"Job resume info found:\n{ResumeModel.ToJsonString()}"); + } + } + catch (Exception ex) + { + LogManager.Log(ex, "Error retrieving job resume info from db."); + } + + RaisePropertyChanged(nameof(CanEdit)); + Job.NameChanged -= Job_NameChanged; Job.NameChanged += Job_NameChanged; @@ -451,6 +547,12 @@ namespace Tango.PPC.Jobs.ViewModels RaisePropertyChanged(nameof(SelectedRML)); await LoadRML(_selectedRML); + if (BuildProvider.IsEureka && Job.Segments.Count == 1 && Job.Segments[0].BrushStops.Count == 1) + { + IsBasicMode = true; + } + else IsBasicMode = false; + IsWeightView = false; LoadJobModel(); @@ -479,6 +581,7 @@ namespace Tango.PPC.Jobs.ViewModels IsFullMode = true; DyeCommand.RaiseCanExecuteChanged(); + ShowAdvanced = Settings.ShowAdvancedOptions; } catch (Exception ex) { @@ -497,7 +600,7 @@ namespace Tango.PPC.Jobs.ViewModels private void LoadJobModel() { SpoolType PPCSpoolType = null; - + if (Settings.SpoolTypeGuid.IsNotNullOrEmpty()) { PPCSpoolType = _spoolTypes.FirstOrDefault(x => x.Guid == Settings.SpoolTypeGuid); @@ -512,7 +615,7 @@ namespace Tango.PPC.Jobs.ViewModels PPCSpoolType = _spoolTypes.FirstOrDefault(x => x.Type == BL.Enumerations.SpoolTypes.FlatSpool); } - var jobModel = new JobModel(ColorSpaces) + var jobModel = new JobModel(ColorSpaces, BuildProvider.IsEureka) { Name = Job.Name, Guid = Job.Guid, @@ -529,7 +632,9 @@ namespace Tango.PPC.Jobs.ViewModels Machine = Job.Machine, JobType = Job.JobType, InterSegmentLength = Job.InterSegmentLength, - EnableInterSegment = Job.EnableInterSegment + EnableInterSegment = Job.EnableInterSegment, + NumberSpools = (BuildProvider.IsEureka ? Job.Spools : 1), + Copies = (BuildProvider.IsEureka ? Job.NumberOfUnits * Job.Spools : Job.NumberOfUnits) }; Dictionary<string, SegmentsGroupModel> guidToGroup = new Dictionary<string, SegmentsGroupModel>(); if (Job.Version < 2) @@ -661,8 +766,27 @@ namespace Tango.PPC.Jobs.ViewModels startingJob = true; LogManager.Log("Start job command pressed. Starting job and navigating to job progress view..."); await Save(); - var handler = await PrintingManager.Print(Job, _db, new PrintingConfiguration() { }); - await NavigationManager.NavigateTo<JobsV2Module>(nameof(JobProgressView)); + + var printConfig = new PrintingConfiguration(); + + if (HasResumeModel) + { + printConfig.FirstUnitStartPosition = ResumeModel.FirstUnitStartPosition; + printConfig.GlobalStartPosition = ResumeModel.GlobalStartPosition; + printConfig.RemainingUnits = ResumeModel.RemainingUnits; + //LogManager.Log($"!!!!! Start Job resume : FirstUnitStartPosition = {ResumeModel.FirstUnitStartPosition} GlobalStartPosition = {ResumeModel.GlobalStartPosition} RemainingUnits = {ResumeModel.RemainingUnits}", LogCategory.Debug); + + } + + var handler = await PrintingManager.Print(Job, _db, printConfig); + + RaisePropertyChanged(nameof(CanEdit)); + + if (!BuildProvider.IsEureka) + { + await NavigationManager.NavigateTo<JobsV2Module>(nameof(JobProgressView)); + } + startingJob = false; } catch (InsufficientLiquidQuantityException) @@ -852,7 +976,9 @@ namespace Tango.PPC.Jobs.ViewModels .WithSpools() .BuildAsync(); if (JobModel != null) + { JobModel.Rml = Job.Rml; + } if (updateRML && JobModel != null) { @@ -861,12 +987,15 @@ namespace Tango.PPC.Jobs.ViewModels { if (segment is SegmentModel innerSegment) { + innerSegment.UpdateWeightOnRMLChange(IsWeightView); innerSegment.UpdateBrushStops(); + } else if (segment is SegmentsGroupModel group) { foreach (var segm in group.Segments) { + segm.UpdateWeightOnRMLChange(IsWeightView); segm.UpdateBrushStops(); } } @@ -1196,14 +1325,7 @@ namespace Tango.PPC.Jobs.ViewModels base.OnApplicationStarted(); MachineProvider.MachineOperator.PrintingEnded += MachineOperator_PrintingEnded; - } - - private void MachineOperator_PrintingEnded(object sender, Integration.Operation.PrintingEventArgs e) - { - if (IsVisible) - { - _start_printing_btn.Push(); - } + MachineProvider.MachineOperator.PrintingStarted += MachineOperator_PrintingStarted; } /// <summary> @@ -1276,6 +1398,19 @@ namespace Tango.PPC.Jobs.ViewModels } } + private async void NavigateBack() + { + if (IsFree) + { + if (await OnNavigateBackRequest()) + { + LogManager.Log("Back command to Jobs pressed."); + await NavigationManager.NavigateTo<JobsV2Module>(nameof(JobsView)); + } + + } + } + public override void OnApplicationReady() { base.OnApplicationReady(); @@ -1393,6 +1528,51 @@ namespace Tango.PPC.Jobs.ViewModels DyeCommand.RaiseCanExecuteChanged(); } + private void SetOrDiscardAll() + { + InvokeUI(async () => + { + IsBasicMode = await MessageDiscardAllChanges(); + }); + } + + private async Task<bool> MessageDiscardAllChanges() + { + try + { + MessageDiscardAdvancedOptionsVM vm = new MessageDiscardAdvancedOptionsVM(); + vm = await NotificationProvider.ShowDialog<MessageDiscardAdvancedOptionsVM>(vm); + + if (vm.DialogResult) + { + //delete all + var segments = JobModel.OrderedSegmentsWithGroups; + var firstSegment = JobModel.Segments.Where(x => x.SegmentIndex == 1).FirstOrDefault(); + firstSegment.SegmentsGroupModel = null; + JobModel.GroupingSegments.Clear(); + JobModel.Segments.Clear(); + JobModel.Segments.Add(firstSegment); + JobModel.GroupingSegments.Add(firstSegment); + JobModel.EnableInterSegment = false; + JobModel.InterSegmentLength = 0; + if (firstSegment.IsGradient) + { + BrushStopModel firstbrush = firstSegment.FirstBrushStop; + firstSegment.BrushStops.Clear(); + firstSegment.BrushStops.Add(firstbrush); + firstSegment.ArrangeBrushStopsIndexes(); + } + + return true; + } + return false; + } + catch + { + return false; + } + } + #endregion #region Save from models to db @@ -1407,6 +1587,7 @@ namespace Tango.PPC.Jobs.ViewModels Job.ColorSpace = colorSpaces.FirstOrDefault(); Job.Version = 2; + Job.Name = JobModel.Name; Job.NumberOfUnits = JobModel.NumberOfUnits; Job.EnableInterSegment = JobModel.InterSegmentLength > 0; Job.InterSegmentLength = JobModel.InterSegmentLength; @@ -1596,5 +1777,97 @@ namespace Tango.PPC.Jobs.ViewModels } #endregion + + #region Machine Operator Events + + private void MachineOperator_PrintingStarted(object sender, PrintingEventArgs e) + { + RaisePropertyChanged(nameof(CanEdit)); + } + + private void MachineOperator_PrintingEnded(object sender, Integration.Operation.PrintingEventArgs e) + { + if (IsVisible) + { + _start_printing_btn.Push(); + } + + RaisePropertyChanged(nameof(CanEdit)); + + if (BuildProvider.IsEureka) + { + UpdateJobResume(e); + } + } + + + #endregion + + #region Resume + + private void UpdateJobResume(PrintingEventArgs e) + { + try + { + if (!e.JobHandler.Status.IsCompleted) + { + if (e.JobHandler.JobStatus.Progress <= e.JobHandler.ProcessParameters.DryerBufferLengthMeters) return; + + var model = JobResumeDB.Default.Get(e.Job.Guid); + bool insert = false; + if (model == null) + { + model = new JobResumeModel(); + insert = true; + } + + model.JobGuid = e.Job.Guid; + model.FirstUnitStartPosition = e.JobHandler.Status.CurrentUnitProgress; + model.RemainingUnits = e.JobHandler.Status.RemainingUnits; + model.GlobalStartPosition = e.JobHandler.JobStatus.Progress; + + if (insert) + { + JobResumeDB.Default.Add(model); + } + else + { + JobResumeDB.Default.Update(model); + } + + if (Job.Guid == e.Job.Guid) + { + ResumeModel = model; + } + } + else + { + JobResumeDB.Default.Delete(e.Job.Guid); + + if (Job.Guid == e.Job.Guid) + { + ResumeModel = null; + } + } + } + catch (Exception ex) + { + LogManager.Log(ex, "Error inserting/updating job resume info on db."); + } + } + + private async void DropResume() + { + if (Job != null && HasResumeModel) + { + if (await NotificationProvider.ShowQuestion("Drop resume information and enable job editing?")) + { + JobResumeDB.Default.Delete(Job.Guid); + ResumeModel = null; + } + } + } + + #endregion } } diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/JobsViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/JobsViewVM.cs index 6a1c830b5..e5e41b382 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/JobsViewVM.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/JobsViewVM.cs @@ -225,6 +225,11 @@ namespace Tango.PPC.Jobs.ViewModels /// </summary> public RelayCommand ExportJobCommand { get; set; } + /// <summary> + /// Gets or sets the move to list ( History or Draft) jobs command. + /// </summary> + public RelayCommand MoveToListJobsCommand { get; set; } + #endregion #region Constructors @@ -251,6 +256,7 @@ namespace Tango.PPC.Jobs.ViewModels DeleteJobsCommand = new RelayCommand(() => DeleteJobs(SelectedJobs)); CloneJobsCommand = new RelayCommand(() => CloneJobs(SelectedJobs)); ExportJobCommand = new RelayCommand(ExportJob); + MoveToListJobsCommand = new RelayCommand(() => MoveToListJobs(SelectedJobs)); RegisterForMessage<JobRemovedMessage>(HandleJobRemovedMessage); RegisterForMessage<JobSavedMessage>(HandleJobSavedMessage); @@ -331,17 +337,24 @@ namespace Tango.PPC.Jobs.ViewModels RaiseMessage(new JobSelectedMessage() { Job = job, Context = _db }); - if (!directlyToEdit && MachineProvider.MachineOperator.CanPrint) + if (BuildProvider.IsEureka) { - await NavigationManager.NavigateWithObject<JobsV2Module, JobSummeryView, JobSummeryNavigationObject>(new JobSummeryNavigationObject() - { - Context = _db, - Job = job, - }); + await NavigationManager.NavigateTo<JobsV2Module>(nameof(JobEurekaView)); } else { - await NavigationManager.NavigateTo<JobsV2Module>(nameof(JobView)); + if (!directlyToEdit && MachineProvider.MachineOperator.CanPrint) + { + await NavigationManager.NavigateWithObject<JobsV2Module, JobSummeryView, JobSummeryNavigationObject>(new JobSummeryNavigationObject() + { + Context = _db, + Job = job, + }); + } + else + { + await NavigationManager.NavigateTo<JobsV2Module>(nameof(JobView)); + } } } @@ -364,7 +377,7 @@ namespace Tango.PPC.Jobs.ViewModels _colorSpaces = _db.ColorSpaces.ToList(); - var jobs = new JobsCollectionBuilder(_db).Set(x => x.MachineGuid == MachineProvider.Machine.Guid).WithSegments().WithBrushStops().WithCustomer().WithColorSpace().WithSegmentsGroups().Build(); + var jobs = new JobsCollectionBuilder(_db).Set(x => x.MachineGuid == MachineProvider.Machine.Guid).WithSegments().WithBrushStops().WithCustomer().WithColorSpace().WithSegmentsGroups().WithRmls().Build(); InvokeUI(() => { @@ -425,38 +438,48 @@ namespace Tango.PPC.Jobs.ViewModels { await Task.Delay(200); } - var selectedRmlGuid = Settings.DefaultRmlGuid; - JobCreationViewVM vm = new JobCreationViewVM(_spoolTypes.ToList(), _rmls.ToList(), selectedRmlGuid, 0, false); - - var selectedSpoolTypeGuid = Settings.SpoolTypeGuid; - vm.SelectedSpoolType = false == String.IsNullOrEmpty(selectedSpoolTypeGuid) ? _spoolTypes.FirstOrDefault(x => x.Guid == selectedSpoolTypeGuid) : _spoolTypes.FirstOrDefault(x => x.Type == SpoolTypes.StandardSpool); - if (twnFile == null) - { - vm = await NotificationProvider.ShowDialog<JobCreationViewVM>(vm); - if (!vm.DialogResult) return; - - if (vm.SelectedRML != null) - { - selectedRmlGuid = vm.SelectedRML.Guid; - } - if (vm.SelectedSpoolType != null) - { - selectedSpoolTypeGuid = vm.SelectedSpoolType.Guid; - } - - } - + var selectedRmlGuid = Settings.DefaultRmlGuid ?? _rmls.First().Guid; Job job = new Job(); job.LastUpdated = DateTime.UtcNow; job.JobSource = JobSource.Local; - job.Name = vm.JobName; job.NumberOfHeads = 1; job.NumberOfUnits = 1; job.SampleUnitsOrMeters = 1; job.CreationDate = DateTime.UtcNow; job.JobStatus = JobStatuses.Draft; - job.EnableInterSegment = vm.WhiteGap > 0; - job.InterSegmentLength = vm.WhiteGap; + + var selectedSpoolTypeGuid = Settings.SpoolTypeGuid ?? _spoolTypes.First().Guid; + + if (BuildProvider.IsEureka) + { + job.Name = "Unnamed"; + job.EnableInterSegment = false; + job.InterSegmentLength = 0; + } + else + { + JobCreationViewVM vm = new JobCreationViewVM(_spoolTypes.ToList(), _rmls.ToList(), selectedRmlGuid, 0, false); + vm.SelectedSpoolType = false == String.IsNullOrEmpty(selectedSpoolTypeGuid) ? _spoolTypes.FirstOrDefault(x => x.Guid == selectedSpoolTypeGuid) : _spoolTypes.FirstOrDefault(x => x.Type == SpoolTypes.StandardSpool); + if (twnFile == null) + { + vm = await NotificationProvider.ShowDialog<JobCreationViewVM>(vm); + if (!vm.DialogResult) + return; + + if (vm.SelectedRML != null) + { + selectedRmlGuid = vm.SelectedRML.Guid; + } + if (vm.SelectedSpoolType != null) + { + selectedSpoolTypeGuid = vm.SelectedSpoolType.Guid; + } + job.Name = vm.JobName; + job.EnableInterSegment = vm.WhiteGap > 0; + job.InterSegmentLength = vm.WhiteGap; + } + } + //job.JobType = vm.SelectedJobType; job.EnableLubrication = true; //job.ColorSpaceGuid = Adapter.ColorSpaces.FirstOrDefault(x => x.Code == vm.SelectedColorSpace.ToInt32()).Guid; @@ -535,11 +558,22 @@ namespace Tango.PPC.Jobs.ViewModels await Task.Delay(200); - await NavigationManager.NavigateWithObject<JobsV2Module, JobView, JobNavigationObject>(new JobNavigationObject() + if(BuildProvider.IsEureka) { - Job = job, - Intent = JobNavigationIntent.NewJob - }); + await NavigationManager.NavigateWithObject<JobsV2Module, JobEurekaView, JobNavigationObject>(new JobNavigationObject() + { + Job = job, + Intent = JobNavigationIntent.NewJob + }); + } + else + { + await NavigationManager.NavigateWithObject<JobsV2Module, JobView, JobNavigationObject>(new JobNavigationObject() + { + Job = job, + Intent = JobNavigationIntent.NewJob + }); + } } catch (Exception ex) { @@ -616,6 +650,52 @@ namespace Tango.PPC.Jobs.ViewModels } /// <summary> + /// Moves to list (Draft/History) jobs. + /// </summary> + /// <param name="jobs">The jobs.</param> + private async void MoveToListJobs(ObservableCollection<Job> jobs) + { + bool isHistory = SelectedCategory == JobsCategory.History; + string list = isHistory ? "Draft" : "History"; + try + { + + LogManager.Log($"Move To {list} selected jobs:\n{jobs.Select(x => x.Name).ToList().ToJsonString()}"); + + foreach (var job in SelectedJobs) + { + if(isHistory) + { + if(job.JobStatus != JobStatuses.Draft) + { + job.JobStatus = JobStatuses.Draft; + job.LastUpdated = DateTime.UtcNow; + } + } + if(!isHistory)//draft + { + if(job.JobStatus == JobStatuses.Draft) + { + job.JobStatus = JobStatuses.Completed; + job.LastUpdated = DateTime.UtcNow; + } + } + } + + await _db.SaveChangesAsync(); + + HistoryJobsCollectionView.Refresh(); + DraftJobsCollectionView.Refresh(); + ClearSelection(); + } + catch (Exception ex) + { + LogManager.Log(ex, $"Error Move To {list} selected jobs."); + await NotificationProvider.ShowError($"An error occurred while trying to Move To {list} the selected jobs."); + } + } + + /// <summary> /// Called when the search filter has been changed /// </summary> private void OnFilterChanged() @@ -687,9 +767,9 @@ namespace Tango.PPC.Jobs.ViewModels using (ObservablesContext db = ObservablesContext.CreateDefault()) { _catalogs = await new CatalogsCollectionBuilder(db).SetAll().ForSite(MachineProvider.Machine.SiteGuid).BuildAsync(); - _rmls = await new RmlsCollectionBuilder(db).SetAll().WithSpools().ForHeadType(MachineProvider.Machine.MachineHeadType).ForSite(MachineProvider.Machine.SiteGuid).BuildAsync(); + _rmls = (await new RmlsCollectionBuilder(db).SetAll().WithSpools().ForHeadType(MachineProvider.Machine.MachineHeadType).ForSite(MachineProvider.Machine.SiteGuid).BuildAsync()).OrderBy(x => x.FinalName).ToObservableCollection(); //_rmls = (await new RmlsCollectionBuilder(db).SetAll().WithSpools().BuildAsync()).OrderBy(x => x.FinalName).ToObservableCollection(); - _spoolTypes = db.SpoolTypes.ToObservableCollection(); + _spoolTypes = await MachineProvider.Machine.GetSiteSpoolTypes(db); } MachineDataSynchronizer.SynchronizationEnded += MachineDataSynchronizer_SynchronizationEnded; diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobEurekaView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobEurekaView.xaml new file mode 100644 index 000000000..d6163506f --- /dev/null +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobEurekaView.xaml @@ -0,0 +1,1373 @@ +<UserControl x:Class="Tango.PPC.Jobs.Views.JobEurekaView" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:vm="clr-namespace:Tango.PPC.Jobs.ViewModels" + xmlns:model="clr-namespace:Tango.PPC.Jobs.Models" + xmlns:helpers="clr-namespace:Tango.PPC.Jobs.Helpers" + xmlns:fa="http://schemas.fontawesome.io/icons/" + xmlns:touch="clr-namespace:Tango.Touch.Controls;assembly=Tango.Touch" + xmlns:keyboard="clr-namespace:Tango.Touch.Keyboard;assembly=Tango.Touch" + xmlns:global="clr-namespace:Tango.PPC.Jobs" + xmlns:controls="clr-namespace:Tango.SharedUI.Controls;assembly=Tango.SharedUI" + xmlns:enumerations="clr-namespace:Tango.BL.Enumerations;assembly=Tango.BL" + xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI" + xmlns:entities="clr-namespace:Tango.BL.Entities;assembly=Tango.BL" + xmlns:localConverters="clr-namespace:Tango.PPC.Jobs.Converters" + xmlns:dragAndDrop="clr-namespace:Tango.DragAndDrop;assembly=Tango.DragAndDrop" + xmlns:localControls="clr-namespace:Tango.PPC.Jobs.Controls" + xmlns:components="clr-namespace:Tango.Touch.Components;assembly=Tango.Touch" + xmlns:local="clr-namespace:Tango.PPC.Jobs.Views" + mc:Ignorable="d" + d:DesignHeight="2000" d:DesignWidth="800" d:DataContext="{d:DesignInstance Type=vm:JobViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.JobViewVM}" x:Name="view"> + + <UserControl.Resources> + + <localConverters:ColorSpaceToVisibilityConverter x:Key="ColorSpaceToVisibilityConverter" /> + <localConverters:JobToEmbroideryImageConverter x:Key="JobToEmbroideryImageConverter" /> + <converters:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/> + <converters:BooleanToVisibilityInverseConverter x:Key="BooleanToVisibilityInverseConverter"/> + <converters:EnumToDescriptionConverter x:Key="EnumToDescriptionConverter"/> + <converters:TimeSpanToMinutesConverter x:Key="TimeSpanToMinutesConverter"/> + <converters:TimeSpanToTwoDigitsTimeConverter x:Key="TimeSpanToTwoDigitsTimeConverter"/> + <converters:TimeSpanToLabelConverter x:Key="TimeSpanToLabelConverter"/> + <localConverters:MarginOffsetSliderConverter x:Key="MarginOffsetSliderConverter"/> + <localConverters:FirstValueCollectionConverter x:Key="FirstValueCollectionConverter"/> + <localConverters:LengthToWeightConverter x:Key="LengthToWeightConverter"/> + + <BitmapImage x:Key="Image_Out_Of_Gamut" UriSource="../Images/JobView/error.png" /> + <BitmapImage x:Key="Image_Replace_Color" UriSource="../Images/JobView/replace-color.png" /> + <BitmapImage x:Key="Image_Color_Picker" UriSource="../Images/JobView/color-picker.png" /> + <BitmapImage x:Key="Image_Transparent" UriSource="../Images/JobView/transparent.jpg" /> + <BitmapImage x:Key="Image_TransparentSmall" UriSource="../Images/JobView/transparent_small.jpg" /> + + + <Style TargetType="FrameworkElement" x:Key="Level1Container"> + <Setter Property="Margin" Value="20 15 60 15"></Setter> + </Style> + <Style TargetType="FrameworkElement" x:Key="Level2Container"> + <Setter Property="Margin" Value="80 30 60 0"></Setter> + </Style> + <Style TargetType="FrameworkElement" x:Key="Level2ContainerExtraMargin"> + <Setter Property="Margin" Value="80 40 60 0"></Setter> + </Style> + + <Style x:Key="CollapsedPanelButton" TargetType="{x:Type touch:TouchButton}"> + <Setter Property="Background" Value="Transparent"></Setter> + <Setter Property="Foreground" Value="{StaticResource TangoMidAccentBrush}"></Setter> + <Setter Property="Width" Value="{Binding RelativeSource={RelativeSource Self},Path=ActualHeight}"></Setter> + <Setter Property="MinHeight" Value="50"/> + <Setter Property="CornerRadius" Value="{Binding RelativeSource={RelativeSource Self},Path=ActualHeight}"></Setter> + <Setter Property="BorderThickness" Value="0"></Setter> + <Setter Property="EnableDropShadow" Value="False"></Setter> + <Setter Property="Padding" Value="4"></Setter> + <Setter Property="VerticalAlignment" Value="Center"></Setter> + <Setter Property="FontSize" Value="{StaticResource TangoDefaultFontSize}"></Setter> + <Style.Triggers> + <Trigger Property="IsEnabled" Value="False"> + <Setter Property="Opacity" Value=".5"/> + </Trigger> + <DataTrigger Binding="{Binding JobModel.HasSelectedItems}" Value="false"> + <Setter Property="Opacity" Value=".5"/> + </DataTrigger> + </Style.Triggers> + </Style> + + <Style x:Key="SliderGreyTextStyle" TargetType="TextBlock"> + <Setter Property="Foreground" Value="{StaticResource TangoGrayTextBrush}"></Setter> + <Setter Property="FontSize" Value="{StaticResource TangoSmallFontSize}"></Setter> + <Setter Property="VerticalAlignment" Value="Center"></Setter> + <Setter Property="HorizontalAlignment" Value="Center"></Setter> + </Style> + + <Style x:Key="TouchButtonWithDisableState" TargetType="{x:Type touch:TouchButton}"> + <Setter Property="Background" Value="Transparent"></Setter> + <Setter Property="Foreground" Value="{StaticResource TangoPrimaryAccentBrush}"></Setter> + <Setter Property="BorderThickness" Value="0"></Setter> + <Setter Property="EnableDropShadow" Value="False"></Setter> + <Setter Property="FontSize" Value="{StaticResource TangoDefaultFontSize}"></Setter> + <Style.Triggers> + <Trigger Property="IsEnabled" Value="False"> + <Setter Property="Background" Value="{StaticResource TangoDisabledBackgroundBrush}"></Setter> + </Trigger> + </Style.Triggers> + </Style> + + <DataTemplate x:Key="HSB_Template" DataType="{x:Type entities:BrushStop}"> + <UniformGrid Rows="1" Columns="3"> + <StackPanel Orientation="Horizontal"> + <TextBlock Text="H" FontSize="{StaticResource TangoSmallFontSize}" VerticalAlignment="Center"/> + <Border Margin="10 0 0 0" Background="Transparent" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0.8" Width="42" Height="29" > + <TextBlock Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Hue, StringFormat=0.0}"></TextBlock> + </Border> + </StackPanel> + <StackPanel Orientation="Horizontal" Margin="10 0 0 0"> + <TextBlock Text="S" FontSize="{StaticResource TangoSmallFontSize}" VerticalAlignment="Center"/> + <Border Margin="10 0 0 0" Background="Transparent" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0.8" Width="42" Height="29"> + <TextBlock Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Saturation, StringFormat=0.0}" ></TextBlock> + </Border> + </StackPanel> + <StackPanel Orientation="Horizontal" Margin="10 0 0 0"> + <TextBlock Text="B" FontSize="{StaticResource TangoSmallFontSize}" VerticalAlignment="Center"/> + <Border Margin="10 0 0 0" Background="Transparent" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0.8" Width="42" Height="29"> + <TextBlock Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Brightness, StringFormat=0.0}"></TextBlock> + </Border> + </StackPanel> + </UniformGrid> + + </DataTemplate> + + <DataTemplate x:Key="RGB_Template" DataType="{x:Type entities:BrushStop}"> + <UniformGrid Rows="1" Columns="3" Height="30" > + <StackPanel Orientation="Horizontal"> + <TextBlock Text="R" FontSize="{StaticResource TangoSmallFontSize}" VerticalAlignment="Center"/> + <Border Margin="10 0 0 0" Background="Transparent" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0.8" Width="42"> + <TextBlock Style="{StaticResource SliderGreyTextStyle}" Text="{Binding BestMatchColor.R}" ></TextBlock> + </Border> + </StackPanel> + <StackPanel Orientation="Horizontal" Margin="4 0 0 0"> + <TextBlock Text="G" FontSize="{StaticResource TangoSmallFontSize}" VerticalAlignment="Center"/> + <Border Margin="10 0 0 0" Background="Transparent" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0.8" Width="42"> + <TextBlock Style="{StaticResource SliderGreyTextStyle}" Text="{Binding BestMatchColor.G}" ></TextBlock> + </Border> + </StackPanel> + <StackPanel Orientation="Horizontal" Margin="4 0 0 0"> + <TextBlock Text="B" FontSize="{StaticResource TangoSmallFontSize}" VerticalAlignment="Center"/> + <Border Margin="10 0 0 0" Background="Transparent" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0.8" Width="42"> + <TextBlock Style="{StaticResource SliderGreyTextStyle}" Text="{Binding BestMatchColor.B}" ></TextBlock> + </Border> + </StackPanel> + </UniformGrid> + </DataTemplate> + + <DataTemplate x:Key="CMYK_Template" DataType="{x:Type entities:BrushStop}"> + <UniformGrid Rows="1" Columns="4" Height="30" > + <StackPanel Orientation="Horizontal"> + <TextBlock Text="C" FontSize="{StaticResource TangoSmallFontSize}" VerticalAlignment="Center"/> + <Border Margin="10 0 0 0" Background="Transparent" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0.8" Width="48"> + <TextBlock Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Cyan, StringFormat=0.##}" ></TextBlock> + </Border> + </StackPanel> + <StackPanel Orientation="Horizontal" Margin="0 0 0 0"> + <TextBlock Text="M" FontSize="{StaticResource TangoSmallFontSize}" VerticalAlignment="Center"/> + <Border Margin="10 0 0 0" Background="Transparent" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0.8" Width="48"> + <TextBlock Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Magenta, StringFormat=0.##}" ></TextBlock> + </Border> + </StackPanel> + <StackPanel Orientation="Horizontal" Margin="10 0 0 0"> + <TextBlock Text="Y" FontSize="{StaticResource TangoSmallFontSize}" VerticalAlignment="Center"/> + <Border Margin="10 0 0 0" Background="Transparent" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0.8" Width="48"> + <TextBlock Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Yellow, StringFormat=0.##}" ></TextBlock> + </Border> + </StackPanel> + <StackPanel Orientation="Horizontal" Margin="10 0 0 0"> + <TextBlock Text="K" FontSize="{StaticResource TangoSmallFontSize}" VerticalAlignment="Center"/> + <Border Margin="10 0 0 0" Background="Transparent" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0.8" Width="48"> + <TextBlock Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Black, StringFormat=0.##}"></TextBlock> + </Border> + </StackPanel> + </UniformGrid> + </DataTemplate> + + <DataTemplate x:Key="LAB_Template" DataType="{x:Type entities:BrushStop}"> + <UniformGrid Rows="1" Columns="3" Height="30" MinWidth="150"> + <StackPanel Orientation="Horizontal"> + <TextBlock Text="L" FontSize="{StaticResource TangoSmallFontSize}" VerticalAlignment="Center"/> + <Border Margin="10 0 0 0" Background="Transparent" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0.8" Width="52"> + <TextBlock Style="{StaticResource SliderGreyTextStyle}" Text="{Binding BestMatchL, StringFormat=0.##}" ></TextBlock> + </Border> + </StackPanel> + <StackPanel Orientation="Horizontal" Margin="5 0 0 0"> + <TextBlock Text="a" FontSize="{StaticResource TangoSmallFontSize}" VerticalAlignment="Center"/> + <Border Margin="10 0 0 0" Background="Transparent" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0.8" Width="52"> + <TextBlock Style="{StaticResource SliderGreyTextStyle}" Text="{Binding BestMatchA, StringFormat=0.##}" ></TextBlock> + </Border> + </StackPanel> + <StackPanel Orientation="Horizontal" Margin="10 0 0 0"> + <TextBlock Text="b" FontSize="{StaticResource TangoSmallFontSize}" VerticalAlignment="Center"/> + <Border Margin="10 0 0 0" Background="Transparent" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0.8" Width="52"> + <TextBlock Style="{StaticResource SliderGreyTextStyle}" Text="{Binding BestMatchB, StringFormat=0.##}" ></TextBlock> + </Border> + </StackPanel> + </UniformGrid> + </DataTemplate> + + <DataTemplate x:Key="CATALOG_Template" DataType="{x:Type entities:BrushStop}"> + <UniformGrid Rows="1" Columns="2" Height="30" MinWidth="150"> + <StackPanel Orientation="Horizontal" Margin="0 0 0 0"> + <TextBlock Text="Catalog:" FontSize="{StaticResource TangoSmallFontSize}" VerticalAlignment="Center"/> + <Border Margin="10 0 0 0" Background="Transparent" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0.8" MinWidth="42" MaxWidth="130"> + <TextBlock Padding="4 0 4 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding ColorCatalog.Name}" ></TextBlock> + </Border> + </StackPanel> + <StackPanel Orientation="Horizontal" Margin="10 0 0 0"> + <TextBlock Text="Color:" FontSize="{StaticResource TangoSmallFontSize}" VerticalAlignment="Center"/> + <Border Margin="10 0 0 0" Background="Transparent" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0.8" MinWidth="42"> + <TextBlock Padding="4 0 4 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding ColorCatalogsItem.Name}" ></TextBlock> + </Border> + </StackPanel> + </UniformGrid> + </DataTemplate> + + <DataTemplate x:Key="Segment_Template" DataType="{x:Type model:SegmentModel}"> + <Grid Height="410" Margin="57 15 57 0"> + <!--<Grid Height="310" Margin="57 10 57 0">--> + <Grid.RowDefinitions> + <RowDefinition Height="Auto" /> + <RowDefinition Height="Auto" /> + <RowDefinition Height="Auto" /> + <RowDefinition Height="Auto" /> + <RowDefinition Height="Auto" /> + <!--<RowDefinition Height="10" />--> + <RowDefinition Height="1*" /> + </Grid.RowDefinitions> + + <DockPanel x:Name="header"> + <StackPanel Orientation="Horizontal" DockPanel.Dock="Right" Height="60"> + <touch:TouchButton Margin="20 0 0 0" VerticalAlignment="Center" EnableDropShadow="False" Background="Transparent" BorderThickness="0" Command="{Binding ElementName=view,Path=DataContext.RemoveSegmentCommand}" CommandParameter="{Binding}"> + <Border Height="24" Width="24" BorderThickness="0" BorderBrush="{StaticResource TangoKeyboardKeyDarkBrush}" Background="Transparent" HorizontalAlignment="Left"> + <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/delete_segment.png"/> + </Border> + </touch:TouchButton> + <touch:TouchButton Margin="20 0 0 0" VerticalAlignment="Center" EnableDropShadow="False" Background="Transparent" BorderThickness="0" Command="{Binding ElementName=view,Path=DataContext.DuplicateSegmentCommand}" CommandParameter="{Binding}"> + <Border Height="27" Width="23" BorderThickness="0" BorderBrush="{StaticResource TangoKeyboardKeyDarkBrush}" Background="Transparent" HorizontalAlignment="Left"> + <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/duplicate.png"/> + </Border> + </touch:TouchButton> + </StackPanel> + <StackPanel Grid.Row="0" DockPanel.Dock="Left"> + <StackPanel Margin="0 0 0 0" Orientation="Horizontal" > + <controls:FastTextBlock FontSize="{StaticResource TangoTitleFontSize}">Segment #</controls:FastTextBlock> + <controls:FastTextBlock FontSize="{StaticResource TangoTitleFontSize}" Text="{Binding SegmentIndex,Mode=OneWay}"></controls:FastTextBlock> + </StackPanel> + <StackPanel Margin="0 5 0 0" Orientation="Horizontal"> + <controls:FastTextBlock VerticalAlignment="Center" FontSize="18"> + <controls:FastTextBlock.Style> + <Style TargetType="controls:FastTextBlock"> + <Setter Property="Text" Value="Weight (g):" /> + <Style.Triggers> + <DataTrigger Binding="{Binding ElementName=segmentsGrid, Path=DataContext.IsWeightView}" Value="False"> + <Setter Property="Text" Value="Length (m):" /> + </DataTrigger> + </Style.Triggers> + </Style> + </controls:FastTextBlock.Style> + </controls:FastTextBlock> + + <Border Margin="20 0 0 0" BorderThickness="1" Height="44" CornerRadius="12" BorderBrush="{StaticResource TangoMidAccentBrush}" Visibility="{Binding ElementName=segmentsGrid, Path=DataContext.IsWeightView, Converter={StaticResource BooleanToVisibilityInverseConverter}}"> + <touch:TouchNumericTextBox Margin="20 0 0 0" Width="192" FocusSelectionMode="SelectAll" HorizontalAlignment="Left" HideUnderline="True" VerticalAlignment="Center" + Value="{Binding Length, UpdateSourceTrigger=LostFocus}" VerticalContentAlignment="Center" + StringFormat="N1" AutoCalculateJogStep="False" + HasDecimalPoint="True" Minimum="1" Maximum="1000000" + KeyboardContainer="{Binding ElementName=Container}" + FontSize="18" ValueChangedEnd="Length_ValueChanged" + TextGotFocus="Length_BeforeChangeValue" RippleBrush="Transparent"/> + </Border> + <Border Margin="20 0 0 0" BorderThickness="1" Height="44" CornerRadius="12" BorderBrush="{StaticResource TangoMidAccentBrush}" Visibility="{Binding ElementName=segmentsGrid, Path=DataContext.IsWeightView, Converter={StaticResource BooleanToVisibilityConverter}}"> + <touch:TouchNumericTextBox Margin="20 0 0 0" Width="192" FocusSelectionMode="SelectAll" HorizontalAlignment="Left" HideUnderline="True" VerticalAlignment="Center" + Value="{Binding Weight, UpdateSourceTrigger=LostFocus}" VerticalContentAlignment="Center" + StringFormat="0.0" AutoCalculateJogStep="False" + HasDecimalPoint="True" Minimum="0" Maximum="100000" + KeyboardContainer="{Binding ElementName=Container}" + FontSize="18" RippleBrush="Transparent"/> + </Border> + </StackPanel> + </StackPanel> + + </DockPanel> + + <Grid Grid.Row="1" x:Name="displayOffset" Margin="0 10 0 -11" Visibility="{Binding IsGradient, Converter={StaticResource BooleanToVisibilityConverter}}"> + <Border x:Name="leftoffsetBorder" Visibility="{Binding IsGradient, Converter={StaticResource BooleanToVisibilityConverter}}"> + <TextBlock x:Name="leftoffsetLabel" HorizontalAlignment="Left" MaxWidth="80" Margin="0 0 10 0" FontSize="{StaticResource TangoSmallFontSize}" Foreground="{StaticResource TangoNotificationBarMaskBrush}" Text="{Binding LeftOffsetLabel,Mode=OneWay}"/> + + <Border.Margin> + <MultiBinding Converter="{StaticResource MarginOffsetSliderConverter}" ConverterParameter="1" Delay="200" Mode="OneWay"> + <Binding ElementName="sliderOffset" Path="LowerValue" ></Binding> + <Binding ElementName="sliderOffset" Path="ActualWidth"></Binding> + <Binding ElementName="leftoffsetLabel" Path="ActualWidth"></Binding> + <Binding ElementName="middleoffsetBorder" Path="Margin.Left"></Binding> + + </MultiBinding> + </Border.Margin> + </Border> + <Border x:Name="middleoffsetBorder"> + <TextBlock x:Name="middleoffsetLabel" HorizontalAlignment="Left" MaxWidth="80" Margin="10 0 10 0" FontSize="{StaticResource TangoSmallFontSize}" Foreground="{StaticResource TangoNotificationBarMaskBrush}" Text="{Binding MiddleOffsetLabel,Mode=OneWay}"/> + + <Border.Margin> + <MultiBinding Converter="{StaticResource MarginOffsetSliderConverter}" ConverterParameter="2" Delay="200" Mode="OneWay"> + <Binding ElementName="sliderOffset" Path="MiddleValue"></Binding> + <Binding ElementName="sliderOffset" Path="ActualWidth"></Binding> + <Binding ElementName="middleoffsetLabel" Path="ActualWidth"></Binding> + <Binding ElementName="leftoffsetLabel" Path="ActualWidth"></Binding> + <Binding ElementName="upperoffsetLabel" Path="ActualWidth"></Binding> + </MultiBinding> + </Border.Margin> + </Border> + <Border x:Name="rightoffsetBorder"> + <TextBlock x:Name="upperoffsetLabel" HorizontalAlignment="Left" MaxWidth="80" Margin="0 0 0 0" FontSize="{StaticResource TangoSmallFontSize}" Foreground="{StaticResource TangoNotificationBarMaskBrush}" Text="{Binding RightOffsetLabel,Mode=OneWay}"/> + + + <Border.Margin> + <MultiBinding Converter="{StaticResource MarginOffsetSliderConverter}" ConverterParameter="3" Delay="200" Mode="OneWay"> + <Binding ElementName="sliderOffset" Path="UpperValue"></Binding> + <Binding ElementName="sliderOffset" Path="ActualWidth"></Binding> + <Binding ElementName="upperoffsetLabel" Path="ActualWidth"></Binding> + <Binding ElementName="middleoffsetBorder" Path="Margin.Left"></Binding> + <Binding ElementName="middleoffsetLabel" Path="ActualWidth"></Binding> + </MultiBinding> + </Border.Margin> + </Border> + </Grid> + + <Border Grid.Row="2" x:Name="segmentBrush" Height="90" Margin="0 20 0 0" CornerRadius="20" Background="{StaticResource TangoPrimaryBackgroundBrush}" BorderThickness="1" BorderBrush="{StaticResource TangoGrayBrush}"> + + <Border Background="{Binding SegmentBrush}" CornerRadius="20"> + <Grid> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="1*"/> + <ColumnDefinition Width="1*"/> + <ColumnDefinition Width="1*"/> + </Grid.ColumnDefinitions> + <touch:TouchButton Margin="26 0 0 0" HorizontalAlignment="Left" VerticalAlignment="Center" Command="{Binding ElementName=view,Path=DataContext.EditColorCommand}" CommandParameter="{Binding FirstBrushStop}" Visibility="{Binding HasColors, Converter={StaticResource BooleanToVisibilityConverter}}" EnableDropShadow="False" Foreground="{StaticResource TangoKeyboardKeyDarkTextBrush}" Background="Transparent" BorderThickness="0"> + <Border Height="40" Width="40" BorderThickness="0" BorderBrush="{StaticResource TangoKeyboardKeyDarkBrush}" Background="Transparent" HorizontalAlignment="Left"> + <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/Edit_color.png"/> + </Border> + </touch:TouchButton> + <StackPanel Grid.Column="1" Orientation="Vertical" HorizontalAlignment="Center" VerticalAlignment="Center"> + <!--<touch:TouchIconButton Command="{Binding ElementName=view,Path=DataContext.AddColorCommand}" CommandParameter="{Binding}" + Height="40" Width="40" Style="{StaticResource TangoRoundTouchIconButton}" Icon="Plus" Background="{StaticResource TangoRippleDarkBrush}" Foreground="{StaticResource TangoLightForegroundBrush}" Padding="12" Margin="20 0 0 0" />--> + <touch:TouchButton Margin="0 0 0 0" VerticalAlignment="Center" Command="{Binding ElementName=view,Path=DataContext.AddColorCommand}" CommandParameter="{Binding}" EnableDropShadow="False" Foreground="{StaticResource TangoKeyboardKeyDarkTextBrush}" Background="Transparent" BorderThickness="0" BorderBrush="Transparent" RippleBrush="Transparent" > + <Border Height="40" Width="40" BorderThickness="0" BorderBrush="{StaticResource TangoKeyboardKeyDarkBrush}" Background="Transparent" HorizontalAlignment="Left"> + <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/AddColor.png"/> + </Border> + </touch:TouchButton> + <TextBlock VerticalAlignment="Center" Margin="20 5 0 0" FontSize="{StaticResource TangoSmallFontSize}" Visibility="{Binding HasColors, Converter={StaticResource BooleanToVisibilityInverseConverter}}" Foreground="{StaticResource TangoKeyboardKeyDarkTextBrush}">Add Color</TextBlock> + </StackPanel> + <touch:TouchButton Margin="0 0 26 0" Grid.Column="2" HorizontalAlignment="Right" VerticalAlignment="Center" Command="{Binding ElementName=view,Path=DataContext.EditColorCommand}" CommandParameter="{Binding SecondBrushStop}" Visibility="{Binding IsGradient, Converter={StaticResource BooleanToVisibilityConverter}}" EnableDropShadow="False" Foreground="{StaticResource TangoKeyboardKeyDarkTextBrush}" Background="Transparent" BorderThickness="0"> + <Border Height="40" Width="40" BorderThickness="0" BorderBrush="{StaticResource TangoKeyboardKeyDarkBrush}" Background="Transparent" HorizontalAlignment="Left"> + <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/Edit_color.png"/> + </Border> + </touch:TouchButton> + + </Grid> + </Border> + </Border> + <!--<Canvas Grid.Row="1" x:Name="alert_canvas_segment" Width="30" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="-40 -10 0 0" > + <touch:TouchButton Height="22" Width="24" Canvas.Left="0" Canvas.Top="0" x:Name="addmyColors" EnableDropShadow="False" Foreground="{StaticResource TangoKeyboardKeyDarkTextBrush}" Background="Transparent" BorderThickness="0" Visibility="{Binding HasOutOfGamutBrush, Converter={StaticResource BooleanToVisibilityConverter}}"> + <Border BorderThickness="0" BorderBrush="{StaticResource TangoKeyboardKeyDarkBrush}" Background="Transparent" HorizontalAlignment="Left"> + <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/Exclamation_black.png"/> + </Border> + </touch:TouchButton> + </Canvas>--> + + <Grid Grid.Row="3" x:Name="sliderThreeThumbs" Visibility="{Binding IsGradient, Converter={StaticResource BooleanToVisibilityConverter}}" > + <touch:TouchSliderThreeThumbs x:Name="sliderOffset" Height="40" MinimumMiddleRange="5.0" Length="{Binding Length}" LowerValue="{Binding LeftOffset, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" MiddleValue="{Binding MiddleOffset, Mode=TwoWay}" UpperValue="{Binding RightOffset, Mode=TwoWay}" + LowerValueEndChanging ="{Binding LeftOffsetChangeComleted}" LowerValueStartChanging="{Binding LeftOffsetStartChanging}" + UpperValueStartChanging ="{Binding RightOffsetStartChanging}" UpperValueEndChanging="{Binding RightOffsetChangeComleted}" + MiddleValueStartChanging ="{Binding MiddleOffsetStartChanging}" MiddleValueEndChanging ="{Binding MiddleOffsetChangeComleted}"/> + </Grid> + + <Grid Grid.Row="4" Margin="0 10 0 0" x:Name="colorSpacesSegment" > + <Grid.ColumnDefinitions> + <ColumnDefinition Width="Auto"/> + <ColumnDefinition Width="1*" MinWidth="10"/> + <ColumnDefinition Width="Auto" /> + </Grid.ColumnDefinitions> + + <ContentControl x:Name="leftColorSpaceValues" Grid.Column="0" Focusable="False" Margin="0 0 0 0" HorizontalAlignment="Left" Content="{Binding FirstBrushStop}" Visibility="{Binding HasColors, Converter={StaticResource BooleanToVisibilityConverter}}"> + <ContentControl.Style> + <Style TargetType="ContentControl"> + <Setter Property="ContentTemplate"> + <Setter.Value> + <DataTemplate/> + </Setter.Value> + </Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding FirstBrushStop.ColorSpace, Converter={StaticResource EnumToDescriptionConverter}}" Value="HSB"> + <Setter Property="ContentTemplate" Value="{StaticResource HSB_Template}" /> + </DataTrigger> + <DataTrigger Binding="{Binding FirstBrushStop.ColorSpace, Converter={StaticResource EnumToDescriptionConverter}}" Value="RGB"> + <Setter Property="ContentTemplate" Value="{StaticResource RGB_Template}" /> + </DataTrigger> + <DataTrigger Binding="{Binding FirstBrushStop.ColorSpace, Converter={StaticResource EnumToDescriptionConverter}}" Value="Volume"> + <Setter Property="ContentTemplate" Value="{StaticResource CMYK_Template}" /> + </DataTrigger> + <DataTrigger Binding="{Binding FirstBrushStop.ColorSpace, Converter={StaticResource EnumToDescriptionConverter}}" Value="LAB"> + <Setter Property="ContentTemplate" Value="{StaticResource LAB_Template}" /> + </DataTrigger> + <DataTrigger Binding="{Binding FirstBrushStop.ColorSpace, Converter={StaticResource EnumToDescriptionConverter}}" Value="Catalog"> + <Setter Property="ContentTemplate" Value="{StaticResource CATALOG_Template}" /> + </DataTrigger> + </Style.Triggers> + </Style> + </ContentControl.Style> + </ContentControl> + <Border Grid.Column="1"></Border> + <ContentControl x:Name="rightColorSpaceValues" Grid.Column="2" Focusable="False" Margin="0 0 0 0" HorizontalAlignment="Right" HorizontalContentAlignment="Right" + Visibility="{Binding IsGradient, Converter={StaticResource BooleanToVisibilityConverter}}" Content="{Binding SecondBrushStop}"> + <ContentControl.Style> + <Style TargetType="ContentControl"> + <Setter Property="ContentTemplate"> + <Setter.Value> + <DataTemplate/> + </Setter.Value> + </Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding SecondBrushStop.ColorSpace, Converter={StaticResource EnumToDescriptionConverter}, Mode=OneWay}" Value="HSB"> + <Setter Property="ContentTemplate" Value="{StaticResource HSB_Template}" /> + </DataTrigger> + <DataTrigger Binding="{Binding SecondBrushStop.ColorSpace, Converter={StaticResource EnumToDescriptionConverter}, Mode=TwoWay}" Value="RGB"> + <Setter Property="ContentTemplate" Value="{StaticResource RGB_Template}" /> + </DataTrigger> + <DataTrigger Binding="{Binding SecondBrushStop.ColorSpace, Converter={StaticResource EnumToDescriptionConverter}, Mode=OneWay}" Value="Volume"> + <Setter Property="ContentTemplate" Value="{StaticResource CMYK_Template}" /> + </DataTrigger> + <DataTrigger Binding="{Binding SecondBrushStop.ColorSpace, Converter={StaticResource EnumToDescriptionConverter}, Mode=OneWay}" Value="LAB"> + <Setter Property="ContentTemplate" Value="{StaticResource LAB_Template}" /> + </DataTrigger> + <DataTrigger Binding="{Binding SecondBrushStop.ColorSpace, Converter={StaticResource EnumToDescriptionConverter}, Mode=OneWay}" Value="Catalog"> + <Setter Property="ContentTemplate" Value="{StaticResource CATALOG_Template}" /> + </DataTrigger> + </Style.Triggers> + </Style> + </ContentControl.Style> + </ContentControl> + + </Grid> + <!--<Rectangle Grid.Row="5" Fill="{StaticResource TangoDividerBrush}" Height="2" VerticalAlignment="Bottom" Margin="0 0 0 0"/>--> + + <Grid Grid.Row="5" x:Name="add_new_segment_gap" HorizontalAlignment="Stretch" Margin="0 30 0 0" > + <Grid.RowDefinitions> + <RowDefinition Height="Auto"/> + <RowDefinition Height="1*"/> + <RowDefinition Height="Auto"/> + </Grid.RowDefinitions> + <Rectangle Stroke="{StaticResource TangoDividerBrush}" StrokeThickness="1" VerticalAlignment="Top" /> + + <Border x:Name="gapBorder" Margin="0 0 0 0" Height="24" ClipToBounds="False" CornerRadius="10" Visibility="{Binding ShowGap, Converter={StaticResource BooleanToVisibilityConverter}}"> + <Border.Clip> + <RectangleGeometry RadiusX="10" RadiusY="10"> + <RectangleGeometry.Rect> + <MultiBinding Converter="{StaticResource WidthHeightToRectConverter}"> + <Binding ElementName="gapBorder" Path="ActualWidth" /> + <Binding ElementName="gapBorder" Path="ActualHeight" /> + </MultiBinding> + </RectangleGeometry.Rect> + </RectangleGeometry> + </Border.Clip> + <Grid> + <TextBlock FontSize="{StaticResource TangoDefaultFontSize}" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="4"> + <Run Text="{Binding InterSegmentLength, Mode=OneWay}"></Run> + <Run Text="m Gap"></Run> + </TextBlock> + <Rectangle Stroke="{StaticResource TangoGrayBrush}" StrokeThickness="1" StrokeDashArray="5 5 5 5" RadiusX="12" RadiusY="12" /> + </Grid> + </Border> + + <DockPanel Margin="0 10 0 0" Grid.Row="1"> + <!--<Grid DockPanel.Dock="Right" Visibility="{Binding IsLast, Converter={StaticResource BooleanToVisibilityInverseConverter}}">--> + <Grid DockPanel.Dock="Right" Visibility="Collapsed"> + <touch:TouchButton x:Name="deletegap" DockPanel.Dock="Right" HorizontalAlignment="Right" VerticalAlignment="Center" Command="{Binding DeleteGapCommand}" EnableDropShadow="False" Foreground="{StaticResource TangoKeyboardKeyDarkTextBrush}" Background="Transparent" BorderThickness="0" Visibility="{Binding EnableInterSegment, Converter={StaticResource BooleanToVisibilityConverter}}"> + <TextBlock Margin="10 2 0 0" FontSize="{StaticResource TangoButtonFontSize}" VerticalAlignment="Center">Delete Gap</TextBlock> + </touch:TouchButton> + <touch:TouchButton x:Name="addGap" DockPanel.Dock="Right" HorizontalAlignment="Left" VerticalAlignment="Center" Command="{Binding AddGapCommand}" EnableDropShadow="False" Foreground="{StaticResource TangoKeyboardKeyDarkTextBrush}" Background="Transparent" BorderThickness="0" Visibility="{Binding EnableInterSegment, Converter={StaticResource BooleanToVisibilityInverseConverter}}"> + <StackPanel Orientation="Horizontal"> + <Border Height="35" Width="35" BorderThickness="0" Background="Transparent" HorizontalAlignment="Left"> + <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/add_gap.png"/> + </Border> + <TextBlock Margin="10 2 0 0" FontSize="{StaticResource TangoButtonFontSize}" VerticalAlignment="Center">Add Gap</TextBlock> + </StackPanel> + </touch:TouchButton> + </Grid> + <touch:TouchButton DockPanel.Dock="Left" HorizontalAlignment="Left" VerticalAlignment="Center" Command="{Binding DataContext.AddNewSegmentCommand, ElementName=listSegments}" CommandParameter="{Binding }" EnableDropShadow="False" Foreground="{StaticResource TangoKeyboardKeyDarkTextBrush}" Background="Transparent" BorderThickness="0"> + <StackPanel Orientation="Horizontal"> + <Border Height="35" Width="35" BorderThickness="0" Background="Transparent" HorizontalAlignment="Left"> + <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/AddNewSegment.png"/> + </Border> + <TextBlock Margin="10 2 0 0" FontSize="{StaticResource TangoButtonFontSize}" VerticalAlignment="Center">Add New Segments</TextBlock> + </StackPanel> + </touch:TouchButton> + </DockPanel> + + <Rectangle Margin="0 10 0 0" Grid.Row="2" Stroke="{StaticResource TangoDividerBrush}" StrokeThickness="1" VerticalAlignment="Bottom"/> + </Grid> + </Grid> + </DataTemplate> + + <DataTemplate x:Key="GroupSegment_Template" DataType="{x:Type model:SegmentsGroupModel}"> + <!--<Grid Height="310" Margin="57 10 57 0">--> + <Grid Height="400" Margin="57 15 57 0"> + <Grid.RowDefinitions> + <RowDefinition Height="Auto" /> + <RowDefinition Height="Auto" /> + <RowDefinition Height="1*" /> + <!--<RowDefinition Height="10" />--> + </Grid.RowDefinitions> + + <DockPanel> + <StackPanel Orientation="Horizontal" DockPanel.Dock="Right" Height="60"> + <touch:TouchButton Background="Transparent" Foreground="{StaticResource TangoPrimaryAccentBrush}" EnableDropShadow="False" Command="{Binding ElementName=view,Path=DataContext.UngroupSegmentsCommand}" CommandParameter="{Binding}"> + <TextBlock FontSize="{StaticResource TangoButtonFontSize}" TextDecorations="Underline" Text="Ungroup" /> + </touch:TouchButton> + <touch:TouchButton Margin="20 0 0 0" VerticalAlignment="Center" EnableDropShadow="False" Background="Transparent" BorderThickness="0" Command="{Binding ElementName=view,Path=DataContext.DeleteSegmentsGroupCommand}" CommandParameter="{Binding}"> + <Border Height="24" Width="24" BorderThickness="0" BorderBrush="{StaticResource TangoKeyboardKeyDarkBrush}" Background="Transparent" HorizontalAlignment="Left"> + <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/delete_segment.png"/> + </Border> + </touch:TouchButton> + <!--<touch:TouchButton Margin="20 0 0 0" VerticalAlignment="Center" EnableDropShadow="False" Background="Transparent" BorderThickness="0" Command="{Binding ElementName=view,Path=DataContext.DuplicateSegmentCommand}" CommandParameter="{Binding}"> + <Border Height="24" Width="24" BorderThickness="0" BorderBrush="{StaticResource TangoKeyboardKeyDarkBrush}" Background="Transparent" HorizontalAlignment="Left"> + <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/duplicate.png"/> + </Border> + </touch:TouchButton>--> + </StackPanel> + <StackPanel Grid.Row="0" DockPanel.Dock="Left"> + <StackPanel Margin="0 0 0 0" Orientation="Horizontal" > + <TextBlock FontSize="{StaticResource TangoTitleFontSize}"> + <Run>Group #</Run> + <Run Text="{Binding SegmentIndex, Mode=OneWay,IsAsync=True,FallbackValue='0000'}"></Run> + + </TextBlock> + <touch:TouchButton Background="Transparent" Width="Auto" EnableDropShadow="False" Command="{Binding ElementName=view,Path=DataContext.RepeatSegmentsGroupCommand}" CommandParameter="{Binding}"> + <TextBlock Margin="10 0 0 0" Foreground="{StaticResource TangoPrimaryAccentBrush}" TextDecorations="Underline"> + <Run>x</Run> + <Run Text="{Binding Repeats, Mode=OneWay,IsAsync=True,FallbackValue='0000'}"></Run> + </TextBlock> + </touch:TouchButton> + </StackPanel> + <StackPanel Margin="0 0 0 0" Orientation="Horizontal"> + <controls:FastTextBlock VerticalAlignment="Bottom" DockPanel.Dock="Left" Text="Length (m):" FontSize="18"></controls:FastTextBlock> + <controls:FastTextBlock Margin="20 0 0 0" Width="92" VerticalAlignment="Bottom" DockPanel.Dock="Left" Text="{Binding Length}" FontSize="18"></controls:FastTextBlock> + </StackPanel> + </StackPanel> + </DockPanel> + + <Border Grid.Row="1" x:Name="brush_border" Height="90" Margin="0 20 0 0" CornerRadius="20" Background="{StaticResource TangoPrimaryBackgroundBrush}" BorderThickness="1" BorderBrush="{StaticResource TangoGrayBrush}"> + <Border.Clip> + <RectangleGeometry RadiusX="25" RadiusY="25"> + <RectangleGeometry.Rect> + <MultiBinding Converter="{StaticResource WidthHeightToRectConverter}"> + <Binding ElementName="brush_border" Path="ActualWidth" /> + <Binding ElementName="brush_border" Path="ActualHeight" /> + </MultiBinding> + </RectangleGeometry.Rect> + </RectangleGeometry> + </Border.Clip> + <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> + <ItemsControl ClipToBounds="False" ItemsSource="{Binding Segments}" > + <ItemsControl.ItemsPanel> + <ItemsPanelTemplate> + <StackPanel Orientation="Horizontal" ClipToBounds="False"></StackPanel> + </ItemsPanelTemplate> + </ItemsControl.ItemsPanel> + <ItemsControl.ItemTemplate> + <DataTemplate> + <Grid> + <Grid.Width> + <MultiBinding Converter="{StaticResource SegmentLengthToWidthConverter}"> + <Binding RelativeSource="{RelativeSource AncestorType=ItemsControl}" Path="DataContext.Length"></Binding> + <Binding RelativeSource="{RelativeSource AncestorType=ItemsControl}" Path="ActualWidth"></Binding> + <Binding Path="Length"></Binding> + </MultiBinding> + </Grid.Width> + <Rectangle Fill="{Binding SegmentBrush}"></Rectangle> + </Grid> + </DataTemplate> + </ItemsControl.ItemTemplate> + </ItemsControl> + + <Border Height="40" Width="151" Opacity="1" Background="#32787880" HorizontalAlignment="Center" CornerRadius="8" VerticalAlignment="Center"> + <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="{StaticResource TangoComboBoxItemFontSize}"> Grouped</TextBlock> + </Border> + </Grid> + </Border> + <!--<Rectangle Grid.Row="2" Fill="{StaticResource TangoDividerBrush}" Height="2" VerticalAlignment="Bottom" Margin="0 0 0 0"/>--> + + <Grid Grid.Row="2" x:Name="add_new_segment_gap" HorizontalAlignment="Stretch" Margin="0 30 0 0" > + <Grid.RowDefinitions> + <RowDefinition Height="Auto"/> + <RowDefinition Height="1*"/> + <RowDefinition Height="Auto"/> + </Grid.RowDefinitions> + <Rectangle Stroke="{StaticResource TangoDividerBrush}" StrokeThickness="1" VerticalAlignment="Top" /> + + <Border x:Name="gapBorder" Margin="0 0 0 0" Height="24" ClipToBounds="False" CornerRadius="10" Visibility="{Binding ShowGap, Converter={StaticResource BooleanToVisibilityConverter}}"> + <Border.Clip> + <RectangleGeometry RadiusX="10" RadiusY="10"> + <RectangleGeometry.Rect> + <MultiBinding Converter="{StaticResource WidthHeightToRectConverter}"> + <Binding ElementName="gapBorder" Path="ActualWidth" /> + <Binding ElementName="gapBorder" Path="ActualHeight" /> + </MultiBinding> + </RectangleGeometry.Rect> + </RectangleGeometry> + </Border.Clip> + <Grid> + <TextBlock FontSize="{StaticResource TangoDefaultFontSize}" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="4"> + <Run Text="{Binding InterSegmentLength, Mode=OneWay}"></Run> + <Run Text="m Gap"></Run> + </TextBlock> + <Rectangle Stroke="{StaticResource TangoGrayBrush}" StrokeThickness="1" StrokeDashArray="5 5 5 5" RadiusX="12" RadiusY="12" /> + </Grid> + </Border> + + <DockPanel Margin="0 10 0 0" Grid.Row="1"> + <!--<Grid DockPanel.Dock="Right" Visibility="{Binding IsLast, Converter={StaticResource BooleanToVisibilityInverseConverter}}"> + <Grid DockPanel.Dock="Right" Visibility="Collapsed"> + <touch:TouchButton x:Name="deletegap" DockPanel.Dock="Right" HorizontalAlignment="Right" VerticalAlignment="Center" Command="{Binding DeleteGapCommand}" EnableDropShadow="False" Foreground="{StaticResource TangoKeyboardKeyDarkTextBrush}" Background="Transparent" BorderThickness="0" Visibility="{Binding EnableInterSegment, Converter={StaticResource BooleanToVisibilityConverter}}"> + <TextBlock Margin="10 2 0 0" FontSize="{StaticResource TangoButtonFontSize}" VerticalAlignment="Center">Delete Gap</TextBlock> + </touch:TouchButton> + <touch:TouchButton x:Name="addGap" DockPanel.Dock="Right" HorizontalAlignment="Left" VerticalAlignment="Center" Command="{Binding AddGapCommand}" EnableDropShadow="False" Foreground="{StaticResource TangoKeyboardKeyDarkTextBrush}" Background="Transparent" BorderThickness="0" Visibility="{Binding EnableInterSegment, Converter={StaticResource BooleanToVisibilityInverseConverter}}"> + <StackPanel Orientation="Horizontal"> + <Border Height="35" Width="35" BorderThickness="0" Background="Transparent" HorizontalAlignment="Left"> + <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/add_gap.png"/> + </Border> + <TextBlock Margin="10 2 0 0" FontSize="{StaticResource TangoButtonFontSize}" VerticalAlignment="Center">Add Gap</TextBlock> + </StackPanel> + </touch:TouchButton> + </Grid>--> + <touch:TouchButton DockPanel.Dock="Left" HorizontalAlignment="Left" VerticalAlignment="Center" Command="{Binding DataContext.AddNewSegmentCommand, ElementName=listSegments}" CommandParameter="{Binding }" EnableDropShadow="False" Foreground="{StaticResource TangoKeyboardKeyDarkTextBrush}" Background="Transparent" BorderThickness="0"> + <StackPanel Orientation="Horizontal"> + <Border Height="35" Width="35" BorderThickness="0" Background="Transparent" HorizontalAlignment="Left"> + <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/AddNewSegment.png"/> + </Border> + <TextBlock Margin="10 2 0 0" FontSize="{StaticResource TangoButtonFontSize}" VerticalAlignment="Center">Add New Segments</TextBlock> + </StackPanel> + </touch:TouchButton> + </DockPanel> + + <Rectangle Margin="0 10 0 0" Grid.Row="2" Stroke="{StaticResource TangoDividerBrush}" StrokeThickness="1" VerticalAlignment="Bottom"/> + </Grid> + + <Rectangle Margin="0 10 0 0" Grid.Row="2" Stroke="{StaticResource TangoDividerBrush}" StrokeThickness="1" VerticalAlignment="Bottom"/> + </Grid> + </DataTemplate> + + <DataTemplate x:Key="CollapsedSegment_Template" DataType="{x:Type model:SegmentModel}"> + <Grid Height="180" Margin="57 15 57 0"> + <Grid.RowDefinitions> + <RowDefinition Height="Auto" /> + <RowDefinition Height="Auto" /> + </Grid.RowDefinitions> + <DockPanel> + <Rectangle DockPanel.Dock="Top" Stroke="{StaticResource TangoDividerBrush}" StrokeThickness="1" VerticalAlignment="Top" Margin="0 0 0 10"/> + <StackPanel Orientation="Horizontal" DockPanel.Dock="Right" Height="40"> + <touch:TouchButton Margin="0 0 0 0" VerticalAlignment="Center" EnableDropShadow="False" Background="Transparent" BorderThickness="0" Command="{Binding ElementName=view,Path=DataContext.RemoveSegmentCommand}" CommandParameter="{Binding}"> + <Border Height="24" Width="24" BorderThickness="0" BorderBrush="{StaticResource TangoKeyboardKeyDarkBrush}" Background="Transparent" HorizontalAlignment="Left"> + <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/delete_segment.png"/> + </Border> + </touch:TouchButton> + <touch:TouchButton Margin="20 0 0 0" VerticalAlignment="Center" EnableDropShadow="False" Background="Transparent" BorderThickness="0" Command="{Binding ElementName=view,Path=DataContext.DuplicateSegmentCommand}" CommandParameter="{Binding}"> + <Border Height="27" Width="23" BorderThickness="0" BorderBrush="{StaticResource TangoKeyboardKeyDarkBrush}" Background="Transparent" HorizontalAlignment="Left"> + <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/duplicate.png"/> + </Border> + </touch:TouchButton> + </StackPanel> + <StackPanel DockPanel.Dock="Left"> + <StackPanel Margin="0 10 0 0" Orientation="Horizontal" > + <controls:FastTextBlock FontSize="{StaticResource TangoTitleFontSize}">Segment #</controls:FastTextBlock> + <controls:FastTextBlock FontSize="{StaticResource TangoTitleFontSize}" Text="{Binding SegmentIndex,Mode=OneWay}"></controls:FastTextBlock> + </StackPanel> + </StackPanel> + </DockPanel> + + <StackPanel Grid.Row="1" Orientation="Vertical"> + <Border Height="50" x:Name="segmentBrush" Margin="0 11 0 0" CornerRadius="25" Background="{StaticResource TangoPrimaryBackgroundBrush}" BorderThickness="1" BorderBrush="{StaticResource TangoGrayBrush}"> + <Border Background="{Binding SegmentBrush}" CornerRadius="25" /> + </Border> + <Border x:Name="gapBorder" Margin="0 20 0 0" Height="24" ClipToBounds="False" CornerRadius="10" Visibility="{Binding ShowGap, Converter={StaticResource BooleanToVisibilityConverter}}"> + <Border.Clip> + <RectangleGeometry RadiusX="10" RadiusY="10"> + <RectangleGeometry.Rect> + <MultiBinding Converter="{StaticResource WidthHeightToRectConverter}"> + <Binding ElementName="gapBorder" Path="ActualWidth" /> + <Binding ElementName="gapBorder" Path="ActualHeight" /> + </MultiBinding> + </RectangleGeometry.Rect> + </RectangleGeometry> + </Border.Clip> + <Grid> + <TextBlock FontSize="{StaticResource TangoDefaultFontSize}" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="4"> + <Run Text="{Binding InterSegmentLength, Mode=OneWay}"></Run> + <Run Text="m Gap"></Run> + </TextBlock> + <Rectangle Stroke="{StaticResource TangoGrayBrush}" StrokeThickness="1" StrokeDashArray="5 5 5 5" RadiusX="12" RadiusY="12" /> + </Grid> + </Border> + + </StackPanel> + + <Canvas Grid.Row="1" x:Name="select_canvas_segment" Width="24" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="-50 -35 0 0" > + <touch:TouchCheckBox Height="22" Width="24" Margin="20 -20 0 0" Style="{StaticResource TouchRoundCheckBox}" Canvas.Left="0" Canvas.Top="0" x:Name="selectItem" Foreground="{StaticResource TangoKeyboardKeyDarkTextBrush}" Background="Transparent" IsChecked="{Binding IsSelected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Center" HorizontalAlignment="Center"/> + </Canvas> + + </Grid> + </DataTemplate> + + <DataTemplate x:Key="CollapsedGroupSegment_Template" DataType="{x:Type model:SegmentsGroupModel}"> + <Grid Height="180" Margin="57 15 57 0"> + <Grid.RowDefinitions> + <RowDefinition Height="Auto" /> + <RowDefinition Height="Auto" /> + </Grid.RowDefinitions> + <DockPanel> + <Rectangle DockPanel.Dock="Top" Stroke="{StaticResource TangoDividerBrush}" StrokeThickness="1" VerticalAlignment="Top" Margin="0 0 0 10"/> + <StackPanel Orientation="Horizontal" DockPanel.Dock="Right" Height="40"> + <touch:TouchButton Background="Transparent" Foreground="{StaticResource TangoPrimaryAccentBrush}" EnableDropShadow="False" Command="{Binding ElementName=view,Path=DataContext.UngroupSegmentsCommand}" CommandParameter="{Binding}"> + <TextBlock FontSize="{StaticResource TangoButtonFontSize}" TextDecorations="Underline" Text="Ungroup" /> + </touch:TouchButton> + <touch:TouchButton Margin="10 0 0 0" VerticalAlignment="Center" EnableDropShadow="False" Background="Transparent" BorderThickness="0" Command="{Binding ElementName=view,Path=DataContext.DeleteSegmentsGroupCommand}" CommandParameter="{Binding}"> + <Border Height="24" Width="24" BorderThickness="0" BorderBrush="{StaticResource TangoKeyboardKeyDarkBrush}" Background="Transparent" HorizontalAlignment="Left"> + <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/delete_segment.png"/> + </Border> + </touch:TouchButton> + <!--<touch:TouchButton Margin="20 0 0 0" VerticalAlignment="Center" EnableDropShadow="False" Background="Transparent" BorderThickness="0" Command="{Binding ElementName=view,Path=DataContext.DuplicateSegmentCommand}" CommandParameter="{Binding}"> + <Border Height="27" Width="23" BorderThickness="0" BorderBrush="{StaticResource TangoKeyboardKeyDarkBrush}" Background="Transparent" HorizontalAlignment="Left"> + <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/duplicate.png"/> + </Border> + </touch:TouchButton>--> + </StackPanel> + <StackPanel DockPanel.Dock="Left"> + <StackPanel Margin="0 10 0 0" Orientation="Horizontal" > + <TextBlock FontSize="{StaticResource TangoTitleFontSize}"> + <Run>Group #</Run> + <Run Text="{Binding SegmentIndex, Mode=OneWay,IsAsync=True,FallbackValue='0000'}"></Run> + </TextBlock> + <touch:TouchButton Margin="10 0 0 0" Background="Transparent" Width="Auto" EnableDropShadow="False" Command="{Binding ElementName=view,Path=DataContext.RepeatSegmentsGroupCommand}" CommandParameter="{Binding}"> + <TextBlock Foreground="{StaticResource TangoPrimaryAccentBrush}" TextDecorations="Underline"> + <Run>x</Run> + <Run Text="{Binding Repeats, Mode=OneWay,IsAsync=True,FallbackValue='0000'}"></Run> + </TextBlock> + </touch:TouchButton> + </StackPanel> + </StackPanel> + </DockPanel> + + <StackPanel Grid.Row="1" Orientation="Vertical"> + <Border Height="50" x:Name="brush_border" Margin="0 10 0 0" CornerRadius="25" Background="{StaticResource TangoPrimaryBackgroundBrush}" BorderThickness="1" BorderBrush="{StaticResource TangoGrayBrush}" ClipToBounds="False"> + <Border.Clip> + <RectangleGeometry RadiusX="25" RadiusY="25"> + <RectangleGeometry.Rect> + <MultiBinding Converter="{StaticResource WidthHeightToRectConverter}"> + <Binding ElementName="brush_border" Path="ActualWidth" /> + <Binding ElementName="brush_border" Path="ActualHeight" /> + </MultiBinding> + </RectangleGeometry.Rect> + </RectangleGeometry> + </Border.Clip> + <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> + <ItemsControl ClipToBounds="False" ItemsSource="{Binding Segments}" > + <ItemsControl.ItemsPanel> + <ItemsPanelTemplate> + <StackPanel Orientation="Horizontal" ClipToBounds="False"></StackPanel> + </ItemsPanelTemplate> + </ItemsControl.ItemsPanel> + <ItemsControl.ItemTemplate> + <DataTemplate> + <Grid> + <Grid.Width> + <MultiBinding Converter="{StaticResource SegmentLengthToWidthConverter}"> + <Binding RelativeSource="{RelativeSource AncestorType=ItemsControl}" Path="DataContext.Length"></Binding> + <Binding RelativeSource="{RelativeSource AncestorType=ItemsControl}" Path="ActualWidth"></Binding> + <Binding Path="Length"></Binding> + </MultiBinding> + </Grid.Width> + <Rectangle Fill="{Binding SegmentBrush}"></Rectangle> + </Grid> + </DataTemplate> + </ItemsControl.ItemTemplate> + </ItemsControl> + + <Border Height="28" Width="150" BorderThickness="0" BorderBrush="Transparent" Opacity="20" Background="#32787880" HorizontalAlignment="Center" CornerRadius="8" VerticalAlignment="Center"> + <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="{StaticResource TangoComboBoxItemFontSize}"> Grouped</TextBlock> + </Border> + + </Grid> + + </Border> + <Border x:Name="gapBorder" Margin="0 20 0 0" Height="24" ClipToBounds="False" CornerRadius="10" Visibility="{Binding ShowGap, Converter={StaticResource BooleanToVisibilityConverter}}"> + <Border.Clip> + <RectangleGeometry RadiusX="10" RadiusY="10"> + <RectangleGeometry.Rect> + <MultiBinding Converter="{StaticResource WidthHeightToRectConverter}"> + <Binding ElementName="gapBorder" Path="ActualWidth" /> + <Binding ElementName="gapBorder" Path="ActualHeight" /> + </MultiBinding> + </RectangleGeometry.Rect> + </RectangleGeometry> + </Border.Clip> + <Grid> + <TextBlock FontSize="{StaticResource TangoDefaultFontSize}" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="4"> + <Run Text="{Binding InterSegmentLength, Mode=OneWay}"></Run> + <Run Text="m Gap"></Run> + </TextBlock> + <Rectangle Stroke="{StaticResource TangoGrayBrush}" StrokeThickness="1" StrokeDashArray="5 5 5 5" RadiusX="12" RadiusY="12" /> + </Grid> + </Border> + + </StackPanel> + + <Canvas Grid.Row="1" x:Name="select_canvas_segment" Width="24" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="-50 -35 0 0" > + <touch:TouchCheckBox Height="22" Width="24" Margin="20 -20 0 0" Style="{StaticResource TouchRoundCheckBox}" Canvas.Left="0" Canvas.Top="0" x:Name="selectItem" Foreground="{StaticResource TangoKeyboardKeyDarkTextBrush}" Background="Transparent" IsChecked="{Binding IsSelected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Center" HorizontalAlignment="Center"/> + </Canvas> + + </Grid> + </DataTemplate> + + <helpers:GroupSegmentTemplateSelector x:Key="GroupSegmentTemplateSelector" + GroupSegmentsTemplate="{StaticResource GroupSegment_Template}" + SegmentTemplate="{StaticResource Segment_Template}"/> + <helpers:GroupSegmentTemplateSelector x:Key="CollapsedGroupSegmentTemplateSelector" + GroupSegmentsTemplate="{StaticResource CollapsedGroupSegment_Template}" + SegmentTemplate="{StaticResource CollapsedSegment_Template}"/> + + </UserControl.Resources> + + <Grid Background="{StaticResource TangoMidBackgroundBrush}" SnapsToDevicePixels="False"> + <Grid.RowDefinitions> + <RowDefinition Height="Auto"/> + <RowDefinition Height="Auto"/> + <RowDefinition Height="1*"/> + </Grid.RowDefinitions> + <touch:TouchLoadingPanel x:Name="GeneralSettings" Grid.Row="1" IsLoading="{Binding IsBusy}" Margin="10 7 10 0" IsEnabled="{Binding CanEdit}"> + <Border Grid.Row="1" x:Name="jobDetailsBorder" Background="{StaticResource TangoPrimaryBackgroundBrush}" BorderThickness="2" BorderBrush="{StaticResource TangoLightBorderBrush}" Margin="0 7 0 7"> + + <Grid x:Name="job_details" HorizontalAlignment="Stretch" > + + <StackPanel Orientation="Vertical"> + <DockPanel> + <StackPanel DockPanel.Dock="Right" Orientation="Horizontal" VerticalAlignment="Center" Width="200" MinHeight="55" HorizontalAlignment="Right" Margin="0 0 0 0"> + <touch:TouchToggleSlider Style="{StaticResource TouchToggleButtonSlider}" Background="{StaticResource TangoMidBackgroundBrush}" CheckedBackground="{StaticResource TangoMidBackgroundBrush}" UncheckedBackground="{StaticResource TangoMidBackgroundBrush}" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="20 0 110 0" CornerRadius="17" Height="34" Width="164" ThumbWidth="80" LeftText="Length" RightText="Weight" ThumbCornerRadius="13" IsChecked="{Binding IsWeightView}" ></touch:TouchToggleSlider> + </StackPanel> + <StackPanel Orientation="Horizontal" MinHeight="55" VerticalAlignment="Top" > + <StackPanel.Style> + <Style TargetType="StackPanel"> + <Setter Property="Margin" Value="20 10 10 0"></Setter> + <!--<Style.Triggers> + <DataTrigger Binding="{Binding IsFullMode}" Value="false"> + <Setter Property="Margin" Value="20 15 60 15"></Setter> + </DataTrigger> + </Style.Triggers>--> + </Style> + </StackPanel.Style> + <Image Source="../Images/JobView/job-details.png" Width="30" Height="30" /> + <TextBlock FontWeight="Medium" Margin="20 0 0 0" VerticalAlignment="Center" FontSize="{StaticResource TangoExpanderHeaderFontSize}">General Settings</TextBlock> + </StackPanel> + + </DockPanel> + + <Rectangle Height="2" Margin="0 0 0 0" Fill="{StaticResource TangoDividerBrush}" VerticalAlignment="Bottom"></Rectangle> + + <StackPanel Orientation="Vertical" VerticalAlignment="Top"> + <DockPanel HorizontalAlignment="Stretch" Margin="60 20 60 0"> + <TextBlock HorizontalAlignment="Left" Margin="0 10 0 0" Text="Thread" FontSize="{StaticResource TangoButtonFontSize}" Width="145"/> + <Border Margin="20 0 0 0" BorderThickness="1" Height="44" CornerRadius="12" BorderBrush="{StaticResource TangoMidAccentBrush}"> + <touch:TouchComboBox Margin="20 0 10 10" ItemsSource="{Binding Rmls}" SelectedItem="{Binding SelectedRML ,Mode=TwoWay}" Focusable="False" KeyboardNavigation.TabNavigation ="None"> + <touch:TouchComboBox.ItemTemplate> + <DataTemplate> + <TextBlock Margin="20 10 10 10" TextTrimming="CharacterEllipsis" FontSize="{StaticResource TangoComboBoxItemFontSize}" Text="{Binding FinalName}"/> + </DataTemplate> + </touch:TouchComboBox.ItemTemplate> + <touch:TouchComboBox.SelectedItemTemplate> + <DataTemplate> + <TextBlock Margin="0 0 0 5" FontSize="{StaticResource TangoComboBoxItemFontSize}" Text="{Binding FinalName}" VerticalAlignment="Center"></TextBlock> + </DataTemplate> + </touch:TouchComboBox.SelectedItemTemplate> + </touch:TouchComboBox> + </Border> + </DockPanel> + </StackPanel> + <DockPanel HorizontalAlignment="Stretch" Margin="60 20 60 20"> + <StackPanel Orientation="Horizontal" DockPanel.Dock="Right"> + <TextBlock HorizontalAlignment="Left" Margin="20 10 0 0" Text="Divided By Spools" FontSize="{StaticResource TangoButtonFontSize}" Width="Auto"/> + <Border Margin="20 0 0 0" BorderThickness="1" Height="44" CornerRadius="12" BorderBrush="{StaticResource TangoMidAccentBrush}" Width="120" DockPanel.Dock="Right"> + <touch:TouchNumericTextBox BorderBrush="Transparent" Margin="0 0 0 0" HasDecimalPoint="False" Minimum="4" Step="4" FontSize="{StaticResource TangoComboBoxItemFontSize}" VerticalAlignment="Center" VerticalContentAlignment="Center" HorizontalAlignment="Center" Value="{Binding JobModel.NumberSpools}" HideUnderline="True" RippleBrush="Transparent"></touch:TouchNumericTextBox> + </Border> + </StackPanel> + <StackPanel Orientation="Horizontal"> + <TextBlock HorizontalAlignment="Left" Margin="0 10 0 0" Text="Copies" FontSize="{StaticResource TangoButtonFontSize}" Width="145"/> + <Border Margin="20 0 0 0" BorderThickness="1" Height="44" CornerRadius="12" BorderBrush="{StaticResource TangoMidAccentBrush}" Width="120"> + <touch:TouchNumericTextBox BorderBrush="Transparent" HasDecimalPoint="False" Minimum="4" Maximum="1000000" Step="4" Margin="0 0 0 0" FontSize="{StaticResource TangoComboBoxItemFontSize}" VerticalContentAlignment="Center" VerticalAlignment="Center" HorizontalAlignment="Center" Value="{Binding JobModel.Copies}" HideUnderline="True" RippleBrush="Transparent"></touch:TouchNumericTextBox> + + </Border> + </StackPanel> + + </DockPanel> + <StackPanel Orientation="Horizontal" Margin="60 0 60 20" Visibility="{Binding IsBasicMode, Converter={StaticResource BooleanToVisibilityInverseConverter}}"> + <TextBlock HorizontalAlignment="Left" Margin="0 10 0 0" Text="White Gap(m)" FontSize="{StaticResource TangoButtonFontSize}" Width="145"/> + <Border Margin="20 0 0 0" BorderThickness="1" Height="44" CornerRadius="12" BorderBrush="{StaticResource TangoMidAccentBrush}" Width="120"> + <touch:TouchNumericTextBox BorderBrush="Transparent" HasDecimalPoint="False" Minimum="0" Margin="0 0 0 0" FontSize="{StaticResource TangoComboBoxItemFontSize}" VerticalContentAlignment="Center" VerticalAlignment="Center" HorizontalAlignment="Center" Value="{Binding JobModel.InterSegmentLength}" HideUnderline="True" RippleBrush="Transparent"></touch:TouchNumericTextBox> + + </Border> + </StackPanel> + </StackPanel> + + <!--<touch:TouchButton Margin="0 0 30 0" VerticalAlignment="Center" HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch" EnableDropShadow="False" Background="Transparent" BorderThickness="0" Command="{Binding EditJobDetailsCommand}" Foreground="{StaticResource TangoKeyboardKeyDarkTextBrush}" + components:TransformationHelper.TransformWhenPressed ="False"> + + <Grid VerticalAlignment="Center" HorizontalAlignment="Stretch" Background="Transparent"> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="1*"/> + <ColumnDefinition Width="auto" MaxWidth="320"/> + <ColumnDefinition Width="auto" MaxWidth="320"/> + <ColumnDefinition Width="40"/> + </Grid.ColumnDefinitions> + <TextBlock Visibility="Hidden" Margin="16 0 0 5" TextTrimming="CharacterEllipsis" HorizontalAlignment="Left" VerticalAlignment="Center" FontWeight="SemiBold" FontSize="{StaticResource TangoMessageBoxTitleFontSize}" Text="{Binding JobModel.Name,FallbackValue='Job Name'}" ToolTip="{Binding JobModel.Name}"/> + + <StackPanel Margin="10 0 0 0" Grid.Column="1" VerticalAlignment="Center" Orientation="Horizontal" HorizontalAlignment="Left"> + <StackPanel.ToolTip> + <ToolTip> + <TextBlock Text="{Binding JobModel.Rml.Name}" /> + </ToolTip> + </StackPanel.ToolTip> + <TextBlock Text="Thread Type:" VerticalAlignment="Center" FontSize="{StaticResource TangoDefaultFontSize}" ></TextBlock> + <TextBlock Margin="5 0 0 0" VerticalAlignment="Center" TextTrimming="CharacterEllipsis" FontSize="{StaticResource TangoDefaultFontSize}" Text="{Binding JobModel.Rml.FinalName}"/> + </StackPanel> + + <StackPanel Margin="30 0 0 0" Grid.Column="2" VerticalAlignment="Center" Orientation="Horizontal" HorizontalAlignment="Center"> + <StackPanel.ToolTip> + <ToolTip> + <TextBlock Text="{Binding JobModel.SpoolTypeName}" /> + </ToolTip> + </StackPanel.ToolTip> + <TextBlock Text="Spool Type:" VerticalAlignment="Center" FontSize="{StaticResource TangoDefaultFontSize}" ></TextBlock> + <TextBlock Text="{Binding JobModel.SpoolTypeName}" Margin="5 0 0 0" VerticalAlignment="Center" TextTrimming="CharacterEllipsis" FontSize="{StaticResource TangoDefaultFontSize}"/> + </StackPanel> + + + </Grid> + </touch:TouchButton>--> + + </Grid> + + </Border> + + </touch:TouchLoadingPanel> + <touch:TouchLoadingPanel Grid.Row="2" IsLoading="{Binding IsBusy}" IsEnabled="{Binding CanEdit}"> + <Grid > + <Grid.RowDefinitions> + <RowDefinition Height="1*"/> + <RowDefinition Height="Auto"/> + <RowDefinition Height="Auto"/> + </Grid.RowDefinitions> + + <Grid Grid.Row="0" x:Name="segmentsGrid" Grid.RowSpan="3" > + <Grid x:Name="Container" keyboard:KeyboardView.ContainerOffset="40" Margin="0 0 0 0" Background="{StaticResource TangoMidBackgroundBrush}"> + <touch:TouchDropShadowBorder Margin="10 0 10 0" Padding="0 0 0 0" > + <Grid> + <Grid.RowDefinitions> + <RowDefinition Height="Auto"/> + <RowDefinition Height="1*"/> + <RowDefinition Height="100"/> + </Grid.RowDefinitions> + <Grid Grid.Row="0"> + <DockPanel x:Name="ColorPropertiesPanel" VerticalAlignment="Top" > + <StackPanel x:Name="AdvansedOptions" DockPanel.Dock="Right" Orientation="Horizontal" VerticalAlignment="Top" Margin="0 5 18 0" Height="55" HorizontalAlignment="Right" Width="Auto" Visibility="{Binding ShowAdvanced, Converter={StaticResource BooleanToVisibilityConverter}}"> + <TextBlock FontSize="20" VerticalAlignment="Center" >Advanced Options</TextBlock> + <touch:TouchToggleSlider Style="{StaticResource TangoToggleButtonGreenAccent}" Height="28" CornerRadius="14" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="10 0 0 0" Width="54" IsChecked="{Binding IsBasicMode, Converter={StaticResource BooleanInverseConverter}, Mode=TwoWay}"></touch:TouchToggleSlider> + </StackPanel> + <DockPanel DockPanel.Dock="Left"> + <StackPanel x:Name="colorAndLength" DockPanel.Dock="Top" Orientation="Horizontal" VerticalAlignment="Center"> + <StackPanel.Style> + <Style TargetType="StackPanel"> + <Setter Property="Margin" Value="20 25 10 15"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding IsFullMode}" Value="false"> + <Setter Property="Margin" Value="20 15 60 15"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </StackPanel.Style> + <Image Source="../Images/JobView/color-length.png" Width="30" /> + <TextBlock FontWeight="Medium" Margin="20 0 0 0" VerticalAlignment="Center" FontSize="{StaticResource TangoExpanderHeaderFontSize}">Copy Properties</TextBlock> + </StackPanel> + <touch:TouchCheckBox x:Name="selectAll" Width="120" Height="22" Style="{StaticResource TouchRoundCheckBox}" Margin="28 0 0 20" IsChecked="{Binding JobModel.SelectAllSegments}" DockPanel.Dock="Top" FontSize="{StaticResource TangoDefaultFontSize}" HorizontalAlignment="Left" Visibility="{Binding IsFullMode, Converter={StaticResource BooleanToVisibilityInverseConverter}}"> + <TextBlock FontSize="{StaticResource TangoButtonFontSize}" Foreground="{StaticResource TangoMidAccentBrush}"> Select All</TextBlock> + </touch:TouchCheckBox> + </DockPanel> + </DockPanel> + <Rectangle Height="2" Margin="0 0 0 0" Fill="{StaticResource TangoDividerBrush}" VerticalAlignment="Bottom"></Rectangle> + </Grid> + <Grid Grid.Row="1" Margin="0 4 0 0" Visibility="{Binding IsBasicMode, Converter={StaticResource BooleanToVisibilityInverseConverter}}"> + <!--Border x:Name="borderDockFloat" Height="10" Margin="0 0 0 0" BorderBrush="Transparent" > + <DockPanel x:Name="dockEdit" LastChildFill="False" Height="10" Width="50" HorizontalAlignment="Right" RenderTransformOrigin="0.58,2.08"/> + </Border> --> + <ListBox x:Name="listSegments" Margin="10 0 10 20" Padding="0" BorderThickness="0" ItemsSource="{Binding SegmentsCollectionView}" ItemTemplateSelector="{StaticResource GroupSegmentTemplateSelector}" Style="{StaticResource SegmentsListBox}" + ScrollViewer.VerticalScrollBarVisibility="Visible" + Visibility="{Binding IsFullMode, Converter={StaticResource BooleanToVisibilityConverter}}"/> + + + <ListBox x:Name="collapsedListSegments" ItemsSource="{Binding SegmentsCollectionView}" ItemTemplateSelector ="{StaticResource CollapsedGroupSegmentTemplateSelector}" Style="{StaticResource SegmentsListBox}" + ScrollViewer.VerticalScrollBarVisibility="Visible" + Visibility="{Binding IsFullMode, Converter={StaticResource BooleanToVisibilityInverseConverter}}" Margin=" 0 0 0 100"/> + + <!--<StackPanel x:Name="stackOutput" Orientation="Horizontal" VerticalAlignment="Center" Style="{StaticResource Level1Container}"/>--> + + </Grid> + <Grid Grid.Row="1" Margin="0 4 0 0" Visibility="{Binding IsBasicMode, Converter={StaticResource BooleanToVisibilityConverter}}" > + + <Grid Height="Auto" Margin="57 15 57 0" DataContext="{Binding JobModel.Segments, Converter={StaticResource FirstValueCollectionConverter}}"> + <Grid.RowDefinitions> + <RowDefinition Height="Auto" /> + <RowDefinition Height="Auto" /> + <RowDefinition Height="Auto" /> + </Grid.RowDefinitions> + + <Grid x:Name="header" HorizontalAlignment="Stretch" Margin="0 10 0 0"> + <controls:FastTextBlock VerticalAlignment="Center" DockPanel.Dock="Left" FontSize="{StaticResource TangoButtonFontSize}" Width="120" HorizontalAlignment="Left"> + <controls:FastTextBlock.Style> + <Style TargetType="controls:FastTextBlock"> + <Setter Property="Text" Value="Weight (g):" /> + <Style.Triggers> + <DataTrigger Binding="{Binding ElementName=segmentsGrid, Path=DataContext.IsWeightView}" Value="False"> + <Setter Property="Text" Value="Length (m):" /> + </DataTrigger> + </Style.Triggers> + </Style> + </controls:FastTextBlock.Style> + </controls:FastTextBlock> + <Border Margin="140 0 0 0" BorderThickness="1" Height="44" CornerRadius="12" BorderBrush="{StaticResource TangoMidAccentBrush}" Visibility="{Binding ElementName=segmentsGrid, Path=DataContext.IsWeightView, Converter={StaticResource BooleanToVisibilityInverseConverter}}"> + <touch:TouchNumericTextBox Margin="20 0 0 0" Width="192" FocusSelectionMode="SelectAll" HorizontalAlignment="Left" HideUnderline="True" VerticalAlignment="Center" + Value="{Binding Length, UpdateSourceTrigger=LostFocus}" VerticalContentAlignment="Center" + StringFormat='#,0.0' AutoCalculateJogStep="False" + HasDecimalPoint="True" Minimum="1" Maximum="1000000" + KeyboardContainer="{Binding ElementName=Container}" + FontSize="18" ValueChangedEnd="Length_ValueChanged" + TextGotFocus="Length_BeforeChangeValue" RippleBrush="Transparent"/> + + </Border> + <Border Margin="140 0 0 0" BorderThickness="1" Height="44" CornerRadius="12" BorderBrush="{StaticResource TangoMidAccentBrush}" Visibility="{Binding ElementName=segmentsGrid, Path=DataContext.IsWeightView, Converter={StaticResource BooleanToVisibilityConverter}}"> + <touch:TouchNumericTextBox Margin="20 0 0 0" Width="192" FocusSelectionMode="SelectAll" HorizontalAlignment="Left" HideUnderline="True" VerticalAlignment="Center" + Value="{Binding Weight, UpdateSourceTrigger=LostFocus}" VerticalContentAlignment="Center" + StringFormat="#,0.0" AutoCalculateJogStep="False" + HasDecimalPoint="True" Minimum="0" Maximum="100000" + KeyboardContainer="{Binding ElementName=Container}" + FontSize="18" RippleBrush="Transparent"/> + + </Border> + </Grid> + + <Border Grid.Row="1" x:Name="segmentBrush" Height="90" Margin="0 20 0 0" CornerRadius="20" Background="{StaticResource TangoPrimaryBackgroundBrush}" BorderThickness="1" BorderBrush="{StaticResource TangoGrayBrush}"> + + <Border Background="{Binding SegmentBrush}" CornerRadius="20"> + <Grid> + <touch:TouchButton Margin="26 0 0 0" HorizontalAlignment="Center" VerticalAlignment="Center" Command="{Binding ElementName=segmentsGrid,Path=DataContext.EditColorCommand}" CommandParameter="{Binding FirstBrushStop}" Visibility="{Binding HasColors, Converter={StaticResource BooleanToVisibilityConverter}}" EnableDropShadow="False" Foreground="{StaticResource TangoKeyboardKeyDarkTextBrush}" Background="Transparent" BorderThickness="0"> + <Border Height="40" Width="40" BorderThickness="0" BorderBrush="{StaticResource TangoKeyboardKeyDarkBrush}" Background="Transparent" HorizontalAlignment="Left"> + <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/Edit_color.png"/> + </Border> + </touch:TouchButton> + <StackPanel Orientation="Vertical" HorizontalAlignment="Center" VerticalAlignment="Center"> + <!--<touch:TouchIconButton Command="{Binding ElementName=view,Path=DataContext.AddColorCommand}" CommandParameter="{Binding}" + Height="40" Width="40" Style="{StaticResource TangoRoundTouchIconButton}" Icon="Plus" Background="{StaticResource TangoRippleDarkBrush}" Foreground="{StaticResource TangoLightForegroundBrush}" Padding="12" Margin="20 0 0 0" />--> + <touch:TouchButton Margin="0 0 0 0" VerticalAlignment="Center" Command="{Binding ElementName=segmentsGrid,Path=DataContext.AddColorCommand}" CommandParameter="{Binding}" EnableDropShadow="False" Foreground="{StaticResource TangoKeyboardKeyDarkTextBrush}" Background="Transparent" BorderThickness="0" BorderBrush="Transparent" RippleBrush="Transparent" + Visibility="{Binding HasColors, Converter={StaticResource BooleanToVisibilityInverseConverter}}"> + <Border Height="40" Width="40" BorderThickness="0" BorderBrush="{StaticResource TangoKeyboardKeyDarkBrush}" Background="Transparent" HorizontalAlignment="Left"> + <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/AddColor.png"/> + </Border> + </touch:TouchButton> + <TextBlock VerticalAlignment="Center" Margin="20 5 0 0" FontSize="{StaticResource TangoSmallFontSize}" Visibility="{Binding HasColors, Converter={StaticResource BooleanToVisibilityInverseConverter}}" Foreground="{StaticResource TangoKeyboardKeyDarkTextBrush}">Add Color</TextBlock> + </StackPanel> + </Grid> + </Border> + </Border> + + <Grid Grid.Row="2" Margin="0 10 0 0" x:Name="colorSpacesSegment" > + <ContentControl x:Name="basicColorSpaceValues" Focusable="False" VerticalAlignment="Top" Margin="0 0 0 0" HorizontalAlignment="Left" Content="{Binding FirstBrushStop}" Visibility="{Binding HasColors, Converter={StaticResource BooleanToVisibilityConverter}}"> + <ContentControl.Style> + <Style TargetType="ContentControl"> + <Setter Property="ContentTemplate"> + <Setter.Value> + <DataTemplate/> + </Setter.Value> + </Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding FirstBrushStop.ColorSpace, Converter={StaticResource EnumToDescriptionConverter}}" Value="HSB"> + <Setter Property="ContentTemplate" Value="{StaticResource HSB_Template}" /> + </DataTrigger> + <DataTrigger Binding="{Binding FirstBrushStop.ColorSpace, Converter={StaticResource EnumToDescriptionConverter}}" Value="RGB"> + <Setter Property="ContentTemplate" Value="{StaticResource RGB_Template}" /> + </DataTrigger> + <DataTrigger Binding="{Binding FirstBrushStop.ColorSpace, Converter={StaticResource EnumToDescriptionConverter}}" Value="Volume"> + <Setter Property="ContentTemplate" Value="{StaticResource CMYK_Template}" /> + </DataTrigger> + <DataTrigger Binding="{Binding FirstBrushStop.ColorSpace, Converter={StaticResource EnumToDescriptionConverter}}" Value="LAB"> + <Setter Property="ContentTemplate" Value="{StaticResource LAB_Template}" /> + </DataTrigger> + <DataTrigger Binding="{Binding FirstBrushStop.ColorSpace, Converter={StaticResource EnumToDescriptionConverter}}" Value="Catalog"> + <Setter Property="ContentTemplate" Value="{StaticResource CATALOG_Template}" /> + </DataTrigger> + </Style.Triggers> + </Style> + </ContentControl.Style> + </ContentControl> + </Grid> + </Grid> + </Grid> + + </Grid> + </touch:TouchDropShadowBorder> + </Grid> + <Border VerticalAlignment="Top" x:Name="borderEditDock" Background="{StaticResource TangoPrimaryBackgroundBrush}" BorderThickness="0 0 0 0" BorderBrush="{StaticResource TangoDividerBrush}" Padding="0 0 0 10" Margin="10 0 10 0"/> + </Grid> + + <Grid Grid.Row="1"> + <Grid > + <DockPanel VerticalAlignment="Top" x:Name="collapsedToolbar" Margin="30 2 30 8" Height="80" HorizontalAlignment="Stretch" Visibility="{Binding IsFullMode, Converter={StaticResource BooleanToVisibilityInverseConverter}}"> + + <Border DockPanel.Dock="Right" Height="80" CornerRadius="22" BorderBrush="{StaticResource TangoDividerBrush}" BorderThickness="1" Background="{StaticResource TangoPrimaryBackgroundBrush}" > + <Border.Effect> + <DropShadowEffect Opacity="0.5" ShadowDepth="6" Color="Silver" BlurRadius="10" Direction="270"/> + </Border.Effect> + <UniformGrid Columns="7" Rows="1" HorizontalAlignment="Stretch" Margin="0 0 70 0"> + <touch:TouchButton Style="{StaticResource TouchButtonWithDisableState}" MinHeight="50" Padding="4" Margin="20 0 0 0" EnableDropShadow="False" VerticalAlignment="Center" HorizontalAlignment="Center" Command="{Binding UndoCommand}" > + <StackPanel Orientation="Vertical" VerticalAlignment="Center" > + <Image Width="20" MaxWidth="50" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/undo.png"/> + <TextBlock FontWeight="Medium" Margin="0 0 0 0" VerticalAlignment="Center" FontSize="{StaticResource TangoSmallFontSizeBar}" Foreground="{StaticResource TangoMidAccentBrush}">Undo</TextBlock> + </StackPanel> + </touch:TouchButton> + <touch:TouchButton Margin="0 0 0 0" Style="{StaticResource TouchButtonWithDisableState}" MinHeight="50" Padding="4" EnableDropShadow="False" VerticalAlignment="Center" HorizontalAlignment="Center" Command="{Binding RedoCommand}" > + <StackPanel Orientation="Vertical" VerticalAlignment="Center" > + <Image Width="20" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/redo.png"/> + <TextBlock FontWeight="Medium" Margin="0" VerticalAlignment="Center" FontSize="{StaticResource TangoSmallFontSizeBar}" Foreground="{StaticResource TangoMidAccentBrush}">Redo</TextBlock> + </StackPanel> + </touch:TouchButton> + <touch:TouchButton Style="{StaticResource CollapsedPanelButton}" EnableDropShadow="False" Command="{Binding RepeateSegmentCommand}" IsEnabled="{Binding JobModel.HasSelectedItems}"> + <StackPanel Orientation="Vertical" VerticalAlignment="Center" > + <Image Width="20" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/repeat.png"/> + <TextBlock FontWeight="Medium" Margin="0 0 0 0" VerticalAlignment="Center" FontSize="{StaticResource TangoSmallFontSizeBar}" >Repeat</TextBlock> + </StackPanel> + </touch:TouchButton> + <touch:TouchButton Style="{StaticResource CollapsedPanelButton}" EnableDropShadow="False" Command="{Binding ReverseCommand}" IsEnabled="{Binding JobModel.IsReverseEnable}"> + <StackPanel Orientation="Vertical" VerticalAlignment="Center"> + <Image Width="20" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/reverse.png"/> + <TextBlock FontWeight="Medium" Margin="0 0 0 0" VerticalAlignment="Center" FontSize="{StaticResource TangoSmallFontSizeBar}" Foreground="{StaticResource TangoMidAccentBrush}">Reverse</TextBlock> + </StackPanel> + </touch:TouchButton> + <touch:TouchButton Style="{StaticResource CollapsedPanelButton}" EnableDropShadow="False" Command="{Binding DeleteSegmentCommand}" IsEnabled="{Binding JobModel.HasSelectedItems}"> + <StackPanel Orientation="Vertical" VerticalAlignment="Center"> + <Image Width="20" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/delete_segment.png"/> + <TextBlock FontWeight="Medium" Margin="0" VerticalAlignment="Center" FontSize="{StaticResource TangoSmallFontSizeBar}" Foreground="{StaticResource TangoMidAccentBrush}">Delete</TextBlock> + </StackPanel> + </touch:TouchButton> + <touch:TouchButton Style="{StaticResource CollapsedPanelButton}" EnableDropShadow="False" Command="{Binding PasteCommand}" IsEnabled="{Binding JobModel.HasSegmentsToCopy}" > + <StackPanel Orientation="Vertical" VerticalAlignment="Center"> + <Image Width="20" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/paste.png"/> + <TextBlock FontWeight="Medium" Margin="0" VerticalAlignment="Center" FontSize="{StaticResource TangoSmallFontSizeBar}" Foreground="{StaticResource TangoMidAccentBrush}">Paste</TextBlock> + </StackPanel> + </touch:TouchButton> + <touch:TouchButton Style="{StaticResource CollapsedPanelButton}" EnableDropShadow="False" Command="{Binding CopyCommand}" IsEnabled="{Binding JobModel.HasSelectedItems}"> + <StackPanel Orientation="Vertical" VerticalAlignment="Center"> + <Image Width="19" Height="23" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/copy.png"/> + <TextBlock FontWeight="Medium" Margin="0" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="{StaticResource TangoSmallFontSizeBar}" Foreground="{StaticResource TangoMidAccentBrush}">Copy</TextBlock> + </StackPanel> + </touch:TouchButton> + </UniformGrid> + </Border> + <!--<Grid DockPanel.Dock="Left" HorizontalAlignment="Left" Margin="40 0 30 0"> + <StackPanel DockPanel.Dock="Left" HorizontalAlignment="Left" Orientation="Horizontal" VerticalAlignment="Center"> + <touch:TouchButton Margin="0" Style="{StaticResource TouchButtonWithDisableState}" VerticalAlignment="Center" HorizontalAlignment="Left" EnableDropShadow="False" Command="{Binding UndoCommand}" ToolTip="Undone" > + <Border Padding="0" BorderThickness="0" Background="Transparent" HorizontalAlignment="Left"> + <Image Height="28" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/undo.png"/> + </Border> + </touch:TouchButton> + <touch:TouchButton Margin="16 0 0 0" Style="{StaticResource TouchButtonWithDisableState}" VerticalAlignment="Center" HorizontalAlignment="Left" EnableDropShadow="False" Command="{Binding RedoCommand}" ToolTip="Restore"> + <Border Padding="0" BorderThickness="0" Background="Transparent" HorizontalAlignment="Left"> + <Image Height="28" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/redo.png"/> + </Border> + </touch:TouchButton> + </StackPanel> + </Grid>--> + </DockPanel> + <Canvas Width="70" Height="70" Margin="0 3 40 0" HorizontalAlignment="Right" VerticalAlignment="Center" Visibility="{Binding IsBasicMode, Converter={StaticResource BooleanToVisibilityInverseConverter}}"> + <touch:TouchButton HorizontalAlignment="Right" VerticalAlignment="Center" EnableDropShadow="False" Background="Transparent" BorderThickness="0" Command="{Binding JobModeSwitchCommand}" > + <Border BorderThickness="0" Background="Transparent" HorizontalAlignment="Right"> + <Image Height="70" Width="70" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/job_mode.png"/> + </Border> + </touch:TouchButton> + </Canvas> + </Grid> + </Grid> + + <!--<touch:TouchDropShadowBorder Grid.Row="3" Margin="10 0 10 15" CornerRadius="0" BorderThickness="0" Padding="0" >--> + <Border Grid.Row="2" Margin="0 0 0 0" BorderThickness="0"> + <touch:TouchExpander x:Name="summaryExpander" IsExpanded="{Binding IsSummaryOpened, Mode=TwoWay}" Grid.Row="3" Margin="15 0 15 0 " FontSize="{StaticResource TangoTitleFontSize}" BorderThickness="0" Style="{StaticResource TouchRoundedExpander}" CornerRadius="20 20 0 0" Padding="10" IsTabStop="False" > + <touch:TouchExpander.Header> + <DockPanel Height="80"> + <StackPanel Orientation="Horizontal" DockPanel.Dock="Right" Margin="0 0 10 0" VerticalAlignment="Center" > + <StackPanel Orientation="Horizontal" Visibility="{Binding IsSummaryOpened, Converter={StaticResource BooleanToVisibilityInverseConverter}, Mode=TwoWay}"> + <TextBlock VerticalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}" Visibility="{Binding IsWeightView, Converter={StaticResource BooleanToVisibilityInverseConverter}}"> + <Run Text="Copy:" FontWeight="Normal"></Run> + <Run Text="{Binding JobModel.Length,Mode=OneWay,StringFormat='#,0.##'}" FontWeight="DemiBold"/> + <Run Text="m" FontWeight="DemiBold"></Run> + </TextBlock> + <TextBlock VerticalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}" Visibility="{Binding IsWeightView, Converter={StaticResource BooleanToVisibilityConverter}}"> + <Run Text="Copy:" FontWeight="Normal"></Run> + <Run FontWeight="DemiBold"> + <Run.Text> + <MultiBinding Converter="{StaticResource LengthToWeightConverter}" StringFormat="#,0.##" > + <Binding Path="JobModel.Length" Mode="OneWay"/> + <Binding Path="JobModel.GramPerLength" Mode="OneWay"/> + </MultiBinding> + </Run.Text> + </Run> + <Run Text="g" FontWeight="DemiBold"></Run> + </TextBlock> + <TextBlock VerticalAlignment="Center" Margin="10 0 0 0" FontSize="{StaticResource TangoTitleFontSize}" Visibility="{Binding IsWeightView, Converter={StaticResource BooleanToVisibilityInverseConverter}}"> + <Run Text="Total:" FontWeight="Normal"></Run> + <Run Text="{Binding JobModel.LengthIncludingNumberOfUnitsAndSpools,Mode=OneWay, StringFormat='#,0.##'}" FontWeight="Bold"/> + <Run Text="m" FontWeight="Bold"></Run> + </TextBlock> + <TextBlock VerticalAlignment="Center" Margin="10 0 0 0" FontSize="{StaticResource TangoTitleFontSize}" Visibility="{Binding IsWeightView, Converter={StaticResource BooleanToVisibilityConverter}}"> + <Run Text="Total:" FontWeight="Normal"></Run> + <Run FontWeight="Bold" Text="{Binding JobModel.WeightIncludingNumberOfUnitsAndSpools, StringFormat='#,0.##', Mode=OneWay}"> + <!--<Run.Text > + <MultiBinding Converter="{StaticResource LengthToWeightConverter}" StringFormat="#,0.##" > + <Binding Path="JobModel.LengthIncludingNumberOfUnitsAndSpools" /> + <Binding Path="JobModel.GramPerLength" /> + </MultiBinding> + </Run.Text>--> + </Run> + <Run Text="g" FontWeight="Bold"></Run> + </TextBlock> + </StackPanel> + <TextBlock Margin="10 0 0 0" VerticalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}" FontWeight="Bold" Foreground="{StaticResource TangoDarkForegroundBrush}"> + <Run Text="Duration: " FontWeight="Normal"></Run> + <Run Text="{Binding JobModel.GetEstimatedDuration, Converter={StaticResource TimeSpanToTwoDigitsTimeConverter}, FallbackValue=0, Mode=OneWay}"></Run> + <Run Text="{Binding JobModel.GetEstimatedDuration, Converter={StaticResource TimeSpanToLabelConverter}, FallbackValue=min, Mode=OneWay}"></Run> + </TextBlock> + </StackPanel> + <StackPanel DockPanel.Dock="Left" Orientation="Horizontal" VerticalAlignment="Center" Style="{StaticResource Level1Container}"> + <Image Source="../Images/JobView/job-summary.png" Width="39" /> + <TextBlock FontWeight="Medium" Margin="10 0 0 0" VerticalAlignment="Center" FontSize="{StaticResource TangoExpanderHeaderFontSize}">Summary</TextBlock> + </StackPanel> + </DockPanel> + + </touch:TouchExpander.Header> + <Grid Margin="40 0 40 10"> + <Grid.RowDefinitions> + <RowDefinition Height="Auto"/> + <RowDefinition Height="Auto"/> + <RowDefinition Height="Auto"/> + </Grid.RowDefinitions> + <Grid Margin=" 0 10 0 0"> + + <localControls:JobModelSummaryViewerControl JobModel="{Binding JobModel}" Height="20" DisplayMarkers="False" DisplayUnits="False"/> + + </Grid> + <UniformGrid Grid.Row="1" Margin="0 40 0 0" Columns="4" Rows="1" HorizontalAlignment="Stretch" > + <TextBlock Text="Total:" FontWeight="Bold" FontSize="{StaticResource TangoTitleFontSize}" ></TextBlock> + <TextBlock FontSize="{StaticResource TangoTitleFontSize}" Visibility="{Binding IsWeightView, Converter={StaticResource BooleanToVisibilityInverseConverter}}"> + <Run Text="Copy:" FontWeight="Normal"></Run> + <Run Text="{Binding JobModel.Length,Mode=OneWay,StringFormat='#,0.##'}" FontWeight="Bold"/> + <Run Text="m" FontWeight="Bold"></Run> + </TextBlock> + <TextBlock FontSize="{StaticResource TangoTitleFontSize}" Visibility="{Binding IsWeightView, Converter={StaticResource BooleanToVisibilityConverter}}"> + <Run Text="Copy:" FontWeight="Normal"></Run> + <Run FontWeight="Bold"> + <Run.Text> + <MultiBinding Converter="{StaticResource LengthToWeightConverter}" StringFormat="#,0.##" > + <Binding Path="JobModel.Length" Mode="OneWay"/> + <Binding Path="JobModel.GramPerLength" Mode="OneWay"/> + </MultiBinding> + </Run.Text> + </Run> + <Run Text="g" FontWeight="DemiBold"></Run> + </TextBlock> + <TextBlock FontSize="{StaticResource TangoTitleFontSize}"> + <Run Text="Copies:" FontWeight="Normal"></Run> + <Run Text="{Binding JobModel.Copies}" FontWeight="Bold"/> + </TextBlock> + <TextBlock FontSize="{StaticResource TangoTitleFontSize}" Visibility="{Binding IsWeightView, Converter={StaticResource BooleanToVisibilityInverseConverter}}"> + <Run Text="Total:" FontWeight="Normal"></Run> + <Run Text="{Binding JobModel.LengthIncludingNumberOfUnitsAndSpools,Mode=OneWay, StringFormat='#,0.##'}" FontWeight="Bold"/> + <Run Text="m" FontWeight="Bold"></Run> + </TextBlock> + <TextBlock FontSize="{StaticResource TangoTitleFontSize}" Visibility="{Binding IsWeightView, Converter={StaticResource BooleanToVisibilityConverter}}"> + <Run Text="Total:" FontWeight="Normal"></Run> + <Run FontWeight="Bold" Text="{Binding JobModel.WeightIncludingNumberOfUnitsAndSpools, StringFormat='#,0.##', Mode=OneWay}"> + <!--<Run.Text> + <MultiBinding Converter="{StaticResource LengthToWeightConverter}" StringFormat="#,0.##" > + <Binding Path="JobModel.LengthIncludingNumberOfUnitsAndSpools" /> + <Binding Path="JobModel.GramPerLength" /> + </MultiBinding> + </Run.Text>--> + </Run> + <Run Text="g" FontWeight="Bold"></Run> + </TextBlock> + </UniformGrid> + <UniformGrid Grid.Row="2" Margin="0 40 0 0" Columns="4" Rows="1" HorizontalAlignment="Stretch"> + <TextBlock Text="Per Spool:" FontWeight="Bold" FontSize="{StaticResource TangoTitleFontSize}"></TextBlock> + <TextBlock FontSize="{StaticResource TangoTitleFontSize}"> + <Run Text="Spools:" FontWeight="Normal"></Run> + <Run Text="{Binding JobModel.NumberSpools}" FontWeight="Bold"/> + </TextBlock> + <TextBlock FontSize="{StaticResource TangoTitleFontSize}"> + <Run Text="Copies:" FontWeight="Normal"></Run> + <Run Text="{Binding JobModel.NumberOfUnits}" FontWeight="Bold"/> + </TextBlock> + <TextBlock FontSize="{StaticResource TangoTitleFontSize}" Visibility="{Binding IsWeightView, Converter={StaticResource BooleanToVisibilityInverseConverter}}"> + <Run Text="Total:" FontWeight="Normal"></Run> + <Run Text="{Binding JobModel.LengthIncludingNumberOfUnits,Mode=OneWay, StringFormat='#,0.##'}" FontWeight="Bold"/> + <Run Text="m" FontWeight="Bold"></Run> + </TextBlock> + <TextBlock FontSize="{StaticResource TangoTitleFontSize}" Visibility="{Binding IsWeightView, Converter={StaticResource BooleanToVisibilityConverter}}"> + <Run Text="Total:" FontWeight="Normal"></Run> + <Run FontWeight="Bold" Text="{Binding JobModel.WeightIncludingNumberOfUnits, Mode=OneWay, StringFormat='#,0.##'}"/> + <Run Text="g" FontWeight="Bold"></Run> + </TextBlock> + </UniformGrid> + </Grid> + </touch:TouchExpander> + </Border> + <!--</touch:TouchDropShadowBorder>--> + + <!--<dragAndDrop:DraggingSurface x:Name="DraggingSurface" />--> + </Grid> + </touch:TouchLoadingPanel> + + <Border Height="77" Padding="20 0" Background="{StaticResource TangoPrimaryBackgroundBrush}" BorderThickness="0 0 0 1" BorderBrush="{StaticResource TangoDividerBrush}"> + <Border.Effect> + <DropShadowEffect Color="Silver" ShadowDepth="0" BlurRadius="20" Opacity="1" /> + </Border.Effect> + + <Grid> + + <DockPanel> + + <!--<touch:TouchIconButton Icon="ArrowLeftSolid" IsHitTestVisible="{Binding NavigationManager.IsNavigating,Converter={StaticResource BooleanInverseConverter}}" IsEnabled="{Binding NavigationManager.CanNavigateBack}" Width="40" Height="40" Padding="10" Margin="10 0 10 0" Command="{Binding NavigateBackToJobs}" EnableDropShadow="False"> + <touch:TouchIconButton.Style> + <Style TargetType="touch:TouchIconButton" BasedOn="{StaticResource {x:Type touch:TouchIconButton}}"> + <Setter Property="Foreground" Value="{StaticResource TangoPrimaryAccentBrush}"></Setter> + </Style> + </touch:TouchIconButton.Style> + </touch:TouchIconButton>--> + <touch:TouchTextBox IsEnabled="{Binding CanEdit}" Margin="20 6 240 0" Text="{Binding JobModel.Name,FallbackValue='Job Name'}" ToolTip="{Binding JobModel.Name}" VerticalAlignment="Center" FontSize="{StaticResource TangoHeaderFontSize}" FontWeight="SemiBold"></touch:TouchTextBox> + <!--<touch:TouchButton Margin="0 0 0 0" VerticalAlignment="Center" Width="50" Height="50" HorizontalAlignment="Left" EnableDropShadow="False" Background="Transparent" BorderThickness="0" Command="{Binding EditJobDetailsCommand}" Foreground="{StaticResource TangoKeyboardKeyDarkTextBrush}" + components:TransformationHelper.TransformWhenPressed ="False"> + <Border Height="24" Width="24" Margin="0 0 0 0" BorderThickness="0" Background="Transparent" HorizontalAlignment="Center"> + <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/job_details.png"/> + </Border> + </touch:TouchButton>--> + + </DockPanel> + <Canvas ClipToBounds="False" HorizontalAlignment="Right" Width="200"> + <touch:TouchButton VerticalAlignment="Center" Height="55" Canvas.Top="10" Width="200" CornerRadius="30" BlurRadius="10" EnableDropShadow="False" Command="{Binding DyeCommand}" IsEnabled="{Binding MachineProvider.MachineOperator.CanPrint}"> + <touch:TouchButton.Style> + <Style TargetType="touch:TouchButton" BasedOn="{StaticResource {x:Type touch:TouchButton}}"> + <Setter Property="Content" Value="DYE"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding HasResumeModel}" Value="True"> + <Setter Property="Content" Value="RESUME"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </touch:TouchButton.Style> + </touch:TouchButton> + <touch:TouchIconButton Visibility="{Binding HasResumeModel,Converter={StaticResource BooleanToVisibilityConverter}}" Icon="DeleteSweep" VerticalAlignment="Center" BorderThickness="0 0 1 0" BorderBrush="White" Height="55" Canvas.Left="-75" Canvas.Top="10" Background="{StaticResource TangoMidAccentBrush}" Padding="15" Width="100" CornerRadius="30 0 0 30" BlurRadius="10" EnableDropShadow="False" Command="{Binding DropResumeCommand}"> + + </touch:TouchIconButton> + </Canvas> + </Grid> + </Border> + </Grid> +</UserControl> diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobEurekaView.xaml.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobEurekaView.xaml.cs new file mode 100644 index 000000000..38f3bb346 --- /dev/null +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobEurekaView.xaml.cs @@ -0,0 +1,106 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using Tango.BL; +using Tango.BL.Entities; +using Tango.Core.DI; +using Tango.PPC.Common.Build; +using Tango.PPC.Jobs.Models; +using Tango.PPC.Jobs.ViewContracts; +using Tango.PPC.Jobs.ViewModels; +using static Tango.SharedUI.Controls.NavigationControl; + +namespace Tango.PPC.Jobs.Views +{ + /// <summary> + /// Interaction logic for JobView.xaml + /// </summary> + public partial class JobEurekaView : UserControl, INavigationView, IJobView + { + private JobViewVM _vm; + + + public JobEurekaView() + { + InitializeComponent(); + + Loaded += (_, __) => + { + _vm = DataContext as JobViewVM; + }; + + if (TangoIOC.Default.GetInstance<IBuildProvider>().IsEureka) + { + TangoIOC.Default.Register<IJobView>(this); + } + } + + public void OnNavigatedTo() + { + + } + + public void OnNavigatedFrom() + { + + } + + private void Length_ValueChanged(object sender, Touch.Controls.DoubleValueChangedEventArgs e) + { + var segmentModel = (sender as FrameworkElement).DataContext as SegmentModel; + if(segmentModel != null) + { + segmentModel.LengthChanged(e.Value); + } + + } + private void Length_BeforeChangeValue(object sender, Touch.Controls.DoubleValueChangedEventArgs e) + { + var segmentModel = (sender as FrameworkElement).DataContext as SegmentModel; + if (segmentModel != null) + { + segmentModel.LengthBeforeChange(e.Value); + } + + } + + public void DisplaySampleDye() + { + + } + + public void DisplayFineTuning() + { + + } + + public void ScrollToTop() + { + + } + + public void ScrollToEnd() + { + if(listSegments.Visibility == Visibility.Visible && listSegments.Items != null && listSegments.Items.Count > 0) + { + listSegments.ScrollIntoView(listSegments.Items[listSegments.Items.Count - 1]); + } + else if(collapsedListSegments.Visibility == Visibility.Visible && collapsedListSegments.Items != null && collapsedListSegments.Items.Count > 0) + { + collapsedListSegments.ScrollIntoView(collapsedListSegments.Items[collapsedListSegments.Items.Count - 1]); + } + } + } +} diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobProgressView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobProgressView.xaml index ec8801dc1..a91d5676b 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobProgressView.xaml +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobProgressView.xaml @@ -102,6 +102,7 @@ <Image Source="../Images/JobProgressView/drop.png" Stretch="None" /> <TextBlock Margin="5 0 0 0" VerticalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}">Getting Ready...</TextBlock> </StackPanel> + <TextBlock Margin="40 20 40 0" FontSize="{StaticResource TangoSmallFontSize}" FontWeight="Light" Text="{Binding RunningJobStatus.Message, FallbackValue='', TargetNullValue='', Converter={StaticResource StringEllipsisConverter},ConverterParameter='76'}" TextWrapping="Wrap" MaxWidth="310" HorizontalAlignment="Center" TextAlignment="Center" Height="42"></TextBlock> </StackPanel> <Rectangle Margin="0 10 0 0" Width="250" Stroke="{StaticResource TangoDividerBrush}" /> diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobView.xaml.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobView.xaml.cs index a31630b0a..1780e654e 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobView.xaml.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobView.xaml.cs @@ -16,6 +16,7 @@ using System.Windows.Shapes; using Tango.BL; using Tango.BL.Entities; using Tango.Core.DI; +using Tango.PPC.Common.Build; using Tango.PPC.Jobs.Models; using Tango.PPC.Jobs.ViewContracts; using Tango.PPC.Jobs.ViewModels; @@ -40,7 +41,10 @@ namespace Tango.PPC.Jobs.Views _vm = DataContext as JobViewVM; }; - TangoIOC.Default.Register<IJobView>(this); + if (!TangoIOC.Default.GetInstance<IBuildProvider>().IsEureka) + { + TangoIOC.Default.Register<IJobView>(this); + } } public void OnNavigatedTo() diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobsView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobsView.xaml index f6630b0a3..d3fdedde5 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobsView.xaml +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobsView.xaml @@ -29,6 +29,7 @@ </ResourceDictionary.MergedDictionaries> <converters:JobToPieImageConverter x:Key="JobToPieImageConverter" /> + <converters:LengthWithSpoolsConverter x:Key="LengthWithSpoolsConverter"/> <sharedConverters:DateTimeUTCToShortDateConverter x:Key="DateTimeUTCToShortDateConverter" /> <sharedConverters:EnumToDescriptionConverter x:Key="EnumToDescriptionConverter" /> <sharedConverters:EnumToItemsSourceConverter x:Key="EnumToItemsSourceConverter" /> @@ -90,26 +91,17 @@ </Style.Triggers> </Style> </StackPanel.Style> - <touch:TouchIconButton Command="{Binding ClearSelectionCommand}" Visibility="{Binding IsMultiSelecting,Converter={StaticResource BooleanToVisibilityConverter}}" Margin="0 0 30 0" Padding="20" Icon="Undo"> + <touch:TouchIconButton Command="{Binding ClearSelectionCommand}" Visibility="{Binding IsMultiSelecting,Converter={StaticResource BooleanToVisibilityConverter}}" Margin="0 0 30 0" Padding="20" Icon="Close" Width="50" Height="50" Style="{StaticResource TangoRoundTouchIconButton}"> + + </touch:TouchIconButton> + <touch:TouchIconButton Command="{Binding MoveToListJobsCommand}" Margin="0 0 30 0" Padding="20" > <touch:TouchIconButton.Style> <Style TargetType="touch:TouchIconButton" BasedOn="{StaticResource TangoRoundTouchIconButton}"> <Setter Property="IconAngle" Value="0"></Setter> + <Setter Property="Icon" Value="Redo"/> <Style.Triggers> - <DataTrigger Binding="{Binding IsMultiSelecting}" Value="True"> - <DataTrigger.EnterActions> - <BeginStoryboard> - <Storyboard> - <DoubleAnimation Storyboard.TargetProperty="IconAngle" To="360" Duration="00:00:0.2"></DoubleAnimation> - </Storyboard> - </BeginStoryboard> - </DataTrigger.EnterActions> - <DataTrigger.ExitActions> - <BeginStoryboard> - <Storyboard> - <DoubleAnimation Storyboard.TargetProperty="IconAngle" To="0" Duration="00:00:00"></DoubleAnimation> - </Storyboard> - </BeginStoryboard> - </DataTrigger.ExitActions> + <DataTrigger Binding="{Binding SelectedCategoryIndex}" Value="1"> + <Setter Property="Icon" Value="Undo"/> </DataTrigger> </Style.Triggers> </Style> @@ -119,7 +111,7 @@ <touch:TouchIconButton Command="{Binding CloneJobsCommand}" Margin="0 0 30 0" Padding="20" Icon="CopyRegular" Style="{StaticResource TangoRoundTouchIconButton}"></touch:TouchIconButton> <touch:TouchIconButton Command="{Binding DeleteJobsCommand}" Padding="20" Icon="TrashAltRegular" Style="{StaticResource TangoRoundTouchIconButton}"></touch:TouchIconButton> </StackPanel> - <touch:TouchIconButton Command="{Binding AddJobCommand}" RenderTransformOrigin="0.5,0.5" Margin="0 -15 0 0" Padding="20" Height="80" Icon="Plus" HorizontalAlignment="Right"> + <touch:TouchIconButton Command="{Binding AddJobCommand}" RenderTransformOrigin="0.5,0.5" Margin="0 -15 0 0" Padding="20" Height="80" Icon="Plus" HorizontalAlignment="Right" Visibility="{Binding BuildProvider.IsEureka, Converter={StaticResource BooleanToVisibilityInverseConverter}}"> <touch:TouchIconButton.Style> <Style TargetType="touch:TouchIconButton" BasedOn="{StaticResource TangoRoundTouchIconButton}"> <Setter Property="Opacity" Value="1"></Setter> @@ -167,9 +159,48 @@ <DockPanel> <Rectangle Margin="0 0 20 0" HorizontalAlignment="Center" VerticalAlignment="Bottom" Stroke="{StaticResource TangoGrayBrush}" StrokeThickness="1" Height="25"></Rectangle> <touch:TouchIcon DockPanel.Dock="Left" Foreground="{StaticResource TangoGrayBrush}" Width="20" Height="20" VerticalAlignment="Bottom" Icon="Magnify" /> - <touch:TouchTextBox Margin="5 0 0 0" Width="300" Text="{Binding Filter,Mode=TwoWay}" Watermark="find name, customer..."></touch:TouchTextBox> + <touch:TouchTextBox Margin="5 0 0 0" Width="300" Text="{Binding Filter,Mode=TwoWay}" Watermark="find name"></touch:TouchTextBox> </DockPanel> </Grid> + <StackPanel Orientation="Horizontal" DockPanel.Dock="Right" HorizontalAlignment="Right" Margin="0 20 20 0" Visibility="{Binding BuildProvider.IsEureka, Converter={StaticResource BooleanToVisibilityConverter}}"> + <!--<TextBlock FontSize="{StaticResource TangoButtonFontSize}" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="0 10 0 0">ADD JOB</TextBlock>--> + <touch:TouchIconButton Command="{Binding AddJobCommand}" RenderTransformOrigin="0.5,0.5" Margin="20 0 10 0" Padding="20" Height="70" Icon="Plus" HorizontalAlignment="Right" Background="{StaticResource TangoPrimaryAccentBrush}"> + <touch:TouchIconButton.Style> + <Style TargetType="touch:TouchIconButton" BasedOn="{StaticResource TangoRoundTouchIconButton}"> + <Setter Property="Opacity" Value="1"></Setter> + <Setter Property="IsHitTestVisible" Value="True"></Setter> + <Setter Property="RenderTransform"> + <Setter.Value> + <ScaleTransform ScaleX="1" ScaleY="1" /> + </Setter.Value> + </Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding IsMultiSelecting}" Value="True"> + <Setter Property="IsHitTestVisible" Value="False"></Setter> + <DataTrigger.EnterActions> + <BeginStoryboard> + <Storyboard> + <DoubleAnimation Storyboard.TargetProperty="Opacity" To="0" Duration="00:00:0.2"></DoubleAnimation> + <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX" To="0.5" Duration="00:00:0.2"></DoubleAnimation> + <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleY" To="0.5" Duration="00:00:0.2"></DoubleAnimation> + </Storyboard> + </BeginStoryboard> + </DataTrigger.EnterActions> + <DataTrigger.ExitActions> + <BeginStoryboard> + <Storyboard> + <DoubleAnimation Storyboard.TargetProperty="Opacity" To="1" Duration="00:00:0.2"></DoubleAnimation> + <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX" To="1" Duration="00:00:0.2"></DoubleAnimation> + <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleY" To="1" Duration="00:00:0.2"></DoubleAnimation> + </Storyboard> + </BeginStoryboard> + </DataTrigger.ExitActions> + </DataTrigger> + </Style.Triggers> + </Style> + </touch:TouchIconButton.Style> + </touch:TouchIconButton> + </StackPanel> </DockPanel> <Grid Grid.Row="1" x:Name="moveGrid"> @@ -217,28 +248,44 @@ </touch:LightTouchDataGridColumn.Header> <touch:LightTouchDataGridColumn.CellTemplate> <DataTemplate> - <TextBlock Margin="20 0 0 0" IsHitTestVisible="False" Text="{Binding Name,Converter={StaticResource StringEllipsisConverter},ConverterParameter='40'}"></TextBlock> + <TextBlock Margin="20 0 0 0" IsHitTestVisible="False" Text="{Binding Name,Converter={StaticResource StringEllipsisConverter},ConverterParameter='56'}" TextWrapping="Wrap"></TextBlock> + </DataTemplate> + </touch:LightTouchDataGridColumn.CellTemplate> + </touch:LightTouchDataGridColumn> + <touch:LightTouchDataGridColumn Width="200" Header="Thread" SortMember="ThreadName" HorizontalContentAlignment="Left"> + <touch:LightTouchDataGridColumn.CellTemplate> + <DataTemplate> + <TextBlock Margin="5 0 0 0" IsHitTestVisible="False" Text="{Binding ThreadName,Converter={StaticResource StringEllipsisConverter},ConverterParameter='44'}" TextWrapping="Wrap" HorizontalAlignment="Left" VerticalAlignment="Center" FontWeight="Regular"></TextBlock> </DataTemplate> </touch:LightTouchDataGridColumn.CellTemplate> </touch:LightTouchDataGridColumn> - <touch:LightTouchDataGridColumn Width="117" Header="Length (m)" SortMember="Length"> + <touch:LightTouchDataGridColumn Width="117" Header="Length (m)" SortMember="LengthIncludingNumberOfUnits"> <touch:LightTouchDataGridColumn.CellTemplate> <DataTemplate> - <TextBlock IsHitTestVisible="False" Text="{Binding Length,StringFormat=0.0}"></TextBlock> + <TextBlock IsHitTestVisible="False"> + <TextBlock.Text> + <MultiBinding Converter="{StaticResource LengthWithSpoolsConverter}" StringFormat="#,0.0" TargetNullValue='0' FallbackValue='0' Mode="OneWay"> + <Binding Path="LengthIncludingNumberOfUnits" Mode="OneWay"/> + <Binding Path="DataContext.BuildProvider.IsEureka" Mode="OneWay" RelativeSource="{RelativeSource AncestorType=UserControl}"/> + <Binding Path="Spools" Mode="OneWay"/> + </MultiBinding> + </TextBlock.Text> + </TextBlock> </DataTemplate> </touch:LightTouchDataGridColumn.CellTemplate> </touch:LightTouchDataGridColumn> + <touch:LightTouchDataGridColumn Header="Colors" SortMember="Segments.Count" Width="85"> <touch:LightTouchDataGridColumn.CellTemplate> <DataTemplate> - <Image Stretch="Fill" IsHitTestVisible="False" Source="{Binding Converter={StaticResource JobToPieImageConverter},ConverterParameter='25,25',IsAsync=True}" Width="25" Height="25" HorizontalAlignment="Left"></Image> + <Image Stretch="Fill" IsHitTestVisible="False" Source="{Binding Converter={StaticResource JobToPieImageConverter},ConverterParameter='60,60',IsAsync=True}" Width="60" Height="60" HorizontalAlignment="Left"></Image> </DataTemplate> </touch:LightTouchDataGridColumn.CellTemplate> </touch:LightTouchDataGridColumn> <touch:LightTouchDataGridColumn Width="100" Header="Updated" SortMember="LastUpdated"> <touch:LightTouchDataGridColumn.CellTemplate> <DataTemplate> - <TextBlock IsHitTestVisible="False" Text="{Binding LastUpdated,Converter={StaticResource DateTimeUTCToShortDateConverter}}"></TextBlock> + <TextBlock IsHitTestVisible="False" Text="{Binding LastUpdated,Converter={StaticResource DateTimeUTCToShortDateConverter}}" FontWeight="Regular"></TextBlock> </DataTemplate> </touch:LightTouchDataGridColumn.CellTemplate> </touch:LightTouchDataGridColumn> @@ -317,35 +364,50 @@ <touch:LightTouchDataGridColumn Width="100" Header="Status" SortMember="JobStatus" HorizontalContentAlignment="Left"> <touch:LightTouchDataGridColumn.CellTemplate> <DataTemplate> - <TextBlock IsHitTestVisible="False" Text="{Binding JobStatus,Converter={StaticResource EnumToDescriptionConverter}}" HorizontalAlignment="Left" VerticalAlignment="Center"></TextBlock> + <TextBlock IsHitTestVisible="False" Text="{Binding JobStatus,Converter={StaticResource EnumToDescriptionConverter}}" HorizontalAlignment="Left" VerticalAlignment="Center" FontWeight="Regular"></TextBlock> </DataTemplate> </touch:LightTouchDataGridColumn.CellTemplate> </touch:LightTouchDataGridColumn> <touch:LightTouchDataGridColumn Width="1*" Header="Name" SortMember="Name" HorizontalContentAlignment="Left"> <touch:LightTouchDataGridColumn.CellTemplate> <DataTemplate> - <TextBlock IsHitTestVisible="False" Text="{Binding Name,Converter={StaticResource StringEllipsisConverter},ConverterParameter='40'}" HorizontalAlignment="Left" VerticalAlignment="Center"></TextBlock> + <TextBlock IsHitTestVisible="False" Text="{Binding Name,Converter={StaticResource StringEllipsisConverter},ConverterParameter='46'}" TextWrapping="Wrap" HorizontalAlignment="Left" VerticalAlignment="Center"></TextBlock> + </DataTemplate> + </touch:LightTouchDataGridColumn.CellTemplate> + </touch:LightTouchDataGridColumn> + <touch:LightTouchDataGridColumn Width="200" Header="Thread" SortMember="ThreadName" HorizontalContentAlignment="Left"> + <touch:LightTouchDataGridColumn.CellTemplate> + <DataTemplate> + <TextBlock Margin="5 0 0 0" IsHitTestVisible="False" Text="{Binding ThreadName,Converter={StaticResource StringEllipsisConverter},ConverterParameter='43'}" TextWrapping="Wrap" HorizontalAlignment="Left" VerticalAlignment="Center" FontWeight="Regular"></TextBlock> </DataTemplate> </touch:LightTouchDataGridColumn.CellTemplate> </touch:LightTouchDataGridColumn> - <touch:LightTouchDataGridColumn Width="117" Header="Length (m)" SortMember="Length"> + <touch:LightTouchDataGridColumn Width="117" Header="Length (m)" SortMember="LengthIncludingNumberOfUnits"> <touch:LightTouchDataGridColumn.CellTemplate> <DataTemplate> - <TextBlock IsHitTestVisible="False" Text="{Binding Length,StringFormat=0.0}"></TextBlock> + <TextBlock IsHitTestVisible="False" > + <TextBlock.Text> + <MultiBinding Converter="{StaticResource LengthWithSpoolsConverter}" StringFormat="0.0" TargetNullValue='0' FallbackValue='0'> + <Binding Path="LengthIncludingNumberOfUnits" Mode="OneWay"/> + <Binding Path="DataContext.BuildProvider.IsEureka" Mode="OneWay" RelativeSource="{RelativeSource AncestorType=UserControl}"/> + <Binding Path="Spools" Mode="OneWay"/> + </MultiBinding> + </TextBlock.Text> + </TextBlock> </DataTemplate> </touch:LightTouchDataGridColumn.CellTemplate> </touch:LightTouchDataGridColumn> <touch:LightTouchDataGridColumn Header="Colors" SortMember="Segments.Count" Width="85"> <touch:LightTouchDataGridColumn.CellTemplate> <DataTemplate> - <Image Stretch="Fill" IsHitTestVisible="False" Source="{Binding Converter={StaticResource JobToPieImageConverter},ConverterParameter='25,25',IsAsync=True}" Width="25" Height="25" HorizontalAlignment="Left"></Image> + <Image Stretch="Fill" IsHitTestVisible="False" Source="{Binding Converter={StaticResource JobToPieImageConverter},ConverterParameter='60,60',IsAsync=True}" Width="60" Height="60" HorizontalAlignment="Left"></Image> </DataTemplate> </touch:LightTouchDataGridColumn.CellTemplate> </touch:LightTouchDataGridColumn> <touch:LightTouchDataGridColumn Width="100" Header="Updated" SortMember="LastUpdated"> <touch:LightTouchDataGridColumn.CellTemplate> <DataTemplate> - <TextBlock IsHitTestVisible="False" Text="{Binding LastUpdated,Converter={StaticResource DateTimeUTCToShortDateConverter}}"></TextBlock> + <TextBlock IsHitTestVisible="False" Text="{Binding LastUpdated,Converter={StaticResource DateTimeUTCToShortDateConverter}}" FontWeight="Regular"></TextBlock> </DataTemplate> </touch:LightTouchDataGridColumn.CellTemplate> </touch:LightTouchDataGridColumn> diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/MainView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/MainView.xaml index 505ccc312..a496fded6 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/MainView.xaml +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/MainView.xaml @@ -15,6 +15,7 @@ <views:JobsView /> <views:JobSummeryView /> <views:JobView /> + <views:JobEurekaView /> <views:TwineCatalogView /> <views:JobProgressView /> </controls:NavigationControl> diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/ViewModels/MainViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/ViewModels/MainViewVM.cs index 49afbe63b..6787136be 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/ViewModels/MainViewVM.cs @@ -323,7 +323,7 @@ namespace Tango.PPC.MachineSettings.ViewModels { Settings.SupportedJobTypes = SelectedJobTypes.SynchedSource.ToList(); Settings.SupportedColorSpaces = SelectedColorSpaces.SynchedSource.ToList(); - + Machine.MapPropertiesTo(MachineProvider.Machine, MappingFlags.NoReferenceTypes); Settings.EnableHotSpot = EnableHotSpot; @@ -381,72 +381,75 @@ namespace Tango.PPC.MachineSettings.ViewModels } } - if (EnableProxy != Settings.EnableProxifier) + if (!BuildProvider.IsEureka) { - CmdCommand cmd = null; - CmdCommandResult result = null; - - if (!EnableProxy) + if (EnableProxy != Settings.EnableProxifier) { - try + CmdCommand cmd = null; + CmdCommandResult result = null; + + if (!EnableProxy) { - cmd = new CmdCommand("taskkill", "/F /IM proxifier.exe"); - result = await cmd.Run(); - Settings.EnableProxifier = false; - Settings.Save(); + try + { + cmd = new CmdCommand("taskkill", "/F /IM proxifier.exe"); + result = await cmd.Run(); + Settings.EnableProxifier = false; + Settings.Save(); + } + catch (Exception ex) + { + LogManager.Log(ex, $"Unable to disable the proxy.\n{ex.Message}"); + await NotificationProvider.ShowError($"Unable to disable the proxy.\n{ex.Message}"); + } } - catch (Exception ex) + else { - LogManager.Log(ex, $"Unable to disable the proxy.\n{ex.Message}"); - await NotificationProvider.ShowError($"Unable to disable the proxy.\n{ex.Message}"); + try + { + Process.Start(@"C:\Program Files (x86)\Proxifier\Proxifier.exe"); + Settings.EnableProxifier = true; + Settings.Save(); + } + catch (Exception ex) + { + LogManager.Log(ex, $"Unable to start the proxy service.\n{ex.Message}"); + await NotificationProvider.ShowError($"Unable to start the proxy service.\n{ex.Message}"); + } } } - else + + if (_previousEnableUWF != EnableUWF) { + await NotificationProvider.ShowWarning("Changes to disk protection (UWF) will take effect only after a full system restart."); + try { - Process.Start(@"C:\Program Files (x86)\Proxifier\Proxifier.exe"); - Settings.EnableProxifier = true; - Settings.Save(); + LogManager.Log($"Changing UWF mode to '{EnableUWF}'."); + if (EnableUWF) + { + NotificationProvider.SetGlobalBusyMessage("Enabling disk protection (UWF)..."); + await UnifiedWriteFilterManager.Enable(); + } + else + { + NotificationProvider.SetGlobalBusyMessage("Disabling disk protection (UWF)..."); + await UnifiedWriteFilterManager.Disable(); + } + NotificationProvider.ReleaseGlobalBusyMessage(); } catch (Exception ex) { - LogManager.Log(ex, $"Unable to start the proxy service.\n{ex.Message}"); - await NotificationProvider.ShowError($"Unable to start the proxy service.\n{ex.Message}"); + NotificationProvider.ReleaseGlobalBusyMessage(); + LogManager.Log(ex, "Error setting UWF mode."); + await NotificationProvider.ShowError($"Could not change the disk protection mode\n{ex.FlattenMessage()}"); } } - } - if (_previousEnableUWF != EnableUWF) - { - await NotificationProvider.ShowWarning("Changes to disk protection (UWF) will take effect only after a full system restart."); - - try + if (!isRestarting) { - LogManager.Log($"Changing UWF mode to '{EnableUWF}'."); - if (EnableUWF) - { - NotificationProvider.SetGlobalBusyMessage("Enabling disk protection (UWF)..."); - await UnifiedWriteFilterManager.Enable(); - } - else - { - NotificationProvider.SetGlobalBusyMessage("Disabling disk protection (UWF)..."); - await UnifiedWriteFilterManager.Disable(); - } - NotificationProvider.ReleaseGlobalBusyMessage(); + await NavigationManager.NavigateBack(); } - catch (Exception ex) - { - NotificationProvider.ReleaseGlobalBusyMessage(); - LogManager.Log(ex, "Error setting UWF mode."); - await NotificationProvider.ShowError($"Could not change the disk protection mode\n{ex.FlattenMessage()}"); - } - } - - if (!isRestarting) - { - await NavigationManager.NavigateBack(); } } } @@ -477,45 +480,29 @@ namespace Tango.PPC.MachineSettings.ViewModels MachineDataSynchronizer.SynchronizationStarted += (_, __) => InvalidateRelayCommands(); MachineDataSynchronizer.SynchronizationEnded += (_, __) => InvalidateRelayCommands(); - if (!Settings.EnableProxifier) + if (!BuildProvider.IsEureka) { - CmdCommand cmd = null; - CmdCommandResult result = null; - - try + if (!Settings.EnableProxifier) { - cmd = new CmdCommand("taskkill", "/F /IM proxifier.exe"); - result = await cmd.Run(); - } - catch (Exception ex) - { - LogManager.Log(ex, $"Unable to disable the proxy.\n{ex.Message}"); + CmdCommand cmd = null; + CmdCommandResult result = null; + + try + { + cmd = new CmdCommand("taskkill", "/F /IM proxifier.exe"); + result = await cmd.Run(); + } + catch (Exception ex) + { + LogManager.Log(ex, $"Unable to disable the proxy.\n{ex.Message}"); + } } } using (ObservablesContext db = ObservablesContext.CreateDefault()) { Rmls = (await new RmlsCollectionBuilder(db).SetAll().ForHeadType(MachineProvider.Machine.MachineHeadType).ForSite(MachineProvider.Machine.SiteGuid).BuildAsync()).OrderBy(x => x.FinalName).ToObservableCollection(); - - try - { - SpoolTypes = (await db.SitesSpoolTypes.Where(x => x.SiteGuid == MachineProvider.Machine.SiteGuid).Include(x => x.SpoolType).Select(x => x.SpoolType).ToListAsync()).OrderBy(x => x.LastUpdated).ToObservableCollection(); - - if (SpoolTypes.Count == 0) - { - SpoolTypes = new ObservableCollection<SpoolType>(); - var standardSpool = await db.SpoolTypes.FirstOrDefaultAsync(x => x.Code == (int)BL.Enumerations.SpoolTypes.StandardSpool); - if (standardSpool != null) - { - SpoolTypes.Add(standardSpool); - } - } - - } - catch (Exception ex) - { - LogManager.Log(ex, "Error getting machine site spool types."); - } + SpoolTypes = await MachineProvider.Machine.GetSiteSpoolTypes(db); } } @@ -549,8 +536,8 @@ namespace Tango.PPC.MachineSettings.ViewModels SelectedJobTypes = new SelectedObjectCollection<JobTypes>(Enum.GetValues(typeof(JobTypes)).Cast<JobTypes>().ToObservableCollection(), Settings.SupportedJobTypes.ToObservableCollection()); SelectedColorSpaces = new SelectedObjectCollection<ColorSpaces>(Enum.GetValues(typeof(ColorSpaces)).Cast<ColorSpaces>().Where(x => x.IsUserSpace()).ToObservableCollection(), Settings.SupportedColorSpaces.ToObservableCollection()); - TabsColorSpaces = new ObservableCollection<ColorSpaces>(Enum.GetValues(typeof(ColorSpaces)).Cast<ColorSpaces>().Where(x => x!= ColorSpaces.Volume /*&& x!= ColorSpaces.HSB*/).ToObservableCollection()); - DefaultTabColorSpace = Settings.DefaultTabColorSpace == null? ColorSpaces.CMYK : TabsColorSpaces.SingleOrDefault(x => x == Settings.DefaultTabColorSpace); + TabsColorSpaces = new ObservableCollection<ColorSpaces>(Enum.GetValues(typeof(ColorSpaces)).Cast<ColorSpaces>().Where(x => x != ColorSpaces.Volume /*&& x!= ColorSpaces.HSB*/).ToObservableCollection()); + DefaultTabColorSpace = Settings.DefaultTabColorSpace == null ? ColorSpaces.CMYK : TabsColorSpaces.SingleOrDefault(x => x == Settings.DefaultTabColorSpace); DefaultRML = Rmls.SingleOrDefault(x => x.Guid == Settings.DefaultRmlGuid); SelectedSpoolType = SpoolTypes.SingleOrDefault(x => x.Guid == Settings.SpoolTypeGuid); @@ -571,14 +558,17 @@ namespace Tango.PPC.MachineSettings.ViewModels SelectedTimeZone = TimeZones.SingleOrDefault(x => x.StandardName == TimeZone.CurrentTimeZone.StandardName); _previousTimeZone = SelectedTimeZone; - try - { - EnableUWF = await UnifiedWriteFilterManager.IsEnabled(); - _previousEnableUWF = EnableUWF; - } - catch (Exception ex) + if (!BuildProvider.IsEureka) { - LogManager.Log(ex, "Error getting UWF status."); + try + { + EnableUWF = await UnifiedWriteFilterManager.IsEnabled(); + _previousEnableUWF = EnableUWF; + } + catch (Exception ex) + { + LogManager.Log(ex, "Error getting UWF status."); + } } try @@ -613,7 +603,10 @@ namespace Tango.PPC.MachineSettings.ViewModels LogManager.Log(ex, "Error loading lubrication levels."); } - EnableProxy = Settings.EnableProxifier; + if (!BuildProvider.IsEureka) + { + EnableProxy = Settings.EnableProxifier; + } } private async void OnEnableRemoteAssistanceChanged() diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Views/MainView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Views/MainView.xaml index 6871eb330..764f044d0 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Views/MainView.xaml +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Views/MainView.xaml @@ -59,7 +59,7 @@ <StackPanel Margin="10 30 10 10"> <connectivity:AvailableWiFiConnectionsControl DataContext="{Binding ConnectivityProvider}" /> - <controls:TableGrid Margin="10" RowHeight="60" MakeFirstColumnVerticalAlignmentBottom="False" TextElement.FontSize="{StaticResource TangoDefaultFontSize}"> + <controls:TableGrid Visibility="{Binding BuildProvider.IsEureka,Converter={StaticResource BooleanToVisibilityInverseConverter}}" Margin="10" RowHeight="60" MakeFirstColumnVerticalAlignmentBottom="False" TextElement.FontSize="{StaticResource TangoDefaultFontSize}"> <TextBlock VerticalAlignment="Center">Enable Hot Spot</TextBlock> <touch:TouchToggleSlider Style="{StaticResource TangoToggleButtonGrayAccent}" HorizontalAlignment="Right" Margin="0 0 110 0" Width="90" IsChecked="{Binding EnableHotSpot}"></touch:TouchToggleSlider> @@ -68,7 +68,7 @@ <touch:TouchTextBox IsPassword="True" Watermark="•••••••" HorizontalAlignment="Right" VerticalAlignment="Bottom" Width="200" Text="{Binding HotSpotPassword}" KeyboardContainer="{Binding ElementName=Container}"></touch:TouchTextBox> </controls:TableGrid> - <DockPanel Margin="10 -40 0 0"> + <DockPanel Margin="10 -40 0 0" Visibility="{Binding BuildProvider.IsEureka,Converter={StaticResource BooleanToVisibilityInverseConverter}}"> <touch:TouchIcon VerticalAlignment="Top" Icon="InformationOutline" Foreground="{StaticResource TangoGrayTextBrush}"></touch:TouchIcon> <TextBlock Margin="10 0 0 0" VerticalAlignment="Top" TextWrapping="Wrap" FontSize="{StaticResource TangoSmallFontSize}" Foreground="{StaticResource TangoGrayTextBrush}"> Enabling a hot-spot will create a wireless network dedicated to this machine. @@ -219,7 +219,7 @@ </touch:TouchExpander> <!--REMOTE ASSISTANCE--> - <touch:TouchExpander Margin="0 20 0 0" Header="Remote Assistance" IsExpanded="True" FontSize="{StaticResource TangoExpanderHeaderFontSize}"> + <touch:TouchExpander Margin="0 20 0 0" Header="Remote Assistance" IsExpanded="True" FontSize="{StaticResource TangoExpanderHeaderFontSize}" Visibility="{Binding BuildProvider.IsEureka,Converter={StaticResource BooleanToVisibilityInverseConverter}}"> <StackPanel> <controls:TableGrid Margin="10" RowHeight="70" MakeFirstColumnVerticalAlignmentBottom="False" TextElement.FontSize="{StaticResource TangoDefaultFontSize}"> <TextBlock VerticalAlignment="Center">Enable Remote Assistance</TextBlock> @@ -236,7 +236,7 @@ </touch:TouchExpander> <!--LOCK SCREEN--> - <touch:TouchExpander Margin="0 20 0 0" Header="Lock Screen" IsExpanded="True" FontSize="{StaticResource TangoExpanderHeaderFontSize}"> + <touch:TouchExpander Margin="0 20 0 0" Header="Lock Screen" IsExpanded="True" FontSize="{StaticResource TangoExpanderHeaderFontSize}" Visibility="{Binding BuildProvider.IsEureka,Converter={StaticResource BooleanToVisibilityInverseConverter}}"> <StackPanel> <controls:TableGrid Margin="10" RowHeight="60" MakeFirstColumnVerticalAlignmentBottom="False" TextElement.FontSize="{StaticResource TangoDefaultFontSize}"> <TextBlock VerticalAlignment="Center">Enable Lock Screen</TextBlock> @@ -327,7 +327,7 @@ </touch:TouchExpander> <!--SCREEN SAVER--> - <touch:TouchExpander Margin="0 20 0 0" Header="Screen Saver" IsExpanded="True" FontSize="{StaticResource TangoExpanderHeaderFontSize}"> + <touch:TouchExpander Margin="0 20 0 0" Header="Screen Saver" IsExpanded="True" FontSize="{StaticResource TangoExpanderHeaderFontSize}" Visibility="{Binding BuildProvider.IsEureka,Converter={StaticResource BooleanToVisibilityInverseConverter}}"> <StackPanel> <controls:TableGrid Margin="10" RowHeight="60" MakeFirstColumnVerticalAlignmentBottom="False" TextElement.FontSize="{StaticResource TangoDefaultFontSize}"> <TextBlock VerticalAlignment="Center"> @@ -380,7 +380,7 @@ <touch:TouchToggleSlider IsChecked="{Binding Settings.EnableEmbeddedDebugLogs}" Margin="0 0 100 0" DockPanel.Dock="Right" Style="{StaticResource TangoToggleButtonGrayAccent}" HorizontalAlignment="Right" Width="90"></touch:TouchToggleSlider> </DockPanel> - <DockPanel Margin="0 20 0 0" TextElement.FontSize="{StaticResource TangoDefaultFontSize}"> + <DockPanel Visibility="{Binding BuildProvider.IsEureka,Converter={StaticResource BooleanToVisibilityInverseConverter}}" Margin="0 20 0 0" TextElement.FontSize="{StaticResource TangoDefaultFontSize}"> <TextBlock VerticalAlignment="Center">Enable Proxy</TextBlock> <touch:TouchToggleSlider IsChecked="{Binding EnableProxy}" Margin="0 0 100 0" DockPanel.Dock="Right" Style="{StaticResource TangoToggleButtonGrayAccent}" HorizontalAlignment="Right" Width="90"></touch:TouchToggleSlider> </DockPanel> @@ -406,11 +406,6 @@ </DockPanel> <DockPanel Margin="0 20 0 0" TextElement.FontSize="{StaticResource TangoDefaultFontSize}"> - <TextBlock VerticalAlignment="Center">Use Legacy Jobs Module</TextBlock> - <touch:TouchToggleSlider IsChecked="{Binding Settings.UseJobsModuleV2,Converter={StaticResource BooleanInverseConverter}}" Margin="0 0 100 0" DockPanel.Dock="Right" Style="{StaticResource TangoToggleButtonGrayAccent}" HorizontalAlignment="Right" Width="90"></touch:TouchToggleSlider> - </DockPanel> - - <DockPanel Margin="0 20 0 0" TextElement.FontSize="{StaticResource TangoDefaultFontSize}"> <TextBlock VerticalAlignment="Center">Always Start in Technician Mode</TextBlock> <touch:TouchToggleSlider IsChecked="{Binding Settings.EnableTechnicianModeByDefault}" Margin="0 0 100 0" DockPanel.Dock="Right" Style="{StaticResource TangoToggleButtonGrayAccent}" HorizontalAlignment="Right" Width="90"></touch:TouchToggleSlider> </DockPanel> @@ -455,7 +450,7 @@ <touch:TouchNumericTextBox Minimum="1" Maximum="120" KeyboardContainer="{Binding ElementName=Container}" Value="{Binding Settings.InsightsMaxStorageDuration,Converter={StaticResource TimeSpanToDaysConverter}}" Margin="0 0 100 0" DockPanel.Dock="Right" HorizontalAlignment="Right" Width="90"></touch:TouchNumericTextBox> </DockPanel> - <DockPanel Margin="0 20 0 0" TextElement.FontSize="{StaticResource TangoDefaultFontSize}"> + <DockPanel Visibility="{Binding BuildProvider.IsEureka,Converter={StaticResource BooleanToVisibilityInverseConverter}}" Margin="0 20 0 0" TextElement.FontSize="{StaticResource TangoDefaultFontSize}"> <TextBlock VerticalAlignment="Center">Enable UWF (Disk Protection)</TextBlock> <touch:TouchToggleSlider IsChecked="{Binding EnableUWF}" Margin="0 0 100 0" DockPanel.Dock="Right" Style="{StaticResource TangoToggleButtonGrayAccent}" HorizontalAlignment="Right" Width="90"></touch:TouchToggleSlider> </DockPanel> @@ -465,6 +460,11 @@ <touch:TouchNumericTextBox Minimum="0" Maximum="10" KeyboardContainer="{Binding ElementName=Container}" Value="{Binding Settings.FineTuningMinLimitdL}" Margin="0 0 100 0" DockPanel.Dock="Right" HorizontalAlignment="Right" Width="90" HasDecimalPoint="True"></touch:TouchNumericTextBox> </DockPanel> + <DockPanel Margin="0 20 0 0" TextElement.FontSize="{StaticResource TangoDefaultFontSize}"> + <TextBlock VerticalAlignment="Center">Show advanced options (Segments & Gradients) in the Job Editor</TextBlock> + <touch:TouchToggleSlider IsChecked="{Binding Settings.ShowAdvancedOptions}" Margin="0 0 100 0" DockPanel.Dock="Right" Style="{StaticResource TangoToggleButtonGrayAccent}" HorizontalAlignment="Right" Width="90"></touch:TouchToggleSlider> + </DockPanel> + <DockPanel Margin="0 20 0 0"> <touch:TouchIcon VerticalAlignment="Top" Icon="InformationOutline" Foreground="{StaticResource TangoGrayTextBrush}"></touch:TouchIcon> <TextBlock Margin="10 0 0 0" VerticalAlignment="Top" TextWrapping="Wrap" FontSize="{StaticResource TangoSmallFontSize}" Foreground="{StaticResource TangoGrayTextBrush}"> diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/MaitenanceModuleSettings.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/MaitenanceModuleSettings.cs new file mode 100644 index 000000000..b4066a5d4 --- /dev/null +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/MaitenanceModuleSettings.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.Settings; + +namespace Tango.PPC.Maintenance +{ + public class MaitenanceModuleSettings : SettingsBase + { + + } +} diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Models/MidTankLevelModel.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Models/MidTankLevelModel.cs index 93af310ba..8ea16fe1b 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Models/MidTankLevelModel.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Models/MidTankLevelModel.cs @@ -28,7 +28,7 @@ namespace Tango.PPC.Maintenance.Models public bool IsEmpty { get { return Level <= MachineOperator.EMPTY_MIDTANK_LITERS; } - } + } public IdsPack IDSPack { get; set; } } diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Tango.PPC.Maintenance.csproj b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Tango.PPC.Maintenance.csproj index 43a850289..bebdd63c7 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Tango.PPC.Maintenance.csproj +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Tango.PPC.Maintenance.csproj @@ -96,6 +96,10 @@ <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> </Page> + <Page Include="Views\EurekaMaintenanceView.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> <Page Include="Views\GeneralGuideView.xaml"> <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> @@ -142,6 +146,7 @@ <Compile Include="Helpers\GuideHelper.cs" /> <Compile Include="MaintenanceCommand.cs" /> <Compile Include="MaintenanceModule.cs" /> + <Compile Include="MaitenanceModuleSettings.cs" /> <Compile Include="Models\MidTankLevelModel.cs" /> <Compile Include="Models\OverallTemperatureModel.cs" /> <Compile Include="Properties\AssemblyInfo.cs"> @@ -161,6 +166,9 @@ <Compile Include="ViewModels\GeneralGuideViewVM.cs" /> <Compile Include="ViewModels\MaintenanceViewVM.cs" /> <Compile Include="ViewModels\MainViewVM.cs" /> + <Compile Include="Views\EurekaMaintenanceView.xaml.cs"> + <DependentUpon>EurekaMaintenanceView.xaml</DependentUpon> + </Compile> <Compile Include="Views\GeneralGuideView.xaml.cs"> <DependentUpon>GeneralGuideView.xaml</DependentUpon> </Compile> diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/ViewModels/MainViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/ViewModels/MainViewVM.cs index a614f7be2..0f3dad397 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/ViewModels/MainViewVM.cs @@ -25,7 +25,12 @@ namespace Tango.PPC.Maintenance.ViewModels public override void OnNavigatedTo() { base.OnNavigatedTo(); - NavigationManager.NavigateTo<MaintenanceModule>(nameof(MaintenanceView), false); + if(BuildProvider.IsEureka) + { + NavigationManager.NavigateTo<MaintenanceModule>(nameof(EurekaMaintenanceView), false); + } + else + NavigationManager.NavigateTo<MaintenanceModule>(nameof(MaintenanceView), false); } } } diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/ViewModels/MaintenanceViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/ViewModels/MaintenanceViewVM.cs index cd646ce02..a8af047fc 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/ViewModels/MaintenanceViewVM.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/ViewModels/MaintenanceViewVM.cs @@ -2,11 +2,14 @@ using System; using System.Collections.Generic; using System.Collections.ObjectModel; +using System.ComponentModel; using System.Data.Entity; using System.Linq; using System.Text; using System.Threading.Tasks; using Tango.BL; +using Tango.BL.Builders; +using Tango.BL.Entities; using Tango.Core; using Tango.Core.Commands; using Tango.Explorer; @@ -15,6 +18,7 @@ using Tango.Logging; using Tango.PMR.Diagnostics; using Tango.PMR.IFS; using Tango.PMR.MachineStatus; +using Tango.PMR.ThreadLoading; using Tango.PPC.Common; using Tango.PPC.Maintenance.Commands; using Tango.PPC.Maintenance.Dialogs; @@ -22,13 +26,57 @@ using Tango.PPC.Maintenance.Helpers; using Tango.PPC.Maintenance.Models; using Tango.PPC.Maintenance.Views; using Tango.PPC.Storage; +using Tango.Settings; namespace Tango.PPC.Maintenance.ViewModels { public class MaintenanceViewVM : PPCViewModel { + public enum Boards + { + [Description("Main")] + Main = 1, + [Description("Heads")] + Heads = 2, + [Description("Dryer")] + Dryer = 3, + [Description("Mid tanks")] + Midtanks = 4, + [Description("Lubricant")] + Lubricant = 5, + [Description("Dispenser 1")] + Dispenser_1 = 6, + [Description("Dispenser 2")] + Dispenser_2 = 7, + [Description("Dispenser 3")] + Dispenser_3 = 8, + [Description("Dispenser 4")] + Dispenser_4 = 9, + [Description("Dispenser 5")] + Dispenser_5 = 10, + [Description("Dispenser 6")] + Dispenser_6 = 11, + [Description("Winder 1")] + Winder_1 = 12, + [Description("Winder 2")] + Winder_2 = 13, + [Description("Winder 3")] + Winder_3 = 14, + [Description("Winder 4")] + Winder_4 = 15, + + } public class WasteStateModel : ExtendedObject { + public class RMLDisplayModel + { + public String Name { get; set; } + + public String Guid { get; set; } + + public String FinalName { get; set; } + } + private CartridgeState _state; public CartridgeState State { @@ -99,6 +147,90 @@ namespace Tango.PPC.Maintenance.ViewModels set { _isInkAutoFillingEnabled = value; RaisePropertyChangedAuto(); OnInkAutoFillingChanged(); } } + public List<Boards> ListBoards { get { return typeof(Boards).GetEnumValues().Cast<Boards>().ToList(); } } + + private Boards _selectedBoard; + + public Boards SelecteadBoard + { + get { return _selectedBoard; } + set { _selectedBoard = value; + RaisePropertyChangedAuto(); + } + } + public List<Rml> Rmls { get; set; } + + private ObservableCollection<WasteStateModel.RMLDisplayModel> _RMLDisplayList; + + public ObservableCollection<WasteStateModel.RMLDisplayModel> RMLDisplayList + { + get { return _RMLDisplayList; } + set { _RMLDisplayList = value; + RaisePropertyChangedAuto();} + } + + + private WasteStateModel.RMLDisplayModel _selectedRML; + public WasteStateModel.RMLDisplayModel SelectedRML + { + get { return _selectedRML; } + set + { + if (_selectedRML != value) + { + _selectedRML = value; + RaisePropertyChangedAuto(); + } + } + } + + private String _threadLoadingStatus; + + public String ThreadLoadingStatus + { + get { return _threadLoadingStatus; } + set { + _threadLoadingStatus = value; + RaisePropertyChangedAuto(); + } + } + + private bool _readyForLoading; + + public bool ReadyForLoading + { + get { return _readyForLoading; } + set { _readyForLoading = value; + RaisePropertyChangedAuto();} + } + + private bool _startedDryerWinding; + + public bool StartedDryerWinding + { + get { return _startedDryerWinding; } + set + { + _startedDryerWinding = value; + RaisePropertyChangedAuto(); + } + } + + private bool _enableHeaters; + + public bool EnableHeaters + { + get { return _enableHeaters; } + set { + if(_enableHeaters != value) + { + _enableHeaters = value; + OnHeatersStateChanged(); + RaisePropertyChangedAuto(); + } + } + } + public RelayCommand ExportLogsCommand { get; set; } public OpenCloseDyeingHeadCommand OpenCloseDyeingHeadCommand { get; set; } @@ -119,6 +251,12 @@ namespace Tango.PPC.Maintenance.ViewModels public RelayCommand ViewBitResultsCommand { get; set; } + public RelayCommand ResetBoardCommand { get; set; } + + public RelayCommand MoveToLoadPositionCommand { get; set; } + + public RelayCommand StartDryerWindingCommand { get; set; } + public MaintenanceViewVM() { Guides = new ObservableCollection<GuideBase>(GuideHelper.CreateAllGuides()); @@ -135,19 +273,30 @@ namespace Tango.PPC.Maintenance.ViewModels StartThreadLoadingCommand = new RelayCommand(StartThreadLoadingWizard, () => MachineProvider.MachineOperator.CanPrint); StartThreadBreakCommand = new RelayCommand(StartThreadBreakWizard, () => MachineProvider.MachineOperator.CanPrint); ViewBitResultsCommand = new RelayCommand(ViewBitResult, () => MachineProvider.MachineOperator.IsConnected); + + + ResetBoardCommand = new RelayCommand(RunReset, () => MachineProvider.MachineOperator.IsConnected); + + MoveToLoadPositionCommand = new RelayCommand( MoveToLoadPosition, () => { return MachineProvider.MachineOperator.IsConnected && MachineProvider.MachineOperator.CanPrint && false == StartedDryerWinding; }); + StartDryerWindingCommand = new RelayCommand(StartDryerWinding, () => ReadyForLoading); WasteStates = new List<WasteStateModel>() { new WasteStateModel() { Slot = CartridgeSlot.WasteMiddle, State = CartridgeState.Absent }, new WasteStateModel() { Slot = CartridgeSlot.WasteLower, State = CartridgeState.Absent } }; + + SelecteadBoard = Boards.Dryer; + ReadyForLoading = false; } + public override void OnApplicationStarted() { MachineProvider.MachineOperator.InkFillingStatusChanged += MachineOperator_InkFillingStatusChanged; MachineProvider.MachineOperator.MachineStatusChanged += MachineOperator_MachineStatusChanged; MachineProvider.MachineOperator.MachineEventsStateProvider.EventsChanged += MachineEventsStateProvider_EventsChanged; + MachineProvider.MachineOperator.ThreadLoadingStatusChanged += MachineOperator_ThreadLoadingStatusChanged; DispenseCleanerLiquidCommand = new RelayCommand(DispenseCleanerLiquid, () => { @@ -162,6 +311,21 @@ namespace Tango.PPC.Maintenance.ViewModels }); RaisePropertyChanged(nameof(DispenseCleanerLiquidCommand)); + _enableHeaters = true; + RaisePropertyChanged( nameof(EnableHeaters)); + } + + public async void CresteRMLS() + { + using (ObservablesContext db = ObservablesContext.CreateDefault()) + { + LogManager.Log("Loading RMLS..."); + Rmls = (await new RmlsCollectionBuilder(db).SetAll().WithActiveParametersGroup().ForHeadType(MachineProvider.Machine.MachineHeadType).ForSite(MachineProvider.Machine.SiteGuid).BuildAsync()).OrderBy(x => x.FinalName).ToList(); + + //Rmls = (await new RmlsCollectionBuilder(db).SetAll().WithActiveParametersGroup().BuildAsync()).OrderBy(x => x.FinalName).ToList(); + RMLDisplayList = Rmls.Select(p => new WasteStateModel.RMLDisplayModel { Guid = p.Guid, Name = p.Name, FinalName = p.FinalName }).OrderBy(x => x.FinalName).ToObservableCollection(); + SelectedRML = RMLDisplayList.FirstOrDefault(); + } } public override void OnApplicationReady() @@ -173,6 +337,9 @@ namespace Tango.PPC.Maintenance.ViewModels Max = MachineOperator.MAX_MIDTANK_LITERS, IDSPack = x, }).OrderBy(y => y.IDSPack.LiquidType.Code).ToList(); + + if (Rmls == null) + CresteRMLS(); } private void MachineEventsStateProvider_EventsChanged(object sender, IEnumerable<BL.Entities.MachinesEvent> e) @@ -208,6 +375,60 @@ namespace Tango.PPC.Maintenance.ViewModels } } + private void MachineOperator_ThreadLoadingStatusChanged(object sender, StartThreadLoadingResponse e) + { + if( e != null) + { + var State = e.State; + switch (e.State) + { + case ThreadLoadingState.Preparing: + { + ThreadLoadingStatus = "Moving to load position"; + break; + } + case ThreadLoadingState.ReadyForLoading: + { + ReadyForLoading = true; + ThreadLoadingStatus = "Ready for thread loading."; + break; + } + case ThreadLoadingState.PreparationError: + { + ThreadLoadingStatus = "Failed to move. Please inspect and try again."; + break; + } + case ThreadLoadingState.Finalizing: + { + ThreadLoadingStatus = "Thread loading is running."; + ReadyForLoading = false; + break; + } + case ThreadLoadingState.FinalizationError: + { + ThreadLoadingStatus = $"Thread loading failed.{e.ErrorReason}"; + ReadyForLoading = false; + StartedDryerWinding = false; + break; + } + case ThreadLoadingState.Completed: + { + ReadyForLoading = false; + StartedDryerWinding = false; + ThreadLoadingStatus = "Thread loading completed successfully."; + break; + } + default: + { + ThreadLoadingStatus = ""; + StartedDryerWinding = false; + return; + } + + }; + } + } + public async void OpenGuide(GuideBase guide) { await NavigationManager.NavigateWithObject<MaintenanceModule, GeneralGuideView, GuideBase>(guide); @@ -385,5 +606,84 @@ namespace Tango.PPC.Maintenance.ViewModels { await BitManager.ShowBitResultsDialog(); } + + private async void RunReset() + { + try + { + await MachineProvider.MachineOperator.ResetCard(SelecteadBoard.ToInt32()); + await NotificationProvider.ShowInfo($"The {SelecteadBoard.ToDescription()} was reset successfully!"); + } + catch (Exception ex) + { + await NotificationProvider.ShowError($"We could not reset the {SelecteadBoard.ToDescription()}.\n{ex.FlattenMessage()}"); + } + } + + private void MoveToLoadPosition(object obj) + { + MachineProvider.MachineOperator.StartThreadLoading(); + } + + private void StartDryerWinding(object obj) + { + try + { + var rml = Rmls.Where( x=> x.Guid == SelectedRML.Guid).FirstOrDefault(); + if(rml != null && rml.GetActiveProcessGroup()!= null) + { + var processParametersTable = rml.GetActiveProcessGroup().ProcessParametersTables.FirstOrDefault(); + if(processParametersTable != null) + { + StartedDryerWinding = true; + MachineProvider.MachineOperator.ContinueThreadLoading(processParametersTable.Clone()); + } + } + } + catch (Exception ex) + { + StartedDryerWinding = false; + } + } + + private async void OnHeatersStateChanged() + { + if(EnableHeaters == false)//turn off heaters + { + try + { + await MachineProvider.MachineOperator.UploadProcessParameters(new ProcessParametersTable()); + } + catch (Exception ex) + { + LogManager.Log(ex, "Error resetting process parameters."); + } + } + else { + try + { + var currentProcessParameters = MachineProvider.MachineOperator.CurrentProcessParameters; + if (currentProcessParameters == null || currentProcessParameters.Guid == null) + { + var settings = SettingsManager.Default.GetOrCreate<MaitenanceModuleSettings>(); + + var defRmlGuid = Settings.DefaultRmlGuid ?? Rmls.First().Guid; + var rml = Rmls.Where(x => x.Guid == defRmlGuid).FirstOrDefault(); + if (rml != null && rml.GetActiveProcessGroup() != null) + { + currentProcessParameters = rml.GetActiveProcessGroup().ProcessParametersTables.FirstOrDefault(); + } + } + if (currentProcessParameters != null) + { + await MachineProvider.MachineOperator.UploadProcessParameters(currentProcessParameters); + } + } + catch (Exception ex) + { + LogManager.Log(ex, "Error upload process parameters."); + } + } + } } } diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Views/EurekaMaintenanceView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Views/EurekaMaintenanceView.xaml new file mode 100644 index 000000000..faef8be1a --- /dev/null +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Views/EurekaMaintenanceView.xaml @@ -0,0 +1,284 @@ +<UserControl x:Class="Tango.PPC.Maintenance.Views.EurekaMaintenanceView" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:vm="clr-namespace:Tango.PPC.Maintenance.ViewModels" + xmlns:global="clr-namespace:Tango.PPC.Maintenance" + xmlns:ifs="clr-namespace:Tango.PMR.IFS;assembly=Tango.PMR" + xmlns:local="clr-namespace:Tango.PPC.Maintenance.Views" + xmlns:localConverters="clr-namespace:Tango.PPC.Maintenance.Converters" + xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI" + xmlns:localControls="clr-namespace:Tango.PPC.Maintenance.Controls" + xmlns:touch="clr-namespace:Tango.Touch.Controls;assembly=Tango.Touch" + mc:Ignorable="d" + d:DesignHeight="1800" d:DesignWidth="800" d:DataContext="{d:DesignInstance Type=vm:MaintenanceViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.MaintenanceViewVM}"> + <UserControl.Resources> + + <converters:EnumToDescriptionConverter x:Key="EnumToDescriptionConverter" /> + <localConverters:StringToFirstLetterConverter x:Key="StringToFirstLetterConverter" /> + <localConverters:MidTankLevelToElementHeightConverter x:Key="MidTankLevelToElementHeightConverter" /> + <localConverters:LiquidTypeToBrushConverter x:Key="LiquidTypeToBrushConverter" /> + <localConverters:LiquidTypeToShortNameConverter x:Key="LiquidTypeToShortNameConverter"/> + + <Style TargetType="FrameworkElement" x:Key="Level1Container"> + <Setter Property="Margin" Value="20 15 60 15"></Setter> + </Style> + <Style TargetType="FrameworkElement" x:Key="Level2Container"> + <Setter Property="Margin" Value="80 30 60 0"></Setter> + </Style> + <Style TargetType="FrameworkElement" x:Key="Level2ContainerExtraMargin"> + <Setter Property="Margin" Value="80 40 60 0"></Setter> + </Style> + + <DataTemplate x:Key="LiquidBox"> + <DockPanel> + <TextBlock DockPanel.Dock="Top" Text="{Binding IDSPack.LiquidType.ShortName}" HorizontalAlignment="Center"></TextBlock> + <Grid MaxWidth="20" Margin="1 0"> + <touch:TouchIcon Icon="MapMarkerSolid" Width="20" Height="20" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0 0 0 10" Foreground ="{Binding Path=IDSPack.LiquidType, Converter={StaticResource LiquidTypeToBrushConverter}}"> + <touch:TouchIcon.Style> + <Style TargetType="touch:TouchIcon"> + <Setter Property="Visibility" Value="Hidden"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding IsLow}" Value="True"> + <Setter Property="Visibility" Value="Visible"></Setter> + </DataTrigger> + <DataTrigger Binding="{Binding IsEmpty}" Value="True"> + <DataTrigger.EnterActions> + <BeginStoryboard Name="blinkDrop"> + <Storyboard> + <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Duration="00:00:01" RepeatBehavior="Forever"> + <DiscreteDoubleKeyFrame KeyTime="00:00:00" Value="1" /> + <DiscreteDoubleKeyFrame KeyTime="00:00:0.5" Value="0" /> + </DoubleAnimationUsingKeyFrames> + </Storyboard> + </BeginStoryboard> + </DataTrigger.EnterActions> + <DataTrigger.ExitActions> + <RemoveStoryboard BeginStoryboardName="blinkDrop" /> + </DataTrigger.ExitActions> + </DataTrigger> + </Style.Triggers> + </Style> + </touch:TouchIcon.Style> + </touch:TouchIcon> + <Border BorderThickness="1" BorderBrush="{StaticResource TangoLightBorderBrush}" CornerRadius="3" ClipToBounds="True" x:Name="pathBorder"> + <Canvas Width="30" > + <Path Panel.ZIndex="1" VerticalAlignment="Bottom" ClipToBounds="True" MinHeight="2" Data="M0,0 C2,0 8.9,-1.1705073 11.3,-4.6 14.5,-7.7 15.5,-8 18.7,-10.8 21.7,-13.16 23.3,-14.5 28,-15.6 28,-13.7 28,80 28,100 L0,100 z" Height="90" Width="29" Stretch="Fill" + Canvas.Left="0" Fill="{Binding Path=IDSPack.LiquidType, Converter={StaticResource LiquidTypeToBrushConverter}}" Margin="0 -14 0 0" > + + <Path.Style> + <Style> + <Setter Property="Canvas.Top" > + <Setter.Value> + <MultiBinding Converter="{StaticResource MidTankLevelToElementHeightConverter}"> + <Binding ElementName="pathBorder" Path="ActualHeight" /> + <Binding Path="Level" /> + </MultiBinding> + </Setter.Value> + </Setter> + </Style> + </Path.Style> + </Path> + </Canvas> + </Border> + </Grid> + </DockPanel> + </DataTemplate> + </UserControl.Resources> + + <Grid Background="{StaticResource TangoMidBackgroundBrush}" IsEnabled="{Binding IsFree}"> + <Grid.RowDefinitions> + <RowDefinition Height="Auto"/> + <RowDefinition Height="1*"/> + </Grid.RowDefinitions> + + <!--<Border Padding="20" Background="{StaticResource TangoPrimaryBackgroundBrush}" BorderThickness="0 0 0 1" BorderBrush="{StaticResource TangoDividerBrush}"> + <Border.Effect> + <DropShadowEffect Color="Silver" ShadowDepth="0" BlurRadius="20" Opacity="1" /> + </Border.Effect> + <TextBlock VerticalAlignment="Center" FontSize="{StaticResource TangoHeaderFontSize}" FontWeight="SemiBold">Maintenance</TextBlock> + </Border>--> + + <Grid Grid.Row="1"> + <touch:LightTouchScrollViewer> + <StackPanel Margin="10 20 10 0"> + <!--ACTIONS--> + <touch:TouchDropShadowBorder Margin="0 0 0 0" Padding="0 0 0 0" MinHeight="330"> + <StackPanel> + <StackPanel Orientation="Horizontal" VerticalAlignment="Center" Style="{StaticResource Level1Container}"> + <Image Source="../Images/action.png" /> + <TextBlock FontWeight="Medium" Margin="20 0 0 0" VerticalAlignment="Center" FontSize="{StaticResource TangoExpanderHeaderFontSize}">Actions</TextBlock> + </StackPanel> + <Grid > + <Grid.ColumnDefinitions> + <ColumnDefinition Width="1*"/> + + </Grid.ColumnDefinitions> + <Grid > + <UniformGrid Columns="2" Margin="80 0 90 20"> + <touch:TouchButton Margin="20" CornerRadius="25" Height="50" FontSize="18" Style="{StaticResource TangoHollowButton}" Command="{Binding HeadCleaningCommand}">RUN HEAD CLEANING</touch:TouchButton> + + <touch:TouchButton Margin="20" CornerRadius="25" Height="50" FontSize="18" Style="{StaticResource TangoHollowButton}" Command="{Binding ViewBitResultsCommand}">VIEW BIT RESULTS</touch:TouchButton> + + <touch:TouchButton Margin="20" CornerRadius="25" Height="50" FontSize="18" Style="{StaticResource TangoHollowButton}" Command="{Binding DispenseCleanerLiquidCommand}">DISPENSE CLEANING LIQUID</touch:TouchButton> + <touch:TouchButton Margin="20" CornerRadius="25" Height="50" FontSize="18" Style="{StaticResource TangoHollowButton}" Command="{Binding ExportLogsCommand}" Visibility="{Binding ApplicationManager.IsInTechnicianMode,Converter={StaticResource BooleanToVisibilityConverter}}">EXPORT SYSTEM LOGS</touch:TouchButton> + </UniformGrid> + + </Grid> + + </Grid> + + <touch:TouchDropShadowBorder Margin="0 0 0 0" Padding="0" MinHeight="216"> + <StackPanel Orientation="Vertical"> + <StackPanel Orientation="Horizontal" VerticalAlignment="Center" Margin="30 0 30 0" Height="116"> + <TextBlock VerticalAlignment="Center" Text="Reset Specific Board:" FontSize="{StaticResource TangoExpanderHeaderFontSize}" Width="210"></TextBlock> + <Border Margin="55 0 0 0" x:Name="emborder" BorderThickness="1 1 1 1" Height="50" CornerRadius="25" BorderBrush="{StaticResource TangoMidAccentBrush}"> + <touch:TouchComboBox Margin="20 0 10 0" ItemsSource="{Binding ListBoards}" SelectedItem="{Binding SelecteadBoard,Mode=TwoWay}" Focusable="False" KeyboardNavigation.TabNavigation ="None" Width="260" DisplayMemberPath=""> + <touch:TouchComboBox.ItemTemplate> + <DataTemplate> + <TextBlock Margin="20 10 10 10" TextTrimming="CharacterEllipsis" FontSize="{StaticResource TangoDialogFontSize}" Text="{Binding Converter={StaticResource EnumToDescriptionConverter}}"/> + + </DataTemplate> + </touch:TouchComboBox.ItemTemplate> + <touch:TouchComboBox.SelectedItemTemplate> + <DataTemplate> + <TextBlock Margin="0 0 0 5" FontSize="{StaticResource TangoDialogFontSize}" Text="{Binding Converter={StaticResource EnumToDescriptionConverter}}" VerticalAlignment="Center" Height="36"></TextBlock> + </DataTemplate> + </touch:TouchComboBox.SelectedItemTemplate> + </touch:TouchComboBox> + </Border> + <touch:TouchButton Margin="30 0 0 0" Width="120" CornerRadius="25" Height="50" FontSize="18" Style="{StaticResource TangoHollowButton}" Command="{Binding ResetBoardCommand}">RUN</touch:TouchButton> + + </StackPanel> + <StackPanel Orientation="Horizontal" Margin="30 0 30 0" Height="100"> + <TextBlock VerticalAlignment="Center" Text="Machine Heaters:" FontSize="{StaticResource TangoExpanderHeaderFontSize}" Width="210"></TextBlock> + <touch:TouchToggleSlider IsChecked="{Binding EnableHeaters}" Margin="55 0 0 0" HorizontalAlignment="Right" Width="90"> + <touch:TouchToggleSlider.Style> + <Style TargetType="touch:TouchToggleSlider" BasedOn="{StaticResource TangoToggleButtonGrayAccent}"> + <Setter Property="IsEnabled" Value="False" /> + <Setter Property="touch:TouchToggleSlider.BorderBrush" Value="{StaticResource TangoGrayBrush}" /> + <Setter Property="touch:TouchToggleSlider.ThumbBrush" Value="{StaticResource TangoGrayBrush}" /> + <Style.Triggers> + <DataTrigger Binding="{Binding MachineProvider.MachineOperator.CanPrint}" Value="True" > + <Setter Property="touch:TouchToggleSlider.IsEnabled" Value="True" /> + <Setter Property="touch:TouchToggleSlider.BorderBrush" Value="{StaticResource TangoPrimaryAccentBrush}" /> + <Setter Property="touch:TouchToggleSlider.ThumbBrush" Value="{StaticResource TangoPrimaryAccentBrush}" /> + </DataTrigger> + <DataTrigger Binding="{Binding MachineProvider.MachineOperator.Status}" Value="9" > + <Setter Property="IsEnabled" Value="true" /> + <Setter Property="touch:TouchToggleSlider.BorderBrush" Value="{StaticResource TangoPrimaryAccentBrush}" /> + <Setter Property="touch:TouchToggleSlider.ThumbBrush" Value="{StaticResource TangoPrimaryAccentBrush}" /> + </DataTrigger> + <DataTrigger Binding="{Binding EnableHeaters}" Value="False" > + <Setter Property="IsEnabled" Value="true" /> + <Setter Property="touch:TouchToggleSlider.BorderBrush" Value="{StaticResource TangoPrimaryAccentBrush}" /> + <Setter Property="touch:TouchToggleSlider.ThumbBrush" Value="{StaticResource TangoPrimaryAccentBrush}" /> + </DataTrigger> + </Style.Triggers> + + </Style> + </touch:TouchToggleSlider.Style> + </touch:TouchToggleSlider> + </StackPanel> + </StackPanel> + + </touch:TouchDropShadowBorder> + </StackPanel> + </touch:TouchDropShadowBorder> + <!--THREAD LOADING--> + <touch:TouchDropShadowBorder Margin="0 10 0 0" Padding="0 0 0 50" MinHeight="330"> + <StackPanel> + <StackPanel Orientation="Horizontal" VerticalAlignment="Center" Style="{StaticResource Level1Container}"> + <Image Source="../Images/thread_loading.png" Width="48" RenderOptions.BitmapScalingMode="Fant" /> + <TextBlock FontWeight="Medium" Margin="20 0 0 0" VerticalAlignment="Center" FontSize="{StaticResource TangoExpanderHeaderFontSize}">Thread Loading</TextBlock> + </StackPanel> + + <StackPanel Margin="80 40 30 0"> + <UniformGrid Columns="1" Margin="0" HorizontalAlignment="Left"> + <DockPanel HorizontalAlignment="Stretch" > + <TextBlock HorizontalAlignment="Left" VerticalAlignment="Center" Text="Thread" FontWeight="Medium" FontSize="{StaticResource TangoDialogFontSize}" Width="110"/> + <Border Margin="20 0 0 0" BorderThickness="1" Height="44" CornerRadius="22" BorderBrush="{StaticResource TangoMidAccentBrush}"> + <touch:TouchComboBox Margin="20 0 10 10" ItemsSource="{Binding RMLDisplayList}" SelectedItem="{Binding SelectedRML,Mode=TwoWay}" Focusable="False" KeyboardNavigation.TabNavigation ="None"> + <touch:TouchComboBox.ItemTemplate> + <DataTemplate> + <TextBlock Margin="20 10 10 10" TextTrimming="CharacterEllipsis" FontSize="{StaticResource TangoDialogFontSize}" Text="{Binding FinalName}"> + + </TextBlock> + </DataTemplate> + </touch:TouchComboBox.ItemTemplate> + <touch:TouchComboBox.SelectedItemTemplate> + <DataTemplate> + <TextBlock Margin="0 0 0 0" FontSize="{StaticResource TangoDialogFontSize}" Text="{Binding FinalName}" VerticalAlignment="Center" Height="36" ></TextBlock> + </DataTemplate> + </touch:TouchComboBox.SelectedItemTemplate> + </touch:TouchComboBox> + </Border> + </DockPanel> + <StackPanel Orientation="Horizontal"> + <touch:TouchButton Width="280" HorizontalAlignment="Left" Margin="20" CornerRadius="25" Height="50" FontSize="18" Style="{StaticResource TangoHollowButton}" Command="{Binding MoveToLoadPositionCommand}">MOVE TO LOAD POSITION</touch:TouchButton> + + <TextBlock Width="380" VerticalAlignment="Center" Margin="10 0 0 0" TextAlignment="Left" FontSize="{StaticResource TangoSmallFontSize}" FontWeight="Normal" Text="Press when the Thread Loading Jig is installed on the Thread Traveler, and is holding the incoming thread." TextWrapping="Wrap"/> + + </StackPanel> + <StackPanel Orientation="Horizontal"> + <touch:TouchButton Width="280" HorizontalAlignment="Left" Margin="20" CornerRadius="25" Height="50" FontSize="18" Style="{StaticResource TangoHollowButton}" Command="{Binding StartDryerWindingCommand}">START DRYER WINDING</touch:TouchButton> + <TextBlock Width="380" VerticalAlignment="Center" Margin="10 0 0 0" TextAlignment="Left" FontSize="{StaticResource TangoSmallFontSize}" FontWeight="Normal" + Text="Press only when: 1. The Thread Traveler reached the dryer load position 2. The Thread Loading Jig is installed on the Dryer 3. The Loading Comb is released"/> + + </StackPanel> + <DockPanel HorizontalAlignment="Stretch" LastChildFill="True"> + <Border HorizontalAlignment="Stretch" Margin="10 20 0 10" CornerRadius="5" BorderBrush="{StaticResource TangoPrimaryAccentBrush}" BorderThickness="0.8"> + <TextBlock VerticalAlignment="Center" Margin="10 0 0 0" TextAlignment="Left" FontStyle="Italic" FontSize="18" FontWeight="Light" Text="{Binding ThreadLoadingStatus}" TextWrapping="Wrap" /> + </Border> + </DockPanel> + </UniformGrid> + </StackPanel> + </StackPanel> + </touch:TouchDropShadowBorder> + + <!--GUIDES--> + <!--<touch:TouchDropShadowBorder Margin="0 20 0 0" Padding="0 0 0 50"> + <StackPanel> + <StackPanel Orientation="Horizontal" VerticalAlignment="Center" Style="{StaticResource Level1Container}"> + <Image Source="../Images/guides.png" /> + <TextBlock FontWeight="Medium" Margin="20 0 0 0" VerticalAlignment="Center" FontSize="{StaticResource TangoExpanderHeaderFontSize}">Guides</TextBlock> + </StackPanel> + + <StackPanel Margin="65 10 0 0"> + <ItemsControl ItemsSource="{Binding Guides}"> + <ItemsControl.ItemsPanel> + <ItemsPanelTemplate> + <UniformGrid Columns="2" IsItemsHost="True" /> + </ItemsPanelTemplate> + </ItemsControl.ItemsPanel> + <ItemsControl.ItemTemplate> + <DataTemplate> + <touch:TouchButton Command="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.OpenGuideCommand}" CommandParameter="{Binding}" Padding="20" FontSize="{StaticResource TangoTitleFontSize}" Style="{StaticResource TangoLinkButton}" HorizontalAlignment="Left"> + <TextBlock Text="{Binding Name}"></TextBlock> + </touch:TouchButton> + </DataTemplate> + </ItemsControl.ItemTemplate> + </ItemsControl> + </StackPanel> + </StackPanel> + </touch:TouchDropShadowBorder>--> + + <!--JOB RUNS--> + <!--<StackPanel Margin="0 20 0 20" TextElement.FontSize="{StaticResource TangoTitleFontSize}" TextElement.Foreground="{StaticResource TangoGrayTextBrush}"> + <StackPanel Orientation="Horizontal" HorizontalAlignment="Center"> + <TextBlock FontWeight="SemiBold">Total Dyeing Time:</TextBlock> + <TextBlock Margin="10 0 0 0" Text="{Binding TotalDyeTime,Mode=OneWay,FallbackValue=0}"></TextBlock> + </StackPanel> + + <StackPanel Orientation="Horizontal" Margin="0 10 0 0" HorizontalAlignment="Center"> + <TextBlock FontWeight="SemiBold">Total Dyed Length:</TextBlock> + <TextBlock Margin="10 0 0 0" Text="{Binding TotalDyeMeters,Mode=OneWay,FallbackValue=0}"></TextBlock> + </StackPanel> + </StackPanel>--> + + </StackPanel> + </touch:LightTouchScrollViewer> + </Grid> + </Grid> +</UserControl> diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Views/EurekaMaintenanceView.xaml.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Views/EurekaMaintenanceView.xaml.cs new file mode 100644 index 000000000..8161f1fcb --- /dev/null +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Views/EurekaMaintenanceView.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace Tango.PPC.Maintenance.Views +{ + /// <summary> + /// Interaction logic for EurikaMaintenanceView.xaml + /// </summary> + public partial class EurekaMaintenanceView : UserControl + { + public EurekaMaintenanceView() + { + InitializeComponent(); + } + } +} diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Views/MainView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Views/MainView.xaml index be6161952..15c01f4e0 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Views/MainView.xaml +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Views/MainView.xaml @@ -14,7 +14,8 @@ <Grid> <controls:NavigationControl TransitionType="Slide" TransitionDuration="00:00:0.2" KeepElementsAttached="True"> - <views:MaintenanceView/> + <views:MaintenanceView Visibility="{Binding BuildProvider.IsEureka,Converter={StaticResource BooleanToVisibilityInverseConverter}}"/> + <views:EurekaMaintenanceView Visibility="{Binding BuildProvider.IsEureka,Converter={StaticResource BooleanToVisibilityConverter}}"/> <views:GeneralGuideView/> </controls:NavigationControl> </Grid> diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Views/MaintenanceView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Views/MaintenanceView.xaml index a77ec5901..6b6c86843 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Views/MaintenanceView.xaml +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Views/MaintenanceView.xaml @@ -106,7 +106,7 @@ <StackPanel Margin="10 60 10 0"> <!--STATUS--> - <touch:TouchDropShadowBorder Padding="0 0 0 50"> + <touch:TouchDropShadowBorder Padding="0 0 0 50" Visibility="{Binding BuildProvider.BuildType,Converter={StaticResource BuildTypeToVisibilityConverter},ConverterParameter='TS1800'}"> <StackPanel> <StackPanel Orientation="Horizontal" VerticalAlignment="Center" Style="{StaticResource Level1Container}"> <Image Source="../Images/status.png" /> diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/Tango.PPC.Storage.csproj b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/Tango.PPC.Storage.csproj index e541c472b..3ed0be501 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/Tango.PPC.Storage.csproj +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/Tango.PPC.Storage.csproj @@ -40,6 +40,7 @@ <Reference Include="System" /> <Reference Include="System.ComponentModel.DataAnnotations" /> <Reference Include="System.Data" /> + <Reference Include="System.Windows.Forms" /> <Reference Include="System.Xml" /> <Reference Include="Microsoft.CSharp" /> <Reference Include="System.Core" /> diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/ViewModels/MainViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/ViewModels/MainViewVM.cs index 9b22fcdb5..ed7784b2b 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/ViewModels/MainViewVM.cs @@ -1,9 +1,11 @@ using System; using System.Collections.Generic; using System.Collections.ObjectModel; +using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; +using System.Windows.Forms; using Tango.Core.Commands; using Tango.Explorer; using Tango.PPC.Common; @@ -78,6 +80,8 @@ namespace Tango.PPC.Storage.ViewModels public RelayCommand OpenCommand { get; set; } + public RelayCommand OpenDirectoryCommand { get; set; } + public MainViewVM() { SelectedItems = new ObservableCollection<ExplorerFileItem>(); @@ -85,6 +89,7 @@ namespace Tango.PPC.Storage.ViewModels SaveCommand = new RelayCommand(OnSaveCommand, (x) => !String.IsNullOrWhiteSpace(FileName) || Request.Intent == StorageNavigationIntent.SaveFiles); Request = new StorageNavigationRequest() { Intent = StorageNavigationIntent.LoadFiles }; OpenCommand = new RelayCommand(OnOpenCommand, () => Request.Intent == StorageNavigationIntent.LoadFiles); + OpenDirectoryCommand = new RelayCommand(OnOpenFileDialogCommand); } public override void OnApplicationStarted() @@ -108,10 +113,27 @@ namespace Tango.PPC.Storage.ViewModels _allow_exit = false; _selectedItem = null; - if (StorageProvider.IsConnected && StorageProvider.Drive != null) + if (BuildProvider.IsEureka) + { + if (Settings.StorageRootPath == null) + { + Settings.StorageRootPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "Twine", "Storage"); + Directory.CreateDirectory(Settings.StorageRootPath); + } + } + + if ((StorageProvider.IsConnected && StorageProvider.Drive != null) || Settings.StorageRootPath != null) { CurrentPath = null; - CurrentPath = StorageProvider.Drive.RootDirectory.FullName; + + if (Settings.StorageRootPath != null && Directory.Exists(Settings.StorageRootPath)) + { + CurrentPath = Settings.StorageRootPath; + } + else + { + CurrentPath = StorageProvider.Drive.RootDirectory.FullName; + } if (Request.Intent == StorageNavigationIntent.SaveFile) { @@ -143,13 +165,16 @@ namespace Tango.PPC.Storage.ViewModels /// <param name="e">The drive info.</param> private void StorageProvider_StorageConnected(object sender, System.IO.DriveInfo e) { - InvokeUI(async () => + if (!BuildProvider.IsEureka) { - if (await NotificationProvider.ShowQuestion("Storage device inserted. Do you want to browse?")) + InvokeUI(async () => { - await NavigationManager.NavigateTo<StorageModule>(); - } - }); + if (await NotificationProvider.ShowQuestion("Storage device inserted. Do you want to browse?")) + { + await NavigationManager.NavigateTo<StorageModule>(); + } + }); + } } /// <summary> @@ -159,21 +184,26 @@ namespace Tango.PPC.Storage.ViewModels /// <param name="e">The drive info.</param> private void StorageProvider_StorageDisconnected(object sender, System.IO.DriveInfo e) { - InvokeUI(async () => + if (!BuildProvider.IsEureka) { - if (IsVisible) + InvokeUI(async () => { - _allow_exit = true; - await NotificationProvider.ShowError("Storage device disconnected."); - await NavigationManager.NavigateBack(); - CurrentPath = null; - } - }); + if (IsVisible) + { + _allow_exit = true; + await NotificationProvider.ShowError("Storage device disconnected."); + await NavigationManager.NavigateBack(); + CurrentPath = null; + } + }); + } } public override Task<bool> OnNavigateBackRequest() { - if (_allow_exit || CurrentPath == StorageProvider.Drive.RootDirectory.FullName) + String path = Settings.StorageRootPath != null ? Settings.StorageRootPath : StorageProvider.Drive.RootDirectory.FullName; + + if (_allow_exit || CurrentPath == path) { return Task.FromResult(true); } @@ -243,5 +273,29 @@ namespace Tango.PPC.Storage.ViewModels RaisePropertyChanged(nameof(FileName)); } } + + private void OnOpenFileDialogCommand() + { + if(Directory.Exists(CurrentPath) ) + { + Microsoft.Win32.OpenFileDialog openFileDialog = new Microsoft.Win32.OpenFileDialog + { + InitialDirectory = CurrentPath, + Title = "Browse Job Files", + + CheckFileExists = true, + CheckPathExists = true, + + DefaultExt = "job", + Filter = "job files (*.job)|*.job", + ReadOnlyChecked = true, + ShowReadOnly = true + }; + if (openFileDialog.ShowDialog().Value) + { + StorageProvider.SubmitFileSelection(new List<ExplorerFileItem>() { ExplorerFileItem.LoadFromPath(openFileDialog.FileName) }); + } + } + } } } diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/Views/MainView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/Views/MainView.xaml index c57735a7b..ff1183495 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/Views/MainView.xaml +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/Views/MainView.xaml @@ -28,7 +28,12 @@ <Border.Effect> <DropShadowEffect Color="Silver" ShadowDepth="0" BlurRadius="20" Opacity="1" /> </Border.Effect> - <TextBlock VerticalAlignment="Center" FontSize="{StaticResource TangoHeaderFontSize}" FontWeight="SemiBold">Storage</TextBlock> + <StackPanel Orientation="Horizontal"> + <TextBlock VerticalAlignment="Center" FontSize="{StaticResource TangoHeaderFontSize}" FontWeight="SemiBold">Storage</TextBlock> + <touch:TouchButton Command="{Binding OpenDirectoryCommand}" Style="{StaticResource TangoLinkButton}"> + <TextBlock Margin="20 1 0 0" VerticalAlignment="Center" FontSize="{StaticResource TangoDefaultFontSize}" Text="{Binding CurrentPath}" Foreground="{StaticResource TangoPrimaryAccentBrush}" TextWrapping="Wrap"></TextBlock> + </touch:TouchButton> + </StackPanel> </Border> <Grid Margin="10" Grid.Row="1"> <DockPanel> diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Technician/ViewModels/SystemViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Technician/ViewModels/SystemViewVM.cs index 452907366..e3f695514 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Technician/ViewModels/SystemViewVM.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Technician/ViewModels/SystemViewVM.cs @@ -15,6 +15,7 @@ using Tango.PPC.Common.OS; using Tango.Settings; using System.Data.Entity; using Tango.PPC.Common.UWF; +using Tango.BL.Entities; namespace Tango.PPC.Technician.ViewModels { @@ -74,6 +75,14 @@ namespace Tango.PPC.Technician.ViewModels set { _totalDyeMeters = value; RaisePropertyChangedAuto(); } } + public Site CurrentSite { get; set; } + + public String SiteName + { + get { return CurrentSite == null? "" : CurrentSite.Name; } + } + + public RelayCommand ResetDeviceCommand { get; set; } public RelayCommand RestartCommand { get; set; } @@ -181,6 +190,8 @@ namespace Tango.PPC.Technician.ViewModels _statsTimer.Interval = 2000; _statsTimer.Elapsed += _statsTimer_Elapsed; _statsTimer.Start(); + + InitSite(); } private void _statsTimer_Elapsed(object sender, ElapsedEventArgs e) @@ -299,5 +310,22 @@ namespace Tango.PPC.Technician.ViewModels TotalDyeMeters = "error!"; } } + + public async void InitSite() + { + if (CurrentSite == null) + { + var machine = MachineProvider.Machine; + if (machine != null && !String.IsNullOrEmpty(machine.SiteGuid)) + { + using (ObservablesContext db = ObservablesContext.CreateDefault()) + { + var site = (await db.Sites.Where(x => x.Guid == machine.SiteGuid).ToListAsync()).FirstOrDefault(); + CurrentSite = site; + RaisePropertyChanged( nameof(SiteName)); + } + } + } + } } } diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Technician/Views/SystemView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Technician/Views/SystemView.xaml index fc0f734ff..8ef29bb7e 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Technician/Views/SystemView.xaml +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Technician/Views/SystemView.xaml @@ -110,7 +110,7 @@ </touch:TouchButton> </StackPanel> - <FlowDocumentScrollViewer VerticalScrollBarVisibility="Disabled"> + <FlowDocumentScrollViewer VerticalScrollBarVisibility="Disabled" Visibility="{Binding BuildProvider.IsEureka, Converter={StaticResource BooleanToVisibilityInverseConverter}}"> <FlowDocument> <Table CellSpacing="0" FontFamily="{StaticResource TangoFlexoFontFamily}"> <Table.Resources> @@ -174,7 +174,7 @@ </TableCell> </TableRow> - <TableRow> + <TableRow > <TableCell> <Paragraph> <TextBlock>FPGA 1:</TextBlock> @@ -320,6 +320,188 @@ </Table> </FlowDocument> </FlowDocumentScrollViewer> + <FlowDocumentScrollViewer VerticalScrollBarVisibility="Disabled" Visibility="{Binding BuildProvider.IsEureka, Converter={StaticResource BooleanToVisibilityConverter}}"> + <FlowDocument> + <Table CellSpacing="0" FontFamily="{StaticResource TangoFlexoFontFamily}"> + <Table.Resources> + <Style TargetType="{x:Type TableRowGroup}"> + <Setter Property="FontSize" Value="{StaticResource TangoDefaultFontSize}"/> + </Style> + + <Style TargetType="TableCell"> + <Setter Property="BorderThickness" Value="0 0 0 1"></Setter> + <Setter Property="BorderBrush" Value="{StaticResource TangoGrayBrush}"></Setter> + <Setter Property="Padding" Value="5"></Setter> + </Style> + </Table.Resources> + <Table.Columns> + <TableColumn Width="160" /> + <TableColumn /> + <TableColumn /> + </Table.Columns> + + <TableRowGroup> + + <TableRow> + <TableCell> + <Paragraph> + <TextBlock>Environment:</TextBlock> + </Paragraph> + </TableCell> + + <TableCell> + <Paragraph> + <TextBlock Text="{Binding Settings.DeploymentSlot,Converter={StaticResource EnumToDescriptionConverter},Mode=OneWay,TargetNullValue='N/A',FallbackValue='N/A'}"/> + </Paragraph> + </TableCell> + </TableRow> + + <TableRow> + <TableCell> + <Paragraph> + <TextBlock>Application Version:</TextBlock> + </Paragraph> + </TableCell> + + <TableCell> + <Paragraph> + <TextBlock Text="{Binding ApplicationManager.VersionAndTag,Mode=OneWay,TargetNullValue='N/A',FallbackValue='N/A'}"/> + </Paragraph> + </TableCell> + </TableRow> + + <TableRow> + <TableCell> + <Paragraph> + <TextBlock>Site:</TextBlock> + </Paragraph> + </TableCell> + + <TableCell> + <Paragraph> + <TextBlock Text="{Binding SiteName,Mode=OneWay,TargetNullValue='N/A',FallbackValue='N/A'}"/> + </Paragraph> + </TableCell> + </TableRow> + + <TableRow> + <TableCell> + <Paragraph> + <TextBlock>Machine S/N:</TextBlock> + </Paragraph> + </TableCell> + + <TableCell> + <Paragraph> + <TextBlock Text="{Binding MachineProvider.Machine.SerialNumber,Mode=OneWay,IsAsync=True,FallbackValue='0000'}"/> + </Paragraph> + </TableCell> + </TableRow> + + <TableRow> + <TableCell> + <Paragraph> + <TextBlock>Firmware Version:</TextBlock> + </Paragraph> + </TableCell> + + <TableCell> + <Paragraph> + <TextBlock Text="{Binding MachineProvider.MachineOperator.DeviceInformation.Version,Mode=OneWay,TargetNullValue='N/A',FallbackValue='N/A'}"/> + </Paragraph> + </TableCell> + </TableRow> + + <TableRow> + <TableCell> + <Paragraph> + <TextBlock>CPU:</TextBlock> + </Paragraph> + </TableCell> + + <TableCell> + <Paragraph> + <TextBlock> + <Run Text="{Binding CPU,Mode=OneWay,StringFormat='0',FallbackValue=0}"></Run> + <Run>%</Run> + </TextBlock> + </Paragraph> + </TableCell> + </TableRow> + + <TableRow> + <TableCell> + <Paragraph> + <TextBlock>RAM:</TextBlock> + </Paragraph> + </TableCell> + + <TableCell> + <Paragraph> + <TextBlock Text="{Binding RAM,Mode=OneWay,FallbackValue=0,Converter={StaticResource ByteArrayToFileSizeConverter},StringFormat='0'}"></TextBlock> + </Paragraph> + </TableCell> + </TableRow> + + <TableRow> + <TableCell> + <Paragraph> + <TextBlock>Up Time:</TextBlock> + </Paragraph> + </TableCell> + + <TableCell> + <Paragraph> + <TextBlock Text="{Binding UpTime,Mode=OneWay,StringFormat=hh\\:mm\\:ss,FallbackValue='00:00:00'}"></TextBlock> + </Paragraph> + </TableCell> + </TableRow> + + <TableRow> + <TableCell> + <Paragraph> + <TextBlock>IP Address:</TextBlock> + </Paragraph> + </TableCell> + + <TableCell> + <Paragraph> + <TextBlock Text="{Binding IPAddress,Mode=OneWay,FallbackValue=0}"></TextBlock> + </Paragraph> + </TableCell> + </TableRow> + + <TableRow> + <TableCell> + <Paragraph> + <TextBlock>Total Dye Time:</TextBlock> + </Paragraph> + </TableCell> + + <TableCell> + <Paragraph> + <TextBlock Text="{Binding TotalDyeTime,Mode=OneWay,FallbackValue=0}"></TextBlock> + </Paragraph> + </TableCell> + </TableRow> + + <TableRow> + <TableCell> + <Paragraph> + <TextBlock>Total Dye Meters:</TextBlock> + </Paragraph> + </TableCell> + + <TableCell> + <Paragraph> + <TextBlock Text="{Binding TotalDyeMeters,Mode=OneWay,FallbackValue=0}"></TextBlock> + </Paragraph> + </TableCell> + </TableRow> + </TableRowGroup> + </Table> + </FlowDocument> + </FlowDocumentScrollViewer> </DockPanel> </touch:LightTouchScrollViewer> </Grid> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Build/BuildType.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Build/BuildType.cs new file mode 100644 index 000000000..43b1f75ca --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Build/BuildType.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.PPC.Common.Build +{ + public enum BuildType + { + TS1800, + Eureka + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Build/IBuildProvider.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Build/IBuildProvider.cs new file mode 100644 index 000000000..3ced1ddc2 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Build/IBuildProvider.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.PPC.Common.Build +{ + public interface IBuildProvider + { + BuildType BuildType { get; } + bool IsEureka { get; } + String BuildName { get; } + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Connection/DefaultMachineProvider.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Connection/DefaultMachineProvider.cs index 2b3bc2a99..7f67a4444 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Connection/DefaultMachineProvider.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Connection/DefaultMachineProvider.cs @@ -124,6 +124,10 @@ namespace Tango.PPC.Common.Connection MachineOperator.EnableJobLiquidQuantityValidation = settings.EnableJobLiquidQuantityValidation; (MachineOperator.JobRunsLogger as BasicJobRunsLogger).CreateJobRunsFiles = true; + +#if Eureka + ProcessParametersTable.DryerBufferMode = BL.Enumerations.MachineTypes.Eureka; +#endif } private void MachineOperator_StatusChanged(object sender, MachineStatuses status) @@ -186,7 +190,7 @@ namespace Tango.PPC.Common.Connection TimeSpan timeout = TimeSpan.FromSeconds(SettingsManager.Default.GetOrCreate<PPCSettings>().MachineScanningTimeoutSeconds); LogManager.Log("Scanning for machine on available serial ports...", LogCategory.Info); - Transport.Discovery.UsbCommunicationScanner<ConnectRequest, ConnectResponse> scanner = new Transport.Discovery.UsbCommunicationScanner<ConnectRequest, ConnectResponse>(UsbSerialBaudRates.BR_115200); + Transport.Discovery.UsbCommunicationScanner<ConnectRequest, ConnectResponse> scanner = new Transport.Discovery.UsbCommunicationScanner<ConnectRequest, ConnectResponse>(settings.EmbeddedBaudRate); var response = await scanner.Scan(new ConnectRequest() { Password = "1234" }, settings.EmbeddedDeviceHint, timeout); LogManager.Log("Machine discovered on port: " + response.Adapter.Address, LogCategory.Info); @@ -224,7 +228,7 @@ namespace Tango.PPC.Common.Connection //Perform a pre-test to not overload the log file when machine is off for a long time. using (SerialPort preCheckSerialPort = new SerialPort(settings.EmbeddedComPort)) { - preCheckSerialPort.BaudRate = UsbSerialBaudRates.BR_115200.ToInt32(); + preCheckSerialPort.BaudRate = settings.EmbeddedBaudRate.ToInt32(); preCheckSerialPort.Open(); preCheckSerialPort.Close(); fileLoggingDisabled = false; @@ -233,7 +237,7 @@ namespace Tango.PPC.Common.Connection LogManager.Log($"Connecting to machine on {settings.EmbeddedComPort}...", LogCategory.Info); - UsbTransportAdapter adapter = new UsbTransportAdapter(settings.EmbeddedComPort, UsbSerialBaudRates.BR_115200); + UsbTransportAdapter adapter = new UsbTransportAdapter(settings.EmbeddedComPort, settings.EmbeddedBaudRate); MachineOperator.Adapter = adapter; MachineOperator.JobHandlingMode = JobHandlerModes.SettingUp; try @@ -261,16 +265,25 @@ namespace Tango.PPC.Common.Connection { LogManager.Log("Application in demo mode!"); - var emulator_channel_name = "emulator-" + Guid.NewGuid().ToString(); + if (settings.EmulatorMode == EmulatorMode.InMemory) + { + var emulator_channel_name = "emulator-" + Guid.NewGuid().ToString(); + LogManager.Log("Starting embedded emulator..."); + MachineEmulator emulator = new MachineEmulator(new BasicTransporter(new MemoryTransportAdapter(emulator_channel_name))); + await emulator.Start(); - LogManager.Log("Starting embedded emulator..."); - MachineEmulator emulator = new MachineEmulator(new BasicTransporter(new MemoryTransportAdapter(emulator_channel_name))); - await emulator.Start(); + LogManager.Log("Emulator started. Connecting to emulator..."); - LogManager.Log("Emulator started. Connecting to emulator..."); + MemoryTransportAdapter adapter = new MemoryTransportAdapter(emulator_channel_name); + MachineOperator.Adapter = adapter; + } + else + { + LogManager.Log("Connecting to external emulator over TCP..."); + TcpTransportAdapter adapter = new TcpTransportAdapter("127.0.0.1", 30000); + MachineOperator.Adapter = adapter; + } - MemoryTransportAdapter adapter = new MemoryTransportAdapter(emulator_channel_name); - MachineOperator.Adapter = adapter; MachineOperator.JobHandlingMode = JobHandlerModes.SettingUp; LogManager.Log("Connecting machine operator..."); await MachineOperator.Connect(); @@ -320,6 +333,8 @@ namespace Tango.PPC.Common.Connection { LogManager.Log("First machine entry found. Machine serial number is: " + Machine.SerialNumber + "."); + MachineOperator.MachineType = Machine.Type; + if (Machine.IsDemo) { LogManager.Log("Machine is in demo mode. Changing firmware upgrade mode to TFP package only."); @@ -381,6 +396,10 @@ namespace Tango.PPC.Common.Connection machineOperator.EnableJobLiquidQuantityValidation = false; machineOperator.EnablePowerUpSequence = false; +#if Eureka + machineOperator.MachineType = BL.Enumerations.MachineTypes.Eureka; +#endif + LogManager.Default.Log("Starting machine connection procedure..."); var settings = SettingsManager.Default.GetOrCreate<PPCSettings>(); @@ -391,7 +410,7 @@ namespace Tango.PPC.Common.Connection onProgress?.Invoke("Scanning for the machine..."); LogManager.Default.Log("Scanning for machine on available serial ports..."); - Transport.Discovery.UsbCommunicationScanner<ConnectRequest, ConnectResponse> scanner = new Transport.Discovery.UsbCommunicationScanner<ConnectRequest, ConnectResponse>(UsbSerialBaudRates.BR_115200); + Transport.Discovery.UsbCommunicationScanner<ConnectRequest, ConnectResponse> scanner = new Transport.Discovery.UsbCommunicationScanner<ConnectRequest, ConnectResponse>(settings.EmbeddedBaudRate); var response = await scanner.Scan(new ConnectRequest() { Password = "1234" }, timeout); onProgress?.Invoke("Machine discovered on port: " + response.Adapter.Address); @@ -411,7 +430,7 @@ namespace Tango.PPC.Common.Connection LogManager.Default.Log($"Connecting to machine on {settings.EmbeddedComPort}..."); onProgress?.Invoke($"Connecting to machine on {settings.EmbeddedComPort}..."); - UsbTransportAdapter adapter = new UsbTransportAdapter(settings.EmbeddedComPort, UsbSerialBaudRates.BR_115200); + UsbTransportAdapter adapter = new UsbTransportAdapter(settings.EmbeddedComPort, settings.EmbeddedBaudRate); machineOperator.Adapter = adapter; machineOperator.JobHandlingMode = JobHandlerModes.SettingUp; await machineOperator.Connect(); diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Converters/BuildTypeToVisibilityConverter.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Converters/BuildTypeToVisibilityConverter.cs new file mode 100644 index 000000000..a9b3ff8bc --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Converters/BuildTypeToVisibilityConverter.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Data; +using Tango.Core.DI; +using Tango.PPC.Common.Build; + +namespace Tango.PPC.Common.Converters +{ + public class BuildTypeToVisibilityConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + return (BuildType)value == (BuildType)Enum.Parse(typeof(BuildType), parameter.ToStringSafe()) ? Visibility.Visible : Visibility.Collapsed; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Converters/BuildTypeToVisibilityInverseConverter.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Converters/BuildTypeToVisibilityInverseConverter.cs new file mode 100644 index 000000000..744d0d975 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Converters/BuildTypeToVisibilityInverseConverter.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Data; +using Tango.Core.DI; +using Tango.PPC.Common.Build; + +namespace Tango.PPC.Common.Converters +{ + public class BuildTypeToVisibilityInverseConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + return (BuildType)value == (BuildType)Enum.Parse(typeof(BuildType), parameter.ToStringSafe()) ? Visibility.Collapsed : Visibility.Visible; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Converters/IsEurekaToBooleanConverter.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Converters/IsEurekaToBooleanConverter.cs new file mode 100644 index 000000000..3596a86be --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Converters/IsEurekaToBooleanConverter.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Data; +using Tango.Core.DI; +using Tango.PPC.Common.Build; + +namespace Tango.PPC.Common.Converters +{ + public class IsEurekaToBooleanConverter : IValueConverter + { + private static BuildType? _buildType = null; + + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + if (_buildType == null) + { + _buildType = TangoIOC.Default.GetInstance<IBuildProvider>().BuildType; + } + + return _buildType == BuildType.Eureka; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Black.ttf b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Black.ttf Binary files differnew file mode 100644 index 000000000..71c0f995e --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Black.ttf diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-BlackItalic.ttf b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-BlackItalic.ttf Binary files differnew file mode 100644 index 000000000..7aeb58bd1 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-BlackItalic.ttf diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Bold.ttf b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Bold.ttf Binary files differnew file mode 100644 index 000000000..00559eeb2 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Bold.ttf diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-BoldItalic.ttf b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-BoldItalic.ttf Binary files differnew file mode 100644 index 000000000..e61e8e88b --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-BoldItalic.ttf diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-ExtraBold.ttf b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-ExtraBold.ttf Binary files differnew file mode 100644 index 000000000..df7093608 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-ExtraBold.ttf diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-ExtraBoldItalic.ttf b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-ExtraBoldItalic.ttf Binary files differnew file mode 100644 index 000000000..14d2b375d --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-ExtraBoldItalic.ttf diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-ExtraLight.ttf b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-ExtraLight.ttf Binary files differnew file mode 100644 index 000000000..e76ec69a6 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-ExtraLight.ttf diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-ExtraLightItalic.ttf b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-ExtraLightItalic.ttf Binary files differnew file mode 100644 index 000000000..89513d946 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-ExtraLightItalic.ttf diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Italic.ttf b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Italic.ttf Binary files differnew file mode 100644 index 000000000..12b7b3c40 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Italic.ttf diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Light.ttf b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Light.ttf Binary files differnew file mode 100644 index 000000000..bc36bcc24 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Light.ttf diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-LightItalic.ttf b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-LightItalic.ttf Binary files differnew file mode 100644 index 000000000..9e70be6a9 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-LightItalic.ttf diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Medium.ttf b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Medium.ttf Binary files differnew file mode 100644 index 000000000..6bcdcc27f --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Medium.ttf diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-MediumItalic.ttf b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-MediumItalic.ttf Binary files differnew file mode 100644 index 000000000..be67410fd --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-MediumItalic.ttf diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Regular.ttf b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Regular.ttf Binary files differnew file mode 100644 index 000000000..9f0c71b70 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Regular.ttf diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-SemiBold.ttf b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-SemiBold.ttf Binary files differnew file mode 100644 index 000000000..74c726e32 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-SemiBold.ttf diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-SemiBoldItalic.ttf b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-SemiBoldItalic.ttf Binary files differnew file mode 100644 index 000000000..3e6c94223 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-SemiBoldItalic.ttf diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Thin.ttf b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Thin.ttf Binary files differnew file mode 100644 index 000000000..03e736613 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Thin.ttf diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-ThinItalic.ttf b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-ThinItalic.ttf Binary files differnew file mode 100644 index 000000000..e26db5dd3 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-ThinItalic.ttf diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineSetup/MachineSetupManager.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineSetup/MachineSetupManager.cs index 45fd6c1b8..0d64da83e 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineSetup/MachineSetupManager.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineSetup/MachineSetupManager.cs @@ -32,6 +32,7 @@ using Tango.SharedUI.Helpers; using Tango.SQLExaminer; using Tango.Transport.Web; using System.Data.Entity; +using Tango.PPC.Common.Build; namespace Tango.PPC.Common.MachineSetup { @@ -45,6 +46,7 @@ namespace Tango.PPC.Common.MachineSetup private IRemoteAssistanceProvider _remoteAssistance; private IUnifiedWriteFilterManager _uwf; private IOperationSystemManager _windows_manager; + private IBuildProvider _buildProvider; private PPCWebClient _client; private List<LogItemBase> _logs; private bool _isUpdating; @@ -81,12 +83,13 @@ namespace Tango.PPC.Common.MachineSetup /// Initializes a new instance of the <see cref="MachineSetupManager"/> class. /// </summary> /// <param name="remoteAssistance">The remote assistance.</param> - public MachineSetupManager(PPCWebClient ppcWebClient, IRemoteAssistanceProvider remoteAssistance, IUnifiedWriteFilterManager unifiedWriterFilterManager, IOperationSystemManager operationSystemManager) + public MachineSetupManager(PPCWebClient ppcWebClient, IRemoteAssistanceProvider remoteAssistance, IUnifiedWriteFilterManager unifiedWriterFilterManager, IOperationSystemManager operationSystemManager, IBuildProvider buildProvider) { _client = ppcWebClient; _remoteAssistance = remoteAssistance; _uwf = unifiedWriterFilterManager; _windows_manager = operationSystemManager; + _buildProvider = buildProvider; _logs = new List<LogItemBase>(); LogManager.NewLog += LogManager_NewLog; @@ -235,7 +238,7 @@ namespace Tango.PPC.Common.MachineSetup Login(serialNumber).Wait(); - String deviceName = $"Tango-{serialNumber}-{settings.DeploymentSlot.ToString()}"; + String deviceName = $"{(_buildProvider.BuildType == BuildType.TS1800 ? "PPC" : "TwineX4")}{serialNumber}{settings.DeploymentSlot.ToString()}"; LogManager.Log($"Settings device name: '{deviceName}'..."); try { @@ -254,6 +257,13 @@ namespace Tango.PPC.Common.MachineSetup { LogManager.Log($"Sending setup request...\n{request.ToJsonString()}"); setup_response = await _client.MachineSetup(request); + + if (_buildProvider.IsEureka) + { + setup_response.SetupActivation = false; + setup_response.SetupUWF = false; + setup_response.SetupRemoteAssistance = false; + } } catch (Exception ex) { diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs index c5412e591..47ffe6f19 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs @@ -37,6 +37,7 @@ using Tango.BL.DTO; using Tango.PPC.Shared.Updates; using Tango.PPC.Shared.RemoteUpgrade; using Tango.Core.Threading; +using Tango.PPC.Common.Build; namespace Tango.PPC.Common.MachineUpdate { @@ -45,6 +46,7 @@ namespace Tango.PPC.Common.MachineUpdate private IPPCApplicationManager _app_manager; private IMachineProvider _machineProvider; private IPackageRunner _packageRunner; + private IBuildProvider _buildProvider; private PPCWebClient _client; private List<LogItemBase> _logs; private System.Timers.Timer _checkForUpdateTimer; @@ -101,13 +103,14 @@ namespace Tango.PPC.Common.MachineUpdate /// Initializes a new instance of the <see cref="MachineUpdateManager"/> class. /// </summary> /// <param name="applicationManager">The application manager.</param> - public MachineUpdateManager(PPCWebClient ppcWebClient, IPPCApplicationManager applicationManager, IMachineProvider machineProvider, IPackageRunner packageRunner, IPPCExternalBridgeService externalBridge) + public MachineUpdateManager(PPCWebClient ppcWebClient, IPPCApplicationManager applicationManager, IMachineProvider machineProvider, IPackageRunner packageRunner, IPPCExternalBridgeService externalBridge, IBuildProvider buildProvider) { _client = ppcWebClient; _machineProvider = machineProvider; _app_manager = applicationManager; _app_manager.ApplicationReady += _app_manager_ApplicationReady; _packageRunner = packageRunner; + _buildProvider = buildProvider; _packageRunner.PackageProgress += _packageRunner_PackageProgress; _logs = new List<LogItemBase>(); @@ -702,7 +705,7 @@ namespace Tango.PPC.Common.MachineUpdate } } - if (!op.CanPrint) + if (op.Status == MachineStatuses.Printing || op.Status == MachineStatuses.GettingReady) { throw LogManager.Log(new InvalidOperationException($"Could not perform an update while the machine is in {op.Status} status.")); } diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/PPCSettings.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/PPCSettings.cs index 6fb521838..acb84191b 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/PPCSettings.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/PPCSettings.cs @@ -16,6 +16,12 @@ using Tango.Web; namespace Tango.PPC.Common { + public enum EmulatorMode + { + InMemory, + ExternalTCP, + } + /// <summary> /// Represents the main PPC settings. /// </summary> @@ -50,6 +56,11 @@ namespace Tango.PPC.Common public String EmbeddedComPort { get; set; } /// <summary> + /// Gets or sets the embedded USB serial baud rate when using USB and Eureka. + /// </summary> + public UsbSerialBaudRates EmbeddedBaudRate { get; set; } + + /// <summary> /// Gets or sets the embedded device scanning hint. /// </summary> public String EmbeddedDeviceHint { get; set; } @@ -350,6 +361,26 @@ namespace Tango.PPC.Common public double FineTuningMinLimitdL { get; set; } /// <summary> + /// Gets or sets a value indicating whether [show advanced options]. + /// </summary> + public bool ShowAdvancedOptions { get; set; } + + /// <summary> + /// Gets or sets a value indicating whether to force full screen mode on TwineX4. + /// </summary> + public bool ForceTouchMode { get; set; } + + /// <summary> + /// Gets or sets the emulator mode. + /// </summary> + public EmulatorMode EmulatorMode { get; set; } + + /// <summary> + /// Gets or sets the storage root path. + /// </summary> + public String StorageRootPath { get; set; } + + /// <summary> /// Gets the machine service address. /// </summary> /// <returns></returns> @@ -363,6 +394,7 @@ namespace Tango.PPC.Common /// </summary> public PPCSettings() { + EmulatorMode = EmulatorMode.InMemory; LubricationLevels = new List<RmlLubricationLevel>(); JobUploadStrategy = JobUploadStrategy.JobDescriptionFile; FineTuningTrialLengthMeters = 200; @@ -371,6 +403,13 @@ namespace Tango.PPC.Common GradientGenerationResolution = 40; MachineScanningTimeoutSeconds = 20; EmbeddedComPort = "COM10"; + +#if Eureka + EmbeddedBaudRate = UsbSerialBaudRates.BR_1000000; +#else + EmbeddedBaudRate = UsbSerialBaudRates.BR_115200; +#endif + EmbeddedDeviceHint = "Tango USB Serial Port"; ExternalBridgePassword = "Aa123456"; HotSpotPassword = "Aa123456"; @@ -416,6 +455,7 @@ namespace Tango.PPC.Common ScreenSaverStartDuration = 5; EnableScreenSaver = true; EnableRemoteJobUpload = true; + ShowAdvancedOptions = false; } } } diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/PPCViewModel.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/PPCViewModel.cs index cdbfa909d..b54289813 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/PPCViewModel.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/PPCViewModel.cs @@ -8,6 +8,7 @@ using Tango.Core.DI; using Tango.PPC.Common.Application; using Tango.PPC.Common.Authentication; using Tango.PPC.Common.Bit; +using Tango.PPC.Common.Build; using Tango.PPC.Common.Connection; using Tango.PPC.Common.Connectivity; using Tango.PPC.Common.EventLogging; @@ -141,6 +142,9 @@ namespace Tango.PPC.Common [TangoInject] public IRemoteJobUploadService RemoteJobUploadService { get; set; } + [TangoInject] + public IBuildProvider BuildProvider { get; set; } + private PPCSettings _settings; /// <summary> /// Gets the main PPC settings. diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Printing/PrintingConfiguration.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Printing/PrintingConfiguration.cs index 815936137..ff406cefd 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Printing/PrintingConfiguration.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Printing/PrintingConfiguration.cs @@ -8,6 +8,8 @@ namespace Tango.PPC.Common.Printing { public class PrintingConfiguration { - + public int RemainingUnits { get; set; } + public double GlobalStartPosition { get; set; } + public double FirstUnitStartPosition { get; set; } } } diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Publish/PPCPublisher.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Publish/PPCPublisher.cs index 983868c2c..a71bf6729 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Publish/PPCPublisher.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Publish/PPCPublisher.cs @@ -28,6 +28,8 @@ namespace Tango.PPC.Common.Publish /// </summary> public event EventHandler<PublishProgressEventArgs> PublishProgress; + public bool IsEureka { get; set; } + private PublishOptions _options; /// <summary> /// Gets or sets the publish options. @@ -200,7 +202,7 @@ namespace Tango.PPC.Common.Publish String output_folder = Options.InstallerOutputFolder; OnPublishProgress(0, 100, $"Building installer project..."); InstallerBuilder installerBuilder = new InstallerBuilder(Options.InstallerProject); - String installer_name = $"PPC Installer_v{Version.Parse(local_version).ToString(3) + (Options.Tag.IsNotNullOrEmpty() ? $" [{Options.Tag}]" : String.Empty)}.exe"; + String installer_name = $"{(IsEureka ? "TwineX4" : "PPC")} Installer_v{Version.Parse(local_version).ToString(3) + (Options.Tag.IsNotNullOrEmpty() ? $" [{Options.Tag}]" : String.Empty)}.exe"; String output_file = Path.Combine(output_folder, installer_name); installerBuilder.Build(local_version, output_file).Wait(); @@ -256,7 +258,7 @@ namespace Tango.PPC.Common.Publish { String repoPath = Path.GetFullPath("../../../../../"); String tagVersion = System.Version.Parse(GetLocalVersion()).ToString(3); - String tagName = $"PPC_v{tagVersion}"; + String tagName = $"{(IsEureka ? "Eureka" : "PPC")}_v{tagVersion}"; if (Options.Tag.IsNotNullOrEmpty()) { @@ -432,7 +434,9 @@ namespace Tango.PPC.Common.Publish var cuf = zip.AddFile(update_config_file, update_dir); cuf.FileName = update_dir + "\\config.xml"; - zip.AddDirectory(folder + "\\" + "Packages", "/Packages"); + String packagesFolder = folder + "\\" + "Packages"; + Directory.CreateDirectory(packagesFolder); + zip.AddDirectory(packagesFolder, "/Packages"); foreach (var file in Directory.GetFiles(folder, "*.*", SearchOption.TopDirectoryOnly)) { diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteDesktop/DefaultRemoteDesktopService.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteDesktop/DefaultRemoteDesktopService.cs index 411fd5252..51c78e0f0 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteDesktop/DefaultRemoteDesktopService.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteDesktop/DefaultRemoteDesktopService.cs @@ -14,6 +14,7 @@ using Tango.Core.Threading; using Tango.Integration.ExternalBridge; using Tango.Logging; using Tango.PPC.Common.Application; +using Tango.PPC.Common.Build; using Tango.PPC.Common.ExternalBridge; using Tango.PPC.Common.OS; using Tango.PPC.Common.Printing; @@ -46,6 +47,7 @@ namespace Tango.PPC.Common.RemoteDesktop private bool _isMouseDown; private bool _ensureMouseDown; private ActionTimer _resetTimer; + private IBuildProvider _buildProvider; /// <summary> /// Gets or sets a value indicating whether this <see cref="IPPCService" /> is enabled. @@ -79,11 +81,12 @@ namespace Tango.PPC.Common.RemoteDesktop /// <param name="applicationManager">The application manager.</param> /// <param name="externalBridge">The external bridge.</param> /// <param name="osManager">The os manager.</param> - public DefaultRemoteDesktopService(IPPCApplicationManager applicationManager, IPPCExternalBridgeService externalBridge, IOperationSystemManager osManager, IPrintingManager printingManager) + public DefaultRemoteDesktopService(IPPCApplicationManager applicationManager, IPPCExternalBridgeService externalBridge, IOperationSystemManager osManager, IPrintingManager printingManager, IBuildProvider buildProvider) { _osManager = osManager; _appManager = applicationManager; _printingManager = printingManager; + _buildProvider = buildProvider; _jsonSettings = new JsonSerializerSettings() { @@ -110,10 +113,19 @@ namespace Tango.PPC.Common.RemoteDesktop private void ApplicationManager_ApplicationReady(object sender, EventArgs e) { - - var mainWindow = System.Windows.Application.Current.MainWindow; + if (_buildProvider.IsEureka) + { + _engine.CaptureRegion = new CaptureRegion() + { + Left = (int)mainWindow.Left, + Top = 0, + Width = 1920, + Height = 1080 + }; + } + if (mainWindow.WindowStyle != System.Windows.WindowStyle.None) { mainWindow.LocationChanged += (_, __) => @@ -325,7 +337,7 @@ namespace Tango.PPC.Common.RemoteDesktop MouseController.MouseEvent(flag); - _resetTimer.ResetReplace(() => + _resetTimer.ResetReplace(() => { _printingManager.PreventPrintingByRemoteDesktop = false; Debug.WriteLine("ALLOW PRINT"); @@ -468,7 +480,7 @@ namespace Tango.PPC.Common.RemoteDesktop } else { - _engine.EnableComparer = true; + _engine.EnableComparer = !_buildProvider.IsEureka; foreach (var client in _clients.ToList().Where(x => !x.InitialPacketSent)) { @@ -490,13 +502,13 @@ namespace Tango.PPC.Common.RemoteDesktop } } - if (e.Frame.DifferenceCount > 0) + if (e.Frame.DifferenceCount > 0 || _buildProvider.IsEureka) { RemoteDesktopPacket packet = null; Point mousePosition = new Point(System.Windows.Forms.Cursor.Position.X, System.Windows.Forms.Cursor.Position.Y); - if (!e.Frame.DifferenceAvailable) + if (!e.Frame.DifferenceAvailable || _buildProvider.IsEureka) { packet = new RemoteDesktopPacket() { diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Fonts.xaml b/Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Fonts.xaml index 356c04749..4e704751c 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Fonts.xaml +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Fonts.xaml @@ -3,4 +3,7 @@ xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:local="clr-namespace:Tango.PPC.Common.Resources"> -</ResourceDictionary>
\ No newline at end of file + <FontFamily x:Key="Poppins" >pack://application:,,,/Tango.PPC.Common;Component/Fonts/#Poppins</FontFamily> + +</ResourceDictionary> +
\ No newline at end of file diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Merged.xaml b/Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Merged.xaml index 780941f66..da4e63b51 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Merged.xaml +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Merged.xaml @@ -71,6 +71,9 @@ <converters:IsToStringEqualToVisibilityConverter x:Key="IsToStringEqualToVisibilityConverter" /> <localConverter:EventTypeDescriptionConverter x:Key="EventTypeDescriptionConverter" /> <localConverter:EventTypeTitleConverter x:Key="EventTypeTitleConverter" /> + <localConverter:IsEurekaToBooleanConverter x:Key="IsEurekaToBooleanConverter" /> + <localConverter:BuildTypeToVisibilityConverter x:Key="BuildTypeToVisibilityConverter" /> + <localConverter:BuildTypeToVisibilityInverseConverter x:Key="BuildTypeToVisibilityInverseConverter" /> <Style TargetType="FrameworkElement"> <Setter Property="TextElement.FontFamily" Value="{StaticResource TangoFlexoFontFamily}"></Setter> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Tango.PPC.Common.csproj b/Software/Visual_Studio/PPC/Tango.PPC.Common/Tango.PPC.Common.csproj index e1f4efdcb..e598c6fe4 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Tango.PPC.Common.csproj +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Tango.PPC.Common.csproj @@ -47,6 +47,25 @@ <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Eureka_Debug|AnyCPU' "> + <PlatformTarget>AnyCPU</PlatformTarget> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>..\..\Build\PPC\Eureka_Debug\</OutputPath> + <DefineConstants>TRACE;DEBUG;Eureka</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Eureka|AnyCPU' "> + <PlatformTarget>AnyCPU</PlatformTarget> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>..\..\Build\PPC\Eureka\</OutputPath> + <DefineConstants>TRACE;Eureka</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> <ItemGroup> <Reference Include="CommandLine, Version=1.9.71.2, Culture=neutral, PublicKeyToken=de6f01bd326f8c32, processorArchitecture=MSIL"> <HintPath>..\..\packages\CommandLineParser.1.9.71\lib\net45\CommandLine.dll</HintPath> @@ -134,6 +153,8 @@ <Compile Include="BackupRestore\RestoreResult.cs" /> <Compile Include="BackupRestore\RestoreSettings.cs" /> <Compile Include="Bit\IBitManager.cs" /> + <Compile Include="Build\BuildType.cs" /> + <Compile Include="Build\IBuildProvider.cs" /> <Compile Include="Connection\DefaultMachineProvider.cs" /> <Compile Include="Connection\IMachineProvider.cs" /> <Compile Include="Connection\MachineOperatorChangedEventArgs.cs" /> @@ -158,6 +179,9 @@ <Compile Include="Converters\EventTypeDescriptionConverter.cs" /> <Compile Include="Converters\EventTypeTitleConverter.cs" /> <Compile Include="Converters\HeightToOpacityConverter.cs" /> + <Compile Include="Converters\BuildTypeToVisibilityInverseConverter.cs" /> + <Compile Include="Converters\BuildTypeToVisibilityConverter.cs" /> + <Compile Include="Converters\IsEurekaToBooleanConverter.cs" /> <Compile Include="DataStore\DefaultDataStoreService.cs" /> <Compile Include="DataStore\IDataStoreService.cs" /> <Compile Include="ExtensionMethods\IListExtensions.cs" /> @@ -378,6 +402,24 @@ <None Include="app.config"> <SubType>Designer</SubType> </None> + <Resource Include="Fonts\Poppins-Black.ttf" /> + <Resource Include="Fonts\Poppins-BlackItalic.ttf" /> + <Resource Include="Fonts\Poppins-Bold.ttf" /> + <Resource Include="Fonts\Poppins-BoldItalic.ttf" /> + <Resource Include="Fonts\Poppins-ExtraBold.ttf" /> + <Resource Include="Fonts\Poppins-ExtraBoldItalic.ttf" /> + <Resource Include="Fonts\Poppins-ExtraLight.ttf" /> + <Resource Include="Fonts\Poppins-ExtraLightItalic.ttf" /> + <Resource Include="Fonts\Poppins-Italic.ttf" /> + <Resource Include="Fonts\Poppins-Light.ttf" /> + <Resource Include="Fonts\Poppins-LightItalic.ttf" /> + <Resource Include="Fonts\Poppins-Medium.ttf" /> + <Resource Include="Fonts\Poppins-MediumItalic.ttf" /> + <Resource Include="Fonts\Poppins-Regular.ttf" /> + <Resource Include="Fonts\Poppins-SemiBold.ttf" /> + <Resource Include="Fonts\Poppins-SemiBoldItalic.ttf" /> + <Resource Include="Fonts\Poppins-Thin.ttf" /> + <Resource Include="Fonts\Poppins-ThinItalic.ttf" /> <None Include="packages.config" /> <None Include="Properties\Settings.settings"> <Generator>SettingsSingleFileGenerator</Generator> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Publisher.UI/MainWindow.xaml b/Software/Visual_Studio/PPC/Tango.PPC.Publisher.UI/MainWindow.xaml index 5697f2027..1c730bd9f 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Publisher.UI/MainWindow.xaml +++ b/Software/Visual_Studio/PPC/Tango.PPC.Publisher.UI/MainWindow.xaml @@ -57,6 +57,7 @@ <ComboBox Margin="20 0 0 0" SelectedItem="{Binding Options.BuildConfig}" SelectedIndex="0"> <sys:String>Release</sys:String> <sys:String>Debug</sys:String> + <sys:String>Eureka</sys:String> </ComboBox> </DockPanel> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Publisher.UI/MainWindow.xaml.cs b/Software/Visual_Studio/PPC/Tango.PPC.Publisher.UI/MainWindow.xaml.cs index 4d062d5af..fb33f246f 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Publisher.UI/MainWindow.xaml.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Publisher.UI/MainWindow.xaml.cs @@ -14,6 +14,7 @@ using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; +using Tango.PPC.Common.Build; using Tango.PPC.Common.Publish; using Tango.SQLExaminer; @@ -24,9 +25,21 @@ namespace Tango.PPC.Publisher.UI /// </summary> public partial class MainWindow : Window { + private bool _isEureka; + public MainWindow() { +#if Eureka + _isEureka = true; +#endif + InitializeComponent(); + + if (_isEureka) + { + Title = "Eureka Publisher"; + } + DataContext = new MainWindowVM(); } diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Publisher.UI/MainWindowVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.Publisher.UI/MainWindowVM.cs index 4e3f5c6cd..39d8c9b18 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Publisher.UI/MainWindowVM.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Publisher.UI/MainWindowVM.cs @@ -131,14 +131,22 @@ namespace Tango.PPC.Publisher.UI public RelayCommand FirmwareUpgradePackageBrowseCommand { get; set; } + public bool IsEureka { get; set; } + public MainWindowVM() { +#if Eureka + IsEureka = true; +#endif + _client = new PPCWebClient(); var settings = SettingsManager.Default.GetOrCreate<PublisherSettings>(); Options = settings.Options; _publisher = new PPCPublisher(Options); + _publisher.IsEureka = IsEureka; + _publisher.PublishProgress += _publisher_PublishProgress; ProvisionSequenceItemsView = CollectionViewSource.GetDefaultView(Options.Synchronization.ProvisionSequenceItems); diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Publisher.UI/Tango.PPC.Publisher.UI.csproj b/Software/Visual_Studio/PPC/Tango.PPC.Publisher.UI/Tango.PPC.Publisher.UI.csproj index 778117469..be3bce7d8 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Publisher.UI/Tango.PPC.Publisher.UI.csproj +++ b/Software/Visual_Studio/PPC/Tango.PPC.Publisher.UI/Tango.PPC.Publisher.UI.csproj @@ -48,6 +48,15 @@ <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Eureka|AnyCPU' "> + <PlatformTarget>AnyCPU</PlatformTarget> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>..\..\Build\PPC\Debug\</OutputPath> + <DefineConstants>TRACE;Eureka</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> <ItemGroup> <Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> <HintPath>..\..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.dll</HintPath> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/App.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/App.xaml index 7addfdd13..38a5b91b2 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/App.xaml +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/App.xaml @@ -14,11 +14,13 @@ <!--Common--> <ResourceDictionary Source="pack://application:,,,/Tango.PPC.Common;component/Resources/Merged.xaml" /> + <ResourceDictionary Source="pack://application:,,,/Tango.PPC.Common;component/Resources/Fonts.xaml" /> <!--Local--> <ResourceDictionary Source="Resources/Colors.xaml"></ResourceDictionary> <ResourceDictionary Source="Resources/Fonts.xaml"></ResourceDictionary> <ResourceDictionary Source="Resources/Styles.xaml"></ResourceDictionary> + <ResourceDictionary Source="Resources/Graphs.xaml" /> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/App.xaml.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/App.xaml.cs index e478dba77..4dab04327 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/App.xaml.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/App.xaml.cs @@ -3,12 +3,14 @@ using System.Collections.Generic; using System.Configuration; using System.Data; using System.Diagnostics; +using System.Globalization; using System.IO; using System.Linq; using System.Net; using System.Threading; using System.Threading.Tasks; using System.Windows; +using System.Windows.Markup; using Tango.BL; using Tango.Core; using Tango.Core.DI; @@ -52,9 +54,21 @@ namespace Tango.PPC.UI { Debugger.Launch(); } - StartupArgs = e.Args; + //Set culture info. + /* var enUSCulture = new CultureInfo("en-US") + { NumberFormat = { NumberDecimalSeparator = "." } }; + + Thread.CurrentThread.CurrentCulture = enUSCulture; + Thread.CurrentThread.CurrentUICulture = enUSCulture; + CultureInfo.DefaultThreadCurrentCulture = enUSCulture; + CultureInfo.DefaultThreadCurrentUICulture = enUSCulture; + + FrameworkElement.LanguageProperty.OverrideMetadata( + typeof(FrameworkElement), + new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));*/ + //LogManager.RegisterLogger(new ConsoleLogger("Tango PPC Debug")); LogManager.RegisterLogger(new FileLogger() { diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Build/DefaultBuildProvider.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Build/DefaultBuildProvider.cs new file mode 100644 index 000000000..599447c95 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Build/DefaultBuildProvider.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.PPC.Common.Application; +using Tango.PPC.Common.Build; + +namespace Tango.PPC.UI.Build +{ + public class DefaultBuildProvider : IBuildProvider + { + public BuildType BuildType { get; internal set; } + + public bool IsEureka + { + get { return BuildType == BuildType.Eureka; } + } + + public string BuildName => BuildType == BuildType.Eureka ? "Twine X4" : "PPC"; + + public DefaultBuildProvider() + { + + if (App.StartupArgs != null && App.StartupArgs.Contains("eureka_build")) + { + BuildType = BuildType.Eureka; + } +#if Eureka + BuildType = BuildType.Eureka; +#endif + } + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Controls/JobOutlineControl.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Controls/JobOutlineControl.cs new file mode 100644 index 000000000..a22afe3ea --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Controls/JobOutlineControl.cs @@ -0,0 +1,327 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Media; +using System.Windows.Shapes; +using Tango.PMR.Printing; +using Tango.Touch.Controls; + +namespace Tango.PPC.UI.Controls +{ + public class JobOutlineControl : Control + { + + #region Members + + private Size _sizeControl = new Size(0, 0); + ScrollViewer _parentScrollViewer = null; + public struct LevelOffset + { + public const double level_0 = 0.0; + public const double level_1 = 10.0; + public const double level_2 = 20.0; + public const double level_3 = 37.0; + public const double level_4 = 50.0; + public const double level_5 = 60.0; + public const double level_6 = 77.0; + public const double level_7 = 90.0; + public const double level_8 = 100.0; + } + private double _verticalOffset = 0; + private double _viewportHeight = 0; + private const double HEADER_FONT_HEIGHT = 35; + private const double TITLE_FONT_HEIGHT = 22; + private const double SUB_TITLE_FONT_HEIGHT = 19; + private const double NORMAL_FONT_HEIGHT = 17; + private const double WIDTH = 330; + + #endregion members + + public JobOutlineControl() : base() + { + DataContextChanged += JobOutlineControl_DataContextChanged; + Width = WIDTH; + } + + private void JobOutlineControl_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e) + { + if (DataContext == null) + { + return; + } + + if (_parentScrollViewer != null) + { + _parentScrollViewer.ScrollToTop(); + } + + InvalidateVisual(); + } + + #region events + + private void ScrollViewer_ScrollChanged(object sender, ScrollChangedEventArgs e) + { + if (e.VerticalChange == 0.0) + return; + + _verticalOffset = _parentScrollViewer.VerticalOffset; + _viewportHeight = _parentScrollViewer.ViewportHeight; + InvalidateVisual(); + } + #endregion events + + #region render + protected override void OnRender(DrawingContext drawingContext) + { + base.OnRender(drawingContext); + + if (!(DataContext is JobTicket job)) return; + if (_parentScrollViewer == null) + { + _parentScrollViewer = this.FindAncestor<ScrollViewer>(); + _parentScrollViewer.ScrollChanged -= ScrollViewer_ScrollChanged; + _parentScrollViewer.ScrollChanged += ScrollViewer_ScrollChanged; + } + else if (_viewportHeight == 0) + { + _viewportHeight = _parentScrollViewer.ActualHeight; + } + _sizeControl = new Size(); + _sizeControl.Height += 10; + DrawHeaderText(drawingContext, "JOB OUTLINE", 30, LevelOffset.level_0); + _sizeControl.Height += HEADER_FONT_HEIGHT; + + _sizeControl.Height += 20; + DrawHeaderText(drawingContext, "BASIC", 17, LevelOffset.level_0); + _sizeControl.Height += TITLE_FONT_HEIGHT; + _sizeControl.Height += 5.0; + var basicProps = GetNameValueList(job); + foreach (var prop in basicProps) + { + DrawNameValueText(drawingContext, prop, LevelOffset.level_1, TouchIconKind.Pencil); + _sizeControl.Height += NORMAL_FONT_HEIGHT; + } + //JobTicket.Spool + if (job.Spool != null) + { + _sizeControl.Height += 20; + DrawHeaderText(drawingContext, "SPOOL", 17, LevelOffset.level_0); + _sizeControl.Height += TITLE_FONT_HEIGHT; + _sizeControl.Height += 5.0; + basicProps = GetNameValueList(job.Spool); + foreach (var prop in basicProps) + { + DrawNameValueText(drawingContext, prop, LevelOffset.level_1, TouchIconKind.Pencil); + _sizeControl.Height += NORMAL_FONT_HEIGHT; + } + } + //JobTicket.ProcessParameters + if (job.ProcessParameters != null) + { + _sizeControl.Height += 20; + DrawHeaderText(drawingContext, "PROCESS PARAMETERS", 17, LevelOffset.level_0); + _sizeControl.Height += TITLE_FONT_HEIGHT; + _sizeControl.Height += 5.0; + basicProps = GetNameValueList(job.ProcessParameters); + foreach (var prop in basicProps) + { + DrawNameValueText(drawingContext, prop, LevelOffset.level_1, TouchIconKind.Settings); + _sizeControl.Height += NORMAL_FONT_HEIGHT; + } + } + //JobTicket.ThreadParameters + if (job.ThreadParameters != null) + { + _sizeControl.Height += 20; + DrawHeaderText(drawingContext, "THREAD PARAMETERS", 17, LevelOffset.level_0); + _sizeControl.Height += TITLE_FONT_HEIGHT; + _sizeControl.Height += 5.0; + basicProps = GetNameValueList(job.ThreadParameters); + foreach (var prop in basicProps) + { + DrawNameValueText(drawingContext, prop, LevelOffset.level_1, TouchIconKind.Settings); + _sizeControl.Height += NORMAL_FONT_HEIGHT; + } + } + //JobTicket.HeadCleaningParameters + if (job.HeadCleaningParameters != null) + { + _sizeControl.Height += 20; + DrawHeaderText(drawingContext, "HEAD CLEANING PARAMETERS", 17, LevelOffset.level_0); + _sizeControl.Height += TITLE_FONT_HEIGHT; + _sizeControl.Height += 5.0; + basicProps = GetNameValueList(job.HeadCleaningParameters); + foreach (var prop in basicProps) + { + DrawNameValueText(drawingContext, prop, LevelOffset.level_1, TouchIconKind.Settings); + _sizeControl.Height += NORMAL_FONT_HEIGHT; + } + } + //JobTicket.BtsrParameters + if (job.BtsrParameters != null) + { + _sizeControl.Height += 20; + DrawHeaderText(drawingContext, "BTSR PARAMETERS", 17, LevelOffset.level_0); + _sizeControl.Height += TITLE_FONT_HEIGHT; + _sizeControl.Height += 5.0; + basicProps = GetNameValueList(job.BtsrParameters); + foreach (var prop in basicProps) + { + DrawNameValueText(drawingContext, prop, LevelOffset.level_1, TouchIconKind.Settings); + _sizeControl.Height += NORMAL_FONT_HEIGHT; + } + } + //JobTicket.Segments + if (job.Segments != null) + { + _sizeControl.Height += 20; + DrawHeaderText(drawingContext, "SEGMENTS", 17, LevelOffset.level_0); + _sizeControl.Height += TITLE_FONT_HEIGHT; + _sizeControl.Height += 10.0; + int index = 0; + foreach (JobSegment seg in job.Segments) + { + DrawHeaderText(drawingContext, string.Format("#{0} SEGMENT", ++index), 14, LevelOffset.level_1); + _sizeControl.Height += SUB_TITLE_FONT_HEIGHT; + basicProps = GetNameValueList(seg); + foreach (var prop in basicProps) + { + DrawNameValueText(drawingContext, prop, LevelOffset.level_2, TouchIconKind.Pencil); + _sizeControl.Height += NORMAL_FONT_HEIGHT; + } + //BrushStops + DrawHeaderText(drawingContext, "BRUSH STOPS", 12, LevelOffset.level_3); + _sizeControl.Height += NORMAL_FONT_HEIGHT; + int indexBrush = 0; + foreach (JobBrushStop brushstop in seg.BrushStops) + { + _sizeControl.Height += 5.0; + DrawHeaderText(drawingContext, string.Format("#{0} STOP", ++indexBrush), 11, LevelOffset.level_4); + _sizeControl.Height += NORMAL_FONT_HEIGHT; + var brushStops = GetNameValueList(brushstop); + foreach (var brushstopprop in brushStops) + { + DrawNameValueText(drawingContext, brushstopprop, LevelOffset.level_5, TouchIconKind.Pencil); + _sizeControl.Height += NORMAL_FONT_HEIGHT; + } + DrawHeaderText(drawingContext, "DISPENSERS", 12, LevelOffset.level_6); + _sizeControl.Height += NORMAL_FONT_HEIGHT; + _sizeControl.Height += 5.0; + int indexDispenser = 0; + foreach (JobDispenser disp in brushstop.Dispensers) + { + DrawHeaderText(drawingContext, string.Format("#{0} DISPENSER", ++indexDispenser), 11, LevelOffset.level_6); + _sizeControl.Height += NORMAL_FONT_HEIGHT; + var dispProperties = GetNameValueList(disp); + foreach (var dispprop in dispProperties) + { + DrawNameValueText(drawingContext, dispprop, LevelOffset.level_7, TouchIconKind.ArrowRightBoldCircle); + _sizeControl.Height += NORMAL_FONT_HEIGHT; + } + } + } + } + } + + if (Height != _sizeControl.Height) + { + Height = _sizeControl.Height; + } + } + public IEnumerable<Tuple<String, String>> GetNameValueList(object value) + { + if (value != null) + { + var properties = value.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance).Where(x => (!x.PropertyType.IsClass && !typeof(IEnumerable).IsAssignableFrom(x.PropertyType)) || x.PropertyType == typeof(String)).ToList(); + return properties.Select(x => new Tuple<string, string>(x.Name, x.GetValue(value).ToString())); + } + else + { + return null; + } + } + #endregion render + + #region drawing + protected void DrawNameValueText(DrawingContext drawingContext, Tuple<string, string> text, double levelOfOffset, TouchIconKind? icon) + { + if (IsInViewPort()) + { + FormattedText formattedName = new FormattedText(text.Item1 + ": ", System.Globalization.CultureInfo.InvariantCulture, System.Windows.FlowDirection.LeftToRight, new Typeface(this.FontFamily, FontStyles.Normal, FontWeights.Normal, FontStretches.Normal), + 12, Foreground); + DrawIconTextIfVisible(drawingContext, levelOfOffset, formattedName, icon); + double widthOfNameText = formattedName.WidthIncludingTrailingWhitespace + 17 + levelOfOffset;//17 pix for draw icon before text + + FormattedText formattedValue = new FormattedText(text.Item2, System.Globalization.CultureInfo.InvariantCulture, System.Windows.FlowDirection.LeftToRight, new Typeface(this.FontFamily, FontStyles.Normal, FontWeights.SemiBold, FontStretches.Normal), + 12, Foreground); + DrawIconTextIfVisible(drawingContext, widthOfNameText, formattedValue); + _sizeControl.Width = Math.Max(_sizeControl.Width, (widthOfNameText + formattedValue.WidthIncludingTrailingWhitespace)); + } + } + + private bool IsInViewPort() + { + return (_sizeControl.Height >= _verticalOffset && _sizeControl.Height <= (_verticalOffset + _viewportHeight + 5)); + } + + protected void DrawHeaderText(DrawingContext drawingContext, string text, int fontSize, double levelOfOffset) + { + if (IsInViewPort()) + { + FormattedText formattedtext = new FormattedText(text, System.Globalization.CultureInfo.InvariantCulture, System.Windows.FlowDirection.LeftToRight, new Typeface(this.FontFamily, FontStyles.Normal, FontWeights.SemiBold, FontStretches.Normal), + fontSize, Foreground); + DrawIconTextIfVisible(drawingContext, levelOfOffset, formattedtext); + _sizeControl.Width = Math.Max(_sizeControl.Width, (formattedtext.Width + levelOfOffset)); + } + } + + private void DrawIconTextIfVisible(DrawingContext drawingContext, double levelOfOffset, FormattedText formattedText, TouchIconKind? icon = null) + { + if (icon is TouchIconKind) + { + DrawIcon(drawingContext, (TouchIconKind)icon, new Point(levelOfOffset, _sizeControl.Height)); + levelOfOffset += 17; + } + drawingContext.DrawText(formattedText, new Point(levelOfOffset, _sizeControl.Height)); + } + private void DrawIcon(DrawingContext drawingContext, TouchIconKind kind, Point point) + { + GeometryGroup group = GetGeometryByIcon(kind); + SetGeometryPosition(group, point); + drawingContext.DrawGeometry(Foreground, new Pen(Brushes.White, 1), group); + + } + private GeometryGroup GetGeometryByIcon(TouchIconKind kind) + { + Geometry geometry = Geometry.Parse(TouchIcon.Icons[kind]); + GeometryGroup group = new GeometryGroup(); + group.Children.Add(geometry); + + TransformGroup tg = new TransformGroup(); + tg.Children.Add(new ScaleTransform() + { + ScaleX = 10d / geometry.Bounds.Width, + ScaleY = 10d / geometry.Bounds.Height, + }); + tg.Children.Add(new TranslateTransform() { }); + + group.Transform = tg; + return group; + } + private void SetGeometryPosition(GeometryGroup group, Point point) + { + TransformGroup tg = group.Transform as TransformGroup; + (tg.Children[1] as TranslateTransform).X = point.X; + (tg.Children[1] as TranslateTransform).Y = point.Y + 1; + } + #endregion drawing + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Controls/RunningJobViewerEureka.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Controls/RunningJobViewerEureka.xaml new file mode 100644 index 000000000..dfbd47514 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Controls/RunningJobViewerEureka.xaml @@ -0,0 +1,101 @@ +<UserControl x:Class="Tango.PPC.UI.Controls.RunningJobViewerEureka" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:touch="clr-namespace:Tango.Touch.Controls;assembly=Tango.Touch" + xmlns:converters="clr-namespace:Tango.PPC.UI.Converters" + xmlns:local="clr-namespace:Tango.PPC.UI.Controls" + xmlns:enumerations="clr-namespace:Tango.BL.Enumerations;assembly=Tango.BL" + mc:Ignorable="d" + Name="RunningJobViewerEurekaContr" + d:DesignHeight="60" d:DesignWidth="500" Height="38" d:DataContext="{d:DesignInstance Type=local:RunningJobViewerEureka, IsDesignTimeCreatable=False}"> + <UserControl.Resources> + <converters:DoubleWidthConverter x:Key="DoubleWidthConverter" /> + <converters:ProgressBorderWidthConverter x:Key="ProgressBorderWidthConverter" /> + </UserControl.Resources> + <Grid> + <touch:SliderContentControl x:Name="slider_control" ThumbColor="{StaticResource TangoPrimaryAccentColor}" + Height="{Binding RelativeSource={RelativeSource AncestorType=local:RunningJobViewerEureka}, Path=HeightSlider}" + ThumbHeight="{Binding RelativeSource={RelativeSource AncestorType=local:RunningJobViewerEureka}, Path=ThumbHeight}" + Width="{Binding RelativeSource={RelativeSource AncestorType=local:RunningJobViewerEureka}, Path=Width}" + + Minimum="{Binding RelativeSource={RelativeSource AncestorType=local:RunningJobViewerEureka}, Path=MinimumValue}" + Maximum="{Binding RelativeSource={RelativeSource AncestorType=local:RunningJobViewerEureka}, Path=MaximumValue}" + MouseDown="SliderContentControl_MouseDown" TouchDown="SliderContentControl_TouchDown" SizeChanged="Slider_control_SizeChanged" > + + + <Border x:Name="brush_border" ClipToBounds="False" CornerRadius="7" Margin="0 0 0 0" Background="{StaticResource TangoLightForegroundBrush}"> + <Border.Clip> + <RectangleGeometry RadiusX="7" RadiusY="7"> + <RectangleGeometry.Rect> + <MultiBinding Converter="{StaticResource WidthHeightToRectConverter}"> + <Binding ElementName="brush_border" Path="ActualWidth" /> + <Binding ElementName="brush_border" Path="ActualHeight" /> + </MultiBinding> + </RectangleGeometry.Rect> + </RectangleGeometry> + </Border.Clip> + <Grid> + <Canvas x:Name="ColorCanvas" Width="{Binding ElementName=slider_control, Path=ActualWidth}" Height="{Binding ElementName=slider_control, Path=ActualHeight}" ClipToBounds="True" > + <Border x:Name="ItemsBorder" ClipToBounds="False" Margin="0 0 0 0" Height="{Binding ElementName=slider_control, Path=ActualHeight}" > + <Grid ClipToBounds="False" HorizontalAlignment="Stretch" > + <Grid.ColumnDefinitions> + <ColumnDefinition Width="Auto"/> + <ColumnDefinition Width="1*"/> + </Grid.ColumnDefinitions> + <Grid> + <ItemsControl HorizontalAlignment="Left" x:Name="SegmentsItemsControl" Width="{Binding ElementName=brush_border, Path=ActualWidth, Converter={StaticResource DoubleWidthConverter}}"> + <ItemsControl.ItemsPanel> + <ItemsPanelTemplate> + <StackPanel Orientation="Horizontal" ></StackPanel> + </ItemsPanelTemplate> + </ItemsControl.ItemsPanel> + <ItemsControl.ItemTemplate> + <DataTemplate> + <Grid> + <Grid.Width> + <MultiBinding Converter="{StaticResource SegmentLengthToWidthConverter}"> + <Binding RelativeSource="{RelativeSource AncestorType=local:RunningJobViewerEureka}" Path="JobUnitLength" Converter="{StaticResource DoubleWidthConverter}"></Binding> + <Binding RelativeSource="{RelativeSource AncestorType=ItemsControl}" Path="ActualWidth"></Binding> + <Binding Path="LengthWithFactor"></Binding> + </MultiBinding> + </Grid.Width> + <Rectangle Fill="{Binding SegmentBrush}"></Rectangle> + </Grid> + </DataTemplate> + </ItemsControl.ItemTemplate> + </ItemsControl> + </Grid> + <Grid Grid.Column="1"> + <ItemsControl x:Name="LastSegmentsItemsControl" HorizontalAlignment="Right" Margin="0 0 0 0" Width="{Binding ElementName=brush_border, Path=ActualWidth}"> + <ItemsControl.ItemsPanel> + <ItemsPanelTemplate> + <StackPanel Orientation="Horizontal" ></StackPanel> + </ItemsPanelTemplate> + </ItemsControl.ItemsPanel> + <ItemsControl.ItemTemplate> + <DataTemplate> + <Grid> + <Grid.Width> + <MultiBinding Converter="{StaticResource SegmentLengthToWidthConverter}"> + <Binding RelativeSource="{RelativeSource AncestorType=UserControl}" Path="RunningJobStatus.CurrentUnitTotalProgress" ></Binding> + <Binding RelativeSource="{RelativeSource AncestorType=ItemsControl}" Path="ActualWidth"></Binding> + <Binding Path="LengthWithFactor"></Binding> + </MultiBinding> + </Grid.Width> + <Rectangle Fill="{Binding SegmentBrush}"></Rectangle> + </Grid> + </DataTemplate> + </ItemsControl.ItemTemplate> + </ItemsControl> + </Grid> + </Grid> + </Border> + </Canvas> + <Rectangle Stroke="{StaticResource TangoGrayBrush}" StrokeThickness="1" StrokeDashArray="5 5 5 5" RadiusX="7" RadiusY="7" /> + </Grid> + </Border> + </touch:SliderContentControl> + </Grid> +</UserControl> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Controls/RunningJobViewerEureka.xaml.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Controls/RunningJobViewerEureka.xaml.cs new file mode 100644 index 000000000..60c5a0346 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Controls/RunningJobViewerEureka.xaml.cs @@ -0,0 +1,287 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Collections.Specialized; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using Tango.BL.Entities; +using Tango.Integration.Operation; +using Tango.Logging; + +namespace Tango.PPC.UI.Controls +{ + /// <summary> + /// Interaction logic for RunningJobViewerEureka.xaml + /// </summary> + public partial class RunningJobViewerEureka : UserControl + { + List<Segment> _segments; + List<Segment> _lastsegments; + + + private double _prevOffset; + private double _addOffset; + private int _prevUnit; + + private double _controlWidth; + + public double ControlWidth + { + get { return _controlWidth; } + set { + _controlWidth = value;//for debug + } + } + + /// <summary> + /// Maybe not necessary! + /// </summary> + public bool IsActive + { + get { return (bool)GetValue(IsActiveProperty); } + set { SetValue(IsActiveProperty, value); } + } + public static readonly DependencyProperty IsActiveProperty = + DependencyProperty.Register("IsActive", typeof(bool), typeof(RunningJobViewerEureka), new PropertyMetadata(false)); + + /// <summary> + /// Gets or sets a value indicating whether summary markers. + /// </summary> + public bool DisplayMarkers + { + get { return (bool)GetValue(DisplayMarkersProperty); } + set { SetValue(DisplayMarkersProperty, value); } + } + public static readonly DependencyProperty DisplayMarkersProperty = + DependencyProperty.Register("DisplayMarkers", typeof(bool), typeof(RunningJobViewerEureka), new PropertyMetadata(true)); + + /// <summary> + /// Gets or sets the job. + /// </summary> + public Job Job + { + get { return (Job)GetValue(JobProperty); } + set { SetValue(JobProperty, value); } + } + public static readonly DependencyProperty JobProperty = + DependencyProperty.Register("Job", typeof(Job), typeof(RunningJobViewerEureka), new PropertyMetadata(null, (d, e) => (d as RunningJobViewerEureka).OnUpdateJob())); + + private void OnUpdateJob() + { + if(Job != null) + { + JobUnitLength = Job.Length; + _segments = Job.EffectiveSegments.ToList(); + + if (Job.NumberOfUnits > 1 && _segments.Count > 0 + && (_segments.Count > 1 || _segments[0].BrushStops.Count > 1)) + { + if (Job.EnableInterSegment && Job.InterSegmentLength > 0) + { + _segments.Add(Job.CreateInterSegment(Job.InterSegmentLength)); + } + _segments.AddRange(Job.EffectiveSegments.ToList()); + if(Job.NumberOfUnits > 2 && Job.EnableInterSegment && Job.InterSegmentLength > 0) + { + _segments.Add(Job.CreateInterSegment(Job.InterSegmentLength)); + JobUnitLength += Job.InterSegmentLength; + //_segments.AddRange(Job.EffectiveSegments.ToList());//third set to use in end printing without intersegment + } + _lastsegments = Job.EffectiveSegments.ToList();; + + IsHasMultipleColorsSegments = true; + } + else + { + IsHasMultipleColorsSegments = false; + } + + SegmentsItemsControl.ItemsSource = _segments; + SegmentsItemsControl.InvalidateVisual(); + LastSegmentsItemsControl.ItemsSource = _lastsegments; + LastSegmentsItemsControl.InvalidateVisual(); + + _prevOffset = _addOffset = 0.0; + _prevUnit = 0; + ItemsBorder.SetValue(Canvas.LeftProperty, 0.0); + ItemsBorder.InvalidateVisual(); + } + } + + /// <summary> + /// Gets or sets the running job status. + /// </summary> + public RunningJobStatus RunningJobStatus + { + get { return (RunningJobStatus)GetValue(RunningJobStatusProperty); } + set { SetValue(RunningJobStatusProperty, value); } + } + public static readonly DependencyProperty RunningJobStatusProperty = + DependencyProperty.Register("RunningJobStatus", typeof(RunningJobStatus), typeof(RunningJobViewerEureka), new PropertyMetadata(null)); + + public double MinimumValue + { + get { return (double)GetValue(MinimumValueProperty); } + set { SetValue(MinimumValueProperty, value); } + } + /// <summary> + /// The minimum value property + /// </summary> + public static readonly DependencyProperty MinimumValueProperty = + DependencyProperty.RegisterAttached("MinimumValue", typeof(double), typeof(RunningJobViewerEureka), + new FrameworkPropertyMetadata(0.0)); + public double MaximumValue + { + get { return (double)GetValue(MaximumValueProperty); } + set + { + SetValue(MaximumValueProperty, value); + } + } + /// <summary> + /// The maximum value property + /// </summary> + public static readonly DependencyProperty MaximumValueProperty = + DependencyProperty.RegisterAttached("MaximumValue", typeof(double), typeof(RunningJobViewerEureka), + new FrameworkPropertyMetadata(100.0, 0)); + + public double SliderValue + { + get { return (double)GetValue(SliderValueProperty); } + set { SetValue(SliderValueProperty, value); } + } + + // Using a DependencyProperty as the backing store for SliderValue. This enables animation, styling, binding, etc... + public static readonly DependencyProperty SliderValueProperty = + DependencyProperty.Register("SliderValue", typeof(double), typeof(RunningJobViewerEureka), new FrameworkPropertyMetadata((double)0.0, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, (d, e) => (d as RunningJobViewerEureka).OnSliderValueChanged())); + + public double HeightSlider + { + get { return (double)GetValue(HeightSliderProperty); } + set { SetValue(HeightSliderProperty, value); } + } + + // Using a DependencyProperty as the backing store for HeightSlider. This enables animation, styling, binding, etc... + public static readonly DependencyProperty HeightSliderProperty = + DependencyProperty.Register("HeightSlider", typeof(double), typeof(RunningJobViewerEureka), new FrameworkPropertyMetadata(0.0)); + + public double ThumbHeight + { + get { return (double)GetValue(ThumbHeightProperty); } + set { SetValue(ThumbHeightProperty, value); } + } + + // Using a DependencyProperty as the backing store for ThumbHeight. This enables animation, styling, binding, etc... + public static readonly DependencyProperty ThumbHeightProperty = + DependencyProperty.Register("ThumbHeight", typeof(double), typeof(RunningJobViewerEureka), new FrameworkPropertyMetadata(0.0)); + + + public bool IsHasMultipleColorsSegments + { + get { return (bool)GetValue(IsHasMultipleColorsSegmentsProperty); } + set { SetValue(IsHasMultipleColorsSegmentsProperty, value); } + } + + // Using a DependencyProperty as the backing store for IsHasMultipleColorsSegments. This enables animation, styling, binding, etc... + public static readonly DependencyProperty IsHasMultipleColorsSegmentsProperty = + DependencyProperty.Register("IsHasMultipleColorsSegments", typeof(bool), typeof(RunningJobViewerEureka), new PropertyMetadata(false)); + + + + public double JobUnitLength + { + get { return (double)GetValue(JobUnitLengthProperty); } + set { SetValue(JobUnitLengthProperty, value); } + } + + // Using a DependencyProperty as the backing store for JobUnitLength. This enables animation, styling, binding, etc... + public static readonly DependencyProperty JobUnitLengthProperty = + DependencyProperty.Register("JobUnitLength", typeof(double), typeof(RunningJobViewerEureka), new FrameworkPropertyMetadata(0.0)); + + + + + /// <summary> + /// Initializes a new instance of the <see cref="RunningJobViewerEureka"/> class. + /// </summary> + public RunningJobViewerEureka() + { + InitializeComponent(); + } + + private void SliderContentControl_MouseDown(object sender, MouseButtonEventArgs e) + { + e.Handled = true; + } + + private void SliderContentControl_TouchDown(object sender, TouchEventArgs e) + { + e.Handled = true; + } + + + private void OnSliderValueChanged() + { + if(slider_control != null) + { + slider_control.Value = SliderValue; + if(RunningJobStatus != null && RunningJobStatus.IsSettingUp == false && IsHasMultipleColorsSegments && ColorCanvas != null && ControlWidth > 0 && RunningJobStatus.CurrentUnitProgress > 0.01 && RunningJobStatus.CurrentUnitTotalProgress > 0) + { + double progress = RunningJobStatus.CurrentUnitProgress; + double total = RunningJobStatus.CurrentUnitTotalProgress; + + int currentUnit = RunningJobStatus.CurrentUnit; + int totalUnits = RunningJobStatus.RemainingUnits + RunningJobStatus.CurrentUnit;//Job.NumberOfUnits; + + double simpleoffset = ((progress / total) * ControlWidth) ; + + double multiplier = (((double)(totalUnits - 1)) / (double)totalUnits); + double offset = simpleoffset * multiplier; + + if(_prevUnit < currentUnit) + { + if(_prevOffset == 0)//resume + { + _prevOffset = ControlWidth * (1-multiplier) * currentUnit; + } + _addOffset = _prevOffset; + } + // Debug.WriteLine($"OnSliderValueChanged Offset: '{offset}' CurrentUnitProgress = {RunningJobStatus.CurrentUnitProgress} progress= {progress} currentUnit = {currentUnit}, total:{total}"); + offset += _addOffset; + + if (offset >= ControlWidth && currentUnit < (Job.NumberOfUnits - 2)) + { + offset -= ControlWidth;//round + // Debug.WriteLine($"OnSliderValueChanged round!!! offset: '{offset}' currentUnit = {currentUnit}, total:{total}"); + } + + //if(currentUnit == (Job.NumberOfUnits - 1)) + //{ + // Debug.WriteLine($"OnSliderValueChanged offset: '{offset}' currentUnit = {currentUnit}. ControlWidth = {ControlWidth} total:{total}"); + //} + _prevOffset = offset; + _prevUnit = currentUnit; + + ItemsBorder.SetValue(Canvas.LeftProperty, (-1) * offset); + ItemsBorder.InvalidateVisual(); + } + } + } + + private void Slider_control_SizeChanged(object sender, SizeChangedEventArgs e) + { + ControlWidth = e.NewSize.Width; + } + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/CollectionToCountConverter.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/CollectionToCountConverter.cs new file mode 100644 index 000000000..b227aa5f8 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/CollectionToCountConverter.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Data; + +namespace Tango.PPC.UI.Converters +{ + public class CollectionToCountConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + var collection = value as System.Collections.ICollection; + if (collection != null) + { + return collection.Count; + } + return 0; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/ComapareModulNameConverter.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/ComapareModulNameConverter.cs new file mode 100644 index 000000000..8ac8a44b0 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/ComapareModulNameConverter.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Data; +using Tango.PPC.Common; + +namespace Tango.PPC.UI.Converters +{ + public class ComapareModulNameConverter : IMultiValueConverter + { + public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) + { + try + { + if (values.Count() == 2) + { + IPPCModule CurrentModule = values[0] as IPPCModule; + string name = System.Convert.ToString(values[1]); + + if (CurrentModule != null) + { + bool compare = String.Compare(CurrentModule.Name, name, true) == 0; + return compare; + } + } + + return "false"; + } + catch + { + return "false"; + } + } + + public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/DoubleWidthConverter.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/DoubleWidthConverter.cs new file mode 100644 index 000000000..3ddcc5f3c --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/DoubleWidthConverter.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Data; + +namespace Tango.PPC.UI.Converters +{ + public class DoubleWidthConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + double length = System.Convert.ToDouble(value); + return length * 2; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/LengthToWeightConverter.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/LengthToWeightConverter.cs new file mode 100644 index 000000000..82a947e97 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/LengthToWeightConverter.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Data; + +namespace Tango.PPC.UI.Converters +{ + public class LengthToWeightConverter : IMultiValueConverter + { + public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) + { + try + { + double length = System.Convert.ToDouble(values[0]); + double coef = System.Convert.ToDouble(values[1]); + int spools = System.Convert.ToInt32(values[2]); + var weight = ((double)length * spools * coef) / (1000 );//(g) + return weight; + } + catch (Exception ex) + { + return "-"; + } + } + + public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/LengthWithSpoolsConverter.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/LengthWithSpoolsConverter.cs new file mode 100644 index 000000000..48e9bce7b --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/LengthWithSpoolsConverter.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Data; + +namespace Tango.PPC.UI.Converters +{ + public class LengthWithSpoolsConverter : IMultiValueConverter + { + public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) + { + try + { + double length = System.Convert.ToDouble(values[0]); + double spools = System.Convert.ToDouble(values[1]); + return length * spools; + } + catch + { + return 0d; + } + } + + public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/LiquidTypeToBrushConverter.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/LiquidTypeToBrushConverter.cs new file mode 100644 index 000000000..75846431f --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/LiquidTypeToBrushConverter.cs @@ -0,0 +1,58 @@ +using System; +using System.Globalization; +using System.Windows; +using System.Windows.Data; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using Tango.BL.Entities; +using Tango.SharedUI.Helpers; + +namespace Tango.PPC.UI.Converters +{ + public class LiquidTypeToBrushConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + if (value is LiquidType) + { + LiquidType type = value as LiquidType; + switch (type.Type) + { + case BL.Enumerations.LiquidTypes.Lubricant: + { + return Application.Current.Resources["TangoLubricantBrush"] as Brush; + } + case BL.Enumerations.LiquidTypes.Cleaner: + { + return Application.Current.Resources["TangoCleanerBrush"] as Brush; + } + case BL.Enumerations.LiquidTypes.Yellow: + return Application.Current.Resources["TangoYellowInkBrush"] as Brush; + case BL.Enumerations.LiquidTypes.Cyan: + return Application.Current.Resources["TangoCyanInkBrush"] as Brush; + case BL.Enumerations.LiquidTypes.Magenta: + return Application.Current.Resources["TangoMagentaInkBrush"] as Brush; + case BL.Enumerations.LiquidTypes.LightCyan: + return Application.Current.Resources["TangoLightCyanInkBrush"] as Brush; + case BL.Enumerations.LiquidTypes.LightMagenta: + return Application.Current.Resources["TangoLightMagentaInkBrush"] as Brush; + case BL.Enumerations.LiquidTypes.LightYellow: + return Application.Current.Resources["TangoLightYellowInkBrush"] as Brush; + } + + + return new SolidColorBrush(type.LiquidTypeColor); + } + return null; + + } + + + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/MidTankLevelToElementRectConverter.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/MidTankLevelToElementRectConverter.cs new file mode 100644 index 000000000..93576a8fb --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/MidTankLevelToElementRectConverter.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Data; +using Tango.Integration.Operation; + +namespace Tango.PPC.UI.Converters +{ + public class MidTankLevelToElementRectConverter : IMultiValueConverter + { + public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) + { + try + { + double actualHeight = (double)values[0]; + double actualWidth = (double)values[1]; + double maxLiters = (double)values[3]; + double midTankLevel = Math.Min((double)values[2], maxLiters); + + var offset = actualHeight - (midTankLevel / maxLiters) * actualHeight; + return new System.Windows.Rect(1, offset, actualWidth, actualHeight); + } + catch + { + return 0d; + } + } + + public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/ProgressBorderWidthConverter.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/ProgressBorderWidthConverter.cs new file mode 100644 index 000000000..3345798eb --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/ProgressBorderWidthConverter.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Data; + +namespace Tango.PPC.UI.Converters +{ + public class ProgressBorderWidthConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + double length = System.Convert.ToDouble(value); + return length * 3; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/ProgressLengthSpoolConverter.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/ProgressLengthSpoolConverter.cs new file mode 100644 index 000000000..377d02d81 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/ProgressLengthSpoolConverter.cs @@ -0,0 +1,62 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Data; + +namespace Tango.PPC.UI.Converters +{ + public class ProgressLengthSpoolConverter : IMultiValueConverter + { + public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) + { + try + { + if (values.Count() == 2) + { + double length = System.Convert.ToDouble(values[0]); + bool forOneSpool = System.Convert.ToBoolean(values[1]); + var totalBy4Spools = (double)length*4;// spools ; + if (forOneSpool) + { + return (double)totalBy4Spools / 4; + } + return totalBy4Spools; + + } + if (values.Count() == 3) + { + double length = System.Convert.ToDouble(values[0]); + bool forOneSpool = System.Convert.ToBoolean(values[1]); + double currentProgresslength = System.Convert.ToDouble(values[2]) ; + + var totalBy4Spools = (double)length * 4; + var currentProgressBy4Spools = (double)currentProgresslength * 4 ; + + int coeff = (int)currentProgressBy4Spools / (int)totalBy4Spools; + var progressCurrent = (coeff == 0 || coeff == 1) ? currentProgressBy4Spools : currentProgressBy4Spools % (coeff * totalBy4Spools);//show for progress + + if (forOneSpool) + { + return (double)progressCurrent / 4; + + } + return progressCurrent; + } + return "-"; + } + catch + { + return "-"; + } + } + + public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/ProgressUnitSpoolConverter.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/ProgressUnitSpoolConverter.cs new file mode 100644 index 000000000..d0cc8284e --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/ProgressUnitSpoolConverter.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Data; + +namespace Tango.PPC.UI.Converters +{ + public class ProgressUnitSpoolConverter : IMultiValueConverter + { + public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) + { + try + { + if (values.Count() == 1)//may be added count of spools + { + int CurrentUnit = System.Convert.ToInt16(values[0]); + + var totalBy4Spools = (double)CurrentUnit * 4;// spools ; + + return totalBy4Spools.ToString(); + + } + + return "-"; + } + catch + { + return "-"; + } + } + + public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/ProgressWeightSpoolConverter.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/ProgressWeightSpoolConverter.cs new file mode 100644 index 000000000..f451fe0d9 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/ProgressWeightSpoolConverter.cs @@ -0,0 +1,67 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Data; + + +namespace Tango.PPC.UI.Converters +{ + public class ProgressWeightSpoolConverter : IMultiValueConverter + { + public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) + { + try + { + if (values.Count() == 3) + { + double length = System.Convert.ToDouble(values[0]); + bool forOneSpool = System.Convert.ToBoolean(values[1]); + double coef = System.Convert.ToDouble(values[2]); + var totalBy4Spools = (double)length * 4;// spools ; + + var weight = ((double)totalBy4Spools * coef) / (1000);//(g) + if (forOneSpool) + { + return (double)weight / 4; + } + return weight; + + } + if (values.Count() == 4) + { + double length = System.Convert.ToDouble(values[0]); + bool forOneSpool = System.Convert.ToBoolean(values[1]); + double currentProgresslength = System.Convert.ToDouble(values[2]); + double coef = System.Convert.ToDouble(values[3]); + + var totalBy4Spools = (double)length * 4; + var currentProgressBy4Spools = (double)currentProgresslength * 4; + + int coeff = (int)currentProgressBy4Spools / (int)totalBy4Spools; + var progressCurrent = (coeff == 0 || coeff == 1) ? currentProgressBy4Spools : currentProgressBy4Spools % (coeff * totalBy4Spools);//show for progress + var weight = ((double)progressCurrent * coef) / (1000);//(g) + if (forOneSpool) + { + return (double)weight / 4; + + } + return weight; + } + return "-"; + } + catch + { + return "-"; + } + } + + public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/StatisticTabToVisibilityConverter.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/StatisticTabToVisibilityConverter.cs new file mode 100644 index 000000000..06c75a999 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/StatisticTabToVisibilityConverter.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Data; +using static Tango.PPC.UI.ViewModels.MachineStatusViewVM; + +namespace Tango.PPC.UI.Converters +{ + public class StatisticTabToVisibilityConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + StatisticTab selected = (StatisticTab)Enum.Parse(typeof(StatisticTab), parameter.ToString()); + StatisticTab statTab = (StatisticTab)value; + + return statTab.Equals(selected) ? Visibility.Visible : Visibility.Hidden; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/GeneralInformationView.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/GeneralInformationView.xaml new file mode 100644 index 000000000..85d905841 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/GeneralInformationView.xaml @@ -0,0 +1,279 @@ +<UserControl x:Class="Tango.PPC.UI.Dialogs.GeneralInformationView" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:touch="clr-namespace:Tango.Touch.Controls;assembly=Tango.Touch" + xmlns:local="clr-namespace:Tango.PPC.UI.Dialogs" + mc:Ignorable="d" + Background="{StaticResource TangoPrimaryBackgroundBrush}" Width="750" Height="1000" d:DataContext="{d:DesignInstance Type=local:GeneralInformationViewVM, IsDesignTimeCreatable=False}"> + <Grid Margin="20"> + <DockPanel> + + <Grid DockPanel.Dock="Bottom" Margin="0 20 0 0"> + <touch:TouchButton HorizontalAlignment="Center" CornerRadius="25" Command="{Binding CloseCommand}" Style="{StaticResource TangoHollowButton}" Width="180" Height="50" VerticalAlignment="Bottom">CLOSE</touch:TouchButton> + </Grid> + + <StackPanel DockPanel.Dock="Top" HorizontalAlignment="Center"> + <Image Source="../Images/logo.png" RenderOptions.BitmapScalingMode="Fant" Width="157" Height="51" Stretch="Uniform" HorizontalAlignment="Center" Margin="0 10 0 10"/> + + </StackPanel> + + <StackPanel Margin="0 20 0 0" Orientation="Vertical"> + <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" Margin="0 30 0 0" FontSize="{StaticResource TangoDialogFontSize}">Machine information:</TextBlock> + <FlowDocumentScrollViewer VerticalScrollBarVisibility="Disabled" Margin="0 10 0 0"> + <FlowDocument> + <Table CellSpacing="2" FontFamily="{StaticResource TangoFlexoFontFamily}"> + <Table.Resources> + <Style TargetType="{x:Type TableRowGroup}"> + <Setter Property="FontSize" Value="{StaticResource TangoDefaultFontSize}"/> + </Style> + + <Style TargetType="TableCell"> + <Setter Property="BorderThickness" Value="0 0 0 1"></Setter> + <Setter Property="BorderBrush" Value="{StaticResource TangoGrayBrush}"></Setter> + <Setter Property="Padding" Value="5"></Setter> + </Style> + </Table.Resources> + <Table.Columns> + <TableColumn Width="165" /> + <TableColumn /> + <TableColumn /> + </Table.Columns> + + <TableRowGroup> + <TableRow> + <TableCell> + <Paragraph> + <TextBlock>Machine S/N:</TextBlock> + </Paragraph> + </TableCell> + + <TableCell> + <Paragraph> + <TextBlock Text="{Binding MachineProvider.Machine.SerialNumber,Mode=OneWay,IsAsync=True,FallbackValue='0000'}"/> + </Paragraph> + </TableCell> + </TableRow> + <TableRow> + <TableCell> + <Paragraph> + <TextBlock>Site:</TextBlock> + </Paragraph> + </TableCell> + + <TableCell> + <Paragraph> + <TextBlock Text="{Binding SiteName,Mode=OneWay,TargetNullValue='N/A',FallbackValue='N/A'}"/> + </Paragraph> + </TableCell> + </TableRow> + + <TableRow> + <TableCell> + <Paragraph> + <TextBlock>Environment:</TextBlock> + </Paragraph> + </TableCell> + + <TableCell> + <Paragraph> + <TextBlock Text="{Binding Settings.DeploymentSlot,Converter={StaticResource EnumToDescriptionConverter},Mode=OneWay,TargetNullValue='N/A',FallbackValue='N/A'}"/> + </Paragraph> + </TableCell> + </TableRow> + <TableRow> + <TableCell> + <Paragraph> + <TextBlock>IP Address:</TextBlock> + </Paragraph> + </TableCell> + + <TableCell> + <Paragraph> + <TextBlock Text="{Binding IPAddress,Mode=OneWay,FallbackValue=0}"></TextBlock> + </Paragraph> + </TableCell> + </TableRow> + <TableRow> + <TableCell> + <Paragraph> + <TextBlock>Up Time:</TextBlock> + </Paragraph> + </TableCell> + + <TableCell> + <Paragraph> + <TextBlock Text="{Binding UpTime,Mode=OneWay,StringFormat=hh\\:mm\\:ss,FallbackValue='00:00:00'}"></TextBlock> + </Paragraph> + </TableCell> + </TableRow> + + + <TableRow> + <TableCell> + <Paragraph> + <TextBlock>Total Dye Time:</TextBlock> + </Paragraph> + </TableCell> + + <TableCell> + <Paragraph> + <TextBlock Text="{Binding TotalDyeTime,Mode=OneWay,FallbackValue=0}"></TextBlock> + </Paragraph> + </TableCell> + </TableRow> + + <TableRow> + <TableCell> + <Paragraph> + <TextBlock>Total Dye Meters:</TextBlock> + </Paragraph> + </TableCell> + + <TableCell> + <Paragraph> + <TextBlock Text="{Binding TotalDyeMeters,Mode=OneWay,FallbackValue=0}"></TextBlock> + </Paragraph> + </TableCell> + </TableRow> + + </TableRowGroup> + </Table> + </FlowDocument> + </FlowDocumentScrollViewer> + <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" Margin="0 20 0 0" FontSize="{StaticResource TangoDialogFontSize}">Installed Software & Firmware:</TextBlock> + <FlowDocumentScrollViewer VerticalScrollBarVisibility="Disabled" Margin="0 10 0 0"> + <FlowDocument> + <Table CellSpacing="2" FontFamily="{StaticResource TangoFlexoFontFamily}"> + <Table.Resources> + <Style TargetType="{x:Type TableRowGroup}"> + <Setter Property="FontSize" Value="{StaticResource TangoDefaultFontSize}"/> + </Style> + + <Style TargetType="TableCell"> + <Setter Property="BorderThickness" Value="0 0 0 1"></Setter> + <Setter Property="BorderBrush" Value="{StaticResource TangoGrayBrush}"></Setter> + <Setter Property="Padding" Value="5"></Setter> + </Style> + </Table.Resources> + <Table.Columns> + <TableColumn Width="165" /> + <TableColumn /> + <TableColumn /> + </Table.Columns> + + <TableRowGroup> + <TableRow> + <TableCell> + <Paragraph> + <TextBlock>Application Version:</TextBlock> + </Paragraph> + </TableCell> + + <TableCell> + <Paragraph> + <TextBlock Text="{Binding ApplicationManager.VersionAndTag,Mode=OneWay,TargetNullValue='N/A',FallbackValue='N/A'}"/> + </Paragraph> + </TableCell> + </TableRow> + <TableRow> + <TableCell> + <Paragraph> + <TextBlock>Main Firmware:</TextBlock> + </Paragraph> + </TableCell> + + <TableCell> + <Paragraph> + <TextBlock Text="{Binding MachineProvider.MachineOperator.DeviceInformation.Version,Mode=OneWay,TargetNullValue='N/A',FallbackValue='N/A'}"/> + </Paragraph> + </TableCell> + </TableRow> + + <TableRow> + <TableCell> + <Paragraph> + <TextBlock>Head Firmware:</TextBlock> + </Paragraph> + </TableCell> + + <TableCell> + <Paragraph> + <TextBlock Text="{Binding HeadFirmware,Mode=OneWay,TargetNullValue='N/A',FallbackValue='N/A'}"/> + </Paragraph> + </TableCell> + </TableRow> + <TableRow> + <TableCell> + <Paragraph> + <TextBlock>Dryer Firmware:</TextBlock> + </Paragraph> + </TableCell> + + <TableCell> + <Paragraph> + <TextBlock Text="{Binding DryerFirmware,Mode=OneWay,TargetNullValue='N/A',FallbackValue='N/A'}"/> + </Paragraph> + </TableCell> + </TableRow> + <TableRow> + <TableCell> + <Paragraph> + <TextBlock>Mid-tanks Firmware:</TextBlock> + </Paragraph> + </TableCell> + + <TableCell> + <Paragraph> + <TextBlock Text="{Binding MidtanksFirmware,Mode=OneWay,TargetNullValue='N/A',FallbackValue='N/A'}"/> + </Paragraph> + </TableCell> + </TableRow> + <TableRow> + <TableCell> + <Paragraph> + <TextBlock>Lubricant Firmware:</TextBlock> + </Paragraph> + </TableCell> + + <TableCell> + <Paragraph> + <TextBlock Text="{Binding LubricantFirmware,Mode=OneWay,TargetNullValue='N/A',FallbackValue='N/A'}"/> + </Paragraph> + </TableCell> + </TableRow> + <TableRow> + <TableCell> + <Paragraph> + <TextBlock Text="Dispensers Firmware:"></TextBlock> + </Paragraph> + </TableCell> + + <TableCell> + <Paragraph> + <TextBlock Text="{Binding DispensersFWFirmware,Mode=OneWay,TargetNullValue='N/A',FallbackValue='N/A'}"/> + </Paragraph> + </TableCell> + </TableRow> + <TableRow> + <TableCell> + <Paragraph> + <TextBlock>Winders Firmware:</TextBlock> + </Paragraph> + </TableCell> + + <TableCell> + <Paragraph> + <TextBlock Text="{Binding WindersFWFirmware,Mode=OneWay,TargetNullValue='N/A',FallbackValue='N/A'}"/> + </Paragraph> + </TableCell> + </TableRow> + </TableRowGroup> + </Table> + </FlowDocument> + </FlowDocumentScrollViewer> + </StackPanel> + </DockPanel> + </Grid> +</UserControl> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/GeneralInformationView.xaml.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/GeneralInformationView.xaml.cs new file mode 100644 index 000000000..3e01d9b93 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/GeneralInformationView.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace Tango.PPC.UI.Dialogs +{ + /// <summary> + /// Interaction logic for GeneralInformationView.xaml + /// </summary> + public partial class GeneralInformationView : UserControl + { + public GeneralInformationView() + { + InitializeComponent(); + } + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/GeneralInformationViewVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/GeneralInformationViewVM.cs new file mode 100644 index 000000000..1fd826af2 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/GeneralInformationViewVM.cs @@ -0,0 +1,240 @@ +using System; +using System.Data.Entity; +using System.Linq; +using Tango.BL; +using Tango.BL.Entities; +using Tango.Core.DI; +using Tango.Integration.Operation; +using Tango.PMR.Diagnostics; +using Tango.PPC.Common; +using Tango.PPC.Common.Application; +using Tango.PPC.Common.Connection; +using Tango.PPC.Common.Notifications; +using Tango.Settings; +using Tango.SharedUI; +using Tango.PPC.Common.UWF; +using Tango.Core.Commands; +using Tango.PPC.Common.OS; +using System.Collections.Generic; +using System.Diagnostics; +using System.Management; +using System.Net; +using System.Net.Sockets; +using System.Text; +using System.Threading.Tasks; +using System.Timers; +using Tango.PMR.FirmwareUpgrade; + +namespace Tango.PPC.UI.Dialogs +{ + public class GeneralInformationViewVM : DialogViewVM + { + [TangoInject] + public IMachineProvider MachineProvider { get; set; } + + [TangoInject] + public IPPCApplicationManager ApplicationManager { get; set; } + + private PPCSettings _settings; + /// <summary> + /// Gets the main PPC settings. + /// </summary> + public PPCSettings Settings + { + get + { + if (_settings == null) + { + _settings = SettingsManager.Default.GetOrCreate<PPCSettings>(); + } + + return _settings; + } + private set { _settings = value; } + } + + public Site CurrentSite { get; set; } + + public String SiteName + { + get { return CurrentSite == null ? "" : CurrentSite.Name; } + } + + private String _ipAddress; + public String IPAddress + { + get { return _ipAddress; } + set { _ipAddress = value; RaisePropertyChangedAuto(); } + } + + private String _totalDyeTime; + public String TotalDyeTime + { + get { return _totalDyeTime; } + set { _totalDyeTime = value; RaisePropertyChangedAuto(); } + } + + private String _totalDyeMeters; + public String TotalDyeMeters + { + get { return _totalDyeMeters; } + set { _totalDyeMeters = value; RaisePropertyChangedAuto(); } + } + + private TimeSpan _upTime; + public TimeSpan UpTime + { + get { return _upTime; } + set { _upTime = value; RaisePropertyChangedAuto(); } + } + private string _headFirmware; + + public string HeadFirmware + { + get { return _headFirmware; } + set { _headFirmware = value; RaisePropertyChangedAuto(); } + } + + private string _dryerFirmware; + + public string DryerFirmware + { + get { return _dryerFirmware; } + set { _dryerFirmware = value; RaisePropertyChangedAuto(); } + } + + private string _MidtanksFirmware; + + public string MidtanksFirmware + { + get { return _MidtanksFirmware; } + set { _MidtanksFirmware = value; RaisePropertyChangedAuto(); } + } + + private string _lubricantFirmware; + + public string LubricantFirmware + { + get { return _lubricantFirmware; } + set { _lubricantFirmware = value; RaisePropertyChangedAuto(); } + } + + private string _dispensersFWFirmware; + + public string DispensersFWFirmware + { + get { return _dispensersFWFirmware; } + set { _dispensersFWFirmware = value; RaisePropertyChangedAuto(); } + } + + private string _windersFWFirmware; + + public string WindersFWFirmware + { + get { return _windersFWFirmware; } + set { _windersFWFirmware = value; RaisePropertyChangedAuto(); } + } + + public GeneralInformationViewVM( IMachineProvider provider, IPPCApplicationManager appManager) + { + MachineProvider = provider; + ApplicationManager = appManager; + InitSite(); + + IPAddress = GetIpv4Address(); + InitTotalDyeProp(); + UpTime = DateTime.Now - ApplicationManager.StartUpDate; + } + public override void OnShow() + { + base.OnShow(); + GetFirmwareVersionDescriptors(); + } + + public async void InitSite() + { + if (CurrentSite == null) + { + var machine = MachineProvider.Machine; + if (machine != null && !String.IsNullOrEmpty(machine.SiteGuid)) + { + using (ObservablesContext db = ObservablesContext.CreateDefault()) + { + var site = (await db.Sites.Where(x => x.Guid == machine.SiteGuid).ToListAsync()).FirstOrDefault(); + CurrentSite = site; + RaisePropertyChanged(nameof(SiteName)); + } + } + } + } + + public String GetIpv4Address() + { + try + { + var host = Dns.GetHostEntry(Dns.GetHostName()); + foreach (var ip in host.AddressList) + { + if (ip.AddressFamily == AddressFamily.InterNetwork) + { + return ip.ToString(); + } + } + return "N/A"; + } + catch (Exception ex) + { + return "N/A"; + } + } + + public async void InitTotalDyeProp() + { + try + { + using (ObservablesContext db = ObservablesContext.CreateDefault()) + { + var jobRuns = await db.JobRuns.Select(x => new { x.StartDate, x.EndDate, x.EndPosition }).ToListAsync(); + + TotalDyeTime = TimeSpan.FromHours(jobRuns.Select(x => x.EndDate - x.StartDate).Sum(x => x.TotalHours)).ToStringUnlimitedHours(); + + int meters = (int)jobRuns.Select(x => x.EndPosition).Sum(); + TotalDyeMeters = $"{meters.ToString("N0")} meters"; + } + } + catch (Exception ex) + { + LogManager.Log(ex, "Error loading machine counters."); + TotalDyeTime = "error!"; + TotalDyeMeters = "error!"; + } + } + + public async void GetFirmwareVersionDescriptors() + { + try + { + var descriptors = await MachineProvider.MachineOperator.GetFirmwareVersionDescriptors(); + + HeadFirmware = GetVersionByFileDescriptor(descriptors, VersionFileDestination.HeadCardSw); + DryerFirmware = GetVersionByFileDescriptor(descriptors, VersionFileDestination.DryerCardSw); + MidtanksFirmware = GetVersionByFileDescriptor(descriptors, VersionFileDestination.MidTankCardSw); + LubricantFirmware = GetVersionByFileDescriptor(descriptors, VersionFileDestination.LubricantCardSw); + DispensersFWFirmware = GetVersionByFileDescriptor(descriptors, VersionFileDestination.PumpCardSw); + WindersFWFirmware = GetVersionByFileDescriptor(descriptors, VersionFileDestination.WinderCardSw); + } + catch (Exception ex) + { + LogManager.Log(ex, "GetFirmwareVersionDescriptors"); + } + } + private String GetVersionByFileDescriptor(List<VersionFileDescriptor> descriptors, VersionFileDestination dtype) + { + var descriptor = descriptors.Where(x => x.Destination == VersionFileDestination.HeadCardSw).FirstOrDefault(); + return descriptor != null ? descriptor.Version : ""; + } + + + } +} + diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/PowerEurekaView.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/PowerEurekaView.xaml new file mode 100644 index 000000000..3ef594046 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/PowerEurekaView.xaml @@ -0,0 +1,66 @@ +<UserControl x:Class="Tango.PPC.UI.Dialogs.PowerEurekaView" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:touch="clr-namespace:Tango.Touch.Controls;assembly=Tango.Touch" + xmlns:local="clr-namespace:Tango.PPC.UI.Dialogs" + mc:Ignorable="d" + Width="500" Height="625" + Background="{StaticResource TangoPrimaryBackgroundBrush}" d:DesignHeight="555" d:DesignWidth="500" d:DataContext="{d:DesignInstance Type=local:PowerEurekaViewVM, IsDesignTimeCreatable=False}"> + <UserControl.Resources> + + <Style TargetType="touch:TouchButton" > + <Setter Property="Foreground" Value="{StaticResource TangoLightForegroundBrush}"></Setter> + <Setter Property="Background" Value="{StaticResource TangoPrimaryAccentBrush}"/> + <Setter Property="Height" Value="50"/> + <Setter Property="Width" Value="165"/> + <Setter Property="CornerRadius" Value="30"/> + <Setter Property="EnableDropShadow" Value="False"/> + <Setter Property="BorderThickness" Value="0"/> + <Setter Property="FontSize" Value="18"/> + <Style.Triggers> + <Trigger Property="IsEnabled" Value="False"> + <Setter Property="Foreground" Value="{StaticResource TangoDisabledForegroundBrush}"></Setter> + <Setter Property="Background" Value="{StaticResource TangoDisabledBackgroundBrush}"></Setter> + </Trigger> + </Style.Triggers> + </Style> + + </UserControl.Resources> + <Grid> + + <Border BorderBrush="{StaticResource TangoMidAccentBrush}" Margin="-24" CornerRadius="40" BorderThickness="1" Background="{StaticResource TangoPrimaryBackgroundBrush}"> + <StackPanel Orientation="Vertical" HorizontalAlignment="Center" Margin="10"> + <DockPanel VerticalAlignment="Top" Margin="0 20 0 18" Width="470"> + <touch:TouchIconButton DockPanel.Dock="Right" VerticalAlignment="Center" Height="25" Width="25" Command="{Binding CloseCommand}" Foreground="{StaticResource TangoDarkForegroundBrush}" RippleBrush="{StaticResource TangoRippleDarkBrush}" Icon="Close" HorizontalAlignment="Right" /> + <TextBlock FontSize="{StaticResource TangoButtonFontSize}" FontWeight="SemiBold" HorizontalAlignment="Center"> Power</TextBlock> + </DockPanel> + <UniformGrid Rows="3" > + <Grid VerticalAlignment="Top" Margin="0 30 0 0"> + <Image Source="../Images/Menu/AppPower_image.png" Stretch="UniformToFill" HorizontalAlignment="Left" Width="120" VerticalAlignment="Center" Margin="0 0 0 0"/> + <touch:TouchButton Margin="0" Command="{Binding MinimizeCommand}">Minimize</touch:TouchButton> + </Grid> + <touch:TouchButton Margin="0 35 0 0" Command="{Binding RestartTabletCommand}">Restart UI</touch:TouchButton> + <touch:TouchButton Margin="0 35 0 0" Command="{Binding CloseAppCommand}">Close</touch:TouchButton> + </UniformGrid> + + <Border Height="2" Width="380" Background="{StaticResource TangoLightBorderBrush}" VerticalAlignment="Bottom" Margin="0 36 0 0" CornerRadius="2"></Border> + + <UniformGrid Rows="3"> + <Grid HorizontalAlignment="Center" Width="470" VerticalAlignment="Top" Margin="0 30 0 0"> + <Image Source="../Images/Menu/Power_image.png" Stretch="UniformToFill" VerticalAlignment="Center" HorizontalAlignment="Left" Height="50" Width="120"/> + <touch:TouchButton Margin="0" Command="{Binding StandByCommand}" HorizontalAlignment="Center">Power Save</touch:TouchButton> + </Grid> + <touch:TouchButton Margin="0 35 0 0" Command="{Binding RestartCommand}">Restart FW</touch:TouchButton> + <touch:TouchButton Margin="0 35 0 0" Content="Turn Off" Command="{Binding TurnOffCommand}" ></touch:TouchButton> + + </UniformGrid> + + </StackPanel> + + + </Border> + + </Grid> +</UserControl> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/PowerEurekaView.xaml.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/PowerEurekaView.xaml.cs new file mode 100644 index 000000000..3279207bd --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/PowerEurekaView.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace Tango.PPC.UI.Dialogs +{ + /// <summary> + /// Interaction logic for PowerEurekaView.xaml + /// </summary> + public partial class PowerEurekaView : UserControl + { + public PowerEurekaView() + { + InitializeComponent(); + } + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/PowerEurekaViewVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/PowerEurekaViewVM.cs new file mode 100644 index 000000000..292c4b2d6 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/PowerEurekaViewVM.cs @@ -0,0 +1,85 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using Tango.Core.Commands; +using Tango.SharedUI; + +namespace Tango.PPC.UI.Dialogs +{ + public class PowerEurekaViewVM : DialogViewVM + { + public enum PowerActionEnum { TurnOff, StandBy, Restart, RestartT, CloseApp }; + + private PowerActionEnum _powerAction; + + public PowerActionEnum PowerAction + { + get { return _powerAction; } + set { + _powerAction = value; + RaisePropertyChangedAuto();} + } + + public RelayCommand TurnOffCommand { get; set;} + public RelayCommand StandByCommand { get; set;} + public RelayCommand RestartCommand { get; set; } + public RelayCommand RestartTabletCommand { get; set; } + public RelayCommand MinimizeCommand { get; set; } + public RelayCommand CloseAppCommand { get; set; } + + + public PowerEurekaViewVM() + { + PowerAction = PowerActionEnum.StandBy; + TurnOffCommand = new RelayCommand( OnTurnOff); + StandByCommand = new RelayCommand(OnStandBy); + RestartCommand = new RelayCommand(OnRestart); + RestartTabletCommand = new RelayCommand(OnRestartTablet); + MinimizeCommand = new RelayCommand(OnMinimize); + CloseAppCommand = new RelayCommand(OnCloseApp); + } + + private void OnCloseApp(object obj) + { + PowerAction = PowerActionEnum.CloseApp; + base.Accept(); + } + + private void OnMinimize(object obj) + { + Application.Current.MainWindow.WindowState = WindowState.Minimized; + } + + private void OnRestartTablet(object obj) + { + PowerAction = PowerActionEnum.RestartT; + base.Accept(); + } + + private void OnRestart(object obj) + { + PowerAction = PowerActionEnum.Restart; + base.Accept(); + } + + private void OnStandBy(object obj) + { + PowerAction = PowerActionEnum.StandBy; + base.Accept(); + } + + private void OnTurnOff(object obj) + { + PowerAction = PowerActionEnum.TurnOff; + base.Accept(); + } + + protected override void Cancel() + { + base.Cancel(); + } + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Graphs/GraphHelper.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Graphs/GraphHelper.cs new file mode 100644 index 000000000..d06ed042a --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Graphs/GraphHelper.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Media; + +namespace Tango.PPC.UI.Graphs +{ + public static class GraphHelper + { + public enum GraphColor + { + White, + Red, + Yellow, + Green, + Orange + } + + public static Color GetGraphColor(GraphColor graphColor) + { + return (Color)Application.Current.Resources[$"Tango_RealTimeGraph_{graphColor.ToString()}"]; + } + + public static Brush GetGraphBrush(GraphColor graphColor) + { + return new SolidColorBrush(GetGraphColor(graphColor)); + } + + public static Color GetGraphStrokeColor() + { + return (Color)Application.Current.Resources["Tango_RealTimeGraph_ForegroundColor"]; + } + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Graphs/RealTimeGraph.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Graphs/RealTimeGraph.cs new file mode 100644 index 000000000..7e653f351 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Graphs/RealTimeGraph.cs @@ -0,0 +1,159 @@ +using RealTimeGraphX; +using System; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Media; + +namespace Tango.PPC.UI.Graphs +{ + public class RealTimeGraph : Control + { + /// <summary> + /// Gets or sets the graph controller. + /// </summary> + public IGraphController Controller + { + get { return (IGraphController)GetValue(ControllerProperty); } + set { SetValue(ControllerProperty, value); } + } + public static readonly DependencyProperty ControllerProperty = + DependencyProperty.Register("Controller", typeof(IGraphController), typeof(RealTimeGraph), new PropertyMetadata(null)); + + + /// <summary> + /// Gets or sets the string format of the y-axis. + /// </summary> + public String StringFormat + { + get { return (String)GetValue(StringFormatProperty); } + set { SetValue(StringFormatProperty, value); } + } + public static readonly DependencyProperty StringFormatProperty = + DependencyProperty.Register("StringFormat", typeof(String), typeof(RealTimeGraph), new PropertyMetadata("0.0")); + + + /// <summary> + /// Gets or sets the display name. + /// </summary> + public String DisplayName + { + get { return (String)GetValue(DisplayNameProperty); } + set { SetValue(DisplayNameProperty, value); } + } + public static readonly DependencyProperty DisplayNameProperty = + DependencyProperty.Register("DisplayName", typeof(String), typeof(RealTimeGraph), new PropertyMetadata(null)); + + + /// <summary> + /// Gets or sets the display units. + /// </summary> + public String DisplayUnits + { + get { return (String)GetValue(DisplayUnitsProperty); } + set { SetValue(DisplayUnitsProperty, value); } + } + public static readonly DependencyProperty DisplayUnitsProperty = + DependencyProperty.Register("DisplayUnits", typeof(String), typeof(RealTimeGraph), new PropertyMetadata(null)); + + /// <summary> + /// Gets or sets the graph label visibility. + /// </summary> + public Visibility GraphLabelVisibility + { + get { return (Visibility)GetValue(GraphLabelVisibilityProperty); } + set { SetValue(GraphLabelVisibilityProperty, value); } + } + public static readonly DependencyProperty GraphLabelVisibilityProperty = + DependencyProperty.Register("GraphLabelVisibility", typeof(Visibility), typeof(RealTimeGraph), new PropertyMetadata(Visibility.Visible)); + + + /// <summary> + /// Gets or sets the vertical ticks. + /// </summary> + public int VerticalTicks + { + get { return (int)GetValue(VerticalTicksProperty); } + set { SetValue(VerticalTicksProperty, value); } + } + public static readonly DependencyProperty VerticalTicksProperty = + DependencyProperty.Register("VerticalTicks", typeof(int), typeof(RealTimeGraph), new PropertyMetadata(10)); + + + /// <summary> + /// Gets or sets the horizontal ticks. + /// </summary> + public int HorizontalTicks + { + get { return (int)GetValue(HorizontalTicksProperty); } + set { SetValue(HorizontalTicksProperty, value); } + } + public static readonly DependencyProperty HorizontalTicksProperty = + DependencyProperty.Register("HorizontalTicks", typeof(int), typeof(RealTimeGraph), new PropertyMetadata(10)); + + public Brush GridLinesBrush + { + get { return (Brush)GetValue(GridLinesBrushProperty); } + set { SetValue(GridLinesBrushProperty, value); } + } + public static readonly DependencyProperty GridLinesBrushProperty = + DependencyProperty.Register("GridLinesBrush", typeof(Brush), typeof(RealTimeGraph), new PropertyMetadata(null)); + + public Visibility HorizontalAxisVisibility + { + get { return (Visibility)GetValue(HorizontalAxisVisibilityProperty); } + set { SetValue(HorizontalAxisVisibilityProperty, value); } + } + public static readonly DependencyProperty HorizontalAxisVisibilityProperty = + DependencyProperty.Register("HorizontalAxisVisibility", typeof(Visibility), typeof(RealTimeGraph), new PropertyMetadata(Visibility.Visible)); + + public double AxisLabelAngle + { + get { return (double)GetValue(AxisLabelAngleProperty); } + set { SetValue(AxisLabelAngleProperty, value); } + } + + // Using a DependencyProperty as the backing store for AxisLabelAngle. This enables animation, styling, binding, etc... + public static readonly DependencyProperty AxisLabelAngleProperty = + DependencyProperty.Register("AxisLabelAngle", typeof(double), typeof(RealTimeGraph), new PropertyMetadata(-30.0)); + + public Visibility VerticalAxisVisibility + { + get { return (Visibility)GetValue(VerticalAxisVisibilityProperty); } + set { SetValue(VerticalAxisVisibilityProperty, value); } + } + public static readonly DependencyProperty VerticalAxisVisibilityProperty = + DependencyProperty.Register("VerticalAxisVisibility", typeof(Visibility), typeof(RealTimeGraph), new PropertyMetadata(Visibility.Visible)); + + public Visibility CurrentValueVisibility + { + get { return (Visibility)GetValue(CurrentValueVisibilityProperty); } + set { SetValue(CurrentValueVisibilityProperty, value); } + } + public static readonly DependencyProperty CurrentValueVisibilityProperty = + DependencyProperty.Register("CurrentValueVisibility", typeof(Visibility), typeof(RealTimeGraph), new PropertyMetadata(Visibility.Collapsed)); + + public double CurrentValueFontSize + { + get { return (double)GetValue(CurrentValueFontSizeProperty); } + set { SetValue(CurrentValueFontSizeProperty, value); } + } + public static readonly DependencyProperty CurrentValueFontSizeProperty = + DependencyProperty.Register("CurrentValueFontSize", typeof(double), typeof(RealTimeGraph), new PropertyMetadata(25.0)); + + public Thickness CurrentValueMargin + { + get { return (Thickness)GetValue(CurrentValueMarginProperty); } + set { SetValue(CurrentValueMarginProperty, value); } + } + public static readonly DependencyProperty CurrentValueMarginProperty = + DependencyProperty.Register("CurrentValueMargin", typeof(Thickness), typeof(RealTimeGraph), new PropertyMetadata(new Thickness(20))); + + /// <summary> + /// Initializes the <see cref="RealTimeGraph"/> class. + /// </summary> + static RealTimeGraph() + { + DefaultStyleKeyProperty.OverrideMetadata(typeof(RealTimeGraph), new FrameworkPropertyMetadata(typeof(RealTimeGraph))); + } + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Graphs/RealTimeGraph.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Graphs/RealTimeGraph.xaml new file mode 100644 index 000000000..6d50c4969 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Graphs/RealTimeGraph.xaml @@ -0,0 +1,106 @@ +<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:realTimeGraphX="clr-namespace:RealTimeGraphX.WPF;assembly=RealTimeGraphX.WPF" + xmlns:local="clr-namespace:Tango.PPC.UI.Graphs"> + + <BitmapImage x:Key="PPC_Screw" UriSource="../Images/screw.png" /> + + <Style TargetType="{x:Type local:RealTimeGraph}"> + <Setter Property="BorderThickness" Value="1"></Setter> + <Setter Property="BorderBrush" Value="{StaticResource Tango_RealTimeGraph_OuterBorderBrush}"></Setter> + <Setter Property="Padding" Value="20 20 30 20"></Setter> + <Setter Property="FontSize" Value="11"></Setter> + <Setter Property="Foreground" Value="{StaticResource Tango_RealTimeGraph_ForegroundBrush}"></Setter> + <Setter Property="Background" Value="{StaticResource Tango_RealTimeGraph_BackgroundBrush}"></Setter> + <Setter Property="GridLinesBrush" Value="{StaticResource Tango_RealTimeGraph_GridLinesBrush}"></Setter> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type local:RealTimeGraph}"> + <Grid> + <Border Background="{TemplateBinding Background}" + BorderBrush="{TemplateBinding BorderBrush}" + BorderThickness="{TemplateBinding BorderThickness}" + CornerRadius="5" + Padding="{TemplateBinding Padding}"> + <Grid> + <Grid.RowDefinitions> + <RowDefinition Height="1*"/> + <RowDefinition Height="Auto"/> + </Grid.RowDefinitions> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="Auto"/> + <ColumnDefinition Width="1*"/> + </Grid.ColumnDefinitions> + + <Grid Grid.Column="1"> + <realTimeGraphX:WpfGraphGridLines Controller="{TemplateBinding Controller}" Foreground="{TemplateBinding GridLinesBrush}" /> + <realTimeGraphX:WpfGraphSurface x:Name="surface" Controller="{TemplateBinding Controller}" BorderThickness="1 0 0 1" BorderBrush="{StaticResource Tango_RealTimeGraph_InnerBorderBrush}" /> + </Grid> + + <realTimeGraphX:WpfGraphAxisControl Width="70" Visibility="{TemplateBinding VerticalAxisVisibility}" Orientation="Vertical" Controller="{TemplateBinding Controller}" StringFormat="{TemplateBinding StringFormat}" Ticks="{TemplateBinding VerticalTicks}" /> + <realTimeGraphX:WpfGraphAxisControl Height="35" Visibility="{TemplateBinding HorizontalAxisVisibility}" Orientation="Horizontal" Controller="{TemplateBinding Controller}" Grid.Column="1" Grid.Row="1" Ticks="{TemplateBinding HorizontalTicks}" StringFormat="hh\:mm\:ss"/> + </Grid> + </Border> + <Image HorizontalAlignment="Left" VerticalAlignment="Top" Margin="8" Source="{StaticResource PPC_Screw}" RenderOptions.BitmapScalingMode="Fant" Width="10" Height="10" /> + <Image HorizontalAlignment="Right" VerticalAlignment="Top" Margin="8" Source="{StaticResource PPC_Screw}" RenderOptions.BitmapScalingMode="Fant" Width="10" Height="10" /> + + <Image HorizontalAlignment="Right" VerticalAlignment="Bottom" Margin="8" Source="{StaticResource PPC_Screw}" RenderOptions.BitmapScalingMode="Fant" Width="10" Height="10" /> + <Image HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="8" Source="{StaticResource PPC_Screw}" RenderOptions.BitmapScalingMode="Fant" Width="10" Height="10" /> + </Grid> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + + <Style TargetType="{x:Type local:RealTimeGraph}" x:Key="PPC_RealTimeGraph_Flat"> + <Setter Property="BorderThickness" Value="1"></Setter> + <Setter Property="BorderBrush" Value="{StaticResource Tango_RealTimeGraph_OuterBorderBrush}"></Setter> + <Setter Property="Padding" Value="0"></Setter> + <Setter Property="FontSize" Value="11"></Setter> + <Setter Property="Foreground" Value="{StaticResource Tango_RealTimeGraph_ForegroundBrush}"></Setter> + <Setter Property="Background" Value="Transparent"></Setter> + <Setter Property="GridLinesBrush" Value="{StaticResource Tango_RealTimeGraph_GridLinesBrush}"></Setter> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type local:RealTimeGraph}"> + <Grid> + <Border Background="{TemplateBinding Background}" + BorderBrush="{TemplateBinding BorderBrush}" + BorderThickness="{TemplateBinding BorderThickness}" + Padding="{TemplateBinding Padding}"> + <Grid> + <Grid.RowDefinitions> + <RowDefinition Height="1*"/> + <RowDefinition Height="Auto"/> + </Grid.RowDefinitions> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="Auto"/> + <ColumnDefinition Width="1*"/> + </Grid.ColumnDefinitions> + + <Grid Grid.Column="1" ClipToBounds="True"> + <realTimeGraphX:WpfGraphGridLines Controller="{TemplateBinding Controller}" Foreground="{TemplateBinding GridLinesBrush}" Rows="5" Columns="0"/> + <realTimeGraphX:WpfGraphSurface Margin="-2 0 0 0" x:Name="surface" Controller="{TemplateBinding Controller}" BorderThickness="0 0 0 0" BorderBrush="{StaticResource Tango_RealTimeGraph_InnerBorderBrush}" /> + </Grid> + + <realTimeGraphX:WpfGraphAxisControl Width="30" Visibility="{TemplateBinding VerticalAxisVisibility}" Orientation="Vertical" Controller="{TemplateBinding Controller}" StringFormat="{TemplateBinding StringFormat}" Ticks="{TemplateBinding VerticalTicks}" /> + <realTimeGraphX:WpfGraphAxisControl Height="38" Visibility="{TemplateBinding HorizontalAxisVisibility}" Orientation="Horizontal" Controller="{TemplateBinding Controller}" Grid.Column="1" Grid.Row="1" Ticks="{TemplateBinding HorizontalTicks}" StringFormat="hh\:mm" AxisLabelAngle="{TemplateBinding AxisLabelAngle}"/> + </Grid> + </Border> + + <Viewbox IsHitTestVisible="False" Stretch="Uniform" Margin="{TemplateBinding CurrentValueMargin}" Visibility="{TemplateBinding CurrentValueVisibility}"> + <Grid Width="200" Height="200"> + <!--<Ellipse Stroke="#38FFFFFF" StrokeThickness="20" />--> + + <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center"> + <TextBlock Opacity="0.8" HorizontalAlignment="Center" VerticalAlignment="Center" FontWeight="SemiBold" FontSize="{TemplateBinding CurrentValueFontSize}" Text="{Binding RelativeSource={RelativeSource Mode=TemplatedParent},Path=Controller.DataSeriesCollection[0].CurrentValue}"></TextBlock> + </StackPanel> + </Grid> + </Viewbox> + </Grid> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + +</ResourceDictionary>
\ No newline at end of file diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Helpers/DpiHelper.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Helpers/DpiHelper.cs new file mode 100644 index 000000000..0d0ac9f1e --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Helpers/DpiHelper.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.PPC.UI.Helpers +{ + public static class DpiHelper + { + private enum ProcessDPIAwareness + { + ProcessDPIUnaware = 0, + ProcessSystemDPIAware = 1, + ProcessPerMonitorDPIAware = 2 + } + + [DllImport("shcore.dll")] + private static extern int SetProcessDpiAwareness(ProcessDPIAwareness value); + + public static void SetDpiAwareness() + { + try + { + if (Environment.OSVersion.Version.Major >= 6) + { + SetProcessDpiAwareness(ProcessDPIAwareness.ProcessPerMonitorDPIAware); + } + } + catch (EntryPointNotFoundException)//this exception occures if OS does not implement this API, just ignore it. + { + } + } + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Icon.ico b/Software/Visual_Studio/PPC/Tango.PPC.UI/Icon.ico Binary files differnew file mode 100644 index 000000000..069f03569 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Icon.ico diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/Events.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/Events.png Binary files differnew file mode 100644 index 000000000..4f76e1c11 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/Events.png diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/Machine outline.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/Machine outline.png Binary files differnew file mode 100644 index 000000000..67c89b46e --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/Machine outline.png diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/Thread.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/Thread.png Binary files differnew file mode 100644 index 000000000..85d0718f0 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/Thread.png diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/input.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/input.png Binary files differnew file mode 100644 index 000000000..77dbab1c9 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/input.png diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/job_copies.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/job_copies.png Binary files differnew file mode 100644 index 000000000..dc3cbf124 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/job_copies.png diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/job_length.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/job_length.png Binary files differnew file mode 100644 index 000000000..97a177ef4 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/job_length.png diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/job_weight.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/job_weight.png Binary files differnew file mode 100644 index 000000000..6eb0a6194 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/job_weight.png diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/output.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/output.png Binary files differnew file mode 100644 index 000000000..53b317042 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/output.png diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/spools.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/spools.png Binary files differnew file mode 100644 index 000000000..8bb977473 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/spools.png diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/thread_type.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/thread_type.png Binary files differnew file mode 100644 index 000000000..1e2523a56 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/thread_type.png diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/ttime_left.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/ttime_left.png Binary files differnew file mode 100644 index 000000000..55622f20f --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/ttime_left.png diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/JobProgressView/clock.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/JobProgressView/clock.png Binary files differnew file mode 100644 index 000000000..80cde5b8b --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/JobProgressView/clock.png diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/JobProgressView/drop.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/JobProgressView/drop.png Binary files differnew file mode 100644 index 000000000..75b215a63 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/JobProgressView/drop.png diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Menu/AppPower_image.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Menu/AppPower_image.png Binary files differnew file mode 100644 index 000000000..e81b56d37 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Menu/AppPower_image.png diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Menu/Power_image.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Menu/Power_image.png Binary files differnew file mode 100644 index 000000000..dcabd96b5 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Menu/Power_image.png diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Menu/restart_t.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Menu/restart_t.png Binary files differnew file mode 100644 index 000000000..92a8ed5e6 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Menu/restart_t.png diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Error.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Error.png Binary files differnew file mode 100644 index 000000000..a5a178bdb --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Error.png diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Feeder1.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Feeder1.png Binary files differnew file mode 100644 index 000000000..bc33bb720 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Feeder1.png diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Feeder2.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Feeder2.png Binary files differnew file mode 100644 index 000000000..aba3e3084 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Feeder2.png diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Feeder3.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Feeder3.png Binary files differnew file mode 100644 index 000000000..1cd0e8026 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Feeder3.png diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Feeder4.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Feeder4.png Binary files differnew file mode 100644 index 000000000..d3072f9ad --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Feeder4.png diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Inks.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Inks.png Binary files differnew file mode 100644 index 000000000..4e3bce00d --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Inks.png diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/JericanRemoved.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/JericanRemoved.png Binary files differnew file mode 100644 index 000000000..4567d5146 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/JericanRemoved.png diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Normal.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Normal.png Binary files differnew file mode 100644 index 000000000..8ddeecbe0 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Normal.png diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Sensors.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Sensors.png Binary files differnew file mode 100644 index 000000000..a47662545 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Sensors.png diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/UpdateInk.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/UpdateInk.png Binary files differnew file mode 100644 index 000000000..742121560 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/UpdateInk.png diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Warning.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Warning.png Binary files differnew file mode 100644 index 000000000..25f0d8de5 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Warning.png diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Waste.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Waste.png Binary files differnew file mode 100644 index 000000000..f12bfd7d4 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Waste.png diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/motor.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/motor.png Binary files differnew file mode 100644 index 000000000..8401a8e30 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/motor.png diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/pr_data.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/pr_data.png Binary files differnew file mode 100644 index 000000000..ebd02a99b --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/pr_data.png diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/pressure.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/pressure.png Binary files differnew file mode 100644 index 000000000..12ade5d92 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/pressure.png diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/temperature.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/temperature.png Binary files differnew file mode 100644 index 000000000..de9b042c4 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/temperature.png diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/screw.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/screw.png Binary files differnew file mode 100644 index 000000000..46a8134fe --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/screw.png diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Intro.wmv b/Software/Visual_Studio/PPC/Tango.PPC.UI/Intro.wmv Binary files differnew file mode 100644 index 000000000..7f4a8dd66 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Intro.wmv diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/MainWindow.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/MainWindow.xaml index 8ce5148b7..7a1d042a3 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/MainWindow.xaml +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/MainWindow.xaml @@ -7,11 +7,11 @@ xmlns:views="clr-namespace:Tango.PPC.UI.Views" mc:Ignorable="d" Title="Tango - PPC" Height="800" Stylus.IsTapFeedbackEnabled="False" Stylus.IsPressAndHoldEnabled="False" Stylus.IsTouchFeedbackEnabled="False" Width="800" WindowStyle="SingleBorderWindow" ResizeMode="CanResize" WindowStartupLocation="CenterScreen" - FontFamily="{StaticResource TangoFlexoFontFamily}" + FontFamily="{StaticResource Poppins}" FontSize="{StaticResource TangoDefaultFontSize}" Foreground="{StaticResource TangoDarkForegroundBrush}" FontWeight="Medium" RenderOptions.BitmapScalingMode="LowQuality" SnapsToDevicePixels="True" UseLayoutRounding="True"> - <Grid x:Name="gridMain"> - <views:MainView/> - </Grid> + <Border x:Name="mainBorder"> + + </Border> </Window> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/MainWindow.xaml.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/MainWindow.xaml.cs index bf621ff2e..92c527134 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/MainWindow.xaml.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/MainWindow.xaml.cs @@ -18,7 +18,12 @@ using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using Tango.Core.DI; +using Tango.PPC.Common; using Tango.PPC.Common.Application; +using Tango.PPC.Common.Build; +using Tango.PPC.UI.Build; +using Tango.PPC.UI.Helpers; +using Tango.Settings; using Tango.Touch.Helpers; namespace Tango.PPC.UI @@ -28,16 +33,82 @@ namespace Tango.PPC.UI /// </summary> public partial class MainWindow : Window { + private DefaultBuildProvider _buildProvider; public static MainWindow Instance { get; private set; } public MainWindow() { Instance = this; + TangoIOC.Default.Unregister<IBuildProvider>(); + + _buildProvider = new DefaultBuildProvider(); + TangoIOC.Default.Register<IBuildProvider, DefaultBuildProvider>(_buildProvider); + //Timeline.DesiredFrameRateProperty.OverrideMetadata(typeof(Timeline),new FrameworkPropertyMetadata { DefaultValue = 30 }); InitializeComponent(); + if (_buildProvider.BuildType == BuildType.Eureka) + { + InitEureka(); + } + else + { + InitTS1800(); + } + + Closing += MainWindow_Closing; + } + + private void InitEureka() + { + Title = "Twine X4"; + + var settings = SettingsManager.Default.GetOrCreate<PPCSettings>(); + + Viewbox viewBox = new Viewbox(); + viewBox.Stretch = Stretch.Uniform; + this.Content = viewBox; + viewBox.Child = new Views.MainEurekaView(); + + var screens = System.Windows.Forms.Screen.AllScreens; + var touch_screen = screens.Last(); + + + bool hasTouch = TouchHelper.IsTouchEnabled() || settings.ForceTouchMode; + + if (!hasTouch) + { + WindowStyle = WindowStyle.SingleBorderWindow; + ResizeMode = ResizeMode.CanResize; + Width = 1280; + Height = 720; + WindowStartupLocation = WindowStartupLocation.CenterScreen; + WindowState = WindowState.Normal; + Topmost = false; // sure? + } + else + { + WindowState = WindowState.Normal; + WindowStyle = WindowStyle.None; + ResizeMode = ResizeMode.NoResize; + Left = screens.Length == 2 ? screens[0].Bounds.Width : 0; + Top = 0; + Width = 1920; + Height = 1080; + WindowStartupLocation = WindowStartupLocation.Manual; + Topmost = false; // sure? + } + + + //App.Current.Resources["TangoPanelMaskColor"] = App.Current.Resources["TangoPanelMaskColorLight"]; + } + + private void InitTS1800() + { + mainBorder.Child = new Views.MainView(); + bool has_touch = false; #if !DESKTOP @@ -74,17 +145,15 @@ namespace Tango.PPC.UI Viewbox viewBox = new Viewbox(); viewBox.Stretch = Stretch.Uniform; this.Content = viewBox; - gridMain.Width = 800; - gridMain.Height = 1280; - viewBox.Child = gridMain; + mainBorder.Width = 800; + mainBorder.Height = 1280; + viewBox.Child = mainBorder; LockAspectRatio(); this.SizeChanged += (x, y) => { LockAspectRatio(); }; } - - Closing += MainWindow_Closing; } private void ForceTouch() diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Manifests/eureka.xml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Manifests/eureka.xml new file mode 100644 index 000000000..d72e75011 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Manifests/eureka.xml @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="utf-8"?> +<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1"> + <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/> + <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> + <security> + <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"> + <!-- UAC Manifest Options + If you want to change the Windows User Account Control level replace the + requestedExecutionLevel node with one of the following. + + <requestedExecutionLevel level="asInvoker" uiAccess="false" /> + <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> + <requestedExecutionLevel level="highestAvailable" uiAccess="false" /> + + Specifying requestedExecutionLevel element will disable file and registry virtualization. + Remove this element if your application requires this virtualization for backwards + compatibility. + --> + <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> + </requestedPrivileges> + </security> + </trustInfo> + + <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> + <application> + <!-- A list of the Windows versions that this application has been tested on + and is designed to work with. Uncomment the appropriate elements + and Windows will automatically select the most compatible environment. --> + + <!-- Windows Vista --> + <!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />--> + + <!-- Windows 7 --> + <!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />--> + + <!-- Windows 8 --> + <!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />--> + + <!-- Windows 8.1 --> + <!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />--> + + <!-- Windows 10 --> + <!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />--> + + </application> + </compatibility> + + <!-- Indicates that the application is DPI-aware and will not be automatically scaled by Windows at higher + DPIs. Windows Presentation Foundation (WPF) applications are automatically DPI-aware and do not need + to opt in. Windows Forms applications targeting .NET Framework 4.6 that opt into this setting, should + also set the 'EnableWindowsFormsHighDpiAutoResizing' setting to 'true' in their app.config. --> + <!-- + <application xmlns="urn:schemas-microsoft-com:asm.v3"> + <windowsSettings> + <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware> + </windowsSettings> + </application> + --> + + <!-- Enable themes for Windows common controls and dialogs (Windows XP and later) --> + <!-- + <dependency> + <dependentAssembly> + <assemblyIdentity + type="win32" + name="Microsoft.Windows.Common-Controls" + version="6.0.0.0" + processorArchitecture="*" + publicKeyToken="6595b64144ccf1df" + language="*" + /> + </dependentAssembly> + </dependency> + --> + +</assembly> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Manifests/eureka_debug.xml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Manifests/eureka_debug.xml new file mode 100644 index 000000000..efc5f8179 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Manifests/eureka_debug.xml @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="utf-8"?> +<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1"> + <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/> + <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> + <security> + <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"> + <!-- UAC Manifest Options + If you want to change the Windows User Account Control level replace the + requestedExecutionLevel node with one of the following. + + <requestedExecutionLevel level="asInvoker" uiAccess="false" /> + <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> + <requestedExecutionLevel level="highestAvailable" uiAccess="false" /> + + Specifying requestedExecutionLevel element will disable file and registry virtualization. + Remove this element if your application requires this virtualization for backwards + compatibility. + --> + <!--<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />--> + </requestedPrivileges> + </security> + </trustInfo> + + <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> + <application> + <!-- A list of the Windows versions that this application has been tested on + and is designed to work with. Uncomment the appropriate elements + and Windows will automatically select the most compatible environment. --> + + <!-- Windows Vista --> + <!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />--> + + <!-- Windows 7 --> + <!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />--> + + <!-- Windows 8 --> + <!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />--> + + <!-- Windows 8.1 --> + <!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />--> + + <!-- Windows 10 --> + <!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />--> + + </application> + </compatibility> + + <!-- Indicates that the application is DPI-aware and will not be automatically scaled by Windows at higher + DPIs. Windows Presentation Foundation (WPF) applications are automatically DPI-aware and do not need + to opt in. Windows Forms applications targeting .NET Framework 4.6 that opt into this setting, should + also set the 'EnableWindowsFormsHighDpiAutoResizing' setting to 'true' in their app.config. --> + <!-- + <application xmlns="urn:schemas-microsoft-com:asm.v3"> + <windowsSettings> + <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware> + </windowsSettings> + </application> + --> + + <!-- Enable themes for Windows common controls and dialogs (Windows XP and later) --> + <!-- + <dependency> + <dependentAssembly> + <assemblyIdentity + type="win32" + name="Microsoft.Windows.Common-Controls" + version="6.0.0.0" + processorArchitecture="*" + publicKeyToken="6595b64144ccf1df" + language="*" + /> + </dependentAssembly> + </dependency> + --> + +</assembly> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Models/JerricanLevelModel.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Models/JerricanLevelModel.cs new file mode 100644 index 000000000..13fa455e5 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Models/JerricanLevelModel.cs @@ -0,0 +1,85 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.BL.Entities; +using Tango.Core; +using Tango.Integration.Operation; + +namespace Tango.PPC.UI.Models +{ + public class JerricanLevelModel : ExtendedObject + { + public double Max { get; set; } + + private double _level; + public double Level + { + get { return _level; } + set { _level = value; RaisePropertyChangedAuto(); RaisePropertyChanged(nameof(IsMidTankLow)); } + } + + private bool _bJerricanPresent; + + public bool JerricanPresent + { + get { return _bJerricanPresent; } + set { + _bJerricanPresent = value; + RaisePropertyChangedAuto(); + } + } + + private bool _fillingTimeoutError; + + public bool FillingTimeoutError + { + get { return _fillingTimeoutError; } + set { _fillingTimeoutError = value; RaisePropertyChangedAuto(); } + } + + private bool _midTankEmpty; + + public bool MidTankEmpty + { + get { return _midTankEmpty; } + set { _midTankEmpty = value; RaisePropertyChangedAuto();} + } + + private bool _midTankRefillPumpActive; + + public bool MidTankRefillPumpActive + { + get { return _midTankRefillPumpActive; } + set { _midTankRefillPumpActive = value; RaisePropertyChangedAuto(); } + } + + public bool IsMidTankLow + { + get { return Level <= 0.5; } + } + + private TimeSpan _remainingTimeoutError_; + public TimeSpan RemainingTimeoutError + { + get { return _remainingTimeoutError_; } + set { _remainingTimeoutError_ = value; RaisePropertyChangedAuto(); RaisePropertyChanged(nameof(HasRemainingTimeoutError)); } + } + + public bool HasRemainingTimeoutError + { + get { return RemainingTimeoutError > TimeSpan.Zero; } + } + + + public IdsPack IDSPack { get; set; } + + public JerricanLevelModel() + { + //RemainingTimeoutError = new TimeSpan(1,2,0); + JerricanPresent = true; + //FillingTimeoutError = MidTankEmpty = MidTankRefillPumpActive = false; + } + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Models/MachineOverviewErrorItem.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Models/MachineOverviewErrorItem.cs new file mode 100644 index 000000000..3925a1752 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Models/MachineOverviewErrorItem.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.Core; + +namespace Tango.PPC.UI.Models +{ + public class MachineOverviewErrorItem : ExtendedObject + { + private bool _isErrorState; + + public bool IsErrorState + { + get { return _isErrorState; } + set { _isErrorState = value; RaisePropertyChangedAuto();} + } + + public MachineOverviewErrorItem() + { + IsErrorState = false; + } + + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Models/MachineOverviewErrorStates.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Models/MachineOverviewErrorStates.cs new file mode 100644 index 000000000..1863b01e1 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Models/MachineOverviewErrorStates.cs @@ -0,0 +1,68 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.Core; + +namespace Tango.PPC.UI.Models +{ + public class MachineOverviewErrorStates : ExtendedObject + { + public ObservableCollection<MachineOverviewErrorItem> Winders { get; set; } + + public ObservableCollection<MachineOverviewErrorItem> Dancers { get; set; } + + public ObservableCollection<MachineOverviewErrorItem> BTSRs { get; set; } + + public MachineOverviewErrorStates() + { + Winders = new ObservableCollection<MachineOverviewErrorItem>(); + Dancers = new ObservableCollection<MachineOverviewErrorItem>(); + BTSRs = new ObservableCollection<MachineOverviewErrorItem>(); + for ( int i = 0; i < 4 ; i++) + { + Winders.Add( new MachineOverviewErrorItem()); + Dancers.Add(new MachineOverviewErrorItem()); + BTSRs.Add(new MachineOverviewErrorItem()); + } + } + + public void UpdateWinders(List<bool> updates) + { + if(!UpdateCollection(Winders, updates)) + { + LogManager.Log("Error in display Winders Errors. Number of Winders In Error is less then 4!"); + } + } + public void UpdateDancers(List<bool> updates) + { + if(!UpdateCollection(Dancers, updates)) + { + LogManager.Log("Error in display Dancers Errors. Number of Dancers In Error is less then 4!"); + } + } + public void UpdateBTSRs(List<bool> updates) + { + if(!UpdateCollection(BTSRs, updates)) + { + LogManager.Log("Error in display BTSRs Errors. Number of BTSRs In Error is less then 4!"); + } + } + + private bool UpdateCollection(ObservableCollection<MachineOverviewErrorItem> collection, List<bool> updates ) + { + if (collection.Count == updates.Count) + { + for (int i = 0; i < collection.Count; i++) + { + collection[i].IsErrorState = updates[i]; + } + return true; + } + return false; + + } + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Models/MachineOverviewItem.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Models/MachineOverviewItem.cs new file mode 100644 index 000000000..42f6bd180 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Models/MachineOverviewItem.cs @@ -0,0 +1,67 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Media; +using Tango.Core; + +namespace Tango.PPC.UI.Models +{ + public class MachineOverviewItem : ExtendedObject + { + private String _displayValue; + public String DisplayValue + { + get { return _displayValue; } + set { _displayValue = value; RaisePropertyChangedAuto(); } + } + + private String _displayMaxValue; + public String DisplayMaxValue + { + get { return _displayMaxValue; } + set { _displayMaxValue = value; RaisePropertyChangedAuto(); } + } + + private String _status; + public String Status + { + get { return _status; } + set { _status = value; RaisePropertyChangedAuto(); } + } + + private Color _color; + public Color Color + { + get { return _color; } + set { _color = value; RaisePropertyChangedAuto(); } + } + + private double _maxValue; + + public double MaxValue + { + get { return _maxValue; } + set { _maxValue = value; RaisePropertyChangedAuto(); } + } + + private double _value; + + public double Value + { + get { return _value; } + set { _value = value; RaisePropertyChangedAuto(); } + } + + public MachineOverviewItem() + { + Color = Colors.Gray; + DisplayValue = "--"; + Value = 0; + MaxValue = 100; + DisplayMaxValue = ""; + } + + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Models/MachineOverviewModel.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Models/MachineOverviewModel.cs new file mode 100644 index 000000000..beba47246 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Models/MachineOverviewModel.cs @@ -0,0 +1,214 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Media; +using Tango.BL.Entities; +using Tango.Core; +using Tango.PMR.Diagnostics; +using Tango.PPC.Common; +using Tango.Settings; + +namespace Tango.PPC.UI.Models +{ + public class MachineOverviewModel : ExtendedObject + { + public static double DryerAirMaxValue = 120.0; + + public MachineOverviewItem DryerZone3 { get; set; } + public MachineOverviewItem DryerAir { get; set; } + public MachineOverviewItem Tunnel { get; set; } + public MachineOverviewItem PumpsPressure { get; set; } + public MachineOverviewItem Lubricant { get; set; } + + private PPCSettings _settings; + /// <summary> + /// Gets the main PPC settings. + /// </summary> + public PPCSettings Settings + { + get + { + if (_settings == null) + { + _settings = SettingsManager.Default.GetOrCreate<PPCSettings>(); + } + + return _settings; + } + private set { _settings = value; } + } + + public MachineOverviewModel() + { + DryerZone3 = new MachineOverviewItem(); + DryerAir = new MachineOverviewItem(); + DryerAir.MaxValue = DryerAirMaxValue; + Tunnel = new MachineOverviewItem(); + PumpsPressure = new MachineOverviewItem(); + PumpsPressure.MaxValue = 6; + Lubricant = new MachineOverviewItem(); + Lubricant.MaxValue = 100; + Lubricant.Value = 100; + } + + public void Update(StartDiagnosticsResponse diagnostics, Rml rml, ProcessParametersTable processParameters) + { + //Dryer Zone 3 + var dryerZone3State = diagnostics.HeatersStates.FirstOrDefault(x => x.HeaterType == HeaterType.EDryerHeater3); + UpdateHeaterItem(DryerZone3, dryerZone3State); + + //Dryer Air + var dryerAirState = diagnostics.Monitors.EuSpare1.FirstOrDefault(); + UpdateDryerAirItem(dryerAirState); + //diagnostics.HeatersStates.FirstOrDefault(x => x.HeaterType == HeaterType.DryerAirHeater); + + + //Tunnel + var tunnelState = diagnostics.HeatersStates.FirstOrDefault(x => x.HeaterType == HeaterType.ETunnelHeater); + UpdateHeaterItem(Tunnel, tunnelState); + + //Pumps Pressure + + //EuDispenser1Pressure + List<double> EuDispensersPressure = new List<double>(); + var EuDispenser1PressureValue = diagnostics.Monitors.EuDispenser1Pressure.FirstOrDefault(); + EuDispensersPressure.Add(EuDispenser1PressureValue); + var EuDispenser2PressureValue = diagnostics.Monitors.EuDispenser2Pressure.FirstOrDefault(); + EuDispensersPressure.Add(EuDispenser2PressureValue); + var EuDispenser3PressureValue = diagnostics.Monitors.EuDispenser3Pressure.FirstOrDefault(); + EuDispensersPressure.Add(EuDispenser3PressureValue); + var EuDispenser4PressureValue = diagnostics.Monitors.EuDispenser4Pressure.FirstOrDefault(); + EuDispensersPressure.Add(EuDispenser4PressureValue); + var EuDispenser5PressureValue = diagnostics.Monitors.EuDispenser5Pressure.FirstOrDefault(); + EuDispensersPressure.Add(EuDispenser5PressureValue); + var EuDispenser6PressureValue = diagnostics.Monitors.EuDispenser6Pressure.FirstOrDefault(); + EuDispensersPressure.Add(EuDispenser6PressureValue); + var EuDispenser7PressureValue = diagnostics.Monitors.EuDispenser7Pressure.FirstOrDefault(); + EuDispensersPressure.Add(EuDispenser7PressureValue); + var EuDispenser8PressureValue = diagnostics.Monitors.EuDispenser8Pressure.FirstOrDefault(); + EuDispensersPressure.Add(EuDispenser8PressureValue); + + var pumpsPressuerValue = EuDispensersPressure.Max();// diagnostics.Monitors.EuInkLinesPressure.SelectMany(x => x.Data).Max(); + UpdatePumpsPressureItem(pumpsPressuerValue); + + + //Lubricant + var lubricantValue = diagnostics.Monitors.EuLubricantCurrent.FirstOrDefault(); + UpdateLubricantItem( rml, lubricantValue); + } + + private void UpdateHeaterItem(MachineOverviewItem item, HeaterState state) + { + if (state != null) + { + + if (state.IsRampingUp && + (state.SetPoint != 0 + && (state.CurrentValue <= (state.SetPoint - 10)))) + { + item.Status = "Heating Up"; + item.Color = Colors.Orange; + item.DisplayValue = $"{state.CurrentValue.ToString("N1")}"; + item.DisplayMaxValue = $"/{state.SetPoint}"; + item.MaxValue = state.SetPoint; + item.Value = state.CurrentValue; + } + else if (state.SetPoint == 0 || (state.CurrentValue >= (state.SetPoint - 10) && state.CurrentValue <= (state.SetPoint + 10))) + { + item.Status = "Operational"; + item.Color = Colors.Green; + item.DisplayValue = $" {state.SetPoint}"; + item.DisplayMaxValue = ""; + if(state.SetPoint == 0 && state.CurrentValue == 0) + { + item.MaxValue = 10; + } + else + { + item.MaxValue = state.SetPoint; + } + item.Value = state.CurrentValue; + } + else if (!state.IsRampingUp && (state.CurrentValue < (state.SetPoint - 10) || state.CurrentValue > (state.SetPoint + 10))) + { + item.Status = "Over-temperature"; + item.Color = Colors.Red; + item.DisplayValue = $"{state.CurrentValue.ToString("N1")}"; + item.DisplayMaxValue = $"/{state.SetPoint}"; + item.MaxValue = state.SetPoint; + item.Value = state.CurrentValue > state.SetPoint? state.SetPoint : state.CurrentValue; + } + else + { + item.Color = Colors.Gray; + item.MaxValue = 100; + item.Value = 0; + item.DisplayMaxValue = ""; + } + } + } + + private void UpdateDryerAirItem(double currentvalue) + { + if (currentvalue < DryerAirMaxValue) + { + DryerAir.Status = "Heating Up"; + DryerAir.Color = Colors.Orange; + DryerAir.DisplayValue = currentvalue.ToString("N1"); + } + else if (currentvalue >= DryerAirMaxValue) + { + DryerAir.Status = "Operational"; + DryerAir.Color = Colors.Green; + DryerAir.DisplayValue = currentvalue.ToString("N1"); + } + DryerAir.Value = currentvalue; + } + + private void UpdatePumpsPressureItem(double maxValue) + { + if (maxValue > 6) + { + PumpsPressure.Status = "Overpressure"; + PumpsPressure.Color = Colors.Red; + PumpsPressure.DisplayValue = maxValue.ToString("N1"); + } + else + { + PumpsPressure.Status = "Operational"; + PumpsPressure.Color = Colors.Green; + PumpsPressure.DisplayValue = maxValue.ToString("N1"); + } + PumpsPressure.Value = maxValue; + } + + private void UpdateLubricantItem(Rml rml, double lubricantValue) + { + if (rml != null) + { + var rmlLubrication = Settings.LubricationLevels.FirstOrDefault(x => x.RmlGuid == rml.Guid); + if (( rml.Lubricant == false) + || (rmlLubrication != null && rmlLubrication.LubricationLevel == Common.Lubrication.LubricationLevel.No)) + { + Lubricant.Status = "NotActive"; + Lubricant.DisplayValue = "None"; + Lubricant.Color = Colors.Gray; + + return; + } + Lubricant.Status = "Active"; + Lubricant.DisplayValue = lubricantValue.ToString("N1"); + Lubricant.Color = Colors.Green; + return; + } + else + { + Lubricant.Status = "NotActive"; + Lubricant.DisplayValue = "None"; + Lubricant.Color = Colors.Gray; + } + } + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Modules/DefaultPPCModuleLoader.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Modules/DefaultPPCModuleLoader.cs index d0f6484ab..14f9db927 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Modules/DefaultPPCModuleLoader.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Modules/DefaultPPCModuleLoader.cs @@ -97,8 +97,8 @@ namespace Tango.PPC.UI.Modules } else { - LogManager.Log(String.Format("Loading module '{0}'...", nameof(JobsModule))); - AllModules.Add(new JobsModule()); + //LogManager.Log(String.Format("Loading module '{0}'...", nameof(JobsModule))); + //AllModules.Add(new JobsModule()); } //Preloaded @@ -142,7 +142,7 @@ namespace Tango.PPC.UI.Modules if (settings.UseJobsModuleV2) { - var legacyJobsModule = AllModules.SingleOrDefault(x => x.GetType() == typeof(JobsModule)); + var legacyJobsModule = AllModules.SingleOrDefault(x => x.GetType().Name == "JobsModule"); AllModules.Remove(legacyJobsModule); } else diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation/DefaultNavigationManager.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation/DefaultNavigationManager.cs index d247ab23c..66f627fdb 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation/DefaultNavigationManager.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation/DefaultNavigationManager.cs @@ -10,12 +10,14 @@ using System.Windows; using System.Windows.Media; using Tango.Core; using Tango.Core.Commands; +using Tango.Core.DI; using Tango.PPC.Common; using Tango.PPC.Common.Modules; using Tango.PPC.Common.Navigation; using Tango.PPC.Common.Notifications; using Tango.PPC.Common.Threading; using Tango.PPC.UI.Views; +using Tango.PPC.UI.ViewsContracts; using Tango.SharedUI.Controls; namespace Tango.PPC.UI.Navigation @@ -145,10 +147,10 @@ namespace Tango.PPC.UI.Navigation LogManager.Log($"Navigating to: {view.ToString()}..."); - var fromView = MainView.Instance.NavigationControl.SelectedElement; + var fromView = GetMainNavigationControl().SelectedElement; FrameworkElement toView = null; - toView = MainView.Instance.NavigationControl.NavigateTo(view.ToString(), (Action)(() => + toView = GetMainNavigationControl().NavigateTo(view.ToString(), (Action)(() => { CurrentVM = toView.DataContext as PPCViewModel; NotifyOnNavigated(fromView.DataContext, toView.DataContext); @@ -171,8 +173,8 @@ namespace Tango.PPC.UI.Navigation public Task<bool> NavigateWithObject<TPass>(NavigationView view, TPass obj, bool pushToHistory = true) { LogManager.Log($"Navigating to: {view.ToString()}, with object {typeof(TPass).Name}..."); - MainView.Instance.NavigationControl.NavigateTo(view.ToString()); - INavigationObjectReceiver<TPass> receiver = MainView.Instance.NavigationControl.Elements.FirstOrDefault(x => (x.GetType().Name == view.ToString() || NavigationControl.GetNavigationName(x) == view.ToString()) && x.DataContext is INavigationObjectReceiver<TPass>).DataContext as INavigationObjectReceiver<TPass>; + GetMainNavigationControl().NavigateTo(view.ToString()); + INavigationObjectReceiver<TPass> receiver = GetMainNavigationControl().Elements.FirstOrDefault(x => (x.GetType().Name == view.ToString() || NavigationControl.GetNavigationName(x) == view.ToString()) && x.DataContext is INavigationObjectReceiver<TPass>).DataContext as INavigationObjectReceiver<TPass>; if (receiver != null) { @@ -272,8 +274,8 @@ namespace Tango.PPC.UI.Navigation _lastFullPath = fullPath; - MainView.Instance.NavigationControl.NavigateTo(NavigationView.LayoutView.ToString()); - var navigationControl = LayoutView.Instance.NavigationControl; + GetMainNavigationControl().NavigateTo(NavigationView.LayoutView.ToString()); + var navigationControl = GetLayoutNavigationControl(); CurrentModule = module; var moduleView = navigationControl.NavigateTo(module.Name); @@ -584,5 +586,15 @@ namespace Tango.PPC.UI.Navigation awaiter.Action(); } } + + private NavigationControl GetLayoutNavigationControl() + { + return TangoIOC.Default.GetInstance<ILayoutView>().GetNavigationControl(); + } + + private NavigationControl GetMainNavigationControl() + { + return TangoIOC.Default.GetInstance<IMainView>().GetNavigationControl(); + } } } diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation/EurekaNavigationManager.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation/EurekaNavigationManager.cs new file mode 100644 index 000000000..63332e889 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation/EurekaNavigationManager.cs @@ -0,0 +1,606 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Media; +using Tango.Core; +using Tango.Core.Commands; +using Tango.Core.DI; +using Tango.PPC.Common; +using Tango.PPC.Common.Modules; +using Tango.PPC.Common.Navigation; +using Tango.PPC.Common.Notifications; +using Tango.PPC.Common.Threading; +using Tango.PPC.UI.Views; +using Tango.PPC.UI.ViewsContracts; +using Tango.SharedUI.Controls; + +namespace Tango.PPC.UI.Navigation +{ + /// <summary> + /// Represents the default PPC navigation manager. + /// </summary> + /// <seealso cref="Tango.PPC.Common.Navigation.INavigationManager" /> + public class EurekaNavigationManager : ExtendedObject, INavigationManager + { + //private event Action<Object, Object> NavigationCycleCompleted; + //private event Action<Object, Object> BeforeNavigationCycleCompleted; + private class AwaitingVMResult + { + public PPCViewModel FromVM { get; set; } + public PPCViewModel ToVM { get; set; } + public Action Action { get; set; } + } + + private List<AwaitingVMResult> _awaitingVMResults; + private IDispatcherProvider _dispatcherProvider; + private IPPCModuleLoader _moduleLoader; + private INotificationProvider _notificationProvider; + private String _lastFullPath; + private bool _preventHistory; + private bool _navigating_back; + + public event EventHandler<PPCViewModel> CurrentVMChanged; + + private Stack<String> _navigationHistory; + + private Object _currentVM; + /// <summary> + /// Gets the current view model. + /// </summary> + public PPCViewModel CurrentVM + { + set + { + var previous = _currentVM; + _currentVM = value; + + var vm = _currentVM as PPCViewModel; + + if (_currentVM != previous && vm != null) + { + CurrentVMChanged?.Invoke(this, vm); + } + } + get + { + return _currentVM as PPCViewModel; + } + } + + private IPPCModule _currentModule; + /// <summary> + /// Gets or sets the current module. + /// </summary> + public IPPCModule CurrentModule + { + get { return _currentModule; } + private set { _currentModule = value; RaisePropertyChangedAuto(); } + } + + /// <summary> + /// Navigates to the previous view. + /// </summary> + public RelayCommand NavigateBackCommand { get; private set; } + + /// <summary> + /// Navigates to the specified full path in command parameter. + /// </summary> + public RelayCommand<String> NavigateToCommand { get; private set; } + + /// <summary> + /// Initializes a new instance of the <see cref="DefaultNavigationManager"/> class. + /// </summary> + /// <param name="moduleLoader">The module loader.</param> + public EurekaNavigationManager(IPPCModuleLoader moduleLoader, IDispatcherProvider dispatcherProvider, INotificationProvider notificationProvider) + { + IsBackEnabled = true; + _awaitingVMResults = new List<AwaitingVMResult>(); + _navigationHistory = new Stack<String>(); + _moduleLoader = moduleLoader; + _notificationProvider = notificationProvider; + + NavigateToCommand = new RelayCommand<string>(async (x) => await NavigateTo(x)); + NavigateBackCommand = new RelayCommand(async () => await NavigateBack()); + + _dispatcherProvider = dispatcherProvider; + } + + /// <summary> + /// Navigates to the specified PPC view. + /// </summary> + /// <param name="view">The view.</param> + public Task<bool> NavigateTo(NavigationView view, bool pushToHistory = true) + { + pushToHistory = false; + if (view == NavigationView.HomeModule) + { + _navigationHistory.Clear(); + _lastFullPath = null; + + var firstModule = _moduleLoader.UserModules.FirstOrDefault(); + + if (firstModule != null) + { + var moduleAtt = firstModule.GetType().GetCustomAttribute<PPCModuleAttribute>(); + + if (moduleAtt != null) + { + return NavigateTo(firstModule.GetType(), pushToHistory, moduleAtt.HomeViewName); + } + else + { + return NavigateTo(firstModule.GetType(), pushToHistory); + } + } + else + { + return NavigateTo(NavigationView.NoPermissionsView); + } + } + else + { + + LogManager.Log($"Navigating to: {view.ToString()}..."); + + var fromView = GetMainNavigationControl().SelectedElement; + FrameworkElement toView = null; + + toView = GetMainNavigationControl().NavigateTo(view.ToString(), (Action)(() => + { + CurrentVM = toView.DataContext as PPCViewModel; + NotifyOnNavigated(fromView.DataContext, toView.DataContext); + + })); + + NotifyOnBeforeNavigated(fromView.DataContext, toView.DataContext); + + return Task.FromResult(true); + } + } + + /// <summary> + /// Navigates to the specified PPC view with the specified receive object. + /// </summary> + /// <param name="view">The view.</param> + /// <param name="obj"></param> + /// <param name="pushToHistory"></param> + /// <returns></returns> + public Task<bool> NavigateWithObject<TPass>(NavigationView view, TPass obj, bool pushToHistory = true) + { + LogManager.Log($"Navigating to: {view.ToString()}, with object {typeof(TPass).Name}..."); + GetMainNavigationControl().NavigateTo(view.ToString()); + INavigationObjectReceiver<TPass> receiver = GetMainNavigationControl().Elements.FirstOrDefault(x => (x.GetType().Name == view.ToString() || NavigationControl.GetNavigationName(x) == view.ToString()) && x.DataContext is INavigationObjectReceiver<TPass>).DataContext as INavigationObjectReceiver<TPass>; + + if (receiver != null) + { + receiver.OnNavigatedToWithObject(obj); + } + + return Task.FromResult(true); + } + + /// <summary> + /// Navigates to the specified module. + /// </summary> + /// <typeparam name="T"></typeparam> + public Task<bool> NavigateTo<T>(bool pushToHistory = true) where T : IPPCModule + { + return NavigateTo(typeof(T)); + } + + /// <summary> + /// Navigates to the specified module using the view path (e.g MainView.JobsView). + /// </summary> + /// <typeparam name="T"></typeparam> + /// <param name="viewPath">The view path.</param> + public Task<bool> NavigateTo<T>(string viewPath, bool pushToHistory = true) where T : IPPCModule + { + return NavigateTo<T>(pushToHistory, viewPath.Split('.')); + } + + /// <summary> + /// Navigates to the specified module using the view path (e.g MainView,JobsView). + /// This method makes it easy to do stuff like NavigateTo(nameof(MainView),nameof(JobsView)); + /// </summary> + /// <typeparam name="T"></typeparam> + /// <param name="viewPath">The view path.</param> + public Task<bool> NavigateTo<T>(bool pushToHistory = true, params String[] viewPath) where T : IPPCModule + { + return NavigateTo(typeof(T), pushToHistory, viewPath); + } + + /// <summary> + /// Navigates to the specified module and view by full path (e.g Jobs.JobsView). + /// </summary> + /// <param name="fullPath">The full path.</param> + public async Task<bool> NavigateTo(String fullPath, bool pushToHistory = true, Action<PPCViewModel, PPCViewModel> onNavigating = null, Action<PPCViewModel, PPCViewModel> onNavigated = null) + { + if (_lastFullPath != null && !_lastFullPath.Contains("JobsV2Module")) + { + pushToHistory = false; + } + + try + { + IsNavigating = true; + + String[] path = fullPath.Split('.'); + var module = _moduleLoader.UserModules.SingleOrDefault(x => x.GetType().Name == path[0] || x.Name == path[0]); + + if (module == null) + { + await _notificationProvider.ShowError("The specified module was not loaded."); + IsNavigating = false; + return false; + } + + if (path.Length == 1 && path[0] == CurrentModule.Name) + { + IsNavigating = false; + return true; + } + + LogManager.Log($"Navigating to: {fullPath}..."); + + var fromVM = CurrentVM; + + if (CurrentVM != null && CurrentVM is INavigationBlocker) + { + if (_navigating_back) + { + if (!await (CurrentVM as INavigationBlocker).OnNavigateBackRequest()) + { + IsNavigating = false; + return false; + } + } + else + { + if (!await (CurrentVM as INavigationBlocker).OnNavigateOutRequest()) + { + IsNavigating = false; + return false; + } + } + } + + + + if (pushToHistory && _lastFullPath != null && !_preventHistory) + { + _navigationHistory.Push(_lastFullPath); + RaisePropertyChanged(nameof(CanNavigateBack)); + } + + _lastFullPath = fullPath; + + GetMainNavigationControl().NavigateTo(NavigationView.LayoutView.ToString()); + var navigationControl = GetLayoutNavigationControl(); + CurrentModule = module; + var moduleView = navigationControl.NavigateTo(module.Name); + + CurrentVM = moduleView.DataContext as PPCViewModel; + + if (path.Length > 1) + { + var moduleNavigation = moduleView.FindChildOffline<NavigationControl>(); + + if (moduleNavigation != null) + { + moduleNavigation.RegisterForLoadedOrNow(async (x, e) => + { + var lastView = moduleNavigation.GetElement(path.Last()); + + if (lastView != null) + { + onNavigating?.Invoke(fromVM as PPCViewModel, lastView.DataContext as PPCViewModel); + } + + foreach (var view in path.Skip(1)) + { + await Task.Delay(100); + + FrameworkElement v = null; + + v = moduleNavigation.NavigateTo(view, () => + { + if (v != null) + { + NotifyOnNavigated(fromVM, v.DataContext); + onNavigated?.Invoke(fromVM as PPCViewModel, v.DataContext as PPCViewModel); + NotifyAwaitingVMResults(fromVM as PPCViewModel, v.DataContext as PPCViewModel); + } + }); + + NotifyOnBeforeNavigated(fromVM, v.DataContext); + + if (v != null) + { + CurrentVM = v.DataContext as PPCViewModel; + + if (view != path.Last()) + { + moduleNavigation = v.FindChildOffline<NavigationControl>(); + } + } + else + { + throw LogManager.Log(new ArgumentNullException("Could not navigate to " + fullPath)); + } + } + }); + } + else + { + onNavigating?.Invoke(fromVM as PPCViewModel, CurrentVM as PPCViewModel); + + NotifyOnBeforeNavigated(fromVM, CurrentVM); + + await Task.Delay(navigationControl.TransitionDuration.TimeSpan); + + NotifyOnNavigated(fromVM, CurrentVM); + + onNavigated?.Invoke(fromVM as PPCViewModel, CurrentVM as PPCViewModel); + NotifyAwaitingVMResults(fromVM as PPCViewModel, CurrentVM as PPCViewModel); + } + } + else + { + NotifyOnBeforeNavigated(fromVM, CurrentVM); + + onNavigating?.Invoke(fromVM as PPCViewModel, CurrentVM as PPCViewModel); + + await Task.Delay(navigationControl.TransitionDuration.TimeSpan); + + NotifyOnNavigated(fromVM, CurrentVM); + + onNavigated?.Invoke(fromVM as PPCViewModel, CurrentVM as PPCViewModel); + NotifyAwaitingVMResults(fromVM as PPCViewModel, CurrentVM as PPCViewModel); + } + + return true; + } + catch (Exception ex) + { + IsNavigating = false; + LogManager.Log(ex, $"Error navigating to '{fullPath}'."); + await _notificationProvider.ShowError($"Error navigating to '{fullPath}'."); + return false; + } + } + + /// <summary> + /// Navigates for result. + /// </summary> + /// <typeparam name="TModule">The type of the module.</typeparam> + /// <typeparam name="TView">The type of the view.</typeparam> + /// <typeparam name="TResult">The type of the result.</typeparam> + /// <typeparam name="TObject">The type of the object.</typeparam> + /// <param name="obj">The object.</param> + /// <param name="pushToHistory">if set to <c>true</c> [push to history].</param> + /// <returns></returns> + public async Task<TResult> NavigateForResult<TModule, TView, TResult, TObject>(TObject obj, bool pushToHistory = true) + where TModule : IPPCModule + { + TaskCompletionSource<TResult> source = new TaskCompletionSource<TResult>(); + + var fromVM = CurrentVM; + + await NavigateTo(typeof(TModule).Name + "." + typeof(TView).Name, pushToHistory, (from, to) => + { + _awaitingVMResults.Add(new AwaitingVMResult() + { + FromVM = fromVM as PPCViewModel, + ToVM = to as PPCViewModel, + Action = () => + { + if (to is INavigationResultProvider<TResult, TObject>) + { + source.SetResult((to as INavigationResultProvider<TResult, TObject>).GetNavigationResult()); + } + } + }); + + if (to is INavigationResultProvider<TResult, TObject>) + { + (to as INavigationResultProvider<TResult, TObject>).OnNavigationObjectReceived(obj); + } + }); + + return await source.Task; + } + + /// <summary> + /// Navigates to the specified module and view with the specified object. + /// </summary> + /// <typeparam name="TModule">The type of the module.</typeparam> + /// <typeparam name="TView">The type of the view.</typeparam> + /// <typeparam name="TPass">The type of the pass.</typeparam> + /// <param name="obj">The object.</param> + /// <param name="pushToHistory">if set to <c>true</c> [push to history].</param> + /// <returns></returns> + public Task<bool> NavigateWithObject<TModule, TView, TPass>(TPass obj, bool pushToHistory = true) where TModule : IPPCModule + { + return NavigateTo(typeof(TModule).Name + "." + typeof(TView).Name, pushToHistory, (fromVM, toVM) => + { + if (toVM is INavigationObjectReceiver<TPass>) + { + (toVM as INavigationObjectReceiver<TPass>).OnNavigatedToWithObject(obj); + } + }); + } + + private Task<bool> NavigateTo(Type moduleType, bool pushToHistory = true, params String[] viewPath) + { + if (viewPath != null && viewPath.Length > 0) + { + return NavigateTo(moduleType.Name + "." + String.Join(".", viewPath), pushToHistory); + } + else + { + return NavigateTo(moduleType.Name, pushToHistory); + } + } + + /// <summary> + /// Gets a value indicating whether the navigation system is able to navigate to the previous view. + /// </summary> + public bool CanNavigateBack + { + get { return _navigationHistory.Count > 0; } + } + + private bool _isBackEnabled; + /// <summary> + /// Gets a value indicating whether the back should be enabled. + /// </summary> + public bool IsBackEnabled + { + get { return _isBackEnabled; } + set { _isBackEnabled = value; RaisePropertyChangedAuto(); } + } + + private bool _isNavigating; + /// <summary> + /// Gets or sets a value indicating whether the navigation system is currently navigating. + /// </summary> + public bool IsNavigating + { + get { return _isNavigating; } + set + { + _isNavigating = value; + RaisePropertyChangedAuto(); + } + } + + /// <summary> + /// Navigates to the previous view if <see cref="P:Tango.PPC.Common.Navigation.INavigationManager.CanNavigateBack" /> is true. + /// </summary> + public async Task<bool> NavigateBack() + { + LogManager.Log("Navigating back..."); + + _navigating_back = true; + + if (_navigationHistory.Count > 0) + { + String first = _navigationHistory.Pop(); + _preventHistory = true; + + if (await NavigateTo(first)) + { + RaisePropertyChanged(nameof(CanNavigateBack)); + _preventHistory = false; + _navigating_back = false; + return true; + } + else + { + _navigationHistory.Push(first); + _preventHistory = false; + _navigating_back = false; + RaisePropertyChanged(nameof(CanNavigateBack)); + return false; + } + } + else + { + await NavigateTo(NavigationView.HomeModule); + RaisePropertyChanged(nameof(CanNavigateBack)); + _preventHistory = false; + _navigating_back = false; + return true; + } + } + + /// <summary> + /// Clears the navigation back history. + /// </summary> + public void ClearHistory() + { + LogManager.Log("Navigation history cleared."); + _navigationHistory.Clear(); + RaisePropertyChanged(nameof(CanNavigateBack)); + } + + /// <summary> + /// Clears the navigation back history except the specified view type. + /// </summary> + /// <typeparam name="T"></typeparam> + public void ClearHistoryExcept<T>() + { + LogManager.Log($"Navigation history cleared except for {typeof(T).Name}."); + + var history_list = _navigationHistory.ToList(); + history_list = history_list.Where(x => x.Contains(typeof(T).Name)).Distinct().ToList(); + _navigationHistory.Clear(); + + foreach (var item in history_list) + { + _navigationHistory.Push(item); + } + + RaisePropertyChanged(nameof(CanNavigateBack)); + } + + private void NotifyOnBeforeNavigated(object fromVM, object toVM) + { + if (fromVM == toVM) return; + + if (fromVM is PPCViewModel) + { + (fromVM as PPCViewModel)?.OnBeforeNavigatedFrom(); + } + + if (toVM is PPCViewModel) + { + (toVM as PPCViewModel)?.OnBeforeNavigatedTo(); + } + } + + private void NotifyOnNavigated(object fromVM, object toVM) + { + IsNavigating = false; + + if (fromVM == toVM) return; + + if (fromVM is PPCViewModel) + { + (fromVM as PPCViewModel)?.OnNavigatedFrom(); + } + + if (toVM is PPCViewModel) + { + (toVM as PPCViewModel)?.OnNavigatedTo(); + (toVM as PPCViewModel)?.OnNavigatedTo(fromVM as PPCViewModel); + } + } + + private void NotifyAwaitingVMResults(PPCViewModel fromVM, PPCViewModel toVM) + { + var awaiter = _awaitingVMResults.SingleOrDefault(x => x.FromVM == toVM && x.ToVM == fromVM); + if (awaiter != null) + { + _awaitingVMResults.Remove(awaiter); + awaiter.Action(); + } + } + + private NavigationControl GetLayoutNavigationControl() + { + return TangoIOC.Default.GetInstance<ILayoutView>().GetNavigationControl(); + } + + private NavigationControl GetMainNavigationControl() + { + return TangoIOC.Default.GetInstance<IMainView>().GetNavigationControl(); + } + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Notifications/DefaultNotificationProvider.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Notifications/DefaultNotificationProvider.cs index c2c069f45..cc8f7b4ab 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Notifications/DefaultNotificationProvider.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Notifications/DefaultNotificationProvider.cs @@ -100,6 +100,7 @@ namespace Tango.PPC.UI.Notifications _currentMessageBox = value; RaisePropertyChangedAuto(); RaisePropertyChanged(nameof(HasMessageBox)); + RaisePropertyChanged(nameof(HasDialogOrMessage)); } } @@ -126,6 +127,7 @@ namespace Tango.PPC.UI.Notifications _currentDialog = value; RaisePropertyChangedAuto(); RaisePropertyChanged(nameof(HasDialog)); + RaisePropertyChanged(nameof(HasDialogOrMessage)); } } @@ -150,6 +152,14 @@ namespace Tango.PPC.UI.Notifications } } + public bool HasDialogOrMessage + { + get + { + return HasDialog || HasMessageBox; + } + } + /// <summary> /// Shows an error message box. /// </summary> @@ -293,6 +303,7 @@ namespace Tango.PPC.UI.Notifications item.RemoveAction = () => { PopNotification(item); }; NotificationItems.Insert(0, item); RaisePropertyChanged(nameof(HasNotificationItems)); + RaisePropertyChanged(nameof(NotificationItems)); return item; } @@ -315,6 +326,7 @@ namespace Tango.PPC.UI.Notifications LogManager.Log($"Popping out NotificationItem '{item.GetType().Name}'."); NotificationItems.Remove(item); RaisePropertyChanged(nameof(HasNotificationItems)); + RaisePropertyChanged(nameof(NotificationItems)); } /// <summary> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/PPCApplication/DefaultPPCApplicationManager.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/PPCApplication/DefaultPPCApplicationManager.cs index 9b57da988..0f65f833e 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/PPCApplication/DefaultPPCApplicationManager.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/PPCApplication/DefaultPPCApplicationManager.cs @@ -37,6 +37,8 @@ using Tango.PPC.Common.Synchronization; using Tango.Insights; using System.Threading; using System.Reflection; +using Tango.PPC.UI.ViewsContracts; +using Tango.PPC.Common.Build; namespace Tango.PPC.UI.PPCApplication { @@ -55,6 +57,7 @@ namespace Tango.PPC.UI.PPCApplication private IPPCModuleLoader _moduleLoader; private INotificationProvider _notificationProvider; private IMachineDataSynchronizer _machineDataSynchronizer; + private IBuildProvider _buildProvider; private WatchDogServer _watchdogServer; private ObservablesContext _machineContext; private ActionTimer _screenLockTimer; @@ -201,7 +204,7 @@ namespace Tango.PPC.UI.PPCApplication /// <summary> /// Initializes a new instance of the <see cref="DefaultPPCApplicationManager"/> class. /// </summary> - public DefaultPPCApplicationManager(IMachineProvider machineProvider, IDispatcherProvider dispatcherProvider, IEventLogger eventLogger, IPPCModuleLoader moduleLoader, INotificationProvider notificationProvider, IMachineDataSynchronizer machineDataSynchronizer) + public DefaultPPCApplicationManager(IMachineProvider machineProvider, IDispatcherProvider dispatcherProvider, IEventLogger eventLogger, IPPCModuleLoader moduleLoader, INotificationProvider notificationProvider, IMachineDataSynchronizer machineDataSynchronizer, IBuildProvider buildProvider) { StartPath = AssemblyHelper.GetCurrentAssemblyFolder(); @@ -211,6 +214,7 @@ namespace Tango.PPC.UI.PPCApplication _eventLogger = eventLogger; _moduleLoader = moduleLoader; _machineDataSynchronizer = machineDataSynchronizer; + _buildProvider = buildProvider; if (!DesignMode) { @@ -255,7 +259,7 @@ namespace Tango.PPC.UI.PPCApplication //Start watchdog _watchdogServer = new WatchDogServer(Application.Current.Dispatcher); -#if !DEBUG +#if (!DEBUG && !Eureka) if (settings.EnableWatchDog) { @@ -289,7 +293,7 @@ namespace Tango.PPC.UI.PPCApplication settings.ApplicationState = ApplicationStates.Ready; settings.Save(); - if (isAfterSetup) + if (isAfterSetup && !_buildProvider.IsEureka) { SystemRestartRequired?.Invoke(this, new EventArgs()); return; @@ -380,6 +384,8 @@ namespace Tango.PPC.UI.PPCApplication { LogManager.Log("Module loader instance has been registered. Registering for the ModulesLoaded event..."); + ILayoutView layoutView = TangoIOC.Default.GetInstance<ILayoutView>(); + loader.ModulesLoaded += (x, y) => { LogManager.Log("Loading modules views"); @@ -387,14 +393,14 @@ namespace Tango.PPC.UI.PPCApplication { foreach (var module in TangoIOC.Default.GetInstance<IPPCModuleLoader>().UserModules) { - if (!Views.LayoutView.Instance.NavigationControl.Elements.ToList().Exists(m => m.GetType() == module.MainViewType)) + if (!layoutView.GetNavigationControl().Elements.ToList().Exists(m => m.GetType() == module.MainViewType)) { try { LogManager.Log("Loading module view " + module.Name + "..."); FrameworkElement view = Activator.CreateInstance(module.MainViewType) as FrameworkElement; SharedUI.Controls.NavigationControl.SetNavigationName(view, module.Name); - Views.LayoutView.Instance.NavigationControl.Elements.Add(view); + layoutView.GetNavigationControl().Elements.Add(view); } catch (Exception ex) { @@ -411,7 +417,7 @@ namespace Tango.PPC.UI.PPCApplication LogManager.Log("Loading module view " + module.Name + "..."); FrameworkElement view = Activator.CreateInstance(module.MainViewType) as FrameworkElement; SharedUI.Controls.NavigationControl.SetNavigationName(view, module.Name); - Views.LayoutView.Instance.NavigationControl.Elements.Add(view); + layoutView.GetNavigationControl().Elements.Add(view); _moduleLoader.AllModules.Add(module); _moduleLoader.UserModules.Add(module); } diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Printing/DefaultPrintingManager.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Printing/DefaultPrintingManager.cs index f4a3f643d..575d19efa 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Printing/DefaultPrintingManager.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Printing/DefaultPrintingManager.cs @@ -109,6 +109,14 @@ namespace Tango.PPC.UI.Printing job.SpoolType = spoolType; + if (printConfig != null && printConfig.GlobalStartPosition > 0) + { + config.ResumeConfig = new AdditionalJobConfiguration.ResumeConfiguration(); + config.ResumeConfig.FirstUnitStartPosition = printConfig.FirstUnitStartPosition; + config.ResumeConfig.GlobalStartPosition = printConfig.GlobalStartPosition; + config.ResumeConfig.RemainingUnits = printConfig.RemainingUnits; + } + handler = await _machineProvider.MachineOperator.Print(job, config); _notificationProvider.ReleaseGlobalBusyMessage(); } diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Properties/AssemblyInfo.cs index 95e0188ce..1e5b4ba89 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Properties/AssemblyInfo.cs @@ -8,4 +8,4 @@ using System.Windows; // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("Tango PPC Application")] -[assembly: AssemblyVersion("1.8.12.0")] +[assembly: AssemblyVersion("2.0.13.0")] diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Resources/Graphs.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Resources/Graphs.xaml new file mode 100644 index 000000000..67047cf1f --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Resources/Graphs.xaml @@ -0,0 +1,8 @@ +<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:local="clr-namespace:Tango.PPC.UI.Resources"> + <ResourceDictionary.MergedDictionaries> + <ResourceDictionary Source="pack://application:,,,/Tango.PPC.UI;component/Graphs/RealTimeGraph.xaml" /> + </ResourceDictionary.MergedDictionaries> + +</ResourceDictionary>
\ No newline at end of file diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Tango.PPC.UI.csproj b/Software/Visual_Studio/PPC/Tango.PPC.UI/Tango.PPC.UI.csproj index 464de7da9..705c042c5 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Tango.PPC.UI.csproj +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Tango.PPC.UI.csproj @@ -50,9 +50,31 @@ <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Eureka_Debug|AnyCPU' "> + <PlatformTarget>AnyCPU</PlatformTarget> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>..\..\Build\PPC\Eureka_Debug\</OutputPath> + <DefineConstants>TRACE;DEBUG;Eureka</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Eureka|AnyCPU' "> + <PlatformTarget>AnyCPU</PlatformTarget> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>..\..\Build\PPC\Eureka\</OutputPath> + <DefineConstants>TRACE;Eureka</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> <PropertyGroup> <ApplicationManifest>app.manifest</ApplicationManifest> </PropertyGroup> + <PropertyGroup> + <ApplicationIcon>Icon.ico</ApplicationIcon> + </PropertyGroup> <ItemGroup> <Reference Include="ControlzEx, Version=3.0.2.4, Culture=neutral, processorArchitecture=MSIL"> <HintPath>..\..\packages\ControlzEx.3.0.2.4\lib\net45\ControlzEx.dll</HintPath> @@ -108,6 +130,9 @@ <Reference Include="PresentationCore" /> <Reference Include="PresentationFramework" /> <Reference Include="WindowsFormsIntegration" /> + <Reference Include="WPFMediaKit, Version=2.2.0.0, Culture=neutral, processorArchitecture=MSIL"> + <HintPath>..\..\packages\WPFMediaKit.2.2.0\lib\WPFMediaKit.dll</HintPath> + </Reference> </ItemGroup> <ItemGroup> <ApplicationDefinition Include="App.xaml"> @@ -127,16 +152,33 @@ </Compile> <Compile Include="Authentication\DefaultAuthenticationProvider.cs" /> <Compile Include="Bit\DefaultBitManager.cs" /> + <Compile Include="Build\DefaultBuildProvider.cs" /> <Compile Include="Connectivity\DefaultConnectivityProvider.cs" /> <Compile Include="Connectivity\WiFiAuthenticationView.xaml.cs"> <DependentUpon>WiFiAuthenticationView.xaml</DependentUpon> </Compile> <Compile Include="Connectivity\WiFiAuthenticationViewVM.cs" /> + <Compile Include="Controls\JobOutlineControl.cs" /> <Compile Include="Controls\MachineStatusControl.xaml.cs"> <DependentUpon>MachineStatusControl.xaml</DependentUpon> </Compile> + <Compile Include="Controls\RunningJobViewerEureka.xaml.cs"> + <DependentUpon>RunningJobViewerEureka.xaml</DependentUpon> + </Compile> <Compile Include="Converters\AppBarItemConverter.cs" /> + <Compile Include="Converters\CollectionToCountConverter.cs" /> + <Compile Include="Converters\ComapareModulNameConverter.cs" /> + <Compile Include="Converters\DoubleWidthConverter.cs" /> <Compile Include="Converters\ItemBaseConverter.cs" /> + <Compile Include="Converters\LengthToWeightConverter.cs" /> + <Compile Include="Converters\LengthWithSpoolsConverter.cs" /> + <Compile Include="Converters\LiquidTypeToBrushConverter.cs" /> + <Compile Include="Converters\MidTankLevelToElementRectConverter.cs" /> + <Compile Include="Converters\ProgressBorderWidthConverter.cs" /> + <Compile Include="Converters\ProgressLengthSpoolConverter.cs" /> + <Compile Include="Converters\ProgressUnitSpoolConverter.cs" /> + <Compile Include="Converters\ProgressWeightSpoolConverter.cs" /> + <Compile Include="Converters\StatisticTabToVisibilityConverter.cs" /> <Compile Include="Dialogs\BitResultsView.xaml.cs"> <DependentUpon>BitResultsView.xaml</DependentUpon> </Compile> @@ -144,10 +186,18 @@ <Compile Include="Dialogs\CartridgeValidationView.xaml.cs"> <DependentUpon>CartridgeValidationView.xaml</DependentUpon> </Compile> + <Compile Include="Dialogs\GeneralInformationView.xaml.cs"> + <DependentUpon>GeneralInformationView.xaml</DependentUpon> + </Compile> + <Compile Include="Dialogs\GeneralInformationViewVM.cs" /> <Compile Include="Dialogs\InsufficientLiquidQuantityView.xaml.cs"> <DependentUpon>InsufficientLiquidQuantityView.xaml</DependentUpon> </Compile> <Compile Include="Dialogs\InsufficientLiquidQuantityViewVM.cs" /> + <Compile Include="Dialogs\PowerEurekaView.xaml.cs"> + <DependentUpon>PowerEurekaView.xaml</DependentUpon> + </Compile> + <Compile Include="Dialogs\PowerEurekaViewVM.cs" /> <Compile Include="Dialogs\SafetyLevelOperationsConfirmationView.xaml.cs"> <DependentUpon>SafetyLevelOperationsConfirmationView.xaml</DependentUpon> </Compile> @@ -189,8 +239,17 @@ </Compile> <Compile Include="Dialogs\FirmwareUpgradeFromFileViewVM.cs" /> <Compile Include="Dialogs\UpdateFromFileViewVM.cs" /> + <Compile Include="Graphs\GraphHelper.cs" /> + <Compile Include="Graphs\RealTimeGraph.cs" /> + <Compile Include="Helpers\DpiHelper.cs" /> <Compile Include="InternalModule.cs" /> + <Compile Include="Models\MachineOverviewErrorStates.cs" /> + <Compile Include="Models\MachineOverviewItem.cs" /> + <Compile Include="Models\MachineOverviewModel.cs" /> + <Compile Include="Models\JerricanLevelModel.cs" /> + <Compile Include="Models\MachineOverviewErrorItem.cs" /> <Compile Include="Modules\DefaultPPCModuleLoader.cs" /> + <Compile Include="Navigation\EurekaNavigationManager.cs" /> <Compile Include="Navigation\DefaultNavigationManager.cs" /> <Compile Include="Notifications\DefaultNotificationProvider.cs" /> <Compile Include="Notifications\DialogAndView.cs" /> @@ -213,6 +272,7 @@ <Compile Include="ViewModels\LoadingViewVM.cs" /> <Compile Include="ViewModels\LoginViewVM.cs" /> <Compile Include="ViewModels\MachineSetupViewVM.cs" /> + <Compile Include="ViewModels\MachineStatusViewVM.cs" /> <Compile Include="ViewModels\MainViewVM.cs" /> <Compile Include="ViewModels\MachineUpdateViewVM.cs" /> <Compile Include="ViewModels\NoPermissionsViewVM.cs" /> @@ -222,12 +282,16 @@ <Compile Include="ViewsContracts\ILayoutView.cs" /> <Compile Include="ViewsContracts\IMachineSetupView.cs" /> <Compile Include="ViewsContracts\IMachineUpdateView.cs" /> + <Compile Include="ViewsContracts\IMainView.cs" /> <Compile Include="Views\ExternalBridgeView.xaml.cs"> <DependentUpon>ExternalBridgeView.xaml</DependentUpon> </Compile> <Compile Include="Views\InternalModuleView.xaml.cs"> <DependentUpon>InternalModuleView.xaml</DependentUpon> </Compile> + <Compile Include="Views\LayoutEurekaView.xaml.cs"> + <DependentUpon>LayoutEurekaView.xaml</DependentUpon> + </Compile> <Compile Include="Views\LayoutView.xaml.cs"> <DependentUpon>LayoutView.xaml</DependentUpon> </Compile> @@ -237,6 +301,12 @@ <Compile Include="Views\LoadingErrorView.xaml.cs"> <DependentUpon>LoadingErrorView.xaml</DependentUpon> </Compile> + <Compile Include="Views\MachineStatusView.xaml.cs"> + <DependentUpon>MachineStatusView.xaml</DependentUpon> + </Compile> + <Compile Include="Views\MainEurekaView.xaml.cs"> + <DependentUpon>MainEurekaView.xaml</DependentUpon> + </Compile> <Compile Include="Views\PowerOffView.xaml.cs"> <DependentUpon>PowerOffView.xaml</DependentUpon> </Compile> @@ -280,6 +350,10 @@ <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> </Page> + <Page Include="Controls\RunningJobViewerEureka.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> <Page Include="Dialogs\BitResultsView.xaml"> <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> @@ -288,10 +362,18 @@ <Generator>MSBuild:Compile</Generator> <SubType>Designer</SubType> </Page> + <Page Include="Dialogs\GeneralInformationView.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> <Page Include="Dialogs\InsufficientLiquidQuantityView.xaml"> <Generator>MSBuild:Compile</Generator> <SubType>Designer</SubType> </Page> + <Page Include="Dialogs\PowerEurekaView.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> <Page Include="Dialogs\SafetyLevelOperationsConfirmationView.xaml"> <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> @@ -332,6 +414,10 @@ <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> </Page> + <Page Include="Graphs\RealTimeGraph.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> <Page Include="MainWindow.xaml"> <Generator>MSBuild:Compile</Generator> <SubType>Designer</SubType> @@ -356,6 +442,10 @@ <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> </Page> + <Page Include="Resources\Graphs.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> <Page Include="Resources\Styles.xaml"> <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> @@ -368,6 +458,10 @@ <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> </Page> + <Page Include="Views\LayoutEurekaView.xaml"> + <Generator>MSBuild:Compile</Generator> + <SubType>Designer</SubType> + </Page> <Page Include="Views\LayoutView.xaml"> <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> @@ -380,6 +474,14 @@ <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> </Page> + <Page Include="Views\MachineStatusView.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\MainEurekaView.xaml"> + <Generator>MSBuild:Compile</Generator> + <SubType>Designer</SubType> + </Page> <Page Include="Views\PowerOffView.xaml"> <Generator>MSBuild:Compile</Generator> <SubType>Designer</SubType> @@ -432,6 +534,7 @@ <DesignTimeSharedInput>True</DesignTimeSharedInput> </Compile> <Resource Include="Images\GlobalStatus\ready-to-dye.png" /> + <Resource Include="Images\Overview Icons\Sensors.png" /> <Resource Include="Images\user-profile.png" /> <Resource Include="Images\warning-test.png" /> <EmbeddedResource Include="Properties\Resources.resx"> @@ -508,6 +611,42 @@ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> <Resource Include="Images\waste_replace.png" /> + <Resource Include="Images\JobProgressView\clock.png" /> + <Resource Include="Images\JobProgressView\drop.png" /> + <Resource Include="Images\Job Issues\input.png" /> + <Resource Include="Images\Job Issues\job_copies.png" /> + <Resource Include="Images\Job Issues\job_length.png" /> + <Resource Include="Images\Job Issues\job_weight.png" /> + <Resource Include="Images\Job Issues\output.png" /> + <Resource Include="Images\Job Issues\spools.png" /> + <Resource Include="Images\Job Issues\Thread.png" /> + <Resource Include="Images\Job Issues\ttime_left.png" /> + <Resource Include="Images\Job Issues\thread_type.png" /> + <Resource Include="Images\Job Issues\Events.png" /> + <Resource Include="Images\Job Issues\Machine outline.png" /> + <Resource Include="Images\Menu\restart_t.png" /> + <Resource Include="Images\Menu\Power_image.png" /> + <Resource Include="Manifests\eureka.xml" /> + <Resource Include="Icon.ico" /> + <Resource Include="Images\Overview Icons\Error.png" /> + <Resource Include="Images\Overview Icons\Feeder2.png" /> + <Resource Include="Images\Overview Icons\Feeder3.png" /> + <Resource Include="Images\Overview Icons\Inks.png" /> + <Resource Include="Images\Overview Icons\Feeder1.png" /> + <Resource Include="Images\Overview Icons\Normal.png" /> + <Resource Include="Images\Overview Icons\UpdateInk.png" /> + <Resource Include="Images\Overview Icons\Warning.png" /> + <Resource Include="Images\Overview Icons\Waste.png" /> + <Resource Include="Images\Overview Icons\Feeder4.png" /> + <Resource Include="Manifests\eureka_debug.xml" /> + <Resource Include="Images\Overview Icons\JericanRemoved.png" /> + <Resource Include="Images\Overview Icons\motor.png" /> + <Resource Include="Images\Overview Icons\pressure.png" /> + <Resource Include="Images\Overview Icons\pr_data.png" /> + <Resource Include="Images\Overview Icons\temperature.png" /> + <Resource Include="Images\screw.png" /> + <Resource Include="Images\Menu\AppPower_image.png" /> + <Content Include="Intro.wmv" /> <Content Include="Manifests\release.xml" /> <Content Include="Manifests\debug.xml" /> <None Include="firmware_package.tfp"> @@ -516,7 +655,9 @@ <None Include="GetVersionTag.bat"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> - <None Include="packages.config" /> + <None Include="packages.config"> + <SubType>Designer</SubType> + </None> <None Include="Properties\Settings.settings"> <Generator>SettingsSingleFileGenerator</Generator> <LastGenOutput>Settings.Designer.cs</LastGenOutput> @@ -526,6 +667,14 @@ <None Include="App.config" /> </ItemGroup> <ItemGroup> + <ProjectReference Include="..\..\SideChains\RealTimeGraphX-master\RealTimeGraphX.WPF\RealTimeGraphX.WPF.csproj"> + <Project>{6b9774f7-960d-438e-ad81-c6b9be328d50}</Project> + <Name>RealTimeGraphX.WPF</Name> + </ProjectReference> + <ProjectReference Include="..\..\SideChains\RealTimeGraphX-master\RealTimeGraphX\RealTimeGraphX.csproj"> + <Project>{f13a489c-80ee-4cd0-bdd4-92d959215646}</Project> + <Name>RealTimeGraphX</Name> + </ProjectReference> <ProjectReference Include="..\..\Tango.AnimatedGif\Tango.AnimatedGif.csproj"> <Project>{d129789c-3096-4d0b-8dd7-fe24a4df4b21}</Project> <Name>Tango.AnimatedGif</Name> @@ -622,10 +771,6 @@ <Project>{dbbd90f4-4135-475d-a8f8-6795d3a8f697}</Project> <Name>Tango.PPC.JobsV2</Name> </ProjectReference> - <ProjectReference Include="..\Modules\Tango.PPC.Jobs\Tango.PPC.Jobs.csproj"> - <Project>{096f16c8-6d06-4b5f-9496-b9d2df2d94a3}</Project> - <Name>Tango.PPC.Jobs</Name> - </ProjectReference> <ProjectReference Include="..\Modules\Tango.PPC.MachineSettings\Tango.PPC.MachineSettings.csproj"> <Project>{91b70e9b-66a7-4873-ae10-400e71cf404f}</Project> <Name>Tango.PPC.MachineSettings</Name> @@ -757,6 +902,7 @@ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> <Error Condition="!Exists('..\..\packages\System.Data.SQLite.Core.1.0.108.0\build\net46\System.Data.SQLite.Core.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\System.Data.SQLite.Core.1.0.108.0\build\net46\System.Data.SQLite.Core.targets'))" /> + <Error Condition="!Exists('..\..\packages\WPFMediaKit.2.2.0\build\WPFMediaKit.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WPFMediaKit.2.2.0\build\WPFMediaKit.targets'))" /> </Target> <PropertyGroup> <PostBuildEvent>RD /S /Q "$(TargetDir)cs\" @@ -810,8 +956,11 @@ RD /S /Q "$(TargetDir)ProtoCompilers\" RD /S /Q "$(TargetDir)Packages\ProtoCompilers\" if $(ConfigurationName) == Release RD /S /Q "$(TargetDir)x86\" if $(ConfigurationName) == Release RD /S /Q "$(TargetDir)x64\" +if $(ConfigurationName) == Eureka RD /S /Q "$(TargetDir)x86\" +if $(ConfigurationName) == Eureka RD /S /Q "$(TargetDir)x64\" if $(ConfigurationName) == Release RD /S /Q "$(TargetDir)lib\" +if $(ConfigurationName) == Eureka RD /S /Q "$(TargetDir)lib\" copy /Y "$(SolutionDir)Referenced Assemblies\mscoree.dll" "$(TargetDir)" copy /Y "$(SolutionDir)Referenced Assemblies\msvcp140d.dll" "$(TargetDir)" @@ -821,14 +970,20 @@ copy /Y "$(SolutionDir)Referenced Assemblies\vcruntime140d.dll" "$(TargetDir)" copy /Y "$(SolutionDir)Referenced Assemblies\Microsoft.WITDataStore32.dll" "$(TargetDir)" if $(ConfigurationName) == Release del "$(TargetDir)firmware_package.tfp" +if $(ConfigurationName) == Eureka del "$(TargetDir)firmware_package.tfp" if $(ConfigurationName) == Release del *.xml +if $(ConfigurationName) == Eureka del *.xml if $(ConfigurationName) == Release del WebRtc.NET.pdb +if $(ConfigurationName) == Eureka del WebRtc.NET.pdb if $(ConfigurationName) == Debug copy /Y "$(TargetDir)Packages" "$(TargetDir)" -if $(ConfigurationName) == Debug "rc.exe" "$(TargetPath)" --set-version-string "Comments" "Coats"</PostBuildEvent> +if $(ConfigurationName) == Debug "rc.exe" "$(TargetPath)" --set-version-string "Comments" "Debug Tag" + +if $(ConfigurationName) == Eureka_Debug copy /Y "$(ProjectDir)Intro.wmv" "$(TargetDir)" +if $(ConfigurationName) == Eureka copy /Y "$(ProjectDir)Intro.wmv" "$(TargetDir)"</PostBuildEvent> </PropertyGroup> <PropertyGroup> <PreBuildEvent>copy /Y "$(ProjectDir)Manifests\$(ConfigurationName).xml" "$(ProjectDir)app.manifest" @@ -836,7 +991,8 @@ if $(ConfigurationName) == Debug "rc.exe" "$(TargetPath)" --set-version-string " </PropertyGroup> <ProjectExtensions> <VisualStudio> - <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" /> + <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" /> </VisualStudio> </ProjectExtensions> + <Import Project="..\..\packages\WPFMediaKit.2.2.0\build\WPFMediaKit.targets" Condition="Exists('..\..\packages\WPFMediaKit.2.2.0\build\WPFMediaKit.targets')" /> </Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/ThreadLoading/DefaultThreadLoadingService.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/ThreadLoading/DefaultThreadLoadingService.cs index a6479da63..4d6a848d3 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/ThreadLoading/DefaultThreadLoadingService.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ThreadLoading/DefaultThreadLoadingService.cs @@ -3,7 +3,9 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Tango.Core.DI; using Tango.Integration.Operation; +using Tango.PPC.Common.Build; using Tango.PPC.Common.Connection; using Tango.PPC.Common.Notifications; using Tango.PPC.Common.Threading; @@ -24,7 +26,8 @@ namespace Tango.PPC.UI.ThreadLoading _notificationsProvider = notificationsProvider; _machineProvider = machineProvider; _dispatcher = dispatcher; - _machineProvider.MachineOperator.ThreadLoadingStatusChanged += MachineOperator_ThreadLoadingStatusChanged; + if(false == TangoIOC.Default.GetInstance<IBuildProvider>().IsEureka) + _machineProvider.MachineOperator.ThreadLoadingStatusChanged += MachineOperator_ThreadLoadingStatusChanged; } private void MachineOperator_ThreadLoadingStatusChanged(object sender, PMR.ThreadLoading.StartThreadLoadingResponse e) diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModelLocator.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModelLocator.cs index ab7547dad..251eeb1ec 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModelLocator.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModelLocator.cs @@ -8,6 +8,7 @@ using Tango.PPC.Common.Application; using Tango.PPC.Common.Authentication; using Tango.PPC.Common.BackupRestore; using Tango.PPC.Common.Bit; +using Tango.PPC.Common.Build; using Tango.PPC.Common.Connection; using Tango.PPC.Common.Connectivity; using Tango.PPC.Common.Console; @@ -71,6 +72,8 @@ namespace Tango.PPC.UI /// </summary> static ViewModelLocator() { + var buildProvider = TangoIOC.Default.GetInstance<IBuildProvider>(); + TangoIOC.Default.Unregister<IDispatcherProvider>(); TangoIOC.Default.Unregister<INotificationProvider>(); TangoIOC.Default.Unregister<IAuthenticationProvider>(); @@ -125,7 +128,14 @@ namespace Tango.PPC.UI TangoIOC.Default.Register<INotificationProvider, DefaultNotificationProvider>(); TangoIOC.Default.Register<IAuthenticationProvider, DefaultAuthenticationProvider>(); TangoIOC.Default.Register<IPPCModuleLoader, DefaultPPCModuleLoader>(); - TangoIOC.Default.Register<INavigationManager, DefaultNavigationManager>(); + if (buildProvider.IsEureka) + { + TangoIOC.Default.Register<INavigationManager, EurekaNavigationManager>(); + } + else + { + TangoIOC.Default.Register<INavigationManager, DefaultNavigationManager>(); + } TangoIOC.Default.Register<IMachineProvider, DefaultMachineProvider>(); TangoIOC.Default.Register<IEventLogger, DefaultEventLogger>(); TangoIOC.Default.Register<IMachineDataSynchronizer, DefaultMachineDataSynchronizer>(); @@ -174,11 +184,22 @@ namespace Tango.PPC.UI TangoIOC.Default.Register<RestartingViewVM>(); TangoIOC.Default.Register<InternalModuleViewVM>(); TangoIOC.Default.Register<PowerOffViewVM>(); + TangoIOC.Default.Register<MachineStatusViewVM>(); TangoIOC.Default.GetInstance<IPPCApplicationManager>().ContentRendered += (_, __) => { - TangoIOC.Default.Register<ILayoutView, LayoutView>(LayoutView.Instance); + if (buildProvider.IsEureka) + { + TangoIOC.Default.Register<IMainView, MainEurekaView>(MainEurekaView.Instance); + TangoIOC.Default.Register<ILayoutView, LayoutEurekaView>(LayoutEurekaView.Instance); + } + else + { + TangoIOC.Default.Register<IMainView, MainView>(MainView.Instance); + TangoIOC.Default.Register<ILayoutView, LayoutView>(LayoutView.Instance); + } + TangoIOC.Default.Register<IMachineSetupView, MachineSetupView>(MachineSetupView.Instance); TangoIOC.Default.Register<IMachineUpdateView, MachineUpdateView>(MachineUpdateView.Instance); }; @@ -303,5 +324,13 @@ namespace Tango.PPC.UI return TangoIOC.Default.GetInstance<PowerOffViewVM>(); } } + + public static MachineStatusViewVM MachineStatusViewVM + { + get + { + return TangoIOC.Default.GetInstance<MachineStatusViewVM>(); + } + } } }
\ No newline at end of file diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/LayoutViewVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/LayoutViewVM.cs index 42d947326..17b676499 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/LayoutViewVM.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/LayoutViewVM.cs @@ -16,6 +16,7 @@ using Tango.PPC.Common; using Tango.PPC.Common.Connection; using Tango.PPC.Common.Modules; using Tango.PPC.Common.Navigation; +using Tango.PPC.UI.Dialogs; using Tango.PPC.UI.Views; using Tango.PPC.UI.ViewsContracts; using Tango.SharedUI; @@ -30,6 +31,7 @@ namespace Tango.PPC.UI.ViewModels { private JobHandler _jobHandler; private bool _resettingDevice; + private DispatcherTimer _date_timer; /// <summary> /// Gets or sets the module loader. @@ -218,6 +220,16 @@ namespace Tango.PPC.UI.ViewModels set { _cartridges = value; RaisePropertyChangedAuto(); } } + private DateTime _currentDateTime; + /// <summary> + /// Gets or sets the current date time. + /// </summary> + public DateTime CurrentDateTime + { + get { return _currentDateTime; } + set { _currentDateTime = value; RaisePropertyChangedAuto(); } + } + #endregion #region Commands @@ -281,6 +293,10 @@ namespace Tango.PPC.UI.ViewModels /// Gets or sets the stand by command. /// </summary> public RelayCommand StandByCommand { get; set; } + /// <summary> + /// Gets or sets the open general information dialog command. + /// </summary> + public RelayCommand OpenGeneralinformationCommand { get; set; } #endregion @@ -300,17 +316,61 @@ namespace Tango.PPC.UI.ViewModels SignOutCommand = new RelayCommand(SignOut); UpdateCommand = new RelayCommand(UpdateMachine); - PowerCommand = new RelayCommand(() => IsPowerOpened = true); + PowerCommand = new RelayCommand(OpenPowerOptions); RestartApplicationCommand = new RelayCommand(RestartApplication); PowerOffCommand = new RelayCommand(PowerOffMachine, () => MachineProvider.MachineOperator.Status != MachineStatuses.Disconnected); ResetCommand = new RelayCommand(ResetMachine, () => MachineProvider.MachineOperator.Status != MachineStatuses.Disconnected); StandByCommand = new RelayCommand(StandBy, () => MachineProvider.MachineOperator.CanPrint); + OpenGeneralinformationCommand = new RelayCommand(OpenGeneralinformationDlg); + + _date_timer = new DispatcherTimer(); + _date_timer.Interval = TimeSpan.FromSeconds(1); + _date_timer.Tick += _date_timer_Tick; + _date_timer.Start(); } #endregion #region Private Methods + private async void OpenPowerOptions() + { + IsPowerOpened = true; + + if (BuildProvider.IsEureka) + { + PowerEurekaViewVM vm = new PowerEurekaViewVM(); + vm = await NotificationProvider.ShowDialog<PowerEurekaViewVM>(vm); + + if (!vm.DialogResult) return; + + switch(vm.PowerAction) + { + case PowerEurekaViewVM.PowerActionEnum.TurnOff: + if(MachineProvider.MachineOperator.Status != MachineStatuses.Disconnected) + PowerOffMachine(); + return; + case PowerEurekaViewVM.PowerActionEnum.StandBy: + if (MachineProvider.MachineOperator.CanPrint) + StandBy(); + return; + case PowerEurekaViewVM.PowerActionEnum.RestartT: + RestartApplication(); + return; + case PowerEurekaViewVM.PowerActionEnum.Restart: + if (MachineProvider.MachineOperator.Status != MachineStatuses.Disconnected) + ResetMachine(); + return; + case PowerEurekaViewVM.PowerActionEnum.CloseApp: + CloseApplication(); + return; + default: + return; + } + + } + } + /// <summary> /// Stops the printing. /// </summary> @@ -398,6 +458,14 @@ namespace Tango.PPC.UI.ViewModels } } + private async void CloseApplication() + { + if (await NotificationProvider.ShowQuestion("Are you sure you want to close the application?")) + { + ApplicationManager.ShutDown(); + } + } + /// <summary> /// Powers off the machine. /// </summary> @@ -475,6 +543,13 @@ namespace Tango.PPC.UI.ViewModels IsMenuOpened = false; } + private async void OpenGeneralinformationDlg() + { + GeneralInformationViewVM vm = new GeneralInformationViewVM(MachineProvider, ApplicationManager); + vm = await NotificationProvider.ShowDialog<GeneralInformationViewVM>(vm); + + } + #endregion #region Override Methods @@ -578,6 +653,11 @@ namespace Tango.PPC.UI.ViewModels #region Event Handlers + private void _date_timer_Tick(object sender, EventArgs e) + { + CurrentDateTime = DateTime.Now; + } + /// <summary> /// Handles the PrintingStarted event of the MachineOperator. /// </summary> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/LoginViewVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/LoginViewVM.cs index ec316989f..07b58e55f 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/LoginViewVM.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/LoginViewVM.cs @@ -13,6 +13,7 @@ using Tango.PPC.Common.Authentication; using Tango.BL.Entities; using Tango.BL.Enumerations; using Tango.Logging; +using Tango.PPC.UI.Views; namespace Tango.PPC.UI.ViewModels { @@ -95,6 +96,14 @@ namespace Tango.PPC.UI.ViewModels if (!AuthenticationProvider.AuthenticationRequired) { LogManager.Log("Application is ready! Navigating to home module..."); + + if (BuildProvider.IsEureka) + { + var secondsPassed = (DateTime.Now - LoadingView.VideoStartTime).TotalSeconds; + var secondsToHold = Math.Max(10 - secondsPassed, 0); + await Task.Delay(TimeSpan.FromSeconds(secondsToHold)); + } + await NavigationManager.NavigateTo(NavigationView.HomeModule); IsLoading = false; } diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineSetupViewVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineSetupViewVM.cs index cce7d277b..6d99c1ff8 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineSetupViewVM.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineSetupViewVM.cs @@ -306,7 +306,14 @@ namespace Tango.PPC.UI.ViewModels if (connected) { - await NavigateTo(MachineSetupView.TimeZoneView); + if (BuildProvider.IsEureka) + { + await NavigateTo(MachineSetupView.EnvironmentView); + } + else + { + await NavigateTo(MachineSetupView.TimeZoneView); + } } else { @@ -346,7 +353,12 @@ namespace Tango.PPC.UI.ViewModels { _ppcWebClient.Environment = DeploymentSlot; } - await _operationSystemManager.ChangeTimeZone(SelectedTimeZone); + + if (!BuildProvider.IsEureka) + { + await _operationSystemManager.ChangeTimeZone(SelectedTimeZone); + } + _setup_result = await MachineSetupManager.Setup(SerialNumber); State = MachineSetupStates.Completed; LogManager.Log("Machine setup completed."); diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineStatusViewVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineStatusViewVM.cs new file mode 100644 index 000000000..131476c9e --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineStatusViewVM.cs @@ -0,0 +1,855 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.BL.Entities; +using Tango.BL.Enumerations; +using Tango.Core.Commands; +using Tango.Core.DI; +using Tango.Integration.Operation; +using Tango.PMR.Diagnostics; +using Tango.PMR.MachineStatus; +using Tango.PPC.Common; +using Tango.PPC.Common.Diagnostics; +using Tango.PPC.Jobs; +using Tango.PPC.Jobs.NavigationObjects; +using Tango.PPC.Jobs.Views; +using Tango.PPC.UI.Models; +using System.Timers; +using System.Windows.Threading; +using System.Diagnostics; +using Tango.PMR.Printing; +using System.ComponentModel; +using RealTimeGraphX.WPF; +using RealTimeGraphX.DataPoints; +using Tango.PPC.UI.Graphs; +using Tango.BL; +using System.Data.Entity; +using System.Windows.Media; + +namespace Tango.PPC.UI.ViewModels +{ + public class MachineStatusViewVM : PPCViewModel + { + public enum StatisticTab + { + [Description("Production Data")] + Productiondata = 0, + [Description("Temperature")] + Temperature = 1, + [Description("Pressure")] + Pressure = 2, + [Description("Motor")] + Motor = 3 + } + + public class TimeToDyeValueItem + { + public DateTime startTime; + public DateTime endTime; + public double totalValue; + }; + + public class TimeToDyeValueCollection + { + public DateTime StartTime { get; set;} + public List<TimeToDyeValueItem> items; + public TimeToDyeValueCollection() + { + items = new List<TimeToDyeValueItem>(); + } + }; + + private DispatcherTimer _productiondata_timer; + + #region Properties + + [TangoInject] + public IDiagnosticsFrameProvider DefaultDiagnosticsFrameProvider { get; set; } + + private JobHandler _handler; + + private Job _job; + /// <summary> + /// Gets or sets the job. + /// </summary> + public Job Job + { + get { return _job; } + set + { + _job = value; + if (_job == null) + IsDyeingProcess = false; + RaisePropertyChangedAuto(); + InvalidateRelayCommands(); + } + } + + private RunningJobStatus _runningJobStatus; + /// <summary> + /// Gets or sets the running job status. + /// </summary> + public RunningJobStatus RunningJobStatus + { + get { return _runningJobStatus; } + set + { + _runningJobStatus = value; + RaisePropertyChangedAuto(); + } + } + + private bool _isJobStatusViewEnable; + + public bool IsJobStatusViewEnable + { + get { return _isJobStatusViewEnable; } + set { _isJobStatusViewEnable = value; RaisePropertyChangedAuto(); } + } + + private bool _isEnabledStopButton; + /// <summary> + /// Gets or sets a value indicating whether this instance is enabled stop button. + /// </summary> + public bool IsEnabledStopButton + { + get { return _isEnabledStopButton; } + set { _isEnabledStopButton = value; RaisePropertyChangedAuto(); } + } + + private bool _isSpoolView; + /// <summary> + /// Gets or sets a value indicating whether this instance is spool view. + /// </summary> + public bool IsSpoolView + { + get { return _isSpoolView; } + set { _isSpoolView = value; RaisePropertyChangedAuto(); } + } + + private bool _isWeightView; + /// <summary> + /// Gets or sets a value indicating whether this instance is length. Show indicator values in length or weight. + /// </summary> + public bool IsWeghtView + { + get { return _isWeightView; } + set { _isWeightView = value; RaisePropertyChangedAuto(); } + } + + + private bool _isDyeingProcess; + + public bool IsDyeingProcess + { + get { return _isDyeingProcess; } + set + { + if (_isDyeingProcess != value) + { + _isDyeingProcess = value; + RaisePropertyChangedAuto(); + } + } + } + + private BrushStop _currentBrushStop; + public BrushStop CurrentBrushStop + { + get { return _currentBrushStop; } + set + { + // if (_currentBrushStop != value) + { + _currentBrushStop = value; + OnUpdateCurrentBrush(); + RaisePropertyChangedAuto(); + } + } + } + + public JobBrushStop JobBrushStop { get; set; } + + public double CyanOutput + { + get { return GetVolumeLiquidType(LiquidTypes.Cyan); } + } + + public double MagentaOutput + { + get { return GetVolumeLiquidType(LiquidTypes.Magenta); } + } + + public double YellowOutput + { + get { return GetVolumeLiquidType(LiquidTypes.Yellow); } + } + + public double BlackOutput + { + get { return GetVolumeLiquidType(LiquidTypes.Black); } + } + + public double LightCyanOutput + { + get { return GetVolumeLiquidType(LiquidTypes.LightCyan); } + } + + public double LightMagentaOutput + { + get { return GetVolumeLiquidType(LiquidTypes.LightMagenta); } + } + + public double LightYellowOutput + { + get { return GetVolumeLiquidType(LiquidTypes.LightYellow); } + } + + //public double TransparentInkOutput + //{ + // get { return GetVolumeLiquidType(LiquidTypes.TransparentInk); } + //} + + //public double LubricantOutput + //{ + // get { return GetVolumeLiquidType(LiquidTypes.Lubricant); } + //} + + private List<JerricanLevelModel> _midTankLevels; + public List<JerricanLevelModel> MidTankLevels + { + get { return _midTankLevels; } + set { _midTankLevels = value; RaisePropertyChangedAuto(); } + } + + private JerricanLevelModel _midTankLubLevel; + public JerricanLevelModel MidTankLubLevel + { + get { return _midTankLubLevel; } + set { _midTankLubLevel = value; RaisePropertyChangedAuto(); } + } + + public MachineOverviewModel OverviewModel { get; set; } + + private bool _isDisplayJobOutline; + /// <summary> + /// Gets or sets a value indicating whether to display the job outline. + /// </summary> + public bool IsDisplayJobOutline + { + get { return _isDisplayJobOutline; } + set { _isDisplayJobOutline = value; RaisePropertyChangedAuto(); } + } + + private JobTicket _jobOutlineTicket; + /// <summary> + /// Gets or sets the job outline ticket. + /// </summary> + public JobTicket JobOutlineTicket + { + get { return _jobOutlineTicket; } + set { _jobOutlineTicket = value; RaisePropertyChangedAuto(); } + } + + public MachineOverviewErrorStates MachineErrorStates { get; set; } + + private bool _isExpandedNotificatios; + + public bool IsExpandedNotifications + { + get { return _isExpandedNotificatios; } + set { + _isExpandedNotificatios = value; + RaisePropertyChangedAuto();} + } + + private int _selectedStatisticTabIndex; + /// <summary> + /// Gets or sets the index of the selected category. + /// </summary> + public int SelectedStatisticTabIndex + { + get { return _selectedStatisticTabIndex; } + set + { + if (_selectedStatisticTabIndex != value) + { + _selectedStatisticTabIndex = value; + RaisePropertyChangedAuto(); + switch (_selectedStatisticTabIndex) + { + case 0: + { + SelectedStatisticTab = StatisticTab.Productiondata; + break; + } + case 1: + { + SelectedStatisticTab = StatisticTab.Temperature; + break; + } + case 2: + { + SelectedStatisticTab = StatisticTab.Pressure; + break; + } + case 3: + { + SelectedStatisticTab = StatisticTab.Motor; + break; + } + } + } + } + } + + private StatisticTab _selectedStatisticTab; + /// <summary> + /// Gets or sets the selected category. + /// </summary> + /// + public StatisticTab SelectedStatisticTab + { + get + { + return _selectedStatisticTab; + } + set + { + if (_selectedStatisticTab != value) + { + _selectedStatisticTab = value; + RaisePropertyChangedAuto(); + } + _selectedStatisticTabIndex = _selectedStatisticTab.ToInt32(); + RaisePropertyChanged(nameof(SelectedStatisticTabIndex)); + } + } + + public WpfGraphController<DateTimeDataPoint, DoubleDataPoint> JobController { get; set; } + + #endregion + + #region Commands + + public RelayCommand StopCommand { get; set; } + + public RelayCommand AbortCommand { get; set; } + + public RelayCommand ResumeCommand { get; set; } + public RelayCommand CaancelJobCommand{ get; set; } + public RelayCommand RestartJobCommand { get; set; } + public RelayCommand ClearJobCommand { get; set; } + + + public RelayCommand GoToJobCommand { get; set; } + + /// <summary> + /// Gets or sets the job status view command. + /// </summary> + public RelayCommand JobStatusViewCommand { get; set; } + + /// <summary> + /// Gets or sets the overview view command. + /// </summary> + public RelayCommand OverviewViewCommand { get; set; } + + public RelayCommand ClearAllNotificationsCommand { get; set; } + + public RelayCommand DisplayJobOutlineCommand { get; set; } + + public RelayCommand HideJobOutlineCommand { get; set; } + + #endregion + + public MachineStatusViewVM() + { + _productiondata_timer = new DispatcherTimer(); + _productiondata_timer.Interval = TimeSpan.FromMinutes(10); + _productiondata_timer.Tick += _productiondata_timer_Tick; + + + StopCommand = new RelayCommand(StopJob, () => CanStopped()); + AbortCommand = new RelayCommand(AbortJob, () => CanStopped()); + + ResumeCommand = new RelayCommand(ResumeJob, () => CanStopped()); + CaancelJobCommand = new RelayCommand(CaancelJob, () => CanStopped()); + RestartJobCommand = new RelayCommand(RestartJob, () => CanStopped()); + ClearJobCommand = new RelayCommand(ClearJob, () => CanStopped()); + + + GoToJobCommand = new RelayCommand(GoToJob, () => IsEnableGoToJob()); + JobStatusViewCommand = new RelayCommand(JobStatusView); + OverviewViewCommand = new RelayCommand(OverviewView); + ClearAllNotificationsCommand = new RelayCommand(ClearAllNotifications); + DisplayJobOutlineCommand = new RelayCommand(DisplayJobOutline); + HideJobOutlineCommand = new RelayCommand(HideJobOutline); + + IsJobStatusViewEnable = true; + IsEnabledStopButton = false; + IsSpoolView = false; + IsWeghtView = false; + + OverviewModel = new MachineOverviewModel(); + MachineErrorStates = new MachineOverviewErrorStates(); + + IsExpandedNotifications = false; + SelectedStatisticTabIndex = 0; + + JobController = CreateController(CreateSeries("Total", GraphHelper.GraphColor.Green)); + } + + public override void OnApplicationReady() + { + base.OnApplicationReady(); + EventLogger.EventReceived += EventLogger_EventReceived; + + MidTankLevels = MachineProvider.Machine.Configuration.NoneEmptyIdsPacks.Where(x => x.MidTankType.HasLevelMeasure ).OrderBy(x => x.PackIndex).Select(x => new JerricanLevelModel() + { + Max = x.MidTankType.LiterCapacity, + IDSPack = x, + }).OrderBy(y => y.IDSPack.LiquidType.Type).ToList(); + var LubLevel = MachineProvider.Machine.Configuration.NoneEmptyIdsPacks.Where(x => x.MidTankType.Type == MidTankTypes.LubricantMidTank).FirstOrDefault(); + + MidTankLubLevel = new JerricanLevelModel(); + if(LubLevel != null) + { + MidTankLubLevel.Max = LubLevel.MidTankType.LiterCapacity; + MidTankLubLevel.IDSPack = LubLevel; + }; + + MachineProvider.MachineOperator.MachineStatusChanged += MachineOperator_MachineStatusChanged; + + DateTime dateTime = DateTime.Now; + DateTime onedayEarlier = dateTime.AddDays(-1); + + GetCollectionDyePropByStartTime(onedayEarlier); + + _productiondata_timer.Start(); + } + + #region Events + + private void EventLogger_EventReceived(object sender, MachinesEvent ev) + { + InvokeUI(() => + { + if (ev.Category == EventTypeCategories.Error || ev.Category == EventTypeCategories.Critical) + { + IsExpandedNotifications = true; + } + }); + } + + private void MachineOperator_MachineStatusChanged(object sender, MachineStatus status) + { + UpdateMidTankLevels(status); + UpdateMachineStatusErrors(status); + } + private void UpdateMidTankLevels(MachineStatus status) + { + if (!IsJobStatusViewEnable) + { + foreach (var item in status.IDSPacksLevels) + { + JerricanLevelModel model = null; + if (item.Index == 8)//lub + { + model = MidTankLubLevel; + + } + else { + model = MidTankLevels.SingleOrDefault(x => x.IDSPack.PackIndex == item.Index); + } + + if (model != null) + { + model.Level = item.MidTankLevel; + model.JerricanPresent = item.JerricanPresent; + model.FillingTimeoutError = item.FillingTimeoutError; + model.MidTankEmpty = item.MidTankEmpty; + model.MidTankRefillPumpActive = item.MidTankRefillPumpActive; + model.RemainingTimeoutError = TimeSpan.FromSeconds(item.TimerRemainingSeconds); + } + //TEST + //if (model != null) + //{ + // var Li = model.IDSPack.LiquidType.Type; + // var Mid = model.IDSPack.MidTankType.Type; + // model.Level = 0.0; + //model.JerricanPresent = false; + //model.FillingTimeoutError = false; + //model.MidTankEmpty = true; + //model.MidTankRefillPumpActive = false; + //model.RemainingTimeoutError = TimeSpan.FromSeconds(300); + + //if (item.Index == 1) + //{ + // model.Level = 1.0; + //} + //if (item.Index == 2) + //{ + // model.Level = 2.0; + //} + //if (item.Index == 3) + //{ + // model.Level = 3.0; + //} + //if (item.Index == 4)//TI + //{ + // model.Level = 7.0; + //} + //if (item.Index == 5)//LC + //{ + // model.Level = 7.0; + //} + //if (item.Index == 6)//LM + //{ + // model.Level = 3.5; + //} + //if (item.Index == 7)//LY + //{ + // model.Level = 2.5; + //} + // if (item.Index == 8)//Lub + // { + // model.Level = 1.5; + // } + // if (item.Index ==9) + // { + // model.Level = 4.99; + // } + + //} + ////////////////////////////// + } + } + } + + private void UpdateMachineStatusErrors(MachineStatus status) + { + var windersInError = status.WindersInError.ToList();// to test + MachineErrorStates.UpdateWinders(windersInError); + var dansersInError = status.DancersInError.ToList(); + MachineErrorStates.UpdateDancers(dansersInError); + var btsrsInErrors = status.BtsrsInError.ToList(); + MachineErrorStates.UpdateBTSRs(btsrsInErrors); + } + + private void MachineOperator_InkFillingStatusChanged(object sender, InkFillingStatusChangedEventArgs e) + { + //foreach (var cartridge in e.Status.CartridgesStatuses.Where(x => x.Cartridge.Slot != CartridgeSlot.Ink)) + //{ + // var wasteState = WasteStates.SingleOrDefault(x => x.Slot == cartridge.Cartridge.Slot); + + // if (wasteState != null) + // { + // wasteState.State = cartridge.State; + // } + //} + } + + private void _productiondata_timer_Tick(object sender, EventArgs e) + { + var CurrentDateTime = DateTime.Now; + } + #endregion + + #region printing + + public override void OnApplicationStarted() + { + MachineProvider.MachineOperator.PrintingStarted += MachineOperator_PrintingStarted; + MachineProvider.MachineOperator.PrintingEnded += MachineOperator_PrintingEnded; + + DefaultDiagnosticsFrameProvider.FrameReceived += DefaultDiagnosticsFrameProvider_FrameReceived; + } + + private void DefaultDiagnosticsFrameProvider_FrameReceived(object sender, PMR.Diagnostics.StartDiagnosticsResponse e) + { + OverviewModel.Update(e, this.Job != null ? Job.Rml : null, null); + } + + private void MachineOperator_PrintingStarted(object sender, PrintingEventArgs e) + { + _handler = e.JobHandler; + Job = e.Job; + e.JobHandler.StatusChanged += JobHandler_StatusChanged; + //e.JobHandler.SpoolChangeRequired += JobHandler_SpoolChangeRequired; + e.JobHandler.Stopped += JobHandler_Stopped; + e.JobHandler.CanCancelChanged += JobHandler_CanCancelChanged; + InvokeUI(() => + { + IsEnabledStopButton = true; + StopCommand.RaiseCanExecuteChanged(); + AbortCommand.RaiseCanExecuteChanged(); + }); + + + } + + private void JobHandler_Stopped(object sender, EventArgs e) + { + if (_handler != null) + { + _handler.StatusChanged -= JobHandler_StatusChanged; + //_handler.SpoolChangeRequired -= JobHandler_SpoolChangeRequired; + _handler.Stopped -= JobHandler_Stopped; + _handler.StatusChanged -= JobHandler_StatusChanged; + _handler.CanCancelChanged -= JobHandler_CanCancelChanged; + } + } + + private void MachineOperator_PrintingEnded(object sender, PrintingEventArgs e) + { + LogManager.Log("Printing ended"); + InvokeUI(() => + { + IsEnabledStopButton = false; + StopCommand.RaiseCanExecuteChanged(); + AbortCommand.RaiseCanExecuteChanged(); + }); + } + + private void JobHandler_StatusChanged(object sender, RunningJobStatus e) + { + RunningJobStatus = e; + IsDyeingProcess = (RunningJobStatus != null && RunningJobStatus.CurrentSegment != null); + if (RunningJobStatus != null && RunningJobStatus.CurrentSegment != null) + { + if(_runningJobStatus.CurrentSegment.IsInterSegment) + { + CurrentBrushStop = _runningJobStatus.CurrentSegment.BrushStops.FirstOrDefault(); + JobBrushStop = null; + } + else + { + var realsegmIndex = 1; + if (Job.EnableInterSegment && Job.InterSegmentLength > 0) + { + int segmentIndex = _runningJobStatus.CurrentSegment.SegmentIndex - (Job.EffectiveSegments.Count * RunningJobStatus.CurrentUnit); + if(RunningJobStatus.CurrentUnit > 0) + { + segmentIndex -= RunningJobStatus.CurrentUnit;// inter segment between units + } + realsegmIndex = (int)(segmentIndex/2) + 1; + } + else + { + realsegmIndex = Math.Max(_runningJobStatus.CurrentSegment.SegmentIndex - (Job.Segments.Count * RunningJobStatus.CurrentUnit), 0); + } + + var segment = Job.Segments.FirstOrDefault(x => x.SegmentIndex == realsegmIndex); + if (segment != null) + { + if (_handler.JobTicket.Segments.Count > 0) + { + JobBrushStop = _handler.JobTicket.Segments[Job.OrderedSegments.IndexOf(segment)].BrushStops.First(); + } + } + CurrentBrushStop = RunningJobStatus.CurrentSegment.FirstBrushStop; + } + } + } + + private void JobHandler_CanCancelChanged(object sender, EventArgs e) + { + InvokeUI(() => + { + IsEnabledStopButton = _handler.CanCancel; + StopCommand.RaiseCanExecuteChanged(); + AbortCommand.RaiseCanExecuteChanged(); + }); + } + + #endregion + + #region Methods + + private bool IsEnableGoToJob() + { + return Job != null && _handler != null; + } + + private void GoToJob() + { + + NavigationManager.NavigateWithObject<JobsV2Module, JobEurekaView, JobNavigationObject>(new JobNavigationObject() { Job = _handler.Job }); + NavigationManager.ClearHistoryExcept<JobsView>(); + + } + /// <summary> + /// Toggles the application technician mode. + /// </summary> + public void ToggleTechnicianMode() + { + if (!ApplicationManager.IsInTechnicianMode) + { + ApplicationManager.EnterTechnicianMode(); + } + else + { + ApplicationManager.ExitTechnicianMode(); + } + } + + protected void JobStatusView() + { + IsJobStatusViewEnable = true; + } + + protected void OverviewView() + { + IsJobStatusViewEnable = false; + } + + private double GetVolumeLiquidType(LiquidTypes liquidType) + { + if (JobBrushStop != null && JobBrushStop.Dispensers != null && JobBrushStop.Dispensers.Count > 0) + { + var lt = JobBrushStop.Dispensers.FirstOrDefault(x => x.DispenserLiquidType == (DispenserLiquidType)liquidType); + + if (lt != null) + { + return Math.Round(lt.Volume, 2); + } + } + return 0; + } + + private bool CanStopped() + { + return IsEnabledStopButton; + } + + private void StopJob() + { + _handler?.Cancel(); + } + + private void AbortJob() + { + _handler?.Cancel(); + //Job = null; + } + + private void ResumeJob() + { + + } + + private void CaancelJob() + { + Job = null; + } + + private void RestartJob() + { + + } + + private void ClearJob() + { + Job = null; + } + + protected void ClearAllNotifications() + { + NotificationProvider.NotificationItems.Where(x => x.CanClose).ToList().ForEach(y => NotificationProvider.PopNotification(y)); + } + + protected void OnUpdateCurrentBrush() + { + RaisePropertyChanged(nameof(CyanOutput)); + RaisePropertyChanged(nameof(LightCyanOutput)); + RaisePropertyChanged(nameof(MagentaOutput)); + RaisePropertyChanged(nameof(LightMagentaOutput)); + RaisePropertyChanged(nameof(YellowOutput)); + RaisePropertyChanged(nameof(LightYellowOutput)); + RaisePropertyChanged(nameof(BlackOutput)); + } + + private void HideJobOutline() + { + IsDisplayJobOutline = false; + } + + private void DisplayJobOutline() + { + if(_handler != null && _handler.JobTicket != null) + { + JobOutlineTicket = _handler.JobTicket; + IsDisplayJobOutline = true; + } + } + + #endregion + + #region graph + + public TimeToDyeValueCollection graphDyeingValuesCollection = new TimeToDyeValueCollection(); + + private WpfGraphController<DateTimeDataPoint, DoubleDataPoint> CreateController(params WpfGraphDataSeries[] seriesCollection) + { + var controller = new WpfGraphController<DateTimeDataPoint, DoubleDataPoint>(); + + foreach (var series in seriesCollection) + { + controller.DataSeriesCollection.Add(series); + } + + controller.Range.AutoY = true; + controller.Range.MaximumY = 100; + controller.Range.MinimumY = 0; + controller.Range.MaximumX = new DateTime(0).AddMinutes(30); + + controller.RefreshRate = TimeSpan.FromMilliseconds(300000);//5 min + + return controller; + } + + private WpfGraphDataSeries CreateSeries(String name, GraphHelper.GraphColor fill) + { + WpfGraphDataSeries series = new WpfGraphDataSeries() + { + Stroke = Colors.DodgerBlue, + }; + series.Name = name; + series.Fill = GraphHelper.GetGraphBrush(fill); + series.StrokeThickness = 1; + series.Stroke = GraphHelper.GetGraphStrokeColor(); + return series; + } + + public async void GetCollectionDyePropByStartTime(DateTime starttime) + { + try + { + using (ObservablesContext db = ObservablesContext.CreateDefault()) + { + var jobRuns = await db.JobRuns.Where(x => x.StartDate >= starttime).Select(x => new { x.StartDate, x.EndDate, x.EndPosition }).OrderBy(y => y.StartDate).ToListAsync(); + double allvalues = 0; + graphDyeingValuesCollection.StartTime = starttime; + for ( int i = 0; i < jobRuns.Count; i++) + { + JobController.PushData(jobRuns[i].StartDate, allvalues); + if (i > 0) + { + allvalues += jobRuns[i-1].EndPosition; + } + graphDyeingValuesCollection.items.Add( new TimeToDyeValueItem(){ startTime = jobRuns[i].StartDate, endTime = jobRuns[i].EndDate, totalValue = allvalues }); + JobController.PushData(jobRuns[i].EndDate, allvalues); + } + } + } + catch (Exception ex) + { + LogManager.Log(ex, "Error loading machine counters."); + + } + } + #endregion + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineUpdateViewVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineUpdateViewVM.cs index 14b9b76e3..7caabf6a1 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineUpdateViewVM.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineUpdateViewVM.cs @@ -566,7 +566,11 @@ namespace Tango.PPC.UI.ViewModels { _updateNotificationItem = null; }; - NotificationProvider.PushNotification(_updateNotificationItem); + + if (!BuildProvider.IsEureka) + { + NotificationProvider.PushNotification(_updateNotificationItem); + } }); } } diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MainViewVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MainViewVM.cs index 50f4ed054..9b47cf390 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MainViewVM.cs @@ -328,7 +328,7 @@ namespace Tango.PPC.UI.ViewModels { _screenSaverTimer.Interval = TimeSpan.FromMinutes(Settings.ScreenSaverStartDuration).TotalMilliseconds; - if (Settings.EnableScreenSaver && !MachineProvider.IsConnected) + if (Settings.EnableScreenSaver && !MachineProvider.IsConnected && !BuildProvider.IsEureka) { IsScreenSaverOn = true; } diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LayoutEurekaView.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LayoutEurekaView.xaml new file mode 100644 index 000000000..049f2268d --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LayoutEurekaView.xaml @@ -0,0 +1,342 @@ +<UserControl x:Class="Tango.PPC.UI.Views.LayoutEurekaView" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:Tango.PPC.UI.Views" + xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" + xmlns:fa="http://schemas.fontawesome.io/icons/" + xmlns:vm="clr-namespace:Tango.PPC.UI.ViewModels" + xmlns:global="clr-namespace:Tango.PPC.UI" + xmlns:localConverters="clr-namespace:Tango.PPC.UI.Converters" + xmlns:operations="clr-namespace:Tango.Integration.Operation;assembly=Tango.Integration" + xmlns:touch="clr-namespace:Tango.Touch.Controls;assembly=Tango.Touch" + xmlns:commonControls="clr-namespace:Tango.PPC.Common.Controls;assembly=Tango.PPC.Common" + xmlns:controls="clr-namespace:Tango.SharedUI.Controls;assembly=Tango.SharedUI" + xmlns:components="clr-namespace:Tango.Touch.Components;assembly=Tango.Touch" + xmlns:locaControls="clr-namespace:Tango.PPC.UI.Controls" + xmlns:keyboard="clr-namespace:Tango.Touch.Keyboard;assembly=Tango.Touch" + mc:Ignorable="d" + d:DesignHeight="1080" d:DesignWidth="1920" d:DataContext="{d:DesignInstance Type=vm:LayoutViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.LayoutViewVM}"> + + <UserControl.Resources> + <localConverters:ItemBaseConverter x:Key="NotificationItemConverter" /> + <localConverters:AppBarItemConverter x:Key="AppBarItemConverter" /> + <localConverters:ItemBaseConverter x:Key="ItemBaseConverter" /> + <localConverters:ComapareModulNameConverter x:Key="ComapareModulNameConverter"/> + </UserControl.Resources> + + + <Grid> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="Auto"/> + <ColumnDefinition Width="Auto"/> + <ColumnDefinition Width="Auto"/> + </Grid.ColumnDefinitions> + + <Grid Background="{StaticResource TangoPrimaryBackgroundBrush}"> + <Viewbox Stretch="Fill" Width="350"> + <Grid Width="204" Height="750" > + <Border TextElement.FontSize="16" x:Name="border" BorderThickness="0 0 0 0" BorderBrush="{StaticResource TangoDarkForegroundBrush}" TextElement.Foreground="{StaticResource TangoDarkForegroundBrush}"> + <Grid Background="{StaticResource TangoMenuPanelDarkBrush}" > + <StackPanel VerticalAlignment="Top"> + <Border Background="{StaticResource TangoPrimaryBackgroundBrush}" BorderBrush="{StaticResource TangoDividerBrush}" BorderThickness="0 0 0 0" > + <Grid > + <!--<Border Height="71" Background="{StaticResource TangoPrimaryBackgroundBrush}">--> + <!--<Border.Effect> + <DropShadowEffect Color="Silver" ShadowDepth="0" BlurRadius="20" Opacity="1" /> + </Border.Effect>--> + <!--</Border>--> + <touch:TouchButton Padding="0 0" Command="{Binding OpenGeneralinformationCommand}" Style="{StaticResource TangoFlatButton}" Background="Transparent"> + <StackPanel > + <DockPanel Background="{StaticResource TangoMenuPanelDarkBrush}"> + <Image Source="/Images/logo.png" Stretch="Uniform" HorizontalAlignment="Center" Margin="0 10 10 10" Width="157" Height="51"></Image> + </DockPanel> + </StackPanel> + </touch:TouchButton> + </Grid> + </Border> + <touch:TouchButton Command="{Binding MenuOrBackCommand}" Padding="8" Style="{StaticResource TangoFlatButton}" Width="164" Height="32" IsHitTestVisible="{Binding NavigationManager.IsNavigating,Converter={StaticResource BooleanInverseConverter}}" + IsEnabled="{Binding NavigationManager.CanNavigateBack}" BorderThickness="0" + Foreground="{StaticResource TangoLightForegroundBrush}" Background="{StaticResource TangoMidAccentBrush}" CornerRadius="18" Margin="0 8 0 8"> + + <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center"> + <touch:TouchIcon Icon="ArrowLeft" Background="Transparent" Width="30" BorderThickness="0" HorizontalAlignment="Center" Margin="-8 0 0 0"> + <touch:TouchIcon.Style> + <Style TargetType="touch:TouchIcon" BasedOn="{StaticResource {x:Type touch:TouchIcon}}"> + <Style.Triggers> + <Trigger Property="IsEnabled" Value="False"> + <Setter Property="Foreground" Value="{StaticResource TangoDisabledBackgroundBrush}"></Setter> + </Trigger> + </Style.Triggers> + </Style> + </touch:TouchIcon.Style> + </touch:TouchIcon> + <TextBlock HorizontalAlignment="Center" Background="Transparent" FontSize="{StaticResource TangoComboBoxItemFontSize}" VerticalAlignment="Center" Foreground="{StaticResource TangoLightForegroundBrush}" Margin="5 0 0 0" >Back</TextBlock> + </StackPanel> + + </touch:TouchButton> + + <ItemsControl ItemsSource="{Binding ModuleLoader.UserModules}" Margin="0 0 0 0"> + <ItemsControl.ItemTemplate> + <DataTemplate> + <Border Visibility="{Binding DockToBottom,Converter={StaticResource BooleanToVisibilityInverseConverter}}"> + <Border BorderBrush="{StaticResource TangoDividerBrush}" BorderThickness="0 0 0 0" Visibility="{Binding IsVisibleInMenu,Converter={StaticResource BooleanToVisibilityConverter}}"> + <touch:TouchButton Height="45" Margin="0 0 0 0" Padding="10 0" Command="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.ModuleNavigationCommand}" CommandParameter="{Binding Name}" > + <StackPanel Orientation="Horizontal" HorizontalAlignment="Left"> + <Image VerticalAlignment="Center" Source="{Binding Image}" Width="20" Height="20"></Image> + <TextBlock VerticalAlignment="Center" Margin="20 0 0 0" Text="{Binding Name}" FontSize="{StaticResource TangoDataGridHeaderFontSize}" FontWeight="Light"></TextBlock> + </StackPanel> + <touch:TouchButton.Style> + <Style TargetType="touch:TouchButton" BasedOn="{StaticResource TangoFlatButton}" > + <Setter Property="Foreground" Value="{StaticResource TangoLightForegroundBrush}"></Setter> + <Setter Property="Background" Value="Transparent"/> + <Style.Triggers> + <DataTrigger Value="True"> + <DataTrigger.Binding> + <MultiBinding Converter="{StaticResource ComapareModulNameConverter}" Delay="100"> + <Binding RelativeSource="{RelativeSource AncestorType=UserControl}" Path="DataContext.NavigationManager.CurrentModule"></Binding> + <Binding Path="Name"></Binding> + </MultiBinding> + </DataTrigger.Binding> + <DataTrigger.Setters> + <Setter Property="Foreground" Value="{StaticResource TangoDarkForegroundBrush}"></Setter> + <Setter Property="Background" Value="{StaticResource TangoMidBackgroundBrush}"></Setter> + </DataTrigger.Setters> + </DataTrigger> + </Style.Triggers> + </Style> + </touch:TouchButton.Style> + </touch:TouchButton> + </Border> + </Border> + </DataTemplate> + </ItemsControl.ItemTemplate> + </ItemsControl> + + <StackPanel Margin="0 5 0 0"> + <Border BorderBrush="{StaticResource TangoDividerBrush}" BorderThickness="0 0 0 0"> + <touch:TouchButton Style="{StaticResource TangoFlatButton}" Padding="10 0" Height="45" Foreground="{StaticResource TangoDarkForegroundBrush}" Command="{Binding UpdateCommand}"> + <StackPanel Orientation="Horizontal" HorizontalAlignment="Left"> + <Image Source="/Images/Menu/update.png" VerticalAlignment="Center" Width="20" Height="20"></Image> + <TextBlock VerticalAlignment="Center" Margin="20 0 0 0" Foreground="{StaticResource TangoLightForegroundBrush}" FontSize="{StaticResource TangoDataGridHeaderFontSize}" FontWeight="Light">Update</TextBlock> + </StackPanel> + </touch:TouchButton> + </Border> + </StackPanel> + <StackPanel Margin="0 5 0 0"> + <Border BorderBrush="{StaticResource TangoDividerBrush}" BorderThickness="0 0 0 0"> + <touch:TouchButton Style="{StaticResource TangoFlatButton}" Padding="10 0" Height="45" Foreground="{StaticResource TangoDarkForegroundBrush}" Command="{Binding PowerCommand}"> + <StackPanel Orientation="Horizontal" HorizontalAlignment="Left"> + <Image Source="/Images/menu/power.png" VerticalAlignment="Center" Width="20" Height="20" ></Image> + <TextBlock VerticalAlignment="Center" Margin="20 0 0 0" Foreground="{StaticResource TangoLightForegroundBrush}" FontSize="{StaticResource TangoDataGridHeaderFontSize}" FontWeight="Light">Power</TextBlock> + </StackPanel> + </touch:TouchButton> + </Border> + </StackPanel> + </StackPanel> + + <Grid VerticalAlignment="Bottom"> + + <StackPanel Orientation="Vertical"> + <Border Background="Transparent" Padding="5"> + <UniformGrid Columns="5" Rows="1"> + + <touch:TouchIcon Width="20" Height="20" VerticalAlignment="Center"> + <touch:TouchIcon.Style> + <Style TargetType="touch:TouchIcon" BasedOn="{StaticResource {x:Type touch:TouchIcon}}"> + <Setter Property="Icon" Value="WifiStrengthOff"></Setter> + <Setter Property="Foreground" Value="{StaticResource TangoGrayBrush}"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding ConnectivityProvider.IsConnected}" Value="True"> + <Setter Property="Icon" Value="Wifi"></Setter> + <Setter Property="Foreground" Value="{StaticResource TangoSuccessBrush}"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </touch:TouchIcon.Style> + </touch:TouchIcon> + + <touch:TouchIcon Margin="10 0 0 0" Width="18" Height="18" VerticalAlignment="Center"> + <touch:TouchIcon.Style> + <Style TargetType="touch:TouchIcon" BasedOn="{StaticResource {x:Type touch:TouchIcon}}"> + <Setter Property="Icon" Value="LanDisconnect"></Setter> + <Setter Property="Foreground" Value="{StaticResource TangoGrayBrush}"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding ConnectivityProvider.IsLanConnected}" Value="True"> + <Setter Property="Icon" Value="LanConnect"></Setter> + <Setter Property="Foreground" Value="{StaticResource TangoSuccessBrush}"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </touch:TouchIcon.Style> + </touch:TouchIcon> + + <touch:TouchIcon Margin="10 0 0 0" Width="18" Height="18" VerticalAlignment="Center" Icon="Bridge" Visibility="{Binding ExternalBridgeService.Enabled,Converter={StaticResource BooleanToVisibilityConverter}}"> + <touch:TouchIcon.Style> + <Style TargetType="touch:TouchIcon"> + <Setter Property="Foreground" Value="{StaticResource TangoGrayBrush}"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding ExternalBridgeService.HasSessions}" Value="True"> + <Setter Property="Foreground" Value="{StaticResource TangoSuccessBrush}"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </touch:TouchIcon.Style> + </touch:TouchIcon> + + <touch:TouchIcon Margin="10 0 0 0" Width="18" Height="18" VerticalAlignment="Center" Foreground="{StaticResource TangoSuccessBrush}" Icon="RemoteDesktop" /> + <!--Visibility="{Binding RemoteDesktopService.InSession,Converter={StaticResource BooleanToVisibilityConverter}}"--> + + <touch:TouchIcon Margin="10 0 0 0" Width="20" Height="20" Icon="HddSolid"> + <touch:TouchIcon.Style> + <Style TargetType="touch:TouchIcon" BasedOn="{StaticResource {x:Type touch:TouchIcon}}"> + <Setter Property="Foreground" Value="{StaticResource TangoGrayBrush}"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding StorageProvider.IsConnected}" Value="True"> + <Setter Property="Foreground" Value="{StaticResource TangoSuccessBrush}"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </touch:TouchIcon.Style> + </touch:TouchIcon> + + </UniformGrid> + </Border> + <Border Height="1" Margin="10" Background="{StaticResource TangoDividerBrush}"></Border> + <TextBlock VerticalAlignment="Center" Text="{Binding CurrentDateTime, StringFormat='{}{0:HH:mm MM/dd/yyyy}'}" FontSize="18" Foreground="{StaticResource TangoPrimaryBackgroundBrush}" HorizontalAlignment="Center" Margin="0 0 0 16" FontWeight="Light"></TextBlock> + </StackPanel> + + + </Grid> + </Grid> + </Border> + </Grid> + </Viewbox> + + <Grid Background="{StaticResource TangoPanelMaskBrushLight}" Visibility="{Binding NotificationProvider.HasDialogOrMessage,Converter={StaticResource BooleanToVisibilityConverter}}"> + + </Grid> + </Grid> + + <Grid Background="Gainsboro" Grid.Column="2"> + <Viewbox Stretch="Fill" Width="1246" Height="1400"> + <local:MachineStatusView /> + </Viewbox> + </Grid> + + <Grid Grid.Column="1" Background="{StaticResource TangoPrimaryBackgroundBrush}"> + <Grid> + <!--<Viewbox>--> + <touch:TouchPanelEureka Margin="0 -40 0 0" Width="900" Height="1445" + HasMessageBox="{Binding NotificationProvider.HasMessageBox}" + CurrentMessageBox="{Binding NotificationProvider.CurrentMessageBox}" + HasDialog="{Binding NotificationProvider.HasDialog}" + CurrentDialog="{Binding NotificationProvider.CurrentDialog}" + IsBusy="{Binding NotificationProvider.IsInGlobalBusyState}" + BusyMessage="{Binding NotificationProvider.GlobalBusyMessage}"> + <Grid> + <DockPanel> + <Border BorderThickness="0 0 0 0" BorderBrush="{StaticResource TangoDividerBrush}" DockPanel.Dock="Top" Height="41"> + <DockPanel Visibility="Collapsed"> + <Border Height="101" BorderThickness="0 0 0 0" BorderBrush="{StaticResource TangoDividerBrush}"> + <!--<touch:TouchHamburgerButton IsHitTestVisible="{Binding NavigationManager.IsNavigating,Converter={StaticResource BooleanInverseConverter}}" IsEnabled="{Binding NavigationManager.IsBackEnabled}" Width="100" Height="100" Padding="15" Command="{Binding MenuOrBackCommand}" EnableDropShadow="False" Foreground="{StaticResource TangoPrimaryAccentBrush}" IsBack="{Binding NavigationManager.CanNavigateBack}"/>--> + </Border> + + <Grid DockPanel.Dock="Right" Margin="0 0 20 0"> + <StackPanel Orientation="Horizontal"> + <Grid> + <StackPanel Visibility="Hidden" x:Name="techPressElement" VerticalAlignment="Center" Background="Transparent"> + <locaControls:MachineStatusControl HorizontalAlignment="Center" DataContext="{Binding MachineProvider.MachineOperator}" /> + <TextBlock Margin="0 10 0 0" Text="{Binding MachineProvider.MachineOperator.Status,Converter={StaticResource EnumToDescriptionConverter}}"></TextBlock> + </StackPanel> + + <Grid Visibility="Hidden" IsHitTestVisible="False" HorizontalAlignment="Center"> + <Grid.Style> + <Style TargetType="Grid"> + <Setter Property="Visibility" Value="Hidden"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding MachineProvider.MachineOperator.MachineStatus.AutoInkFillingEnabled}" Value="True"> + <Setter Property="Visibility" Value="Visible"></Setter> + </DataTrigger> + <DataTrigger Binding="{Binding MachineProvider.MachineOperator.IsConnected}" Value="False"> + <Setter Property="Visibility" Value="Hidden"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </Grid.Style> + <touch:TouchIcon Icon="InvertColors" Foreground="#151515" Width="18" Height="18" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0 6 -30 0"></touch:TouchIcon> + </Grid> + </Grid> + </StackPanel> + </Grid> + + <Grid> + + <Grid Margin="20 0 60 0" Height="80" Visibility="{Binding NotificationProvider.HasAppBarItems,Converter={StaticResource BooleanToVisibilityConverter}}"> + <ItemsControl ItemsSource="{Binding NotificationProvider.AppBarItems}"> + <ItemsControl.ItemsPanel> + <ItemsPanelTemplate> + <Grid IsItemsHost="True" /> + </ItemsPanelTemplate> + </ItemsControl.ItemsPanel> + <ItemsControl.ItemTemplate> + <DataTemplate> + <Grid Background="{StaticResource TangoPrimaryBackgroundBrush}"> + <ContentControl Content="{Binding Converter={StaticResource AppBarItemConverter}}"></ContentControl> + </Grid> + </DataTemplate> + </ItemsControl.ItemTemplate> + </ItemsControl> + </Grid> + </Grid> + </DockPanel> + </Border> + + <Border Margin="0 0 0 0" DockPanel.Dock="Top" Visibility="{Binding IsInkFillingOrWasteEmptying,Converter={StaticResource BooleanToVisibilityConverter}}"> + <ItemsControl ItemsSource="{Binding Cartridges}"> + <ItemsControl.ItemTemplate> + <DataTemplate> + <Border Margin="0 5 0 0" Visibility="{Binding InProgress,Converter={StaticResource BooleanToVisibilityConverter}}"> + <StackPanel> + <DockPanel Margin="2 0 0 0"> + <touch:TouchIcon> + <touch:TouchIcon.Style> + <Style TargetType="touch:TouchIcon" BasedOn="{StaticResource {x:Type touch:TouchIcon}}"> + <Setter Property="Icon" Value="Recycle"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding Status.Cartridge.Slot}" Value="Ink"> + <Setter Property="Icon" Value="FormatColorFill"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </touch:TouchIcon.Style> + </touch:TouchIcon> + <TextBlock VerticalAlignment="Center" Margin="5 0 0 0" Text="{Binding Message,Mode=OneWay}" FontSize="{StaticResource TangoSmallFontSize}"></TextBlock> + </DockPanel> + <touch:TouchProgressBar Foreground="{Binding Brush,Mode=OneWay}" Background="#DBDBDB" Height="3" Margin="0 2 0 0" Minimum="0" Maximum="100" Value="{Binding Status.ProgressPercentage}" /> + </StackPanel> + </Border> + </DataTemplate> + </ItemsControl.ItemTemplate> + </ItemsControl> + </Border> + + <Grid Background="{StaticResource TangoPrimaryBackgroundBrush}"> + <controls:NavigationControl x:Name="NavigationControl" x:FieldModifier="public" TransitionAlwaysFades="False" TransitionType="Fade" KeepElementsAttached="False" UseDefferedRendering="True"> + <!--MODULES GOES HERE--> + </controls:NavigationControl> + </Grid> + </DockPanel> + </Grid> + </touch:TouchPanelEureka> + <!--</Viewbox>--> + </Grid> + </Grid> + + <Grid PreviewMouseUp="Grid_PreviewMouseUp" IsHitTestVisible="True" Background="Transparent" Visibility="{Binding ApplicationManager.IsScreenLocked,Converter={StaticResource BooleanToVisibilityConverter}}" Grid.ColumnSpan="3"> + <touch:TouchIcon HorizontalAlignment="Right" VerticalAlignment="Bottom" Margin="40" Icon="Lock" Width="60" Height="60" Opacity="0.5" Foreground="{StaticResource TangoSuccessBrush}" /> + </Grid> + </Grid> + +</UserControl> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LayoutEurekaView.xaml.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LayoutEurekaView.xaml.cs new file mode 100644 index 000000000..903c15149 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LayoutEurekaView.xaml.cs @@ -0,0 +1,58 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Threading; +using Tango.Core.EventArguments; +using Tango.Logging; +using Tango.PPC.Common; +using Tango.PPC.UI.ViewModels; +using Tango.PPC.UI.ViewsContracts; +using Tango.SharedUI.Controls; + +namespace Tango.PPC.UI.Views +{ + /// <summary> + /// Interaction logic for LayoutView.xaml + /// </summary> + public partial class LayoutEurekaView : UserControl, ILayoutView + { + public static LayoutEurekaView Instance { get; private set; } + private LayoutViewVM _vm; + + public LayoutEurekaView() + { + InitializeComponent(); + Instance = this; + Loaded += (_, __) => _vm = DataContext as LayoutViewVM; + this.PreviewMouseUp += LayoutView_PreviewMouseUp; + } + + private void LayoutView_PreviewMouseUp(object sender, MouseButtonEventArgs e) + { + _vm.ApplicationManager.ResetScreenLockTimer(); + } + + private void Grid_PreviewMouseUp(object sender, MouseButtonEventArgs e) + { + _vm.ApplicationManager.ReleaseScreenLock(); + } + + public NavigationControl GetNavigationControl() + { + return NavigationControl; + } + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LayoutView.xaml.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LayoutView.xaml.cs index b87f14b89..901f8fd1b 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LayoutView.xaml.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LayoutView.xaml.cs @@ -20,6 +20,7 @@ using Tango.Logging; using Tango.PPC.Common; using Tango.PPC.UI.ViewModels; using Tango.PPC.UI.ViewsContracts; +using Tango.SharedUI.Controls; namespace Tango.PPC.UI.Views { @@ -93,5 +94,10 @@ namespace Tango.PPC.UI.Views { _vm.ApplicationManager.ReleaseScreenLock(); } + + public NavigationControl GetNavigationControl() + { + return NavigationControl; + } } } diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LoadingView.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LoadingView.xaml index 146d4b50d..3ed91e5db 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LoadingView.xaml +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LoadingView.xaml @@ -9,47 +9,16 @@ xmlns:global="clr-namespace:Tango.PPC.UI" xmlns:touch="clr-namespace:Tango.Touch.Controls;assembly=Tango.Touch" xmlns:local="clr-namespace:Tango.PPC.UI.Views" + xmlns:mediaKit="clr-namespace:WPFMediaKit.DirectShow.Controls;assembly=WPFMediaKit" mc:Ignorable="d" d:DesignHeight="1280" d:DesignWidth="800" Background="{StaticResource TangoPrimaryBackgroundBrush}" d:DataContext="{d:DesignInstance Type=vm:LoadingViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.LoadingView}"> <Grid> - <StackPanel HorizontalAlignment="Center"> - <!--<Image gif:ImageBehavior.EnableAnimation="{Binding IsLoading}" gif:ImageBehavior.AnimatedSource="/Images/Twine_Loading_GIF.gif" Margin="100 100 100 0" RenderTransformOrigin="0.5,0.5" RenderOptions.BitmapScalingMode="Fant" Height="382"> - <Image.Style> - <Style TargetType="Image"> - <Setter Property="RenderTransform"> - <Setter.Value> - <ScaleTransform ScaleX="1" ScaleY="1" /> - </Setter.Value> - </Setter> - <Setter Property="Effect"> - <Setter.Value> - <fx:DisplaySettingEffect SaturationLevel="0" /> - </Setter.Value> - </Setter> - <Style.Triggers> - <DataTrigger Binding="{Binding IsLoading}" Value="True"> - <DataTrigger.EnterActions> - <BeginStoryboard> - <Storyboard> - <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleY" Duration="00:00:1" To="1.010" AutoReverse="True" RepeatBehavior="10x" /> - <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX" Duration="00:00:1" To="1.010" AutoReverse="True" RepeatBehavior="10x" /> - <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Effect.SaturationLevel" Duration="00:00:3" AutoReverse="True" RepeatBehavior="3x"> - <LinearDoubleKeyFrame KeyTime="00:00:00" Value="0" /> - <LinearDoubleKeyFrame KeyTime="00:00:2" Value="1" /> - <LinearDoubleKeyFrame KeyTime="00:00:3" Value="6" /> - </DoubleAnimationUsingKeyFrames> - </Storyboard> - </BeginStoryboard> - </DataTrigger.EnterActions> - </DataTrigger> - </Style.Triggers> - </Style> - </Image.Style> - </Image>--> - + <Grid x:Name="videoPlayerGrid" Visibility="{Binding BuildProvider.BuildType,Converter={StaticResource BuildTypeToVisibilityConverter},ConverterParameter='Eureka'}"> + <mediaKit:MediaUriElement x:Name="videoPlayer" Stretch="Uniform" LoadedBehavior="Manual" /> + </Grid> + <StackPanel HorizontalAlignment="Center" Visibility="{Binding BuildProvider.BuildType,Converter={StaticResource BuildTypeToVisibilityConverter},ConverterParameter='TS1800'}"> + <Grid Margin="0 0 0 0"> - <!--<Image Source="/Images/machine.png" Stretch="Uniform" Width="250" RenderOptions.BitmapScalingMode="Fant"></Image> - <touch:TouchBusyIndicator Width="350" Height="350" IsIndeterminate="{Binding IsLoading}" />--> <touch:TouchGifAnimation Source="/Images/loading_anim2.gif" EnableAnimation="{Binding IsLoading}" Margin="0 200 0 0" /> </Grid> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LoadingView.xaml.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LoadingView.xaml.cs index a1214a0df..4616ea438 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LoadingView.xaml.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LoadingView.xaml.cs @@ -12,6 +12,9 @@ using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; +using Tango.Core.DI; +using Tango.PPC.Common.Application; +using Tango.PPC.Common.Build; namespace Tango.PPC.UI.Views { @@ -20,9 +23,22 @@ namespace Tango.PPC.UI.Views /// </summary> public partial class LoadingView : UserControl { + public static DateTime VideoStartTime { get; set; } + public LoadingView() { InitializeComponent(); + + var buildProvider = TangoIOC.Default.GetInstance<IBuildProvider>(); + var appManager = TangoIOC.Default.GetInstance<IPPCApplicationManager>(); + + if (buildProvider.IsEureka) + { + VideoStartTime = DateTime.Now; + videoPlayer.Source = new Uri(appManager.StartPath + "\\Intro.wmv", UriKind.Absolute); + videoPlayer.MediaOpened += (_, __) => VideoStartTime = DateTime.Now; + videoPlayer.Play(); + } } } } diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MachineStatusView.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MachineStatusView.xaml new file mode 100644 index 000000000..8f2b49f9e --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MachineStatusView.xaml @@ -0,0 +1,1435 @@ +<UserControl x:Class="Tango.PPC.UI.Views.MachineStatusView" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:sys="clr-namespace:System;assembly=mscorlib" + xmlns:shapes="clr-namespace:Tango.SharedUI.Shapes;assembly=Tango.SharedUI" + xmlns:touch="clr-namespace:Tango.Touch.Controls;assembly=Tango.Touch" + xmlns:vm="clr-namespace:Tango.PPC.UI.ViewModels" + xmlns:entities="clr-namespace:Tango.BL.Entities;assembly=Tango.BL" + xmlns:locaControls="clr-namespace:Tango.PPC.UI.Controls" + xmlns:localConverters="clr-namespace:Tango.PPC.UI.Converters" + xmlns:global="clr-namespace:Tango.PPC.UI" + xmlns:models="clr-namespace:Tango.PPC.UI.Models" + xmlns:graphs="clr-namespace:Tango.PPC.UI.Graphs" + xmlns:local="clr-namespace:Tango.PPC.UI.Views" + mc:Ignorable="d" + d:DesignHeight="1280" d:DesignWidth="932" d:DataContext="{d:DesignInstance Type=vm:MachineStatusViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.MachineStatusViewVM}"> + <UserControl.Resources> + + <localConverters:LengthToWeightConverter x:Key="LengthToWeightConverter" /> + <localConverters:LengthWithSpoolsConverter x:Key="LengthWithSpoolsConverter"/> + <localConverters:CollectionToCountConverter x:Key="CollectionToCountConverter"/> + <localConverters:ProgressLengthSpoolConverter x:Key="ProgressLengthSpoolConverter"/> + <localConverters:ProgressWeightSpoolConverter x:Key="ProgressWeightSpoolConverter"/> + <localConverters:LiquidTypeToBrushConverter x:Key="LiquidTypeToBrushConverter"/> + <localConverters:MidTankLevelToElementRectConverter x:Key="MidTankLevelToElementRectConverter"/> + <localConverters:ProgressUnitSpoolConverter x:Key="ProgressUnitSpoolConverter"/> + <localConverters:StatisticTabToVisibilityConverter x:Key="StatisticTabToVisibilityConverter"/> + + <Style x:Key="LinkRoundButtonStyle" TargetType="{x:Type touch:TouchButton}"> + <Setter Property="Background" Value="{StaticResource TangoMidAccentBrush}"></Setter> + <Setter Property="CornerRadius" Value="23"></Setter> + <Setter Property="EnableDropShadow" Value="False"></Setter> + <Setter Property="Width" Value="160"/> + <Setter Property="Height" Value="46"/> + <Setter Property="RenderOptions.EdgeMode" Value="Unspecified"/> + </Style> + + <Style x:Key="SliderGreyTextStyle" TargetType="TextBlock"> + <Setter Property="FontSize" Value="{StaticResource TangoDefaultFontSize}"></Setter> + <Setter Property="VerticalAlignment" Value="Center"></Setter> + <Setter Property="HorizontalAlignment" Value="Center"></Setter> + </Style> + + <DataTemplate x:Key="CMYK_Template" DataType="{x:Type entities:BrushStop}"> + <UniformGrid Rows="1" Columns="4" Height="Auto" MinWidth="180"> + <StackPanel Orientation="Vertical"> + <Border Width="50" Height="50" Background="Cyan" CornerRadius="16" HorizontalAlignment="Left"></Border> + <TextBlock Margin="0 10 0 0" Text="C" FontSize="{StaticResource TangoDefaultFontSize}" HorizontalAlignment="Center"/> + <TextBlock Margin="0 10 0 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Cyan, StringFormat=0.##}" ></TextBlock> + </StackPanel> + <StackPanel Orientation="Vertical" Margin="0 0 0 0"> + <Border Width="50" Height="50" Background="Magenta" CornerRadius="16" HorizontalAlignment="Left"></Border> + <TextBlock Margin="0 10 0 0" Text="M" FontSize="{StaticResource TangoDefaultFontSize}" HorizontalAlignment="Center"/> + <TextBlock Margin="0 10 0 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Magenta, StringFormat=0.##}" ></TextBlock> + </StackPanel> + <StackPanel Orientation="Vertical" Margin="10 0 0 0"> + <Border Width="50" Height="50" Background="Yellow" CornerRadius="16" HorizontalAlignment="Left"></Border> + <TextBlock Margin="0 10 0 0" Text="Y" FontSize="{StaticResource TangoDefaultFontSize}" HorizontalAlignment="Center"/> + <TextBlock Margin="0 10 0 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Yellow, StringFormat=0.##}" ></TextBlock> + </StackPanel> + <StackPanel Orientation="Vertical" Margin="10 0 0 0"> + <Border Width="50" Height="50" Background="Black" CornerRadius="16" HorizontalAlignment="Left"></Border> + <TextBlock Margin="0 10 0 0" Text="K" FontSize="{StaticResource TangoDefaultFontSize}" HorizontalAlignment="Center"/> + <TextBlock Margin="0 10 0 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Black, StringFormat=0.##}"></TextBlock> + </StackPanel> + </UniformGrid> + </DataTemplate> + + <DataTemplate x:Key="RGB_Template" DataType="{x:Type entities:BrushStop}"> + <UniformGrid Rows="1" Columns="3" Height="Auto" > + <StackPanel Orientation="Vertical"> + <Border Width="50" Height="50" Background="Red" CornerRadius="16" HorizontalAlignment="Left"></Border> + <TextBlock Margin="0 10 0 0" Text="R" FontSize="{StaticResource TangoDefaultFontSize}" VerticalAlignment="Center" HorizontalAlignment="Center"/> + <TextBlock Margin="0 10 0 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Red}" ></TextBlock> + + </StackPanel> + <StackPanel Orientation="Vertical" Margin="4 0 0 0"> + <Border Width="50" Height="50" Background="Green" CornerRadius="16" HorizontalAlignment="Left"></Border> + <TextBlock Margin="0 10 0 0" Text="G" FontSize="{StaticResource TangoDefaultFontSize}" VerticalAlignment="Center" HorizontalAlignment="Center"/> + <TextBlock Margin="0 10 0 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Green}" ></TextBlock> + + </StackPanel> + <StackPanel Orientation="Vertical" Margin="4 0 0 0"> + <Border Width="50" Height="50" Background="Blue" CornerRadius="16" HorizontalAlignment="Left"></Border> + <TextBlock Margin="0 10 0 0" Text="B" FontSize="{StaticResource TangoDefaultFontSize}" VerticalAlignment="Center" HorizontalAlignment="Center"/> + <TextBlock Margin="0 10 0 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Blue}" ></TextBlock> + </StackPanel> + </UniformGrid> + </DataTemplate> + + <DataTemplate x:Key="LAB_Template" DataType="{x:Type entities:BrushStop}"> + <UniformGrid Rows="1" Columns="3" Height="Auto" MinWidth="180" HorizontalAlignment="Left"> + <StackPanel Orientation="Vertical"> + <Border Width="50" Height="50" Background="Gray" CornerRadius="16" HorizontalAlignment="Left"></Border> + <TextBlock Margin="0 10 0 0 " Text="L" FontSize="{StaticResource TangoDefaultFontSize}" HorizontalAlignment="Center"/> + <TextBlock Margin="0 10 0 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding L, StringFormat=0.##}" ></TextBlock> + + </StackPanel> + <StackPanel Orientation="Vertical" Width="50" HorizontalAlignment="Left" Margin="5 0 0 0"> + <Border Width="50" Height="50" Background="red" CornerRadius="16" HorizontalAlignment="Left"></Border> + <TextBlock Margin="0 10 0 0 " Text="a" FontSize="{StaticResource TangoDefaultFontSize}" HorizontalAlignment="Center"/> + <TextBlock Margin="0 10 0 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding A, StringFormat=0.##}" ></TextBlock> + </StackPanel> + <StackPanel Orientation="Vertical" Margin="10 0 0 0" Width="50"> + <Border Width="50" Height="50" Background="Blue" CornerRadius="16" HorizontalAlignment="Left"></Border> + <TextBlock Margin="0 10 0 0 " Text="b" FontSize="{StaticResource TangoDefaultFontSize}" HorizontalAlignment="Center"/> + <TextBlock Margin="0 10 0 0" HorizontalAlignment="Center" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding B, StringFormat=0.##}" ></TextBlock> + </StackPanel> + </UniformGrid> + </DataTemplate> + + <DataTemplate x:Key="CATALOG_Template" DataType="{x:Type entities:BrushStop}"> + <UniformGrid Rows="1" Columns="2" Height="Auto" MinWidth="180"> + <StackPanel Orientation="Vertical" Margin="0 0 0 0"> + <TextBlock Text="Catalog:" FontSize="{StaticResource TangoDefaultFontSize}" VerticalAlignment="Center"/> + <TextBlock Margin="0 10 0 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding ColorCatalog.Name}" FontSize="{StaticResource TangoDefaultFontSize}" HorizontalAlignment="Left"></TextBlock> + </StackPanel> + <StackPanel Orientation="Vertical" Margin="10 0 0 0"> + <TextBlock Text="Color:" FontSize="{StaticResource TangoDefaultFontSize}" VerticalAlignment="Center"/> + <TextBlock Margin="0 10 0 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding ColorCatalogsItem.Name}" FontSize="{StaticResource TangoDefaultFontSize}" HorizontalAlignment="Left" ></TextBlock> + </StackPanel> + </UniformGrid> + </DataTemplate> + + <PathGeometry x:Key="InkContainerPath" Figures="M16.000001,0.5 C24.560414,0.5 31.500001,6.9918714 31.500001,15 31.500001,15.500508 31.472893,15.995093 31.419976,16.48254 L31.417605,16.5 31.500001,16.5 31.500001,71 31.500001,71.5 31.486487,71.5 31.479832,71.74617 C31.064694,79.407524 24.292901,85.5 16.000001,85.5 7.7070995,85.5 0.9353075,79.407524 0.52016807,71.74617 L0.51351446,71.5 0.5,71.5 0.5,71 0.5,16.5 0.58239609,16.5 0.58002502,16.48254 C0.52710831,15.995093 0.50000054,15.500508 0.5,15 0.50000054,6.9918714 7.4395867,0.5 16.000001,0.5 z"/> + <DataTemplate x:Key="LiquidBox" DataType="{x:Type models:JerricanLevelModel}"> + <DockPanel> + <TextBlock DockPanel.Dock="Bottom" Text="{Binding IDSPack.LiquidType.ShortName}" HorizontalAlignment="Center" Margin="0 8 0 0"></TextBlock> + <Grid Height="15" DockPanel.Dock="Top"> + <TextBlock DockPanel.Dock="Top" Height="15" VerticalAlignment="Top" TextAlignment="Center" Visibility="{Binding HasRemainingTimeoutError,Converter={StaticResource BooleanToVisibilityConverter}}" Text="{Binding RemainingTimeoutError, StringFormat='{}{0:hh}:{0:mm}m', FallbackValue=00:00}" HorizontalAlignment="Center" FontSize="{StaticResource TangoSmallFontSizeBar}" ></TextBlock> + </Grid> + <Grid > + <Grid ClipToBounds="True" HorizontalAlignment="Center"> + <Path Fill="{Binding Path=IDSPack.LiquidType, Converter={StaticResource LiquidTypeToBrushConverter}}" StrokeThickness="1.5" > + <Path.Resources> + <sys:Double x:Key="RectWidth">30</sys:Double> + <sys:Double x:Key="RectHeight">88</sys:Double> + </Path.Resources> + <Path.Data> + <CombinedGeometry GeometryCombineMode="Intersect"> + <CombinedGeometry.Geometry1> + <StaticResource ResourceKey="InkContainerPath"/> + </CombinedGeometry.Geometry1> + <CombinedGeometry.Geometry2> + <!--Rect="1,30 30,88"--> + <RectangleGeometry > + <RectangleGeometry.Rect> + <MultiBinding Converter="{StaticResource MidTankLevelToElementRectConverter}"> + <Binding Source="{StaticResource RectHeight}"/> + <Binding Source="{StaticResource RectWidth}"/> + <Binding Path="Level" /> + <Binding Path="IDSPack.MidTankType.LiterCapacity" /> + </MultiBinding> + </RectangleGeometry.Rect> + </RectangleGeometry> + </CombinedGeometry.Geometry2> + </CombinedGeometry> + </Path.Data> + + </Path> + <Path Stroke="{StaticResource TangoTextWatermarkBrush}" Fill="Transparent" StrokeThickness="1" Data="{StaticResource InkContainerPath}"> + + </Path> + </Grid> + <UniformGrid Rows="4" Columns="1" Margin="0 12 0 12" HorizontalAlignment="Center"> + <Rectangle Width="6" Height="2" Fill="{StaticResource TangoKeyboardKeyDarkBrush}"></Rectangle> + <Rectangle Width="6" Height="2" Fill="{StaticResource TangoKeyboardKeyDarkBrush}"></Rectangle> + <Rectangle Width="6" Height="2" Fill="{StaticResource TangoKeyboardKeyDarkBrush}"></Rectangle> + <Rectangle Width="6" Height="2" Fill="{StaticResource TangoKeyboardKeyDarkBrush}"></Rectangle> + </UniformGrid> + <Image Stretch="Fill" VerticalAlignment="Top" Margin="0 4 0 0"> + <Image.Style> + <Style TargetType="{x:Type Image}" > + <Setter Property="Source" Value="{x:Null}"/> + <Setter Property="Image.Width" Value="24"/> + <Setter Property="Image.Height" Value="24"/> + <Style.Triggers> + <DataTrigger Binding="{Binding IsMidTankLow}" Value="True"> + <Setter Property="Source" Value="../Images/Overview Icons/Warning.png"/> + </DataTrigger> + <DataTrigger Binding="{Binding FillingTimeoutError}" Value="True"> + <Setter Property="Source" Value="../Images/Overview Icons/Error.png"/> + <Setter Property="Image.Width" Value="21"/> + <Setter Property="Image.Height" Value="26"/> + </DataTrigger> + <DataTrigger Binding="{Binding MidTankEmpty}" Value="True"> + <Setter Property="Source" Value="../Images/Overview Icons/Error.png"/> + <Setter Property="Image.Width" Value="21"/> + <Setter Property="Image.Height" Value="26"/> + </DataTrigger> + <DataTrigger Binding="{Binding MidTankRefillPumpActive}" Value="True" > + <Setter Property="Source" Value="../Images/Overview Icons/UpdateInk.png"/> + </DataTrigger> + <DataTrigger Binding="{Binding JerricanPresent}" Value="False" > + <Setter Property="Source" Value="../Images/Overview Icons/JericanRemoved.png"/> + </DataTrigger> + </Style.Triggers> + </Style> + </Image.Style> + </Image> + </Grid> + </DockPanel> + </DataTemplate> + + <DataTemplate x:Key="LubLiquidBox" DataType="{x:Type models:JerricanLevelModel}"> + <DockPanel> + <TextBlock DockPanel.Dock="Bottom" Text="Lub" HorizontalAlignment="Center" Margin="0 8 0 0"></TextBlock> + <Grid Height="15" DockPanel.Dock="Top"> + <TextBlock DockPanel.Dock="Top" Height="15" VerticalAlignment="Top" TextAlignment="Center" Visibility="{Binding HasRemainingTimeoutError,Converter={StaticResource BooleanToVisibilityConverter}}" Text="{Binding RemainingTimeoutError, StringFormat='{}{0:hh}:{0:mm}m', FallbackValue=00:00}" HorizontalAlignment="Center" FontSize="{StaticResource TangoSmallFontSizeBar}" ></TextBlock> + </Grid> + <Grid > + <Grid ClipToBounds="True" HorizontalAlignment="Center"> + <Path Fill="{Binding Path=IDSPack.LiquidType, Converter={StaticResource LiquidTypeToBrushConverter}}" StrokeThickness="1.5" > + <Path.Resources> + <sys:Double x:Key="RectWidth">30</sys:Double> + <sys:Double x:Key="RectHeight">88</sys:Double> + </Path.Resources> + <Path.Data> + <CombinedGeometry GeometryCombineMode="Intersect"> + <CombinedGeometry.Geometry1> + <StaticResource ResourceKey="InkContainerPath"/> + </CombinedGeometry.Geometry1> + <CombinedGeometry.Geometry2> + <!--Rect="1,30 30,88"--> + <RectangleGeometry > + <RectangleGeometry.Rect> + <MultiBinding Converter="{StaticResource MidTankLevelToElementRectConverter}"> + <Binding Source="{StaticResource RectHeight}"/> + <Binding Source="{StaticResource RectWidth}"/> + <Binding Path="Level" /> + <Binding Path="IDSPack.MidTankType.LiterCapacity" /> + </MultiBinding> + </RectangleGeometry.Rect> + </RectangleGeometry> + </CombinedGeometry.Geometry2> + </CombinedGeometry> + </Path.Data> + + </Path> + <Path Stroke="{StaticResource TangoTextWatermarkBrush}" Fill="Transparent" StrokeThickness="1" Data="{StaticResource InkContainerPath}"> + + </Path> + </Grid> + <UniformGrid Rows="4" Columns="1" Margin="0 12 0 12" HorizontalAlignment="Center"> + <Rectangle Width="6" Height="2" Fill="{StaticResource TangoKeyboardKeyDarkBrush}"></Rectangle> + <Rectangle Width="6" Height="2" Fill="{StaticResource TangoKeyboardKeyDarkBrush}"></Rectangle> + <Rectangle Width="6" Height="2" Fill="{StaticResource TangoKeyboardKeyDarkBrush}"></Rectangle> + <Rectangle Width="6" Height="2" Fill="{StaticResource TangoKeyboardKeyDarkBrush}"></Rectangle> + </UniformGrid> + <Image Stretch="Fill" VerticalAlignment="Top" Margin="0 4 0 0"> + <Image.Style> + <Style TargetType="{x:Type Image}" > + <Setter Property="Source" Value="{x:Null}"/> + <Setter Property="Image.Width" Value="24"/> + <Setter Property="Image.Height" Value="24"/> + <Style.Triggers> + <DataTrigger Binding="{Binding IsMidTankLow}" Value="True"> + <Setter Property="Source" Value="../Images/Overview Icons/Warning.png"/> + </DataTrigger> + <DataTrigger Binding="{Binding FillingTimeoutError}" Value="True"> + <Setter Property="Source" Value="../Images/Overview Icons/Error.png"/> + <Setter Property="Image.Width" Value="21"/> + <Setter Property="Image.Height" Value="26"/> + </DataTrigger> + <DataTrigger Binding="{Binding MidTankEmpty}" Value="True"> + <Setter Property="Source" Value="../Images/Overview Icons/Error.png"/> + <Setter Property="Image.Width" Value="21"/> + <Setter Property="Image.Height" Value="26"/> + </DataTrigger> + <DataTrigger Binding="{Binding MidTankRefillPumpActive}" Value="True" > + <Setter Property="Source" Value="../Images/Overview Icons/UpdateInk.png"/> + </DataTrigger> + <DataTrigger Binding="{Binding JerricanPresent}" Value="False" > + <Setter Property="Source" Value="../Images/Overview Icons/JericanRemoved.png"/> + </DataTrigger> + </Style.Triggers> + </Style> + </Image.Style> + </Image> + </Grid> + </DockPanel> + </DataTemplate> + + <DataTemplate x:Key="WasteBox"> + <DockPanel> + <TextBlock DockPanel.Dock="Bottom" Text="Waste" HorizontalAlignment="Center" Margin="0 8 0 0"></TextBlock> + <Grid Height="15" DockPanel.Dock="Top"> + </Grid> + <Grid DockPanel.Dock="Top"> + <Grid ClipToBounds="True" HorizontalAlignment="Center"> + <Path Fill="#CCCCCC"> + <Path.Resources> + <sys:Double x:Key="RectWidth">30</sys:Double> + <sys:Double x:Key="RectHeight">88</sys:Double> + </Path.Resources> + <Path.Data> + <CombinedGeometry GeometryCombineMode="Intersect"> + <CombinedGeometry.Geometry1> + <StaticResource ResourceKey="InkContainerPath"/> + </CombinedGeometry.Geometry1> + <CombinedGeometry.Geometry2> + + <RectangleGeometry Rect="1,0,30,88"> + <!--<RectangleGeometry.Rect> + <MultiBinding Converter="{StaticResource MidTankLevelToElementRectConverter}"> + <Binding Source="{StaticResource RectHeight}"/> + <Binding Source="{StaticResource RectWidth}"/> + <Binding Path="Level" /> + </MultiBinding> + </RectangleGeometry.Rect>--> + </RectangleGeometry> + </CombinedGeometry.Geometry2> + </CombinedGeometry> + </Path.Data> + </Path> + <Path Stroke="{StaticResource TangoTextWatermarkBrush}" Fill="Transparent" StrokeThickness="1" Data="{StaticResource InkContainerPath}"/> + </Grid> + <UniformGrid Rows="4" Columns="1" Margin="0 12 0 12" HorizontalAlignment="Center"> + <Rectangle Fill="{StaticResource TangoKeyboardKeyDarkBrush}" Width="6" Height="2" ></Rectangle> + <Rectangle Width="6" Height="2" Fill="{StaticResource TangoKeyboardKeyDarkBrush}"></Rectangle> + <Rectangle Width="6" Height="2" Fill="{StaticResource TangoKeyboardKeyDarkBrush}"></Rectangle> + <Rectangle Width="6" Height="2" Fill="{StaticResource TangoKeyboardKeyDarkBrush}"></Rectangle> + </UniformGrid> + </Grid> + </DockPanel> + </DataTemplate> + + <DataTemplate x:Key="ErrorState" DataType="{x:Type models:MachineOverviewErrorItem}"> + <Border Margin="0"> + <Image Stretch="Fill" HorizontalAlignment="Center" VerticalAlignment="Center" > + <Image.Style> + <Style> + <Setter Property="Image.Width" Value="24"/> + <Setter Property="Image.Height" Value="24"/> + <Setter Property="Image.Source" Value="../Images/Overview Icons/Normal.png"/> + <Style.Triggers> + <DataTrigger Binding="{Binding IsErrorState}" Value="True"> + <Setter Property="Image.Source" Value="../Images/Overview Icons/Error.png"/> + <Setter Property="Image.Width" Value="21"/> + <Setter Property="Image.Height" Value="26"/> + </DataTrigger> + </Style.Triggers> + </Style> + </Image.Style> + </Image> + </Border> + </DataTemplate> + + <Style x:Key="DynamicResolutionGraph" TargetType="graphs:RealTimeGraph" BasedOn="{StaticResource {x:Type graphs:RealTimeGraph}}"> + <Setter Property="VerticalTicks" Value="5"></Setter> + </Style> + + + <Style x:Key="BlueFlatButton" TargetType="touch:TouchButton" > + <Setter Property="Foreground" Value="{StaticResource TangoPrimaryAccentBrush}"></Setter> + <Setter Property="Background" Value="Transparent"/> + <Setter Property="BorderBrush" Value="{StaticResource TangoPrimaryAccentBrush}"/> + <Style.Triggers> + <Trigger Property="IsEnabled" Value="False"> + <Setter Property="Foreground" Value="{StaticResource TangoDisabledForegroundBrush}"></Setter> + <Setter Property="BorderBrush" Value="{StaticResource TangoDisabledBackgroundBrush}"></Setter> + </Trigger> + </Style.Triggers> + </Style> + + + <Style x:Key="SelectedBlueFlatButton" TargetType="touch:TouchButton" > + <Setter Property="Foreground" Value="{StaticResource TangoLightForegroundBrush}"></Setter> + <Setter Property="Background" Value="{StaticResource TangoPrimaryAccentBrush}"/> + <Style.Triggers> + <Trigger Property="IsEnabled" Value="False"> + <Setter Property="Foreground" Value="{StaticResource TangoDisabledForegroundBrush}"></Setter> + <Setter Property="Background" Value="{StaticResource TangoDisabledBackgroundBrush}"></Setter> + </Trigger> + </Style.Triggers> + </Style> + + + </UserControl.Resources> + <Grid Width="998" Height="1123"> + <Grid > + <Grid.ColumnDefinitions> + <ColumnDefinition Width="28"></ColumnDefinition> + <ColumnDefinition Width="1*"></ColumnDefinition> + </Grid.ColumnDefinitions> + <Border> + <Border.Background> + <LinearGradientBrush StartPoint="0,0" EndPoint="1,0" > + <GradientStop Color="Gainsboro" Offset="0" /> + <GradientStop Color="{StaticResource TangoMidBackgroundColor}" Offset="1.0" /> + </LinearGradientBrush> + </Border.Background> + </Border> + <Grid Grid.Column="1" Background="{StaticResource TangoMidBackgroundBrush}" Margin="0 0 0 0" > + <Grid Margin="0 18 0 0"> + <Grid.RowDefinitions> + <RowDefinition Height="56"></RowDefinition> + <RowDefinition Height="1*"></RowDefinition> + </Grid.RowDefinitions> + + <touch:TouchToggleSlider Style="{StaticResource TouchToggleButtonSlider}" Background="Transparent" CheckedBackground="{StaticResource TangoMidBackgroundBrush}" UncheckedBackground="{StaticResource TangoMidBackgroundBrush}" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0 0 0 0" CornerRadius="25" Height="50" Width="335" ThumbWidth="168" LeftText="Job Status" RightText="Overview" ThumbCornerRadius="18" IsChecked="{Binding IsJobStatusViewEnable, Converter={StaticResource BooleanInverseConverter}}"></touch:TouchToggleSlider> + + <Canvas Width="300" VerticalAlignment="Top" HorizontalAlignment="Right" Height="56" Margin="0 -30 -60 0"> + <Grid Panel.ZIndex="100" DockPanel.Dock="Top" Height="117" Background="Transparent"> + <Grid HorizontalAlignment="Right" Margin="0 0 0 0"> + <StackPanel Orientation="Horizontal"> + <Grid> + <StackPanel x:Name="techPressElement" VerticalAlignment="Center" Background="Transparent" Orientation="Horizontal"> + <TextBlock Margin="0 10 20 0" FontSize="{StaticResource TangoComboBoxItemFontSize}" Text="{Binding MachineProvider.MachineOperator.Status,Converter={StaticResource EnumToDescriptionConverter}}"></TextBlock> + <locaControls:MachineStatusControl HorizontalAlignment="Center" DataContext="{Binding MachineProvider.MachineOperator}" /> + + </StackPanel> + + <Grid IsHitTestVisible="False" HorizontalAlignment="Center"> + <Grid.Style> + <Style TargetType="Grid"> + <Setter Property="Visibility" Value="Hidden"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding MachineProvider.MachineOperator.MachineStatus.AutoInkFillingEnabled}" Value="True"> + <Setter Property="Visibility" Value="Visible"></Setter> + </DataTrigger> + <DataTrigger Binding="{Binding MachineProvider.MachineOperator.IsConnected}" Value="False"> + <Setter Property="Visibility" Value="Hidden"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </Grid.Style> + </Grid> + </Grid> + </StackPanel> + </Grid> + </Grid> + </Canvas> + <Grid x:Name="JobStatus" Margin="32 18 60 0" Grid.Row="1" Visibility="{Binding IsJobStatusViewEnable, Converter={StaticResource BooleanToVisibilityConverter}}"> + <Grid.RowDefinitions> + <RowDefinition Height="78"></RowDefinition> + <RowDefinition Height="Auto"></RowDefinition> + <RowDefinition Height="Auto"></RowDefinition> + <RowDefinition Height="Auto"></RowDefinition> + <RowDefinition Height="100"></RowDefinition> + + </Grid.RowDefinitions> + <Grid Margin=" 0 0 0 20"> + <DockPanel> + <touch:TouchButton Command="{Binding GoToJobCommand}" DockPanel.Dock="Right" VerticalAlignment="Top" Style="{StaticResource TangoLinkButton}" Foreground="{StaticResource TangoPrimaryAccentBrush}"> + <StackPanel Orientation="Vertical"> + <TextBlock Margin="5 0 0 0" FontSize="{StaticResource TangoDefaultFontSize}" VerticalAlignment="Bottom" Text="Go To Job"> + <TextBlock.Style> + <Style TargetType="{x:Type TextBlock}"> + <Setter Property="Foreground" Value="{StaticResource TangoPrimaryAccentBrush}"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Button}}, Path=IsEnabled}" Value="False"> + <Setter Property="Foreground" Value="{StaticResource TangoDisabledBackgroundBrush}"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </TextBlock.Style> + </TextBlock> + <Rectangle Height="3" VerticalAlignment="Bottom" Margin="0 2 0 0"> + <Rectangle.Style> + <Style TargetType="{x:Type Rectangle}"> + <Setter Property="Fill" Value="{StaticResource TangoPrimaryAccentBrush}"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Button}}, Path=IsEnabled}" Value="False"> + <Setter Property="Fill" Value="{StaticResource TangoDisabledBackgroundBrush}"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </Rectangle.Style> + </Rectangle> + </StackPanel> + </touch:TouchButton> + <touch:TouchButton DockPanel.Dock="Right" Visibility="{Binding ApplicationManager.IsInTechnicianMode,Converter={StaticResource BooleanToVisibilityConverter}}" VerticalAlignment="Top" Margin="0 0 20 0" Command="{Binding DisplayJobOutlineCommand}" Style="{StaticResource TangoLinkButton}" FontSize="{StaticResource TangoTitleFontSize}"> + <StackPanel Orientation="Vertical"> + <TextBlock Margin="5 0 0 0" FontSize="{StaticResource TangoDefaultFontSize}" VerticalAlignment="Bottom">Display Job Outline</TextBlock> + <Rectangle Height="3" Fill="{StaticResource TangoPrimaryAccentBrush}" VerticalAlignment="Bottom" Margin="0 2 0 0"></Rectangle> + </StackPanel> + </touch:TouchButton> + <TextBlock DockPanel.Dock="Left" FontSize="28" Text="{Binding Job.Name, TargetNullValue='-', FallbackValue='-'}"></TextBlock> + </DockPanel> + <Border Height="2" Background="{StaticResource TangoLightBorderBrush}" VerticalAlignment="Bottom" Margin="0 2 0 0" CornerRadius="2"></Border> + </Grid> + <StackPanel Orientation="Vertical" Grid.Row="1" Margin="0 11 0 0"> + <DockPanel > + <StackPanel DockPanel.Dock="Right" Orientation="Horizontal" VerticalAlignment="Top" Width="200" MinHeight="30" HorizontalAlignment="Right" Margin="0 0 0 0"> + <StackPanel Orientation="Vertical"> + <touch:TouchToggleSlider Style="{StaticResource TouchToggleButtonSlider}" Background="{StaticResource TangoMidBackgroundBrush}" CheckedBackground="{StaticResource TangoMidBackgroundBrush}" UncheckedBackground="{StaticResource TangoMidBackgroundBrush}" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="20 0 20 0" CornerRadius="17" Height="38" Width="164" ThumbWidth="80" LeftText="1 Set" RightText="1 Spool" ThumbCornerRadius="13" IsChecked="{Binding IsSpoolView}" FontSize="{StaticResource TangoDefaultFontSize}"></touch:TouchToggleSlider> + <touch:TouchToggleSlider Style="{StaticResource TouchToggleButtonSlider}" Background="{StaticResource TangoMidBackgroundBrush}" CheckedBackground="{StaticResource TangoMidBackgroundBrush}" UncheckedBackground="{StaticResource TangoMidBackgroundBrush}" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="20 18 20 0" CornerRadius="17" Height="38" Width="164" ThumbWidth="80" LeftText="Length" RightText="Weight" ThumbCornerRadius="13" IsChecked="{Binding IsWeghtView}" FontSize="{StaticResource TangoDefaultFontSize}"></touch:TouchToggleSlider> + </StackPanel> + </StackPanel> + + <UniformGrid x:Name="JobProperties" DockPanel.Dock="Left" Columns="1" Rows="5" HorizontalAlignment="Left" Margin="0 0 0 0" Height="390" VerticalAlignment="Top" MaxWidth="260"> + <StackPanel Orientation="Horizontal" HorizontalAlignment="Left"> + <Image Source="../Images/Job Issues/thread_type.png" Stretch="None" VerticalAlignment="Top"/> + <StackPanel Orientation="Vertical" Margin="15 0 0 0"> + <TextBlock VerticalAlignment="Center" FontSize="{StaticResource TangoDefaultFontSize}">Thread Type</TextBlock> + <TextBlock Text="{Binding Job.Rml.DisplayName,Converter={StaticResource StringEllipsisConverter},ConverterParameter='38', TargetNullValue='-', FallbackValue='-'}" FontWeight="DemiBold" FontSize="{StaticResource TangoComboBoxItemFontSize}" TextWrapping="Wrap" MaxWidth="200" MaxHeight="52" ></TextBlock> + </StackPanel> + </StackPanel> + + <StackPanel Orientation="Horizontal" HorizontalAlignment="Left"> + <Image Source="../Images/Job Issues/job_length.png" Stretch="None" VerticalAlignment="Top" HorizontalAlignment="Left"/> + <StackPanel Orientation="Vertical" Margin="15 0 0 0"> + <TextBlock VerticalAlignment="Center" FontSize="{StaticResource TangoDefaultFontSize}">Job Length (m)</TextBlock> + <TextBlock FontWeight="DemiBold" FontSize="{StaticResource TangoComboBoxItemFontSize}"> + <TextBlock.Style> + <Style TargetType="{x:Type TextBlock}"> + <Setter Property="Text" Value="{Binding Job.LengthIncludingNumberOfUnitsAndSpools, TargetNullValue='-', FallbackValue='-', StringFormat='#,0.##'}" /> + <Style.Triggers> + <DataTrigger Binding="{Binding IsSpoolView}" Value="True"> + <Setter Property="Text" Value="{Binding Job.LengthIncludingNumberOfUnits, TargetNullValue='-', FallbackValue='-', StringFormat='#,0.##'}" /> + </DataTrigger> + </Style.Triggers> + </Style> + </TextBlock.Style> + </TextBlock> + </StackPanel> + </StackPanel> + <StackPanel Orientation="Horizontal" HorizontalAlignment="Left"> + <Image Source="../Images/Job Issues/job_weight.png" Stretch="None" VerticalAlignment="Top"/> + <StackPanel Orientation="Vertical" Margin="15 0 0 0"> + <TextBlock VerticalAlignment="Center" FontSize="{StaticResource TangoDefaultFontSize}">Job Weight (g)</TextBlock> + <TextBlock FontWeight="DemiBold" FontSize="{StaticResource TangoComboBoxItemFontSize}"> + <TextBlock.Style> + <Style TargetType="{x:Type TextBlock}"> + <Setter Property="Text" Value="{Binding Job.WeightIncludingNumberOfUnitsAndSpools, TargetNullValue='-', FallbackValue='-', StringFormat='#,0.##'}" /> + <Style.Triggers> + <DataTrigger Binding="{Binding IsSpoolView}" Value="True"> + <Setter Property="Text" Value="{Binding Job.WeightIncludingNumberOfUnits, TargetNullValue='-', FallbackValue='-', StringFormat='#,0.##'}" /> + </DataTrigger> + </Style.Triggers> + </Style> + </TextBlock.Style> + </TextBlock> + </StackPanel> + </StackPanel> + <StackPanel Orientation="Horizontal" HorizontalAlignment="Left"> + <Image Source="../Images/Job Issues/job_copies.png" Stretch="None" VerticalAlignment="Top"/> + <StackPanel Orientation="Vertical" Margin="15 0 0 0"> + <TextBlock VerticalAlignment="Center" FontSize="{StaticResource TangoDefaultFontSize}">Copies</TextBlock> + <TextBlock FontWeight="DemiBold" FontSize="{StaticResource TangoComboBoxItemFontSize}"> + <TextBlock.Style> + <Style TargetType="{x:Type TextBlock}"> + <Setter Property="Text" Value="{Binding Job.NumberOfUnitsMultipliedBySpools, TargetNullValue='-', FallbackValue='-', StringFormat='#,0.##'}" /> + <Style.Triggers> + <DataTrigger Binding="{Binding IsSpoolView}" Value="True"> + <Setter Property="Text" Value="{Binding Job.NumberOfUnits, TargetNullValue='-', FallbackValue='-', StringFormat='#,0.#'}" /> + </DataTrigger> + </Style.Triggers> + </Style> + </TextBlock.Style> + </TextBlock> + </StackPanel> + </StackPanel> + <StackPanel Orientation="Horizontal" HorizontalAlignment="Left"> + <Image Source="../Images/Job Issues/spools.png" Stretch="None" VerticalAlignment="Top"/> + <StackPanel Orientation="Vertical" Margin="15 0 0 0"> + <TextBlock VerticalAlignment="Center" FontSize="{StaticResource TangoDefaultFontSize}">Spools</TextBlock> + <TextBlock Text="{Binding Job.Spools, TargetNullValue='-', FallbackValue='-'}" FontWeight="DemiBold" FontSize="{StaticResource TangoComboBoxItemFontSize}"></TextBlock> + </StackPanel> + </StackPanel> + </UniformGrid> + <Grid x:Name="StatusCicle" Background="{StaticResource TangoMidBackgroundBrush}" VerticalAlignment="Top"> + <StackPanel VerticalAlignment="Center"> + <Grid> + <touch:TouchRingProgress Width="364" Height="364" RingThickness="10"> + <touch:TouchRingProgress.Style> + <Style TargetType="touch:TouchRingProgress"> + <Setter Property="Visibility" Value="Visible"></Setter> + <Setter Property="Foreground" Value="{StaticResource TangoPrimaryAccentBrush}"></Setter> + <Setter Property="Maximum" Value="{Binding RunningJobStatus.TotalProgressMinusSettingUp}"></Setter> + <Setter Property="Value" Value="{Binding RunningJobStatus.ProgressMinusSettingUp}"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding RunningJobStatus.IsSettingUp}" Value="False"> + <Setter Property="Visibility" Value="Visible"></Setter> + </DataTrigger> + <DataTrigger Binding="{Binding RunningJobStatus.IsCompleted}" Value="True"> + <Setter Property="Maximum" Value="100"></Setter> + <Setter Property="Value" Value="99.9999999"></Setter> + <Setter Property="Foreground" Value="{StaticResource TangoSuccessBrush}"></Setter> + </DataTrigger> + <DataTrigger Binding="{Binding RunningJobStatus.IsCanceled}" Value="True"> + <Setter Property="Foreground" Value="{StaticResource TangoWarningBrush}"></Setter> + </DataTrigger> + <DataTrigger Binding="{Binding RunningJobStatus.IsFailed}" Value="True"> + <Setter Property="Foreground" Value="{StaticResource TangoErrorBrush}"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </touch:TouchRingProgress.Style> + </touch:TouchRingProgress> + + <touch:TouchBusyIndicator Width="360" Height="360" StrokeThickness="10" Maximum="100" Visibility="{Binding RunningJobStatus.IsSettingUp,Converter={StaticResource BooleanToVisibilityConverter}}"> + <touch:TouchBusyIndicator.Style> + <Style TargetType="touch:TouchBusyIndicator"> + <Setter Property="Foreground" Value="{StaticResource TangoPrimaryAccentBrush}"></Setter> + <Setter Property="Value" Value="0"></Setter> + <Setter Property="IsIndeterminate" Value="False"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding RunningJobStatus.IsSettingUp}" Value="True"> + <Setter Property="Visibility" Value="Visible"></Setter> + <Setter Property="Value" Value="0"></Setter> + <Setter Property="IsIndeterminate" Value="True"></Setter> + <Setter Property="Foreground"> + <Setter.Value> + <LinearGradientBrush StartPoint="0, 0" EndPoint="1, 1"> + <GradientStop Offset="0.2" Color="{StaticResource TangoValidationErrorColor}"/> + <GradientStop Offset="0.5" Color="Yellow"/> + <GradientStop Offset="0.8" Color="{StaticResource TangoPrimaryAccentColor}"/> + </LinearGradientBrush> + </Setter.Value> + </Setter> + </DataTrigger> + <DataTrigger Binding="{Binding RunningJobStatus.IsCompleted}" Value="True"> + <Setter Property="IsIndeterminate" Value="False"></Setter> + </DataTrigger> + <DataTrigger Binding="{Binding RunningJobStatus.IsCanceled}" Value="True"> + <Setter Property="Value" Value="99.9999999"></Setter> + <Setter Property="IsIndeterminate" Value="False"></Setter> + <Setter Property="Foreground" Value="{StaticResource TangoWarningBrush}"></Setter> + </DataTrigger> + <DataTrigger Binding="{Binding RunningJobStatus.IsFailed}" Value="True"> + <Setter Property="Value" Value="99.9999999"></Setter> + <Setter Property="IsIndeterminate" Value="False"></Setter> + <Setter Property="Foreground" Value="{StaticResource TangoErrorBrush}"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </touch:TouchBusyIndicator.Style> + </touch:TouchBusyIndicator> + + <StackPanel VerticalAlignment="Center" HorizontalAlignment="Center"> + + <StackPanel Visibility="{Binding RunningJobStatus.IsSettingUp, Converter={StaticResource BooleanToVisibilityInverseConverter}}"> + <StackPanel Orientation="Horizontal" HorizontalAlignment="Center"> + <Image Source="../Images/JobProgressView/drop.png" Stretch="None" VerticalAlignment="Center" /> + <StackPanel Orientation="Horizontal" HorizontalAlignment="Center"> + <TextBlock Margin="5 0 0 0" VerticalAlignment="Center" FontSize="{StaticResource TangoComboBoxItemFontSize}">Completed /</TextBlock> + <TextBlock Margin="5 0 0 0" VerticalAlignment="Center" FontSize="{StaticResource TangoComboBoxItemFontSize}" Visibility="{Binding IsWeghtView, Converter={StaticResource BooleanToVisibilityInverseConverter}}"> Length</TextBlock> + <TextBlock Margin="5 0 0 0" VerticalAlignment="Center" FontSize="{StaticResource TangoComboBoxItemFontSize}" Visibility="{Binding IsWeghtView, Converter={StaticResource BooleanToVisibilityConverter}}"> Weight</TextBlock> + </StackPanel> + </StackPanel> + + <StackPanel Orientation="Horizontal" Margin="0 15 0 0" HorizontalAlignment="Center" Visibility="{Binding IsWeghtView, Converter={StaticResource BooleanToVisibilityInverseConverter}}"> + <TextBlock FontSize="{StaticResource TangoLargeInfoFontSize}" VerticalAlignment="Center"> + <TextBlock.Text> + <MultiBinding Converter="{StaticResource ProgressLengthSpoolConverter}" StringFormat="#,0." TargetNullValue='-' FallbackValue='0' Mode="OneWay"> + <Binding Path="RunningJobStatus.TotalProgressMinusSettingUp" /> + <Binding Path="IsSpoolView"/> + <Binding Path="RunningJobStatus.ProgressMinusSettingUp" /> + </MultiBinding> + </TextBlock.Text> + </TextBlock> + <TextBlock FontSize="{StaticResource TangoLargeInfoFontSize}" VerticalAlignment="Center" Text="/"></TextBlock> + <TextBlock FontSize="{StaticResource TangoTitleFontSize}" VerticalAlignment="Center"> + <TextBlock.Text> + <MultiBinding Converter="{StaticResource ProgressLengthSpoolConverter}" StringFormat="#,0" TargetNullValue='-' FallbackValue='0' Mode="OneWay"> + <Binding Path="RunningJobStatus.TotalProgressMinusSettingUp"/> + <Binding Path="IsSpoolView"/> + </MultiBinding> + </TextBlock.Text> + </TextBlock> + <TextBlock FontSize="{StaticResource TangoTitleFontSize}" VerticalAlignment="Center" Text=" m"></TextBlock> + </StackPanel> + + <StackPanel Orientation="Horizontal" Margin="0 10 0 0" HorizontalAlignment="Center" Visibility="{Binding IsWeghtView, Converter={StaticResource BooleanToVisibilityConverter}}"> + <TextBlock FontSize="{StaticResource TangoLargeInfoFontSize}" VerticalAlignment="Center"> + <TextBlock.Text> + <MultiBinding Converter="{StaticResource ProgressWeightSpoolConverter}" StringFormat="#,0.00" TargetNullValue='-' FallbackValue='0'> + <Binding Path="RunningJobStatus.TotalProgressMinusSettingUp" /> + <Binding Path="IsSpoolView"/> + <Binding Path="RunningJobStatus.ProgressMinusSettingUp" /> + <Binding Path="Job.GramPerLength" Mode="OneWay"/> + </MultiBinding> + </TextBlock.Text> + </TextBlock> + <TextBlock FontSize="{StaticResource TangoLargeInfoFontSize}" VerticalAlignment="Center" Text="/"></TextBlock> + <TextBlock FontSize="{StaticResource TangoTitleFontSize}" VerticalAlignment="Center"> + <TextBlock.Text> + <MultiBinding Converter="{StaticResource ProgressWeightSpoolConverter}" StringFormat="#,0.#" TargetNullValue='-' FallbackValue='0' > + <Binding Path="RunningJobStatus.TotalProgressMinusSettingUp"/> + <Binding Path="IsSpoolView"/> + <Binding Path="Job.GramPerLength" Mode="OneWay"/> + </MultiBinding> + </TextBlock.Text> + </TextBlock> + <TextBlock FontSize="{StaticResource TangoTitleFontSize}" VerticalAlignment="Center" Text=" g"></TextBlock> + </StackPanel> + </StackPanel> + + <DockPanel Height="106" Visibility="{Binding RunningJobStatus.IsSettingUp, FallbackValue=collapsed, Converter={StaticResource BooleanToVisibilityConverter}}"> + <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" DockPanel.Dock="Top"> + <Image Source="../Images/JobProgressView/drop.png" Stretch="None" /> + <TextBlock Margin="5 0 0 0" VerticalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}">Getting Ready...</TextBlock> + </StackPanel> + <TextBlock Margin="40 30 40 0" FontSize="{StaticResource TangoSmallFontSize}" FontWeight="Light" Text="{Binding RunningJobStatus.Message, FallbackValue='', TargetNullValue='', Converter={StaticResource StringEllipsisConverter},ConverterParameter='76'}" TextWrapping="Wrap" MaxWidth="310" HorizontalAlignment="Center" TextAlignment="Center" Height="42"></TextBlock> + </DockPanel> + + <Rectangle x:Name="Rrect" Margin="0 10 0 0" Width="250" Stroke="{StaticResource TangoLightBorderBrush}" StrokeThickness="1" Fill="{StaticResource TangoLightBorderBrush}" Height="2" /> + + <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Margin="0 15 0 0"> + <Image Source="../Images/JobProgressView/clock.png" Stretch="None" VerticalAlignment="Center" /> + <TextBlock Margin="5 0 0 0" VerticalAlignment="Center" FontSize="{StaticResource TangoComboBoxItemFontSize}">Time Left</TextBlock> + </StackPanel> + + <TextBlock VerticalAlignment="Center" FontSize="{StaticResource TangoLargeInfoFontSize}" Margin="0 10 0 0" HorizontalAlignment="Center"> + <Run Text="{Binding RunningJobStatus.RemainingTime,Converter={StaticResource TimeSpanToTwoDigitsTimeConverter},FallbackValue=-}"></Run> + <Run FontSize="{StaticResource TangoComboBoxItemFontSize}" Text="{Binding RunningJobStatus.RemainingTime,Converter={StaticResource TimeSpanToLabelConverter},FallbackValue=min}"></Run> + </TextBlock> + </StackPanel> + </Grid> + + + </StackPanel> + </Grid> + </DockPanel> + <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Visibility="Visible"> + <touch:TouchButton Content="Abort" Visibility="Collapsed" Margin="0 20 0 0" Height="50" Width="164" CornerRadius="30" Command="{Binding AbortCommand}" IsEnabled="{Binding MachineProvider.MachineOperator.IsPrinting}" BorderThickness="1" EnableDropShadow="False" Style="{StaticResource BlueFlatButton}"/> + + <touch:TouchButton Content="Stop" Margin="0 20 0 0" Height="50" Width="164" CornerRadius="30" Command="{Binding StopCommand}" IsEnabled="{Binding MachineProvider.MachineOperator.IsPrinting}" EnableDropShadow="False" Style="{StaticResource SelectedBlueFlatButton}"/> + + </StackPanel> + <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Visibility="Collapsed"> + <touch:TouchButton Content="Restart" Margin="0 20 0 0" Height="50" Width="164" CornerRadius="30" Command="{Binding RestartJobCommand}" IsEnabled="{Binding MachineProvider.MachineOperator.IsPrinting}" BorderThickness="1" EnableDropShadow="False" Style="{StaticResource BlueFlatButton}"/> + + <touch:TouchButton Content="Clear" Margin="0 20 0 0" Height="50" Width="164" CornerRadius="30" Command="{Binding ClearJobCommand}" IsEnabled="{Binding MachineProvider.MachineOperator.IsPrinting}" EnableDropShadow="False" Style="{StaticResource SelectedBlueFlatButton}"/> + + </StackPanel> + <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Visibility="Collapsed" MinWidth="500" VerticalAlignment="Bottom"> + <touch:TouchButton Margin="0 0 0 0" Height="50" Width="164" CornerRadius="30" Command="{Binding CaancelJobCommand}" IsEnabled="{Binding MachineProvider.MachineOperator.IsPrinting}" BorderThickness="0" EnableDropShadow="False" Style="{StaticResource TangoLinkButton}" Foreground="{StaticResource TangoPrimaryAccentBrush}"> + <StackPanel Orientation="Vertical"> + <TextBlock Margin="5 0 0 0" FontSize="{StaticResource TangoButtonFontSize}" VerticalAlignment="Bottom" Text="Cancel" HorizontalAlignment="Center" Width="80"> + <TextBlock.Style> + <Style TargetType="{x:Type TextBlock}"> + <Setter Property="Foreground" Value="{StaticResource TangoPrimaryAccentBrush}"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Button}}, Path=IsEnabled}" Value="False"> + <Setter Property="Foreground" Value="{StaticResource TangoDisabledBackgroundBrush}"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </TextBlock.Style> + </TextBlock> + <Rectangle Height="3" VerticalAlignment="Bottom" Margin="0 2 0 0" Width="84"> + <Rectangle.Style> + <Style TargetType="{x:Type Rectangle}"> + <Setter Property="Fill" Value="{StaticResource TangoPrimaryAccentBrush}"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Button}}, Path=IsEnabled}" Value="False"> + <Setter Property="Fill" Value="{StaticResource TangoDisabledBackgroundBrush}"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </Rectangle.Style> + </Rectangle> + </StackPanel> + </touch:TouchButton> + + <touch:TouchButton Content="Resume" Margin="30 0 0 0" Height="50" Width="164" CornerRadius="30" Command="{Binding ResumeCommand}" IsEnabled="{Binding MachineProvider.MachineOperator.IsPrinting}" EnableDropShadow="False" Style="{StaticResource SelectedBlueFlatButton}"/> + <touch:TouchButton Content="Restart" Margin="30 0 0 0" Height="50" Width="164" CornerRadius="30" Command="{Binding RestartJobCommand}" IsEnabled="{Binding MachineProvider.MachineOperator.IsPrinting}" BorderThickness="1" EnableDropShadow="False" Style="{StaticResource BlueFlatButton}"/> + + </StackPanel> + </StackPanel> + <StackPanel x:Name="Job_Progress" Grid.Row="2" Margin="0 12 0 0" Orientation="Vertical"> + <StackPanel Orientation="Horizontal" HorizontalAlignment="Left"> + <Image Source="../Images/Job Issues/Thread.png" Stretch="None" VerticalAlignment="Top"/> + <TextBlock Text="Total Job Progress" FontWeight="DemiBold" Margin="15 10 0 0" FontSize="{StaticResource TangoComboBoxItemFontSize}" VerticalAlignment="Top"></TextBlock> + <Rectangle Height="2" Fill="{StaticResource TangoLightBorderBrush}" Width="1010" VerticalAlignment="Top" Margin="15 20 0 0"></Rectangle> + </StackPanel> + <Grid Margin="0 22 0 0"> + <locaControls:RunningJobViewerEureka ThumbHeight="16" HeightSlider="14" DisplayMarkers="False" IsActive="True" Job="{Binding Job}" + RunningJobStatus="{Binding RunningJobStatus}" + MaximumValue="{Binding RunningJobStatus.TotalProgressMinusSettingUp, FallbackValue=100,TargetNullValue=100}" + MinimumValue="0" + SliderValue="{Binding RunningJobStatus.ProgressMinusSettingUp, TargetNullValue=0, FallbackValue=0}"/> + + + <!--<TextBlock Margin="0 0 -50 0" VerticalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}" HorizontalAlignment="Right"> + <Run Text="x"></Run><Run Text="{Binding RunningJobStatus.RemainingUnits}"></Run> + </TextBlock>--> + </Grid> + <UniformGrid DockPanel.Dock="Bottom" Columns="4" Rows="1" HorizontalAlignment="Left" Margin="0 10 0 0" Height="Auto" VerticalAlignment="Top" Width="840"> + <StackPanel Orientation="Horizontal" HorizontalAlignment="Left"> + <Image Source="../Images/Job Issues/job_length.png" Stretch="None" VerticalAlignment="Top" HorizontalAlignment="Left"/> + <StackPanel Orientation="Vertical" Margin="15 0 0 0"> + <TextBlock x:Name="ProgressLength" VerticalAlignment="Center" FontSize="{StaticResource TangoDefaultFontSize}">Job Length (m)</TextBlock> + <TextBlock FontWeight="DemiBold" FontSize="{StaticResource TangoComboBoxItemFontSize}"> + <TextBlock.Text> + <MultiBinding Converter="{StaticResource LengthWithSpoolsConverter}" StringFormat="#,0" TargetNullValue='-' FallbackValue='-' Mode="OneWay"> + <Binding Path="RunningJobStatus.ProgressMinusSettingUp" Mode="OneWay"/> + <Binding Path="Job.Spools" Mode="OneWay"/> + </MultiBinding> + </TextBlock.Text> + </TextBlock> + </StackPanel> + </StackPanel> + <StackPanel Orientation="Horizontal" HorizontalAlignment="Left"> + <Image Source="../Images/Job Issues/job_weight.png" Stretch="None" VerticalAlignment="Top"/> + <StackPanel Orientation="Vertical" Margin="15 0 0 0"> + <TextBlock VerticalAlignment="Center" FontSize="{StaticResource TangoDefaultFontSize}">Job Weight (g)</TextBlock> + <TextBlock FontWeight="DemiBold" FontSize="{StaticResource TangoComboBoxItemFontSize}"> + <TextBlock.Text> + <MultiBinding Converter="{StaticResource LengthToWeightConverter}" StringFormat="#,0.##" TargetNullValue='-' FallbackValue='-' Mode="OneWay"> + <Binding Path="RunningJobStatus.ProgressMinusSettingUp" Mode="OneWay"/> + <Binding Path="Job.GramPerLength" Mode="OneWay"/> + <Binding Path="Job.Spools" Mode="OneWay"/> + </MultiBinding> + </TextBlock.Text> + </TextBlock> + </StackPanel> + </StackPanel> + <StackPanel Orientation="Horizontal" HorizontalAlignment="Left"> + <Image Source="../Images/Job Issues/job_copies.png" Stretch="None" VerticalAlignment="Top"/> + <StackPanel Orientation="Vertical" Margin="15 0 0 0"> + <TextBlock VerticalAlignment="Center" FontSize="{StaticResource TangoDefaultFontSize}">Copies</TextBlock> + <TextBlock FontWeight="DemiBold" FontSize="{StaticResource TangoComboBoxItemFontSize}"> + <TextBlock.Style> + <Style TargetType="{x:Type TextBlock}"> + <Setter Property="Text" Value="-"/> + <Style.Triggers> + <DataTrigger Binding="{Binding RunningJobStatus.IsCompleted}" Value="True"> + <Setter Property="Text" Value="{Binding Job.NumberOfUnitsMultipliedBySpools}"></Setter> + </DataTrigger> + <DataTrigger Binding="{Binding RunningJobStatus.IsCompleted}" Value="False"> + <Setter Property="Text" > + <Setter.Value> + <MultiBinding Converter="{StaticResource ProgressUnitSpoolConverter}" TargetNullValue='-' FallbackValue='-' > + <Binding Path="RunningJobStatus.CurrentUnit" Mode="OneWay"/> + </MultiBinding> + </Setter.Value> + </Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </TextBlock.Style> + </TextBlock> + </StackPanel> + </StackPanel> + <StackPanel Orientation="Horizontal" HorizontalAlignment="Left"> + <Image Source="../Images/Job Issues/ttime_left.png" Stretch="None" VerticalAlignment="Top"/> + <StackPanel Orientation="Vertical" Margin="15 0 0 0"> + <TextBlock VerticalAlignment="Center" FontSize="{StaticResource TangoDefaultFontSize}">Time Left</TextBlock> + <TextBlock FontWeight="DemiBold" FontSize="{StaticResource TangoComboBoxItemFontSize}" Margin="0 0 0 0" HorizontalAlignment="Left"> + <Run Text="{Binding RunningJobStatus.RemainingTime,Converter={StaticResource TimeSpanToTwoDigitsTimeConverter},FallbackValue=5}"></Run> + <Run FontSize="16" Text="{Binding RunningJobStatus.RemainingTime,Converter={StaticResource TimeSpanToLabelConverter},FallbackValue=min}"></Run> + + <!--<Run FontSize="16">m</Run>--> + </TextBlock> + </StackPanel> + </StackPanel> + </UniformGrid> + + </StackPanel> + <Grid Grid.Row="3" Margin="0 15 0 0" > + + <Rectangle Fill="{StaticResource TangoLightBorderBrush}" Height="2" VerticalAlignment="Top"></Rectangle> + <Grid Margin="0 30 0 0"> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="1*"/> + <ColumnDefinition Width="2*"/> + </Grid.ColumnDefinitions> + <StackPanel Orientation="Vertical"> + <StackPanel Orientation="Horizontal"> + <Image Source="../Images/Job Issues/input.png" Stretch="None" VerticalAlignment="Top" HorizontalAlignment="Left"/> + <TextBlock VerticalAlignment="Center" Margin="15 0 0 0" FontSize="{StaticResource TangoDefaultFontSize}">Input</TextBlock> + </StackPanel> + <UniformGrid Margin="0 20 0 0" Rows="1" Columns="3" Height="Auto" MinWidth="180" HorizontalAlignment="Left" Visibility="{Binding IsDyeingProcess,Converter={StaticResource BooleanToVisibilityInverseConverter}}"> + <StackPanel Orientation="Vertical"> + <Border Width="50" Height="50" Background="Transparent" CornerRadius="16" HorizontalAlignment="Left" BorderBrush="{StaticResource TangoDisabledForegroundBrush}" BorderThickness="1"></Border> + <TextBlock Margin="0 10 0 0 " Text="L" FontSize="{StaticResource TangoSmallFontSize}" HorizontalAlignment="Center"/> + <TextBlock Margin="0 10 0 0 " Style="{StaticResource SliderGreyTextStyle}" Text="-" ></TextBlock> + + </StackPanel> + <StackPanel Orientation="Vertical" Width="50" HorizontalAlignment="Left" Margin="5 0 0 0"> + <Border Width="50" Height="50" Background="Transparent" CornerRadius="16" HorizontalAlignment="Left" BorderBrush="{StaticResource TangoDisabledForegroundBrush}" BorderThickness="1"></Border> + <TextBlock Margin="0 10 0 0 " Text="a" FontSize="{StaticResource TangoSmallFontSize}" HorizontalAlignment="Center"/> + <TextBlock Margin="0 10 0 0 " Style="{StaticResource SliderGreyTextStyle}" Text="-" ></TextBlock> + </StackPanel> + <StackPanel Orientation="Vertical" Margin="10 0 0 0" Width="50"> + <Border Width="50" Height="50" Background="Transparent" CornerRadius="16" HorizontalAlignment="Left" BorderBrush="{StaticResource TangoDisabledForegroundBrush}" BorderThickness="1"></Border> + <TextBlock Margin="0 10 0 0 " Text="b" FontSize="{StaticResource TangoSmallFontSize}" HorizontalAlignment="Center"/> + <TextBlock Margin="0 10 0 0 " Style="{StaticResource SliderGreyTextStyle}" Text="-" ></TextBlock> + </StackPanel> + </UniformGrid> + <Grid Visibility="{Binding IsDyeingProcess,Converter={StaticResource BooleanToVisibilityConverter}}"> + <ContentControl x:Name="leftBrushValues" HorizontalAlignment="Left" Content="{Binding CurrentBrushStop}" Width="Auto" Height="Auto" Margin="0 20 0 0"> + <ContentControl.Style> + <Style TargetType="ContentControl"> + <Setter Property="ContentTemplate"> + <Setter.Value> + <DataTemplate/> + </Setter.Value> + </Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding CurrentBrushStop.ColorSpace.Name, Converter={StaticResource EnumToDescriptionConverter}}" Value="RGB"> + <Setter Property="ContentTemplate" Value="{StaticResource RGB_Template}" /> + </DataTrigger> + <DataTrigger Binding="{Binding CurrentBrushStop.ColorSpace.Name, Converter={StaticResource EnumToDescriptionConverter}}" Value="Volume"> + <Setter Property="ContentTemplate" Value="{StaticResource CMYK_Template}" /> + </DataTrigger> + <DataTrigger Binding="{Binding CurrentBrushStop.ColorSpace.Name}" Value="LAB"> + <Setter Property="ContentTemplate" Value="{StaticResource LAB_Template}" /> + </DataTrigger> + <DataTrigger Binding="{Binding CurrentBrushStop.ColorSpace.Name, Converter={StaticResource EnumToDescriptionConverter}}" Value="Catalog"> + <Setter Property="ContentTemplate" Value="{StaticResource CATALOG_Template}" /> + </DataTrigger> + </Style.Triggers> + </Style> + </ContentControl.Style> + </ContentControl> + </Grid> + </StackPanel> + <StackPanel Orientation="Vertical" Grid.Column="1" Margin="60 0 0 0"> + <StackPanel Orientation="Horizontal"> + <Image Source="../Images/Job Issues/output.png" Stretch="None" VerticalAlignment="Top" HorizontalAlignment="Left" Height="Auto"/> + <TextBlock VerticalAlignment="Center" Margin="15 0 0 0" FontSize="{StaticResource TangoDefaultFontSize}" >Output</TextBlock> + </StackPanel> + <UniformGrid Margin="0 20 0 0" Rows="1" Columns="7" Height="Auto" Width="435" HorizontalAlignment="Left" Visibility="{Binding IsDyeingProcess,Converter={StaticResource BooleanToVisibilityInverseConverter}}"> + <StackPanel Orientation="Vertical"> + <Border Width="50" Height="50" Background="Transparent" CornerRadius="16" HorizontalAlignment="Left" BorderBrush="{StaticResource TangoDisabledForegroundBrush}" BorderThickness="1"></Border> + <TextBlock Margin="0 10 0 0 " Style="{StaticResource SliderGreyTextStyle}" Text="-" ></TextBlock> + <TextBlock Margin="0 10 0 0 " Text="0%" FontSize="{StaticResource TangoSmallFontSize}" HorizontalAlignment="Center"/> + </StackPanel> + <StackPanel Orientation="Vertical"> + <Border Width="50" Height="50" Background="Transparent" CornerRadius="16" HorizontalAlignment="Left" BorderBrush="{StaticResource TangoDisabledForegroundBrush}" BorderThickness="1"></Border> + <TextBlock Margin="0 10 0 0 " Style="{StaticResource SliderGreyTextStyle}" Text="-" ></TextBlock> + <TextBlock Margin="0 10 0 0 " Text="0%" FontSize="{StaticResource TangoSmallFontSize}" HorizontalAlignment="Center"/> + </StackPanel> + <StackPanel Orientation="Vertical"> + <Border Width="50" Height="50" Background="Transparent" CornerRadius="16" HorizontalAlignment="Left" BorderBrush="{StaticResource TangoDisabledForegroundBrush}" BorderThickness="1"></Border> + <TextBlock Margin="0 10 0 0 " Style="{StaticResource SliderGreyTextStyle}" Text="-" ></TextBlock> + <TextBlock Margin="0 10 0 0 " Text="0%" FontSize="{StaticResource TangoSmallFontSize}" HorizontalAlignment="Center"/> + </StackPanel> + <StackPanel Orientation="Vertical"> + <Border Width="50" Height="50" Background="Transparent" CornerRadius="16" HorizontalAlignment="Left" BorderBrush="{StaticResource TangoDisabledForegroundBrush}" BorderThickness="1"></Border> + <TextBlock Margin="0 10 0 0 " Style="{StaticResource SliderGreyTextStyle}" Text="-" ></TextBlock> + <TextBlock Margin="0 10 0 0 " Text="0%" FontSize="{StaticResource TangoSmallFontSize}" HorizontalAlignment="Center"/> + </StackPanel> + <StackPanel Orientation="Vertical"> + <Border Width="50" Height="50" Background="Transparent" CornerRadius="16" HorizontalAlignment="Left" BorderBrush="{StaticResource TangoDisabledForegroundBrush}" BorderThickness="1"></Border> + <TextBlock Margin="0 10 0 0 " Style="{StaticResource SliderGreyTextStyle}" Text="-" ></TextBlock> + <TextBlock Margin="0 10 0 0 " Text="0%" FontSize="{StaticResource TangoSmallFontSize}" HorizontalAlignment="Center"/> + </StackPanel> + <StackPanel Orientation="Vertical"> + <Border Width="50" Height="50" Background="Transparent" CornerRadius="16" HorizontalAlignment="Left" BorderBrush="{StaticResource TangoDisabledForegroundBrush}" BorderThickness="1"></Border> + <TextBlock Margin="0 10 0 0 " Style="{StaticResource SliderGreyTextStyle}" Text="-" ></TextBlock> + <TextBlock Margin="0 10 0 0 " Text="0%" FontSize="{StaticResource TangoSmallFontSize}" HorizontalAlignment="Center"/> + </StackPanel> + <StackPanel Orientation="Vertical"> + <Border Width="50" Height="50" Background="Transparent" CornerRadius="16" HorizontalAlignment="Left" BorderBrush="{StaticResource TangoDisabledForegroundBrush}" BorderThickness="1"></Border> + <TextBlock Margin="0 10 0 0 " Style="{StaticResource SliderGreyTextStyle}" Text="-" ></TextBlock> + <TextBlock Margin="0 10 0 0 " Text="0%" FontSize="{StaticResource TangoSmallFontSize}" HorizontalAlignment="Center"/> + </StackPanel> + </UniformGrid> + <UniformGrid Columns="7" Rows="1" Margin="0 20 0 0" Width="440" HorizontalAlignment="Left" Visibility="{Binding IsDyeingProcess,Converter={StaticResource BooleanToVisibilityConverter}}"> + <StackPanel Orientation="Vertical" Width="50" HorizontalAlignment="Left"> + <Border Width="50" Height="50" Background="Cyan" CornerRadius="16" HorizontalAlignment="Left"></Border> + <TextBlock Margin="0 10 0 0 " HorizontalAlignment="Center">C</TextBlock> + <TextBlock Margin="0 10 0 0 " HorizontalAlignment="Center" Text="{Binding CyanOutput}"></TextBlock> + </StackPanel> + <StackPanel Orientation="Vertical" Width="50" HorizontalAlignment="Left"> + <Border Width="50" Height="50" Background="LightCyan" CornerRadius="16" HorizontalAlignment="Left"></Border> + <TextBlock Margin="0 10 0 0 " HorizontalAlignment="Center">LC</TextBlock> + <TextBlock Margin="0 10 0 0 " HorizontalAlignment="Center" Text="{Binding LightCyanOutput}"></TextBlock> + </StackPanel> + <StackPanel Orientation="Vertical" Width="50" HorizontalAlignment="Left"> + <Border Width="50" Height="50" Background="Magenta" CornerRadius="16" HorizontalAlignment="Left"></Border> + <TextBlock Margin="0 10 0 0 " HorizontalAlignment="Center">M</TextBlock> + <TextBlock Margin="0 10 0 0 " HorizontalAlignment="Center" Text="{Binding MagentaOutput}"></TextBlock> + </StackPanel> + <StackPanel Orientation="Vertical" Width="50" HorizontalAlignment="Left"> + <Border Width="50" Height="50" Background="LightPink" CornerRadius="16" HorizontalAlignment="Left"></Border> + <TextBlock Margin="0 10 0 0 " HorizontalAlignment="Center">LM</TextBlock> + <TextBlock Margin="0 10 0 0 " HorizontalAlignment="Center" Text="{Binding LightMagentaOutput}"></TextBlock> + </StackPanel> + <StackPanel Orientation="Vertical" Width="50" HorizontalAlignment="Left"> + <Border Width="50" Height="50" Background="Yellow" CornerRadius="16" HorizontalAlignment="Left"></Border> + <TextBlock Margin="0 10 0 0 " HorizontalAlignment="Center">Y</TextBlock> + <TextBlock Margin="0 10 0 0 " HorizontalAlignment="Center" Text="{Binding YellowOutput}"></TextBlock> + </StackPanel> + <StackPanel Orientation="Vertical" Width="50" HorizontalAlignment="Left"> + <Border Width="50" Height="50" Background="LightYellow" CornerRadius="16" HorizontalAlignment="Left"></Border> + <TextBlock Margin="0 10 0 0 " HorizontalAlignment="Center">LY</TextBlock> + <TextBlock Margin="0 10 0 0 " HorizontalAlignment="Center" Text="{Binding LightYellowOutput}"></TextBlock> + </StackPanel> + <StackPanel Orientation="Vertical" Width="50" HorizontalAlignment="Left"> + <Border Width="50" Height="50" Background="Black" CornerRadius="16" HorizontalAlignment="Left"></Border> + <TextBlock Margin="0 10 0 0 " HorizontalAlignment="Center">K</TextBlock> + <TextBlock Margin="0 10 0 0 " HorizontalAlignment="Center" Text="{Binding BlackOutput}"></TextBlock> + </StackPanel> + </UniformGrid> + </StackPanel> + + </Grid> + </Grid> + </Grid> + + <Grid x:Name="Overview" Margin="32 18 60 0" Grid.Row="1" Visibility="{Binding IsJobStatusViewEnable, Converter={StaticResource BooleanToVisibilityInverseConverter}}"> + <Grid.RowDefinitions> + <RowDefinition Height="74"></RowDefinition> + <RowDefinition Height="Auto"></RowDefinition> + <RowDefinition Height="Auto"></RowDefinition> + <RowDefinition Height="Auto"></RowDefinition> + <RowDefinition Height="100"></RowDefinition> + </Grid.RowDefinitions> + <Grid Margin="0 10 0 0"> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="1*"/> + <ColumnDefinition Width="400"/> + <ColumnDefinition Width="Auto"/> + </Grid.ColumnDefinitions> + <StackPanel Orientation="Horizontal" HorizontalAlignment="Left" > + <Image Margin="0 2 0 0" Source="../Images/Job Issues/job_length.png" Stretch="Uniform" VerticalAlignment="Top" HorizontalAlignment="Left" Width="Auto" Height="32" /> + <TextBlock Margin="20 5 0 0" Width="Auto" FontWeight="SemiBold" FontSize="{StaticResource TangoComboBoxItemFontSize}" VerticalAlignment="Top"> + <TextBlock.Text> + <MultiBinding Converter="{StaticResource LengthWithSpoolsConverter}" StringFormat="#,0.##" TargetNullValue='-' FallbackValue='-' Mode="OneWay"> + <Binding Path="RunningJobStatus.ProgressMinusSettingUp" Mode="OneWay"/> + <Binding Path="Job.Spools" Mode="OneWay"/> + </MultiBinding> + </TextBlock.Text> + </TextBlock> + </StackPanel> + <!--<Grid Grid.Column="1" Margin="20 8 20 0" VerticalAlignment="Top" Height="20">--> + <locaControls:RunningJobViewerEureka Grid.Column="1" Margin="10 12 20 0" VerticalAlignment="Top" ThumbHeight="16" Height="14" HeightSlider="14" DisplayMarkers="False" IsActive="True" Job="{Binding Job}" + RunningJobStatus="{Binding RunningJobStatus}" + MaximumValue="{Binding RunningJobStatus.TotalProgressMinusSettingUp, FallbackValue=100,TargetNullValue=100}" + MinimumValue="0" + SliderValue="{Binding RunningJobStatus.ProgressMinusSettingUp, TargetNullValue=0, FallbackValue=0, Delay=100}"/> + + <!--</Grid>--> + + <StackPanel Orientation="Horizontal" HorizontalAlignment="Left" Grid.Column="2" Margin="0 0 0 0"> + <Image Margin="0 2 0 0" Source="../Images/Job Issues/ttime_left.png" Stretch="Uniform" VerticalAlignment="Top" Height="32"/> + <TextBlock Margin="15 5 0 0" FontWeight="Light" FontSize="{StaticResource TangoComboBoxItemFontSize}" HorizontalAlignment="Center"> + <Run Text="{Binding RunningJobStatus.RemainingTime,Converter={StaticResource TimeSpanToTwoDigitsTimeConverter},FallbackValue=5}"></Run> + <Run FontSize="16" Text="{Binding RunningJobStatus.RemainingTime,Converter={StaticResource TimeSpanToLabelConverter},FallbackValue=min}"></Run> + + </TextBlock> + <touch:TouchButton Content="Stop" Height="50" Width="164" CornerRadius="30" Command="{Binding StopCommand}" IsEnabled="true" BorderThickness="0" BorderBrush="{StaticResource TangoPrimaryAccentBrush}" EnableDropShadow="False" VerticalAlignment="Top" Margin="20 -5 0 0"> + <touch:TouchButton.Style > + <Style TargetType="touch:TouchButton" > + <Setter Property="Foreground" Value="{StaticResource TangoLightForegroundBrush}"></Setter> + <Setter Property="Background" Value="{StaticResource TangoPrimaryAccentBrush}"/> + <Style.Triggers> + <Trigger Property="IsEnabled" Value="False"> + <Setter Property="Foreground" Value="{StaticResource TangoDisabledForegroundBrush}"></Setter> + <Setter Property="Background" Value="{StaticResource TangoDisabledBackgroundBrush}"></Setter> + </Trigger> + </Style.Triggers> + </Style> + </touch:TouchButton.Style> + </touch:TouchButton> + + </StackPanel> + + <Border Height="2" Grid.ColumnSpan="012" Background="{StaticResource TangoLightBorderBrush}" VerticalAlignment="Bottom" Margin="0 2 0 0" CornerRadius="2"></Border> + </Grid> + <Grid Grid.Row="1" Margin="0 28 0 0"> + <StackPanel Orientation="Vertical"> + <StackPanel Orientation="Horizontal" > + <Image Source="../Images/Overview Icons/Sensors.png" Stretch="UniformToFill" VerticalAlignment="Top" HorizontalAlignment="Left" Width="32" Height="32"/> + <TextBlock Margin="12 0 0 0 " VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="{StaticResource TangoComboBoxItemFontSize}">Sensors</TextBlock> + </StackPanel> + <UniformGrid Columns="5" Rows="1" Height="120" Margin="40 11 40 0" DataContext="{Binding OverviewModel}"> + <StackPanel Orientation="Vertical"> + <Grid> + <touch:TouchArcProgress RingThickness="8" Value="{Binding DryerZone3.Value}" Maximum="{Binding DryerZone3.MaxValue}" Minimum="0" Width="100" Height="100"> + <touch:TouchArcProgress.Foreground> + <SolidColorBrush Color="{Binding DryerZone3.Color}"/> + </touch:TouchArcProgress.Foreground> + </touch:TouchArcProgress> + <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="{StaticResource TangoDefaultFontSize}" FontWeight="Bold" > + <Run Text="{Binding DryerZone3.DisplayValue}"> + <Run.Foreground> + <SolidColorBrush Color="{Binding DryerZone3.Color}"/> + </Run.Foreground> + </Run> + <Run Text="{Binding DryerZone3.DisplayMaxValue}" ></Run> + </TextBlock> + <TextBlock VerticalAlignment="Bottom" HorizontalAlignment="Center" Margin="0 0 0 20" FontSize="{StaticResource TangoDefaultFontSize}" >ºC</TextBlock> + + </Grid> + <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center">Dryer Zone 3</TextBlock> + </StackPanel> + + <StackPanel Orientation="Vertical"> + <Grid> + <touch:TouchArcProgress RingThickness="8" Value="{Binding DryerAir.Value}" Maximum="{Binding DryerAir.MaxValue}" Minimum="0" Width="100" Height="100"> + <touch:TouchArcProgress.Foreground> + <SolidColorBrush Color="{Binding DryerAir.Color}"/> + </touch:TouchArcProgress.Foreground> + </touch:TouchArcProgress> + <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="{StaticResource TangoDefaultFontSize}" FontWeight="SemiBold" Text="{Binding DryerAir.DisplayValue}"> + <TextBlock.Foreground> + <SolidColorBrush Color="{Binding DryerAir.Color}"/> + </TextBlock.Foreground> + </TextBlock> + <TextBlock VerticalAlignment="Bottom" HorizontalAlignment="Center" Margin="0 0 0 20" FontSize="{StaticResource TangoDefaultFontSize}" FontWeight="SemiBold" Text="ºC" > + </TextBlock> + </Grid> + <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center">Dryer Air</TextBlock> + </StackPanel> + <StackPanel Orientation="Vertical"> + <Grid> + <touch:TouchArcProgress RingThickness="8" Value="{Binding Tunnel.Value}" Maximum="{Binding Tunnel.MaxValue}" Minimum="0" Width="100" Height="100"> + <touch:TouchArcProgress.Foreground> + <SolidColorBrush Color="{Binding Tunnel.Color}"/> + </touch:TouchArcProgress.Foreground> + </touch:TouchArcProgress> + <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="{StaticResource TangoDefaultFontSize}" FontWeight="SemiBold" > + <Run Text="{Binding Tunnel.DisplayValue}"> + <Run.Foreground> + <SolidColorBrush Color="{Binding Tunnel.Color}"/> + </Run.Foreground> + </Run> + <Run Text="{Binding Tunnel.DisplayMaxValue}" ></Run> + </TextBlock> + <TextBlock VerticalAlignment="Bottom" HorizontalAlignment="Center" Margin="0 0 0 20" FontSize="{StaticResource TangoDefaultFontSize}" FontWeight="SemiBold" Text="ºC"></TextBlock> + + </Grid> + <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center">Tunnel</TextBlock> + </StackPanel> + <StackPanel Orientation="Vertical"> + <Grid> + <touch:TouchArcProgress RingThickness="8" Value="{Binding PumpsPressure.Value}" Maximum="{Binding PumpsPressure.MaxValue}" Minimum="0" Width="100" Height="100"> + <touch:TouchArcProgress.Foreground> + <SolidColorBrush Color="{Binding PumpsPressure.Color}"/> + </touch:TouchArcProgress.Foreground> + </touch:TouchArcProgress> + <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="{StaticResource TangoDefaultFontSize}" FontWeight="SemiBold" Text="{Binding PumpsPressure.DisplayValue}"> + <TextBlock.Foreground> + <SolidColorBrush Color="{Binding PumpsPressure.Color}"/> + </TextBlock.Foreground> + </TextBlock> + <TextBlock VerticalAlignment="Bottom" HorizontalAlignment="Center" Margin="0 0 0 20" FontSize="{StaticResource TangoDefaultFontSize}" FontWeight="SemiBold" Text="Bar"></TextBlock> + + </Grid> + <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center">Pumps pressure</TextBlock> + </StackPanel> + <StackPanel Orientation="Vertical"> + <Grid> + <touch:TouchArcProgress RingThickness="8" Value="{Binding Lubricant.Value}" Maximum="{Binding Lubricant.MaxValue}" Minimum="0" Width="100" Height="100"> + <touch:TouchArcProgress.Foreground> + <SolidColorBrush Color="{Binding Lubricant.Color}"/> + </touch:TouchArcProgress.Foreground> + </touch:TouchArcProgress> + <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="{StaticResource TangoDefaultFontSize}" FontWeight="SemiBold" Text="{Binding Lubricant.DisplayValue, StringFormat=0.## }"> + <TextBlock.Foreground> + <SolidColorBrush Color="{Binding Lubricant.Color}"/> + </TextBlock.Foreground> + </TextBlock> + <TextBlock VerticalAlignment="Bottom" HorizontalAlignment="Center" Margin="0 0 0 20" FontSize="{StaticResource TangoDefaultFontSize}" FontWeight="SemiBold" Text="mVolts"></TextBlock> + + </Grid> + <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center">Lubricant</TextBlock> + </StackPanel> + </UniformGrid> + <Grid Margin="0 23 0 0"> + <Image Source="../Images/Job Issues/Machine outline.png" Height="188" Stretch="UniformToFill" VerticalAlignment="Top" HorizontalAlignment="Center" Width="636" /> + <StackPanel Orientation="Horizontal" HorizontalAlignment="Center"> + <StackPanel Orientation="Vertical"> + <Border Height="184" Width="83" VerticalAlignment="Center" CornerRadius="2 0 0 2" BorderThickness="0" BorderBrush="{StaticResource TangoBlackInkBrush}"> + <ItemsControl Margin="0 21 0 9" ItemsSource="{Binding MachineErrorStates.Winders}" ItemTemplate="{StaticResource ErrorState}"> + <ItemsControl.ItemsPanel> + <ItemsPanelTemplate> + <UniformGrid Columns="1" Rows="4" IsItemsHost="True" VerticalAlignment="Stretch"></UniformGrid> + </ItemsPanelTemplate> + </ItemsControl.ItemsPanel> + </ItemsControl> + </Border> + <TextBlock HorizontalAlignment="Center" Margin="0 4 0 0" FontWeight="Thin">Winder</TextBlock> + </StackPanel> + <StackPanel Orientation="Vertical"> + <Border Height="171" Width="95" VerticalAlignment="Center" CornerRadius="0" BorderThickness="0" BorderBrush="{StaticResource TangoBlackInkBrush}"> + <ItemsControl Margin="0 21 0 9" ItemsSource="{Binding MachineErrorStates.Dancers}" ItemTemplate="{StaticResource ErrorState}"> + <ItemsControl.ItemsPanel> + <ItemsPanelTemplate> + <UniformGrid Columns="1" Rows="4" IsItemsHost="True" VerticalAlignment="Stretch"></UniformGrid> + </ItemsPanelTemplate> + </ItemsControl.ItemsPanel> + </ItemsControl> + </Border> + <TextBlock HorizontalAlignment="Center" Margin="14 18 14 14" FontWeight="Thin">Dancer</TextBlock> + </StackPanel> + + + <StackPanel Orientation="Vertical" Margin="274 0 0 0"> + <Border Height="171" Width="95" VerticalAlignment="Center" CornerRadius="0" BorderThickness="0" BorderBrush="{StaticResource TangoBlackInkBrush}"> + <ItemsControl Margin="0 21 0 9" ItemsSource="{Binding MachineErrorStates.BTSRs}" ItemTemplate="{StaticResource ErrorState}"> + <ItemsControl.ItemsPanel> + <ItemsPanelTemplate> + <UniformGrid Columns="1" Rows="4" IsItemsHost="True" VerticalAlignment="Stretch"></UniformGrid> + </ItemsPanelTemplate> + </ItemsControl.ItemsPanel> + </ItemsControl> + </Border> + <TextBlock HorizontalAlignment="Center" Margin="0 18 0 0" FontWeight="Thin">BTSR</TextBlock> + </StackPanel> + <StackPanel Orientation="Vertical"> + <Border Height="184" Width="83" VerticalAlignment="Center" CornerRadius="2 0 0 2" BorderThickness="0" BorderBrush="{StaticResource TangoBlackInkBrush}"> + <UniformGrid Columns="1" Rows="4" Margin="24"> + <Image Stretch="Fill" Width="20" Height="24" Source="../Images/Overview Icons/Feeder1.png" HorizontalAlignment="Center" > + + </Image> + <Image Stretch="Fill" Width="20" Height="24" Source="../Images/Overview Icons/Feeder2.png" HorizontalAlignment="Center" ></Image> + <Image Stretch="Fill" Width="20" Height="24" Source="../Images/Overview Icons/Feeder3.png" HorizontalAlignment="Center" ></Image> + <Image Stretch="Fill" Width="20" Height="24" Source="../Images/Overview Icons/Feeder4.png" HorizontalAlignment="Center" ></Image> + </UniformGrid> + </Border> + <TextBlock HorizontalAlignment="Center" Margin="0 4 0 0" FontWeight="Thin">Feeder</TextBlock> + </StackPanel> + </StackPanel> + </Grid> + </StackPanel> + </Grid> + <Grid Grid.Row="2" x:Name="IncLevels" Margin="0 8 0 0" Height="196"> + <StackPanel Orientation="Vertical"> + <DockPanel> + <StackPanel Orientation="Vertical" DockPanel.Dock="Right" Margin="0 0 30 0" > + <StackPanel Orientation="Horizontal" > + <Image Source="../Images/Overview Icons/Waste.png" Stretch="UniformToFill" VerticalAlignment="Top" HorizontalAlignment="Left" Width="32" Height="32"/> + <TextBlock Margin="12 0 0 0 " VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="{StaticResource TangoComboBoxItemFontSize}">Waste</TextBlock> + </StackPanel> + <StackPanel Orientation="Horizontal" Margin="-25 24 0 0"> + <Rectangle Height="88" Width="2" Fill="{StaticResource TangoTextWatermarkBrush}" VerticalAlignment="Top" Margin="-15 15 0 0"/> + <ContentControl Margin="20 0 0 0" ContentTemplate="{StaticResource WasteBox}" Content="{Binding}" IsTabStop="False"/> + </StackPanel> + + </StackPanel> + <StackPanel Orientation="Vertical"> + <StackPanel Orientation="Horizontal" > + <Image Source="../Images/Overview Icons/Inks.png" Stretch="UniformToFill" VerticalAlignment="Top" HorizontalAlignment="Left" Width="32" Height="32"/> + <TextBlock Margin="12 0 0 0 " VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="{StaticResource TangoComboBoxItemFontSize}">Ink Levels</TextBlock> + </StackPanel> + <StackPanel Orientation="Horizontal" Margin="0 24 0 0"> + <ItemsControl ItemsSource="{Binding MidTankLevels}" ItemTemplate="{StaticResource LiquidBox}"> + <ItemsControl.ItemsPanel> + <ItemsPanelTemplate> + <UniformGrid Rows="1" IsItemsHost="True" Width="550"></UniformGrid> + </ItemsPanelTemplate> + </ItemsControl.ItemsPanel> + </ItemsControl> + <StackPanel Orientation="Horizontal" Margin="40 0 0 0"> + <Rectangle Height="88" Width="2" Fill="{StaticResource TangoTextWatermarkBrush}" VerticalAlignment="Top" Margin="-15 15 0 0"/> + <ContentControl Margin="30 0 0 0" ContentTemplate="{StaticResource LubLiquidBox}" Content="{Binding MidTankLubLevel}" IsTabStop="False"/> + </StackPanel> + </StackPanel> + </StackPanel> + </DockPanel> + + </StackPanel> + <Border VerticalAlignment="Bottom" Height="2" Background="{StaticResource TangoLightBorderBrush}" Margin="0 0 0 0" CornerRadius="2"></Border> + </Grid> + <Grid Grid.Row="3" x:Name="StatRealGraph" Margin="0 8 0 0"> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="186"></ColumnDefinition> + <ColumnDefinition Width="32"></ColumnDefinition> + <ColumnDefinition Width="1*"></ColumnDefinition> + </Grid.ColumnDefinitions> + + <touch:TouchNavigationLinks BorderBrush="{StaticResource TangoDividerBrush}" BorderThickness="0 0 0 0" x:Name="navigationSTLinks" HorizontalContentAlignment="Left" + SelectedIndex="{Binding SelectedStatisticTabIndex,Mode=TwoWay}" VerticalAlignment="Bottom" Margin="0,10,0,20" Padding="0 0 0 0" + FontSize="{StaticResource TangoNavigationLinksFontSize}" LineThickness="0" PreviewTouchDown="NavigationSTLinks_PreviewTouchDown" PreviewMouseDown="NavigationSTLinks_PreviewMouseDown"> + + <DockPanel HorizontalAlignment="Stretch"> + <Image DockPanel.Dock="Left" Source="../Images/Overview Icons/pr_data.png" Stretch="UniformToFill" VerticalAlignment="Top" HorizontalAlignment="Left" Width="32" Height="32"/> + <TextBlock HorizontalAlignment="Left" Margin="12 0 0 0" FontSize="{StaticResource TangoDefaultFontSize}" VerticalAlignment="Center">Production Data</TextBlock> + </DockPanel> + <DockPanel HorizontalAlignment="Stretch" IsEnabled="False" Margin="0 12 0 0"> + <Image DockPanel.Dock="Left" Source="../Images/Overview Icons/temperature.png" Stretch="UniformToFill" VerticalAlignment="Top" HorizontalAlignment="Left" Width="32" Height="32"/> + <TextBlock HorizontalAlignment="Left" Margin="12 0 0 0" FontSize="{StaticResource TangoDefaultFontSize}" VerticalAlignment="Center" Foreground="{StaticResource TangoDisabledForegroundBrush}">Temperature</TextBlock> + </DockPanel> + <DockPanel HorizontalAlignment="Stretch" IsEnabled="False"> + <Image DockPanel.Dock="Left" Source="../Images/Overview Icons/pressure.png" Stretch="UniformToFill" VerticalAlignment="Top" HorizontalAlignment="Left" Width="32" Height="32"/> + <TextBlock HorizontalAlignment="Left" Margin="12 0 0 0" FontSize="{StaticResource TangoDefaultFontSize}" VerticalAlignment="Center" Foreground="{StaticResource TangoDisabledForegroundBrush}">Pressure</TextBlock> + </DockPanel> + <DockPanel HorizontalAlignment="Stretch" IsEnabled="False" > + <Image DockPanel.Dock="Left" Source="../Images/Overview Icons/motor.png" Stretch="UniformToFill" VerticalAlignment="Top" HorizontalAlignment="Left" Width="32" Height="32"/> + <TextBlock HorizontalAlignment="Left" Margin="12 0 0 0" FontSize="{StaticResource TangoDefaultFontSize}" VerticalAlignment="Center" Foreground="{StaticResource TangoDisabledForegroundBrush}">Motor</TextBlock> + </DockPanel> + <touch:TouchNavigationLinks.Style> + <Style TargetType="{x:Type touch:TouchNavigationLinks}"> + <Setter Property="ItemsPanel"> + <Setter.Value> + <ItemsPanelTemplate> + <UniformGrid Rows="4" /> + </ItemsPanelTemplate> + </Setter.Value> + </Setter> + </Style> + </touch:TouchNavigationLinks.Style> + + </touch:TouchNavigationLinks> + <Grid Grid.Column="1" Margin="0 40 0 0"> + <Rectangle Width="20" Height="2" Fill="{StaticResource TangoBlackInkBrush}" VerticalAlignment="Top" Margin="0 0 0 0" ></Rectangle> + <!--<Rectangle Width="2" Height="138" Margin="20 0 0 0" Fill="{StaticResource TangoBlackInkBrush}" VerticalAlignment="Top" ></Rectangle>--> + <Rectangle Margin="20 0 0 0" VerticalAlignment="Top" Fill="{StaticResource TangoBlackInkBrush}" Height="2" Width="138" HorizontalAlignment="Stretch"> + <Rectangle.LayoutTransform> + <TransformGroup> + <RotateTransform Angle="90"/> + </TransformGroup> + </Rectangle.LayoutTransform> + </Rectangle> + </Grid> + <Grid Grid.Column="2" x:Name="StatGrid" Margin="0,30,0.4,0"> + <Grid Visibility="{Binding SelectedStatisticTab,Converter={StaticResource StatisticTabToVisibilityConverter},ConverterParameter='Productiondata'}"> + <graphs:RealTimeGraph Style="{StaticResource PPC_RealTimeGraph_Flat}" Controller="{Binding JobController}" Background="Transparent" StringFormat="0" GridLinesBrush="{StaticResource Tango_RealTimeGraph_ForegroundBrush}" BorderBrush="Transparent" + VerticalAxisVisibility="Visible" HorizontalAxisVisibility="Visible" VerticalTicks =" 5" AxisLabelAngle="0.0"/> + </Grid> + </Grid> + </Grid> + </Grid> + </Grid> + </Grid> + <Grid VerticalAlignment="Bottom" Grid.ColumnSpan="2" Margin="10 0 10 0"> + <touch:TouchExpander x:Name="Notifications" Style="{StaticResource TouchRoundedExpander}" IsTabStop="False" KeyboardNavigation.TabNavigation ="None" BorderThickness="0" CornerRadius="20 20 0 0" Margin="0 0 0 -1" IsExpanded="{Binding IsExpandedNotifications, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"> + <touch:TouchExpander.Header> + <DockPanel > + <touch:TouchButton Margin="0 0 20 0" Content="Clear All" DockPanel.Dock="Right" Width="120" Height="38" HorizontalAlignment="Right" VerticalAlignment="Center" EnableDropShadow="False" Background="Transparent" BorderThickness="1" CornerRadius="19" BorderBrush="{StaticResource TangoPrimaryAccentBrush}" Foreground="{StaticResource TangoPrimaryAccentBrush}" Command="{Binding ClearAllNotificationsCommand}" Visibility="{Binding NotificationProvider.HasNotificationItems, Converter={StaticResource BooleanToVisibilityConverter}}" > + + </touch:TouchButton> + <StackPanel DockPanel.Dock="Left" Orientation="Horizontal" VerticalAlignment="Center" > + <Image Source="../Images/Job Issues/Events.png" MaxWidth="33" Stretch="Fill" Height="36"/> + <TextBlock VerticalAlignment="Center" Margin="20 4 0 0" FontWeight="SemiBold" FontSize="{StaticResource TangoComboBoxItemFontSize}">Notifications</TextBlock> + <TextBlock Margin="10 0 0 0" VerticalAlignment="Center" FontWeight="Normal" FontSize="{StaticResource TangoComboBoxItemFontSize}" Visibility="{Binding NotificationProvider.HasNotificationItems, Converter={StaticResource BooleanToVisibilityConverter}}"> + <Run Text="(" ></Run> + <Run Text="{Binding NotificationProvider.NotificationItems, Mode=OneWay, Converter={StaticResource CollectionToCountConverter}}"></Run> + <Run Text=" new Events)" ></Run> + </TextBlock> + </StackPanel> + </DockPanel> + </touch:TouchExpander.Header> + <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> + <ListBox ClipToBounds="False" ItemsSource="{Binding NotificationProvider.NotificationItems}" HorizontalAlignment="Stretch" MaxHeight="258" > + <ListBox.Style> + <Style TargetType="{x:Type ListBox}" BasedOn="{StaticResource BlankListBox}"> + <Setter Property="VirtualizingPanel.ScrollUnit" Value="Pixel"></Setter> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type ListBox}"> + <Border BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}" Background="{TemplateBinding Background}"> + <touch:TouchScrollViewer CanContentScroll="True" Padding="{TemplateBinding Padding}" Focusable="False" + Style="{StaticResource TouchVerticalScrollViewer}"> + <ItemsPresenter /> + </touch:TouchScrollViewer> + </Border> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + </ListBox.Style> + <ItemsControl.ItemsPanel> + <ItemsPanelTemplate> + <VirtualizingStackPanel IsVirtualizing="True" VirtualizationMode="Recycling" VirtualizingPanel.ScrollUnit="Pixel" /> + </ItemsPanelTemplate> + </ItemsControl.ItemsPanel> + <ItemsControl.ItemTemplate> + <DataTemplate> + <Grid HorizontalAlignment="Stretch" Height="60"> + <Border BorderThickness="1" Margin="-1 0 0 0" BorderBrush="{StaticResource TangoDividerBrush}"> + <Grid HorizontalAlignment="Stretch" > + <Grid.ColumnDefinitions> + <ColumnDefinition Width="56"/> + <ColumnDefinition Width="1*"/> + <ColumnDefinition Width="Auto"/> + </Grid.ColumnDefinitions> + <touch:TouchIcon Margin="24 0 0 0" DockPanel.Dock="Left" Height="32" Grid.Column="0"> + <touch:TouchIcon.Style> + <Style TargetType="touch:TouchIcon"> + <Setter Property="Icon" Value="Information"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding MessageType}" Value="Info"> + <Setter Property="Icon" Value="InformationOutline"></Setter> + <Setter Property="Foreground" Value="{StaticResource TangoPrimaryAccentBrush}"/> + </DataTrigger> + <DataTrigger Binding="{Binding MessageType}" Value="Success"> + <Setter Property="Icon" Value="Check"/> + <Setter Property="Foreground" Value="{StaticResource TangoSuccessBrush}"/> + </DataTrigger> + <DataTrigger Binding="{Binding MessageType}" Value="Warning"> + <Setter Property="Icon" Value="AlertCircleOutline"></Setter> + <Setter Property="Foreground" Value="{StaticResource TangoWarningBrush}"/> + </DataTrigger> + <DataTrigger Binding="{Binding MessageType}" Value="Error"> + <Setter Property="Icon" Value="AlertCircleOutline"></Setter> + <Setter Property="Foreground" Value="{StaticResource TangoErrorBrush}"/> + </DataTrigger> + <DataTrigger Binding="{Binding MessageType}" Value="Critical"> + <Setter Property="Icon" Value="Alert"></Setter> + <Setter Property="Foreground" Value="{StaticResource TangoErrorBrush}"/> + </DataTrigger> + </Style.Triggers> + </Style> + </touch:TouchIcon.Style> + </touch:TouchIcon> + + <StackPanel Margin="15 3 10 5" VerticalAlignment="Center" Grid.Column="1"> + <TextBlock Text="{Binding Message}" TextTrimming="CharacterEllipsis" TextWrapping="Wrap" Foreground="Black" VerticalAlignment="Top" ></TextBlock> + <TextBlock Margin="0 3 0 0" Foreground="{StaticResource TangoDarkForegroundBrush}" Text="{Binding ExpandedMessage}" FontSize="{StaticResource TangoSmallFontSize}" TextWrapping="NoWrap" VerticalAlignment="Center" HorizontalAlignment="Left" TextTrimming="CharacterEllipsis"/> + </StackPanel> + + <Grid Grid.Column="2" Width="40" HorizontalAlignment="Right" VerticalAlignment="Stretch" Visibility="{Binding CanClose,Converter={StaticResource BooleanToVisibilityConverter}}"> + <Grid Margin="0 0 20 0" HorizontalAlignment="Right" VerticalAlignment="Center" Width="14" Height="14"> + <touch:TouchIcon Icon="Close" Foreground="Black" /> + </Grid> + <touch:TouchButton Opacity="0" Background="Transparent" Style="{StaticResource TangoFlatButton}" Command="{Binding CloseCommand}" CommandParameter="{Binding}" Foreground="{StaticResource TangoPrimaryBackgroundBrush}" Padding="5" /> + </Grid> + + </Grid> + </Border> + </Grid> + </DataTemplate> + </ItemsControl.ItemTemplate> + </ListBox> + </Grid> + </touch:TouchExpander> + </Grid> + </Grid> + <Grid Visibility="{Binding IsDisplayJobOutline,Converter={StaticResource BooleanToVisibilityConverter}}" Background="{StaticResource TangoPrimaryBackgroundBrush}" Opacity="0.8"/> + + <Grid Margin="0 -10 0 0" Visibility="{Binding IsDisplayJobOutline,Converter={StaticResource BooleanToVisibilityConverter}}"> + <Grid> + <touch:TouchScrollViewer BorderThickness="0" Padding="10" Margin="0 0 0 100"> + <locaControls:JobOutlineControl IsHitTestVisible="False" BorderThickness="0" Margin="20" DataContext="{Binding JobOutlineTicket}" HorizontalAlignment="Left" /> + </touch:TouchScrollViewer> + </Grid> + + <touch:TouchButton Background="{StaticResource TangoPrimaryBackgroundBrush}" VerticalAlignment="Bottom" Margin="0 100 0 0" Command="{Binding HideJobOutlineCommand}" Style="{StaticResource TangoLinkButton}" Height="60" FontSize="{StaticResource TangoTitleFontSize}"> + Hide Job Outline + </touch:TouchButton> + </Grid> + </Grid> +</UserControl> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MachineStatusView.xaml.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MachineStatusView.xaml.cs new file mode 100644 index 000000000..e49e062b7 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MachineStatusView.xaml.cs @@ -0,0 +1,71 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using Tango.Core.EventArguments; +using Tango.PPC.UI.ViewModels; + +namespace Tango.PPC.UI.Views +{ + /// <summary> + /// Interaction logic for MachineStatusView.xaml + /// </summary> + public partial class MachineStatusView : UserControl + { + private MachineStatusViewVM _vm; + private System.Timers.Timer _timer; + + public MachineStatusView() + { + InitializeComponent(); + + techPressElement.RegisterForPreviewMouseOrTouchDown(OnMouseOrTouchDown); + techPressElement.RegisterForPreviewMouseOrTouchUp(OnMouseOrTouchUp); + _timer = new System.Timers.Timer(); + _timer.Interval = TimeSpan.FromSeconds(10).TotalMilliseconds; + _timer.Elapsed += _timer_Elapsed; + + Loaded += (_, __) => _vm = DataContext as MachineStatusViewVM; + } + + private void _timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) + { + _timer.Stop(); + + Dispatcher.BeginInvoke(new Action(() => + { + _vm.ToggleTechnicianMode(); + })); + } + + private void OnMouseOrTouchDown(object sender, MouseOrTouchEventArgs e) + { + _timer.Start(); + } + + private void OnMouseOrTouchUp(object sender, MouseOrTouchEventArgs e) + { + _timer.Stop(); + } + + private void NavigationSTLinks_PreviewTouchDown(object sender, TouchEventArgs e) + { + e.Handled = true; + } + + private void NavigationSTLinks_PreviewMouseDown(object sender, MouseButtonEventArgs e) + { + e.Handled = true; + } + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MainEurekaView.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MainEurekaView.xaml new file mode 100644 index 000000000..1646cf6dd --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MainEurekaView.xaml @@ -0,0 +1,51 @@ +<UserControl x:Class="Tango.PPC.UI.Views.MainEurekaView" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:controls="clr-namespace:Tango.SharedUI.Controls;assembly=Tango.SharedUI" + xmlns:commonControls="clr-namespace:Tango.PPC.Common.Controls;assembly=Tango.PPC.Common" + xmlns:vm="clr-namespace:Tango.PPC.UI.ViewModels" + xmlns:global="clr-namespace:Tango.PPC.UI" + xmlns:operations="clr-namespace:Tango.Integration.Operation;assembly=Tango.Integration" + xmlns:local="clr-namespace:Tango.PPC.UI.Views" + xmlns:notifications="clr-namespace:Tango.PPC.UI.Notifications" + xmlns:touch="clr-namespace:Tango.Touch.Controls;assembly=Tango.Touch" + xmlns:components="clr-namespace:Tango.Touch.Components;assembly=Tango.Touch" + xmlns:localConverters="clr-namespace:Tango.PPC.UI.Converters" + xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" + mc:Ignorable="d" + d:DesignHeight="1280" d:DesignWidth="800" d:DataContext="{d:DesignInstance Type=vm:MainViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.MainViewVM}"> + + <UserControl.Resources> + <localConverters:ItemBaseConverter x:Key="ItemBaseConverter" /> + </UserControl.Resources> + + <Grid Background="Transparent"> + <i:Interaction.Triggers> + <i:EventTrigger EventName="PreviewMouseUp"> + <i:InvokeCommandAction Command="{Binding ScreenSaverExitCommand}" /> + </i:EventTrigger> + </i:Interaction.Triggers> + + <Grid> + <touch:TouchPanelEurekaNoKeyboard> + + <controls:NavigationControl TransitionAlwaysFades="True" KeepElementsAttached="False" UseDefferedRendering="True" TransitionType="Zoom" x:Name="NavigationControl" x:FieldModifier="public"> + <local:LoadingView></local:LoadingView> + <local:LoadingErrorView></local:LoadingErrorView> + <local:NoPermissionsView></local:NoPermissionsView> + <local:LoginView></local:LoginView> + <local:LayoutEurekaView controls:NavigationControl.NavigationName="LayoutView"></local:LayoutEurekaView> + <local:ExternalBridgeView></local:ExternalBridgeView> + <local:MachineSetupView></local:MachineSetupView> + <local:MachineUpdateView></local:MachineUpdateView> + <local:RestartingSystemView></local:RestartingSystemView> + <local:EmergencyView></local:EmergencyView> + <local:RestartingView></local:RestartingView> + </controls:NavigationControl> + + </touch:TouchPanelEurekaNoKeyboard> + </Grid> + </Grid> +</UserControl> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MainEurekaView.xaml.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MainEurekaView.xaml.cs new file mode 100644 index 000000000..802f69186 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MainEurekaView.xaml.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using Tango.PPC.UI.ViewsContracts; +using Tango.SharedUI.Controls; + +namespace Tango.PPC.UI.Views +{ + /// <summary> + /// Interaction logic for MainView.xaml + /// </summary> + public partial class MainEurekaView : UserControl, IMainView + { + public static MainEurekaView Instance { get; private set; } + + public MainEurekaView() + { + InitializeComponent(); + Instance = this; + } + + public NavigationControl GetNavigationControl() + { + return NavigationControl; + } + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MainView.xaml.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MainView.xaml.cs index cd7562d04..9c796529a 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MainView.xaml.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MainView.xaml.cs @@ -12,13 +12,15 @@ using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; +using Tango.PPC.UI.ViewsContracts; +using Tango.SharedUI.Controls; namespace Tango.PPC.UI.Views { /// <summary> /// Interaction logic for MainView.xaml /// </summary> - public partial class MainView : UserControl + public partial class MainView : UserControl, IMainView { public static MainView Instance { get; private set; } @@ -27,5 +29,10 @@ namespace Tango.PPC.UI.Views InitializeComponent(); Instance = this; } + + public NavigationControl GetNavigationControl() + { + return NavigationControl; + } } } diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/PowerOffView.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/PowerOffView.xaml index 22952a827..1e864c7e3 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/PowerOffView.xaml +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/PowerOffView.xaml @@ -11,7 +11,14 @@ d:DesignHeight="1280" d:DesignWidth="800" Background="{StaticResource TangoPrimaryBackgroundBrush}" d:DataContext="{d:DesignInstance Type=vm:PowerOffViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.PowerOffViewVM}"> <Grid> <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center"> - <touch:TouchGifAnimation Source="/Images/power_off_2.gif" EnableAnimation="{Binding IsVisible}" HorizontalAlignment="Center" /> + <TextBlock FontSize="{StaticResource TangoTitleFontSize}" HorizontalAlignment="Center" Margin="0 50 0 0" Text="{Binding Status.Message}" TextTrimming="CharacterEllipsis"/> + + <Grid Margin="0 30 0 0"> + <touch:TouchGifAnimation Source="/Images/power_off_2.gif" EnableAnimation="{Binding IsVisible}" HorizontalAlignment="Center" /> + <TextBlock FontSize="{StaticResource TangoHeaderFontSize}" FontWeight="DemiBold" HorizontalAlignment="Center" Margin="0 50 0 0"> + <Run Text="{Binding Status.ProgressPercentage, TargetNullValue=0, StringFormat=0}"/>% + </TextBlock> + </Grid> <TextBlock HorizontalAlignment="Center" Margin="0 60 0 0" FontSize="{StaticResource TangoHeaderFontSize}">Machine is turning Off</TextBlock> <TextBlock HorizontalAlignment="Center" Margin="0 20 0 0" FontSize="{StaticResource TangoTitleFontSize}" Foreground="{StaticResource TangoGrayTextBrush}">Do not unplug machine while turning off</TextBlock> <touch:TouchButton Command="{Binding AbortCommand}" Style="{StaticResource TangoHollowButton}" Margin="0 100 0 0" HorizontalAlignment="Center" Width="200" Height="50">ABORT</touch:TouchButton> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewsContracts/ILayoutView.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewsContracts/ILayoutView.cs index 72b981193..468d3275f 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewsContracts/ILayoutView.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewsContracts/ILayoutView.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using Tango.PPC.Common; +using Tango.SharedUI.Controls; namespace Tango.PPC.UI.ViewsContracts { @@ -13,6 +14,6 @@ namespace Tango.PPC.UI.ViewsContracts /// <seealso cref="Tango.PPC.Common.IPPCView" /> public interface ILayoutView : IPPCView { - + NavigationControl GetNavigationControl(); } } diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewsContracts/IMainView.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewsContracts/IMainView.cs new file mode 100644 index 000000000..2e790b171 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewsContracts/IMainView.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.PPC.Common; +using Tango.SharedUI.Controls; + +namespace Tango.PPC.UI.ViewsContracts +{ + public interface IMainView : IPPCView + { + NavigationControl GetNavigationControl(); + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/packages.config b/Software/Visual_Studio/PPC/Tango.PPC.UI/packages.config index ec7ec1e3a..9e3e48198 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/packages.config +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/packages.config @@ -11,4 +11,5 @@ <package id="System.Data.SQLite.Core" version="1.0.108.0" targetFramework="net46" /> <package id="System.Data.SQLite.EF6" version="1.0.108.0" targetFramework="net46" /> <package id="System.Data.SQLite.Linq" version="1.0.108.0" targetFramework="net46" /> + <package id="WPFMediaKit" version="2.2.0" targetFramework="net461" /> </packages>
\ No newline at end of file diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Updater/MainWindow.xaml.cs b/Software/Visual_Studio/PPC/Tango.PPC.Updater/MainWindow.xaml.cs index 8f521c85a..01f96c619 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Updater/MainWindow.xaml.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Updater/MainWindow.xaml.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; +using System.Runtime.InteropServices; using System.Security.Principal; using System.Text; using System.Threading; @@ -24,13 +25,23 @@ namespace Tango.PPC.Updater /// </summary> public partial class MainWindow : Window { + [DllImport("user32.dll")] + private static extern int GetSystemMetrics(int nIndex); + private String _sourceFolder = AppDomain.CurrentDomain.BaseDirectory; private String _msProcessName = "Tango.PPC.UI"; private String _appPath; private bool EMULATE_EXCEPTION = false; + private bool _isEureka; public MainWindow() { + + +#if Eureka + _isEureka = true; +#endif + //Launch debugger.. #if DEBUG if (!Debugger.IsAttached) @@ -44,7 +55,7 @@ namespace Tango.PPC.Updater WindowStyle = WindowStyle.None; ResizeMode = ResizeMode.NoResize; WindowStartupLocation = WindowStartupLocation.Manual; - Topmost = true; // sure? + Topmost = !_isEureka; // sure? var screens = System.Windows.Forms.Screen.AllScreens; @@ -64,6 +75,34 @@ namespace Tango.PPC.Updater Left = 0; } + if (_isEureka) + { + bool hasTouch = IsTouchEnabled(); + + if (!hasTouch) + { + WindowStyle = WindowStyle.SingleBorderWindow; + ResizeMode = ResizeMode.CanResize; + Width = 1280; + Height = 720; + WindowStartupLocation = WindowStartupLocation.CenterScreen; + WindowState = WindowState.Normal; + Topmost = false; // sure? + } + else + { + WindowState = WindowState.Normal; + WindowStyle = WindowStyle.None; + ResizeMode = ResizeMode.NoResize; + Left = screens.Length == 2 ? screens[0].Bounds.Width : 0; + Top = 0; + Width = 1920; + Height = 1080; + WindowStartupLocation = WindowStartupLocation.Manual; + Topmost = false; // sure? + } + } + ContentRendered += MainWindow_ContentRendered; btnRetry.Click += BtnRetry_Click; @@ -344,5 +383,27 @@ namespace Tango.PPC.Updater { Update(); } + + /// <summary> + /// Determines whether the current machine is touch enabled. + /// </summary> + public static bool IsTouchEnabled() + { + const int MAXTOUCHES_INDEX = 95; + int maxTouches = GetSystemMetrics(MAXTOUCHES_INDEX); + + if (maxTouches > 0) + { + return true; + } + + foreach (TabletDevice tabletDevice in Tablet.TabletDevices) + { + if (tabletDevice.Type == TabletDeviceType.Touch && !String.IsNullOrWhiteSpace(tabletDevice.Name)) + return true; + } + + return false; + } } } diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Updater/Tango.PPC.Updater.csproj b/Software/Visual_Studio/PPC/Tango.PPC.Updater/Tango.PPC.Updater.csproj index 8f8430102..f240ddac0 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Updater/Tango.PPC.Updater.csproj +++ b/Software/Visual_Studio/PPC/Tango.PPC.Updater/Tango.PPC.Updater.csproj @@ -33,6 +33,15 @@ <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Eureka|AnyCPU' "> + <PlatformTarget>AnyCPU</PlatformTarget> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>..\..\Build\PPC\Eureka\</OutputPath> + <DefineConstants>TRACE;Eureka</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> <PropertyGroup> <ApplicationManifest>app.manifest</ApplicationManifest> </PropertyGroup> diff --git a/Software/Visual_Studio/SideChains/RealTimeGraphX-master/RealTimeGraphX.WPF/Themes/Generic.xaml b/Software/Visual_Studio/SideChains/RealTimeGraphX-master/RealTimeGraphX.WPF/Themes/Generic.xaml index 64145bcfa..88d22f9e2 100644 --- a/Software/Visual_Studio/SideChains/RealTimeGraphX-master/RealTimeGraphX.WPF/Themes/Generic.xaml +++ b/Software/Visual_Studio/SideChains/RealTimeGraphX-master/RealTimeGraphX.WPF/Themes/Generic.xaml @@ -85,7 +85,7 @@ </Rectangle> <TextBlock VerticalAlignment="Bottom" Text="{Binding DisplayText}" RenderTransformOrigin="0.5,0.5"> <TextBlock.RenderTransform> - <RotateTransform Angle="-30" /> + <RotateTransform Angle="{Binding RelativeSource={RelativeSource AncestorType=local:WpfGraphAxisControl}, Path=AxisLabelAngle}" /> </TextBlock.RenderTransform> </TextBlock> </DockPanel> diff --git a/Software/Visual_Studio/SideChains/RealTimeGraphX-master/RealTimeGraphX.WPF/WpfGraphAxisControl.cs b/Software/Visual_Studio/SideChains/RealTimeGraphX-master/RealTimeGraphX.WPF/WpfGraphAxisControl.cs index aa738b203..e445d29b9 100644 --- a/Software/Visual_Studio/SideChains/RealTimeGraphX-master/RealTimeGraphX.WPF/WpfGraphAxisControl.cs +++ b/Software/Visual_Studio/SideChains/RealTimeGraphX-master/RealTimeGraphX.WPF/WpfGraphAxisControl.cs @@ -46,6 +46,20 @@ namespace RealTimeGraphX.WPF public static readonly DependencyProperty OrientationProperty = DependencyProperty.Register("Orientation", typeof(Orientation), typeof(WpfGraphAxisControl), new PropertyMetadata(Orientation.Vertical)); + + + public double AxisLabelAngle + { + get { return (double)GetValue(AxisLabelAngleProperty); } + set { SetValue(AxisLabelAngleProperty, value); } + } + + // Using a DependencyProperty as the backing store for AxisLabelAngle. This enables animation, styling, binding, etc... + public static readonly DependencyProperty AxisLabelAngleProperty = + DependencyProperty.Register("AxisLabelAngle", typeof(double), typeof(WpfGraphAxisControl), new PropertyMetadata(-30.0)); + + + /// <summary> /// Gets or sets the tick item template. /// </summary> diff --git a/Software/Visual_Studio/Tango.BL/Builders/JobsCollectionBuilder.cs b/Software/Visual_Studio/Tango.BL/Builders/JobsCollectionBuilder.cs index c155e7020..a2c9c3678 100644 --- a/Software/Visual_Studio/Tango.BL/Builders/JobsCollectionBuilder.cs +++ b/Software/Visual_Studio/Tango.BL/Builders/JobsCollectionBuilder.cs @@ -63,5 +63,16 @@ namespace Tango.BL.Builders } }); } + + public virtual JobsCollectionBuilder WithRmls() + { + return AddStep(4, () => + { + foreach (var job in Entities.ToList()) + { + Context.Rmls.Where(x => x.Guid == job.RmlGuid).ToList(); + } + }); + } } } diff --git a/Software/Visual_Studio/Tango.BL/DTO/HardwareVersionDTOBase.cs b/Software/Visual_Studio/Tango.BL/DTO/HardwareVersionDTOBase.cs index 84f75210e..6ef629488 100644 --- a/Software/Visual_Studio/Tango.BL/DTO/HardwareVersionDTOBase.cs +++ b/Software/Visual_Studio/Tango.BL/DTO/HardwareVersionDTOBase.cs @@ -37,5 +37,21 @@ namespace Tango.BL.DTO get; set; } + /// <summary> + /// machine type + /// </summary> + public Int32 MachineType + { + get; set; + } + + /// <summary> + /// user name + /// </summary> + public String UserName + { + get; set; + } + } } diff --git a/Software/Visual_Studio/Tango.BL/DTO/JobRunDTOBase.cs b/Software/Visual_Studio/Tango.BL/DTO/JobRunDTOBase.cs index 3f3efb015..45aa02514 100644 --- a/Software/Visual_Studio/Tango.BL/DTO/JobRunDTOBase.cs +++ b/Software/Visual_Studio/Tango.BL/DTO/JobRunDTOBase.cs @@ -333,5 +333,13 @@ namespace Tango.BL.DTO get; set; } + /// <summary> + /// machine type + /// </summary> + public Int32 MachineType + { + get; set; + } + } } diff --git a/Software/Visual_Studio/Tango.BL/DTO/MachineDTOBase.cs b/Software/Visual_Studio/Tango.BL/DTO/MachineDTOBase.cs index f6a97c88e..48974eb96 100644 --- a/Software/Visual_Studio/Tango.BL/DTO/MachineDTOBase.cs +++ b/Software/Visual_Studio/Tango.BL/DTO/MachineDTOBase.cs @@ -301,5 +301,13 @@ namespace Tango.BL.DTO get; set; } + /// <summary> + /// machine type + /// </summary> + public Int32 MachineType + { + get; set; + } + } } diff --git a/Software/Visual_Studio/Tango.BL/DTO/MachinePrototypeDTOBase.cs b/Software/Visual_Studio/Tango.BL/DTO/MachinePrototypeDTOBase.cs index 1629bbbd0..ac97ccc50 100644 --- a/Software/Visual_Studio/Tango.BL/DTO/MachinePrototypeDTOBase.cs +++ b/Software/Visual_Studio/Tango.BL/DTO/MachinePrototypeDTOBase.cs @@ -22,6 +22,14 @@ namespace Tango.BL.DTO { /// <summary> + /// machine type + /// </summary> + public Int32 MachineType + { + get; set; + } + + /// <summary> /// name /// </summary> public String Name diff --git a/Software/Visual_Studio/Tango.BL/DTO/ProcessParametersTableDTOBase.cs b/Software/Visual_Studio/Tango.BL/DTO/ProcessParametersTableDTOBase.cs index c9a8ef967..9ee86e42a 100644 --- a/Software/Visual_Studio/Tango.BL/DTO/ProcessParametersTableDTOBase.cs +++ b/Software/Visual_Studio/Tango.BL/DTO/ProcessParametersTableDTOBase.cs @@ -309,5 +309,245 @@ namespace Tango.BL.DTO get; set; } + /// <summary> + /// e winder1 tension + /// </summary> + public Double EWinder1Tension + { + get; set; + } + + /// <summary> + /// e winder2 tension + /// </summary> + public Double EWinder2Tension + { + get; set; + } + + /// <summary> + /// e winder3 tension + /// </summary> + public Double EWinder3Tension + { + get; set; + } + + /// <summary> + /// e winder4 tension + /// </summary> + public Double EWinder4Tension + { + get; set; + } + + /// <summary> + /// e btsr1 feeding tension + /// </summary> + public Double EBtsr1FeedingTension + { + get; set; + } + + /// <summary> + /// e btsr2 feeding tension + /// </summary> + public Double EBtsr2FeedingTension + { + get; set; + } + + /// <summary> + /// e btsr3 feeding tension + /// </summary> + public Double EBtsr3FeedingTension + { + get; set; + } + + /// <summary> + /// e btsr4 feeding tension + /// </summary> + public Double EBtsr4FeedingTension + { + get; set; + } + + /// <summary> + /// e mixer temp + /// </summary> + public Double EMixerTemp + { + get; set; + } + + /// <summary> + /// e head zone1 temp + /// </summary> + public Double EHeadZone1Temp + { + get; set; + } + + /// <summary> + /// e head zone2 temp + /// </summary> + public Double EHeadZone2Temp + { + get; set; + } + + /// <summary> + /// e head zone3 temp + /// </summary> + public Double EHeadZone3Temp + { + get; set; + } + + /// <summary> + /// e dryer zone1 temp + /// </summary> + public Double EDryerZone1Temp + { + get; set; + } + + /// <summary> + /// e dryer zone2 temp + /// </summary> + public Double EDryerZone2Temp + { + get; set; + } + + /// <summary> + /// e dryer zone3 temp + /// </summary> + public Double EDryerZone3Temp + { + get; set; + } + + /// <summary> + /// e lubricant temp + /// </summary> + public Double ELubricantTemp + { + get; set; + } + + /// <summary> + /// e dryer incoming air flow + /// </summary> + public Double EDryerIncomingAirFlow + { + get; set; + } + + /// <summary> + /// e dryer outgoing air flow + /// </summary> + public Double EDryerOutgoingAirFlow + { + get; set; + } + + /// <summary> + /// e tunnel incoming air flow + /// </summary> + public Double ETunnelIncomingAirFlow + { + get; set; + } + + /// <summary> + /// e tunnel outgoing air flow + /// </summary> + public Double ETunnelOutgoingAirFlow + { + get; set; + } + + /// <summary> + /// e waste air flow + /// </summary> + public Double EWasteAirFlow + { + get; set; + } + + /// <summary> + /// e waste prepare time + /// </summary> + public Double EWastePrepareTime + { + get; set; + } + + /// <summary> + /// e pump temp + /// </summary> + public Double EPumpTemp + { + get; set; + } + + /// <summary> + /// e pressure build up + /// </summary> + public Double EPressureBuildUp + { + get; set; + } + + /// <summary> + /// e spare1 + /// </summary> + public Double ESpare1 + { + get; set; + } + + /// <summary> + /// e spare2 + /// </summary> + public Double ESpare2 + { + get; set; + } + + /// <summary> + /// e spare3 + /// </summary> + public Double ESpare3 + { + get; set; + } + + /// <summary> + /// e spare4 + /// </summary> + public Double ESpare4 + { + get; set; + } + + /// <summary> + /// e spare5 + /// </summary> + public Double ESpare5 + { + get; set; + } + + /// <summary> + /// e tunnel temp + /// </summary> + public Double ETunnelTemp + { + get; set; + } + } } diff --git a/Software/Visual_Studio/Tango.BL/Entities/HardwareVersion.cs b/Software/Visual_Studio/Tango.BL/Entities/HardwareVersion.cs index bc65c33ce..1688e87fc 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/HardwareVersion.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/HardwareVersion.cs @@ -5,12 +5,27 @@ using System.ComponentModel.DataAnnotations.Schema; using System.Linq; using System.Text; using System.Threading.Tasks; +using Tango.BL.Enumerations; using Tango.BL.Serialization; namespace Tango.BL.Entities { public partial class HardwareVersion : HardwareVersionBase { + [NotMapped] + [JsonIgnore] + public MachineTypes ForMachineType + { + get + { + return (MachineTypes)MachineType; + } + set + { + MachineType = value.ToInt32(); + } + } + public override HardwareVersion Clone() { var cloned = base.Clone(); @@ -99,7 +114,7 @@ namespace Tango.BL.Entities [JsonIgnore] public String FullName { - get { return $"{Name} v{Version}"; } + get { return $"{Name} v{Version} {ForMachineType}"; } } /// <summary> diff --git a/Software/Visual_Studio/Tango.BL/Entities/HardwareVersionBase.cs b/Software/Visual_Studio/Tango.BL/Entities/HardwareVersionBase.cs index 3d7d555dc..e30903baa 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/HardwareVersionBase.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/HardwareVersionBase.cs @@ -31,6 +31,10 @@ namespace Tango.BL.Entities public event EventHandler<String> NameChanged; + public event EventHandler<Int32> MachineTypeChanged; + + public event EventHandler<String> UserNameChanged; + public event EventHandler<SynchronizedObservableCollection<Configuration>> ConfigurationsChanged; public event EventHandler<SynchronizedObservableCollection<HardwareBlower>> HardwareBlowersChanged; @@ -101,6 +105,60 @@ namespace Tango.BL.Entities } } + protected Int32 _machinetype; + + /// <summary> + /// Gets or sets the hardwareversionbase machine type. + /// </summary> + + [Column("MACHINE_TYPE")] + + public Int32 MachineType + { + get + { + return _machinetype; + } + + set + { + if (_machinetype != value) + { + _machinetype = value; + + OnMachineTypeChanged(value); + + } + } + } + + protected String _username; + + /// <summary> + /// Gets or sets the hardwareversionbase user name. + /// </summary> + + [Column("USER_NAME")] + + public String UserName + { + get + { + return _username; + } + + set + { + if (_username != value) + { + _username = value; + + OnUserNameChanged(value); + + } + } + } + protected SynchronizedObservableCollection<Configuration> _configurations; /// <summary> @@ -320,6 +378,24 @@ namespace Tango.BL.Entities } /// <summary> + /// Called when the MachineType has changed. + /// </summary> + protected virtual void OnMachineTypeChanged(Int32 machinetype) + { + MachineTypeChanged?.Invoke(this, machinetype); + RaisePropertyChanged(nameof(MachineType)); + } + + /// <summary> + /// Called when the UserName has changed. + /// </summary> + protected virtual void OnUserNameChanged(String username) + { + UserNameChanged?.Invoke(this, username); + RaisePropertyChanged(nameof(UserName)); + } + + /// <summary> /// Called when the Configurations has changed. /// </summary> protected virtual void OnConfigurationsChanged(SynchronizedObservableCollection<Configuration> configurations) diff --git a/Software/Visual_Studio/Tango.BL/Entities/Job.cs b/Software/Visual_Studio/Tango.BL/Entities/Job.cs index c6a6ea226..29f7e1054 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/Job.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/Job.cs @@ -93,6 +93,84 @@ namespace Tango.BL.Entities } } + [NotMapped] + [JsonIgnore] + public double LengthIncludingNumberOfUnitsAndSpools + { + get + { + if (Spools >= 4) + { + return LengthIncludingNumberOfUnits * Spools; + } + + return LengthIncludingNumberOfUnits; + } + } + + [NotMapped] + [JsonIgnore] + public double WeightIncludingNumberOfUnits + { + get + { + if (Rml == null) + return 0; + + var gramPerlength = Rml.GetGramPer1000mLength; + var weight = (LengthIncludingNumberOfUnits * gramPerlength) / (1000 );//(g) + return weight; + } + } + + [NotMapped] + [JsonIgnore] + public double WeightIncludingNumberOfUnitsAndSpools + { + get + { + if (Spools >= 4) + { + return WeightIncludingNumberOfUnits * Spools; + } + + return WeightIncludingNumberOfUnits; + } + } + + [NotMapped] + [JsonIgnore] + public Int32 NumberOfUnitsMultipliedBySpools + { + get + { + if (Spools >= 4) + { + return NumberOfUnits * Spools; + } + return NumberOfUnits; + } + } + + [NotMapped] + [JsonIgnore] + public double WeightNumberOfUnits + { + get + { + _lastLength = GetLength(); + var l = _lastLength * Math.Max(NumberOfUnits, 1); + + if (EnableInterSegment && NumberOfUnits > 1) + { + l += ((NumberOfUnits - 1) * InterSegmentLength); + } + + return l; + } + } + + /// <summary> /// Gets or sets the job <see cref="Status"/> property as <see cref="JobStatus"/> enum instead of int. /// </summary> @@ -141,6 +219,13 @@ namespace Tango.BL.Entities } } + [NotMapped] + [JsonIgnore] + public int Spools + { + get { return 4; }//headunits? + } + /// <summary> /// Gets or sets the effective segments. /// </summary> @@ -318,6 +403,17 @@ namespace Tango.BL.Entities set { EditingState = value.ToInt32(); RaisePropertyChangedAuto(); } } + [NotMapped] + [JsonIgnore] + public double GramPerLength { get; set;} + + [NotMapped] + [JsonIgnore] + public String ThreadName + { + get { return Rml == null ? "" : Rml.DisplayName;} + } + #endregion #region Unmapped Fine Tuning @@ -381,6 +477,18 @@ namespace Tango.BL.Entities } } + protected override void OnRmlChanged(Rml rml) + { + base.OnRmlChanged(rml); + if(rml != null) + { + GramPerLength = Rml.GetGramPer1000mLength; + } + else + GramPerLength = 0; + RaisePropertyChanged(nameof(ThreadName)); + } + #endregion #region Override Methods @@ -527,14 +635,17 @@ namespace Tango.BL.Entities } return length; - //if (Segments != null) - //{ - // return Segments.Sum(x => x.LengthWithFactor) + ((EnableInterSegment && IsAllSegmentsPerSpool) ? (InterSegmentLength * (Segments.Count > 0 ? Segments.Count - 1 : Segments.Count)) : 0); - //} - //else - //{ - // return 0; - //} + } + + private double GetWeigth() + { + if(Rml == null) + return 0; + + double length = GetLength(); + + var weight = (length * GramPerLength) / (1000 );//length in m, return value in g + return weight; } #endregion diff --git a/Software/Visual_Studio/Tango.BL/Entities/JobRunBase.cs b/Software/Visual_Studio/Tango.BL/Entities/JobRunBase.cs index da3ff6f5b..ddb33e7d2 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/JobRunBase.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/JobRunBase.cs @@ -95,6 +95,8 @@ namespace Tango.BL.Entities public event EventHandler<String> FineTuningStringChanged; + public event EventHandler<Int32> MachineTypeChanged; + protected String _machineguid; /// <summary> @@ -1140,6 +1142,33 @@ namespace Tango.BL.Entities } } + protected Int32 _machinetype; + + /// <summary> + /// Gets or sets the jobrunbase machine type. + /// </summary> + + [Column("MACHINE_TYPE")] + + public Int32 MachineType + { + get + { + return _machinetype; + } + + set + { + if (_machinetype != value) + { + _machinetype = value; + + OnMachineTypeChanged(value); + + } + } + } + /// <summary> /// Called when the JobName has changed. /// </summary> @@ -1447,6 +1476,15 @@ namespace Tango.BL.Entities } /// <summary> + /// Called when the MachineType has changed. + /// </summary> + protected virtual void OnMachineTypeChanged(Int32 machinetype) + { + MachineTypeChanged?.Invoke(this, machinetype); + RaisePropertyChanged(nameof(MachineType)); + } + + /// <summary> /// Initializes a new instance of the <see cref="JobRunBase" /> class. /// </summary> public JobRunBase() : base() diff --git a/Software/Visual_Studio/Tango.BL/Entities/Machine.cs b/Software/Visual_Studio/Tango.BL/Entities/Machine.cs index b82738db8..01e17cfde 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/Machine.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/Machine.cs @@ -3,6 +3,7 @@ using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel.DataAnnotations.Schema; +using System.Data.Entity; using System.Linq; using System.Reflection; using System.Text; @@ -90,6 +91,20 @@ namespace Tango.BL.Entities } } + [NotMapped] + [JsonIgnore] + public MachineTypes Type + { + get + { + return (MachineTypes)MachineType; + } + set + { + MachineType = value.ToInt32(); + } + } + #endregion protected override void RaisePropertyChanged(string propName) @@ -162,5 +177,24 @@ namespace Tango.BL.Entities { } + + public async Task<ObservableCollection<SpoolType>> GetSiteSpoolTypes(ObservablesContext db) + { + ObservableCollection<SpoolType> spoolTypes = new ObservableCollection<SpoolType>(); + + spoolTypes = (await db.SitesSpoolTypes.Where(x => x.SiteGuid == SiteGuid).Include(x => x.SpoolType).Select(x => x.SpoolType).ToListAsync()).OrderBy(x => x.LastUpdated).ToObservableCollection(); + + if (spoolTypes.Count == 0) + { + spoolTypes = new ObservableCollection<SpoolType>(); + var standardSpool = await db.SpoolTypes.FirstOrDefaultAsync(x => x.Code == (int)BL.Enumerations.SpoolTypes.StandardSpool); + if (standardSpool != null) + { + spoolTypes.Add(standardSpool); + } + } + + return spoolTypes; + } } } diff --git a/Software/Visual_Studio/Tango.BL/Entities/MachineBase.cs b/Software/Visual_Studio/Tango.BL/Entities/MachineBase.cs index b56e59174..dcd84d9eb 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/MachineBase.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/MachineBase.cs @@ -81,6 +81,8 @@ namespace Tango.BL.Entities public event EventHandler<String> VersionTagChanged; + public event EventHandler<Int32> MachineTypeChanged; + public event EventHandler<SynchronizedObservableCollection<Cat>> CatsChanged; public event EventHandler<SynchronizedObservableCollection<ColorProcessParameter>> ColorProcessParametersChanged; @@ -1037,6 +1039,33 @@ namespace Tango.BL.Entities } } + protected Int32 _machinetype; + + /// <summary> + /// Gets or sets the machinebase machine type. + /// </summary> + + [Column("MACHINE_TYPE")] + + public Int32 MachineType + { + get + { + return _machinetype; + } + + set + { + if (_machinetype != value) + { + _machinetype = value; + + OnMachineTypeChanged(value); + + } + } + } + protected SynchronizedObservableCollection<Cat> _cats; /// <summary> @@ -1602,6 +1631,15 @@ namespace Tango.BL.Entities } /// <summary> + /// Called when the MachineType has changed. + /// </summary> + protected virtual void OnMachineTypeChanged(Int32 machinetype) + { + MachineTypeChanged?.Invoke(this, machinetype); + RaisePropertyChanged(nameof(MachineType)); + } + + /// <summary> /// Called when the Cats has changed. /// </summary> protected virtual void OnCatsChanged(SynchronizedObservableCollection<Cat> cats) diff --git a/Software/Visual_Studio/Tango.BL/Entities/MachinePrototype.cs b/Software/Visual_Studio/Tango.BL/Entities/MachinePrototype.cs index a1dee5a5d..d93c80f8c 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/MachinePrototype.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/MachinePrototype.cs @@ -129,6 +129,7 @@ namespace Tango.BL.Entities prototype.Name = name; prototype.Description = description; prototype.LastUpdated = DateTime.UtcNow; + prototype.MachineType = machine.MachineType; prototype.SetPrototypeMachine(machine); return prototype; diff --git a/Software/Visual_Studio/Tango.BL/Entities/MachinePrototypeBase.cs b/Software/Visual_Studio/Tango.BL/Entities/MachinePrototypeBase.cs index 2ecaad7e4..863496860 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/MachinePrototypeBase.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/MachinePrototypeBase.cs @@ -27,12 +27,41 @@ namespace Tango.BL.Entities public abstract class MachinePrototypeBase : ObservableEntity<MachinePrototype> { + public event EventHandler<Int32> MachineTypeChanged; + public event EventHandler<String> NameChanged; public event EventHandler<String> DescriptionChanged; public event EventHandler<String> PrototypeJsonChanged; + protected Int32 _machinetype; + + /// <summary> + /// Gets or sets the machineprototypebase machine type. + /// </summary> + + [Column("MACHINE_TYPE")] + + public Int32 MachineType + { + get + { + return _machinetype; + } + + set + { + if (_machinetype != value) + { + _machinetype = value; + + OnMachineTypeChanged(value); + + } + } + } + protected String _name; /// <summary> @@ -115,6 +144,15 @@ namespace Tango.BL.Entities } /// <summary> + /// Called when the MachineType has changed. + /// </summary> + protected virtual void OnMachineTypeChanged(Int32 machinetype) + { + MachineTypeChanged?.Invoke(this, machinetype); + RaisePropertyChanged(nameof(MachineType)); + } + + /// <summary> /// Called when the Name has changed. /// </summary> protected virtual void OnNameChanged(String name) diff --git a/Software/Visual_Studio/Tango.BL/Entities/MachineVersion.cs b/Software/Visual_Studio/Tango.BL/Entities/MachineVersion.cs index 5832e8a74..694ee1f37 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/MachineVersion.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/MachineVersion.cs @@ -1,10 +1,13 @@ +using Newtonsoft.Json; using System; using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; using System.Data.Entity; using System.Linq; using System.Text; using System.Threading.Tasks; using Tango.BL.Builders; +using Tango.BL.Enumerations; using Tango.BL.Serialization; namespace Tango.BL.Entities @@ -18,5 +21,12 @@ namespace Tango.BL.Entities { } + + [NotMapped] + [JsonIgnore] + public MachineTypes MachineType + { + get { return Version == 1 ? MachineTypes.TS1800 : MachineTypes.Eureka; } + } } } diff --git a/Software/Visual_Studio/Tango.BL/Entities/ProcessParametersTable.cs b/Software/Visual_Studio/Tango.BL/Entities/ProcessParametersTable.cs index 0a78dbc93..1dadd61c8 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/ProcessParametersTable.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/ProcessParametersTable.cs @@ -5,6 +5,7 @@ using System.ComponentModel.DataAnnotations.Schema; using System.Linq; using System.Text; using System.Threading.Tasks; +using Tango.BL.Enumerations; using Tango.Core.ExtensionMethods; namespace Tango.BL.Entities @@ -13,6 +14,10 @@ namespace Tango.BL.Entities { public event EventHandler DyeingSpeedMinInkUptakeChanged; + [NotMapped] + [JsonIgnore] + public static MachineTypes DryerBufferMode { get; set; } + public const double DRYER_METERS_PER_CYCLE = 0.76; public const double DRYER_TO_SPOOL_LENGTH_METERS = 0.9; @@ -35,7 +40,17 @@ namespace Tango.BL.Entities [JsonIgnore] public double DryerBufferLengthMeters { - get { return (DryerBufferLength * DRYER_METERS_PER_CYCLE) + DRYER_TO_SPOOL_LENGTH_METERS; } + get + { + if (DryerBufferMode == MachineTypes.TS1800) + { + return (DryerBufferLength * DRYER_METERS_PER_CYCLE) + DRYER_TO_SPOOL_LENGTH_METERS; + } + else + { + return DryerBufferLength; + } + } } /// <summary> diff --git a/Software/Visual_Studio/Tango.BL/Entities/ProcessParametersTableBase.cs b/Software/Visual_Studio/Tango.BL/Entities/ProcessParametersTableBase.cs index 702674850..3fe1cacee 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/ProcessParametersTableBase.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/ProcessParametersTableBase.cs @@ -97,6 +97,66 @@ namespace Tango.BL.Entities public event EventHandler<Double> BtsrThreadLengthOffsetChanged; + public event EventHandler<Double> EWinder1TensionChanged; + + public event EventHandler<Double> EWinder2TensionChanged; + + public event EventHandler<Double> EWinder3TensionChanged; + + public event EventHandler<Double> EWinder4TensionChanged; + + public event EventHandler<Double> EBtsr1FeedingTensionChanged; + + public event EventHandler<Double> EBtsr2FeedingTensionChanged; + + public event EventHandler<Double> EBtsr3FeedingTensionChanged; + + public event EventHandler<Double> EBtsr4FeedingTensionChanged; + + public event EventHandler<Double> EMixerTempChanged; + + public event EventHandler<Double> EHeadZone1TempChanged; + + public event EventHandler<Double> EHeadZone2TempChanged; + + public event EventHandler<Double> EHeadZone3TempChanged; + + public event EventHandler<Double> EDryerZone1TempChanged; + + public event EventHandler<Double> EDryerZone2TempChanged; + + public event EventHandler<Double> EDryerZone3TempChanged; + + public event EventHandler<Double> ELubricantTempChanged; + + public event EventHandler<Double> EDryerIncomingAirFlowChanged; + + public event EventHandler<Double> EDryerOutgoingAirFlowChanged; + + public event EventHandler<Double> ETunnelIncomingAirFlowChanged; + + public event EventHandler<Double> ETunnelOutgoingAirFlowChanged; + + public event EventHandler<Double> EWasteAirFlowChanged; + + public event EventHandler<Double> EWastePrepareTimeChanged; + + public event EventHandler<Double> EPumpTempChanged; + + public event EventHandler<Double> EPressureBuildUpChanged; + + public event EventHandler<Double> ESpare1Changed; + + public event EventHandler<Double> ESpare2Changed; + + public event EventHandler<Double> ESpare3Changed; + + public event EventHandler<Double> ESpare4Changed; + + public event EventHandler<Double> ESpare5Changed; + + public event EventHandler<Double> ETunnelTempChanged; + public event EventHandler<ProcessParametersTablesGroup> ProcessParametersTablesGroupChanged; protected String _name; @@ -1206,6 +1266,936 @@ namespace Tango.BL.Entities } } + protected Double _ewinder1tension; + + /// <summary> + /// Gets or sets the processparameterstablebase e winder1 tension. + /// </summary> + + [Column("E_WINDER1_TENSION")] + + [StringFormat("0.0")] + + [PropertyIndex(40)] + + public Double EWinder1Tension + { + get + { + return _ewinder1tension; + } + + set + { + if (_ewinder1tension != value) + { + _ewinder1tension = value; + + OnEWinder1TensionChanged(value); + + } + } + } + + protected Double _ewinder2tension; + + /// <summary> + /// Gets or sets the processparameterstablebase e winder2 tension. + /// </summary> + + [Column("E_WINDER2_TENSION")] + + [StringFormat("0.0")] + + [PropertyIndex(41)] + + public Double EWinder2Tension + { + get + { + return _ewinder2tension; + } + + set + { + if (_ewinder2tension != value) + { + _ewinder2tension = value; + + OnEWinder2TensionChanged(value); + + } + } + } + + protected Double _ewinder3tension; + + /// <summary> + /// Gets or sets the processparameterstablebase e winder3 tension. + /// </summary> + + [Column("E_WINDER3_TENSION")] + + [StringFormat("0.0")] + + [PropertyIndex(42)] + + public Double EWinder3Tension + { + get + { + return _ewinder3tension; + } + + set + { + if (_ewinder3tension != value) + { + _ewinder3tension = value; + + OnEWinder3TensionChanged(value); + + } + } + } + + protected Double _ewinder4tension; + + /// <summary> + /// Gets or sets the processparameterstablebase e winder4 tension. + /// </summary> + + [Column("E_WINDER4_TENSION")] + + [StringFormat("0.0")] + + [PropertyIndex(43)] + + public Double EWinder4Tension + { + get + { + return _ewinder4tension; + } + + set + { + if (_ewinder4tension != value) + { + _ewinder4tension = value; + + OnEWinder4TensionChanged(value); + + } + } + } + + protected Double _ebtsr1feedingtension; + + /// <summary> + /// Gets or sets the processparameterstablebase e btsr1 feeding tension. + /// </summary> + + [Column("E_BTSR1_FEEDING_TENSION")] + + [StringFormat("0.0")] + + [PropertyIndex(44)] + + public Double EBtsr1FeedingTension + { + get + { + return _ebtsr1feedingtension; + } + + set + { + if (_ebtsr1feedingtension != value) + { + _ebtsr1feedingtension = value; + + OnEBtsr1FeedingTensionChanged(value); + + } + } + } + + protected Double _ebtsr2feedingtension; + + /// <summary> + /// Gets or sets the processparameterstablebase e btsr2 feeding tension. + /// </summary> + + [Column("E_BTSR2_FEEDING_TENSION")] + + [StringFormat("0.0")] + + [PropertyIndex(45)] + + public Double EBtsr2FeedingTension + { + get + { + return _ebtsr2feedingtension; + } + + set + { + if (_ebtsr2feedingtension != value) + { + _ebtsr2feedingtension = value; + + OnEBtsr2FeedingTensionChanged(value); + + } + } + } + + protected Double _ebtsr3feedingtension; + + /// <summary> + /// Gets or sets the processparameterstablebase e btsr3 feeding tension. + /// </summary> + + [Column("E_BTSR3_FEEDING_TENSION")] + + [StringFormat("0.0")] + + [PropertyIndex(46)] + + public Double EBtsr3FeedingTension + { + get + { + return _ebtsr3feedingtension; + } + + set + { + if (_ebtsr3feedingtension != value) + { + _ebtsr3feedingtension = value; + + OnEBtsr3FeedingTensionChanged(value); + + } + } + } + + protected Double _ebtsr4feedingtension; + + /// <summary> + /// Gets or sets the processparameterstablebase e btsr4 feeding tension. + /// </summary> + + [Column("E_BTSR4_FEEDING_TENSION")] + + [StringFormat("0.0")] + + [PropertyIndex(47)] + + public Double EBtsr4FeedingTension + { + get + { + return _ebtsr4feedingtension; + } + + set + { + if (_ebtsr4feedingtension != value) + { + _ebtsr4feedingtension = value; + + OnEBtsr4FeedingTensionChanged(value); + + } + } + } + + protected Double _emixertemp; + + /// <summary> + /// Gets or sets the processparameterstablebase e mixer temp. + /// </summary> + + [Column("E_MIXER_TEMP")] + + [StringFormat("0.0")] + + [PropertyIndex(48)] + + public Double EMixerTemp + { + get + { + return _emixertemp; + } + + set + { + if (_emixertemp != value) + { + _emixertemp = value; + + OnEMixerTempChanged(value); + + } + } + } + + protected Double _eheadzone1temp; + + /// <summary> + /// Gets or sets the processparameterstablebase e head zone1 temp. + /// </summary> + + [Column("E_HEAD_ZONE1_TEMP")] + + [StringFormat("0.0")] + + [PropertyIndex(49)] + + public Double EHeadZone1Temp + { + get + { + return _eheadzone1temp; + } + + set + { + if (_eheadzone1temp != value) + { + _eheadzone1temp = value; + + OnEHeadZone1TempChanged(value); + + } + } + } + + protected Double _eheadzone2temp; + + /// <summary> + /// Gets or sets the processparameterstablebase e head zone2 temp. + /// </summary> + + [Column("E_HEAD_ZONE2_TEMP")] + + [StringFormat("0.0")] + + [PropertyIndex(50)] + + public Double EHeadZone2Temp + { + get + { + return _eheadzone2temp; + } + + set + { + if (_eheadzone2temp != value) + { + _eheadzone2temp = value; + + OnEHeadZone2TempChanged(value); + + } + } + } + + protected Double _eheadzone3temp; + + /// <summary> + /// Gets or sets the processparameterstablebase e head zone3 temp. + /// </summary> + + [Column("E_HEAD_ZONE3_TEMP")] + + [StringFormat("0.0")] + + [PropertyIndex(51)] + + public Double EHeadZone3Temp + { + get + { + return _eheadzone3temp; + } + + set + { + if (_eheadzone3temp != value) + { + _eheadzone3temp = value; + + OnEHeadZone3TempChanged(value); + + } + } + } + + protected Double _edryerzone1temp; + + /// <summary> + /// Gets or sets the processparameterstablebase e dryer zone1 temp. + /// </summary> + + [Column("E_DRYER_ZONE1_TEMP")] + + [StringFormat("0.0")] + + [PropertyIndex(52)] + + public Double EDryerZone1Temp + { + get + { + return _edryerzone1temp; + } + + set + { + if (_edryerzone1temp != value) + { + _edryerzone1temp = value; + + OnEDryerZone1TempChanged(value); + + } + } + } + + protected Double _edryerzone2temp; + + /// <summary> + /// Gets or sets the processparameterstablebase e dryer zone2 temp. + /// </summary> + + [Column("E_DRYER_ZONE2_TEMP")] + + [StringFormat("0.0")] + + [PropertyIndex(53)] + + public Double EDryerZone2Temp + { + get + { + return _edryerzone2temp; + } + + set + { + if (_edryerzone2temp != value) + { + _edryerzone2temp = value; + + OnEDryerZone2TempChanged(value); + + } + } + } + + protected Double _edryerzone3temp; + + /// <summary> + /// Gets or sets the processparameterstablebase e dryer zone3 temp. + /// </summary> + + [Column("E_DRYER_ZONE3_TEMP")] + + [StringFormat("0.0")] + + [PropertyIndex(54)] + + public Double EDryerZone3Temp + { + get + { + return _edryerzone3temp; + } + + set + { + if (_edryerzone3temp != value) + { + _edryerzone3temp = value; + + OnEDryerZone3TempChanged(value); + + } + } + } + + protected Double _elubricanttemp; + + /// <summary> + /// Gets or sets the processparameterstablebase e lubricant temp. + /// </summary> + + [Column("E_LUBRICANT_TEMP")] + + [StringFormat("0.0")] + + [PropertyIndex(55)] + + public Double ELubricantTemp + { + get + { + return _elubricanttemp; + } + + set + { + if (_elubricanttemp != value) + { + _elubricanttemp = value; + + OnELubricantTempChanged(value); + + } + } + } + + protected Double _edryerincomingairflow; + + /// <summary> + /// Gets or sets the processparameterstablebase e dryer incoming air flow. + /// </summary> + + [Column("E_DRYER_INCOMING_AIR_FLOW")] + + [StringFormat("0.0")] + + [PropertyIndex(56)] + + public Double EDryerIncomingAirFlow + { + get + { + return _edryerincomingairflow; + } + + set + { + if (_edryerincomingairflow != value) + { + _edryerincomingairflow = value; + + OnEDryerIncomingAirFlowChanged(value); + + } + } + } + + protected Double _edryeroutgoingairflow; + + /// <summary> + /// Gets or sets the processparameterstablebase e dryer outgoing air flow. + /// </summary> + + [Column("E_DRYER_OUTGOING_AIR_FLOW")] + + [StringFormat("0.0")] + + [PropertyIndex(57)] + + public Double EDryerOutgoingAirFlow + { + get + { + return _edryeroutgoingairflow; + } + + set + { + if (_edryeroutgoingairflow != value) + { + _edryeroutgoingairflow = value; + + OnEDryerOutgoingAirFlowChanged(value); + + } + } + } + + protected Double _etunnelincomingairflow; + + /// <summary> + /// Gets or sets the processparameterstablebase e tunnel incoming air flow. + /// </summary> + + [Column("E_TUNNEL_INCOMING_AIR_FLOW")] + + [StringFormat("0.0")] + + [PropertyIndex(58)] + + public Double ETunnelIncomingAirFlow + { + get + { + return _etunnelincomingairflow; + } + + set + { + if (_etunnelincomingairflow != value) + { + _etunnelincomingairflow = value; + + OnETunnelIncomingAirFlowChanged(value); + + } + } + } + + protected Double _etunneloutgoingairflow; + + /// <summary> + /// Gets or sets the processparameterstablebase e tunnel outgoing air flow. + /// </summary> + + [Column("E_TUNNEL_OUTGOING_AIR_FLOW")] + + [StringFormat("0.0")] + + [PropertyIndex(59)] + + public Double ETunnelOutgoingAirFlow + { + get + { + return _etunneloutgoingairflow; + } + + set + { + if (_etunneloutgoingairflow != value) + { + _etunneloutgoingairflow = value; + + OnETunnelOutgoingAirFlowChanged(value); + + } + } + } + + protected Double _ewasteairflow; + + /// <summary> + /// Gets or sets the processparameterstablebase e waste air flow. + /// </summary> + + [Column("E_WASTE_AIR_FLOW")] + + [StringFormat("0.0")] + + [PropertyIndex(60)] + + public Double EWasteAirFlow + { + get + { + return _ewasteairflow; + } + + set + { + if (_ewasteairflow != value) + { + _ewasteairflow = value; + + OnEWasteAirFlowChanged(value); + + } + } + } + + protected Double _ewastepreparetime; + + /// <summary> + /// Gets or sets the processparameterstablebase e waste prepare time. + /// </summary> + + [Column("E_WASTE_PREPARE_TIME")] + + [StringFormat("0.0")] + + [PropertyIndex(61)] + + public Double EWastePrepareTime + { + get + { + return _ewastepreparetime; + } + + set + { + if (_ewastepreparetime != value) + { + _ewastepreparetime = value; + + OnEWastePrepareTimeChanged(value); + + } + } + } + + protected Double _epumptemp; + + /// <summary> + /// Gets or sets the processparameterstablebase e pump temp. + /// </summary> + + [Column("E_PUMP_TEMP")] + + [StringFormat("0.0")] + + [PropertyIndex(62)] + + public Double EPumpTemp + { + get + { + return _epumptemp; + } + + set + { + if (_epumptemp != value) + { + _epumptemp = value; + + OnEPumpTempChanged(value); + + } + } + } + + protected Double _epressurebuildup; + + /// <summary> + /// Gets or sets the processparameterstablebase e pressure build up. + /// </summary> + + [Column("E_PRESSURE_BUILD_UP")] + + [StringFormat("0.0")] + + [PropertyIndex(63)] + + public Double EPressureBuildUp + { + get + { + return _epressurebuildup; + } + + set + { + if (_epressurebuildup != value) + { + _epressurebuildup = value; + + OnEPressureBuildUpChanged(value); + + } + } + } + + protected Double _espare1; + + /// <summary> + /// Gets or sets the processparameterstablebase e spare1. + /// </summary> + + [Column("E_SPARE1")] + + [StringFormat("0.0")] + + [PropertyIndex(65)] + + public Double ESpare1 + { + get + { + return _espare1; + } + + set + { + if (_espare1 != value) + { + _espare1 = value; + + OnESpare1Changed(value); + + } + } + } + + protected Double _espare2; + + /// <summary> + /// Gets or sets the processparameterstablebase e spare2. + /// </summary> + + [Column("E_SPARE2")] + + [StringFormat("0.0")] + + [PropertyIndex(66)] + + public Double ESpare2 + { + get + { + return _espare2; + } + + set + { + if (_espare2 != value) + { + _espare2 = value; + + OnESpare2Changed(value); + + } + } + } + + protected Double _espare3; + + /// <summary> + /// Gets or sets the processparameterstablebase e spare3. + /// </summary> + + [Column("E_SPARE3")] + + [StringFormat("0.0")] + + [PropertyIndex(67)] + + public Double ESpare3 + { + get + { + return _espare3; + } + + set + { + if (_espare3 != value) + { + _espare3 = value; + + OnESpare3Changed(value); + + } + } + } + + protected Double _espare4; + + /// <summary> + /// Gets or sets the processparameterstablebase e spare4. + /// </summary> + + [Column("E_SPARE4")] + + [StringFormat("0.0")] + + [PropertyIndex(68)] + + public Double ESpare4 + { + get + { + return _espare4; + } + + set + { + if (_espare4 != value) + { + _espare4 = value; + + OnESpare4Changed(value); + + } + } + } + + protected Double _espare5; + + /// <summary> + /// Gets or sets the processparameterstablebase e spare5. + /// </summary> + + [Column("E_SPARE5")] + + [StringFormat("0.0")] + + [PropertyIndex(69)] + + public Double ESpare5 + { + get + { + return _espare5; + } + + set + { + if (_espare5 != value) + { + _espare5 = value; + + OnESpare5Changed(value); + + } + } + } + + protected Double _etunneltemp; + + /// <summary> + /// Gets or sets the processparameterstablebase e tunnel temp. + /// </summary> + + [Column("E_TUNNEL_TEMP")] + + [StringFormat("0.0")] + + [PropertyIndex(64)] + + public Double ETunnelTemp + { + get + { + return _etunneltemp; + } + + set + { + if (_etunneltemp != value) + { + _etunneltemp = value; + + OnETunnelTempChanged(value); + + } + } + } + protected ProcessParametersTablesGroup _processparameterstablesgroup; /// <summary> @@ -1554,6 +2544,276 @@ namespace Tango.BL.Entities } /// <summary> + /// Called when the EWinder1Tension has changed. + /// </summary> + protected virtual void OnEWinder1TensionChanged(Double ewinder1tension) + { + EWinder1TensionChanged?.Invoke(this, ewinder1tension); + RaisePropertyChanged(nameof(EWinder1Tension)); + } + + /// <summary> + /// Called when the EWinder2Tension has changed. + /// </summary> + protected virtual void OnEWinder2TensionChanged(Double ewinder2tension) + { + EWinder2TensionChanged?.Invoke(this, ewinder2tension); + RaisePropertyChanged(nameof(EWinder2Tension)); + } + + /// <summary> + /// Called when the EWinder3Tension has changed. + /// </summary> + protected virtual void OnEWinder3TensionChanged(Double ewinder3tension) + { + EWinder3TensionChanged?.Invoke(this, ewinder3tension); + RaisePropertyChanged(nameof(EWinder3Tension)); + } + + /// <summary> + /// Called when the EWinder4Tension has changed. + /// </summary> + protected virtual void OnEWinder4TensionChanged(Double ewinder4tension) + { + EWinder4TensionChanged?.Invoke(this, ewinder4tension); + RaisePropertyChanged(nameof(EWinder4Tension)); + } + + /// <summary> + /// Called when the EBtsr1FeedingTension has changed. + /// </summary> + protected virtual void OnEBtsr1FeedingTensionChanged(Double ebtsr1feedingtension) + { + EBtsr1FeedingTensionChanged?.Invoke(this, ebtsr1feedingtension); + RaisePropertyChanged(nameof(EBtsr1FeedingTension)); + } + + /// <summary> + /// Called when the EBtsr2FeedingTension has changed. + /// </summary> + protected virtual void OnEBtsr2FeedingTensionChanged(Double ebtsr2feedingtension) + { + EBtsr2FeedingTensionChanged?.Invoke(this, ebtsr2feedingtension); + RaisePropertyChanged(nameof(EBtsr2FeedingTension)); + } + + /// <summary> + /// Called when the EBtsr3FeedingTension has changed. + /// </summary> + protected virtual void OnEBtsr3FeedingTensionChanged(Double ebtsr3feedingtension) + { + EBtsr3FeedingTensionChanged?.Invoke(this, ebtsr3feedingtension); + RaisePropertyChanged(nameof(EBtsr3FeedingTension)); + } + + /// <summary> + /// Called when the EBtsr4FeedingTension has changed. + /// </summary> + protected virtual void OnEBtsr4FeedingTensionChanged(Double ebtsr4feedingtension) + { + EBtsr4FeedingTensionChanged?.Invoke(this, ebtsr4feedingtension); + RaisePropertyChanged(nameof(EBtsr4FeedingTension)); + } + + /// <summary> + /// Called when the EMixerTemp has changed. + /// </summary> + protected virtual void OnEMixerTempChanged(Double emixertemp) + { + EMixerTempChanged?.Invoke(this, emixertemp); + RaisePropertyChanged(nameof(EMixerTemp)); + } + + /// <summary> + /// Called when the EHeadZone1Temp has changed. + /// </summary> + protected virtual void OnEHeadZone1TempChanged(Double eheadzone1temp) + { + EHeadZone1TempChanged?.Invoke(this, eheadzone1temp); + RaisePropertyChanged(nameof(EHeadZone1Temp)); + } + + /// <summary> + /// Called when the EHeadZone2Temp has changed. + /// </summary> + protected virtual void OnEHeadZone2TempChanged(Double eheadzone2temp) + { + EHeadZone2TempChanged?.Invoke(this, eheadzone2temp); + RaisePropertyChanged(nameof(EHeadZone2Temp)); + } + + /// <summary> + /// Called when the EHeadZone3Temp has changed. + /// </summary> + protected virtual void OnEHeadZone3TempChanged(Double eheadzone3temp) + { + EHeadZone3TempChanged?.Invoke(this, eheadzone3temp); + RaisePropertyChanged(nameof(EHeadZone3Temp)); + } + + /// <summary> + /// Called when the EDryerZone1Temp has changed. + /// </summary> + protected virtual void OnEDryerZone1TempChanged(Double edryerzone1temp) + { + EDryerZone1TempChanged?.Invoke(this, edryerzone1temp); + RaisePropertyChanged(nameof(EDryerZone1Temp)); + } + + /// <summary> + /// Called when the EDryerZone2Temp has changed. + /// </summary> + protected virtual void OnEDryerZone2TempChanged(Double edryerzone2temp) + { + EDryerZone2TempChanged?.Invoke(this, edryerzone2temp); + RaisePropertyChanged(nameof(EDryerZone2Temp)); + } + + /// <summary> + /// Called when the EDryerZone3Temp has changed. + /// </summary> + protected virtual void OnEDryerZone3TempChanged(Double edryerzone3temp) + { + EDryerZone3TempChanged?.Invoke(this, edryerzone3temp); + RaisePropertyChanged(nameof(EDryerZone3Temp)); + } + + /// <summary> + /// Called when the ELubricantTemp has changed. + /// </summary> + protected virtual void OnELubricantTempChanged(Double elubricanttemp) + { + ELubricantTempChanged?.Invoke(this, elubricanttemp); + RaisePropertyChanged(nameof(ELubricantTemp)); + } + + /// <summary> + /// Called when the EDryerIncomingAirFlow has changed. + /// </summary> + protected virtual void OnEDryerIncomingAirFlowChanged(Double edryerincomingairflow) + { + EDryerIncomingAirFlowChanged?.Invoke(this, edryerincomingairflow); + RaisePropertyChanged(nameof(EDryerIncomingAirFlow)); + } + + /// <summary> + /// Called when the EDryerOutgoingAirFlow has changed. + /// </summary> + protected virtual void OnEDryerOutgoingAirFlowChanged(Double edryeroutgoingairflow) + { + EDryerOutgoingAirFlowChanged?.Invoke(this, edryeroutgoingairflow); + RaisePropertyChanged(nameof(EDryerOutgoingAirFlow)); + } + + /// <summary> + /// Called when the ETunnelIncomingAirFlow has changed. + /// </summary> + protected virtual void OnETunnelIncomingAirFlowChanged(Double etunnelincomingairflow) + { + ETunnelIncomingAirFlowChanged?.Invoke(this, etunnelincomingairflow); + RaisePropertyChanged(nameof(ETunnelIncomingAirFlow)); + } + + /// <summary> + /// Called when the ETunnelOutgoingAirFlow has changed. + /// </summary> + protected virtual void OnETunnelOutgoingAirFlowChanged(Double etunneloutgoingairflow) + { + ETunnelOutgoingAirFlowChanged?.Invoke(this, etunneloutgoingairflow); + RaisePropertyChanged(nameof(ETunnelOutgoingAirFlow)); + } + + /// <summary> + /// Called when the EWasteAirFlow has changed. + /// </summary> + protected virtual void OnEWasteAirFlowChanged(Double ewasteairflow) + { + EWasteAirFlowChanged?.Invoke(this, ewasteairflow); + RaisePropertyChanged(nameof(EWasteAirFlow)); + } + + /// <summary> + /// Called when the EWastePrepareTime has changed. + /// </summary> + protected virtual void OnEWastePrepareTimeChanged(Double ewastepreparetime) + { + EWastePrepareTimeChanged?.Invoke(this, ewastepreparetime); + RaisePropertyChanged(nameof(EWastePrepareTime)); + } + + /// <summary> + /// Called when the EPumpTemp has changed. + /// </summary> + protected virtual void OnEPumpTempChanged(Double epumptemp) + { + EPumpTempChanged?.Invoke(this, epumptemp); + RaisePropertyChanged(nameof(EPumpTemp)); + } + + /// <summary> + /// Called when the EPressureBuildUp has changed. + /// </summary> + protected virtual void OnEPressureBuildUpChanged(Double epressurebuildup) + { + EPressureBuildUpChanged?.Invoke(this, epressurebuildup); + RaisePropertyChanged(nameof(EPressureBuildUp)); + } + + /// <summary> + /// Called when the ESpare1 has changed. + /// </summary> + protected virtual void OnESpare1Changed(Double espare1) + { + ESpare1Changed?.Invoke(this, espare1); + RaisePropertyChanged(nameof(ESpare1)); + } + + /// <summary> + /// Called when the ESpare2 has changed. + /// </summary> + protected virtual void OnESpare2Changed(Double espare2) + { + ESpare2Changed?.Invoke(this, espare2); + RaisePropertyChanged(nameof(ESpare2)); + } + + /// <summary> + /// Called when the ESpare3 has changed. + /// </summary> + protected virtual void OnESpare3Changed(Double espare3) + { + ESpare3Changed?.Invoke(this, espare3); + RaisePropertyChanged(nameof(ESpare3)); + } + + /// <summary> + /// Called when the ESpare4 has changed. + /// </summary> + protected virtual void OnESpare4Changed(Double espare4) + { + ESpare4Changed?.Invoke(this, espare4); + RaisePropertyChanged(nameof(ESpare4)); + } + + /// <summary> + /// Called when the ESpare5 has changed. + /// </summary> + protected virtual void OnESpare5Changed(Double espare5) + { + ESpare5Changed?.Invoke(this, espare5); + RaisePropertyChanged(nameof(ESpare5)); + } + + /// <summary> + /// Called when the ETunnelTemp has changed. + /// </summary> + protected virtual void OnETunnelTempChanged(Double etunneltemp) + { + ETunnelTempChanged?.Invoke(this, etunneltemp); + RaisePropertyChanged(nameof(ETunnelTemp)); + } + + /// <summary> /// Called when the ProcessParametersTablesGroup has changed. /// </summary> protected virtual void OnProcessParametersTablesGroupChanged(ProcessParametersTablesGroup processparameterstablesgroup) diff --git a/Software/Visual_Studio/Tango.BL/Entities/Rml.cs b/Software/Visual_Studio/Tango.BL/Entities/Rml.cs index a49b3cf84..fdeb8f05e 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/Rml.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/Rml.cs @@ -24,6 +24,7 @@ namespace Tango.BL.Entities WhitePointL = 92.1815; WhitePointA = 2.2555; WhitePointB = -10.9325; + PliesPerThread = 1; } protected override void OnWhitePointLChanged(double whitepointl) @@ -234,6 +235,15 @@ namespace Tango.BL.Entities { base.OnPliesPerFiberChanged(pliesperfiber); UpdateFiberCount(); + + } + + protected override void OnPliesPerThreadChanged(Int32 pliesperthread) + { + base.OnPliesPerThreadChanged(pliesperthread); + UpdateDencityCount(); + UpdateFiberCount(); + RaisePropertyChanged(nameof(RMLPlies)); } private void UpdateDencityCount() @@ -252,20 +262,21 @@ namespace Tango.BL.Entities { get { + var count = 0; if (LinearMassDensityUnit == null || FiberSize==0) - return 0; + return count; if (LinearMassDensityUnit.Name== "Tex") - return Convert.ToInt32(FiberSize) * 9; + count = Convert.ToInt32(FiberSize) * 9; if (LinearMassDensityUnit.Name == "DTEX") - return (int)(Convert.ToInt32(FiberSize) * 0.9); + count = (int)(Convert.ToInt32(FiberSize) * 0.9); if (LinearMassDensityUnit.Name == "Ne") - return (int)(5315 / Convert.ToInt32(FiberSize)); + count = (int)(5315 / Convert.ToInt32(FiberSize)); if (LinearMassDensityUnit.Name == "Nm") - return (int)(9000 / Convert.ToInt32(FiberSize)); + count = (int)(9000 / Convert.ToInt32(FiberSize)); if (LinearMassDensityUnit.Name == "Denier") - return (int)FiberSize; + count = (int)FiberSize; - return 0; + return PliesPerThread == 0 ? count : count * PliesPerThread; } } @@ -292,6 +303,29 @@ namespace Tango.BL.Entities } } + [NotMapped] + [JsonIgnore] + public double GetGramPer1000mLength + { + + get + { + + //if (LinearMassDensityUnit.Name == "Tex") + // return FiberSize; + //if (LinearMassDensityUnit.Name == "DTEX") + // return (FiberSize /10); + //if (LinearMassDensityUnit.Name == "Ne") + // return (590.5 / FiberSize); + //if (LinearMassDensityUnit.Name == "Nm") + // return (1000 / FiberSize); + //if (LinearMassDensityUnit.Name == "Denier") + // return FiberSize/9; + + return DencityCount == 0? (1/9 ): (DencityCount / 9); + } + } + [NotMapped] [JsonIgnore] @@ -302,6 +336,8 @@ namespace Tango.BL.Entities { base.PliesPerThread = value.ToInt32(); RaisePropertyChangedAuto(); + UpdateDencityCount(); + UpdateFiberCount(); } } diff --git a/Software/Visual_Studio/Tango.BL/Entities/Segment.cs b/Software/Visual_Studio/Tango.BL/Entities/Segment.cs index be72100a5..5a99442e4 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/Segment.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/Segment.cs @@ -271,6 +271,16 @@ namespace Tango.BL.Entities } } + public BrushStop FirstBrushStop + { + get { if (BrushStops.Count == 1)//Intersegment?? - null + return BrushStops[0]; + else if(BrushStops.Count >= 5) + return BrushStops[1]; + else + return null; } + } + public static Color GetRelativeRGB(Color first, Color second, double firstOffset, double secondOffset, double offset) { var color = new Color(); diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/EventTypeGroups.cs b/Software/Visual_Studio/Tango.BL/Enumerations/EventTypeGroups.cs index 5ff1766d9..b8c9e677e 100644 --- a/Software/Visual_Studio/Tango.BL/Enumerations/EventTypeGroups.cs +++ b/Software/Visual_Studio/Tango.BL/Enumerations/EventTypeGroups.cs @@ -43,6 +43,8 @@ namespace Tango.BL.Enumerations [Description("Transport")] Transport = 11, [Description("Jobs")] - Jobs = 12 + Jobs = 12, + [Description("Safety")] + Safety = 13 } } diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/EventTypes.cs b/Software/Visual_Studio/Tango.BL/Enumerations/EventTypes.cs index 6c57f46c4..93732c9f3 100644 --- a/Software/Visual_Studio/Tango.BL/Enumerations/EventTypes.cs +++ b/Software/Visual_Studio/Tango.BL/Enumerations/EventTypes.cs @@ -254,6 +254,24 @@ namespace Tango.BL.Enumerations RFID_READER_MALFUNCTION_WASTE_SLOT_2 = 2024, /// <summary> + /// (Communication failure. Cannot execute job) + /// </summary> + [Description("Communication failure. Cannot execute job")] + I2C3_COMMUNICATION_FAILURE = 2025, + + /// <summary> + /// (Communication failure. Cannot execute job) + /// </summary> + [Description("Communication failure. Cannot execute job")] + I2C4_COMMUNICATION_FAILURE = 2026, + + /// <summary> + /// (Communication failure. Cannot execute job) + /// </summary> + [Description("Communication failure. Cannot execute job")] + I2C_COMMUNICATION_FAILURE = 2027, + + /// <summary> /// (Thread break. Cannot execute job) /// </summary> [Description("Thread break. Cannot execute job")] @@ -1322,6 +1340,42 @@ namespace Tango.BL.Enumerations DYEING_HEAD_COVER_IS_OPEN = 5099, /// <summary> + /// (Dyeing head voltage is too low. Cannot execute job) + /// </summary> + [Description("Dyeing head voltage is too low. Cannot execute job")] + DYEING_HEAD_VOLTAGE_1_TOO_LOW = 5100, + + /// <summary> + /// (Dyeing head voltage is too low. Cannot execute job) + /// </summary> + [Description("Dyeing head voltage is too low. Cannot execute job")] + DYEING_HEAD_VOLTAGE_2_TOO_LOW = 5101, + + /// <summary> + /// (Dyeing head voltage is too low. Cannot execute job) + /// </summary> + [Description("Dyeing head voltage is too low. Cannot execute job")] + DYEING_HEAD_VOLTAGE_3_TOO_LOW = 5102, + + /// <summary> + /// (Dyeing head voltage break. Cannot execute job) + /// </summary> + [Description("Dyeing head voltage break. Cannot execute job")] + DYEING_HEAD_VOLTAGE_1_BREAK = 5103, + + /// <summary> + /// (Dyeing head voltage break. Cannot execute job) + /// </summary> + [Description("Dyeing head voltage break. Cannot execute job")] + DYEING_HEAD_VOLTAGE_2_BREAK = 5104, + + /// <summary> + /// (Dyeing head voltage break. Cannot execute job) + /// </summary> + [Description("Dyeing head voltage break. Cannot execute job")] + DYEING_HEAD_VOLTAGE_3_BREAK = 5105, + + /// <summary> /// (The temperature in the mixer is too high. Cannot execute job) /// </summary> [Description("The temperature in the mixer is too high. Cannot execute job")] @@ -2174,6 +2228,66 @@ namespace Tango.BL.Enumerations MID_TANK_10_FILL_TIMEOUT = 8039, /// <summary> + /// (Malfunction in @ tank. Cannot fill @ ink) + /// </summary> + [Description("Malfunction in @ tank. Cannot fill @ ink")] + MID_TANK_1_MALFUNCTION = 8040, + + /// <summary> + /// (Malfunction in @ tank. Cannot fill @ ink) + /// </summary> + [Description("Malfunction in @ tank. Cannot fill @ ink")] + MID_TANK_2_MALFUNCTION = 8041, + + /// <summary> + /// (Malfunction in @ tank. Cannot fill @ ink) + /// </summary> + [Description("Malfunction in @ tank. Cannot fill @ ink")] + MID_TANK_3_MALFUNCTION = 8042, + + /// <summary> + /// (Malfunction in @ tank. Cannot fill @ ink) + /// </summary> + [Description("Malfunction in @ tank. Cannot fill @ ink")] + MID_TANK_4_MALFUNCTION = 8043, + + /// <summary> + /// (Malfunction in @ tank. Cannot fill @ ink) + /// </summary> + [Description("Malfunction in @ tank. Cannot fill @ ink")] + MID_TANK_5_MALFUNCTION = 8044, + + /// <summary> + /// (Malfunction in @ tank. Cannot fill @ ink) + /// </summary> + [Description("Malfunction in @ tank. Cannot fill @ ink")] + MID_TANK_6_MALFUNCTION = 8045, + + /// <summary> + /// (Malfunction in @ tank. Cannot fill @ ink) + /// </summary> + [Description("Malfunction in @ tank. Cannot fill @ ink")] + MID_TANK_7_MALFUNCTION = 8046, + + /// <summary> + /// (Malfunction in @ tank. Cannot fill @ ink) + /// </summary> + [Description("Malfunction in @ tank. Cannot fill @ ink")] + MID_TANK_8_MALFUNCTION = 8047, + + /// <summary> + /// (Malfunction in @ tank. Cannot fill @ ink) + /// </summary> + [Description("Malfunction in @ tank. Cannot fill @ ink")] + MID_TANK_9_MALFUNCTION = 8048, + + /// <summary> + /// (Malfunction in @ tank. Cannot fill @ ink) + /// </summary> + [Description("Malfunction in @ tank. Cannot fill @ ink")] + MID_TANK_10_MALFUNCTION = 8049, + + /// <summary> /// (Cannot detect air filter. Cannot execute job ) /// </summary> [Description("Cannot detect air filter. Cannot execute job ")] @@ -2330,16 +2444,16 @@ namespace Tango.BL.Enumerations NO_WASTE_CARTRIDGE_AVAILABLE = 10002, /// <summary> - /// (Both waste cartridges are full. Cannot execute job. Please replace waste cartridges) + /// (Waste tank is full. Please perform waste emptying) /// </summary> - [Description("Both waste cartridges are full. Cannot execute job. Please replace waste cartridges")] - ALL_WASTE_CARTRIDGES_FULL = 10003, + [Description("Waste tank is full. Please perform waste emptying")] + WASTE_TANK_FULL = 10003, /// <summary> - /// (Cannot detect waste cartridge. Cannot execute job ) + /// (Cartridges not inserted properly. Cannot execute job ) /// </summary> - [Description("Cannot detect waste cartridge. Cannot execute job ")] - WASTE_CARTRIDGE_PRESENCE_SENSOR_TIMEOUT = 10004, + [Description("Cartridges not inserted properly. Cannot execute job ")] + CARTRIDGES_NOT_INSERTED_PROPERLY = 10004, /// <summary> /// (Cannot identify waste cartridge. Cannot execute job ) @@ -2413,5 +2527,1253 @@ namespace Tango.BL.Enumerations [Description("Ink in cartridge is expired. Cannot perform ink filling")] INK_IN_CARTRIDGE_IS_EXPIRED = 10016, + /// <summary> + /// (Request sent to machine or external bridge service) + /// </summary> + [Description("Request sent to machine or external bridge service")] + E_REQUEST_SENT = 101000, + + /// <summary> + /// (Response has been received.) + /// </summary> + [Description("Response has been received.")] + E_RESPONSE_RECEIVED = 101001, + + /// <summary> + /// (Request to machine has failed.) + /// </summary> + [Description("Request to machine has failed.")] + E_REQUEST_FAILED = 101002, + + /// <summary> + /// (Application has encountered an error) + /// </summary> + [Description("Application has encountered an error")] + E_APPLICATION_EXCEPTION = 101003, + + /// <summary> + /// (General application event logs) + /// </summary> + [Description("General application event logs")] + E_APPLICATION_INFORMATION = 101004, + + /// <summary> + /// (Application started.) + /// </summary> + [Description("Application started.")] + E_APPLICATION_STARTED = 101005, + + /// <summary> + /// (Application terminated.) + /// </summary> + [Description("Application terminated.")] + E_APPLICATION_TERMINATED = 101006, + + /// <summary> + /// (Diagnostics recording started.) + /// </summary> + [Description("Diagnostics recording started.")] + E_RECORDING_STARTED = 101007, + + /// <summary> + /// (Diagnostics recording stopped.) + /// </summary> + [Description("Diagnostics recording stopped.")] + E_RECORDING_STOPPED = 101008, + + /// <summary> + /// (Job status message has been received from embedded device.) + /// </summary> + [Description("Job status message has been received from embedded device.")] + E_JOB_STATUS = 101009, + + /// <summary> + /// (A job has been started.) + /// </summary> + [Description("A job has been started.")] + E_JOB_STARTED = 101010, + + /// <summary> + /// (A job has been aborted.) + /// </summary> + [Description("A job has been aborted.")] + E_JOB_ABORTED = 101011, + + /// <summary> + /// (A job has failed.) + /// </summary> + [Description("A job has failed.")] + E_JOB_FAILED = 101012, + + /// <summary> + /// (Job completed successfully.) + /// </summary> + [Description("Job completed successfully.")] + E_JOB_COMPLETED = 101013, + + /// <summary> + /// (Machine power up cannot be completed) + /// </summary> + [Description("Machine power up cannot be completed")] + E_POWER_UP_BIT_FAILURE = 102000, + + /// <summary> + /// (Machine power up cannot be completed) + /// </summary> + [Description("Machine power up cannot be completed")] + E_MACHINE_STATE_NO_CFG_FILE = 102001, + + /// <summary> + /// (Machine power up cannot be completed) + /// </summary> + [Description("Machine power up cannot be completed")] + E_MACHINE_STATE_HW_CONFIG_FAILED = 102002, + + /// <summary> + /// (Machine power up cannot be completed) + /// </summary> + [Description("Machine power up cannot be completed")] + E_MACHINE_STATE_NO_FLASH_FILE = 102003, + + /// <summary> + /// (Machine power up cannot be completed) + /// </summary> + [Description("Machine power up cannot be completed")] + E_MACHINE_STATE_NO_ALARMS_FILE = 102004, + + /// <summary> + /// (The emergency button is pressed) + /// </summary> + [Description("The emergency button is pressed")] + E_EMERGENCY_PUSH_BUTTON_PRESSED = 103001, + + /// <summary> + /// (The dryer door is open. Cannot execute job) + /// </summary> + [Description("The dryer door is open. Cannot execute job")] + E_DRYER_DOOR_OPEN = 103002, + + /// <summary> + /// (Dryer thermal cutoff activated. Cannot execute job) + /// </summary> + [Description("Dryer thermal cutoff activated. Cannot execute job")] + E_DRYER_THERMAL_CUTOFF = 103003, + + /// <summary> + /// (Tunnel thermal cutoff activated. Cannot execute job) + /// </summary> + [Description("Tunnel thermal cutoff activated. Cannot execute job")] + E_TUNNEL_THERMAL_CUTOFF = 103004, + + /// <summary> + /// (Dyeing head thermal cutoff activated. Cannot execute job) + /// </summary> + [Description("Dyeing head thermal cutoff activated. Cannot execute job")] + E_DYEING_HEAD_THERMAL_CUTOFF = 103005, + + /// <summary> + /// (Mixer thermal cutoff activated. Cannot execute job) + /// </summary> + [Description("Mixer thermal cutoff activated. Cannot execute job")] + E_MIXER_THERMAL_CUTOFF = 103006, + + /// <summary> + /// (Lubrication thermal cutoff activated. Cannot execute job) + /// </summary> + [Description("Lubrication thermal cutoff activated. Cannot execute job")] + E_LUBRICATION_THERMAL_CUTOFF = 103007, + + /// <summary> + /// (No air flow in tunnel. Cannot execute job) + /// </summary> + [Description("No air flow in tunnel. Cannot execute job")] + E_TUNNEL_AIR_FLOW_SWITCH = 103008, + + /// <summary> + /// (No Suction from recycled ink handling system. Cannot execute job) + /// </summary> + [Description("No Suction from recycled ink handling system. Cannot execute job")] + E_WHS_AIR_FLOW_SWITCH = 103009, + + /// <summary> + /// (Air filter not present. Cannot execute job) + /// </summary> + [Description("Air filter not present. Cannot execute job")] + E_AIR_FILTER_NOT_PRESENT = 103010, + + /// <summary> + /// (Software error has occurred. Cannot execute job ) + /// </summary> + [Description("Software error has occurred. Cannot execute job ")] + E_UNINTENDED_RESET = 104000, + + /// <summary> + /// (Software error has occurred. Cannot execute job ) + /// </summary> + [Description("Software error has occurred. Cannot execute job ")] + E_SD_CARD_NOT_RESPONDING = 104001, + + /// <summary> + /// (Communication error. Cannot execute job) + /// </summary> + [Description("Communication error. Cannot execute job")] + E_NO_COMMUNICATION_WITH_BTSR_1 = 105000, + + /// <summary> + /// (Communication error. Cannot execute job) + /// </summary> + [Description("Communication error. Cannot execute job")] + E_NO_COMMUNICATION_WITH_BTSR_2 = 105001, + + /// <summary> + /// (Communication error. Cannot execute job) + /// </summary> + [Description("Communication error. Cannot execute job")] + E_NO_COMMUNICATION_WITH_BTSR_3 = 105002, + + /// <summary> + /// (Communication error. Cannot execute job) + /// </summary> + [Description("Communication error. Cannot execute job")] + E_NO_COMMUNICATION_WITH_BTSR_4 = 105003, + + /// <summary> + /// (Communication error. Cannot execute job) + /// </summary> + [Description("Communication error. Cannot execute job")] + E_NO_COMMUNICATION_WITH_DRYER_BOARD = 105004, + + /// <summary> + /// (Communication error. Cannot execute job) + /// </summary> + [Description("Communication error. Cannot execute job")] + E_NO_COMMUNICATION_WITH_DYEING_HEAD_BOARD = 105005, + + /// <summary> + /// (Communication error. Cannot execute job) + /// </summary> + [Description("Communication error. Cannot execute job")] + E_NO_COMMUNICATION_WITH_WINDER_1_BOARD = 105006, + + /// <summary> + /// (Communication error. Cannot execute job) + /// </summary> + [Description("Communication error. Cannot execute job")] + E_NO_COMMUNICATION_WITH_WINDER_2_BOARD = 105007, + + /// <summary> + /// (Communication error. Cannot execute job) + /// </summary> + [Description("Communication error. Cannot execute job")] + E_NO_COMMUNICATION_WITH_WINDER_3_BOARD = 105008, + + /// <summary> + /// (Communication error. Cannot execute job) + /// </summary> + [Description("Communication error. Cannot execute job")] + E_NO_COMMUNICATION_WITH_WINDER_4_BOARD = 105009, + + /// <summary> + /// (Communication error. Cannot execute job) + /// </summary> + [Description("Communication error. Cannot execute job")] + E_NO_COMMUNICATION_WITH_IDS_1_BOARD = 105010, + + /// <summary> + /// (Communication error. Cannot execute job) + /// </summary> + [Description("Communication error. Cannot execute job")] + E_NO_COMMUNICATION_WITH_IDS_2_BOARD = 105011, + + /// <summary> + /// (Communication error. Cannot execute job) + /// </summary> + [Description("Communication error. Cannot execute job")] + E_NO_COMMUNICATION_WITH_IDS_3_BOARD = 105012, + + /// <summary> + /// (Communication error. Cannot execute job) + /// </summary> + [Description("Communication error. Cannot execute job")] + E_NO_COMMUNICATION_WITH_IDS_4_BOARD = 105013, + + /// <summary> + /// (Communication error. Cannot execute job) + /// </summary> + [Description("Communication error. Cannot execute job")] + E_NO_COMMUNICATION_WITH_MID_TANK_BOARD = 105014, + + /// <summary> + /// (Communication error. Cannot execute job) + /// </summary> + [Description("Communication error. Cannot execute job")] + E_NO_COMMUNICATION_WITH_WHS_BOARD = 105015, + + /// <summary> + /// (Communication error. Cannot execute job) + /// </summary> + [Description("Communication error. Cannot execute job")] + E_NO_COMMUNICATION_WITH_LUBRICANT_BOARD = 105016, + + /// <summary> + /// (Communication error. Cannot execute job) + /// </summary> + [Description("Communication error. Cannot execute job")] + E_NO_COMMUNICATION_WITH_MAIN_BOARD = 105017, + + /// <summary> + /// (Door is open. Cannot execute job) + /// </summary> + [Description("Door is open. Cannot execute job")] + E_LEFT_DOOR_OPEN = 106000, + + /// <summary> + /// (Door is open. Cannot execute job) + /// </summary> + [Description("Door is open. Cannot execute job")] + E_RIGHT_DOOR_OPEN = 106001, + + /// <summary> + /// (Door is open. Cannot execute job) + /// </summary> + [Description("Door is open. Cannot execute job")] + E_TOP_DOOR_OPEN = 106002, + + /// <summary> + /// (Tunnel lid is open. Cannot execute job) + /// </summary> + [Description("Tunnel lid is open. Cannot execute job")] + E_TUNNEL_LID_IS_OPEN = 106003, + + /// <summary> + /// (Arc lid is open. Cannot execute job) + /// </summary> + [Description("Arc lid is open. Cannot execute job")] + E_ARC_LID_IS_OPEN = 106004, + + /// <summary> + /// (BTSR malfunction. Cannot execute job) + /// </summary> + [Description("BTSR malfunction. Cannot execute job")] + E_BTSR_1_MALFUNCTION = 107000, + + /// <summary> + /// (BTSR malfunction. Cannot execute job) + /// </summary> + [Description("BTSR malfunction. Cannot execute job")] + E_BTSR_2_MALFUNCTION = 107001, + + /// <summary> + /// (BTSR malfunction. Cannot execute job) + /// </summary> + [Description("BTSR malfunction. Cannot execute job")] + E_BTSR_3_MALFUNCTION = 107002, + + /// <summary> + /// (BTSR malfunction. Cannot execute job) + /// </summary> + [Description("BTSR malfunction. Cannot execute job")] + E_BTSR_4_MALFUNCTION = 107003, + + /// <summary> + /// (Tension is out of range. Cannot execute job) + /// </summary> + [Description("Tension is out of range. Cannot execute job")] + E_TENSION_IN_BTSR_1_IS_OUT_OF_RANGE = 107004, + + /// <summary> + /// (Tension is out of range. Cannot execute job) + /// </summary> + [Description("Tension is out of range. Cannot execute job")] + E_TENSION_IN_BTSR_2_IS_OUT_OF_RANGE = 107005, + + /// <summary> + /// (Tension is out of range. Cannot execute job) + /// </summary> + [Description("Tension is out of range. Cannot execute job")] + E_TENSION_IN_BTSR_3_IS_OUT_OF_RANGE = 107006, + + /// <summary> + /// (Tension is out of range. Cannot execute job) + /// </summary> + [Description("Tension is out of range. Cannot execute job")] + E_TENSION_IN_BTSR_4_IS_OUT_OF_RANGE = 107007, + + /// <summary> + /// (Thread break. Cannot execute job) + /// </summary> + [Description("Thread break. Cannot execute job")] + E_THREAD_BREAK = 107008, + + /// <summary> + /// (Thread tension control failure. Cannot execute job) + /// </summary> + [Description("Thread tension control failure. Cannot execute job")] + E_DANCER_1_TENSION_CONTROL_FAILURE = 107009, + + /// <summary> + /// (Thread tension control failure. Cannot execute job) + /// </summary> + [Description("Thread tension control failure. Cannot execute job")] + E_DANCER_2_TENSION_CONTROL_FAILURE = 107010, + + /// <summary> + /// (Thread tension control failure. Cannot execute job) + /// </summary> + [Description("Thread tension control failure. Cannot execute job")] + E_DANCER_3_TENSION_CONTROL_FAILURE = 107011, + + /// <summary> + /// (Thread tension control failure. Cannot execute job) + /// </summary> + [Description("Thread tension control failure. Cannot execute job")] + E_DANCER_4_TENSION_CONTROL_FAILURE = 107012, + + /// <summary> + /// (Thread loading error. Cannot execute job) + /// </summary> + [Description("Thread loading error. Cannot execute job")] + E_THREAD_LOADING_ERROR = 107013, + + /// <summary> + /// (Gripper malfunction. Cannot execute job) + /// </summary> + [Description("Gripper malfunction. Cannot execute job")] + E_GRIPPER_MALFUNCTION = 107014, + + /// <summary> + /// (Thread missing. Cannot execute job) + /// </summary> + [Description("Thread missing. Cannot execute job")] + E_THREAD_MISSING = 107015, + + /// <summary> + /// (Temperature in dyeing head is too high. Cannot execute job) + /// </summary> + [Description("Temperature in dyeing head is too high. Cannot execute job")] + E_DYEING_HEAD_ZONE_1_OVERTEMPERATURE = 108000, + + /// <summary> + /// (Temperature in dyeing head is too high. Cannot execute job) + /// </summary> + [Description("Temperature in dyeing head is too high. Cannot execute job")] + E_DYEING_HEAD_ZONE_2_OVERTEMPERATURE = 108001, + + /// <summary> + /// (Temperature in dyeing head is too high. Cannot execute job) + /// </summary> + [Description("Temperature in dyeing head is too high. Cannot execute job")] + E_DYEING_HEAD_ZONE_3_OVERTEMPERATURE = 108002, + + /// <summary> + /// (Temperature in mixer is too high. Cannot execute job) + /// </summary> + [Description("Temperature in mixer is too high. Cannot execute job")] + E_MIXER_1_OVERTEMPERATURE = 108003, + + /// <summary> + /// (Temperature in mixer is too high. Cannot execute job) + /// </summary> + [Description("Temperature in mixer is too high. Cannot execute job")] + E_MIXER_2_OVERTEMPERATURE = 108004, + + /// <summary> + /// (Temperature in tunnel is too high. Cannot execute job) + /// </summary> + [Description("Temperature in tunnel is too high. Cannot execute job")] + E_TUNNEL_OVERTEMPERATURE = 108005, + + /// <summary> + /// (Temperature in dryer is too high. Cannot execute job) + /// </summary> + [Description("Temperature in dryer is too high. Cannot execute job")] + E_DRYER_HEATER_1_OVERTEMPERATURE = 108007, + + /// <summary> + /// (Temperature in dryer is too high. Cannot execute job) + /// </summary> + [Description("Temperature in dryer is too high. Cannot execute job")] + E_DRYER_HEATER_2_OVERTEMPERATURE = 108008, + + /// <summary> + /// (Temperature in dryer is too high. Cannot execute job) + /// </summary> + [Description("Temperature in dryer is too high. Cannot execute job")] + E_DRYER_HEATER_3_OVERTEMPERATURE = 108009, + + /// <summary> + /// (Temperature in lubricant is too high. Cannot execute job) + /// </summary> + [Description("Temperature in lubricant is too high. Cannot execute job")] + E_LUBRICANT_OVERTEMPERATURE = 108010, + + /// <summary> + /// (Dyeing head is heating up. Cannot execute job) + /// </summary> + [Description("Dyeing head is heating up. Cannot execute job")] + E_DYEING_HEAD_ZONE_1_UNDERTEMPERATURE_A = 108011, + + /// <summary> + /// (Dyeing head is heating up. Cannot execute job) + /// </summary> + [Description("Dyeing head is heating up. Cannot execute job")] + E_DYEING_HEAD_ZONE_2_UNDERTEMPERATURE_A = 108012, + + /// <summary> + /// (Dyeing head is heating up. Cannot execute job) + /// </summary> + [Description("Dyeing head is heating up. Cannot execute job")] + E_DYEING_HEAD_ZONE_3_UNDERTEMPERATURE_A = 108013, + + /// <summary> + /// (Mixer is heating up. Cannot execute job) + /// </summary> + [Description("Mixer is heating up. Cannot execute job")] + E_MIXER_1_UNDERTEMPERATURE_A = 108014, + + /// <summary> + /// (Mixer is heating up. Cannot execute job) + /// </summary> + [Description("Mixer is heating up. Cannot execute job")] + E_MIXER_2_UNDERTEMPERATURE_A = 108015, + + /// <summary> + /// (Tunnel is heating up. Cannot execute job) + /// </summary> + [Description("Tunnel is heating up. Cannot execute job")] + E_TUNNEL_UNDERTEMPERATURE_A = 108016, + + /// <summary> + /// (Dryer is heating up. Cannot execute job) + /// </summary> + [Description("Dryer is heating up. Cannot execute job")] + E_DRYER_HEATER_1_UNDERTEMPERATURE_A = 108017, + + /// <summary> + /// (Dryer is heating up. Cannot execute job) + /// </summary> + [Description("Dryer is heating up. Cannot execute job")] + E_DRYER_HEATER_2_UNDERTEMPERATURE_A = 108018, + + /// <summary> + /// (Dryer is heating up. Cannot execute job) + /// </summary> + [Description("Dryer is heating up. Cannot execute job")] + E_DRYER_HEATER_3_UNDERTEMPERATURE_A = 108019, + + /// <summary> + /// (Lubricant is heating up. Cannot execute job) + /// </summary> + [Description("Lubricant is heating up. Cannot execute job")] + E_LUBRICANT_UNDERTEMPERATURE_A = 108020, + + /// <summary> + /// (Temperature in dyeing head is too low. Cannot execute job) + /// </summary> + [Description("Temperature in dyeing head is too low. Cannot execute job")] + E_DYEING_HEAD_ZONE_1_UNDRTEMPERATURE_B = 108021, + + /// <summary> + /// (Temperature in dyeing head is too low. Cannot execute job) + /// </summary> + [Description("Temperature in dyeing head is too low. Cannot execute job")] + E_DYEING_HEAD_ZONE_2_UNDERTEMPERATURE_B = 108022, + + /// <summary> + /// (Temperature in dyeing head is too low. Cannot execute job) + /// </summary> + [Description("Temperature in dyeing head is too low. Cannot execute job")] + E_DYEING_HEAD_ZONE_3_UNDERTEMPERATURE_B = 108023, + + /// <summary> + /// (Temperature in mixer is too low. Cannot execute job) + /// </summary> + [Description("Temperature in mixer is too low. Cannot execute job")] + E_MIXER_1_UNDERTEMPERATURE_B = 108024, + + /// <summary> + /// (Temperature in mixer is too low. Cannot execute job) + /// </summary> + [Description("Temperature in mixer is too low. Cannot execute job")] + E_MIXER_2_UNDERTEMPERATURE_B = 108025, + + /// <summary> + /// (Temperature in tunnel is too low. Cannot execute job) + /// </summary> + [Description("Temperature in tunnel is too low. Cannot execute job")] + E_TUNNEL_UNDERTEMPERATURE_B = 108026, + + /// <summary> + /// (Temperature in dryer is too low. Cannot execute job) + /// </summary> + [Description("Temperature in dryer is too low. Cannot execute job")] + E_DRYER_HEATER_1_UNDERTEMPERATURE_B = 108027, + + /// <summary> + /// (Temperature in dryer is too low. Cannot execute job) + /// </summary> + [Description("Temperature in dryer is too low. Cannot execute job")] + E_DRYER_HEATER_2_UNDERTEMPERATURE_B = 108028, + + /// <summary> + /// (Temperature in dryer is too low. Cannot execute job) + /// </summary> + [Description("Temperature in dryer is too low. Cannot execute job")] + E_DRYER_HEATER_3_UNDERTEMPERATURE_B = 108029, + + /// <summary> + /// (Temperature in lubricant is too low. Cannot execute job) + /// </summary> + [Description("Temperature in lubricant is too low. Cannot execute job")] + E_LUBRICANT_UNDERTEMPERATURE_B = 108030, + + /// <summary> + /// (Cooler temperature is too high. Cannot execute job) + /// </summary> + [Description("Cooler temperature is too high. Cannot execute job")] + E_WHS_1_COOLER_TEMPERATURE_IS_TOO_HIGH = 108031, + + /// <summary> + /// (Cooler temperature is too low. Cannot execute job) + /// </summary> + [Description("Cooler temperature is too low. Cannot execute job")] + E_WHS_1_COOLER_TEMPERATURE_IS_TOO_LOW = 108032, + + /// <summary> + /// (Cooler temperature is too high. Cannot execute job) + /// </summary> + [Description("Cooler temperature is too high. Cannot execute job")] + E_WHS_2_COOLER_TEMPERATURE_IS_TOO_HIGH = 108033, + + /// <summary> + /// (Cooler temperature is too low. Cannot execute job) + /// </summary> + [Description("Cooler temperature is too low. Cannot execute job")] + E_WHS_2_COOLER_TEMPERATURE_IS_TOO_LOW = 108034, + + /// <summary> + /// (Temperature measurement error has occurred. Cannot execute job) + /// </summary> + [Description("Temperature measurement error has occurred. Cannot execute job")] + E_TEMPERATURE_MEASUREMENT_ERROR = 108035, + + /// <summary> + /// (Dryer internal temperature is too low. Cannot execute job) + /// </summary> + [Description("Dryer internal temperature is too low. Cannot execute job")] + E_DRYER_INTERNAL_TEMPERATURE_TOO_LOW = 108036, + + /// <summary> + /// (Dyeing head zone current is out of range. Cannot execute job) + /// </summary> + [Description("Dyeing head zone current is out of range. Cannot execute job")] + E_DYEING_HEAD_ZONE_1_CURRENT_OUT_OF_RANGE = 109000, + + /// <summary> + /// (Dyeing head zone current is out of range. Cannot execute job) + /// </summary> + [Description("Dyeing head zone current is out of range. Cannot execute job")] + E_DYEING_HEAD_ZONE_2_CURRENT_OUT_OF_RANGE = 109001, + + /// <summary> + /// (Dyeing head zone current is out of range. Cannot execute job) + /// </summary> + [Description("Dyeing head zone current is out of range. Cannot execute job")] + E_DYEING_HEAD_ZONE_3_CURRENT_OUT_OF_RANGE = 109002, + + /// <summary> + /// (Mixer heater current is out of range. Cannot execute job) + /// </summary> + [Description("Mixer heater current is out of range. Cannot execute job")] + E_MIXER_1_HEATER_CURRENT_OUT_OF_RANGE = 109003, + + /// <summary> + /// (Mixer heater current is out of range. Cannot execute job) + /// </summary> + [Description("Mixer heater current is out of range. Cannot execute job")] + E_MIXER_2_HEATER_CURRENT_OUT_OF_RANGE = 109004, + + /// <summary> + /// (Tunnel heater current is out of range. Cannot execute job) + /// </summary> + [Description("Tunnel heater current is out of range. Cannot execute job")] + E_TUNNEL_HEATER_CURRENT_OUT_OF_RANGE = 109005, + + /// <summary> + /// (Dryer heater current is out of range. Cannot execute job) + /// </summary> + [Description("Dryer heater current is out of range. Cannot execute job")] + E_DRYER_HEATER_1_CURRENT_OUT_OF_RANGE = 109006, + + /// <summary> + /// (Dryer heater current is out of range. Cannot execute job) + /// </summary> + [Description("Dryer heater current is out of range. Cannot execute job")] + E_DRYER_HEATER_2_CURRENT_OUT_OF_RANGE = 109007, + + /// <summary> + /// (Dryer heater current is out of range. Cannot execute job) + /// </summary> + [Description("Dryer heater current is out of range. Cannot execute job")] + E_DRYER_HEATER_3_CURRENT_OUT_OF_RANGE = 109008, + + /// <summary> + /// (Lubricant heater current is out of range. Cannot execute job) + /// </summary> + [Description("Lubricant heater current is out of range. Cannot execute job")] + E_LUBRICANT_HEATER_CURRENT_OUT_OF_RANGE = 109009, + + /// <summary> + /// (Dyeing head zone current loop break. Cannot execute job) + /// </summary> + [Description("Dyeing head zone current loop break. Cannot execute job")] + E_DYEING_HEAD_ZONE_1_CURRENT_LOOP_BREAK = 109010, + + /// <summary> + /// (Dyeing head zone current loop break. Cannot execute job) + /// </summary> + [Description("Dyeing head zone current loop break. Cannot execute job")] + E_DYEING_HEAD_ZONE_2_CURRENT_LOOP_BREAK = 109011, + + /// <summary> + /// (Dyeing head zone current loop break. Cannot execute job) + /// </summary> + [Description("Dyeing head zone current loop break. Cannot execute job")] + E_DYEING_HEAD_ZONE_3_CURRENT_LOOP_BREAK = 109012, + + /// <summary> + /// (Mixer heater current loop break. Cannot execute job) + /// </summary> + [Description("Mixer heater current loop break. Cannot execute job")] + E_MIXER_1_HEATER_CURRENT_LOOP_BREAK = 109013, + + /// <summary> + /// (Mixer heater current loop break. Cannot execute job) + /// </summary> + [Description("Mixer heater current loop break. Cannot execute job")] + E_MIXER_2_HEATER_CURRENT_LOOP_BREAK = 109014, + + /// <summary> + /// (Tunnel heater current loop break. Cannot execute job) + /// </summary> + [Description("Tunnel heater current loop break. Cannot execute job")] + E_TUNNEL_HEATER_CURRENT_LOOP_BREAK = 109015, + + /// <summary> + /// (Dryer heater current loop break. Cannot execute job) + /// </summary> + [Description("Dryer heater current loop break. Cannot execute job")] + E_DRYER_HEATER_1_CURRENT_LOOP_BREAK = 109016, + + /// <summary> + /// (Dryer heater current loop break. Cannot execute job) + /// </summary> + [Description("Dryer heater current loop break. Cannot execute job")] + E_DRYER_HEATER_2_CURRENT_LOOP_BREAK = 109017, + + /// <summary> + /// (Dryer heater current loop break. Cannot execute job) + /// </summary> + [Description("Dryer heater current loop break. Cannot execute job")] + E_DRYER_HEATER_3_CURRENT_LOOP_BREAK = 109018, + + /// <summary> + /// (Lubricant heater current loop break. Cannot execute job) + /// </summary> + [Description("Lubricant heater current loop break. Cannot execute job")] + E_LUBRICANT_HEATER_CURRENT_LOOP_BREAK = 109019, + + /// <summary> + /// (Dryer main motor malfuncion. Cannot execute job) + /// </summary> + [Description("Dryer main motor malfuncion. Cannot execute job")] + E_DRYER_MAIN_MOTOR_MALFUNCTION = 110000, + + /// <summary> + /// (Dryer thread loading motor malfuncion. Cannot execute job) + /// </summary> + [Description("Dryer thread loading motor malfuncion. Cannot execute job")] + E_DRYER_THREAD_LOADING_MOTOR_MALFUNCTION = 110001, + + /// <summary> + /// (Winder 1 motor malfuncion. Cannot execute job) + /// </summary> + [Description("Winder 1 motor malfuncion. Cannot execute job")] + E_WINDER_1_MOTOR_MALFUNCTION = 110002, + + /// <summary> + /// (Winder 2 motor malfuncion. Cannot execute job) + /// </summary> + [Description("Winder 2 motor malfuncion. Cannot execute job")] + E_WINDER_2_MOTOR_MALFUNCTION = 110003, + + /// <summary> + /// (Winder 3 motor malfuncion. Cannot execute job) + /// </summary> + [Description("Winder 3 motor malfuncion. Cannot execute job")] + E_WINDER_3_MOTOR_MALFUNCTION = 110004, + + /// <summary> + /// (Winder 4 motor malfuncion. Cannot execute job) + /// </summary> + [Description("Winder 4 motor malfuncion. Cannot execute job")] + E_WINDER_4_MOTOR_MALFUNCTION = 110005, + + /// <summary> + /// (Dancer 1 motor malfuncion. Cannot execute job) + /// </summary> + [Description("Dancer 1 motor malfuncion. Cannot execute job")] + E_DANCER_1_MOTOR_MALFUNCTION = 110006, + + /// <summary> + /// (Dancer 2 motor malfuncion. Cannot execute job) + /// </summary> + [Description("Dancer 2 motor malfuncion. Cannot execute job")] + E_DANCER_2_MOTOR_MALFUNCTION = 110007, + + /// <summary> + /// (Dancer 3 motor malfuncion. Cannot execute job) + /// </summary> + [Description("Dancer 3 motor malfuncion. Cannot execute job")] + E_DANCER_3_MOTOR_MALFUNCTION = 110008, + + /// <summary> + /// (Dancer 4 motor malfuncion. Cannot execute job) + /// </summary> + [Description("Dancer 4 motor malfuncion. Cannot execute job")] + E_DANCER_4_MOTOR_MALFUNCTION = 110009, + + /// <summary> + /// (Dyeing head cleaner motor malfuncion. Cannot execute job) + /// </summary> + [Description("Dyeing head cleaner motor malfuncion. Cannot execute job")] + E_DYEING_HEAD_CLEANER_MOTOR_MALFUNCTION = 110010, + + /// <summary> + /// (No suction. Cannot execute job.) + /// </summary> + [Description("No suction. Cannot execute job.")] + E_NO_SUCTION = 111000, + + /// <summary> + /// (Dryer blower flow is too low. Cannot execute job) + /// </summary> + [Description("Dryer blower flow is too low. Cannot execute job")] + E_DRYER_BLOWER_FLOW_TOO_LOW = 111001, + + /// <summary> + /// (Tunnel blower flow is too low. Cannot execute job) + /// </summary> + [Description("Tunnel blower flow is too low. Cannot execute job")] + E_TUNNEL_BLOWER_FLOW_TOO_LOW = 111002, + + /// <summary> + /// (Insufficient suction fron WHS. Cannot execute job) + /// </summary> + [Description("Insufficient suction fron WHS. Cannot execute job")] + E_INSUFFICIENT_WHS_SUCTION = 111003, + + /// <summary> + /// (Air filter is clogged. Cannot execute job) + /// </summary> + [Description("Air filter is clogged. Cannot execute job")] + E_AIR_FILTER_CLOGGED = 111004, + + /// <summary> + /// (No circulation flow in blower. Cannot execute job) + /// </summary> + [Description("No circulation flow in blower. Cannot execute job")] + E_NO_CIRCULATION_FLOW_IN_DRYER = 111005, + + /// <summary> + /// (Pressure in @ ink line too high. Cannot execute job) + /// </summary> + [Description("Pressure in @ ink line too high. Cannot execute job")] + E_INK_LINE_1_PRESSURE_TOO_HIGH = 112000, + + /// <summary> + /// (Pressure in @ ink line too high. Cannot execute job) + /// </summary> + [Description("Pressure in @ ink line too high. Cannot execute job")] + E_INK_LINE_2_PRESSURE_TOO_HIGH = 112001, + + /// <summary> + /// (Pressure in @ ink line too high. Cannot execute job) + /// </summary> + [Description("Pressure in @ ink line too high. Cannot execute job")] + E_INK_LINE_3_PRESSURE_TOO_HIGH = 112002, + + /// <summary> + /// (Pressure in @ ink line too high. Cannot execute job) + /// </summary> + [Description("Pressure in @ ink line too high. Cannot execute job")] + E_INK_LINE_4_PRESSURE_TOO_HIGH = 112003, + + /// <summary> + /// (Pressure in @ ink line too high. Cannot execute job) + /// </summary> + [Description("Pressure in @ ink line too high. Cannot execute job")] + E_INK_LINE_5_PRESSURE_TOO_HIGH = 112004, + + /// <summary> + /// (Pressure in @ ink line too high. Cannot execute job) + /// </summary> + [Description("Pressure in @ ink line too high. Cannot execute job")] + E_INK_LINE_6_PRESSURE_TOO_HIGH = 112005, + + /// <summary> + /// (Pressure in @ ink line too high. Cannot execute job) + /// </summary> + [Description("Pressure in @ ink line too high. Cannot execute job")] + E_INK_LINE_7_PRESSURE_TOO_HIGH = 112006, + + /// <summary> + /// (Pressure in @ ink line too high. Cannot execute job) + /// </summary> + [Description("Pressure in @ ink line too high. Cannot execute job")] + E_INK_LINE_8_PRESSURE_TOO_HIGH = 112007, + + /// <summary> + /// (Pressure in @ ink line too high. Cannot execute job) + /// </summary> + [Description("Pressure in @ ink line too high. Cannot execute job")] + E_INK_LINE_9_PRESSURE_TOO_HIGH = 112008, + + /// <summary> + /// (Pressure in @ ink line too high. Cannot execute job) + /// </summary> + [Description("Pressure in @ ink line too high. Cannot execute job")] + E_INK_LINE_10_PRESSURE_TOO_HIGH = 112009, + + /// <summary> + /// (Pressure in @ ink line too low. Cannot execute job) + /// </summary> + [Description("Pressure in @ ink line too low. Cannot execute job")] + E_INK_LINE_1_PRESSURE_TOO_LOW = 112010, + + /// <summary> + /// (Pressure in @ ink line too low. Cannot execute job) + /// </summary> + [Description("Pressure in @ ink line too low. Cannot execute job")] + E_INK_LINE_2_PRESSURE_TOO_LOW = 112011, + + /// <summary> + /// (Pressure in @ ink line too low. Cannot execute job) + /// </summary> + [Description("Pressure in @ ink line too low. Cannot execute job")] + E_INK_LINE_3_PRESSURE_TOO_LOW = 112012, + + /// <summary> + /// (Pressure in @ ink line too low. Cannot execute job) + /// </summary> + [Description("Pressure in @ ink line too low. Cannot execute job")] + E_INK_LINE_4_PRESSURE_TOO_LOW = 112013, + + /// <summary> + /// (Pressure in @ ink line too low. Cannot execute job) + /// </summary> + [Description("Pressure in @ ink line too low. Cannot execute job")] + E_INK_LINE_5_PRESSURE_TOO_LOW = 112014, + + /// <summary> + /// (Pressure in @ ink line too low. Cannot execute job) + /// </summary> + [Description("Pressure in @ ink line too low. Cannot execute job")] + E_INK_LINE_6_PRESSURE_TOO_LOW = 112015, + + /// <summary> + /// (Pressure in @ ink line too low. Cannot execute job) + /// </summary> + [Description("Pressure in @ ink line too low. Cannot execute job")] + E_INK_LINE_7_PRESSURE_TOO_LOW = 112016, + + /// <summary> + /// (Pressure in @ ink line too low. Cannot execute job) + /// </summary> + [Description("Pressure in @ ink line too low. Cannot execute job")] + E_INK_LINE_8_PRESSURE_TOO_LOW = 112017, + + /// <summary> + /// (Pressure in @ ink line too low. Cannot execute job) + /// </summary> + [Description("Pressure in @ ink line too low. Cannot execute job")] + E_INK_LINE_9_PRESSURE_TOO_LOW = 112018, + + /// <summary> + /// (Pressure in @ ink line too low. Cannot execute job) + /// </summary> + [Description("Pressure in @ ink line too low. Cannot execute job")] + E_INK_LINE_10_PRESSURE_TOO_LOW = 112019, + + /// <summary> + /// (Malfunction in @ ink pump. Cannot execute job) + /// </summary> + [Description("Malfunction in @ ink pump. Cannot execute job")] + E_INK_PUMP_1_MALFUNCTION = 112020, + + /// <summary> + /// (Malfunction in @ ink pump. Cannot execute job) + /// </summary> + [Description("Malfunction in @ ink pump. Cannot execute job")] + E_INK_PUMP_2_MALFUNCTION = 112021, + + /// <summary> + /// (Malfunction in @ ink pump. Cannot execute job) + /// </summary> + [Description("Malfunction in @ ink pump. Cannot execute job")] + E_INK_PUMP_3_MALFUNCTION = 112022, + + /// <summary> + /// (Malfunction in @ ink pump. Cannot execute job) + /// </summary> + [Description("Malfunction in @ ink pump. Cannot execute job")] + E_INK_PUMP_4_MALFUNCTION = 112023, + + /// <summary> + /// (Malfunction in @ ink pump. Cannot execute job) + /// </summary> + [Description("Malfunction in @ ink pump. Cannot execute job")] + E_INK_PUMP_5_MALFUNCTION = 112024, + + /// <summary> + /// (Malfunction in @ ink pump. Cannot execute job) + /// </summary> + [Description("Malfunction in @ ink pump. Cannot execute job")] + E_INK_PUMP_6_MALFUNCTION = 112025, + + /// <summary> + /// (Malfunction in @ ink pump. Cannot execute job) + /// </summary> + [Description("Malfunction in @ ink pump. Cannot execute job")] + E_INK_PUMP_7_MALFUNCTION = 112026, + + /// <summary> + /// (Malfunction in @ ink pump. Cannot execute job) + /// </summary> + [Description("Malfunction in @ ink pump. Cannot execute job")] + E_INK_PUMP_8_MALFUNCTION = 112027, + + /// <summary> + /// (Malfunction in @ ink pump. Cannot execute job) + /// </summary> + [Description("Malfunction in @ ink pump. Cannot execute job")] + E_INK_PUMP_9_MALFUNCTION = 112028, + + /// <summary> + /// (Malfunction in @ ink pump. Cannot execute job) + /// </summary> + [Description("Malfunction in @ ink pump. Cannot execute job")] + E_INK_PUMP_10_MALFUNCTION = 112029, + + /// <summary> + /// (Malfunction in @ ink pump. Cannot execute job) + /// </summary> + [Description("Malfunction in @ ink pump. Cannot execute job")] + E_INK_PUMP_11_MALFUNCTION = 112030, + + /// <summary> + /// (Malfunction in @ ink pump. Cannot execute job) + /// </summary> + [Description("Malfunction in @ ink pump. Cannot execute job")] + E_INK_PUMP_12_MALFUNCTION = 112031, + + /// <summary> + /// (Malfunction in @ ink pump. Cannot execute job) + /// </summary> + [Description("Malfunction in @ ink pump. Cannot execute job")] + E_INK_PUMP_13_MALFUNCTION = 112032, + + /// <summary> + /// (Malfunction in @ ink pump. Cannot execute job) + /// </summary> + [Description("Malfunction in @ ink pump. Cannot execute job")] + E_INK_PUMP_14_MALFUNCTION = 112033, + + /// <summary> + /// (Malfunction in @ ink pump. Cannot execute job) + /// </summary> + [Description("Malfunction in @ ink pump. Cannot execute job")] + E_INK_PUMP_15_MALFUNCTION = 112034, + + /// <summary> + /// (The @ tank level is low) + /// </summary> + [Description("The @ tank level is low")] + E_INK_LINE_1_MID_TANK_LOW_LEVEL = 112035, + + /// <summary> + /// (The @ tank level is low) + /// </summary> + [Description("The @ tank level is low")] + E_INK_LINE_2_MID_TANK_LOW_LEVEL = 112036, + + /// <summary> + /// (The @ tank level is low) + /// </summary> + [Description("The @ tank level is low")] + E_INK_LINE_3_MID_TANK_LOW_LEVEL = 112037, + + /// <summary> + /// (The @ tank level is low) + /// </summary> + [Description("The @ tank level is low")] + E_INK_LINE_4_MID_TANK_LOW_LEVEL = 112038, + + /// <summary> + /// (The @ tank level is low) + /// </summary> + [Description("The @ tank level is low")] + E_INK_LINE_5_MID_TANK_LOW_LEVEL = 112039, + + /// <summary> + /// (The @ tank level is low) + /// </summary> + [Description("The @ tank level is low")] + E_INK_LINE_6_MID_TANK_LOW_LEVEL = 112040, + + /// <summary> + /// (The @ tank level is low) + /// </summary> + [Description("The @ tank level is low")] + E_INK_LINE_7_MID_TANK_LOW_LEVEL = 112041, + + /// <summary> + /// (The @ tank level is low) + /// </summary> + [Description("The @ tank level is low")] + E_INK_LINE_8_MID_TANK_LOW_LEVEL = 112042, + + /// <summary> + /// (The @ tank level is low) + /// </summary> + [Description("The @ tank level is low")] + E_INK_LINE_9_MID_TANK_LOW_LEVEL = 112043, + + /// <summary> + /// (The @ tank level is low) + /// </summary> + [Description("The @ tank level is low")] + E_INK_LINE_10_MID_TANK_LOW_LEVEL = 112044, + + /// <summary> + /// (Failed to fill @ tank. Cannot execute job) + /// </summary> + [Description("Failed to fill @ tank. Cannot execute job")] + E_INK_LINE_1_MID_TANK_FILL_TIMEOUT = 112045, + + /// <summary> + /// (Failed to fill @ tank. Cannot execute job) + /// </summary> + [Description("Failed to fill @ tank. Cannot execute job")] + E_INK_LINE_2_MID_TANK_FILL_TIMEOUT = 112046, + + /// <summary> + /// (Failed to fill @ tank. Cannot execute job) + /// </summary> + [Description("Failed to fill @ tank. Cannot execute job")] + E_INK_LINE_3_MID_TANK_FILL_TIMEOUT = 112047, + + /// <summary> + /// (Failed to fill @ tank. Cannot execute job) + /// </summary> + [Description("Failed to fill @ tank. Cannot execute job")] + E_INK_LINE_4_MID_TANK_FILL_TIMEOUT = 112048, + + /// <summary> + /// (Failed to fill @ tank. Cannot execute job) + /// </summary> + [Description("Failed to fill @ tank. Cannot execute job")] + E_INK_LINE_5_MID_TANK_FILL_TIMEOUT = 112049, + + /// <summary> + /// (Failed to fill @ tank. Cannot execute job) + /// </summary> + [Description("Failed to fill @ tank. Cannot execute job")] + E_INK_LINE_6_MID_TANK_FILL_TIMEOUT = 112050, + + /// <summary> + /// (Failed to fill @ tank. Cannot execute job) + /// </summary> + [Description("Failed to fill @ tank. Cannot execute job")] + E_INK_LINE_7_MID_TANK_FILL_TIMEOUT = 112051, + + /// <summary> + /// (Failed to fill @ tank. Cannot execute job) + /// </summary> + [Description("Failed to fill @ tank. Cannot execute job")] + E_INK_LINE_8_MID_TANK_FILL_TIMEOUT = 112052, + + /// <summary> + /// (Failed to fill @ tank. Cannot execute job) + /// </summary> + [Description("Failed to fill @ tank. Cannot execute job")] + E_INK_LINE_9_MID_TANK_FILL_TIMEOUT = 112053, + + /// <summary> + /// (Failed to fill @ tank. Cannot execute job) + /// </summary> + [Description("Failed to fill @ tank. Cannot execute job")] + E_INK_LINE_10_MID_TANK_FILL_TIMEOUT = 112054, + + /// <summary> + /// (Malfunction in @ tank. Cannot execute job) + /// </summary> + [Description("Malfunction in @ tank. Cannot execute job")] + E_INK_LINE_1_MID_TANK_MALFUNCTION = 112055, + + /// <summary> + /// (Malfunction in @ tank. Cannot execute job) + /// </summary> + [Description("Malfunction in @ tank. Cannot execute job")] + E_INK_LINE_2_MID_TANK_MALFUNCTION = 112056, + + /// <summary> + /// (Malfunction in @ tank. Cannot execute job) + /// </summary> + [Description("Malfunction in @ tank. Cannot execute job")] + E_INK_LINE_3_MID_TANK_MALFUNCTION = 112057, + + /// <summary> + /// (Malfunction in @ tank. Cannot execute job) + /// </summary> + [Description("Malfunction in @ tank. Cannot execute job")] + E_INK_LINE_4_MID_TANK_MALFUNCTION = 112058, + + /// <summary> + /// (Malfunction in @ tank. Cannot execute job) + /// </summary> + [Description("Malfunction in @ tank. Cannot execute job")] + E_INK_LINE_5_MID_TANK_MALFUNCTION = 112059, + + /// <summary> + /// (Malfunction in @ tank. Cannot execute job) + /// </summary> + [Description("Malfunction in @ tank. Cannot execute job")] + E_INK_LINE_6_MID_TANK_MALFUNCTION = 112060, + + /// <summary> + /// (Malfunction in @ tank. Cannot execute job) + /// </summary> + [Description("Malfunction in @ tank. Cannot execute job")] + E_INK_LINE_7_MID_TANK_MALFUNCTION = 112061, + + /// <summary> + /// (Malfunction in @ tank. Cannot execute job) + /// </summary> + [Description("Malfunction in @ tank. Cannot execute job")] + E_INK_LINE_8_MID_TANK_MALFUNCTION = 112062, + + /// <summary> + /// (Malfunction in @ tank. Cannot execute job) + /// </summary> + [Description("Malfunction in @ tank. Cannot execute job")] + E_INK_LINE_9_MID_TANK_MALFUNCTION = 112063, + + /// <summary> + /// (Malfunction in @ tank. Cannot execute job) + /// </summary> + [Description("Malfunction in @ tank. Cannot execute job")] + E_INK_LINE_10_MID_TANK_MALFUNCTION = 112064, + } } diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/HardwareMotorTypes.cs b/Software/Visual_Studio/Tango.BL/Enumerations/HardwareMotorTypes.cs index 3e860036c..c463054e8 100644 --- a/Software/Visual_Studio/Tango.BL/Enumerations/HardwareMotorTypes.cs +++ b/Software/Visual_Studio/Tango.BL/Enumerations/HardwareMotorTypes.cs @@ -199,5 +199,107 @@ namespace Tango.BL.Enumerations [Description("Spare 5 Motor")] MOTO_SPARE3_1 = 29, + /// <summary> + /// (Eureka Dryer Main) + /// </summary> + [Description("Eureka Dryer Main")] + E_MOTO_DRYER_DRIVING = 1000, + + /// <summary> + /// (Eureka Dryer Loading) + /// </summary> + [Description("Eureka Dryer Loading")] + E_MOTO_DRYER_LOADING = 1001, + + /// <summary> + /// (Eureka Winder 1) + /// </summary> + [Description("Eureka Winder 1")] + E_MOTO_WINDER_1 = 1002, + + /// <summary> + /// (Eureka Winder 2) + /// </summary> + [Description("Eureka Winder 2")] + E_MOTO_WINDER_2 = 1003, + + /// <summary> + /// (Eureka Winder 3) + /// </summary> + [Description("Eureka Winder 3")] + E_MOTO_WINDER_3 = 1004, + + /// <summary> + /// (Eureka Winder 4) + /// </summary> + [Description("Eureka Winder 4")] + E_MOTO_WINDER_4 = 1005, + + /// <summary> + /// (Eureka Winder Dancer 1) + /// </summary> + [Description("Eureka Winder Dancer 1")] + E_MOTO_DANCER_1 = 1006, + + /// <summary> + /// (Eureka Winder Dancer 2) + /// </summary> + [Description("Eureka Winder Dancer 2")] + E_MOTO_DANCER_2 = 1007, + + /// <summary> + /// (Eureka Winder Dancer 3) + /// </summary> + [Description("Eureka Winder Dancer 3")] + E_MOTO_DANCER_3 = 1008, + + /// <summary> + /// (Eureka Winder Dancer 4) + /// </summary> + [Description("Eureka Winder Dancer 4")] + E_MOTO_DANCER_4 = 1009, + + /// <summary> + /// (Eureka Puller) + /// </summary> + [Description("Eureka Puller")] + E_MOTO_PULLER = 1010, + + /// <summary> + /// (Eureka Puller Dancer) + /// </summary> + [Description("Eureka Puller Dancer")] + E_MOTO_PULLER_DANCER = 1011, + + /// <summary> + /// (Eureka Spare 1) + /// </summary> + [Description("Eureka Spare 1")] + E_MOTO_SPARE_1 = 1012, + + /// <summary> + /// (Eureka Spare 2) + /// </summary> + [Description("Eureka Spare 2")] + E_MOTO_SPARE_2 = 1013, + + /// <summary> + /// (Eureka Spare 3) + /// </summary> + [Description("Eureka Spare 3")] + E_MOTO_SPARE_3 = 1014, + + /// <summary> + /// (Eureka Spare 4) + /// </summary> + [Description("Eureka Spare 4")] + E_MOTO_SPARE_4 = 1015, + + /// <summary> + /// (Eureka Spare 5) + /// </summary> + [Description("Eureka Spare 5")] + E_MOTO_SPARE_5 = 1016, + } } diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/HardwarePidControlTypes.cs b/Software/Visual_Studio/Tango.BL/Enumerations/HardwarePidControlTypes.cs index 85e302598..17082a4f6 100644 --- a/Software/Visual_Studio/Tango.BL/Enumerations/HardwarePidControlTypes.cs +++ b/Software/Visual_Studio/Tango.BL/Enumerations/HardwarePidControlTypes.cs @@ -217,5 +217,131 @@ namespace Tango.BL.Enumerations [Description("Head Blower 2")] HeadBlower_2 = 32, + /// <summary> + /// (Eureka Dyer Heater 1) + /// </summary> + [Description("Eureka Dyer Heater 1")] + E_PID_DRYER_HEATER_1 = 1000, + + /// <summary> + /// (Eureka Dyer Heater 2) + /// </summary> + [Description("Eureka Dyer Heater 2")] + E_PID_DRYER_HEATER_2 = 1001, + + /// <summary> + /// (Eureka Dyer Heater 3) + /// </summary> + [Description("Eureka Dyer Heater 3")] + E_PID_DRYER_HEATER_3 = 1002, + + /// <summary> + /// (Eureka Head Heater 1) + /// </summary> + [Description("Eureka Head Heater 1")] + E_PID_HEAD_HEATER_1 = 1003, + + /// <summary> + /// (Eureka Head Heater 2) + /// </summary> + [Description("Eureka Head Heater 2")] + E_PID_HEAD_HEATER_2 = 1004, + + /// <summary> + /// (Eureka Head Heater 3) + /// </summary> + [Description("Eureka Head Heater 3")] + E_PID_HEAD_HEATER_3 = 1005, + + /// <summary> + /// (Eureka Mixer Heater) + /// </summary> + [Description("Eureka Mixer Heater")] + E_PID_MIXER_HEATER = 1006, + + /// <summary> + /// (Eureka Tunnel Heater) + /// </summary> + [Description("Eureka Tunnel Heater")] + E_PID_TUNNEL_HEATER = 1007, + + /// <summary> + /// (Eureka Lubricant Heater) + /// </summary> + [Description("Eureka Lubricant Heater")] + E_PID_LUBRICANT_HEATER = 1008, + + /// <summary> + /// (Eureka Winder 1) + /// </summary> + [Description("Eureka Winder 1")] + E_WINDER_1 = 1009, + + /// <summary> + /// (Eureka Winder 2) + /// </summary> + [Description("Eureka Winder 2")] + E_WINDER_2 = 1010, + + /// <summary> + /// (Eureka Winder 3) + /// </summary> + [Description("Eureka Winder 3")] + E_WINDER_3 = 1011, + + /// <summary> + /// (Eureka Winder 4) + /// </summary> + [Description("Eureka Winder 4")] + E_WINDER_4 = 1012, + + /// <summary> + /// (Eureka Dryer Air Flow) + /// </summary> + [Description("Eureka Dryer Air Flow")] + E_DRYER_AIR_FLOW = 1013, + + /// <summary> + /// (Eureka Puller) + /// </summary> + [Description("Eureka Puller")] + E_PULLER = 1014, + + /// <summary> + /// (Eureka Tunnel Air Flow Left) + /// </summary> + [Description("Eureka Tunnel Air Flow Left")] + E_TUNNEL_AIR_FLOW_LEFT = 1015, + + /// <summary> + /// (Eureka Tunnel Air Flow Right) + /// </summary> + [Description("Eureka Tunnel Air Flow Right")] + E_TUNNEL_AIR_FLOW_RIGHT = 1016, + + /// <summary> + /// (Eureka Spare 1) + /// </summary> + [Description("Eureka Spare 1")] + E_PID_SPARE_1 = 1017, + + /// <summary> + /// (Eureka Spare 2) + /// </summary> + [Description("Eureka Spare 2")] + E_PID_SPARE_2 = 1018, + + /// <summary> + /// (Eureka Spare 3) + /// </summary> + [Description("Eureka Spare 3")] + E_PID_SPARE_3 = 1019, + + /// <summary> + /// (Eureka Spare 4) + /// </summary> + [Description("Eureka Spare 4")] + E_PID_SPARE_4 = 1020, + } } diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/MachineTypes.cs b/Software/Visual_Studio/Tango.BL/Enumerations/MachineTypes.cs new file mode 100644 index 000000000..381b87cbc --- /dev/null +++ b/Software/Visual_Studio/Tango.BL/Enumerations/MachineTypes.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.BL.Enumerations +{ + public enum MachineTypes + { + [Description("TS-1800")] + TS1800 = 0, + [Description("Twine X4")] + Eureka = 1, + } +} diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/MidTankTypes.cs b/Software/Visual_Studio/Tango.BL/Enumerations/MidTankTypes.cs index b1255d8ff..b6a497dee 100644 --- a/Software/Visual_Studio/Tango.BL/Enumerations/MidTankTypes.cs +++ b/Software/Visual_Studio/Tango.BL/Enumerations/MidTankTypes.cs @@ -37,5 +37,11 @@ namespace Tango.BL.Enumerations [Description("No Mid Tank")] NoMidTank = 3, + /// <summary> + /// (Eureka 5L Jerrican) + /// </summary> + [Description("Eureka 5L Jerrican")] + Eureka5LJerrican = 4, + } } diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/TechHeaters.cs b/Software/Visual_Studio/Tango.BL/Enumerations/TechHeaters.cs index 9731e5b61..b5236577d 100644 --- a/Software/Visual_Studio/Tango.BL/Enumerations/TechHeaters.cs +++ b/Software/Visual_Studio/Tango.BL/Enumerations/TechHeaters.cs @@ -127,5 +127,71 @@ namespace Tango.BL.Enumerations [Description("Head Cover Heater 2")] HeadCoverHeater2 = 17, + /// <summary> + /// (Eureka Dryer 1) + /// </summary> + [Description("Eureka Dryer 1")] + E_DRYER_HEATER_1 = 1000, + + /// <summary> + /// (Eureka Dryer 2) + /// </summary> + [Description("Eureka Dryer 2")] + E_DRYER_HEATER_2 = 1001, + + /// <summary> + /// (Eureka Dryer 3) + /// </summary> + [Description("Eureka Dryer 3")] + E_DRYER_HEATER_3 = 1002, + + /// <summary> + /// (Eureka Head 1) + /// </summary> + [Description("Eureka Head 1")] + E_HEAD_HEATER_1 = 1003, + + /// <summary> + /// (Eureka Head 2) + /// </summary> + [Description("Eureka Head 2")] + E_HEAD_HEATER_2 = 1004, + + /// <summary> + /// (Eureka Head 3) + /// </summary> + [Description("Eureka Head 3")] + E_HEAD_HEATER_3 = 1005, + + /// <summary> + /// (Eureka Mixer) + /// </summary> + [Description("Eureka Mixer")] + E_MIXER_HEATER = 1006, + + /// <summary> + /// (Eureka Tunnel) + /// </summary> + [Description("Eureka Tunnel")] + E_TUNNEL_HEATER = 1007, + + /// <summary> + /// (Eureka Lubricant) + /// </summary> + [Description("Eureka Lubricant")] + E_LUBRICANT_HEATER = 1008, + + /// <summary> + /// (Eureka Spare 1) + /// </summary> + [Description("Eureka Spare 1")] + E_SPARE_1 = 1009, + + /// <summary> + /// (Eureka Spare 2) + /// </summary> + [Description("Eureka Spare 2")] + E_SPARE_2 = 1010, + } } diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/TechMonitors.cs b/Software/Visual_Studio/Tango.BL/Enumerations/TechMonitors.cs index 165fe2bd3..c3c88f409 100644 --- a/Software/Visual_Studio/Tango.BL/Enumerations/TechMonitors.cs +++ b/Software/Visual_Studio/Tango.BL/Enumerations/TechMonitors.cs @@ -218,6 +218,624 @@ namespace Tango.BL.Enumerations DryerZone3Temperature = 18, /// <summary> + /// (Eureka Ambient Temperature) + /// </summary> + [Description("Eureka Ambient Temperature")] + EuAmbientTemperature = 1022, + + /// <summary> + /// (Eureka Blower Voltage) + /// </summary> + [Description("Eureka Blower Voltage")] + EuBlowerVoltage = 1097, + + /// <summary> + /// (Eureka BTSR 1 Tension) + /// </summary> + [Description("Eureka BTSR 1 Tension")] + EuBtsr1DispAv = 1035, + + /// <summary> + /// (Eureka BTSR 1 Peak Max) + /// </summary> + [Description("Eureka BTSR 1 Peak Max")] + EuBtsr1PeakMax = 1037, + + /// <summary> + /// (Eureka BTSR 1 Peak Min) + /// </summary> + [Description("Eureka BTSR 1 Peak Min")] + EuBtsr1PeakMin = 1036, + + /// <summary> + /// (Eureka BTSR 1 Speed) + /// </summary> + [Description("Eureka BTSR 1 Speed")] + EuBtsr1Speed = 1033, + + /// <summary> + /// (Eureka BTSR 1 Speed Average) + /// </summary> + [Description("Eureka BTSR 1 Speed Average")] + EuBtsr1SpeedAv = 1034, + + /// <summary> + /// (Eureka BTSR 2 Tension) + /// </summary> + [Description("Eureka BTSR 2 Tension")] + EuBtsr2DispAv = 1040, + + /// <summary> + /// (Eureka BTSR 2 Peak Max) + /// </summary> + [Description("Eureka BTSR 2 Peak Max")] + EuBtsr2PeakMax = 1042, + + /// <summary> + /// (Eureka BTSR 2 Peak Min) + /// </summary> + [Description("Eureka BTSR 2 Peak Min")] + EuBtsr2PeakMin = 1041, + + /// <summary> + /// (Eureka BTSR 2 Speed) + /// </summary> + [Description("Eureka BTSR 2 Speed")] + EuBtsr2Speed = 1038, + + /// <summary> + /// (Eureka BTSR 2 Speed Average) + /// </summary> + [Description("Eureka BTSR 2 Speed Average")] + EuBtsr2SpeedAv = 1039, + + /// <summary> + /// (Eureka BTSR 3 Tension) + /// </summary> + [Description("Eureka BTSR 3 Tension")] + EuBtsr3DispAv = 1045, + + /// <summary> + /// (Eureka BTSR 3 Peak Max) + /// </summary> + [Description("Eureka BTSR 3 Peak Max")] + EuBtsr3PeakMax = 1047, + + /// <summary> + /// (Eureka BTSR 3 Peak Min) + /// </summary> + [Description("Eureka BTSR 3 Peak Min")] + EuBtsr3PeakMin = 1046, + + /// <summary> + /// (Eureka BTSR 3 Speed) + /// </summary> + [Description("Eureka BTSR 3 Speed")] + EuBtsr3Speed = 1043, + + /// <summary> + /// (Eureka BTSR 3 Speed Average) + /// </summary> + [Description("Eureka BTSR 3 Speed Average")] + EuBtsr3SpeedAv = 1044, + + /// <summary> + /// (Eureka BTSR 4 Tension) + /// </summary> + [Description("Eureka BTSR 4 Tension")] + EuBtsr4DispAv = 1052, + + /// <summary> + /// (Eureka BTSR 4 Peak Max) + /// </summary> + [Description("Eureka BTSR 4 Peak Max")] + EuBtsr4PeakMax = 1051, + + /// <summary> + /// (Eureka BTSR 4 Peak Min) + /// </summary> + [Description("Eureka BTSR 4 Peak Min")] + EuBtsr4PeakMin = 1050, + + /// <summary> + /// (Eureka BTSR 4 Speed) + /// </summary> + [Description("Eureka BTSR 4 Speed")] + EuBtsr4Speed = 1048, + + /// <summary> + /// (Eureka BTSR 4 Speed Average) + /// </summary> + [Description("Eureka BTSR 4 Speed Average")] + EuBtsr4SpeedAv = 1049, + + /// <summary> + /// (Eureka Chiller Temperature) + /// </summary> + [Description("Eureka Chiller Temperature")] + EuChillerTemperature = 1091, + + /// <summary> + /// (Eureka Dispenser 10 Voltage) + /// </summary> + [Description("Eureka Dispenser 10 Voltage")] + EuDispenser10Voltage = 1066, + + /// <summary> + /// (Eureka Dispenser 11 Voltage) + /// </summary> + [Description("Eureka Dispenser 11 Voltage")] + EuDispenser11Voltage = 1067, + + /// <summary> + /// (Eureka Dispenser 12 Voltage) + /// </summary> + [Description("Eureka Dispenser 12 Voltage")] + EuDispenser12Voltage = 1068, + + /// <summary> + /// (Eureka Dispenser 13 Voltage) + /// </summary> + [Description("Eureka Dispenser 13 Voltage")] + EuDispenser13Voltage = 1069, + + /// <summary> + /// (Eureka Dispenser 14 Voltage) + /// </summary> + [Description("Eureka Dispenser 14 Voltage")] + EuDispenser14Voltage = 1070, + + /// <summary> + /// (Eureka Dispenser 15 Voltage) + /// </summary> + [Description("Eureka Dispenser 15 Voltage")] + EuDispenser15Voltage = 1071, + + /// <summary> + /// (Eureka Dispenser 16 Voltage) + /// </summary> + [Description("Eureka Dispenser 16 Voltage")] + EuDispenser16Voltage = 1072, + + /// <summary> + /// (Eureka Dispenser 1 Pressure) + /// </summary> + [Description("Eureka Dispenser 1 Pressure")] + EuDispenser1Pressure = 1074, + + /// <summary> + /// (Eureka Dispenser 1 Voltage) + /// </summary> + [Description("Eureka Dispenser 1 Voltage")] + EuDispenser1Voltage = 1057, + + /// <summary> + /// (Eureka Dispenser 2 Pressure) + /// </summary> + [Description("Eureka Dispenser 2 Pressure")] + EuDispenser2Pressure = 1075, + + /// <summary> + /// (Eureka Dispenser 2 Voltage) + /// </summary> + [Description("Eureka Dispenser 2 Voltage")] + EuDispenser2Voltage = 1058, + + /// <summary> + /// (Eureka Dispenser 3 Pressure) + /// </summary> + [Description("Eureka Dispenser 3 Pressure")] + EuDispenser3Pressure = 1076, + + /// <summary> + /// (Eureka Dispenser 3 Voltage) + /// </summary> + [Description("Eureka Dispenser 3 Voltage")] + EuDispenser3Voltage = 1059, + + /// <summary> + /// (Eureka Dispenser 4 Pressure) + /// </summary> + [Description("Eureka Dispenser 4 Pressure")] + EuDispenser4Pressure = 1077, + + /// <summary> + /// (Eureka Dispenser 4 Voltage) + /// </summary> + [Description("Eureka Dispenser 4 Voltage")] + EuDispenser4Voltage = 1060, + + /// <summary> + /// (Eureka Dispenser 5 Pressure) + /// </summary> + [Description("Eureka Dispenser 5 Pressure")] + EuDispenser5Pressure = 1078, + + /// <summary> + /// (Eureka Dispenser 5 Voltage) + /// </summary> + [Description("Eureka Dispenser 5 Voltage")] + EuDispenser5Voltage = 1061, + + /// <summary> + /// (Eureka Dispenser 6 Pressure) + /// </summary> + [Description("Eureka Dispenser 6 Pressure")] + EuDispenser6Pressure = 1079, + + /// <summary> + /// (Eureka Dispenser 6 Voltage) + /// </summary> + [Description("Eureka Dispenser 6 Voltage")] + EuDispenser6Voltage = 1062, + + /// <summary> + /// (Eureka Dispenser 7 Pressure) + /// </summary> + [Description("Eureka Dispenser 7 Pressure")] + EuDispenser7Pressure = 1080, + + /// <summary> + /// (Eureka Dispenser 7 Voltage) + /// </summary> + [Description("Eureka Dispenser 7 Voltage")] + EuDispenser7Voltage = 1063, + + /// <summary> + /// (Eureka Dispenser 8 Pressure) + /// </summary> + [Description("Eureka Dispenser 8 Pressure")] + EuDispenser8Pressure = 1081, + + /// <summary> + /// (Eureka Dispenser 8 Voltage) + /// </summary> + [Description("Eureka Dispenser 8 Voltage")] + EuDispenser8Voltage = 1064, + + /// <summary> + /// (Eureka Dispenser 9 Voltage) + /// </summary> + [Description("Eureka Dispenser 9 Voltage")] + EuDispenser9Voltage = 1065, + + /// <summary> + /// (Eureka Dryer Air Flow) + /// </summary> + [Description("Eureka Dryer Air Flow")] + EuDryerAirFlow = 1096, + + /// <summary> + /// (Eureka Dryer Motor Current) + /// </summary> + [Description("Eureka Dryer Motor Current")] + EuDryerMotorCurrent = 1010, + + /// <summary> + /// (Eureka Dryer Motor Target Velocity) + /// </summary> + [Description("Eureka Dryer Motor Target Velocity")] + EuDryerMotorTargetVelocity = 1009, + + /// <summary> + /// (Eureka Dryer Motor Velocity) + /// </summary> + [Description("Eureka Dryer Motor Velocity")] + EuDryerMotorVelocity = 1008, + + /// <summary> + /// (Eureka Dryer Zone 1 Current) + /// </summary> + [Description("Eureka Dryer Zone 1 Current")] + EuDryerZone1Current = 1024, + + /// <summary> + /// (Eureka Dryer Zone 1 Temperature) + /// </summary> + [Description("Eureka Dryer Zone 1 Temperature")] + EuDryerZone1Temperature = 1013, + + /// <summary> + /// (Eureka Dryer Zone 2 Current) + /// </summary> + [Description("Eureka Dryer Zone 2 Current")] + EuDryerZone2Current = 1025, + + /// <summary> + /// (Eureka Dryer Zone 2 Temperature) + /// </summary> + [Description("Eureka Dryer Zone 2 Temperature")] + EuDryerZone2Temperature = 1014, + + /// <summary> + /// (Eureka Dryer Zone 3 Current) + /// </summary> + [Description("Eureka Dryer Zone 3 Current")] + EuDryerZone3Current = 1026, + + /// <summary> + /// (Eureka Dryer Zone 3 Temperature) + /// </summary> + [Description("Eureka Dryer Zone 3 Temperature")] + EuDryerZone3Temperature = 1015, + + /// <summary> + /// (Eureka Electrical Cabinet Temperature) + /// </summary> + [Description("Eureka Electrical Cabinet Temperature")] + EuElectricalCabinetTemperature = 1023, + + /// <summary> + /// (Eureka Head Left Air Flow) + /// </summary> + [Description("Eureka Head Left Air Flow")] + EuHeadLeftAirFlow = 1093, + + /// <summary> + /// (Eureka Head Left Voltage) + /// </summary> + [Description("Eureka Head Left Voltage")] + EuHeadLeftVoltage = 1095, + + /// <summary> + /// (Eureka Head Right Air Flow) + /// </summary> + [Description("Eureka Head Right Air Flow")] + EuHeadRightAirFlow = 1092, + + /// <summary> + /// (Eureka Head Right Voltage) + /// </summary> + [Description("Eureka Head Right Voltage")] + EuHeadRightVoltage = 1094, + + /// <summary> + /// (Eureka Head Zone 1 Current) + /// </summary> + [Description("Eureka Head Zone 1 Current")] + EuHeadZone1Current = 1027, + + /// <summary> + /// (Eureka Head Zone 1 Temperature) + /// </summary> + [Description("Eureka Head Zone 1 Temperature")] + EuHeadZone1Temperature = 1016, + + /// <summary> + /// (Eureka Head Zone 2 Current) + /// </summary> + [Description("Eureka Head Zone 2 Current")] + EuHeadZone2Current = 1028, + + /// <summary> + /// (Eureka Head Zone 2 Temperature) + /// </summary> + [Description("Eureka Head Zone 2 Temperature")] + EuHeadZone2Temperature = 1017, + + /// <summary> + /// (Eureka Head Zone 3 Current) + /// </summary> + [Description("Eureka Head Zone 3 Current")] + EuHeadZone3Current = 1029, + + /// <summary> + /// (Eureka Head Zone 3 Temperature) + /// </summary> + [Description("Eureka Head Zone 3 Temperature")] + EuHeadZone3Temperature = 1018, + + /// <summary> + /// (Eureka Ink Lines Pressure) + /// </summary> + [Description("Eureka Ink Lines Pressure")] + EuInkLinesPressure = 1055, + + /// <summary> + /// (Eureka Lubricant Current) + /// </summary> + [Description("Eureka Lubricant Current")] + EuLubricantCurrent = 1032, + + /// <summary> + /// (Eureka Lubricant Pressure) + /// </summary> + [Description("Eureka Lubricant Pressure")] + EuLubricantPressure = 1082, + + /// <summary> + /// (Eureka Lubricant Pump Voltage) + /// </summary> + [Description("Eureka Lubricant Pump Voltage")] + EuLubricantPumpVoltage = 1073, + + /// <summary> + /// (Eureka Lubricant Temperature) + /// </summary> + [Description("Eureka Lubricant Temperature")] + EuLubricantTemperature = 1021, + + /// <summary> + /// (Eureka Mid Tank 1 Level) + /// </summary> + [Description("Eureka Mid Tank 1 Level")] + EuMidTank1Level = 1083, + + /// <summary> + /// (Eureka Mid Tank 2 Level) + /// </summary> + [Description("Eureka Mid Tank 2 Level")] + EuMidTank2Level = 1084, + + /// <summary> + /// (Eureka Mid Tank 3 Level) + /// </summary> + [Description("Eureka Mid Tank 3 Level")] + EuMidTank3Level = 1085, + + /// <summary> + /// (Eureka Mid Tank 4 Level) + /// </summary> + [Description("Eureka Mid Tank 4 Level")] + EuMidTank4Level = 1086, + + /// <summary> + /// (Eureka Mid Tank 5 Level) + /// </summary> + [Description("Eureka Mid Tank 5 Level")] + EuMidTank5Level = 1087, + + /// <summary> + /// (Eureka Mid Tank 6 Level) + /// </summary> + [Description("Eureka Mid Tank 6 Level")] + EuMidTank6Level = 1088, + + /// <summary> + /// (Eureka Mid Tank 7 Level) + /// </summary> + [Description("Eureka Mid Tank 7 Level")] + EuMidTank7Level = 1089, + + /// <summary> + /// (Eureka Mid Tank 8 Level) + /// </summary> + [Description("Eureka Mid Tank 8 Level")] + EuMidTank8Level = 1090, + + /// <summary> + /// (Eureka Mixer Current) + /// </summary> + [Description("Eureka Mixer Current")] + EuMixerCurrent = 1030, + + /// <summary> + /// (Eureka Mixer Temperature) + /// </summary> + [Description("Eureka Mixer Temperature")] + EuMixerTemperature = 1019, + + /// <summary> + /// (Eureka Puller Dancer) + /// </summary> + [Description("Eureka Puller Dancer")] + EuPullerDancer = 1011, + + /// <summary> + /// (Eureka Puller Motor) + /// </summary> + [Description("Eureka Puller Motor")] + EuPullerMotor = 1012, + + /// <summary> + /// (Eureka Pump Flows) + /// </summary> + [Description("Eureka Pump Flows")] + EuPumpFlows = 1054, + + /// <summary> + /// (Eureka Spare 1) + /// </summary> + [Description("Eureka Spare 1")] + EuSpare1 = 1099, + + /// <summary> + /// (Eureka Spare 2) + /// </summary> + [Description("Eureka Spare 2")] + EuSpare2 = 1100, + + /// <summary> + /// (Eureka Spare 3) + /// </summary> + [Description("Eureka Spare 3")] + EuSpare3 = 1101, + + /// <summary> + /// (Eureka Spare 4) + /// </summary> + [Description("Eureka Spare 4")] + EuSpare4 = 1102, + + /// <summary> + /// (Eureka Spare Data Array) + /// </summary> + [Description("Eureka Spare Data Array")] + EuSpareDataArray = 1056, + + /// <summary> + /// (Eureka Temperature Loggers) + /// </summary> + [Description("Eureka Temperature Loggers")] + EuTemperatureLoggers = 1053, + + /// <summary> + /// (Eureka Tunnel Current) + /// </summary> + [Description("Eureka Tunnel Current")] + EuTunnelCurrent = 1031, + + /// <summary> + /// (Eureka Tunnel Temperature) + /// </summary> + [Description("Eureka Tunnel Temperature")] + EuTunnelTemperature = 1020, + + /// <summary> + /// (Eureka Waste Level) + /// </summary> + [Description("Eureka Waste Level")] + EuWasteLevel = 1098, + + /// <summary> + /// (Eureka Winder Dancer 1) + /// </summary> + [Description("Eureka Winder Dancer 1")] + EuWinder1Dancer = 1000, + + /// <summary> + /// (Eureka Winder Motor 1) + /// </summary> + [Description("Eureka Winder Motor 1")] + EuWinder1Motor = 1004, + + /// <summary> + /// (Eureka Winder Dancer 2) + /// </summary> + [Description("Eureka Winder Dancer 2")] + EuWinder2Dancer = 1001, + + /// <summary> + /// (Eureka Winder Motor 2) + /// </summary> + [Description("Eureka Winder Motor 2")] + EuWinder2Motor = 1005, + + /// <summary> + /// (Eureka Winder Dancer 3) + /// </summary> + [Description("Eureka Winder Dancer 3")] + EuWinder3Dancer = 1002, + + /// <summary> + /// (Eureka Winder Motor 3) + /// </summary> + [Description("Eureka Winder Motor 3")] + EuWinder3Motor = 1006, + + /// <summary> + /// (Eureka Winder Dancer 4) + /// </summary> + [Description("Eureka Winder Dancer 4")] + EuWinder4Dancer = 1003, + + /// <summary> + /// (Eureka Winder Motor 4) + /// </summary> + [Description("Eureka Winder Motor 4")] + EuWinder4Motor = 1007, + + /// <summary> /// (Feeder Motor) /// </summary> [Description("Feeder Motor")] diff --git a/Software/Visual_Studio/Tango.BL/Tango.BL.csproj b/Software/Visual_Studio/Tango.BL/Tango.BL.csproj index d00304e0e..83e4bf3ea 100644 --- a/Software/Visual_Studio/Tango.BL/Tango.BL.csproj +++ b/Software/Visual_Studio/Tango.BL/Tango.BL.csproj @@ -596,6 +596,7 @@ <Compile Include="Enumerations\RmlQualifications.cs" /> <Compile Include="Enumerations\TestResultColors.cs" /> <Compile Include="Enumerations\TwistDirections.cs" /> + <Compile Include="Enumerations\MachineTypes.cs" /> <Compile Include="Enumerations\YarnUnits.cs" /> <Compile Include="ExtensionMethods\ColorCatalogItemsExtensions.cs" /> <Compile Include="ExtensionMethods\ColorMineExtensions.cs" /> diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/HARDWARE_VERSIONS.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/HARDWARE_VERSIONS.cs index 190ed45e6..77541c90a 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/HARDWARE_VERSIONS.cs +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/HARDWARE_VERSIONS.cs @@ -32,6 +32,8 @@ namespace Tango.DAL.Remote.DB public System.DateTime LAST_UPDATED { get; set; } public double VERSION { get; set; } public string NAME { get; set; } + public int MACHINE_TYPE { get; set; } + public string USER_NAME { get; set; } [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] public virtual ICollection<CONFIGURATION> CONFIGURATIONS { get; set; } diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/JOB_RUNS.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/JOB_RUNS.cs index 069498e77..090263ff2 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/JOB_RUNS.cs +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/JOB_RUNS.cs @@ -56,5 +56,6 @@ namespace Tango.DAL.Remote.DB public string CE_VERSION { get; set; } public string PROCESS_PARAMETERS_TABLE_GUID { get; set; } public string FINE_TUNING_STRING { get; set; } + public int MACHINE_TYPE { get; set; } } } diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/MACHINE.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/MACHINE.cs index 98b65c77c..415ecaf50 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/MACHINE.cs +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/MACHINE.cs @@ -66,6 +66,7 @@ namespace Tango.DAL.Remote.DB public bool LIGHT_INKS_INSTALLED { get; set; } public bool BTSR_INSTALLED { get; set; } public string VERSION_TAG { get; set; } + public int MACHINE_TYPE { get; set; } [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] public virtual ICollection<CAT> CATS { get; set; } diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/MACHINE_PROTOTYPES.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/MACHINE_PROTOTYPES.cs index 4fdfe0e0e..63930b0a3 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/MACHINE_PROTOTYPES.cs +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/MACHINE_PROTOTYPES.cs @@ -17,6 +17,7 @@ namespace Tango.DAL.Remote.DB public int ID { get; set; } public string GUID { get; set; } public System.DateTime LAST_UPDATED { get; set; } + public int MACHINE_TYPE { get; set; } public string NAME { get; set; } public string DESCRIPTION { get; set; } public string PROTOTYPE_JSON { get; set; } diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/PROCESS_PARAMETERS_TABLES.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/PROCESS_PARAMETERS_TABLES.cs index c9363283b..08830d36d 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/PROCESS_PARAMETERS_TABLES.cs +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/PROCESS_PARAMETERS_TABLES.cs @@ -53,6 +53,36 @@ namespace Tango.DAL.Remote.DB public double BTSR_FEEDING_TENSION { get; set; } public double EXIT_TENSION { get; set; } public double BTSR_THREAD_LENGTH_OFFSET { get; set; } + public double E_WINDER1_TENSION { get; set; } + public double E_WINDER2_TENSION { get; set; } + public double E_WINDER3_TENSION { get; set; } + public double E_WINDER4_TENSION { get; set; } + public double E_BTSR1_FEEDING_TENSION { get; set; } + public double E_BTSR2_FEEDING_TENSION { get; set; } + public double E_BTSR3_FEEDING_TENSION { get; set; } + public double E_BTSR4_FEEDING_TENSION { get; set; } + public double E_MIXER_TEMP { get; set; } + public double E_HEAD_ZONE1_TEMP { get; set; } + public double E_HEAD_ZONE2_TEMP { get; set; } + public double E_HEAD_ZONE3_TEMP { get; set; } + public double E_DRYER_ZONE1_TEMP { get; set; } + public double E_DRYER_ZONE2_TEMP { get; set; } + public double E_DRYER_ZONE3_TEMP { get; set; } + public double E_LUBRICANT_TEMP { get; set; } + public double E_DRYER_INCOMING_AIR_FLOW { get; set; } + public double E_DRYER_OUTGOING_AIR_FLOW { get; set; } + public double E_TUNNEL_INCOMING_AIR_FLOW { get; set; } + public double E_TUNNEL_OUTGOING_AIR_FLOW { get; set; } + public double E_WASTE_AIR_FLOW { get; set; } + public double E_WASTE_PREPARE_TIME { get; set; } + public double E_PUMP_TEMP { get; set; } + public double E_PRESSURE_BUILD_UP { get; set; } + public double E_SPARE1 { get; set; } + public double E_SPARE2 { get; set; } + public double E_SPARE3 { get; set; } + public double E_SPARE4 { get; set; } + public double E_SPARE5 { get; set; } + public double E_TUNNEL_TEMP { get; set; } public virtual PROCESS_PARAMETERS_TABLES_GROUPS PROCESS_PARAMETERS_TABLES_GROUPS { get; set; } } diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx index d28d22849..8bed67ce6 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx @@ -693,6 +693,8 @@ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" /> <Property Name="VERSION" Type="float" Nullable="false" /> <Property Name="NAME" Type="nvarchar" MaxLength="50" Nullable="false" /> + <Property Name="MACHINE_TYPE" Type="int" Nullable="false" /> + <Property Name="USER_NAME" Type="nvarchar" MaxLength="100" /> </EntityType> <EntityType Name="HARDWARE_WINDER_TYPES"> <Key> @@ -791,6 +793,7 @@ <Property Name="CE_VERSION" Type="varchar" MaxLength="30" /> <Property Name="PROCESS_PARAMETERS_TABLE_GUID" Type="varchar" MaxLength="36" /> <Property Name="FINE_TUNING_STRING" Type="nvarchar" MaxLength="2000" /> + <Property Name="MACHINE_TYPE" Type="int" Nullable="false" /> </EntityType> <EntityType Name="JOBS"> <Key> @@ -893,6 +896,7 @@ <Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" /> <Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" /> <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" /> + <Property Name="MACHINE_TYPE" Type="int" Nullable="false" /> <Property Name="NAME" Type="varchar" MaxLength="100" Nullable="false" /> <Property Name="DESCRIPTION" Type="varchar" MaxLength="100" Nullable="false" /> <Property Name="PROTOTYPE_JSON" Type="varchar(max)" Nullable="false" /> @@ -963,6 +967,7 @@ <Property Name="LIGHT_INKS_INSTALLED" Type="bit" Nullable="false" /> <Property Name="BTSR_INSTALLED" Type="bit" Nullable="false" /> <Property Name="VERSION_TAG" Type="varchar" MaxLength="50" /> + <Property Name="MACHINE_TYPE" Type="int" Nullable="false" /> </EntityType> <EntityType Name="MACHINES_EVENTS"> <Key> @@ -1087,6 +1092,36 @@ <Property Name="BTSR_FEEDING_TENSION" Type="float" Nullable="false" /> <Property Name="EXIT_TENSION" Type="float" Nullable="false" /> <Property Name="BTSR_THREAD_LENGTH_OFFSET" Type="float" Nullable="false" /> + <Property Name="E_WINDER1_TENSION" Type="float" Nullable="false" /> + <Property Name="E_WINDER2_TENSION" Type="float" Nullable="false" /> + <Property Name="E_WINDER3_TENSION" Type="float" Nullable="false" /> + <Property Name="E_WINDER4_TENSION" Type="float" Nullable="false" /> + <Property Name="E_BTSR1_FEEDING_TENSION" Type="float" Nullable="false" /> + <Property Name="E_BTSR2_FEEDING_TENSION" Type="float" Nullable="false" /> + <Property Name="E_BTSR3_FEEDING_TENSION" Type="float" Nullable="false" /> + <Property Name="E_BTSR4_FEEDING_TENSION" Type="float" Nullable="false" /> + <Property Name="E_MIXER_TEMP" Type="float" Nullable="false" /> + <Property Name="E_HEAD_ZONE1_TEMP" Type="float" Nullable="false" /> + <Property Name="E_HEAD_ZONE2_TEMP" Type="float" Nullable="false" /> + <Property Name="E_HEAD_ZONE3_TEMP" Type="float" Nullable="false" /> + <Property Name="E_DRYER_ZONE1_TEMP" Type="float" Nullable="false" /> + <Property Name="E_DRYER_ZONE2_TEMP" Type="float" Nullable="false" /> + <Property Name="E_DRYER_ZONE3_TEMP" Type="float" Nullable="false" /> + <Property Name="E_LUBRICANT_TEMP" Type="float" Nullable="false" /> + <Property Name="E_DRYER_INCOMING_AIR_FLOW" Type="float" Nullable="false" /> + <Property Name="E_DRYER_OUTGOING_AIR_FLOW" Type="float" Nullable="false" /> + <Property Name="E_TUNNEL_INCOMING_AIR_FLOW" Type="float" Nullable="false" /> + <Property Name="E_TUNNEL_OUTGOING_AIR_FLOW" Type="float" Nullable="false" /> + <Property Name="E_WASTE_AIR_FLOW" Type="float" Nullable="false" /> + <Property Name="E_WASTE_PREPARE_TIME" Type="float" Nullable="false" /> + <Property Name="E_PUMP_TEMP" Type="float" Nullable="false" /> + <Property Name="E_PRESSURE_BUILD_UP" Type="float" Nullable="false" /> + <Property Name="E_SPARE1" Type="float" Nullable="false" /> + <Property Name="E_SPARE2" Type="float" Nullable="false" /> + <Property Name="E_SPARE3" Type="float" Nullable="false" /> + <Property Name="E_SPARE4" Type="float" Nullable="false" /> + <Property Name="E_SPARE5" Type="float" Nullable="false" /> + <Property Name="E_TUNNEL_TEMP" Type="float" Nullable="false" /> </EntityType> <EntityType Name="PROCESS_PARAMETERS_TABLES_GROUPS"> <Key> @@ -6288,6 +6323,8 @@ <Property Name="LAST_UPDATED" Type="DateTime" Nullable="false" Precision="3" /> <Property Name="VERSION" Type="Double" Nullable="false" /> <Property Name="NAME" Type="String" Nullable="false" MaxLength="50" FixedLength="false" Unicode="true" /> + <Property Name="MACHINE_TYPE" Type="Int32" Nullable="false" /> + <Property Name="USER_NAME" Type="String" MaxLength="100" FixedLength="false" Unicode="true" /> <NavigationProperty Name="CONFIGURATIONS" Relationship="RemoteModel.FK_CONFIGURATIONS_HARDWARE_VERSIONS" FromRole="HARDWARE_VERSIONS" ToRole="CONFIGURATION" /> <NavigationProperty Name="HARDWARE_BLOWERS" Relationship="RemoteModel.FK_HARDWARE_BLOWERS_HARDWARE_VERSIONS" FromRole="HARDWARE_VERSIONS" ToRole="HARDWARE_BLOWERS" /> <NavigationProperty Name="HARDWARE_BREAK_SENSORS" Relationship="RemoteModel.FK_HARDWARE_BREAK_SENSORS_HARDWARE_VERSIONS" FromRole="HARDWARE_VERSIONS" ToRole="HARDWARE_BREAK_SENSORS" /> @@ -6404,6 +6441,7 @@ <Property Name="CE_VERSION" Type="String" MaxLength="30" FixedLength="false" Unicode="false" /> <Property Name="PROCESS_PARAMETERS_TABLE_GUID" Type="String" MaxLength="36" FixedLength="false" Unicode="false" /> <Property Name="FINE_TUNING_STRING" Type="String" MaxLength="2000" FixedLength="false" Unicode="true" /> + <Property Name="MACHINE_TYPE" Type="Int32" Nullable="false" /> </EntityType> <EntityType Name="JOB"> <Key> @@ -6524,6 +6562,7 @@ <Property Name="ID" Type="Int32" Nullable="false" annotation:StoreGeneratedPattern="Identity" /> <Property Name="GUID" Type="String" Nullable="false" MaxLength="36" FixedLength="false" Unicode="false" /> <Property Name="LAST_UPDATED" Type="DateTime" Nullable="false" Precision="3" /> + <Property Name="MACHINE_TYPE" Type="Int32" Nullable="false" /> <Property Name="NAME" Type="String" Nullable="false" MaxLength="100" FixedLength="false" Unicode="false" /> <Property Name="DESCRIPTION" Type="String" Nullable="false" MaxLength="100" FixedLength="false" Unicode="false" /> <Property Name="PROTOTYPE_JSON" Type="String" Nullable="false" MaxLength="Max" FixedLength="false" Unicode="false" /> @@ -6597,6 +6636,7 @@ <Property Name="LIGHT_INKS_INSTALLED" Type="Boolean" Nullable="false" /> <Property Name="BTSR_INSTALLED" Type="Boolean" Nullable="false" /> <Property Name="VERSION_TAG" Type="String" MaxLength="50" FixedLength="false" Unicode="false" /> + <Property Name="MACHINE_TYPE" Type="Int32" Nullable="false" /> <NavigationProperty Name="CATS" Relationship="RemoteModel.FK_CATS_MACHINES" FromRole="MACHINE" ToRole="CAT" /> <NavigationProperty Name="COLOR_PROCESS_PARAMETERS" Relationship="RemoteModel.FK_COLOR_PROCESS_PARAMETERS_MACHINES" FromRole="MACHINE" ToRole="COLOR_PROCESS_PARAMETERS" /> <NavigationProperty Name="CONFIGURATION" Relationship="RemoteModel.FK_MACHINES_CONFIGURATIONS" FromRole="MACHINE" ToRole="CONFIGURATION" /> @@ -6747,6 +6787,36 @@ <Property Name="BTSR_FEEDING_TENSION" Type="Double" Nullable="false" /> <Property Name="EXIT_TENSION" Type="Double" Nullable="false" /> <Property Name="BTSR_THREAD_LENGTH_OFFSET" Type="Double" Nullable="false" /> + <Property Name="E_WINDER1_TENSION" Type="Double" Nullable="false" /> + <Property Name="E_WINDER2_TENSION" Type="Double" Nullable="false" /> + <Property Name="E_WINDER3_TENSION" Type="Double" Nullable="false" /> + <Property Name="E_WINDER4_TENSION" Type="Double" Nullable="false" /> + <Property Name="E_BTSR1_FEEDING_TENSION" Type="Double" Nullable="false" /> + <Property Name="E_BTSR2_FEEDING_TENSION" Type="Double" Nullable="false" /> + <Property Name="E_BTSR3_FEEDING_TENSION" Type="Double" Nullable="false" /> + <Property Name="E_BTSR4_FEEDING_TENSION" Type="Double" Nullable="false" /> + <Property Name="E_MIXER_TEMP" Type="Double" Nullable="false" /> + <Property Name="E_HEAD_ZONE1_TEMP" Type="Double" Nullable="false" /> + <Property Name="E_HEAD_ZONE2_TEMP" Type="Double" Nullable="false" /> + <Property Name="E_HEAD_ZONE3_TEMP" Type="Double" Nullable="false" /> + <Property Name="E_DRYER_ZONE1_TEMP" Type="Double" Nullable="false" /> + <Property Name="E_DRYER_ZONE2_TEMP" Type="Double" Nullable="false" /> + <Property Name="E_DRYER_ZONE3_TEMP" Type="Double" Nullable="false" /> + <Property Name="E_LUBRICANT_TEMP" Type="Double" Nullable="false" /> + <Property Name="E_DRYER_INCOMING_AIR_FLOW" Type="Double" Nullable="false" /> + <Property Name="E_DRYER_OUTGOING_AIR_FLOW" Type="Double" Nullable="false" /> + <Property Name="E_TUNNEL_INCOMING_AIR_FLOW" Type="Double" Nullable="false" /> + <Property Name="E_TUNNEL_OUTGOING_AIR_FLOW" Type="Double" Nullable="false" /> + <Property Name="E_WASTE_AIR_FLOW" Type="Double" Nullable="false" /> + <Property Name="E_WASTE_PREPARE_TIME" Type="Double" Nullable="false" /> + <Property Name="E_PUMP_TEMP" Type="Double" Nullable="false" /> + <Property Name="E_PRESSURE_BUILD_UP" Type="Double" Nullable="false" /> + <Property Name="E_SPARE1" Type="Double" Nullable="false" /> + <Property Name="E_SPARE2" Type="Double" Nullable="false" /> + <Property Name="E_SPARE3" Type="Double" Nullable="false" /> + <Property Name="E_SPARE4" Type="Double" Nullable="false" /> + <Property Name="E_SPARE5" Type="Double" Nullable="false" /> + <Property Name="E_TUNNEL_TEMP" Type="Double" Nullable="false" /> <NavigationProperty Name="PROCESS_PARAMETERS_TABLES_GROUPS" Relationship="RemoteModel.FK_PROCESS_PARAMETERS_TABLES_PROCESS_PARAMETERS_TABLES_GROUPS" FromRole="PROCESS_PARAMETERS_TABLES" ToRole="PROCESS_PARAMETERS_TABLES_GROUPS" /> </EntityType> <EntityType Name="PROCESS_PARAMETERS_TABLES_GROUPS"> @@ -9746,6 +9816,8 @@ <EntitySetMapping Name="HARDWARE_VERSIONS"> <EntityTypeMapping TypeName="RemoteModel.HARDWARE_VERSIONS"> <MappingFragment StoreEntitySet="HARDWARE_VERSIONS"> + <ScalarProperty Name="USER_NAME" ColumnName="USER_NAME" /> + <ScalarProperty Name="MACHINE_TYPE" ColumnName="MACHINE_TYPE" /> <ScalarProperty Name="NAME" ColumnName="NAME" /> <ScalarProperty Name="VERSION" ColumnName="VERSION" /> <ScalarProperty Name="LAST_UPDATED" ColumnName="LAST_UPDATED" /> @@ -9812,6 +9884,7 @@ <EntitySetMapping Name="JOB_RUNS"> <EntityTypeMapping TypeName="RemoteModel.JOB_RUNS"> <MappingFragment StoreEntitySet="JOB_RUNS"> + <ScalarProperty Name="MACHINE_TYPE" ColumnName="MACHINE_TYPE" /> <ScalarProperty Name="FINE_TUNING_STRING" ColumnName="FINE_TUNING_STRING" /> <ScalarProperty Name="PROCESS_PARAMETERS_TABLE_GUID" ColumnName="PROCESS_PARAMETERS_TABLE_GUID" /> <ScalarProperty Name="CE_VERSION" ColumnName="CE_VERSION" /> @@ -9962,6 +10035,7 @@ <ScalarProperty Name="PROTOTYPE_JSON" ColumnName="PROTOTYPE_JSON" /> <ScalarProperty Name="DESCRIPTION" ColumnName="DESCRIPTION" /> <ScalarProperty Name="NAME" ColumnName="NAME" /> + <ScalarProperty Name="MACHINE_TYPE" ColumnName="MACHINE_TYPE" /> <ScalarProperty Name="LAST_UPDATED" ColumnName="LAST_UPDATED" /> <ScalarProperty Name="GUID" ColumnName="GUID" /> <ScalarProperty Name="ID" ColumnName="ID" /> @@ -9997,6 +10071,7 @@ <EntitySetMapping Name="MACHINES"> <EntityTypeMapping TypeName="RemoteModel.MACHINE"> <MappingFragment StoreEntitySet="MACHINES"> + <ScalarProperty Name="MACHINE_TYPE" ColumnName="MACHINE_TYPE" /> <ScalarProperty Name="VERSION_TAG" ColumnName="VERSION_TAG" /> <ScalarProperty Name="BTSR_INSTALLED" ColumnName="BTSR_INSTALLED" /> <ScalarProperty Name="LIGHT_INKS_INSTALLED" ColumnName="LIGHT_INKS_INSTALLED" /> @@ -10128,6 +10203,36 @@ <EntitySetMapping Name="PROCESS_PARAMETERS_TABLES"> <EntityTypeMapping TypeName="RemoteModel.PROCESS_PARAMETERS_TABLES"> <MappingFragment StoreEntitySet="PROCESS_PARAMETERS_TABLES"> + <ScalarProperty Name="E_TUNNEL_TEMP" ColumnName="E_TUNNEL_TEMP" /> + <ScalarProperty Name="E_SPARE5" ColumnName="E_SPARE5" /> + <ScalarProperty Name="E_SPARE4" ColumnName="E_SPARE4" /> + <ScalarProperty Name="E_SPARE3" ColumnName="E_SPARE3" /> + <ScalarProperty Name="E_SPARE2" ColumnName="E_SPARE2" /> + <ScalarProperty Name="E_SPARE1" ColumnName="E_SPARE1" /> + <ScalarProperty Name="E_PRESSURE_BUILD_UP" ColumnName="E_PRESSURE_BUILD_UP" /> + <ScalarProperty Name="E_PUMP_TEMP" ColumnName="E_PUMP_TEMP" /> + <ScalarProperty Name="E_WASTE_PREPARE_TIME" ColumnName="E_WASTE_PREPARE_TIME" /> + <ScalarProperty Name="E_WASTE_AIR_FLOW" ColumnName="E_WASTE_AIR_FLOW" /> + <ScalarProperty Name="E_TUNNEL_OUTGOING_AIR_FLOW" ColumnName="E_TUNNEL_OUTGOING_AIR_FLOW" /> + <ScalarProperty Name="E_TUNNEL_INCOMING_AIR_FLOW" ColumnName="E_TUNNEL_INCOMING_AIR_FLOW" /> + <ScalarProperty Name="E_DRYER_OUTGOING_AIR_FLOW" ColumnName="E_DRYER_OUTGOING_AIR_FLOW" /> + <ScalarProperty Name="E_DRYER_INCOMING_AIR_FLOW" ColumnName="E_DRYER_INCOMING_AIR_FLOW" /> + <ScalarProperty Name="E_LUBRICANT_TEMP" ColumnName="E_LUBRICANT_TEMP" /> + <ScalarProperty Name="E_DRYER_ZONE3_TEMP" ColumnName="E_DRYER_ZONE3_TEMP" /> + <ScalarProperty Name="E_DRYER_ZONE2_TEMP" ColumnName="E_DRYER_ZONE2_TEMP" /> + <ScalarProperty Name="E_DRYER_ZONE1_TEMP" ColumnName="E_DRYER_ZONE1_TEMP" /> + <ScalarProperty Name="E_HEAD_ZONE3_TEMP" ColumnName="E_HEAD_ZONE3_TEMP" /> + <ScalarProperty Name="E_HEAD_ZONE2_TEMP" ColumnName="E_HEAD_ZONE2_TEMP" /> + <ScalarProperty Name="E_HEAD_ZONE1_TEMP" ColumnName="E_HEAD_ZONE1_TEMP" /> + <ScalarProperty Name="E_MIXER_TEMP" ColumnName="E_MIXER_TEMP" /> + <ScalarProperty Name="E_BTSR4_FEEDING_TENSION" ColumnName="E_BTSR4_FEEDING_TENSION" /> + <ScalarProperty Name="E_BTSR3_FEEDING_TENSION" ColumnName="E_BTSR3_FEEDING_TENSION" /> + <ScalarProperty Name="E_BTSR2_FEEDING_TENSION" ColumnName="E_BTSR2_FEEDING_TENSION" /> + <ScalarProperty Name="E_BTSR1_FEEDING_TENSION" ColumnName="E_BTSR1_FEEDING_TENSION" /> + <ScalarProperty Name="E_WINDER4_TENSION" ColumnName="E_WINDER4_TENSION" /> + <ScalarProperty Name="E_WINDER3_TENSION" ColumnName="E_WINDER3_TENSION" /> + <ScalarProperty Name="E_WINDER2_TENSION" ColumnName="E_WINDER2_TENSION" /> + <ScalarProperty Name="E_WINDER1_TENSION" ColumnName="E_WINDER1_TENSION" /> <ScalarProperty Name="BTSR_THREAD_LENGTH_OFFSET" ColumnName="BTSR_THREAD_LENGTH_OFFSET" /> <ScalarProperty Name="EXIT_TENSION" ColumnName="EXIT_TENSION" /> <ScalarProperty Name="BTSR_FEEDING_TENSION" ColumnName="BTSR_FEEDING_TENSION" /> diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram index d442411fe..3a81d86f0 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram @@ -5,102 +5,102 @@ <!-- Diagram content (shape and connector positions) --> <edmx:Diagrams> <Diagram DiagramId="f9ae01d708754bbd997add25a4bacc79" Name="Diagram1" ZoomLevel="87"> - <EntityTypeShape EntityType="RemoteModel.ACTION_LOGS" Width="1.5" PointX="11.25" PointY="52.75" /> - <EntityTypeShape EntityType="RemoteModel.ADDRESS" Width="1.5" PointX="1.5" PointY="54.625" /> - <EntityTypeShape EntityType="RemoteModel.APPLICATION_DISPLAY_PANEL_VERSIONS" Width="1.5" PointX="1.5" PointY="64.5" /> - <EntityTypeShape EntityType="RemoteModel.APPLICATION_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="61.625" /> - <EntityTypeShape EntityType="RemoteModel.APPLICATION_OS_VERSIONS" Width="1.5" PointX="1.5" PointY="67.5" /> - <EntityTypeShape EntityType="RemoteModel.BIT_TYPES" Width="1.5" PointX="5.75" PointY="10.75" /> - <EntityTypeShape EntityType="RemoteModel.BRUSH_STOPS" Width="1.5" PointX="18" PointY="17.125" /> - <EntityTypeShape EntityType="RemoteModel.BTSR_APPLICATION_TYPES" Width="1.5" PointX="0.75" PointY="33.75" /> - <EntityTypeShape EntityType="RemoteModel.BTSR_YARN_TYPES" Width="1.5" PointX="0.75" PointY="39.875" /> - <EntityTypeShape EntityType="RemoteModel.CARTRIDGE_TYPES" Width="1.5" PointX="8" PointY="87.5" /> - <EntityTypeShape EntityType="RemoteModel.CAT" Width="1.5" PointX="8.25" PointY="16.75" /> - <EntityTypeShape EntityType="RemoteModel.CCT" Width="1.5" PointX="0.75" PointY="16.625" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS" Width="1.5" PointX="1.5" PointY="1.5" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_GROUPS" Width="1.5" PointX="3.75" PointY="2" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS" Width="1.5" PointX="6" PointY="0.75" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS_RECIPES" Width="1.5" PointX="8.25" PointY="20.625" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_PROCESS_INK_UPTAKE" Width="1.5" PointX="13.75" PointY="8.75" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_SPACES" Width="1.5" PointX="9" PointY="25.625" /> - <EntityTypeShape EntityType="RemoteModel.CONFIGURATION" Width="1.5" PointX="3.75" PointY="64.25" /> - <EntityTypeShape EntityType="RemoteModel.CONTACT" Width="1.5" PointX="1.5" PointY="50.75" /> - <EntityTypeShape EntityType="RemoteModel.CUSTOMER" Width="1.5" PointX="9" PointY="12.125" /> - <EntityTypeShape EntityType="RemoteModel.DATA_STORE_ITEMS" Width="1.5" PointX="8.25" PointY="66.5" /> - <EntityTypeShape EntityType="RemoteModel.DISPENSER_TYPES" Width="1.5" PointX="5.75" PointY="83.5" /> - <EntityTypeShape EntityType="RemoteModel.DISPENSER" Width="1.5" PointX="8" PointY="82.875" /> - <EntityTypeShape EntityType="RemoteModel.EMBEDDED_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="58.625" /> - <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES" Width="1.5" PointX="11" PointY="41" /> - <EntityTypeShape EntityType="RemoteModel.FIBER_SHAPES" Width="1.5" PointX="0.75" PointY="24.875" /> - <EntityTypeShape EntityType="RemoteModel.FIBER_SYNTHS" Width="1.5" PointX="0.75" PointY="37" /> - <EntityTypeShape EntityType="RemoteModel.FSE_VERSIONS" Width="1.5" PointX="11.25" PointY="28.5" /> - <EntityTypeShape EntityType="RemoteModel.GBD" Width="1.5" PointX="0.75" PointY="7.125" /> - <EntityTypeShape EntityType="RemoteModel.GLOBAL_DATA_STORE_ITEMS" Width="1.5" PointX="14.75" PointY="4.75" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWER_TYPES" Width="1.5" PointX="1.5" PointY="79" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWERS" Width="1.5" PointX="3.75" PointY="78.5" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSOR_TYPES" Width="1.5" PointX="7.5" PointY="91" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSORS" Width="1.5" PointX="9.75" PointY="70.625" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCER_TYPES" Width="1.5" PointX="4.5" PointY="87" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCERS" Width="1.5" PointX="6.75" PointY="70.875" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTOR_TYPES" Width="1.5" PointX="8.5" PointY="62.875" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTORS" Width="1.5" PointX="10.75" PointY="60.625" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROL_TYPES" Width="1.5" PointX="7.5" PointY="95" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROLS" Width="1.5" PointX="9.75" PointY="75" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSOR_TYPES" Width="1.5" PointX="4.5" PointY="91" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSORS" Width="1.5" PointX="6.75" PointY="76.625" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="70.375" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDER_TYPES" Width="1.5" PointX="1.5" PointY="75" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDERS" Width="1.5" PointX="3.75" PointY="70.75" /> - <EntityTypeShape EntityType="RemoteModel.IDS_PACK_FORMULAS" Width="1.5" PointX="8" PointY="54.125" /> - <EntityTypeShape EntityType="RemoteModel.IDS_PACKS" Width="1.5" PointX="10.25" PointY="47" /> - <EntityTypeShape EntityType="RemoteModel.JOB_RUNS" Width="1.5" PointX="16.75" PointY="4.75" /> - <EntityTypeShape EntityType="RemoteModel.JOB" Width="1.5" PointX="11.25" PointY="17" /> - <EntityTypeShape EntityType="RemoteModel.LINEAR_MASS_DENSITY_UNITS" Width="1.5" PointX="0.75" PointY="30.75" /> - <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES" Width="1.5" PointX="6" PointY="30" /> - <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES_RMLS" Width="1.5" PointX="5.25" PointY="24.875" /> - <EntityTypeShape EntityType="RemoteModel.LUB" Width="1.5" PointX="0.75" PointY="13.25" /> - <EntityTypeShape EntityType="RemoteModel.MACHINE_PROTOTYPES" Width="1.5" PointX="13.75" PointY="16.75" /> - <EntityTypeShape EntityType="RemoteModel.MACHINE_STUDIO_VERSIONS" Width="1.5" PointX="11.25" PointY="32.25" /> - <EntityTypeShape EntityType="RemoteModel.MACHINE_VERSIONS" Width="1.5" PointX="3.75" PointY="74.625" /> - <EntityTypeShape EntityType="RemoteModel.MACHINE" Width="1.5" PointX="6" PointY="58.625" /> - <EntityTypeShape EntityType="RemoteModel.MACHINES_EVENTS" Width="1.5" PointX="13.25" PointY="46.375" /> - <EntityTypeShape EntityType="RemoteModel.MEDIA_CONDITIONS" Width="1.5" PointX="0.75" PointY="27.875" /> - <EntityTypeShape EntityType="RemoteModel.MEDIA_MATERIALS" Width="1.5" PointX="0.75" PointY="21.125" /> - <EntityTypeShape EntityType="RemoteModel.MEDIA_PURPOSES" Width="1.5" PointX="0.75" PointY="10.375" /> - <EntityTypeShape EntityType="RemoteModel.MID_TANK_TYPES" Width="1.5" PointX="8" PointY="50.625" /> - <EntityTypeShape EntityType="RemoteModel.ORGANIZATION" Width="1.5" PointX="3.75" PointY="52.625" /> - <EntityTypeShape EntityType="RemoteModel.PERMISSION" Width="1.5" PointX="12" PointY="5.5" /> - <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES" Width="1.5" PointX="7.5" PointY="40.75" /> - <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES_GROUPS" Width="1.5" PointX="5.25" PointY="43.75" /> - <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS" Width="1.5" PointX="13.75" PointY="1" /> - <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS_VERSIONS" Width="1.5" PointX="16" PointY="1.25" /> - <EntityTypeShape EntityType="RemoteModel.RML_EXTENSION_TEST_WASHING_RESULTS" Width="1.5" PointX="11" PointY="1" /> - <EntityTypeShape EntityType="RemoteModel.RML" Width="1.5" PointX="3" PointY="14.625" /> - <EntityTypeShape EntityType="RemoteModel.RMLS_SPOOLS" Width="1.5" PointX="5.25" PointY="20.375" /> - <EntityTypeShape EntityType="RemoteModel.ROLE" Width="1.5" PointX="12" PointY="13.5" /> - <EntityTypeShape EntityType="RemoteModel.ROLES_PERMISSIONS" Width="1.5" PointX="14.25" PointY="13.5" /> - <EntityTypeShape EntityType="RemoteModel.RUBBING_RESULTS" Width="1.5" PointX="18.75" PointY="0.75" /> - <EntityTypeShape EntityType="RemoteModel.SEGMENT" Width="1.5" PointX="15.75" PointY="20.75" /> - <EntityTypeShape EntityType="RemoteModel.SEGMENTS_GROUPS" Width="1.5" PointX="13.5" PointY="21" /> - <EntityTypeShape EntityType="RemoteModel.SITE" Width="1.5" PointX="3" PointY="10.75" /> - <EntityTypeShape EntityType="RemoteModel.SITES_CATALOGS" Width="1.5" PointX="5.25" PointY="7.5" /> - <EntityTypeShape EntityType="RemoteModel.SITES_RMLS" Width="1.5" PointX="5.25" PointY="17.125" /> - <EntityTypeShape EntityType="RemoteModel.SITES_SPOOL_TYPES" Width="1.5" PointX="11.25" PointY="8.75" /> - <EntityTypeShape EntityType="RemoteModel.SPOOL_TYPES" Width="1.5" PointX="9" PointY="6.25" /> - <EntityTypeShape EntityType="RemoteModel.SPOOL" Width="1.5" PointX="11.25" PointY="36.125" /> - <EntityTypeShape EntityType="RemoteModel.sysdiagram" Width="1.5" PointX="18.75" PointY="4.75" /> - <EntityTypeShape EntityType="RemoteModel.TANGO_UPDATES" Width="1.5" PointX="18.75" PointY="7.75" /> - <EntityTypeShape EntityType="RemoteModel.TANGO_VERSIONS" Width="1.5" PointX="14.25" PointY="51.25" /> - <EntityTypeShape EntityType="RemoteModel.TECH_CONTROLLERS" Width="1.5" PointX="18.75" PointY="12.75" /> - <EntityTypeShape EntityType="RemoteModel.TECH_DISPENSERS" Width="1.5" PointX="20.75" PointY="0.75" /> - <EntityTypeShape EntityType="RemoteModel.TECH_HEATERS" Width="1.5" PointX="20.75" PointY="3.75" /> - <EntityTypeShape EntityType="RemoteModel.TECH_IOS" Width="1.5" PointX="20.75" PointY="6.75" /> - <EntityTypeShape EntityType="RemoteModel.TECH_MONITORS" Width="1.5" PointX="20.75" PointY="11.75" /> - <EntityTypeShape EntityType="RemoteModel.TECH_VALVES" Width="1.5" PointX="20.75" PointY="16.75" /> - <EntityTypeShape EntityType="RemoteModel.USER" Width="1.5" PointX="9" PointY="29.125" /> - <EntityTypeShape EntityType="RemoteModel.USERS_ROLES" Width="1.5" PointX="14.25" PointY="30.5" /> - <EntityTypeShape EntityType="RemoteModel.WASHING_TEST_MATERIALS" Width="1.5" PointX="8.75" PointY="1.5" /> - <EntityTypeShape EntityType="RemoteModel.WINDING_METHODS" Width="1.5" PointX="9" PointY="35.125" /> + <EntityTypeShape EntityType="RemoteModel.ACTION_LOGS" Width="1.5" PointX="11.25" PointY="12.375" /> + <EntityTypeShape EntityType="RemoteModel.ADDRESS" Width="1.5" PointX="1.5" PointY="73" /> + <EntityTypeShape EntityType="RemoteModel.APPLICATION_DISPLAY_PANEL_VERSIONS" Width="1.5" PointX="1.5" PointY="77.125" /> + <EntityTypeShape EntityType="RemoteModel.APPLICATION_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="98.5" /> + <EntityTypeShape EntityType="RemoteModel.APPLICATION_OS_VERSIONS" Width="1.5" PointX="1.5" PointY="91" /> + <EntityTypeShape EntityType="RemoteModel.BIT_TYPES" Width="1.5" PointX="5.75" PointY="10.625" /> + <EntityTypeShape EntityType="RemoteModel.BRUSH_STOPS" Width="1.5" PointX="18" PointY="22.125" /> + <EntityTypeShape EntityType="RemoteModel.BTSR_APPLICATION_TYPES" Width="1.5" PointX="0.75" PointY="26" /> + <EntityTypeShape EntityType="RemoteModel.BTSR_YARN_TYPES" Width="1.5" PointX="0.75" PointY="36.5" /> + <EntityTypeShape EntityType="RemoteModel.CARTRIDGE_TYPES" Width="1.5" PointX="3" PointY="47.375" /> + <EntityTypeShape EntityType="RemoteModel.CAT" Width="1.5" PointX="5.25" PointY="21.75" /> + <EntityTypeShape EntityType="RemoteModel.CCT" Width="1.5" PointX="0.75" PointY="30.25" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS" Width="1.5" PointX="1.5" PointY="101.625" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_GROUPS" Width="1.5" PointX="0.75" PointY="7.125" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS" Width="1.5" PointX="3" PointY="0.75" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS_RECIPES" Width="1.5" PointX="5.25" PointY="25.625" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_PROCESS_INK_UPTAKE" Width="1.5" PointX="7.75" PointY="10.625" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_SPACES" Width="1.5" PointX="9" PointY="36" /> + <EntityTypeShape EntityType="RemoteModel.CONFIGURATION" Width="1.5" PointX="0.75" PointY="82.875" /> + <EntityTypeShape EntityType="RemoteModel.CONTACT" Width="1.5" PointX="1.5" PointY="69.125" /> + <EntityTypeShape EntityType="RemoteModel.CUSTOMER" Width="1.5" PointX="9" PointY="29.75" /> + <EntityTypeShape EntityType="RemoteModel.DATA_STORE_ITEMS" Width="1.5" PointX="5.25" PointY="69.375" /> + <EntityTypeShape EntityType="RemoteModel.DISPENSER_TYPES" Width="1.5" PointX="0.75" PointY="106.875" /> + <EntityTypeShape EntityType="RemoteModel.DISPENSER" Width="1.5" PointX="3" PointY="106.25" /> + <EntityTypeShape EntityType="RemoteModel.EMBEDDED_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="88" /> + <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES" Width="1.5" PointX="9" PointY="66.25" /> + <EntityTypeShape EntityType="RemoteModel.FIBER_SHAPES" Width="1.5" PointX="0.75" PointY="33.5" /> + <EntityTypeShape EntityType="RemoteModel.FIBER_SYNTHS" Width="1.5" PointX="0.75" PointY="39.75" /> + <EntityTypeShape EntityType="RemoteModel.FSE_VERSIONS" Width="1.5" PointX="11.25" PointY="33.625" /> + <EntityTypeShape EntityType="RemoteModel.GBD" Width="1.5" PointX="0.75" PointY="45.875" /> + <EntityTypeShape EntityType="RemoteModel.GLOBAL_DATA_STORE_ITEMS" Width="1.5" PointX="2.75" PointY="12.625" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWER_TYPES" Width="1.5" PointX="1.5" PointY="118.625" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWERS" Width="1.5" PointX="3.75" PointY="99.25" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSOR_TYPES" Width="1.5" PointX="7.5" PointY="100.625" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSORS" Width="1.5" PointX="9.75" PointY="94.375" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCER_TYPES" Width="1.5" PointX="1.5" PointY="114.625" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCERS" Width="1.5" PointX="3.75" PointY="93.625" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTOR_TYPES" Width="1.5" PointX="7.5" PointY="84.625" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTORS" Width="1.5" PointX="9.75" PointY="84.25" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROL_TYPES" Width="1.5" PointX="4.5" PointY="81.625" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROLS" Width="1.5" PointX="6.75" PointY="92.75" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSOR_TYPES" Width="1.5" PointX="1.5" PointY="110.625" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSORS" Width="1.5" PointX="3.75" PointY="89.375" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="93.875" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDER_TYPES" Width="1.5" PointX="4.5" PointY="85.625" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDERS" Width="1.5" PointX="6.75" PointY="88.5" /> + <EntityTypeShape EntityType="RemoteModel.IDS_PACK_FORMULAS" Width="1.5" PointX="3" PointY="40.75" /> + <EntityTypeShape EntityType="RemoteModel.IDS_PACKS" Width="1.5" PointX="5.25" PointY="45.125" /> + <EntityTypeShape EntityType="RemoteModel.JOB_RUNS" Width="1.5" PointX="16.75" PointY="2.625" /> + <EntityTypeShape EntityType="RemoteModel.JOB" Width="1.5" PointX="11.25" PointY="22" /> + <EntityTypeShape EntityType="RemoteModel.LINEAR_MASS_DENSITY_UNITS" Width="1.5" PointX="0.75" PointY="12.125" /> + <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES" Width="1.5" PointX="3" PointY="7.5" /> + <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES_RMLS" Width="1.5" PointX="8.25" PointY="25.875" /> + <EntityTypeShape EntityType="RemoteModel.LUB" Width="1.5" PointX="0.75" PointY="21" /> + <EntityTypeShape EntityType="RemoteModel.MACHINE_PROTOTYPES" Width="1.5" PointX="13.75" PointY="11.625" /> + <EntityTypeShape EntityType="RemoteModel.MACHINE_STUDIO_VERSIONS" Width="1.5" PointX="11.25" PointY="18.125" /> + <EntityTypeShape EntityType="RemoteModel.MACHINE_VERSIONS" Width="1.5" PointX="0.75" PointY="65.5" /> + <EntityTypeShape EntityType="RemoteModel.MACHINE" Width="1.5" PointX="3" PointY="57.25" /> + <EntityTypeShape EntityType="RemoteModel.MACHINES_EVENTS" Width="1.5" PointX="11.25" PointY="39.625" /> + <EntityTypeShape EntityType="RemoteModel.MEDIA_CONDITIONS" Width="1.5" PointX="0.75" PointY="18" /> + <EntityTypeShape EntityType="RemoteModel.MEDIA_MATERIALS" Width="1.5" PointX="0.75" PointY="42.75" /> + <EntityTypeShape EntityType="RemoteModel.MEDIA_PURPOSES" Width="1.5" PointX="0.75" PointY="15.125" /> + <EntityTypeShape EntityType="RemoteModel.MID_TANK_TYPES" Width="1.5" PointX="3" PointY="44" /> + <EntityTypeShape EntityType="RemoteModel.ORGANIZATION" Width="1.5" PointX="0.75" PointY="51.125" /> + <EntityTypeShape EntityType="RemoteModel.PERMISSION" Width="1.5" PointX="12" PointY="4.25" /> + <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES" Width="1.5" PointX="7.5" PointY="50.25" /> + <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES_GROUPS" Width="1.5" PointX="5.25" PointY="56.125" /> + <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS" Width="1.5" PointX="5.75" PointY="6.875" /> + <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS_VERSIONS" Width="1.5" PointX="8" PointY="7" /> + <EntityTypeShape EntityType="RemoteModel.RML_EXTENSION_TEST_WASHING_RESULTS" Width="1.5" PointX="8" PointY="2.875" /> + <EntityTypeShape EntityType="RemoteModel.RML" Width="1.5" PointX="3" PointY="19.625" /> + <EntityTypeShape EntityType="RemoteModel.RMLS_SPOOLS" Width="1.5" PointX="8.25" PointY="21.375" /> + <EntityTypeShape EntityType="RemoteModel.ROLE" Width="1.5" PointX="12" PointY="8.125" /> + <EntityTypeShape EntityType="RemoteModel.ROLES_PERMISSIONS" Width="1.5" PointX="14.25" PointY="8.25" /> + <EntityTypeShape EntityType="RemoteModel.RUBBING_RESULTS" Width="1.5" PointX="16.75" PointY="13.625" /> + <EntityTypeShape EntityType="RemoteModel.SEGMENT" Width="1.5" PointX="15.75" PointY="25.75" /> + <EntityTypeShape EntityType="RemoteModel.SEGMENTS_GROUPS" Width="1.5" PointX="13.5" PointY="26" /> + <EntityTypeShape EntityType="RemoteModel.SITE" Width="1.5" PointX="3" PointY="35.75" /> + <EntityTypeShape EntityType="RemoteModel.SITES_CATALOGS" Width="1.5" PointX="5.25" PointY="66.25" /> + <EntityTypeShape EntityType="RemoteModel.SITES_RMLS" Width="1.5" PointX="5.25" PointY="30.125" /> + <EntityTypeShape EntityType="RemoteModel.SITES_SPOOL_TYPES" Width="1.5" PointX="14.25" PointY="30.125" /> + <EntityTypeShape EntityType="RemoteModel.SPOOL_TYPES" Width="1.5" PointX="6" PointY="16" /> + <EntityTypeShape EntityType="RemoteModel.SPOOL" Width="1.5" PointX="8.25" PointY="40.375" /> + <EntityTypeShape EntityType="RemoteModel.sysdiagram" Width="1.5" PointX="2.75" PointY="16.625" /> + <EntityTypeShape EntityType="RemoteModel.TANGO_UPDATES" Width="1.5" PointX="16.75" PointY="17.625" /> + <EntityTypeShape EntityType="RemoteModel.TANGO_VERSIONS" Width="1.5" PointX="14.25" PointY="39.5" /> + <EntityTypeShape EntityType="RemoteModel.TECH_CONTROLLERS" Width="1.5" PointX="13.75" PointY="19.625" /> + <EntityTypeShape EntityType="RemoteModel.TECH_DISPENSERS" Width="1.5" PointX="18.75" PointY="2.625" /> + <EntityTypeShape EntityType="RemoteModel.TECH_HEATERS" Width="1.5" PointX="18.75" PointY="5.625" /> + <EntityTypeShape EntityType="RemoteModel.TECH_IOS" Width="1.5" PointX="18.75" PointY="8.625" /> + <EntityTypeShape EntityType="RemoteModel.TECH_MONITORS" Width="1.5" PointX="18.75" PointY="13.625" /> + <EntityTypeShape EntityType="RemoteModel.TECH_VALVES" Width="1.5" PointX="18.75" PointY="18.625" /> + <EntityTypeShape EntityType="RemoteModel.USER" Width="1.5" PointX="9" PointY="14.75" /> + <EntityTypeShape EntityType="RemoteModel.USERS_ROLES" Width="1.5" PointX="14.25" PointY="16.25" /> + <EntityTypeShape EntityType="RemoteModel.WASHING_TEST_MATERIALS" Width="1.5" PointX="5.75" PointY="3.375" /> + <EntityTypeShape EntityType="RemoteModel.WINDING_METHODS" Width="1.5" PointX="9" PointY="32.875" /> <AssociationConnector Association="RemoteModel.FK_ACTION_LOGS_USERS" /> <AssociationConnector Association="RemoteModel.FK_ORGANIZATIONS_ADDRESSES" /> <AssociationConnector Association="RemoteModel.FK_USERS_ADDRESSES" /> diff --git a/Software/Visual_Studio/Tango.Emulations/Emulators/MachineEmulator.cs b/Software/Visual_Studio/Tango.Emulations/Emulators/MachineEmulator.cs index 5bf3b8a9a..61d069847 100644 --- a/Software/Visual_Studio/Tango.Emulations/Emulators/MachineEmulator.cs +++ b/Software/Visual_Studio/Tango.Emulations/Emulators/MachineEmulator.cs @@ -87,6 +87,7 @@ namespace Tango.Emulations.Emulators private int _jobAbortCounter; private bool _abortHeadCleaning; private String _machineStatusRequestToken; + private MachineType _machineType; #region Properties @@ -166,9 +167,24 @@ namespace Tango.Emulations.Emulators { Index = i, DispenserLevel = 130000000, - MidTankLevel = 2500, + MidTankLevel = 2.5, }); } + for (int i = 0; i < 4; i++) + { + if (i == 2) + { + MachineStatus.WindersInError.Add(false); + MachineStatus.DancersInError.Add(true); + MachineStatus.BtsrsInError.Add(true); + } + else + { + MachineStatus.WindersInError.Add(false); + MachineStatus.DancersInError.Add(false); + MachineStatus.BtsrsInError.Add(false); + } + } EventsStates = MachineEventState.GetAllEventsStates(); @@ -212,6 +228,21 @@ namespace Tango.Emulations.Emulators HeaterType = (HeaterType)item.Code, }); } + var tunnel = _heater_states.FirstOrDefault(x => x.HeaterType == HeaterType.ETunnelHeater); + if (tunnel != null) + { + tunnel.IsRampingUp = true; + tunnel.CurrentValue = 108.5; + tunnel.SetPoint = 170; + } + var dryerZone3 = _heater_states.FirstOrDefault(x => x.HeaterType == HeaterType.EDryerHeater3); + if (dryerZone3 != null) + { + dryerZone3.IsRampingUp = false; + dryerZone3.CurrentValue = 200.8; + dryerZone3.SetPoint = 170; + } + //DryerZone3 foreach (var item in adapter.HardwareBlowerTypes) { @@ -496,6 +527,9 @@ namespace Tango.Emulations.Emulators case MessageType.InitiateInkFillingRequest: HandleInitiateInkFillingRequest(MessageFactory.ParseTangoMessageFromContainer<InitiateInkFillingRequest>(container)); break; + case MessageType.GetVersionDescriptorsRequest: + HandleGetVersionDescriptorsRequest(MessageFactory.ParseTangoMessageFromContainer<GetVersionDescriptorsRequest>(container)); + break; } } @@ -620,6 +654,19 @@ namespace Tango.Emulations.Emulators monitors.Dispenser7MotorFrequency.AddRange(dispenserFrequencies[6].Data); monitors.Dispenser8MotorFrequency.AddRange(dispenserFrequencies[7].Data); + monitors.EuDispenser1Pressure.Clear(); + monitors.EuDispenser1Pressure.Add(5); + + monitors.EuLubricantCurrent.Add(4000.12345); + + + //res.HeatersStates.Add(new HeaterState() + //{ + // CurrentValue = 50, + // IsInSetPoint = false, + // SetPoint = 100 + //}); + res.DigitalInterfaceStates.AddRange(_digitalOutputPinsStates.Concat(_digitalInputPinsStates)); res.ComponentsStates.AddRange(_componentsStates); res.HeatersStates.AddRange(_heater_states); @@ -794,13 +841,21 @@ namespace Tango.Emulations.Emulators Stopwatch watch = new Stopwatch(); Dictionary<int, IDSPackLevel> dispenserindexToPacklevel = new Dictionary<int, IDSPackLevel>(); + double dryerLength = _machineType == MachineType.Ts1800 ? (job.ProcessParameters.DryerBufferLength * ProcessParametersTable.DRYER_METERS_PER_CYCLE + ProcessParametersTable.DRYER_TO_SPOOL_LENGTH_METERS) : job.ProcessParameters.DryerBufferLength; + + //TODO Handle First Unit Length Decrease In Emulator! + double firstUnitStartPosition = request.Message.FirstUnitStartPosition; + + bool addedResume = firstUnitStartPosition <= 0; + bool bIsResumeProcess = firstUnitStartPosition > 0; + for (int i = 0; i < units; i++) { - - while (progress < unit_length + (i == units - 1 ? (job.ProcessParameters.DryerBufferLength * ProcessParametersTable.DRYER_METERS_PER_CYCLE + ProcessParametersTable.DRYER_TO_SPOOL_LENGTH_METERS) : 0) && !_cancelJob) - { - var status = new PMR.Printing.JobStatus(); - status.Progress = progress; + // while (progress < unit_length + (!bIsResumeProcess && i == units - 1 ? dryerLength : 0) && !_cancelJob) + while (progress < unit_length + ( i == units - 1 ? dryerLength : 0) && !_cancelJob) + { + var status = new PMR.Printing.JobStatus(); + status.Progress = progress; if (!message_sent) { @@ -828,7 +883,16 @@ namespace Tango.Emulations.Emulators } } - progress += Math.Min((centimeter_per_second / 1000d), (unit_length + (i == units - 1 ? (job.ProcessParameters.DryerBufferLength * ProcessParametersTable.DRYER_METERS_PER_CYCLE + ProcessParametersTable.DRYER_TO_SPOOL_LENGTH_METERS) : 0)) - progress); + if (addedResume) + { + progress += Math.Min((centimeter_per_second / 1000d), (unit_length + (i == units - 1 ? dryerLength : 0)) - progress); + } + else + { + addedResume = true; + progress = firstUnitStartPosition; + } + //LogManager.Log($" Emulator Progress = {progress}, units = {units}"); double currentPosition = 0; double nextStopPosition = unit_length; @@ -928,7 +992,7 @@ namespace Tango.Emulations.Emulators { Status = new PMR.Printing.JobStatus() { - Progress = unit_length + job.ProcessParameters.DryerBufferLength * ProcessParametersTable.DRYER_METERS_PER_CYCLE + ProcessParametersTable.DRYER_TO_SPOOL_LENGTH_METERS, + Progress = unit_length + dryerLength, } }, request.Container.Token, new TransportResponseConfig() { Completed = !_cancelJob }); @@ -954,7 +1018,7 @@ namespace Tango.Emulations.Emulators { Status = new PMR.Printing.JobStatus() { - Progress = unit_length + job.ProcessParameters.DryerBufferLength * ProcessParametersTable.DRYER_METERS_PER_CYCLE + ProcessParametersTable.DRYER_TO_SPOOL_LENGTH_METERS, + Progress = unit_length + dryerLength, } }, _current_job_resume_token, new TransportResponseConfig() { Completed = !_cancelJob }); @@ -1261,6 +1325,8 @@ namespace Tango.Emulations.Emulators }, request.Container.Token, new TransportResponseConfig() { ErrorCode = request.Message.Password == "1234" ? ErrorCode.None : ErrorCode.UnauthorizedConnection }); + _machineType = request.Message.MachineType; + _connectionTime = DateTime.Now; _isAfterReset = false; @@ -1727,34 +1793,41 @@ namespace Tango.Emulations.Emulators private async void HandleStartPowerUpRequest(TangoMessage<StartPowerUpRequest> request) { - await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Power up started...", ProgressPercentage = 10, State = PowerUpState.BuiltInTest }, request.Container.Token); - Thread.Sleep(1000); + try + { + await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Power up started...", ProgressPercentage = 10, State = PowerUpState.BuiltInTest }, request.Container.Token); + Thread.Sleep(1000); - await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Testing dispensers...", ProgressPercentage = 20, State = PowerUpState.DispenserPressureBuildupTest }, request.Container.Token); - Thread.Sleep(1000); + await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Testing dispensers...", ProgressPercentage = 20, State = PowerUpState.DispenserPressureBuildupTest }, request.Container.Token); + Thread.Sleep(1000); - await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Heating started...", ProgressPercentage = 30, State = PowerUpState.HeatingStarted }, request.Container.Token); - Thread.Sleep(1000); + await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Heating started...", ProgressPercentage = 30, State = PowerUpState.HeatingStarted }, request.Container.Token); + Thread.Sleep(1000); - await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Heating started...", ProgressPercentage = 40, State = PowerUpState.HwConfig }, request.Container.Token); - Thread.Sleep(1000); + await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Heating started...", ProgressPercentage = 40, State = PowerUpState.HwConfig }, request.Container.Token); + Thread.Sleep(1000); - await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Hardware configuration...", ProgressPercentage = 50, State = PowerUpState.HwConfig }, request.Container.Token); - Thread.Sleep(1000); + await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Hardware configuration...", ProgressPercentage = 50, State = PowerUpState.HwConfig }, request.Container.Token); + Thread.Sleep(1000); - await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Initializing blower...", ProgressPercentage = 60, State = PowerUpState.InitialBlowerActivation }, request.Container.Token); - Thread.Sleep(1000); + await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Initializing blower...", ProgressPercentage = 60, State = PowerUpState.InitialBlowerActivation }, request.Container.Token); + Thread.Sleep(1000); - await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Thread detection...", ProgressPercentage = 70, State = PowerUpState.ThreadDetection }, request.Container.Token); - Thread.Sleep(1000); + await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Thread detection...", ProgressPercentage = 70, State = PowerUpState.ThreadDetection }, request.Container.Token); + Thread.Sleep(1000); - await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Waiting for cooler...", ProgressPercentage = 80, State = PowerUpState.WaitForCooler }, request.Container.Token); - Thread.Sleep(4000); + await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Waiting for cooler...", ProgressPercentage = 80, State = PowerUpState.WaitForCooler }, request.Container.Token); + Thread.Sleep(4000); - await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Ready to dye...", ProgressPercentage = 90, State = PowerUpState.MachineReadyToDye }, request.Container.Token, new TransportResponseConfig() + await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Ready to dye...", ProgressPercentage = 90, State = PowerUpState.MachineReadyToDye }, request.Container.Token, new TransportResponseConfig() + { + Completed = true + }); + } + catch (Exception ex) { - Completed = true - }); + LogManager.Log(ex); + } } private void HandleStartInkFillingStatusRequest(TangoMessage<StartInkFillingStatusRequest> request) @@ -1872,6 +1945,22 @@ namespace Tango.Emulations.Emulators await Transporter.SendResponse<InitiateInkFillingResponse>(new InitiateInkFillingResponse(), request.Container.Token); } + private async void HandleGetVersionDescriptorsRequest(TangoMessage<GetVersionDescriptorsRequest> request) + { + GetVersionDescriptorsResponse response = new GetVersionDescriptorsResponse(); + + foreach (var destination in Enum.GetValues(typeof(PMR.FirmwareUpgrade.VersionFileDestination)).Cast<PMR.FirmwareUpgrade.VersionFileDestination>().ToList()) + { + VersionFileDescriptor result = new VersionFileDescriptor(); + result.Destination = destination; + result.Version = "123456VP"; + + + response.Descriptors.Add(result); + } + await Transporter.SendResponse<GetVersionDescriptorsResponse>(response, request.Container.Token); + } + #endregion #region Public Methods @@ -1892,11 +1981,11 @@ namespace Tango.Emulations.Emulators await Transporter.SendResponse<StartThreadLoadingResponse>(new StartThreadLoadingResponse() { State = ThreadLoadingState.Preparing }, _threadLoadingToken); await Task.Delay(8000); - if (_rnd.Next(0, 100) > 50) - { - await Transporter.SendResponse<StartThreadLoadingResponse>(new StartThreadLoadingResponse() { State = ThreadLoadingState.PreparationError, ErrorReason = "Emulator preparation random error." }, _threadLoadingToken); - } - else + //if (_rnd.Next(0, 100) > 50) + //{ + // await Transporter.SendResponse<StartThreadLoadingResponse>(new StartThreadLoadingResponse() { State = ThreadLoadingState.PreparationError, ErrorReason = "Emulator preparation random error." }, _threadLoadingToken); + //} + //else { await Transporter.SendResponse<StartThreadLoadingResponse>(new StartThreadLoadingResponse() { State = ThreadLoadingState.ReadyForLoading }, _threadLoadingToken); } diff --git a/Software/Visual_Studio/Tango.FileSystem/FileSystemManager.cs b/Software/Visual_Studio/Tango.FileSystem/FileSystemManager.cs index dc8efa7dd..9c112ae75 100644 --- a/Software/Visual_Studio/Tango.FileSystem/FileSystemManager.cs +++ b/Software/Visual_Studio/Tango.FileSystem/FileSystemManager.cs @@ -19,7 +19,7 @@ namespace Tango.FileSystem folder.Path = "This PC"; folder.IsRoot = true; folder.Type = FileSystemItemType.Folder; - folder.Items = DriveInfo.GetDrives().Where(x => x.DriveType == DriveType.Fixed || x.DriveType == DriveType.Removable || x.DriveType == DriveType.Network).Select(x => new FileSystemItemDTO() + folder.Items = DriveInfo.GetDrives().Where(x => x.DriveType == DriveType.Fixed || x.DriveType == DriveType.Removable || x.DriveType == DriveType.Network).Where(x => x.IsReady).Select(x => new FileSystemItemDTO() { Path = x.RootDirectory.FullName, DriveType = x.DriveType, diff --git a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeScanner.cs b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeScanner.cs index da55a13d3..8ffe2b86c 100644 --- a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeScanner.cs +++ b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeScanner.cs @@ -14,6 +14,7 @@ using System.Text; using System.Threading; using System.Threading.Tasks; using Tango.BL.Entities; +using Tango.BL.Enumerations; using Tango.Core; using Tango.Core.Helpers; using Tango.Integration.ExternalBridge.Web; @@ -288,6 +289,7 @@ namespace Tango.Integration.ExternalBridge if (newMachine != null) { + newMachine.MachineType = (MachineTypes)discoveryPacket.MachineType; LogManager.Log("Found a new machine via TCP " + newMachine.SerialNumber); ThreadsHelper.InvokeUINow(() => @@ -346,6 +348,7 @@ namespace Tango.Integration.ExternalBridge if (newMachine != null) { + newMachine.MachineType = (MachineTypes)machine.MachineType; LogManager.Log("Found a new machine via SignalR " + newMachine.SerialNumber); ThreadsHelper.InvokeUINow(() => @@ -429,6 +432,7 @@ namespace Tango.Integration.ExternalBridge if (newMachine != null) { + newMachine.MachineType = (MachineTypes)info.MachineType; LogManager.Log("Found a new machine via IP Address" + newMachine.SerialNumber); ThreadsHelper.InvokeUINow(() => diff --git a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeService.cs b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeService.cs index ae7cace31..ef66275cf 100644 --- a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeService.cs +++ b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeService.cs @@ -237,10 +237,11 @@ namespace Tango.Integration.ExternalBridge { SerialNumber = Machine.SerialNumber, Guid = Machine.Guid, + MachineType = (PMR.Common.MachineType)Machine.MachineType }) { MulticastGroupAddress = _multicastAddress, - TcpValidationInfo = new TcpValidationInfo() { Guid = Machine.Guid, SerialNumber = Machine.SerialNumber } + TcpValidationInfo = new TcpValidationInfo() { Guid = Machine.Guid, SerialNumber = Machine.SerialNumber, MachineType = Machine.MachineType } }; _discoveryService.BeforeBroadcasting -= _discoverySevice_BeforeBroadcasting; @@ -642,6 +643,7 @@ namespace Tango.Integration.ExternalBridge { SerialNumber = Machine.SerialNumber, Organization = Machine.Organization.Name, + MachineType = Machine.MachineType }); _isSignalRConnected = true; diff --git a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeTcpFirmwareClient.cs b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeTcpFirmwareClient.cs new file mode 100644 index 000000000..e5ae14d0f --- /dev/null +++ b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeTcpFirmwareClient.cs @@ -0,0 +1,79 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.BL; +using Tango.BL.Entities; +using Tango.Integration.Operation; +using Tango.Settings; +using Tango.Transport.Adapters; + +namespace Tango.Integration.ExternalBridge +{ + public class ExternalBridgeTcpFirmwareClient : MachineOperator, IExternalBridgeClient + { + public bool RequiresAuthentication { get; } = false; + + private String _serialNumber; + /// <summary> + /// Gets the machine serial number. + /// </summary> + public String SerialNumber + { + get { return _serialNumber; } + set + { + _serialNumber = value; + RaisePropertyChangedAuto(); + } + } + + private String _ipAddress; + /// <summary> + /// Gets or sets the machine IP address. + /// </summary> + public String IPAddress + { + get { return _ipAddress; } + private set { _ipAddress = value; RaisePropertyChangedAuto(); } + } + + private int _port; + /// <summary> + /// Gets or sets the machine port. + /// </summary> + public int Port + { + get { return _port; } + private set { _port = value; RaisePropertyChangedAuto(); } + } + + public Machine Machine { get; private set; } + + public ExternalBridgeTcpFirmwareClient() + { + ComponentName = $"External Bridge TCP Firmware Client {_component_counter++}"; + + var settings = SettingsManager.Default.GetOrCreate<IntegrationSettings>(); + + IPAddress = settings.FirmwareIPAddress; + Port = settings.FirmwarePort; + UseKeepAlive = false; + EnableDiagnostics = true; + + Adapter = new TcpTransportAdapter(IPAddress, Port); + } + + public ExternalBridgeTcpFirmwareClient(Machine machine) : this() + { + SetMachine(machine); + } + + public void SetMachine(Machine machine) + { + Machine = machine; + SerialNumber = Machine.SerialNumber; + } + } +} diff --git a/Software/Visual_Studio/Tango.Integration/ExternalBridge/Web/MachineInfo.cs b/Software/Visual_Studio/Tango.Integration/ExternalBridge/Web/MachineInfo.cs index cccc24c35..5e70be977 100644 --- a/Software/Visual_Studio/Tango.Integration/ExternalBridge/Web/MachineInfo.cs +++ b/Software/Visual_Studio/Tango.Integration/ExternalBridge/Web/MachineInfo.cs @@ -13,6 +13,7 @@ namespace Tango.Integration.ExternalBridge.Web public String SerialNumber { get; set; } public String Organization { get; set; } public String IPAddress { get; set; } + public int MachineType { get; set; } public MachineInfo() { diff --git a/Software/Visual_Studio/Tango.Integration/IntegrationSettings.cs b/Software/Visual_Studio/Tango.Integration/IntegrationSettings.cs index 20d0b76e4..64158651f 100644 --- a/Software/Visual_Studio/Tango.Integration/IntegrationSettings.cs +++ b/Software/Visual_Studio/Tango.Integration/IntegrationSettings.cs @@ -47,6 +47,16 @@ namespace Tango.Integration public UsbSerialBaudRates EmbeddedSerialBaudRate { get; set; } /// <summary> + /// Gets or sets the firmware TCP IP address when using TCP/IP as the communication method with the embedded device. + /// </summary> + public String FirmwareIPAddress { get; set; } + + /// <summary> + /// Gets or sets the firmware TCP IP port when using TCP/IP as the communication method with the embedded device. + /// </summary> + public int FirmwarePort { get; set; } + + /// <summary> /// Initializes a new instance of the <see cref="IntegrationSettings"/> class. /// </summary> public IntegrationSettings() @@ -58,6 +68,8 @@ namespace Tango.Integration EmbeddedDeviceName = "Tango USB Serial Port"; FilterExternalBridgeUsbMachines = false; EmbeddedSerialBaudRate = UsbSerialBaudRates.BR_115200; + FirmwareIPAddress = "10.0.0.3"; + FirmwarePort = 30000; } } } diff --git a/Software/Visual_Studio/Tango.Integration/JobRuns/BasicJobRunsLogger.cs b/Software/Visual_Studio/Tango.Integration/JobRuns/BasicJobRunsLogger.cs index 68565679a..6285bb7b0 100644 --- a/Software/Visual_Studio/Tango.Integration/JobRuns/BasicJobRunsLogger.cs +++ b/Software/Visual_Studio/Tango.Integration/JobRuns/BasicJobRunsLogger.cs @@ -158,11 +158,20 @@ namespace Tango.Integration.JobRuns run.IsGradient = _job.Segments.Any(x => x.BrushStops.Count > 1); run.GradientResolutionCm = MachineOperator.GradientGenerationConfiguration.ResolutionCM; + if (_defaultMachine != null) + { + run.MachineType = _defaultMachine.MachineType; + } + else if (_job.Machine != null) + { + run.MachineType = _job.Machine.MachineType; + } + var jobFile = e.Job.ToJobFileWhenLoaded(); - try - { - if (_job.Designation == JobDesignations.FineTuning) + try + { + if (_job.Designation == JobDesignations.FineTuning) { jobFile.Segments.First().BrushStops.First().ColorSpaceGuid = colorSpaces.First(x => x.Code == (int)ColorSpaces.LAB).Guid; } diff --git a/Software/Visual_Studio/Tango.Integration/Operation/AdditionalJobConfiguration.cs b/Software/Visual_Studio/Tango.Integration/Operation/AdditionalJobConfiguration.cs index dc0ecf19e..43beba7f0 100644 --- a/Software/Visual_Studio/Tango.Integration/Operation/AdditionalJobConfiguration.cs +++ b/Software/Visual_Studio/Tango.Integration/Operation/AdditionalJobConfiguration.cs @@ -8,10 +8,18 @@ namespace Tango.Integration.Operation { public class AdditionalJobConfiguration { + public class ResumeConfiguration + { + public int RemainingUnits { get; set; } + public double GlobalStartPosition { get; set; } + public double FirstUnitStartPosition { get; set; } + } + public double LubricationVolume { get; set; } public bool UseLubricantVolume { get; set; } public bool UseColorConversion { get; set; } public bool UseLightInks { get; set; } + public ResumeConfiguration ResumeConfig { get; set; } public AdditionalJobConfiguration() { diff --git a/Software/Visual_Studio/Tango.Integration/Operation/IMachineOperator.cs b/Software/Visual_Studio/Tango.Integration/Operation/IMachineOperator.cs index ca00f2891..68ed696fa 100644 --- a/Software/Visual_Studio/Tango.Integration/Operation/IMachineOperator.cs +++ b/Software/Visual_Studio/Tango.Integration/Operation/IMachineOperator.cs @@ -26,6 +26,7 @@ using Tango.PMR.MachineStatus; using Tango.PMR.ThreadLoading; using Tango.PMR.Power; using Tango.PMR.IFS; +using Tango.BL.Enumerations; namespace Tango.Integration.Operation { @@ -61,6 +62,11 @@ namespace Tango.Integration.Operation MachineStatuses Status { get; } /// <summary> + /// Gets or sets the type of the machine. + /// </summary> + MachineTypes MachineType { get; set; } + + /// <summary> /// Gets a value indicating whether the machine is connected and status is not disconnected. /// </summary> bool IsConnected { get; } @@ -587,5 +593,18 @@ namespace Tango.Integration.Operation /// </summary> /// <param name="approved">Approve or decline the sequence.</param> Task CompleteWasteReplacement(bool approved); + + /// <summary> + /// Gets the list of firmware version descriptors. + /// </summary> + /// <returns></returns> + Task<List<VersionFileDescriptor>> GetFirmwareVersionDescriptors(); + + /// <summary> + /// Resets the firmware card by the specified card id. + /// </summary> + /// <param name="cardID">The card identifier.</param> + /// <returns></returns> + Task ResetCard(int cardID); } } diff --git a/Software/Visual_Studio/Tango.Integration/Operation/JobHandler.cs b/Software/Visual_Studio/Tango.Integration/Operation/JobHandler.cs index a8208323a..5d62f4269 100644 --- a/Software/Visual_Studio/Tango.Integration/Operation/JobHandler.cs +++ b/Software/Visual_Studio/Tango.Integration/Operation/JobHandler.cs @@ -5,9 +5,11 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using Tango.BL.Entities; +using Tango.BL.Enumerations; using Tango.Core; using Tango.Logging; using Tango.PMR.Printing; +using static Tango.Integration.Operation.AdditionalJobConfiguration; namespace Tango.Integration.Operation { @@ -138,6 +140,8 @@ namespace Tango.Integration.Operation /// </summary> public JobTicket JobTicket { get; private set; } + public ResumeConfiguration ResumeConfig { get; private set; } + #endregion #region Constructors @@ -154,13 +158,14 @@ namespace Tango.Integration.Operation /// Initializes a new instance of the <see cref="JobHandler"/> class. /// </summary> /// <param name="cancelAction">The cancel action.</param> - public JobHandler(Action cancelAction, Job job, JobTicket jobTicket, ProcessParametersTable processParameters, JobHandlerModes mode) : this() + public JobHandler(Action cancelAction, Job job, JobTicket jobTicket, ProcessParametersTable processParameters, JobHandlerModes mode, ResumeConfiguration resumeConfig = null) : this() { _mode = mode; ProcessParameters = processParameters; Job = job; JobTicket = jobTicket; + ResumeConfig = resumeConfig; foreach (var s in Job.Segments) { @@ -175,6 +180,7 @@ namespace Tango.Integration.Operation Status = new RunningJobStatus(); + Status.TotalTime = job.GetEstimatedDuration(processParameters); Status.RemainingUnits = job.NumberOfUnits; Status.TotalProgress = Job.LengthIncludingNumberOfUnits + processParameters.DryerBufferLengthMeters; @@ -185,6 +191,11 @@ namespace Tango.Integration.Operation Status.RemainingProgress = Status.TotalProgress; Status.CurrentUnitSegments = _effectiveSegments.ToList(); Status.SettingUpTotalProgress = processParameters.DryerBufferLengthMeters; + if (resumeConfig != null && resumeConfig.GlobalStartPosition > 0) + { + Status.SettingUpTotalProgress = resumeConfig.GlobalStartPosition; + Status.CurrentUnitProgress = ResumeConfig.FirstUnitStartPosition; + } Status.TotalProgressMinusSettingUp = Job.LengthIncludingNumberOfUnits; Status.IsSettingUp = true; @@ -330,7 +341,7 @@ namespace Tango.Integration.Operation protected virtual void InvalidateJobProgress(JobStatus s) { JobStatus = s; - + if (_last_progress != s.Progress) { if (s.Progress <= PROGRESS_REPORT_RANGE_METERS || s.Progress >= Status.TotalProgress - PROGRESS_REPORT_RANGE_METERS) @@ -381,7 +392,16 @@ namespace Tango.Integration.Operation Status.IsSettingUp = false; } - Status.ProgressMinusSettingUp = s.Progress - this.Status.SettingUpTotalProgress; + if (ResumeConfig != null && ResumeConfig.GlobalStartPosition > 0) + { + Status.ProgressMinusSettingUp = s.Progress - ProcessParameters.DryerBufferLengthMeters; + //LogManager.Log($" Status.ProgressMinusSettingUp {Status.ProgressMinusSettingUp} progress = {s.Progress}"); + + } + else + { + Status.ProgressMinusSettingUp = s.Progress - this.Status.SettingUpTotalProgress; + } } int units = (int)Math.Max(Job.NumberOfUnits, 1); @@ -409,6 +429,15 @@ namespace Tango.Integration.Operation break; } } + else if(ResumeConfig != null && ResumeConfig.GlobalStartPosition > 0) + { + if (!Status.IsSettingUp && s.Progress <= previousUnitsLengthWithoutThis + unitLength + ProcessParameters.DryerBufferLengthMeters) + { + currentUnitProgress = s.Progress - previousUnitsLengthWithoutThis - ProcessParameters.DryerBufferLengthMeters; + //LogManager.Log($"currentUnitProgress before ={currentUnitProgress} progress = {s.Progress}"); + break; + } + } else if (s.Progress <= previousUnitsLengthWithoutThis + unitLength + Status.SettingUpProgress) { if (!Status.IsSettingUp) @@ -423,6 +452,7 @@ namespace Tango.Integration.Operation Status.CurrentUnit = currentUnit; Status.CurrentUnitProgress = currentUnitProgress; + //LogManager.Log($"CurrentUnit {Status.CurrentUnit} currentUnitProgress {Status.CurrentUnitProgress} "); Status.RemainingUnits = this.Job.NumberOfUnits - this.Status.CurrentUnit; @@ -438,14 +468,10 @@ namespace Tango.Integration.Operation Status.CurrentUnitTotalProgress = Status.RemainingUnits > 1 && Job.EnableInterSegment ? Job.Length + (Job.InterSegmentLength) : Job.Length; - if (s.Message != _lastStatusMessage && s.Message != String.Empty) + if (s.Message != _lastStatusMessage ) { Status.Message = s.Message; } - else - { - Status.Message = null; - } _lastStatusMessage = s.Message; @@ -518,7 +544,8 @@ namespace Tango.Integration.Operation TimeSpan segmentsDuration = Job.TranslateProgressToTime(previousSegmentsLengthWithThis, ProcessParameters); TimeSpan segmentRemainingTime = segmentsDuration - Job.TranslateProgressToTime(Status.Progress, ProcessParameters); - segment.Progress = Math.Min(Math.Max((previousSegmentsLengthWithThis - segment.Length - Status.Progress) * -1, 0), segment.Length); + // segment.Progress = Math.Min(Math.Max((previousSegmentsLengthWithThis - segment.Length - Status.Progress) * -1, 0), segment.Length); + segment.Progress = Math.Min(Math.Max((previousSegmentsLengthWithThis - segment.Length - Status.ProgressMinusSettingUp) * -1, 0), segment.Length); if (i == 0 && Status.Progress > 0) { @@ -529,7 +556,8 @@ namespace Tango.Integration.Operation } } - if (Status.Progress >= previousSegmentsLengthWithThis) + //if (Status.Progress >= previousSegmentsLengthWithThis) + if (Status.ProgressMinusSettingUp >= previousSegmentsLengthWithThis) { if (!segment.Completed) { diff --git a/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs b/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs index 005121b88..07d2c9881 100644 --- a/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs +++ b/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs @@ -59,6 +59,7 @@ namespace Tango.Integration.Operation public const String FIRMWARE_UPGRADE_FOLDER_NAME = "UpgradePackage"; public const String FIRMWARE_UPGRADE_CONFIG_FILE_NAME = "package.cfg"; public const String JOB_DESCRIPTION_FILE_NAME = "job_segments.jdf"; + public const String EUREKA_FIRMWARE_UPGRADE_DRIVE_LABEL = "NOD_H743ZI2"; public const int MAX_DISPENSER_NANOLITER = 130000000; public const double MAX_MIDTANK_LITERS = 1.8; @@ -664,6 +665,11 @@ namespace Tango.Integration.Operation /// </summary> public bool IsSpoolReplaced { get; private set; } + /// <summary> + /// Gets or sets the type of the machine. + /// </summary> + public MachineTypes MachineType { get; set; } + #endregion #region Virtual Methods @@ -1499,7 +1505,8 @@ namespace Tango.Integration.Operation { Password = "1234", UnixTime = DateTimeOffset.UtcNow.ToUnixTimeSeconds(), - SpoolType = _currentSpoolType + SpoolType = _currentSpoolType, + MachineType = (PMR.Common.MachineType)MachineType, }; try @@ -2589,6 +2596,8 @@ namespace Tango.Integration.Operation /// <returns></returns> public Task<JobHandler> Print(Job job, ProcessParametersTable processParameters, AdditionalJobConfiguration config = null) { + //processParameters.DryerBufferLength = 10; //TODO: REMOVE !!! + return Task.Factory.StartNew(() => { if (config == null) config = new AdditionalJobConfiguration(); @@ -2640,7 +2649,7 @@ namespace Tango.Integration.Operation bool useLightInks = config.UseLightInks; //Use light inks only if one segment or inter segment is enabled. - if (job.OrderedSegmentsWithGroups.Count > 1 && !job.EnableInterSegment) useLightInks = false; + if (MachineType == MachineTypes.TS1800 && job.OrderedSegmentsWithGroups.Count > 1 && !job.EnableInterSegment) useLightInks = false; foreach (var segment in jobSegments) { @@ -2723,7 +2732,7 @@ namespace Tango.Integration.Operation List<RequiredLiquid> requiredLiquids = null; //Validate liquid quantities - if (EnableJobLiquidQuantityValidation) + if (EnableJobLiquidQuantityValidation && MachineType == MachineTypes.TS1800) { if (!originalJob.Rml.UseColorLibGradients) //Validate liquid quantities when ColorLib generate gradient is disabled { @@ -2878,12 +2887,12 @@ namespace Tango.Integration.Operation await fileUploadHandler.Cancel(); fileUploadHandler = null; LogManager.Log("Job upload canceled."); - OnPrintingAborted(handler, jobForJobRun); - handler.RaiseCanceled(); if (Status != MachineStatuses.Disconnected) { UpdateStatus(MachineStatuses.ReadyToDye); } + OnPrintingAborted(handler, jobForJobRun); + handler.RaiseCanceled(); } else { @@ -2893,12 +2902,14 @@ namespace Tango.Integration.Operation } SaveLastJobLiquidQuantities(clonedJob, originalJob.Machine.Configuration, processParameters, handler); - OnPrintingAborted(handler, jobForJobRun); - handler.RaiseCanceled(); + if (Status != MachineStatuses.Disconnected) { UpdateStatus(MachineStatuses.ReadyToDye); } + + OnPrintingAborted(handler, jobForJobRun); + handler.RaiseCanceled(); } } } @@ -2907,7 +2918,7 @@ namespace Tango.Integration.Operation handler.CanCancel = true; LogManager.Log(ex, "Failed to cancel job."); } - }, clonedJob, ticket, processParameters, JobHandlingMode); + }, clonedJob, ticket, processParameters, JobHandlingMode, config.ResumeConfig); handler.StatusChanged += (x, s) => { @@ -3239,10 +3250,23 @@ namespace Tango.Integration.Operation return; } + double resumePreProgress = 0; + + if (config.ResumeConfig != null) + { + resumePreProgress = config.ResumeConfig.GlobalStartPosition - processParameters.DryerBufferLengthMeters; + request.FirstUnitStartPosition = config.ResumeConfig.FirstUnitStartPosition; + //LogManager.Log($" resumePreProgress = {resumePreProgress}, GlobalStartPosition {config.ResumeConfig.GlobalStartPosition} FirstUnitStartPosition {request.FirstUnitStartPosition}"); + request.JobTicket.Length = (request.JobTicket.Length / Math.Max(request.JobTicket.NumberOfUnits, 1)) * (int)Math.Max(config.ResumeConfig.RemainingUnits, 1); + request.JobTicket.NumberOfUnits = (uint)Math.Max(config.ResumeConfig.RemainingUnits, 1); + } + SendContinuousRequest<JobRequest, JobResponse>(request, new TransportContinuousRequestConfig() { Timeout = TimeSpan.FromSeconds(10), ContinuousTimeout = TimeSpan.FromSeconds(10), ShouldLog = true }).Subscribe((response) => { if (!completed) { + response.Message.Status.Progress += resumePreProgress; + handler.RaiseStatusReceived(response.Message.Status); _last_job_status = handler.Status; @@ -3311,8 +3335,8 @@ namespace Tango.Integration.Operation finalException = new ContinuousResponseAbortedException($"Job aborted by the embedded device ({continuousException.Container.ErrorMessage})."); } - OnPrintingFailed(handler, jobForJobRun, finalException); handler.RaiseFailed(finalException); + OnPrintingFailed(handler, jobForJobRun, finalException); } } }, () => @@ -3325,8 +3349,8 @@ namespace Tango.Integration.Operation UpdateStatus(MachineStatuses.ReadyToDye); SaveLastJobLiquidQuantities(clonedJob, originalJob.Machine.Configuration, processParameters, handler); - OnPrintingCompleted(handler, jobForJobRun); handler.RaiseCompleted(); + OnPrintingCompleted(handler, jobForJobRun); } }); }); @@ -3932,6 +3956,7 @@ namespace Tango.Integration.Operation Action validate = null; Action activate = null; Action postActivation = null; + Action upgradeEureka = null; UpdateStatus(MachineStatuses.Upgrading); @@ -4056,6 +4081,119 @@ namespace Tango.Integration.Operation } }); + upgradeEureka = new Action(() => + { + try + { + if (FirmwareUpgradeMode.HasFlag(FirmwareUpgradeModes.DFU)) + { + if (package_info.ContainsMcu()) + { + LogManager.Log("Firmware upgrade enabled. Starting upgrade via file system..."); + + var upgradeDrive = DriveInfo.GetDrives().SingleOrDefault(x => x.VolumeLabel == EUREKA_FIRMWARE_UPGRADE_DRIVE_LABEL); + if (upgradeDrive == null) + { + throw LogManager.Log(new IOException($"Could not locate firmware upgrade volume labeled '{EUREKA_FIRMWARE_UPGRADE_DRIVE_LABEL}'")); + } + + String upgradeFolder = upgradeDrive.RootDirectory.FullName; + + LogManager.Log("Extracting MCU file..."); + ZipEntry mcuEntry = null; + try + { + mcuEntry = entries.Single(x => x.FileName == package_info.FileDescriptors.Single(y => y.Destination == VersionFileDestination.Mcu).FileName); + entries.Remove(mcuEntry); + } + catch (Exception ex) + { + LogManager.Log(ex, "Error extracting MCU file from package."); + upgradeHandler.RaiseFailed(new IOException("Error retrieving MCU file from package.", ex)); + return; + } + + LogManager.Log("Disconnecting adapter..."); + Adapter.Disconnect().Wait(); + + ResetEvents(); + ResetInkFllingStatus(); + + try + { + if (!isEmulated) + { + LogManager.Log("Upgrading..."); + mcuEntry.Extract(upgradeFolder, ExtractExistingFileAction.OverwriteSilently); + } + else + { + LogManager.Log("Upgrading (emulated)..."); + Thread.Sleep(3000); + } + } + catch (Exception ex) + { + LogManager.Log(ex, "Firmware upgrade failed while extracting the MCU file to the upgrade location."); + UpdateStatus(MachineStatuses.Disconnected); + upgradeHandler.RaiseFailed(ex); + OnFailed(ex); + return; + } + + LogManager.Log("Waiting for the device..."); + upgradeHandler.RaiseProgress(FirmwareUpgradeStatus.Upgrading, "Waiting for the device..."); + Thread.Sleep(5000); + + LogManager.Log("Reconnecting adapter..."); + upgradeHandler.RaiseProgress(FirmwareUpgradeStatus.Upgrading, "Connecting..."); + Adapter.Connect().Wait(); + + Connect().Wait(); + + LogManager.Log("Connected..."); + upgradeHandler.RaiseProgress(FirmwareUpgradeStatus.Upgrading, "Connected."); + Thread.Sleep(2000); + + LogManager.Log("Waiting..."); + upgradeHandler.RaiseProgress(FirmwareUpgradeStatus.Upgrading, "Waiting..."); + Thread.Sleep(2000); + + UpdateStatus(MachineStatuses.Upgrading); + } + else + { + LogManager.Log("DFU is enabled but no MCU file was found on the package. Skipping..."); + } + } + + //Upload tfp package only if specified in flag && package info contains more files other than the mcu bin file. + if (FirmwareUpgradeMode.HasFlag(FirmwareUpgradeModes.TFP_PACKAGE)) + { + if (package_info.ContainsNoneMcu()) + { + LogManager.Log("TFP package is enabled. Starting upload..."); + uploadNext(); + } + else + { + LogManager.Log("TFP package is enabled but no other files other than the MCU file were found on the package. Skipping..."); + postActivation(); + } + } + else + { + postActivation(); + } + } + catch (Exception ex) + { + UpdateStatus(MachineStatuses.ReadyToDye); + upgradeHandler.RaiseFailed(ex); + return; + } + }); + uploadNext = new Action(() => { if (entries.Count > 0) @@ -4175,7 +4313,14 @@ namespace Tango.Integration.Operation ThreadFactory.StartNew(() => { - upgradeDFU(); + if (MachineType == MachineTypes.TS1800) + { + upgradeDFU(); + } + else + { + upgradeEureka(); + } }); return upgradeHandler; @@ -4507,6 +4652,26 @@ namespace Tango.Integration.Operation } } + /// <summary> + /// Gets the list of firmware version descriptors. + /// </summary> + /// <returns></returns> + public async Task<List<VersionFileDescriptor>> GetFirmwareVersionDescriptors() + { + var response = await SendRequest<GetVersionDescriptorsRequest, GetVersionDescriptorsResponse>(new GetVersionDescriptorsRequest()); + return response.Message.Descriptors.ToList(); + } + + /// <summary> + /// Resets the firmware card by the specified card id. + /// </summary> + /// <param name="cardID">The card identifier.</param> + /// <returns></returns> + public Task ResetCard(int cardID) + { + return SendRequest<ResetCardRequest, ResetCardResponse>(new ResetCardRequest() { }, new TransportRequestConfig() { Timeout = TimeSpan.FromSeconds(3) }); + } + #endregion } } diff --git a/Software/Visual_Studio/Tango.Integration/Tango.Integration.csproj b/Software/Visual_Studio/Tango.Integration/Tango.Integration.csproj index 79baefff0..dfddc1b81 100644 --- a/Software/Visual_Studio/Tango.Integration/Tango.Integration.csproj +++ b/Software/Visual_Studio/Tango.Integration/Tango.Integration.csproj @@ -103,6 +103,7 @@ <Compile Include="ExternalBridge\ExternalBridgeReceiverLoginRequestEventArgs.cs" /> <Compile Include="ExternalBridge\ExternalBridgeReceiverRequestReceivedEventArgs.cs" /> <Compile Include="ExternalBridge\ExternalBridgeRequestHandlerMethodAttribute.cs" /> + <Compile Include="ExternalBridge\ExternalBridgeTcpFirmwareClient.cs" /> <Compile Include="ExternalBridge\IExternalBridgeRequestHandler.cs" /> <Compile Include="ExternalBridge\ExternalBridgeSignalRConfiguration.cs" /> <Compile Include="ExternalBridge\ExternalBridgeSignalRClient.cs" /> diff --git a/Software/Visual_Studio/Tango.PMR/Common/MachineType.cs b/Software/Visual_Studio/Tango.PMR/Common/MachineType.cs new file mode 100644 index 000000000..4ef97d168 --- /dev/null +++ b/Software/Visual_Studio/Tango.PMR/Common/MachineType.cs @@ -0,0 +1,45 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: MachineType.proto +#pragma warning disable 1591, 0612, 3021 +#region Designer generated code + +using pb = global::Google.Protobuf; +using pbc = global::Google.Protobuf.Collections; +using pbr = global::Google.Protobuf.Reflection; +using scg = global::System.Collections.Generic; +namespace Tango.PMR.Common { + + /// <summary>Holder for reflection information generated from MachineType.proto</summary> + public static partial class MachineTypeReflection { + + #region Descriptor + /// <summary>File descriptor for MachineType.proto</summary> + public static pbr::FileDescriptor Descriptor { + get { return descriptor; } + } + private static pbr::FileDescriptor descriptor; + + static MachineTypeReflection() { + byte[] descriptorData = global::System.Convert.FromBase64String( + string.Concat( + "ChFNYWNoaW5lVHlwZS5wcm90bxIQVGFuZ28uUE1SLkNvbW1vbiolCgtNYWNo", + "aW5lVHlwZRIKCgZUUzE4MDAQABIKCgZFdXJla2EQAUIcChpjb20udHdpbmUu", + "dGFuZ28ucG1yLmNvbW1vbmIGcHJvdG8z")); + descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, + new pbr::FileDescriptor[] { }, + new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Tango.PMR.Common.MachineType), }, null)); + } + #endregion + + } + #region Enums + public enum MachineType { + [pbr::OriginalName("TS1800")] Ts1800 = 0, + [pbr::OriginalName("Eureka")] Eureka = 1, + } + + #endregion + +} + +#endregion Designer generated code diff --git a/Software/Visual_Studio/Tango.PMR/Common/MessageType.cs b/Software/Visual_Studio/Tango.PMR/Common/MessageType.cs index 8dba8cee4..d106ab382 100644 --- a/Software/Visual_Studio/Tango.PMR/Common/MessageType.cs +++ b/Software/Visual_Studio/Tango.PMR/Common/MessageType.cs @@ -22,7 +22,7 @@ namespace Tango.PMR.Common { static MessageTypeReflection() { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( - "ChFNZXNzYWdlVHlwZS5wcm90bxIQVGFuZ28uUE1SLkNvbW1vbirxQQoLTWVz", + "ChFNZXNzYWdlVHlwZS5wcm90bxIQVGFuZ28uUE1SLkNvbW1vbirnQgoLTWVz", "c2FnZVR5cGUSCAoETm9uZRAAEhEKDUVycm9yUmVzcG9uc2UQARIUChBDYWxj", "dWxhdGVSZXF1ZXN0EAMSFQoRQ2FsY3VsYXRlUmVzcG9uc2UQBBITCg9Qcm9n", "cmVzc1JlcXVlc3QQBRIUChBQcm9ncmVzc1Jlc3BvbnNlEAYSHAoYU3R1YkNh", @@ -141,77 +141,79 @@ namespace Tango.PMR.Common { "dBD2DxIaChVTZXRWYWx2ZVN0YXRlUmVzcG9uc2UQ9w8SHwoaQ2FydHJpZGdl", "VmFsaWRhdGlvblJlcXVlc3QQ/A8SIAobQ2FydHJpZGdlVmFsaWRhdGlvblJl", "c3BvbnNlEP0PEhYKEUJpdFJlc3VsdHNSZXF1ZXN0EP4PEhcKEkJpdFJlc3Vs", - "dHNSZXNwb25zZRD/DxIPCgpKb2JSZXF1ZXN0ELgXEhAKC0pvYlJlc3BvbnNl", - "ELkXEhQKD0Fib3J0Sm9iUmVxdWVzdBC6FxIVChBBYm9ydEpvYlJlc3BvbnNl", - "ELsXEiMKHlVwbG9hZFByb2Nlc3NQYXJhbWV0ZXJzUmVxdWVzdBC8FxIkCh9V", - "cGxvYWRQcm9jZXNzUGFyYW1ldGVyc1Jlc3BvbnNlEL0XEhYKEUN1cnJlbnRK", - "b2JSZXF1ZXN0EL4XEhcKEkN1cnJlbnRKb2JSZXNwb25zZRC/FxIcChdSZXN1", - "bWVDdXJyZW50Sm9iUmVxdWVzdBDAFxIdChhSZXN1bWVDdXJyZW50Sm9iUmVz", - "cG9uc2UQwRcSHQoYU3RhcnRIZWFkQ2xlYW5pbmdSZXF1ZXN0EMIXEh4KGVN0", - "YXJ0SGVhZENsZWFuaW5nUmVzcG9uc2UQwxcSHQoYQWJvcnRIZWFkQ2xlYW5p", - "bmdSZXF1ZXN0EMQXEh4KGUFib3J0SGVhZENsZWFuaW5nUmVzcG9uc2UQxRcS", - "FgoRSm9iUHJlcGFyZVJlcXVlc3QQxhcSFwoSSm9iUHJlcGFyZVJlc3BvbnNl", - "EMcXEhkKFFN0YXJ0RGVidWdMb2dSZXF1ZXN0EKAfEhoKFVN0YXJ0RGVidWdM", - "b2dSZXNwb25zZRChHxIYChNTdG9wRGVidWdMb2dSZXF1ZXN0EKIfEhkKFFN0", - "b3BEZWJ1Z0xvZ1Jlc3BvbnNlEKMfEh8KGlNldERlYnVnTG9nQ2F0ZWdvcnlS", - "ZXF1ZXN0EKQfEiAKG1NldERlYnVnTG9nQ2F0ZWdvcnlSZXNwb25zZRClHxIh", - "ChxTZXR1cERlYnVnRGlzcmlidXRvcnNSZXF1ZXN0EKYfEiIKHVNldHVwRGVi", - "dWdEaXNyaWJ1dG9yc1Jlc3BvbnNlEKcfEicKIlVwbG9hZEhhcmR3YXJlQ29u", - "ZmlndXJhdGlvblJlcXVlc3QQiCcSKAojVXBsb2FkSGFyZHdhcmVDb25maWd1", - "cmF0aW9uUmVzcG9uc2UQiScSFwoSU3lzdGVtUmVzZXRSZXF1ZXN0EIonEhgK", - "E1N5c3RlbVJlc2V0UmVzcG9uc2UQiycSFQoQS2VlcEFsaXZlUmVxdWVzdBDw", - "LhIWChFLZWVwQWxpdmVSZXNwb25zZRDxLhITCg5Db25uZWN0UmVxdWVzdBDy", - "LhIUCg9Db25uZWN0UmVzcG9uc2UQ8y4SFgoRRGlzY29ubmVjdFJlcXVlc3QQ", - "9C4SFwoSRGlzY29ubmVjdFJlc3BvbnNlEPUuEhYKEUZpbGVVcGxvYWRSZXF1", - "ZXN0ENg2EhcKEkZpbGVVcGxvYWRSZXNwb25zZRDZNhIbChZGaWxlQ2h1bmtV", - "cGxvYWRSZXF1ZXN0ENo2EhwKF0ZpbGVDaHVua1VwbG9hZFJlc3BvbnNlENs2", - "EhoKFUV4ZWN1dGVQcm9jZXNzUmVxdWVzdBDcNhIbChZFeGVjdXRlUHJvY2Vz", - "c1Jlc3BvbnNlEN02EhcKEktpbGxQcm9jZXNzUmVxdWVzdBDeNhIYChNLaWxs", - "UHJvY2Vzc1Jlc3BvbnNlEN82EhIKDUNyZWF0ZVJlcXVlc3QQ4DYSEwoOQ3Jl", - "YXRlUmVzcG9uc2UQ4TYSEgoNRGVsZXRlUmVxdWVzdBDiNhITCg5EZWxldGVS", - "ZXNwb25zZRDjNhIaChVHZXRTdG9yYWdlSW5mb1JlcXVlc3QQ5DYSGwoWR2V0", - "U3RvcmFnZUluZm9SZXNwb25zZRDlNhIUCg9HZXRGaWxlc1JlcXVlc3QQ5jYS", - "FQoQR2V0RmlsZXNSZXNwb25zZRDnNhIYChNGaWxlRG93bmxvYWRSZXF1ZXN0", - "EOg2EhkKFEZpbGVEb3dubG9hZFJlc3BvbnNlEOk2Eh0KGEZpbGVDaHVua0Rv", - "d25sb2FkUmVxdWVzdBDqNhIeChlGaWxlQ2h1bmtEb3dubG9hZFJlc3BvbnNl", - "EOs2EhsKFlZhbGlkYXRlVmVyc2lvblJlcXVlc3QQ7DYSHAoXVmFsaWRhdGVW", - "ZXJzaW9uUmVzcG9uc2UQ7TYSGwoWQWN0aXZhdGVWZXJzaW9uUmVxdWVzdBDu", - "NhIcChdBY3RpdmF0ZVZlcnNpb25SZXNwb25zZRDvNhIZChREaXNwZW5zZXJE", - "YXRhUmVxdWVzdBDAPhIaChVEaXNwZW5zZXJEYXRhUmVzcG9uc2UQwT4SHAoX", - "TWlkVGFua0RhdGFTZXR1cFJlcXVlc3QQwj4SHQoYTWlkVGFua0RhdGFTZXR1", - "cFJlc3BvbnNlEMM+EiIKHU1hY2hpbmVDYWxpYnJhdGlvbkRhdGFSZXF1ZXN0", - "EMQ+EiMKHk1hY2hpbmVDYWxpYnJhdGlvbkRhdGFSZXNwb25zZRDFPhIeChlN", - "YWluQ2FyZFN0b3JlZERhdGFSZXF1ZXN0EMY+Eh8KGk1haW5DYXJkU3RvcmVk", - "RGF0YVJlc3BvbnNlEMc+EiQKH1N0YXJ0TWFjaGluZVN0YXR1c1VwZGF0ZVJl", - "cXVlc3QQqEYSJQogU3RhcnRNYWNoaW5lU3RhdHVzVXBkYXRlUmVzcG9uc2UQ", - "qUYSIwoeU3RvcE1hY2hpbmVTdGF0dXNVcGRhdGVSZXF1ZXN0EKpGEiQKH1N0", - "b3BNYWNoaW5lU3RhdHVzVXBkYXRlUmVzcG9uc2UQq0YSIQocU2V0SW5rQXV0", - "b0ZpbGxpbmdNb2RlUmVxdWVzdBCsRhIiCh1TZXRJbmtBdXRvRmlsbGluZ01v", - "ZGVSZXNwb25zZRCtRhIcChdTcG9vbFR5cGVDaGFuZ2VkUmVxdWVzdBCuRhId", - "ChhTcG9vbFR5cGVDaGFuZ2VkUmVzcG9uc2UQr0YSGgoVU3RhcnRQb3dlckRv", - "d25SZXF1ZXN0EJBOEhsKFlN0YXJ0UG93ZXJEb3duUmVzcG9uc2UQkU4SGgoV", - "QWJvcnRQb3dlckRvd25SZXF1ZXN0EJJOEhsKFkFib3J0UG93ZXJEb3duUmVz", - "cG9uc2UQk04SGAoTU3RhcnRQb3dlclVwUmVxdWVzdBCUThIZChRTdGFydFBv", - "d2VyVXBSZXNwb25zZRCVThIYChNBYm9ydFBvd2VyVXBSZXF1ZXN0EJZOEhkK", - "FEFib3J0UG93ZXJVcFJlc3BvbnNlEJdOEhMKDlN0YW5kQnlSZXF1ZXN0EJhO", - "EhQKD1N0YW5kQnlSZXNwb25zZRCZThIeChlTdGFydFRocmVhZExvYWRpbmdS", - "ZXF1ZXN0EPhVEh8KGlN0YXJ0VGhyZWFkTG9hZGluZ1Jlc3BvbnNlEPlVEiEK", - "HENvbnRpbnVlVGhyZWFkTG9hZGluZ1JlcXVlc3QQ+lUSIgodQ29udGludWVU", - "aHJlYWRMb2FkaW5nUmVzcG9uc2UQ+1USHQoYU3RvcFRocmVhZExvYWRpbmdS", - "ZXF1ZXN0EPxVEh4KGVN0b3BUaHJlYWRMb2FkaW5nUmVzcG9uc2UQ/VUSHAoX", - "VHJ5VGhyZWFkTG9hZGluZ1JlcXVlc3QQ/lUSHQoYVHJ5VGhyZWFkTG9hZGlu", - "Z1Jlc3BvbnNlEP9VEiAKG0F0dGVtcHRUaHJlYWRKb2dnaW5nUmVxdWVzdBCA", - "VhIhChxBdHRlbXB0VGhyZWFkSm9nZ2luZ1Jlc3BvbnNlEIFWEiEKHFN0YXJ0", - "SW5rRmlsbGluZ1N0YXR1c1JlcXVlc3QQ4F0SIgodU3RhcnRJbmtGaWxsaW5n", - "U3RhdHVzUmVzcG9uc2UQ4V0SHgoZSW5pdGlhdGVJbmtGaWxsaW5nUmVxdWVz", - "dBDiXRIfChpJbml0aWF0ZUlua0ZpbGxpbmdSZXNwb25zZRDjXRIYChNXYXN0", - "ZVJlcGxhY2VSZXF1ZXN0EORdEhkKFFdhc3RlUmVwbGFjZVJlc3BvbnNlEOVd", - "EhwKF1B1dERhdGFTdG9yZUl0ZW1SZXF1ZXN0EMhlEh0KGFB1dERhdGFTdG9y", - "ZUl0ZW1SZXNwb25zZRDJZRIcChdHZXREYXRhU3RvcmVJdGVtUmVxdWVzdBDK", - "ZRIdChhHZXREYXRhU3RvcmVJdGVtUmVzcG9uc2UQy2USIQocRGF0YVN0b3Jl", - "SXRlbU1vZGlmaWVkUmVxdWVzdBDMZRIiCh1EYXRhU3RvcmVJdGVtTW9kaWZp", - "ZWRSZXNwb25zZRDNZUIcChpjb20udHdpbmUudGFuZ28ucG1yLmNvbW1vbmIG", - "cHJvdG8z")); + "dHNSZXNwb25zZRD/DxIVChBSZXNldENhcmRSZXF1ZXN0EIAQEhYKEVJlc2V0", + "Q2FyZFJlc3BvbnNlEIEQEg8KCkpvYlJlcXVlc3QQuBcSEAoLSm9iUmVzcG9u", + "c2UQuRcSFAoPQWJvcnRKb2JSZXF1ZXN0ELoXEhUKEEFib3J0Sm9iUmVzcG9u", + "c2UQuxcSIwoeVXBsb2FkUHJvY2Vzc1BhcmFtZXRlcnNSZXF1ZXN0ELwXEiQK", + "H1VwbG9hZFByb2Nlc3NQYXJhbWV0ZXJzUmVzcG9uc2UQvRcSFgoRQ3VycmVu", + "dEpvYlJlcXVlc3QQvhcSFwoSQ3VycmVudEpvYlJlc3BvbnNlEL8XEhwKF1Jl", + "c3VtZUN1cnJlbnRKb2JSZXF1ZXN0EMAXEh0KGFJlc3VtZUN1cnJlbnRKb2JS", + "ZXNwb25zZRDBFxIdChhTdGFydEhlYWRDbGVhbmluZ1JlcXVlc3QQwhcSHgoZ", + "U3RhcnRIZWFkQ2xlYW5pbmdSZXNwb25zZRDDFxIdChhBYm9ydEhlYWRDbGVh", + "bmluZ1JlcXVlc3QQxBcSHgoZQWJvcnRIZWFkQ2xlYW5pbmdSZXNwb25zZRDF", + "FxIWChFKb2JQcmVwYXJlUmVxdWVzdBDGFxIXChJKb2JQcmVwYXJlUmVzcG9u", + "c2UQxxcSGQoUU3RhcnREZWJ1Z0xvZ1JlcXVlc3QQoB8SGgoVU3RhcnREZWJ1", + "Z0xvZ1Jlc3BvbnNlEKEfEhgKE1N0b3BEZWJ1Z0xvZ1JlcXVlc3QQoh8SGQoU", + "U3RvcERlYnVnTG9nUmVzcG9uc2UQox8SHwoaU2V0RGVidWdMb2dDYXRlZ29y", + "eVJlcXVlc3QQpB8SIAobU2V0RGVidWdMb2dDYXRlZ29yeVJlc3BvbnNlEKUf", + "EiEKHFNldHVwRGVidWdEaXNyaWJ1dG9yc1JlcXVlc3QQph8SIgodU2V0dXBE", + "ZWJ1Z0Rpc3JpYnV0b3JzUmVzcG9uc2UQpx8SJwoiVXBsb2FkSGFyZHdhcmVD", + "b25maWd1cmF0aW9uUmVxdWVzdBCIJxIoCiNVcGxvYWRIYXJkd2FyZUNvbmZp", + "Z3VyYXRpb25SZXNwb25zZRCJJxIXChJTeXN0ZW1SZXNldFJlcXVlc3QQiicS", + "GAoTU3lzdGVtUmVzZXRSZXNwb25zZRCLJxIVChBLZWVwQWxpdmVSZXF1ZXN0", + "EPAuEhYKEUtlZXBBbGl2ZVJlc3BvbnNlEPEuEhMKDkNvbm5lY3RSZXF1ZXN0", + "EPIuEhQKD0Nvbm5lY3RSZXNwb25zZRDzLhIWChFEaXNjb25uZWN0UmVxdWVz", + "dBD0LhIXChJEaXNjb25uZWN0UmVzcG9uc2UQ9S4SFgoRRmlsZVVwbG9hZFJl", + "cXVlc3QQ2DYSFwoSRmlsZVVwbG9hZFJlc3BvbnNlENk2EhsKFkZpbGVDaHVu", + "a1VwbG9hZFJlcXVlc3QQ2jYSHAoXRmlsZUNodW5rVXBsb2FkUmVzcG9uc2UQ", + "2zYSGgoVRXhlY3V0ZVByb2Nlc3NSZXF1ZXN0ENw2EhsKFkV4ZWN1dGVQcm9j", + "ZXNzUmVzcG9uc2UQ3TYSFwoSS2lsbFByb2Nlc3NSZXF1ZXN0EN42EhgKE0tp", + "bGxQcm9jZXNzUmVzcG9uc2UQ3zYSEgoNQ3JlYXRlUmVxdWVzdBDgNhITCg5D", + "cmVhdGVSZXNwb25zZRDhNhISCg1EZWxldGVSZXF1ZXN0EOI2EhMKDkRlbGV0", + "ZVJlc3BvbnNlEOM2EhoKFUdldFN0b3JhZ2VJbmZvUmVxdWVzdBDkNhIbChZH", + "ZXRTdG9yYWdlSW5mb1Jlc3BvbnNlEOU2EhQKD0dldEZpbGVzUmVxdWVzdBDm", + "NhIVChBHZXRGaWxlc1Jlc3BvbnNlEOc2EhgKE0ZpbGVEb3dubG9hZFJlcXVl", + "c3QQ6DYSGQoURmlsZURvd25sb2FkUmVzcG9uc2UQ6TYSHQoYRmlsZUNodW5r", + "RG93bmxvYWRSZXF1ZXN0EOo2Eh4KGUZpbGVDaHVua0Rvd25sb2FkUmVzcG9u", + "c2UQ6zYSGwoWVmFsaWRhdGVWZXJzaW9uUmVxdWVzdBDsNhIcChdWYWxpZGF0", + "ZVZlcnNpb25SZXNwb25zZRDtNhIbChZBY3RpdmF0ZVZlcnNpb25SZXF1ZXN0", + "EO42EhwKF0FjdGl2YXRlVmVyc2lvblJlc3BvbnNlEO82EiEKHEdldFZlcnNp", + "b25EZXNjcmlwdG9yc1JlcXVlc3QQ8DYSIgodR2V0VmVyc2lvbkRlc2NyaXB0", + "b3JzUmVzcG9uc2UQ8TYSGQoURGlzcGVuc2VyRGF0YVJlcXVlc3QQwD4SGgoV", + "RGlzcGVuc2VyRGF0YVJlc3BvbnNlEME+EhwKF01pZFRhbmtEYXRhU2V0dXBS", + "ZXF1ZXN0EMI+Eh0KGE1pZFRhbmtEYXRhU2V0dXBSZXNwb25zZRDDPhIiCh1N", + "YWNoaW5lQ2FsaWJyYXRpb25EYXRhUmVxdWVzdBDEPhIjCh5NYWNoaW5lQ2Fs", + "aWJyYXRpb25EYXRhUmVzcG9uc2UQxT4SHgoZTWFpbkNhcmRTdG9yZWREYXRh", + "UmVxdWVzdBDGPhIfChpNYWluQ2FyZFN0b3JlZERhdGFSZXNwb25zZRDHPhIk", + "Ch9TdGFydE1hY2hpbmVTdGF0dXNVcGRhdGVSZXF1ZXN0EKhGEiUKIFN0YXJ0", + "TWFjaGluZVN0YXR1c1VwZGF0ZVJlc3BvbnNlEKlGEiMKHlN0b3BNYWNoaW5l", + "U3RhdHVzVXBkYXRlUmVxdWVzdBCqRhIkCh9TdG9wTWFjaGluZVN0YXR1c1Vw", + "ZGF0ZVJlc3BvbnNlEKtGEiEKHFNldElua0F1dG9GaWxsaW5nTW9kZVJlcXVl", + "c3QQrEYSIgodU2V0SW5rQXV0b0ZpbGxpbmdNb2RlUmVzcG9uc2UQrUYSHAoX", + "U3Bvb2xUeXBlQ2hhbmdlZFJlcXVlc3QQrkYSHQoYU3Bvb2xUeXBlQ2hhbmdl", + "ZFJlc3BvbnNlEK9GEhoKFVN0YXJ0UG93ZXJEb3duUmVxdWVzdBCQThIbChZT", + "dGFydFBvd2VyRG93blJlc3BvbnNlEJFOEhoKFUFib3J0UG93ZXJEb3duUmVx", + "dWVzdBCSThIbChZBYm9ydFBvd2VyRG93blJlc3BvbnNlEJNOEhgKE1N0YXJ0", + "UG93ZXJVcFJlcXVlc3QQlE4SGQoUU3RhcnRQb3dlclVwUmVzcG9uc2UQlU4S", + "GAoTQWJvcnRQb3dlclVwUmVxdWVzdBCWThIZChRBYm9ydFBvd2VyVXBSZXNw", + "b25zZRCXThITCg5TdGFuZEJ5UmVxdWVzdBCYThIUCg9TdGFuZEJ5UmVzcG9u", + "c2UQmU4SHgoZU3RhcnRUaHJlYWRMb2FkaW5nUmVxdWVzdBD4VRIfChpTdGFy", + "dFRocmVhZExvYWRpbmdSZXNwb25zZRD5VRIhChxDb250aW51ZVRocmVhZExv", + "YWRpbmdSZXF1ZXN0EPpVEiIKHUNvbnRpbnVlVGhyZWFkTG9hZGluZ1Jlc3Bv", + "bnNlEPtVEh0KGFN0b3BUaHJlYWRMb2FkaW5nUmVxdWVzdBD8VRIeChlTdG9w", + "VGhyZWFkTG9hZGluZ1Jlc3BvbnNlEP1VEhwKF1RyeVRocmVhZExvYWRpbmdS", + "ZXF1ZXN0EP5VEh0KGFRyeVRocmVhZExvYWRpbmdSZXNwb25zZRD/VRIgChtB", + "dHRlbXB0VGhyZWFkSm9nZ2luZ1JlcXVlc3QQgFYSIQocQXR0ZW1wdFRocmVh", + "ZEpvZ2dpbmdSZXNwb25zZRCBVhIhChxTdGFydElua0ZpbGxpbmdTdGF0dXNS", + "ZXF1ZXN0EOBdEiIKHVN0YXJ0SW5rRmlsbGluZ1N0YXR1c1Jlc3BvbnNlEOFd", + "Eh4KGUluaXRpYXRlSW5rRmlsbGluZ1JlcXVlc3QQ4l0SHwoaSW5pdGlhdGVJ", + "bmtGaWxsaW5nUmVzcG9uc2UQ410SGAoTV2FzdGVSZXBsYWNlUmVxdWVzdBDk", + "XRIZChRXYXN0ZVJlcGxhY2VSZXNwb25zZRDlXRIcChdQdXREYXRhU3RvcmVJ", + "dGVtUmVxdWVzdBDIZRIdChhQdXREYXRhU3RvcmVJdGVtUmVzcG9uc2UQyWUS", + "HAoXR2V0RGF0YVN0b3JlSXRlbVJlcXVlc3QQymUSHQoYR2V0RGF0YVN0b3Jl", + "SXRlbVJlc3BvbnNlEMtlEiEKHERhdGFTdG9yZUl0ZW1Nb2RpZmllZFJlcXVl", + "c3QQzGUSIgodRGF0YVN0b3JlSXRlbU1vZGlmaWVkUmVzcG9uc2UQzWVCHAoa", + "Y29tLnR3aW5lLnRhbmdvLnBtci5jb21tb25iBnByb3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Tango.PMR.Common.MessageType), }, null)); @@ -420,6 +422,8 @@ namespace Tango.PMR.Common { [pbr::OriginalName("CartridgeValidationResponse")] CartridgeValidationResponse = 2045, [pbr::OriginalName("BitResultsRequest")] BitResultsRequest = 2046, [pbr::OriginalName("BitResultsResponse")] BitResultsResponse = 2047, + [pbr::OriginalName("ResetCardRequest")] ResetCardRequest = 2048, + [pbr::OriginalName("ResetCardResponse")] ResetCardResponse = 2049, /// <summary> ///Printing /// </summary> @@ -493,6 +497,8 @@ namespace Tango.PMR.Common { [pbr::OriginalName("ValidateVersionResponse")] ValidateVersionResponse = 7021, [pbr::OriginalName("ActivateVersionRequest")] ActivateVersionRequest = 7022, [pbr::OriginalName("ActivateVersionResponse")] ActivateVersionResponse = 7023, + [pbr::OriginalName("GetVersionDescriptorsRequest")] GetVersionDescriptorsRequest = 7024, + [pbr::OriginalName("GetVersionDescriptorsResponse")] GetVersionDescriptorsResponse = 7025, /// <summary> ///EmbeddedParameters /// </summary> diff --git a/Software/Visual_Studio/Tango.PMR/Connection/ConnectRequest.cs b/Software/Visual_Studio/Tango.PMR/Connection/ConnectRequest.cs index 0edef7665..d62d5dbc5 100644 --- a/Software/Visual_Studio/Tango.PMR/Connection/ConnectRequest.cs +++ b/Software/Visual_Studio/Tango.PMR/Connection/ConnectRequest.cs @@ -23,14 +23,16 @@ namespace Tango.PMR.Connection { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( "ChRDb25uZWN0UmVxdWVzdC5wcm90bxIUVGFuZ28uUE1SLkNvbm5lY3Rpb24a", - "EkpvYlNwb29sVHlwZS5wcm90byJpCg5Db25uZWN0UmVxdWVzdBIQCghQYXNz", - "d29yZBgBIAEoCRIQCghVbml4VGltZRgCIAEoAxIzCglTcG9vbFR5cGUYAyAB", - "KA4yIC5UYW5nby5QTVIuUHJpbnRpbmcuSm9iU3Bvb2xUeXBlQiAKHmNvbS50", - "d2luZS50YW5nby5wbXIuY29ubmVjdGlvbmIGcHJvdG8z")); + "EkpvYlNwb29sVHlwZS5wcm90bxoRTWFjaGluZVR5cGUucHJvdG8inQEKDkNv", + "bm5lY3RSZXF1ZXN0EhAKCFBhc3N3b3JkGAEgASgJEhAKCFVuaXhUaW1lGAIg", + "ASgDEjMKCVNwb29sVHlwZRgDIAEoDjIgLlRhbmdvLlBNUi5QcmludGluZy5K", + "b2JTcG9vbFR5cGUSMgoLTWFjaGluZVR5cGUYBCABKA4yHS5UYW5nby5QTVIu", + "Q29tbW9uLk1hY2hpbmVUeXBlQiAKHmNvbS50d2luZS50YW5nby5wbXIuY29u", + "bmVjdGlvbmIGcHJvdG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, - new pbr::FileDescriptor[] { global::Tango.PMR.Printing.JobSpoolTypeReflection.Descriptor, }, + new pbr::FileDescriptor[] { global::Tango.PMR.Printing.JobSpoolTypeReflection.Descriptor, global::Tango.PMR.Common.MachineTypeReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Connection.ConnectRequest), global::Tango.PMR.Connection.ConnectRequest.Parser, new[]{ "Password", "UnixTime", "SpoolType" }, null, null, null) + new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Connection.ConnectRequest), global::Tango.PMR.Connection.ConnectRequest.Parser, new[]{ "Password", "UnixTime", "SpoolType", "MachineType" }, null, null, null) })); } #endregion @@ -64,6 +66,7 @@ namespace Tango.PMR.Connection { password_ = other.password_; unixTime_ = other.unixTime_; spoolType_ = other.spoolType_; + machineType_ = other.machineType_; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -104,6 +107,17 @@ namespace Tango.PMR.Connection { } } + /// <summary>Field number for the "MachineType" field.</summary> + public const int MachineTypeFieldNumber = 4; + private global::Tango.PMR.Common.MachineType machineType_ = 0; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::Tango.PMR.Common.MachineType MachineType { + get { return machineType_; } + set { + machineType_ = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { return Equals(other as ConnectRequest); @@ -120,6 +134,7 @@ namespace Tango.PMR.Connection { if (Password != other.Password) return false; if (UnixTime != other.UnixTime) return false; if (SpoolType != other.SpoolType) return false; + if (MachineType != other.MachineType) return false; return true; } @@ -129,6 +144,7 @@ namespace Tango.PMR.Connection { if (Password.Length != 0) hash ^= Password.GetHashCode(); if (UnixTime != 0L) hash ^= UnixTime.GetHashCode(); if (SpoolType != 0) hash ^= SpoolType.GetHashCode(); + if (MachineType != 0) hash ^= MachineType.GetHashCode(); return hash; } @@ -151,6 +167,10 @@ namespace Tango.PMR.Connection { output.WriteRawTag(24); output.WriteEnum((int) SpoolType); } + if (MachineType != 0) { + output.WriteRawTag(32); + output.WriteEnum((int) MachineType); + } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -165,6 +185,9 @@ namespace Tango.PMR.Connection { if (SpoolType != 0) { size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) SpoolType); } + if (MachineType != 0) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) MachineType); + } return size; } @@ -182,6 +205,9 @@ namespace Tango.PMR.Connection { if (other.SpoolType != 0) { SpoolType = other.SpoolType; } + if (other.MachineType != 0) { + MachineType = other.MachineType; + } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -204,6 +230,10 @@ namespace Tango.PMR.Connection { spoolType_ = (global::Tango.PMR.Printing.JobSpoolType) input.ReadEnum(); break; } + case 32: { + machineType_ = (global::Tango.PMR.Common.MachineType) input.ReadEnum(); + break; + } } } } diff --git a/Software/Visual_Studio/Tango.PMR/Diagnostics/DiagnosticsMonitors.cs b/Software/Visual_Studio/Tango.PMR/Diagnostics/DiagnosticsMonitors.cs index 46d9735bd..06deacb53 100644 --- a/Software/Visual_Studio/Tango.PMR/Diagnostics/DiagnosticsMonitors.cs +++ b/Software/Visual_Studio/Tango.PMR/Diagnostics/DiagnosticsMonitors.cs @@ -23,7 +23,7 @@ namespace Tango.PMR.Diagnostics { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( "ChlEaWFnbm9zdGljc01vbml0b3JzLnByb3RvEhVUYW5nby5QTVIuRGlhZ25v", - "c3RpY3MaEURvdWJsZUFycmF5LnByb3RvIrkWChNEaWFnbm9zdGljc01vbml0", + "c3RpY3MaEURvdWJsZUFycmF5LnByb3RvIt4tChNEaWFnbm9zdGljc01vbml0", "b3JzEhQKDERhbmNlcjFBbmdsZRgBIAMoARIUCgxEYW5jZXIyQW5nbGUYAiAD", "KAESFAoMRGFuY2VyM0FuZ2xlGAMgAygBEhwKFEZlZWRlck1vdG9yRnJlcXVl", "bmN5GAQgAygBEhIKCkRyeWVyTW90b3IYBSADKAESEwoLUG9sbGVyTW90b3IY", @@ -87,12 +87,78 @@ namespace Tango.PMR.Diagnostics { "VyADKAESEgoKV2FzdGVMZXZlbBhYIAMoARIaChJIZWFkQmxvd2VyMUFpckZs", "b3cYWSADKAESGgoSSGVhZEJsb3dlcjJBaXJGbG93GFogAygBEhYKDlNoaW5r", "b1NldFZhbHVlGFsgAygBEhoKElNoaW5rb0N1cnJlbnRWYWx1ZRhcIAMoARIU", - "CgxUb3RhbFdIU0Zsb3cYXSADKAFCIQofY29tLnR3aW5lLnRhbmdvLnBtci5k", - "aWFnbm9zdGljc2IGcHJvdG8z")); + "CgxUb3RhbFdIU0Zsb3cYXSADKAESFwoPRXVXaW5kZXIxRGFuY2VyGF4gAygB", + "EhcKD0V1V2luZGVyMkRhbmNlchhfIAMoARIXCg9FdVdpbmRlcjNEYW5jZXIY", + "YCADKAESFwoPRXVXaW5kZXI0RGFuY2VyGGEgAygBEhYKDkV1V2luZGVyMU1v", + "dG9yGGIgAygBEhYKDkV1V2luZGVyMk1vdG9yGGMgAygBEhYKDkV1V2luZGVy", + "M01vdG9yGGQgAygBEhYKDkV1V2luZGVyNE1vdG9yGGUgAygBEhwKFEV1RHJ5", + "ZXJNb3RvclZlbG9jaXR5GGYgAygBEiIKGkV1RHJ5ZXJNb3RvclRhcmdldFZl", + "bG9jaXR5GGcgAygBEhsKE0V1RHJ5ZXJNb3RvckN1cnJlbnQYaCADKAESFgoO", + "RXVQdWxsZXJEYW5jZXIYaSADKAESFQoNRXVQdWxsZXJNb3RvchhqIAMoARIf", + "ChdFdURyeWVyWm9uZTFUZW1wZXJhdHVyZRhrIAMoARIfChdFdURyeWVyWm9u", + "ZTJUZW1wZXJhdHVyZRhsIAMoARIfChdFdURyeWVyWm9uZTNUZW1wZXJhdHVy", + "ZRhtIAMoARIeChZFdUhlYWRab25lMVRlbXBlcmF0dXJlGG4gAygBEh4KFkV1", + "SGVhZFpvbmUyVGVtcGVyYXR1cmUYbyADKAESHgoWRXVIZWFkWm9uZTNUZW1w", + "ZXJhdHVyZRhwIAMoARIaChJFdU1peGVyVGVtcGVyYXR1cmUYcSADKAESGwoT", + "RXVUdW5uZWxUZW1wZXJhdHVyZRhyIAMoARIeChZFdUx1YnJpY2FudFRlbXBl", + "cmF0dXJlGHMgAygBEhwKFEV1QW1iaWVudFRlbXBlcmF0dXJlGHQgAygBEiYK", + "HkV1RWxlY3RyaWNhbENhYmluZXRUZW1wZXJhdHVyZRh1IAMoARIbChNFdURy", + "eWVyWm9uZTFDdXJyZW50GHYgAygBEhsKE0V1RHJ5ZXJab25lMkN1cnJlbnQY", + "dyADKAESGwoTRXVEcnllclpvbmUzQ3VycmVudBh4IAMoARIaChJFdUhlYWRa", + "b25lMUN1cnJlbnQYeSADKAESGgoSRXVIZWFkWm9uZTJDdXJyZW50GHogAygB", + "EhoKEkV1SGVhZFpvbmUzQ3VycmVudBh7IAMoARIWCg5FdU1peGVyQ3VycmVu", + "dBh8IAMoARIXCg9FdVR1bm5lbEN1cnJlbnQYfSADKAESGgoSRXVMdWJyaWNh", + "bnRDdXJyZW50GH4gAygBEhQKDEV1QnRzcjFTcGVlZBh/IAMoARIXCg5FdUJ0", + "c3IxU3BlZWRBdhiAASADKAESFgoNRXVCdHNyMURpc3BBdhiBASADKAESFwoO", + "RXVCdHNyMVBlYWtNaW4YggEgAygBEhcKDkV1QnRzcjFQZWFrTWF4GIMBIAMo", + "ARIVCgxFdUJ0c3IyU3BlZWQYhAEgAygBEhcKDkV1QnRzcjJTcGVlZEF2GIUB", + "IAMoARIWCg1FdUJ0c3IyRGlzcEF2GIYBIAMoARIXCg5FdUJ0c3IyUGVha01p", + "bhiHASADKAESFwoORXVCdHNyMlBlYWtNYXgYiAEgAygBEhUKDEV1QnRzcjNT", + "cGVlZBiJASADKAESFwoORXVCdHNyM1NwZWVkQXYYigEgAygBEhYKDUV1QnRz", + "cjNEaXNwQXYYiwEgAygBEhcKDkV1QnRzcjNQZWFrTWluGIwBIAMoARIXCg5F", + "dUJ0c3IzUGVha01heBiNASADKAESFQoMRXVCdHNyNFNwZWVkGI4BIAMoARIX", + "Cg5FdUJ0c3I0U3BlZWRBdhiPASADKAESFwoORXVCdHNyNFBlYWtNaW4YkAEg", + "AygBEhcKDkV1QnRzcjRQZWFrTWF4GJEBIAMoARIWCg1FdUJ0c3I0RGlzcEF2", + "GJIBIAMoARJBChRFdVRlbXBlcmF0dXJlTG9nZ2VycxiTASADKAsyIi5UYW5n", + "by5QTVIuRGlhZ25vc3RpY3MuRG91YmxlQXJyYXkSOAoLRXVQdW1wRmxvd3MY", + "lAEgAygLMiIuVGFuZ28uUE1SLkRpYWdub3N0aWNzLkRvdWJsZUFycmF5Ej8K", + "EkV1SW5rTGluZXNQcmVzc3VyZRiVASADKAsyIi5UYW5nby5QTVIuRGlhZ25v", + "c3RpY3MuRG91YmxlQXJyYXkSPQoQRXVTcGFyZURhdGFBcnJheRiWASADKAsy", + "Ii5UYW5nby5QTVIuRGlhZ25vc3RpY3MuRG91YmxlQXJyYXkSHAoTRXVEaXNw", + "ZW5zZXIxVm9sdGFnZRiXASADKAESHAoTRXVEaXNwZW5zZXIyVm9sdGFnZRiY", + "ASADKAESHAoTRXVEaXNwZW5zZXIzVm9sdGFnZRiZASADKAESHAoTRXVEaXNw", + "ZW5zZXI0Vm9sdGFnZRiaASADKAESHAoTRXVEaXNwZW5zZXI1Vm9sdGFnZRib", + "ASADKAESHAoTRXVEaXNwZW5zZXI2Vm9sdGFnZRicASADKAESHAoTRXVEaXNw", + "ZW5zZXI3Vm9sdGFnZRidASADKAESHAoTRXVEaXNwZW5zZXI4Vm9sdGFnZRie", + "ASADKAESHAoTRXVEaXNwZW5zZXI5Vm9sdGFnZRifASADKAESHQoURXVEaXNw", + "ZW5zZXIxMFZvbHRhZ2UYoAEgAygBEh0KFEV1RGlzcGVuc2VyMTFWb2x0YWdl", + "GKEBIAMoARIdChRFdURpc3BlbnNlcjEyVm9sdGFnZRiiASADKAESHQoURXVE", + "aXNwZW5zZXIxM1ZvbHRhZ2UYowEgAygBEh0KFEV1RGlzcGVuc2VyMTRWb2x0", + "YWdlGKQBIAMoARIdChRFdURpc3BlbnNlcjE1Vm9sdGFnZRilASADKAESHQoU", + "RXVEaXNwZW5zZXIxNlZvbHRhZ2UYpgEgAygBEh8KFkV1THVicmljYW50UHVt", + "cFZvbHRhZ2UYpwEgAygBEh0KFEV1RGlzcGVuc2VyMVByZXNzdXJlGKgBIAMo", + "ARIdChRFdURpc3BlbnNlcjJQcmVzc3VyZRipASADKAESHQoURXVEaXNwZW5z", + "ZXIzUHJlc3N1cmUYqgEgAygBEh0KFEV1RGlzcGVuc2VyNFByZXNzdXJlGKsB", + "IAMoARIdChRFdURpc3BlbnNlcjVQcmVzc3VyZRisASADKAESHQoURXVEaXNw", + "ZW5zZXI2UHJlc3N1cmUYrQEgAygBEh0KFEV1RGlzcGVuc2VyN1ByZXNzdXJl", + "GK4BIAMoARIdChRFdURpc3BlbnNlcjhQcmVzc3VyZRivASADKAESHAoTRXVM", + "dWJyaWNhbnRQcmVzc3VyZRiwASADKAESGAoPRXVNaWRUYW5rMUxldmVsGLEB", + "IAMoARIYCg9FdU1pZFRhbmsyTGV2ZWwYsgEgAygBEhgKD0V1TWlkVGFuazNM", + "ZXZlbBizASADKAESGAoPRXVNaWRUYW5rNExldmVsGLQBIAMoARIYCg9FdU1p", + "ZFRhbms1TGV2ZWwYtQEgAygBEhgKD0V1TWlkVGFuazZMZXZlbBi2ASADKAES", + "GAoPRXVNaWRUYW5rN0xldmVsGLcBIAMoARIYCg9FdU1pZFRhbms4TGV2ZWwY", + "uAEgAygBEh0KFEV1Q2hpbGxlclRlbXBlcmF0dXJlGLkBIAMoARIbChJFdUhl", + "YWRSaWdodEFpckZsb3cYugEgAygBEhoKEUV1SGVhZExlZnRBaXJGbG93GLsB", + "IAMoARIbChJFdUhlYWRSaWdodFZvbHRhZ2UYvAEgAygBEhoKEUV1SGVhZExl", + "ZnRWb2x0YWdlGL0BIAMoARIXCg5FdURyeWVyQWlyRmxvdxi+ASADKAESGAoP", + "RXVCbG93ZXJWb2x0YWdlGL8BIAMoARIVCgxFdVdhc3RlTGV2ZWwYwAEgAygB", + "EhEKCEV1U3BhcmUxGMEBIAMoARIRCghFdVNwYXJlMhjCASADKAESEQoIRXVT", + "cGFyZTMYwwEgAygBEhEKCEV1U3BhcmU0GMQBIAMoAUIhCh9jb20udHdpbmUu", + "dGFuZ28ucG1yLmRpYWdub3N0aWNzYgZwcm90bzM=")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Tango.PMR.Diagnostics.DoubleArrayReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Diagnostics.DiagnosticsMonitors), global::Tango.PMR.Diagnostics.DiagnosticsMonitors.Parser, new[]{ "Dancer1Angle", "Dancer2Angle", "Dancer3Angle", "FeederMotorFrequency", "DryerMotor", "PollerMotor", "WinderMotor", "ScrewMotor", "ThreadSpeed", "MixerTemperature", "HeadZone1Temperature", "HeadZone2Temperature", "HeadZone3Temperature", "HeadAirFlow", "FeederTension", "PullerTension", "DryerZone1Temperature", "DryerZone2Temperature", "DryerZone3Temperature", "DryerAirFlow", "WinderTension", "DispensersMotorsFrequency", "DispensersAngularEncoders", "DispensersLinearPositions", "DispensersPressure", "FilterDeltaPressure", "ChillerTemperature", "Dispenser1MotorFrequency", "Dispenser2MotorFrequency", "Dispenser3MotorFrequency", "Dispenser4MotorFrequency", "Dispenser5MotorFrequency", "Dispenser6MotorFrequency", "Dispenser7MotorFrequency", "Dispenser8MotorFrequency", "HeadZone4Temperature", "HeadZone5Temperature", "HeadZone6Temperature", "BlowerVoltage", "Dispenser1Pressure", "Dispenser2Pressure", "Dispenser3Pressure", "Dispenser4Pressure", "Dispenser5Pressure", "Dispenser6Pressure", "Dispenser7Pressure", "Dispenser8Pressure", "MidTank1Level", "MidTank2Level", "MidTank3Level", "MidTank4Level", "MidTank5Level", "MidTank6Level", "MidTank7Level", "MidTank8Level", "DrierZone1HeaterCurrent", "DrierZone2HeaterCurrent", "HeadZone1HeaterCurrent", "HeadZone2HeaterCurrent", "HeadZone3HeaterCurrent", "HeadZone4HeaterCurrent", "HeadZone56HeaterCurrent", "Mixer1HeaterCurrent", "DispensersInkLevel", "MidTanksInkLevel", "OverallTemperature", "HeadZone7HeaterCurrent", "HeadZone7Temperature", "HeadZone8HeaterCurrent", "HeadZone8Temperature", "HeadZone9HeaterCurrent", "HeadZone9Temperature", "HeadZone10HeaterCurrent", "HeadZone10Temperature", "HeadZone11HeaterCurrent", "HeadZone11Temperature", "HeadZone12HeaterCurrent", "HeadZone12Temperature", "HeadBlowerVoltage1", "HeadBlowerVoltage2", "HeadCoverHeater1Current", "HeadCoverHeater1Temperature", "HeadCoverHeater2Current", "HeadCoverHeater2Temperature", "WHSBlower2Voltage", "GasSensor", "IncomingVoltage", "WasteLevel", "HeadBlower1AirFlow", "HeadBlower2AirFlow", "ShinkoSetValue", "ShinkoCurrentValue", "TotalWHSFlow" }, null, null, null) + new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Diagnostics.DiagnosticsMonitors), global::Tango.PMR.Diagnostics.DiagnosticsMonitors.Parser, new[]{ "Dancer1Angle", "Dancer2Angle", "Dancer3Angle", "FeederMotorFrequency", "DryerMotor", "PollerMotor", "WinderMotor", "ScrewMotor", "ThreadSpeed", "MixerTemperature", "HeadZone1Temperature", "HeadZone2Temperature", "HeadZone3Temperature", "HeadAirFlow", "FeederTension", "PullerTension", "DryerZone1Temperature", "DryerZone2Temperature", "DryerZone3Temperature", "DryerAirFlow", "WinderTension", "DispensersMotorsFrequency", "DispensersAngularEncoders", "DispensersLinearPositions", "DispensersPressure", "FilterDeltaPressure", "ChillerTemperature", "Dispenser1MotorFrequency", "Dispenser2MotorFrequency", "Dispenser3MotorFrequency", "Dispenser4MotorFrequency", "Dispenser5MotorFrequency", "Dispenser6MotorFrequency", "Dispenser7MotorFrequency", "Dispenser8MotorFrequency", "HeadZone4Temperature", "HeadZone5Temperature", "HeadZone6Temperature", "BlowerVoltage", "Dispenser1Pressure", "Dispenser2Pressure", "Dispenser3Pressure", "Dispenser4Pressure", "Dispenser5Pressure", "Dispenser6Pressure", "Dispenser7Pressure", "Dispenser8Pressure", "MidTank1Level", "MidTank2Level", "MidTank3Level", "MidTank4Level", "MidTank5Level", "MidTank6Level", "MidTank7Level", "MidTank8Level", "DrierZone1HeaterCurrent", "DrierZone2HeaterCurrent", "HeadZone1HeaterCurrent", "HeadZone2HeaterCurrent", "HeadZone3HeaterCurrent", "HeadZone4HeaterCurrent", "HeadZone56HeaterCurrent", "Mixer1HeaterCurrent", "DispensersInkLevel", "MidTanksInkLevel", "OverallTemperature", "HeadZone7HeaterCurrent", "HeadZone7Temperature", "HeadZone8HeaterCurrent", "HeadZone8Temperature", "HeadZone9HeaterCurrent", "HeadZone9Temperature", "HeadZone10HeaterCurrent", "HeadZone10Temperature", "HeadZone11HeaterCurrent", "HeadZone11Temperature", "HeadZone12HeaterCurrent", "HeadZone12Temperature", "HeadBlowerVoltage1", "HeadBlowerVoltage2", "HeadCoverHeater1Current", "HeadCoverHeater1Temperature", "HeadCoverHeater2Current", "HeadCoverHeater2Temperature", "WHSBlower2Voltage", "GasSensor", "IncomingVoltage", "WasteLevel", "HeadBlower1AirFlow", "HeadBlower2AirFlow", "ShinkoSetValue", "ShinkoCurrentValue", "TotalWHSFlow", "EuWinder1Dancer", "EuWinder2Dancer", "EuWinder3Dancer", "EuWinder4Dancer", "EuWinder1Motor", "EuWinder2Motor", "EuWinder3Motor", "EuWinder4Motor", "EuDryerMotorVelocity", "EuDryerMotorTargetVelocity", "EuDryerMotorCurrent", "EuPullerDancer", "EuPullerMotor", "EuDryerZone1Temperature", "EuDryerZone2Temperature", "EuDryerZone3Temperature", "EuHeadZone1Temperature", "EuHeadZone2Temperature", "EuHeadZone3Temperature", "EuMixerTemperature", "EuTunnelTemperature", "EuLubricantTemperature", "EuAmbientTemperature", "EuElectricalCabinetTemperature", "EuDryerZone1Current", "EuDryerZone2Current", "EuDryerZone3Current", "EuHeadZone1Current", "EuHeadZone2Current", "EuHeadZone3Current", "EuMixerCurrent", "EuTunnelCurrent", "EuLubricantCurrent", "EuBtsr1Speed", "EuBtsr1SpeedAv", "EuBtsr1DispAv", "EuBtsr1PeakMin", "EuBtsr1PeakMax", "EuBtsr2Speed", "EuBtsr2SpeedAv", "EuBtsr2DispAv", "EuBtsr2PeakMin", "EuBtsr2PeakMax", "EuBtsr3Speed", "EuBtsr3SpeedAv", "EuBtsr3DispAv", "EuBtsr3PeakMin", "EuBtsr3PeakMax", "EuBtsr4Speed", "EuBtsr4SpeedAv", "EuBtsr4PeakMin", "EuBtsr4PeakMax", "EuBtsr4DispAv", "EuTemperatureLoggers", "EuPumpFlows", "EuInkLinesPressure", "EuSpareDataArray", "EuDispenser1Voltage", "EuDispenser2Voltage", "EuDispenser3Voltage", "EuDispenser4Voltage", "EuDispenser5Voltage", "EuDispenser6Voltage", "EuDispenser7Voltage", "EuDispenser8Voltage", "EuDispenser9Voltage", "EuDispenser10Voltage", "EuDispenser11Voltage", "EuDispenser12Voltage", "EuDispenser13Voltage", "EuDispenser14Voltage", "EuDispenser15Voltage", "EuDispenser16Voltage", "EuLubricantPumpVoltage", "EuDispenser1Pressure", "EuDispenser2Pressure", "EuDispenser3Pressure", "EuDispenser4Pressure", "EuDispenser5Pressure", "EuDispenser6Pressure", "EuDispenser7Pressure", "EuDispenser8Pressure", "EuLubricantPressure", "EuMidTank1Level", "EuMidTank2Level", "EuMidTank3Level", "EuMidTank4Level", "EuMidTank5Level", "EuMidTank6Level", "EuMidTank7Level", "EuMidTank8Level", "EuChillerTemperature", "EuHeadRightAirFlow", "EuHeadLeftAirFlow", "EuHeadRightVoltage", "EuHeadLeftVoltage", "EuDryerAirFlow", "EuBlowerVoltage", "EuWasteLevel", "EuSpare1", "EuSpare2", "EuSpare3", "EuSpare4" }, null, null, null) })); } #endregion @@ -216,6 +282,109 @@ namespace Tango.PMR.Diagnostics { shinkoSetValue_ = other.shinkoSetValue_.Clone(); shinkoCurrentValue_ = other.shinkoCurrentValue_.Clone(); totalWHSFlow_ = other.totalWHSFlow_.Clone(); + euWinder1Dancer_ = other.euWinder1Dancer_.Clone(); + euWinder2Dancer_ = other.euWinder2Dancer_.Clone(); + euWinder3Dancer_ = other.euWinder3Dancer_.Clone(); + euWinder4Dancer_ = other.euWinder4Dancer_.Clone(); + euWinder1Motor_ = other.euWinder1Motor_.Clone(); + euWinder2Motor_ = other.euWinder2Motor_.Clone(); + euWinder3Motor_ = other.euWinder3Motor_.Clone(); + euWinder4Motor_ = other.euWinder4Motor_.Clone(); + euDryerMotorVelocity_ = other.euDryerMotorVelocity_.Clone(); + euDryerMotorTargetVelocity_ = other.euDryerMotorTargetVelocity_.Clone(); + euDryerMotorCurrent_ = other.euDryerMotorCurrent_.Clone(); + euPullerDancer_ = other.euPullerDancer_.Clone(); + euPullerMotor_ = other.euPullerMotor_.Clone(); + euDryerZone1Temperature_ = other.euDryerZone1Temperature_.Clone(); + euDryerZone2Temperature_ = other.euDryerZone2Temperature_.Clone(); + euDryerZone3Temperature_ = other.euDryerZone3Temperature_.Clone(); + euHeadZone1Temperature_ = other.euHeadZone1Temperature_.Clone(); + euHeadZone2Temperature_ = other.euHeadZone2Temperature_.Clone(); + euHeadZone3Temperature_ = other.euHeadZone3Temperature_.Clone(); + euMixerTemperature_ = other.euMixerTemperature_.Clone(); + euTunnelTemperature_ = other.euTunnelTemperature_.Clone(); + euLubricantTemperature_ = other.euLubricantTemperature_.Clone(); + euAmbientTemperature_ = other.euAmbientTemperature_.Clone(); + euElectricalCabinetTemperature_ = other.euElectricalCabinetTemperature_.Clone(); + euDryerZone1Current_ = other.euDryerZone1Current_.Clone(); + euDryerZone2Current_ = other.euDryerZone2Current_.Clone(); + euDryerZone3Current_ = other.euDryerZone3Current_.Clone(); + euHeadZone1Current_ = other.euHeadZone1Current_.Clone(); + euHeadZone2Current_ = other.euHeadZone2Current_.Clone(); + euHeadZone3Current_ = other.euHeadZone3Current_.Clone(); + euMixerCurrent_ = other.euMixerCurrent_.Clone(); + euTunnelCurrent_ = other.euTunnelCurrent_.Clone(); + euLubricantCurrent_ = other.euLubricantCurrent_.Clone(); + euBtsr1Speed_ = other.euBtsr1Speed_.Clone(); + euBtsr1SpeedAv_ = other.euBtsr1SpeedAv_.Clone(); + euBtsr1DispAv_ = other.euBtsr1DispAv_.Clone(); + euBtsr1PeakMin_ = other.euBtsr1PeakMin_.Clone(); + euBtsr1PeakMax_ = other.euBtsr1PeakMax_.Clone(); + euBtsr2Speed_ = other.euBtsr2Speed_.Clone(); + euBtsr2SpeedAv_ = other.euBtsr2SpeedAv_.Clone(); + euBtsr2DispAv_ = other.euBtsr2DispAv_.Clone(); + euBtsr2PeakMin_ = other.euBtsr2PeakMin_.Clone(); + euBtsr2PeakMax_ = other.euBtsr2PeakMax_.Clone(); + euBtsr3Speed_ = other.euBtsr3Speed_.Clone(); + euBtsr3SpeedAv_ = other.euBtsr3SpeedAv_.Clone(); + euBtsr3DispAv_ = other.euBtsr3DispAv_.Clone(); + euBtsr3PeakMin_ = other.euBtsr3PeakMin_.Clone(); + euBtsr3PeakMax_ = other.euBtsr3PeakMax_.Clone(); + euBtsr4Speed_ = other.euBtsr4Speed_.Clone(); + euBtsr4SpeedAv_ = other.euBtsr4SpeedAv_.Clone(); + euBtsr4PeakMin_ = other.euBtsr4PeakMin_.Clone(); + euBtsr4PeakMax_ = other.euBtsr4PeakMax_.Clone(); + euBtsr4DispAv_ = other.euBtsr4DispAv_.Clone(); + euTemperatureLoggers_ = other.euTemperatureLoggers_.Clone(); + euPumpFlows_ = other.euPumpFlows_.Clone(); + euInkLinesPressure_ = other.euInkLinesPressure_.Clone(); + euSpareDataArray_ = other.euSpareDataArray_.Clone(); + euDispenser1Voltage_ = other.euDispenser1Voltage_.Clone(); + euDispenser2Voltage_ = other.euDispenser2Voltage_.Clone(); + euDispenser3Voltage_ = other.euDispenser3Voltage_.Clone(); + euDispenser4Voltage_ = other.euDispenser4Voltage_.Clone(); + euDispenser5Voltage_ = other.euDispenser5Voltage_.Clone(); + euDispenser6Voltage_ = other.euDispenser6Voltage_.Clone(); + euDispenser7Voltage_ = other.euDispenser7Voltage_.Clone(); + euDispenser8Voltage_ = other.euDispenser8Voltage_.Clone(); + euDispenser9Voltage_ = other.euDispenser9Voltage_.Clone(); + euDispenser10Voltage_ = other.euDispenser10Voltage_.Clone(); + euDispenser11Voltage_ = other.euDispenser11Voltage_.Clone(); + euDispenser12Voltage_ = other.euDispenser12Voltage_.Clone(); + euDispenser13Voltage_ = other.euDispenser13Voltage_.Clone(); + euDispenser14Voltage_ = other.euDispenser14Voltage_.Clone(); + euDispenser15Voltage_ = other.euDispenser15Voltage_.Clone(); + euDispenser16Voltage_ = other.euDispenser16Voltage_.Clone(); + euLubricantPumpVoltage_ = other.euLubricantPumpVoltage_.Clone(); + euDispenser1Pressure_ = other.euDispenser1Pressure_.Clone(); + euDispenser2Pressure_ = other.euDispenser2Pressure_.Clone(); + euDispenser3Pressure_ = other.euDispenser3Pressure_.Clone(); + euDispenser4Pressure_ = other.euDispenser4Pressure_.Clone(); + euDispenser5Pressure_ = other.euDispenser5Pressure_.Clone(); + euDispenser6Pressure_ = other.euDispenser6Pressure_.Clone(); + euDispenser7Pressure_ = other.euDispenser7Pressure_.Clone(); + euDispenser8Pressure_ = other.euDispenser8Pressure_.Clone(); + euLubricantPressure_ = other.euLubricantPressure_.Clone(); + euMidTank1Level_ = other.euMidTank1Level_.Clone(); + euMidTank2Level_ = other.euMidTank2Level_.Clone(); + euMidTank3Level_ = other.euMidTank3Level_.Clone(); + euMidTank4Level_ = other.euMidTank4Level_.Clone(); + euMidTank5Level_ = other.euMidTank5Level_.Clone(); + euMidTank6Level_ = other.euMidTank6Level_.Clone(); + euMidTank7Level_ = other.euMidTank7Level_.Clone(); + euMidTank8Level_ = other.euMidTank8Level_.Clone(); + euChillerTemperature_ = other.euChillerTemperature_.Clone(); + euHeadRightAirFlow_ = other.euHeadRightAirFlow_.Clone(); + euHeadLeftAirFlow_ = other.euHeadLeftAirFlow_.Clone(); + euHeadRightVoltage_ = other.euHeadRightVoltage_.Clone(); + euHeadLeftVoltage_ = other.euHeadLeftVoltage_.Clone(); + euDryerAirFlow_ = other.euDryerAirFlow_.Clone(); + euBlowerVoltage_ = other.euBlowerVoltage_.Clone(); + euWasteLevel_ = other.euWasteLevel_.Clone(); + euSpare1_ = other.euSpare1_.Clone(); + euSpare2_ = other.euSpare2_.Clone(); + euSpare3_ = other.euSpare3_.Clone(); + euSpare4_ = other.euSpare4_.Clone(); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -1432,6 +1601,1345 @@ namespace Tango.PMR.Diagnostics { get { return totalWHSFlow_; } } + /// <summary>Field number for the "EuWinder1Dancer" field.</summary> + public const int EuWinder1DancerFieldNumber = 94; + private static readonly pb::FieldCodec<double> _repeated_euWinder1Dancer_codec + = pb::FieldCodec.ForDouble(754); + private readonly pbc::RepeatedField<double> euWinder1Dancer_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Winder Dancer 1 (Min = 0, Max = 16384, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuWinder1Dancer { + get { return euWinder1Dancer_; } + } + + /// <summary>Field number for the "EuWinder2Dancer" field.</summary> + public const int EuWinder2DancerFieldNumber = 95; + private static readonly pb::FieldCodec<double> _repeated_euWinder2Dancer_codec + = pb::FieldCodec.ForDouble(762); + private readonly pbc::RepeatedField<double> euWinder2Dancer_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Winder Dancer 2 (Min = 0, Max = 16384, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuWinder2Dancer { + get { return euWinder2Dancer_; } + } + + /// <summary>Field number for the "EuWinder3Dancer" field.</summary> + public const int EuWinder3DancerFieldNumber = 96; + private static readonly pb::FieldCodec<double> _repeated_euWinder3Dancer_codec + = pb::FieldCodec.ForDouble(770); + private readonly pbc::RepeatedField<double> euWinder3Dancer_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Winder Dancer 3 (Min = 0, Max = 16384, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuWinder3Dancer { + get { return euWinder3Dancer_; } + } + + /// <summary>Field number for the "EuWinder4Dancer" field.</summary> + public const int EuWinder4DancerFieldNumber = 97; + private static readonly pb::FieldCodec<double> _repeated_euWinder4Dancer_codec + = pb::FieldCodec.ForDouble(778); + private readonly pbc::RepeatedField<double> euWinder4Dancer_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Winder Dancer 4 (Min = 0, Max = 16384, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuWinder4Dancer { + get { return euWinder4Dancer_; } + } + + /// <summary>Field number for the "EuWinder1Motor" field.</summary> + public const int EuWinder1MotorFieldNumber = 98; + private static readonly pb::FieldCodec<double> _repeated_euWinder1Motor_codec + = pb::FieldCodec.ForDouble(786); + private readonly pbc::RepeatedField<double> euWinder1Motor_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Winder Motor 1 (Min = 0, Max = 100000, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuWinder1Motor { + get { return euWinder1Motor_; } + } + + /// <summary>Field number for the "EuWinder2Motor" field.</summary> + public const int EuWinder2MotorFieldNumber = 99; + private static readonly pb::FieldCodec<double> _repeated_euWinder2Motor_codec + = pb::FieldCodec.ForDouble(794); + private readonly pbc::RepeatedField<double> euWinder2Motor_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Winder Motor 2 (Min = 0, Max = 100000, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuWinder2Motor { + get { return euWinder2Motor_; } + } + + /// <summary>Field number for the "EuWinder3Motor" field.</summary> + public const int EuWinder3MotorFieldNumber = 100; + private static readonly pb::FieldCodec<double> _repeated_euWinder3Motor_codec + = pb::FieldCodec.ForDouble(802); + private readonly pbc::RepeatedField<double> euWinder3Motor_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Winder Motor 3 (Min = 0, Max = 100000, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuWinder3Motor { + get { return euWinder3Motor_; } + } + + /// <summary>Field number for the "EuWinder4Motor" field.</summary> + public const int EuWinder4MotorFieldNumber = 101; + private static readonly pb::FieldCodec<double> _repeated_euWinder4Motor_codec + = pb::FieldCodec.ForDouble(810); + private readonly pbc::RepeatedField<double> euWinder4Motor_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Winder Motor 4 (Min = 0, Max = 100000, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuWinder4Motor { + get { return euWinder4Motor_; } + } + + /// <summary>Field number for the "EuDryerMotorVelocity" field.</summary> + public const int EuDryerMotorVelocityFieldNumber = 102; + private static readonly pb::FieldCodec<double> _repeated_euDryerMotorVelocity_codec + = pb::FieldCodec.ForDouble(818); + private readonly pbc::RepeatedField<double> euDryerMotorVelocity_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Dryer Motor Velocity (Min = 0, Max = 10000, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuDryerMotorVelocity { + get { return euDryerMotorVelocity_; } + } + + /// <summary>Field number for the "EuDryerMotorTargetVelocity" field.</summary> + public const int EuDryerMotorTargetVelocityFieldNumber = 103; + private static readonly pb::FieldCodec<double> _repeated_euDryerMotorTargetVelocity_codec + = pb::FieldCodec.ForDouble(826); + private readonly pbc::RepeatedField<double> euDryerMotorTargetVelocity_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Dryer Motor Target Velocity (Min = 0, Max = 10000, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuDryerMotorTargetVelocity { + get { return euDryerMotorTargetVelocity_; } + } + + /// <summary>Field number for the "EuDryerMotorCurrent" field.</summary> + public const int EuDryerMotorCurrentFieldNumber = 104; + private static readonly pb::FieldCodec<double> _repeated_euDryerMotorCurrent_codec + = pb::FieldCodec.ForDouble(834); + private readonly pbc::RepeatedField<double> euDryerMotorCurrent_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Dryer Motor Current (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuDryerMotorCurrent { + get { return euDryerMotorCurrent_; } + } + + /// <summary>Field number for the "EuPullerDancer" field.</summary> + public const int EuPullerDancerFieldNumber = 105; + private static readonly pb::FieldCodec<double> _repeated_euPullerDancer_codec + = pb::FieldCodec.ForDouble(842); + private readonly pbc::RepeatedField<double> euPullerDancer_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Puller Dancer (Min = 0, Max = 16384, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuPullerDancer { + get { return euPullerDancer_; } + } + + /// <summary>Field number for the "EuPullerMotor" field.</summary> + public const int EuPullerMotorFieldNumber = 106; + private static readonly pb::FieldCodec<double> _repeated_euPullerMotor_codec + = pb::FieldCodec.ForDouble(850); + private readonly pbc::RepeatedField<double> euPullerMotor_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Puller Motor (Min = 0, Max = 100000, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuPullerMotor { + get { return euPullerMotor_; } + } + + /// <summary>Field number for the "EuDryerZone1Temperature" field.</summary> + public const int EuDryerZone1TemperatureFieldNumber = 107; + private static readonly pb::FieldCodec<double> _repeated_euDryerZone1Temperature_codec + = pb::FieldCodec.ForDouble(858); + private readonly pbc::RepeatedField<double> euDryerZone1Temperature_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Dryer Zone 1 Temperature (Min = 0, Max = 300, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuDryerZone1Temperature { + get { return euDryerZone1Temperature_; } + } + + /// <summary>Field number for the "EuDryerZone2Temperature" field.</summary> + public const int EuDryerZone2TemperatureFieldNumber = 108; + private static readonly pb::FieldCodec<double> _repeated_euDryerZone2Temperature_codec + = pb::FieldCodec.ForDouble(866); + private readonly pbc::RepeatedField<double> euDryerZone2Temperature_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Dryer Zone 2 Temperature (Min = 0, Max = 300, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuDryerZone2Temperature { + get { return euDryerZone2Temperature_; } + } + + /// <summary>Field number for the "EuDryerZone3Temperature" field.</summary> + public const int EuDryerZone3TemperatureFieldNumber = 109; + private static readonly pb::FieldCodec<double> _repeated_euDryerZone3Temperature_codec + = pb::FieldCodec.ForDouble(874); + private readonly pbc::RepeatedField<double> euDryerZone3Temperature_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Dryer Zone 3 Temperature (Min = 0, Max = 300, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuDryerZone3Temperature { + get { return euDryerZone3Temperature_; } + } + + /// <summary>Field number for the "EuHeadZone1Temperature" field.</summary> + public const int EuHeadZone1TemperatureFieldNumber = 110; + private static readonly pb::FieldCodec<double> _repeated_euHeadZone1Temperature_codec + = pb::FieldCodec.ForDouble(882); + private readonly pbc::RepeatedField<double> euHeadZone1Temperature_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Head Zone 1 Temperature (Min = 0, Max = 300, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuHeadZone1Temperature { + get { return euHeadZone1Temperature_; } + } + + /// <summary>Field number for the "EuHeadZone2Temperature" field.</summary> + public const int EuHeadZone2TemperatureFieldNumber = 111; + private static readonly pb::FieldCodec<double> _repeated_euHeadZone2Temperature_codec + = pb::FieldCodec.ForDouble(890); + private readonly pbc::RepeatedField<double> euHeadZone2Temperature_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Head Zone 2 Temperature (Min = 0, Max = 300, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuHeadZone2Temperature { + get { return euHeadZone2Temperature_; } + } + + /// <summary>Field number for the "EuHeadZone3Temperature" field.</summary> + public const int EuHeadZone3TemperatureFieldNumber = 112; + private static readonly pb::FieldCodec<double> _repeated_euHeadZone3Temperature_codec + = pb::FieldCodec.ForDouble(898); + private readonly pbc::RepeatedField<double> euHeadZone3Temperature_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Head Zone 3 Temperature (Min = 0, Max = 300, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuHeadZone3Temperature { + get { return euHeadZone3Temperature_; } + } + + /// <summary>Field number for the "EuMixerTemperature" field.</summary> + public const int EuMixerTemperatureFieldNumber = 113; + private static readonly pb::FieldCodec<double> _repeated_euMixerTemperature_codec + = pb::FieldCodec.ForDouble(906); + private readonly pbc::RepeatedField<double> euMixerTemperature_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Mixer Temperature (Min = 0, Max = 300, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuMixerTemperature { + get { return euMixerTemperature_; } + } + + /// <summary>Field number for the "EuTunnelTemperature" field.</summary> + public const int EuTunnelTemperatureFieldNumber = 114; + private static readonly pb::FieldCodec<double> _repeated_euTunnelTemperature_codec + = pb::FieldCodec.ForDouble(914); + private readonly pbc::RepeatedField<double> euTunnelTemperature_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Tunnel Temperature (Min = 0, Max = 300, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuTunnelTemperature { + get { return euTunnelTemperature_; } + } + + /// <summary>Field number for the "EuLubricantTemperature" field.</summary> + public const int EuLubricantTemperatureFieldNumber = 115; + private static readonly pb::FieldCodec<double> _repeated_euLubricantTemperature_codec + = pb::FieldCodec.ForDouble(922); + private readonly pbc::RepeatedField<double> euLubricantTemperature_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Lubricant Temperature (Min = 0, Max = 300, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuLubricantTemperature { + get { return euLubricantTemperature_; } + } + + /// <summary>Field number for the "EuAmbientTemperature" field.</summary> + public const int EuAmbientTemperatureFieldNumber = 116; + private static readonly pb::FieldCodec<double> _repeated_euAmbientTemperature_codec + = pb::FieldCodec.ForDouble(930); + private readonly pbc::RepeatedField<double> euAmbientTemperature_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Ambient Temperature (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuAmbientTemperature { + get { return euAmbientTemperature_; } + } + + /// <summary>Field number for the "EuElectricalCabinetTemperature" field.</summary> + public const int EuElectricalCabinetTemperatureFieldNumber = 117; + private static readonly pb::FieldCodec<double> _repeated_euElectricalCabinetTemperature_codec + = pb::FieldCodec.ForDouble(938); + private readonly pbc::RepeatedField<double> euElectricalCabinetTemperature_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Electrical Cabinet Temperature (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuElectricalCabinetTemperature { + get { return euElectricalCabinetTemperature_; } + } + + /// <summary>Field number for the "EuDryerZone1Current" field.</summary> + public const int EuDryerZone1CurrentFieldNumber = 118; + private static readonly pb::FieldCodec<double> _repeated_euDryerZone1Current_codec + = pb::FieldCodec.ForDouble(946); + private readonly pbc::RepeatedField<double> euDryerZone1Current_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Dryer Zone 1 Current (Min = 0, Max = 10, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuDryerZone1Current { + get { return euDryerZone1Current_; } + } + + /// <summary>Field number for the "EuDryerZone2Current" field.</summary> + public const int EuDryerZone2CurrentFieldNumber = 119; + private static readonly pb::FieldCodec<double> _repeated_euDryerZone2Current_codec + = pb::FieldCodec.ForDouble(954); + private readonly pbc::RepeatedField<double> euDryerZone2Current_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Dryer Zone 2 Current (Min = 0, Max = 10, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuDryerZone2Current { + get { return euDryerZone2Current_; } + } + + /// <summary>Field number for the "EuDryerZone3Current" field.</summary> + public const int EuDryerZone3CurrentFieldNumber = 120; + private static readonly pb::FieldCodec<double> _repeated_euDryerZone3Current_codec + = pb::FieldCodec.ForDouble(962); + private readonly pbc::RepeatedField<double> euDryerZone3Current_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Dryer Zone 3 Current (Min = 0, Max = 10, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuDryerZone3Current { + get { return euDryerZone3Current_; } + } + + /// <summary>Field number for the "EuHeadZone1Current" field.</summary> + public const int EuHeadZone1CurrentFieldNumber = 121; + private static readonly pb::FieldCodec<double> _repeated_euHeadZone1Current_codec + = pb::FieldCodec.ForDouble(970); + private readonly pbc::RepeatedField<double> euHeadZone1Current_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Head Zone 1 Current (Min = 0, Max = 10, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuHeadZone1Current { + get { return euHeadZone1Current_; } + } + + /// <summary>Field number for the "EuHeadZone2Current" field.</summary> + public const int EuHeadZone2CurrentFieldNumber = 122; + private static readonly pb::FieldCodec<double> _repeated_euHeadZone2Current_codec + = pb::FieldCodec.ForDouble(978); + private readonly pbc::RepeatedField<double> euHeadZone2Current_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Head Zone 2 Current (Min = 0, Max = 10, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuHeadZone2Current { + get { return euHeadZone2Current_; } + } + + /// <summary>Field number for the "EuHeadZone3Current" field.</summary> + public const int EuHeadZone3CurrentFieldNumber = 123; + private static readonly pb::FieldCodec<double> _repeated_euHeadZone3Current_codec + = pb::FieldCodec.ForDouble(986); + private readonly pbc::RepeatedField<double> euHeadZone3Current_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Head Zone 3 Current (Min = 0, Max = 10, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuHeadZone3Current { + get { return euHeadZone3Current_; } + } + + /// <summary>Field number for the "EuMixerCurrent" field.</summary> + public const int EuMixerCurrentFieldNumber = 124; + private static readonly pb::FieldCodec<double> _repeated_euMixerCurrent_codec + = pb::FieldCodec.ForDouble(994); + private readonly pbc::RepeatedField<double> euMixerCurrent_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Mixer Current (Min = 0, Max = 10, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuMixerCurrent { + get { return euMixerCurrent_; } + } + + /// <summary>Field number for the "EuTunnelCurrent" field.</summary> + public const int EuTunnelCurrentFieldNumber = 125; + private static readonly pb::FieldCodec<double> _repeated_euTunnelCurrent_codec + = pb::FieldCodec.ForDouble(1002); + private readonly pbc::RepeatedField<double> euTunnelCurrent_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Tunnel Current (Min = 0, Max = 10, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuTunnelCurrent { + get { return euTunnelCurrent_; } + } + + /// <summary>Field number for the "EuLubricantCurrent" field.</summary> + public const int EuLubricantCurrentFieldNumber = 126; + private static readonly pb::FieldCodec<double> _repeated_euLubricantCurrent_codec + = pb::FieldCodec.ForDouble(1010); + private readonly pbc::RepeatedField<double> euLubricantCurrent_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Lubricant Current (Min = 0, Max = 10, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuLubricantCurrent { + get { return euLubricantCurrent_; } + } + + /// <summary>Field number for the "EuBtsr1Speed" field.</summary> + public const int EuBtsr1SpeedFieldNumber = 127; + private static readonly pb::FieldCodec<double> _repeated_euBtsr1Speed_codec + = pb::FieldCodec.ForDouble(1018); + private readonly pbc::RepeatedField<double> euBtsr1Speed_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka BTSR 1 Speed (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuBtsr1Speed { + get { return euBtsr1Speed_; } + } + + /// <summary>Field number for the "EuBtsr1SpeedAv" field.</summary> + public const int EuBtsr1SpeedAvFieldNumber = 128; + private static readonly pb::FieldCodec<double> _repeated_euBtsr1SpeedAv_codec + = pb::FieldCodec.ForDouble(1026); + private readonly pbc::RepeatedField<double> euBtsr1SpeedAv_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka BTSR 1 Speed Average (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuBtsr1SpeedAv { + get { return euBtsr1SpeedAv_; } + } + + /// <summary>Field number for the "EuBtsr1DispAv" field.</summary> + public const int EuBtsr1DispAvFieldNumber = 129; + private static readonly pb::FieldCodec<double> _repeated_euBtsr1DispAv_codec + = pb::FieldCodec.ForDouble(1034); + private readonly pbc::RepeatedField<double> euBtsr1DispAv_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka BTSR 1 Tension (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuBtsr1DispAv { + get { return euBtsr1DispAv_; } + } + + /// <summary>Field number for the "EuBtsr1PeakMin" field.</summary> + public const int EuBtsr1PeakMinFieldNumber = 130; + private static readonly pb::FieldCodec<double> _repeated_euBtsr1PeakMin_codec + = pb::FieldCodec.ForDouble(1042); + private readonly pbc::RepeatedField<double> euBtsr1PeakMin_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka BTSR 1 Peak Min (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuBtsr1PeakMin { + get { return euBtsr1PeakMin_; } + } + + /// <summary>Field number for the "EuBtsr1PeakMax" field.</summary> + public const int EuBtsr1PeakMaxFieldNumber = 131; + private static readonly pb::FieldCodec<double> _repeated_euBtsr1PeakMax_codec + = pb::FieldCodec.ForDouble(1050); + private readonly pbc::RepeatedField<double> euBtsr1PeakMax_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka BTSR 1 Peak Max (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuBtsr1PeakMax { + get { return euBtsr1PeakMax_; } + } + + /// <summary>Field number for the "EuBtsr2Speed" field.</summary> + public const int EuBtsr2SpeedFieldNumber = 132; + private static readonly pb::FieldCodec<double> _repeated_euBtsr2Speed_codec + = pb::FieldCodec.ForDouble(1058); + private readonly pbc::RepeatedField<double> euBtsr2Speed_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka BTSR 2 Speed (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuBtsr2Speed { + get { return euBtsr2Speed_; } + } + + /// <summary>Field number for the "EuBtsr2SpeedAv" field.</summary> + public const int EuBtsr2SpeedAvFieldNumber = 133; + private static readonly pb::FieldCodec<double> _repeated_euBtsr2SpeedAv_codec + = pb::FieldCodec.ForDouble(1066); + private readonly pbc::RepeatedField<double> euBtsr2SpeedAv_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka BTSR 2 Speed Average (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuBtsr2SpeedAv { + get { return euBtsr2SpeedAv_; } + } + + /// <summary>Field number for the "EuBtsr2DispAv" field.</summary> + public const int EuBtsr2DispAvFieldNumber = 134; + private static readonly pb::FieldCodec<double> _repeated_euBtsr2DispAv_codec + = pb::FieldCodec.ForDouble(1074); + private readonly pbc::RepeatedField<double> euBtsr2DispAv_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka BTSR 2 Tension (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuBtsr2DispAv { + get { return euBtsr2DispAv_; } + } + + /// <summary>Field number for the "EuBtsr2PeakMin" field.</summary> + public const int EuBtsr2PeakMinFieldNumber = 135; + private static readonly pb::FieldCodec<double> _repeated_euBtsr2PeakMin_codec + = pb::FieldCodec.ForDouble(1082); + private readonly pbc::RepeatedField<double> euBtsr2PeakMin_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka BTSR 2 Peak Min (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuBtsr2PeakMin { + get { return euBtsr2PeakMin_; } + } + + /// <summary>Field number for the "EuBtsr2PeakMax" field.</summary> + public const int EuBtsr2PeakMaxFieldNumber = 136; + private static readonly pb::FieldCodec<double> _repeated_euBtsr2PeakMax_codec + = pb::FieldCodec.ForDouble(1090); + private readonly pbc::RepeatedField<double> euBtsr2PeakMax_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka BTSR 2 Peak Max (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuBtsr2PeakMax { + get { return euBtsr2PeakMax_; } + } + + /// <summary>Field number for the "EuBtsr3Speed" field.</summary> + public const int EuBtsr3SpeedFieldNumber = 137; + private static readonly pb::FieldCodec<double> _repeated_euBtsr3Speed_codec + = pb::FieldCodec.ForDouble(1098); + private readonly pbc::RepeatedField<double> euBtsr3Speed_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka BTSR 3 Speed (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuBtsr3Speed { + get { return euBtsr3Speed_; } + } + + /// <summary>Field number for the "EuBtsr3SpeedAv" field.</summary> + public const int EuBtsr3SpeedAvFieldNumber = 138; + private static readonly pb::FieldCodec<double> _repeated_euBtsr3SpeedAv_codec + = pb::FieldCodec.ForDouble(1106); + private readonly pbc::RepeatedField<double> euBtsr3SpeedAv_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka BTSR 3 Speed Average (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuBtsr3SpeedAv { + get { return euBtsr3SpeedAv_; } + } + + /// <summary>Field number for the "EuBtsr3DispAv" field.</summary> + public const int EuBtsr3DispAvFieldNumber = 139; + private static readonly pb::FieldCodec<double> _repeated_euBtsr3DispAv_codec + = pb::FieldCodec.ForDouble(1114); + private readonly pbc::RepeatedField<double> euBtsr3DispAv_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka BTSR 3 Tension (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuBtsr3DispAv { + get { return euBtsr3DispAv_; } + } + + /// <summary>Field number for the "EuBtsr3PeakMin" field.</summary> + public const int EuBtsr3PeakMinFieldNumber = 140; + private static readonly pb::FieldCodec<double> _repeated_euBtsr3PeakMin_codec + = pb::FieldCodec.ForDouble(1122); + private readonly pbc::RepeatedField<double> euBtsr3PeakMin_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka BTSR 3 Peak Min (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuBtsr3PeakMin { + get { return euBtsr3PeakMin_; } + } + + /// <summary>Field number for the "EuBtsr3PeakMax" field.</summary> + public const int EuBtsr3PeakMaxFieldNumber = 141; + private static readonly pb::FieldCodec<double> _repeated_euBtsr3PeakMax_codec + = pb::FieldCodec.ForDouble(1130); + private readonly pbc::RepeatedField<double> euBtsr3PeakMax_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka BTSR 3 Peak Max (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuBtsr3PeakMax { + get { return euBtsr3PeakMax_; } + } + + /// <summary>Field number for the "EuBtsr4Speed" field.</summary> + public const int EuBtsr4SpeedFieldNumber = 142; + private static readonly pb::FieldCodec<double> _repeated_euBtsr4Speed_codec + = pb::FieldCodec.ForDouble(1138); + private readonly pbc::RepeatedField<double> euBtsr4Speed_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka BTSR 4 Speed (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuBtsr4Speed { + get { return euBtsr4Speed_; } + } + + /// <summary>Field number for the "EuBtsr4SpeedAv" field.</summary> + public const int EuBtsr4SpeedAvFieldNumber = 143; + private static readonly pb::FieldCodec<double> _repeated_euBtsr4SpeedAv_codec + = pb::FieldCodec.ForDouble(1146); + private readonly pbc::RepeatedField<double> euBtsr4SpeedAv_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka BTSR 4 Speed Average (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuBtsr4SpeedAv { + get { return euBtsr4SpeedAv_; } + } + + /// <summary>Field number for the "EuBtsr4PeakMin" field.</summary> + public const int EuBtsr4PeakMinFieldNumber = 144; + private static readonly pb::FieldCodec<double> _repeated_euBtsr4PeakMin_codec + = pb::FieldCodec.ForDouble(1154); + private readonly pbc::RepeatedField<double> euBtsr4PeakMin_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka BTSR 4 Peak Min (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuBtsr4PeakMin { + get { return euBtsr4PeakMin_; } + } + + /// <summary>Field number for the "EuBtsr4PeakMax" field.</summary> + public const int EuBtsr4PeakMaxFieldNumber = 145; + private static readonly pb::FieldCodec<double> _repeated_euBtsr4PeakMax_codec + = pb::FieldCodec.ForDouble(1162); + private readonly pbc::RepeatedField<double> euBtsr4PeakMax_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka BTSR 4 Peak Max (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuBtsr4PeakMax { + get { return euBtsr4PeakMax_; } + } + + /// <summary>Field number for the "EuBtsr4DispAv" field.</summary> + public const int EuBtsr4DispAvFieldNumber = 146; + private static readonly pb::FieldCodec<double> _repeated_euBtsr4DispAv_codec + = pb::FieldCodec.ForDouble(1170); + private readonly pbc::RepeatedField<double> euBtsr4DispAv_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka BTSR 4 Tension (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuBtsr4DispAv { + get { return euBtsr4DispAv_; } + } + + /// <summary>Field number for the "EuTemperatureLoggers" field.</summary> + public const int EuTemperatureLoggersFieldNumber = 147; + private static readonly pb::FieldCodec<global::Tango.PMR.Diagnostics.DoubleArray> _repeated_euTemperatureLoggers_codec + = pb::FieldCodec.ForMessage(1178, global::Tango.PMR.Diagnostics.DoubleArray.Parser); + private readonly pbc::RepeatedField<global::Tango.PMR.Diagnostics.DoubleArray> euTemperatureLoggers_ = new pbc::RepeatedField<global::Tango.PMR.Diagnostics.DoubleArray>(); + /// <summary> + ///Eureka Temperature Loggers (Min = 0, Max = 100000, PPF = 10) Channel Count = 36 + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<global::Tango.PMR.Diagnostics.DoubleArray> EuTemperatureLoggers { + get { return euTemperatureLoggers_; } + } + + /// <summary>Field number for the "EuPumpFlows" field.</summary> + public const int EuPumpFlowsFieldNumber = 148; + private static readonly pb::FieldCodec<global::Tango.PMR.Diagnostics.DoubleArray> _repeated_euPumpFlows_codec + = pb::FieldCodec.ForMessage(1186, global::Tango.PMR.Diagnostics.DoubleArray.Parser); + private readonly pbc::RepeatedField<global::Tango.PMR.Diagnostics.DoubleArray> euPumpFlows_ = new pbc::RepeatedField<global::Tango.PMR.Diagnostics.DoubleArray>(); + /// <summary> + ///Eureka Pump Flows (Min = 0, Max = 10, PPF = 10) Channel Count = 17 + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<global::Tango.PMR.Diagnostics.DoubleArray> EuPumpFlows { + get { return euPumpFlows_; } + } + + /// <summary>Field number for the "EuInkLinesPressure" field.</summary> + public const int EuInkLinesPressureFieldNumber = 149; + private static readonly pb::FieldCodec<global::Tango.PMR.Diagnostics.DoubleArray> _repeated_euInkLinesPressure_codec + = pb::FieldCodec.ForMessage(1194, global::Tango.PMR.Diagnostics.DoubleArray.Parser); + private readonly pbc::RepeatedField<global::Tango.PMR.Diagnostics.DoubleArray> euInkLinesPressure_ = new pbc::RepeatedField<global::Tango.PMR.Diagnostics.DoubleArray>(); + /// <summary> + ///Eureka Ink Lines Pressure (Min = 0, Max = 100, PPF = 10) Channel Count = 8 + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<global::Tango.PMR.Diagnostics.DoubleArray> EuInkLinesPressure { + get { return euInkLinesPressure_; } + } + + /// <summary>Field number for the "EuSpareDataArray" field.</summary> + public const int EuSpareDataArrayFieldNumber = 150; + private static readonly pb::FieldCodec<global::Tango.PMR.Diagnostics.DoubleArray> _repeated_euSpareDataArray_codec + = pb::FieldCodec.ForMessage(1202, global::Tango.PMR.Diagnostics.DoubleArray.Parser); + private readonly pbc::RepeatedField<global::Tango.PMR.Diagnostics.DoubleArray> euSpareDataArray_ = new pbc::RepeatedField<global::Tango.PMR.Diagnostics.DoubleArray>(); + /// <summary> + ///Eureka Spare Data Array (Min = 0, Max = 100, PPF = 10) Channel Count = 10 + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<global::Tango.PMR.Diagnostics.DoubleArray> EuSpareDataArray { + get { return euSpareDataArray_; } + } + + /// <summary>Field number for the "EuDispenser1Voltage" field.</summary> + public const int EuDispenser1VoltageFieldNumber = 151; + private static readonly pb::FieldCodec<double> _repeated_euDispenser1Voltage_codec + = pb::FieldCodec.ForDouble(1210); + private readonly pbc::RepeatedField<double> euDispenser1Voltage_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Dispenser 1 Voltage (Min = 0, Max = 1000, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuDispenser1Voltage { + get { return euDispenser1Voltage_; } + } + + /// <summary>Field number for the "EuDispenser2Voltage" field.</summary> + public const int EuDispenser2VoltageFieldNumber = 152; + private static readonly pb::FieldCodec<double> _repeated_euDispenser2Voltage_codec + = pb::FieldCodec.ForDouble(1218); + private readonly pbc::RepeatedField<double> euDispenser2Voltage_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Dispenser 2 Voltage (Min = 0, Max = 1000, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuDispenser2Voltage { + get { return euDispenser2Voltage_; } + } + + /// <summary>Field number for the "EuDispenser3Voltage" field.</summary> + public const int EuDispenser3VoltageFieldNumber = 153; + private static readonly pb::FieldCodec<double> _repeated_euDispenser3Voltage_codec + = pb::FieldCodec.ForDouble(1226); + private readonly pbc::RepeatedField<double> euDispenser3Voltage_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Dispenser 3 Voltage (Min = 0, Max = 1000, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuDispenser3Voltage { + get { return euDispenser3Voltage_; } + } + + /// <summary>Field number for the "EuDispenser4Voltage" field.</summary> + public const int EuDispenser4VoltageFieldNumber = 154; + private static readonly pb::FieldCodec<double> _repeated_euDispenser4Voltage_codec + = pb::FieldCodec.ForDouble(1234); + private readonly pbc::RepeatedField<double> euDispenser4Voltage_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Dispenser 4 Voltage (Min = 0, Max = 1000, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuDispenser4Voltage { + get { return euDispenser4Voltage_; } + } + + /// <summary>Field number for the "EuDispenser5Voltage" field.</summary> + public const int EuDispenser5VoltageFieldNumber = 155; + private static readonly pb::FieldCodec<double> _repeated_euDispenser5Voltage_codec + = pb::FieldCodec.ForDouble(1242); + private readonly pbc::RepeatedField<double> euDispenser5Voltage_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Dispenser 5 Voltage (Min = 0, Max = 1000, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuDispenser5Voltage { + get { return euDispenser5Voltage_; } + } + + /// <summary>Field number for the "EuDispenser6Voltage" field.</summary> + public const int EuDispenser6VoltageFieldNumber = 156; + private static readonly pb::FieldCodec<double> _repeated_euDispenser6Voltage_codec + = pb::FieldCodec.ForDouble(1250); + private readonly pbc::RepeatedField<double> euDispenser6Voltage_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Dispenser 6 Voltage (Min = 0, Max = 1000, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuDispenser6Voltage { + get { return euDispenser6Voltage_; } + } + + /// <summary>Field number for the "EuDispenser7Voltage" field.</summary> + public const int EuDispenser7VoltageFieldNumber = 157; + private static readonly pb::FieldCodec<double> _repeated_euDispenser7Voltage_codec + = pb::FieldCodec.ForDouble(1258); + private readonly pbc::RepeatedField<double> euDispenser7Voltage_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Dispenser 7 Voltage (Min = 0, Max = 1000, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuDispenser7Voltage { + get { return euDispenser7Voltage_; } + } + + /// <summary>Field number for the "EuDispenser8Voltage" field.</summary> + public const int EuDispenser8VoltageFieldNumber = 158; + private static readonly pb::FieldCodec<double> _repeated_euDispenser8Voltage_codec + = pb::FieldCodec.ForDouble(1266); + private readonly pbc::RepeatedField<double> euDispenser8Voltage_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Dispenser 8 Voltage (Min = 0, Max = 1000, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuDispenser8Voltage { + get { return euDispenser8Voltage_; } + } + + /// <summary>Field number for the "EuDispenser9Voltage" field.</summary> + public const int EuDispenser9VoltageFieldNumber = 159; + private static readonly pb::FieldCodec<double> _repeated_euDispenser9Voltage_codec + = pb::FieldCodec.ForDouble(1274); + private readonly pbc::RepeatedField<double> euDispenser9Voltage_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Dispenser 9 Voltage (Min = 0, Max = 1000, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuDispenser9Voltage { + get { return euDispenser9Voltage_; } + } + + /// <summary>Field number for the "EuDispenser10Voltage" field.</summary> + public const int EuDispenser10VoltageFieldNumber = 160; + private static readonly pb::FieldCodec<double> _repeated_euDispenser10Voltage_codec + = pb::FieldCodec.ForDouble(1282); + private readonly pbc::RepeatedField<double> euDispenser10Voltage_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Dispenser 10 Voltage (Min = 0, Max = 1000, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuDispenser10Voltage { + get { return euDispenser10Voltage_; } + } + + /// <summary>Field number for the "EuDispenser11Voltage" field.</summary> + public const int EuDispenser11VoltageFieldNumber = 161; + private static readonly pb::FieldCodec<double> _repeated_euDispenser11Voltage_codec + = pb::FieldCodec.ForDouble(1290); + private readonly pbc::RepeatedField<double> euDispenser11Voltage_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Dispenser 11 Voltage (Min = 0, Max = 1000, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuDispenser11Voltage { + get { return euDispenser11Voltage_; } + } + + /// <summary>Field number for the "EuDispenser12Voltage" field.</summary> + public const int EuDispenser12VoltageFieldNumber = 162; + private static readonly pb::FieldCodec<double> _repeated_euDispenser12Voltage_codec + = pb::FieldCodec.ForDouble(1298); + private readonly pbc::RepeatedField<double> euDispenser12Voltage_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Dispenser 12 Voltage (Min = 0, Max = 1000, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuDispenser12Voltage { + get { return euDispenser12Voltage_; } + } + + /// <summary>Field number for the "EuDispenser13Voltage" field.</summary> + public const int EuDispenser13VoltageFieldNumber = 163; + private static readonly pb::FieldCodec<double> _repeated_euDispenser13Voltage_codec + = pb::FieldCodec.ForDouble(1306); + private readonly pbc::RepeatedField<double> euDispenser13Voltage_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Dispenser 13 Voltage (Min = 0, Max = 1000, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuDispenser13Voltage { + get { return euDispenser13Voltage_; } + } + + /// <summary>Field number for the "EuDispenser14Voltage" field.</summary> + public const int EuDispenser14VoltageFieldNumber = 164; + private static readonly pb::FieldCodec<double> _repeated_euDispenser14Voltage_codec + = pb::FieldCodec.ForDouble(1314); + private readonly pbc::RepeatedField<double> euDispenser14Voltage_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Dispenser 14 Voltage (Min = 0, Max = 1000, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuDispenser14Voltage { + get { return euDispenser14Voltage_; } + } + + /// <summary>Field number for the "EuDispenser15Voltage" field.</summary> + public const int EuDispenser15VoltageFieldNumber = 165; + private static readonly pb::FieldCodec<double> _repeated_euDispenser15Voltage_codec + = pb::FieldCodec.ForDouble(1322); + private readonly pbc::RepeatedField<double> euDispenser15Voltage_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Dispenser 15 Voltage (Min = 0, Max = 1000, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuDispenser15Voltage { + get { return euDispenser15Voltage_; } + } + + /// <summary>Field number for the "EuDispenser16Voltage" field.</summary> + public const int EuDispenser16VoltageFieldNumber = 166; + private static readonly pb::FieldCodec<double> _repeated_euDispenser16Voltage_codec + = pb::FieldCodec.ForDouble(1330); + private readonly pbc::RepeatedField<double> euDispenser16Voltage_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Dispenser 16 Voltage (Min = 0, Max = 1000, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuDispenser16Voltage { + get { return euDispenser16Voltage_; } + } + + /// <summary>Field number for the "EuLubricantPumpVoltage" field.</summary> + public const int EuLubricantPumpVoltageFieldNumber = 167; + private static readonly pb::FieldCodec<double> _repeated_euLubricantPumpVoltage_codec + = pb::FieldCodec.ForDouble(1338); + private readonly pbc::RepeatedField<double> euLubricantPumpVoltage_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Lubricant Pump Voltage (Min = 0, Max = 1000, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuLubricantPumpVoltage { + get { return euLubricantPumpVoltage_; } + } + + /// <summary>Field number for the "EuDispenser1Pressure" field.</summary> + public const int EuDispenser1PressureFieldNumber = 168; + private static readonly pb::FieldCodec<double> _repeated_euDispenser1Pressure_codec + = pb::FieldCodec.ForDouble(1346); + private readonly pbc::RepeatedField<double> euDispenser1Pressure_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Dispenser 1 Pressure (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuDispenser1Pressure { + get { return euDispenser1Pressure_; } + } + + /// <summary>Field number for the "EuDispenser2Pressure" field.</summary> + public const int EuDispenser2PressureFieldNumber = 169; + private static readonly pb::FieldCodec<double> _repeated_euDispenser2Pressure_codec + = pb::FieldCodec.ForDouble(1354); + private readonly pbc::RepeatedField<double> euDispenser2Pressure_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Dispenser 2 Pressure (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuDispenser2Pressure { + get { return euDispenser2Pressure_; } + } + + /// <summary>Field number for the "EuDispenser3Pressure" field.</summary> + public const int EuDispenser3PressureFieldNumber = 170; + private static readonly pb::FieldCodec<double> _repeated_euDispenser3Pressure_codec + = pb::FieldCodec.ForDouble(1362); + private readonly pbc::RepeatedField<double> euDispenser3Pressure_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Dispenser 3 Pressure (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuDispenser3Pressure { + get { return euDispenser3Pressure_; } + } + + /// <summary>Field number for the "EuDispenser4Pressure" field.</summary> + public const int EuDispenser4PressureFieldNumber = 171; + private static readonly pb::FieldCodec<double> _repeated_euDispenser4Pressure_codec + = pb::FieldCodec.ForDouble(1370); + private readonly pbc::RepeatedField<double> euDispenser4Pressure_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Dispenser 4 Pressure (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuDispenser4Pressure { + get { return euDispenser4Pressure_; } + } + + /// <summary>Field number for the "EuDispenser5Pressure" field.</summary> + public const int EuDispenser5PressureFieldNumber = 172; + private static readonly pb::FieldCodec<double> _repeated_euDispenser5Pressure_codec + = pb::FieldCodec.ForDouble(1378); + private readonly pbc::RepeatedField<double> euDispenser5Pressure_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Dispenser 5 Pressure (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuDispenser5Pressure { + get { return euDispenser5Pressure_; } + } + + /// <summary>Field number for the "EuDispenser6Pressure" field.</summary> + public const int EuDispenser6PressureFieldNumber = 173; + private static readonly pb::FieldCodec<double> _repeated_euDispenser6Pressure_codec + = pb::FieldCodec.ForDouble(1386); + private readonly pbc::RepeatedField<double> euDispenser6Pressure_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Dispenser 6 Pressure (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuDispenser6Pressure { + get { return euDispenser6Pressure_; } + } + + /// <summary>Field number for the "EuDispenser7Pressure" field.</summary> + public const int EuDispenser7PressureFieldNumber = 174; + private static readonly pb::FieldCodec<double> _repeated_euDispenser7Pressure_codec + = pb::FieldCodec.ForDouble(1394); + private readonly pbc::RepeatedField<double> euDispenser7Pressure_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Dispenser 7 Pressure (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuDispenser7Pressure { + get { return euDispenser7Pressure_; } + } + + /// <summary>Field number for the "EuDispenser8Pressure" field.</summary> + public const int EuDispenser8PressureFieldNumber = 175; + private static readonly pb::FieldCodec<double> _repeated_euDispenser8Pressure_codec + = pb::FieldCodec.ForDouble(1402); + private readonly pbc::RepeatedField<double> euDispenser8Pressure_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Dispenser 8 Pressure (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuDispenser8Pressure { + get { return euDispenser8Pressure_; } + } + + /// <summary>Field number for the "EuLubricantPressure" field.</summary> + public const int EuLubricantPressureFieldNumber = 176; + private static readonly pb::FieldCodec<double> _repeated_euLubricantPressure_codec + = pb::FieldCodec.ForDouble(1410); + private readonly pbc::RepeatedField<double> euLubricantPressure_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Lubricant Pressure (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuLubricantPressure { + get { return euLubricantPressure_; } + } + + /// <summary>Field number for the "EuMidTank1Level" field.</summary> + public const int EuMidTank1LevelFieldNumber = 177; + private static readonly pb::FieldCodec<double> _repeated_euMidTank1Level_codec + = pb::FieldCodec.ForDouble(1418); + private readonly pbc::RepeatedField<double> euMidTank1Level_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Mid Tank 1 Level (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuMidTank1Level { + get { return euMidTank1Level_; } + } + + /// <summary>Field number for the "EuMidTank2Level" field.</summary> + public const int EuMidTank2LevelFieldNumber = 178; + private static readonly pb::FieldCodec<double> _repeated_euMidTank2Level_codec + = pb::FieldCodec.ForDouble(1426); + private readonly pbc::RepeatedField<double> euMidTank2Level_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Mid Tank 2 Level (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuMidTank2Level { + get { return euMidTank2Level_; } + } + + /// <summary>Field number for the "EuMidTank3Level" field.</summary> + public const int EuMidTank3LevelFieldNumber = 179; + private static readonly pb::FieldCodec<double> _repeated_euMidTank3Level_codec + = pb::FieldCodec.ForDouble(1434); + private readonly pbc::RepeatedField<double> euMidTank3Level_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Mid Tank 3 Level (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuMidTank3Level { + get { return euMidTank3Level_; } + } + + /// <summary>Field number for the "EuMidTank4Level" field.</summary> + public const int EuMidTank4LevelFieldNumber = 180; + private static readonly pb::FieldCodec<double> _repeated_euMidTank4Level_codec + = pb::FieldCodec.ForDouble(1442); + private readonly pbc::RepeatedField<double> euMidTank4Level_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Mid Tank 4 Level (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuMidTank4Level { + get { return euMidTank4Level_; } + } + + /// <summary>Field number for the "EuMidTank5Level" field.</summary> + public const int EuMidTank5LevelFieldNumber = 181; + private static readonly pb::FieldCodec<double> _repeated_euMidTank5Level_codec + = pb::FieldCodec.ForDouble(1450); + private readonly pbc::RepeatedField<double> euMidTank5Level_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Mid Tank 5 Level (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuMidTank5Level { + get { return euMidTank5Level_; } + } + + /// <summary>Field number for the "EuMidTank6Level" field.</summary> + public const int EuMidTank6LevelFieldNumber = 182; + private static readonly pb::FieldCodec<double> _repeated_euMidTank6Level_codec + = pb::FieldCodec.ForDouble(1458); + private readonly pbc::RepeatedField<double> euMidTank6Level_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Mid Tank 6 Level (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuMidTank6Level { + get { return euMidTank6Level_; } + } + + /// <summary>Field number for the "EuMidTank7Level" field.</summary> + public const int EuMidTank7LevelFieldNumber = 183; + private static readonly pb::FieldCodec<double> _repeated_euMidTank7Level_codec + = pb::FieldCodec.ForDouble(1466); + private readonly pbc::RepeatedField<double> euMidTank7Level_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Mid Tank 7 Level (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuMidTank7Level { + get { return euMidTank7Level_; } + } + + /// <summary>Field number for the "EuMidTank8Level" field.</summary> + public const int EuMidTank8LevelFieldNumber = 184; + private static readonly pb::FieldCodec<double> _repeated_euMidTank8Level_codec + = pb::FieldCodec.ForDouble(1474); + private readonly pbc::RepeatedField<double> euMidTank8Level_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Mid Tank 8 Level (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuMidTank8Level { + get { return euMidTank8Level_; } + } + + /// <summary>Field number for the "EuChillerTemperature" field.</summary> + public const int EuChillerTemperatureFieldNumber = 185; + private static readonly pb::FieldCodec<double> _repeated_euChillerTemperature_codec + = pb::FieldCodec.ForDouble(1482); + private readonly pbc::RepeatedField<double> euChillerTemperature_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Chiller Temperature (Min = 0, Max = 300, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuChillerTemperature { + get { return euChillerTemperature_; } + } + + /// <summary>Field number for the "EuHeadRightAirFlow" field.</summary> + public const int EuHeadRightAirFlowFieldNumber = 186; + private static readonly pb::FieldCodec<double> _repeated_euHeadRightAirFlow_codec + = pb::FieldCodec.ForDouble(1490); + private readonly pbc::RepeatedField<double> euHeadRightAirFlow_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Head Right Air Flow (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuHeadRightAirFlow { + get { return euHeadRightAirFlow_; } + } + + /// <summary>Field number for the "EuHeadLeftAirFlow" field.</summary> + public const int EuHeadLeftAirFlowFieldNumber = 187; + private static readonly pb::FieldCodec<double> _repeated_euHeadLeftAirFlow_codec + = pb::FieldCodec.ForDouble(1498); + private readonly pbc::RepeatedField<double> euHeadLeftAirFlow_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Head Left Air Flow (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuHeadLeftAirFlow { + get { return euHeadLeftAirFlow_; } + } + + /// <summary>Field number for the "EuHeadRightVoltage" field.</summary> + public const int EuHeadRightVoltageFieldNumber = 188; + private static readonly pb::FieldCodec<double> _repeated_euHeadRightVoltage_codec + = pb::FieldCodec.ForDouble(1506); + private readonly pbc::RepeatedField<double> euHeadRightVoltage_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Head Right Voltage (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuHeadRightVoltage { + get { return euHeadRightVoltage_; } + } + + /// <summary>Field number for the "EuHeadLeftVoltage" field.</summary> + public const int EuHeadLeftVoltageFieldNumber = 189; + private static readonly pb::FieldCodec<double> _repeated_euHeadLeftVoltage_codec + = pb::FieldCodec.ForDouble(1514); + private readonly pbc::RepeatedField<double> euHeadLeftVoltage_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Head Left Voltage (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuHeadLeftVoltage { + get { return euHeadLeftVoltage_; } + } + + /// <summary>Field number for the "EuDryerAirFlow" field.</summary> + public const int EuDryerAirFlowFieldNumber = 190; + private static readonly pb::FieldCodec<double> _repeated_euDryerAirFlow_codec + = pb::FieldCodec.ForDouble(1522); + private readonly pbc::RepeatedField<double> euDryerAirFlow_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Dryer Air Flow (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuDryerAirFlow { + get { return euDryerAirFlow_; } + } + + /// <summary>Field number for the "EuBlowerVoltage" field.</summary> + public const int EuBlowerVoltageFieldNumber = 191; + private static readonly pb::FieldCodec<double> _repeated_euBlowerVoltage_codec + = pb::FieldCodec.ForDouble(1530); + private readonly pbc::RepeatedField<double> euBlowerVoltage_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Blower Voltage (Min = 0, Max = 100, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuBlowerVoltage { + get { return euBlowerVoltage_; } + } + + /// <summary>Field number for the "EuWasteLevel" field.</summary> + public const int EuWasteLevelFieldNumber = 192; + private static readonly pb::FieldCodec<double> _repeated_euWasteLevel_codec + = pb::FieldCodec.ForDouble(1538); + private readonly pbc::RepeatedField<double> euWasteLevel_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Waste Level (Min = 0, Max = 9, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuWasteLevel { + get { return euWasteLevel_; } + } + + /// <summary>Field number for the "EuSpare1" field.</summary> + public const int EuSpare1FieldNumber = 193; + private static readonly pb::FieldCodec<double> _repeated_euSpare1_codec + = pb::FieldCodec.ForDouble(1546); + private readonly pbc::RepeatedField<double> euSpare1_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Spare 1 (Min = 0, Max = 10000, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuSpare1 { + get { return euSpare1_; } + } + + /// <summary>Field number for the "EuSpare2" field.</summary> + public const int EuSpare2FieldNumber = 194; + private static readonly pb::FieldCodec<double> _repeated_euSpare2_codec + = pb::FieldCodec.ForDouble(1554); + private readonly pbc::RepeatedField<double> euSpare2_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Spare 2 (Min = 0, Max = 10000, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuSpare2 { + get { return euSpare2_; } + } + + /// <summary>Field number for the "EuSpare3" field.</summary> + public const int EuSpare3FieldNumber = 195; + private static readonly pb::FieldCodec<double> _repeated_euSpare3_codec + = pb::FieldCodec.ForDouble(1562); + private readonly pbc::RepeatedField<double> euSpare3_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Spare 3 (Min = 0, Max = 10000, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuSpare3 { + get { return euSpare3_; } + } + + /// <summary>Field number for the "EuSpare4" field.</summary> + public const int EuSpare4FieldNumber = 196; + private static readonly pb::FieldCodec<double> _repeated_euSpare4_codec + = pb::FieldCodec.ForDouble(1570); + private readonly pbc::RepeatedField<double> euSpare4_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Spare 4 (Min = 0, Max = 10000, PPF = 10) + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuSpare4 { + get { return euSpare4_; } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { return Equals(other as DiagnosticsMonitors); @@ -1538,6 +3046,109 @@ namespace Tango.PMR.Diagnostics { if(!shinkoSetValue_.Equals(other.shinkoSetValue_)) return false; if(!shinkoCurrentValue_.Equals(other.shinkoCurrentValue_)) return false; if(!totalWHSFlow_.Equals(other.totalWHSFlow_)) return false; + if(!euWinder1Dancer_.Equals(other.euWinder1Dancer_)) return false; + if(!euWinder2Dancer_.Equals(other.euWinder2Dancer_)) return false; + if(!euWinder3Dancer_.Equals(other.euWinder3Dancer_)) return false; + if(!euWinder4Dancer_.Equals(other.euWinder4Dancer_)) return false; + if(!euWinder1Motor_.Equals(other.euWinder1Motor_)) return false; + if(!euWinder2Motor_.Equals(other.euWinder2Motor_)) return false; + if(!euWinder3Motor_.Equals(other.euWinder3Motor_)) return false; + if(!euWinder4Motor_.Equals(other.euWinder4Motor_)) return false; + if(!euDryerMotorVelocity_.Equals(other.euDryerMotorVelocity_)) return false; + if(!euDryerMotorTargetVelocity_.Equals(other.euDryerMotorTargetVelocity_)) return false; + if(!euDryerMotorCurrent_.Equals(other.euDryerMotorCurrent_)) return false; + if(!euPullerDancer_.Equals(other.euPullerDancer_)) return false; + if(!euPullerMotor_.Equals(other.euPullerMotor_)) return false; + if(!euDryerZone1Temperature_.Equals(other.euDryerZone1Temperature_)) return false; + if(!euDryerZone2Temperature_.Equals(other.euDryerZone2Temperature_)) return false; + if(!euDryerZone3Temperature_.Equals(other.euDryerZone3Temperature_)) return false; + if(!euHeadZone1Temperature_.Equals(other.euHeadZone1Temperature_)) return false; + if(!euHeadZone2Temperature_.Equals(other.euHeadZone2Temperature_)) return false; + if(!euHeadZone3Temperature_.Equals(other.euHeadZone3Temperature_)) return false; + if(!euMixerTemperature_.Equals(other.euMixerTemperature_)) return false; + if(!euTunnelTemperature_.Equals(other.euTunnelTemperature_)) return false; + if(!euLubricantTemperature_.Equals(other.euLubricantTemperature_)) return false; + if(!euAmbientTemperature_.Equals(other.euAmbientTemperature_)) return false; + if(!euElectricalCabinetTemperature_.Equals(other.euElectricalCabinetTemperature_)) return false; + if(!euDryerZone1Current_.Equals(other.euDryerZone1Current_)) return false; + if(!euDryerZone2Current_.Equals(other.euDryerZone2Current_)) return false; + if(!euDryerZone3Current_.Equals(other.euDryerZone3Current_)) return false; + if(!euHeadZone1Current_.Equals(other.euHeadZone1Current_)) return false; + if(!euHeadZone2Current_.Equals(other.euHeadZone2Current_)) return false; + if(!euHeadZone3Current_.Equals(other.euHeadZone3Current_)) return false; + if(!euMixerCurrent_.Equals(other.euMixerCurrent_)) return false; + if(!euTunnelCurrent_.Equals(other.euTunnelCurrent_)) return false; + if(!euLubricantCurrent_.Equals(other.euLubricantCurrent_)) return false; + if(!euBtsr1Speed_.Equals(other.euBtsr1Speed_)) return false; + if(!euBtsr1SpeedAv_.Equals(other.euBtsr1SpeedAv_)) return false; + if(!euBtsr1DispAv_.Equals(other.euBtsr1DispAv_)) return false; + if(!euBtsr1PeakMin_.Equals(other.euBtsr1PeakMin_)) return false; + if(!euBtsr1PeakMax_.Equals(other.euBtsr1PeakMax_)) return false; + if(!euBtsr2Speed_.Equals(other.euBtsr2Speed_)) return false; + if(!euBtsr2SpeedAv_.Equals(other.euBtsr2SpeedAv_)) return false; + if(!euBtsr2DispAv_.Equals(other.euBtsr2DispAv_)) return false; + if(!euBtsr2PeakMin_.Equals(other.euBtsr2PeakMin_)) return false; + if(!euBtsr2PeakMax_.Equals(other.euBtsr2PeakMax_)) return false; + if(!euBtsr3Speed_.Equals(other.euBtsr3Speed_)) return false; + if(!euBtsr3SpeedAv_.Equals(other.euBtsr3SpeedAv_)) return false; + if(!euBtsr3DispAv_.Equals(other.euBtsr3DispAv_)) return false; + if(!euBtsr3PeakMin_.Equals(other.euBtsr3PeakMin_)) return false; + if(!euBtsr3PeakMax_.Equals(other.euBtsr3PeakMax_)) return false; + if(!euBtsr4Speed_.Equals(other.euBtsr4Speed_)) return false; + if(!euBtsr4SpeedAv_.Equals(other.euBtsr4SpeedAv_)) return false; + if(!euBtsr4PeakMin_.Equals(other.euBtsr4PeakMin_)) return false; + if(!euBtsr4PeakMax_.Equals(other.euBtsr4PeakMax_)) return false; + if(!euBtsr4DispAv_.Equals(other.euBtsr4DispAv_)) return false; + if(!euTemperatureLoggers_.Equals(other.euTemperatureLoggers_)) return false; + if(!euPumpFlows_.Equals(other.euPumpFlows_)) return false; + if(!euInkLinesPressure_.Equals(other.euInkLinesPressure_)) return false; + if(!euSpareDataArray_.Equals(other.euSpareDataArray_)) return false; + if(!euDispenser1Voltage_.Equals(other.euDispenser1Voltage_)) return false; + if(!euDispenser2Voltage_.Equals(other.euDispenser2Voltage_)) return false; + if(!euDispenser3Voltage_.Equals(other.euDispenser3Voltage_)) return false; + if(!euDispenser4Voltage_.Equals(other.euDispenser4Voltage_)) return false; + if(!euDispenser5Voltage_.Equals(other.euDispenser5Voltage_)) return false; + if(!euDispenser6Voltage_.Equals(other.euDispenser6Voltage_)) return false; + if(!euDispenser7Voltage_.Equals(other.euDispenser7Voltage_)) return false; + if(!euDispenser8Voltage_.Equals(other.euDispenser8Voltage_)) return false; + if(!euDispenser9Voltage_.Equals(other.euDispenser9Voltage_)) return false; + if(!euDispenser10Voltage_.Equals(other.euDispenser10Voltage_)) return false; + if(!euDispenser11Voltage_.Equals(other.euDispenser11Voltage_)) return false; + if(!euDispenser12Voltage_.Equals(other.euDispenser12Voltage_)) return false; + if(!euDispenser13Voltage_.Equals(other.euDispenser13Voltage_)) return false; + if(!euDispenser14Voltage_.Equals(other.euDispenser14Voltage_)) return false; + if(!euDispenser15Voltage_.Equals(other.euDispenser15Voltage_)) return false; + if(!euDispenser16Voltage_.Equals(other.euDispenser16Voltage_)) return false; + if(!euLubricantPumpVoltage_.Equals(other.euLubricantPumpVoltage_)) return false; + if(!euDispenser1Pressure_.Equals(other.euDispenser1Pressure_)) return false; + if(!euDispenser2Pressure_.Equals(other.euDispenser2Pressure_)) return false; + if(!euDispenser3Pressure_.Equals(other.euDispenser3Pressure_)) return false; + if(!euDispenser4Pressure_.Equals(other.euDispenser4Pressure_)) return false; + if(!euDispenser5Pressure_.Equals(other.euDispenser5Pressure_)) return false; + if(!euDispenser6Pressure_.Equals(other.euDispenser6Pressure_)) return false; + if(!euDispenser7Pressure_.Equals(other.euDispenser7Pressure_)) return false; + if(!euDispenser8Pressure_.Equals(other.euDispenser8Pressure_)) return false; + if(!euLubricantPressure_.Equals(other.euLubricantPressure_)) return false; + if(!euMidTank1Level_.Equals(other.euMidTank1Level_)) return false; + if(!euMidTank2Level_.Equals(other.euMidTank2Level_)) return false; + if(!euMidTank3Level_.Equals(other.euMidTank3Level_)) return false; + if(!euMidTank4Level_.Equals(other.euMidTank4Level_)) return false; + if(!euMidTank5Level_.Equals(other.euMidTank5Level_)) return false; + if(!euMidTank6Level_.Equals(other.euMidTank6Level_)) return false; + if(!euMidTank7Level_.Equals(other.euMidTank7Level_)) return false; + if(!euMidTank8Level_.Equals(other.euMidTank8Level_)) return false; + if(!euChillerTemperature_.Equals(other.euChillerTemperature_)) return false; + if(!euHeadRightAirFlow_.Equals(other.euHeadRightAirFlow_)) return false; + if(!euHeadLeftAirFlow_.Equals(other.euHeadLeftAirFlow_)) return false; + if(!euHeadRightVoltage_.Equals(other.euHeadRightVoltage_)) return false; + if(!euHeadLeftVoltage_.Equals(other.euHeadLeftVoltage_)) return false; + if(!euDryerAirFlow_.Equals(other.euDryerAirFlow_)) return false; + if(!euBlowerVoltage_.Equals(other.euBlowerVoltage_)) return false; + if(!euWasteLevel_.Equals(other.euWasteLevel_)) return false; + if(!euSpare1_.Equals(other.euSpare1_)) return false; + if(!euSpare2_.Equals(other.euSpare2_)) return false; + if(!euSpare3_.Equals(other.euSpare3_)) return false; + if(!euSpare4_.Equals(other.euSpare4_)) return false; return true; } @@ -1637,6 +3248,109 @@ namespace Tango.PMR.Diagnostics { hash ^= shinkoSetValue_.GetHashCode(); hash ^= shinkoCurrentValue_.GetHashCode(); hash ^= totalWHSFlow_.GetHashCode(); + hash ^= euWinder1Dancer_.GetHashCode(); + hash ^= euWinder2Dancer_.GetHashCode(); + hash ^= euWinder3Dancer_.GetHashCode(); + hash ^= euWinder4Dancer_.GetHashCode(); + hash ^= euWinder1Motor_.GetHashCode(); + hash ^= euWinder2Motor_.GetHashCode(); + hash ^= euWinder3Motor_.GetHashCode(); + hash ^= euWinder4Motor_.GetHashCode(); + hash ^= euDryerMotorVelocity_.GetHashCode(); + hash ^= euDryerMotorTargetVelocity_.GetHashCode(); + hash ^= euDryerMotorCurrent_.GetHashCode(); + hash ^= euPullerDancer_.GetHashCode(); + hash ^= euPullerMotor_.GetHashCode(); + hash ^= euDryerZone1Temperature_.GetHashCode(); + hash ^= euDryerZone2Temperature_.GetHashCode(); + hash ^= euDryerZone3Temperature_.GetHashCode(); + hash ^= euHeadZone1Temperature_.GetHashCode(); + hash ^= euHeadZone2Temperature_.GetHashCode(); + hash ^= euHeadZone3Temperature_.GetHashCode(); + hash ^= euMixerTemperature_.GetHashCode(); + hash ^= euTunnelTemperature_.GetHashCode(); + hash ^= euLubricantTemperature_.GetHashCode(); + hash ^= euAmbientTemperature_.GetHashCode(); + hash ^= euElectricalCabinetTemperature_.GetHashCode(); + hash ^= euDryerZone1Current_.GetHashCode(); + hash ^= euDryerZone2Current_.GetHashCode(); + hash ^= euDryerZone3Current_.GetHashCode(); + hash ^= euHeadZone1Current_.GetHashCode(); + hash ^= euHeadZone2Current_.GetHashCode(); + hash ^= euHeadZone3Current_.GetHashCode(); + hash ^= euMixerCurrent_.GetHashCode(); + hash ^= euTunnelCurrent_.GetHashCode(); + hash ^= euLubricantCurrent_.GetHashCode(); + hash ^= euBtsr1Speed_.GetHashCode(); + hash ^= euBtsr1SpeedAv_.GetHashCode(); + hash ^= euBtsr1DispAv_.GetHashCode(); + hash ^= euBtsr1PeakMin_.GetHashCode(); + hash ^= euBtsr1PeakMax_.GetHashCode(); + hash ^= euBtsr2Speed_.GetHashCode(); + hash ^= euBtsr2SpeedAv_.GetHashCode(); + hash ^= euBtsr2DispAv_.GetHashCode(); + hash ^= euBtsr2PeakMin_.GetHashCode(); + hash ^= euBtsr2PeakMax_.GetHashCode(); + hash ^= euBtsr3Speed_.GetHashCode(); + hash ^= euBtsr3SpeedAv_.GetHashCode(); + hash ^= euBtsr3DispAv_.GetHashCode(); + hash ^= euBtsr3PeakMin_.GetHashCode(); + hash ^= euBtsr3PeakMax_.GetHashCode(); + hash ^= euBtsr4Speed_.GetHashCode(); + hash ^= euBtsr4SpeedAv_.GetHashCode(); + hash ^= euBtsr4PeakMin_.GetHashCode(); + hash ^= euBtsr4PeakMax_.GetHashCode(); + hash ^= euBtsr4DispAv_.GetHashCode(); + hash ^= euTemperatureLoggers_.GetHashCode(); + hash ^= euPumpFlows_.GetHashCode(); + hash ^= euInkLinesPressure_.GetHashCode(); + hash ^= euSpareDataArray_.GetHashCode(); + hash ^= euDispenser1Voltage_.GetHashCode(); + hash ^= euDispenser2Voltage_.GetHashCode(); + hash ^= euDispenser3Voltage_.GetHashCode(); + hash ^= euDispenser4Voltage_.GetHashCode(); + hash ^= euDispenser5Voltage_.GetHashCode(); + hash ^= euDispenser6Voltage_.GetHashCode(); + hash ^= euDispenser7Voltage_.GetHashCode(); + hash ^= euDispenser8Voltage_.GetHashCode(); + hash ^= euDispenser9Voltage_.GetHashCode(); + hash ^= euDispenser10Voltage_.GetHashCode(); + hash ^= euDispenser11Voltage_.GetHashCode(); + hash ^= euDispenser12Voltage_.GetHashCode(); + hash ^= euDispenser13Voltage_.GetHashCode(); + hash ^= euDispenser14Voltage_.GetHashCode(); + hash ^= euDispenser15Voltage_.GetHashCode(); + hash ^= euDispenser16Voltage_.GetHashCode(); + hash ^= euLubricantPumpVoltage_.GetHashCode(); + hash ^= euDispenser1Pressure_.GetHashCode(); + hash ^= euDispenser2Pressure_.GetHashCode(); + hash ^= euDispenser3Pressure_.GetHashCode(); + hash ^= euDispenser4Pressure_.GetHashCode(); + hash ^= euDispenser5Pressure_.GetHashCode(); + hash ^= euDispenser6Pressure_.GetHashCode(); + hash ^= euDispenser7Pressure_.GetHashCode(); + hash ^= euDispenser8Pressure_.GetHashCode(); + hash ^= euLubricantPressure_.GetHashCode(); + hash ^= euMidTank1Level_.GetHashCode(); + hash ^= euMidTank2Level_.GetHashCode(); + hash ^= euMidTank3Level_.GetHashCode(); + hash ^= euMidTank4Level_.GetHashCode(); + hash ^= euMidTank5Level_.GetHashCode(); + hash ^= euMidTank6Level_.GetHashCode(); + hash ^= euMidTank7Level_.GetHashCode(); + hash ^= euMidTank8Level_.GetHashCode(); + hash ^= euChillerTemperature_.GetHashCode(); + hash ^= euHeadRightAirFlow_.GetHashCode(); + hash ^= euHeadLeftAirFlow_.GetHashCode(); + hash ^= euHeadRightVoltage_.GetHashCode(); + hash ^= euHeadLeftVoltage_.GetHashCode(); + hash ^= euDryerAirFlow_.GetHashCode(); + hash ^= euBlowerVoltage_.GetHashCode(); + hash ^= euWasteLevel_.GetHashCode(); + hash ^= euSpare1_.GetHashCode(); + hash ^= euSpare2_.GetHashCode(); + hash ^= euSpare3_.GetHashCode(); + hash ^= euSpare4_.GetHashCode(); return hash; } @@ -1740,6 +3454,109 @@ namespace Tango.PMR.Diagnostics { shinkoSetValue_.WriteTo(output, _repeated_shinkoSetValue_codec); shinkoCurrentValue_.WriteTo(output, _repeated_shinkoCurrentValue_codec); totalWHSFlow_.WriteTo(output, _repeated_totalWHSFlow_codec); + euWinder1Dancer_.WriteTo(output, _repeated_euWinder1Dancer_codec); + euWinder2Dancer_.WriteTo(output, _repeated_euWinder2Dancer_codec); + euWinder3Dancer_.WriteTo(output, _repeated_euWinder3Dancer_codec); + euWinder4Dancer_.WriteTo(output, _repeated_euWinder4Dancer_codec); + euWinder1Motor_.WriteTo(output, _repeated_euWinder1Motor_codec); + euWinder2Motor_.WriteTo(output, _repeated_euWinder2Motor_codec); + euWinder3Motor_.WriteTo(output, _repeated_euWinder3Motor_codec); + euWinder4Motor_.WriteTo(output, _repeated_euWinder4Motor_codec); + euDryerMotorVelocity_.WriteTo(output, _repeated_euDryerMotorVelocity_codec); + euDryerMotorTargetVelocity_.WriteTo(output, _repeated_euDryerMotorTargetVelocity_codec); + euDryerMotorCurrent_.WriteTo(output, _repeated_euDryerMotorCurrent_codec); + euPullerDancer_.WriteTo(output, _repeated_euPullerDancer_codec); + euPullerMotor_.WriteTo(output, _repeated_euPullerMotor_codec); + euDryerZone1Temperature_.WriteTo(output, _repeated_euDryerZone1Temperature_codec); + euDryerZone2Temperature_.WriteTo(output, _repeated_euDryerZone2Temperature_codec); + euDryerZone3Temperature_.WriteTo(output, _repeated_euDryerZone3Temperature_codec); + euHeadZone1Temperature_.WriteTo(output, _repeated_euHeadZone1Temperature_codec); + euHeadZone2Temperature_.WriteTo(output, _repeated_euHeadZone2Temperature_codec); + euHeadZone3Temperature_.WriteTo(output, _repeated_euHeadZone3Temperature_codec); + euMixerTemperature_.WriteTo(output, _repeated_euMixerTemperature_codec); + euTunnelTemperature_.WriteTo(output, _repeated_euTunnelTemperature_codec); + euLubricantTemperature_.WriteTo(output, _repeated_euLubricantTemperature_codec); + euAmbientTemperature_.WriteTo(output, _repeated_euAmbientTemperature_codec); + euElectricalCabinetTemperature_.WriteTo(output, _repeated_euElectricalCabinetTemperature_codec); + euDryerZone1Current_.WriteTo(output, _repeated_euDryerZone1Current_codec); + euDryerZone2Current_.WriteTo(output, _repeated_euDryerZone2Current_codec); + euDryerZone3Current_.WriteTo(output, _repeated_euDryerZone3Current_codec); + euHeadZone1Current_.WriteTo(output, _repeated_euHeadZone1Current_codec); + euHeadZone2Current_.WriteTo(output, _repeated_euHeadZone2Current_codec); + euHeadZone3Current_.WriteTo(output, _repeated_euHeadZone3Current_codec); + euMixerCurrent_.WriteTo(output, _repeated_euMixerCurrent_codec); + euTunnelCurrent_.WriteTo(output, _repeated_euTunnelCurrent_codec); + euLubricantCurrent_.WriteTo(output, _repeated_euLubricantCurrent_codec); + euBtsr1Speed_.WriteTo(output, _repeated_euBtsr1Speed_codec); + euBtsr1SpeedAv_.WriteTo(output, _repeated_euBtsr1SpeedAv_codec); + euBtsr1DispAv_.WriteTo(output, _repeated_euBtsr1DispAv_codec); + euBtsr1PeakMin_.WriteTo(output, _repeated_euBtsr1PeakMin_codec); + euBtsr1PeakMax_.WriteTo(output, _repeated_euBtsr1PeakMax_codec); + euBtsr2Speed_.WriteTo(output, _repeated_euBtsr2Speed_codec); + euBtsr2SpeedAv_.WriteTo(output, _repeated_euBtsr2SpeedAv_codec); + euBtsr2DispAv_.WriteTo(output, _repeated_euBtsr2DispAv_codec); + euBtsr2PeakMin_.WriteTo(output, _repeated_euBtsr2PeakMin_codec); + euBtsr2PeakMax_.WriteTo(output, _repeated_euBtsr2PeakMax_codec); + euBtsr3Speed_.WriteTo(output, _repeated_euBtsr3Speed_codec); + euBtsr3SpeedAv_.WriteTo(output, _repeated_euBtsr3SpeedAv_codec); + euBtsr3DispAv_.WriteTo(output, _repeated_euBtsr3DispAv_codec); + euBtsr3PeakMin_.WriteTo(output, _repeated_euBtsr3PeakMin_codec); + euBtsr3PeakMax_.WriteTo(output, _repeated_euBtsr3PeakMax_codec); + euBtsr4Speed_.WriteTo(output, _repeated_euBtsr4Speed_codec); + euBtsr4SpeedAv_.WriteTo(output, _repeated_euBtsr4SpeedAv_codec); + euBtsr4PeakMin_.WriteTo(output, _repeated_euBtsr4PeakMin_codec); + euBtsr4PeakMax_.WriteTo(output, _repeated_euBtsr4PeakMax_codec); + euBtsr4DispAv_.WriteTo(output, _repeated_euBtsr4DispAv_codec); + euTemperatureLoggers_.WriteTo(output, _repeated_euTemperatureLoggers_codec); + euPumpFlows_.WriteTo(output, _repeated_euPumpFlows_codec); + euInkLinesPressure_.WriteTo(output, _repeated_euInkLinesPressure_codec); + euSpareDataArray_.WriteTo(output, _repeated_euSpareDataArray_codec); + euDispenser1Voltage_.WriteTo(output, _repeated_euDispenser1Voltage_codec); + euDispenser2Voltage_.WriteTo(output, _repeated_euDispenser2Voltage_codec); + euDispenser3Voltage_.WriteTo(output, _repeated_euDispenser3Voltage_codec); + euDispenser4Voltage_.WriteTo(output, _repeated_euDispenser4Voltage_codec); + euDispenser5Voltage_.WriteTo(output, _repeated_euDispenser5Voltage_codec); + euDispenser6Voltage_.WriteTo(output, _repeated_euDispenser6Voltage_codec); + euDispenser7Voltage_.WriteTo(output, _repeated_euDispenser7Voltage_codec); + euDispenser8Voltage_.WriteTo(output, _repeated_euDispenser8Voltage_codec); + euDispenser9Voltage_.WriteTo(output, _repeated_euDispenser9Voltage_codec); + euDispenser10Voltage_.WriteTo(output, _repeated_euDispenser10Voltage_codec); + euDispenser11Voltage_.WriteTo(output, _repeated_euDispenser11Voltage_codec); + euDispenser12Voltage_.WriteTo(output, _repeated_euDispenser12Voltage_codec); + euDispenser13Voltage_.WriteTo(output, _repeated_euDispenser13Voltage_codec); + euDispenser14Voltage_.WriteTo(output, _repeated_euDispenser14Voltage_codec); + euDispenser15Voltage_.WriteTo(output, _repeated_euDispenser15Voltage_codec); + euDispenser16Voltage_.WriteTo(output, _repeated_euDispenser16Voltage_codec); + euLubricantPumpVoltage_.WriteTo(output, _repeated_euLubricantPumpVoltage_codec); + euDispenser1Pressure_.WriteTo(output, _repeated_euDispenser1Pressure_codec); + euDispenser2Pressure_.WriteTo(output, _repeated_euDispenser2Pressure_codec); + euDispenser3Pressure_.WriteTo(output, _repeated_euDispenser3Pressure_codec); + euDispenser4Pressure_.WriteTo(output, _repeated_euDispenser4Pressure_codec); + euDispenser5Pressure_.WriteTo(output, _repeated_euDispenser5Pressure_codec); + euDispenser6Pressure_.WriteTo(output, _repeated_euDispenser6Pressure_codec); + euDispenser7Pressure_.WriteTo(output, _repeated_euDispenser7Pressure_codec); + euDispenser8Pressure_.WriteTo(output, _repeated_euDispenser8Pressure_codec); + euLubricantPressure_.WriteTo(output, _repeated_euLubricantPressure_codec); + euMidTank1Level_.WriteTo(output, _repeated_euMidTank1Level_codec); + euMidTank2Level_.WriteTo(output, _repeated_euMidTank2Level_codec); + euMidTank3Level_.WriteTo(output, _repeated_euMidTank3Level_codec); + euMidTank4Level_.WriteTo(output, _repeated_euMidTank4Level_codec); + euMidTank5Level_.WriteTo(output, _repeated_euMidTank5Level_codec); + euMidTank6Level_.WriteTo(output, _repeated_euMidTank6Level_codec); + euMidTank7Level_.WriteTo(output, _repeated_euMidTank7Level_codec); + euMidTank8Level_.WriteTo(output, _repeated_euMidTank8Level_codec); + euChillerTemperature_.WriteTo(output, _repeated_euChillerTemperature_codec); + euHeadRightAirFlow_.WriteTo(output, _repeated_euHeadRightAirFlow_codec); + euHeadLeftAirFlow_.WriteTo(output, _repeated_euHeadLeftAirFlow_codec); + euHeadRightVoltage_.WriteTo(output, _repeated_euHeadRightVoltage_codec); + euHeadLeftVoltage_.WriteTo(output, _repeated_euHeadLeftVoltage_codec); + euDryerAirFlow_.WriteTo(output, _repeated_euDryerAirFlow_codec); + euBlowerVoltage_.WriteTo(output, _repeated_euBlowerVoltage_codec); + euWasteLevel_.WriteTo(output, _repeated_euWasteLevel_codec); + euSpare1_.WriteTo(output, _repeated_euSpare1_codec); + euSpare2_.WriteTo(output, _repeated_euSpare2_codec); + euSpare3_.WriteTo(output, _repeated_euSpare3_codec); + euSpare4_.WriteTo(output, _repeated_euSpare4_codec); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -1838,6 +3655,109 @@ namespace Tango.PMR.Diagnostics { size += shinkoSetValue_.CalculateSize(_repeated_shinkoSetValue_codec); size += shinkoCurrentValue_.CalculateSize(_repeated_shinkoCurrentValue_codec); size += totalWHSFlow_.CalculateSize(_repeated_totalWHSFlow_codec); + size += euWinder1Dancer_.CalculateSize(_repeated_euWinder1Dancer_codec); + size += euWinder2Dancer_.CalculateSize(_repeated_euWinder2Dancer_codec); + size += euWinder3Dancer_.CalculateSize(_repeated_euWinder3Dancer_codec); + size += euWinder4Dancer_.CalculateSize(_repeated_euWinder4Dancer_codec); + size += euWinder1Motor_.CalculateSize(_repeated_euWinder1Motor_codec); + size += euWinder2Motor_.CalculateSize(_repeated_euWinder2Motor_codec); + size += euWinder3Motor_.CalculateSize(_repeated_euWinder3Motor_codec); + size += euWinder4Motor_.CalculateSize(_repeated_euWinder4Motor_codec); + size += euDryerMotorVelocity_.CalculateSize(_repeated_euDryerMotorVelocity_codec); + size += euDryerMotorTargetVelocity_.CalculateSize(_repeated_euDryerMotorTargetVelocity_codec); + size += euDryerMotorCurrent_.CalculateSize(_repeated_euDryerMotorCurrent_codec); + size += euPullerDancer_.CalculateSize(_repeated_euPullerDancer_codec); + size += euPullerMotor_.CalculateSize(_repeated_euPullerMotor_codec); + size += euDryerZone1Temperature_.CalculateSize(_repeated_euDryerZone1Temperature_codec); + size += euDryerZone2Temperature_.CalculateSize(_repeated_euDryerZone2Temperature_codec); + size += euDryerZone3Temperature_.CalculateSize(_repeated_euDryerZone3Temperature_codec); + size += euHeadZone1Temperature_.CalculateSize(_repeated_euHeadZone1Temperature_codec); + size += euHeadZone2Temperature_.CalculateSize(_repeated_euHeadZone2Temperature_codec); + size += euHeadZone3Temperature_.CalculateSize(_repeated_euHeadZone3Temperature_codec); + size += euMixerTemperature_.CalculateSize(_repeated_euMixerTemperature_codec); + size += euTunnelTemperature_.CalculateSize(_repeated_euTunnelTemperature_codec); + size += euLubricantTemperature_.CalculateSize(_repeated_euLubricantTemperature_codec); + size += euAmbientTemperature_.CalculateSize(_repeated_euAmbientTemperature_codec); + size += euElectricalCabinetTemperature_.CalculateSize(_repeated_euElectricalCabinetTemperature_codec); + size += euDryerZone1Current_.CalculateSize(_repeated_euDryerZone1Current_codec); + size += euDryerZone2Current_.CalculateSize(_repeated_euDryerZone2Current_codec); + size += euDryerZone3Current_.CalculateSize(_repeated_euDryerZone3Current_codec); + size += euHeadZone1Current_.CalculateSize(_repeated_euHeadZone1Current_codec); + size += euHeadZone2Current_.CalculateSize(_repeated_euHeadZone2Current_codec); + size += euHeadZone3Current_.CalculateSize(_repeated_euHeadZone3Current_codec); + size += euMixerCurrent_.CalculateSize(_repeated_euMixerCurrent_codec); + size += euTunnelCurrent_.CalculateSize(_repeated_euTunnelCurrent_codec); + size += euLubricantCurrent_.CalculateSize(_repeated_euLubricantCurrent_codec); + size += euBtsr1Speed_.CalculateSize(_repeated_euBtsr1Speed_codec); + size += euBtsr1SpeedAv_.CalculateSize(_repeated_euBtsr1SpeedAv_codec); + size += euBtsr1DispAv_.CalculateSize(_repeated_euBtsr1DispAv_codec); + size += euBtsr1PeakMin_.CalculateSize(_repeated_euBtsr1PeakMin_codec); + size += euBtsr1PeakMax_.CalculateSize(_repeated_euBtsr1PeakMax_codec); + size += euBtsr2Speed_.CalculateSize(_repeated_euBtsr2Speed_codec); + size += euBtsr2SpeedAv_.CalculateSize(_repeated_euBtsr2SpeedAv_codec); + size += euBtsr2DispAv_.CalculateSize(_repeated_euBtsr2DispAv_codec); + size += euBtsr2PeakMin_.CalculateSize(_repeated_euBtsr2PeakMin_codec); + size += euBtsr2PeakMax_.CalculateSize(_repeated_euBtsr2PeakMax_codec); + size += euBtsr3Speed_.CalculateSize(_repeated_euBtsr3Speed_codec); + size += euBtsr3SpeedAv_.CalculateSize(_repeated_euBtsr3SpeedAv_codec); + size += euBtsr3DispAv_.CalculateSize(_repeated_euBtsr3DispAv_codec); + size += euBtsr3PeakMin_.CalculateSize(_repeated_euBtsr3PeakMin_codec); + size += euBtsr3PeakMax_.CalculateSize(_repeated_euBtsr3PeakMax_codec); + size += euBtsr4Speed_.CalculateSize(_repeated_euBtsr4Speed_codec); + size += euBtsr4SpeedAv_.CalculateSize(_repeated_euBtsr4SpeedAv_codec); + size += euBtsr4PeakMin_.CalculateSize(_repeated_euBtsr4PeakMin_codec); + size += euBtsr4PeakMax_.CalculateSize(_repeated_euBtsr4PeakMax_codec); + size += euBtsr4DispAv_.CalculateSize(_repeated_euBtsr4DispAv_codec); + size += euTemperatureLoggers_.CalculateSize(_repeated_euTemperatureLoggers_codec); + size += euPumpFlows_.CalculateSize(_repeated_euPumpFlows_codec); + size += euInkLinesPressure_.CalculateSize(_repeated_euInkLinesPressure_codec); + size += euSpareDataArray_.CalculateSize(_repeated_euSpareDataArray_codec); + size += euDispenser1Voltage_.CalculateSize(_repeated_euDispenser1Voltage_codec); + size += euDispenser2Voltage_.CalculateSize(_repeated_euDispenser2Voltage_codec); + size += euDispenser3Voltage_.CalculateSize(_repeated_euDispenser3Voltage_codec); + size += euDispenser4Voltage_.CalculateSize(_repeated_euDispenser4Voltage_codec); + size += euDispenser5Voltage_.CalculateSize(_repeated_euDispenser5Voltage_codec); + size += euDispenser6Voltage_.CalculateSize(_repeated_euDispenser6Voltage_codec); + size += euDispenser7Voltage_.CalculateSize(_repeated_euDispenser7Voltage_codec); + size += euDispenser8Voltage_.CalculateSize(_repeated_euDispenser8Voltage_codec); + size += euDispenser9Voltage_.CalculateSize(_repeated_euDispenser9Voltage_codec); + size += euDispenser10Voltage_.CalculateSize(_repeated_euDispenser10Voltage_codec); + size += euDispenser11Voltage_.CalculateSize(_repeated_euDispenser11Voltage_codec); + size += euDispenser12Voltage_.CalculateSize(_repeated_euDispenser12Voltage_codec); + size += euDispenser13Voltage_.CalculateSize(_repeated_euDispenser13Voltage_codec); + size += euDispenser14Voltage_.CalculateSize(_repeated_euDispenser14Voltage_codec); + size += euDispenser15Voltage_.CalculateSize(_repeated_euDispenser15Voltage_codec); + size += euDispenser16Voltage_.CalculateSize(_repeated_euDispenser16Voltage_codec); + size += euLubricantPumpVoltage_.CalculateSize(_repeated_euLubricantPumpVoltage_codec); + size += euDispenser1Pressure_.CalculateSize(_repeated_euDispenser1Pressure_codec); + size += euDispenser2Pressure_.CalculateSize(_repeated_euDispenser2Pressure_codec); + size += euDispenser3Pressure_.CalculateSize(_repeated_euDispenser3Pressure_codec); + size += euDispenser4Pressure_.CalculateSize(_repeated_euDispenser4Pressure_codec); + size += euDispenser5Pressure_.CalculateSize(_repeated_euDispenser5Pressure_codec); + size += euDispenser6Pressure_.CalculateSize(_repeated_euDispenser6Pressure_codec); + size += euDispenser7Pressure_.CalculateSize(_repeated_euDispenser7Pressure_codec); + size += euDispenser8Pressure_.CalculateSize(_repeated_euDispenser8Pressure_codec); + size += euLubricantPressure_.CalculateSize(_repeated_euLubricantPressure_codec); + size += euMidTank1Level_.CalculateSize(_repeated_euMidTank1Level_codec); + size += euMidTank2Level_.CalculateSize(_repeated_euMidTank2Level_codec); + size += euMidTank3Level_.CalculateSize(_repeated_euMidTank3Level_codec); + size += euMidTank4Level_.CalculateSize(_repeated_euMidTank4Level_codec); + size += euMidTank5Level_.CalculateSize(_repeated_euMidTank5Level_codec); + size += euMidTank6Level_.CalculateSize(_repeated_euMidTank6Level_codec); + size += euMidTank7Level_.CalculateSize(_repeated_euMidTank7Level_codec); + size += euMidTank8Level_.CalculateSize(_repeated_euMidTank8Level_codec); + size += euChillerTemperature_.CalculateSize(_repeated_euChillerTemperature_codec); + size += euHeadRightAirFlow_.CalculateSize(_repeated_euHeadRightAirFlow_codec); + size += euHeadLeftAirFlow_.CalculateSize(_repeated_euHeadLeftAirFlow_codec); + size += euHeadRightVoltage_.CalculateSize(_repeated_euHeadRightVoltage_codec); + size += euHeadLeftVoltage_.CalculateSize(_repeated_euHeadLeftVoltage_codec); + size += euDryerAirFlow_.CalculateSize(_repeated_euDryerAirFlow_codec); + size += euBlowerVoltage_.CalculateSize(_repeated_euBlowerVoltage_codec); + size += euWasteLevel_.CalculateSize(_repeated_euWasteLevel_codec); + size += euSpare1_.CalculateSize(_repeated_euSpare1_codec); + size += euSpare2_.CalculateSize(_repeated_euSpare2_codec); + size += euSpare3_.CalculateSize(_repeated_euSpare3_codec); + size += euSpare4_.CalculateSize(_repeated_euSpare4_codec); return size; } @@ -1939,6 +3859,109 @@ namespace Tango.PMR.Diagnostics { shinkoSetValue_.Add(other.shinkoSetValue_); shinkoCurrentValue_.Add(other.shinkoCurrentValue_); totalWHSFlow_.Add(other.totalWHSFlow_); + euWinder1Dancer_.Add(other.euWinder1Dancer_); + euWinder2Dancer_.Add(other.euWinder2Dancer_); + euWinder3Dancer_.Add(other.euWinder3Dancer_); + euWinder4Dancer_.Add(other.euWinder4Dancer_); + euWinder1Motor_.Add(other.euWinder1Motor_); + euWinder2Motor_.Add(other.euWinder2Motor_); + euWinder3Motor_.Add(other.euWinder3Motor_); + euWinder4Motor_.Add(other.euWinder4Motor_); + euDryerMotorVelocity_.Add(other.euDryerMotorVelocity_); + euDryerMotorTargetVelocity_.Add(other.euDryerMotorTargetVelocity_); + euDryerMotorCurrent_.Add(other.euDryerMotorCurrent_); + euPullerDancer_.Add(other.euPullerDancer_); + euPullerMotor_.Add(other.euPullerMotor_); + euDryerZone1Temperature_.Add(other.euDryerZone1Temperature_); + euDryerZone2Temperature_.Add(other.euDryerZone2Temperature_); + euDryerZone3Temperature_.Add(other.euDryerZone3Temperature_); + euHeadZone1Temperature_.Add(other.euHeadZone1Temperature_); + euHeadZone2Temperature_.Add(other.euHeadZone2Temperature_); + euHeadZone3Temperature_.Add(other.euHeadZone3Temperature_); + euMixerTemperature_.Add(other.euMixerTemperature_); + euTunnelTemperature_.Add(other.euTunnelTemperature_); + euLubricantTemperature_.Add(other.euLubricantTemperature_); + euAmbientTemperature_.Add(other.euAmbientTemperature_); + euElectricalCabinetTemperature_.Add(other.euElectricalCabinetTemperature_); + euDryerZone1Current_.Add(other.euDryerZone1Current_); + euDryerZone2Current_.Add(other.euDryerZone2Current_); + euDryerZone3Current_.Add(other.euDryerZone3Current_); + euHeadZone1Current_.Add(other.euHeadZone1Current_); + euHeadZone2Current_.Add(other.euHeadZone2Current_); + euHeadZone3Current_.Add(other.euHeadZone3Current_); + euMixerCurrent_.Add(other.euMixerCurrent_); + euTunnelCurrent_.Add(other.euTunnelCurrent_); + euLubricantCurrent_.Add(other.euLubricantCurrent_); + euBtsr1Speed_.Add(other.euBtsr1Speed_); + euBtsr1SpeedAv_.Add(other.euBtsr1SpeedAv_); + euBtsr1DispAv_.Add(other.euBtsr1DispAv_); + euBtsr1PeakMin_.Add(other.euBtsr1PeakMin_); + euBtsr1PeakMax_.Add(other.euBtsr1PeakMax_); + euBtsr2Speed_.Add(other.euBtsr2Speed_); + euBtsr2SpeedAv_.Add(other.euBtsr2SpeedAv_); + euBtsr2DispAv_.Add(other.euBtsr2DispAv_); + euBtsr2PeakMin_.Add(other.euBtsr2PeakMin_); + euBtsr2PeakMax_.Add(other.euBtsr2PeakMax_); + euBtsr3Speed_.Add(other.euBtsr3Speed_); + euBtsr3SpeedAv_.Add(other.euBtsr3SpeedAv_); + euBtsr3DispAv_.Add(other.euBtsr3DispAv_); + euBtsr3PeakMin_.Add(other.euBtsr3PeakMin_); + euBtsr3PeakMax_.Add(other.euBtsr3PeakMax_); + euBtsr4Speed_.Add(other.euBtsr4Speed_); + euBtsr4SpeedAv_.Add(other.euBtsr4SpeedAv_); + euBtsr4PeakMin_.Add(other.euBtsr4PeakMin_); + euBtsr4PeakMax_.Add(other.euBtsr4PeakMax_); + euBtsr4DispAv_.Add(other.euBtsr4DispAv_); + euTemperatureLoggers_.Add(other.euTemperatureLoggers_); + euPumpFlows_.Add(other.euPumpFlows_); + euInkLinesPressure_.Add(other.euInkLinesPressure_); + euSpareDataArray_.Add(other.euSpareDataArray_); + euDispenser1Voltage_.Add(other.euDispenser1Voltage_); + euDispenser2Voltage_.Add(other.euDispenser2Voltage_); + euDispenser3Voltage_.Add(other.euDispenser3Voltage_); + euDispenser4Voltage_.Add(other.euDispenser4Voltage_); + euDispenser5Voltage_.Add(other.euDispenser5Voltage_); + euDispenser6Voltage_.Add(other.euDispenser6Voltage_); + euDispenser7Voltage_.Add(other.euDispenser7Voltage_); + euDispenser8Voltage_.Add(other.euDispenser8Voltage_); + euDispenser9Voltage_.Add(other.euDispenser9Voltage_); + euDispenser10Voltage_.Add(other.euDispenser10Voltage_); + euDispenser11Voltage_.Add(other.euDispenser11Voltage_); + euDispenser12Voltage_.Add(other.euDispenser12Voltage_); + euDispenser13Voltage_.Add(other.euDispenser13Voltage_); + euDispenser14Voltage_.Add(other.euDispenser14Voltage_); + euDispenser15Voltage_.Add(other.euDispenser15Voltage_); + euDispenser16Voltage_.Add(other.euDispenser16Voltage_); + euLubricantPumpVoltage_.Add(other.euLubricantPumpVoltage_); + euDispenser1Pressure_.Add(other.euDispenser1Pressure_); + euDispenser2Pressure_.Add(other.euDispenser2Pressure_); + euDispenser3Pressure_.Add(other.euDispenser3Pressure_); + euDispenser4Pressure_.Add(other.euDispenser4Pressure_); + euDispenser5Pressure_.Add(other.euDispenser5Pressure_); + euDispenser6Pressure_.Add(other.euDispenser6Pressure_); + euDispenser7Pressure_.Add(other.euDispenser7Pressure_); + euDispenser8Pressure_.Add(other.euDispenser8Pressure_); + euLubricantPressure_.Add(other.euLubricantPressure_); + euMidTank1Level_.Add(other.euMidTank1Level_); + euMidTank2Level_.Add(other.euMidTank2Level_); + euMidTank3Level_.Add(other.euMidTank3Level_); + euMidTank4Level_.Add(other.euMidTank4Level_); + euMidTank5Level_.Add(other.euMidTank5Level_); + euMidTank6Level_.Add(other.euMidTank6Level_); + euMidTank7Level_.Add(other.euMidTank7Level_); + euMidTank8Level_.Add(other.euMidTank8Level_); + euChillerTemperature_.Add(other.euChillerTemperature_); + euHeadRightAirFlow_.Add(other.euHeadRightAirFlow_); + euHeadLeftAirFlow_.Add(other.euHeadLeftAirFlow_); + euHeadRightVoltage_.Add(other.euHeadRightVoltage_); + euHeadLeftVoltage_.Add(other.euHeadLeftVoltage_); + euDryerAirFlow_.Add(other.euDryerAirFlow_); + euBlowerVoltage_.Add(other.euBlowerVoltage_); + euWasteLevel_.Add(other.euWasteLevel_); + euSpare1_.Add(other.euSpare1_); + euSpare2_.Add(other.euSpare2_); + euSpare3_.Add(other.euSpare3_); + euSpare4_.Add(other.euSpare4_); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -2408,6 +4431,517 @@ namespace Tango.PMR.Diagnostics { totalWHSFlow_.AddEntriesFrom(input, _repeated_totalWHSFlow_codec); break; } + case 754: + case 753: { + euWinder1Dancer_.AddEntriesFrom(input, _repeated_euWinder1Dancer_codec); + break; + } + case 762: + case 761: { + euWinder2Dancer_.AddEntriesFrom(input, _repeated_euWinder2Dancer_codec); + break; + } + case 770: + case 769: { + euWinder3Dancer_.AddEntriesFrom(input, _repeated_euWinder3Dancer_codec); + break; + } + case 778: + case 777: { + euWinder4Dancer_.AddEntriesFrom(input, _repeated_euWinder4Dancer_codec); + break; + } + case 786: + case 785: { + euWinder1Motor_.AddEntriesFrom(input, _repeated_euWinder1Motor_codec); + break; + } + case 794: + case 793: { + euWinder2Motor_.AddEntriesFrom(input, _repeated_euWinder2Motor_codec); + break; + } + case 802: + case 801: { + euWinder3Motor_.AddEntriesFrom(input, _repeated_euWinder3Motor_codec); + break; + } + case 810: + case 809: { + euWinder4Motor_.AddEntriesFrom(input, _repeated_euWinder4Motor_codec); + break; + } + case 818: + case 817: { + euDryerMotorVelocity_.AddEntriesFrom(input, _repeated_euDryerMotorVelocity_codec); + break; + } + case 826: + case 825: { + euDryerMotorTargetVelocity_.AddEntriesFrom(input, _repeated_euDryerMotorTargetVelocity_codec); + break; + } + case 834: + case 833: { + euDryerMotorCurrent_.AddEntriesFrom(input, _repeated_euDryerMotorCurrent_codec); + break; + } + case 842: + case 841: { + euPullerDancer_.AddEntriesFrom(input, _repeated_euPullerDancer_codec); + break; + } + case 850: + case 849: { + euPullerMotor_.AddEntriesFrom(input, _repeated_euPullerMotor_codec); + break; + } + case 858: + case 857: { + euDryerZone1Temperature_.AddEntriesFrom(input, _repeated_euDryerZone1Temperature_codec); + break; + } + case 866: + case 865: { + euDryerZone2Temperature_.AddEntriesFrom(input, _repeated_euDryerZone2Temperature_codec); + break; + } + case 874: + case 873: { + euDryerZone3Temperature_.AddEntriesFrom(input, _repeated_euDryerZone3Temperature_codec); + break; + } + case 882: + case 881: { + euHeadZone1Temperature_.AddEntriesFrom(input, _repeated_euHeadZone1Temperature_codec); + break; + } + case 890: + case 889: { + euHeadZone2Temperature_.AddEntriesFrom(input, _repeated_euHeadZone2Temperature_codec); + break; + } + case 898: + case 897: { + euHeadZone3Temperature_.AddEntriesFrom(input, _repeated_euHeadZone3Temperature_codec); + break; + } + case 906: + case 905: { + euMixerTemperature_.AddEntriesFrom(input, _repeated_euMixerTemperature_codec); + break; + } + case 914: + case 913: { + euTunnelTemperature_.AddEntriesFrom(input, _repeated_euTunnelTemperature_codec); + break; + } + case 922: + case 921: { + euLubricantTemperature_.AddEntriesFrom(input, _repeated_euLubricantTemperature_codec); + break; + } + case 930: + case 929: { + euAmbientTemperature_.AddEntriesFrom(input, _repeated_euAmbientTemperature_codec); + break; + } + case 938: + case 937: { + euElectricalCabinetTemperature_.AddEntriesFrom(input, _repeated_euElectricalCabinetTemperature_codec); + break; + } + case 946: + case 945: { + euDryerZone1Current_.AddEntriesFrom(input, _repeated_euDryerZone1Current_codec); + break; + } + case 954: + case 953: { + euDryerZone2Current_.AddEntriesFrom(input, _repeated_euDryerZone2Current_codec); + break; + } + case 962: + case 961: { + euDryerZone3Current_.AddEntriesFrom(input, _repeated_euDryerZone3Current_codec); + break; + } + case 970: + case 969: { + euHeadZone1Current_.AddEntriesFrom(input, _repeated_euHeadZone1Current_codec); + break; + } + case 978: + case 977: { + euHeadZone2Current_.AddEntriesFrom(input, _repeated_euHeadZone2Current_codec); + break; + } + case 986: + case 985: { + euHeadZone3Current_.AddEntriesFrom(input, _repeated_euHeadZone3Current_codec); + break; + } + case 994: + case 993: { + euMixerCurrent_.AddEntriesFrom(input, _repeated_euMixerCurrent_codec); + break; + } + case 1002: + case 1001: { + euTunnelCurrent_.AddEntriesFrom(input, _repeated_euTunnelCurrent_codec); + break; + } + case 1010: + case 1009: { + euLubricantCurrent_.AddEntriesFrom(input, _repeated_euLubricantCurrent_codec); + break; + } + case 1018: + case 1017: { + euBtsr1Speed_.AddEntriesFrom(input, _repeated_euBtsr1Speed_codec); + break; + } + case 1026: + case 1025: { + euBtsr1SpeedAv_.AddEntriesFrom(input, _repeated_euBtsr1SpeedAv_codec); + break; + } + case 1034: + case 1033: { + euBtsr1DispAv_.AddEntriesFrom(input, _repeated_euBtsr1DispAv_codec); + break; + } + case 1042: + case 1041: { + euBtsr1PeakMin_.AddEntriesFrom(input, _repeated_euBtsr1PeakMin_codec); + break; + } + case 1050: + case 1049: { + euBtsr1PeakMax_.AddEntriesFrom(input, _repeated_euBtsr1PeakMax_codec); + break; + } + case 1058: + case 1057: { + euBtsr2Speed_.AddEntriesFrom(input, _repeated_euBtsr2Speed_codec); + break; + } + case 1066: + case 1065: { + euBtsr2SpeedAv_.AddEntriesFrom(input, _repeated_euBtsr2SpeedAv_codec); + break; + } + case 1074: + case 1073: { + euBtsr2DispAv_.AddEntriesFrom(input, _repeated_euBtsr2DispAv_codec); + break; + } + case 1082: + case 1081: { + euBtsr2PeakMin_.AddEntriesFrom(input, _repeated_euBtsr2PeakMin_codec); + break; + } + case 1090: + case 1089: { + euBtsr2PeakMax_.AddEntriesFrom(input, _repeated_euBtsr2PeakMax_codec); + break; + } + case 1098: + case 1097: { + euBtsr3Speed_.AddEntriesFrom(input, _repeated_euBtsr3Speed_codec); + break; + } + case 1106: + case 1105: { + euBtsr3SpeedAv_.AddEntriesFrom(input, _repeated_euBtsr3SpeedAv_codec); + break; + } + case 1114: + case 1113: { + euBtsr3DispAv_.AddEntriesFrom(input, _repeated_euBtsr3DispAv_codec); + break; + } + case 1122: + case 1121: { + euBtsr3PeakMin_.AddEntriesFrom(input, _repeated_euBtsr3PeakMin_codec); + break; + } + case 1130: + case 1129: { + euBtsr3PeakMax_.AddEntriesFrom(input, _repeated_euBtsr3PeakMax_codec); + break; + } + case 1138: + case 1137: { + euBtsr4Speed_.AddEntriesFrom(input, _repeated_euBtsr4Speed_codec); + break; + } + case 1146: + case 1145: { + euBtsr4SpeedAv_.AddEntriesFrom(input, _repeated_euBtsr4SpeedAv_codec); + break; + } + case 1154: + case 1153: { + euBtsr4PeakMin_.AddEntriesFrom(input, _repeated_euBtsr4PeakMin_codec); + break; + } + case 1162: + case 1161: { + euBtsr4PeakMax_.AddEntriesFrom(input, _repeated_euBtsr4PeakMax_codec); + break; + } + case 1170: + case 1169: { + euBtsr4DispAv_.AddEntriesFrom(input, _repeated_euBtsr4DispAv_codec); + break; + } + case 1178: { + euTemperatureLoggers_.AddEntriesFrom(input, _repeated_euTemperatureLoggers_codec); + break; + } + case 1186: { + euPumpFlows_.AddEntriesFrom(input, _repeated_euPumpFlows_codec); + break; + } + case 1194: { + euInkLinesPressure_.AddEntriesFrom(input, _repeated_euInkLinesPressure_codec); + break; + } + case 1202: { + euSpareDataArray_.AddEntriesFrom(input, _repeated_euSpareDataArray_codec); + break; + } + case 1210: + case 1209: { + euDispenser1Voltage_.AddEntriesFrom(input, _repeated_euDispenser1Voltage_codec); + break; + } + case 1218: + case 1217: { + euDispenser2Voltage_.AddEntriesFrom(input, _repeated_euDispenser2Voltage_codec); + break; + } + case 1226: + case 1225: { + euDispenser3Voltage_.AddEntriesFrom(input, _repeated_euDispenser3Voltage_codec); + break; + } + case 1234: + case 1233: { + euDispenser4Voltage_.AddEntriesFrom(input, _repeated_euDispenser4Voltage_codec); + break; + } + case 1242: + case 1241: { + euDispenser5Voltage_.AddEntriesFrom(input, _repeated_euDispenser5Voltage_codec); + break; + } + case 1250: + case 1249: { + euDispenser6Voltage_.AddEntriesFrom(input, _repeated_euDispenser6Voltage_codec); + break; + } + case 1258: + case 1257: { + euDispenser7Voltage_.AddEntriesFrom(input, _repeated_euDispenser7Voltage_codec); + break; + } + case 1266: + case 1265: { + euDispenser8Voltage_.AddEntriesFrom(input, _repeated_euDispenser8Voltage_codec); + break; + } + case 1274: + case 1273: { + euDispenser9Voltage_.AddEntriesFrom(input, _repeated_euDispenser9Voltage_codec); + break; + } + case 1282: + case 1281: { + euDispenser10Voltage_.AddEntriesFrom(input, _repeated_euDispenser10Voltage_codec); + break; + } + case 1290: + case 1289: { + euDispenser11Voltage_.AddEntriesFrom(input, _repeated_euDispenser11Voltage_codec); + break; + } + case 1298: + case 1297: { + euDispenser12Voltage_.AddEntriesFrom(input, _repeated_euDispenser12Voltage_codec); + break; + } + case 1306: + case 1305: { + euDispenser13Voltage_.AddEntriesFrom(input, _repeated_euDispenser13Voltage_codec); + break; + } + case 1314: + case 1313: { + euDispenser14Voltage_.AddEntriesFrom(input, _repeated_euDispenser14Voltage_codec); + break; + } + case 1322: + case 1321: { + euDispenser15Voltage_.AddEntriesFrom(input, _repeated_euDispenser15Voltage_codec); + break; + } + case 1330: + case 1329: { + euDispenser16Voltage_.AddEntriesFrom(input, _repeated_euDispenser16Voltage_codec); + break; + } + case 1338: + case 1337: { + euLubricantPumpVoltage_.AddEntriesFrom(input, _repeated_euLubricantPumpVoltage_codec); + break; + } + case 1346: + case 1345: { + euDispenser1Pressure_.AddEntriesFrom(input, _repeated_euDispenser1Pressure_codec); + break; + } + case 1354: + case 1353: { + euDispenser2Pressure_.AddEntriesFrom(input, _repeated_euDispenser2Pressure_codec); + break; + } + case 1362: + case 1361: { + euDispenser3Pressure_.AddEntriesFrom(input, _repeated_euDispenser3Pressure_codec); + break; + } + case 1370: + case 1369: { + euDispenser4Pressure_.AddEntriesFrom(input, _repeated_euDispenser4Pressure_codec); + break; + } + case 1378: + case 1377: { + euDispenser5Pressure_.AddEntriesFrom(input, _repeated_euDispenser5Pressure_codec); + break; + } + case 1386: + case 1385: { + euDispenser6Pressure_.AddEntriesFrom(input, _repeated_euDispenser6Pressure_codec); + break; + } + case 1394: + case 1393: { + euDispenser7Pressure_.AddEntriesFrom(input, _repeated_euDispenser7Pressure_codec); + break; + } + case 1402: + case 1401: { + euDispenser8Pressure_.AddEntriesFrom(input, _repeated_euDispenser8Pressure_codec); + break; + } + case 1410: + case 1409: { + euLubricantPressure_.AddEntriesFrom(input, _repeated_euLubricantPressure_codec); + break; + } + case 1418: + case 1417: { + euMidTank1Level_.AddEntriesFrom(input, _repeated_euMidTank1Level_codec); + break; + } + case 1426: + case 1425: { + euMidTank2Level_.AddEntriesFrom(input, _repeated_euMidTank2Level_codec); + break; + } + case 1434: + case 1433: { + euMidTank3Level_.AddEntriesFrom(input, _repeated_euMidTank3Level_codec); + break; + } + case 1442: + case 1441: { + euMidTank4Level_.AddEntriesFrom(input, _repeated_euMidTank4Level_codec); + break; + } + case 1450: + case 1449: { + euMidTank5Level_.AddEntriesFrom(input, _repeated_euMidTank5Level_codec); + break; + } + case 1458: + case 1457: { + euMidTank6Level_.AddEntriesFrom(input, _repeated_euMidTank6Level_codec); + break; + } + case 1466: + case 1465: { + euMidTank7Level_.AddEntriesFrom(input, _repeated_euMidTank7Level_codec); + break; + } + case 1474: + case 1473: { + euMidTank8Level_.AddEntriesFrom(input, _repeated_euMidTank8Level_codec); + break; + } + case 1482: + case 1481: { + euChillerTemperature_.AddEntriesFrom(input, _repeated_euChillerTemperature_codec); + break; + } + case 1490: + case 1489: { + euHeadRightAirFlow_.AddEntriesFrom(input, _repeated_euHeadRightAirFlow_codec); + break; + } + case 1498: + case 1497: { + euHeadLeftAirFlow_.AddEntriesFrom(input, _repeated_euHeadLeftAirFlow_codec); + break; + } + case 1506: + case 1505: { + euHeadRightVoltage_.AddEntriesFrom(input, _repeated_euHeadRightVoltage_codec); + break; + } + case 1514: + case 1513: { + euHeadLeftVoltage_.AddEntriesFrom(input, _repeated_euHeadLeftVoltage_codec); + break; + } + case 1522: + case 1521: { + euDryerAirFlow_.AddEntriesFrom(input, _repeated_euDryerAirFlow_codec); + break; + } + case 1530: + case 1529: { + euBlowerVoltage_.AddEntriesFrom(input, _repeated_euBlowerVoltage_codec); + break; + } + case 1538: + case 1537: { + euWasteLevel_.AddEntriesFrom(input, _repeated_euWasteLevel_codec); + break; + } + case 1546: + case 1545: { + euSpare1_.AddEntriesFrom(input, _repeated_euSpare1_codec); + break; + } + case 1554: + case 1553: { + euSpare2_.AddEntriesFrom(input, _repeated_euSpare2_codec); + break; + } + case 1562: + case 1561: { + euSpare3_.AddEntriesFrom(input, _repeated_euSpare3_codec); + break; + } + case 1570: + case 1569: { + euSpare4_.AddEntriesFrom(input, _repeated_euSpare4_codec); + break; + } } } } diff --git a/Software/Visual_Studio/Tango.PMR/Diagnostics/EventType.cs b/Software/Visual_Studio/Tango.PMR/Diagnostics/EventType.cs index 0da337cdc..8c490af74 100644 --- a/Software/Visual_Studio/Tango.PMR/Diagnostics/EventType.cs +++ b/Software/Visual_Studio/Tango.PMR/Diagnostics/EventType.cs @@ -22,320 +22,507 @@ namespace Tango.PMR.Diagnostics { static EventTypeReflection() { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( - "Cg9FdmVudFR5cGUucHJvdG8SFVRhbmdvLlBNUi5EaWFnbm9zdGljcyrFbQoJ", - "RXZlbnRUeXBlEggKBE5vbmUQABIRCgxSRVFVRVNUX1NFTlQQ6AcSFgoRUkVT", - "UE9OU0VfUkVDRUlWRUQQ6QcSEwoOUkVRVUVTVF9GQUlMRUQQ6gcSGgoVQVBQ", - "TElDQVRJT05fRVhDRVBUSU9OEOsHEhwKF0FQUExJQ0FUSU9OX0lORk9STUFU", - "SU9OEOwHEhgKE0FQUExJQ0FUSU9OX1NUQVJURUQQ7QcSGwoWQVBQTElDQVRJ", - "T05fVEVSTUlOQVRFRBDuBxIWChFSRUNPUkRJTkdfU1RBUlRFRBDvBxIWChFS", - "RUNPUkRJTkdfU1RPUFBFRBDwBxIPCgpKT0JfU1RBVFVTEPEHEhAKC0pPQl9T", - "VEFSVEVEEPIHEhAKC0pPQl9BQk9SVEVEEPMHEg8KCkpPQl9GQUlMRUQQ9AcS", - "EgoNSk9CX0NPTVBMRVRFRBD1BxIZChRQT1dFUl9VUF9CSVRfRkFJTFVSRRDQ", - "DxIiCh1FTUVSR0VOQ1lfUFVTSF9CVVRUT05fUFJFU1NFRBDRDxIXChJGUk9O", - "VF9DT1ZFUl8xX09QRU4Q0g8SFwoSRlJPTlRfQ09WRVJfMl9PUEVOENMPEhcK", - "EkZST05UX0NPVkVSXzNfT1BFThDUDxIXChJGUk9OVF9DT1ZFUl80X09QRU4Q", - "1Q8SGgoVQ0FSVFJJREdFU19DT1ZFUl9PUEVOENYPEhQKD0FSQ0hfQ09WRVJf", - "T1BFThDXDxIlCiBNQUNISU5FX0lOVEVSTkFMX09WRVJURU1QRVJBVFVSRRDY", - "DxIdChhNQUNISU5FX0ZBTlNfUlBNX1RPT19MT1cQ2Q8SGQoUTUFDSElORV9G", - "QU5TX1NUT1BQRUQQ2g8SKAojRUxFQ1RSSUNBTF9DQUJJTkVUX0ZBTlNfUlBN", - "X1RPT19MT1cQ2w8SJAofRUxFQ1RSSUNBTF9DQUJJTkVUX0ZBTlNfU1RPUFBF", - "RBDcDxIeChlNQUNISU5FX1NUQVRFX05PX0NGR19GSUxFEN0PEiMKHk1BQ0hJ", - "TkVfU1RBVEVfSFdfQ09ORklHX0ZBSUxFRBDeDxIoCiNNQUNISU5FX1NUQVRF", - "X0lOSVRJQUxfQkxPV0VSX0ZBSUxFRBDfDxIQCgtVTlNQRUNJRklFRBDgDxIn", - "CiJNQUNISU5FX0lOVEVSTkFMX09WRVJURU1QRVJBVFVSRV8yEOEPEicKIkVM", - "RUNUUklDQUxfQ0FCSU5FVF9PVkVSVEVNUEVSQVRVUkUQ4g8SHAoXRlBHQV9X", - "QVRDSERPR19BQ1RJVkFURUQQ4w8SFQoQVU5JTlRFTkRFRF9SRVNFVBDkDxIi", - "Ch1URU1QRVJBVFVSRV9NRUFTVVJFTUVOVF9FUlJPUhDlDxIlCiBSRklEX1JF", - "QURFUl9NQUxGVU5DVElPTl9JTktfU0xPVBDmDxIpCiRSRklEX1JFQURFUl9N", - "QUxGVU5DVElPTl9XQVNURV9TTE9UXzEQ5w8SKQokUkZJRF9SRUFERVJfTUFM", - "RlVOQ1RJT05fV0FTVEVfU0xPVF8yEOgPEhEKDFRIUkVBRF9CUkVBSxC4FxIx", - "CixUSFJFQURfVEVOU0lPTl9DT05UUk9MX0ZBSUxVUkVfRkVFREVSX0RBTkNF", - "UhC5FxIfChpXSU5ERVJfQ09ORV9ET0VTX05PVF9FWElTVBC6FxIdChhGRUVE", - "RVJfTU9UT1JfTUFMRlVOQ1RJT04QuxcSIwoeUklHSFRfTE9BREVSX01PVE9S", - "X01BTEZVTkNUSU9OELwXEh0KGFBVTExFUl9NT1RPUl9NQUxGVU5DVElPThC9", - "FxIiCh1MRUZUX0xPQURFUl9NT1RPUl9NQUxGVU5DVElPThC+FxIdChhXSU5E", - "RVJfTU9UT1JfTUFMRlVOQ1RJT04QvxcSHAoXU0NSRVdfTU9UT1JfTUFMRlVO", - "Q1RJT04QwBcSIgodTE9BRElOR19BUk1fTU9UT1JfTUFMRlVOQ1RJT04QwRcS", - "IQocRkVFREVSX01PVE9SX09WRVJURU1QRVJBVFVSRRDCFxInCiJSSUdIVF9M", - "T0FERVJfTU9UT1JfT1ZFUlRFTVBFUkFUVVJFEMMXEiEKHFBVTExFUl9NT1RP", - "Ul9PVkVSVEVNUEVSQVRVUkUQxBcSJgohTEVGVF9MT0FERVJfTU9UT1JfT1ZF", - "UlRFTVBFUkFUVVJFEMUXEiEKHFdJTkRFUl9NT1RPUl9PVkVSVEVNUEVSQVRV", - "UkUQxhcSIAobU0NSRVdfTU9UT1JfT1ZFUlRFTVBFUkFUVVJFEMcXEiYKIUxP", - "QURJTkdfQVJNX01PVE9SX09WRVJURU1QRVJBVFVSRRDIFxIXChJGRUVERVJf", - "TU9UT1JfU1RBTEwQyRcSHQoYUklHSFRfTE9BREVSX01PVE9SX1NUQUxMEMoX", - "EhcKElBVTExFUl9NT1RPUl9TVEFMTBDLFxIcChdMRUZUX0xPQURFUl9NT1RP", - "Ul9TVEFMTBDMFxIXChJXSU5ERVJfTU9UT1JfU1RBTEwQzRcSFgoRU0NSRVdf", - "TU9UT1JfU1RBTEwQzhcSHAoXTE9BRElOR19BUk1fTU9UT1JfU1RBTEwQzxcS", - "HgoZRkVFREVSX01PVE9SX1VOREVSVk9MVEFHRRDQFxIkCh9SSUdIVF9MT0FE", - "RVJfTU9UT1JfVU5ERVJWT0xUQUdFENEXEh4KGVBVTExFUl9NT1RPUl9VTkRF", - "UlZPTFRBR0UQ0hcSIwoeTEVGVF9MT0FERVJfTU9UT1JfVU5ERVJWT0xUQUdF", - "ENMXEh4KGVdJTkRFUl9NT1RPUl9VTkRFUlZPTFRBR0UQ1BcSHQoYU0NSRVdf", - "TU9UT1JfVU5ERVJWT0xUQUdFENUXEiMKHkxPQURJTkdfQVJNX01PVE9SX1VO", - "REVSVk9MVEFHRRDWFxIUCg9MVEZVX1VQX1RJTUVPVVQQ1xcSFgoRTFRGVV9E", - "T1dOX1RJTUVPVVQQ2BcSFAoPUlRGVV9VUF9USU1FT1VUENkXEhYKEVJURlVf", - "RE9XTl9USU1FT1VUENoXEh4KGVNDUkVXX01PVE9SX0xJTUlUX1RJTUVPVVQQ", - "2xcSJAofV0lOREVSX0RBTkNFUl9NT1RPUl9NQUxGVU5DVElPThDcFxIkCh9Q", - "VUxMRVJfREFOQ0VSX01PVE9SX01BTEZVTkNUSU9OEN0XEiQKH0ZFRURFUl9E", - "QU5DRVJfTU9UT1JfTUFMRlVOQ1RJT04Q3hcSKAojV0lOREVSX0RBTkNFUl9N", - "T1RPUl9PVkVSVEVNUEVSQVRVUkUQ3xcSKAojUFVMTEVSX0RBTkNFUl9NT1RP", - "Ul9PVkVSVEVNUEVSQVRVUkUQ4BcSKAojRkVFREVSX0RBTkNFUl9NT1RPUl9P", - "VkVSVEVNUEVSQVRVUkUQ4RcSHgoZV0lOREVSX0RBTkNFUl9NT1RPUl9TVEFM", - "TBDiFxIeChlQVUxMRVJfREFOQ0VSX01PVE9SX1NUQUxMEOMXEh4KGUZFRURF", - "Ul9EQU5DRVJfTU9UT1JfU1RBTEwQ5BcSJQogV0lOREVSX0RBTkNFUl9NT1RP", - "Ul9VTkRFUlZPTFRBR0UQ5RcSJQogUFVMTEVSX0RBTkNFUl9NT1RPUl9VTkRF", - "UlZPTFRBR0UQ5hcSJQogRkVFREVSX0RBTkNFUl9NT1RPUl9VTkRFUlZPTFRB", - "R0UQ5xcSMQosVEhSRUFEX1RFTlNJT05fQ09OVFJPTF9GQUlMVVJFX1BVTExF", - "Ul9EQU5DRVIQ6BcSMQosVEhSRUFEX1RFTlNJT05fQ09OVFJPTF9GQUlMVVJF", - "X1dJTkRFUl9EQU5DRVIQ6RcSJQogTUFDSElORV9TVEFURV9OT19USFJFQURf", - "REVURUNURUQQ6hcSGQoUVEhSRUFEX0xPQURJTkdfRVJST1IQ6xcSHwoaTk9f", - "Q09NTVVOSUNBVElPTl9XSVRIX0JUU1IQ7BcSFQoQQlRTUl9NQUxGVU5DVElP", - "ThDtFxIhChxURU5TSU9OX0lOX0JUU1JfT1VUX09GX1JBTkdFEO4XEhgKE0dS", - "SVBQRVJfTUFMRlVOQ1RJT04Q7xcSHAoXRFJZRVJfTU9UT1JfTUFMRlVOQ1RJ", - "T04QoB8SIAobRFJZRVJfTU9UT1JfT1ZFUlRFTVBFUkFUVVJFEKEfEhYKEURS", - "WUVSX01PVE9SX1NUQUxMEKIfEh0KGERSWUVSX01PVE9SX1VOREVSVk9MVEFH", - "RRCjHxIUCg9EUllFUl9ET09SX09QRU4QpB8SIQocRFJZRVJfWk9ORV8xX09W", - "RVJURU1QRVJBVFVSRRClHxIhChxEUllFUl9aT05FXzJfT1ZFUlRFTVBFUkFU", - "VVJFEKYfEiQKH0RSWUVSX1pPTkVfMV9VTkRFUlRFTVBFUkFUVVJFX0EQpx8S", - "JAofRFJZRVJfWk9ORV8xX1VOREVSVEVNUEVSQVRVUkVfQhCoHxIkCh9EUllF", - "Ul9aT05FXzJfVU5ERVJURU1QRVJBVFVSRV9CEKkfEhkKFERSWUVSX1RIRVJN", - "QUxfQ1VUT0ZGEKofEi4KKURSWUVSX0hFQVRFUlNfWk9ORV8xX0NVUlJFTlRf", - "T1VUX09GX1JBTkdFEKsfEi4KKURSWUVSX0hFQVRFUlNfWk9ORV8yX0NVUlJF", - "TlRfT1VUX09GX1JBTkdFEKwfEiwKJ0RSWUVSX0hFQVRFUlNfWk9ORV8xX0NV", - "UlJFTlRfTE9PUF9CUkVBSxCtHxIsCidEUllFUl9IRUFURVJTX1pPTkVfMl9D", - "VVJSRU5UX0xPT1BfQlJFQUsQrh8SGgoVRFJZRVJfRkFOX1JQTV9UT09fTE9X", - "EK8fEhYKEURSWUVSX0ZBTl9TVE9QUEVEELAfEiAKG0RSWUVSX0xJRF9NT1RP", - "Ul9NQUxGVU5DVElPThCxHxIkCh9EUllFUl9MSURfTU9UT1JfT1ZFUlRFTVBF", - "UkFUVVJFELIfEhoKFURSWUVSX0xJRF9NT1RPUl9TVEFMTBCzHxIhChxEUllF", - "Ul9MSURfTU9UT1JfVU5ERVJWT0xUQUdFELQfEiQKH0RSWUVSX1pPTkVfMl9V", - "TkRFUlRFTVBFUkFUVVJFX0EQtR8SJwoiRFlFSU5HX0hFQURfWk9ORV8xX09W", - "RVJURU1QRVJBVFVSRRCIJxInCiJEWUVJTkdfSEVBRF9aT05FXzJfT1ZFUlRF", - "TVBFUkFUVVJFEIknEicKIkRZRUlOR19IRUFEX1pPTkVfM19PVkVSVEVNUEVS", - "QVRVUkUQiicSJwoiRFlFSU5HX0hFQURfWk9ORV80X09WRVJURU1QRVJBVFVS", - "RRCLJxInCiJEWUVJTkdfSEVBRF9aT05FXzVfT1ZFUlRFTVBFUkFUVVJFEIwn", - "EicKIkRZRUlOR19IRUFEX1pPTkVfNl9PVkVSVEVNUEVSQVRVUkUQjScSKgol", - "RFlFSU5HX0hFQURfWk9ORV8xX1VOREVSVEVNUEVSQVRVUkVfQRCOJxIqCiVE", - "WUVJTkdfSEVBRF9aT05FXzJfVU5ERVJURU1QRVJBVFVSRV9BEI8nEioKJURZ", - "RUlOR19IRUFEX1pPTkVfM19VTkRFUlRFTVBFUkFUVVJFX0EQkCcSKgolRFlF", - "SU5HX0hFQURfWk9ORV80X1VOREVSVEVNUEVSQVRVUkVfQRCRJxIqCiVEWUVJ", - "TkdfSEVBRF9aT05FXzVfVU5ERVJURU1QRVJBVFVSRV9BEJInEioKJURZRUlO", - "R19IRUFEX1pPTkVfNl9VTkRFUlRFTVBFUkFUVVJFX0EQkycSKgolRFlFSU5H", - "X0hFQURfWk9ORV8xX1VOREVSVEVNUEVSQVRVUkVfQhCUJxIqCiVEWUVJTkdf", - "SEVBRF9aT05FXzJfVU5ERVJURU1QRVJBVFVSRV9CEJUnEioKJURZRUlOR19I", - "RUFEX1pPTkVfM19VTkRFUlRFTVBFUkFUVVJFX0IQlicSKgolRFlFSU5HX0hF", - "QURfWk9ORV80X1VOREVSVEVNUEVSQVRVUkVfQhCXJxIqCiVEWUVJTkdfSEVB", - "RF9aT05FXzVfVU5ERVJURU1QRVJBVFVSRV9CEJgnEioKJURZRUlOR19IRUFE", - "X1pPTkVfNl9VTkRFUlRFTVBFUkFUVVJFX0IQmScSLAonRFlFSU5HX0hFQURf", - "Wk9ORV8xX0NVUlJFTlRfT1VUX09GX1JBTkdFEJonEiwKJ0RZRUlOR19IRUFE", - "X1pPTkVfMl9DVVJSRU5UX09VVF9PRl9SQU5HRRCbJxIsCidEWUVJTkdfSEVB", - "RF9aT05FXzNfQ1VSUkVOVF9PVVRfT0ZfUkFOR0UQnCcSLAonRFlFSU5HX0hF", - "QURfWk9ORV80X0NVUlJFTlRfT1VUX09GX1JBTkdFEJ0nEiwKJ0RZRUlOR19I", - "RUFEX1pPTkVfNV9DVVJSRU5UX09VVF9PRl9SQU5HRRCeJxIqCiVEWUVJTkdf", - "SEVBRF9aT05FXzFfQ1VSUkVOVF9MT09QX0JSRUFLEJ8nEioKJURZRUlOR19I", - "RUFEX1pPTkVfMl9DVVJSRU5UX0xPT1BfQlJFQUsQoCcSKgolRFlFSU5HX0hF", - "QURfWk9ORV8zX0NVUlJFTlRfTE9PUF9CUkVBSxChJxIqCiVEWUVJTkdfSEVB", - "RF9aT05FXzRfQ1VSUkVOVF9MT09QX0JSRUFLEKInEioKJURZRUlOR19IRUFE", - "X1pPTkVfNV9DVVJSRU5UX0xPT1BfQlJFQUsQoycSHwoaRFlFSU5HX0hFQURf", - "VEhFUk1BTF9DVVRPRkYQpCcSIwoeRFlFSU5HX0hFQURfQ09WRVJfT1BFTl9U", - "SU1FT1VUEKUnEiQKH0RZRUlOR19IRUFEX0NPVkVSX0NMT1NFX1RJTUVPVVQQ", - "picSKAojRFlFSU5HX0hFQURfQ09WRVJfTU9UT1JfTUFMRlVOQ1RJT04QpycS", - "LAonRFlFSU5HX0hFQURfQ09WRVJfTU9UT1JfT1ZFUlRFTVBFUkFUVVJFEKgn", - "EiIKHURZRUlOR19IRUFEX0NPVkVSX01PVE9SX1NUQUxMEKknEikKJERZRUlO", - "R19IRUFEX0NPVkVSX01PVE9SX1VOREVSVk9MVEFHRRCqJxI1CjBEWUVJTkdf", - "SEVBRF9DTEVBTklOR19NRUNIQU5JU01fTU9UT1JfTUFMRlVOQ1RJT04QqycS", - "OQo0RFlFSU5HX0hFQURfQ0xFQU5JTkdfTUVDSEFOSVNNX01PVE9SX09WRVJU", - "RU1QRVJBVFVSRRCsJxIvCipEWUVJTkdfSEVBRF9DTEVBTklOR19NRUNIQU5J", - "U01fTU9UT1JfU1RBTEwQrScSNgoxRFlFSU5HX0hFQURfQ0xFQU5JTkdfTUVD", - "SEFOSVNNX01PVE9SX1VOREVSVk9MVEFHRRCuJxIwCitEWUVJTkdfSEVBRF9D", - "TEVBTklOR19IRUFEX01PVE9SX01BTEZVTkNUSU9OEK8nEjQKL0RZRUlOR19I", - "RUFEX0NMRUFOSU5HX0hFQURfTU9UT1JfT1ZFUlRFTVBFUkFUVVJFELAnEioK", - "JURZRUlOR19IRUFEX0NMRUFOSU5HX0hFQURfTU9UT1JfU1RBTEwQsScSMQos", - "RFlFSU5HX0hFQURfQ0xFQU5JTkdfSEVBRF9NT1RPUl9VTkRFUlZPTFRBR0UQ", - "sicSJwoiRFlFSU5HX0hFQURfWk9ORV83X09WRVJURU1QRVJBVFVSRRCzJxIn", - "CiJEWUVJTkdfSEVBRF9aT05FXzhfT1ZFUlRFTVBFUkFUVVJFELQnEicKIkRZ", - "RUlOR19IRUFEX1pPTkVfOV9PVkVSVEVNUEVSQVRVUkUQtScSKAojRFlFSU5H", - "X0hFQURfWk9ORV8xMF9PVkVSVEVNUEVSQVRVUkUQticSKAojRFlFSU5HX0hF", - "QURfWk9ORV8xMV9PVkVSVEVNUEVSQVRVUkUQtycSKAojRFlFSU5HX0hFQURf", - "Wk9ORV8xMl9PVkVSVEVNUEVSQVRVUkUQuCcSKgolRFlFSU5HX0hFQURfWk9O", - "RV83X1VOREVSVEVNUEVSQVRVUkVfQRC5JxIqCiVEWUVJTkdfSEVBRF9aT05F", - "XzhfVU5ERVJURU1QRVJBVFVSRV9BELonEioKJURZRUlOR19IRUFEX1pPTkVf", - "OV9VTkRFUlRFTVBFUkFUVVJFX0EQuycSKwomRFlFSU5HX0hFQURfWk9ORV8x", - "MF9VTkRFUlRFTVBFUkFUVVJFX0EQvCcSKwomRFlFSU5HX0hFQURfWk9ORV8x", - "MV9VTkRFUlRFTVBFUkFUVVJFX0EQvScSKwomRFlFSU5HX0hFQURfWk9ORV8x", - "Ml9VTkRFUlRFTVBFUkFUVVJFX0EQvicSKgolRFlFSU5HX0hFQURfWk9ORV83", - "X1VOREVSVEVNUEVSQVRVUkVfQhC/JxIqCiVEWUVJTkdfSEVBRF9aT05FXzhf", - "VU5ERVJURU1QRVJBVFVSRV9CEMAnEioKJURZRUlOR19IRUFEX1pPTkVfOV9V", - "TkRFUlRFTVBFUkFUVVJFX0IQwScSKwomRFlFSU5HX0hFQURfWk9ORV8xMF9V", - "TkRFUlRFTVBFUkFUVVJFX0IQwicSKwomRFlFSU5HX0hFQURfWk9ORV8xMV9V", - "TkRFUlRFTVBFUkFUVVJFX0IQwycSKwomRFlFSU5HX0hFQURfWk9ORV8xMl9V", - "TkRFUlRFTVBFUkFUVVJFX0IQxCcSLAonRFlFSU5HX0hFQURfWk9ORV82X0NV", - "UlJFTlRfT1VUX09GX1JBTkdFEMUnEiwKJ0RZRUlOR19IRUFEX1pPTkVfN19D", - "VVJSRU5UX09VVF9PRl9SQU5HRRDGJxIsCidEWUVJTkdfSEVBRF9aT05FXzhf", - "Q1VSUkVOVF9PVVRfT0ZfUkFOR0UQxycSLAonRFlFSU5HX0hFQURfWk9ORV85", - "X0NVUlJFTlRfT1VUX09GX1JBTkdFEMgnEi0KKERZRUlOR19IRUFEX1pPTkVf", - "MTBfQ1VSUkVOVF9PVVRfT0ZfUkFOR0UQyScSLQooRFlFSU5HX0hFQURfWk9O", - "RV8xMV9DVVJSRU5UX09VVF9PRl9SQU5HRRDKJxItCihEWUVJTkdfSEVBRF9a", - "T05FXzEyX0NVUlJFTlRfT1VUX09GX1JBTkdFEMsnEioKJURZRUlOR19IRUFE", - "X1pPTkVfNl9DVVJSRU5UX0xPT1BfQlJFQUsQzCcSKgolRFlFSU5HX0hFQURf", - "Wk9ORV83X0NVUlJFTlRfTE9PUF9CUkVBSxDNJxIqCiVEWUVJTkdfSEVBRF9a", - "T05FXzhfQ1VSUkVOVF9MT09QX0JSRUFLEM4nEioKJURZRUlOR19IRUFEX1pP", - "TkVfOV9DVVJSRU5UX0xPT1BfQlJFQUsQzycSKwomRFlFSU5HX0hFQURfWk9O", - "RV8xMF9DVVJSRU5UX0xPT1BfQlJFQUsQ0CcSKwomRFlFSU5HX0hFQURfWk9O", - "RV8xMV9DVVJSRU5UX0xPT1BfQlJFQUsQ0ScSKwomRFlFSU5HX0hFQURfWk9O", - "RV8xMl9DVVJSRU5UX0xPT1BfQlJFQUsQ0icSKQokRFlFSU5HX0hFQURfQkxP", - "V0VSXzFfT1ZFUlRFTVBFUkFUVVJFENMnEikKJERZRUlOR19IRUFEX0JMT1dF", - "Ul8yX09WRVJURU1QRVJBVFVSRRDUJxIsCidEWUVJTkdfSEVBRF9CTE9XRVJf", - "MV9VTkRFUlRFTVBFUkFUVVJFX0EQ1ScSLAonRFlFSU5HX0hFQURfQkxPV0VS", - "XzJfVU5ERVJURU1QRVJBVFVSRV9BENYnEiwKJ0RZRUlOR19IRUFEX0JMT1dF", - "Ul8xX1VOREVSVEVNUEVSQVRVUkVfQhDXJxIsCidEWUVJTkdfSEVBRF9CTE9X", - "RVJfMl9VTkRFUlRFTVBFUkFUVVJFX0IQ2CcSLgopRFlFSU5HX0hFQURfQkxP", - "V0VSXzFfQ1VSUkVOVF9PVVRfT0ZfUkFOR0UQ2ScSLgopRFlFSU5HX0hFQURf", - "QkxPV0VSXzJfQ1VSUkVOVF9PVVRfT0ZfUkFOR0UQ2icSLAonRFlFSU5HX0hF", - "QURfQkxPV0VSXzFfQ1VSUkVOVF9MT09QX0JSRUFLENsnEiwKJ0RZRUlOR19I", - "RUFEX0JMT1dFUl8yX0NVUlJFTlRfTE9PUF9CUkVBSxDcJxIlCiBEWUVJTkdf", - "SEVBRF9CTE9XRVJfMV9GQU5fU1RPUFBFRBDdJxIlCiBEWUVJTkdfSEVBRF9C", - "TE9XRVJfMl9GQU5fU1RPUFBFRBDeJxIpCiREWUVJTkdfSEVBRF9CTE9XRVJf", - "MV9GQU5fUlBNX1RPT19MT1cQ3ycSKQokRFlFSU5HX0hFQURfQkxPV0VSXzJf", - "RkFOX1JQTV9UT09fTE9XEOAnEioKJURZRUlOR19IRUFEX1JJR0hUX0FDVFVB", - "VE9SX1VQX1RJTUVPVVQQ4ScSKQokRFlFSU5HX0hFQURfTEVGVF9BQ1RVQVRP", - "Ul9VUF9USU1FT1VUEOInEiwKJ0RZRUlOR19IRUFEX1JJR0hUX0FDVFVBVE9S", - "X0RPV05fVElNRU9VVBDjJxIrCiZEWUVJTkdfSEVBRF9MRUZUX0FDVFVBVE9S", - "X0RPV05fVElNRU9VVBDkJxInCiJEWUVJTkdfSEVBRF9CTE9XRVJfMV9GTE9X", - "X1RPT19ISUdIEOUnEicKIkRZRUlOR19IRUFEX0JMT1dFUl8yX0ZMT1dfVE9P", - "X0hJR0gQ5icSJgohRFlFSU5HX0hFQURfQkxPV0VSXzFfRkxPV19UT09fTE9X", - "EOcnEiYKIURZRUlOR19IRUFEX0JMT1dFUl8yX0ZMT1dfVE9PX0xPVxDoJxIg", - "ChtEWUVJTkdfSEVBRF9BUkNfTElEX0lTX09QRU4Q6ScSIwoeRFlFSU5HX0hF", - "QURfVFVOTkVMX0xJRF9JU19PUEVOEOonEh4KGURZRUlOR19IRUFEX0NPVkVS", - "X0lTX09QRU4Q6ycSGgoVTUlYRVJfT1ZFUlRFTVBFUkFUVVJFEPAuEh0KGE1J", - "WEVSX1VOREVSVEVNUEVSQVRVUkVfQRDxLhIdChhNSVhFUl9VTkRFUlRFTVBF", - "UkFUVVJFX0IQ8i4SGQoUTUlYRVJfVEhFUk1BTF9DVVRPRkYQ8y4SHwoaTUlY", - "RVJfQ1VSUkVOVF9PVVRfT0ZfUkFOR0UQ9C4SHQoYTUlYRVJfQ1VSUkVOVF9M", - "T09QX0JSRUFLEPUuEh0KGERJU1BFTlNFUl8xX09WRVJQUkVTU1VSRRDYNhId", - "ChhESVNQRU5TRVJfMl9PVkVSUFJFU1NVUkUQ2TYSHQoYRElTUEVOU0VSXzNf", - "T1ZFUlBSRVNTVVJFENo2Eh0KGERJU1BFTlNFUl80X09WRVJQUkVTU1VSRRDb", - "NhIdChhESVNQRU5TRVJfNV9PVkVSUFJFU1NVUkUQ3DYSHQoYRElTUEVOU0VS", - "XzZfT1ZFUlBSRVNTVVJFEN02Eh0KGERJU1BFTlNFUl83X09WRVJQUkVTU1VS", - "RRDeNhIdChhESVNQRU5TRVJfOF9PVkVSUFJFU1NVUkUQ3zYSHgoZRElTUEVO", - "U0VSXzFfVU5ERVJQUkVTU1VSRRDgNhIeChlESVNQRU5TRVJfMl9VTkRFUlBS", - "RVNTVVJFEOE2Eh4KGURJU1BFTlNFUl8zX1VOREVSUFJFU1NVUkUQ4jYSHgoZ", - "RElTUEVOU0VSXzRfVU5ERVJQUkVTU1VSRRDjNhIeChlESVNQRU5TRVJfNV9V", - "TkRFUlBSRVNTVVJFEOQ2Eh4KGURJU1BFTlNFUl82X1VOREVSUFJFU1NVUkUQ", - "5TYSHgoZRElTUEVOU0VSXzdfVU5ERVJQUkVTU1VSRRDmNhIeChlESVNQRU5T", - "RVJfOF9VTkRFUlBSRVNTVVJFEOc2EhYKEURJU1BFTlNFUl8xX0VNUFRZEOg2", - "EhYKEURJU1BFTlNFUl8yX0VNUFRZEOk2EhYKEURJU1BFTlNFUl8zX0VNUFRZ", - "EOo2EhYKEURJU1BFTlNFUl80X0VNUFRZEOs2EhYKEURJU1BFTlNFUl81X0VN", - "UFRZEOw2EhYKEURJU1BFTlNFUl82X0VNUFRZEO02EhYKEURJU1BFTlNFUl83", - "X0VNUFRZEO42EhYKEURJU1BFTlNFUl84X0VNUFRZEO82Eh8KGkRJU1BFTlNF", - "Ul8xX1JFRklMTF9GQUlMVVJFEPA2Eh8KGkRJU1BFTlNFUl8yX1JFRklMTF9G", - "QUlMVVJFEPE2Eh8KGkRJU1BFTlNFUl8zX1JFRklMTF9GQUlMVVJFEPI2Eh8K", - "GkRJU1BFTlNFUl80X1JFRklMTF9GQUlMVVJFEPM2Eh8KGkRJU1BFTlNFUl81", - "X1JFRklMTF9GQUlMVVJFEPQ2Eh8KGkRJU1BFTlNFUl82X1JFRklMTF9GQUlM", - "VVJFEPU2Eh8KGkRJU1BFTlNFUl83X1JFRklMTF9GQUlMVVJFEPY2Eh8KGkRJ", - "U1BFTlNFUl84X1JFRklMTF9GQUlMVVJFEPc2EiIKHURJU1BFTlNFUl8xX01P", - "VE9SX01BTEZVTkNUSU9OEPg2EiIKHURJU1BFTlNFUl8yX01PVE9SX01BTEZV", - "TkNUSU9OEPk2EiIKHURJU1BFTlNFUl8zX01PVE9SX01BTEZVTkNUSU9OEPo2", - "EiIKHURJU1BFTlNFUl80X01PVE9SX01BTEZVTkNUSU9OEPs2EiIKHURJU1BF", - "TlNFUl81X01PVE9SX01BTEZVTkNUSU9OEPw2EiIKHURJU1BFTlNFUl82X01P", - "VE9SX01BTEZVTkNUSU9OEP02EiIKHURJU1BFTlNFUl83X01PVE9SX01BTEZV", - "TkNUSU9OEP42EiIKHURJU1BFTlNFUl84X01PVE9SX01BTEZVTkNUSU9OEP82", - "EiYKIURJU1BFTlNFUl8xX01PVE9SX09WRVJURU1QRVJBVFVSRRCANxImCiFE", - "SVNQRU5TRVJfMl9NT1RPUl9PVkVSVEVNUEVSQVRVUkUQgTcSJgohRElTUEVO", - "U0VSXzNfTU9UT1JfT1ZFUlRFTVBFUkFUVVJFEII3EiYKIURJU1BFTlNFUl80", - "X01PVE9SX09WRVJURU1QRVJBVFVSRRCDNxImCiFESVNQRU5TRVJfNV9NT1RP", - "Ul9PVkVSVEVNUEVSQVRVUkUQhDcSJgohRElTUEVOU0VSXzZfTU9UT1JfT1ZF", - "UlRFTVBFUkFUVVJFEIU3EiYKIURJU1BFTlNFUl83X01PVE9SX09WRVJURU1Q", - "RVJBVFVSRRCGNxImCiFESVNQRU5TRVJfOF9NT1RPUl9PVkVSVEVNUEVSQVRV", - "UkUQhzcSHAoXRElTUEVOU0VSXzFfTU9UT1JfU1RBTEwQiDcSHAoXRElTUEVO", - "U0VSXzJfTU9UT1JfU1RBTEwQiTcSHAoXRElTUEVOU0VSXzNfTU9UT1JfU1RB", - "TEwQijcSHAoXRElTUEVOU0VSXzRfTU9UT1JfU1RBTEwQizcSHAoXRElTUEVO", - "U0VSXzVfTU9UT1JfU1RBTEwQjDcSHAoXRElTUEVOU0VSXzZfTU9UT1JfU1RB", - "TEwQjTcSHAoXRElTUEVOU0VSXzdfTU9UT1JfU1RBTEwQjjcSHAoXRElTUEVO", - "U0VSXzhfTU9UT1JfU1RBTEwQjzcSIwoeRElTUEVOU0VSXzFfTU9UT1JfVU5E", - "RVJWT0xUQUdFEJA3EiMKHkRJU1BFTlNFUl8yX01PVE9SX1VOREVSVk9MVEFH", - "RRCRNxIjCh5ESVNQRU5TRVJfM19NT1RPUl9VTkRFUlZPTFRBR0UQkjcSIwoe", - "RElTUEVOU0VSXzRfTU9UT1JfVU5ERVJWT0xUQUdFEJM3EiMKHkRJU1BFTlNF", - "Ul81X01PVE9SX1VOREVSVk9MVEFHRRCUNxIjCh5ESVNQRU5TRVJfNl9NT1RP", - "Ul9VTkRFUlZPTFRBR0UQlTcSIwoeRElTUEVOU0VSXzdfTU9UT1JfVU5ERVJW", - "T0xUQUdFEJY3EiMKHkRJU1BFTlNFUl84X01PVE9SX1VOREVSVk9MVEFHRRCX", - "NxIhChxESVNQRU5TRVJfMV9VUFBFUl9IQVJEX0xJTUlUEJg3EiEKHERJU1BF", - "TlNFUl8yX1VQUEVSX0hBUkRfTElNSVQQmTcSIQocRElTUEVOU0VSXzNfVVBQ", - "RVJfSEFSRF9MSU1JVBCaNxIhChxESVNQRU5TRVJfNF9VUFBFUl9IQVJEX0xJ", - "TUlUEJs3EiEKHERJU1BFTlNFUl81X1VQUEVSX0hBUkRfTElNSVQQnDcSIQoc", - "RElTUEVOU0VSXzZfVVBQRVJfSEFSRF9MSU1JVBCdNxIhChxESVNQRU5TRVJf", - "N19VUFBFUl9IQVJEX0xJTUlUEJ43EiEKHERJU1BFTlNFUl84X1VQUEVSX0hB", - "UkRfTElNSVQQnzcSIQocRElTUEVOU0VSXzFfTE9XRVJfSEFSRF9MSU1JVBCg", - "NxIhChxESVNQRU5TRVJfMl9MT1dFUl9IQVJEX0xJTUlUEKE3EiEKHERJU1BF", - "TlNFUl8zX0xPV0VSX0hBUkRfTElNSVQQojcSIQocRElTUEVOU0VSXzRfTE9X", - "RVJfSEFSRF9MSU1JVBCjNxIhChxESVNQRU5TRVJfNV9MT1dFUl9IQVJEX0xJ", - "TUlUEKQ3EiEKHERJU1BFTlNFUl82X0xPV0VSX0hBUkRfTElNSVQQpTcSIQoc", - "RElTUEVOU0VSXzdfTE9XRVJfSEFSRF9MSU1JVBCmNxIhChxESVNQRU5TRVJf", - "OF9MT1dFUl9IQVJEX0xJTUlUEKc3Eh4KGURJU1BFTlNFUl8xX0hJR0hfUFJF", - "U1NVUkUQqDcSHgoZRElTUEVOU0VSXzJfSElHSF9QUkVTU1VSRRCpNxIeChlE", - "SVNQRU5TRVJfM19ISUdIX1BSRVNTVVJFEKo3Eh4KGURJU1BFTlNFUl80X0hJ", - "R0hfUFJFU1NVUkUQqzcSHgoZRElTUEVOU0VSXzVfSElHSF9QUkVTU1VSRRCs", - "NxIeChlESVNQRU5TRVJfNl9ISUdIX1BSRVNTVVJFEK03Eh4KGURJU1BFTlNF", - "Ul83X0hJR0hfUFJFU1NVUkUQrjcSHgoZRElTUEVOU0VSXzhfSElHSF9QUkVT", - "U1VSRRCvNxIdChhESVNQRU5TRVJfOV9PVkVSUFJFU1NVUkUQsDcSHgoZRElT", - "UEVOU0VSXzlfVU5ERVJQUkVTU1VSRRCxNxIeChlESVNQRU5TRVJfMTBfT1ZF", - "UlBSRVNTVVJFELI3Eh8KGkRJU1BFTlNFUl8xMF9VTkRFUlBSRVNTVVJFELM3", - "EiQKH0RJU1BFTlNFUl85X01PVE9SXzFfTUFMRlVOQ1RJT04QtDcSJAofRElT", - "UEVOU0VSXzlfTU9UT1JfMl9NQUxGVU5DVElPThC1NxIlCiBESVNQRU5TRVJf", - "MTBfTU9UT1JfMV9NQUxGVU5DVElPThC2NxIlCiBESVNQRU5TRVJfMTBfTU9U", - "T1JfMl9NQUxGVU5DVElPThC3NxIZChRNSURfVEFOS18xX0xPV19MRVZFTBDA", - "PhIZChRNSURfVEFOS18yX0xPV19MRVZFTBDBPhIZChRNSURfVEFOS18zX0xP", - "V19MRVZFTBDCPhIZChRNSURfVEFOS180X0xPV19MRVZFTBDDPhIZChRNSURf", - "VEFOS181X0xPV19MRVZFTBDEPhIZChRNSURfVEFOS182X0xPV19MRVZFTBDF", - "PhIZChRNSURfVEFOS183X0xPV19MRVZFTBDGPhIZChRNSURfVEFOS184X0xP", - "V19MRVZFTBDHPhIVChBNSURfVEFOS18xX0VNUFRZEMg+EhUKEE1JRF9UQU5L", - "XzJfRU1QVFkQyT4SFQoQTUlEX1RBTktfM19FTVBUWRDKPhIVChBNSURfVEFO", - "S180X0VNUFRZEMs+EhUKEE1JRF9UQU5LXzVfRU1QVFkQzD4SFQoQTUlEX1RB", - "TktfNl9FTVBUWRDNPhIVChBNSURfVEFOS183X0VNUFRZEM4+EhUKEE1JRF9U", - "QU5LXzhfRU1QVFkQzz4SGAoTTUlEX1RBTktfMV9PVkVSRkxPVxDQPhIYChNN", - "SURfVEFOS18yX09WRVJGTE9XENE+EhgKE01JRF9UQU5LXzNfT1ZFUkZMT1cQ", - "0j4SGAoTTUlEX1RBTktfNF9PVkVSRkxPVxDTPhIYChNNSURfVEFOS181X09W", - "RVJGTE9XENQ+EhgKE01JRF9UQU5LXzZfT1ZFUkZMT1cQ1T4SGAoTTUlEX1RB", - "TktfN19PVkVSRkxPVxDWPhIYChNNSURfVEFOS184X09WRVJGTE9XENc+EhwK", - "F01JRF9UQU5LXzFfRklMTF9USU1FT1VUENg+EhwKF01JRF9UQU5LXzJfRklM", - "TF9USU1FT1VUENk+EhwKF01JRF9UQU5LXzNfRklMTF9USU1FT1VUENo+EhwK", - "F01JRF9UQU5LXzRfRklMTF9USU1FT1VUENs+EhwKF01JRF9UQU5LXzVfRklM", - "TF9USU1FT1VUENw+EhwKF01JRF9UQU5LXzZfRklMTF9USU1FT1VUEN0+EhwK", - "F01JRF9UQU5LXzdfRklMTF9USU1FT1VUEN4+EhwKF01JRF9UQU5LXzhfRklM", - "TF9USU1FT1VUEN8+EhkKFE1JRF9UQU5LXzlfTE9XX0xFVkVMEOA+EhUKEE1J", - "RF9UQU5LXzlfRU1QVFkQ4T4SGAoTTUlEX1RBTktfOV9PVkVSRkxPVxDiPhIc", - "ChdNSURfVEFOS185X0ZJTExfVElNRU9VVBDjPhIaChVNSURfVEFOS18xMF9M", - "T1dfTEVWRUwQ5D4SFgoRTUlEX1RBTktfMTBfRU1QVFkQ5T4SGQoUTUlEX1RB", - "TktfMTBfT1ZFUkZMT1cQ5j4SHQoYTUlEX1RBTktfMTBfRklMTF9USU1FT1VU", - "EOc+Eh0KGEFJUl9GSUxURVJfTk9UX0lOU1RBTExFRBCoRhIXChJBSVJfRklM", - "VEVSX0NMT0dHRUQQqUYSJQogV0FTVEVfQ09OVEFJTkVSX0VNUFRZSU5HX1RJ", - "TUVPVVQQqkYSFAoPTk9fQUlSX1BSRVNTVVJFEKtGEh0KGFdBU1RFX0NPTlRB", - "SU5FUl9PVkVSRkxPVxCsRhIaChVWT0NfU0VOU09SX0FMQVJNX1RJTUUQrUYS", - "GAoTQ0hJTExFUl9EUllfQ09OVEFDVBCuRhIaChVJTlNVRkZJQ0lFTlRfQUlS", - "X0ZMT1cQr0YSGwoWVk9DX1NFTlNPUl9BTEFSTV9TTE9QRRCwRhIdChhQUkVf", - "Q09PTEVSX0ZBTl8xX1NUT1BQRUQQsUYSHQoYUFJFX0NPT0xFUl9GQU5fMl9T", - "VE9QUEVEELJGEhkKFENPT0xFUl9GQU5fMV9TVE9QUEVEELNGEhkKFENPT0xF", - "Ul9GQU5fMl9TVE9QUEVEELRGEhkKFENPT0xFUl9GQU5fM19TVE9QUEVEELVG", - "EhkKFENPT0xFUl9GQU5fNF9TVE9QUEVEELZGEiEKHFBSRV9DT09MRVJfRkFO", - "XzFfUlBNX1RPT19MT1cQt0YSIQocUFJFX0NPT0xFUl9GQU5fMl9SUE1fVE9P", - "X0xPVxC4RhIdChhDT09MRVJfRkFOXzFfUlBNX1RPT19MT1cQuUYSHQoYQ09P", - "TEVSX0ZBTl8yX1JQTV9UT09fTE9XELpGEh0KGENPT0xFUl9GQU5fM19SUE1f", - "VE9PX0xPVxC7RhIdChhDT09MRVJfRkFOXzRfUlBNX1RPT19MT1cQvEYSIAob", - "Q09PTEVSX1RFTVBFUkFUVVJFX1RPT19ISUdIEL1GEh8KGkNPT0xFUl9URU1Q", - "RVJBVFVSRV9UT09fTE9XEL5GEioKJUlOS19DQVJUUklER0VfUFJFU0VOQ0Vf", - "U0VOU09SX1RJTUVPVVQQkE4SHwoaSU5LX0NBUlRSSURHRV9SRklEX1RJTUVP", - "VVQQkU4SIQocTk9fV0FTVEVfQ0FSVFJJREdFX0FWQUlMQUJMRRCSThIeChlB", - "TExfV0FTVEVfQ0FSVFJJREdFU19GVUxMEJNOEiwKJ1dBU1RFX0NBUlRSSURH", - "RV9QUkVTRU5DRV9TRU5TT1JfVElNRU9VVBCUThIhChxXQVNURV9DQVJUUklE", - "R0VfUkZJRF9USU1FT1VUEJVOEioKJUlOS19DQVJUUklER0VfUkZJRF9UQUdf", - "Q0FOTk9UX0JFX1JFQUQQlk4SLAonV0FTVEVfQ0FSVFJJREdFX1JGSURfVEFH", - "X0NBTk5PVF9CRV9SRUFEEJdOEigKI0lOS19DQVJUUklER0VfUkZJRF9UQUdf", - "SVNfTk9UX1ZBTElEEJhOEioKJVdBU1RFX0NBUlRSSURHRV9SRklEX1RBR19J", - "U19OT1RfVkFMSUQQmU4SKAojSU5LX0NBUlRSSURHRV9BVVRIRU5USUNBVElP", - "Tl9GQUlMRUQQmk4SKgolV0FTVEVfQ0FSVFJJREdFX0FVVEhFTlRJQ0FUSU9O", - "X0ZBSUxFRBCbThIdChhJTktfQ0FSVFJJREdFX0lTX0JMT0NLRUQQnE4SHwoa", - "V0FTVEVfQ0FSVFJJREdFX0lTX0JMT0NLRUQQnU4SLQooSU5LX0NBUlRSSURH", - "RV9SRklEX1RBR19DQU5OT1RfQkVfVVBEQVRFRBCeThIvCipXQVNURV9DQVJU", - "UklER0VfUkZJRF9UQUdfQ0FOTk9UX0JFX1VQREFURUQQn04SIAobSU5LX0lO", - "X0NBUlRSSURHRV9JU19FWFBJUkVEEKBOQiEKH2NvbS50d2luZS50YW5nby5w", - "bXIuZGlhZ25vc3RpY3NiBnByb3RvMw==")); + "Cg9FdmVudFR5cGUucHJvdG8SFVRhbmdvLlBNUi5EaWFnbm9zdGljcyqirwEK", + "CUV2ZW50VHlwZRIICgROb25lEAASEQoMUkVRVUVTVF9TRU5UEOgHEhYKEVJF", + "U1BPTlNFX1JFQ0VJVkVEEOkHEhMKDlJFUVVFU1RfRkFJTEVEEOoHEhoKFUFQ", + "UExJQ0FUSU9OX0VYQ0VQVElPThDrBxIcChdBUFBMSUNBVElPTl9JTkZPUk1B", + "VElPThDsBxIYChNBUFBMSUNBVElPTl9TVEFSVEVEEO0HEhsKFkFQUExJQ0FU", + "SU9OX1RFUk1JTkFURUQQ7gcSFgoRUkVDT1JESU5HX1NUQVJURUQQ7wcSFgoR", + "UkVDT1JESU5HX1NUT1BQRUQQ8AcSDwoKSk9CX1NUQVRVUxDxBxIQCgtKT0Jf", + "U1RBUlRFRBDyBxIQCgtKT0JfQUJPUlRFRBDzBxIPCgpKT0JfRkFJTEVEEPQH", + "EhIKDUpPQl9DT01QTEVURUQQ9QcSGQoUUE9XRVJfVVBfQklUX0ZBSUxVUkUQ", + "0A8SIgodRU1FUkdFTkNZX1BVU0hfQlVUVE9OX1BSRVNTRUQQ0Q8SFwoSRlJP", + "TlRfQ09WRVJfMV9PUEVOENIPEhcKEkZST05UX0NPVkVSXzJfT1BFThDTDxIX", + "ChJGUk9OVF9DT1ZFUl8zX09QRU4Q1A8SFwoSRlJPTlRfQ09WRVJfNF9PUEVO", + "ENUPEhoKFUNBUlRSSURHRVNfQ09WRVJfT1BFThDWDxIUCg9BUkNIX0NPVkVS", + "X09QRU4Q1w8SJQogTUFDSElORV9JTlRFUk5BTF9PVkVSVEVNUEVSQVRVUkUQ", + "2A8SHQoYTUFDSElORV9GQU5TX1JQTV9UT09fTE9XENkPEhkKFE1BQ0hJTkVf", + "RkFOU19TVE9QUEVEENoPEigKI0VMRUNUUklDQUxfQ0FCSU5FVF9GQU5TX1JQ", + "TV9UT09fTE9XENsPEiQKH0VMRUNUUklDQUxfQ0FCSU5FVF9GQU5TX1NUT1BQ", + "RUQQ3A8SHgoZTUFDSElORV9TVEFURV9OT19DRkdfRklMRRDdDxIjCh5NQUNI", + "SU5FX1NUQVRFX0hXX0NPTkZJR19GQUlMRUQQ3g8SKAojTUFDSElORV9TVEFU", + "RV9JTklUSUFMX0JMT1dFUl9GQUlMRUQQ3w8SEAoLVU5TUEVDSUZJRUQQ4A8S", + "JwoiTUFDSElORV9JTlRFUk5BTF9PVkVSVEVNUEVSQVRVUkVfMhDhDxInCiJF", + "TEVDVFJJQ0FMX0NBQklORVRfT1ZFUlRFTVBFUkFUVVJFEOIPEhwKF0ZQR0Ff", + "V0FUQ0hET0dfQUNUSVZBVEVEEOMPEhUKEFVOSU5URU5ERURfUkVTRVQQ5A8S", + "IgodVEVNUEVSQVRVUkVfTUVBU1VSRU1FTlRfRVJST1IQ5Q8SJQogUkZJRF9S", + "RUFERVJfTUFMRlVOQ1RJT05fSU5LX1NMT1QQ5g8SKQokUkZJRF9SRUFERVJf", + "TUFMRlVOQ1RJT05fV0FTVEVfU0xPVF8xEOcPEikKJFJGSURfUkVBREVSX01B", + "TEZVTkNUSU9OX1dBU1RFX1NMT1RfMhDoDxIfChpJMkMzX0NPTU1VTklDQVRJ", + "T05fRkFJTFVSRRDpDxIfChpJMkM0X0NPTU1VTklDQVRJT05fRkFJTFVSRRDq", + "DxIeChlJMkNfQ09NTVVOSUNBVElPTl9GQUlMVVJFEOsPEhEKDFRIUkVBRF9C", + "UkVBSxC4FxIxCixUSFJFQURfVEVOU0lPTl9DT05UUk9MX0ZBSUxVUkVfRkVF", + "REVSX0RBTkNFUhC5FxIfChpXSU5ERVJfQ09ORV9ET0VTX05PVF9FWElTVBC6", + "FxIdChhGRUVERVJfTU9UT1JfTUFMRlVOQ1RJT04QuxcSIwoeUklHSFRfTE9B", + "REVSX01PVE9SX01BTEZVTkNUSU9OELwXEh0KGFBVTExFUl9NT1RPUl9NQUxG", + "VU5DVElPThC9FxIiCh1MRUZUX0xPQURFUl9NT1RPUl9NQUxGVU5DVElPThC+", + "FxIdChhXSU5ERVJfTU9UT1JfTUFMRlVOQ1RJT04QvxcSHAoXU0NSRVdfTU9U", + "T1JfTUFMRlVOQ1RJT04QwBcSIgodTE9BRElOR19BUk1fTU9UT1JfTUFMRlVO", + "Q1RJT04QwRcSIQocRkVFREVSX01PVE9SX09WRVJURU1QRVJBVFVSRRDCFxIn", + "CiJSSUdIVF9MT0FERVJfTU9UT1JfT1ZFUlRFTVBFUkFUVVJFEMMXEiEKHFBV", + "TExFUl9NT1RPUl9PVkVSVEVNUEVSQVRVUkUQxBcSJgohTEVGVF9MT0FERVJf", + "TU9UT1JfT1ZFUlRFTVBFUkFUVVJFEMUXEiEKHFdJTkRFUl9NT1RPUl9PVkVS", + "VEVNUEVSQVRVUkUQxhcSIAobU0NSRVdfTU9UT1JfT1ZFUlRFTVBFUkFUVVJF", + "EMcXEiYKIUxPQURJTkdfQVJNX01PVE9SX09WRVJURU1QRVJBVFVSRRDIFxIX", + "ChJGRUVERVJfTU9UT1JfU1RBTEwQyRcSHQoYUklHSFRfTE9BREVSX01PVE9S", + "X1NUQUxMEMoXEhcKElBVTExFUl9NT1RPUl9TVEFMTBDLFxIcChdMRUZUX0xP", + "QURFUl9NT1RPUl9TVEFMTBDMFxIXChJXSU5ERVJfTU9UT1JfU1RBTEwQzRcS", + "FgoRU0NSRVdfTU9UT1JfU1RBTEwQzhcSHAoXTE9BRElOR19BUk1fTU9UT1Jf", + "U1RBTEwQzxcSHgoZRkVFREVSX01PVE9SX1VOREVSVk9MVEFHRRDQFxIkCh9S", + "SUdIVF9MT0FERVJfTU9UT1JfVU5ERVJWT0xUQUdFENEXEh4KGVBVTExFUl9N", + "T1RPUl9VTkRFUlZPTFRBR0UQ0hcSIwoeTEVGVF9MT0FERVJfTU9UT1JfVU5E", + "RVJWT0xUQUdFENMXEh4KGVdJTkRFUl9NT1RPUl9VTkRFUlZPTFRBR0UQ1BcS", + "HQoYU0NSRVdfTU9UT1JfVU5ERVJWT0xUQUdFENUXEiMKHkxPQURJTkdfQVJN", + "X01PVE9SX1VOREVSVk9MVEFHRRDWFxIUCg9MVEZVX1VQX1RJTUVPVVQQ1xcS", + "FgoRTFRGVV9ET1dOX1RJTUVPVVQQ2BcSFAoPUlRGVV9VUF9USU1FT1VUENkX", + "EhYKEVJURlVfRE9XTl9USU1FT1VUENoXEh4KGVNDUkVXX01PVE9SX0xJTUlU", + "X1RJTUVPVVQQ2xcSJAofV0lOREVSX0RBTkNFUl9NT1RPUl9NQUxGVU5DVElP", + "ThDcFxIkCh9QVUxMRVJfREFOQ0VSX01PVE9SX01BTEZVTkNUSU9OEN0XEiQK", + "H0ZFRURFUl9EQU5DRVJfTU9UT1JfTUFMRlVOQ1RJT04Q3hcSKAojV0lOREVS", + "X0RBTkNFUl9NT1RPUl9PVkVSVEVNUEVSQVRVUkUQ3xcSKAojUFVMTEVSX0RB", + "TkNFUl9NT1RPUl9PVkVSVEVNUEVSQVRVUkUQ4BcSKAojRkVFREVSX0RBTkNF", + "Ul9NT1RPUl9PVkVSVEVNUEVSQVRVUkUQ4RcSHgoZV0lOREVSX0RBTkNFUl9N", + "T1RPUl9TVEFMTBDiFxIeChlQVUxMRVJfREFOQ0VSX01PVE9SX1NUQUxMEOMX", + "Eh4KGUZFRURFUl9EQU5DRVJfTU9UT1JfU1RBTEwQ5BcSJQogV0lOREVSX0RB", + "TkNFUl9NT1RPUl9VTkRFUlZPTFRBR0UQ5RcSJQogUFVMTEVSX0RBTkNFUl9N", + "T1RPUl9VTkRFUlZPTFRBR0UQ5hcSJQogRkVFREVSX0RBTkNFUl9NT1RPUl9V", + "TkRFUlZPTFRBR0UQ5xcSMQosVEhSRUFEX1RFTlNJT05fQ09OVFJPTF9GQUlM", + "VVJFX1BVTExFUl9EQU5DRVIQ6BcSMQosVEhSRUFEX1RFTlNJT05fQ09OVFJP", + "TF9GQUlMVVJFX1dJTkRFUl9EQU5DRVIQ6RcSJQogTUFDSElORV9TVEFURV9O", + "T19USFJFQURfREVURUNURUQQ6hcSGQoUVEhSRUFEX0xPQURJTkdfRVJST1IQ", + "6xcSHwoaTk9fQ09NTVVOSUNBVElPTl9XSVRIX0JUU1IQ7BcSFQoQQlRTUl9N", + "QUxGVU5DVElPThDtFxIhChxURU5TSU9OX0lOX0JUU1JfT1VUX09GX1JBTkdF", + "EO4XEhgKE0dSSVBQRVJfTUFMRlVOQ1RJT04Q7xcSHAoXRFJZRVJfTU9UT1Jf", + "TUFMRlVOQ1RJT04QoB8SIAobRFJZRVJfTU9UT1JfT1ZFUlRFTVBFUkFUVVJF", + "EKEfEhYKEURSWUVSX01PVE9SX1NUQUxMEKIfEh0KGERSWUVSX01PVE9SX1VO", + "REVSVk9MVEFHRRCjHxIUCg9EUllFUl9ET09SX09QRU4QpB8SIQocRFJZRVJf", + "Wk9ORV8xX09WRVJURU1QRVJBVFVSRRClHxIhChxEUllFUl9aT05FXzJfT1ZF", + "UlRFTVBFUkFUVVJFEKYfEiQKH0RSWUVSX1pPTkVfMV9VTkRFUlRFTVBFUkFU", + "VVJFX0EQpx8SJAofRFJZRVJfWk9ORV8xX1VOREVSVEVNUEVSQVRVUkVfQhCo", + "HxIkCh9EUllFUl9aT05FXzJfVU5ERVJURU1QRVJBVFVSRV9CEKkfEhkKFERS", + "WUVSX1RIRVJNQUxfQ1VUT0ZGEKofEi4KKURSWUVSX0hFQVRFUlNfWk9ORV8x", + "X0NVUlJFTlRfT1VUX09GX1JBTkdFEKsfEi4KKURSWUVSX0hFQVRFUlNfWk9O", + "RV8yX0NVUlJFTlRfT1VUX09GX1JBTkdFEKwfEiwKJ0RSWUVSX0hFQVRFUlNf", + "Wk9ORV8xX0NVUlJFTlRfTE9PUF9CUkVBSxCtHxIsCidEUllFUl9IRUFURVJT", + "X1pPTkVfMl9DVVJSRU5UX0xPT1BfQlJFQUsQrh8SGgoVRFJZRVJfRkFOX1JQ", + "TV9UT09fTE9XEK8fEhYKEURSWUVSX0ZBTl9TVE9QUEVEELAfEiAKG0RSWUVS", + "X0xJRF9NT1RPUl9NQUxGVU5DVElPThCxHxIkCh9EUllFUl9MSURfTU9UT1Jf", + "T1ZFUlRFTVBFUkFUVVJFELIfEhoKFURSWUVSX0xJRF9NT1RPUl9TVEFMTBCz", + "HxIhChxEUllFUl9MSURfTU9UT1JfVU5ERVJWT0xUQUdFELQfEiQKH0RSWUVS", + "X1pPTkVfMl9VTkRFUlRFTVBFUkFUVVJFX0EQtR8SJwoiRFlFSU5HX0hFQURf", + "Wk9ORV8xX09WRVJURU1QRVJBVFVSRRCIJxInCiJEWUVJTkdfSEVBRF9aT05F", + "XzJfT1ZFUlRFTVBFUkFUVVJFEIknEicKIkRZRUlOR19IRUFEX1pPTkVfM19P", + "VkVSVEVNUEVSQVRVUkUQiicSJwoiRFlFSU5HX0hFQURfWk9ORV80X09WRVJU", + "RU1QRVJBVFVSRRCLJxInCiJEWUVJTkdfSEVBRF9aT05FXzVfT1ZFUlRFTVBF", + "UkFUVVJFEIwnEicKIkRZRUlOR19IRUFEX1pPTkVfNl9PVkVSVEVNUEVSQVRV", + "UkUQjScSKgolRFlFSU5HX0hFQURfWk9ORV8xX1VOREVSVEVNUEVSQVRVUkVf", + "QRCOJxIqCiVEWUVJTkdfSEVBRF9aT05FXzJfVU5ERVJURU1QRVJBVFVSRV9B", + "EI8nEioKJURZRUlOR19IRUFEX1pPTkVfM19VTkRFUlRFTVBFUkFUVVJFX0EQ", + "kCcSKgolRFlFSU5HX0hFQURfWk9ORV80X1VOREVSVEVNUEVSQVRVUkVfQRCR", + "JxIqCiVEWUVJTkdfSEVBRF9aT05FXzVfVU5ERVJURU1QRVJBVFVSRV9BEJIn", + "EioKJURZRUlOR19IRUFEX1pPTkVfNl9VTkRFUlRFTVBFUkFUVVJFX0EQkycS", + "KgolRFlFSU5HX0hFQURfWk9ORV8xX1VOREVSVEVNUEVSQVRVUkVfQhCUJxIq", + "CiVEWUVJTkdfSEVBRF9aT05FXzJfVU5ERVJURU1QRVJBVFVSRV9CEJUnEioK", + "JURZRUlOR19IRUFEX1pPTkVfM19VTkRFUlRFTVBFUkFUVVJFX0IQlicSKgol", + "RFlFSU5HX0hFQURfWk9ORV80X1VOREVSVEVNUEVSQVRVUkVfQhCXJxIqCiVE", + "WUVJTkdfSEVBRF9aT05FXzVfVU5ERVJURU1QRVJBVFVSRV9CEJgnEioKJURZ", + "RUlOR19IRUFEX1pPTkVfNl9VTkRFUlRFTVBFUkFUVVJFX0IQmScSLAonRFlF", + "SU5HX0hFQURfWk9ORV8xX0NVUlJFTlRfT1VUX09GX1JBTkdFEJonEiwKJ0RZ", + "RUlOR19IRUFEX1pPTkVfMl9DVVJSRU5UX09VVF9PRl9SQU5HRRCbJxIsCidE", + "WUVJTkdfSEVBRF9aT05FXzNfQ1VSUkVOVF9PVVRfT0ZfUkFOR0UQnCcSLAon", + "RFlFSU5HX0hFQURfWk9ORV80X0NVUlJFTlRfT1VUX09GX1JBTkdFEJ0nEiwK", + "J0RZRUlOR19IRUFEX1pPTkVfNV9DVVJSRU5UX09VVF9PRl9SQU5HRRCeJxIq", + "CiVEWUVJTkdfSEVBRF9aT05FXzFfQ1VSUkVOVF9MT09QX0JSRUFLEJ8nEioK", + "JURZRUlOR19IRUFEX1pPTkVfMl9DVVJSRU5UX0xPT1BfQlJFQUsQoCcSKgol", + "RFlFSU5HX0hFQURfWk9ORV8zX0NVUlJFTlRfTE9PUF9CUkVBSxChJxIqCiVE", + "WUVJTkdfSEVBRF9aT05FXzRfQ1VSUkVOVF9MT09QX0JSRUFLEKInEioKJURZ", + "RUlOR19IRUFEX1pPTkVfNV9DVVJSRU5UX0xPT1BfQlJFQUsQoycSHwoaRFlF", + "SU5HX0hFQURfVEhFUk1BTF9DVVRPRkYQpCcSIwoeRFlFSU5HX0hFQURfQ09W", + "RVJfT1BFTl9USU1FT1VUEKUnEiQKH0RZRUlOR19IRUFEX0NPVkVSX0NMT1NF", + "X1RJTUVPVVQQpicSKAojRFlFSU5HX0hFQURfQ09WRVJfTU9UT1JfTUFMRlVO", + "Q1RJT04QpycSLAonRFlFSU5HX0hFQURfQ09WRVJfTU9UT1JfT1ZFUlRFTVBF", + "UkFUVVJFEKgnEiIKHURZRUlOR19IRUFEX0NPVkVSX01PVE9SX1NUQUxMEKkn", + "EikKJERZRUlOR19IRUFEX0NPVkVSX01PVE9SX1VOREVSVk9MVEFHRRCqJxI1", + "CjBEWUVJTkdfSEVBRF9DTEVBTklOR19NRUNIQU5JU01fTU9UT1JfTUFMRlVO", + "Q1RJT04QqycSOQo0RFlFSU5HX0hFQURfQ0xFQU5JTkdfTUVDSEFOSVNNX01P", + "VE9SX09WRVJURU1QRVJBVFVSRRCsJxIvCipEWUVJTkdfSEVBRF9DTEVBTklO", + "R19NRUNIQU5JU01fTU9UT1JfU1RBTEwQrScSNgoxRFlFSU5HX0hFQURfQ0xF", + "QU5JTkdfTUVDSEFOSVNNX01PVE9SX1VOREVSVk9MVEFHRRCuJxIwCitEWUVJ", + "TkdfSEVBRF9DTEVBTklOR19IRUFEX01PVE9SX01BTEZVTkNUSU9OEK8nEjQK", + "L0RZRUlOR19IRUFEX0NMRUFOSU5HX0hFQURfTU9UT1JfT1ZFUlRFTVBFUkFU", + "VVJFELAnEioKJURZRUlOR19IRUFEX0NMRUFOSU5HX0hFQURfTU9UT1JfU1RB", + "TEwQsScSMQosRFlFSU5HX0hFQURfQ0xFQU5JTkdfSEVBRF9NT1RPUl9VTkRF", + "UlZPTFRBR0UQsicSJwoiRFlFSU5HX0hFQURfWk9ORV83X09WRVJURU1QRVJB", + "VFVSRRCzJxInCiJEWUVJTkdfSEVBRF9aT05FXzhfT1ZFUlRFTVBFUkFUVVJF", + "ELQnEicKIkRZRUlOR19IRUFEX1pPTkVfOV9PVkVSVEVNUEVSQVRVUkUQtScS", + "KAojRFlFSU5HX0hFQURfWk9ORV8xMF9PVkVSVEVNUEVSQVRVUkUQticSKAoj", + "RFlFSU5HX0hFQURfWk9ORV8xMV9PVkVSVEVNUEVSQVRVUkUQtycSKAojRFlF", + "SU5HX0hFQURfWk9ORV8xMl9PVkVSVEVNUEVSQVRVUkUQuCcSKgolRFlFSU5H", + "X0hFQURfWk9ORV83X1VOREVSVEVNUEVSQVRVUkVfQRC5JxIqCiVEWUVJTkdf", + "SEVBRF9aT05FXzhfVU5ERVJURU1QRVJBVFVSRV9BELonEioKJURZRUlOR19I", + "RUFEX1pPTkVfOV9VTkRFUlRFTVBFUkFUVVJFX0EQuycSKwomRFlFSU5HX0hF", + "QURfWk9ORV8xMF9VTkRFUlRFTVBFUkFUVVJFX0EQvCcSKwomRFlFSU5HX0hF", + "QURfWk9ORV8xMV9VTkRFUlRFTVBFUkFUVVJFX0EQvScSKwomRFlFSU5HX0hF", + "QURfWk9ORV8xMl9VTkRFUlRFTVBFUkFUVVJFX0EQvicSKgolRFlFSU5HX0hF", + "QURfWk9ORV83X1VOREVSVEVNUEVSQVRVUkVfQhC/JxIqCiVEWUVJTkdfSEVB", + "RF9aT05FXzhfVU5ERVJURU1QRVJBVFVSRV9CEMAnEioKJURZRUlOR19IRUFE", + "X1pPTkVfOV9VTkRFUlRFTVBFUkFUVVJFX0IQwScSKwomRFlFSU5HX0hFQURf", + "Wk9ORV8xMF9VTkRFUlRFTVBFUkFUVVJFX0IQwicSKwomRFlFSU5HX0hFQURf", + "Wk9ORV8xMV9VTkRFUlRFTVBFUkFUVVJFX0IQwycSKwomRFlFSU5HX0hFQURf", + "Wk9ORV8xMl9VTkRFUlRFTVBFUkFUVVJFX0IQxCcSLAonRFlFSU5HX0hFQURf", + "Wk9ORV82X0NVUlJFTlRfT1VUX09GX1JBTkdFEMUnEiwKJ0RZRUlOR19IRUFE", + "X1pPTkVfN19DVVJSRU5UX09VVF9PRl9SQU5HRRDGJxIsCidEWUVJTkdfSEVB", + "RF9aT05FXzhfQ1VSUkVOVF9PVVRfT0ZfUkFOR0UQxycSLAonRFlFSU5HX0hF", + "QURfWk9ORV85X0NVUlJFTlRfT1VUX09GX1JBTkdFEMgnEi0KKERZRUlOR19I", + "RUFEX1pPTkVfMTBfQ1VSUkVOVF9PVVRfT0ZfUkFOR0UQyScSLQooRFlFSU5H", + "X0hFQURfWk9ORV8xMV9DVVJSRU5UX09VVF9PRl9SQU5HRRDKJxItCihEWUVJ", + "TkdfSEVBRF9aT05FXzEyX0NVUlJFTlRfT1VUX09GX1JBTkdFEMsnEioKJURZ", + "RUlOR19IRUFEX1pPTkVfNl9DVVJSRU5UX0xPT1BfQlJFQUsQzCcSKgolRFlF", + "SU5HX0hFQURfWk9ORV83X0NVUlJFTlRfTE9PUF9CUkVBSxDNJxIqCiVEWUVJ", + "TkdfSEVBRF9aT05FXzhfQ1VSUkVOVF9MT09QX0JSRUFLEM4nEioKJURZRUlO", + "R19IRUFEX1pPTkVfOV9DVVJSRU5UX0xPT1BfQlJFQUsQzycSKwomRFlFSU5H", + "X0hFQURfWk9ORV8xMF9DVVJSRU5UX0xPT1BfQlJFQUsQ0CcSKwomRFlFSU5H", + "X0hFQURfWk9ORV8xMV9DVVJSRU5UX0xPT1BfQlJFQUsQ0ScSKwomRFlFSU5H", + "X0hFQURfWk9ORV8xMl9DVVJSRU5UX0xPT1BfQlJFQUsQ0icSKQokRFlFSU5H", + "X0hFQURfQkxPV0VSXzFfT1ZFUlRFTVBFUkFUVVJFENMnEikKJERZRUlOR19I", + "RUFEX0JMT1dFUl8yX09WRVJURU1QRVJBVFVSRRDUJxIsCidEWUVJTkdfSEVB", + "RF9CTE9XRVJfMV9VTkRFUlRFTVBFUkFUVVJFX0EQ1ScSLAonRFlFSU5HX0hF", + "QURfQkxPV0VSXzJfVU5ERVJURU1QRVJBVFVSRV9BENYnEiwKJ0RZRUlOR19I", + "RUFEX0JMT1dFUl8xX1VOREVSVEVNUEVSQVRVUkVfQhDXJxIsCidEWUVJTkdf", + "SEVBRF9CTE9XRVJfMl9VTkRFUlRFTVBFUkFUVVJFX0IQ2CcSLgopRFlFSU5H", + "X0hFQURfQkxPV0VSXzFfQ1VSUkVOVF9PVVRfT0ZfUkFOR0UQ2ScSLgopRFlF", + "SU5HX0hFQURfQkxPV0VSXzJfQ1VSUkVOVF9PVVRfT0ZfUkFOR0UQ2icSLAon", + "RFlFSU5HX0hFQURfQkxPV0VSXzFfQ1VSUkVOVF9MT09QX0JSRUFLENsnEiwK", + "J0RZRUlOR19IRUFEX0JMT1dFUl8yX0NVUlJFTlRfTE9PUF9CUkVBSxDcJxIl", + "CiBEWUVJTkdfSEVBRF9CTE9XRVJfMV9GQU5fU1RPUFBFRBDdJxIlCiBEWUVJ", + "TkdfSEVBRF9CTE9XRVJfMl9GQU5fU1RPUFBFRBDeJxIpCiREWUVJTkdfSEVB", + "RF9CTE9XRVJfMV9GQU5fUlBNX1RPT19MT1cQ3ycSKQokRFlFSU5HX0hFQURf", + "QkxPV0VSXzJfRkFOX1JQTV9UT09fTE9XEOAnEioKJURZRUlOR19IRUFEX1JJ", + "R0hUX0FDVFVBVE9SX1VQX1RJTUVPVVQQ4ScSKQokRFlFSU5HX0hFQURfTEVG", + "VF9BQ1RVQVRPUl9VUF9USU1FT1VUEOInEiwKJ0RZRUlOR19IRUFEX1JJR0hU", + "X0FDVFVBVE9SX0RPV05fVElNRU9VVBDjJxIrCiZEWUVJTkdfSEVBRF9MRUZU", + "X0FDVFVBVE9SX0RPV05fVElNRU9VVBDkJxInCiJEWUVJTkdfSEVBRF9CTE9X", + "RVJfMV9GTE9XX1RPT19ISUdIEOUnEicKIkRZRUlOR19IRUFEX0JMT1dFUl8y", + "X0ZMT1dfVE9PX0hJR0gQ5icSJgohRFlFSU5HX0hFQURfQkxPV0VSXzFfRkxP", + "V19UT09fTE9XEOcnEiYKIURZRUlOR19IRUFEX0JMT1dFUl8yX0ZMT1dfVE9P", + "X0xPVxDoJxIgChtEWUVJTkdfSEVBRF9BUkNfTElEX0lTX09QRU4Q6ScSIwoe", + "RFlFSU5HX0hFQURfVFVOTkVMX0xJRF9JU19PUEVOEOonEh4KGURZRUlOR19I", + "RUFEX0NPVkVSX0lTX09QRU4Q6ycSIgodRFlFSU5HX0hFQURfVk9MVEFHRV8x", + "X1RPT19MT1cQ7CcSIgodRFlFSU5HX0hFQURfVk9MVEFHRV8yX1RPT19MT1cQ", + "7ScSIgodRFlFSU5HX0hFQURfVk9MVEFHRV8zX1RPT19MT1cQ7icSIAobRFlF", + "SU5HX0hFQURfVk9MVEFHRV8xX0JSRUFLEO8nEiAKG0RZRUlOR19IRUFEX1ZP", + "TFRBR0VfMl9CUkVBSxDwJxIgChtEWUVJTkdfSEVBRF9WT0xUQUdFXzNfQlJF", + "QUsQ8ScSGgoVTUlYRVJfT1ZFUlRFTVBFUkFUVVJFEPAuEh0KGE1JWEVSX1VO", + "REVSVEVNUEVSQVRVUkVfQRDxLhIdChhNSVhFUl9VTkRFUlRFTVBFUkFUVVJF", + "X0IQ8i4SGQoUTUlYRVJfVEhFUk1BTF9DVVRPRkYQ8y4SHwoaTUlYRVJfQ1VS", + "UkVOVF9PVVRfT0ZfUkFOR0UQ9C4SHQoYTUlYRVJfQ1VSUkVOVF9MT09QX0JS", + "RUFLEPUuEh0KGERJU1BFTlNFUl8xX09WRVJQUkVTU1VSRRDYNhIdChhESVNQ", + "RU5TRVJfMl9PVkVSUFJFU1NVUkUQ2TYSHQoYRElTUEVOU0VSXzNfT1ZFUlBS", + "RVNTVVJFENo2Eh0KGERJU1BFTlNFUl80X09WRVJQUkVTU1VSRRDbNhIdChhE", + "SVNQRU5TRVJfNV9PVkVSUFJFU1NVUkUQ3DYSHQoYRElTUEVOU0VSXzZfT1ZF", + "UlBSRVNTVVJFEN02Eh0KGERJU1BFTlNFUl83X09WRVJQUkVTU1VSRRDeNhId", + "ChhESVNQRU5TRVJfOF9PVkVSUFJFU1NVUkUQ3zYSHgoZRElTUEVOU0VSXzFf", + "VU5ERVJQUkVTU1VSRRDgNhIeChlESVNQRU5TRVJfMl9VTkRFUlBSRVNTVVJF", + "EOE2Eh4KGURJU1BFTlNFUl8zX1VOREVSUFJFU1NVUkUQ4jYSHgoZRElTUEVO", + "U0VSXzRfVU5ERVJQUkVTU1VSRRDjNhIeChlESVNQRU5TRVJfNV9VTkRFUlBS", + "RVNTVVJFEOQ2Eh4KGURJU1BFTlNFUl82X1VOREVSUFJFU1NVUkUQ5TYSHgoZ", + "RElTUEVOU0VSXzdfVU5ERVJQUkVTU1VSRRDmNhIeChlESVNQRU5TRVJfOF9V", + "TkRFUlBSRVNTVVJFEOc2EhYKEURJU1BFTlNFUl8xX0VNUFRZEOg2EhYKEURJ", + "U1BFTlNFUl8yX0VNUFRZEOk2EhYKEURJU1BFTlNFUl8zX0VNUFRZEOo2EhYK", + "EURJU1BFTlNFUl80X0VNUFRZEOs2EhYKEURJU1BFTlNFUl81X0VNUFRZEOw2", + "EhYKEURJU1BFTlNFUl82X0VNUFRZEO02EhYKEURJU1BFTlNFUl83X0VNUFRZ", + "EO42EhYKEURJU1BFTlNFUl84X0VNUFRZEO82Eh8KGkRJU1BFTlNFUl8xX1JF", + "RklMTF9GQUlMVVJFEPA2Eh8KGkRJU1BFTlNFUl8yX1JFRklMTF9GQUlMVVJF", + "EPE2Eh8KGkRJU1BFTlNFUl8zX1JFRklMTF9GQUlMVVJFEPI2Eh8KGkRJU1BF", + "TlNFUl80X1JFRklMTF9GQUlMVVJFEPM2Eh8KGkRJU1BFTlNFUl81X1JFRklM", + "TF9GQUlMVVJFEPQ2Eh8KGkRJU1BFTlNFUl82X1JFRklMTF9GQUlMVVJFEPU2", + "Eh8KGkRJU1BFTlNFUl83X1JFRklMTF9GQUlMVVJFEPY2Eh8KGkRJU1BFTlNF", + "Ul84X1JFRklMTF9GQUlMVVJFEPc2EiIKHURJU1BFTlNFUl8xX01PVE9SX01B", + "TEZVTkNUSU9OEPg2EiIKHURJU1BFTlNFUl8yX01PVE9SX01BTEZVTkNUSU9O", + "EPk2EiIKHURJU1BFTlNFUl8zX01PVE9SX01BTEZVTkNUSU9OEPo2EiIKHURJ", + "U1BFTlNFUl80X01PVE9SX01BTEZVTkNUSU9OEPs2EiIKHURJU1BFTlNFUl81", + "X01PVE9SX01BTEZVTkNUSU9OEPw2EiIKHURJU1BFTlNFUl82X01PVE9SX01B", + "TEZVTkNUSU9OEP02EiIKHURJU1BFTlNFUl83X01PVE9SX01BTEZVTkNUSU9O", + "EP42EiIKHURJU1BFTlNFUl84X01PVE9SX01BTEZVTkNUSU9OEP82EiYKIURJ", + "U1BFTlNFUl8xX01PVE9SX09WRVJURU1QRVJBVFVSRRCANxImCiFESVNQRU5T", + "RVJfMl9NT1RPUl9PVkVSVEVNUEVSQVRVUkUQgTcSJgohRElTUEVOU0VSXzNf", + "TU9UT1JfT1ZFUlRFTVBFUkFUVVJFEII3EiYKIURJU1BFTlNFUl80X01PVE9S", + "X09WRVJURU1QRVJBVFVSRRCDNxImCiFESVNQRU5TRVJfNV9NT1RPUl9PVkVS", + "VEVNUEVSQVRVUkUQhDcSJgohRElTUEVOU0VSXzZfTU9UT1JfT1ZFUlRFTVBF", + "UkFUVVJFEIU3EiYKIURJU1BFTlNFUl83X01PVE9SX09WRVJURU1QRVJBVFVS", + "RRCGNxImCiFESVNQRU5TRVJfOF9NT1RPUl9PVkVSVEVNUEVSQVRVUkUQhzcS", + "HAoXRElTUEVOU0VSXzFfTU9UT1JfU1RBTEwQiDcSHAoXRElTUEVOU0VSXzJf", + "TU9UT1JfU1RBTEwQiTcSHAoXRElTUEVOU0VSXzNfTU9UT1JfU1RBTEwQijcS", + "HAoXRElTUEVOU0VSXzRfTU9UT1JfU1RBTEwQizcSHAoXRElTUEVOU0VSXzVf", + "TU9UT1JfU1RBTEwQjDcSHAoXRElTUEVOU0VSXzZfTU9UT1JfU1RBTEwQjTcS", + "HAoXRElTUEVOU0VSXzdfTU9UT1JfU1RBTEwQjjcSHAoXRElTUEVOU0VSXzhf", + "TU9UT1JfU1RBTEwQjzcSIwoeRElTUEVOU0VSXzFfTU9UT1JfVU5ERVJWT0xU", + "QUdFEJA3EiMKHkRJU1BFTlNFUl8yX01PVE9SX1VOREVSVk9MVEFHRRCRNxIj", + "Ch5ESVNQRU5TRVJfM19NT1RPUl9VTkRFUlZPTFRBR0UQkjcSIwoeRElTUEVO", + "U0VSXzRfTU9UT1JfVU5ERVJWT0xUQUdFEJM3EiMKHkRJU1BFTlNFUl81X01P", + "VE9SX1VOREVSVk9MVEFHRRCUNxIjCh5ESVNQRU5TRVJfNl9NT1RPUl9VTkRF", + "UlZPTFRBR0UQlTcSIwoeRElTUEVOU0VSXzdfTU9UT1JfVU5ERVJWT0xUQUdF", + "EJY3EiMKHkRJU1BFTlNFUl84X01PVE9SX1VOREVSVk9MVEFHRRCXNxIhChxE", + "SVNQRU5TRVJfMV9VUFBFUl9IQVJEX0xJTUlUEJg3EiEKHERJU1BFTlNFUl8y", + "X1VQUEVSX0hBUkRfTElNSVQQmTcSIQocRElTUEVOU0VSXzNfVVBQRVJfSEFS", + "RF9MSU1JVBCaNxIhChxESVNQRU5TRVJfNF9VUFBFUl9IQVJEX0xJTUlUEJs3", + "EiEKHERJU1BFTlNFUl81X1VQUEVSX0hBUkRfTElNSVQQnDcSIQocRElTUEVO", + "U0VSXzZfVVBQRVJfSEFSRF9MSU1JVBCdNxIhChxESVNQRU5TRVJfN19VUFBF", + "Ul9IQVJEX0xJTUlUEJ43EiEKHERJU1BFTlNFUl84X1VQUEVSX0hBUkRfTElN", + "SVQQnzcSIQocRElTUEVOU0VSXzFfTE9XRVJfSEFSRF9MSU1JVBCgNxIhChxE", + "SVNQRU5TRVJfMl9MT1dFUl9IQVJEX0xJTUlUEKE3EiEKHERJU1BFTlNFUl8z", + "X0xPV0VSX0hBUkRfTElNSVQQojcSIQocRElTUEVOU0VSXzRfTE9XRVJfSEFS", + "RF9MSU1JVBCjNxIhChxESVNQRU5TRVJfNV9MT1dFUl9IQVJEX0xJTUlUEKQ3", + "EiEKHERJU1BFTlNFUl82X0xPV0VSX0hBUkRfTElNSVQQpTcSIQocRElTUEVO", + "U0VSXzdfTE9XRVJfSEFSRF9MSU1JVBCmNxIhChxESVNQRU5TRVJfOF9MT1dF", + "Ul9IQVJEX0xJTUlUEKc3Eh4KGURJU1BFTlNFUl8xX0hJR0hfUFJFU1NVUkUQ", + "qDcSHgoZRElTUEVOU0VSXzJfSElHSF9QUkVTU1VSRRCpNxIeChlESVNQRU5T", + "RVJfM19ISUdIX1BSRVNTVVJFEKo3Eh4KGURJU1BFTlNFUl80X0hJR0hfUFJF", + "U1NVUkUQqzcSHgoZRElTUEVOU0VSXzVfSElHSF9QUkVTU1VSRRCsNxIeChlE", + "SVNQRU5TRVJfNl9ISUdIX1BSRVNTVVJFEK03Eh4KGURJU1BFTlNFUl83X0hJ", + "R0hfUFJFU1NVUkUQrjcSHgoZRElTUEVOU0VSXzhfSElHSF9QUkVTU1VSRRCv", + "NxIdChhESVNQRU5TRVJfOV9PVkVSUFJFU1NVUkUQsDcSHgoZRElTUEVOU0VS", + "XzlfVU5ERVJQUkVTU1VSRRCxNxIeChlESVNQRU5TRVJfMTBfT1ZFUlBSRVNT", + "VVJFELI3Eh8KGkRJU1BFTlNFUl8xMF9VTkRFUlBSRVNTVVJFELM3EiQKH0RJ", + "U1BFTlNFUl85X01PVE9SXzFfTUFMRlVOQ1RJT04QtDcSJAofRElTUEVOU0VS", + "XzlfTU9UT1JfMl9NQUxGVU5DVElPThC1NxIlCiBESVNQRU5TRVJfMTBfTU9U", + "T1JfMV9NQUxGVU5DVElPThC2NxIlCiBESVNQRU5TRVJfMTBfTU9UT1JfMl9N", + "QUxGVU5DVElPThC3NxIZChRNSURfVEFOS18xX0xPV19MRVZFTBDAPhIZChRN", + "SURfVEFOS18yX0xPV19MRVZFTBDBPhIZChRNSURfVEFOS18zX0xPV19MRVZF", + "TBDCPhIZChRNSURfVEFOS180X0xPV19MRVZFTBDDPhIZChRNSURfVEFOS181", + "X0xPV19MRVZFTBDEPhIZChRNSURfVEFOS182X0xPV19MRVZFTBDFPhIZChRN", + "SURfVEFOS183X0xPV19MRVZFTBDGPhIZChRNSURfVEFOS184X0xPV19MRVZF", + "TBDHPhIVChBNSURfVEFOS18xX0VNUFRZEMg+EhUKEE1JRF9UQU5LXzJfRU1Q", + "VFkQyT4SFQoQTUlEX1RBTktfM19FTVBUWRDKPhIVChBNSURfVEFOS180X0VN", + "UFRZEMs+EhUKEE1JRF9UQU5LXzVfRU1QVFkQzD4SFQoQTUlEX1RBTktfNl9F", + "TVBUWRDNPhIVChBNSURfVEFOS183X0VNUFRZEM4+EhUKEE1JRF9UQU5LXzhf", + "RU1QVFkQzz4SGAoTTUlEX1RBTktfMV9PVkVSRkxPVxDQPhIYChNNSURfVEFO", + "S18yX09WRVJGTE9XENE+EhgKE01JRF9UQU5LXzNfT1ZFUkZMT1cQ0j4SGAoT", + "TUlEX1RBTktfNF9PVkVSRkxPVxDTPhIYChNNSURfVEFOS181X09WRVJGTE9X", + "ENQ+EhgKE01JRF9UQU5LXzZfT1ZFUkZMT1cQ1T4SGAoTTUlEX1RBTktfN19P", + "VkVSRkxPVxDWPhIYChNNSURfVEFOS184X09WRVJGTE9XENc+EhwKF01JRF9U", + "QU5LXzFfRklMTF9USU1FT1VUENg+EhwKF01JRF9UQU5LXzJfRklMTF9USU1F", + "T1VUENk+EhwKF01JRF9UQU5LXzNfRklMTF9USU1FT1VUENo+EhwKF01JRF9U", + "QU5LXzRfRklMTF9USU1FT1VUENs+EhwKF01JRF9UQU5LXzVfRklMTF9USU1F", + "T1VUENw+EhwKF01JRF9UQU5LXzZfRklMTF9USU1FT1VUEN0+EhwKF01JRF9U", + "QU5LXzdfRklMTF9USU1FT1VUEN4+EhwKF01JRF9UQU5LXzhfRklMTF9USU1F", + "T1VUEN8+EhkKFE1JRF9UQU5LXzlfTE9XX0xFVkVMEOA+EhUKEE1JRF9UQU5L", + "XzlfRU1QVFkQ4T4SGAoTTUlEX1RBTktfOV9PVkVSRkxPVxDiPhIcChdNSURf", + "VEFOS185X0ZJTExfVElNRU9VVBDjPhIaChVNSURfVEFOS18xMF9MT1dfTEVW", + "RUwQ5D4SFgoRTUlEX1RBTktfMTBfRU1QVFkQ5T4SGQoUTUlEX1RBTktfMTBf", + "T1ZFUkZMT1cQ5j4SHQoYTUlEX1RBTktfMTBfRklMTF9USU1FT1VUEOc+EhsK", + "Fk1JRF9UQU5LXzFfTUFMRlVOQ1RJT04Q6D4SGwoWTUlEX1RBTktfMl9NQUxG", + "VU5DVElPThDpPhIbChZNSURfVEFOS18zX01BTEZVTkNUSU9OEOo+EhsKFk1J", + "RF9UQU5LXzRfTUFMRlVOQ1RJT04Q6z4SGwoWTUlEX1RBTktfNV9NQUxGVU5D", + "VElPThDsPhIbChZNSURfVEFOS182X01BTEZVTkNUSU9OEO0+EhsKFk1JRF9U", + "QU5LXzdfTUFMRlVOQ1RJT04Q7j4SGwoWTUlEX1RBTktfOF9NQUxGVU5DVElP", + "ThDvPhIbChZNSURfVEFOS185X01BTEZVTkNUSU9OEPA+EhwKF01JRF9UQU5L", + "XzEwX01BTEZVTkNUSU9OEPE+Eh0KGEFJUl9GSUxURVJfTk9UX0lOU1RBTExF", + "RBCoRhIXChJBSVJfRklMVEVSX0NMT0dHRUQQqUYSJQogV0FTVEVfQ09OVEFJ", + "TkVSX0VNUFRZSU5HX1RJTUVPVVQQqkYSFAoPTk9fQUlSX1BSRVNTVVJFEKtG", + "Eh0KGFdBU1RFX0NPTlRBSU5FUl9PVkVSRkxPVxCsRhIaChVWT0NfU0VOU09S", + "X0FMQVJNX1RJTUUQrUYSGAoTQ0hJTExFUl9EUllfQ09OVEFDVBCuRhIaChVJ", + "TlNVRkZJQ0lFTlRfQUlSX0ZMT1cQr0YSGwoWVk9DX1NFTlNPUl9BTEFSTV9T", + "TE9QRRCwRhIdChhQUkVfQ09PTEVSX0ZBTl8xX1NUT1BQRUQQsUYSHQoYUFJF", + "X0NPT0xFUl9GQU5fMl9TVE9QUEVEELJGEhkKFENPT0xFUl9GQU5fMV9TVE9Q", + "UEVEELNGEhkKFENPT0xFUl9GQU5fMl9TVE9QUEVEELRGEhkKFENPT0xFUl9G", + "QU5fM19TVE9QUEVEELVGEhkKFENPT0xFUl9GQU5fNF9TVE9QUEVEELZGEiEK", + "HFBSRV9DT09MRVJfRkFOXzFfUlBNX1RPT19MT1cQt0YSIQocUFJFX0NPT0xF", + "Ul9GQU5fMl9SUE1fVE9PX0xPVxC4RhIdChhDT09MRVJfRkFOXzFfUlBNX1RP", + "T19MT1cQuUYSHQoYQ09PTEVSX0ZBTl8yX1JQTV9UT09fTE9XELpGEh0KGENP", + "T0xFUl9GQU5fM19SUE1fVE9PX0xPVxC7RhIdChhDT09MRVJfRkFOXzRfUlBN", + "X1RPT19MT1cQvEYSIAobQ09PTEVSX1RFTVBFUkFUVVJFX1RPT19ISUdIEL1G", + "Eh8KGkNPT0xFUl9URU1QRVJBVFVSRV9UT09fTE9XEL5GEioKJUlOS19DQVJU", + "UklER0VfUFJFU0VOQ0VfU0VOU09SX1RJTUVPVVQQkE4SHwoaSU5LX0NBUlRS", + "SURHRV9SRklEX1RJTUVPVVQQkU4SIQocTk9fV0FTVEVfQ0FSVFJJREdFX0FW", + "QUlMQUJMRRCSThIUCg9XQVNURV9UQU5LX0ZVTEwQk04SJQogQ0FSVFJJREdF", + "U19OT1RfSU5TRVJURURfUFJPUEVSTFkQlE4SIQocV0FTVEVfQ0FSVFJJREdF", + "X1JGSURfVElNRU9VVBCVThIqCiVJTktfQ0FSVFJJREdFX1JGSURfVEFHX0NB", + "Tk5PVF9CRV9SRUFEEJZOEiwKJ1dBU1RFX0NBUlRSSURHRV9SRklEX1RBR19D", + "QU5OT1RfQkVfUkVBRBCXThIoCiNJTktfQ0FSVFJJREdFX1JGSURfVEFHX0lT", + "X05PVF9WQUxJRBCYThIqCiVXQVNURV9DQVJUUklER0VfUkZJRF9UQUdfSVNf", + "Tk9UX1ZBTElEEJlOEigKI0lOS19DQVJUUklER0VfQVVUSEVOVElDQVRJT05f", + "RkFJTEVEEJpOEioKJVdBU1RFX0NBUlRSSURHRV9BVVRIRU5USUNBVElPTl9G", + "QUlMRUQQm04SHQoYSU5LX0NBUlRSSURHRV9JU19CTE9DS0VEEJxOEh8KGldB", + "U1RFX0NBUlRSSURHRV9JU19CTE9DS0VEEJ1OEi0KKElOS19DQVJUUklER0Vf", + "UkZJRF9UQUdfQ0FOTk9UX0JFX1VQREFURUQQnk4SLwoqV0FTVEVfQ0FSVFJJ", + "REdFX1JGSURfVEFHX0NBTk5PVF9CRV9VUERBVEVEEJ9OEiAKG0lOS19JTl9D", + "QVJUUklER0VfSVNfRVhQSVJFRBCgThIUCg5FX1JFUVVFU1RfU0VOVBCIlQYS", + "GQoTRV9SRVNQT05TRV9SRUNFSVZFRBCJlQYSFgoQRV9SRVFVRVNUX0ZBSUxF", + "RBCKlQYSHQoXRV9BUFBMSUNBVElPTl9FWENFUFRJT04Qi5UGEh8KGUVfQVBQ", + "TElDQVRJT05fSU5GT1JNQVRJT04QjJUGEhsKFUVfQVBQTElDQVRJT05fU1RB", + "UlRFRBCNlQYSHgoYRV9BUFBMSUNBVElPTl9URVJNSU5BVEVEEI6VBhIZChNF", + "X1JFQ09SRElOR19TVEFSVEVEEI+VBhIZChNFX1JFQ09SRElOR19TVE9QUEVE", + "EJCVBhISCgxFX0pPQl9TVEFUVVMQkZUGEhMKDUVfSk9CX1NUQVJURUQQkpUG", + "EhMKDUVfSk9CX0FCT1JURUQQk5UGEhIKDEVfSk9CX0ZBSUxFRBCUlQYSFQoP", + "RV9KT0JfQ09NUExFVEVEEJWVBhIcChZFX1BPV0VSX1VQX0JJVF9GQUlMVVJF", + "EPCcBhIhChtFX01BQ0hJTkVfU1RBVEVfTk9fQ0ZHX0ZJTEUQ8ZwGEiYKIEVf", + "TUFDSElORV9TVEFURV9IV19DT05GSUdfRkFJTEVEEPKcBhIjCh1FX01BQ0hJ", + "TkVfU1RBVEVfTk9fRkxBU0hfRklMRRDznAYSJAoeRV9NQUNISU5FX1NUQVRF", + "X05PX0FMQVJNU19GSUxFEPScBhIlCh9FX0VNRVJHRU5DWV9QVVNIX0JVVFRP", + "Tl9QUkVTU0VEENmkBhIXChFFX0RSWUVSX0RPT1JfT1BFThDapAYSHAoWRV9E", + "UllFUl9USEVSTUFMX0NVVE9GRhDbpAYSHQoXRV9UVU5ORUxfVEhFUk1BTF9D", + "VVRPRkYQ3KQGEiIKHEVfRFlFSU5HX0hFQURfVEhFUk1BTF9DVVRPRkYQ3aQG", + "EhwKFkVfTUlYRVJfVEhFUk1BTF9DVVRPRkYQ3qQGEiIKHEVfTFVCUklDQVRJ", + "T05fVEhFUk1BTF9DVVRPRkYQ36QGEh4KGEVfVFVOTkVMX0FJUl9GTE9XX1NX", + "SVRDSBDgpAYSGwoVRV9XSFNfQUlSX0ZMT1dfU1dJVENIEOGkBhIeChhFX0FJ", + "Ul9GSUxURVJfTk9UX1BSRVNFTlQQ4qQGEhgKEkVfVU5JTlRFTkRFRF9SRVNF", + "VBDArAYSHgoYRV9TRF9DQVJEX05PVF9SRVNQT05ESU5HEMGsBhIkCh5FX05P", + "X0NPTU1VTklDQVRJT05fV0lUSF9CVFNSXzEQqLQGEiQKHkVfTk9fQ09NTVVO", + "SUNBVElPTl9XSVRIX0JUU1JfMhCptAYSJAoeRV9OT19DT01NVU5JQ0FUSU9O", + "X1dJVEhfQlRTUl8zEKq0BhIkCh5FX05PX0NPTU1VTklDQVRJT05fV0lUSF9C", + "VFNSXzQQq7QGEikKI0VfTk9fQ09NTVVOSUNBVElPTl9XSVRIX0RSWUVSX0JP", + "QVJEEKy0BhIvCilFX05PX0NPTU1VTklDQVRJT05fV0lUSF9EWUVJTkdfSEVB", + "RF9CT0FSRBCttAYSLAomRV9OT19DT01NVU5JQ0FUSU9OX1dJVEhfV0lOREVS", + "XzFfQk9BUkQQrrQGEiwKJkVfTk9fQ09NTVVOSUNBVElPTl9XSVRIX1dJTkRF", + "Ul8yX0JPQVJEEK+0BhIsCiZFX05PX0NPTU1VTklDQVRJT05fV0lUSF9XSU5E", + "RVJfM19CT0FSRBCwtAYSLAomRV9OT19DT01NVU5JQ0FUSU9OX1dJVEhfV0lO", + "REVSXzRfQk9BUkQQsbQGEikKI0VfTk9fQ09NTVVOSUNBVElPTl9XSVRIX0lE", + "U18xX0JPQVJEELK0BhIpCiNFX05PX0NPTU1VTklDQVRJT05fV0lUSF9JRFNf", + "Ml9CT0FSRBCztAYSKQojRV9OT19DT01NVU5JQ0FUSU9OX1dJVEhfSURTXzNf", + "Qk9BUkQQtLQGEikKI0VfTk9fQ09NTVVOSUNBVElPTl9XSVRIX0lEU180X0JP", + "QVJEELW0BhIsCiZFX05PX0NPTU1VTklDQVRJT05fV0lUSF9NSURfVEFOS19C", + "T0FSRBC2tAYSJwohRV9OT19DT01NVU5JQ0FUSU9OX1dJVEhfV0hTX0JPQVJE", + "ELe0BhItCidFX05PX0NPTU1VTklDQVRJT05fV0lUSF9MVUJSSUNBTlRfQk9B", + "UkQQuLQGEigKIkVfTk9fQ09NTVVOSUNBVElPTl9XSVRIX01BSU5fQk9BUkQQ", + "ubQGEhYKEEVfTEVGVF9ET09SX09QRU4QkLwGEhcKEUVfUklHSFRfRE9PUl9P", + "UEVOEJG8BhIVCg9FX1RPUF9ET09SX09QRU4QkrwGEhoKFEVfVFVOTkVMX0xJ", + "RF9JU19PUEVOEJO8BhIXChFFX0FSQ19MSURfSVNfT1BFThCUvAYSGgoURV9C", + "VFNSXzFfTUFMRlVOQ1RJT04Q+MMGEhoKFEVfQlRTUl8yX01BTEZVTkNUSU9O", + "EPnDBhIaChRFX0JUU1JfM19NQUxGVU5DVElPThD6wwYSGgoURV9CVFNSXzRf", + "TUFMRlVOQ1RJT04Q+8MGEikKI0VfVEVOU0lPTl9JTl9CVFNSXzFfSVNfT1VU", + "X09GX1JBTkdFEPzDBhIpCiNFX1RFTlNJT05fSU5fQlRTUl8yX0lTX09VVF9P", + "Rl9SQU5HRRD9wwYSKQojRV9URU5TSU9OX0lOX0JUU1JfM19JU19PVVRfT0Zf", + "UkFOR0UQ/sMGEikKI0VfVEVOU0lPTl9JTl9CVFNSXzRfSVNfT1VUX09GX1JB", + "TkdFEP/DBhIUCg5FX1RIUkVBRF9CUkVBSxCAxAYSKAoiRV9EQU5DRVJfMV9U", + "RU5TSU9OX0NPTlRST0xfRkFJTFVSRRCBxAYSKAoiRV9EQU5DRVJfMl9URU5T", + "SU9OX0NPTlRST0xfRkFJTFVSRRCCxAYSKAoiRV9EQU5DRVJfM19URU5TSU9O", + "X0NPTlRST0xfRkFJTFVSRRCDxAYSKAoiRV9EQU5DRVJfNF9URU5TSU9OX0NP", + "TlRST0xfRkFJTFVSRRCExAYSHAoWRV9USFJFQURfTE9BRElOR19FUlJPUhCF", + "xAYSGwoVRV9HUklQUEVSX01BTEZVTkNUSU9OEIbEBhIWChBFX1RIUkVBRF9N", + "SVNTSU5HEIfEBhIqCiRFX0RZRUlOR19IRUFEX1pPTkVfMV9PVkVSVEVNUEVS", + "QVRVUkUQ4MsGEioKJEVfRFlFSU5HX0hFQURfWk9ORV8yX09WRVJURU1QRVJB", + "VFVSRRDhywYSKgokRV9EWUVJTkdfSEVBRF9aT05FXzNfT1ZFUlRFTVBFUkFU", + "VVJFEOLLBhIfChlFX01JWEVSXzFfT1ZFUlRFTVBFUkFUVVJFEOPLBhIfChlF", + "X01JWEVSXzJfT1ZFUlRFTVBFUkFUVVJFEOTLBhIeChhFX1RVTk5FTF9PVkVS", + "VEVNUEVSQVRVUkUQ5csGEiYKIEVfRFJZRVJfSEVBVEVSXzFfT1ZFUlRFTVBF", + "UkFUVVJFEOfLBhImCiBFX0RSWUVSX0hFQVRFUl8yX09WRVJURU1QRVJBVFVS", + "RRDoywYSJgogRV9EUllFUl9IRUFURVJfM19PVkVSVEVNUEVSQVRVUkUQ6csG", + "EiEKG0VfTFVCUklDQU5UX09WRVJURU1QRVJBVFVSRRDqywYSLQonRV9EWUVJ", + "TkdfSEVBRF9aT05FXzFfVU5ERVJURU1QRVJBVFVSRV9BEOvLBhItCidFX0RZ", + "RUlOR19IRUFEX1pPTkVfMl9VTkRFUlRFTVBFUkFUVVJFX0EQ7MsGEi0KJ0Vf", + "RFlFSU5HX0hFQURfWk9ORV8zX1VOREVSVEVNUEVSQVRVUkVfQRDtywYSIgoc", + "RV9NSVhFUl8xX1VOREVSVEVNUEVSQVRVUkVfQRDuywYSIgocRV9NSVhFUl8y", + "X1VOREVSVEVNUEVSQVRVUkVfQRDvywYSIQobRV9UVU5ORUxfVU5ERVJURU1Q", + "RVJBVFVSRV9BEPDLBhIpCiNFX0RSWUVSX0hFQVRFUl8xX1VOREVSVEVNUEVS", + "QVRVUkVfQRDxywYSKQojRV9EUllFUl9IRUFURVJfMl9VTkRFUlRFTVBFUkFU", + "VVJFX0EQ8ssGEikKI0VfRFJZRVJfSEVBVEVSXzNfVU5ERVJURU1QRVJBVFVS", + "RV9BEPPLBhIkCh5FX0xVQlJJQ0FOVF9VTkRFUlRFTVBFUkFUVVJFX0EQ9MsG", + "EiwKJkVfRFlFSU5HX0hFQURfWk9ORV8xX1VORFJURU1QRVJBVFVSRV9CEPXL", + "BhItCidFX0RZRUlOR19IRUFEX1pPTkVfMl9VTkRFUlRFTVBFUkFUVVJFX0IQ", + "9ssGEi0KJ0VfRFlFSU5HX0hFQURfWk9ORV8zX1VOREVSVEVNUEVSQVRVUkVf", + "QhD3ywYSIgocRV9NSVhFUl8xX1VOREVSVEVNUEVSQVRVUkVfQhD4ywYSIgoc", + "RV9NSVhFUl8yX1VOREVSVEVNUEVSQVRVUkVfQhD5ywYSIQobRV9UVU5ORUxf", + "VU5ERVJURU1QRVJBVFVSRV9CEPrLBhIpCiNFX0RSWUVSX0hFQVRFUl8xX1VO", + "REVSVEVNUEVSQVRVUkVfQhD7ywYSKQojRV9EUllFUl9IRUFURVJfMl9VTkRF", + "UlRFTVBFUkFUVVJFX0IQ/MsGEikKI0VfRFJZRVJfSEVBVEVSXzNfVU5ERVJU", + "RU1QRVJBVFVSRV9CEP3LBhIkCh5FX0xVQlJJQ0FOVF9VTkRFUlRFTVBFUkFU", + "VVJFX0IQ/ssGEiwKJkVfV0hTXzFfQ09PTEVSX1RFTVBFUkFUVVJFX0lTX1RP", + "T19ISUdIEP/LBhIrCiVFX1dIU18xX0NPT0xFUl9URU1QRVJBVFVSRV9JU19U", + "T09fTE9XEIDMBhIsCiZFX1dIU18yX0NPT0xFUl9URU1QRVJBVFVSRV9JU19U", + "T09fSElHSBCBzAYSKwolRV9XSFNfMl9DT09MRVJfVEVNUEVSQVRVUkVfSVNf", + "VE9PX0xPVxCCzAYSJQofRV9URU1QRVJBVFVSRV9NRUFTVVJFTUVOVF9FUlJP", + "UhCDzAYSKgokRV9EUllFUl9JTlRFUk5BTF9URU1QRVJBVFVSRV9UT09fTE9X", + "EITMBhIvCilFX0RZRUlOR19IRUFEX1pPTkVfMV9DVVJSRU5UX09VVF9PRl9S", + "QU5HRRDI0wYSLwopRV9EWUVJTkdfSEVBRF9aT05FXzJfQ1VSUkVOVF9PVVRf", + "T0ZfUkFOR0UQydMGEi8KKUVfRFlFSU5HX0hFQURfWk9ORV8zX0NVUlJFTlRf", + "T1VUX09GX1JBTkdFEMrTBhIrCiVFX01JWEVSXzFfSEVBVEVSX0NVUlJFTlRf", + "T1VUX09GX1JBTkdFEMvTBhIrCiVFX01JWEVSXzJfSEVBVEVSX0NVUlJFTlRf", + "T1VUX09GX1JBTkdFEMzTBhIqCiRFX1RVTk5FTF9IRUFURVJfQ1VSUkVOVF9P", + "VVRfT0ZfUkFOR0UQzdMGEisKJUVfRFJZRVJfSEVBVEVSXzFfQ1VSUkVOVF9P", + "VVRfT0ZfUkFOR0UQztMGEisKJUVfRFJZRVJfSEVBVEVSXzJfQ1VSUkVOVF9P", + "VVRfT0ZfUkFOR0UQz9MGEisKJUVfRFJZRVJfSEVBVEVSXzNfQ1VSUkVOVF9P", + "VVRfT0ZfUkFOR0UQ0NMGEi0KJ0VfTFVCUklDQU5UX0hFQVRFUl9DVVJSRU5U", + "X09VVF9PRl9SQU5HRRDR0wYSLQonRV9EWUVJTkdfSEVBRF9aT05FXzFfQ1VS", + "UkVOVF9MT09QX0JSRUFLENLTBhItCidFX0RZRUlOR19IRUFEX1pPTkVfMl9D", + "VVJSRU5UX0xPT1BfQlJFQUsQ09MGEi0KJ0VfRFlFSU5HX0hFQURfWk9ORV8z", + "X0NVUlJFTlRfTE9PUF9CUkVBSxDU0wYSKQojRV9NSVhFUl8xX0hFQVRFUl9D", + "VVJSRU5UX0xPT1BfQlJFQUsQ1dMGEikKI0VfTUlYRVJfMl9IRUFURVJfQ1VS", + "UkVOVF9MT09QX0JSRUFLENbTBhIoCiJFX1RVTk5FTF9IRUFURVJfQ1VSUkVO", + "VF9MT09QX0JSRUFLENfTBhIpCiNFX0RSWUVSX0hFQVRFUl8xX0NVUlJFTlRf", + "TE9PUF9CUkVBSxDY0wYSKQojRV9EUllFUl9IRUFURVJfMl9DVVJSRU5UX0xP", + "T1BfQlJFQUsQ2dMGEikKI0VfRFJZRVJfSEVBVEVSXzNfQ1VSUkVOVF9MT09Q", + "X0JSRUFLENrTBhIrCiVFX0xVQlJJQ0FOVF9IRUFURVJfQ1VSUkVOVF9MT09Q", + "X0JSRUFLENvTBhIkCh5FX0RSWUVSX01BSU5fTU9UT1JfTUFMRlVOQ1RJT04Q", + "sNsGEi4KKEVfRFJZRVJfVEhSRUFEX0xPQURJTkdfTU9UT1JfTUFMRlVOQ1RJ", + "T04QsdsGEiIKHEVfV0lOREVSXzFfTU9UT1JfTUFMRlVOQ1RJT04QstsGEiIK", + "HEVfV0lOREVSXzJfTU9UT1JfTUFMRlVOQ1RJT04Qs9sGEiIKHEVfV0lOREVS", + "XzNfTU9UT1JfTUFMRlVOQ1RJT04QtNsGEiIKHEVfV0lOREVSXzRfTU9UT1Jf", + "TUFMRlVOQ1RJT04QtdsGEiIKHEVfREFOQ0VSXzFfTU9UT1JfTUFMRlVOQ1RJ", + "T04QttsGEiIKHEVfREFOQ0VSXzJfTU9UT1JfTUFMRlVOQ1RJT04Qt9sGEiIK", + "HEVfREFOQ0VSXzNfTU9UT1JfTUFMRlVOQ1RJT04QuNsGEiIKHEVfREFOQ0VS", + "XzRfTU9UT1JfTUFMRlVOQ1RJT04QudsGEi0KJ0VfRFlFSU5HX0hFQURfQ0xF", + "QU5FUl9NT1RPUl9NQUxGVU5DVElPThC62wYSEgoMRV9OT19TVUNUSU9OEJjj", + "BhIhChtFX0RSWUVSX0JMT1dFUl9GTE9XX1RPT19MT1cQmeMGEiIKHEVfVFVO", + "TkVMX0JMT1dFUl9GTE9XX1RPT19MT1cQmuMGEiAKGkVfSU5TVUZGSUNJRU5U", + "X1dIU19TVUNUSU9OEJvjBhIaChRFX0FJUl9GSUxURVJfQ0xPR0dFRBCc4wYS", + "JAoeRV9OT19DSVJDVUxBVElPTl9GTE9XX0lOX0RSWUVSEJ3jBhIkCh5FX0lO", + "S19MSU5FXzFfUFJFU1NVUkVfVE9PX0hJR0gQgOsGEiQKHkVfSU5LX0xJTkVf", + "Ml9QUkVTU1VSRV9UT09fSElHSBCB6wYSJAoeRV9JTktfTElORV8zX1BSRVNT", + "VVJFX1RPT19ISUdIEILrBhIkCh5FX0lOS19MSU5FXzRfUFJFU1NVUkVfVE9P", + "X0hJR0gQg+sGEiQKHkVfSU5LX0xJTkVfNV9QUkVTU1VSRV9UT09fSElHSBCE", + "6wYSJAoeRV9JTktfTElORV82X1BSRVNTVVJFX1RPT19ISUdIEIXrBhIkCh5F", + "X0lOS19MSU5FXzdfUFJFU1NVUkVfVE9PX0hJR0gQhusGEiQKHkVfSU5LX0xJ", + "TkVfOF9QUkVTU1VSRV9UT09fSElHSBCH6wYSJAoeRV9JTktfTElORV85X1BS", + "RVNTVVJFX1RPT19ISUdIEIjrBhIlCh9FX0lOS19MSU5FXzEwX1BSRVNTVVJF", + "X1RPT19ISUdIEInrBhIjCh1FX0lOS19MSU5FXzFfUFJFU1NVUkVfVE9PX0xP", + "VxCK6wYSIwodRV9JTktfTElORV8yX1BSRVNTVVJFX1RPT19MT1cQi+sGEiMK", + "HUVfSU5LX0xJTkVfM19QUkVTU1VSRV9UT09fTE9XEIzrBhIjCh1FX0lOS19M", + "SU5FXzRfUFJFU1NVUkVfVE9PX0xPVxCN6wYSIwodRV9JTktfTElORV81X1BS", + "RVNTVVJFX1RPT19MT1cQjusGEiMKHUVfSU5LX0xJTkVfNl9QUkVTU1VSRV9U", + "T09fTE9XEI/rBhIjCh1FX0lOS19MSU5FXzdfUFJFU1NVUkVfVE9PX0xPVxCQ", + "6wYSIwodRV9JTktfTElORV84X1BSRVNTVVJFX1RPT19MT1cQkesGEiMKHUVf", + "SU5LX0xJTkVfOV9QUkVTU1VSRV9UT09fTE9XEJLrBhIkCh5FX0lOS19MSU5F", + "XzEwX1BSRVNTVVJFX1RPT19MT1cQk+sGEh4KGEVfSU5LX1BVTVBfMV9NQUxG", + "VU5DVElPThCU6wYSHgoYRV9JTktfUFVNUF8yX01BTEZVTkNUSU9OEJXrBhIe", + "ChhFX0lOS19QVU1QXzNfTUFMRlVOQ1RJT04QlusGEh4KGEVfSU5LX1BVTVBf", + "NF9NQUxGVU5DVElPThCX6wYSHgoYRV9JTktfUFVNUF81X01BTEZVTkNUSU9O", + "EJjrBhIeChhFX0lOS19QVU1QXzZfTUFMRlVOQ1RJT04QmesGEh4KGEVfSU5L", + "X1BVTVBfN19NQUxGVU5DVElPThCa6wYSHgoYRV9JTktfUFVNUF84X01BTEZV", + "TkNUSU9OEJvrBhIeChhFX0lOS19QVU1QXzlfTUFMRlVOQ1RJT04QnOsGEh8K", + "GUVfSU5LX1BVTVBfMTBfTUFMRlVOQ1RJT04QnesGEh8KGUVfSU5LX1BVTVBf", + "MTFfTUFMRlVOQ1RJT04QnusGEh8KGUVfSU5LX1BVTVBfMTJfTUFMRlVOQ1RJ", + "T04Qn+sGEh8KGUVfSU5LX1BVTVBfMTNfTUFMRlVOQ1RJT04QoOsGEh8KGUVf", + "SU5LX1BVTVBfMTRfTUFMRlVOQ1RJT04QoesGEh8KGUVfSU5LX1BVTVBfMTVf", + "TUFMRlVOQ1RJT04QousGEiUKH0VfSU5LX0xJTkVfMV9NSURfVEFOS19MT1df", + "TEVWRUwQo+sGEiUKH0VfSU5LX0xJTkVfMl9NSURfVEFOS19MT1dfTEVWRUwQ", + "pOsGEiUKH0VfSU5LX0xJTkVfM19NSURfVEFOS19MT1dfTEVWRUwQpesGEiUK", + "H0VfSU5LX0xJTkVfNF9NSURfVEFOS19MT1dfTEVWRUwQpusGEiUKH0VfSU5L", + "X0xJTkVfNV9NSURfVEFOS19MT1dfTEVWRUwQp+sGEiUKH0VfSU5LX0xJTkVf", + "Nl9NSURfVEFOS19MT1dfTEVWRUwQqOsGEiUKH0VfSU5LX0xJTkVfN19NSURf", + "VEFOS19MT1dfTEVWRUwQqesGEiUKH0VfSU5LX0xJTkVfOF9NSURfVEFOS19M", + "T1dfTEVWRUwQqusGEiUKH0VfSU5LX0xJTkVfOV9NSURfVEFOS19MT1dfTEVW", + "RUwQq+sGEiYKIEVfSU5LX0xJTkVfMTBfTUlEX1RBTktfTE9XX0xFVkVMEKzr", + "BhIoCiJFX0lOS19MSU5FXzFfTUlEX1RBTktfRklMTF9USU1FT1VUEK3rBhIo", + "CiJFX0lOS19MSU5FXzJfTUlEX1RBTktfRklMTF9USU1FT1VUEK7rBhIoCiJF", + "X0lOS19MSU5FXzNfTUlEX1RBTktfRklMTF9USU1FT1VUEK/rBhIoCiJFX0lO", + "S19MSU5FXzRfTUlEX1RBTktfRklMTF9USU1FT1VUELDrBhIoCiJFX0lOS19M", + "SU5FXzVfTUlEX1RBTktfRklMTF9USU1FT1VUELHrBhIoCiJFX0lOS19MSU5F", + "XzZfTUlEX1RBTktfRklMTF9USU1FT1VUELLrBhIoCiJFX0lOS19MSU5FXzdf", + "TUlEX1RBTktfRklMTF9USU1FT1VUELPrBhIoCiJFX0lOS19MSU5FXzhfTUlE", + "X1RBTktfRklMTF9USU1FT1VUELTrBhIoCiJFX0lOS19MSU5FXzlfTUlEX1RB", + "TktfRklMTF9USU1FT1VUELXrBhIpCiNFX0lOS19MSU5FXzEwX01JRF9UQU5L", + "X0ZJTExfVElNRU9VVBC26wYSJwohRV9JTktfTElORV8xX01JRF9UQU5LX01B", + "TEZVTkNUSU9OELfrBhInCiFFX0lOS19MSU5FXzJfTUlEX1RBTktfTUFMRlVO", + "Q1RJT04QuOsGEicKIUVfSU5LX0xJTkVfM19NSURfVEFOS19NQUxGVU5DVElP", + "ThC56wYSJwohRV9JTktfTElORV80X01JRF9UQU5LX01BTEZVTkNUSU9OELrr", + "BhInCiFFX0lOS19MSU5FXzVfTUlEX1RBTktfTUFMRlVOQ1RJT04Qu+sGEicK", + "IUVfSU5LX0xJTkVfNl9NSURfVEFOS19NQUxGVU5DVElPThC86wYSJwohRV9J", + "TktfTElORV83X01JRF9UQU5LX01BTEZVTkNUSU9OEL3rBhInCiFFX0lOS19M", + "SU5FXzhfTUlEX1RBTktfTUFMRlVOQ1RJT04QvusGEicKIUVfSU5LX0xJTkVf", + "OV9NSURfVEFOS19NQUxGVU5DVElPThC/6wYSKAoiRV9JTktfTElORV8xMF9N", + "SURfVEFOS19NQUxGVU5DVElPThDA6wZCIQofY29tLnR3aW5lLnRhbmdvLnBt", + "ci5kaWFnbm9zdGljc2IGcHJvdG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Tango.PMR.Diagnostics.EventType), }, null)); @@ -506,6 +693,18 @@ namespace Tango.PMR.Diagnostics { /// </summary> [pbr::OriginalName("RFID_READER_MALFUNCTION_WASTE_SLOT_2")] RfidReaderMalfunctionWasteSlot2 = 2024, /// <summary> + ///Communication failure. Cannot execute job (Group = GeneralHardware, Category = Critical) + /// </summary> + [pbr::OriginalName("I2C3_COMMUNICATION_FAILURE")] I2C3CommunicationFailure = 2025, + /// <summary> + ///Communication failure. Cannot execute job (Group = GeneralHardware, Category = Critical) + /// </summary> + [pbr::OriginalName("I2C4_COMMUNICATION_FAILURE")] I2C4CommunicationFailure = 2026, + /// <summary> + ///Communication failure. Cannot execute job (Group = Transport, Category = Warning) + /// </summary> + [pbr::OriginalName("I2C_COMMUNICATION_FAILURE")] I2CCommunicationFailure = 2027, + /// <summary> ///Thread break. Cannot execute job (Group = ThreadFeedingSystem, Category = Error) /// </summary> [pbr::OriginalName("THREAD_BREAK")] ThreadBreak = 3000, @@ -1218,6 +1417,30 @@ namespace Tango.PMR.Diagnostics { /// </summary> [pbr::OriginalName("DYEING_HEAD_COVER_IS_OPEN")] DyeingHeadCoverIsOpen = 5099, /// <summary> + ///Dyeing head voltage is too low. Cannot execute job (Group = DyeingHead, Category = Error) + /// </summary> + [pbr::OriginalName("DYEING_HEAD_VOLTAGE_1_TOO_LOW")] DyeingHeadVoltage1TooLow = 5100, + /// <summary> + ///Dyeing head voltage is too low. Cannot execute job (Group = DyeingHead, Category = Error) + /// </summary> + [pbr::OriginalName("DYEING_HEAD_VOLTAGE_2_TOO_LOW")] DyeingHeadVoltage2TooLow = 5101, + /// <summary> + ///Dyeing head voltage is too low. Cannot execute job (Group = DyeingHead, Category = Error) + /// </summary> + [pbr::OriginalName("DYEING_HEAD_VOLTAGE_3_TOO_LOW")] DyeingHeadVoltage3TooLow = 5102, + /// <summary> + ///Dyeing head voltage break. Cannot execute job (Group = DyeingHead, Category = Error) + /// </summary> + [pbr::OriginalName("DYEING_HEAD_VOLTAGE_1_BREAK")] DyeingHeadVoltage1Break = 5103, + /// <summary> + ///Dyeing head voltage break. Cannot execute job (Group = DyeingHead, Category = Error) + /// </summary> + [pbr::OriginalName("DYEING_HEAD_VOLTAGE_2_BREAK")] DyeingHeadVoltage2Break = 5104, + /// <summary> + ///Dyeing head voltage break. Cannot execute job (Group = DyeingHead, Category = Error) + /// </summary> + [pbr::OriginalName("DYEING_HEAD_VOLTAGE_3_BREAK")] DyeingHeadVoltage3Break = 5105, + /// <summary> ///The temperature in the mixer is too high. Cannot execute job (Group = Mixer, Category = Error) /// </summary> [pbr::OriginalName("MIXER_OVERTEMPERATURE")] MixerOvertemperature = 6000, @@ -1786,6 +2009,46 @@ namespace Tango.PMR.Diagnostics { /// </summary> [pbr::OriginalName("MID_TANK_10_FILL_TIMEOUT")] MidTank10FillTimeout = 8039, /// <summary> + ///Malfunction in @ tank. Cannot fill @ ink (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("MID_TANK_1_MALFUNCTION")] MidTank1Malfunction = 8040, + /// <summary> + ///Malfunction in @ tank. Cannot fill @ ink (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("MID_TANK_2_MALFUNCTION")] MidTank2Malfunction = 8041, + /// <summary> + ///Malfunction in @ tank. Cannot fill @ ink (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("MID_TANK_3_MALFUNCTION")] MidTank3Malfunction = 8042, + /// <summary> + ///Malfunction in @ tank. Cannot fill @ ink (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("MID_TANK_4_MALFUNCTION")] MidTank4Malfunction = 8043, + /// <summary> + ///Malfunction in @ tank. Cannot fill @ ink (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("MID_TANK_5_MALFUNCTION")] MidTank5Malfunction = 8044, + /// <summary> + ///Malfunction in @ tank. Cannot fill @ ink (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("MID_TANK_6_MALFUNCTION")] MidTank6Malfunction = 8045, + /// <summary> + ///Malfunction in @ tank. Cannot fill @ ink (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("MID_TANK_7_MALFUNCTION")] MidTank7Malfunction = 8046, + /// <summary> + ///Malfunction in @ tank. Cannot fill @ ink (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("MID_TANK_8_MALFUNCTION")] MidTank8Malfunction = 8047, + /// <summary> + ///Malfunction in @ tank. Cannot fill @ ink (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("MID_TANK_9_MALFUNCTION")] MidTank9Malfunction = 8048, + /// <summary> + ///Malfunction in @ tank. Cannot fill @ ink (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("MID_TANK_10_MALFUNCTION")] MidTank10Malfunction = 8049, + /// <summary> ///Cannot detect air filter. Cannot execute job (Group = WasteHandlingSystem, Category = Critical) /// </summary> [pbr::OriginalName("AIR_FILTER_NOT_INSTALLED")] AirFilterNotInstalled = 9000, @@ -1886,17 +2149,17 @@ namespace Tango.PMR.Diagnostics { /// </summary> [pbr::OriginalName("INK_CARTRIDGE_RFID_TIMEOUT")] InkCartridgeRfidTimeout = 10001, /// <summary> - ///No waste cartridge in system. Cannot execute job. Please insert waste cartridge (Group = InkFillingSystem, Category = Error) + ///No waste cartridge in system. Cannot execute job. Please insert waste cartridge (Group = InkFillingSystem, Category = Warning) /// </summary> [pbr::OriginalName("NO_WASTE_CARTRIDGE_AVAILABLE")] NoWasteCartridgeAvailable = 10002, /// <summary> - ///Both waste cartridges are full. Cannot execute job. Please replace waste cartridges (Group = InkFillingSystem, Category = Error) + ///Waste tank is full. Please perform waste emptying (Group = InkFillingSystem, Category = Warning) /// </summary> - [pbr::OriginalName("ALL_WASTE_CARTRIDGES_FULL")] AllWasteCartridgesFull = 10003, + [pbr::OriginalName("WASTE_TANK_FULL")] WasteTankFull = 10003, /// <summary> - ///Cannot detect waste cartridge. Cannot execute job (Group = InkFillingSystem, Category = Warning) + ///Cartridges not inserted properly. Cannot execute job (Group = InkFillingSystem, Category = Warning) /// </summary> - [pbr::OriginalName("WASTE_CARTRIDGE_PRESENCE_SENSOR_TIMEOUT")] WasteCartridgePresenceSensorTimeout = 10004, + [pbr::OriginalName("CARTRIDGES_NOT_INSERTED_PROPERLY")] CartridgesNotInsertedProperly = 10004, /// <summary> ///Cannot identify waste cartridge. Cannot execute job (Group = InkFillingSystem, Category = Warning) /// </summary> @@ -1945,6 +2208,838 @@ namespace Tango.PMR.Diagnostics { ///Ink in cartridge is expired. Cannot perform ink filling (Group = InkFillingSystem, Category = Warning) /// </summary> [pbr::OriginalName("INK_IN_CARTRIDGE_IS_EXPIRED")] InkInCartridgeIsExpired = 10016, + /// <summary> + ///Request sent to machine or external bridge service (Group = Transport, Category = Info) + /// </summary> + [pbr::OriginalName("E_REQUEST_SENT")] ERequestSent = 101000, + /// <summary> + ///Response has been received. (Group = Transport, Category = Info) + /// </summary> + [pbr::OriginalName("E_RESPONSE_RECEIVED")] EResponseReceived = 101001, + /// <summary> + ///Request to machine has failed. (Group = Transport, Category = Error) + /// </summary> + [pbr::OriginalName("E_REQUEST_FAILED")] ERequestFailed = 101002, + /// <summary> + ///Application has encountered an error (Group = Application, Category = Error) + /// </summary> + [pbr::OriginalName("E_APPLICATION_EXCEPTION")] EApplicationException = 101003, + /// <summary> + ///General application event logs (Group = Application, Category = Info) + /// </summary> + [pbr::OriginalName("E_APPLICATION_INFORMATION")] EApplicationInformation = 101004, + /// <summary> + ///Application started. (Group = Application, Category = Info) + /// </summary> + [pbr::OriginalName("E_APPLICATION_STARTED")] EApplicationStarted = 101005, + /// <summary> + ///Application terminated. (Group = Application, Category = Info) + /// </summary> + [pbr::OriginalName("E_APPLICATION_TERMINATED")] EApplicationTerminated = 101006, + /// <summary> + ///Diagnostics recording started. (Group = Application, Category = Info) + /// </summary> + [pbr::OriginalName("E_RECORDING_STARTED")] ERecordingStarted = 101007, + /// <summary> + ///Diagnostics recording stopped. (Group = Application, Category = Info) + /// </summary> + [pbr::OriginalName("E_RECORDING_STOPPED")] ERecordingStopped = 101008, + /// <summary> + ///Job status message has been received from embedded device. (Group = Application, Category = Info) + /// </summary> + [pbr::OriginalName("E_JOB_STATUS")] EJobStatus = 101009, + /// <summary> + ///A job has been started. (Group = Jobs, Category = Info) + /// </summary> + [pbr::OriginalName("E_JOB_STARTED")] EJobStarted = 101010, + /// <summary> + ///A job has been aborted. (Group = Jobs, Category = Info) + /// </summary> + [pbr::OriginalName("E_JOB_ABORTED")] EJobAborted = 101011, + /// <summary> + ///A job has failed. (Group = Jobs, Category = Error) + /// </summary> + [pbr::OriginalName("E_JOB_FAILED")] EJobFailed = 101012, + /// <summary> + ///Job completed successfully. (Group = Jobs, Category = Info) + /// </summary> + [pbr::OriginalName("E_JOB_COMPLETED")] EJobCompleted = 101013, + /// <summary> + ///Machine power up cannot be completed (Group = GeneralHardware, Category = Error) + /// </summary> + [pbr::OriginalName("E_POWER_UP_BIT_FAILURE")] EPowerUpBitFailure = 102000, + /// <summary> + ///Machine power up cannot be completed (Group = GeneralHardware, Category = Error) + /// </summary> + [pbr::OriginalName("E_MACHINE_STATE_NO_CFG_FILE")] EMachineStateNoCfgFile = 102001, + /// <summary> + ///Machine power up cannot be completed (Group = GeneralHardware, Category = Error) + /// </summary> + [pbr::OriginalName("E_MACHINE_STATE_HW_CONFIG_FAILED")] EMachineStateHwConfigFailed = 102002, + /// <summary> + ///Machine power up cannot be completed (Group = GeneralHardware, Category = Error) + /// </summary> + [pbr::OriginalName("E_MACHINE_STATE_NO_FLASH_FILE")] EMachineStateNoFlashFile = 102003, + /// <summary> + ///Machine power up cannot be completed (Group = GeneralHardware, Category = Error) + /// </summary> + [pbr::OriginalName("E_MACHINE_STATE_NO_ALARMS_FILE")] EMachineStateNoAlarmsFile = 102004, + /// <summary> + ///The emergency button is pressed (Group = GeneralHardware, Category = Critical) + /// </summary> + [pbr::OriginalName("E_EMERGENCY_PUSH_BUTTON_PRESSED")] EEmergencyPushButtonPressed = 103001, + /// <summary> + ///The dryer door is open. Cannot execute job (Group = Safety, Category = Critical) + /// </summary> + [pbr::OriginalName("E_DRYER_DOOR_OPEN")] EDryerDoorOpen = 103002, + /// <summary> + ///Dryer thermal cutoff activated. Cannot execute job (Group = Safety, Category = Critical) + /// </summary> + [pbr::OriginalName("E_DRYER_THERMAL_CUTOFF")] EDryerThermalCutoff = 103003, + /// <summary> + ///Tunnel thermal cutoff activated. Cannot execute job (Group = Safety, Category = Critical) + /// </summary> + [pbr::OriginalName("E_TUNNEL_THERMAL_CUTOFF")] ETunnelThermalCutoff = 103004, + /// <summary> + ///Dyeing head thermal cutoff activated. Cannot execute job (Group = Safety, Category = Critical) + /// </summary> + [pbr::OriginalName("E_DYEING_HEAD_THERMAL_CUTOFF")] EDyeingHeadThermalCutoff = 103005, + /// <summary> + ///Mixer thermal cutoff activated. Cannot execute job (Group = Safety, Category = Critical) + /// </summary> + [pbr::OriginalName("E_MIXER_THERMAL_CUTOFF")] EMixerThermalCutoff = 103006, + /// <summary> + ///Lubrication thermal cutoff activated. Cannot execute job (Group = Safety, Category = Critical) + /// </summary> + [pbr::OriginalName("E_LUBRICATION_THERMAL_CUTOFF")] ELubricationThermalCutoff = 103007, + /// <summary> + ///No air flow in tunnel. Cannot execute job (Group = Safety, Category = Critical) + /// </summary> + [pbr::OriginalName("E_TUNNEL_AIR_FLOW_SWITCH")] ETunnelAirFlowSwitch = 103008, + /// <summary> + ///No Suction from recycled ink handling system. Cannot execute job (Group = Safety, Category = Critical) + /// </summary> + [pbr::OriginalName("E_WHS_AIR_FLOW_SWITCH")] EWhsAirFlowSwitch = 103009, + /// <summary> + ///Air filter not present. Cannot execute job (Group = Safety, Category = Critical) + /// </summary> + [pbr::OriginalName("E_AIR_FILTER_NOT_PRESENT")] EAirFilterNotPresent = 103010, + /// <summary> + ///Software error has occurred. Cannot execute job (Group = GeneralHardware, Category = Error) + /// </summary> + [pbr::OriginalName("E_UNINTENDED_RESET")] EUnintendedReset = 104000, + /// <summary> + ///Software error has occurred. Cannot execute job (Group = GeneralHardware, Category = Error) + /// </summary> + [pbr::OriginalName("E_SD_CARD_NOT_RESPONDING")] ESdCardNotResponding = 104001, + /// <summary> + ///Communication error. Cannot execute job (Group = Transport, Category = Error) + /// </summary> + [pbr::OriginalName("E_NO_COMMUNICATION_WITH_BTSR_1")] ENoCommunicationWithBtsr1 = 105000, + /// <summary> + ///Communication error. Cannot execute job (Group = Transport, Category = Error) + /// </summary> + [pbr::OriginalName("E_NO_COMMUNICATION_WITH_BTSR_2")] ENoCommunicationWithBtsr2 = 105001, + /// <summary> + ///Communication error. Cannot execute job (Group = Transport, Category = Error) + /// </summary> + [pbr::OriginalName("E_NO_COMMUNICATION_WITH_BTSR_3")] ENoCommunicationWithBtsr3 = 105002, + /// <summary> + ///Communication error. Cannot execute job (Group = Transport, Category = Error) + /// </summary> + [pbr::OriginalName("E_NO_COMMUNICATION_WITH_BTSR_4")] ENoCommunicationWithBtsr4 = 105003, + /// <summary> + ///Communication error. Cannot execute job (Group = Transport, Category = Error) + /// </summary> + [pbr::OriginalName("E_NO_COMMUNICATION_WITH_DRYER_BOARD")] ENoCommunicationWithDryerBoard = 105004, + /// <summary> + ///Communication error. Cannot execute job (Group = Transport, Category = Error) + /// </summary> + [pbr::OriginalName("E_NO_COMMUNICATION_WITH_DYEING_HEAD_BOARD")] ENoCommunicationWithDyeingHeadBoard = 105005, + /// <summary> + ///Communication error. Cannot execute job (Group = Transport, Category = Error) + /// </summary> + [pbr::OriginalName("E_NO_COMMUNICATION_WITH_WINDER_1_BOARD")] ENoCommunicationWithWinder1Board = 105006, + /// <summary> + ///Communication error. Cannot execute job (Group = Transport, Category = Error) + /// </summary> + [pbr::OriginalName("E_NO_COMMUNICATION_WITH_WINDER_2_BOARD")] ENoCommunicationWithWinder2Board = 105007, + /// <summary> + ///Communication error. Cannot execute job (Group = Transport, Category = Error) + /// </summary> + [pbr::OriginalName("E_NO_COMMUNICATION_WITH_WINDER_3_BOARD")] ENoCommunicationWithWinder3Board = 105008, + /// <summary> + ///Communication error. Cannot execute job (Group = Transport, Category = Error) + /// </summary> + [pbr::OriginalName("E_NO_COMMUNICATION_WITH_WINDER_4_BOARD")] ENoCommunicationWithWinder4Board = 105009, + /// <summary> + ///Communication error. Cannot execute job (Group = Transport, Category = Error) + /// </summary> + [pbr::OriginalName("E_NO_COMMUNICATION_WITH_IDS_1_BOARD")] ENoCommunicationWithIds1Board = 105010, + /// <summary> + ///Communication error. Cannot execute job (Group = Transport, Category = Error) + /// </summary> + [pbr::OriginalName("E_NO_COMMUNICATION_WITH_IDS_2_BOARD")] ENoCommunicationWithIds2Board = 105011, + /// <summary> + ///Communication error. Cannot execute job (Group = Transport, Category = Error) + /// </summary> + [pbr::OriginalName("E_NO_COMMUNICATION_WITH_IDS_3_BOARD")] ENoCommunicationWithIds3Board = 105012, + /// <summary> + ///Communication error. Cannot execute job (Group = Transport, Category = Error) + /// </summary> + [pbr::OriginalName("E_NO_COMMUNICATION_WITH_IDS_4_BOARD")] ENoCommunicationWithIds4Board = 105013, + /// <summary> + ///Communication error. Cannot execute job (Group = Transport, Category = Error) + /// </summary> + [pbr::OriginalName("E_NO_COMMUNICATION_WITH_MID_TANK_BOARD")] ENoCommunicationWithMidTankBoard = 105014, + /// <summary> + ///Communication error. Cannot execute job (Group = Transport, Category = Error) + /// </summary> + [pbr::OriginalName("E_NO_COMMUNICATION_WITH_WHS_BOARD")] ENoCommunicationWithWhsBoard = 105015, + /// <summary> + ///Communication error. Cannot execute job (Group = Transport, Category = Error) + /// </summary> + [pbr::OriginalName("E_NO_COMMUNICATION_WITH_LUBRICANT_BOARD")] ENoCommunicationWithLubricantBoard = 105016, + /// <summary> + ///Communication error. Cannot execute job (Group = Transport, Category = Error) + /// </summary> + [pbr::OriginalName("E_NO_COMMUNICATION_WITH_MAIN_BOARD")] ENoCommunicationWithMainBoard = 105017, + /// <summary> + ///Door is open. Cannot execute job (Group = GeneralHardware, Category = Error) + /// </summary> + [pbr::OriginalName("E_LEFT_DOOR_OPEN")] ELeftDoorOpen = 106000, + /// <summary> + ///Door is open. Cannot execute job (Group = GeneralHardware, Category = Error) + /// </summary> + [pbr::OriginalName("E_RIGHT_DOOR_OPEN")] ERightDoorOpen = 106001, + /// <summary> + ///Door is open. Cannot execute job (Group = GeneralHardware, Category = Error) + /// </summary> + [pbr::OriginalName("E_TOP_DOOR_OPEN")] ETopDoorOpen = 106002, + /// <summary> + ///Tunnel lid is open. Cannot execute job (Group = GeneralHardware, Category = Error) + /// </summary> + [pbr::OriginalName("E_TUNNEL_LID_IS_OPEN")] ETunnelLidIsOpen = 106003, + /// <summary> + ///Arc lid is open. Cannot execute job (Group = GeneralHardware, Category = Error) + /// </summary> + [pbr::OriginalName("E_ARC_LID_IS_OPEN")] EArcLidIsOpen = 106004, + /// <summary> + ///BTSR malfunction. Cannot execute job (Group = ThreadFeedingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_BTSR_1_MALFUNCTION")] EBtsr1Malfunction = 107000, + /// <summary> + ///BTSR malfunction. Cannot execute job (Group = ThreadFeedingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_BTSR_2_MALFUNCTION")] EBtsr2Malfunction = 107001, + /// <summary> + ///BTSR malfunction. Cannot execute job (Group = ThreadFeedingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_BTSR_3_MALFUNCTION")] EBtsr3Malfunction = 107002, + /// <summary> + ///BTSR malfunction. Cannot execute job (Group = ThreadFeedingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_BTSR_4_MALFUNCTION")] EBtsr4Malfunction = 107003, + /// <summary> + ///Tension is out of range. Cannot execute job (Group = ThreadFeedingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_TENSION_IN_BTSR_1_IS_OUT_OF_RANGE")] ETensionInBtsr1IsOutOfRange = 107004, + /// <summary> + ///Tension is out of range. Cannot execute job (Group = ThreadFeedingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_TENSION_IN_BTSR_2_IS_OUT_OF_RANGE")] ETensionInBtsr2IsOutOfRange = 107005, + /// <summary> + ///Tension is out of range. Cannot execute job (Group = ThreadFeedingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_TENSION_IN_BTSR_3_IS_OUT_OF_RANGE")] ETensionInBtsr3IsOutOfRange = 107006, + /// <summary> + ///Tension is out of range. Cannot execute job (Group = ThreadFeedingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_TENSION_IN_BTSR_4_IS_OUT_OF_RANGE")] ETensionInBtsr4IsOutOfRange = 107007, + /// <summary> + ///Thread break. Cannot execute job (Group = ThreadFeedingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_THREAD_BREAK")] EThreadBreak = 107008, + /// <summary> + ///Thread tension control failure. Cannot execute job (Group = ThreadFeedingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_DANCER_1_TENSION_CONTROL_FAILURE")] EDancer1TensionControlFailure = 107009, + /// <summary> + ///Thread tension control failure. Cannot execute job (Group = ThreadFeedingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_DANCER_2_TENSION_CONTROL_FAILURE")] EDancer2TensionControlFailure = 107010, + /// <summary> + ///Thread tension control failure. Cannot execute job (Group = ThreadFeedingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_DANCER_3_TENSION_CONTROL_FAILURE")] EDancer3TensionControlFailure = 107011, + /// <summary> + ///Thread tension control failure. Cannot execute job (Group = ThreadFeedingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_DANCER_4_TENSION_CONTROL_FAILURE")] EDancer4TensionControlFailure = 107012, + /// <summary> + ///Thread loading error. Cannot execute job (Group = ThreadFeedingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_THREAD_LOADING_ERROR")] EThreadLoadingError = 107013, + /// <summary> + ///Gripper malfunction. Cannot execute job (Group = ThreadFeedingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_GRIPPER_MALFUNCTION")] EGripperMalfunction = 107014, + /// <summary> + ///Thread missing. Cannot execute job (Group = ThreadFeedingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_THREAD_MISSING")] EThreadMissing = 107015, + /// <summary> + ///Temperature in dyeing head is too high. Cannot execute job (Group = DyeingHead, Category = Critical) + /// </summary> + [pbr::OriginalName("E_DYEING_HEAD_ZONE_1_OVERTEMPERATURE")] EDyeingHeadZone1Overtemperature = 108000, + /// <summary> + ///Temperature in dyeing head is too high. Cannot execute job (Group = DyeingHead, Category = Critical) + /// </summary> + [pbr::OriginalName("E_DYEING_HEAD_ZONE_2_OVERTEMPERATURE")] EDyeingHeadZone2Overtemperature = 108001, + /// <summary> + ///Temperature in dyeing head is too high. Cannot execute job (Group = DyeingHead, Category = Critical) + /// </summary> + [pbr::OriginalName("E_DYEING_HEAD_ZONE_3_OVERTEMPERATURE")] EDyeingHeadZone3Overtemperature = 108002, + /// <summary> + ///Temperature in mixer is too high. Cannot execute job (Group = Mixer, Category = Critical) + /// </summary> + [pbr::OriginalName("E_MIXER_1_OVERTEMPERATURE")] EMixer1Overtemperature = 108003, + /// <summary> + ///Temperature in mixer is too high. Cannot execute job (Group = Mixer, Category = Critical) + /// </summary> + [pbr::OriginalName("E_MIXER_2_OVERTEMPERATURE")] EMixer2Overtemperature = 108004, + /// <summary> + ///Temperature in tunnel is too high. Cannot execute job (Group = DyeingHead, Category = Critical) + /// </summary> + [pbr::OriginalName("E_TUNNEL_OVERTEMPERATURE")] ETunnelOvertemperature = 108005, + /// <summary> + ///Temperature in dryer is too high. Cannot execute job (Group = Dryer, Category = Critical) + /// </summary> + [pbr::OriginalName("E_DRYER_HEATER_1_OVERTEMPERATURE")] EDryerHeater1Overtemperature = 108007, + /// <summary> + ///Temperature in dryer is too high. Cannot execute job (Group = Dryer, Category = Critical) + /// </summary> + [pbr::OriginalName("E_DRYER_HEATER_2_OVERTEMPERATURE")] EDryerHeater2Overtemperature = 108008, + /// <summary> + ///Temperature in dryer is too high. Cannot execute job (Group = Dryer, Category = Critical) + /// </summary> + [pbr::OriginalName("E_DRYER_HEATER_3_OVERTEMPERATURE")] EDryerHeater3Overtemperature = 108009, + /// <summary> + ///Temperature in lubricant is too high. Cannot execute job (Group = Mixer, Category = Critical) + /// </summary> + [pbr::OriginalName("E_LUBRICANT_OVERTEMPERATURE")] ELubricantOvertemperature = 108010, + /// <summary> + ///Dyeing head is heating up. Cannot execute job (Group = DyeingHead, Category = Warning) + /// </summary> + [pbr::OriginalName("E_DYEING_HEAD_ZONE_1_UNDERTEMPERATURE_A")] EDyeingHeadZone1UndertemperatureA = 108011, + /// <summary> + ///Dyeing head is heating up. Cannot execute job (Group = DyeingHead, Category = Warning) + /// </summary> + [pbr::OriginalName("E_DYEING_HEAD_ZONE_2_UNDERTEMPERATURE_A")] EDyeingHeadZone2UndertemperatureA = 108012, + /// <summary> + ///Dyeing head is heating up. Cannot execute job (Group = DyeingHead, Category = Warning) + /// </summary> + [pbr::OriginalName("E_DYEING_HEAD_ZONE_3_UNDERTEMPERATURE_A")] EDyeingHeadZone3UndertemperatureA = 108013, + /// <summary> + ///Mixer is heating up. Cannot execute job (Group = Mixer, Category = Warning) + /// </summary> + [pbr::OriginalName("E_MIXER_1_UNDERTEMPERATURE_A")] EMixer1UndertemperatureA = 108014, + /// <summary> + ///Mixer is heating up. Cannot execute job (Group = Mixer, Category = Warning) + /// </summary> + [pbr::OriginalName("E_MIXER_2_UNDERTEMPERATURE_A")] EMixer2UndertemperatureA = 108015, + /// <summary> + ///Tunnel is heating up. Cannot execute job (Group = DyeingHead, Category = Warning) + /// </summary> + [pbr::OriginalName("E_TUNNEL_UNDERTEMPERATURE_A")] ETunnelUndertemperatureA = 108016, + /// <summary> + ///Dryer is heating up. Cannot execute job (Group = Dryer, Category = Warning) + /// </summary> + [pbr::OriginalName("E_DRYER_HEATER_1_UNDERTEMPERATURE_A")] EDryerHeater1UndertemperatureA = 108017, + /// <summary> + ///Dryer is heating up. Cannot execute job (Group = Dryer, Category = Warning) + /// </summary> + [pbr::OriginalName("E_DRYER_HEATER_2_UNDERTEMPERATURE_A")] EDryerHeater2UndertemperatureA = 108018, + /// <summary> + ///Dryer is heating up. Cannot execute job (Group = Dryer, Category = Warning) + /// </summary> + [pbr::OriginalName("E_DRYER_HEATER_3_UNDERTEMPERATURE_A")] EDryerHeater3UndertemperatureA = 108019, + /// <summary> + ///Lubricant is heating up. Cannot execute job (Group = Mixer, Category = Warning) + /// </summary> + [pbr::OriginalName("E_LUBRICANT_UNDERTEMPERATURE_A")] ELubricantUndertemperatureA = 108020, + /// <summary> + ///Temperature in dyeing head is too low. Cannot execute job (Group = DyeingHead, Category = Error) + /// </summary> + [pbr::OriginalName("E_DYEING_HEAD_ZONE_1_UNDRTEMPERATURE_B")] EDyeingHeadZone1UndrtemperatureB = 108021, + /// <summary> + ///Temperature in dyeing head is too low. Cannot execute job (Group = DyeingHead, Category = Error) + /// </summary> + [pbr::OriginalName("E_DYEING_HEAD_ZONE_2_UNDERTEMPERATURE_B")] EDyeingHeadZone2UndertemperatureB = 108022, + /// <summary> + ///Temperature in dyeing head is too low. Cannot execute job (Group = DyeingHead, Category = Error) + /// </summary> + [pbr::OriginalName("E_DYEING_HEAD_ZONE_3_UNDERTEMPERATURE_B")] EDyeingHeadZone3UndertemperatureB = 108023, + /// <summary> + ///Temperature in mixer is too low. Cannot execute job (Group = Mixer, Category = Error) + /// </summary> + [pbr::OriginalName("E_MIXER_1_UNDERTEMPERATURE_B")] EMixer1UndertemperatureB = 108024, + /// <summary> + ///Temperature in mixer is too low. Cannot execute job (Group = Mixer, Category = Error) + /// </summary> + [pbr::OriginalName("E_MIXER_2_UNDERTEMPERATURE_B")] EMixer2UndertemperatureB = 108025, + /// <summary> + ///Temperature in tunnel is too low. Cannot execute job (Group = DyeingHead, Category = Error) + /// </summary> + [pbr::OriginalName("E_TUNNEL_UNDERTEMPERATURE_B")] ETunnelUndertemperatureB = 108026, + /// <summary> + ///Temperature in dryer is too low. Cannot execute job (Group = Dryer, Category = Error) + /// </summary> + [pbr::OriginalName("E_DRYER_HEATER_1_UNDERTEMPERATURE_B")] EDryerHeater1UndertemperatureB = 108027, + /// <summary> + ///Temperature in dryer is too low. Cannot execute job (Group = Dryer, Category = Error) + /// </summary> + [pbr::OriginalName("E_DRYER_HEATER_2_UNDERTEMPERATURE_B")] EDryerHeater2UndertemperatureB = 108028, + /// <summary> + ///Temperature in dryer is too low. Cannot execute job (Group = Dryer, Category = Error) + /// </summary> + [pbr::OriginalName("E_DRYER_HEATER_3_UNDERTEMPERATURE_B")] EDryerHeater3UndertemperatureB = 108029, + /// <summary> + ///Temperature in lubricant is too low. Cannot execute job (Group = Mixer, Category = Error) + /// </summary> + [pbr::OriginalName("E_LUBRICANT_UNDERTEMPERATURE_B")] ELubricantUndertemperatureB = 108030, + /// <summary> + ///Cooler temperature is too high. Cannot execute job (Group = WasteHandlingSystem, Category = Critical) + /// </summary> + [pbr::OriginalName("E_WHS_1_COOLER_TEMPERATURE_IS_TOO_HIGH")] EWhs1CoolerTemperatureIsTooHigh = 108031, + /// <summary> + ///Cooler temperature is too low. Cannot execute job (Group = WasteHandlingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_WHS_1_COOLER_TEMPERATURE_IS_TOO_LOW")] EWhs1CoolerTemperatureIsTooLow = 108032, + /// <summary> + ///Cooler temperature is too high. Cannot execute job (Group = WasteHandlingSystem, Category = Critical) + /// </summary> + [pbr::OriginalName("E_WHS_2_COOLER_TEMPERATURE_IS_TOO_HIGH")] EWhs2CoolerTemperatureIsTooHigh = 108033, + /// <summary> + ///Cooler temperature is too low. Cannot execute job (Group = WasteHandlingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_WHS_2_COOLER_TEMPERATURE_IS_TOO_LOW")] EWhs2CoolerTemperatureIsTooLow = 108034, + /// <summary> + ///Temperature measurement error has occurred. Cannot execute job (Group = GeneralHardware, Category = Error) + /// </summary> + [pbr::OriginalName("E_TEMPERATURE_MEASUREMENT_ERROR")] ETemperatureMeasurementError = 108035, + /// <summary> + ///Dryer internal temperature is too low. Cannot execute job (Group = Dryer, Category = Warning) + /// </summary> + [pbr::OriginalName("E_DRYER_INTERNAL_TEMPERATURE_TOO_LOW")] EDryerInternalTemperatureTooLow = 108036, + /// <summary> + ///Dyeing head zone current is out of range. Cannot execute job (Group = DyeingHead, Category = Warning) + /// </summary> + [pbr::OriginalName("E_DYEING_HEAD_ZONE_1_CURRENT_OUT_OF_RANGE")] EDyeingHeadZone1CurrentOutOfRange = 109000, + /// <summary> + ///Dyeing head zone current is out of range. Cannot execute job (Group = DyeingHead, Category = Warning) + /// </summary> + [pbr::OriginalName("E_DYEING_HEAD_ZONE_2_CURRENT_OUT_OF_RANGE")] EDyeingHeadZone2CurrentOutOfRange = 109001, + /// <summary> + ///Dyeing head zone current is out of range. Cannot execute job (Group = DyeingHead, Category = Warning) + /// </summary> + [pbr::OriginalName("E_DYEING_HEAD_ZONE_3_CURRENT_OUT_OF_RANGE")] EDyeingHeadZone3CurrentOutOfRange = 109002, + /// <summary> + ///Mixer heater current is out of range. Cannot execute job (Group = Mixer, Category = Warning) + /// </summary> + [pbr::OriginalName("E_MIXER_1_HEATER_CURRENT_OUT_OF_RANGE")] EMixer1HeaterCurrentOutOfRange = 109003, + /// <summary> + ///Mixer heater current is out of range. Cannot execute job (Group = Mixer, Category = Warning) + /// </summary> + [pbr::OriginalName("E_MIXER_2_HEATER_CURRENT_OUT_OF_RANGE")] EMixer2HeaterCurrentOutOfRange = 109004, + /// <summary> + ///Tunnel heater current is out of range. Cannot execute job (Group = DyeingHead, Category = Warning) + /// </summary> + [pbr::OriginalName("E_TUNNEL_HEATER_CURRENT_OUT_OF_RANGE")] ETunnelHeaterCurrentOutOfRange = 109005, + /// <summary> + ///Dryer heater current is out of range. Cannot execute job (Group = Dryer, Category = Warning) + /// </summary> + [pbr::OriginalName("E_DRYER_HEATER_1_CURRENT_OUT_OF_RANGE")] EDryerHeater1CurrentOutOfRange = 109006, + /// <summary> + ///Dryer heater current is out of range. Cannot execute job (Group = Dryer, Category = Warning) + /// </summary> + [pbr::OriginalName("E_DRYER_HEATER_2_CURRENT_OUT_OF_RANGE")] EDryerHeater2CurrentOutOfRange = 109007, + /// <summary> + ///Dryer heater current is out of range. Cannot execute job (Group = Dryer, Category = Warning) + /// </summary> + [pbr::OriginalName("E_DRYER_HEATER_3_CURRENT_OUT_OF_RANGE")] EDryerHeater3CurrentOutOfRange = 109008, + /// <summary> + ///Lubricant heater current is out of range. Cannot execute job (Group = Mixer, Category = Warning) + /// </summary> + [pbr::OriginalName("E_LUBRICANT_HEATER_CURRENT_OUT_OF_RANGE")] ELubricantHeaterCurrentOutOfRange = 109009, + /// <summary> + ///Dyeing head zone current loop break. Cannot execute job (Group = DyeingHead, Category = Error) + /// </summary> + [pbr::OriginalName("E_DYEING_HEAD_ZONE_1_CURRENT_LOOP_BREAK")] EDyeingHeadZone1CurrentLoopBreak = 109010, + /// <summary> + ///Dyeing head zone current loop break. Cannot execute job (Group = DyeingHead, Category = Error) + /// </summary> + [pbr::OriginalName("E_DYEING_HEAD_ZONE_2_CURRENT_LOOP_BREAK")] EDyeingHeadZone2CurrentLoopBreak = 109011, + /// <summary> + ///Dyeing head zone current loop break. Cannot execute job (Group = DyeingHead, Category = Error) + /// </summary> + [pbr::OriginalName("E_DYEING_HEAD_ZONE_3_CURRENT_LOOP_BREAK")] EDyeingHeadZone3CurrentLoopBreak = 109012, + /// <summary> + ///Mixer heater current loop break. Cannot execute job (Group = Mixer, Category = Error) + /// </summary> + [pbr::OriginalName("E_MIXER_1_HEATER_CURRENT_LOOP_BREAK")] EMixer1HeaterCurrentLoopBreak = 109013, + /// <summary> + ///Mixer heater current loop break. Cannot execute job (Group = Mixer, Category = Error) + /// </summary> + [pbr::OriginalName("E_MIXER_2_HEATER_CURRENT_LOOP_BREAK")] EMixer2HeaterCurrentLoopBreak = 109014, + /// <summary> + ///Tunnel heater current loop break. Cannot execute job (Group = DyeingHead, Category = Error) + /// </summary> + [pbr::OriginalName("E_TUNNEL_HEATER_CURRENT_LOOP_BREAK")] ETunnelHeaterCurrentLoopBreak = 109015, + /// <summary> + ///Dryer heater current loop break. Cannot execute job (Group = Dryer, Category = Error) + /// </summary> + [pbr::OriginalName("E_DRYER_HEATER_1_CURRENT_LOOP_BREAK")] EDryerHeater1CurrentLoopBreak = 109016, + /// <summary> + ///Dryer heater current loop break. Cannot execute job (Group = Dryer, Category = Error) + /// </summary> + [pbr::OriginalName("E_DRYER_HEATER_2_CURRENT_LOOP_BREAK")] EDryerHeater2CurrentLoopBreak = 109017, + /// <summary> + ///Dryer heater current loop break. Cannot execute job (Group = Dryer, Category = Error) + /// </summary> + [pbr::OriginalName("E_DRYER_HEATER_3_CURRENT_LOOP_BREAK")] EDryerHeater3CurrentLoopBreak = 109018, + /// <summary> + ///Lubricant heater current loop break. Cannot execute job (Group = Mixer, Category = Error) + /// </summary> + [pbr::OriginalName("E_LUBRICANT_HEATER_CURRENT_LOOP_BREAK")] ELubricantHeaterCurrentLoopBreak = 109019, + /// <summary> + ///Dryer main motor malfuncion. Cannot execute job (Group = ThreadFeedingSystem, Category = Warning) + /// </summary> + [pbr::OriginalName("E_DRYER_MAIN_MOTOR_MALFUNCTION")] EDryerMainMotorMalfunction = 110000, + /// <summary> + ///Dryer thread loading motor malfuncion. Cannot execute job (Group = ThreadFeedingSystem, Category = Warning) + /// </summary> + [pbr::OriginalName("E_DRYER_THREAD_LOADING_MOTOR_MALFUNCTION")] EDryerThreadLoadingMotorMalfunction = 110001, + /// <summary> + ///Winder 1 motor malfuncion. Cannot execute job (Group = ThreadFeedingSystem, Category = Warning) + /// </summary> + [pbr::OriginalName("E_WINDER_1_MOTOR_MALFUNCTION")] EWinder1MotorMalfunction = 110002, + /// <summary> + ///Winder 2 motor malfuncion. Cannot execute job (Group = ThreadFeedingSystem, Category = Warning) + /// </summary> + [pbr::OriginalName("E_WINDER_2_MOTOR_MALFUNCTION")] EWinder2MotorMalfunction = 110003, + /// <summary> + ///Winder 3 motor malfuncion. Cannot execute job (Group = ThreadFeedingSystem, Category = Warning) + /// </summary> + [pbr::OriginalName("E_WINDER_3_MOTOR_MALFUNCTION")] EWinder3MotorMalfunction = 110004, + /// <summary> + ///Winder 4 motor malfuncion. Cannot execute job (Group = ThreadFeedingSystem, Category = Warning) + /// </summary> + [pbr::OriginalName("E_WINDER_4_MOTOR_MALFUNCTION")] EWinder4MotorMalfunction = 110005, + /// <summary> + ///Dancer 1 motor malfuncion. Cannot execute job (Group = ThreadFeedingSystem, Category = Warning) + /// </summary> + [pbr::OriginalName("E_DANCER_1_MOTOR_MALFUNCTION")] EDancer1MotorMalfunction = 110006, + /// <summary> + ///Dancer 2 motor malfuncion. Cannot execute job (Group = ThreadFeedingSystem, Category = Warning) + /// </summary> + [pbr::OriginalName("E_DANCER_2_MOTOR_MALFUNCTION")] EDancer2MotorMalfunction = 110007, + /// <summary> + ///Dancer 3 motor malfuncion. Cannot execute job (Group = ThreadFeedingSystem, Category = Warning) + /// </summary> + [pbr::OriginalName("E_DANCER_3_MOTOR_MALFUNCTION")] EDancer3MotorMalfunction = 110008, + /// <summary> + ///Dancer 4 motor malfuncion. Cannot execute job (Group = ThreadFeedingSystem, Category = Warning) + /// </summary> + [pbr::OriginalName("E_DANCER_4_MOTOR_MALFUNCTION")] EDancer4MotorMalfunction = 110009, + /// <summary> + ///Dyeing head cleaner motor malfuncion. Cannot execute job (Group = DyeingHead, Category = Warning) + /// </summary> + [pbr::OriginalName("E_DYEING_HEAD_CLEANER_MOTOR_MALFUNCTION")] EDyeingHeadCleanerMotorMalfunction = 110010, + /// <summary> + ///No suction. Cannot execute job. (Group = WasteHandlingSystem, Category = Critical) + /// </summary> + [pbr::OriginalName("E_NO_SUCTION")] ENoSuction = 111000, + /// <summary> + ///Dryer blower flow is too low. Cannot execute job (Group = Dryer, Category = Warning) + /// </summary> + [pbr::OriginalName("E_DRYER_BLOWER_FLOW_TOO_LOW")] EDryerBlowerFlowTooLow = 111001, + /// <summary> + ///Tunnel blower flow is too low. Cannot execute job (Group = DyeingHead, Category = Warning) + /// </summary> + [pbr::OriginalName("E_TUNNEL_BLOWER_FLOW_TOO_LOW")] ETunnelBlowerFlowTooLow = 111002, + /// <summary> + ///Insufficient suction fron WHS. Cannot execute job (Group = WasteHandlingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INSUFFICIENT_WHS_SUCTION")] EInsufficientWhsSuction = 111003, + /// <summary> + ///Air filter is clogged. Cannot execute job (Group = WasteHandlingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_AIR_FILTER_CLOGGED")] EAirFilterClogged = 111004, + /// <summary> + ///No circulation flow in blower. Cannot execute job (Group = Dryer, Category = Error) + /// </summary> + [pbr::OriginalName("E_NO_CIRCULATION_FLOW_IN_DRYER")] ENoCirculationFlowInDryer = 111005, + /// <summary> + ///Pressure in @ ink line too high. Cannot execute job (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_1_PRESSURE_TOO_HIGH")] EInkLine1PressureTooHigh = 112000, + /// <summary> + ///Pressure in @ ink line too high. Cannot execute job (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_2_PRESSURE_TOO_HIGH")] EInkLine2PressureTooHigh = 112001, + /// <summary> + ///Pressure in @ ink line too high. Cannot execute job (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_3_PRESSURE_TOO_HIGH")] EInkLine3PressureTooHigh = 112002, + /// <summary> + ///Pressure in @ ink line too high. Cannot execute job (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_4_PRESSURE_TOO_HIGH")] EInkLine4PressureTooHigh = 112003, + /// <summary> + ///Pressure in @ ink line too high. Cannot execute job (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_5_PRESSURE_TOO_HIGH")] EInkLine5PressureTooHigh = 112004, + /// <summary> + ///Pressure in @ ink line too high. Cannot execute job (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_6_PRESSURE_TOO_HIGH")] EInkLine6PressureTooHigh = 112005, + /// <summary> + ///Pressure in @ ink line too high. Cannot execute job (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_7_PRESSURE_TOO_HIGH")] EInkLine7PressureTooHigh = 112006, + /// <summary> + ///Pressure in @ ink line too high. Cannot execute job (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_8_PRESSURE_TOO_HIGH")] EInkLine8PressureTooHigh = 112007, + /// <summary> + ///Pressure in @ ink line too high. Cannot execute job (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_9_PRESSURE_TOO_HIGH")] EInkLine9PressureTooHigh = 112008, + /// <summary> + ///Pressure in @ ink line too high. Cannot execute job (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_10_PRESSURE_TOO_HIGH")] EInkLine10PressureTooHigh = 112009, + /// <summary> + ///Pressure in @ ink line too low. Cannot execute job (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_1_PRESSURE_TOO_LOW")] EInkLine1PressureTooLow = 112010, + /// <summary> + ///Pressure in @ ink line too low. Cannot execute job (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_2_PRESSURE_TOO_LOW")] EInkLine2PressureTooLow = 112011, + /// <summary> + ///Pressure in @ ink line too low. Cannot execute job (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_3_PRESSURE_TOO_LOW")] EInkLine3PressureTooLow = 112012, + /// <summary> + ///Pressure in @ ink line too low. Cannot execute job (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_4_PRESSURE_TOO_LOW")] EInkLine4PressureTooLow = 112013, + /// <summary> + ///Pressure in @ ink line too low. Cannot execute job (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_5_PRESSURE_TOO_LOW")] EInkLine5PressureTooLow = 112014, + /// <summary> + ///Pressure in @ ink line too low. Cannot execute job (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_6_PRESSURE_TOO_LOW")] EInkLine6PressureTooLow = 112015, + /// <summary> + ///Pressure in @ ink line too low. Cannot execute job (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_7_PRESSURE_TOO_LOW")] EInkLine7PressureTooLow = 112016, + /// <summary> + ///Pressure in @ ink line too low. Cannot execute job (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_8_PRESSURE_TOO_LOW")] EInkLine8PressureTooLow = 112017, + /// <summary> + ///Pressure in @ ink line too low. Cannot execute job (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_9_PRESSURE_TOO_LOW")] EInkLine9PressureTooLow = 112018, + /// <summary> + ///Pressure in @ ink line too low. Cannot execute job (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_10_PRESSURE_TOO_LOW")] EInkLine10PressureTooLow = 112019, + /// <summary> + ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_PUMP_1_MALFUNCTION")] EInkPump1Malfunction = 112020, + /// <summary> + ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_PUMP_2_MALFUNCTION")] EInkPump2Malfunction = 112021, + /// <summary> + ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_PUMP_3_MALFUNCTION")] EInkPump3Malfunction = 112022, + /// <summary> + ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_PUMP_4_MALFUNCTION")] EInkPump4Malfunction = 112023, + /// <summary> + ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_PUMP_5_MALFUNCTION")] EInkPump5Malfunction = 112024, + /// <summary> + ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_PUMP_6_MALFUNCTION")] EInkPump6Malfunction = 112025, + /// <summary> + ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_PUMP_7_MALFUNCTION")] EInkPump7Malfunction = 112026, + /// <summary> + ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_PUMP_8_MALFUNCTION")] EInkPump8Malfunction = 112027, + /// <summary> + ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_PUMP_9_MALFUNCTION")] EInkPump9Malfunction = 112028, + /// <summary> + ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_PUMP_10_MALFUNCTION")] EInkPump10Malfunction = 112029, + /// <summary> + ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_PUMP_11_MALFUNCTION")] EInkPump11Malfunction = 112030, + /// <summary> + ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_PUMP_12_MALFUNCTION")] EInkPump12Malfunction = 112031, + /// <summary> + ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_PUMP_13_MALFUNCTION")] EInkPump13Malfunction = 112032, + /// <summary> + ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_PUMP_14_MALFUNCTION")] EInkPump14Malfunction = 112033, + /// <summary> + ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_PUMP_15_MALFUNCTION")] EInkPump15Malfunction = 112034, + /// <summary> + ///The @ tank level is low (Group = InkFillingSystem, Category = Warning) + /// </summary> + [pbr::OriginalName("E_INK_LINE_1_MID_TANK_LOW_LEVEL")] EInkLine1MidTankLowLevel = 112035, + /// <summary> + ///The @ tank level is low (Group = InkFillingSystem, Category = Warning) + /// </summary> + [pbr::OriginalName("E_INK_LINE_2_MID_TANK_LOW_LEVEL")] EInkLine2MidTankLowLevel = 112036, + /// <summary> + ///The @ tank level is low (Group = InkFillingSystem, Category = Warning) + /// </summary> + [pbr::OriginalName("E_INK_LINE_3_MID_TANK_LOW_LEVEL")] EInkLine3MidTankLowLevel = 112037, + /// <summary> + ///The @ tank level is low (Group = InkFillingSystem, Category = Warning) + /// </summary> + [pbr::OriginalName("E_INK_LINE_4_MID_TANK_LOW_LEVEL")] EInkLine4MidTankLowLevel = 112038, + /// <summary> + ///The @ tank level is low (Group = InkFillingSystem, Category = Warning) + /// </summary> + [pbr::OriginalName("E_INK_LINE_5_MID_TANK_LOW_LEVEL")] EInkLine5MidTankLowLevel = 112039, + /// <summary> + ///The @ tank level is low (Group = InkFillingSystem, Category = Warning) + /// </summary> + [pbr::OriginalName("E_INK_LINE_6_MID_TANK_LOW_LEVEL")] EInkLine6MidTankLowLevel = 112040, + /// <summary> + ///The @ tank level is low (Group = InkFillingSystem, Category = Warning) + /// </summary> + [pbr::OriginalName("E_INK_LINE_7_MID_TANK_LOW_LEVEL")] EInkLine7MidTankLowLevel = 112041, + /// <summary> + ///The @ tank level is low (Group = InkFillingSystem, Category = Warning) + /// </summary> + [pbr::OriginalName("E_INK_LINE_8_MID_TANK_LOW_LEVEL")] EInkLine8MidTankLowLevel = 112042, + /// <summary> + ///The @ tank level is low (Group = InkFillingSystem, Category = Warning) + /// </summary> + [pbr::OriginalName("E_INK_LINE_9_MID_TANK_LOW_LEVEL")] EInkLine9MidTankLowLevel = 112043, + /// <summary> + ///The @ tank level is low (Group = InkFillingSystem, Category = Warning) + /// </summary> + [pbr::OriginalName("E_INK_LINE_10_MID_TANK_LOW_LEVEL")] EInkLine10MidTankLowLevel = 112044, + /// <summary> + ///Failed to fill @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_1_MID_TANK_FILL_TIMEOUT")] EInkLine1MidTankFillTimeout = 112045, + /// <summary> + ///Failed to fill @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_2_MID_TANK_FILL_TIMEOUT")] EInkLine2MidTankFillTimeout = 112046, + /// <summary> + ///Failed to fill @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_3_MID_TANK_FILL_TIMEOUT")] EInkLine3MidTankFillTimeout = 112047, + /// <summary> + ///Failed to fill @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_4_MID_TANK_FILL_TIMEOUT")] EInkLine4MidTankFillTimeout = 112048, + /// <summary> + ///Failed to fill @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_5_MID_TANK_FILL_TIMEOUT")] EInkLine5MidTankFillTimeout = 112049, + /// <summary> + ///Failed to fill @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_6_MID_TANK_FILL_TIMEOUT")] EInkLine6MidTankFillTimeout = 112050, + /// <summary> + ///Failed to fill @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_7_MID_TANK_FILL_TIMEOUT")] EInkLine7MidTankFillTimeout = 112051, + /// <summary> + ///Failed to fill @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_8_MID_TANK_FILL_TIMEOUT")] EInkLine8MidTankFillTimeout = 112052, + /// <summary> + ///Failed to fill @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_9_MID_TANK_FILL_TIMEOUT")] EInkLine9MidTankFillTimeout = 112053, + /// <summary> + ///Failed to fill @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_10_MID_TANK_FILL_TIMEOUT")] EInkLine10MidTankFillTimeout = 112054, + /// <summary> + ///Malfunction in @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_1_MID_TANK_MALFUNCTION")] EInkLine1MidTankMalfunction = 112055, + /// <summary> + ///Malfunction in @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_2_MID_TANK_MALFUNCTION")] EInkLine2MidTankMalfunction = 112056, + /// <summary> + ///Malfunction in @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_3_MID_TANK_MALFUNCTION")] EInkLine3MidTankMalfunction = 112057, + /// <summary> + ///Malfunction in @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_4_MID_TANK_MALFUNCTION")] EInkLine4MidTankMalfunction = 112058, + /// <summary> + ///Malfunction in @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_5_MID_TANK_MALFUNCTION")] EInkLine5MidTankMalfunction = 112059, + /// <summary> + ///Malfunction in @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_6_MID_TANK_MALFUNCTION")] EInkLine6MidTankMalfunction = 112060, + /// <summary> + ///Malfunction in @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_7_MID_TANK_MALFUNCTION")] EInkLine7MidTankMalfunction = 112061, + /// <summary> + ///Malfunction in @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_8_MID_TANK_MALFUNCTION")] EInkLine8MidTankMalfunction = 112062, + /// <summary> + ///Malfunction in @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_9_MID_TANK_MALFUNCTION")] EInkLine9MidTankMalfunction = 112063, + /// <summary> + ///Malfunction in @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error) + /// </summary> + [pbr::OriginalName("E_INK_LINE_10_MID_TANK_MALFUNCTION")] EInkLine10MidTankMalfunction = 112064, } #endregion diff --git a/Software/Visual_Studio/Tango.PMR/Diagnostics/HeaterType.cs b/Software/Visual_Studio/Tango.PMR/Diagnostics/HeaterType.cs index 304e0ebe6..b9da0fdd6 100644 --- a/Software/Visual_Studio/Tango.PMR/Diagnostics/HeaterType.cs +++ b/Software/Visual_Studio/Tango.PMR/Diagnostics/HeaterType.cs @@ -22,7 +22,7 @@ namespace Tango.PMR.Diagnostics { static HeaterTypeReflection() { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( - "ChBIZWF0ZXJUeXBlLnByb3RvEhVUYW5nby5QTVIuRGlhZ25vc3RpY3Mq2wIK", + "ChBIZWF0ZXJUeXBlLnByb3RvEhVUYW5nby5QTVIuRGlhZ25vc3RpY3MqxgQK", "CkhlYXRlclR5cGUSEgoORHJ5ZXJBaXJIZWF0ZXIQABITCg9Ecnllck1haW5I", "ZWF0ZXIQARIYChREcnllclNlY29uZGFyeUhlYXRlchACEg8KC0hlYXRlclpv", "bmUxEAMSDwoLSGVhdGVyWm9uZTIQBBIPCgtIZWF0ZXJab25lMxAFEg8KC0hl", @@ -30,8 +30,13 @@ namespace Tango.PMR.Diagnostics { "Eg8KC01peGVySGVhdGVyEAkSDwoLSGVhdGVyWm9uZTcQChIPCgtIZWF0ZXJa", "b25lOBALEg8KC0hlYXRlclpvbmU5EAwSEAoMSGVhdGVyWm9uZTEwEA0SEAoM", "SGVhdGVyWm9uZTExEA4SEAoMSGVhdGVyWm9uZTEyEA8SFAoQSGVhZENvdmVy", - "SGVhdGVyMRAQEhQKEEhlYWRDb3ZlckhlYXRlcjIQEUIhCh9jb20udHdpbmUu", - "dGFuZ28ucG1yLmRpYWdub3N0aWNzYgZwcm90bzM=")); + "SGVhdGVyMRAQEhQKEEhlYWRDb3ZlckhlYXRlcjIQERIVChBFX0RSWUVSX0hF", + "QVRFUl8xEOgHEhUKEEVfRFJZRVJfSEVBVEVSXzIQ6QcSFQoQRV9EUllFUl9I", + "RUFURVJfMxDqBxIUCg9FX0hFQURfSEVBVEVSXzEQ6wcSFAoPRV9IRUFEX0hF", + "QVRFUl8yEOwHEhQKD0VfSEVBRF9IRUFURVJfMxDtBxITCg5FX01JWEVSX0hF", + "QVRFUhDuBxIUCg9FX1RVTk5FTF9IRUFURVIQ7wcSFwoSRV9MVUJSSUNBTlRf", + "SEVBVEVSEPAHEg4KCUVfU1BBUkVfMRDxBxIOCglFX1NQQVJFXzIQ8gdCIQof", + "Y29tLnR3aW5lLnRhbmdvLnBtci5kaWFnbm9zdGljc2IGcHJvdG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Tango.PMR.Diagnostics.HeaterType), }, null)); @@ -59,6 +64,17 @@ namespace Tango.PMR.Diagnostics { [pbr::OriginalName("HeaterZone12")] HeaterZone12 = 15, [pbr::OriginalName("HeadCoverHeater1")] HeadCoverHeater1 = 16, [pbr::OriginalName("HeadCoverHeater2")] HeadCoverHeater2 = 17, + [pbr::OriginalName("E_DRYER_HEATER_1")] EDryerHeater1 = 1000, + [pbr::OriginalName("E_DRYER_HEATER_2")] EDryerHeater2 = 1001, + [pbr::OriginalName("E_DRYER_HEATER_3")] EDryerHeater3 = 1002, + [pbr::OriginalName("E_HEAD_HEATER_1")] EHeadHeater1 = 1003, + [pbr::OriginalName("E_HEAD_HEATER_2")] EHeadHeater2 = 1004, + [pbr::OriginalName("E_HEAD_HEATER_3")] EHeadHeater3 = 1005, + [pbr::OriginalName("E_MIXER_HEATER")] EMixerHeater = 1006, + [pbr::OriginalName("E_TUNNEL_HEATER")] ETunnelHeater = 1007, + [pbr::OriginalName("E_LUBRICANT_HEATER")] ELubricantHeater = 1008, + [pbr::OriginalName("E_SPARE_1")] ESpare1 = 1009, + [pbr::OriginalName("E_SPARE_2")] ESpare2 = 1010, } #endregion diff --git a/Software/Visual_Studio/Tango.PMR/Diagnostics/ResetCardRequest.cs b/Software/Visual_Studio/Tango.PMR/Diagnostics/ResetCardRequest.cs new file mode 100644 index 000000000..8c98366a4 --- /dev/null +++ b/Software/Visual_Studio/Tango.PMR/Diagnostics/ResetCardRequest.cs @@ -0,0 +1,159 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: ResetCardRequest.proto +#pragma warning disable 1591, 0612, 3021 +#region Designer generated code + +using pb = global::Google.Protobuf; +using pbc = global::Google.Protobuf.Collections; +using pbr = global::Google.Protobuf.Reflection; +using scg = global::System.Collections.Generic; +namespace Tango.PMR.Diagnostics { + + /// <summary>Holder for reflection information generated from ResetCardRequest.proto</summary> + public static partial class ResetCardRequestReflection { + + #region Descriptor + /// <summary>File descriptor for ResetCardRequest.proto</summary> + public static pbr::FileDescriptor Descriptor { + get { return descriptor; } + } + private static pbr::FileDescriptor descriptor; + + static ResetCardRequestReflection() { + byte[] descriptorData = global::System.Convert.FromBase64String( + string.Concat( + "ChZSZXNldENhcmRSZXF1ZXN0LnByb3RvEhVUYW5nby5QTVIuRGlhZ25vc3Rp", + "Y3MiIgoQUmVzZXRDYXJkUmVxdWVzdBIOCgZDYXJkSUQYASABKAVCIQofY29t", + "LnR3aW5lLnRhbmdvLnBtci5kaWFnbm9zdGljc2IGcHJvdG8z")); + descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, + new pbr::FileDescriptor[] { }, + new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Diagnostics.ResetCardRequest), global::Tango.PMR.Diagnostics.ResetCardRequest.Parser, new[]{ "CardID" }, null, null, null) + })); + } + #endregion + + } + #region Messages + public sealed partial class ResetCardRequest : pb::IMessage<ResetCardRequest> { + private static readonly pb::MessageParser<ResetCardRequest> _parser = new pb::MessageParser<ResetCardRequest>(() => new ResetCardRequest()); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser<ResetCardRequest> Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Tango.PMR.Diagnostics.ResetCardRequestReflection.Descriptor.MessageTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ResetCardRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ResetCardRequest(ResetCardRequest other) : this() { + cardID_ = other.cardID_; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ResetCardRequest Clone() { + return new ResetCardRequest(this); + } + + /// <summary>Field number for the "CardID" field.</summary> + public const int CardIDFieldNumber = 1; + private int cardID_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CardID { + get { return cardID_; } + set { + cardID_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as ResetCardRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(ResetCardRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (CardID != other.CardID) return false; + return true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (CardID != 0) hash ^= CardID.GetHashCode(); + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + if (CardID != 0) { + output.WriteRawTag(8); + output.WriteInt32(CardID); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (CardID != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(CardID); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(ResetCardRequest other) { + if (other == null) { + return; + } + if (other.CardID != 0) { + CardID = other.CardID; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + input.SkipLastField(); + break; + case 8: { + CardID = input.ReadInt32(); + break; + } + } + } + } + + } + + #endregion + +} + +#endregion Designer generated code diff --git a/Software/Visual_Studio/Tango.PMR/Diagnostics/ResetCardResponse.cs b/Software/Visual_Studio/Tango.PMR/Diagnostics/ResetCardResponse.cs new file mode 100644 index 000000000..139427048 --- /dev/null +++ b/Software/Visual_Studio/Tango.PMR/Diagnostics/ResetCardResponse.cs @@ -0,0 +1,131 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: ResetCardResponse.proto +#pragma warning disable 1591, 0612, 3021 +#region Designer generated code + +using pb = global::Google.Protobuf; +using pbc = global::Google.Protobuf.Collections; +using pbr = global::Google.Protobuf.Reflection; +using scg = global::System.Collections.Generic; +namespace Tango.PMR.Diagnostics { + + /// <summary>Holder for reflection information generated from ResetCardResponse.proto</summary> + public static partial class ResetCardResponseReflection { + + #region Descriptor + /// <summary>File descriptor for ResetCardResponse.proto</summary> + public static pbr::FileDescriptor Descriptor { + get { return descriptor; } + } + private static pbr::FileDescriptor descriptor; + + static ResetCardResponseReflection() { + byte[] descriptorData = global::System.Convert.FromBase64String( + string.Concat( + "ChdSZXNldENhcmRSZXNwb25zZS5wcm90bxIVVGFuZ28uUE1SLkRpYWdub3N0", + "aWNzIhMKEVJlc2V0Q2FyZFJlc3BvbnNlQiEKH2NvbS50d2luZS50YW5nby5w", + "bXIuZGlhZ25vc3RpY3NiBnByb3RvMw==")); + descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, + new pbr::FileDescriptor[] { }, + new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Diagnostics.ResetCardResponse), global::Tango.PMR.Diagnostics.ResetCardResponse.Parser, null, null, null, null) + })); + } + #endregion + + } + #region Messages + public sealed partial class ResetCardResponse : pb::IMessage<ResetCardResponse> { + private static readonly pb::MessageParser<ResetCardResponse> _parser = new pb::MessageParser<ResetCardResponse>(() => new ResetCardResponse()); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser<ResetCardResponse> Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Tango.PMR.Diagnostics.ResetCardResponseReflection.Descriptor.MessageTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ResetCardResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ResetCardResponse(ResetCardResponse other) : this() { + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ResetCardResponse Clone() { + return new ResetCardResponse(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as ResetCardResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(ResetCardResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + return true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(ResetCardResponse other) { + if (other == null) { + return; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + input.SkipLastField(); + break; + } + } + } + + } + + #endregion + +} + +#endregion Designer generated code diff --git a/Software/Visual_Studio/Tango.PMR/FirmwareUpgrade/GetVersionDescriptorsRequest.cs b/Software/Visual_Studio/Tango.PMR/FirmwareUpgrade/GetVersionDescriptorsRequest.cs new file mode 100644 index 000000000..fbd200dc3 --- /dev/null +++ b/Software/Visual_Studio/Tango.PMR/FirmwareUpgrade/GetVersionDescriptorsRequest.cs @@ -0,0 +1,132 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: GetVersionDescriptorsRequest.proto +#pragma warning disable 1591, 0612, 3021 +#region Designer generated code + +using pb = global::Google.Protobuf; +using pbc = global::Google.Protobuf.Collections; +using pbr = global::Google.Protobuf.Reflection; +using scg = global::System.Collections.Generic; +namespace Tango.PMR.FirmwareUpgrade { + + /// <summary>Holder for reflection information generated from GetVersionDescriptorsRequest.proto</summary> + public static partial class GetVersionDescriptorsRequestReflection { + + #region Descriptor + /// <summary>File descriptor for GetVersionDescriptorsRequest.proto</summary> + public static pbr::FileDescriptor Descriptor { + get { return descriptor; } + } + private static pbr::FileDescriptor descriptor; + + static GetVersionDescriptorsRequestReflection() { + byte[] descriptorData = global::System.Convert.FromBase64String( + string.Concat( + "CiJHZXRWZXJzaW9uRGVzY3JpcHRvcnNSZXF1ZXN0LnByb3RvEhlUYW5nby5Q", + "TVIuRmlybXdhcmVVcGdyYWRlIh4KHEdldFZlcnNpb25EZXNjcmlwdG9yc1Jl", + "cXVlc3RCJQojY29tLnR3aW5lLnRhbmdvLnBtci5maXJtd2FyZXVwZ3JhZGVi", + "BnByb3RvMw==")); + descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, + new pbr::FileDescriptor[] { }, + new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.FirmwareUpgrade.GetVersionDescriptorsRequest), global::Tango.PMR.FirmwareUpgrade.GetVersionDescriptorsRequest.Parser, null, null, null, null) + })); + } + #endregion + + } + #region Messages + public sealed partial class GetVersionDescriptorsRequest : pb::IMessage<GetVersionDescriptorsRequest> { + private static readonly pb::MessageParser<GetVersionDescriptorsRequest> _parser = new pb::MessageParser<GetVersionDescriptorsRequest>(() => new GetVersionDescriptorsRequest()); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser<GetVersionDescriptorsRequest> Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Tango.PMR.FirmwareUpgrade.GetVersionDescriptorsRequestReflection.Descriptor.MessageTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public GetVersionDescriptorsRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public GetVersionDescriptorsRequest(GetVersionDescriptorsRequest other) : this() { + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public GetVersionDescriptorsRequest Clone() { + return new GetVersionDescriptorsRequest(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as GetVersionDescriptorsRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(GetVersionDescriptorsRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + return true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(GetVersionDescriptorsRequest other) { + if (other == null) { + return; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + input.SkipLastField(); + break; + } + } + } + + } + + #endregion + +} + +#endregion Designer generated code diff --git a/Software/Visual_Studio/Tango.PMR/FirmwareUpgrade/GetVersionDescriptorsResponse.cs b/Software/Visual_Studio/Tango.PMR/FirmwareUpgrade/GetVersionDescriptorsResponse.cs new file mode 100644 index 000000000..afbd23340 --- /dev/null +++ b/Software/Visual_Studio/Tango.PMR/FirmwareUpgrade/GetVersionDescriptorsResponse.cs @@ -0,0 +1,154 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: GetVersionDescriptorsResponse.proto +#pragma warning disable 1591, 0612, 3021 +#region Designer generated code + +using pb = global::Google.Protobuf; +using pbc = global::Google.Protobuf.Collections; +using pbr = global::Google.Protobuf.Reflection; +using scg = global::System.Collections.Generic; +namespace Tango.PMR.FirmwareUpgrade { + + /// <summary>Holder for reflection information generated from GetVersionDescriptorsResponse.proto</summary> + public static partial class GetVersionDescriptorsResponseReflection { + + #region Descriptor + /// <summary>File descriptor for GetVersionDescriptorsResponse.proto</summary> + public static pbr::FileDescriptor Descriptor { + get { return descriptor; } + } + private static pbr::FileDescriptor descriptor; + + static GetVersionDescriptorsResponseReflection() { + byte[] descriptorData = global::System.Convert.FromBase64String( + string.Concat( + "CiNHZXRWZXJzaW9uRGVzY3JpcHRvcnNSZXNwb25zZS5wcm90bxIZVGFuZ28u", + "UE1SLkZpcm13YXJlVXBncmFkZRobVmVyc2lvbkZpbGVEZXNjcmlwdG9yLnBy", + "b3RvImYKHUdldFZlcnNpb25EZXNjcmlwdG9yc1Jlc3BvbnNlEkUKC0Rlc2Ny", + "aXB0b3JzGAEgAygLMjAuVGFuZ28uUE1SLkZpcm13YXJlVXBncmFkZS5WZXJz", + "aW9uRmlsZURlc2NyaXB0b3JCJQojY29tLnR3aW5lLnRhbmdvLnBtci5maXJt", + "d2FyZXVwZ3JhZGViBnByb3RvMw==")); + descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, + new pbr::FileDescriptor[] { global::Tango.PMR.FirmwareUpgrade.VersionFileDescriptorReflection.Descriptor, }, + new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.FirmwareUpgrade.GetVersionDescriptorsResponse), global::Tango.PMR.FirmwareUpgrade.GetVersionDescriptorsResponse.Parser, new[]{ "Descriptors" }, null, null, null) + })); + } + #endregion + + } + #region Messages + public sealed partial class GetVersionDescriptorsResponse : pb::IMessage<GetVersionDescriptorsResponse> { + private static readonly pb::MessageParser<GetVersionDescriptorsResponse> _parser = new pb::MessageParser<GetVersionDescriptorsResponse>(() => new GetVersionDescriptorsResponse()); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser<GetVersionDescriptorsResponse> Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Tango.PMR.FirmwareUpgrade.GetVersionDescriptorsResponseReflection.Descriptor.MessageTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public GetVersionDescriptorsResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public GetVersionDescriptorsResponse(GetVersionDescriptorsResponse other) : this() { + descriptors_ = other.descriptors_.Clone(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public GetVersionDescriptorsResponse Clone() { + return new GetVersionDescriptorsResponse(this); + } + + /// <summary>Field number for the "Descriptors" field.</summary> + public const int DescriptorsFieldNumber = 1; + private static readonly pb::FieldCodec<global::Tango.PMR.FirmwareUpgrade.VersionFileDescriptor> _repeated_descriptors_codec + = pb::FieldCodec.ForMessage(10, global::Tango.PMR.FirmwareUpgrade.VersionFileDescriptor.Parser); + private readonly pbc::RepeatedField<global::Tango.PMR.FirmwareUpgrade.VersionFileDescriptor> descriptors_ = new pbc::RepeatedField<global::Tango.PMR.FirmwareUpgrade.VersionFileDescriptor>(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<global::Tango.PMR.FirmwareUpgrade.VersionFileDescriptor> Descriptors { + get { return descriptors_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as GetVersionDescriptorsResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(GetVersionDescriptorsResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if(!descriptors_.Equals(other.descriptors_)) return false; + return true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + hash ^= descriptors_.GetHashCode(); + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + descriptors_.WriteTo(output, _repeated_descriptors_codec); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + size += descriptors_.CalculateSize(_repeated_descriptors_codec); + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(GetVersionDescriptorsResponse other) { + if (other == null) { + return; + } + descriptors_.Add(other.descriptors_); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + input.SkipLastField(); + break; + case 10: { + descriptors_.AddEntriesFrom(input, _repeated_descriptors_codec); + break; + } + } + } + } + + } + + #endregion + +} + +#endregion Designer generated code diff --git a/Software/Visual_Studio/Tango.PMR/FirmwareUpgrade/VersionFileDestination.cs b/Software/Visual_Studio/Tango.PMR/FirmwareUpgrade/VersionFileDestination.cs index e41aa4ebb..c1de2098b 100644 --- a/Software/Visual_Studio/Tango.PMR/FirmwareUpgrade/VersionFileDestination.cs +++ b/Software/Visual_Studio/Tango.PMR/FirmwareUpgrade/VersionFileDestination.cs @@ -23,11 +23,15 @@ namespace Tango.PMR.FirmwareUpgrade { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( "ChxWZXJzaW9uRmlsZURlc3RpbmF0aW9uLnByb3RvEhlUYW5nby5QTVIuRmly", - "bXdhcmVVcGdyYWRlKpMBChZWZXJzaW9uRmlsZURlc3RpbmF0aW9uEgcKA01D", + "bXdhcmVVcGdyYWRlKsQCChZWZXJzaW9uRmlsZURlc3RpbmF0aW9uEgcKA01D", "VRAAEgkKBUZQR0ExEAESCQoFRlBHQTIQAhIJCgVGUEdBMxADEhAKDENvbmZp", "Z1BhcmFtcxAEEhEKDVByb2Nlc3NQYXJhbXMQBRIPCgtBbGFybVBhcmFtcxAG", - "EhkKFUdlbmVyYWxIV0NvbmZpZ1BhcmFtcxAHQiUKI2NvbS50d2luZS50YW5n", - "by5wbXIuZmlybXdhcmV1cGdyYWRlYgZwcm90bzM=")); + "EhkKFUdlbmVyYWxIV0NvbmZpZ1BhcmFtcxAHEhIKDkVtYmVkZGVkUGFyYW1z", + "EGQSDQoJQklUUGFyYW1zEGUSEgoOSGFyZHdhcmVQYXJhbXMQZhIOCgpQdW1w", + "Q2FyZFNXEGcSEAoMV2luZGVyQ2FyZFNXEGgSDgoKSGVhZENhcmRTVxBpEg8K", + "C0RyeWVyQ2FyZFNXEGoSEQoNTWlkVGFua0NhcmRTVxBrEhMKD0x1YnJpY2Fu", + "dENhcmRTVxBsEg0KCU5ld0NhcmRTVxBtQiUKI2NvbS50d2luZS50YW5nby5w", + "bXIuZmlybXdhcmV1cGdyYWRlYgZwcm90bzM=")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Tango.PMR.FirmwareUpgrade.VersionFileDestination), }, null)); @@ -45,6 +49,16 @@ namespace Tango.PMR.FirmwareUpgrade { [pbr::OriginalName("ProcessParams")] ProcessParams = 5, [pbr::OriginalName("AlarmParams")] AlarmParams = 6, [pbr::OriginalName("GeneralHWConfigParams")] GeneralHwconfigParams = 7, + [pbr::OriginalName("EmbeddedParams")] EmbeddedParams = 100, + [pbr::OriginalName("BITParams")] Bitparams = 101, + [pbr::OriginalName("HardwareParams")] HardwareParams = 102, + [pbr::OriginalName("PumpCardSW")] PumpCardSw = 103, + [pbr::OriginalName("WinderCardSW")] WinderCardSw = 104, + [pbr::OriginalName("HeadCardSW")] HeadCardSw = 105, + [pbr::OriginalName("DryerCardSW")] DryerCardSw = 106, + [pbr::OriginalName("MidTankCardSW")] MidTankCardSw = 107, + [pbr::OriginalName("LubricantCardSW")] LubricantCardSw = 108, + [pbr::OriginalName("NewCardSW")] NewCardSw = 109, } #endregion diff --git a/Software/Visual_Studio/Tango.PMR/Hardware/HardwareMotorType.cs b/Software/Visual_Studio/Tango.PMR/Hardware/HardwareMotorType.cs index 501fa1ad0..bc40df4a0 100644 --- a/Software/Visual_Studio/Tango.PMR/Hardware/HardwareMotorType.cs +++ b/Software/Visual_Studio/Tango.PMR/Hardware/HardwareMotorType.cs @@ -23,7 +23,7 @@ namespace Tango.PMR.Hardware { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( "ChdIYXJkd2FyZU1vdG9yVHlwZS5wcm90bxISVGFuZ28uUE1SLkhhcmR3YXJl", - "Ku8EChFIYXJkd2FyZU1vdG9yVHlwZRIVChFNT1RPX0RIX0NMRUFOSEVBRBAA", + "Ku0HChFIYXJkd2FyZU1vdG9yVHlwZRIVChFNT1RPX0RIX0NMRUFOSEVBRBAA", "EhUKEU1PVE9fREhfQ0xFQU5NRUNIEAESDwoLTU9UT19ESF9MSUQQAhIWChJN", "T1RPX0RSWUVSX0RSSVZJTkcQAxISCg5NT1RPX0RSWUVSX0xJRBAEEhYKEk1P", "VE9fRFJZRVJfTE9BREFSTRAFEhQKEE1PVE9fRElTUEVOU0VSXzEQBhIUChBN", @@ -36,8 +36,17 @@ namespace Tango.PMR.Hardware { "Vk9UMRAUEhAKDE1PVE9fUkRBTkNFUhAVEhEKDU1PVE9fUkRSSVZJTkcQFhIR", "Cg1NT1RPX1JMT0FEQVJNEBcSEQoNTU9UT19STE9BRElORxAYEhEKDU1PVE9f", "U1BBUkUxXzEQGRIRCg1NT1RPX1NQQVJFMV8yEBoSEQoNTU9UT19TUEFSRTJf", - "MRAbEhEKDU1PVE9fU1BBUkUyXzIQHBIRCg1NT1RPX1NQQVJFM18xEB1CHgoc", - "Y29tLnR3aW5lLnRhbmdvLnBtci5oYXJkd2FyZWIGcHJvdG8z")); + "MRAbEhEKDU1PVE9fU1BBUkUyXzIQHBIRCg1NT1RPX1NQQVJFM18xEB0SGQoU", + "RV9NT1RPX0RSWUVSX0RSSVZJTkcQ6AcSGQoURV9NT1RPX0RSWUVSX0xPQURJ", + "TkcQ6QcSFAoPRV9NT1RPX1dJTkRFUl8xEOoHEhQKD0VfTU9UT19XSU5ERVJf", + "MhDrBxIUCg9FX01PVE9fV0lOREVSXzMQ7AcSFAoPRV9NT1RPX1dJTkRFUl80", + "EO0HEhQKD0VfTU9UT19EQU5DRVJfMRDuBxIUCg9FX01PVE9fREFOQ0VSXzIQ", + "7wcSFAoPRV9NT1RPX0RBTkNFUl8zEPAHEhQKD0VfTU9UT19EQU5DRVJfNBDx", + "BxISCg1FX01PVE9fUFVMTEVSEPIHEhkKFEVfTU9UT19QVUxMRVJfREFOQ0VS", + "EPMHEhMKDkVfTU9UT19TUEFSRV8xEPQHEhMKDkVfTU9UT19TUEFSRV8yEPUH", + "EhMKDkVfTU9UT19TUEFSRV8zEPYHEhMKDkVfTU9UT19TUEFSRV80EPcHEhMK", + "DkVfTU9UT19TUEFSRV81EPgHQh4KHGNvbS50d2luZS50YW5nby5wbXIuaGFy", + "ZHdhcmViBnByb3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Tango.PMR.Hardware.HardwareMotorType), }, null)); @@ -167,6 +176,74 @@ namespace Tango.PMR.Hardware { ///Spare 5 Motor /// </summary> [pbr::OriginalName("MOTO_SPARE3_1")] MotoSpare31 = 29, + /// <summary> + ///Eureka Dryer Main + /// </summary> + [pbr::OriginalName("E_MOTO_DRYER_DRIVING")] EMotoDryerDriving = 1000, + /// <summary> + ///Eureka Dryer Loading + /// </summary> + [pbr::OriginalName("E_MOTO_DRYER_LOADING")] EMotoDryerLoading = 1001, + /// <summary> + ///Eureka Winder 1 + /// </summary> + [pbr::OriginalName("E_MOTO_WINDER_1")] EMotoWinder1 = 1002, + /// <summary> + ///Eureka Winder 2 + /// </summary> + [pbr::OriginalName("E_MOTO_WINDER_2")] EMotoWinder2 = 1003, + /// <summary> + ///Eureka Winder 3 + /// </summary> + [pbr::OriginalName("E_MOTO_WINDER_3")] EMotoWinder3 = 1004, + /// <summary> + ///Eureka Winder 4 + /// </summary> + [pbr::OriginalName("E_MOTO_WINDER_4")] EMotoWinder4 = 1005, + /// <summary> + ///Eureka Winder Dancer 1 + /// </summary> + [pbr::OriginalName("E_MOTO_DANCER_1")] EMotoDancer1 = 1006, + /// <summary> + ///Eureka Winder Dancer 2 + /// </summary> + [pbr::OriginalName("E_MOTO_DANCER_2")] EMotoDancer2 = 1007, + /// <summary> + ///Eureka Winder Dancer 3 + /// </summary> + [pbr::OriginalName("E_MOTO_DANCER_3")] EMotoDancer3 = 1008, + /// <summary> + ///Eureka Winder Dancer 4 + /// </summary> + [pbr::OriginalName("E_MOTO_DANCER_4")] EMotoDancer4 = 1009, + /// <summary> + ///Eureka Puller + /// </summary> + [pbr::OriginalName("E_MOTO_PULLER")] EMotoPuller = 1010, + /// <summary> + ///Eureka Puller Dancer + /// </summary> + [pbr::OriginalName("E_MOTO_PULLER_DANCER")] EMotoPullerDancer = 1011, + /// <summary> + ///Eureka Spare 1 + /// </summary> + [pbr::OriginalName("E_MOTO_SPARE_1")] EMotoSpare1 = 1012, + /// <summary> + ///Eureka Spare 2 + /// </summary> + [pbr::OriginalName("E_MOTO_SPARE_2")] EMotoSpare2 = 1013, + /// <summary> + ///Eureka Spare 3 + /// </summary> + [pbr::OriginalName("E_MOTO_SPARE_3")] EMotoSpare3 = 1014, + /// <summary> + ///Eureka Spare 4 + /// </summary> + [pbr::OriginalName("E_MOTO_SPARE_4")] EMotoSpare4 = 1015, + /// <summary> + ///Eureka Spare 5 + /// </summary> + [pbr::OriginalName("E_MOTO_SPARE_5")] EMotoSpare5 = 1016, } #endregion diff --git a/Software/Visual_Studio/Tango.PMR/Hardware/HardwarePidControlType.cs b/Software/Visual_Studio/Tango.PMR/Hardware/HardwarePidControlType.cs index f2769eb81..6c7c78e2d 100644 --- a/Software/Visual_Studio/Tango.PMR/Hardware/HardwarePidControlType.cs +++ b/Software/Visual_Studio/Tango.PMR/Hardware/HardwarePidControlType.cs @@ -23,7 +23,7 @@ namespace Tango.PMR.Hardware { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( "ChxIYXJkd2FyZVBpZENvbnRyb2xUeXBlLnByb3RvEhJUYW5nby5QTVIuSGFy", - "ZHdhcmUq8QQKFkhhcmR3YXJlUGlkQ29udHJvbFR5cGUSFwoTRHJ5ZXJBaXJU", + "ZHdhcmUq1QgKFkhhcmR3YXJlUGlkQ29udHJvbFR5cGUSFwoTRHJ5ZXJBaXJU", "ZW1wZXJhdHVyZRAAEhMKD0RyeWVySGVhdGVyTWFpbhABEhgKFERyeWVySGVh", "dGVyU2Vjb25kYXJ5EAISEAoMSGVhZEhlYXRlcloxEAMSEAoMSGVhZEhlYXRl", "cloyEAQSEAoMSGVhZEhlYXRlclozEAUSEAoMSGVhZEhlYXRlclo0EAYSEAoM", @@ -37,7 +37,18 @@ namespace Tango.PMR.Hardware { "GRIRCg1IZWFkSGVhdGVyWjEwEBoSEQoNSGVhZEhlYXRlcloxMRAbEhEKDUhl", "YWRIZWF0ZXJaMTIQHBIUChBIZWFkQ292ZXJIZWF0ZXIxEB0SFAoQSGVhZENv", "dmVySGVhdGVyMhAeEhAKDEhlYWRCbG93ZXJfMRAfEhAKDEhlYWRCbG93ZXJf", - "MhAgQh4KHGNvbS50d2luZS50YW5nby5wbXIuaGFyZHdhcmViBnByb3RvMw==")); + "MhAgEhkKFEVfUElEX0RSWUVSX0hFQVRFUl8xEOgHEhkKFEVfUElEX0RSWUVS", + "X0hFQVRFUl8yEOkHEhkKFEVfUElEX0RSWUVSX0hFQVRFUl8zEOoHEhgKE0Vf", + "UElEX0hFQURfSEVBVEVSXzEQ6wcSGAoTRV9QSURfSEVBRF9IRUFURVJfMhDs", + "BxIYChNFX1BJRF9IRUFEX0hFQVRFUl8zEO0HEhcKEkVfUElEX01JWEVSX0hF", + "QVRFUhDuBxIYChNFX1BJRF9UVU5ORUxfSEVBVEVSEO8HEhsKFkVfUElEX0xV", + "QlJJQ0FOVF9IRUFURVIQ8AcSDwoKRV9XSU5ERVJfMRDxBxIPCgpFX1dJTkRF", + "Ul8yEPIHEg8KCkVfV0lOREVSXzMQ8wcSDwoKRV9XSU5ERVJfNBD0BxIVChBF", + "X0RSWUVSX0FJUl9GTE9XEPUHEg0KCEVfUFVMTEVSEPYHEhsKFkVfVFVOTkVM", + "X0FJUl9GTE9XX0xFRlQQ9wcSHAoXRV9UVU5ORUxfQUlSX0ZMT1dfUklHSFQQ", + "+AcSEgoNRV9QSURfU1BBUkVfMRD5BxISCg1FX1BJRF9TUEFSRV8yEPoHEhIK", + "DUVfUElEX1NQQVJFXzMQ+wcSEgoNRV9QSURfU1BBUkVfNBD8B0IeChxjb20u", + "dHdpbmUudGFuZ28ucG1yLmhhcmR3YXJlYgZwcm90bzM=")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Tango.PMR.Hardware.HardwarePidControlType), }, null)); @@ -179,6 +190,90 @@ namespace Tango.PMR.Hardware { ///Head Blower 2 /// </summary> [pbr::OriginalName("HeadBlower_2")] HeadBlower2 = 32, + /// <summary> + ///Eureka Dyer Heater 1 + /// </summary> + [pbr::OriginalName("E_PID_DRYER_HEATER_1")] EPidDryerHeater1 = 1000, + /// <summary> + ///Eureka Dyer Heater 2 + /// </summary> + [pbr::OriginalName("E_PID_DRYER_HEATER_2")] EPidDryerHeater2 = 1001, + /// <summary> + ///Eureka Dyer Heater 3 + /// </summary> + [pbr::OriginalName("E_PID_DRYER_HEATER_3")] EPidDryerHeater3 = 1002, + /// <summary> + ///Eureka Head Heater 1 + /// </summary> + [pbr::OriginalName("E_PID_HEAD_HEATER_1")] EPidHeadHeater1 = 1003, + /// <summary> + ///Eureka Head Heater 2 + /// </summary> + [pbr::OriginalName("E_PID_HEAD_HEATER_2")] EPidHeadHeater2 = 1004, + /// <summary> + ///Eureka Head Heater 3 + /// </summary> + [pbr::OriginalName("E_PID_HEAD_HEATER_3")] EPidHeadHeater3 = 1005, + /// <summary> + ///Eureka Mixer Heater + /// </summary> + [pbr::OriginalName("E_PID_MIXER_HEATER")] EPidMixerHeater = 1006, + /// <summary> + ///Eureka Tunnel Heater + /// </summary> + [pbr::OriginalName("E_PID_TUNNEL_HEATER")] EPidTunnelHeater = 1007, + /// <summary> + ///Eureka Lubricant Heater + /// </summary> + [pbr::OriginalName("E_PID_LUBRICANT_HEATER")] EPidLubricantHeater = 1008, + /// <summary> + ///Eureka Winder 1 + /// </summary> + [pbr::OriginalName("E_WINDER_1")] EWinder1 = 1009, + /// <summary> + ///Eureka Winder 2 + /// </summary> + [pbr::OriginalName("E_WINDER_2")] EWinder2 = 1010, + /// <summary> + ///Eureka Winder 3 + /// </summary> + [pbr::OriginalName("E_WINDER_3")] EWinder3 = 1011, + /// <summary> + ///Eureka Winder 4 + /// </summary> + [pbr::OriginalName("E_WINDER_4")] EWinder4 = 1012, + /// <summary> + ///Eureka Dryer Air Flow + /// </summary> + [pbr::OriginalName("E_DRYER_AIR_FLOW")] EDryerAirFlow = 1013, + /// <summary> + ///Eureka Puller + /// </summary> + [pbr::OriginalName("E_PULLER")] EPuller = 1014, + /// <summary> + ///Eureka Tunnel Air Flow Left + /// </summary> + [pbr::OriginalName("E_TUNNEL_AIR_FLOW_LEFT")] ETunnelAirFlowLeft = 1015, + /// <summary> + ///Eureka Tunnel Air Flow Right + /// </summary> + [pbr::OriginalName("E_TUNNEL_AIR_FLOW_RIGHT")] ETunnelAirFlowRight = 1016, + /// <summary> + ///Eureka Spare 1 + /// </summary> + [pbr::OriginalName("E_PID_SPARE_1")] EPidSpare1 = 1017, + /// <summary> + ///Eureka Spare 2 + /// </summary> + [pbr::OriginalName("E_PID_SPARE_2")] EPidSpare2 = 1018, + /// <summary> + ///Eureka Spare 3 + /// </summary> + [pbr::OriginalName("E_PID_SPARE_3")] EPidSpare3 = 1019, + /// <summary> + ///Eureka Spare 4 + /// </summary> + [pbr::OriginalName("E_PID_SPARE_4")] EPidSpare4 = 1020, } #endregion diff --git a/Software/Visual_Studio/Tango.PMR/Insights/InsightsMonitors.cs b/Software/Visual_Studio/Tango.PMR/Insights/InsightsMonitors.cs index 210b45d4c..24a8239af 100644 --- a/Software/Visual_Studio/Tango.PMR/Insights/InsightsMonitors.cs +++ b/Software/Visual_Studio/Tango.PMR/Insights/InsightsMonitors.cs @@ -23,7 +23,7 @@ namespace Tango.PMR.Insights { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( "ChZJbnNpZ2h0c01vbml0b3JzLnByb3RvEhJUYW5nby5QTVIuSW5zaWdodHMi", - "3hQKEEluc2lnaHRzTW9uaXRvcnMSFAoMRGFuY2VyMUFuZ2xlGAEgASgBEhQK", + "8yoKEEluc2lnaHRzTW9uaXRvcnMSFAoMRGFuY2VyMUFuZ2xlGAEgASgBEhQK", "DERhbmNlcjJBbmdsZRgCIAEoARIUCgxEYW5jZXIzQW5nbGUYAyABKAESHAoU", "RmVlZGVyTW90b3JGcmVxdWVuY3kYBCABKAESEgoKRHJ5ZXJNb3RvchgFIAEo", "ARITCgtQb2xsZXJNb3RvchgGIAEoARITCgtXaW5kZXJNb3RvchgHIAEoARIS", @@ -82,11 +82,74 @@ namespace Tango.PMR.Insights { "GFggASgBEhoKEkhlYWRCbG93ZXIxQWlyRmxvdxhZIAEoARIaChJIZWFkQmxv", "d2VyMkFpckZsb3cYWiABKAESFgoOU2hpbmtvU2V0VmFsdWUYWyABKAESGgoS", "U2hpbmtvQ3VycmVudFZhbHVlGFwgASgBEhQKDFRvdGFsV0hTRmxvdxhdIAEo", - "AUIeChxjb20udHdpbmUudGFuZ28ucG1yLmluc2lnaHRzYgZwcm90bzM=")); + "ARIXCg9FdVdpbmRlcjFEYW5jZXIYXiABKAESFwoPRXVXaW5kZXIyRGFuY2Vy", + "GF8gASgBEhcKD0V1V2luZGVyM0RhbmNlchhgIAEoARIXCg9FdVdpbmRlcjRE", + "YW5jZXIYYSABKAESFgoORXVXaW5kZXIxTW90b3IYYiABKAESFgoORXVXaW5k", + "ZXIyTW90b3IYYyABKAESFgoORXVXaW5kZXIzTW90b3IYZCABKAESFgoORXVX", + "aW5kZXI0TW90b3IYZSABKAESHAoURXVEcnllck1vdG9yVmVsb2NpdHkYZiAB", + "KAESIgoaRXVEcnllck1vdG9yVGFyZ2V0VmVsb2NpdHkYZyABKAESGwoTRXVE", + "cnllck1vdG9yQ3VycmVudBhoIAEoARIWCg5FdVB1bGxlckRhbmNlchhpIAEo", + "ARIVCg1FdVB1bGxlck1vdG9yGGogASgBEh8KF0V1RHJ5ZXJab25lMVRlbXBl", + "cmF0dXJlGGsgASgBEh8KF0V1RHJ5ZXJab25lMlRlbXBlcmF0dXJlGGwgASgB", + "Eh8KF0V1RHJ5ZXJab25lM1RlbXBlcmF0dXJlGG0gASgBEh4KFkV1SGVhZFpv", + "bmUxVGVtcGVyYXR1cmUYbiABKAESHgoWRXVIZWFkWm9uZTJUZW1wZXJhdHVy", + "ZRhvIAEoARIeChZFdUhlYWRab25lM1RlbXBlcmF0dXJlGHAgASgBEhoKEkV1", + "TWl4ZXJUZW1wZXJhdHVyZRhxIAEoARIbChNFdVR1bm5lbFRlbXBlcmF0dXJl", + "GHIgASgBEh4KFkV1THVicmljYW50VGVtcGVyYXR1cmUYcyABKAESHAoURXVB", + "bWJpZW50VGVtcGVyYXR1cmUYdCABKAESJgoeRXVFbGVjdHJpY2FsQ2FiaW5l", + "dFRlbXBlcmF0dXJlGHUgASgBEhsKE0V1RHJ5ZXJab25lMUN1cnJlbnQYdiAB", + "KAESGwoTRXVEcnllclpvbmUyQ3VycmVudBh3IAEoARIbChNFdURyeWVyWm9u", + "ZTNDdXJyZW50GHggASgBEhoKEkV1SGVhZFpvbmUxQ3VycmVudBh5IAEoARIa", + "ChJFdUhlYWRab25lMkN1cnJlbnQYeiABKAESGgoSRXVIZWFkWm9uZTNDdXJy", + "ZW50GHsgASgBEhYKDkV1TWl4ZXJDdXJyZW50GHwgASgBEhcKD0V1VHVubmVs", + "Q3VycmVudBh9IAEoARIaChJFdUx1YnJpY2FudEN1cnJlbnQYfiABKAESFAoM", + "RXVCdHNyMVNwZWVkGH8gASgBEhcKDkV1QnRzcjFTcGVlZEF2GIABIAEoARIW", + "Cg1FdUJ0c3IxRGlzcEF2GIEBIAEoARIXCg5FdUJ0c3IxUGVha01pbhiCASAB", + "KAESFwoORXVCdHNyMVBlYWtNYXgYgwEgASgBEhUKDEV1QnRzcjJTcGVlZBiE", + "ASABKAESFwoORXVCdHNyMlNwZWVkQXYYhQEgASgBEhYKDUV1QnRzcjJEaXNw", + "QXYYhgEgASgBEhcKDkV1QnRzcjJQZWFrTWluGIcBIAEoARIXCg5FdUJ0c3Iy", + "UGVha01heBiIASABKAESFQoMRXVCdHNyM1NwZWVkGIkBIAEoARIXCg5FdUJ0", + "c3IzU3BlZWRBdhiKASABKAESFgoNRXVCdHNyM0Rpc3BBdhiLASABKAESFwoO", + "RXVCdHNyM1BlYWtNaW4YjAEgASgBEhcKDkV1QnRzcjNQZWFrTWF4GI0BIAEo", + "ARIVCgxFdUJ0c3I0U3BlZWQYjgEgASgBEhcKDkV1QnRzcjRTcGVlZEF2GI8B", + "IAEoARIXCg5FdUJ0c3I0UGVha01pbhiQASABKAESFwoORXVCdHNyNFBlYWtN", + "YXgYkQEgASgBEhYKDUV1QnRzcjREaXNwQXYYkgEgASgBEh0KFEV1VGVtcGVy", + "YXR1cmVMb2dnZXJzGJMBIAMoARIUCgtFdVB1bXBGbG93cxiUASADKAESGwoS", + "RXVJbmtMaW5lc1ByZXNzdXJlGJUBIAMoARIZChBFdVNwYXJlRGF0YUFycmF5", + "GJYBIAMoARIcChNFdURpc3BlbnNlcjFWb2x0YWdlGJcBIAEoARIcChNFdURp", + "c3BlbnNlcjJWb2x0YWdlGJgBIAEoARIcChNFdURpc3BlbnNlcjNWb2x0YWdl", + "GJkBIAEoARIcChNFdURpc3BlbnNlcjRWb2x0YWdlGJoBIAEoARIcChNFdURp", + "c3BlbnNlcjVWb2x0YWdlGJsBIAEoARIcChNFdURpc3BlbnNlcjZWb2x0YWdl", + "GJwBIAEoARIcChNFdURpc3BlbnNlcjdWb2x0YWdlGJ0BIAEoARIcChNFdURp", + "c3BlbnNlcjhWb2x0YWdlGJ4BIAEoARIcChNFdURpc3BlbnNlcjlWb2x0YWdl", + "GJ8BIAEoARIdChRFdURpc3BlbnNlcjEwVm9sdGFnZRigASABKAESHQoURXVE", + "aXNwZW5zZXIxMVZvbHRhZ2UYoQEgASgBEh0KFEV1RGlzcGVuc2VyMTJWb2x0", + "YWdlGKIBIAEoARIdChRFdURpc3BlbnNlcjEzVm9sdGFnZRijASABKAESHQoU", + "RXVEaXNwZW5zZXIxNFZvbHRhZ2UYpAEgASgBEh0KFEV1RGlzcGVuc2VyMTVW", + "b2x0YWdlGKUBIAEoARIdChRFdURpc3BlbnNlcjE2Vm9sdGFnZRimASABKAES", + "HwoWRXVMdWJyaWNhbnRQdW1wVm9sdGFnZRinASABKAESHQoURXVEaXNwZW5z", + "ZXIxUHJlc3N1cmUYqAEgASgBEh0KFEV1RGlzcGVuc2VyMlByZXNzdXJlGKkB", + "IAEoARIdChRFdURpc3BlbnNlcjNQcmVzc3VyZRiqASABKAESHQoURXVEaXNw", + "ZW5zZXI0UHJlc3N1cmUYqwEgASgBEh0KFEV1RGlzcGVuc2VyNVByZXNzdXJl", + "GKwBIAEoARIdChRFdURpc3BlbnNlcjZQcmVzc3VyZRitASABKAESHQoURXVE", + "aXNwZW5zZXI3UHJlc3N1cmUYrgEgASgBEh0KFEV1RGlzcGVuc2VyOFByZXNz", + "dXJlGK8BIAEoARIcChNFdUx1YnJpY2FudFByZXNzdXJlGLABIAEoARIYCg9F", + "dU1pZFRhbmsxTGV2ZWwYsQEgASgBEhgKD0V1TWlkVGFuazJMZXZlbBiyASAB", + "KAESGAoPRXVNaWRUYW5rM0xldmVsGLMBIAEoARIYCg9FdU1pZFRhbms0TGV2", + "ZWwYtAEgASgBEhgKD0V1TWlkVGFuazVMZXZlbBi1ASABKAESGAoPRXVNaWRU", + "YW5rNkxldmVsGLYBIAEoARIYCg9FdU1pZFRhbms3TGV2ZWwYtwEgASgBEhgK", + "D0V1TWlkVGFuazhMZXZlbBi4ASABKAESHQoURXVDaGlsbGVyVGVtcGVyYXR1", + "cmUYuQEgASgBEhsKEkV1SGVhZFJpZ2h0QWlyRmxvdxi6ASABKAESGgoRRXVI", + "ZWFkTGVmdEFpckZsb3cYuwEgASgBEhsKEkV1SGVhZFJpZ2h0Vm9sdGFnZRi8", + "ASABKAESGgoRRXVIZWFkTGVmdFZvbHRhZ2UYvQEgASgBEhcKDkV1RHJ5ZXJB", + "aXJGbG93GL4BIAEoARIYCg9FdUJsb3dlclZvbHRhZ2UYvwEgASgBEhUKDEV1", + "V2FzdGVMZXZlbBjAASABKAESEQoIRXVTcGFyZTEYwQEgASgBEhEKCEV1U3Bh", + "cmUyGMIBIAEoARIRCghFdVNwYXJlMxjDASABKAESEQoIRXVTcGFyZTQYxAEg", + "ASgBQh4KHGNvbS50d2luZS50YW5nby5wbXIuaW5zaWdodHNiBnByb3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Insights.InsightsMonitors), global::Tango.PMR.Insights.InsightsMonitors.Parser, new[]{ "Dancer1Angle", "Dancer2Angle", "Dancer3Angle", "FeederMotorFrequency", "DryerMotor", "PollerMotor", "WinderMotor", "ScrewMotor", "ThreadSpeed", "MixerTemperature", "HeadZone1Temperature", "HeadZone2Temperature", "HeadZone3Temperature", "HeadAirFlow", "FeederTension", "PullerTension", "DryerZone1Temperature", "DryerZone2Temperature", "DryerZone3Temperature", "DryerAirFlow", "WinderTension", "DispensersMotorsFrequency", "DispensersAngularEncoders", "DispensersLinearPositions", "DispensersPressure", "FilterDeltaPressure", "ChillerTemperature", "Dispenser1MotorFrequency", "Dispenser2MotorFrequency", "Dispenser3MotorFrequency", "Dispenser4MotorFrequency", "Dispenser5MotorFrequency", "Dispenser6MotorFrequency", "Dispenser7MotorFrequency", "Dispenser8MotorFrequency", "HeadZone4Temperature", "HeadZone5Temperature", "HeadZone6Temperature", "BlowerVoltage", "Dispenser1Pressure", "Dispenser2Pressure", "Dispenser3Pressure", "Dispenser4Pressure", "Dispenser5Pressure", "Dispenser6Pressure", "Dispenser7Pressure", "Dispenser8Pressure", "MidTank1Level", "MidTank2Level", "MidTank3Level", "MidTank4Level", "MidTank5Level", "MidTank6Level", "MidTank7Level", "MidTank8Level", "DrierZone1HeaterCurrent", "DrierZone2HeaterCurrent", "HeadZone1HeaterCurrent", "HeadZone2HeaterCurrent", "HeadZone3HeaterCurrent", "HeadZone4HeaterCurrent", "HeadZone56HeaterCurrent", "Mixer1HeaterCurrent", "DispensersInkLevel", "MidTanksInkLevel", "OverallTemperature", "HeadZone7HeaterCurrent", "HeadZone7Temperature", "HeadZone8HeaterCurrent", "HeadZone8Temperature", "HeadZone9HeaterCurrent", "HeadZone9Temperature", "HeadZone10HeaterCurrent", "HeadZone10Temperature", "HeadZone11HeaterCurrent", "HeadZone11Temperature", "HeadZone12HeaterCurrent", "HeadZone12Temperature", "HeadBlowerVoltage1", "HeadBlowerVoltage2", "HeadCoverHeater1Current", "HeadCoverHeater1Temperature", "HeadCoverHeater2Current", "HeadCoverHeater2Temperature", "WHSBlower2Voltage", "GasSensor", "IncomingVoltage", "WasteLevel", "HeadBlower1AirFlow", "HeadBlower2AirFlow", "ShinkoSetValue", "ShinkoCurrentValue", "TotalWHSFlow" }, null, null, null) + new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Insights.InsightsMonitors), global::Tango.PMR.Insights.InsightsMonitors.Parser, new[]{ "Dancer1Angle", "Dancer2Angle", "Dancer3Angle", "FeederMotorFrequency", "DryerMotor", "PollerMotor", "WinderMotor", "ScrewMotor", "ThreadSpeed", "MixerTemperature", "HeadZone1Temperature", "HeadZone2Temperature", "HeadZone3Temperature", "HeadAirFlow", "FeederTension", "PullerTension", "DryerZone1Temperature", "DryerZone2Temperature", "DryerZone3Temperature", "DryerAirFlow", "WinderTension", "DispensersMotorsFrequency", "DispensersAngularEncoders", "DispensersLinearPositions", "DispensersPressure", "FilterDeltaPressure", "ChillerTemperature", "Dispenser1MotorFrequency", "Dispenser2MotorFrequency", "Dispenser3MotorFrequency", "Dispenser4MotorFrequency", "Dispenser5MotorFrequency", "Dispenser6MotorFrequency", "Dispenser7MotorFrequency", "Dispenser8MotorFrequency", "HeadZone4Temperature", "HeadZone5Temperature", "HeadZone6Temperature", "BlowerVoltage", "Dispenser1Pressure", "Dispenser2Pressure", "Dispenser3Pressure", "Dispenser4Pressure", "Dispenser5Pressure", "Dispenser6Pressure", "Dispenser7Pressure", "Dispenser8Pressure", "MidTank1Level", "MidTank2Level", "MidTank3Level", "MidTank4Level", "MidTank5Level", "MidTank6Level", "MidTank7Level", "MidTank8Level", "DrierZone1HeaterCurrent", "DrierZone2HeaterCurrent", "HeadZone1HeaterCurrent", "HeadZone2HeaterCurrent", "HeadZone3HeaterCurrent", "HeadZone4HeaterCurrent", "HeadZone56HeaterCurrent", "Mixer1HeaterCurrent", "DispensersInkLevel", "MidTanksInkLevel", "OverallTemperature", "HeadZone7HeaterCurrent", "HeadZone7Temperature", "HeadZone8HeaterCurrent", "HeadZone8Temperature", "HeadZone9HeaterCurrent", "HeadZone9Temperature", "HeadZone10HeaterCurrent", "HeadZone10Temperature", "HeadZone11HeaterCurrent", "HeadZone11Temperature", "HeadZone12HeaterCurrent", "HeadZone12Temperature", "HeadBlowerVoltage1", "HeadBlowerVoltage2", "HeadCoverHeater1Current", "HeadCoverHeater1Temperature", "HeadCoverHeater2Current", "HeadCoverHeater2Temperature", "WHSBlower2Voltage", "GasSensor", "IncomingVoltage", "WasteLevel", "HeadBlower1AirFlow", "HeadBlower2AirFlow", "ShinkoSetValue", "ShinkoCurrentValue", "TotalWHSFlow", "EuWinder1Dancer", "EuWinder2Dancer", "EuWinder3Dancer", "EuWinder4Dancer", "EuWinder1Motor", "EuWinder2Motor", "EuWinder3Motor", "EuWinder4Motor", "EuDryerMotorVelocity", "EuDryerMotorTargetVelocity", "EuDryerMotorCurrent", "EuPullerDancer", "EuPullerMotor", "EuDryerZone1Temperature", "EuDryerZone2Temperature", "EuDryerZone3Temperature", "EuHeadZone1Temperature", "EuHeadZone2Temperature", "EuHeadZone3Temperature", "EuMixerTemperature", "EuTunnelTemperature", "EuLubricantTemperature", "EuAmbientTemperature", "EuElectricalCabinetTemperature", "EuDryerZone1Current", "EuDryerZone2Current", "EuDryerZone3Current", "EuHeadZone1Current", "EuHeadZone2Current", "EuHeadZone3Current", "EuMixerCurrent", "EuTunnelCurrent", "EuLubricantCurrent", "EuBtsr1Speed", "EuBtsr1SpeedAv", "EuBtsr1DispAv", "EuBtsr1PeakMin", "EuBtsr1PeakMax", "EuBtsr2Speed", "EuBtsr2SpeedAv", "EuBtsr2DispAv", "EuBtsr2PeakMin", "EuBtsr2PeakMax", "EuBtsr3Speed", "EuBtsr3SpeedAv", "EuBtsr3DispAv", "EuBtsr3PeakMin", "EuBtsr3PeakMax", "EuBtsr4Speed", "EuBtsr4SpeedAv", "EuBtsr4PeakMin", "EuBtsr4PeakMax", "EuBtsr4DispAv", "EuTemperatureLoggers", "EuPumpFlows", "EuInkLinesPressure", "EuSpareDataArray", "EuDispenser1Voltage", "EuDispenser2Voltage", "EuDispenser3Voltage", "EuDispenser4Voltage", "EuDispenser5Voltage", "EuDispenser6Voltage", "EuDispenser7Voltage", "EuDispenser8Voltage", "EuDispenser9Voltage", "EuDispenser10Voltage", "EuDispenser11Voltage", "EuDispenser12Voltage", "EuDispenser13Voltage", "EuDispenser14Voltage", "EuDispenser15Voltage", "EuDispenser16Voltage", "EuLubricantPumpVoltage", "EuDispenser1Pressure", "EuDispenser2Pressure", "EuDispenser3Pressure", "EuDispenser4Pressure", "EuDispenser5Pressure", "EuDispenser6Pressure", "EuDispenser7Pressure", "EuDispenser8Pressure", "EuLubricantPressure", "EuMidTank1Level", "EuMidTank2Level", "EuMidTank3Level", "EuMidTank4Level", "EuMidTank5Level", "EuMidTank6Level", "EuMidTank7Level", "EuMidTank8Level", "EuChillerTemperature", "EuHeadRightAirFlow", "EuHeadLeftAirFlow", "EuHeadRightVoltage", "EuHeadLeftVoltage", "EuDryerAirFlow", "EuBlowerVoltage", "EuWasteLevel", "EuSpare1", "EuSpare2", "EuSpare3", "EuSpare4" }, null, null, null) })); } #endregion @@ -210,6 +273,109 @@ namespace Tango.PMR.Insights { shinkoSetValue_ = other.shinkoSetValue_; shinkoCurrentValue_ = other.shinkoCurrentValue_; totalWHSFlow_ = other.totalWHSFlow_; + euWinder1Dancer_ = other.euWinder1Dancer_; + euWinder2Dancer_ = other.euWinder2Dancer_; + euWinder3Dancer_ = other.euWinder3Dancer_; + euWinder4Dancer_ = other.euWinder4Dancer_; + euWinder1Motor_ = other.euWinder1Motor_; + euWinder2Motor_ = other.euWinder2Motor_; + euWinder3Motor_ = other.euWinder3Motor_; + euWinder4Motor_ = other.euWinder4Motor_; + euDryerMotorVelocity_ = other.euDryerMotorVelocity_; + euDryerMotorTargetVelocity_ = other.euDryerMotorTargetVelocity_; + euDryerMotorCurrent_ = other.euDryerMotorCurrent_; + euPullerDancer_ = other.euPullerDancer_; + euPullerMotor_ = other.euPullerMotor_; + euDryerZone1Temperature_ = other.euDryerZone1Temperature_; + euDryerZone2Temperature_ = other.euDryerZone2Temperature_; + euDryerZone3Temperature_ = other.euDryerZone3Temperature_; + euHeadZone1Temperature_ = other.euHeadZone1Temperature_; + euHeadZone2Temperature_ = other.euHeadZone2Temperature_; + euHeadZone3Temperature_ = other.euHeadZone3Temperature_; + euMixerTemperature_ = other.euMixerTemperature_; + euTunnelTemperature_ = other.euTunnelTemperature_; + euLubricantTemperature_ = other.euLubricantTemperature_; + euAmbientTemperature_ = other.euAmbientTemperature_; + euElectricalCabinetTemperature_ = other.euElectricalCabinetTemperature_; + euDryerZone1Current_ = other.euDryerZone1Current_; + euDryerZone2Current_ = other.euDryerZone2Current_; + euDryerZone3Current_ = other.euDryerZone3Current_; + euHeadZone1Current_ = other.euHeadZone1Current_; + euHeadZone2Current_ = other.euHeadZone2Current_; + euHeadZone3Current_ = other.euHeadZone3Current_; + euMixerCurrent_ = other.euMixerCurrent_; + euTunnelCurrent_ = other.euTunnelCurrent_; + euLubricantCurrent_ = other.euLubricantCurrent_; + euBtsr1Speed_ = other.euBtsr1Speed_; + euBtsr1SpeedAv_ = other.euBtsr1SpeedAv_; + euBtsr1DispAv_ = other.euBtsr1DispAv_; + euBtsr1PeakMin_ = other.euBtsr1PeakMin_; + euBtsr1PeakMax_ = other.euBtsr1PeakMax_; + euBtsr2Speed_ = other.euBtsr2Speed_; + euBtsr2SpeedAv_ = other.euBtsr2SpeedAv_; + euBtsr2DispAv_ = other.euBtsr2DispAv_; + euBtsr2PeakMin_ = other.euBtsr2PeakMin_; + euBtsr2PeakMax_ = other.euBtsr2PeakMax_; + euBtsr3Speed_ = other.euBtsr3Speed_; + euBtsr3SpeedAv_ = other.euBtsr3SpeedAv_; + euBtsr3DispAv_ = other.euBtsr3DispAv_; + euBtsr3PeakMin_ = other.euBtsr3PeakMin_; + euBtsr3PeakMax_ = other.euBtsr3PeakMax_; + euBtsr4Speed_ = other.euBtsr4Speed_; + euBtsr4SpeedAv_ = other.euBtsr4SpeedAv_; + euBtsr4PeakMin_ = other.euBtsr4PeakMin_; + euBtsr4PeakMax_ = other.euBtsr4PeakMax_; + euBtsr4DispAv_ = other.euBtsr4DispAv_; + euTemperatureLoggers_ = other.euTemperatureLoggers_.Clone(); + euPumpFlows_ = other.euPumpFlows_.Clone(); + euInkLinesPressure_ = other.euInkLinesPressure_.Clone(); + euSpareDataArray_ = other.euSpareDataArray_.Clone(); + euDispenser1Voltage_ = other.euDispenser1Voltage_; + euDispenser2Voltage_ = other.euDispenser2Voltage_; + euDispenser3Voltage_ = other.euDispenser3Voltage_; + euDispenser4Voltage_ = other.euDispenser4Voltage_; + euDispenser5Voltage_ = other.euDispenser5Voltage_; + euDispenser6Voltage_ = other.euDispenser6Voltage_; + euDispenser7Voltage_ = other.euDispenser7Voltage_; + euDispenser8Voltage_ = other.euDispenser8Voltage_; + euDispenser9Voltage_ = other.euDispenser9Voltage_; + euDispenser10Voltage_ = other.euDispenser10Voltage_; + euDispenser11Voltage_ = other.euDispenser11Voltage_; + euDispenser12Voltage_ = other.euDispenser12Voltage_; + euDispenser13Voltage_ = other.euDispenser13Voltage_; + euDispenser14Voltage_ = other.euDispenser14Voltage_; + euDispenser15Voltage_ = other.euDispenser15Voltage_; + euDispenser16Voltage_ = other.euDispenser16Voltage_; + euLubricantPumpVoltage_ = other.euLubricantPumpVoltage_; + euDispenser1Pressure_ = other.euDispenser1Pressure_; + euDispenser2Pressure_ = other.euDispenser2Pressure_; + euDispenser3Pressure_ = other.euDispenser3Pressure_; + euDispenser4Pressure_ = other.euDispenser4Pressure_; + euDispenser5Pressure_ = other.euDispenser5Pressure_; + euDispenser6Pressure_ = other.euDispenser6Pressure_; + euDispenser7Pressure_ = other.euDispenser7Pressure_; + euDispenser8Pressure_ = other.euDispenser8Pressure_; + euLubricantPressure_ = other.euLubricantPressure_; + euMidTank1Level_ = other.euMidTank1Level_; + euMidTank2Level_ = other.euMidTank2Level_; + euMidTank3Level_ = other.euMidTank3Level_; + euMidTank4Level_ = other.euMidTank4Level_; + euMidTank5Level_ = other.euMidTank5Level_; + euMidTank6Level_ = other.euMidTank6Level_; + euMidTank7Level_ = other.euMidTank7Level_; + euMidTank8Level_ = other.euMidTank8Level_; + euChillerTemperature_ = other.euChillerTemperature_; + euHeadRightAirFlow_ = other.euHeadRightAirFlow_; + euHeadLeftAirFlow_ = other.euHeadLeftAirFlow_; + euHeadRightVoltage_ = other.euHeadRightVoltage_; + euHeadLeftVoltage_ = other.euHeadLeftVoltage_; + euDryerAirFlow_ = other.euDryerAirFlow_; + euBlowerVoltage_ = other.euBlowerVoltage_; + euWasteLevel_ = other.euWasteLevel_; + euSpare1_ = other.euSpare1_; + euSpare2_ = other.euSpare2_; + euSpare3_ = other.euSpare3_; + euSpare4_ = other.euSpare4_; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -1513,6 +1679,1444 @@ namespace Tango.PMR.Insights { } } + /// <summary>Field number for the "EuWinder1Dancer" field.</summary> + public const int EuWinder1DancerFieldNumber = 94; + private double euWinder1Dancer_; + /// <summary> + ///Eureka Winder Dancer 1 + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuWinder1Dancer { + get { return euWinder1Dancer_; } + set { + euWinder1Dancer_ = value; + } + } + + /// <summary>Field number for the "EuWinder2Dancer" field.</summary> + public const int EuWinder2DancerFieldNumber = 95; + private double euWinder2Dancer_; + /// <summary> + ///Eureka Winder Dancer 2 + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuWinder2Dancer { + get { return euWinder2Dancer_; } + set { + euWinder2Dancer_ = value; + } + } + + /// <summary>Field number for the "EuWinder3Dancer" field.</summary> + public const int EuWinder3DancerFieldNumber = 96; + private double euWinder3Dancer_; + /// <summary> + ///Eureka Winder Dancer 3 + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuWinder3Dancer { + get { return euWinder3Dancer_; } + set { + euWinder3Dancer_ = value; + } + } + + /// <summary>Field number for the "EuWinder4Dancer" field.</summary> + public const int EuWinder4DancerFieldNumber = 97; + private double euWinder4Dancer_; + /// <summary> + ///Eureka Winder Dancer 4 + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuWinder4Dancer { + get { return euWinder4Dancer_; } + set { + euWinder4Dancer_ = value; + } + } + + /// <summary>Field number for the "EuWinder1Motor" field.</summary> + public const int EuWinder1MotorFieldNumber = 98; + private double euWinder1Motor_; + /// <summary> + ///Eureka Winder Motor 1 + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuWinder1Motor { + get { return euWinder1Motor_; } + set { + euWinder1Motor_ = value; + } + } + + /// <summary>Field number for the "EuWinder2Motor" field.</summary> + public const int EuWinder2MotorFieldNumber = 99; + private double euWinder2Motor_; + /// <summary> + ///Eureka Winder Motor 2 + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuWinder2Motor { + get { return euWinder2Motor_; } + set { + euWinder2Motor_ = value; + } + } + + /// <summary>Field number for the "EuWinder3Motor" field.</summary> + public const int EuWinder3MotorFieldNumber = 100; + private double euWinder3Motor_; + /// <summary> + ///Eureka Winder Motor 3 + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuWinder3Motor { + get { return euWinder3Motor_; } + set { + euWinder3Motor_ = value; + } + } + + /// <summary>Field number for the "EuWinder4Motor" field.</summary> + public const int EuWinder4MotorFieldNumber = 101; + private double euWinder4Motor_; + /// <summary> + ///Eureka Winder Motor 4 + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuWinder4Motor { + get { return euWinder4Motor_; } + set { + euWinder4Motor_ = value; + } + } + + /// <summary>Field number for the "EuDryerMotorVelocity" field.</summary> + public const int EuDryerMotorVelocityFieldNumber = 102; + private double euDryerMotorVelocity_; + /// <summary> + ///Eureka Dryer Motor Velocity + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuDryerMotorVelocity { + get { return euDryerMotorVelocity_; } + set { + euDryerMotorVelocity_ = value; + } + } + + /// <summary>Field number for the "EuDryerMotorTargetVelocity" field.</summary> + public const int EuDryerMotorTargetVelocityFieldNumber = 103; + private double euDryerMotorTargetVelocity_; + /// <summary> + ///Eureka Dryer Motor Target Velocity + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuDryerMotorTargetVelocity { + get { return euDryerMotorTargetVelocity_; } + set { + euDryerMotorTargetVelocity_ = value; + } + } + + /// <summary>Field number for the "EuDryerMotorCurrent" field.</summary> + public const int EuDryerMotorCurrentFieldNumber = 104; + private double euDryerMotorCurrent_; + /// <summary> + ///Eureka Dryer Motor Current + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuDryerMotorCurrent { + get { return euDryerMotorCurrent_; } + set { + euDryerMotorCurrent_ = value; + } + } + + /// <summary>Field number for the "EuPullerDancer" field.</summary> + public const int EuPullerDancerFieldNumber = 105; + private double euPullerDancer_; + /// <summary> + ///Eureka Puller Dancer + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuPullerDancer { + get { return euPullerDancer_; } + set { + euPullerDancer_ = value; + } + } + + /// <summary>Field number for the "EuPullerMotor" field.</summary> + public const int EuPullerMotorFieldNumber = 106; + private double euPullerMotor_; + /// <summary> + ///Eureka Puller Motor + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuPullerMotor { + get { return euPullerMotor_; } + set { + euPullerMotor_ = value; + } + } + + /// <summary>Field number for the "EuDryerZone1Temperature" field.</summary> + public const int EuDryerZone1TemperatureFieldNumber = 107; + private double euDryerZone1Temperature_; + /// <summary> + ///Eureka Dryer Zone 1 Temperature + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuDryerZone1Temperature { + get { return euDryerZone1Temperature_; } + set { + euDryerZone1Temperature_ = value; + } + } + + /// <summary>Field number for the "EuDryerZone2Temperature" field.</summary> + public const int EuDryerZone2TemperatureFieldNumber = 108; + private double euDryerZone2Temperature_; + /// <summary> + ///Eureka Dryer Zone 2 Temperature + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuDryerZone2Temperature { + get { return euDryerZone2Temperature_; } + set { + euDryerZone2Temperature_ = value; + } + } + + /// <summary>Field number for the "EuDryerZone3Temperature" field.</summary> + public const int EuDryerZone3TemperatureFieldNumber = 109; + private double euDryerZone3Temperature_; + /// <summary> + ///Eureka Dryer Zone 3 Temperature + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuDryerZone3Temperature { + get { return euDryerZone3Temperature_; } + set { + euDryerZone3Temperature_ = value; + } + } + + /// <summary>Field number for the "EuHeadZone1Temperature" field.</summary> + public const int EuHeadZone1TemperatureFieldNumber = 110; + private double euHeadZone1Temperature_; + /// <summary> + ///Eureka Head Zone 1 Temperature + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuHeadZone1Temperature { + get { return euHeadZone1Temperature_; } + set { + euHeadZone1Temperature_ = value; + } + } + + /// <summary>Field number for the "EuHeadZone2Temperature" field.</summary> + public const int EuHeadZone2TemperatureFieldNumber = 111; + private double euHeadZone2Temperature_; + /// <summary> + ///Eureka Head Zone 2 Temperature + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuHeadZone2Temperature { + get { return euHeadZone2Temperature_; } + set { + euHeadZone2Temperature_ = value; + } + } + + /// <summary>Field number for the "EuHeadZone3Temperature" field.</summary> + public const int EuHeadZone3TemperatureFieldNumber = 112; + private double euHeadZone3Temperature_; + /// <summary> + ///Eureka Head Zone 3 Temperature + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuHeadZone3Temperature { + get { return euHeadZone3Temperature_; } + set { + euHeadZone3Temperature_ = value; + } + } + + /// <summary>Field number for the "EuMixerTemperature" field.</summary> + public const int EuMixerTemperatureFieldNumber = 113; + private double euMixerTemperature_; + /// <summary> + ///Eureka Mixer Temperature + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuMixerTemperature { + get { return euMixerTemperature_; } + set { + euMixerTemperature_ = value; + } + } + + /// <summary>Field number for the "EuTunnelTemperature" field.</summary> + public const int EuTunnelTemperatureFieldNumber = 114; + private double euTunnelTemperature_; + /// <summary> + ///Eureka Tunnel Temperature + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuTunnelTemperature { + get { return euTunnelTemperature_; } + set { + euTunnelTemperature_ = value; + } + } + + /// <summary>Field number for the "EuLubricantTemperature" field.</summary> + public const int EuLubricantTemperatureFieldNumber = 115; + private double euLubricantTemperature_; + /// <summary> + ///Eureka Lubricant Temperature + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuLubricantTemperature { + get { return euLubricantTemperature_; } + set { + euLubricantTemperature_ = value; + } + } + + /// <summary>Field number for the "EuAmbientTemperature" field.</summary> + public const int EuAmbientTemperatureFieldNumber = 116; + private double euAmbientTemperature_; + /// <summary> + ///Eureka Ambient Temperature + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuAmbientTemperature { + get { return euAmbientTemperature_; } + set { + euAmbientTemperature_ = value; + } + } + + /// <summary>Field number for the "EuElectricalCabinetTemperature" field.</summary> + public const int EuElectricalCabinetTemperatureFieldNumber = 117; + private double euElectricalCabinetTemperature_; + /// <summary> + ///Eureka Electrical Cabinet Temperature + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuElectricalCabinetTemperature { + get { return euElectricalCabinetTemperature_; } + set { + euElectricalCabinetTemperature_ = value; + } + } + + /// <summary>Field number for the "EuDryerZone1Current" field.</summary> + public const int EuDryerZone1CurrentFieldNumber = 118; + private double euDryerZone1Current_; + /// <summary> + ///Eureka Dryer Zone 1 Current + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuDryerZone1Current { + get { return euDryerZone1Current_; } + set { + euDryerZone1Current_ = value; + } + } + + /// <summary>Field number for the "EuDryerZone2Current" field.</summary> + public const int EuDryerZone2CurrentFieldNumber = 119; + private double euDryerZone2Current_; + /// <summary> + ///Eureka Dryer Zone 2 Current + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuDryerZone2Current { + get { return euDryerZone2Current_; } + set { + euDryerZone2Current_ = value; + } + } + + /// <summary>Field number for the "EuDryerZone3Current" field.</summary> + public const int EuDryerZone3CurrentFieldNumber = 120; + private double euDryerZone3Current_; + /// <summary> + ///Eureka Dryer Zone 3 Current + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuDryerZone3Current { + get { return euDryerZone3Current_; } + set { + euDryerZone3Current_ = value; + } + } + + /// <summary>Field number for the "EuHeadZone1Current" field.</summary> + public const int EuHeadZone1CurrentFieldNumber = 121; + private double euHeadZone1Current_; + /// <summary> + ///Eureka Head Zone 1 Current + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuHeadZone1Current { + get { return euHeadZone1Current_; } + set { + euHeadZone1Current_ = value; + } + } + + /// <summary>Field number for the "EuHeadZone2Current" field.</summary> + public const int EuHeadZone2CurrentFieldNumber = 122; + private double euHeadZone2Current_; + /// <summary> + ///Eureka Head Zone 2 Current + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuHeadZone2Current { + get { return euHeadZone2Current_; } + set { + euHeadZone2Current_ = value; + } + } + + /// <summary>Field number for the "EuHeadZone3Current" field.</summary> + public const int EuHeadZone3CurrentFieldNumber = 123; + private double euHeadZone3Current_; + /// <summary> + ///Eureka Head Zone 3 Current + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuHeadZone3Current { + get { return euHeadZone3Current_; } + set { + euHeadZone3Current_ = value; + } + } + + /// <summary>Field number for the "EuMixerCurrent" field.</summary> + public const int EuMixerCurrentFieldNumber = 124; + private double euMixerCurrent_; + /// <summary> + ///Eureka Mixer Current + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuMixerCurrent { + get { return euMixerCurrent_; } + set { + euMixerCurrent_ = value; + } + } + + /// <summary>Field number for the "EuTunnelCurrent" field.</summary> + public const int EuTunnelCurrentFieldNumber = 125; + private double euTunnelCurrent_; + /// <summary> + ///Eureka Tunnel Current + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuTunnelCurrent { + get { return euTunnelCurrent_; } + set { + euTunnelCurrent_ = value; + } + } + + /// <summary>Field number for the "EuLubricantCurrent" field.</summary> + public const int EuLubricantCurrentFieldNumber = 126; + private double euLubricantCurrent_; + /// <summary> + ///Eureka Lubricant Current + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuLubricantCurrent { + get { return euLubricantCurrent_; } + set { + euLubricantCurrent_ = value; + } + } + + /// <summary>Field number for the "EuBtsr1Speed" field.</summary> + public const int EuBtsr1SpeedFieldNumber = 127; + private double euBtsr1Speed_; + /// <summary> + ///Eureka BTSR 1 Speed + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuBtsr1Speed { + get { return euBtsr1Speed_; } + set { + euBtsr1Speed_ = value; + } + } + + /// <summary>Field number for the "EuBtsr1SpeedAv" field.</summary> + public const int EuBtsr1SpeedAvFieldNumber = 128; + private double euBtsr1SpeedAv_; + /// <summary> + ///Eureka BTSR 1 Speed Average + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuBtsr1SpeedAv { + get { return euBtsr1SpeedAv_; } + set { + euBtsr1SpeedAv_ = value; + } + } + + /// <summary>Field number for the "EuBtsr1DispAv" field.</summary> + public const int EuBtsr1DispAvFieldNumber = 129; + private double euBtsr1DispAv_; + /// <summary> + ///Eureka BTSR 1 Tension + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuBtsr1DispAv { + get { return euBtsr1DispAv_; } + set { + euBtsr1DispAv_ = value; + } + } + + /// <summary>Field number for the "EuBtsr1PeakMin" field.</summary> + public const int EuBtsr1PeakMinFieldNumber = 130; + private double euBtsr1PeakMin_; + /// <summary> + ///Eureka BTSR 1 Peak Min + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuBtsr1PeakMin { + get { return euBtsr1PeakMin_; } + set { + euBtsr1PeakMin_ = value; + } + } + + /// <summary>Field number for the "EuBtsr1PeakMax" field.</summary> + public const int EuBtsr1PeakMaxFieldNumber = 131; + private double euBtsr1PeakMax_; + /// <summary> + ///Eureka BTSR 1 Peak Max + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuBtsr1PeakMax { + get { return euBtsr1PeakMax_; } + set { + euBtsr1PeakMax_ = value; + } + } + + /// <summary>Field number for the "EuBtsr2Speed" field.</summary> + public const int EuBtsr2SpeedFieldNumber = 132; + private double euBtsr2Speed_; + /// <summary> + ///Eureka BTSR 2 Speed + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuBtsr2Speed { + get { return euBtsr2Speed_; } + set { + euBtsr2Speed_ = value; + } + } + + /// <summary>Field number for the "EuBtsr2SpeedAv" field.</summary> + public const int EuBtsr2SpeedAvFieldNumber = 133; + private double euBtsr2SpeedAv_; + /// <summary> + ///Eureka BTSR 2 Speed Average + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuBtsr2SpeedAv { + get { return euBtsr2SpeedAv_; } + set { + euBtsr2SpeedAv_ = value; + } + } + + /// <summary>Field number for the "EuBtsr2DispAv" field.</summary> + public const int EuBtsr2DispAvFieldNumber = 134; + private double euBtsr2DispAv_; + /// <summary> + ///Eureka BTSR 2 Tension + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuBtsr2DispAv { + get { return euBtsr2DispAv_; } + set { + euBtsr2DispAv_ = value; + } + } + + /// <summary>Field number for the "EuBtsr2PeakMin" field.</summary> + public const int EuBtsr2PeakMinFieldNumber = 135; + private double euBtsr2PeakMin_; + /// <summary> + ///Eureka BTSR 2 Peak Min + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuBtsr2PeakMin { + get { return euBtsr2PeakMin_; } + set { + euBtsr2PeakMin_ = value; + } + } + + /// <summary>Field number for the "EuBtsr2PeakMax" field.</summary> + public const int EuBtsr2PeakMaxFieldNumber = 136; + private double euBtsr2PeakMax_; + /// <summary> + ///Eureka BTSR 2 Peak Max + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuBtsr2PeakMax { + get { return euBtsr2PeakMax_; } + set { + euBtsr2PeakMax_ = value; + } + } + + /// <summary>Field number for the "EuBtsr3Speed" field.</summary> + public const int EuBtsr3SpeedFieldNumber = 137; + private double euBtsr3Speed_; + /// <summary> + ///Eureka BTSR 3 Speed + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuBtsr3Speed { + get { return euBtsr3Speed_; } + set { + euBtsr3Speed_ = value; + } + } + + /// <summary>Field number for the "EuBtsr3SpeedAv" field.</summary> + public const int EuBtsr3SpeedAvFieldNumber = 138; + private double euBtsr3SpeedAv_; + /// <summary> + ///Eureka BTSR 3 Speed Average + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuBtsr3SpeedAv { + get { return euBtsr3SpeedAv_; } + set { + euBtsr3SpeedAv_ = value; + } + } + + /// <summary>Field number for the "EuBtsr3DispAv" field.</summary> + public const int EuBtsr3DispAvFieldNumber = 139; + private double euBtsr3DispAv_; + /// <summary> + ///Eureka BTSR 3 Tension + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuBtsr3DispAv { + get { return euBtsr3DispAv_; } + set { + euBtsr3DispAv_ = value; + } + } + + /// <summary>Field number for the "EuBtsr3PeakMin" field.</summary> + public const int EuBtsr3PeakMinFieldNumber = 140; + private double euBtsr3PeakMin_; + /// <summary> + ///Eureka BTSR 3 Peak Min + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuBtsr3PeakMin { + get { return euBtsr3PeakMin_; } + set { + euBtsr3PeakMin_ = value; + } + } + + /// <summary>Field number for the "EuBtsr3PeakMax" field.</summary> + public const int EuBtsr3PeakMaxFieldNumber = 141; + private double euBtsr3PeakMax_; + /// <summary> + ///Eureka BTSR 3 Peak Max + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuBtsr3PeakMax { + get { return euBtsr3PeakMax_; } + set { + euBtsr3PeakMax_ = value; + } + } + + /// <summary>Field number for the "EuBtsr4Speed" field.</summary> + public const int EuBtsr4SpeedFieldNumber = 142; + private double euBtsr4Speed_; + /// <summary> + ///Eureka BTSR 4 Speed + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuBtsr4Speed { + get { return euBtsr4Speed_; } + set { + euBtsr4Speed_ = value; + } + } + + /// <summary>Field number for the "EuBtsr4SpeedAv" field.</summary> + public const int EuBtsr4SpeedAvFieldNumber = 143; + private double euBtsr4SpeedAv_; + /// <summary> + ///Eureka BTSR 4 Speed Average + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuBtsr4SpeedAv { + get { return euBtsr4SpeedAv_; } + set { + euBtsr4SpeedAv_ = value; + } + } + + /// <summary>Field number for the "EuBtsr4PeakMin" field.</summary> + public const int EuBtsr4PeakMinFieldNumber = 144; + private double euBtsr4PeakMin_; + /// <summary> + ///Eureka BTSR 4 Peak Min + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuBtsr4PeakMin { + get { return euBtsr4PeakMin_; } + set { + euBtsr4PeakMin_ = value; + } + } + + /// <summary>Field number for the "EuBtsr4PeakMax" field.</summary> + public const int EuBtsr4PeakMaxFieldNumber = 145; + private double euBtsr4PeakMax_; + /// <summary> + ///Eureka BTSR 4 Peak Max + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuBtsr4PeakMax { + get { return euBtsr4PeakMax_; } + set { + euBtsr4PeakMax_ = value; + } + } + + /// <summary>Field number for the "EuBtsr4DispAv" field.</summary> + public const int EuBtsr4DispAvFieldNumber = 146; + private double euBtsr4DispAv_; + /// <summary> + ///Eureka BTSR 4 Tension + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuBtsr4DispAv { + get { return euBtsr4DispAv_; } + set { + euBtsr4DispAv_ = value; + } + } + + /// <summary>Field number for the "EuTemperatureLoggers" field.</summary> + public const int EuTemperatureLoggersFieldNumber = 147; + private static readonly pb::FieldCodec<double> _repeated_euTemperatureLoggers_codec + = pb::FieldCodec.ForDouble(1178); + private readonly pbc::RepeatedField<double> euTemperatureLoggers_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Temperature Loggers + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuTemperatureLoggers { + get { return euTemperatureLoggers_; } + } + + /// <summary>Field number for the "EuPumpFlows" field.</summary> + public const int EuPumpFlowsFieldNumber = 148; + private static readonly pb::FieldCodec<double> _repeated_euPumpFlows_codec + = pb::FieldCodec.ForDouble(1186); + private readonly pbc::RepeatedField<double> euPumpFlows_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Pump Flows + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuPumpFlows { + get { return euPumpFlows_; } + } + + /// <summary>Field number for the "EuInkLinesPressure" field.</summary> + public const int EuInkLinesPressureFieldNumber = 149; + private static readonly pb::FieldCodec<double> _repeated_euInkLinesPressure_codec + = pb::FieldCodec.ForDouble(1194); + private readonly pbc::RepeatedField<double> euInkLinesPressure_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Ink Lines Pressure + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuInkLinesPressure { + get { return euInkLinesPressure_; } + } + + /// <summary>Field number for the "EuSpareDataArray" field.</summary> + public const int EuSpareDataArrayFieldNumber = 150; + private static readonly pb::FieldCodec<double> _repeated_euSpareDataArray_codec + = pb::FieldCodec.ForDouble(1202); + private readonly pbc::RepeatedField<double> euSpareDataArray_ = new pbc::RepeatedField<double>(); + /// <summary> + ///Eureka Spare Data Array + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<double> EuSpareDataArray { + get { return euSpareDataArray_; } + } + + /// <summary>Field number for the "EuDispenser1Voltage" field.</summary> + public const int EuDispenser1VoltageFieldNumber = 151; + private double euDispenser1Voltage_; + /// <summary> + ///Eureka Dispenser 1 Voltage + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuDispenser1Voltage { + get { return euDispenser1Voltage_; } + set { + euDispenser1Voltage_ = value; + } + } + + /// <summary>Field number for the "EuDispenser2Voltage" field.</summary> + public const int EuDispenser2VoltageFieldNumber = 152; + private double euDispenser2Voltage_; + /// <summary> + ///Eureka Dispenser 2 Voltage + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuDispenser2Voltage { + get { return euDispenser2Voltage_; } + set { + euDispenser2Voltage_ = value; + } + } + + /// <summary>Field number for the "EuDispenser3Voltage" field.</summary> + public const int EuDispenser3VoltageFieldNumber = 153; + private double euDispenser3Voltage_; + /// <summary> + ///Eureka Dispenser 3 Voltage + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuDispenser3Voltage { + get { return euDispenser3Voltage_; } + set { + euDispenser3Voltage_ = value; + } + } + + /// <summary>Field number for the "EuDispenser4Voltage" field.</summary> + public const int EuDispenser4VoltageFieldNumber = 154; + private double euDispenser4Voltage_; + /// <summary> + ///Eureka Dispenser 4 Voltage + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuDispenser4Voltage { + get { return euDispenser4Voltage_; } + set { + euDispenser4Voltage_ = value; + } + } + + /// <summary>Field number for the "EuDispenser5Voltage" field.</summary> + public const int EuDispenser5VoltageFieldNumber = 155; + private double euDispenser5Voltage_; + /// <summary> + ///Eureka Dispenser 5 Voltage + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuDispenser5Voltage { + get { return euDispenser5Voltage_; } + set { + euDispenser5Voltage_ = value; + } + } + + /// <summary>Field number for the "EuDispenser6Voltage" field.</summary> + public const int EuDispenser6VoltageFieldNumber = 156; + private double euDispenser6Voltage_; + /// <summary> + ///Eureka Dispenser 6 Voltage + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuDispenser6Voltage { + get { return euDispenser6Voltage_; } + set { + euDispenser6Voltage_ = value; + } + } + + /// <summary>Field number for the "EuDispenser7Voltage" field.</summary> + public const int EuDispenser7VoltageFieldNumber = 157; + private double euDispenser7Voltage_; + /// <summary> + ///Eureka Dispenser 7 Voltage + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuDispenser7Voltage { + get { return euDispenser7Voltage_; } + set { + euDispenser7Voltage_ = value; + } + } + + /// <summary>Field number for the "EuDispenser8Voltage" field.</summary> + public const int EuDispenser8VoltageFieldNumber = 158; + private double euDispenser8Voltage_; + /// <summary> + ///Eureka Dispenser 8 Voltage + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuDispenser8Voltage { + get { return euDispenser8Voltage_; } + set { + euDispenser8Voltage_ = value; + } + } + + /// <summary>Field number for the "EuDispenser9Voltage" field.</summary> + public const int EuDispenser9VoltageFieldNumber = 159; + private double euDispenser9Voltage_; + /// <summary> + ///Eureka Dispenser 9 Voltage + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuDispenser9Voltage { + get { return euDispenser9Voltage_; } + set { + euDispenser9Voltage_ = value; + } + } + + /// <summary>Field number for the "EuDispenser10Voltage" field.</summary> + public const int EuDispenser10VoltageFieldNumber = 160; + private double euDispenser10Voltage_; + /// <summary> + ///Eureka Dispenser 10 Voltage + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuDispenser10Voltage { + get { return euDispenser10Voltage_; } + set { + euDispenser10Voltage_ = value; + } + } + + /// <summary>Field number for the "EuDispenser11Voltage" field.</summary> + public const int EuDispenser11VoltageFieldNumber = 161; + private double euDispenser11Voltage_; + /// <summary> + ///Eureka Dispenser 11 Voltage + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuDispenser11Voltage { + get { return euDispenser11Voltage_; } + set { + euDispenser11Voltage_ = value; + } + } + + /// <summary>Field number for the "EuDispenser12Voltage" field.</summary> + public const int EuDispenser12VoltageFieldNumber = 162; + private double euDispenser12Voltage_; + /// <summary> + ///Eureka Dispenser 12 Voltage + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuDispenser12Voltage { + get { return euDispenser12Voltage_; } + set { + euDispenser12Voltage_ = value; + } + } + + /// <summary>Field number for the "EuDispenser13Voltage" field.</summary> + public const int EuDispenser13VoltageFieldNumber = 163; + private double euDispenser13Voltage_; + /// <summary> + ///Eureka Dispenser 13 Voltage + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuDispenser13Voltage { + get { return euDispenser13Voltage_; } + set { + euDispenser13Voltage_ = value; + } + } + + /// <summary>Field number for the "EuDispenser14Voltage" field.</summary> + public const int EuDispenser14VoltageFieldNumber = 164; + private double euDispenser14Voltage_; + /// <summary> + ///Eureka Dispenser 14 Voltage + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuDispenser14Voltage { + get { return euDispenser14Voltage_; } + set { + euDispenser14Voltage_ = value; + } + } + + /// <summary>Field number for the "EuDispenser15Voltage" field.</summary> + public const int EuDispenser15VoltageFieldNumber = 165; + private double euDispenser15Voltage_; + /// <summary> + ///Eureka Dispenser 15 Voltage + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuDispenser15Voltage { + get { return euDispenser15Voltage_; } + set { + euDispenser15Voltage_ = value; + } + } + + /// <summary>Field number for the "EuDispenser16Voltage" field.</summary> + public const int EuDispenser16VoltageFieldNumber = 166; + private double euDispenser16Voltage_; + /// <summary> + ///Eureka Dispenser 16 Voltage + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuDispenser16Voltage { + get { return euDispenser16Voltage_; } + set { + euDispenser16Voltage_ = value; + } + } + + /// <summary>Field number for the "EuLubricantPumpVoltage" field.</summary> + public const int EuLubricantPumpVoltageFieldNumber = 167; + private double euLubricantPumpVoltage_; + /// <summary> + ///Eureka Lubricant Pump Voltage + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuLubricantPumpVoltage { + get { return euLubricantPumpVoltage_; } + set { + euLubricantPumpVoltage_ = value; + } + } + + /// <summary>Field number for the "EuDispenser1Pressure" field.</summary> + public const int EuDispenser1PressureFieldNumber = 168; + private double euDispenser1Pressure_; + /// <summary> + ///Eureka Dispenser 1 Pressure + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuDispenser1Pressure { + get { return euDispenser1Pressure_; } + set { + euDispenser1Pressure_ = value; + } + } + + /// <summary>Field number for the "EuDispenser2Pressure" field.</summary> + public const int EuDispenser2PressureFieldNumber = 169; + private double euDispenser2Pressure_; + /// <summary> + ///Eureka Dispenser 2 Pressure + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuDispenser2Pressure { + get { return euDispenser2Pressure_; } + set { + euDispenser2Pressure_ = value; + } + } + + /// <summary>Field number for the "EuDispenser3Pressure" field.</summary> + public const int EuDispenser3PressureFieldNumber = 170; + private double euDispenser3Pressure_; + /// <summary> + ///Eureka Dispenser 3 Pressure + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuDispenser3Pressure { + get { return euDispenser3Pressure_; } + set { + euDispenser3Pressure_ = value; + } + } + + /// <summary>Field number for the "EuDispenser4Pressure" field.</summary> + public const int EuDispenser4PressureFieldNumber = 171; + private double euDispenser4Pressure_; + /// <summary> + ///Eureka Dispenser 4 Pressure + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuDispenser4Pressure { + get { return euDispenser4Pressure_; } + set { + euDispenser4Pressure_ = value; + } + } + + /// <summary>Field number for the "EuDispenser5Pressure" field.</summary> + public const int EuDispenser5PressureFieldNumber = 172; + private double euDispenser5Pressure_; + /// <summary> + ///Eureka Dispenser 5 Pressure + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuDispenser5Pressure { + get { return euDispenser5Pressure_; } + set { + euDispenser5Pressure_ = value; + } + } + + /// <summary>Field number for the "EuDispenser6Pressure" field.</summary> + public const int EuDispenser6PressureFieldNumber = 173; + private double euDispenser6Pressure_; + /// <summary> + ///Eureka Dispenser 6 Pressure + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuDispenser6Pressure { + get { return euDispenser6Pressure_; } + set { + euDispenser6Pressure_ = value; + } + } + + /// <summary>Field number for the "EuDispenser7Pressure" field.</summary> + public const int EuDispenser7PressureFieldNumber = 174; + private double euDispenser7Pressure_; + /// <summary> + ///Eureka Dispenser 7 Pressure + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuDispenser7Pressure { + get { return euDispenser7Pressure_; } + set { + euDispenser7Pressure_ = value; + } + } + + /// <summary>Field number for the "EuDispenser8Pressure" field.</summary> + public const int EuDispenser8PressureFieldNumber = 175; + private double euDispenser8Pressure_; + /// <summary> + ///Eureka Dispenser 8 Pressure + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuDispenser8Pressure { + get { return euDispenser8Pressure_; } + set { + euDispenser8Pressure_ = value; + } + } + + /// <summary>Field number for the "EuLubricantPressure" field.</summary> + public const int EuLubricantPressureFieldNumber = 176; + private double euLubricantPressure_; + /// <summary> + ///Eureka Lubricant Pressure + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuLubricantPressure { + get { return euLubricantPressure_; } + set { + euLubricantPressure_ = value; + } + } + + /// <summary>Field number for the "EuMidTank1Level" field.</summary> + public const int EuMidTank1LevelFieldNumber = 177; + private double euMidTank1Level_; + /// <summary> + ///Eureka Mid Tank 1 Level + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuMidTank1Level { + get { return euMidTank1Level_; } + set { + euMidTank1Level_ = value; + } + } + + /// <summary>Field number for the "EuMidTank2Level" field.</summary> + public const int EuMidTank2LevelFieldNumber = 178; + private double euMidTank2Level_; + /// <summary> + ///Eureka Mid Tank 2 Level + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuMidTank2Level { + get { return euMidTank2Level_; } + set { + euMidTank2Level_ = value; + } + } + + /// <summary>Field number for the "EuMidTank3Level" field.</summary> + public const int EuMidTank3LevelFieldNumber = 179; + private double euMidTank3Level_; + /// <summary> + ///Eureka Mid Tank 3 Level + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuMidTank3Level { + get { return euMidTank3Level_; } + set { + euMidTank3Level_ = value; + } + } + + /// <summary>Field number for the "EuMidTank4Level" field.</summary> + public const int EuMidTank4LevelFieldNumber = 180; + private double euMidTank4Level_; + /// <summary> + ///Eureka Mid Tank 4 Level + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuMidTank4Level { + get { return euMidTank4Level_; } + set { + euMidTank4Level_ = value; + } + } + + /// <summary>Field number for the "EuMidTank5Level" field.</summary> + public const int EuMidTank5LevelFieldNumber = 181; + private double euMidTank5Level_; + /// <summary> + ///Eureka Mid Tank 5 Level + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuMidTank5Level { + get { return euMidTank5Level_; } + set { + euMidTank5Level_ = value; + } + } + + /// <summary>Field number for the "EuMidTank6Level" field.</summary> + public const int EuMidTank6LevelFieldNumber = 182; + private double euMidTank6Level_; + /// <summary> + ///Eureka Mid Tank 6 Level + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuMidTank6Level { + get { return euMidTank6Level_; } + set { + euMidTank6Level_ = value; + } + } + + /// <summary>Field number for the "EuMidTank7Level" field.</summary> + public const int EuMidTank7LevelFieldNumber = 183; + private double euMidTank7Level_; + /// <summary> + ///Eureka Mid Tank 7 Level + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuMidTank7Level { + get { return euMidTank7Level_; } + set { + euMidTank7Level_ = value; + } + } + + /// <summary>Field number for the "EuMidTank8Level" field.</summary> + public const int EuMidTank8LevelFieldNumber = 184; + private double euMidTank8Level_; + /// <summary> + ///Eureka Mid Tank 8 Level + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuMidTank8Level { + get { return euMidTank8Level_; } + set { + euMidTank8Level_ = value; + } + } + + /// <summary>Field number for the "EuChillerTemperature" field.</summary> + public const int EuChillerTemperatureFieldNumber = 185; + private double euChillerTemperature_; + /// <summary> + ///Eureka Chiller Temperature + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuChillerTemperature { + get { return euChillerTemperature_; } + set { + euChillerTemperature_ = value; + } + } + + /// <summary>Field number for the "EuHeadRightAirFlow" field.</summary> + public const int EuHeadRightAirFlowFieldNumber = 186; + private double euHeadRightAirFlow_; + /// <summary> + ///Eureka Head Right Air Flow + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuHeadRightAirFlow { + get { return euHeadRightAirFlow_; } + set { + euHeadRightAirFlow_ = value; + } + } + + /// <summary>Field number for the "EuHeadLeftAirFlow" field.</summary> + public const int EuHeadLeftAirFlowFieldNumber = 187; + private double euHeadLeftAirFlow_; + /// <summary> + ///Eureka Head Left Air Flow + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuHeadLeftAirFlow { + get { return euHeadLeftAirFlow_; } + set { + euHeadLeftAirFlow_ = value; + } + } + + /// <summary>Field number for the "EuHeadRightVoltage" field.</summary> + public const int EuHeadRightVoltageFieldNumber = 188; + private double euHeadRightVoltage_; + /// <summary> + ///Eureka Head Right Voltage + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuHeadRightVoltage { + get { return euHeadRightVoltage_; } + set { + euHeadRightVoltage_ = value; + } + } + + /// <summary>Field number for the "EuHeadLeftVoltage" field.</summary> + public const int EuHeadLeftVoltageFieldNumber = 189; + private double euHeadLeftVoltage_; + /// <summary> + ///Eureka Head Left Voltage + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuHeadLeftVoltage { + get { return euHeadLeftVoltage_; } + set { + euHeadLeftVoltage_ = value; + } + } + + /// <summary>Field number for the "EuDryerAirFlow" field.</summary> + public const int EuDryerAirFlowFieldNumber = 190; + private double euDryerAirFlow_; + /// <summary> + ///Eureka Dryer Air Flow + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuDryerAirFlow { + get { return euDryerAirFlow_; } + set { + euDryerAirFlow_ = value; + } + } + + /// <summary>Field number for the "EuBlowerVoltage" field.</summary> + public const int EuBlowerVoltageFieldNumber = 191; + private double euBlowerVoltage_; + /// <summary> + ///Eureka Blower Voltage + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuBlowerVoltage { + get { return euBlowerVoltage_; } + set { + euBlowerVoltage_ = value; + } + } + + /// <summary>Field number for the "EuWasteLevel" field.</summary> + public const int EuWasteLevelFieldNumber = 192; + private double euWasteLevel_; + /// <summary> + ///Eureka Waste Level + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuWasteLevel { + get { return euWasteLevel_; } + set { + euWasteLevel_ = value; + } + } + + /// <summary>Field number for the "EuSpare1" field.</summary> + public const int EuSpare1FieldNumber = 193; + private double euSpare1_; + /// <summary> + ///Eureka Spare 1 + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuSpare1 { + get { return euSpare1_; } + set { + euSpare1_ = value; + } + } + + /// <summary>Field number for the "EuSpare2" field.</summary> + public const int EuSpare2FieldNumber = 194; + private double euSpare2_; + /// <summary> + ///Eureka Spare 2 + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuSpare2 { + get { return euSpare2_; } + set { + euSpare2_ = value; + } + } + + /// <summary>Field number for the "EuSpare3" field.</summary> + public const int EuSpare3FieldNumber = 195; + private double euSpare3_; + /// <summary> + ///Eureka Spare 3 + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuSpare3 { + get { return euSpare3_; } + set { + euSpare3_ = value; + } + } + + /// <summary>Field number for the "EuSpare4" field.</summary> + public const int EuSpare4FieldNumber = 196; + private double euSpare4_; + /// <summary> + ///Eureka Spare 4 + /// </summary> + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EuSpare4 { + get { return euSpare4_; } + set { + euSpare4_ = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { return Equals(other as InsightsMonitors); @@ -1619,6 +3223,109 @@ namespace Tango.PMR.Insights { if (ShinkoSetValue != other.ShinkoSetValue) return false; if (ShinkoCurrentValue != other.ShinkoCurrentValue) return false; if (TotalWHSFlow != other.TotalWHSFlow) return false; + if (EuWinder1Dancer != other.EuWinder1Dancer) return false; + if (EuWinder2Dancer != other.EuWinder2Dancer) return false; + if (EuWinder3Dancer != other.EuWinder3Dancer) return false; + if (EuWinder4Dancer != other.EuWinder4Dancer) return false; + if (EuWinder1Motor != other.EuWinder1Motor) return false; + if (EuWinder2Motor != other.EuWinder2Motor) return false; + if (EuWinder3Motor != other.EuWinder3Motor) return false; + if (EuWinder4Motor != other.EuWinder4Motor) return false; + if (EuDryerMotorVelocity != other.EuDryerMotorVelocity) return false; + if (EuDryerMotorTargetVelocity != other.EuDryerMotorTargetVelocity) return false; + if (EuDryerMotorCurrent != other.EuDryerMotorCurrent) return false; + if (EuPullerDancer != other.EuPullerDancer) return false; + if (EuPullerMotor != other.EuPullerMotor) return false; + if (EuDryerZone1Temperature != other.EuDryerZone1Temperature) return false; + if (EuDryerZone2Temperature != other.EuDryerZone2Temperature) return false; + if (EuDryerZone3Temperature != other.EuDryerZone3Temperature) return false; + if (EuHeadZone1Temperature != other.EuHeadZone1Temperature) return false; + if (EuHeadZone2Temperature != other.EuHeadZone2Temperature) return false; + if (EuHeadZone3Temperature != other.EuHeadZone3Temperature) return false; + if (EuMixerTemperature != other.EuMixerTemperature) return false; + if (EuTunnelTemperature != other.EuTunnelTemperature) return false; + if (EuLubricantTemperature != other.EuLubricantTemperature) return false; + if (EuAmbientTemperature != other.EuAmbientTemperature) return false; + if (EuElectricalCabinetTemperature != other.EuElectricalCabinetTemperature) return false; + if (EuDryerZone1Current != other.EuDryerZone1Current) return false; + if (EuDryerZone2Current != other.EuDryerZone2Current) return false; + if (EuDryerZone3Current != other.EuDryerZone3Current) return false; + if (EuHeadZone1Current != other.EuHeadZone1Current) return false; + if (EuHeadZone2Current != other.EuHeadZone2Current) return false; + if (EuHeadZone3Current != other.EuHeadZone3Current) return false; + if (EuMixerCurrent != other.EuMixerCurrent) return false; + if (EuTunnelCurrent != other.EuTunnelCurrent) return false; + if (EuLubricantCurrent != other.EuLubricantCurrent) return false; + if (EuBtsr1Speed != other.EuBtsr1Speed) return false; + if (EuBtsr1SpeedAv != other.EuBtsr1SpeedAv) return false; + if (EuBtsr1DispAv != other.EuBtsr1DispAv) return false; + if (EuBtsr1PeakMin != other.EuBtsr1PeakMin) return false; + if (EuBtsr1PeakMax != other.EuBtsr1PeakMax) return false; + if (EuBtsr2Speed != other.EuBtsr2Speed) return false; + if (EuBtsr2SpeedAv != other.EuBtsr2SpeedAv) return false; + if (EuBtsr2DispAv != other.EuBtsr2DispAv) return false; + if (EuBtsr2PeakMin != other.EuBtsr2PeakMin) return false; + if (EuBtsr2PeakMax != other.EuBtsr2PeakMax) return false; + if (EuBtsr3Speed != other.EuBtsr3Speed) return false; + if (EuBtsr3SpeedAv != other.EuBtsr3SpeedAv) return false; + if (EuBtsr3DispAv != other.EuBtsr3DispAv) return false; + if (EuBtsr3PeakMin != other.EuBtsr3PeakMin) return false; + if (EuBtsr3PeakMax != other.EuBtsr3PeakMax) return false; + if (EuBtsr4Speed != other.EuBtsr4Speed) return false; + if (EuBtsr4SpeedAv != other.EuBtsr4SpeedAv) return false; + if (EuBtsr4PeakMin != other.EuBtsr4PeakMin) return false; + if (EuBtsr4PeakMax != other.EuBtsr4PeakMax) return false; + if (EuBtsr4DispAv != other.EuBtsr4DispAv) return false; + if(!euTemperatureLoggers_.Equals(other.euTemperatureLoggers_)) return false; + if(!euPumpFlows_.Equals(other.euPumpFlows_)) return false; + if(!euInkLinesPressure_.Equals(other.euInkLinesPressure_)) return false; + if(!euSpareDataArray_.Equals(other.euSpareDataArray_)) return false; + if (EuDispenser1Voltage != other.EuDispenser1Voltage) return false; + if (EuDispenser2Voltage != other.EuDispenser2Voltage) return false; + if (EuDispenser3Voltage != other.EuDispenser3Voltage) return false; + if (EuDispenser4Voltage != other.EuDispenser4Voltage) return false; + if (EuDispenser5Voltage != other.EuDispenser5Voltage) return false; + if (EuDispenser6Voltage != other.EuDispenser6Voltage) return false; + if (EuDispenser7Voltage != other.EuDispenser7Voltage) return false; + if (EuDispenser8Voltage != other.EuDispenser8Voltage) return false; + if (EuDispenser9Voltage != other.EuDispenser9Voltage) return false; + if (EuDispenser10Voltage != other.EuDispenser10Voltage) return false; + if (EuDispenser11Voltage != other.EuDispenser11Voltage) return false; + if (EuDispenser12Voltage != other.EuDispenser12Voltage) return false; + if (EuDispenser13Voltage != other.EuDispenser13Voltage) return false; + if (EuDispenser14Voltage != other.EuDispenser14Voltage) return false; + if (EuDispenser15Voltage != other.EuDispenser15Voltage) return false; + if (EuDispenser16Voltage != other.EuDispenser16Voltage) return false; + if (EuLubricantPumpVoltage != other.EuLubricantPumpVoltage) return false; + if (EuDispenser1Pressure != other.EuDispenser1Pressure) return false; + if (EuDispenser2Pressure != other.EuDispenser2Pressure) return false; + if (EuDispenser3Pressure != other.EuDispenser3Pressure) return false; + if (EuDispenser4Pressure != other.EuDispenser4Pressure) return false; + if (EuDispenser5Pressure != other.EuDispenser5Pressure) return false; + if (EuDispenser6Pressure != other.EuDispenser6Pressure) return false; + if (EuDispenser7Pressure != other.EuDispenser7Pressure) return false; + if (EuDispenser8Pressure != other.EuDispenser8Pressure) return false; + if (EuLubricantPressure != other.EuLubricantPressure) return false; + if (EuMidTank1Level != other.EuMidTank1Level) return false; + if (EuMidTank2Level != other.EuMidTank2Level) return false; + if (EuMidTank3Level != other.EuMidTank3Level) return false; + if (EuMidTank4Level != other.EuMidTank4Level) return false; + if (EuMidTank5Level != other.EuMidTank5Level) return false; + if (EuMidTank6Level != other.EuMidTank6Level) return false; + if (EuMidTank7Level != other.EuMidTank7Level) return false; + if (EuMidTank8Level != other.EuMidTank8Level) return false; + if (EuChillerTemperature != other.EuChillerTemperature) return false; + if (EuHeadRightAirFlow != other.EuHeadRightAirFlow) return false; + if (EuHeadLeftAirFlow != other.EuHeadLeftAirFlow) return false; + if (EuHeadRightVoltage != other.EuHeadRightVoltage) return false; + if (EuHeadLeftVoltage != other.EuHeadLeftVoltage) return false; + if (EuDryerAirFlow != other.EuDryerAirFlow) return false; + if (EuBlowerVoltage != other.EuBlowerVoltage) return false; + if (EuWasteLevel != other.EuWasteLevel) return false; + if (EuSpare1 != other.EuSpare1) return false; + if (EuSpare2 != other.EuSpare2) return false; + if (EuSpare3 != other.EuSpare3) return false; + if (EuSpare4 != other.EuSpare4) return false; return true; } @@ -1718,6 +3425,109 @@ namespace Tango.PMR.Insights { if (ShinkoSetValue != 0D) hash ^= ShinkoSetValue.GetHashCode(); if (ShinkoCurrentValue != 0D) hash ^= ShinkoCurrentValue.GetHashCode(); if (TotalWHSFlow != 0D) hash ^= TotalWHSFlow.GetHashCode(); + if (EuWinder1Dancer != 0D) hash ^= EuWinder1Dancer.GetHashCode(); + if (EuWinder2Dancer != 0D) hash ^= EuWinder2Dancer.GetHashCode(); + if (EuWinder3Dancer != 0D) hash ^= EuWinder3Dancer.GetHashCode(); + if (EuWinder4Dancer != 0D) hash ^= EuWinder4Dancer.GetHashCode(); + if (EuWinder1Motor != 0D) hash ^= EuWinder1Motor.GetHashCode(); + if (EuWinder2Motor != 0D) hash ^= EuWinder2Motor.GetHashCode(); + if (EuWinder3Motor != 0D) hash ^= EuWinder3Motor.GetHashCode(); + if (EuWinder4Motor != 0D) hash ^= EuWinder4Motor.GetHashCode(); + if (EuDryerMotorVelocity != 0D) hash ^= EuDryerMotorVelocity.GetHashCode(); + if (EuDryerMotorTargetVelocity != 0D) hash ^= EuDryerMotorTargetVelocity.GetHashCode(); + if (EuDryerMotorCurrent != 0D) hash ^= EuDryerMotorCurrent.GetHashCode(); + if (EuPullerDancer != 0D) hash ^= EuPullerDancer.GetHashCode(); + if (EuPullerMotor != 0D) hash ^= EuPullerMotor.GetHashCode(); + if (EuDryerZone1Temperature != 0D) hash ^= EuDryerZone1Temperature.GetHashCode(); + if (EuDryerZone2Temperature != 0D) hash ^= EuDryerZone2Temperature.GetHashCode(); + if (EuDryerZone3Temperature != 0D) hash ^= EuDryerZone3Temperature.GetHashCode(); + if (EuHeadZone1Temperature != 0D) hash ^= EuHeadZone1Temperature.GetHashCode(); + if (EuHeadZone2Temperature != 0D) hash ^= EuHeadZone2Temperature.GetHashCode(); + if (EuHeadZone3Temperature != 0D) hash ^= EuHeadZone3Temperature.GetHashCode(); + if (EuMixerTemperature != 0D) hash ^= EuMixerTemperature.GetHashCode(); + if (EuTunnelTemperature != 0D) hash ^= EuTunnelTemperature.GetHashCode(); + if (EuLubricantTemperature != 0D) hash ^= EuLubricantTemperature.GetHashCode(); + if (EuAmbientTemperature != 0D) hash ^= EuAmbientTemperature.GetHashCode(); + if (EuElectricalCabinetTemperature != 0D) hash ^= EuElectricalCabinetTemperature.GetHashCode(); + if (EuDryerZone1Current != 0D) hash ^= EuDryerZone1Current.GetHashCode(); + if (EuDryerZone2Current != 0D) hash ^= EuDryerZone2Current.GetHashCode(); + if (EuDryerZone3Current != 0D) hash ^= EuDryerZone3Current.GetHashCode(); + if (EuHeadZone1Current != 0D) hash ^= EuHeadZone1Current.GetHashCode(); + if (EuHeadZone2Current != 0D) hash ^= EuHeadZone2Current.GetHashCode(); + if (EuHeadZone3Current != 0D) hash ^= EuHeadZone3Current.GetHashCode(); + if (EuMixerCurrent != 0D) hash ^= EuMixerCurrent.GetHashCode(); + if (EuTunnelCurrent != 0D) hash ^= EuTunnelCurrent.GetHashCode(); + if (EuLubricantCurrent != 0D) hash ^= EuLubricantCurrent.GetHashCode(); + if (EuBtsr1Speed != 0D) hash ^= EuBtsr1Speed.GetHashCode(); + if (EuBtsr1SpeedAv != 0D) hash ^= EuBtsr1SpeedAv.GetHashCode(); + if (EuBtsr1DispAv != 0D) hash ^= EuBtsr1DispAv.GetHashCode(); + if (EuBtsr1PeakMin != 0D) hash ^= EuBtsr1PeakMin.GetHashCode(); + if (EuBtsr1PeakMax != 0D) hash ^= EuBtsr1PeakMax.GetHashCode(); + if (EuBtsr2Speed != 0D) hash ^= EuBtsr2Speed.GetHashCode(); + if (EuBtsr2SpeedAv != 0D) hash ^= EuBtsr2SpeedAv.GetHashCode(); + if (EuBtsr2DispAv != 0D) hash ^= EuBtsr2DispAv.GetHashCode(); + if (EuBtsr2PeakMin != 0D) hash ^= EuBtsr2PeakMin.GetHashCode(); + if (EuBtsr2PeakMax != 0D) hash ^= EuBtsr2PeakMax.GetHashCode(); + if (EuBtsr3Speed != 0D) hash ^= EuBtsr3Speed.GetHashCode(); + if (EuBtsr3SpeedAv != 0D) hash ^= EuBtsr3SpeedAv.GetHashCode(); + if (EuBtsr3DispAv != 0D) hash ^= EuBtsr3DispAv.GetHashCode(); + if (EuBtsr3PeakMin != 0D) hash ^= EuBtsr3PeakMin.GetHashCode(); + if (EuBtsr3PeakMax != 0D) hash ^= EuBtsr3PeakMax.GetHashCode(); + if (EuBtsr4Speed != 0D) hash ^= EuBtsr4Speed.GetHashCode(); + if (EuBtsr4SpeedAv != 0D) hash ^= EuBtsr4SpeedAv.GetHashCode(); + if (EuBtsr4PeakMin != 0D) hash ^= EuBtsr4PeakMin.GetHashCode(); + if (EuBtsr4PeakMax != 0D) hash ^= EuBtsr4PeakMax.GetHashCode(); + if (EuBtsr4DispAv != 0D) hash ^= EuBtsr4DispAv.GetHashCode(); + hash ^= euTemperatureLoggers_.GetHashCode(); + hash ^= euPumpFlows_.GetHashCode(); + hash ^= euInkLinesPressure_.GetHashCode(); + hash ^= euSpareDataArray_.GetHashCode(); + if (EuDispenser1Voltage != 0D) hash ^= EuDispenser1Voltage.GetHashCode(); + if (EuDispenser2Voltage != 0D) hash ^= EuDispenser2Voltage.GetHashCode(); + if (EuDispenser3Voltage != 0D) hash ^= EuDispenser3Voltage.GetHashCode(); + if (EuDispenser4Voltage != 0D) hash ^= EuDispenser4Voltage.GetHashCode(); + if (EuDispenser5Voltage != 0D) hash ^= EuDispenser5Voltage.GetHashCode(); + if (EuDispenser6Voltage != 0D) hash ^= EuDispenser6Voltage.GetHashCode(); + if (EuDispenser7Voltage != 0D) hash ^= EuDispenser7Voltage.GetHashCode(); + if (EuDispenser8Voltage != 0D) hash ^= EuDispenser8Voltage.GetHashCode(); + if (EuDispenser9Voltage != 0D) hash ^= EuDispenser9Voltage.GetHashCode(); + if (EuDispenser10Voltage != 0D) hash ^= EuDispenser10Voltage.GetHashCode(); + if (EuDispenser11Voltage != 0D) hash ^= EuDispenser11Voltage.GetHashCode(); + if (EuDispenser12Voltage != 0D) hash ^= EuDispenser12Voltage.GetHashCode(); + if (EuDispenser13Voltage != 0D) hash ^= EuDispenser13Voltage.GetHashCode(); + if (EuDispenser14Voltage != 0D) hash ^= EuDispenser14Voltage.GetHashCode(); + if (EuDispenser15Voltage != 0D) hash ^= EuDispenser15Voltage.GetHashCode(); + if (EuDispenser16Voltage != 0D) hash ^= EuDispenser16Voltage.GetHashCode(); + if (EuLubricantPumpVoltage != 0D) hash ^= EuLubricantPumpVoltage.GetHashCode(); + if (EuDispenser1Pressure != 0D) hash ^= EuDispenser1Pressure.GetHashCode(); + if (EuDispenser2Pressure != 0D) hash ^= EuDispenser2Pressure.GetHashCode(); + if (EuDispenser3Pressure != 0D) hash ^= EuDispenser3Pressure.GetHashCode(); + if (EuDispenser4Pressure != 0D) hash ^= EuDispenser4Pressure.GetHashCode(); + if (EuDispenser5Pressure != 0D) hash ^= EuDispenser5Pressure.GetHashCode(); + if (EuDispenser6Pressure != 0D) hash ^= EuDispenser6Pressure.GetHashCode(); + if (EuDispenser7Pressure != 0D) hash ^= EuDispenser7Pressure.GetHashCode(); + if (EuDispenser8Pressure != 0D) hash ^= EuDispenser8Pressure.GetHashCode(); + if (EuLubricantPressure != 0D) hash ^= EuLubricantPressure.GetHashCode(); + if (EuMidTank1Level != 0D) hash ^= EuMidTank1Level.GetHashCode(); + if (EuMidTank2Level != 0D) hash ^= EuMidTank2Level.GetHashCode(); + if (EuMidTank3Level != 0D) hash ^= EuMidTank3Level.GetHashCode(); + if (EuMidTank4Level != 0D) hash ^= EuMidTank4Level.GetHashCode(); + if (EuMidTank5Level != 0D) hash ^= EuMidTank5Level.GetHashCode(); + if (EuMidTank6Level != 0D) hash ^= EuMidTank6Level.GetHashCode(); + if (EuMidTank7Level != 0D) hash ^= EuMidTank7Level.GetHashCode(); + if (EuMidTank8Level != 0D) hash ^= EuMidTank8Level.GetHashCode(); + if (EuChillerTemperature != 0D) hash ^= EuChillerTemperature.GetHashCode(); + if (EuHeadRightAirFlow != 0D) hash ^= EuHeadRightAirFlow.GetHashCode(); + if (EuHeadLeftAirFlow != 0D) hash ^= EuHeadLeftAirFlow.GetHashCode(); + if (EuHeadRightVoltage != 0D) hash ^= EuHeadRightVoltage.GetHashCode(); + if (EuHeadLeftVoltage != 0D) hash ^= EuHeadLeftVoltage.GetHashCode(); + if (EuDryerAirFlow != 0D) hash ^= EuDryerAirFlow.GetHashCode(); + if (EuBlowerVoltage != 0D) hash ^= EuBlowerVoltage.GetHashCode(); + if (EuWasteLevel != 0D) hash ^= EuWasteLevel.GetHashCode(); + if (EuSpare1 != 0D) hash ^= EuSpare1.GetHashCode(); + if (EuSpare2 != 0D) hash ^= EuSpare2.GetHashCode(); + if (EuSpare3 != 0D) hash ^= EuSpare3.GetHashCode(); + if (EuSpare4 != 0D) hash ^= EuSpare4.GetHashCode(); return hash; } @@ -2082,6 +3892,406 @@ namespace Tango.PMR.Insights { output.WriteRawTag(233, 5); output.WriteDouble(TotalWHSFlow); } + if (EuWinder1Dancer != 0D) { + output.WriteRawTag(241, 5); + output.WriteDouble(EuWinder1Dancer); + } + if (EuWinder2Dancer != 0D) { + output.WriteRawTag(249, 5); + output.WriteDouble(EuWinder2Dancer); + } + if (EuWinder3Dancer != 0D) { + output.WriteRawTag(129, 6); + output.WriteDouble(EuWinder3Dancer); + } + if (EuWinder4Dancer != 0D) { + output.WriteRawTag(137, 6); + output.WriteDouble(EuWinder4Dancer); + } + if (EuWinder1Motor != 0D) { + output.WriteRawTag(145, 6); + output.WriteDouble(EuWinder1Motor); + } + if (EuWinder2Motor != 0D) { + output.WriteRawTag(153, 6); + output.WriteDouble(EuWinder2Motor); + } + if (EuWinder3Motor != 0D) { + output.WriteRawTag(161, 6); + output.WriteDouble(EuWinder3Motor); + } + if (EuWinder4Motor != 0D) { + output.WriteRawTag(169, 6); + output.WriteDouble(EuWinder4Motor); + } + if (EuDryerMotorVelocity != 0D) { + output.WriteRawTag(177, 6); + output.WriteDouble(EuDryerMotorVelocity); + } + if (EuDryerMotorTargetVelocity != 0D) { + output.WriteRawTag(185, 6); + output.WriteDouble(EuDryerMotorTargetVelocity); + } + if (EuDryerMotorCurrent != 0D) { + output.WriteRawTag(193, 6); + output.WriteDouble(EuDryerMotorCurrent); + } + if (EuPullerDancer != 0D) { + output.WriteRawTag(201, 6); + output.WriteDouble(EuPullerDancer); + } + if (EuPullerMotor != 0D) { + output.WriteRawTag(209, 6); + output.WriteDouble(EuPullerMotor); + } + if (EuDryerZone1Temperature != 0D) { + output.WriteRawTag(217, 6); + output.WriteDouble(EuDryerZone1Temperature); + } + if (EuDryerZone2Temperature != 0D) { + output.WriteRawTag(225, 6); + output.WriteDouble(EuDryerZone2Temperature); + } + if (EuDryerZone3Temperature != 0D) { + output.WriteRawTag(233, 6); + output.WriteDouble(EuDryerZone3Temperature); + } + if (EuHeadZone1Temperature != 0D) { + output.WriteRawTag(241, 6); + output.WriteDouble(EuHeadZone1Temperature); + } + if (EuHeadZone2Temperature != 0D) { + output.WriteRawTag(249, 6); + output.WriteDouble(EuHeadZone2Temperature); + } + if (EuHeadZone3Temperature != 0D) { + output.WriteRawTag(129, 7); + output.WriteDouble(EuHeadZone3Temperature); + } + if (EuMixerTemperature != 0D) { + output.WriteRawTag(137, 7); + output.WriteDouble(EuMixerTemperature); + } + if (EuTunnelTemperature != 0D) { + output.WriteRawTag(145, 7); + output.WriteDouble(EuTunnelTemperature); + } + if (EuLubricantTemperature != 0D) { + output.WriteRawTag(153, 7); + output.WriteDouble(EuLubricantTemperature); + } + if (EuAmbientTemperature != 0D) { + output.WriteRawTag(161, 7); + output.WriteDouble(EuAmbientTemperature); + } + if (EuElectricalCabinetTemperature != 0D) { + output.WriteRawTag(169, 7); + output.WriteDouble(EuElectricalCabinetTemperature); + } + if (EuDryerZone1Current != 0D) { + output.WriteRawTag(177, 7); + output.WriteDouble(EuDryerZone1Current); + } + if (EuDryerZone2Current != 0D) { + output.WriteRawTag(185, 7); + output.WriteDouble(EuDryerZone2Current); + } + if (EuDryerZone3Current != 0D) { + output.WriteRawTag(193, 7); + output.WriteDouble(EuDryerZone3Current); + } + if (EuHeadZone1Current != 0D) { + output.WriteRawTag(201, 7); + output.WriteDouble(EuHeadZone1Current); + } + if (EuHeadZone2Current != 0D) { + output.WriteRawTag(209, 7); + output.WriteDouble(EuHeadZone2Current); + } + if (EuHeadZone3Current != 0D) { + output.WriteRawTag(217, 7); + output.WriteDouble(EuHeadZone3Current); + } + if (EuMixerCurrent != 0D) { + output.WriteRawTag(225, 7); + output.WriteDouble(EuMixerCurrent); + } + if (EuTunnelCurrent != 0D) { + output.WriteRawTag(233, 7); + output.WriteDouble(EuTunnelCurrent); + } + if (EuLubricantCurrent != 0D) { + output.WriteRawTag(241, 7); + output.WriteDouble(EuLubricantCurrent); + } + if (EuBtsr1Speed != 0D) { + output.WriteRawTag(249, 7); + output.WriteDouble(EuBtsr1Speed); + } + if (EuBtsr1SpeedAv != 0D) { + output.WriteRawTag(129, 8); + output.WriteDouble(EuBtsr1SpeedAv); + } + if (EuBtsr1DispAv != 0D) { + output.WriteRawTag(137, 8); + output.WriteDouble(EuBtsr1DispAv); + } + if (EuBtsr1PeakMin != 0D) { + output.WriteRawTag(145, 8); + output.WriteDouble(EuBtsr1PeakMin); + } + if (EuBtsr1PeakMax != 0D) { + output.WriteRawTag(153, 8); + output.WriteDouble(EuBtsr1PeakMax); + } + if (EuBtsr2Speed != 0D) { + output.WriteRawTag(161, 8); + output.WriteDouble(EuBtsr2Speed); + } + if (EuBtsr2SpeedAv != 0D) { + output.WriteRawTag(169, 8); + output.WriteDouble(EuBtsr2SpeedAv); + } + if (EuBtsr2DispAv != 0D) { + output.WriteRawTag(177, 8); + output.WriteDouble(EuBtsr2DispAv); + } + if (EuBtsr2PeakMin != 0D) { + output.WriteRawTag(185, 8); + output.WriteDouble(EuBtsr2PeakMin); + } + if (EuBtsr2PeakMax != 0D) { + output.WriteRawTag(193, 8); + output.WriteDouble(EuBtsr2PeakMax); + } + if (EuBtsr3Speed != 0D) { + output.WriteRawTag(201, 8); + output.WriteDouble(EuBtsr3Speed); + } + if (EuBtsr3SpeedAv != 0D) { + output.WriteRawTag(209, 8); + output.WriteDouble(EuBtsr3SpeedAv); + } + if (EuBtsr3DispAv != 0D) { + output.WriteRawTag(217, 8); + output.WriteDouble(EuBtsr3DispAv); + } + if (EuBtsr3PeakMin != 0D) { + output.WriteRawTag(225, 8); + output.WriteDouble(EuBtsr3PeakMin); + } + if (EuBtsr3PeakMax != 0D) { + output.WriteRawTag(233, 8); + output.WriteDouble(EuBtsr3PeakMax); + } + if (EuBtsr4Speed != 0D) { + output.WriteRawTag(241, 8); + output.WriteDouble(EuBtsr4Speed); + } + if (EuBtsr4SpeedAv != 0D) { + output.WriteRawTag(249, 8); + output.WriteDouble(EuBtsr4SpeedAv); + } + if (EuBtsr4PeakMin != 0D) { + output.WriteRawTag(129, 9); + output.WriteDouble(EuBtsr4PeakMin); + } + if (EuBtsr4PeakMax != 0D) { + output.WriteRawTag(137, 9); + output.WriteDouble(EuBtsr4PeakMax); + } + if (EuBtsr4DispAv != 0D) { + output.WriteRawTag(145, 9); + output.WriteDouble(EuBtsr4DispAv); + } + euTemperatureLoggers_.WriteTo(output, _repeated_euTemperatureLoggers_codec); + euPumpFlows_.WriteTo(output, _repeated_euPumpFlows_codec); + euInkLinesPressure_.WriteTo(output, _repeated_euInkLinesPressure_codec); + euSpareDataArray_.WriteTo(output, _repeated_euSpareDataArray_codec); + if (EuDispenser1Voltage != 0D) { + output.WriteRawTag(185, 9); + output.WriteDouble(EuDispenser1Voltage); + } + if (EuDispenser2Voltage != 0D) { + output.WriteRawTag(193, 9); + output.WriteDouble(EuDispenser2Voltage); + } + if (EuDispenser3Voltage != 0D) { + output.WriteRawTag(201, 9); + output.WriteDouble(EuDispenser3Voltage); + } + if (EuDispenser4Voltage != 0D) { + output.WriteRawTag(209, 9); + output.WriteDouble(EuDispenser4Voltage); + } + if (EuDispenser5Voltage != 0D) { + output.WriteRawTag(217, 9); + output.WriteDouble(EuDispenser5Voltage); + } + if (EuDispenser6Voltage != 0D) { + output.WriteRawTag(225, 9); + output.WriteDouble(EuDispenser6Voltage); + } + if (EuDispenser7Voltage != 0D) { + output.WriteRawTag(233, 9); + output.WriteDouble(EuDispenser7Voltage); + } + if (EuDispenser8Voltage != 0D) { + output.WriteRawTag(241, 9); + output.WriteDouble(EuDispenser8Voltage); + } + if (EuDispenser9Voltage != 0D) { + output.WriteRawTag(249, 9); + output.WriteDouble(EuDispenser9Voltage); + } + if (EuDispenser10Voltage != 0D) { + output.WriteRawTag(129, 10); + output.WriteDouble(EuDispenser10Voltage); + } + if (EuDispenser11Voltage != 0D) { + output.WriteRawTag(137, 10); + output.WriteDouble(EuDispenser11Voltage); + } + if (EuDispenser12Voltage != 0D) { + output.WriteRawTag(145, 10); + output.WriteDouble(EuDispenser12Voltage); + } + if (EuDispenser13Voltage != 0D) { + output.WriteRawTag(153, 10); + output.WriteDouble(EuDispenser13Voltage); + } + if (EuDispenser14Voltage != 0D) { + output.WriteRawTag(161, 10); + output.WriteDouble(EuDispenser14Voltage); + } + if (EuDispenser15Voltage != 0D) { + output.WriteRawTag(169, 10); + output.WriteDouble(EuDispenser15Voltage); + } + if (EuDispenser16Voltage != 0D) { + output.WriteRawTag(177, 10); + output.WriteDouble(EuDispenser16Voltage); + } + if (EuLubricantPumpVoltage != 0D) { + output.WriteRawTag(185, 10); + output.WriteDouble(EuLubricantPumpVoltage); + } + if (EuDispenser1Pressure != 0D) { + output.WriteRawTag(193, 10); + output.WriteDouble(EuDispenser1Pressure); + } + if (EuDispenser2Pressure != 0D) { + output.WriteRawTag(201, 10); + output.WriteDouble(EuDispenser2Pressure); + } + if (EuDispenser3Pressure != 0D) { + output.WriteRawTag(209, 10); + output.WriteDouble(EuDispenser3Pressure); + } + if (EuDispenser4Pressure != 0D) { + output.WriteRawTag(217, 10); + output.WriteDouble(EuDispenser4Pressure); + } + if (EuDispenser5Pressure != 0D) { + output.WriteRawTag(225, 10); + output.WriteDouble(EuDispenser5Pressure); + } + if (EuDispenser6Pressure != 0D) { + output.WriteRawTag(233, 10); + output.WriteDouble(EuDispenser6Pressure); + } + if (EuDispenser7Pressure != 0D) { + output.WriteRawTag(241, 10); + output.WriteDouble(EuDispenser7Pressure); + } + if (EuDispenser8Pressure != 0D) { + output.WriteRawTag(249, 10); + output.WriteDouble(EuDispenser8Pressure); + } + if (EuLubricantPressure != 0D) { + output.WriteRawTag(129, 11); + output.WriteDouble(EuLubricantPressure); + } + if (EuMidTank1Level != 0D) { + output.WriteRawTag(137, 11); + output.WriteDouble(EuMidTank1Level); + } + if (EuMidTank2Level != 0D) { + output.WriteRawTag(145, 11); + output.WriteDouble(EuMidTank2Level); + } + if (EuMidTank3Level != 0D) { + output.WriteRawTag(153, 11); + output.WriteDouble(EuMidTank3Level); + } + if (EuMidTank4Level != 0D) { + output.WriteRawTag(161, 11); + output.WriteDouble(EuMidTank4Level); + } + if (EuMidTank5Level != 0D) { + output.WriteRawTag(169, 11); + output.WriteDouble(EuMidTank5Level); + } + if (EuMidTank6Level != 0D) { + output.WriteRawTag(177, 11); + output.WriteDouble(EuMidTank6Level); + } + if (EuMidTank7Level != 0D) { + output.WriteRawTag(185, 11); + output.WriteDouble(EuMidTank7Level); + } + if (EuMidTank8Level != 0D) { + output.WriteRawTag(193, 11); + output.WriteDouble(EuMidTank8Level); + } + if (EuChillerTemperature != 0D) { + output.WriteRawTag(201, 11); + output.WriteDouble(EuChillerTemperature); + } + if (EuHeadRightAirFlow != 0D) { + output.WriteRawTag(209, 11); + output.WriteDouble(EuHeadRightAirFlow); + } + if (EuHeadLeftAirFlow != 0D) { + output.WriteRawTag(217, 11); + output.WriteDouble(EuHeadLeftAirFlow); + } + if (EuHeadRightVoltage != 0D) { + output.WriteRawTag(225, 11); + output.WriteDouble(EuHeadRightVoltage); + } + if (EuHeadLeftVoltage != 0D) { + output.WriteRawTag(233, 11); + output.WriteDouble(EuHeadLeftVoltage); + } + if (EuDryerAirFlow != 0D) { + output.WriteRawTag(241, 11); + output.WriteDouble(EuDryerAirFlow); + } + if (EuBlowerVoltage != 0D) { + output.WriteRawTag(249, 11); + output.WriteDouble(EuBlowerVoltage); + } + if (EuWasteLevel != 0D) { + output.WriteRawTag(129, 12); + output.WriteDouble(EuWasteLevel); + } + if (EuSpare1 != 0D) { + output.WriteRawTag(137, 12); + output.WriteDouble(EuSpare1); + } + if (EuSpare2 != 0D) { + output.WriteRawTag(145, 12); + output.WriteDouble(EuSpare2); + } + if (EuSpare3 != 0D) { + output.WriteRawTag(153, 12); + output.WriteDouble(EuSpare3); + } + if (EuSpare4 != 0D) { + output.WriteRawTag(161, 12); + output.WriteDouble(EuSpare4); + } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -2354,6 +4564,307 @@ namespace Tango.PMR.Insights { if (TotalWHSFlow != 0D) { size += 2 + 8; } + if (EuWinder1Dancer != 0D) { + size += 2 + 8; + } + if (EuWinder2Dancer != 0D) { + size += 2 + 8; + } + if (EuWinder3Dancer != 0D) { + size += 2 + 8; + } + if (EuWinder4Dancer != 0D) { + size += 2 + 8; + } + if (EuWinder1Motor != 0D) { + size += 2 + 8; + } + if (EuWinder2Motor != 0D) { + size += 2 + 8; + } + if (EuWinder3Motor != 0D) { + size += 2 + 8; + } + if (EuWinder4Motor != 0D) { + size += 2 + 8; + } + if (EuDryerMotorVelocity != 0D) { + size += 2 + 8; + } + if (EuDryerMotorTargetVelocity != 0D) { + size += 2 + 8; + } + if (EuDryerMotorCurrent != 0D) { + size += 2 + 8; + } + if (EuPullerDancer != 0D) { + size += 2 + 8; + } + if (EuPullerMotor != 0D) { + size += 2 + 8; + } + if (EuDryerZone1Temperature != 0D) { + size += 2 + 8; + } + if (EuDryerZone2Temperature != 0D) { + size += 2 + 8; + } + if (EuDryerZone3Temperature != 0D) { + size += 2 + 8; + } + if (EuHeadZone1Temperature != 0D) { + size += 2 + 8; + } + if (EuHeadZone2Temperature != 0D) { + size += 2 + 8; + } + if (EuHeadZone3Temperature != 0D) { + size += 2 + 8; + } + if (EuMixerTemperature != 0D) { + size += 2 + 8; + } + if (EuTunnelTemperature != 0D) { + size += 2 + 8; + } + if (EuLubricantTemperature != 0D) { + size += 2 + 8; + } + if (EuAmbientTemperature != 0D) { + size += 2 + 8; + } + if (EuElectricalCabinetTemperature != 0D) { + size += 2 + 8; + } + if (EuDryerZone1Current != 0D) { + size += 2 + 8; + } + if (EuDryerZone2Current != 0D) { + size += 2 + 8; + } + if (EuDryerZone3Current != 0D) { + size += 2 + 8; + } + if (EuHeadZone1Current != 0D) { + size += 2 + 8; + } + if (EuHeadZone2Current != 0D) { + size += 2 + 8; + } + if (EuHeadZone3Current != 0D) { + size += 2 + 8; + } + if (EuMixerCurrent != 0D) { + size += 2 + 8; + } + if (EuTunnelCurrent != 0D) { + size += 2 + 8; + } + if (EuLubricantCurrent != 0D) { + size += 2 + 8; + } + if (EuBtsr1Speed != 0D) { + size += 2 + 8; + } + if (EuBtsr1SpeedAv != 0D) { + size += 2 + 8; + } + if (EuBtsr1DispAv != 0D) { + size += 2 + 8; + } + if (EuBtsr1PeakMin != 0D) { + size += 2 + 8; + } + if (EuBtsr1PeakMax != 0D) { + size += 2 + 8; + } + if (EuBtsr2Speed != 0D) { + size += 2 + 8; + } + if (EuBtsr2SpeedAv != 0D) { + size += 2 + 8; + } + if (EuBtsr2DispAv != 0D) { + size += 2 + 8; + } + if (EuBtsr2PeakMin != 0D) { + size += 2 + 8; + } + if (EuBtsr2PeakMax != 0D) { + size += 2 + 8; + } + if (EuBtsr3Speed != 0D) { + size += 2 + 8; + } + if (EuBtsr3SpeedAv != 0D) { + size += 2 + 8; + } + if (EuBtsr3DispAv != 0D) { + size += 2 + 8; + } + if (EuBtsr3PeakMin != 0D) { + size += 2 + 8; + } + if (EuBtsr3PeakMax != 0D) { + size += 2 + 8; + } + if (EuBtsr4Speed != 0D) { + size += 2 + 8; + } + if (EuBtsr4SpeedAv != 0D) { + size += 2 + 8; + } + if (EuBtsr4PeakMin != 0D) { + size += 2 + 8; + } + if (EuBtsr4PeakMax != 0D) { + size += 2 + 8; + } + if (EuBtsr4DispAv != 0D) { + size += 2 + 8; + } + size += euTemperatureLoggers_.CalculateSize(_repeated_euTemperatureLoggers_codec); + size += euPumpFlows_.CalculateSize(_repeated_euPumpFlows_codec); + size += euInkLinesPressure_.CalculateSize(_repeated_euInkLinesPressure_codec); + size += euSpareDataArray_.CalculateSize(_repeated_euSpareDataArray_codec); + if (EuDispenser1Voltage != 0D) { + size += 2 + 8; + } + if (EuDispenser2Voltage != 0D) { + size += 2 + 8; + } + if (EuDispenser3Voltage != 0D) { + size += 2 + 8; + } + if (EuDispenser4Voltage != 0D) { + size += 2 + 8; + } + if (EuDispenser5Voltage != 0D) { + size += 2 + 8; + } + if (EuDispenser6Voltage != 0D) { + size += 2 + 8; + } + if (EuDispenser7Voltage != 0D) { + size += 2 + 8; + } + if (EuDispenser8Voltage != 0D) { + size += 2 + 8; + } + if (EuDispenser9Voltage != 0D) { + size += 2 + 8; + } + if (EuDispenser10Voltage != 0D) { + size += 2 + 8; + } + if (EuDispenser11Voltage != 0D) { + size += 2 + 8; + } + if (EuDispenser12Voltage != 0D) { + size += 2 + 8; + } + if (EuDispenser13Voltage != 0D) { + size += 2 + 8; + } + if (EuDispenser14Voltage != 0D) { + size += 2 + 8; + } + if (EuDispenser15Voltage != 0D) { + size += 2 + 8; + } + if (EuDispenser16Voltage != 0D) { + size += 2 + 8; + } + if (EuLubricantPumpVoltage != 0D) { + size += 2 + 8; + } + if (EuDispenser1Pressure != 0D) { + size += 2 + 8; + } + if (EuDispenser2Pressure != 0D) { + size += 2 + 8; + } + if (EuDispenser3Pressure != 0D) { + size += 2 + 8; + } + if (EuDispenser4Pressure != 0D) { + size += 2 + 8; + } + if (EuDispenser5Pressure != 0D) { + size += 2 + 8; + } + if (EuDispenser6Pressure != 0D) { + size += 2 + 8; + } + if (EuDispenser7Pressure != 0D) { + size += 2 + 8; + } + if (EuDispenser8Pressure != 0D) { + size += 2 + 8; + } + if (EuLubricantPressure != 0D) { + size += 2 + 8; + } + if (EuMidTank1Level != 0D) { + size += 2 + 8; + } + if (EuMidTank2Level != 0D) { + size += 2 + 8; + } + if (EuMidTank3Level != 0D) { + size += 2 + 8; + } + if (EuMidTank4Level != 0D) { + size += 2 + 8; + } + if (EuMidTank5Level != 0D) { + size += 2 + 8; + } + if (EuMidTank6Level != 0D) { + size += 2 + 8; + } + if (EuMidTank7Level != 0D) { + size += 2 + 8; + } + if (EuMidTank8Level != 0D) { + size += 2 + 8; + } + if (EuChillerTemperature != 0D) { + size += 2 + 8; + } + if (EuHeadRightAirFlow != 0D) { + size += 2 + 8; + } + if (EuHeadLeftAirFlow != 0D) { + size += 2 + 8; + } + if (EuHeadRightVoltage != 0D) { + size += 2 + 8; + } + if (EuHeadLeftVoltage != 0D) { + size += 2 + 8; + } + if (EuDryerAirFlow != 0D) { + size += 2 + 8; + } + if (EuBlowerVoltage != 0D) { + size += 2 + 8; + } + if (EuWasteLevel != 0D) { + size += 2 + 8; + } + if (EuSpare1 != 0D) { + size += 2 + 8; + } + if (EuSpare2 != 0D) { + size += 2 + 8; + } + if (EuSpare3 != 0D) { + size += 2 + 8; + } + if (EuSpare4 != 0D) { + size += 2 + 8; + } return size; } @@ -2629,6 +5140,307 @@ namespace Tango.PMR.Insights { if (other.TotalWHSFlow != 0D) { TotalWHSFlow = other.TotalWHSFlow; } + if (other.EuWinder1Dancer != 0D) { + EuWinder1Dancer = other.EuWinder1Dancer; + } + if (other.EuWinder2Dancer != 0D) { + EuWinder2Dancer = other.EuWinder2Dancer; + } + if (other.EuWinder3Dancer != 0D) { + EuWinder3Dancer = other.EuWinder3Dancer; + } + if (other.EuWinder4Dancer != 0D) { + EuWinder4Dancer = other.EuWinder4Dancer; + } + if (other.EuWinder1Motor != 0D) { + EuWinder1Motor = other.EuWinder1Motor; + } + if (other.EuWinder2Motor != 0D) { + EuWinder2Motor = other.EuWinder2Motor; + } + if (other.EuWinder3Motor != 0D) { + EuWinder3Motor = other.EuWinder3Motor; + } + if (other.EuWinder4Motor != 0D) { + EuWinder4Motor = other.EuWinder4Motor; + } + if (other.EuDryerMotorVelocity != 0D) { + EuDryerMotorVelocity = other.EuDryerMotorVelocity; + } + if (other.EuDryerMotorTargetVelocity != 0D) { + EuDryerMotorTargetVelocity = other.EuDryerMotorTargetVelocity; + } + if (other.EuDryerMotorCurrent != 0D) { + EuDryerMotorCurrent = other.EuDryerMotorCurrent; + } + if (other.EuPullerDancer != 0D) { + EuPullerDancer = other.EuPullerDancer; + } + if (other.EuPullerMotor != 0D) { + EuPullerMotor = other.EuPullerMotor; + } + if (other.EuDryerZone1Temperature != 0D) { + EuDryerZone1Temperature = other.EuDryerZone1Temperature; + } + if (other.EuDryerZone2Temperature != 0D) { + EuDryerZone2Temperature = other.EuDryerZone2Temperature; + } + if (other.EuDryerZone3Temperature != 0D) { + EuDryerZone3Temperature = other.EuDryerZone3Temperature; + } + if (other.EuHeadZone1Temperature != 0D) { + EuHeadZone1Temperature = other.EuHeadZone1Temperature; + } + if (other.EuHeadZone2Temperature != 0D) { + EuHeadZone2Temperature = other.EuHeadZone2Temperature; + } + if (other.EuHeadZone3Temperature != 0D) { + EuHeadZone3Temperature = other.EuHeadZone3Temperature; + } + if (other.EuMixerTemperature != 0D) { + EuMixerTemperature = other.EuMixerTemperature; + } + if (other.EuTunnelTemperature != 0D) { + EuTunnelTemperature = other.EuTunnelTemperature; + } + if (other.EuLubricantTemperature != 0D) { + EuLubricantTemperature = other.EuLubricantTemperature; + } + if (other.EuAmbientTemperature != 0D) { + EuAmbientTemperature = other.EuAmbientTemperature; + } + if (other.EuElectricalCabinetTemperature != 0D) { + EuElectricalCabinetTemperature = other.EuElectricalCabinetTemperature; + } + if (other.EuDryerZone1Current != 0D) { + EuDryerZone1Current = other.EuDryerZone1Current; + } + if (other.EuDryerZone2Current != 0D) { + EuDryerZone2Current = other.EuDryerZone2Current; + } + if (other.EuDryerZone3Current != 0D) { + EuDryerZone3Current = other.EuDryerZone3Current; + } + if (other.EuHeadZone1Current != 0D) { + EuHeadZone1Current = other.EuHeadZone1Current; + } + if (other.EuHeadZone2Current != 0D) { + EuHeadZone2Current = other.EuHeadZone2Current; + } + if (other.EuHeadZone3Current != 0D) { + EuHeadZone3Current = other.EuHeadZone3Current; + } + if (other.EuMixerCurrent != 0D) { + EuMixerCurrent = other.EuMixerCurrent; + } + if (other.EuTunnelCurrent != 0D) { + EuTunnelCurrent = other.EuTunnelCurrent; + } + if (other.EuLubricantCurrent != 0D) { + EuLubricantCurrent = other.EuLubricantCurrent; + } + if (other.EuBtsr1Speed != 0D) { + EuBtsr1Speed = other.EuBtsr1Speed; + } + if (other.EuBtsr1SpeedAv != 0D) { + EuBtsr1SpeedAv = other.EuBtsr1SpeedAv; + } + if (other.EuBtsr1DispAv != 0D) { + EuBtsr1DispAv = other.EuBtsr1DispAv; + } + if (other.EuBtsr1PeakMin != 0D) { + EuBtsr1PeakMin = other.EuBtsr1PeakMin; + } + if (other.EuBtsr1PeakMax != 0D) { + EuBtsr1PeakMax = other.EuBtsr1PeakMax; + } + if (other.EuBtsr2Speed != 0D) { + EuBtsr2Speed = other.EuBtsr2Speed; + } + if (other.EuBtsr2SpeedAv != 0D) { + EuBtsr2SpeedAv = other.EuBtsr2SpeedAv; + } + if (other.EuBtsr2DispAv != 0D) { + EuBtsr2DispAv = other.EuBtsr2DispAv; + } + if (other.EuBtsr2PeakMin != 0D) { + EuBtsr2PeakMin = other.EuBtsr2PeakMin; + } + if (other.EuBtsr2PeakMax != 0D) { + EuBtsr2PeakMax = other.EuBtsr2PeakMax; + } + if (other.EuBtsr3Speed != 0D) { + EuBtsr3Speed = other.EuBtsr3Speed; + } + if (other.EuBtsr3SpeedAv != 0D) { + EuBtsr3SpeedAv = other.EuBtsr3SpeedAv; + } + if (other.EuBtsr3DispAv != 0D) { + EuBtsr3DispAv = other.EuBtsr3DispAv; + } + if (other.EuBtsr3PeakMin != 0D) { + EuBtsr3PeakMin = other.EuBtsr3PeakMin; + } + if (other.EuBtsr3PeakMax != 0D) { + EuBtsr3PeakMax = other.EuBtsr3PeakMax; + } + if (other.EuBtsr4Speed != 0D) { + EuBtsr4Speed = other.EuBtsr4Speed; + } + if (other.EuBtsr4SpeedAv != 0D) { + EuBtsr4SpeedAv = other.EuBtsr4SpeedAv; + } + if (other.EuBtsr4PeakMin != 0D) { + EuBtsr4PeakMin = other.EuBtsr4PeakMin; + } + if (other.EuBtsr4PeakMax != 0D) { + EuBtsr4PeakMax = other.EuBtsr4PeakMax; + } + if (other.EuBtsr4DispAv != 0D) { + EuBtsr4DispAv = other.EuBtsr4DispAv; + } + euTemperatureLoggers_.Add(other.euTemperatureLoggers_); + euPumpFlows_.Add(other.euPumpFlows_); + euInkLinesPressure_.Add(other.euInkLinesPressure_); + euSpareDataArray_.Add(other.euSpareDataArray_); + if (other.EuDispenser1Voltage != 0D) { + EuDispenser1Voltage = other.EuDispenser1Voltage; + } + if (other.EuDispenser2Voltage != 0D) { + EuDispenser2Voltage = other.EuDispenser2Voltage; + } + if (other.EuDispenser3Voltage != 0D) { + EuDispenser3Voltage = other.EuDispenser3Voltage; + } + if (other.EuDispenser4Voltage != 0D) { + EuDispenser4Voltage = other.EuDispenser4Voltage; + } + if (other.EuDispenser5Voltage != 0D) { + EuDispenser5Voltage = other.EuDispenser5Voltage; + } + if (other.EuDispenser6Voltage != 0D) { + EuDispenser6Voltage = other.EuDispenser6Voltage; + } + if (other.EuDispenser7Voltage != 0D) { + EuDispenser7Voltage = other.EuDispenser7Voltage; + } + if (other.EuDispenser8Voltage != 0D) { + EuDispenser8Voltage = other.EuDispenser8Voltage; + } + if (other.EuDispenser9Voltage != 0D) { + EuDispenser9Voltage = other.EuDispenser9Voltage; + } + if (other.EuDispenser10Voltage != 0D) { + EuDispenser10Voltage = other.EuDispenser10Voltage; + } + if (other.EuDispenser11Voltage != 0D) { + EuDispenser11Voltage = other.EuDispenser11Voltage; + } + if (other.EuDispenser12Voltage != 0D) { + EuDispenser12Voltage = other.EuDispenser12Voltage; + } + if (other.EuDispenser13Voltage != 0D) { + EuDispenser13Voltage = other.EuDispenser13Voltage; + } + if (other.EuDispenser14Voltage != 0D) { + EuDispenser14Voltage = other.EuDispenser14Voltage; + } + if (other.EuDispenser15Voltage != 0D) { + EuDispenser15Voltage = other.EuDispenser15Voltage; + } + if (other.EuDispenser16Voltage != 0D) { + EuDispenser16Voltage = other.EuDispenser16Voltage; + } + if (other.EuLubricantPumpVoltage != 0D) { + EuLubricantPumpVoltage = other.EuLubricantPumpVoltage; + } + if (other.EuDispenser1Pressure != 0D) { + EuDispenser1Pressure = other.EuDispenser1Pressure; + } + if (other.EuDispenser2Pressure != 0D) { + EuDispenser2Pressure = other.EuDispenser2Pressure; + } + if (other.EuDispenser3Pressure != 0D) { + EuDispenser3Pressure = other.EuDispenser3Pressure; + } + if (other.EuDispenser4Pressure != 0D) { + EuDispenser4Pressure = other.EuDispenser4Pressure; + } + if (other.EuDispenser5Pressure != 0D) { + EuDispenser5Pressure = other.EuDispenser5Pressure; + } + if (other.EuDispenser6Pressure != 0D) { + EuDispenser6Pressure = other.EuDispenser6Pressure; + } + if (other.EuDispenser7Pressure != 0D) { + EuDispenser7Pressure = other.EuDispenser7Pressure; + } + if (other.EuDispenser8Pressure != 0D) { + EuDispenser8Pressure = other.EuDispenser8Pressure; + } + if (other.EuLubricantPressure != 0D) { + EuLubricantPressure = other.EuLubricantPressure; + } + if (other.EuMidTank1Level != 0D) { + EuMidTank1Level = other.EuMidTank1Level; + } + if (other.EuMidTank2Level != 0D) { + EuMidTank2Level = other.EuMidTank2Level; + } + if (other.EuMidTank3Level != 0D) { + EuMidTank3Level = other.EuMidTank3Level; + } + if (other.EuMidTank4Level != 0D) { + EuMidTank4Level = other.EuMidTank4Level; + } + if (other.EuMidTank5Level != 0D) { + EuMidTank5Level = other.EuMidTank5Level; + } + if (other.EuMidTank6Level != 0D) { + EuMidTank6Level = other.EuMidTank6Level; + } + if (other.EuMidTank7Level != 0D) { + EuMidTank7Level = other.EuMidTank7Level; + } + if (other.EuMidTank8Level != 0D) { + EuMidTank8Level = other.EuMidTank8Level; + } + if (other.EuChillerTemperature != 0D) { + EuChillerTemperature = other.EuChillerTemperature; + } + if (other.EuHeadRightAirFlow != 0D) { + EuHeadRightAirFlow = other.EuHeadRightAirFlow; + } + if (other.EuHeadLeftAirFlow != 0D) { + EuHeadLeftAirFlow = other.EuHeadLeftAirFlow; + } + if (other.EuHeadRightVoltage != 0D) { + EuHeadRightVoltage = other.EuHeadRightVoltage; + } + if (other.EuHeadLeftVoltage != 0D) { + EuHeadLeftVoltage = other.EuHeadLeftVoltage; + } + if (other.EuDryerAirFlow != 0D) { + EuDryerAirFlow = other.EuDryerAirFlow; + } + if (other.EuBlowerVoltage != 0D) { + EuBlowerVoltage = other.EuBlowerVoltage; + } + if (other.EuWasteLevel != 0D) { + EuWasteLevel = other.EuWasteLevel; + } + if (other.EuSpare1 != 0D) { + EuSpare1 = other.EuSpare1; + } + if (other.EuSpare2 != 0D) { + EuSpare2 = other.EuSpare2; + } + if (other.EuSpare3 != 0D) { + EuSpare3 = other.EuSpare3; + } + if (other.EuSpare4 != 0D) { + EuSpare4 = other.EuSpare4; + } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -3017,6 +5829,422 @@ namespace Tango.PMR.Insights { TotalWHSFlow = input.ReadDouble(); break; } + case 753: { + EuWinder1Dancer = input.ReadDouble(); + break; + } + case 761: { + EuWinder2Dancer = input.ReadDouble(); + break; + } + case 769: { + EuWinder3Dancer = input.ReadDouble(); + break; + } + case 777: { + EuWinder4Dancer = input.ReadDouble(); + break; + } + case 785: { + EuWinder1Motor = input.ReadDouble(); + break; + } + case 793: { + EuWinder2Motor = input.ReadDouble(); + break; + } + case 801: { + EuWinder3Motor = input.ReadDouble(); + break; + } + case 809: { + EuWinder4Motor = input.ReadDouble(); + break; + } + case 817: { + EuDryerMotorVelocity = input.ReadDouble(); + break; + } + case 825: { + EuDryerMotorTargetVelocity = input.ReadDouble(); + break; + } + case 833: { + EuDryerMotorCurrent = input.ReadDouble(); + break; + } + case 841: { + EuPullerDancer = input.ReadDouble(); + break; + } + case 849: { + EuPullerMotor = input.ReadDouble(); + break; + } + case 857: { + EuDryerZone1Temperature = input.ReadDouble(); + break; + } + case 865: { + EuDryerZone2Temperature = input.ReadDouble(); + break; + } + case 873: { + EuDryerZone3Temperature = input.ReadDouble(); + break; + } + case 881: { + EuHeadZone1Temperature = input.ReadDouble(); + break; + } + case 889: { + EuHeadZone2Temperature = input.ReadDouble(); + break; + } + case 897: { + EuHeadZone3Temperature = input.ReadDouble(); + break; + } + case 905: { + EuMixerTemperature = input.ReadDouble(); + break; + } + case 913: { + EuTunnelTemperature = input.ReadDouble(); + break; + } + case 921: { + EuLubricantTemperature = input.ReadDouble(); + break; + } + case 929: { + EuAmbientTemperature = input.ReadDouble(); + break; + } + case 937: { + EuElectricalCabinetTemperature = input.ReadDouble(); + break; + } + case 945: { + EuDryerZone1Current = input.ReadDouble(); + break; + } + case 953: { + EuDryerZone2Current = input.ReadDouble(); + break; + } + case 961: { + EuDryerZone3Current = input.ReadDouble(); + break; + } + case 969: { + EuHeadZone1Current = input.ReadDouble(); + break; + } + case 977: { + EuHeadZone2Current = input.ReadDouble(); + break; + } + case 985: { + EuHeadZone3Current = input.ReadDouble(); + break; + } + case 993: { + EuMixerCurrent = input.ReadDouble(); + break; + } + case 1001: { + EuTunnelCurrent = input.ReadDouble(); + break; + } + case 1009: { + EuLubricantCurrent = input.ReadDouble(); + break; + } + case 1017: { + EuBtsr1Speed = input.ReadDouble(); + break; + } + case 1025: { + EuBtsr1SpeedAv = input.ReadDouble(); + break; + } + case 1033: { + EuBtsr1DispAv = input.ReadDouble(); + break; + } + case 1041: { + EuBtsr1PeakMin = input.ReadDouble(); + break; + } + case 1049: { + EuBtsr1PeakMax = input.ReadDouble(); + break; + } + case 1057: { + EuBtsr2Speed = input.ReadDouble(); + break; + } + case 1065: { + EuBtsr2SpeedAv = input.ReadDouble(); + break; + } + case 1073: { + EuBtsr2DispAv = input.ReadDouble(); + break; + } + case 1081: { + EuBtsr2PeakMin = input.ReadDouble(); + break; + } + case 1089: { + EuBtsr2PeakMax = input.ReadDouble(); + break; + } + case 1097: { + EuBtsr3Speed = input.ReadDouble(); + break; + } + case 1105: { + EuBtsr3SpeedAv = input.ReadDouble(); + break; + } + case 1113: { + EuBtsr3DispAv = input.ReadDouble(); + break; + } + case 1121: { + EuBtsr3PeakMin = input.ReadDouble(); + break; + } + case 1129: { + EuBtsr3PeakMax = input.ReadDouble(); + break; + } + case 1137: { + EuBtsr4Speed = input.ReadDouble(); + break; + } + case 1145: { + EuBtsr4SpeedAv = input.ReadDouble(); + break; + } + case 1153: { + EuBtsr4PeakMin = input.ReadDouble(); + break; + } + case 1161: { + EuBtsr4PeakMax = input.ReadDouble(); + break; + } + case 1169: { + EuBtsr4DispAv = input.ReadDouble(); + break; + } + case 1178: + case 1177: { + euTemperatureLoggers_.AddEntriesFrom(input, _repeated_euTemperatureLoggers_codec); + break; + } + case 1186: + case 1185: { + euPumpFlows_.AddEntriesFrom(input, _repeated_euPumpFlows_codec); + break; + } + case 1194: + case 1193: { + euInkLinesPressure_.AddEntriesFrom(input, _repeated_euInkLinesPressure_codec); + break; + } + case 1202: + case 1201: { + euSpareDataArray_.AddEntriesFrom(input, _repeated_euSpareDataArray_codec); + break; + } + case 1209: { + EuDispenser1Voltage = input.ReadDouble(); + break; + } + case 1217: { + EuDispenser2Voltage = input.ReadDouble(); + break; + } + case 1225: { + EuDispenser3Voltage = input.ReadDouble(); + break; + } + case 1233: { + EuDispenser4Voltage = input.ReadDouble(); + break; + } + case 1241: { + EuDispenser5Voltage = input.ReadDouble(); + break; + } + case 1249: { + EuDispenser6Voltage = input.ReadDouble(); + break; + } + case 1257: { + EuDispenser7Voltage = input.ReadDouble(); + break; + } + case 1265: { + EuDispenser8Voltage = input.ReadDouble(); + break; + } + case 1273: { + EuDispenser9Voltage = input.ReadDouble(); + break; + } + case 1281: { + EuDispenser10Voltage = input.ReadDouble(); + break; + } + case 1289: { + EuDispenser11Voltage = input.ReadDouble(); + break; + } + case 1297: { + EuDispenser12Voltage = input.ReadDouble(); + break; + } + case 1305: { + EuDispenser13Voltage = input.ReadDouble(); + break; + } + case 1313: { + EuDispenser14Voltage = input.ReadDouble(); + break; + } + case 1321: { + EuDispenser15Voltage = input.ReadDouble(); + break; + } + case 1329: { + EuDispenser16Voltage = input.ReadDouble(); + break; + } + case 1337: { + EuLubricantPumpVoltage = input.ReadDouble(); + break; + } + case 1345: { + EuDispenser1Pressure = input.ReadDouble(); + break; + } + case 1353: { + EuDispenser2Pressure = input.ReadDouble(); + break; + } + case 1361: { + EuDispenser3Pressure = input.ReadDouble(); + break; + } + case 1369: { + EuDispenser4Pressure = input.ReadDouble(); + break; + } + case 1377: { + EuDispenser5Pressure = input.ReadDouble(); + break; + } + case 1385: { + EuDispenser6Pressure = input.ReadDouble(); + break; + } + case 1393: { + EuDispenser7Pressure = input.ReadDouble(); + break; + } + case 1401: { + EuDispenser8Pressure = input.ReadDouble(); + break; + } + case 1409: { + EuLubricantPressure = input.ReadDouble(); + break; + } + case 1417: { + EuMidTank1Level = input.ReadDouble(); + break; + } + case 1425: { + EuMidTank2Level = input.ReadDouble(); + break; + } + case 1433: { + EuMidTank3Level = input.ReadDouble(); + break; + } + case 1441: { + EuMidTank4Level = input.ReadDouble(); + break; + } + case 1449: { + EuMidTank5Level = input.ReadDouble(); + break; + } + case 1457: { + EuMidTank6Level = input.ReadDouble(); + break; + } + case 1465: { + EuMidTank7Level = input.ReadDouble(); + break; + } + case 1473: { + EuMidTank8Level = input.ReadDouble(); + break; + } + case 1481: { + EuChillerTemperature = input.ReadDouble(); + break; + } + case 1489: { + EuHeadRightAirFlow = input.ReadDouble(); + break; + } + case 1497: { + EuHeadLeftAirFlow = input.ReadDouble(); + break; + } + case 1505: { + EuHeadRightVoltage = input.ReadDouble(); + break; + } + case 1513: { + EuHeadLeftVoltage = input.ReadDouble(); + break; + } + case 1521: { + EuDryerAirFlow = input.ReadDouble(); + break; + } + case 1529: { + EuBlowerVoltage = input.ReadDouble(); + break; + } + case 1537: { + EuWasteLevel = input.ReadDouble(); + break; + } + case 1545: { + EuSpare1 = input.ReadDouble(); + break; + } + case 1553: { + EuSpare2 = input.ReadDouble(); + break; + } + case 1561: { + EuSpare3 = input.ReadDouble(); + break; + } + case 1569: { + EuSpare4 = input.ReadDouble(); + break; + } } } } diff --git a/Software/Visual_Studio/Tango.PMR/Integration/ExternalBridgeUdpDiscoveryPacket.cs b/Software/Visual_Studio/Tango.PMR/Integration/ExternalBridgeUdpDiscoveryPacket.cs index 309f95be3..21563b570 100644 --- a/Software/Visual_Studio/Tango.PMR/Integration/ExternalBridgeUdpDiscoveryPacket.cs +++ b/Software/Visual_Studio/Tango.PMR/Integration/ExternalBridgeUdpDiscoveryPacket.cs @@ -23,14 +23,15 @@ namespace Tango.PMR.Integration { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( "CiZFeHRlcm5hbEJyaWRnZVVkcERpc2NvdmVyeVBhY2tldC5wcm90bxIVVGFu", - "Z28uUE1SLkludGVncmF0aW9uIlQKIEV4dGVybmFsQnJpZGdlVWRwRGlzY292", - "ZXJ5UGFja2V0EgwKBFRpbWUYASABKAkSFAoMU2VyaWFsTnVtYmVyGAIgASgJ", - "EgwKBEd1aWQYAyABKAlCIQofY29tLnR3aW5lLnRhbmdvLnBtci5pbnRlZ3Jh", - "dGlvbmIGcHJvdG8z")); + "Z28uUE1SLkludGVncmF0aW9uGhFNYWNoaW5lVHlwZS5wcm90byKIAQogRXh0", + "ZXJuYWxCcmlkZ2VVZHBEaXNjb3ZlcnlQYWNrZXQSDAoEVGltZRgBIAEoCRIU", + "CgxTZXJpYWxOdW1iZXIYAiABKAkSDAoER3VpZBgDIAEoCRIyCgtNYWNoaW5l", + "VHlwZRgEIAEoDjIdLlRhbmdvLlBNUi5Db21tb24uTWFjaGluZVR5cGVCIQof", + "Y29tLnR3aW5lLnRhbmdvLnBtci5pbnRlZ3JhdGlvbmIGcHJvdG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, - new pbr::FileDescriptor[] { }, + new pbr::FileDescriptor[] { global::Tango.PMR.Common.MachineTypeReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Integration.ExternalBridgeUdpDiscoveryPacket), global::Tango.PMR.Integration.ExternalBridgeUdpDiscoveryPacket.Parser, new[]{ "Time", "SerialNumber", "Guid" }, null, null, null) + new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Integration.ExternalBridgeUdpDiscoveryPacket), global::Tango.PMR.Integration.ExternalBridgeUdpDiscoveryPacket.Parser, new[]{ "Time", "SerialNumber", "Guid", "MachineType" }, null, null, null) })); } #endregion @@ -64,6 +65,7 @@ namespace Tango.PMR.Integration { time_ = other.time_; serialNumber_ = other.serialNumber_; guid_ = other.guid_; + machineType_ = other.machineType_; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -104,6 +106,17 @@ namespace Tango.PMR.Integration { } } + /// <summary>Field number for the "MachineType" field.</summary> + public const int MachineTypeFieldNumber = 4; + private global::Tango.PMR.Common.MachineType machineType_ = 0; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::Tango.PMR.Common.MachineType MachineType { + get { return machineType_; } + set { + machineType_ = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { return Equals(other as ExternalBridgeUdpDiscoveryPacket); @@ -120,6 +133,7 @@ namespace Tango.PMR.Integration { if (Time != other.Time) return false; if (SerialNumber != other.SerialNumber) return false; if (Guid != other.Guid) return false; + if (MachineType != other.MachineType) return false; return true; } @@ -129,6 +143,7 @@ namespace Tango.PMR.Integration { if (Time.Length != 0) hash ^= Time.GetHashCode(); if (SerialNumber.Length != 0) hash ^= SerialNumber.GetHashCode(); if (Guid.Length != 0) hash ^= Guid.GetHashCode(); + if (MachineType != 0) hash ^= MachineType.GetHashCode(); return hash; } @@ -151,6 +166,10 @@ namespace Tango.PMR.Integration { output.WriteRawTag(26); output.WriteString(Guid); } + if (MachineType != 0) { + output.WriteRawTag(32); + output.WriteEnum((int) MachineType); + } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -165,6 +184,9 @@ namespace Tango.PMR.Integration { if (Guid.Length != 0) { size += 1 + pb::CodedOutputStream.ComputeStringSize(Guid); } + if (MachineType != 0) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) MachineType); + } return size; } @@ -182,6 +204,9 @@ namespace Tango.PMR.Integration { if (other.Guid.Length != 0) { Guid = other.Guid; } + if (other.MachineType != 0) { + MachineType = other.MachineType; + } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -204,6 +229,10 @@ namespace Tango.PMR.Integration { Guid = input.ReadString(); break; } + case 32: { + machineType_ = (global::Tango.PMR.Common.MachineType) input.ReadEnum(); + break; + } } } } diff --git a/Software/Visual_Studio/Tango.PMR/MachineStatus/IDSPackLevel.cs b/Software/Visual_Studio/Tango.PMR/MachineStatus/IDSPackLevel.cs index 18024c6d7..a11341386 100644 --- a/Software/Visual_Studio/Tango.PMR/MachineStatus/IDSPackLevel.cs +++ b/Software/Visual_Studio/Tango.PMR/MachineStatus/IDSPackLevel.cs @@ -23,13 +23,16 @@ namespace Tango.PMR.MachineStatus { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( "ChJJRFNQYWNrTGV2ZWwucHJvdG8SF1RhbmdvLlBNUi5NYWNoaW5lU3RhdHVz", - "IksKDElEU1BhY2tMZXZlbBINCgVJbmRleBgBIAEoBRIWCg5EaXNwZW5zZXJM", - "ZXZlbBgCIAEoBRIUCgxNaWRUYW5rTGV2ZWwYAyABKAFCIwohY29tLnR3aW5l", - "LnRhbmdvLnBtci5tYWNoaW5lc3RhdHVzYgZwcm90bzM=")); + "ItcBCgxJRFNQYWNrTGV2ZWwSDQoFSW5kZXgYASABKAUSFgoORGlzcGVuc2Vy", + "TGV2ZWwYAiABKAUSFAoMTWlkVGFua0xldmVsGAMgASgBEhcKD0plcnJpY2Fu", + "UHJlc2VudBgEIAEoCBIbChNGaWxsaW5nVGltZW91dEVycm9yGAUgASgIEhQK", + "DE1pZFRhbmtFbXB0eRgGIAEoCBIfChdNaWRUYW5rUmVmaWxsUHVtcEFjdGl2", + "ZRgHIAEoCBIdChVUaW1lclJlbWFpbmluZ1NlY29uZHMYCCABKAVCIwohY29t", + "LnR3aW5lLnRhbmdvLnBtci5tYWNoaW5lc3RhdHVzYgZwcm90bzM=")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.MachineStatus.IDSPackLevel), global::Tango.PMR.MachineStatus.IDSPackLevel.Parser, new[]{ "Index", "DispenserLevel", "MidTankLevel" }, null, null, null) + new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.MachineStatus.IDSPackLevel), global::Tango.PMR.MachineStatus.IDSPackLevel.Parser, new[]{ "Index", "DispenserLevel", "MidTankLevel", "JerricanPresent", "FillingTimeoutError", "MidTankEmpty", "MidTankRefillPumpActive", "TimerRemainingSeconds" }, null, null, null) })); } #endregion @@ -63,6 +66,11 @@ namespace Tango.PMR.MachineStatus { index_ = other.index_; dispenserLevel_ = other.dispenserLevel_; midTankLevel_ = other.midTankLevel_; + jerricanPresent_ = other.jerricanPresent_; + fillingTimeoutError_ = other.fillingTimeoutError_; + midTankEmpty_ = other.midTankEmpty_; + midTankRefillPumpActive_ = other.midTankRefillPumpActive_; + timerRemainingSeconds_ = other.timerRemainingSeconds_; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -103,6 +111,61 @@ namespace Tango.PMR.MachineStatus { } } + /// <summary>Field number for the "JerricanPresent" field.</summary> + public const int JerricanPresentFieldNumber = 4; + private bool jerricanPresent_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool JerricanPresent { + get { return jerricanPresent_; } + set { + jerricanPresent_ = value; + } + } + + /// <summary>Field number for the "FillingTimeoutError" field.</summary> + public const int FillingTimeoutErrorFieldNumber = 5; + private bool fillingTimeoutError_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool FillingTimeoutError { + get { return fillingTimeoutError_; } + set { + fillingTimeoutError_ = value; + } + } + + /// <summary>Field number for the "MidTankEmpty" field.</summary> + public const int MidTankEmptyFieldNumber = 6; + private bool midTankEmpty_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool MidTankEmpty { + get { return midTankEmpty_; } + set { + midTankEmpty_ = value; + } + } + + /// <summary>Field number for the "MidTankRefillPumpActive" field.</summary> + public const int MidTankRefillPumpActiveFieldNumber = 7; + private bool midTankRefillPumpActive_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool MidTankRefillPumpActive { + get { return midTankRefillPumpActive_; } + set { + midTankRefillPumpActive_ = value; + } + } + + /// <summary>Field number for the "TimerRemainingSeconds" field.</summary> + public const int TimerRemainingSecondsFieldNumber = 8; + private int timerRemainingSeconds_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int TimerRemainingSeconds { + get { return timerRemainingSeconds_; } + set { + timerRemainingSeconds_ = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { return Equals(other as IDSPackLevel); @@ -119,6 +182,11 @@ namespace Tango.PMR.MachineStatus { if (Index != other.Index) return false; if (DispenserLevel != other.DispenserLevel) return false; if (MidTankLevel != other.MidTankLevel) return false; + if (JerricanPresent != other.JerricanPresent) return false; + if (FillingTimeoutError != other.FillingTimeoutError) return false; + if (MidTankEmpty != other.MidTankEmpty) return false; + if (MidTankRefillPumpActive != other.MidTankRefillPumpActive) return false; + if (TimerRemainingSeconds != other.TimerRemainingSeconds) return false; return true; } @@ -128,6 +196,11 @@ namespace Tango.PMR.MachineStatus { if (Index != 0) hash ^= Index.GetHashCode(); if (DispenserLevel != 0) hash ^= DispenserLevel.GetHashCode(); if (MidTankLevel != 0D) hash ^= MidTankLevel.GetHashCode(); + if (JerricanPresent != false) hash ^= JerricanPresent.GetHashCode(); + if (FillingTimeoutError != false) hash ^= FillingTimeoutError.GetHashCode(); + if (MidTankEmpty != false) hash ^= MidTankEmpty.GetHashCode(); + if (MidTankRefillPumpActive != false) hash ^= MidTankRefillPumpActive.GetHashCode(); + if (TimerRemainingSeconds != 0) hash ^= TimerRemainingSeconds.GetHashCode(); return hash; } @@ -150,6 +223,26 @@ namespace Tango.PMR.MachineStatus { output.WriteRawTag(25); output.WriteDouble(MidTankLevel); } + if (JerricanPresent != false) { + output.WriteRawTag(32); + output.WriteBool(JerricanPresent); + } + if (FillingTimeoutError != false) { + output.WriteRawTag(40); + output.WriteBool(FillingTimeoutError); + } + if (MidTankEmpty != false) { + output.WriteRawTag(48); + output.WriteBool(MidTankEmpty); + } + if (MidTankRefillPumpActive != false) { + output.WriteRawTag(56); + output.WriteBool(MidTankRefillPumpActive); + } + if (TimerRemainingSeconds != 0) { + output.WriteRawTag(64); + output.WriteInt32(TimerRemainingSeconds); + } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -164,6 +257,21 @@ namespace Tango.PMR.MachineStatus { if (MidTankLevel != 0D) { size += 1 + 8; } + if (JerricanPresent != false) { + size += 1 + 1; + } + if (FillingTimeoutError != false) { + size += 1 + 1; + } + if (MidTankEmpty != false) { + size += 1 + 1; + } + if (MidTankRefillPumpActive != false) { + size += 1 + 1; + } + if (TimerRemainingSeconds != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(TimerRemainingSeconds); + } return size; } @@ -181,6 +289,21 @@ namespace Tango.PMR.MachineStatus { if (other.MidTankLevel != 0D) { MidTankLevel = other.MidTankLevel; } + if (other.JerricanPresent != false) { + JerricanPresent = other.JerricanPresent; + } + if (other.FillingTimeoutError != false) { + FillingTimeoutError = other.FillingTimeoutError; + } + if (other.MidTankEmpty != false) { + MidTankEmpty = other.MidTankEmpty; + } + if (other.MidTankRefillPumpActive != false) { + MidTankRefillPumpActive = other.MidTankRefillPumpActive; + } + if (other.TimerRemainingSeconds != 0) { + TimerRemainingSeconds = other.TimerRemainingSeconds; + } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -203,6 +326,26 @@ namespace Tango.PMR.MachineStatus { MidTankLevel = input.ReadDouble(); break; } + case 32: { + JerricanPresent = input.ReadBool(); + break; + } + case 40: { + FillingTimeoutError = input.ReadBool(); + break; + } + case 48: { + MidTankEmpty = input.ReadBool(); + break; + } + case 56: { + MidTankRefillPumpActive = input.ReadBool(); + break; + } + case 64: { + TimerRemainingSeconds = input.ReadInt32(); + break; + } } } } diff --git a/Software/Visual_Studio/Tango.PMR/MachineStatus/MachineStatus.cs b/Software/Visual_Studio/Tango.PMR/MachineStatus/MachineStatus.cs index a50669c26..78301db82 100644 --- a/Software/Visual_Studio/Tango.PMR/MachineStatus/MachineStatus.cs +++ b/Software/Visual_Studio/Tango.PMR/MachineStatus/MachineStatus.cs @@ -24,17 +24,19 @@ namespace Tango.PMR.MachineStatus { string.Concat( "ChNNYWNoaW5lU3RhdHVzLnByb3RvEhdUYW5nby5QTVIuTWFjaGluZVN0YXR1", "cxoSTWFjaGluZVN0YXRlLnByb3RvGhJJRFNQYWNrTGV2ZWwucHJvdG8aEFNw", - "b29sU3RhdGUucHJvdG8i+AEKDU1hY2hpbmVTdGF0dXMSNAoFU3RhdGUYASAB", + "b29sU3RhdGUucHJvdG8ivgIKDU1hY2hpbmVTdGF0dXMSNAoFU3RhdGUYASAB", "KA4yJS5UYW5nby5QTVIuTWFjaGluZVN0YXR1cy5NYWNoaW5lU3RhdGUSPQoO", "SURTUGFja3NMZXZlbHMYAiADKAsyJS5UYW5nby5QTVIuTWFjaGluZVN0YXR1", "cy5JRFNQYWNrTGV2ZWwSGgoST3ZlcmFsbFRlbXBlcmF0dXJlGAMgASgBEjcK", "ClNwb29sU3RhdGUYBCABKA4yIy5UYW5nby5QTVIuTWFjaGluZVN0YXR1cy5T", - "cG9vbFN0YXRlEh0KFUF1dG9JbmtGaWxsaW5nRW5hYmxlZBgFIAEoCEIjCiFj", - "b20udHdpbmUudGFuZ28ucG1yLm1hY2hpbmVzdGF0dXNiBnByb3RvMw==")); + "cG9vbFN0YXRlEh0KFUF1dG9JbmtGaWxsaW5nRW5hYmxlZBgFIAEoCBIUCgxC", + "dHNyc0luRXJyb3IYCiADKAgSFgoORGFuY2Vyc0luRXJyb3IYCyADKAgSFgoO", + "V2luZGVyc0luRXJyb3IYDCADKAhCIwohY29tLnR3aW5lLnRhbmdvLnBtci5t", + "YWNoaW5lc3RhdHVzYgZwcm90bzM=")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Tango.PMR.MachineStatus.MachineStateReflection.Descriptor, global::Tango.PMR.MachineStatus.IDSPackLevelReflection.Descriptor, global::Tango.PMR.MachineStatus.SpoolStateReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.MachineStatus.MachineStatus), global::Tango.PMR.MachineStatus.MachineStatus.Parser, new[]{ "State", "IDSPacksLevels", "OverallTemperature", "SpoolState", "AutoInkFillingEnabled" }, null, null, null) + new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.MachineStatus.MachineStatus), global::Tango.PMR.MachineStatus.MachineStatus.Parser, new[]{ "State", "IDSPacksLevels", "OverallTemperature", "SpoolState", "AutoInkFillingEnabled", "BtsrsInError", "DancersInError", "WindersInError" }, null, null, null) })); } #endregion @@ -70,6 +72,9 @@ namespace Tango.PMR.MachineStatus { overallTemperature_ = other.overallTemperature_; spoolState_ = other.spoolState_; autoInkFillingEnabled_ = other.autoInkFillingEnabled_; + btsrsInError_ = other.btsrsInError_.Clone(); + dancersInError_ = other.dancersInError_.Clone(); + windersInError_ = other.windersInError_.Clone(); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -131,6 +136,36 @@ namespace Tango.PMR.MachineStatus { } } + /// <summary>Field number for the "BtsrsInError" field.</summary> + public const int BtsrsInErrorFieldNumber = 10; + private static readonly pb::FieldCodec<bool> _repeated_btsrsInError_codec + = pb::FieldCodec.ForBool(82); + private readonly pbc::RepeatedField<bool> btsrsInError_ = new pbc::RepeatedField<bool>(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<bool> BtsrsInError { + get { return btsrsInError_; } + } + + /// <summary>Field number for the "DancersInError" field.</summary> + public const int DancersInErrorFieldNumber = 11; + private static readonly pb::FieldCodec<bool> _repeated_dancersInError_codec + = pb::FieldCodec.ForBool(90); + private readonly pbc::RepeatedField<bool> dancersInError_ = new pbc::RepeatedField<bool>(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<bool> DancersInError { + get { return dancersInError_; } + } + + /// <summary>Field number for the "WindersInError" field.</summary> + public const int WindersInErrorFieldNumber = 12; + private static readonly pb::FieldCodec<bool> _repeated_windersInError_codec + = pb::FieldCodec.ForBool(98); + private readonly pbc::RepeatedField<bool> windersInError_ = new pbc::RepeatedField<bool>(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField<bool> WindersInError { + get { return windersInError_; } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { return Equals(other as MachineStatus); @@ -149,6 +184,9 @@ namespace Tango.PMR.MachineStatus { if (OverallTemperature != other.OverallTemperature) return false; if (SpoolState != other.SpoolState) return false; if (AutoInkFillingEnabled != other.AutoInkFillingEnabled) return false; + if(!btsrsInError_.Equals(other.btsrsInError_)) return false; + if(!dancersInError_.Equals(other.dancersInError_)) return false; + if(!windersInError_.Equals(other.windersInError_)) return false; return true; } @@ -160,6 +198,9 @@ namespace Tango.PMR.MachineStatus { if (OverallTemperature != 0D) hash ^= OverallTemperature.GetHashCode(); if (SpoolState != 0) hash ^= SpoolState.GetHashCode(); if (AutoInkFillingEnabled != false) hash ^= AutoInkFillingEnabled.GetHashCode(); + hash ^= btsrsInError_.GetHashCode(); + hash ^= dancersInError_.GetHashCode(); + hash ^= windersInError_.GetHashCode(); return hash; } @@ -187,6 +228,9 @@ namespace Tango.PMR.MachineStatus { output.WriteRawTag(40); output.WriteBool(AutoInkFillingEnabled); } + btsrsInError_.WriteTo(output, _repeated_btsrsInError_codec); + dancersInError_.WriteTo(output, _repeated_dancersInError_codec); + windersInError_.WriteTo(output, _repeated_windersInError_codec); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -205,6 +249,9 @@ namespace Tango.PMR.MachineStatus { if (AutoInkFillingEnabled != false) { size += 1 + 1; } + size += btsrsInError_.CalculateSize(_repeated_btsrsInError_codec); + size += dancersInError_.CalculateSize(_repeated_dancersInError_codec); + size += windersInError_.CalculateSize(_repeated_windersInError_codec); return size; } @@ -226,6 +273,9 @@ namespace Tango.PMR.MachineStatus { if (other.AutoInkFillingEnabled != false) { AutoInkFillingEnabled = other.AutoInkFillingEnabled; } + btsrsInError_.Add(other.btsrsInError_); + dancersInError_.Add(other.dancersInError_); + windersInError_.Add(other.windersInError_); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -256,6 +306,21 @@ namespace Tango.PMR.MachineStatus { AutoInkFillingEnabled = input.ReadBool(); break; } + case 82: + case 80: { + btsrsInError_.AddEntriesFrom(input, _repeated_btsrsInError_codec); + break; + } + case 90: + case 88: { + dancersInError_.AddEntriesFrom(input, _repeated_dancersInError_codec); + break; + } + case 98: + case 96: { + windersInError_.AddEntriesFrom(input, _repeated_windersInError_codec); + break; + } } } } diff --git a/Software/Visual_Studio/Tango.PMR/Printing/JobRequest.cs b/Software/Visual_Studio/Tango.PMR/Printing/JobRequest.cs index 4f29c71c6..7395544ad 100644 --- a/Software/Visual_Studio/Tango.PMR/Printing/JobRequest.cs +++ b/Software/Visual_Studio/Tango.PMR/Printing/JobRequest.cs @@ -23,13 +23,14 @@ namespace Tango.PMR.Printing { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( "ChBKb2JSZXF1ZXN0LnByb3RvEhJUYW5nby5QTVIuUHJpbnRpbmcaD0pvYlRp", - "Y2tldC5wcm90byI+CgpKb2JSZXF1ZXN0EjAKCUpvYlRpY2tldBgBIAEoCzId", - "LlRhbmdvLlBNUi5QcmludGluZy5Kb2JUaWNrZXRCHgocY29tLnR3aW5lLnRh", - "bmdvLnBtci5wcmludGluZ2IGcHJvdG8z")); + "Y2tldC5wcm90byJeCgpKb2JSZXF1ZXN0EjAKCUpvYlRpY2tldBgBIAEoCzId", + "LlRhbmdvLlBNUi5QcmludGluZy5Kb2JUaWNrZXQSHgoWRmlyc3RVbml0U3Rh", + "cnRQb3NpdGlvbhgCIAEoAUIeChxjb20udHdpbmUudGFuZ28ucG1yLnByaW50", + "aW5nYgZwcm90bzM=")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Tango.PMR.Printing.JobTicketReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Printing.JobRequest), global::Tango.PMR.Printing.JobRequest.Parser, new[]{ "JobTicket" }, null, null, null) + new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Printing.JobRequest), global::Tango.PMR.Printing.JobRequest.Parser, new[]{ "JobTicket", "FirstUnitStartPosition" }, null, null, null) })); } #endregion @@ -61,6 +62,7 @@ namespace Tango.PMR.Printing { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public JobRequest(JobRequest other) : this() { JobTicket = other.jobTicket_ != null ? other.JobTicket.Clone() : null; + firstUnitStartPosition_ = other.firstUnitStartPosition_; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -79,6 +81,17 @@ namespace Tango.PMR.Printing { } } + /// <summary>Field number for the "FirstUnitStartPosition" field.</summary> + public const int FirstUnitStartPositionFieldNumber = 2; + private double firstUnitStartPosition_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double FirstUnitStartPosition { + get { return firstUnitStartPosition_; } + set { + firstUnitStartPosition_ = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { return Equals(other as JobRequest); @@ -93,6 +106,7 @@ namespace Tango.PMR.Printing { return true; } if (!object.Equals(JobTicket, other.JobTicket)) return false; + if (FirstUnitStartPosition != other.FirstUnitStartPosition) return false; return true; } @@ -100,6 +114,7 @@ namespace Tango.PMR.Printing { public override int GetHashCode() { int hash = 1; if (jobTicket_ != null) hash ^= JobTicket.GetHashCode(); + if (FirstUnitStartPosition != 0D) hash ^= FirstUnitStartPosition.GetHashCode(); return hash; } @@ -114,6 +129,10 @@ namespace Tango.PMR.Printing { output.WriteRawTag(10); output.WriteMessage(JobTicket); } + if (FirstUnitStartPosition != 0D) { + output.WriteRawTag(17); + output.WriteDouble(FirstUnitStartPosition); + } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -122,6 +141,9 @@ namespace Tango.PMR.Printing { if (jobTicket_ != null) { size += 1 + pb::CodedOutputStream.ComputeMessageSize(JobTicket); } + if (FirstUnitStartPosition != 0D) { + size += 1 + 8; + } return size; } @@ -136,6 +158,9 @@ namespace Tango.PMR.Printing { } JobTicket.MergeFrom(other.JobTicket); } + if (other.FirstUnitStartPosition != 0D) { + FirstUnitStartPosition = other.FirstUnitStartPosition; + } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -153,6 +178,10 @@ namespace Tango.PMR.Printing { input.ReadMessage(jobTicket_); break; } + case 17: { + FirstUnitStartPosition = input.ReadDouble(); + break; + } } } } diff --git a/Software/Visual_Studio/Tango.PMR/Printing/ProcessParameters.cs b/Software/Visual_Studio/Tango.PMR/Printing/ProcessParameters.cs index 0d45ef6bf..746e8da4d 100644 --- a/Software/Visual_Studio/Tango.PMR/Printing/ProcessParameters.cs +++ b/Software/Visual_Studio/Tango.PMR/Printing/ProcessParameters.cs @@ -23,7 +23,7 @@ namespace Tango.PMR.Printing { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( "ChdQcm9jZXNzUGFyYW1ldGVycy5wcm90bxISVGFuZ28uUE1SLlByaW50aW5n", - "IqMGChFQcm9jZXNzUGFyYW1ldGVycxITCgtEeWVpbmdTcGVlZBgBIAEoARIU", + "IoUMChFQcm9jZXNzUGFyYW1ldGVycxITCgtEeWVpbmdTcGVlZBgBIAEoARIU", "CgxNaW5JbmtVcHRha2UYAiABKAESFAoMTWF4SW5rVXB0YWtlGAMgASgBEhUK", "DUZlZWRlclRlbnNpb24YBCABKAESFQoNUHVsbGVyVGVuc2lvbhgFIAEoARIV", "Cg1XaW5kZXJUZW5zaW9uGAYgASgBEhEKCU1peGVyVGVtcBgHIAEoARIVCg1I", @@ -40,12 +40,29 @@ namespace Tango.PMR.Printing { "dxgbIAEoARITCgtSQmxvd2VyVGVtcBgcIAEoARITCgtMQmxvd2VyRmxvdxgd", "IAEoARITCgtMQmxvd2VyVGVtcBgeIAEoARIXCg9QcmVzc3VyZUJ1aWxkVXAY", "HyABKAESGgoSQnRzckZlZWRpbmdUZW5zaW9uGCAgASgBEhMKC0V4aXRUZW5z", - "aW9uGCEgASgBEh4KFkJ0c3JUaHJlYWRMZW5ndGhPZmZzZXQYIiABKAFCHgoc", - "Y29tLnR3aW5lLnRhbmdvLnBtci5wcmludGluZ2IGcHJvdG8z")); + "aW9uGCEgASgBEh4KFkJ0c3JUaHJlYWRMZW5ndGhPZmZzZXQYIiABKAESFwoP", + "RVdpbmRlcjFUZW5zaW9uGCMgASgBEhcKD0VXaW5kZXIyVGVuc2lvbhgkIAEo", + "ARIXCg9FV2luZGVyM1RlbnNpb24YJSABKAESFwoPRVdpbmRlcjRUZW5zaW9u", + "GCYgASgBEhwKFEVCdHNyMUZlZWRpbmdUZW5zaW9uGCcgASgBEhwKFEVCdHNy", + "MkZlZWRpbmdUZW5zaW9uGCggASgBEhwKFEVCdHNyM0ZlZWRpbmdUZW5zaW9u", + "GCkgASgBEhwKFEVCdHNyNEZlZWRpbmdUZW5zaW9uGCogASgBEhIKCkVNaXhl", + "clRlbXAYKyABKAESFgoORUhlYWRab25lMVRlbXAYLCABKAESFgoORUhlYWRa", + "b25lMlRlbXAYLSABKAESFgoORUhlYWRab25lM1RlbXAYLiABKAESFwoPRURy", + "eWVyWm9uZTFUZW1wGC8gASgBEhcKD0VEcnllclpvbmUyVGVtcBgwIAEoARIX", + "Cg9FRHJ5ZXJab25lM1RlbXAYMSABKAESFgoORUx1YnJpY2FudFRlbXAYMiAB", + "KAESHQoVRURyeWVySW5jb21pbmdBaXJGbG93GDMgASgBEh0KFUVEcnllck91", + "dGdvaW5nQWlyRmxvdxg0IAEoARIeChZFVHVubmVsSW5jb21pbmdBaXJGbG93", + "GDUgASgBEh4KFkVUdW5uZWxPdXRnb2luZ0FpckZsb3cYNiABKAESFQoNRVdh", + "c3RlQWlyRmxvdxg3IAEoARIZChFFV2FzdGVQcmVwYXJlVGltZRg4IAEoARIR", + "CglFUHVtcFRlbXAYOSABKAESGAoQRVByZXNzdXJlQnVpbGRVcBg6IAEoARIP", + "CgdFU3BhcmUxGDsgASgBEg8KB0VTcGFyZTIYPCABKAESDwoHRVNwYXJlMxg9", + "IAEoARIPCgdFU3BhcmU0GD4gASgBEg8KB0VTcGFyZTUYPyABKAESEwoLRVR1", + "bm5lbFRlbXAYQCABKAFCHgocY29tLnR3aW5lLnRhbmdvLnBtci5wcmludGlu", + "Z2IGcHJvdG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Printing.ProcessParameters), global::Tango.PMR.Printing.ProcessParameters.Parser, new[]{ "DyeingSpeed", "MinInkUptake", "MaxInkUptake", "FeederTension", "PullerTension", "WinderTension", "MixerTemp", "HeadZone1Temp", "HeadZone2Temp", "HeadZone3Temp", "HeadZone4Temp", "HeadZone5Temp", "HeadZone6Temp", "DryerAirFlow", "DryerZone1Temp", "DryerZone2Temp", "DryerZone3Temp", "DryerBufferLength", "HeadAirFlow", "TableIndex", "HeadZone7Temp", "HeadZone8Temp", "HeadZone9Temp", "HeadZone10Temp", "HeadZone11Temp", "HeadZone12Temp", "RBlowerFlow", "RBlowerTemp", "LBlowerFlow", "LBlowerTemp", "PressureBuildUp", "BtsrFeedingTension", "ExitTension", "BtsrThreadLengthOffset" }, null, null, null) + new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Printing.ProcessParameters), global::Tango.PMR.Printing.ProcessParameters.Parser, new[]{ "DyeingSpeed", "MinInkUptake", "MaxInkUptake", "FeederTension", "PullerTension", "WinderTension", "MixerTemp", "HeadZone1Temp", "HeadZone2Temp", "HeadZone3Temp", "HeadZone4Temp", "HeadZone5Temp", "HeadZone6Temp", "DryerAirFlow", "DryerZone1Temp", "DryerZone2Temp", "DryerZone3Temp", "DryerBufferLength", "HeadAirFlow", "TableIndex", "HeadZone7Temp", "HeadZone8Temp", "HeadZone9Temp", "HeadZone10Temp", "HeadZone11Temp", "HeadZone12Temp", "RBlowerFlow", "RBlowerTemp", "LBlowerFlow", "LBlowerTemp", "PressureBuildUp", "BtsrFeedingTension", "ExitTension", "BtsrThreadLengthOffset", "EWinder1Tension", "EWinder2Tension", "EWinder3Tension", "EWinder4Tension", "EBtsr1FeedingTension", "EBtsr2FeedingTension", "EBtsr3FeedingTension", "EBtsr4FeedingTension", "EMixerTemp", "EHeadZone1Temp", "EHeadZone2Temp", "EHeadZone3Temp", "EDryerZone1Temp", "EDryerZone2Temp", "EDryerZone3Temp", "ELubricantTemp", "EDryerIncomingAirFlow", "EDryerOutgoingAirFlow", "ETunnelIncomingAirFlow", "ETunnelOutgoingAirFlow", "EWasteAirFlow", "EWastePrepareTime", "EPumpTemp", "EPressureBuildUp", "ESpare1", "ESpare2", "ESpare3", "ESpare4", "ESpare5", "ETunnelTemp" }, null, null, null) })); } #endregion @@ -110,6 +127,36 @@ namespace Tango.PMR.Printing { btsrFeedingTension_ = other.btsrFeedingTension_; exitTension_ = other.exitTension_; btsrThreadLengthOffset_ = other.btsrThreadLengthOffset_; + eWinder1Tension_ = other.eWinder1Tension_; + eWinder2Tension_ = other.eWinder2Tension_; + eWinder3Tension_ = other.eWinder3Tension_; + eWinder4Tension_ = other.eWinder4Tension_; + eBtsr1FeedingTension_ = other.eBtsr1FeedingTension_; + eBtsr2FeedingTension_ = other.eBtsr2FeedingTension_; + eBtsr3FeedingTension_ = other.eBtsr3FeedingTension_; + eBtsr4FeedingTension_ = other.eBtsr4FeedingTension_; + eMixerTemp_ = other.eMixerTemp_; + eHeadZone1Temp_ = other.eHeadZone1Temp_; + eHeadZone2Temp_ = other.eHeadZone2Temp_; + eHeadZone3Temp_ = other.eHeadZone3Temp_; + eDryerZone1Temp_ = other.eDryerZone1Temp_; + eDryerZone2Temp_ = other.eDryerZone2Temp_; + eDryerZone3Temp_ = other.eDryerZone3Temp_; + eLubricantTemp_ = other.eLubricantTemp_; + eDryerIncomingAirFlow_ = other.eDryerIncomingAirFlow_; + eDryerOutgoingAirFlow_ = other.eDryerOutgoingAirFlow_; + eTunnelIncomingAirFlow_ = other.eTunnelIncomingAirFlow_; + eTunnelOutgoingAirFlow_ = other.eTunnelOutgoingAirFlow_; + eWasteAirFlow_ = other.eWasteAirFlow_; + eWastePrepareTime_ = other.eWastePrepareTime_; + ePumpTemp_ = other.ePumpTemp_; + ePressureBuildUp_ = other.ePressureBuildUp_; + eSpare1_ = other.eSpare1_; + eSpare2_ = other.eSpare2_; + eSpare3_ = other.eSpare3_; + eSpare4_ = other.eSpare4_; + eSpare5_ = other.eSpare5_; + eTunnelTemp_ = other.eTunnelTemp_; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -491,6 +538,336 @@ namespace Tango.PMR.Printing { } } + /// <summary>Field number for the "EWinder1Tension" field.</summary> + public const int EWinder1TensionFieldNumber = 35; + private double eWinder1Tension_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EWinder1Tension { + get { return eWinder1Tension_; } + set { + eWinder1Tension_ = value; + } + } + + /// <summary>Field number for the "EWinder2Tension" field.</summary> + public const int EWinder2TensionFieldNumber = 36; + private double eWinder2Tension_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EWinder2Tension { + get { return eWinder2Tension_; } + set { + eWinder2Tension_ = value; + } + } + + /// <summary>Field number for the "EWinder3Tension" field.</summary> + public const int EWinder3TensionFieldNumber = 37; + private double eWinder3Tension_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EWinder3Tension { + get { return eWinder3Tension_; } + set { + eWinder3Tension_ = value; + } + } + + /// <summary>Field number for the "EWinder4Tension" field.</summary> + public const int EWinder4TensionFieldNumber = 38; + private double eWinder4Tension_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EWinder4Tension { + get { return eWinder4Tension_; } + set { + eWinder4Tension_ = value; + } + } + + /// <summary>Field number for the "EBtsr1FeedingTension" field.</summary> + public const int EBtsr1FeedingTensionFieldNumber = 39; + private double eBtsr1FeedingTension_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EBtsr1FeedingTension { + get { return eBtsr1FeedingTension_; } + set { + eBtsr1FeedingTension_ = value; + } + } + + /// <summary>Field number for the "EBtsr2FeedingTension" field.</summary> + public const int EBtsr2FeedingTensionFieldNumber = 40; + private double eBtsr2FeedingTension_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EBtsr2FeedingTension { + get { return eBtsr2FeedingTension_; } + set { + eBtsr2FeedingTension_ = value; + } + } + + /// <summary>Field number for the "EBtsr3FeedingTension" field.</summary> + public const int EBtsr3FeedingTensionFieldNumber = 41; + private double eBtsr3FeedingTension_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EBtsr3FeedingTension { + get { return eBtsr3FeedingTension_; } + set { + eBtsr3FeedingTension_ = value; + } + } + + /// <summary>Field number for the "EBtsr4FeedingTension" field.</summary> + public const int EBtsr4FeedingTensionFieldNumber = 42; + private double eBtsr4FeedingTension_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EBtsr4FeedingTension { + get { return eBtsr4FeedingTension_; } + set { + eBtsr4FeedingTension_ = value; + } + } + + /// <summary>Field number for the "EMixerTemp" field.</summary> + public const int EMixerTempFieldNumber = 43; + private double eMixerTemp_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EMixerTemp { + get { return eMixerTemp_; } + set { + eMixerTemp_ = value; + } + } + + /// <summary>Field number for the "EHeadZone1Temp" field.</summary> + public const int EHeadZone1TempFieldNumber = 44; + private double eHeadZone1Temp_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EHeadZone1Temp { + get { return eHeadZone1Temp_; } + set { + eHeadZone1Temp_ = value; + } + } + + /// <summary>Field number for the "EHeadZone2Temp" field.</summary> + public const int EHeadZone2TempFieldNumber = 45; + private double eHeadZone2Temp_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EHeadZone2Temp { + get { return eHeadZone2Temp_; } + set { + eHeadZone2Temp_ = value; + } + } + + /// <summary>Field number for the "EHeadZone3Temp" field.</summary> + public const int EHeadZone3TempFieldNumber = 46; + private double eHeadZone3Temp_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EHeadZone3Temp { + get { return eHeadZone3Temp_; } + set { + eHeadZone3Temp_ = value; + } + } + + /// <summary>Field number for the "EDryerZone1Temp" field.</summary> + public const int EDryerZone1TempFieldNumber = 47; + private double eDryerZone1Temp_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EDryerZone1Temp { + get { return eDryerZone1Temp_; } + set { + eDryerZone1Temp_ = value; + } + } + + /// <summary>Field number for the "EDryerZone2Temp" field.</summary> + public const int EDryerZone2TempFieldNumber = 48; + private double eDryerZone2Temp_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EDryerZone2Temp { + get { return eDryerZone2Temp_; } + set { + eDryerZone2Temp_ = value; + } + } + + /// <summary>Field number for the "EDryerZone3Temp" field.</summary> + public const int EDryerZone3TempFieldNumber = 49; + private double eDryerZone3Temp_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EDryerZone3Temp { + get { return eDryerZone3Temp_; } + set { + eDryerZone3Temp_ = value; + } + } + + /// <summary>Field number for the "ELubricantTemp" field.</summary> + public const int ELubricantTempFieldNumber = 50; + private double eLubricantTemp_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double ELubricantTemp { + get { return eLubricantTemp_; } + set { + eLubricantTemp_ = value; + } + } + + /// <summary>Field number for the "EDryerIncomingAirFlow" field.</summary> + public const int EDryerIncomingAirFlowFieldNumber = 51; + private double eDryerIncomingAirFlow_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EDryerIncomingAirFlow { + get { return eDryerIncomingAirFlow_; } + set { + eDryerIncomingAirFlow_ = value; + } + } + + /// <summary>Field number for the "EDryerOutgoingAirFlow" field.</summary> + public const int EDryerOutgoingAirFlowFieldNumber = 52; + private double eDryerOutgoingAirFlow_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EDryerOutgoingAirFlow { + get { return eDryerOutgoingAirFlow_; } + set { + eDryerOutgoingAirFlow_ = value; + } + } + + /// <summary>Field number for the "ETunnelIncomingAirFlow" field.</summary> + public const int ETunnelIncomingAirFlowFieldNumber = 53; + private double eTunnelIncomingAirFlow_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double ETunnelIncomingAirFlow { + get { return eTunnelIncomingAirFlow_; } + set { + eTunnelIncomingAirFlow_ = value; + } + } + + /// <summary>Field number for the "ETunnelOutgoingAirFlow" field.</summary> + public const int ETunnelOutgoingAirFlowFieldNumber = 54; + private double eTunnelOutgoingAirFlow_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double ETunnelOutgoingAirFlow { + get { return eTunnelOutgoingAirFlow_; } + set { + eTunnelOutgoingAirFlow_ = value; + } + } + + /// <summary>Field number for the "EWasteAirFlow" field.</summary> + public const int EWasteAirFlowFieldNumber = 55; + private double eWasteAirFlow_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EWasteAirFlow { + get { return eWasteAirFlow_; } + set { + eWasteAirFlow_ = value; + } + } + + /// <summary>Field number for the "EWastePrepareTime" field.</summary> + public const int EWastePrepareTimeFieldNumber = 56; + private double eWastePrepareTime_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EWastePrepareTime { + get { return eWastePrepareTime_; } + set { + eWastePrepareTime_ = value; + } + } + + /// <summary>Field number for the "EPumpTemp" field.</summary> + public const int EPumpTempFieldNumber = 57; + private double ePumpTemp_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EPumpTemp { + get { return ePumpTemp_; } + set { + ePumpTemp_ = value; + } + } + + /// <summary>Field number for the "EPressureBuildUp" field.</summary> + public const int EPressureBuildUpFieldNumber = 58; + private double ePressureBuildUp_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double EPressureBuildUp { + get { return ePressureBuildUp_; } + set { + ePressureBuildUp_ = value; + } + } + + /// <summary>Field number for the "ESpare1" field.</summary> + public const int ESpare1FieldNumber = 59; + private double eSpare1_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double ESpare1 { + get { return eSpare1_; } + set { + eSpare1_ = value; + } + } + + /// <summary>Field number for the "ESpare2" field.</summary> + public const int ESpare2FieldNumber = 60; + private double eSpare2_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double ESpare2 { + get { return eSpare2_; } + set { + eSpare2_ = value; + } + } + + /// <summary>Field number for the "ESpare3" field.</summary> + public const int ESpare3FieldNumber = 61; + private double eSpare3_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double ESpare3 { + get { return eSpare3_; } + set { + eSpare3_ = value; + } + } + + /// <summary>Field number for the "ESpare4" field.</summary> + public const int ESpare4FieldNumber = 62; + private double eSpare4_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double ESpare4 { + get { return eSpare4_; } + set { + eSpare4_ = value; + } + } + + /// <summary>Field number for the "ESpare5" field.</summary> + public const int ESpare5FieldNumber = 63; + private double eSpare5_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double ESpare5 { + get { return eSpare5_; } + set { + eSpare5_ = value; + } + } + + /// <summary>Field number for the "ETunnelTemp" field.</summary> + public const int ETunnelTempFieldNumber = 64; + private double eTunnelTemp_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double ETunnelTemp { + get { return eTunnelTemp_; } + set { + eTunnelTemp_ = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { return Equals(other as ProcessParameters); @@ -538,6 +915,36 @@ namespace Tango.PMR.Printing { if (BtsrFeedingTension != other.BtsrFeedingTension) return false; if (ExitTension != other.ExitTension) return false; if (BtsrThreadLengthOffset != other.BtsrThreadLengthOffset) return false; + if (EWinder1Tension != other.EWinder1Tension) return false; + if (EWinder2Tension != other.EWinder2Tension) return false; + if (EWinder3Tension != other.EWinder3Tension) return false; + if (EWinder4Tension != other.EWinder4Tension) return false; + if (EBtsr1FeedingTension != other.EBtsr1FeedingTension) return false; + if (EBtsr2FeedingTension != other.EBtsr2FeedingTension) return false; + if (EBtsr3FeedingTension != other.EBtsr3FeedingTension) return false; + if (EBtsr4FeedingTension != other.EBtsr4FeedingTension) return false; + if (EMixerTemp != other.EMixerTemp) return false; + if (EHeadZone1Temp != other.EHeadZone1Temp) return false; + if (EHeadZone2Temp != other.EHeadZone2Temp) return false; + if (EHeadZone3Temp != other.EHeadZone3Temp) return false; + if (EDryerZone1Temp != other.EDryerZone1Temp) return false; + if (EDryerZone2Temp != other.EDryerZone2Temp) return false; + if (EDryerZone3Temp != other.EDryerZone3Temp) return false; + if (ELubricantTemp != other.ELubricantTemp) return false; + if (EDryerIncomingAirFlow != other.EDryerIncomingAirFlow) return false; + if (EDryerOutgoingAirFlow != other.EDryerOutgoingAirFlow) return false; + if (ETunnelIncomingAirFlow != other.ETunnelIncomingAirFlow) return false; + if (ETunnelOutgoingAirFlow != other.ETunnelOutgoingAirFlow) return false; + if (EWasteAirFlow != other.EWasteAirFlow) return false; + if (EWastePrepareTime != other.EWastePrepareTime) return false; + if (EPumpTemp != other.EPumpTemp) return false; + if (EPressureBuildUp != other.EPressureBuildUp) return false; + if (ESpare1 != other.ESpare1) return false; + if (ESpare2 != other.ESpare2) return false; + if (ESpare3 != other.ESpare3) return false; + if (ESpare4 != other.ESpare4) return false; + if (ESpare5 != other.ESpare5) return false; + if (ETunnelTemp != other.ETunnelTemp) return false; return true; } @@ -578,6 +985,36 @@ namespace Tango.PMR.Printing { if (BtsrFeedingTension != 0D) hash ^= BtsrFeedingTension.GetHashCode(); if (ExitTension != 0D) hash ^= ExitTension.GetHashCode(); if (BtsrThreadLengthOffset != 0D) hash ^= BtsrThreadLengthOffset.GetHashCode(); + if (EWinder1Tension != 0D) hash ^= EWinder1Tension.GetHashCode(); + if (EWinder2Tension != 0D) hash ^= EWinder2Tension.GetHashCode(); + if (EWinder3Tension != 0D) hash ^= EWinder3Tension.GetHashCode(); + if (EWinder4Tension != 0D) hash ^= EWinder4Tension.GetHashCode(); + if (EBtsr1FeedingTension != 0D) hash ^= EBtsr1FeedingTension.GetHashCode(); + if (EBtsr2FeedingTension != 0D) hash ^= EBtsr2FeedingTension.GetHashCode(); + if (EBtsr3FeedingTension != 0D) hash ^= EBtsr3FeedingTension.GetHashCode(); + if (EBtsr4FeedingTension != 0D) hash ^= EBtsr4FeedingTension.GetHashCode(); + if (EMixerTemp != 0D) hash ^= EMixerTemp.GetHashCode(); + if (EHeadZone1Temp != 0D) hash ^= EHeadZone1Temp.GetHashCode(); + if (EHeadZone2Temp != 0D) hash ^= EHeadZone2Temp.GetHashCode(); + if (EHeadZone3Temp != 0D) hash ^= EHeadZone3Temp.GetHashCode(); + if (EDryerZone1Temp != 0D) hash ^= EDryerZone1Temp.GetHashCode(); + if (EDryerZone2Temp != 0D) hash ^= EDryerZone2Temp.GetHashCode(); + if (EDryerZone3Temp != 0D) hash ^= EDryerZone3Temp.GetHashCode(); + if (ELubricantTemp != 0D) hash ^= ELubricantTemp.GetHashCode(); + if (EDryerIncomingAirFlow != 0D) hash ^= EDryerIncomingAirFlow.GetHashCode(); + if (EDryerOutgoingAirFlow != 0D) hash ^= EDryerOutgoingAirFlow.GetHashCode(); + if (ETunnelIncomingAirFlow != 0D) hash ^= ETunnelIncomingAirFlow.GetHashCode(); + if (ETunnelOutgoingAirFlow != 0D) hash ^= ETunnelOutgoingAirFlow.GetHashCode(); + if (EWasteAirFlow != 0D) hash ^= EWasteAirFlow.GetHashCode(); + if (EWastePrepareTime != 0D) hash ^= EWastePrepareTime.GetHashCode(); + if (EPumpTemp != 0D) hash ^= EPumpTemp.GetHashCode(); + if (EPressureBuildUp != 0D) hash ^= EPressureBuildUp.GetHashCode(); + if (ESpare1 != 0D) hash ^= ESpare1.GetHashCode(); + if (ESpare2 != 0D) hash ^= ESpare2.GetHashCode(); + if (ESpare3 != 0D) hash ^= ESpare3.GetHashCode(); + if (ESpare4 != 0D) hash ^= ESpare4.GetHashCode(); + if (ESpare5 != 0D) hash ^= ESpare5.GetHashCode(); + if (ETunnelTemp != 0D) hash ^= ETunnelTemp.GetHashCode(); return hash; } @@ -724,6 +1161,126 @@ namespace Tango.PMR.Printing { output.WriteRawTag(145, 2); output.WriteDouble(BtsrThreadLengthOffset); } + if (EWinder1Tension != 0D) { + output.WriteRawTag(153, 2); + output.WriteDouble(EWinder1Tension); + } + if (EWinder2Tension != 0D) { + output.WriteRawTag(161, 2); + output.WriteDouble(EWinder2Tension); + } + if (EWinder3Tension != 0D) { + output.WriteRawTag(169, 2); + output.WriteDouble(EWinder3Tension); + } + if (EWinder4Tension != 0D) { + output.WriteRawTag(177, 2); + output.WriteDouble(EWinder4Tension); + } + if (EBtsr1FeedingTension != 0D) { + output.WriteRawTag(185, 2); + output.WriteDouble(EBtsr1FeedingTension); + } + if (EBtsr2FeedingTension != 0D) { + output.WriteRawTag(193, 2); + output.WriteDouble(EBtsr2FeedingTension); + } + if (EBtsr3FeedingTension != 0D) { + output.WriteRawTag(201, 2); + output.WriteDouble(EBtsr3FeedingTension); + } + if (EBtsr4FeedingTension != 0D) { + output.WriteRawTag(209, 2); + output.WriteDouble(EBtsr4FeedingTension); + } + if (EMixerTemp != 0D) { + output.WriteRawTag(217, 2); + output.WriteDouble(EMixerTemp); + } + if (EHeadZone1Temp != 0D) { + output.WriteRawTag(225, 2); + output.WriteDouble(EHeadZone1Temp); + } + if (EHeadZone2Temp != 0D) { + output.WriteRawTag(233, 2); + output.WriteDouble(EHeadZone2Temp); + } + if (EHeadZone3Temp != 0D) { + output.WriteRawTag(241, 2); + output.WriteDouble(EHeadZone3Temp); + } + if (EDryerZone1Temp != 0D) { + output.WriteRawTag(249, 2); + output.WriteDouble(EDryerZone1Temp); + } + if (EDryerZone2Temp != 0D) { + output.WriteRawTag(129, 3); + output.WriteDouble(EDryerZone2Temp); + } + if (EDryerZone3Temp != 0D) { + output.WriteRawTag(137, 3); + output.WriteDouble(EDryerZone3Temp); + } + if (ELubricantTemp != 0D) { + output.WriteRawTag(145, 3); + output.WriteDouble(ELubricantTemp); + } + if (EDryerIncomingAirFlow != 0D) { + output.WriteRawTag(153, 3); + output.WriteDouble(EDryerIncomingAirFlow); + } + if (EDryerOutgoingAirFlow != 0D) { + output.WriteRawTag(161, 3); + output.WriteDouble(EDryerOutgoingAirFlow); + } + if (ETunnelIncomingAirFlow != 0D) { + output.WriteRawTag(169, 3); + output.WriteDouble(ETunnelIncomingAirFlow); + } + if (ETunnelOutgoingAirFlow != 0D) { + output.WriteRawTag(177, 3); + output.WriteDouble(ETunnelOutgoingAirFlow); + } + if (EWasteAirFlow != 0D) { + output.WriteRawTag(185, 3); + output.WriteDouble(EWasteAirFlow); + } + if (EWastePrepareTime != 0D) { + output.WriteRawTag(193, 3); + output.WriteDouble(EWastePrepareTime); + } + if (EPumpTemp != 0D) { + output.WriteRawTag(201, 3); + output.WriteDouble(EPumpTemp); + } + if (EPressureBuildUp != 0D) { + output.WriteRawTag(209, 3); + output.WriteDouble(EPressureBuildUp); + } + if (ESpare1 != 0D) { + output.WriteRawTag(217, 3); + output.WriteDouble(ESpare1); + } + if (ESpare2 != 0D) { + output.WriteRawTag(225, 3); + output.WriteDouble(ESpare2); + } + if (ESpare3 != 0D) { + output.WriteRawTag(233, 3); + output.WriteDouble(ESpare3); + } + if (ESpare4 != 0D) { + output.WriteRawTag(241, 3); + output.WriteDouble(ESpare4); + } + if (ESpare5 != 0D) { + output.WriteRawTag(249, 3); + output.WriteDouble(ESpare5); + } + if (ETunnelTemp != 0D) { + output.WriteRawTag(129, 4); + output.WriteDouble(ETunnelTemp); + } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -831,6 +1388,96 @@ namespace Tango.PMR.Printing { if (BtsrThreadLengthOffset != 0D) { size += 2 + 8; } + if (EWinder1Tension != 0D) { + size += 2 + 8; + } + if (EWinder2Tension != 0D) { + size += 2 + 8; + } + if (EWinder3Tension != 0D) { + size += 2 + 8; + } + if (EWinder4Tension != 0D) { + size += 2 + 8; + } + if (EBtsr1FeedingTension != 0D) { + size += 2 + 8; + } + if (EBtsr2FeedingTension != 0D) { + size += 2 + 8; + } + if (EBtsr3FeedingTension != 0D) { + size += 2 + 8; + } + if (EBtsr4FeedingTension != 0D) { + size += 2 + 8; + } + if (EMixerTemp != 0D) { + size += 2 + 8; + } + if (EHeadZone1Temp != 0D) { + size += 2 + 8; + } + if (EHeadZone2Temp != 0D) { + size += 2 + 8; + } + if (EHeadZone3Temp != 0D) { + size += 2 + 8; + } + if (EDryerZone1Temp != 0D) { + size += 2 + 8; + } + if (EDryerZone2Temp != 0D) { + size += 2 + 8; + } + if (EDryerZone3Temp != 0D) { + size += 2 + 8; + } + if (ELubricantTemp != 0D) { + size += 2 + 8; + } + if (EDryerIncomingAirFlow != 0D) { + size += 2 + 8; + } + if (EDryerOutgoingAirFlow != 0D) { + size += 2 + 8; + } + if (ETunnelIncomingAirFlow != 0D) { + size += 2 + 8; + } + if (ETunnelOutgoingAirFlow != 0D) { + size += 2 + 8; + } + if (EWasteAirFlow != 0D) { + size += 2 + 8; + } + if (EWastePrepareTime != 0D) { + size += 2 + 8; + } + if (EPumpTemp != 0D) { + size += 2 + 8; + } + if (EPressureBuildUp != 0D) { + size += 2 + 8; + } + if (ESpare1 != 0D) { + size += 2 + 8; + } + if (ESpare2 != 0D) { + size += 2 + 8; + } + if (ESpare3 != 0D) { + size += 2 + 8; + } + if (ESpare4 != 0D) { + size += 2 + 8; + } + if (ESpare5 != 0D) { + size += 2 + 8; + } + if (ETunnelTemp != 0D) { + size += 2 + 8; + } return size; } @@ -941,6 +1588,96 @@ namespace Tango.PMR.Printing { if (other.BtsrThreadLengthOffset != 0D) { BtsrThreadLengthOffset = other.BtsrThreadLengthOffset; } + if (other.EWinder1Tension != 0D) { + EWinder1Tension = other.EWinder1Tension; + } + if (other.EWinder2Tension != 0D) { + EWinder2Tension = other.EWinder2Tension; + } + if (other.EWinder3Tension != 0D) { + EWinder3Tension = other.EWinder3Tension; + } + if (other.EWinder4Tension != 0D) { + EWinder4Tension = other.EWinder4Tension; + } + if (other.EBtsr1FeedingTension != 0D) { + EBtsr1FeedingTension = other.EBtsr1FeedingTension; + } + if (other.EBtsr2FeedingTension != 0D) { + EBtsr2FeedingTension = other.EBtsr2FeedingTension; + } + if (other.EBtsr3FeedingTension != 0D) { + EBtsr3FeedingTension = other.EBtsr3FeedingTension; + } + if (other.EBtsr4FeedingTension != 0D) { + EBtsr4FeedingTension = other.EBtsr4FeedingTension; + } + if (other.EMixerTemp != 0D) { + EMixerTemp = other.EMixerTemp; + } + if (other.EHeadZone1Temp != 0D) { + EHeadZone1Temp = other.EHeadZone1Temp; + } + if (other.EHeadZone2Temp != 0D) { + EHeadZone2Temp = other.EHeadZone2Temp; + } + if (other.EHeadZone3Temp != 0D) { + EHeadZone3Temp = other.EHeadZone3Temp; + } + if (other.EDryerZone1Temp != 0D) { + EDryerZone1Temp = other.EDryerZone1Temp; + } + if (other.EDryerZone2Temp != 0D) { + EDryerZone2Temp = other.EDryerZone2Temp; + } + if (other.EDryerZone3Temp != 0D) { + EDryerZone3Temp = other.EDryerZone3Temp; + } + if (other.ELubricantTemp != 0D) { + ELubricantTemp = other.ELubricantTemp; + } + if (other.EDryerIncomingAirFlow != 0D) { + EDryerIncomingAirFlow = other.EDryerIncomingAirFlow; + } + if (other.EDryerOutgoingAirFlow != 0D) { + EDryerOutgoingAirFlow = other.EDryerOutgoingAirFlow; + } + if (other.ETunnelIncomingAirFlow != 0D) { + ETunnelIncomingAirFlow = other.ETunnelIncomingAirFlow; + } + if (other.ETunnelOutgoingAirFlow != 0D) { + ETunnelOutgoingAirFlow = other.ETunnelOutgoingAirFlow; + } + if (other.EWasteAirFlow != 0D) { + EWasteAirFlow = other.EWasteAirFlow; + } + if (other.EWastePrepareTime != 0D) { + EWastePrepareTime = other.EWastePrepareTime; + } + if (other.EPumpTemp != 0D) { + EPumpTemp = other.EPumpTemp; + } + if (other.EPressureBuildUp != 0D) { + EPressureBuildUp = other.EPressureBuildUp; + } + if (other.ESpare1 != 0D) { + ESpare1 = other.ESpare1; + } + if (other.ESpare2 != 0D) { + ESpare2 = other.ESpare2; + } + if (other.ESpare3 != 0D) { + ESpare3 = other.ESpare3; + } + if (other.ESpare4 != 0D) { + ESpare4 = other.ESpare4; + } + if (other.ESpare5 != 0D) { + ESpare5 = other.ESpare5; + } + if (other.ETunnelTemp != 0D) { + ETunnelTemp = other.ETunnelTemp; + } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -1087,6 +1824,126 @@ namespace Tango.PMR.Printing { BtsrThreadLengthOffset = input.ReadDouble(); break; } + case 281: { + EWinder1Tension = input.ReadDouble(); + break; + } + case 289: { + EWinder2Tension = input.ReadDouble(); + break; + } + case 297: { + EWinder3Tension = input.ReadDouble(); + break; + } + case 305: { + EWinder4Tension = input.ReadDouble(); + break; + } + case 313: { + EBtsr1FeedingTension = input.ReadDouble(); + break; + } + case 321: { + EBtsr2FeedingTension = input.ReadDouble(); + break; + } + case 329: { + EBtsr3FeedingTension = input.ReadDouble(); + break; + } + case 337: { + EBtsr4FeedingTension = input.ReadDouble(); + break; + } + case 345: { + EMixerTemp = input.ReadDouble(); + break; + } + case 353: { + EHeadZone1Temp = input.ReadDouble(); + break; + } + case 361: { + EHeadZone2Temp = input.ReadDouble(); + break; + } + case 369: { + EHeadZone3Temp = input.ReadDouble(); + break; + } + case 377: { + EDryerZone1Temp = input.ReadDouble(); + break; + } + case 385: { + EDryerZone2Temp = input.ReadDouble(); + break; + } + case 393: { + EDryerZone3Temp = input.ReadDouble(); + break; + } + case 401: { + ELubricantTemp = input.ReadDouble(); + break; + } + case 409: { + EDryerIncomingAirFlow = input.ReadDouble(); + break; + } + case 417: { + EDryerOutgoingAirFlow = input.ReadDouble(); + break; + } + case 425: { + ETunnelIncomingAirFlow = input.ReadDouble(); + break; + } + case 433: { + ETunnelOutgoingAirFlow = input.ReadDouble(); + break; + } + case 441: { + EWasteAirFlow = input.ReadDouble(); + break; + } + case 449: { + EWastePrepareTime = input.ReadDouble(); + break; + } + case 457: { + EPumpTemp = input.ReadDouble(); + break; + } + case 465: { + EPressureBuildUp = input.ReadDouble(); + break; + } + case 473: { + ESpare1 = input.ReadDouble(); + break; + } + case 481: { + ESpare2 = input.ReadDouble(); + break; + } + case 489: { + ESpare3 = input.ReadDouble(); + break; + } + case 497: { + ESpare4 = input.ReadDouble(); + break; + } + case 505: { + ESpare5 = input.ReadDouble(); + break; + } + case 513: { + ETunnelTemp = input.ReadDouble(); + break; + } } } } diff --git a/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj b/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj index 50c0966c3..d7ef29237 100644 --- a/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj +++ b/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj @@ -79,6 +79,7 @@ <Compile Include="ColorLab\RecommendedProcessTableInput.cs" /> <Compile Include="ColorLab\RecommendedProcessTableOutput.cs" /> <Compile Include="Common\ErrorResponse.cs" /> + <Compile Include="Common\MachineType.cs" /> <Compile Include="Connection\ConnectRequest.cs" /> <Compile Include="Connection\ConnectResponse.cs" /> <Compile Include="Connection\DeviceInformation.cs" /> @@ -144,6 +145,8 @@ <Compile Include="Diagnostics\MotorHomingResponse.cs" /> <Compile Include="Diagnostics\MotorJoggingRequest.cs" /> <Compile Include="Diagnostics\MotorJoggingResponse.cs" /> + <Compile Include="Diagnostics\ResetCardRequest.cs" /> + <Compile Include="Diagnostics\ResetCardResponse.cs" /> <Compile Include="Diagnostics\ResolveEventRequest.cs" /> <Compile Include="Diagnostics\ResolveEventResponse.cs" /> <Compile Include="Diagnostics\SetBlowerStateRequest.cs" /> @@ -211,6 +214,8 @@ <Compile Include="ExtensionMethods\VersionPackageDescriptorExtensions.cs" /> <Compile Include="FirmwareUpgrade\ActivateVersionRequest.cs" /> <Compile Include="FirmwareUpgrade\ActivateVersionResponse.cs" /> + <Compile Include="FirmwareUpgrade\GetVersionDescriptorsRequest.cs" /> + <Compile Include="FirmwareUpgrade\GetVersionDescriptorsResponse.cs" /> <Compile Include="FirmwareUpgrade\ValidateVersionRequest.cs" /> <Compile Include="FirmwareUpgrade\ValidateVersionResponse.cs" /> <Compile Include="FirmwareUpgrade\VersionFileDescriptor.cs" /> diff --git a/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/OverrideData.xml b/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/OverrideData.xml Binary files differindex 763d6b078..c1cc02432 100644 --- a/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/OverrideData.xml +++ b/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/OverrideData.xml diff --git a/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/ProvisionMachine.xml b/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/ProvisionMachine.xml Binary files differindex 4ff9dcbd2..f260ea416 100644 --- a/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/ProvisionMachine.xml +++ b/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/ProvisionMachine.xml diff --git a/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/UpdateMachine.xml b/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/UpdateMachine.xml Binary files differindex b2fe8b33f..fae15d85e 100644 --- a/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/UpdateMachine.xml +++ b/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/UpdateMachine.xml diff --git a/Software/Visual_Studio/Tango.SharedUI/Converters/IsNullToVisibilityInverseConverter.cs b/Software/Visual_Studio/Tango.SharedUI/Converters/IsNullToVisibilityInverseConverter.cs new file mode 100644 index 000000000..ef284b12c --- /dev/null +++ b/Software/Visual_Studio/Tango.SharedUI/Converters/IsNullToVisibilityInverseConverter.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Data; + +namespace Tango.SharedUI.Converters +{ + public class IsNullToVisibilityInverseConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + return value == null ? Visibility.Visible : Visibility.Collapsed; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/Software/Visual_Studio/Tango.SharedUI/Converters/NullObjectToBooleanInverseConverter.cs b/Software/Visual_Studio/Tango.SharedUI/Converters/NullObjectToBooleanInverseConverter.cs new file mode 100644 index 000000000..73e41beea --- /dev/null +++ b/Software/Visual_Studio/Tango.SharedUI/Converters/NullObjectToBooleanInverseConverter.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Data; + +namespace Tango.SharedUI.Converters +{ + /// <summary> + /// Represents a binding converter for returning true for valid object instances and false for null object reference. + /// </summary> + public class NullObjectToBooleanInverseConverter : IValueConverter + { + /// <summary> + /// Converts a value. + /// </summary> + /// <param name="value">The value produced by the binding source.</param> + /// <param name="targetType">The type of the binding target property.</param> + /// <param name="parameter">The converter parameter to use.</param> + /// <param name="culture">The culture to use in the converter.</param> + /// <returns> + /// A converted value. If the method returns null, the valid null value is used. + /// </returns> + public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + { + return (value == null); + } + + /// <summary> + /// Converts a value. + /// </summary> + /// <param name="value">The value that is produced by the binding target.</param> + /// <param name="targetType">The type to convert to.</param> + /// <param name="parameter">The converter parameter to use.</param> + /// <param name="culture">The culture to use in the converter.</param> + /// <returns> + /// A converted value. If the method returns null, the valid null value is used. + /// </returns> + public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + { + return value; + } + } +} diff --git a/Software/Visual_Studio/Tango.SharedUI/Converters/WidthHeightToRectConverter.cs b/Software/Visual_Studio/Tango.SharedUI/Converters/WidthHeightToRectConverter.cs index 25d7c7579..c7215ad99 100644 --- a/Software/Visual_Studio/Tango.SharedUI/Converters/WidthHeightToRectConverter.cs +++ b/Software/Visual_Studio/Tango.SharedUI/Converters/WidthHeightToRectConverter.cs @@ -13,9 +13,16 @@ namespace Tango.SharedUI.Converters { public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) { - double width = (double)values[0]; - double height = (double)values[1]; - return new Rect(new Size(width, height)); + try + { + double width = (double)values[0]; + double height = (double)values[1]; + return new Rect(new Size(width, height)); + } + catch( Exception ex) + { + return null; + } } public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) diff --git a/Software/Visual_Studio/Tango.SharedUI/Tango.SharedUI.csproj b/Software/Visual_Studio/Tango.SharedUI/Tango.SharedUI.csproj index c2071d296..c7eccab9f 100644 --- a/Software/Visual_Studio/Tango.SharedUI/Tango.SharedUI.csproj +++ b/Software/Visual_Studio/Tango.SharedUI/Tango.SharedUI.csproj @@ -119,12 +119,14 @@ <Compile Include="Converters\IsEqualConverter.cs" /> <Compile Include="Converters\IsEqualToVisibilityConverter.cs" /> <Compile Include="Converters\IsNotConverter.cs" /> + <Compile Include="Converters\IsNullToVisibilityInverseConverter.cs" /> <Compile Include="Converters\IsNullToVisibilityConverter.cs" /> <Compile Include="Converters\IsSegmentGradientConverter.cs" /> <Compile Include="Converters\IsSegmentGradientToVisibilityConverter.cs" /> <Compile Include="Converters\IsToStringEqualToVisibilityConverter.cs" /> <Compile Include="Converters\LastItemInContainerToBooleanConverter.cs" /> <Compile Include="Converters\MathOperatorConverter.cs" /> + <Compile Include="Converters\NullObjectToBooleanInverseConverter.cs" /> <Compile Include="Converters\NumberToFileSizeConverter.cs" /> <Compile Include="Converters\ObjectToObjectTypeConverter.cs" /> <Compile Include="Converters\ObservableCollectionToViewSourceConverter.cs" /> @@ -262,7 +264,7 @@ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <ProjectExtensions> <VisualStudio> - <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" /> + <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" /> </VisualStudio> </ProjectExtensions> </Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.TFS/MachineType.cs b/Software/Visual_Studio/Tango.TFS/MachineType.cs new file mode 100644 index 000000000..044155b2b --- /dev/null +++ b/Software/Visual_Studio/Tango.TFS/MachineType.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.TFS +{ + public enum MachineType + { + [Description("TS 1800")] + TS1800 = 0, + [Description("Twine X4")] + TwineX4 = 1, + } +} diff --git a/Software/Visual_Studio/Tango.TFS/Tango.TFS.csproj b/Software/Visual_Studio/Tango.TFS/Tango.TFS.csproj index 3e3e6f6fd..271491a7e 100644 --- a/Software/Visual_Studio/Tango.TFS/Tango.TFS.csproj +++ b/Software/Visual_Studio/Tango.TFS/Tango.TFS.csproj @@ -207,6 +207,7 @@ <Compile Include="Email.cs" /> <Compile Include="ITeamFoundationEmailClient.cs" /> <Compile Include="Iteration.cs" /> + <Compile Include="MachineType.cs" /> <Compile Include="Priority.cs" /> <Compile Include="Project.cs" /> <Compile Include="ResolvedReason.cs" /> @@ -266,7 +267,7 @@ </Target> <ProjectExtensions> <VisualStudio> - <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" /> + <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" /> </VisualStudio> </ProjectExtensions> </Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.TFS/TeamFoundationServiceClient.cs b/Software/Visual_Studio/Tango.TFS/TeamFoundationServiceClient.cs index 750c5fa58..379dcac2e 100644 --- a/Software/Visual_Studio/Tango.TFS/TeamFoundationServiceClient.cs +++ b/Software/Visual_Studio/Tango.TFS/TeamFoundationServiceClient.cs @@ -40,6 +40,7 @@ namespace Tango.TFS public const String MACHINE_SN = "Custom.MachineSN"; public const String ENVIRONMENT = "Custom.Environment"; public const String LOGGED_IN_USER = "Custom.LoggedInUser"; + public const String MACHINE_TYPE = "Custom.MachineType"; } #endregion @@ -428,6 +429,13 @@ namespace Tango.TFS }); } + patchDocument.Add(new JsonPatchOperation + { + Operation = Operation.Add, + Path = GetExtensionFieldNameForWrite(ExtensionFields.MACHINE_TYPE), + Value = workItem.MachineType.ToDescription(), + }); + var resultWorkItem = witClient.CreateWorkItemAsync(patchDocument, project.Name, workItem.Type.ToString(), bypassRules: true).Result; workItem.ID = resultWorkItem.Id.Value; @@ -944,6 +952,11 @@ namespace Tango.TFS workItem.Environment = TryGetField(item.Fields, ExtensionFields.ENVIRONMENT).ToString(); } + if (item.Fields.ContainsKey(ExtensionFields.MACHINE_TYPE)) + { + workItem.MachineType = ParseEnumByDescription<MachineType>(item.Fields[ExtensionFields.MACHINE_TYPE].ToString()); + } + workItem.Comment = TryGetField(item.Fields, GetFieldNameForRead(CoreField.History)).ToString(); return workItem; diff --git a/Software/Visual_Studio/Tango.TFS/WorkItem.cs b/Software/Visual_Studio/Tango.TFS/WorkItem.cs index 35c2f8669..552a64161 100644 --- a/Software/Visual_Studio/Tango.TFS/WorkItem.cs +++ b/Software/Visual_Studio/Tango.TFS/WorkItem.cs @@ -80,6 +80,13 @@ namespace Tango.TFS set { _priority = value; RaisePropertyChangedAuto(); } } + private MachineType _machineType; + public MachineType MachineType + { + get { return _machineType; } + set { _machineType = value; RaisePropertyChangedAuto(); } + } + private String _stepsToReproduce; public String StepsToReproduce { diff --git a/Software/Visual_Studio/Tango.Touch/Controls/LightTouchScrollViewer.cs b/Software/Visual_Studio/Tango.Touch/Controls/LightTouchScrollViewer.cs index a20f52d7b..dff66d821 100644 --- a/Software/Visual_Studio/Tango.Touch/Controls/LightTouchScrollViewer.cs +++ b/Software/Visual_Studio/Tango.Touch/Controls/LightTouchScrollViewer.cs @@ -39,6 +39,7 @@ namespace Tango.Touch.Controls private const double _friction_factor_per_second = 0.9; private DispatcherTimer _move_timer; private double _last_scroll_position; + private const double SCROLL_DELTA = 30; #region Events @@ -688,11 +689,11 @@ namespace Tango.Touch.Controls var scrollPos = GetScrollPosition(); if (e.Delta > 0) { - scrollPos -= 15; + scrollPos -= SCROLL_DELTA; } else if(e.Delta < 0) { - scrollPos += 15; + scrollPos += SCROLL_DELTA; } ScrollToPosition(scrollPos); SetThumbPosition(); diff --git a/Software/Visual_Studio/Tango.Touch/Controls/SliderContentControl.cs b/Software/Visual_Studio/Tango.Touch/Controls/SliderContentControl.cs new file mode 100644 index 000000000..a6b05f472 --- /dev/null +++ b/Software/Visual_Studio/Tango.Touch/Controls/SliderContentControl.cs @@ -0,0 +1,122 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Markup; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace Tango.Touch.Controls +{ + [ContentProperty(nameof(Content))] + public class SliderContentControl : Slider + { + private bool m_isBlocked; + + #region DependencyProperties + + public UIElement Content + { + get { return (UIElement)GetValue(ContentProperty); } + set { SetValue(ContentProperty, value); } + } + public static readonly DependencyProperty ContentProperty = + DependencyProperty.Register("Content", typeof(UIElement), typeof(SliderContentControl), new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.AffectsRender, (d, e) => (d as SliderContentControl).OnContentChanged())); + + public static readonly DependencyProperty ThumbHeightProperty = + DependencyProperty.Register("ThumbHeight", typeof(double), typeof(SliderContentControl), new FrameworkPropertyMetadata((double)32, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault)); + + public double ThumbHeight + { + get { return (double)GetValue(ThumbHeightProperty); } + set { SetValue(ThumbHeightProperty, value); } + } + + public Color ThumbColor + { + get { return (Color)GetValue(ThumbColorProperty); } + set { SetValue(ThumbColorProperty, value); } + } + + + + /// <summary> + /// The thumb color property + /// </summary> + public static readonly DependencyProperty ThumbColorProperty = + DependencyProperty.Register("ThumbColor", typeof(Color), typeof(SliderContentControl), new UIPropertyMetadata(Colors.LightGray, null)); + + + + #endregion + + static SliderContentControl() + { + DefaultStyleKeyProperty.OverrideMetadata(typeof(SliderContentControl), new FrameworkPropertyMetadata(typeof(SliderContentControl))); + } + + public override void OnApplyTemplate() + { + base.OnApplyTemplate(); + + TouchDown -= TouchDownSlider; + TouchDown += TouchDownSlider; + OnValueChanged(Double.NaN, Value); + IsMoveToPointEnabled = true; + } + + private void TouchDownSlider(object sender, TouchEventArgs e) + { + e.Handled = true; + } + + private double ValidateValue(double value) + { + if (value >= Minimum && value <= Maximum) + return value; + if ((value) > Maximum) + return Maximum; + if ((value) < Minimum) + return Minimum; + return double.NaN; + } + + private void OnContentChanged() + { + RemoveLogicalChild(Content); + AddLogicalChild(Content); + } + + protected override void OnValueChanged(double oldValue, double newValue) + { + if (m_isBlocked) return; + + m_isBlocked = true; + + var validatedValue = ValidateValue(newValue); + + if (!double.IsNaN(validatedValue)) + { + Value = validatedValue; + + } + + m_isBlocked = false; + + + } + + protected override void OnPreviewMouseLeftButtonDown(MouseButtonEventArgs e) + { + e.Handled = true; + } + } +} diff --git a/Software/Visual_Studio/Tango.Touch/Controls/SliderContentControl.xaml b/Software/Visual_Studio/Tango.Touch/Controls/SliderContentControl.xaml new file mode 100644 index 000000000..9e2b85c60 --- /dev/null +++ b/Software/Visual_Studio/Tango.Touch/Controls/SliderContentControl.xaml @@ -0,0 +1,92 @@ +<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:local="clr-namespace:Tango.Touch.Controls" + > + + <ResourceDictionary.MergedDictionaries> + <ResourceDictionary Source="../Resources/Colors.xaml" /> + </ResourceDictionary.MergedDictionaries> + + <Style x:Key="RepeatButtonTransparent" TargetType="{x:Type RepeatButton}"> + <Setter Property="OverridesDefaultStyle" Value="true"/> + <Setter Property="Background" Value="Transparent"/> + <Setter Property="Focusable" Value="false"/> + <Setter Property="IsTabStop" Value="false"/> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type RepeatButton}"> + <Rectangle Fill="{TemplateBinding Background}" Height="{TemplateBinding Height}" Width="{TemplateBinding Width}"/> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + + <Style x:Key="ThumbSlider" Style.TargetType="{x:Type Thumb}" > + <Setter Setter.Property="SnapsToDevicePixels" Setter.Value="True" /> + <Setter Setter.Property="OverridesDefaultStyle" Setter.Value="True" /> + <Setter Setter.Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type Thumb}"> + <Grid x:Name="grip" HorizontalAlignment="Center" UseLayoutRounding="True" VerticalAlignment="Center"> + <Ellipse HorizontalAlignment="Center" VerticalAlignment="Center" + Height="{Binding ActualWidth, RelativeSource={RelativeSource Self}}" + Width="{Binding ThumbHeight, RelativeSource={RelativeSource AncestorType=local:SliderContentControl}}" > + <Ellipse.Fill> + <SolidColorBrush Color="{Binding ThumbColor, RelativeSource={RelativeSource AncestorType=local:SliderContentControl}}"/> + </Ellipse.Fill> + </Ellipse> + + <!--<Ellipse x:Name="knob" Grid.Column="0" Grid.Row="1" Stroke="{StaticResource TangoGrayBrush}" StrokeThickness="0" Fill="{StaticResource TangoPrimaryAccentBrush}" Opacity="0.5"></Ellipse>--> + <Grid.Effect> + <DropShadowEffect BlurRadius="10" RenderingBias="Quality" ShadowDepth="1" Color="{StaticResource TangoDropShadowColor}"/> + </Grid.Effect> + </Grid> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + + <Style TargetType="{x:Type local:SliderContentControl}"> + <Setter Property="Background" Value="{StaticResource TangoNotificationBarMaskBrush}"/> + + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type local:SliderContentControl}"> + <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" SnapsToDevicePixels="True" CornerRadius="6"> + <Grid> + <!--<ContentPresenter Content="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Content}" />--> + <Grid> + <Grid.RowDefinitions> + <RowDefinition Height="1*" /> + <RowDefinition Height="Auto" /> + <RowDefinition Height="1*" /> + </Grid.RowDefinitions> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="*"/> + </Grid.ColumnDefinitions> + <Border x:Name="PART_ColorPickerDisplay" Grid.Row="1" Background="Transparent" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="0" + MinHeight="14" Margin="5 0 0 0" VerticalAlignment="center" CornerRadius="6" > + <ContentPresenter Panel.ZIndex="1" Content="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Content}" /> + </Border> + + <Track Track.Name="PART_Track" Grid.Row="0" Margin="0 -2 0 0" VerticalAlignment="Center" Grid.RowSpan="3"> + <!--<Track.DecreaseRepeatButton> + <RepeatButton Style="{StaticResource RepeatButtonTransparent}" /> + </Track.DecreaseRepeatButton> + <Track.IncreaseRepeatButton> + <RepeatButton Style="{StaticResource RepeatButtonTransparent}" /> + </Track.IncreaseRepeatButton>--> + <Track.Thumb> + <Thumb Thumb.Name="PART_Thumb" UIElement.Focusable="False" Height="Auto" Style="{StaticResource ThumbSlider}" VerticalAlignment="Top" Width="Auto" VerticalContentAlignment="Top"/> + </Track.Thumb> + </Track> + </Grid> + </Grid> + </Border> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + + +</ResourceDictionary>
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.Touch/Controls/TouchArcProgress.cs b/Software/Visual_Studio/Tango.Touch/Controls/TouchArcProgress.cs new file mode 100644 index 000000000..510fd500d --- /dev/null +++ b/Software/Visual_Studio/Tango.Touch/Controls/TouchArcProgress.cs @@ -0,0 +1,102 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; + +namespace Tango.Touch.Controls +{ + public class TouchArcProgress : ProgressBar + { + private SharedUI.Shapes.Arc _arc; + private SharedUI.Shapes.Arc _arc_base; + + public double RingThickness + { + get { return (double)GetValue(RingThicknessProperty); } + set { SetValue(RingThicknessProperty, value); } + } + public static readonly DependencyProperty RingThicknessProperty = + DependencyProperty.Register("RingThickness", typeof(double), typeof(TouchArcProgress), new PropertyMetadata(3.0)); + + + + public int MinArcAngle + { + get { return (int)GetValue(MinArcAngleProperty); } + set { SetValue(MinArcAngleProperty, value); } + } + + // Using a DependencyProperty as the backing store for MinArcAngle. This enables animation, styling, binding, etc... + public static readonly DependencyProperty MinArcAngleProperty = + DependencyProperty.Register("MinArcAngle", typeof(int), typeof(TouchArcProgress), new PropertyMetadata(40)); + + + + public int MaxArcAngle + { + get { return (int)GetValue(MaxArcAngleProperty); } + set { SetValue(MaxArcAngleProperty, value); } + } + + // Using a DependencyProperty as the backing store for MaxArcAngle. This enables animation, styling, binding, etc... + public static readonly DependencyProperty MaxArcAngleProperty = + DependencyProperty.Register("MaxArcAngle", typeof(int), typeof(TouchArcProgress), new PropertyMetadata(320)); + + + + static TouchArcProgress() + { + DefaultStyleKeyProperty.OverrideMetadata(typeof(TouchArcProgress), new FrameworkPropertyMetadata(typeof(TouchArcProgress))); + } + + public override void OnApplyTemplate() + { + base.OnApplyTemplate(); + _arc = GetTemplateChild("PART_ArcValue") as SharedUI.Shapes.Arc; + _arc_base = GetTemplateChild("PART_ArcBase") as SharedUI.Shapes.Arc; + SetArcBase(); + SetArc(); + } + + protected override void OnValueChanged(double oldValue, double newValue) + { + base.OnValueChanged(oldValue, newValue); + SetArc(); + } + + protected override void OnMinimumChanged(double oldMinimum, double newMinimum) + { + base.OnMinimumChanged(oldMinimum, newMinimum); + SetArcBase(); + SetArc(); + } + + protected override void OnMaximumChanged(double oldMaximum, double newMaximum) + { + base.OnMaximumChanged(oldMaximum, newMaximum); + SetArcBase(); + SetArc(); + } + + private void SetArcBase() + { + if (_arc_base != null) + { + _arc_base.StartAngle = ((MaxArcAngle - MinArcAngle) * (Minimum / (Maximum - Minimum))) + MinArcAngle; + _arc_base.EndAngle = ((MaxArcAngle - MinArcAngle) * (Maximum / (Maximum - Minimum))) + MinArcAngle; + } + } + + private void SetArc() + { + if (_arc != null) + { + _arc.StartAngle = ((MaxArcAngle - MinArcAngle) * (Minimum / (Maximum - Minimum))) + MinArcAngle; + _arc.EndAngle = ((MaxArcAngle - MinArcAngle) * (Value / (Maximum - Minimum))) + MinArcAngle; + } + } + } +} diff --git a/Software/Visual_Studio/Tango.Touch/Controls/TouchArcProgress.xaml b/Software/Visual_Studio/Tango.Touch/Controls/TouchArcProgress.xaml new file mode 100644 index 000000000..518b3632c --- /dev/null +++ b/Software/Visual_Studio/Tango.Touch/Controls/TouchArcProgress.xaml @@ -0,0 +1,24 @@ +<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:shapes="clr-namespace:Tango.SharedUI.Shapes;assembly=Tango.SharedUI" + xmlns:local="clr-namespace:Tango.Touch.Controls"> + <ResourceDictionary.MergedDictionaries> + <ResourceDictionary Source="../Resources/Colors.xaml" /> + </ResourceDictionary.MergedDictionaries> + + <Style TargetType="{x:Type local:TouchArcProgress}"> + <Setter Property="Background" Value="{StaticResource TangoDividerBrush}"></Setter> + <Setter Property="Foreground" Value="{StaticResource TangoPrimaryAccentBrush}"></Setter> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type local:TouchArcProgress}"> + <Grid> + <shapes:Arc x:Name="PART_ArcBase" Stroke="{TemplateBinding Background}" StrokeThickness="{TemplateBinding RingThickness}" OriginRotationDegrees="90" Direction="Clockwise"/> + <shapes:Arc x:Name="PART_ArcValue" Stroke="{TemplateBinding Foreground}" StrokeThickness="{TemplateBinding RingThickness}" OriginRotationDegrees="90" Direction="Clockwise"/> + </Grid> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + +</ResourceDictionary>
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.Touch/Controls/TouchExpander.cs b/Software/Visual_Studio/Tango.Touch/Controls/TouchExpander.cs index b85be6c49..80974bd4a 100644 --- a/Software/Visual_Studio/Tango.Touch/Controls/TouchExpander.cs +++ b/Software/Visual_Studio/Tango.Touch/Controls/TouchExpander.cs @@ -39,7 +39,12 @@ namespace Tango.Touch.Controls set { SetValue(IsExpandedProperty, value); } } public static readonly DependencyProperty IsExpandedProperty = - DependencyProperty.Register("IsExpanded", typeof(bool), typeof(TouchExpander), new PropertyMetadata(false)); + DependencyProperty.Register("IsExpanded", typeof(bool), typeof(TouchExpander), new FrameworkPropertyMetadata + { + DefaultValue = false, + BindsTwoWayByDefault = true, + DefaultUpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged + }); static TouchExpander() { diff --git a/Software/Visual_Studio/Tango.Touch/Controls/TouchNavigationLinks.cs b/Software/Visual_Studio/Tango.Touch/Controls/TouchNavigationLinks.cs index 3a0d3de9e..5fb4496e0 100644 --- a/Software/Visual_Studio/Tango.Touch/Controls/TouchNavigationLinks.cs +++ b/Software/Visual_Studio/Tango.Touch/Controls/TouchNavigationLinks.cs @@ -24,7 +24,18 @@ namespace Tango.Touch.Controls private const string PART_Rectangle = "PART_Rectangle"; private Line _line; private Object _lastSelectedItem; + + public int LineThickness + { + get { return (int)GetValue(LineThicknessProperty); } + set { SetValue(LineThicknessProperty, value); } + } + + // Using a DependencyProperty as the backing store for LineThickness. This enables animation, styling, binding, etc... + public static readonly DependencyProperty LineThicknessProperty = + DependencyProperty.Register("LineThickness", typeof(int), typeof(TouchNavigationLinks), new PropertyMetadata(3)); + static TouchNavigationLinks() { DefaultStyleKeyProperty.OverrideMetadata(typeof(TouchNavigationLinks), new FrameworkPropertyMetadata(typeof(TouchNavigationLinks))); @@ -48,12 +59,14 @@ namespace Tango.Touch.Controls private void MoveLineToSelectedItem() { - if (SelectedItem != null) + if (SelectedItem != null ) { + if(SelectedItem is UIElement && ((UIElement)SelectedItem).IsEnabled == false) + return; var container = ItemContainerGenerator.ContainerFromItem(SelectedItem) as FrameworkElement; - + ContentPresenter presenter = container.FindChild<ContentPresenter>().FindChild<ContentPresenter>(); - + if (presenter != null) { Point relativePoint = presenter.TransformToAncestor(this).Transform(new Point(0, 0)); @@ -87,8 +100,9 @@ namespace Tango.Touch.Controls _line.BeginAnimation(Line.X2Property, aniX2); } } + _lastSelectedItem = SelectedItem; } - + _lastSelectedItem = SelectedItem; } } diff --git a/Software/Visual_Studio/Tango.Touch/Controls/TouchNavigationLinks.xaml b/Software/Visual_Studio/Tango.Touch/Controls/TouchNavigationLinks.xaml index 599dfdf7c..2b8b4ff03 100644 --- a/Software/Visual_Studio/Tango.Touch/Controls/TouchNavigationLinks.xaml +++ b/Software/Visual_Studio/Tango.Touch/Controls/TouchNavigationLinks.xaml @@ -37,10 +37,11 @@ <Setter Property="BorderThickness" Value="1"/> <Setter Property="MinHeight" Value="40"></Setter> <Setter Property="FocusVisualStyle" Value="{x:Null}"/> + <Setter Property="IsEnabled" Value="true"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type ListBoxItem}"> - <Border x:Name="Bd" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="true"> + <Border x:Name="Bd" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="true" IsEnabled="{TemplateBinding IsEnabled}"> <components:Ripple CornerRadius="5" RippleBrush="{StaticResource TangoRippleDarkBrush}"> <StackPanel Orientation="Horizontal"> <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/> @@ -77,7 +78,7 @@ <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="true"> <StackPanel> <ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" HorizontalAlignment="Stretch"/> - <Line x:Name="PART_Rectangle" X1="0" X2="0" Y1="0" Y2="0" Margin="0 5 0 -3" Stroke="{StaticResource TangoPrimaryAccentBrush}" StrokeThickness="3" HorizontalAlignment="Stretch"></Line> + <Line x:Name="PART_Rectangle" X1="0" X2="0" Y1="0" Y2="0" Margin="0 5 0 -3" Stroke="{StaticResource TangoPrimaryAccentBrush}" StrokeThickness="{Binding RelativeSource={RelativeSource AncestorType=local:TouchNavigationLinks},Path=LineThickness}" HorizontalAlignment="Stretch"></Line> </StackPanel> </Border> </ControlTemplate> diff --git a/Software/Visual_Studio/Tango.Touch/Controls/TouchNotificationBar.cs b/Software/Visual_Studio/Tango.Touch/Controls/TouchNotificationBar.cs index 1e5a5c8fe..77d5bbb53 100644 --- a/Software/Visual_Studio/Tango.Touch/Controls/TouchNotificationBar.cs +++ b/Software/Visual_Studio/Tango.Touch/Controls/TouchNotificationBar.cs @@ -158,6 +158,7 @@ namespace Tango.Touch.Controls private FrameworkElement GetLastNotification() { + if (_items_control == null) return null; return _items_control.ItemContainerGenerator.ContainerFromIndex(0) as FrameworkElement; } diff --git a/Software/Visual_Studio/Tango.Touch/Controls/TouchNumericTextBox.cs b/Software/Visual_Studio/Tango.Touch/Controls/TouchNumericTextBox.cs index 15c516124..6c09cdc59 100644 --- a/Software/Visual_Studio/Tango.Touch/Controls/TouchNumericTextBox.cs +++ b/Software/Visual_Studio/Tango.Touch/Controls/TouchNumericTextBox.cs @@ -112,6 +112,17 @@ namespace Tango.Touch.Controls } public static readonly DependencyProperty MaximumProperty = DependencyProperty.Register("Maximum", typeof(double), typeof(TouchNumericTextBox), new PropertyMetadata(null)); + + public double Step + { + get { return (double)GetValue(StepProperty); } + set { SetValue(StepProperty, value); } + } + + public static readonly DependencyProperty StepProperty = + DependencyProperty.Register("Step", typeof(double), typeof(TouchNumericTextBox), new PropertyMetadata(null)); + + public double JoggingFactor { @@ -198,6 +209,15 @@ namespace Tango.Touch.Controls { value = Math.Round(value, 0); } + if (Step > 0) + { + int coef = (int)((value + Step - 1) / Step); + value = coef * Step; + } + if(Minimum > 0 && value < Minimum) + { + value = Minimum; + } if (Maximum > Minimum) { @@ -209,6 +229,7 @@ namespace Tango.Touch.Controls { value = Maximum; } + } } diff --git a/Software/Visual_Studio/Tango.Touch/Controls/TouchPanel.cs b/Software/Visual_Studio/Tango.Touch/Controls/TouchPanel.cs index 137ef6e42..fc929089d 100644 --- a/Software/Visual_Studio/Tango.Touch/Controls/TouchPanel.cs +++ b/Software/Visual_Studio/Tango.Touch/Controls/TouchPanel.cs @@ -24,6 +24,7 @@ namespace Tango.Touch.Controls private TouchCalendar _calendar; private Grid _calendar_grid; private bool _isDialogGridMaskMouseDown; + protected Border _dialogBorder; static TouchPanel() { @@ -72,6 +73,7 @@ namespace Tango.Touch.Controls _comboBoxCloseButton = GetTemplateChild("PART_comboboxCloseButton") as TouchIconButton; _calendar_grid = GetTemplateChild("PART_datepicker_grid") as Grid; _calendar = GetTemplateChild("PART_calendar") as TouchCalendar; + _dialogBorder = GetTemplateChild("PART_dialogBorder") as Border; var gridDialogsMask = GetTemplateChild("PART_gridDialogsMask") as Grid; gridDialogsMask.MouseUp += GridDialogsMask_MouseUp; gridDialogsMask.MouseDown += GridDialogsMask_MouseDown; @@ -241,7 +243,7 @@ namespace Tango.Touch.Controls set { SetValue(CurrentDialogProperty, value); } } public static readonly DependencyProperty CurrentDialogProperty = - DependencyProperty.Register("CurrentDialog", typeof(FrameworkElement), typeof(TouchPanel), new PropertyMetadata(null)); + DependencyProperty.Register("CurrentDialog", typeof(FrameworkElement), typeof(TouchPanel), new PropertyMetadata(null,(d,e) => (d as TouchPanel).OnCurrentDialogChanged(e.NewValue as FrameworkElement))); public FrameworkElement TaskBarElement { @@ -267,6 +269,10 @@ namespace Tango.Touch.Controls public static readonly DependencyProperty BusyMessageProperty = DependencyProperty.Register("BusyMessage", typeof(String), typeof(TouchPanel), new PropertyMetadata(null)); + protected virtual void OnCurrentDialogChanged(FrameworkElement frameworkElement) + { + + } #region Attached Properties diff --git a/Software/Visual_Studio/Tango.Touch/Controls/TouchPanel.xaml b/Software/Visual_Studio/Tango.Touch/Controls/TouchPanel.xaml index dd405a6c3..24dbbe268 100644 --- a/Software/Visual_Studio/Tango.Touch/Controls/TouchPanel.xaml +++ b/Software/Visual_Studio/Tango.Touch/Controls/TouchPanel.xaml @@ -77,7 +77,7 @@ <DropShadowEffect BlurRadius="10" /> </Border.Effect> - <ContentPresenter Content="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentDialog}" /> + <ContentPresenter x:Name="PART_dialogContentPresenter" Content="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentDialog}" /> </Border> </Grid> diff --git a/Software/Visual_Studio/Tango.Touch/Controls/TouchPanelEureka.cs b/Software/Visual_Studio/Tango.Touch/Controls/TouchPanelEureka.cs new file mode 100644 index 000000000..a1c07f306 --- /dev/null +++ b/Software/Visual_Studio/Tango.Touch/Controls/TouchPanelEureka.cs @@ -0,0 +1,87 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace Tango.Touch.Controls +{ + public class TouchPanelEureka : TouchPanel + { + #region Prevent Focus Steal + + /// <summary> + /// The prevent scroll property + /// </summary> + public static readonly DependencyProperty MakeEurekaFullScreenProperty = + DependencyProperty.RegisterAttached("MakeEurekaFullScreen", + typeof(bool), typeof(TouchPanelEureka), + new FrameworkPropertyMetadata(false)); + + /// <summary> + /// Sets the MakeEurekaFullScreen attached property. + /// </summary> + /// <param name="element">The element.</param> + /// <param name="value">if set to <c>true</c> [value].</param> + public static void SetMakeEurekaFullScreen(FrameworkElement element, bool value) + { + element.SetValue(MakeEurekaFullScreenProperty, value); + } + + /// <summary> + /// Gets the MakeEurekaFullScreen attached property. + /// </summary> + /// <param name="element">The element.</param> + /// <returns></returns> + public static bool GetMakeEurekaFullScreen(FrameworkElement element) + { + if (element != null) + { + return (bool)element.GetValue(MakeEurekaFullScreenProperty); + } + else + { + return false; + } + } + + #endregion + + static TouchPanelEureka() + { + DefaultStyleKeyProperty.OverrideMetadata(typeof(TouchPanelEureka), new FrameworkPropertyMetadata(typeof(TouchPanelEureka))); + } + + protected override void OnCurrentDialogChanged(FrameworkElement dialog) + { + base.OnCurrentDialogChanged(dialog); + + if (dialog != null) + { + if (GetMakeEurekaFullScreen(dialog)) + { + _dialogBorder.CornerRadius = new CornerRadius(0); + _dialogBorder.Padding = new Thickness(0); + _dialogBorder.Margin = new Thickness(0, 125, 0, 0); + dialog.Width = this.ActualWidth; + dialog.Height = this.ActualHeight - 125; + } + else + { + _dialogBorder.CornerRadius = new CornerRadius(5); + _dialogBorder.Padding = new Thickness(10); + _dialogBorder.Margin = new Thickness(0); + } + } + } + } +} diff --git a/Software/Visual_Studio/Tango.Touch/Controls/TouchPanelEureka.xaml b/Software/Visual_Studio/Tango.Touch/Controls/TouchPanelEureka.xaml new file mode 100644 index 000000000..569f1df77 --- /dev/null +++ b/Software/Visual_Studio/Tango.Touch/Controls/TouchPanelEureka.xaml @@ -0,0 +1,330 @@ +<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI" + xmlns:keyboard="clr-namespace:Tango.Touch.Keyboard" + xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" + xmlns:local="clr-namespace:Tango.Touch.Controls"> + + <ResourceDictionary.MergedDictionaries> + <ResourceDictionary Source="../Resources/Colors.xaml" /> + <ResourceDictionary Source="../Resources/Fonts.xaml" /> + <ResourceDictionary Source="../Styles/TouchButton.xaml" /> + <ResourceDictionary Source="../Styles/TouchIconButton.xaml" /> + + <ResourceDictionary> + <BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" /> + <converters:NullObjectToBooleanConverter x:Key="NullObjectToBooleanConverter" /> + </ResourceDictionary> + </ResourceDictionary.MergedDictionaries> + + <Style x:Key="TangoMessageBoxTitle" TargetType="TextBlock"> + <Setter Property="FontSize" Value="{StaticResource TangoMessageBoxTitleFontSize}"></Setter> + <Setter Property="Foreground" Value="{StaticResource TangoPrimaryAccentBrush}"></Setter> + </Style> + + <Style TargetType="local:TouchPanelEureka"> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="local:TouchPanelEureka"> + <Border Background="{TemplateBinding Background}"> + <Grid> + <keyboard:KeyboardView> + <Grid> + + <DockPanel> + <ContentControl DockPanel.Dock="Top" Content="{TemplateBinding TaskBarElement}"></ContentControl> + + <!--Notification Bar--> + <!--<local:TouchNotificationBar NotificationBarVisibility="{TemplateBinding NotificationBarVisibility}" NotificationTemplate="{TemplateBinding NotificationTemplate}" HasNotifications="{TemplateBinding HasNotifications}" Notifications="{TemplateBinding Notifications}" ItemExpandedPropertyPath="{TemplateBinding ItemExpandedPropertyPath}">--> + <Grid> + <!--Content--> + <ContentPresenter Content="{TemplateBinding Content}" /> + </Grid> + <!--</local:TouchNotificationBar>--> + </DockPanel> + + <!--Dialogs--> + <Grid> + <Grid.Style> + <Style TargetType="Grid"> + <!--<Setter Property="Opacity" Value="0"></Setter>--> + <Setter Property="Visibility" Value="Hidden"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding RelativeSource={RelativeSource TemplatedParent},Path=HasDialog}" Value="True"> + <Setter Property="Visibility" Value="Visible"></Setter> + <!--<DataTrigger.EnterActions> + <BeginStoryboard> + <Storyboard> + <DoubleAnimation To="1" Storyboard.TargetProperty="Opacity" Duration="00:00:0.2" /> + </Storyboard> + </BeginStoryboard> + </DataTrigger.EnterActions>--> + </DataTrigger> + </Style.Triggers> + </Style> + </Grid.Style> + + <Grid Background="{StaticResource TangoPanelMaskBrushLight}" x:Name="PART_gridDialogsMask"> + <!--<i:Interaction.Triggers> + <i:EventTrigger EventName="MouseUp"> + <i:InvokeCommandAction Command="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentDialog.DataContext.CloseCommand}" /> + </i:EventTrigger> + </i:Interaction.Triggers>--> + </Grid> + + <Border x:Name="PART_dialogBorder" Background="{StaticResource TangoPrimaryBackgroundBrush}" CornerRadius="5" Padding="10" HorizontalAlignment="Center" VerticalAlignment="Center"> + <Border.Effect> + <DropShadowEffect Color="Gainsboro" BlurRadius="10" /> + </Border.Effect> + + <ContentPresenter Content="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentDialog}" /> + </Border> + </Grid> + + <!--Combo Box PopUp--> + <Grid Background="{StaticResource TangoPanelMaskBrushLight}" x:Name="PART_combobox_grid"> + <Grid.Style> + <Style TargetType="Grid"> + <Setter Property="Opacity" Value="0"></Setter> + <Setter Property="Visibility" Value="Hidden"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentComboBox,Converter={StaticResource NullObjectToBooleanConverter}}" Value="True"> + <Setter Property="Visibility" Value="Visible"></Setter> + <DataTrigger.EnterActions> + <BeginStoryboard> + <Storyboard> + <DoubleAnimation To="1" Storyboard.TargetProperty="Opacity" Duration="00:00:0.2" /> + </Storyboard> + </BeginStoryboard> + </DataTrigger.EnterActions> + </DataTrigger> + </Style.Triggers> + </Style> + </Grid.Style> + + <Grid DataContext="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentComboBox}" VerticalAlignment="Center" HorizontalAlignment="Center"> + <Border Background="{StaticResource TangoPrimaryBackgroundBrush}" CornerRadius="5" Margin="10"> + <Border.Effect> + <DropShadowEffect BlurRadius="10" /> + </Border.Effect> + + <Grid ClipToBounds="True"> + <DockPanel> + <Grid DockPanel.Dock="Top"> + <Border CornerRadius="5 5 0 0" Background="{StaticResource TangoPopupTitleBackgroundBrush}" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0 0 0 1" Padding="30"> + <TextBlock DockPanel.Dock="Top" Text="{Binding Title}" FontSize="{StaticResource TangoComboBoxTitleFontSize}" FontWeight="SemiBold"></TextBlock> + </Border> + <local:TouchIconButton x:Name="PART_comboboxCloseButton" Background="Transparent" Padding="35" Style="{StaticResource TangoRoundTouchIconButton}" Command="{Binding CloseCommand}" CommandParameter="{Binding}" HorizontalAlignment="Right" MaxHeight="90" Width="{Binding RelativeSource={RelativeSource Self},Path=ActualHeight}" Icon="Close" Foreground="{StaticResource TangoDarkForegroundBrush}" Opacity="0.5" /> + </Grid> + <local:TouchListBox x:Name="PART_ComboBoxList" Width="{Binding MinPopupWidth}" Height="{Binding MinPopupHeight}" ItemSelectedCommand="{Binding RelativeSource={RelativeSource AncestorType=local:TouchPanel},Path=ComboBoxPickedCommand}" ItemsSource="{Binding ItemsSource}" SelectedItem="{Binding SelectedItem,Mode=TwoWay}" SelectionMode="None" ItemTemplate="{Binding ItemTemplate}" ValuePath="{Binding ValuePath}" VerticalAlignment="Top" > + + </local:TouchListBox> + </DockPanel> + </Grid> + </Border> + </Grid> + </Grid> + + <!--Date Picker--> + <Grid Background="{StaticResource TangoPanelMaskBrushLight}" x:Name="PART_datepicker_grid"> + <Grid.Style> + <Style TargetType="Grid"> + <Setter Property="Opacity" Value="0"></Setter> + <Setter Property="Visibility" Value="Hidden"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentDatePicker,Converter={StaticResource NullObjectToBooleanConverter}}" Value="True"> + <Setter Property="Visibility" Value="Visible"></Setter> + <DataTrigger.EnterActions> + <BeginStoryboard> + <Storyboard> + <DoubleAnimation To="1" Storyboard.TargetProperty="Opacity" Duration="00:00:0.2" /> + </Storyboard> + </BeginStoryboard> + </DataTrigger.EnterActions> + </DataTrigger> + </Style.Triggers> + </Style> + </Grid.Style> + + <Grid DataContext="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentDatePicker}" VerticalAlignment="Center" HorizontalAlignment="Center"> + <Border Background="{StaticResource TangoPrimaryBackgroundBrush}" CornerRadius="5" Margin="10" HorizontalAlignment="Center" VerticalAlignment="Center"> + <Border.Effect> + <DropShadowEffect BlurRadius="10" /> + </Border.Effect> + + <DockPanel> + <StackPanel Margin="0 40 0 10" DockPanel.Dock="Bottom" HorizontalAlignment="Right" Orientation="Horizontal"> + <local:TouchButton Command="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CancelDateCommand}" Width="120" Margin="2 0" Style="{StaticResource TangoMessageBoxButton}">CANCEL</local:TouchButton> + <local:TouchButton Command="{Binding RelativeSource={RelativeSource TemplatedParent},Path=DateSelectedCommand}" Width="120" Margin="2 0" Style="{StaticResource TangoMessageBoxButton}">OK</local:TouchButton> + </StackPanel> + + <Viewbox Width="470" Stretch="Uniform"> + <local:TouchCalendar Width="370" x:Name="PART_calendar" Focusable="False" + SelectedDate="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentDatePicker.SelectedDate,Mode=OneWay}" + DisplayDateStart="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentDatePicker.DisplayDateStart,Mode=OneWay}" + DisplayDateEnd="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentDatePicker.DisplayDateEnd,Mode=OneWay}"/> + </Viewbox> + </DockPanel> + </Border> + </Grid> + </Grid> + + <!--Messages--> + <Grid Background="{StaticResource TangoPanelMaskBrushLight}"> + <Grid.Style> + <Style TargetType="Grid"> + <!--<Setter Property="Opacity" Value="0"></Setter>--> + <Setter Property="Visibility" Value="Hidden"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding RelativeSource={RelativeSource TemplatedParent},Path=HasMessageBox}" Value="True"> + <Setter Property="Visibility" Value="Visible"></Setter> + <!--<DataTrigger.EnterActions> + <BeginStoryboard> + <Storyboard> + <DoubleAnimation To="1" Storyboard.TargetProperty="Opacity" Duration="00:00:0.2" /> + </Storyboard> + </BeginStoryboard> + </DataTrigger.EnterActions>--> + </DataTrigger> + </Style.Triggers> + </Style> + </Grid.Style> + + <Grid Height="400" Margin="20" RenderTransformOrigin="0.5,0.5"> + <Grid.Style> + <Style TargetType="Grid"> + <Setter Property="RenderTransform"> + <Setter.Value> + <ScaleTransform ScaleX="0" ScaleY="0" /> + </Setter.Value> + </Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding RelativeSource={RelativeSource TemplatedParent},Path=HasMessageBox}" Value="True"> + <DataTrigger.EnterActions> + <BeginStoryboard> + <Storyboard> + <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX" From="0" To="1" Duration="00:00:0.1" /> + <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleY" From="0" To="1" Duration="00:00:0.1" /> + </Storyboard> + </BeginStoryboard> + </DataTrigger.EnterActions> + <DataTrigger.ExitActions> + <BeginStoryboard> + <Storyboard> + <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX" From="1" To="0" Duration="00:00:0.1" /> + <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleY" From="1" To="0" Duration="00:00:0.1" /> + </Storyboard> + </BeginStoryboard> + </DataTrigger.ExitActions> + </DataTrigger> + </Style.Triggers> + </Style> + </Grid.Style> + + <Border DataContext="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentMessageBox}" Background="{StaticResource TangoPrimaryBackgroundBrush}" CornerRadius="5" Margin="10"> + <Border.Effect> + <DropShadowEffect BlurRadius="10" /> + </Border.Effect> + <Grid ClipToBounds="True"> + <DockPanel> + <Grid DockPanel.Dock="Top"> + <Border CornerRadius="5 5 0 0" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0 0 0 1" Padding="30" Background="{Binding HeaderBrush}"> + <StackPanel Orientation="Horizontal" HorizontalAlignment="Left"> + <local:TouchIcon Width="24" Height="24" Icon="{Binding Icon}" Margin="0 0 20 0" Foreground="{Binding Brush}" /> + <TextBlock Text="{Binding Title}" FontSize="{StaticResource TangoMessageBoxTitleFontSize}" FontWeight="Normal"></TextBlock> + </StackPanel> + </Border> + <local:TouchIconButton Background="Transparent" Padding="35" Style="{StaticResource TangoRoundTouchIconButton}" Command="{Binding CloseCommand}" CommandParameter="{Binding}" HorizontalAlignment="Right" MaxHeight="90" Width="{Binding RelativeSource={RelativeSource Self},Path=ActualHeight}" Icon="Close" Foreground="{StaticResource TangoDarkForegroundBrush}" Opacity="0.5" /> + </Grid> + + <StackPanel Orientation="Horizontal" DockPanel.Dock="Bottom" HorizontalAlignment="Center" Height="50" Margin="0 0 0 40"> + <local:TouchButton x:Name="btnCancel" FontWeight="Normal" CornerRadius="25" Width="220" FontSize="{StaticResource TangoMessageBoxButtonFontSize}" Margin="0 0 30 0" Style="{StaticResource TangoHollowButton}" Command="{Binding CloseCommand}" Visibility="{Binding HasCancel,Converter={StaticResource BooleanToVisibilityConverter}}">CANCEL</local:TouchButton> + <local:TouchButton x:Name="btnOK" FontWeight="Normal" Width="220" CornerRadius="25" FontSize="{StaticResource TangoMessageBoxButtonFontSize}" Margin="30 0 0 0" Style="{StaticResource TangoHollowButton}" Command="{Binding OKCommand}">OK</local:TouchButton> + </StackPanel> + + <TextBlock FontSize="{StaticResource TangoMessageBoxMessageFontSize}" Text="{Binding Message}" VerticalAlignment="Center" HorizontalAlignment="Center" TextWrapping="Wrap" Margin="10 0"></TextBlock> + + </DockPanel> + </Grid> + </Border> + </Grid> + </Grid> + + <!--Busy--> + <Grid Background="{StaticResource TangoPanelMaskBrushLight}"> + <Grid.Style> + <Style TargetType="Grid"> + <Setter Property="Visibility" Value="Hidden"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding RelativeSource={RelativeSource TemplatedParent},Path=IsBusy}" Value="True"> + <Setter Property="Visibility" Value="Visible"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </Grid.Style> + + <Grid MinHeight="390" Margin="20" RenderTransformOrigin="0.5,0.5" VerticalAlignment="Center"> + <Grid.Style> + <Style TargetType="Grid"> + <Setter Property="RenderTransform"> + <Setter.Value> + <ScaleTransform ScaleX="0" ScaleY="0" /> + </Setter.Value> + </Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding RelativeSource={RelativeSource TemplatedParent},Path=IsBusy}" Value="True"> + <DataTrigger.EnterActions> + <BeginStoryboard> + <Storyboard> + <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX" From="0" To="1" Duration="00:00:0.1" /> + <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleY" From="0" To="1" Duration="00:00:0.1" /> + </Storyboard> + </BeginStoryboard> + </DataTrigger.EnterActions> + <DataTrigger.ExitActions> + <BeginStoryboard> + <Storyboard> + <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX" From="1" To="0" Duration="00:00:0.1" /> + <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleY" From="1" To="0" Duration="00:00:0.1" /> + </Storyboard> + </BeginStoryboard> + </DataTrigger.ExitActions> + </DataTrigger> + </Style.Triggers> + </Style> + </Grid.Style> + + <Border Background="{StaticResource TangoPrimaryBackgroundBrush}" CornerRadius="5" Margin="10"> + <Border.Effect> + <DropShadowEffect BlurRadius="10" /> + </Border.Effect> + <Grid ClipToBounds="True"> + <DockPanel> + <Grid DockPanel.Dock="Top"> + <Border CornerRadius="5 5 0 0" Background="{StaticResource TangoPopupTitleBackgroundBrush}" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0 0 0 1" Padding="30"> + <StackPanel Orientation="Horizontal" HorizontalAlignment="Left"> + <local:TouchIcon Width="24" Height="24" Icon="ProgressClock" Margin="0 0 20 0" Foreground="{StaticResource TangoPrimaryAccentBrush}" /> + <TextBlock Text="Working" FontSize="{StaticResource TangoMessageBoxTitleFontSize}" FontWeight="Normal"></TextBlock> + </StackPanel> + </Border> + </Grid> + + <local:TouchBusyIndicator DockPanel.Dock="Bottom" Margin="0 0 0 40" IsIndeterminate="{Binding RelativeSource={RelativeSource TemplatedParent},Path=IsBusy}" Width="100" Height="100"></local:TouchBusyIndicator> + + <TextBlock FontSize="{StaticResource TangoMessageBoxMessageFontSize}" Text="{Binding RelativeSource={RelativeSource TemplatedParent},Path=BusyMessage}" VerticalAlignment="Center" HorizontalAlignment="Center" TextWrapping="Wrap"></TextBlock> + </DockPanel> + </Grid> + </Border> + </Grid> + </Grid> + </Grid> + </keyboard:KeyboardView> + </Grid> + </Border> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + + +</ResourceDictionary>
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.Touch/Controls/TouchPanelEurekaNoKeyboard.cs b/Software/Visual_Studio/Tango.Touch/Controls/TouchPanelEurekaNoKeyboard.cs new file mode 100644 index 000000000..75dcba67f --- /dev/null +++ b/Software/Visual_Studio/Tango.Touch/Controls/TouchPanelEurekaNoKeyboard.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace Tango.Touch.Controls +{ + public class TouchPanelEurekaNoKeyboard : TouchPanelEureka + { + static TouchPanelEurekaNoKeyboard() + { + DefaultStyleKeyProperty.OverrideMetadata(typeof(TouchPanelEurekaNoKeyboard), new FrameworkPropertyMetadata(typeof(TouchPanelEurekaNoKeyboard))); + } + } +} diff --git a/Software/Visual_Studio/Tango.Touch/Controls/TouchPanelEurekaNoKeyboard.xaml b/Software/Visual_Studio/Tango.Touch/Controls/TouchPanelEurekaNoKeyboard.xaml new file mode 100644 index 000000000..e25e96e60 --- /dev/null +++ b/Software/Visual_Studio/Tango.Touch/Controls/TouchPanelEurekaNoKeyboard.xaml @@ -0,0 +1,330 @@ +<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI" + xmlns:keyboard="clr-namespace:Tango.Touch.Keyboard" + xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" + xmlns:local="clr-namespace:Tango.Touch.Controls"> + + <ResourceDictionary.MergedDictionaries> + <ResourceDictionary Source="../Resources/Colors.xaml" /> + <ResourceDictionary Source="../Resources/Fonts.xaml" /> + <ResourceDictionary Source="../Styles/TouchButton.xaml" /> + <ResourceDictionary Source="../Styles/TouchIconButton.xaml" /> + + <ResourceDictionary> + <BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" /> + <converters:NullObjectToBooleanConverter x:Key="NullObjectToBooleanConverter" /> + </ResourceDictionary> + </ResourceDictionary.MergedDictionaries> + + <Style x:Key="TangoMessageBoxTitle" TargetType="TextBlock"> + <Setter Property="FontSize" Value="{StaticResource TangoMessageBoxTitleFontSize}"></Setter> + <Setter Property="Foreground" Value="{StaticResource TangoPrimaryAccentBrush}"></Setter> + </Style> + + <Style TargetType="local:TouchPanelEurekaNoKeyboard"> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="local:TouchPanelEurekaNoKeyboard"> + <Border Background="{TemplateBinding Background}"> + <Grid> + <!--<keyboard:KeyboardView>--> + <Grid> + + <DockPanel> + <ContentControl DockPanel.Dock="Top" Content="{TemplateBinding TaskBarElement}"></ContentControl> + + <!--Notification Bar--> + <!--<local:TouchNotificationBar NotificationBarVisibility="{TemplateBinding NotificationBarVisibility}" NotificationTemplate="{TemplateBinding NotificationTemplate}" HasNotifications="{TemplateBinding HasNotifications}" Notifications="{TemplateBinding Notifications}" ItemExpandedPropertyPath="{TemplateBinding ItemExpandedPropertyPath}">--> + <Grid> + <!--Content--> + <ContentPresenter Content="{TemplateBinding Content}" /> + </Grid> + <!--</local:TouchNotificationBar>--> + </DockPanel> + + <!--Dialogs--> + <Grid> + <Grid.Style> + <Style TargetType="Grid"> + <!--<Setter Property="Opacity" Value="0"></Setter>--> + <Setter Property="Visibility" Value="Hidden"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding RelativeSource={RelativeSource TemplatedParent},Path=HasDialog}" Value="True"> + <Setter Property="Visibility" Value="Visible"></Setter> + <!--<DataTrigger.EnterActions> + <BeginStoryboard> + <Storyboard> + <DoubleAnimation To="1" Storyboard.TargetProperty="Opacity" Duration="00:00:0.2" /> + </Storyboard> + </BeginStoryboard> + </DataTrigger.EnterActions>--> + </DataTrigger> + </Style.Triggers> + </Style> + </Grid.Style> + + <Grid Background="{StaticResource TangoPanelMaskBrushLight}" x:Name="PART_gridDialogsMask"> + <!--<i:Interaction.Triggers> + <i:EventTrigger EventName="MouseUp"> + <i:InvokeCommandAction Command="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentDialog.DataContext.CloseCommand}" /> + </i:EventTrigger> + </i:Interaction.Triggers>--> + </Grid> + + <Border x:Name="PART_dialogBorder" Background="{StaticResource TangoPrimaryBackgroundBrush}" CornerRadius="5" Padding="10" HorizontalAlignment="Center" VerticalAlignment="Center"> + <Border.Effect> + <DropShadowEffect Color="Gainsboro" BlurRadius="10" /> + </Border.Effect> + + <ContentPresenter Content="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentDialog}" /> + </Border> + </Grid> + + <!--Combo Box PopUp--> + <Grid Background="{StaticResource TangoPanelMaskBrushLight}" x:Name="PART_combobox_grid"> + <Grid.Style> + <Style TargetType="Grid"> + <Setter Property="Opacity" Value="0"></Setter> + <Setter Property="Visibility" Value="Hidden"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentComboBox,Converter={StaticResource NullObjectToBooleanConverter}}" Value="True"> + <Setter Property="Visibility" Value="Visible"></Setter> + <DataTrigger.EnterActions> + <BeginStoryboard> + <Storyboard> + <DoubleAnimation To="1" Storyboard.TargetProperty="Opacity" Duration="00:00:0.2" /> + </Storyboard> + </BeginStoryboard> + </DataTrigger.EnterActions> + </DataTrigger> + </Style.Triggers> + </Style> + </Grid.Style> + + <Grid DataContext="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentComboBox}" VerticalAlignment="Center" HorizontalAlignment="Center"> + <Border Background="{StaticResource TangoPrimaryBackgroundBrush}" CornerRadius="5" Margin="10"> + <Border.Effect> + <DropShadowEffect BlurRadius="10" /> + </Border.Effect> + + <Grid ClipToBounds="True"> + <DockPanel> + <Grid DockPanel.Dock="Top"> + <Border CornerRadius="5 5 0 0" Background="{StaticResource TangoPopupTitleBackgroundBrush}" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0 0 0 1" Padding="30"> + <TextBlock DockPanel.Dock="Top" Text="{Binding Title}" FontSize="{StaticResource TangoComboBoxTitleFontSize}" FontWeight="SemiBold"></TextBlock> + </Border> + <local:TouchIconButton x:Name="PART_comboboxCloseButton" Background="Transparent" Padding="35" Style="{StaticResource TangoRoundTouchIconButton}" Command="{Binding CloseCommand}" CommandParameter="{Binding}" HorizontalAlignment="Right" MaxHeight="90" Width="{Binding RelativeSource={RelativeSource Self},Path=ActualHeight}" Icon="Close" Foreground="{StaticResource TangoDarkForegroundBrush}" Opacity="0.5" /> + </Grid> + <local:TouchListBox x:Name="PART_ComboBoxList" Width="{Binding MinPopupWidth}" Height="{Binding MinPopupHeight}" ItemSelectedCommand="{Binding RelativeSource={RelativeSource AncestorType=local:TouchPanel},Path=ComboBoxPickedCommand}" ItemsSource="{Binding ItemsSource}" SelectedItem="{Binding SelectedItem,Mode=TwoWay}" SelectionMode="None" ItemTemplate="{Binding ItemTemplate}" ValuePath="{Binding ValuePath}" VerticalAlignment="Top" > + + </local:TouchListBox> + </DockPanel> + </Grid> + </Border> + </Grid> + </Grid> + + <!--Date Picker--> + <Grid Background="{StaticResource TangoPanelMaskBrushLight}" x:Name="PART_datepicker_grid"> + <Grid.Style> + <Style TargetType="Grid"> + <Setter Property="Opacity" Value="0"></Setter> + <Setter Property="Visibility" Value="Hidden"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentDatePicker,Converter={StaticResource NullObjectToBooleanConverter}}" Value="True"> + <Setter Property="Visibility" Value="Visible"></Setter> + <DataTrigger.EnterActions> + <BeginStoryboard> + <Storyboard> + <DoubleAnimation To="1" Storyboard.TargetProperty="Opacity" Duration="00:00:0.2" /> + </Storyboard> + </BeginStoryboard> + </DataTrigger.EnterActions> + </DataTrigger> + </Style.Triggers> + </Style> + </Grid.Style> + + <Grid DataContext="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentDatePicker}" VerticalAlignment="Center" HorizontalAlignment="Center"> + <Border Background="{StaticResource TangoPrimaryBackgroundBrush}" CornerRadius="5" Margin="10" HorizontalAlignment="Center" VerticalAlignment="Center"> + <Border.Effect> + <DropShadowEffect BlurRadius="10" /> + </Border.Effect> + + <DockPanel> + <StackPanel Margin="0 40 0 10" DockPanel.Dock="Bottom" HorizontalAlignment="Right" Orientation="Horizontal"> + <local:TouchButton Command="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CancelDateCommand}" Width="120" Margin="2 0" Style="{StaticResource TangoMessageBoxButton}">CANCEL</local:TouchButton> + <local:TouchButton Command="{Binding RelativeSource={RelativeSource TemplatedParent},Path=DateSelectedCommand}" Width="120" Margin="2 0" Style="{StaticResource TangoMessageBoxButton}">OK</local:TouchButton> + </StackPanel> + + <Viewbox Width="470" Stretch="Uniform"> + <local:TouchCalendar Width="370" x:Name="PART_calendar" Focusable="False" + SelectedDate="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentDatePicker.SelectedDate,Mode=OneWay}" + DisplayDateStart="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentDatePicker.DisplayDateStart,Mode=OneWay}" + DisplayDateEnd="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentDatePicker.DisplayDateEnd,Mode=OneWay}"/> + </Viewbox> + </DockPanel> + </Border> + </Grid> + </Grid> + + <!--Messages--> + <Grid Background="{StaticResource TangoPanelMaskBrushLight}"> + <Grid.Style> + <Style TargetType="Grid"> + <!--<Setter Property="Opacity" Value="0"></Setter>--> + <Setter Property="Visibility" Value="Hidden"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding RelativeSource={RelativeSource TemplatedParent},Path=HasMessageBox}" Value="True"> + <Setter Property="Visibility" Value="Visible"></Setter> + <!--<DataTrigger.EnterActions> + <BeginStoryboard> + <Storyboard> + <DoubleAnimation To="1" Storyboard.TargetProperty="Opacity" Duration="00:00:0.2" /> + </Storyboard> + </BeginStoryboard> + </DataTrigger.EnterActions>--> + </DataTrigger> + </Style.Triggers> + </Style> + </Grid.Style> + + <Grid Height="400" Margin="20" RenderTransformOrigin="0.5,0.5"> + <Grid.Style> + <Style TargetType="Grid"> + <Setter Property="RenderTransform"> + <Setter.Value> + <ScaleTransform ScaleX="0" ScaleY="0" /> + </Setter.Value> + </Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding RelativeSource={RelativeSource TemplatedParent},Path=HasMessageBox}" Value="True"> + <DataTrigger.EnterActions> + <BeginStoryboard> + <Storyboard> + <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX" From="0" To="1" Duration="00:00:0.1" /> + <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleY" From="0" To="1" Duration="00:00:0.1" /> + </Storyboard> + </BeginStoryboard> + </DataTrigger.EnterActions> + <DataTrigger.ExitActions> + <BeginStoryboard> + <Storyboard> + <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX" From="1" To="0" Duration="00:00:0.1" /> + <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleY" From="1" To="0" Duration="00:00:0.1" /> + </Storyboard> + </BeginStoryboard> + </DataTrigger.ExitActions> + </DataTrigger> + </Style.Triggers> + </Style> + </Grid.Style> + + <Border DataContext="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentMessageBox}" Background="{StaticResource TangoPrimaryBackgroundBrush}" CornerRadius="5" Margin="10"> + <Border.Effect> + <DropShadowEffect BlurRadius="10" /> + </Border.Effect> + <Grid ClipToBounds="True"> + <DockPanel> + <Grid DockPanel.Dock="Top"> + <Border CornerRadius="5 5 0 0" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0 0 0 1" Padding="30" Background="{Binding HeaderBrush}"> + <StackPanel Orientation="Horizontal" HorizontalAlignment="Left"> + <local:TouchIcon Width="24" Height="24" Icon="{Binding Icon}" Margin="0 0 20 0" Foreground="{Binding Brush}" /> + <TextBlock Text="{Binding Title}" FontSize="{StaticResource TangoMessageBoxTitleFontSize}" FontWeight="Normal"></TextBlock> + </StackPanel> + </Border> + <local:TouchIconButton Background="Transparent" Padding="35" Style="{StaticResource TangoRoundTouchIconButton}" Command="{Binding CloseCommand}" CommandParameter="{Binding}" HorizontalAlignment="Right" MaxHeight="90" Width="{Binding RelativeSource={RelativeSource Self},Path=ActualHeight}" Icon="Close" Foreground="{StaticResource TangoDarkForegroundBrush}" Opacity="0.5" /> + </Grid> + + <StackPanel Orientation="Horizontal" DockPanel.Dock="Bottom" HorizontalAlignment="Center" Height="50" Margin="0 0 0 40"> + <local:TouchButton x:Name="btnCancel" FontWeight="Normal" CornerRadius="25" Width="220" FontSize="{StaticResource TangoMessageBoxButtonFontSize}" Margin="0 0 30 0" Style="{StaticResource TangoHollowButton}" Command="{Binding CloseCommand}" Visibility="{Binding HasCancel,Converter={StaticResource BooleanToVisibilityConverter}}">CANCEL</local:TouchButton> + <local:TouchButton x:Name="btnOK" FontWeight="Normal" Width="220" CornerRadius="25" FontSize="{StaticResource TangoMessageBoxButtonFontSize}" Margin="30 0 0 0" Style="{StaticResource TangoHollowButton}" Command="{Binding OKCommand}">OK</local:TouchButton> + </StackPanel> + + <TextBlock FontSize="{StaticResource TangoMessageBoxMessageFontSize}" Text="{Binding Message}" VerticalAlignment="Center" HorizontalAlignment="Center" TextWrapping="Wrap" Margin="10 0"></TextBlock> + + </DockPanel> + </Grid> + </Border> + </Grid> + </Grid> + + <!--Busy--> + <Grid Background="{StaticResource TangoPanelMaskBrushLight}"> + <Grid.Style> + <Style TargetType="Grid"> + <Setter Property="Visibility" Value="Hidden"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding RelativeSource={RelativeSource TemplatedParent},Path=IsBusy}" Value="True"> + <Setter Property="Visibility" Value="Visible"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </Grid.Style> + + <Grid MinHeight="390" Margin="20" RenderTransformOrigin="0.5,0.5" VerticalAlignment="Center"> + <Grid.Style> + <Style TargetType="Grid"> + <Setter Property="RenderTransform"> + <Setter.Value> + <ScaleTransform ScaleX="0" ScaleY="0" /> + </Setter.Value> + </Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding RelativeSource={RelativeSource TemplatedParent},Path=IsBusy}" Value="True"> + <DataTrigger.EnterActions> + <BeginStoryboard> + <Storyboard> + <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX" From="0" To="1" Duration="00:00:0.1" /> + <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleY" From="0" To="1" Duration="00:00:0.1" /> + </Storyboard> + </BeginStoryboard> + </DataTrigger.EnterActions> + <DataTrigger.ExitActions> + <BeginStoryboard> + <Storyboard> + <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX" From="1" To="0" Duration="00:00:0.1" /> + <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleY" From="1" To="0" Duration="00:00:0.1" /> + </Storyboard> + </BeginStoryboard> + </DataTrigger.ExitActions> + </DataTrigger> + </Style.Triggers> + </Style> + </Grid.Style> + + <Border Background="{StaticResource TangoPrimaryBackgroundBrush}" CornerRadius="5" Margin="10"> + <Border.Effect> + <DropShadowEffect BlurRadius="10" /> + </Border.Effect> + <Grid ClipToBounds="True"> + <DockPanel> + <Grid DockPanel.Dock="Top"> + <Border CornerRadius="5 5 0 0" Background="{StaticResource TangoPopupTitleBackgroundBrush}" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0 0 0 1" Padding="30"> + <StackPanel Orientation="Horizontal" HorizontalAlignment="Left"> + <local:TouchIcon Width="24" Height="24" Icon="ProgressClock" Margin="0 0 20 0" Foreground="{StaticResource TangoPrimaryAccentBrush}" /> + <TextBlock Text="Working" FontSize="{StaticResource TangoMessageBoxTitleFontSize}" FontWeight="Normal"></TextBlock> + </StackPanel> + </Border> + </Grid> + + <local:TouchBusyIndicator DockPanel.Dock="Bottom" Margin="0 0 0 40" IsIndeterminate="{Binding RelativeSource={RelativeSource TemplatedParent},Path=IsBusy}" Width="100" Height="100"></local:TouchBusyIndicator> + + <TextBlock FontSize="{StaticResource TangoMessageBoxMessageFontSize}" Text="{Binding RelativeSource={RelativeSource TemplatedParent},Path=BusyMessage}" VerticalAlignment="Center" HorizontalAlignment="Center" TextWrapping="Wrap"></TextBlock> + </DockPanel> + </Grid> + </Border> + </Grid> + </Grid> + </Grid> + <!--</keyboard:KeyboardView>--> + </Grid> + </Border> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + + +</ResourceDictionary>
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.Touch/Controls/TouchToggleSlider.cs b/Software/Visual_Studio/Tango.Touch/Controls/TouchToggleSlider.cs index 79afdfaab..b1e7080fc 100644 --- a/Software/Visual_Studio/Tango.Touch/Controls/TouchToggleSlider.cs +++ b/Software/Visual_Studio/Tango.Touch/Controls/TouchToggleSlider.cs @@ -105,6 +105,48 @@ namespace Tango.Touch.Controls } public static readonly DependencyProperty CheckedThumbContentTemplateProperty = DependencyProperty.Register("CheckedThumbContentTemplate", typeof(DataTemplate), typeof(TouchToggleSlider), new PropertyMetadata(null)); + + public String LeftText + { + get { return (String)GetValue(LeftTextProperty); } + set { SetValue(LeftTextProperty, value); } + } + + public static readonly DependencyProperty LeftTextProperty = + DependencyProperty.Register("LeftText", typeof(String), typeof(TouchToggleSlider), new PropertyMetadata("")); + + public CornerRadius ThumbCornerRadius + { + get { return (CornerRadius)GetValue(ThumbCornerRadiusProperty); } + set { SetValue(ThumbCornerRadiusProperty, value); } + } + public static readonly DependencyProperty ThumbCornerRadiusProperty = + DependencyProperty.Register("ThumbCornerRadius", typeof(CornerRadius), typeof(TouchToggleSlider), new PropertyMetadata(default(CornerRadius))); + + public String RightText + { + get { return (String)GetValue(RightTextProperty); } + set { SetValue(RightTextProperty, value); } + } + + // Using a DependencyProperty as the backing store for RightText. This enables animation, styling, binding, etc... + public static readonly DependencyProperty RightTextProperty = + DependencyProperty.Register("RightText", typeof(String), typeof(TouchToggleSlider), new PropertyMetadata("")); + + + + public int ThumbWidth + { + get { return (int)GetValue(ThumbWidthProperty); } + set { SetValue(ThumbWidthProperty, value); } + } + + // Using a DependencyProperty as the backing store for ThumbWidth. This enables animation, styling, binding, etc... + public static readonly DependencyProperty ThumbWidthProperty = + DependencyProperty.Register("ThumbWidth", typeof(int), typeof(TouchToggleSlider), new PropertyMetadata(0)); + + + public TouchToggleSlider() { @@ -120,6 +162,7 @@ namespace Tango.Touch.Controls { base.OnApplyTemplate(); _grid_ellipse = GetTemplateChild("PART_GridEllipse") as Grid; + SetThumbPosition(); } protected override void OnChecked(RoutedEventArgs e) @@ -143,7 +186,15 @@ namespace Tango.Touch.Controls if (IsChecked.Value) { - ani.To = new Thickness(ActualWidth - _grid_ellipse.ActualWidth - 4, 0, 0, 0); + if (ActualWidth != 0 && _grid_ellipse.ActualWidth == 0) + { + ani.To = new Thickness(ActualWidth - (ActualWidth/2) - 4, 0, 0, 0); + } + else + { + ani.To = new Thickness(ActualWidth - _grid_ellipse.ActualWidth - 4, 0, 0, 0); + } + } else { diff --git a/Software/Visual_Studio/Tango.Touch/Controls/TouchToggleSlider.xaml b/Software/Visual_Studio/Tango.Touch/Controls/TouchToggleSlider.xaml index 2f758ec8c..66328ea2d 100644 --- a/Software/Visual_Studio/Tango.Touch/Controls/TouchToggleSlider.xaml +++ b/Software/Visual_Studio/Tango.Touch/Controls/TouchToggleSlider.xaml @@ -62,7 +62,7 @@ </Grid> </Grid> - <Grid HorizontalAlignment="Left" x:Name="PART_GridEllipse"> + <Grid HorizontalAlignment="Left" x:Name="PART_GridEllipse" Width="{Binding RelativeSource={RelativeSource Self},Path=ActualHeight}"> <Grid Margin="4" x:Name="ellipse" Width="{Binding RelativeSource={RelativeSource Self},Path=ActualHeight}"> <Ellipse Fill="{TemplateBinding ThumbBrush}"></Ellipse> @@ -132,4 +132,127 @@ </Style.Triggers> </Style> + <Style x:Key="TangoToggleButtonGreenAccent" TargetType="{x:Type local:TouchToggleSlider}" BasedOn="{StaticResource {x:Type local:TouchToggleSlider}}"> + <Setter Property="CheckedBackground" Value="{StaticResource TangoGreenBrush}"/> + <Setter Property="UncheckedBackground" Value="{StaticResource TangoDividerBrush}"/> + <Setter Property="CornerRadius" Value="20"></Setter> + <Setter Property="BorderThickness" Value="2"></Setter> + <Setter Property="BorderBrush" Value="{StaticResource TangoRippleLightBrush}"></Setter> + <Setter Property="ThumbBrush" Value="{StaticResource TangoPrimaryBackgroundBrush}"></Setter> + <Style.Triggers> + <Trigger Property="IsChecked" Value="True"> + <Trigger.EnterActions> + <BeginStoryboard> + <Storyboard> + <ColorAnimation Storyboard.TargetProperty="BorderBrush.Color" To="{StaticResource RippleLightColor}" Duration="00:00:0.2"></ColorAnimation> + <ColorAnimation Storyboard.TargetProperty="ThumbBrush.Color" To="{StaticResource TangoPrimaryBackgroundColor}" Duration="00:00:0.2"></ColorAnimation> + </Storyboard> + </BeginStoryboard> + </Trigger.EnterActions> + <Trigger.ExitActions> + <BeginStoryboard> + <Storyboard> + <ColorAnimation Storyboard.TargetProperty="BorderBrush.Color" To="{StaticResource RippleLightColor}" Duration="00:00:0.2"></ColorAnimation> + <ColorAnimation Storyboard.TargetProperty="ThumbBrush.Color" To="{StaticResource TangoPrimaryBackgroundColor}" Duration="00:00:0.2"></ColorAnimation> + </Storyboard> + </BeginStoryboard> + </Trigger.ExitActions> + </Trigger> + </Style.Triggers> + </Style> + + <Style x:Key="TouchToggleButtonSlider" TargetType="{x:Type local:TouchToggleSlider}" BasedOn="{StaticResource {x:Type local:TouchToggleSlider}}"> + <Setter Property="BorderThickness" Value="1"></Setter> + <Setter Property="UncheckedBackground" Value="Transparent"></Setter> + <Setter Property="CheckedBackground" Value="Transparent"></Setter> + <Setter Property="ThumbBrush" Value="{StaticResource TangoPrimaryBackgroundBrush}"></Setter> + <Setter Property="BorderBrush" Value="{StaticResource TangoDividerBrush}"/> + <Setter Property="Foreground" Value="White"/> + <Setter Property="CornerRadius" Value="20"></Setter> + <Setter Property="ThumbCornerRadius" Value="18"/> + <Setter Property="LeftText" Value="Left"/> + <Setter Property="RightText" Value="Right"/> + <Setter Property="ThumbWidth" Value="40"/> + + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type local:TouchToggleSlider}"> + <Border> + <Border.Effect> + <DropShadowEffect ShadowDepth="0" BlurRadius="1" Opacity="1"/> + </Border.Effect> + + <components:Ripple CornerRadius="{TemplateBinding CornerRadius}" Centered="True" RippleBrush="{StaticResource TangoRippleDarkBrush}"> + <Border + BorderBrush="{TemplateBinding BorderBrush}" + BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="{TemplateBinding CornerRadius}"> + + <Border.Style> + <Style TargetType="Border"> + <Setter Property="Background" Value="{Binding RelativeSource={RelativeSource AncestorType=local:TouchToggleSlider},Path=UncheckedBackground}"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=local:TouchToggleSlider},Path=IsChecked}" Value="True"> + <Setter Property="Background" Value="{Binding RelativeSource={RelativeSource AncestorType=local:TouchToggleSlider},Path=CheckedBackground}"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </Border.Style> + <Grid> + <Grid> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="1*" /> + <ColumnDefinition Width="1*" /> + </Grid.ColumnDefinitions> + + <Grid Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Center" Visibility="{Binding RelativeSource={RelativeSource AncestorType=local:TouchToggleSlider},Path=IsChecked,Converter={StaticResource BooleanToVisibilityInverseConverter}}"> + <TextBlock Text="{TemplateBinding RightText}" Foreground="{StaticResource TangoDisabledForegroundBrush}"></TextBlock> + </Grid> + + <Grid Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Center" Visibility="{Binding RelativeSource={RelativeSource AncestorType=local:TouchToggleSlider},Path=IsChecked,Converter={StaticResource BooleanToVisibilityConverter}}"> + <TextBlock Text="{TemplateBinding LeftText}" Foreground="{StaticResource TangoDisabledForegroundBrush}"></TextBlock> + </Grid> + </Grid> + + <Grid HorizontalAlignment="Left" x:Name="PART_GridEllipse"> + <Grid Margin="4" x:Name="ellipse" Width="{Binding RelativeSource={ RelativeSource AncestorType=local:TouchToggleSlider},Path=ThumbWidth}"> + <Border Background="{StaticResource TangoMidAccentBrush}" CornerRadius="{TemplateBinding ThumbCornerRadius}" Width="{Binding RelativeSource={ RelativeSource AncestorType=local:TouchToggleSlider},Path=ThumbWidth}"></Border> + + <Grid HorizontalAlignment="Center" VerticalAlignment="Center" Visibility="{Binding RelativeSource={RelativeSource AncestorType=local:TouchToggleSlider},Path=IsChecked,Converter={StaticResource BooleanToVisibilityInverseConverter}}"> + <TextBlock Text="{TemplateBinding LeftText}"></TextBlock> + </Grid> + + <Grid HorizontalAlignment="Center" VerticalAlignment="Center" Visibility="{Binding RelativeSource={RelativeSource AncestorType=local:TouchToggleSlider},Path=IsChecked,Converter={StaticResource BooleanToVisibilityConverter}}"> + <TextBlock Text="{TemplateBinding RightText}"></TextBlock> + </Grid> + </Grid> + </Grid> + </Grid> + </Border> + </components:Ripple> + </Border> + </ControlTemplate> + </Setter.Value> + </Setter> + <Style.Triggers> + <Trigger Property="IsChecked" Value="True"> + <Trigger.EnterActions> + <BeginStoryboard> + <Storyboard> + <ColorAnimation Storyboard.TargetProperty="BorderBrush.Color" To="{StaticResource TangoDividerColor}" Duration="00:00:0.2"></ColorAnimation> + <ColorAnimation Storyboard.TargetProperty="ThumbBrush.Color" To="{StaticResource TangoPrimaryBackgroundColor}" Duration="00:00:0.2"></ColorAnimation> + </Storyboard> + </BeginStoryboard> + </Trigger.EnterActions> + <Trigger.ExitActions> + <BeginStoryboard> + <Storyboard> + <ColorAnimation Storyboard.TargetProperty="BorderBrush.Color" To="{StaticResource TangoDividerColor}" Duration="00:00:0.2"></ColorAnimation> + <ColorAnimation Storyboard.TargetProperty="ThumbBrush.Color" To="{StaticResource TangoPrimaryBackgroundColor}" Duration="00:00:0.2"></ColorAnimation> + </Storyboard> + </BeginStoryboard> + </Trigger.ExitActions> + </Trigger> + </Style.Triggers> + </Style> + </ResourceDictionary>
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.Touch/Helpers/TouchHelper.cs b/Software/Visual_Studio/Tango.Touch/Helpers/TouchHelper.cs index 4247f37e9..e3ad29be4 100644 --- a/Software/Visual_Studio/Tango.Touch/Helpers/TouchHelper.cs +++ b/Software/Visual_Studio/Tango.Touch/Helpers/TouchHelper.cs @@ -18,6 +18,14 @@ namespace Tango.Touch.Helpers /// </summary> public static bool IsTouchEnabled() { + const int MAXTOUCHES_INDEX = 95; + int maxTouches = GetSystemMetrics(MAXTOUCHES_INDEX); + + if (maxTouches > 0) + { + return true; + } + foreach (TabletDevice tabletDevice in Tablet.TabletDevices) { if (tabletDevice.Type == TabletDeviceType.Touch && !String.IsNullOrWhiteSpace(tabletDevice.Name)) diff --git a/Software/Visual_Studio/Tango.Touch/Resources/Colors.xaml b/Software/Visual_Studio/Tango.Touch/Resources/Colors.xaml index 2433ca077..1dc2090aa 100644 --- a/Software/Visual_Studio/Tango.Touch/Resources/Colors.xaml +++ b/Software/Visual_Studio/Tango.Touch/Resources/Colors.xaml @@ -56,6 +56,21 @@ <Color x:Key="TangoPowerMenuOpenedBackgroundColor">#4E5470</Color> + <Color x:Key="TangoPanelMaskColor">#9E000000</Color> + <Color x:Key="TangoPanelMaskColorLight">#55FFFFFF</Color> + <Color x:Key="TangoMenuPanelDarkColor">#000131</Color> + + <Color x:Key="Tango_RealTimeGraph_White">#18FFFFFF</Color> + <Color x:Key="Tango_RealTimeGraph_Red">#B6FF6F6F</Color> + <Color x:Key="Tango_RealTimeGraph_Yellow">#BBFFB84B</Color> + <Color x:Key="Tango_RealTimeGraph_Green">#B958C13B</Color> + <Color x:Key="Tango_RealTimeGraph_Orange">#BBFA9252</Color> + + <Color x:Key="Tango_RealTimeGraph_ForegroundColor">#7C98B3</Color> + <Color x:Key="Tango_RealTimeGraph_OuterBorderColor">#202020</Color> + <Color x:Key="Tango_RealTimeGraph_InnerBorderColor">#505050</Color> + <Color x:Key="Tango_RealTimeGraph_GridLinesColor">#303030</Color> + <!--Brushes--> <SolidColorBrush x:Key="TangoPrimaryBackgroundBrush" Color="{StaticResource TangoPrimaryBackgroundColor}"></SolidColorBrush> <SolidColorBrush x:Key="TangoMidBackgroundBrush" Color="{StaticResource TangoMidBackgroundColor}"></SolidColorBrush> @@ -106,6 +121,9 @@ <SolidColorBrush x:Key="TangoNotificationBarBottomBorderBrush" Color="{StaticResource TangoNotificationBarBottomBorderColor}"></SolidColorBrush> <SolidColorBrush x:Key="TangoNotificationBarBackgroundBrush" Color="{StaticResource TangoNotificationBarBackgroundColor}"></SolidColorBrush> + <SolidColorBrush x:Key="TangoPanelMaskBrush" Color="{StaticResource TangoPanelMaskColor}"></SolidColorBrush> + <SolidColorBrush x:Key="TangoPanelMaskBrushLight" Color="{StaticResource TangoPanelMaskColorLight}"></SolidColorBrush> + <LinearGradientBrush x:Key="TangoNotificationBackgroundBrush" StartPoint="0.5,0" EndPoint="0.5,1"> <GradientStop Color="White"/> <GradientStop Color="White" Offset="1"/> @@ -120,4 +138,22 @@ <SolidColorBrush x:Key="TangoPopupTitleBackgroundBrush" Color="{StaticResource TangoPopupTitleBackgroundColor}"></SolidColorBrush> <SolidColorBrush x:Key="TangoPowerMenuOpenedBackgroundBrush" Color="{StaticResource TangoPowerMenuOpenedBackgroundColor}"></SolidColorBrush> + <SolidColorBrush x:Key="TangoMenuPanelDarkBrush" Color="{StaticResource TangoMenuPanelDarkColor}"></SolidColorBrush> + + <SolidColorBrush x:Key="Tango_RealTimeGraph_ForegroundBrush" Color="{StaticResource Tango_RealTimeGraph_ForegroundColor}" /> + <SolidColorBrush x:Key="Tango_RealTimeGraph_OuterBorderBrush" Color="{StaticResource Tango_RealTimeGraph_OuterBorderColor}" /> + <SolidColorBrush x:Key="Tango_RealTimeGraph_InnerBorderBrush" Color="{StaticResource Tango_RealTimeGraph_InnerBorderColor}" /> + <SolidColorBrush x:Key="Tango_RealTimeGraph_GridLinesBrush" Color="{StaticResource Tango_RealTimeGraph_GridLinesColor}" /> + + <LinearGradientBrush x:Key="Tango_RealTimeGraph_BackgroundBrush" EndPoint="0.5,1" StartPoint="0.5,0" > + <GradientStop Color="#202020"/> + <GradientStop Color="#FF333333" Offset="1"/> + </LinearGradientBrush> + + <SolidColorBrush x:Key="Tango_RealTimeGraph_WhiteBrush" Color="{StaticResource Tango_RealTimeGraph_White}"></SolidColorBrush> + <SolidColorBrush x:Key="Tango_RealTimeGraph_RedBrush" Color="{StaticResource Tango_RealTimeGraph_Red}"></SolidColorBrush> + <SolidColorBrush x:Key="Tango_RealTimeGraph_YellowBrush" Color="{StaticResource Tango_RealTimeGraph_Yellow}"></SolidColorBrush> + <SolidColorBrush x:Key="Tango_RealTimeGraph_GreenBrush" Color="{StaticResource Tango_RealTimeGraph_Green}"></SolidColorBrush> + <SolidColorBrush x:Key="Tango_RealTimeGraph_OrangeBrush" Color="{StaticResource Tango_RealTimeGraph_Orange}"></SolidColorBrush> + </ResourceDictionary>
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.Touch/Resources/Fonts.xaml b/Software/Visual_Studio/Tango.Touch/Resources/Fonts.xaml index f8db0094f..d4990ebf9 100644 --- a/Software/Visual_Studio/Tango.Touch/Resources/Fonts.xaml +++ b/Software/Visual_Studio/Tango.Touch/Resources/Fonts.xaml @@ -29,4 +29,6 @@ <sys:Double x:Key="TangoMenuItemFontSize">27</sys:Double> <sys:Double x:Key="TangoLargeFontSize">46</sys:Double> + <sys:Double x:Key="TangoLargeHeaderFontSize">42</sys:Double> + <sys:Double x:Key="TangoLargeInfoFontSize">36</sys:Double> </ResourceDictionary>
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.Touch/Styles/TouchScrollViewer.xaml b/Software/Visual_Studio/Tango.Touch/Styles/TouchScrollViewer.xaml index 8c112431e..92cbc71f1 100644 --- a/Software/Visual_Studio/Tango.Touch/Styles/TouchScrollViewer.xaml +++ b/Software/Visual_Studio/Tango.Touch/Styles/TouchScrollViewer.xaml @@ -87,5 +87,48 @@ </Setter> </Style> + <Style x:Key="TouchScrollViewerListBox" TargetType="{x:Type controls:TouchScrollViewer}" > + <Setter Property="Stylus.IsPressAndHoldEnabled" Value="false"/> + <Setter Property="Stylus.IsFlicksEnabled" Value="false"/> + <Setter Property="Background" Value="#33000000"/> + <Setter Property="BorderBrush" Value="#33000000"/> + <Setter Property="Foreground" Value="Gray"/> + <Setter Property="BorderThickness" Value="0"/> + <Setter Property="Width" Value="5"/> + <Setter Property="MinWidth" Value="5"/> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type ScrollViewer}"> + <Grid> + <Grid.RowDefinitions> + <RowDefinition Height="Auto"/> + <RowDefinition Height="*"/> + </Grid.RowDefinitions> + + <DataGridColumnHeadersPresenter x:Name="PART_ColumnHeadersPresenter" Visibility="Collapsed"/> + <ScrollContentPresenter x:Name="PART_ScrollContentPresenter" CanContentScroll="{TemplateBinding CanContentScroll}" Grid.Row="1"/> + <ScrollBar Opacity="0" Grid.Row="1" x:Name="PART_VerticalScrollBar" Style="{StaticResource TouchScrollBar}" HorizontalAlignment="Right" AutomationProperties.AutomationId="VerticalScrollBar" Cursor="Arrow" Grid.Column="1" Maximum="{TemplateBinding ScrollableHeight}" Minimum="0" Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}" Value="{Binding VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportHeight}"/> + </Grid> + + <ControlTemplate.Triggers> + <EventTrigger RoutedEvent="ScrollViewer.ScrollChanged"> + <EventTrigger.Actions> + <BeginStoryboard> + <Storyboard> + <DoubleAnimationUsingKeyFrames Storyboard.TargetName="PART_VerticalScrollBar" Storyboard.TargetProperty="Opacity" Duration="00:00:03" FillBehavior="Stop"> + <EasingDoubleKeyFrame KeyTime="00:00:0.2" Value="1"></EasingDoubleKeyFrame> + <DiscreteDoubleKeyFrame KeyTime="00:00:2.5" Value="1"></DiscreteDoubleKeyFrame> + <EasingDoubleKeyFrame KeyTime="00:00:03" Value="0"></EasingDoubleKeyFrame> + </DoubleAnimationUsingKeyFrames> + </Storyboard> + </BeginStoryboard> + </EventTrigger.Actions> + </EventTrigger> + </ControlTemplate.Triggers> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + </ResourceDictionary>
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.Touch/Tango.Touch.csproj b/Software/Visual_Studio/Tango.Touch/Tango.Touch.csproj index 58eb68e45..daa7dc228 100644 --- a/Software/Visual_Studio/Tango.Touch/Tango.Touch.csproj +++ b/Software/Visual_Studio/Tango.Touch/Tango.Touch.csproj @@ -67,10 +67,14 @@ <Compile Include="Controls\FocusSelectionMode.cs" /> <Compile Include="Controls\IValueControl.cs" /> <Compile Include="Controls\MessageBoxVM.cs" /> + <Compile Include="Controls\SliderContentControl.cs" /> + <Compile Include="Controls\TouchArcProgress.cs" /> <Compile Include="Controls\TouchAutoComplete.cs" /> <Compile Include="Controls\TouchCalendar.cs" /> <Compile Include="Controls\TouchCheckBox.cs" /> <Compile Include="Controls\TouchClickableControl.cs" /> + <Compile Include="Controls\TouchPanelEurekaNoKeyboard.cs" /> + <Compile Include="Controls\TouchPanelEureka.cs" /> <Compile Include="TouchColorPickerControls\MultiRangeSlider.cs" /> <Compile Include="TouchColorPickerControls\TouchSliderThreeThumbs.cs" /> <Compile Include="TouchColorPickerControls\TouchColorPickerCMYKControl.cs" /> @@ -131,6 +135,14 @@ <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> </Page> + <Page Include="Controls\SliderContentControl.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Controls\TouchArcProgress.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> <Page Include="Controls\TouchAutoComplete.xaml"> <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> @@ -143,6 +155,14 @@ <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> </Page> + <Page Include="Controls\TouchPanelEurekaNoKeyboard.xaml"> + <Generator>MSBuild:Compile</Generator> + <SubType>Designer</SubType> + </Page> + <Page Include="Controls\TouchPanelEureka.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> <Page Include="Styles\TouchCheckBox.xaml"> <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> @@ -492,7 +512,7 @@ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <ProjectExtensions> <VisualStudio> - <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" /> + <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" /> </VisualStudio> </ProjectExtensions> </Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.Touch/Themes/Generic.xaml b/Software/Visual_Studio/Tango.Touch/Themes/Generic.xaml index 0a9ce1282..188fdddd5 100644 --- a/Software/Visual_Studio/Tango.Touch/Themes/Generic.xaml +++ b/Software/Visual_Studio/Tango.Touch/Themes/Generic.xaml @@ -39,6 +39,7 @@ <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Controls/TouchSlider.xaml" /> <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Controls/TouchStaticListBox.xaml" /> <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Controls/TouchRingProgress.xaml" /> + <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Controls/TouchArcProgress.xaml" /> <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Controls/TouchNativeListBox.xaml" /> <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Controls/TouchGifAnimation.xaml" /> <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Controls/TouchFlatListBox.xaml" /> @@ -65,6 +66,10 @@ <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Styles/TouchScrollViewer.xaml"/> <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Controls/TouchPanel.xaml" /> + <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Controls/TouchPanelEureka.xaml" /> + <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Controls/TouchPanelEurekaNoKeyboard.xaml" /> + <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Controls/SliderContentControl.xaml" /> + <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/TouchColorPickerControls/TouchColorPickerSlider.xaml"/> <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/TouchColorPickerControls/TouchColorPickerControl.xaml"/> <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/TouchColorPickerControls/TouchColorPickerHSBControl.xaml"/> @@ -73,6 +78,7 @@ <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/TouchColorPickerControls/TouchColorPickerCMYKControl.xaml"/> <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/TouchColorPickerControls/MultiRangeSlider.xaml"/> <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/TouchColorPickerControls/TouchSliderThreeThumbs.xaml"/> + </ResourceDictionary.MergedDictionaries> </ResourceDictionary> diff --git a/Software/Visual_Studio/Tango.Touch/TouchColorPickerControls/MultiRangeSlider.cs b/Software/Visual_Studio/Tango.Touch/TouchColorPickerControls/MultiRangeSlider.cs index 31342159d..9c33abf59 100644 --- a/Software/Visual_Studio/Tango.Touch/TouchColorPickerControls/MultiRangeSlider.cs +++ b/Software/Visual_Studio/Tango.Touch/TouchColorPickerControls/MultiRangeSlider.cs @@ -62,7 +62,7 @@ namespace Tango.Touch.Controls /// </summary> public static readonly DependencyProperty MaximumValueProperty = DependencyProperty.RegisterAttached("MaximumValue", typeof(double), typeof(MultiRangeSlider), - new FrameworkPropertyMetadata(100.0, MaximumValueChanged)); + new FrameworkPropertyMetadata(100.0, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, MaximumValueChanged)); public bool IsSelected { diff --git a/Software/Visual_Studio/Tango.Transport/Adapters/UsbSerialBaudRates.cs b/Software/Visual_Studio/Tango.Transport/Adapters/UsbSerialBaudRates.cs index eade1deb6..c92d0f13a 100644 --- a/Software/Visual_Studio/Tango.Transport/Adapters/UsbSerialBaudRates.cs +++ b/Software/Visual_Studio/Tango.Transport/Adapters/UsbSerialBaudRates.cs @@ -14,9 +14,23 @@ namespace Tango.Transport.Adapters { [Description("9600")] BR_9600 = 9600, + [Description("19200")] BR_19200 = 19200, + [Description("115200")] BR_115200 = 115200, + + [Description("1000000")] + BR_1000000 = 1000000, + + [Description("2500000")] + BR_2500000 = 2500000, + + [Description("4000000")] + BR_4000000 = 4000000, + + [Description("5000000")] + BR_5000000 = 5000000, } } diff --git a/Software/Visual_Studio/Tango.Transport/Discovery/TcpValidationInfo.cs b/Software/Visual_Studio/Tango.Transport/Discovery/TcpValidationInfo.cs index 8dd3aedf0..70559ebd4 100644 --- a/Software/Visual_Studio/Tango.Transport/Discovery/TcpValidationInfo.cs +++ b/Software/Visual_Studio/Tango.Transport/Discovery/TcpValidationInfo.cs @@ -10,5 +10,6 @@ namespace Tango.Transport.Discovery { public String SerialNumber { get; set; } public String Guid { get; set; } + public int MachineType { get; set; } } } diff --git a/Software/Visual_Studio/Tango.Transport/Discovery/UdpDiscoveryService.cs b/Software/Visual_Studio/Tango.Transport/Discovery/UdpDiscoveryService.cs index 3e714325b..f593a6ea6 100644 --- a/Software/Visual_Studio/Tango.Transport/Discovery/UdpDiscoveryService.cs +++ b/Software/Visual_Studio/Tango.Transport/Discovery/UdpDiscoveryService.cs @@ -10,6 +10,7 @@ using System.Threading.Tasks; using System.Timers; using Tango.Core; using Tango.Core.ExtensionMethods; +using Tango.Logging; using Tango.PMR.Discovery; using Tango.PMR.Integration; using Tango.Transport.Helpers; @@ -190,7 +191,7 @@ namespace Tango.Transport.Discovery } catch (Exception ex) { - LogManager.Log(ex, "Error multicasting discovery packet."); + LogManager.Log(ex, LogCategory.Debug, "Error multicasting discovery packet."); } } } diff --git a/Software/Visual_Studio/Tango.Transport/Tango.Transport.csproj b/Software/Visual_Studio/Tango.Transport/Tango.Transport.csproj index b45138dff..34e276017 100644 --- a/Software/Visual_Studio/Tango.Transport/Tango.Transport.csproj +++ b/Software/Visual_Studio/Tango.Transport/Tango.Transport.csproj @@ -193,7 +193,7 @@ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <ProjectExtensions> <VisualStudio> - <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" /> + <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" /> </VisualStudio> </ProjectExtensions> </Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.Web/DeploymentSlot.cs b/Software/Visual_Studio/Tango.Web/DeploymentSlot.cs index 0e470a735..d8c64363c 100644 --- a/Software/Visual_Studio/Tango.Web/DeploymentSlot.cs +++ b/Software/Visual_Studio/Tango.Web/DeploymentSlot.cs @@ -29,6 +29,9 @@ namespace Tango.Web STAGE, [Description("Production")] [DeploymentSlotAddress("https://machineservice.twine-srv.com")] - PROD + PROD, + [Description("BB")] + [DeploymentSlotAddress("https://machineservice-machineservice-bb.azurewebsites.net")] + BB } } diff --git a/Software/Visual_Studio/Tango.sln b/Software/Visual_Studio/Tango.sln index c0da46b64..674867a7c 100644 --- a/Software/Visual_Studio/Tango.sln +++ b/Software/Visual_Studio/Tango.sln @@ -497,6 +497,16 @@ Global Debug|ARM64 = Debug|ARM64 Debug|x64 = Debug|x64 Debug|x86 = Debug|x86 + Eureka_Debug|Any CPU = Eureka_Debug|Any CPU + Eureka_Debug|ARM = Eureka_Debug|ARM + Eureka_Debug|ARM64 = Eureka_Debug|ARM64 + Eureka_Debug|x64 = Eureka_Debug|x64 + Eureka_Debug|x86 = Eureka_Debug|x86 + Eureka|Any CPU = Eureka|Any CPU + Eureka|ARM = Eureka|ARM + Eureka|ARM64 = Eureka|ARM64 + Eureka|x64 = Eureka|x64 + Eureka|x86 = Eureka|x86 Release 4.0|Any CPU = Release 4.0|Any CPU Release 4.0|ARM = Release 4.0|ARM Release 4.0|ARM64 = Release 4.0|ARM64 @@ -549,6 +559,26 @@ Global {40073806-914E-4E78-97AB-FA9639308EBE}.Debug|x64.Build.0 = Debug|Any CPU {40073806-914E-4E78-97AB-FA9639308EBE}.Debug|x86.ActiveCfg = Debug|Any CPU {40073806-914E-4E78-97AB-FA9639308EBE}.Debug|x86.Build.0 = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka|Any CPU.Build.0 = Release|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka|ARM.ActiveCfg = Release|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka|ARM.Build.0 = Release|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka|ARM64.Build.0 = Release|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka|x64.ActiveCfg = Release|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka|x64.Build.0 = Release|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka|x86.ActiveCfg = Release|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka|x86.Build.0 = Release|Any CPU {40073806-914E-4E78-97AB-FA9639308EBE}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {40073806-914E-4E78-97AB-FA9639308EBE}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {40073806-914E-4E78-97AB-FA9639308EBE}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -629,6 +659,26 @@ Global {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Debug|x64.Build.0 = Debug|Any CPU {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Debug|x86.ActiveCfg = Debug|Any CPU {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Debug|x86.Build.0 = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka|Any CPU.Build.0 = Release|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka|ARM.ActiveCfg = Release|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka|ARM.Build.0 = Release|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka|ARM64.Build.0 = Release|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka|x64.ActiveCfg = Release|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka|x64.Build.0 = Release|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka|x86.ActiveCfg = Release|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka|x86.Build.0 = Release|Any CPU {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -709,6 +759,26 @@ Global {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Debug|x64.Build.0 = Debug|Any CPU {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Debug|x86.ActiveCfg = Debug|Any CPU {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Debug|x86.Build.0 = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka|Any CPU.Build.0 = Release|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka|ARM.ActiveCfg = Release|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka|ARM.Build.0 = Release|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka|ARM64.Build.0 = Release|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka|x64.ActiveCfg = Release|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka|x64.Build.0 = Release|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka|x86.ActiveCfg = Release|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka|x86.Build.0 = Release|Any CPU {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -789,6 +859,26 @@ Global {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Debug|x64.Build.0 = Debug|Any CPU {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Debug|x86.ActiveCfg = Debug|Any CPU {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Debug|x86.Build.0 = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka|Any CPU.ActiveCfg = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka|Any CPU.Build.0 = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka|ARM.ActiveCfg = Release|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka|ARM.Build.0 = Release|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka|ARM64.Build.0 = Release|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka|x64.ActiveCfg = Release|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka|x64.Build.0 = Release|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka|x86.ActiveCfg = Release|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka|x86.Build.0 = Release|Any CPU {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -869,6 +959,26 @@ Global {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Debug|x64.Build.0 = Debug|Any CPU {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Debug|x86.ActiveCfg = Debug|Any CPU {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Debug|x86.Build.0 = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka|Any CPU.Build.0 = Release|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka|ARM.ActiveCfg = Release|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka|ARM.Build.0 = Release|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka|ARM64.Build.0 = Release|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka|x64.ActiveCfg = Release|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka|x64.Build.0 = Release|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka|x86.ActiveCfg = Release|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka|x86.Build.0 = Release|Any CPU {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -949,6 +1059,25 @@ Global {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Debug|x64.Build.0 = Debug|Any CPU {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Debug|x86.ActiveCfg = Debug|Any CPU {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Debug|x86.Build.0 = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Eureka|ARM.ActiveCfg = Release|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Eureka|ARM.Build.0 = Release|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Eureka|ARM64.Build.0 = Release|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Eureka|x64.ActiveCfg = Release|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Eureka|x64.Build.0 = Release|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Eureka|x86.ActiveCfg = Release|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Eureka|x86.Build.0 = Release|Any CPU {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -1028,6 +1157,26 @@ Global {E4927038-348D-4295-AAF4-861C58CB3943}.Debug|x64.Build.0 = Debug|Any CPU {E4927038-348D-4295-AAF4-861C58CB3943}.Debug|x86.ActiveCfg = Debug|Any CPU {E4927038-348D-4295-AAF4-861C58CB3943}.Debug|x86.Build.0 = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka|Any CPU.Build.0 = Release|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka|ARM.ActiveCfg = Release|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka|ARM.Build.0 = Release|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka|ARM64.Build.0 = Release|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka|x64.ActiveCfg = Release|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka|x64.Build.0 = Release|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka|x86.ActiveCfg = Release|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka|x86.Build.0 = Release|Any CPU {E4927038-348D-4295-AAF4-861C58CB3943}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {E4927038-348D-4295-AAF4-861C58CB3943}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {E4927038-348D-4295-AAF4-861C58CB3943}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -1108,6 +1257,26 @@ Global {74E700B0-1156-4126-BE40-EE450D3C3026}.Debug|x64.Build.0 = Debug|Any CPU {74E700B0-1156-4126-BE40-EE450D3C3026}.Debug|x86.ActiveCfg = Debug|Any CPU {74E700B0-1156-4126-BE40-EE450D3C3026}.Debug|x86.Build.0 = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka|Any CPU.Build.0 = Release|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka|ARM.ActiveCfg = Release|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka|ARM.Build.0 = Release|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka|ARM64.Build.0 = Release|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka|x64.ActiveCfg = Release|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka|x64.Build.0 = Release|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka|x86.ActiveCfg = Release|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka|x86.Build.0 = Release|Any CPU {74E700B0-1156-4126-BE40-EE450D3C3026}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {74E700B0-1156-4126-BE40-EE450D3C3026}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {74E700B0-1156-4126-BE40-EE450D3C3026}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -1188,6 +1357,26 @@ Global {63561E19-FF5A-414B-A5EF-E30711543E1D}.Debug|x64.Build.0 = Debug|Any CPU {63561E19-FF5A-414B-A5EF-E30711543E1D}.Debug|x86.ActiveCfg = Debug|Any CPU {63561E19-FF5A-414B-A5EF-E30711543E1D}.Debug|x86.Build.0 = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka|Any CPU.Build.0 = Release|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka|ARM.ActiveCfg = Release|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka|ARM.Build.0 = Release|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka|ARM64.Build.0 = Release|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka|x64.ActiveCfg = Release|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka|x64.Build.0 = Release|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka|x86.ActiveCfg = Release|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka|x86.Build.0 = Release|Any CPU {63561E19-FF5A-414B-A5EF-E30711543E1D}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {63561E19-FF5A-414B-A5EF-E30711543E1D}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {63561E19-FF5A-414B-A5EF-E30711543E1D}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -1268,6 +1457,26 @@ Global {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Debug|x64.Build.0 = Debug|Any CPU {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Debug|x86.ActiveCfg = Debug|Any CPU {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Debug|x86.Build.0 = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka|Any CPU.Build.0 = Release|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka|ARM.ActiveCfg = Release|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka|ARM.Build.0 = Release|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka|ARM64.Build.0 = Release|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka|x64.ActiveCfg = Release|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka|x64.Build.0 = Release|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka|x86.ActiveCfg = Release|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka|x86.Build.0 = Release|Any CPU {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -1348,6 +1557,26 @@ Global {1981B537-39E9-4E7D-8430-27466481AEEE}.Debug|x64.Build.0 = Debug|Any CPU {1981B537-39E9-4E7D-8430-27466481AEEE}.Debug|x86.ActiveCfg = Debug|Any CPU {1981B537-39E9-4E7D-8430-27466481AEEE}.Debug|x86.Build.0 = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka|Any CPU.Build.0 = Release|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka|ARM.ActiveCfg = Release|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka|ARM.Build.0 = Release|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka|ARM64.Build.0 = Release|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka|x64.ActiveCfg = Release|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka|x64.Build.0 = Release|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka|x86.ActiveCfg = Release|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka|x86.Build.0 = Release|Any CPU {1981B537-39E9-4E7D-8430-27466481AEEE}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {1981B537-39E9-4E7D-8430-27466481AEEE}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {1981B537-39E9-4E7D-8430-27466481AEEE}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -1424,6 +1653,19 @@ Global {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Debug|x64.ActiveCfg = Debug|x64 {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Debug|x64.Build.0 = Debug|x64 {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Debug|x86.ActiveCfg = Debug|Win32 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Win32 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Eureka_Debug|ARM.ActiveCfg = Debug|Win32 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Eureka_Debug|ARM64.ActiveCfg = Debug|Win32 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Eureka_Debug|x64.ActiveCfg = Debug|x64 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Eureka_Debug|x64.Build.0 = Debug|x64 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Eureka_Debug|x86.ActiveCfg = Debug|Win32 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Eureka|Any CPU.ActiveCfg = Release|Win32 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Eureka|ARM.ActiveCfg = Release|Win32 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Eureka|ARM64.ActiveCfg = Release|Win32 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Eureka|x64.ActiveCfg = Release|x64 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Eureka|x64.Build.0 = Release|x64 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Eureka|x86.ActiveCfg = Release|Win32 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Eureka|x86.Build.0 = Release|Win32 {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Release 4.0|Any CPU.ActiveCfg = Release|x64 {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Release 4.0|Any CPU.Build.0 = Release|x64 {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Release 4.0|ARM.ActiveCfg = Release|x64 @@ -1500,6 +1742,26 @@ Global {37EE62DF-A988-45AF-BB30-DD3245164188}.Debug|x64.Build.0 = Debug|Any CPU {37EE62DF-A988-45AF-BB30-DD3245164188}.Debug|x86.ActiveCfg = Debug|Any CPU {37EE62DF-A988-45AF-BB30-DD3245164188}.Debug|x86.Build.0 = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka|Any CPU.Build.0 = Release|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka|ARM.ActiveCfg = Release|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka|ARM.Build.0 = Release|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka|ARM64.Build.0 = Release|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka|x64.ActiveCfg = Release|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka|x64.Build.0 = Release|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka|x86.ActiveCfg = Release|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka|x86.Build.0 = Release|Any CPU {37EE62DF-A988-45AF-BB30-DD3245164188}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {37EE62DF-A988-45AF-BB30-DD3245164188}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {37EE62DF-A988-45AF-BB30-DD3245164188}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -1580,6 +1842,26 @@ Global {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Debug|x64.Build.0 = Debug|Any CPU {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Debug|x86.ActiveCfg = Debug|Any CPU {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Debug|x86.Build.0 = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka|Any CPU.Build.0 = Release|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka|ARM.ActiveCfg = Release|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka|ARM.Build.0 = Release|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka|ARM64.Build.0 = Release|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka|x64.ActiveCfg = Release|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka|x64.Build.0 = Release|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka|x86.ActiveCfg = Release|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka|x86.Build.0 = Release|Any CPU {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -1660,6 +1942,26 @@ Global {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Debug|x64.Build.0 = Debug|Any CPU {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Debug|x86.ActiveCfg = Debug|Any CPU {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Debug|x86.Build.0 = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka|Any CPU.Build.0 = Release|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka|ARM.ActiveCfg = Release|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka|ARM.Build.0 = Release|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka|ARM64.Build.0 = Release|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka|x64.ActiveCfg = Release|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka|x64.Build.0 = Release|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka|x86.ActiveCfg = Release|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka|x86.Build.0 = Release|Any CPU {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -1740,6 +2042,26 @@ Global {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Debug|x64.Build.0 = Debug|Any CPU {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Debug|x86.ActiveCfg = Debug|Any CPU {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Debug|x86.Build.0 = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka|Any CPU.Build.0 = Release|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka|ARM.ActiveCfg = Release|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka|ARM.Build.0 = Release|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka|ARM64.Build.0 = Release|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka|x64.ActiveCfg = Release|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka|x64.Build.0 = Release|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka|x86.ActiveCfg = Release|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka|x86.Build.0 = Release|Any CPU {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -1820,6 +2142,26 @@ Global {38197109-8610-4D3F-92B9-16D48DF94D7C}.Debug|x64.Build.0 = Debug|Any CPU {38197109-8610-4D3F-92B9-16D48DF94D7C}.Debug|x86.ActiveCfg = Debug|Any CPU {38197109-8610-4D3F-92B9-16D48DF94D7C}.Debug|x86.Build.0 = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka|Any CPU.Build.0 = Release|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka|ARM.ActiveCfg = Release|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka|ARM.Build.0 = Release|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka|ARM64.Build.0 = Release|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka|x64.ActiveCfg = Release|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka|x64.Build.0 = Release|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka|x86.ActiveCfg = Release|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka|x86.Build.0 = Release|Any CPU {38197109-8610-4D3F-92B9-16D48DF94D7C}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {38197109-8610-4D3F-92B9-16D48DF94D7C}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {38197109-8610-4D3F-92B9-16D48DF94D7C}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -1900,6 +2242,26 @@ Global {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Debug|x64.Build.0 = Debug|Any CPU {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Debug|x86.ActiveCfg = Debug|Any CPU {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Debug|x86.Build.0 = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka|Any CPU.Build.0 = Release|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka|ARM.ActiveCfg = Release|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka|ARM.Build.0 = Release|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka|ARM64.Build.0 = Release|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka|x64.ActiveCfg = Release|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka|x64.Build.0 = Release|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka|x86.ActiveCfg = Release|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka|x86.Build.0 = Release|Any CPU {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -1980,6 +2342,26 @@ Global {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Debug|x64.Build.0 = Debug|Any CPU {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Debug|x86.ActiveCfg = Debug|Any CPU {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Debug|x86.Build.0 = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka|Any CPU.Build.0 = Release|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka|ARM.ActiveCfg = Release|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka|ARM.Build.0 = Release|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka|ARM64.Build.0 = Release|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka|x64.ActiveCfg = Release|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka|x64.Build.0 = Release|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka|x86.ActiveCfg = Release|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka|x86.Build.0 = Release|Any CPU {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -2060,6 +2442,26 @@ Global {22F87980-E990-4686-BE81-BE63D562C4D5}.Debug|x64.Build.0 = Debug|Any CPU {22F87980-E990-4686-BE81-BE63D562C4D5}.Debug|x86.ActiveCfg = Debug|Any CPU {22F87980-E990-4686-BE81-BE63D562C4D5}.Debug|x86.Build.0 = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka|Any CPU.Build.0 = Release|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka|ARM.ActiveCfg = Release|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka|ARM.Build.0 = Release|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka|ARM64.Build.0 = Release|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka|x64.ActiveCfg = Release|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka|x64.Build.0 = Release|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka|x86.ActiveCfg = Release|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka|x86.Build.0 = Release|Any CPU {22F87980-E990-4686-BE81-BE63D562C4D5}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {22F87980-E990-4686-BE81-BE63D562C4D5}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {22F87980-E990-4686-BE81-BE63D562C4D5}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -2140,6 +2542,26 @@ Global {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Debug|x64.Build.0 = Debug|Any CPU {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Debug|x86.ActiveCfg = Debug|Any CPU {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Debug|x86.Build.0 = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka|Any CPU.Build.0 = Release|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka|ARM.ActiveCfg = Release|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka|ARM.Build.0 = Release|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka|ARM64.Build.0 = Release|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka|x64.ActiveCfg = Release|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka|x64.Build.0 = Release|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka|x86.ActiveCfg = Release|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka|x86.Build.0 = Release|Any CPU {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -2220,6 +2642,26 @@ Global {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Debug|x64.Build.0 = Debug|Any CPU {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Debug|x86.ActiveCfg = Debug|Any CPU {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Debug|x86.Build.0 = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka|Any CPU.Build.0 = Release|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka|ARM.ActiveCfg = Release|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka|ARM.Build.0 = Release|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka|ARM64.Build.0 = Release|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka|x64.ActiveCfg = Release|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka|x64.Build.0 = Release|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka|x86.ActiveCfg = Release|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka|x86.Build.0 = Release|Any CPU {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -2300,6 +2742,26 @@ Global {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Debug|x64.Build.0 = Debug|Any CPU {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Debug|x86.ActiveCfg = Debug|Any CPU {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Debug|x86.Build.0 = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka|Any CPU.Build.0 = Release|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka|ARM.ActiveCfg = Release|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka|ARM.Build.0 = Release|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka|ARM64.Build.0 = Release|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka|x64.ActiveCfg = Release|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka|x64.Build.0 = Release|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka|x86.ActiveCfg = Release|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka|x86.Build.0 = Release|Any CPU {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -2380,6 +2842,26 @@ Global {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|x64.Build.0 = Debug|Any CPU {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|x86.ActiveCfg = Debug|Any CPU {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|x86.Build.0 = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka_Debug|Any CPU.ActiveCfg = Release|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka_Debug|Any CPU.Build.0 = Release|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka|Any CPU.Build.0 = Release|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka|ARM.ActiveCfg = Release|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka|ARM.Build.0 = Release|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka|ARM64.Build.0 = Release|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka|x64.ActiveCfg = Release|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka|x64.Build.0 = Release|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka|x86.ActiveCfg = Release|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka|x86.Build.0 = Release|Any CPU {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -2460,6 +2942,26 @@ Global {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Debug|x64.Build.0 = Debug|Any CPU {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Debug|x86.ActiveCfg = Debug|Any CPU {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Debug|x86.Build.0 = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka|Any CPU.Build.0 = Release|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka|ARM.ActiveCfg = Release|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka|ARM.Build.0 = Release|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka|ARM64.Build.0 = Release|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka|x64.ActiveCfg = Release|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka|x64.Build.0 = Release|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka|x86.ActiveCfg = Release|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka|x86.Build.0 = Release|Any CPU {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -2540,6 +3042,26 @@ Global {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Debug|x64.Build.0 = Debug|Any CPU {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Debug|x86.ActiveCfg = Debug|Any CPU {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Debug|x86.Build.0 = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka|Any CPU.Build.0 = Release|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka|ARM.ActiveCfg = Release|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka|ARM.Build.0 = Release|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka|ARM64.Build.0 = Release|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka|x64.ActiveCfg = Release|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka|x64.Build.0 = Release|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka|x86.ActiveCfg = Release|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka|x86.Build.0 = Release|Any CPU {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -2620,6 +3142,25 @@ Global {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Debug|x64.Build.0 = Debug|Any CPU {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Debug|x86.ActiveCfg = Debug|Any CPU {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Debug|x86.Build.0 = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Eureka|ARM.ActiveCfg = Release|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Eureka|ARM.Build.0 = Release|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Eureka|ARM64.Build.0 = Release|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Eureka|x64.ActiveCfg = Release|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Eureka|x64.Build.0 = Release|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Eureka|x86.ActiveCfg = Release|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Eureka|x86.Build.0 = Release|Any CPU {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -2698,6 +3239,26 @@ Global {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Debug|x64.Build.0 = Debug|Any CPU {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Debug|x86.ActiveCfg = Debug|Any CPU {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Debug|x86.Build.0 = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka|Any CPU.Build.0 = Release|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka|ARM.ActiveCfg = Release|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka|ARM.Build.0 = Release|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka|ARM64.Build.0 = Release|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka|x64.ActiveCfg = Release|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka|x64.Build.0 = Release|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka|x86.ActiveCfg = Release|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka|x86.Build.0 = Release|Any CPU {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -2778,6 +3339,26 @@ Global {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Debug|x64.Build.0 = Debug|Any CPU {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Debug|x86.ActiveCfg = Debug|Any CPU {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Debug|x86.Build.0 = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka|Any CPU.Build.0 = Release|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka|ARM.ActiveCfg = Release|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka|ARM.Build.0 = Release|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka|ARM64.Build.0 = Release|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka|x64.ActiveCfg = Release|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka|x64.Build.0 = Release|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka|x86.ActiveCfg = Release|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka|x86.Build.0 = Release|Any CPU {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -2858,6 +3439,26 @@ Global {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Debug|x64.Build.0 = Debug|Any CPU {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Debug|x86.ActiveCfg = Debug|Any CPU {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Debug|x86.Build.0 = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka|Any CPU.Build.0 = Release|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka|ARM.ActiveCfg = Release|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka|ARM.Build.0 = Release|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka|ARM64.Build.0 = Release|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka|x64.ActiveCfg = Release|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka|x64.Build.0 = Release|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka|x86.ActiveCfg = Release|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka|x86.Build.0 = Release|Any CPU {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -2938,6 +3539,26 @@ Global {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Debug|x64.Build.0 = Debug|Any CPU {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Debug|x86.ActiveCfg = Debug|Any CPU {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Debug|x86.Build.0 = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka|Any CPU.Build.0 = Release|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka|ARM.ActiveCfg = Release|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka|ARM.Build.0 = Release|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka|ARM64.Build.0 = Release|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka|x64.ActiveCfg = Release|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka|x64.Build.0 = Release|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka|x86.ActiveCfg = Release|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka|x86.Build.0 = Release|Any CPU {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -3018,6 +3639,26 @@ Global {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Debug|x64.Build.0 = Debug|Any CPU {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Debug|x86.ActiveCfg = Debug|Any CPU {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Debug|x86.Build.0 = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka|Any CPU.Build.0 = Release|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka|ARM.ActiveCfg = Release|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka|ARM.Build.0 = Release|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka|ARM64.Build.0 = Release|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka|x64.ActiveCfg = Release|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka|x64.Build.0 = Release|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka|x86.ActiveCfg = Release|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka|x86.Build.0 = Release|Any CPU {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -3098,6 +3739,26 @@ Global {4206AC58-3B57-4699-8835-90BF6DB01A61}.Debug|x64.Build.0 = Debug|Any CPU {4206AC58-3B57-4699-8835-90BF6DB01A61}.Debug|x86.ActiveCfg = Debug|Any CPU {4206AC58-3B57-4699-8835-90BF6DB01A61}.Debug|x86.Build.0 = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka|Any CPU.Build.0 = Release|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka|ARM.ActiveCfg = Release|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka|ARM.Build.0 = Release|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka|ARM64.Build.0 = Release|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka|x64.ActiveCfg = Release|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka|x64.Build.0 = Release|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka|x86.ActiveCfg = Release|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka|x86.Build.0 = Release|Any CPU {4206AC58-3B57-4699-8835-90BF6DB01A61}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {4206AC58-3B57-4699-8835-90BF6DB01A61}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {4206AC58-3B57-4699-8835-90BF6DB01A61}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -3178,6 +3839,26 @@ Global {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Debug|x64.Build.0 = Debug|Any CPU {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Debug|x86.ActiveCfg = Debug|Any CPU {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Debug|x86.Build.0 = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka|Any CPU.Build.0 = Release|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka|ARM.ActiveCfg = Release|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka|ARM.Build.0 = Release|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka|ARM64.Build.0 = Release|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka|x64.ActiveCfg = Release|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka|x64.Build.0 = Release|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka|x86.ActiveCfg = Release|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka|x86.Build.0 = Release|Any CPU {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -3258,6 +3939,26 @@ Global {D0CE8122-077D-42A2-9490-028AE4769B52}.Debug|x64.Build.0 = Debug|Any CPU {D0CE8122-077D-42A2-9490-028AE4769B52}.Debug|x86.ActiveCfg = Debug|Any CPU {D0CE8122-077D-42A2-9490-028AE4769B52}.Debug|x86.Build.0 = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka|Any CPU.Build.0 = Release|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka|ARM.ActiveCfg = Release|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka|ARM.Build.0 = Release|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka|ARM64.Build.0 = Release|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka|x64.ActiveCfg = Release|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka|x64.Build.0 = Release|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka|x86.ActiveCfg = Release|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka|x86.Build.0 = Release|Any CPU {D0CE8122-077D-42A2-9490-028AE4769B52}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {D0CE8122-077D-42A2-9490-028AE4769B52}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {D0CE8122-077D-42A2-9490-028AE4769B52}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -3338,6 +4039,26 @@ Global {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Debug|x64.Build.0 = Debug|Any CPU {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Debug|x86.ActiveCfg = Debug|Any CPU {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Debug|x86.Build.0 = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka|Any CPU.Build.0 = Release|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka|ARM.ActiveCfg = Release|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka|ARM.Build.0 = Release|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka|ARM64.Build.0 = Release|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka|x64.ActiveCfg = Release|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka|x64.Build.0 = Release|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka|x86.ActiveCfg = Release|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka|x86.Build.0 = Release|Any CPU {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -3418,6 +4139,26 @@ Global {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Debug|x64.Build.0 = Debug|Any CPU {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Debug|x86.ActiveCfg = Debug|Any CPU {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Debug|x86.Build.0 = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka|Any CPU.Build.0 = Release|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka|ARM.ActiveCfg = Release|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka|ARM.Build.0 = Release|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka|ARM64.Build.0 = Release|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka|x64.ActiveCfg = Release|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka|x64.Build.0 = Release|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka|x86.ActiveCfg = Release|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka|x86.Build.0 = Release|Any CPU {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -3497,6 +4238,24 @@ Global {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Debug|x64.Build.0 = Debug|Any CPU {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Debug|x86.ActiveCfg = Debug|Any CPU {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Debug|x86.Build.0 = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Eureka|ARM.ActiveCfg = Release|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Eureka|ARM.Build.0 = Release|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Eureka|ARM64.Build.0 = Release|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Eureka|x64.ActiveCfg = Release|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Eureka|x64.Build.0 = Release|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Eureka|x86.ActiveCfg = Release|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Eureka|x86.Build.0 = Release|Any CPU {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -3576,6 +4335,26 @@ Global {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Debug|x64.Build.0 = Debug|Any CPU {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Debug|x86.ActiveCfg = Debug|Any CPU {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Debug|x86.Build.0 = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka|Any CPU.Build.0 = Release|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka|ARM.ActiveCfg = Release|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka|ARM.Build.0 = Release|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka|ARM64.Build.0 = Release|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka|x64.ActiveCfg = Release|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka|x64.Build.0 = Release|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka|x86.ActiveCfg = Release|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka|x86.Build.0 = Release|Any CPU {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -3656,6 +4435,26 @@ Global {9652F972-2BD1-4283-99CB-FC6240434C17}.Debug|x64.Build.0 = Debug|Any CPU {9652F972-2BD1-4283-99CB-FC6240434C17}.Debug|x86.ActiveCfg = Debug|Any CPU {9652F972-2BD1-4283-99CB-FC6240434C17}.Debug|x86.Build.0 = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka|Any CPU.Build.0 = Release|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka|ARM.ActiveCfg = Release|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka|ARM.Build.0 = Release|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka|ARM64.Build.0 = Release|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka|x64.ActiveCfg = Release|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka|x64.Build.0 = Release|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka|x86.ActiveCfg = Release|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka|x86.Build.0 = Release|Any CPU {9652F972-2BD1-4283-99CB-FC6240434C17}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {9652F972-2BD1-4283-99CB-FC6240434C17}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {9652F972-2BD1-4283-99CB-FC6240434C17}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -3736,6 +4535,25 @@ Global {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Debug|x64.Build.0 = Debug|Any CPU {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Debug|x86.ActiveCfg = Debug|Any CPU {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Debug|x86.Build.0 = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Eureka|ARM.ActiveCfg = Release|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Eureka|ARM.Build.0 = Release|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Eureka|ARM64.Build.0 = Release|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Eureka|x64.ActiveCfg = Release|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Eureka|x64.Build.0 = Release|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Eureka|x86.ActiveCfg = Release|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Eureka|x86.Build.0 = Release|Any CPU {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -3815,6 +4633,26 @@ Global {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Debug|x64.Build.0 = Debug|Any CPU {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Debug|x86.ActiveCfg = Debug|Any CPU {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Debug|x86.Build.0 = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka|Any CPU.Build.0 = Release|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka|ARM.ActiveCfg = Release|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka|ARM.Build.0 = Release|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka|ARM64.Build.0 = Release|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka|x64.ActiveCfg = Release|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka|x64.Build.0 = Release|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka|x86.ActiveCfg = Release|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka|x86.Build.0 = Release|Any CPU {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -3895,6 +4733,26 @@ Global {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Debug|x64.Build.0 = Debug|Any CPU {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Debug|x86.ActiveCfg = Debug|Any CPU {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Debug|x86.Build.0 = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka|Any CPU.Build.0 = Release|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka|ARM.ActiveCfg = Release|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka|ARM.Build.0 = Release|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka|ARM64.Build.0 = Release|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka|x64.ActiveCfg = Release|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka|x64.Build.0 = Release|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka|x86.ActiveCfg = Release|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka|x86.Build.0 = Release|Any CPU {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -3975,6 +4833,26 @@ Global {FC337A7F-1214-41D8-9992-78092A3B961E}.Debug|x64.Build.0 = Debug|Any CPU {FC337A7F-1214-41D8-9992-78092A3B961E}.Debug|x86.ActiveCfg = Debug|Any CPU {FC337A7F-1214-41D8-9992-78092A3B961E}.Debug|x86.Build.0 = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka|Any CPU.Build.0 = Release|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka|ARM.ActiveCfg = Release|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka|ARM.Build.0 = Release|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka|ARM64.Build.0 = Release|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka|x64.ActiveCfg = Release|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka|x64.Build.0 = Release|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka|x86.ActiveCfg = Release|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka|x86.Build.0 = Release|Any CPU {FC337A7F-1214-41D8-9992-78092A3B961E}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {FC337A7F-1214-41D8-9992-78092A3B961E}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {FC337A7F-1214-41D8-9992-78092A3B961E}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -4055,6 +4933,26 @@ Global {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Debug|x64.Build.0 = Debug|Any CPU {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Debug|x86.ActiveCfg = Debug|Any CPU {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Debug|x86.Build.0 = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka|Any CPU.Build.0 = Release|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka|ARM.ActiveCfg = Release|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka|ARM.Build.0 = Release|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka|ARM64.Build.0 = Release|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka|x64.ActiveCfg = Release|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka|x64.Build.0 = Release|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka|x86.ActiveCfg = Release|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka|x86.Build.0 = Release|Any CPU {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -4135,6 +5033,26 @@ Global {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Debug|x64.Build.0 = Debug|Any CPU {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Debug|x86.ActiveCfg = Debug|Any CPU {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Debug|x86.Build.0 = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka|Any CPU.Build.0 = Release|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka|ARM.ActiveCfg = Release|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka|ARM.Build.0 = Release|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka|ARM64.Build.0 = Release|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka|x64.ActiveCfg = Release|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka|x64.Build.0 = Release|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka|x86.ActiveCfg = Release|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka|x86.Build.0 = Release|Any CPU {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -4211,6 +5129,19 @@ Global {BD30C7BD-9230-4ED7-B581-11F14041909D}.Debug|x64.ActiveCfg = Debug|Win32 {BD30C7BD-9230-4ED7-B581-11F14041909D}.Debug|x86.ActiveCfg = Debug|Win32 {BD30C7BD-9230-4ED7-B581-11F14041909D}.Debug|x86.Build.0 = Debug|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.Eureka_Debug|ARM.ActiveCfg = Debug|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.Eureka_Debug|ARM64.ActiveCfg = Debug|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.Eureka_Debug|x64.ActiveCfg = Debug|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.Eureka_Debug|x86.ActiveCfg = Debug|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.Eureka_Debug|x86.Build.0 = Debug|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.Eureka|Any CPU.ActiveCfg = Release|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.Eureka|Any CPU.Build.0 = Release|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.Eureka|ARM.ActiveCfg = Release|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.Eureka|ARM64.ActiveCfg = Release|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.Eureka|x64.ActiveCfg = Release|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.Eureka|x86.ActiveCfg = Release|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.Eureka|x86.Build.0 = Release|Win32 {BD30C7BD-9230-4ED7-B581-11F14041909D}.Release 4.0|Any CPU.ActiveCfg = Release|Win32 {BD30C7BD-9230-4ED7-B581-11F14041909D}.Release 4.0|Any CPU.Build.0 = Release|Win32 {BD30C7BD-9230-4ED7-B581-11F14041909D}.Release 4.0|ARM.ActiveCfg = Release|Win32 @@ -4284,6 +5215,20 @@ Global {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Debug|x64.Build.0 = Debug|x64 {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Debug|x86.ActiveCfg = Debug|Win32 {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Debug|x86.Build.0 = Debug|Win32 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Win32 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Eureka_Debug|ARM.ActiveCfg = Debug|Win32 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Eureka_Debug|ARM64.ActiveCfg = Debug|Win32 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Eureka_Debug|x64.ActiveCfg = Debug|x64 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Eureka_Debug|x64.Build.0 = Debug|x64 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Eureka_Debug|x86.ActiveCfg = Debug|Win32 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Eureka_Debug|x86.Build.0 = Debug|Win32 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Eureka|Any CPU.ActiveCfg = Release|Win32 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Eureka|ARM.ActiveCfg = Release|Win32 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Eureka|ARM64.ActiveCfg = Release|Win32 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Eureka|x64.ActiveCfg = Release|x64 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Eureka|x64.Build.0 = Release|x64 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Eureka|x86.ActiveCfg = Release|Win32 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Eureka|x86.Build.0 = Release|Win32 {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Release 4.0|Any CPU.ActiveCfg = Release|x64 {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Release 4.0|Any CPU.Build.0 = Release|x64 {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Release 4.0|ARM.ActiveCfg = Release|x64 @@ -4360,6 +5305,26 @@ Global {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Debug|x64.Build.0 = Debug|Any CPU {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Debug|x86.ActiveCfg = Debug|Any CPU {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Debug|x86.Build.0 = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka|Any CPU.Build.0 = Release|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka|ARM.ActiveCfg = Release|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka|ARM.Build.0 = Release|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka|ARM64.Build.0 = Release|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka|x64.ActiveCfg = Release|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka|x64.Build.0 = Release|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka|x86.ActiveCfg = Release|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka|x86.Build.0 = Release|Any CPU {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -4440,6 +5405,26 @@ Global {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Debug|x64.Build.0 = Debug|Any CPU {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Debug|x86.ActiveCfg = Debug|Any CPU {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Debug|x86.Build.0 = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka|Any CPU.Build.0 = Release|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka|ARM.ActiveCfg = Release|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka|ARM.Build.0 = Release|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka|ARM64.Build.0 = Release|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka|x64.ActiveCfg = Release|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka|x64.Build.0 = Release|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka|x86.ActiveCfg = Release|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka|x86.Build.0 = Release|Any CPU {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -4520,6 +5505,26 @@ Global {F441FEEE-322A-4943-B566-110E12FD3B72}.Debug|x64.Build.0 = Debug|Any CPU {F441FEEE-322A-4943-B566-110E12FD3B72}.Debug|x86.ActiveCfg = Debug|Any CPU {F441FEEE-322A-4943-B566-110E12FD3B72}.Debug|x86.Build.0 = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka|Any CPU.Build.0 = Release|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka|ARM.ActiveCfg = Release|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka|ARM.Build.0 = Release|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka|ARM64.Build.0 = Release|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka|x64.ActiveCfg = Release|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka|x64.Build.0 = Release|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka|x86.ActiveCfg = Release|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka|x86.Build.0 = Release|Any CPU {F441FEEE-322A-4943-B566-110E12FD3B72}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {F441FEEE-322A-4943-B566-110E12FD3B72}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {F441FEEE-322A-4943-B566-110E12FD3B72}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -4597,6 +5602,21 @@ Global {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Debug|x64.Build.0 = Debug|x64 {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Debug|x86.ActiveCfg = Debug|Win32 {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Debug|x86.Build.0 = Debug|Win32 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Win32 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Eureka_Debug|ARM.ActiveCfg = Debug|Win32 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Eureka_Debug|ARM64.ActiveCfg = Debug|Win32 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Eureka_Debug|x64.ActiveCfg = Debug|x64 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Eureka_Debug|x64.Build.0 = Debug|x64 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Eureka_Debug|x86.ActiveCfg = Debug|Win32 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Eureka_Debug|x86.Build.0 = Debug|Win32 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Eureka|Any CPU.ActiveCfg = Release|Win32 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Eureka|Any CPU.Build.0 = Release|Win32 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Eureka|ARM.ActiveCfg = Release|Win32 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Eureka|ARM64.ActiveCfg = Release|Win32 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Eureka|x64.ActiveCfg = Release|x64 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Eureka|x64.Build.0 = Release|x64 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Eureka|x86.ActiveCfg = Release|Win32 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Eureka|x86.Build.0 = Release|Win32 {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Release 4.0|Any CPU.ActiveCfg = Release|x64 {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Release 4.0|Any CPU.Build.0 = Release|x64 {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Release 4.0|ARM.ActiveCfg = Release|x64 @@ -4675,6 +5695,26 @@ Global {793FBFC1-549E-458B-A52F-784BD4F28586}.Debug|x64.Build.0 = Debug|Any CPU {793FBFC1-549E-458B-A52F-784BD4F28586}.Debug|x86.ActiveCfg = Debug|Any CPU {793FBFC1-549E-458B-A52F-784BD4F28586}.Debug|x86.Build.0 = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka|Any CPU.Build.0 = Release|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka|ARM.ActiveCfg = Release|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka|ARM.Build.0 = Release|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka|ARM64.Build.0 = Release|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka|x64.ActiveCfg = Release|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka|x64.Build.0 = Release|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka|x86.ActiveCfg = Release|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka|x86.Build.0 = Release|Any CPU {793FBFC1-549E-458B-A52F-784BD4F28586}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {793FBFC1-549E-458B-A52F-784BD4F28586}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {793FBFC1-549E-458B-A52F-784BD4F28586}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -4755,6 +5795,26 @@ Global {40085232-ACED-4CBE-945B-90BA8153C151}.Debug|x64.Build.0 = Debug|Any CPU {40085232-ACED-4CBE-945B-90BA8153C151}.Debug|x86.ActiveCfg = Debug|Any CPU {40085232-ACED-4CBE-945B-90BA8153C151}.Debug|x86.Build.0 = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka|Any CPU.Build.0 = Release|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka|ARM.ActiveCfg = Release|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka|ARM.Build.0 = Release|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka|ARM64.Build.0 = Release|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka|x64.ActiveCfg = Release|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka|x64.Build.0 = Release|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka|x86.ActiveCfg = Release|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka|x86.Build.0 = Release|Any CPU {40085232-ACED-4CBE-945B-90BA8153C151}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {40085232-ACED-4CBE-945B-90BA8153C151}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {40085232-ACED-4CBE-945B-90BA8153C151}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -4835,6 +5895,26 @@ Global {88028F14-0028-4DED-B119-19B8EE23CF32}.Debug|x64.Build.0 = Debug|Any CPU {88028F14-0028-4DED-B119-19B8EE23CF32}.Debug|x86.ActiveCfg = Debug|Any CPU {88028F14-0028-4DED-B119-19B8EE23CF32}.Debug|x86.Build.0 = Debug|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka|Any CPU.Build.0 = Release|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka|ARM.ActiveCfg = Release|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka|ARM.Build.0 = Release|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka|ARM64.Build.0 = Release|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka|x64.ActiveCfg = Release|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka|x64.Build.0 = Release|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka|x86.ActiveCfg = Release|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka|x86.Build.0 = Release|Any CPU {88028F14-0028-4DED-B119-19B8EE23CF32}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {88028F14-0028-4DED-B119-19B8EE23CF32}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {88028F14-0028-4DED-B119-19B8EE23CF32}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -4915,6 +5995,26 @@ Global {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Debug|x64.Build.0 = Debug|Any CPU {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Debug|x86.ActiveCfg = Debug|Any CPU {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Debug|x86.Build.0 = Debug|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka|Any CPU.Build.0 = Release|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka|ARM.ActiveCfg = Release|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka|ARM.Build.0 = Release|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka|ARM64.Build.0 = Release|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka|x64.ActiveCfg = Release|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka|x64.Build.0 = Release|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka|x86.ActiveCfg = Release|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka|x86.Build.0 = Release|Any CPU {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -4995,6 +6095,26 @@ Global {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Debug|x64.Build.0 = Debug|Any CPU {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Debug|x86.ActiveCfg = Debug|Any CPU {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Debug|x86.Build.0 = Debug|Any CPU + {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka|Any CPU.Build.0 = Release|Any CPU + {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka|ARM.ActiveCfg = Release|Any CPU + {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka|ARM.Build.0 = Release|Any CPU + {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka|ARM64.Build.0 = Release|Any CPU + {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka|x64.ActiveCfg = Release|Any CPU + {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka|x64.Build.0 = Release|Any CPU + {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka|x86.ActiveCfg = Release|Any CPU + {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka|x86.Build.0 = Release|Any CPU {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -5075,6 +6195,26 @@ Global {12CC222B-D0F5-4048-B790-D283235F540D}.Debug|x64.Build.0 = Debug|Any CPU {12CC222B-D0F5-4048-B790-D283235F540D}.Debug|x86.ActiveCfg = Debug|Any CPU {12CC222B-D0F5-4048-B790-D283235F540D}.Debug|x86.Build.0 = Debug|Any CPU + {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka|Any CPU.Build.0 = Release|Any CPU + {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka|ARM.ActiveCfg = Release|Any CPU + {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka|ARM.Build.0 = Release|Any CPU + {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka|ARM64.Build.0 = Release|Any CPU + {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka|x64.ActiveCfg = Release|Any CPU + {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka|x64.Build.0 = Release|Any CPU + {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka|x86.ActiveCfg = Release|Any CPU + {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka|x86.Build.0 = Release|Any CPU {12CC222B-D0F5-4048-B790-D283235F540D}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {12CC222B-D0F5-4048-B790-D283235F540D}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {12CC222B-D0F5-4048-B790-D283235F540D}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -5155,6 +6295,26 @@ Global {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Debug|x64.Build.0 = Debug|Any CPU {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Debug|x86.ActiveCfg = Debug|Any CPU {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Debug|x86.Build.0 = Debug|Any CPU + {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka|Any CPU.Build.0 = Release|Any CPU + {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka|ARM.ActiveCfg = Release|Any CPU + {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka|ARM.Build.0 = Release|Any CPU + {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka|ARM64.Build.0 = Release|Any CPU + {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka|x64.ActiveCfg = Release|Any CPU + {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka|x64.Build.0 = Release|Any CPU + {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka|x86.ActiveCfg = Release|Any CPU + {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka|x86.Build.0 = Release|Any CPU {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -5235,6 +6395,26 @@ Global {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Debug|x64.Build.0 = Debug|Any CPU {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Debug|x86.ActiveCfg = Debug|Any CPU {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Debug|x86.Build.0 = Debug|Any CPU + {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka|Any CPU.Build.0 = Release|Any CPU + {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka|ARM.ActiveCfg = Release|Any CPU + {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka|ARM.Build.0 = Release|Any CPU + {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka|ARM64.Build.0 = Release|Any CPU + {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka|x64.ActiveCfg = Release|Any CPU + {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka|x64.Build.0 = Release|Any CPU + {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka|x86.ActiveCfg = Release|Any CPU + {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka|x86.Build.0 = Release|Any CPU {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -5315,6 +6495,26 @@ Global {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Debug|x64.Build.0 = Debug|Any CPU {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Debug|x86.ActiveCfg = Debug|Any CPU {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Debug|x86.Build.0 = Debug|Any CPU + {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka|Any CPU.Build.0 = Release|Any CPU + {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka|ARM.ActiveCfg = Release|Any CPU + {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka|ARM.Build.0 = Release|Any CPU + {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka|ARM64.Build.0 = Release|Any CPU + {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka|x64.ActiveCfg = Release|Any CPU + {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka|x64.Build.0 = Release|Any CPU + {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka|x86.ActiveCfg = Release|Any CPU + {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka|x86.Build.0 = Release|Any CPU {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -5394,6 +6594,25 @@ Global {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Debug|x64.Build.0 = Debug|Any CPU {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Debug|x86.ActiveCfg = Debug|Any CPU {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Debug|x86.Build.0 = Debug|Any CPU + {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Eureka|Any CPU.Build.0 = Release|Any CPU + {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Eureka|ARM.ActiveCfg = Release|Any CPU + {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Eureka|ARM.Build.0 = Release|Any CPU + {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Eureka|ARM64.Build.0 = Release|Any CPU + {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Eureka|x64.ActiveCfg = Release|Any CPU + {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Eureka|x64.Build.0 = Release|Any CPU + {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Eureka|x86.ActiveCfg = Release|Any CPU + {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Eureka|x86.Build.0 = Release|Any CPU {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -5473,6 +6692,25 @@ Global {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Debug|x64.Build.0 = Debug|Any CPU {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Debug|x86.ActiveCfg = Debug|Any CPU {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Debug|x86.Build.0 = Debug|Any CPU + {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Eureka|Any CPU.Build.0 = Release|Any CPU + {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Eureka|ARM.ActiveCfg = Release|Any CPU + {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Eureka|ARM.Build.0 = Release|Any CPU + {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Eureka|ARM64.Build.0 = Release|Any CPU + {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Eureka|x64.ActiveCfg = Release|Any CPU + {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Eureka|x64.Build.0 = Release|Any CPU + {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Eureka|x86.ActiveCfg = Release|Any CPU + {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Eureka|x86.Build.0 = Release|Any CPU {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -5552,6 +6790,25 @@ Global {F079FB0A-A8ED-4216-B6A5-345756751A04}.Debug|x64.Build.0 = Debug|Any CPU {F079FB0A-A8ED-4216-B6A5-345756751A04}.Debug|x86.ActiveCfg = Debug|Any CPU {F079FB0A-A8ED-4216-B6A5-345756751A04}.Debug|x86.Build.0 = Debug|Any CPU + {F079FB0A-A8ED-4216-B6A5-345756751A04}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F079FB0A-A8ED-4216-B6A5-345756751A04}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {F079FB0A-A8ED-4216-B6A5-345756751A04}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {F079FB0A-A8ED-4216-B6A5-345756751A04}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {F079FB0A-A8ED-4216-B6A5-345756751A04}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {F079FB0A-A8ED-4216-B6A5-345756751A04}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {F079FB0A-A8ED-4216-B6A5-345756751A04}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {F079FB0A-A8ED-4216-B6A5-345756751A04}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {F079FB0A-A8ED-4216-B6A5-345756751A04}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {F079FB0A-A8ED-4216-B6A5-345756751A04}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {F079FB0A-A8ED-4216-B6A5-345756751A04}.Eureka|Any CPU.Build.0 = Release|Any CPU + {F079FB0A-A8ED-4216-B6A5-345756751A04}.Eureka|ARM.ActiveCfg = Release|Any CPU + {F079FB0A-A8ED-4216-B6A5-345756751A04}.Eureka|ARM.Build.0 = Release|Any CPU + {F079FB0A-A8ED-4216-B6A5-345756751A04}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {F079FB0A-A8ED-4216-B6A5-345756751A04}.Eureka|ARM64.Build.0 = Release|Any CPU + {F079FB0A-A8ED-4216-B6A5-345756751A04}.Eureka|x64.ActiveCfg = Release|Any CPU + {F079FB0A-A8ED-4216-B6A5-345756751A04}.Eureka|x64.Build.0 = Release|Any CPU + {F079FB0A-A8ED-4216-B6A5-345756751A04}.Eureka|x86.ActiveCfg = Release|Any CPU + {F079FB0A-A8ED-4216-B6A5-345756751A04}.Eureka|x86.Build.0 = Release|Any CPU {F079FB0A-A8ED-4216-B6A5-345756751A04}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {F079FB0A-A8ED-4216-B6A5-345756751A04}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {F079FB0A-A8ED-4216-B6A5-345756751A04}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -5629,6 +6886,20 @@ Global {43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Debug|x64.Build.0 = Debug|x64 {43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Debug|x86.ActiveCfg = Debug|Win32 {43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Debug|x86.Build.0 = Debug|Win32 + {43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Win32 + {43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Eureka_Debug|ARM.ActiveCfg = Debug|Win32 + {43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Eureka_Debug|ARM64.ActiveCfg = Debug|Win32 + {43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Eureka_Debug|x64.ActiveCfg = Debug|x64 + {43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Eureka_Debug|x64.Build.0 = Debug|x64 + {43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Eureka_Debug|x86.ActiveCfg = Debug|Win32 + {43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Eureka_Debug|x86.Build.0 = Debug|Win32 + {43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Eureka|Any CPU.ActiveCfg = Release|Win32 + {43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Eureka|ARM.ActiveCfg = Release|Win32 + {43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Eureka|ARM64.ActiveCfg = Release|Win32 + {43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Eureka|x64.ActiveCfg = Release|x64 + {43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Eureka|x64.Build.0 = Release|x64 + {43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Eureka|x86.ActiveCfg = Release|Win32 + {43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Eureka|x86.Build.0 = Release|Win32 {43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Release 4.0|Any CPU.ActiveCfg = Release|x64 {43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Release 4.0|Any CPU.Build.0 = Release|x64 {43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Release 4.0|ARM.ActiveCfg = Release|x64 @@ -5706,6 +6977,26 @@ Global {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Debug|x64.Build.0 = Debug|Any CPU {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Debug|x86.ActiveCfg = Debug|Any CPU {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Debug|x86.Build.0 = Debug|Any CPU + {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka|Any CPU.Build.0 = Release|Any CPU + {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka|ARM.ActiveCfg = Release|Any CPU + {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka|ARM.Build.0 = Release|Any CPU + {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka|ARM64.Build.0 = Release|Any CPU + {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka|x64.ActiveCfg = Release|Any CPU + {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka|x64.Build.0 = Release|Any CPU + {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka|x86.ActiveCfg = Release|Any CPU + {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka|x86.Build.0 = Release|Any CPU {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -5785,6 +7076,25 @@ Global {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Debug|x64.Build.0 = Debug|Any CPU {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Debug|x86.ActiveCfg = Debug|Any CPU {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Debug|x86.Build.0 = Debug|Any CPU + {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Eureka|Any CPU.Build.0 = Release|Any CPU + {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Eureka|ARM.ActiveCfg = Release|Any CPU + {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Eureka|ARM.Build.0 = Release|Any CPU + {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Eureka|ARM64.Build.0 = Release|Any CPU + {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Eureka|x64.ActiveCfg = Release|Any CPU + {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Eureka|x64.Build.0 = Release|Any CPU + {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Eureka|x86.ActiveCfg = Release|Any CPU + {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Eureka|x86.Build.0 = Release|Any CPU {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -5865,6 +7175,26 @@ Global {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Debug|x64.Build.0 = Debug|Any CPU {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Debug|x86.ActiveCfg = Debug|Any CPU {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Debug|x86.Build.0 = Debug|Any CPU + {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka_Debug|Any CPU.ActiveCfg = Eureka_Debug|Any CPU + {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka_Debug|Any CPU.Build.0 = Eureka_Debug|Any CPU + {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka|Any CPU.ActiveCfg = Eureka|Any CPU + {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka|Any CPU.Build.0 = Eureka|Any CPU + {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka|ARM.ActiveCfg = Release|Any CPU + {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka|ARM.Build.0 = Release|Any CPU + {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka|ARM64.Build.0 = Release|Any CPU + {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka|x64.ActiveCfg = Release|Any CPU + {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka|x64.Build.0 = Release|Any CPU + {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka|x86.ActiveCfg = Release|Any CPU + {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka|x86.Build.0 = Release|Any CPU {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -5945,6 +7275,26 @@ Global {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Debug|x64.Build.0 = Debug|Any CPU {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Debug|x86.ActiveCfg = Debug|Any CPU {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Debug|x86.Build.0 = Debug|Any CPU + {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka_Debug|Any CPU.ActiveCfg = Eureka_Debug|Any CPU + {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka_Debug|Any CPU.Build.0 = Eureka_Debug|Any CPU + {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka|Any CPU.ActiveCfg = Eureka|Any CPU + {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka|Any CPU.Build.0 = Eureka|Any CPU + {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka|ARM.ActiveCfg = Release|Any CPU + {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka|ARM.Build.0 = Release|Any CPU + {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka|ARM64.Build.0 = Release|Any CPU + {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka|x64.ActiveCfg = Release|Any CPU + {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka|x64.Build.0 = Release|Any CPU + {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka|x86.ActiveCfg = Release|Any CPU + {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka|x86.Build.0 = Release|Any CPU {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -6025,6 +7375,26 @@ Global {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Debug|x64.Build.0 = Debug|Any CPU {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Debug|x86.ActiveCfg = Debug|Any CPU {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Debug|x86.Build.0 = Debug|Any CPU + {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka|Any CPU.Build.0 = Release|Any CPU + {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka|ARM.ActiveCfg = Release|Any CPU + {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka|ARM.Build.0 = Release|Any CPU + {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka|ARM64.Build.0 = Release|Any CPU + {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka|x64.ActiveCfg = Release|Any CPU + {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka|x64.Build.0 = Release|Any CPU + {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka|x86.ActiveCfg = Release|Any CPU + {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka|x86.Build.0 = Release|Any CPU {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -6105,6 +7475,24 @@ Global {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Debug|x64.Build.0 = Debug|Any CPU {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Debug|x86.ActiveCfg = Debug|Any CPU {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Debug|x86.Build.0 = Debug|Any CPU + {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Eureka|ARM.ActiveCfg = Release|Any CPU + {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Eureka|ARM.Build.0 = Release|Any CPU + {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Eureka|ARM64.Build.0 = Release|Any CPU + {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Eureka|x64.ActiveCfg = Release|Any CPU + {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Eureka|x64.Build.0 = Release|Any CPU + {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Eureka|x86.ActiveCfg = Release|Any CPU + {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Eureka|x86.Build.0 = Release|Any CPU {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -6184,6 +7572,25 @@ Global {0440A135-0DF0-4232-AB3C-98B9283123B3}.Debug|x64.Build.0 = Debug|Any CPU {0440A135-0DF0-4232-AB3C-98B9283123B3}.Debug|x86.ActiveCfg = Debug|Any CPU {0440A135-0DF0-4232-AB3C-98B9283123B3}.Debug|x86.Build.0 = Debug|Any CPU + {0440A135-0DF0-4232-AB3C-98B9283123B3}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0440A135-0DF0-4232-AB3C-98B9283123B3}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {0440A135-0DF0-4232-AB3C-98B9283123B3}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {0440A135-0DF0-4232-AB3C-98B9283123B3}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {0440A135-0DF0-4232-AB3C-98B9283123B3}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {0440A135-0DF0-4232-AB3C-98B9283123B3}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {0440A135-0DF0-4232-AB3C-98B9283123B3}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {0440A135-0DF0-4232-AB3C-98B9283123B3}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {0440A135-0DF0-4232-AB3C-98B9283123B3}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {0440A135-0DF0-4232-AB3C-98B9283123B3}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {0440A135-0DF0-4232-AB3C-98B9283123B3}.Eureka|Any CPU.Build.0 = Release|Any CPU + {0440A135-0DF0-4232-AB3C-98B9283123B3}.Eureka|ARM.ActiveCfg = Release|Any CPU + {0440A135-0DF0-4232-AB3C-98B9283123B3}.Eureka|ARM.Build.0 = Release|Any CPU + {0440A135-0DF0-4232-AB3C-98B9283123B3}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {0440A135-0DF0-4232-AB3C-98B9283123B3}.Eureka|ARM64.Build.0 = Release|Any CPU + {0440A135-0DF0-4232-AB3C-98B9283123B3}.Eureka|x64.ActiveCfg = Release|Any CPU + {0440A135-0DF0-4232-AB3C-98B9283123B3}.Eureka|x64.Build.0 = Release|Any CPU + {0440A135-0DF0-4232-AB3C-98B9283123B3}.Eureka|x86.ActiveCfg = Release|Any CPU + {0440A135-0DF0-4232-AB3C-98B9283123B3}.Eureka|x86.Build.0 = Release|Any CPU {0440A135-0DF0-4232-AB3C-98B9283123B3}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {0440A135-0DF0-4232-AB3C-98B9283123B3}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {0440A135-0DF0-4232-AB3C-98B9283123B3}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -6264,6 +7671,26 @@ Global {942134AC-6EA2-4500-8F22-0F739B70A05F}.Debug|x64.Build.0 = Debug|Any CPU {942134AC-6EA2-4500-8F22-0F739B70A05F}.Debug|x86.ActiveCfg = Debug|Any CPU {942134AC-6EA2-4500-8F22-0F739B70A05F}.Debug|x86.Build.0 = Debug|Any CPU + {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka|Any CPU.Build.0 = Release|Any CPU + {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka|ARM.ActiveCfg = Release|Any CPU + {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka|ARM.Build.0 = Release|Any CPU + {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka|ARM64.Build.0 = Release|Any CPU + {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka|x64.ActiveCfg = Release|Any CPU + {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka|x64.Build.0 = Release|Any CPU + {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka|x86.ActiveCfg = Release|Any CPU + {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka|x86.Build.0 = Release|Any CPU {942134AC-6EA2-4500-8F22-0F739B70A05F}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {942134AC-6EA2-4500-8F22-0F739B70A05F}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {942134AC-6EA2-4500-8F22-0F739B70A05F}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -6343,6 +7770,25 @@ Global {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Debug|x64.Build.0 = Debug|Any CPU {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Debug|x86.ActiveCfg = Debug|Any CPU {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Debug|x86.Build.0 = Debug|Any CPU + {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Eureka|Any CPU.Build.0 = Release|Any CPU + {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Eureka|ARM.ActiveCfg = Release|Any CPU + {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Eureka|ARM.Build.0 = Release|Any CPU + {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Eureka|ARM64.Build.0 = Release|Any CPU + {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Eureka|x64.ActiveCfg = Release|Any CPU + {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Eureka|x64.Build.0 = Release|Any CPU + {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Eureka|x86.ActiveCfg = Release|Any CPU + {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Eureka|x86.Build.0 = Release|Any CPU {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -6423,6 +7869,26 @@ Global {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Debug|x64.Build.0 = Debug|Any CPU {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Debug|x86.ActiveCfg = Debug|Any CPU {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Debug|x86.Build.0 = Debug|Any CPU + {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka|Any CPU.Build.0 = Release|Any CPU + {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka|ARM.ActiveCfg = Release|Any CPU + {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka|ARM.Build.0 = Release|Any CPU + {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka|ARM64.Build.0 = Release|Any CPU + {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka|x64.ActiveCfg = Release|Any CPU + {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka|x64.Build.0 = Release|Any CPU + {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka|x86.ActiveCfg = Release|Any CPU + {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka|x86.Build.0 = Release|Any CPU {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -6503,6 +7969,26 @@ Global {91B70E9B-66A7-4873-AE10-400E71CF404F}.Debug|x64.Build.0 = Debug|Any CPU {91B70E9B-66A7-4873-AE10-400E71CF404F}.Debug|x86.ActiveCfg = Debug|Any CPU {91B70E9B-66A7-4873-AE10-400E71CF404F}.Debug|x86.Build.0 = Debug|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka|Any CPU.Build.0 = Release|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka|ARM.ActiveCfg = Release|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka|ARM.Build.0 = Release|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka|ARM64.Build.0 = Release|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka|x64.ActiveCfg = Release|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka|x64.Build.0 = Release|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka|x86.ActiveCfg = Release|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka|x86.Build.0 = Release|Any CPU {91B70E9B-66A7-4873-AE10-400E71CF404F}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {91B70E9B-66A7-4873-AE10-400E71CF404F}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {91B70E9B-66A7-4873-AE10-400E71CF404F}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -6583,6 +8069,26 @@ Global {58E8825F-0C96-449C-B320-1E82B0AA876B}.Debug|x64.Build.0 = Debug|x64 {58E8825F-0C96-449C-B320-1E82B0AA876B}.Debug|x86.ActiveCfg = Debug|x86 {58E8825F-0C96-449C-B320-1E82B0AA876B}.Debug|x86.Build.0 = Debug|x86 + {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka_Debug|x64.ActiveCfg = Debug|x64 + {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka_Debug|x64.Build.0 = Debug|x64 + {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka_Debug|x86.ActiveCfg = Debug|x86 + {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka_Debug|x86.Build.0 = Debug|x86 + {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka|Any CPU.Build.0 = Release|Any CPU + {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka|ARM.ActiveCfg = Release|Any CPU + {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka|ARM.Build.0 = Release|Any CPU + {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka|ARM64.Build.0 = Release|Any CPU + {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka|x64.ActiveCfg = Release|x64 + {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka|x64.Build.0 = Release|x64 + {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka|x86.ActiveCfg = Release|x86 + {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka|x86.Build.0 = Release|x86 {58E8825F-0C96-449C-B320-1E82B0AA876B}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {58E8825F-0C96-449C-B320-1E82B0AA876B}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {58E8825F-0C96-449C-B320-1E82B0AA876B}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -6663,6 +8169,26 @@ Global {E1E66ED9-597D-45FA-8048-DE90A6930484}.Debug|x64.Build.0 = Debug|Any CPU {E1E66ED9-597D-45FA-8048-DE90A6930484}.Debug|x86.ActiveCfg = Debug|Any CPU {E1E66ED9-597D-45FA-8048-DE90A6930484}.Debug|x86.Build.0 = Debug|Any CPU + {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka|Any CPU.Build.0 = Release|Any CPU + {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka|ARM.ActiveCfg = Release|Any CPU + {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka|ARM.Build.0 = Release|Any CPU + {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka|ARM64.Build.0 = Release|Any CPU + {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka|x64.ActiveCfg = Release|Any CPU + {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka|x64.Build.0 = Release|Any CPU + {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka|x86.ActiveCfg = Release|Any CPU + {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka|x86.Build.0 = Release|Any CPU {E1E66ED9-597D-45FA-8048-DE90A6930484}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {E1E66ED9-597D-45FA-8048-DE90A6930484}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {E1E66ED9-597D-45FA-8048-DE90A6930484}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -6743,6 +8269,26 @@ Global {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Debug|x64.Build.0 = Debug|Any CPU {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Debug|x86.ActiveCfg = Debug|Any CPU {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Debug|x86.Build.0 = Debug|Any CPU + {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka|Any CPU.ActiveCfg = Eureka|Any CPU + {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka|Any CPU.Build.0 = Eureka|Any CPU + {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka|ARM.ActiveCfg = Release|Any CPU + {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka|ARM.Build.0 = Release|Any CPU + {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka|ARM64.Build.0 = Release|Any CPU + {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka|x64.ActiveCfg = Release|Any CPU + {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka|x64.Build.0 = Release|Any CPU + {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka|x86.ActiveCfg = Release|Any CPU + {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka|x86.Build.0 = Release|Any CPU {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -6823,6 +8369,26 @@ Global {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Debug|x64.Build.0 = Debug|Any CPU {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Debug|x86.ActiveCfg = Debug|Any CPU {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Debug|x86.Build.0 = Debug|Any CPU + {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka|Any CPU.Build.0 = Release|Any CPU + {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka|ARM.ActiveCfg = Release|Any CPU + {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka|ARM.Build.0 = Release|Any CPU + {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka|ARM64.Build.0 = Release|Any CPU + {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka|x64.ActiveCfg = Release|Any CPU + {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka|x64.Build.0 = Release|Any CPU + {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka|x86.ActiveCfg = Release|Any CPU + {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka|x86.Build.0 = Release|Any CPU {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -6903,6 +8469,26 @@ Global {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Debug|x64.Build.0 = Debug|Any CPU {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Debug|x86.ActiveCfg = Debug|Any CPU {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Debug|x86.Build.0 = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka|Any CPU.Build.0 = Release|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka|ARM.ActiveCfg = Release|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka|ARM.Build.0 = Release|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka|ARM64.Build.0 = Release|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka|x64.ActiveCfg = Release|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka|x64.Build.0 = Release|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka|x86.ActiveCfg = Release|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka|x86.Build.0 = Release|Any CPU {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -6983,6 +8569,26 @@ Global {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Debug|x64.Build.0 = Debug|Any CPU {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Debug|x86.ActiveCfg = Debug|Any CPU {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Debug|x86.Build.0 = Debug|Any CPU + {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka|Any CPU.Build.0 = Release|Any CPU + {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka|ARM.ActiveCfg = Release|Any CPU + {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka|ARM.Build.0 = Release|Any CPU + {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka|ARM64.Build.0 = Release|Any CPU + {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka|x64.ActiveCfg = Release|Any CPU + {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka|x64.Build.0 = Release|Any CPU + {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka|x86.ActiveCfg = Release|Any CPU + {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka|x86.Build.0 = Release|Any CPU {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -7063,6 +8669,26 @@ Global {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Debug|x64.Build.0 = Debug|Any CPU {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Debug|x86.ActiveCfg = Debug|Any CPU {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Debug|x86.Build.0 = Debug|Any CPU + {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka|Any CPU.Build.0 = Release|Any CPU + {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka|ARM.ActiveCfg = Release|Any CPU + {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka|ARM.Build.0 = Release|Any CPU + {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka|ARM64.Build.0 = Release|Any CPU + {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka|x64.ActiveCfg = Release|Any CPU + {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka|x64.Build.0 = Release|Any CPU + {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka|x86.ActiveCfg = Release|Any CPU + {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka|x86.Build.0 = Release|Any CPU {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -7142,6 +8768,25 @@ Global {72E591D6-8F83-4D8C-8F67-9C325E623234}.Debug|x64.Build.0 = Debug|Any CPU {72E591D6-8F83-4D8C-8F67-9C325E623234}.Debug|x86.ActiveCfg = Debug|Any CPU {72E591D6-8F83-4D8C-8F67-9C325E623234}.Debug|x86.Build.0 = Debug|Any CPU + {72E591D6-8F83-4D8C-8F67-9C325E623234}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {72E591D6-8F83-4D8C-8F67-9C325E623234}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {72E591D6-8F83-4D8C-8F67-9C325E623234}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {72E591D6-8F83-4D8C-8F67-9C325E623234}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {72E591D6-8F83-4D8C-8F67-9C325E623234}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {72E591D6-8F83-4D8C-8F67-9C325E623234}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {72E591D6-8F83-4D8C-8F67-9C325E623234}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {72E591D6-8F83-4D8C-8F67-9C325E623234}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {72E591D6-8F83-4D8C-8F67-9C325E623234}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {72E591D6-8F83-4D8C-8F67-9C325E623234}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {72E591D6-8F83-4D8C-8F67-9C325E623234}.Eureka|Any CPU.Build.0 = Release|Any CPU + {72E591D6-8F83-4D8C-8F67-9C325E623234}.Eureka|ARM.ActiveCfg = Release|Any CPU + {72E591D6-8F83-4D8C-8F67-9C325E623234}.Eureka|ARM.Build.0 = Release|Any CPU + {72E591D6-8F83-4D8C-8F67-9C325E623234}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {72E591D6-8F83-4D8C-8F67-9C325E623234}.Eureka|ARM64.Build.0 = Release|Any CPU + {72E591D6-8F83-4D8C-8F67-9C325E623234}.Eureka|x64.ActiveCfg = Release|Any CPU + {72E591D6-8F83-4D8C-8F67-9C325E623234}.Eureka|x64.Build.0 = Release|Any CPU + {72E591D6-8F83-4D8C-8F67-9C325E623234}.Eureka|x86.ActiveCfg = Release|Any CPU + {72E591D6-8F83-4D8C-8F67-9C325E623234}.Eureka|x86.Build.0 = Release|Any CPU {72E591D6-8F83-4D8C-8F67-9C325E623234}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {72E591D6-8F83-4D8C-8F67-9C325E623234}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {72E591D6-8F83-4D8C-8F67-9C325E623234}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -7222,6 +8867,26 @@ Global {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Debug|x64.Build.0 = Debug|Any CPU {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Debug|x86.ActiveCfg = Debug|Any CPU {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Debug|x86.Build.0 = Debug|Any CPU + {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka|Any CPU.Build.0 = Release|Any CPU + {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka|ARM.ActiveCfg = Release|Any CPU + {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka|ARM.Build.0 = Release|Any CPU + {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka|ARM64.Build.0 = Release|Any CPU + {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka|x64.ActiveCfg = Release|Any CPU + {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka|x64.Build.0 = Release|Any CPU + {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka|x86.ActiveCfg = Release|Any CPU + {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka|x86.Build.0 = Release|Any CPU {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -7302,6 +8967,26 @@ Global {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Debug|x64.Build.0 = Debug|Any CPU {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Debug|x86.ActiveCfg = Debug|Any CPU {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Debug|x86.Build.0 = Debug|Any CPU + {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka|Any CPU.Build.0 = Release|Any CPU + {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka|ARM.ActiveCfg = Release|Any CPU + {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka|ARM.Build.0 = Release|Any CPU + {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka|ARM64.Build.0 = Release|Any CPU + {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka|x64.ActiveCfg = Release|Any CPU + {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka|x64.Build.0 = Release|Any CPU + {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka|x86.ActiveCfg = Release|Any CPU + {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka|x86.Build.0 = Release|Any CPU {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -7382,6 +9067,26 @@ Global {4EDCF067-E377-42CB-A18C-8368CF484577}.Debug|x64.Build.0 = Debug|Any CPU {4EDCF067-E377-42CB-A18C-8368CF484577}.Debug|x86.ActiveCfg = Debug|Any CPU {4EDCF067-E377-42CB-A18C-8368CF484577}.Debug|x86.Build.0 = Debug|Any CPU + {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka|Any CPU.Build.0 = Release|Any CPU + {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka|ARM.ActiveCfg = Release|Any CPU + {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka|ARM.Build.0 = Release|Any CPU + {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka|ARM64.Build.0 = Release|Any CPU + {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka|x64.ActiveCfg = Release|Any CPU + {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka|x64.Build.0 = Release|Any CPU + {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka|x86.ActiveCfg = Release|Any CPU + {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka|x86.Build.0 = Release|Any CPU {4EDCF067-E377-42CB-A18C-8368CF484577}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {4EDCF067-E377-42CB-A18C-8368CF484577}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {4EDCF067-E377-42CB-A18C-8368CF484577}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -7462,6 +9167,26 @@ Global {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Debug|x64.Build.0 = Debug|Any CPU {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Debug|x86.ActiveCfg = Debug|Any CPU {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Debug|x86.Build.0 = Debug|Any CPU + {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka|Any CPU.Build.0 = Release|Any CPU + {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka|ARM.ActiveCfg = Release|Any CPU + {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka|ARM.Build.0 = Release|Any CPU + {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka|ARM64.Build.0 = Release|Any CPU + {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka|x64.ActiveCfg = Release|Any CPU + {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka|x64.Build.0 = Release|Any CPU + {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka|x86.ActiveCfg = Release|Any CPU + {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka|x86.Build.0 = Release|Any CPU {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -7542,6 +9267,26 @@ Global {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Debug|x64.Build.0 = Debug|Any CPU {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Debug|x86.ActiveCfg = Debug|Any CPU {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Debug|x86.Build.0 = Debug|Any CPU + {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka|Any CPU.Build.0 = Release|Any CPU + {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka|ARM.ActiveCfg = Release|Any CPU + {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka|ARM.Build.0 = Release|Any CPU + {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka|ARM64.Build.0 = Release|Any CPU + {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka|x64.ActiveCfg = Release|Any CPU + {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka|x64.Build.0 = Release|Any CPU + {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka|x86.ActiveCfg = Release|Any CPU + {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka|x86.Build.0 = Release|Any CPU {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -7622,6 +9367,26 @@ Global {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Debug|x64.Build.0 = Debug|Any CPU {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Debug|x86.ActiveCfg = Debug|Any CPU {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Debug|x86.Build.0 = Debug|Any CPU + {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka|Any CPU.Build.0 = Release|Any CPU + {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka|ARM.ActiveCfg = Release|Any CPU + {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka|ARM.Build.0 = Release|Any CPU + {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka|ARM64.Build.0 = Release|Any CPU + {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka|x64.ActiveCfg = Release|Any CPU + {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka|x64.Build.0 = Release|Any CPU + {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka|x86.ActiveCfg = Release|Any CPU + {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka|x86.Build.0 = Release|Any CPU {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -7702,6 +9467,26 @@ Global {43135FB9-41DB-4F87-9771-CF2C762027C0}.Debug|x64.Build.0 = Debug|Any CPU {43135FB9-41DB-4F87-9771-CF2C762027C0}.Debug|x86.ActiveCfg = Debug|Any CPU {43135FB9-41DB-4F87-9771-CF2C762027C0}.Debug|x86.Build.0 = Debug|Any CPU + {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka|Any CPU.Build.0 = Release|Any CPU + {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka|ARM.ActiveCfg = Release|Any CPU + {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka|ARM.Build.0 = Release|Any CPU + {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka|ARM64.Build.0 = Release|Any CPU + {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka|x64.ActiveCfg = Release|Any CPU + {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka|x64.Build.0 = Release|Any CPU + {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka|x86.ActiveCfg = Release|Any CPU + {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka|x86.Build.0 = Release|Any CPU {43135FB9-41DB-4F87-9771-CF2C762027C0}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {43135FB9-41DB-4F87-9771-CF2C762027C0}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {43135FB9-41DB-4F87-9771-CF2C762027C0}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -7782,6 +9567,24 @@ Global {7E5E4BED-538C-4566-A005-DCC070AF8715}.Debug|x64.Build.0 = Debug|Any CPU {7E5E4BED-538C-4566-A005-DCC070AF8715}.Debug|x86.ActiveCfg = Debug|Any CPU {7E5E4BED-538C-4566-A005-DCC070AF8715}.Debug|x86.Build.0 = Debug|Any CPU + {7E5E4BED-538C-4566-A005-DCC070AF8715}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7E5E4BED-538C-4566-A005-DCC070AF8715}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {7E5E4BED-538C-4566-A005-DCC070AF8715}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {7E5E4BED-538C-4566-A005-DCC070AF8715}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {7E5E4BED-538C-4566-A005-DCC070AF8715}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {7E5E4BED-538C-4566-A005-DCC070AF8715}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {7E5E4BED-538C-4566-A005-DCC070AF8715}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {7E5E4BED-538C-4566-A005-DCC070AF8715}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {7E5E4BED-538C-4566-A005-DCC070AF8715}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {7E5E4BED-538C-4566-A005-DCC070AF8715}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {7E5E4BED-538C-4566-A005-DCC070AF8715}.Eureka|ARM.ActiveCfg = Release|Any CPU + {7E5E4BED-538C-4566-A005-DCC070AF8715}.Eureka|ARM.Build.0 = Release|Any CPU + {7E5E4BED-538C-4566-A005-DCC070AF8715}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {7E5E4BED-538C-4566-A005-DCC070AF8715}.Eureka|ARM64.Build.0 = Release|Any CPU + {7E5E4BED-538C-4566-A005-DCC070AF8715}.Eureka|x64.ActiveCfg = Release|Any CPU + {7E5E4BED-538C-4566-A005-DCC070AF8715}.Eureka|x64.Build.0 = Release|Any CPU + {7E5E4BED-538C-4566-A005-DCC070AF8715}.Eureka|x86.ActiveCfg = Release|Any CPU + {7E5E4BED-538C-4566-A005-DCC070AF8715}.Eureka|x86.Build.0 = Release|Any CPU {7E5E4BED-538C-4566-A005-DCC070AF8715}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {7E5E4BED-538C-4566-A005-DCC070AF8715}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {7E5E4BED-538C-4566-A005-DCC070AF8715}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -7862,6 +9665,26 @@ Global {5001990F-977B-48FF-B217-0236A5022AD8}.Debug|x64.Build.0 = Debug|Any CPU {5001990F-977B-48FF-B217-0236A5022AD8}.Debug|x86.ActiveCfg = Debug|Any CPU {5001990F-977B-48FF-B217-0236A5022AD8}.Debug|x86.Build.0 = Debug|Any CPU + {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka|Any CPU.Build.0 = Release|Any CPU + {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka|ARM.ActiveCfg = Release|Any CPU + {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka|ARM.Build.0 = Release|Any CPU + {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka|ARM64.Build.0 = Release|Any CPU + {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka|x64.ActiveCfg = Release|Any CPU + {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka|x64.Build.0 = Release|Any CPU + {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka|x86.ActiveCfg = Release|Any CPU + {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka|x86.Build.0 = Release|Any CPU {5001990F-977B-48FF-B217-0236A5022AD8}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {5001990F-977B-48FF-B217-0236A5022AD8}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {5001990F-977B-48FF-B217-0236A5022AD8}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -7942,6 +9765,26 @@ Global {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Debug|x64.Build.0 = Debug|Any CPU {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Debug|x86.ActiveCfg = Debug|Any CPU {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Debug|x86.Build.0 = Debug|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka|Any CPU.Build.0 = Release|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka|ARM.ActiveCfg = Release|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka|ARM.Build.0 = Release|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka|ARM64.Build.0 = Release|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka|x64.ActiveCfg = Release|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka|x64.Build.0 = Release|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka|x86.ActiveCfg = Release|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka|x86.Build.0 = Release|Any CPU {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -8019,6 +9862,21 @@ Global {DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Debug|x64.Build.0 = Debug|x64 {DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Debug|x86.ActiveCfg = Debug|Win32 {DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Debug|x86.Build.0 = Debug|Win32 + {DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Win32 + {DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Eureka_Debug|ARM.ActiveCfg = Debug|Win32 + {DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Eureka_Debug|ARM64.ActiveCfg = Debug|Win32 + {DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Eureka_Debug|x64.ActiveCfg = Debug|x64 + {DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Eureka_Debug|x64.Build.0 = Debug|x64 + {DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Eureka_Debug|x86.ActiveCfg = Debug|Win32 + {DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Eureka_Debug|x86.Build.0 = Debug|Win32 + {DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Eureka|Any CPU.ActiveCfg = Debug|Win32 + {DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Eureka|Any CPU.Build.0 = Debug|Win32 + {DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Eureka|ARM.ActiveCfg = Release|Win32 + {DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Eureka|ARM64.ActiveCfg = Release|Win32 + {DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Eureka|x64.ActiveCfg = Release|x64 + {DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Eureka|x64.Build.0 = Release|x64 + {DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Eureka|x86.ActiveCfg = Release|Win32 + {DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Eureka|x86.Build.0 = Release|Win32 {DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Release 4.0|Any CPU.ActiveCfg = Release|x64 {DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Release 4.0|Any CPU.Build.0 = Release|x64 {DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Release 4.0|ARM.ActiveCfg = Release|x64 @@ -8097,6 +9955,24 @@ Global {280267F5-A19E-4B96-999D-C13D293ECA45}.Debug|x64.Build.0 = Debug|Any CPU {280267F5-A19E-4B96-999D-C13D293ECA45}.Debug|x86.ActiveCfg = Debug|Any CPU {280267F5-A19E-4B96-999D-C13D293ECA45}.Debug|x86.Build.0 = Debug|Any CPU + {280267F5-A19E-4B96-999D-C13D293ECA45}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {280267F5-A19E-4B96-999D-C13D293ECA45}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {280267F5-A19E-4B96-999D-C13D293ECA45}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {280267F5-A19E-4B96-999D-C13D293ECA45}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {280267F5-A19E-4B96-999D-C13D293ECA45}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {280267F5-A19E-4B96-999D-C13D293ECA45}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {280267F5-A19E-4B96-999D-C13D293ECA45}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {280267F5-A19E-4B96-999D-C13D293ECA45}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {280267F5-A19E-4B96-999D-C13D293ECA45}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {280267F5-A19E-4B96-999D-C13D293ECA45}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {280267F5-A19E-4B96-999D-C13D293ECA45}.Eureka|ARM.ActiveCfg = Release|Any CPU + {280267F5-A19E-4B96-999D-C13D293ECA45}.Eureka|ARM.Build.0 = Release|Any CPU + {280267F5-A19E-4B96-999D-C13D293ECA45}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {280267F5-A19E-4B96-999D-C13D293ECA45}.Eureka|ARM64.Build.0 = Release|Any CPU + {280267F5-A19E-4B96-999D-C13D293ECA45}.Eureka|x64.ActiveCfg = Release|Any CPU + {280267F5-A19E-4B96-999D-C13D293ECA45}.Eureka|x64.Build.0 = Release|Any CPU + {280267F5-A19E-4B96-999D-C13D293ECA45}.Eureka|x86.ActiveCfg = Release|Any CPU + {280267F5-A19E-4B96-999D-C13D293ECA45}.Eureka|x86.Build.0 = Release|Any CPU {280267F5-A19E-4B96-999D-C13D293ECA45}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {280267F5-A19E-4B96-999D-C13D293ECA45}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {280267F5-A19E-4B96-999D-C13D293ECA45}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -8177,6 +10053,26 @@ Global {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Debug|x64.Build.0 = Debug|Any CPU {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Debug|x86.ActiveCfg = Debug|Any CPU {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Debug|x86.Build.0 = Debug|Any CPU + {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka|Any CPU.Build.0 = Release|Any CPU + {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka|ARM.ActiveCfg = Release|Any CPU + {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka|ARM.Build.0 = Release|Any CPU + {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka|ARM64.Build.0 = Release|Any CPU + {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka|x64.ActiveCfg = Release|Any CPU + {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka|x64.Build.0 = Release|Any CPU + {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka|x86.ActiveCfg = Release|Any CPU + {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka|x86.Build.0 = Release|Any CPU {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -8257,6 +10153,26 @@ Global {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Debug|x64.Build.0 = Debug|Any CPU {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Debug|x86.ActiveCfg = Debug|Any CPU {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Debug|x86.Build.0 = Debug|Any CPU + {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka|Any CPU.Build.0 = Release|Any CPU + {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka|ARM.ActiveCfg = Release|Any CPU + {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka|ARM.Build.0 = Release|Any CPU + {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka|ARM64.Build.0 = Release|Any CPU + {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka|x64.ActiveCfg = Release|Any CPU + {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka|x64.Build.0 = Release|Any CPU + {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka|x86.ActiveCfg = Release|Any CPU + {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka|x86.Build.0 = Release|Any CPU {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -8337,6 +10253,26 @@ Global {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Debug|x64.Build.0 = Debug|Any CPU {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Debug|x86.ActiveCfg = Debug|Any CPU {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Debug|x86.Build.0 = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka|Any CPU.Build.0 = Release|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka|ARM.ActiveCfg = Release|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka|ARM.Build.0 = Release|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka|ARM64.Build.0 = Release|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka|x64.ActiveCfg = Release|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka|x64.Build.0 = Release|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka|x86.ActiveCfg = Release|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka|x86.Build.0 = Release|Any CPU {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -8417,6 +10353,26 @@ Global {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Debug|x64.Build.0 = Debug|Any CPU {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Debug|x86.ActiveCfg = Debug|Any CPU {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Debug|x86.Build.0 = Debug|Any CPU + {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka|Any CPU.ActiveCfg = Eureka|Any CPU + {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka|Any CPU.Build.0 = Eureka|Any CPU + {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka|ARM.ActiveCfg = Release|Any CPU + {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka|ARM.Build.0 = Release|Any CPU + {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka|ARM64.Build.0 = Release|Any CPU + {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka|x64.ActiveCfg = Release|Any CPU + {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka|x64.Build.0 = Release|Any CPU + {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka|x86.ActiveCfg = Release|Any CPU + {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka|x86.Build.0 = Release|Any CPU {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -8497,6 +10453,26 @@ Global {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Debug|x64.Build.0 = Debug|Any CPU {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Debug|x86.ActiveCfg = Debug|Any CPU {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Debug|x86.Build.0 = Debug|Any CPU + {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka|Any CPU.Build.0 = Release|Any CPU + {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka|ARM.ActiveCfg = Release|Any CPU + {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka|ARM.Build.0 = Release|Any CPU + {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka|ARM64.Build.0 = Release|Any CPU + {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka|x64.ActiveCfg = Release|Any CPU + {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka|x64.Build.0 = Release|Any CPU + {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka|x86.ActiveCfg = Release|Any CPU + {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka|x86.Build.0 = Release|Any CPU {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -8577,6 +10553,26 @@ Global {C5DF1816-34E5-4700-824C-29623A1BAA22}.Debug|x64.Build.0 = Debug|Any CPU {C5DF1816-34E5-4700-824C-29623A1BAA22}.Debug|x86.ActiveCfg = Debug|Any CPU {C5DF1816-34E5-4700-824C-29623A1BAA22}.Debug|x86.Build.0 = Debug|Any CPU + {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka|Any CPU.Build.0 = Release|Any CPU + {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka|ARM.ActiveCfg = Release|Any CPU + {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka|ARM.Build.0 = Release|Any CPU + {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka|ARM64.Build.0 = Release|Any CPU + {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka|x64.ActiveCfg = Release|Any CPU + {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka|x64.Build.0 = Release|Any CPU + {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka|x86.ActiveCfg = Release|Any CPU + {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka|x86.Build.0 = Release|Any CPU {C5DF1816-34E5-4700-824C-29623A1BAA22}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {C5DF1816-34E5-4700-824C-29623A1BAA22}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {C5DF1816-34E5-4700-824C-29623A1BAA22}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -8657,6 +10653,26 @@ Global {8435223D-DB6B-45E3-A08B-45B7416F8481}.Debug|x64.Build.0 = Debug|Any CPU {8435223D-DB6B-45E3-A08B-45B7416F8481}.Debug|x86.ActiveCfg = Debug|Any CPU {8435223D-DB6B-45E3-A08B-45B7416F8481}.Debug|x86.Build.0 = Debug|Any CPU + {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka|Any CPU.Build.0 = Release|Any CPU + {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka|ARM.ActiveCfg = Release|Any CPU + {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka|ARM.Build.0 = Release|Any CPU + {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka|ARM64.Build.0 = Release|Any CPU + {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka|x64.ActiveCfg = Release|Any CPU + {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka|x64.Build.0 = Release|Any CPU + {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka|x86.ActiveCfg = Release|Any CPU + {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka|x86.Build.0 = Release|Any CPU {8435223D-DB6B-45E3-A08B-45B7416F8481}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {8435223D-DB6B-45E3-A08B-45B7416F8481}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {8435223D-DB6B-45E3-A08B-45B7416F8481}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -8737,6 +10753,26 @@ Global {D2EE865B-B006-487A-9487-60A663636AC3}.Debug|x64.Build.0 = Debug|Any CPU {D2EE865B-B006-487A-9487-60A663636AC3}.Debug|x86.ActiveCfg = Debug|Any CPU {D2EE865B-B006-487A-9487-60A663636AC3}.Debug|x86.Build.0 = Debug|Any CPU + {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka|Any CPU.Build.0 = Release|Any CPU + {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka|ARM.ActiveCfg = Release|Any CPU + {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka|ARM.Build.0 = Release|Any CPU + {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka|ARM64.Build.0 = Release|Any CPU + {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka|x64.ActiveCfg = Release|Any CPU + {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka|x64.Build.0 = Release|Any CPU + {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka|x86.ActiveCfg = Release|Any CPU + {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka|x86.Build.0 = Release|Any CPU {D2EE865B-B006-487A-9487-60A663636AC3}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {D2EE865B-B006-487A-9487-60A663636AC3}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {D2EE865B-B006-487A-9487-60A663636AC3}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -8817,6 +10853,26 @@ Global {F209FAE8-73F9-441B-97F4-0844A0279390}.Debug|x64.Build.0 = Debug|Any CPU {F209FAE8-73F9-441B-97F4-0844A0279390}.Debug|x86.ActiveCfg = Debug|Any CPU {F209FAE8-73F9-441B-97F4-0844A0279390}.Debug|x86.Build.0 = Debug|Any CPU + {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka|Any CPU.Build.0 = Release|Any CPU + {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka|ARM.ActiveCfg = Release|Any CPU + {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka|ARM.Build.0 = Release|Any CPU + {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka|ARM64.Build.0 = Release|Any CPU + {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka|x64.ActiveCfg = Release|Any CPU + {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka|x64.Build.0 = Release|Any CPU + {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka|x86.ActiveCfg = Release|Any CPU + {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka|x86.Build.0 = Release|Any CPU {F209FAE8-73F9-441B-97F4-0844A0279390}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {F209FAE8-73F9-441B-97F4-0844A0279390}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {F209FAE8-73F9-441B-97F4-0844A0279390}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -8892,6 +10948,20 @@ Global {862328A4-8632-43AF-B466-55825C7962FE}.Debug|x64.Build.0 = Debug|x64 {862328A4-8632-43AF-B466-55825C7962FE}.Debug|x86.ActiveCfg = Debug|Win32 {862328A4-8632-43AF-B466-55825C7962FE}.Debug|x86.Build.0 = Debug|Win32 + {862328A4-8632-43AF-B466-55825C7962FE}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Win32 + {862328A4-8632-43AF-B466-55825C7962FE}.Eureka_Debug|ARM.ActiveCfg = Debug|Win32 + {862328A4-8632-43AF-B466-55825C7962FE}.Eureka_Debug|ARM64.ActiveCfg = Debug|Win32 + {862328A4-8632-43AF-B466-55825C7962FE}.Eureka_Debug|x64.ActiveCfg = Debug|x64 + {862328A4-8632-43AF-B466-55825C7962FE}.Eureka_Debug|x64.Build.0 = Debug|x64 + {862328A4-8632-43AF-B466-55825C7962FE}.Eureka_Debug|x86.ActiveCfg = Debug|Win32 + {862328A4-8632-43AF-B466-55825C7962FE}.Eureka_Debug|x86.Build.0 = Debug|Win32 + {862328A4-8632-43AF-B466-55825C7962FE}.Eureka|Any CPU.ActiveCfg = Debug|Win32 + {862328A4-8632-43AF-B466-55825C7962FE}.Eureka|ARM.ActiveCfg = Release|Win32 + {862328A4-8632-43AF-B466-55825C7962FE}.Eureka|ARM64.ActiveCfg = Release|Win32 + {862328A4-8632-43AF-B466-55825C7962FE}.Eureka|x64.ActiveCfg = Release|x64 + {862328A4-8632-43AF-B466-55825C7962FE}.Eureka|x64.Build.0 = Release|x64 + {862328A4-8632-43AF-B466-55825C7962FE}.Eureka|x86.ActiveCfg = Release|Win32 + {862328A4-8632-43AF-B466-55825C7962FE}.Eureka|x86.Build.0 = Release|Win32 {862328A4-8632-43AF-B466-55825C7962FE}.Release 4.0|Any CPU.ActiveCfg = Release|x64 {862328A4-8632-43AF-B466-55825C7962FE}.Release 4.0|Any CPU.Build.0 = Release|x64 {862328A4-8632-43AF-B466-55825C7962FE}.Release 4.0|ARM.ActiveCfg = Release|x64 @@ -8967,6 +11037,26 @@ Global {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Debug|x64.Build.0 = Debug|Any CPU {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Debug|x86.ActiveCfg = Debug|Any CPU {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Debug|x86.Build.0 = Debug|Any CPU + {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka|Any CPU.Build.0 = Release|Any CPU + {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka|ARM.ActiveCfg = Release|Any CPU + {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka|ARM.Build.0 = Release|Any CPU + {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka|ARM64.Build.0 = Release|Any CPU + {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka|x64.ActiveCfg = Release|Any CPU + {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka|x64.Build.0 = Release|Any CPU + {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka|x86.ActiveCfg = Release|Any CPU + {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka|x86.Build.0 = Release|Any CPU {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -9042,6 +11132,20 @@ Global {401FB878-646C-4230-821E-16DCAE6D56F5}.Debug|x64.Build.0 = Debug|x64 {401FB878-646C-4230-821E-16DCAE6D56F5}.Debug|x86.ActiveCfg = Debug|Win32 {401FB878-646C-4230-821E-16DCAE6D56F5}.Debug|x86.Build.0 = Debug|Win32 + {401FB878-646C-4230-821E-16DCAE6D56F5}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Win32 + {401FB878-646C-4230-821E-16DCAE6D56F5}.Eureka_Debug|ARM.ActiveCfg = Debug|Win32 + {401FB878-646C-4230-821E-16DCAE6D56F5}.Eureka_Debug|ARM64.ActiveCfg = Debug|Win32 + {401FB878-646C-4230-821E-16DCAE6D56F5}.Eureka_Debug|x64.ActiveCfg = Debug|x64 + {401FB878-646C-4230-821E-16DCAE6D56F5}.Eureka_Debug|x64.Build.0 = Debug|x64 + {401FB878-646C-4230-821E-16DCAE6D56F5}.Eureka_Debug|x86.ActiveCfg = Debug|Win32 + {401FB878-646C-4230-821E-16DCAE6D56F5}.Eureka_Debug|x86.Build.0 = Debug|Win32 + {401FB878-646C-4230-821E-16DCAE6D56F5}.Eureka|Any CPU.ActiveCfg = Release|Win32 + {401FB878-646C-4230-821E-16DCAE6D56F5}.Eureka|ARM.ActiveCfg = Release|Win32 + {401FB878-646C-4230-821E-16DCAE6D56F5}.Eureka|ARM64.ActiveCfg = Release|Win32 + {401FB878-646C-4230-821E-16DCAE6D56F5}.Eureka|x64.ActiveCfg = Release|x64 + {401FB878-646C-4230-821E-16DCAE6D56F5}.Eureka|x64.Build.0 = Release|x64 + {401FB878-646C-4230-821E-16DCAE6D56F5}.Eureka|x86.ActiveCfg = Release|Win32 + {401FB878-646C-4230-821E-16DCAE6D56F5}.Eureka|x86.Build.0 = Release|Win32 {401FB878-646C-4230-821E-16DCAE6D56F5}.Release 4.0|Any CPU.ActiveCfg = Release|x64 {401FB878-646C-4230-821E-16DCAE6D56F5}.Release 4.0|Any CPU.Build.0 = Release|x64 {401FB878-646C-4230-821E-16DCAE6D56F5}.Release 4.0|ARM.ActiveCfg = Release|x64 @@ -9114,6 +11218,20 @@ Global {09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Debug|x64.Build.0 = Debug|x64 {09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Debug|x86.ActiveCfg = Debug|Win32 {09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Debug|x86.Build.0 = Debug|Win32 + {09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Win32 + {09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Eureka_Debug|ARM.ActiveCfg = Debug|Win32 + {09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Eureka_Debug|ARM64.ActiveCfg = Debug|Win32 + {09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Eureka_Debug|x64.ActiveCfg = Debug|x64 + {09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Eureka_Debug|x64.Build.0 = Debug|x64 + {09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Eureka_Debug|x86.ActiveCfg = Debug|Win32 + {09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Eureka_Debug|x86.Build.0 = Debug|Win32 + {09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Eureka|Any CPU.ActiveCfg = Debug|Win32 + {09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Eureka|ARM.ActiveCfg = Release|Win32 + {09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Eureka|ARM64.ActiveCfg = Release|Win32 + {09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Eureka|x64.ActiveCfg = Release|x64 + {09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Eureka|x64.Build.0 = Release|x64 + {09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Eureka|x86.ActiveCfg = Release|Win32 + {09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Eureka|x86.Build.0 = Release|Win32 {09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Release 4.0|Any CPU.ActiveCfg = Release|x64 {09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Release 4.0|Any CPU.Build.0 = Release|x64 {09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Release 4.0|ARM.ActiveCfg = Release|x64 @@ -9189,6 +11307,26 @@ Global {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Debug|x64.Build.0 = Debug|Any CPU {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Debug|x86.ActiveCfg = Debug|Any CPU {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Debug|x86.Build.0 = Debug|Any CPU + {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka|Any CPU.Build.0 = Release|Any CPU + {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka|ARM.ActiveCfg = Release|Any CPU + {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka|ARM.Build.0 = Release|Any CPU + {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka|ARM64.Build.0 = Release|Any CPU + {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka|x64.ActiveCfg = Release|Any CPU + {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka|x64.Build.0 = Release|Any CPU + {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka|x86.ActiveCfg = Release|Any CPU + {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka|x86.Build.0 = Release|Any CPU {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -9264,6 +11402,20 @@ Global {DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Debug|x64.Build.0 = Debug|x64 {DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Debug|x86.ActiveCfg = Debug|Win32 {DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Debug|x86.Build.0 = Debug|Win32 + {DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Win32 + {DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Eureka_Debug|ARM.ActiveCfg = Debug|Win32 + {DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Eureka_Debug|ARM64.ActiveCfg = Debug|Win32 + {DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Eureka_Debug|x64.ActiveCfg = Debug|x64 + {DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Eureka_Debug|x64.Build.0 = Debug|x64 + {DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Eureka_Debug|x86.ActiveCfg = Debug|Win32 + {DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Eureka_Debug|x86.Build.0 = Debug|Win32 + {DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Eureka|Any CPU.ActiveCfg = Debug|Win32 + {DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Eureka|ARM.ActiveCfg = Release|Win32 + {DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Eureka|ARM64.ActiveCfg = Release|Win32 + {DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Eureka|x64.ActiveCfg = Release|x64 + {DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Eureka|x64.Build.0 = Release|x64 + {DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Eureka|x86.ActiveCfg = Release|Win32 + {DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Eureka|x86.Build.0 = Release|Win32 {DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Release 4.0|Any CPU.ActiveCfg = Release|x64 {DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Release 4.0|Any CPU.Build.0 = Release|x64 {DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Release 4.0|ARM.ActiveCfg = Release|x64 @@ -9339,6 +11491,26 @@ Global {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Debug|x64.Build.0 = Debug|Any CPU {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Debug|x86.ActiveCfg = Debug|Any CPU {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Debug|x86.Build.0 = Debug|Any CPU + {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka|Any CPU.Build.0 = Release|Any CPU + {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka|ARM.ActiveCfg = Release|Any CPU + {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka|ARM.Build.0 = Release|Any CPU + {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka|ARM64.Build.0 = Release|Any CPU + {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka|x64.ActiveCfg = Release|Any CPU + {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka|x64.Build.0 = Release|Any CPU + {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka|x86.ActiveCfg = Release|Any CPU + {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka|x86.Build.0 = Release|Any CPU {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -9416,6 +11588,20 @@ Global {BB268536-9E03-46A4-9B11-6025211D87F0}.Debug|x64.Build.0 = Debug|x64 {BB268536-9E03-46A4-9B11-6025211D87F0}.Debug|x86.ActiveCfg = Debug|Win32 {BB268536-9E03-46A4-9B11-6025211D87F0}.Debug|x86.Build.0 = Debug|Win32 + {BB268536-9E03-46A4-9B11-6025211D87F0}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Win32 + {BB268536-9E03-46A4-9B11-6025211D87F0}.Eureka_Debug|ARM.ActiveCfg = Debug|Win32 + {BB268536-9E03-46A4-9B11-6025211D87F0}.Eureka_Debug|ARM64.ActiveCfg = Debug|Win32 + {BB268536-9E03-46A4-9B11-6025211D87F0}.Eureka_Debug|x64.ActiveCfg = Debug|x64 + {BB268536-9E03-46A4-9B11-6025211D87F0}.Eureka_Debug|x64.Build.0 = Debug|x64 + {BB268536-9E03-46A4-9B11-6025211D87F0}.Eureka_Debug|x86.ActiveCfg = Debug|Win32 + {BB268536-9E03-46A4-9B11-6025211D87F0}.Eureka_Debug|x86.Build.0 = Debug|Win32 + {BB268536-9E03-46A4-9B11-6025211D87F0}.Eureka|Any CPU.ActiveCfg = Debug|Win32 + {BB268536-9E03-46A4-9B11-6025211D87F0}.Eureka|ARM.ActiveCfg = Release|Win32 + {BB268536-9E03-46A4-9B11-6025211D87F0}.Eureka|ARM64.ActiveCfg = Release|Win32 + {BB268536-9E03-46A4-9B11-6025211D87F0}.Eureka|x64.ActiveCfg = Release|x64 + {BB268536-9E03-46A4-9B11-6025211D87F0}.Eureka|x64.Build.0 = Release|x64 + {BB268536-9E03-46A4-9B11-6025211D87F0}.Eureka|x86.ActiveCfg = Release|Win32 + {BB268536-9E03-46A4-9B11-6025211D87F0}.Eureka|x86.Build.0 = Release|Win32 {BB268536-9E03-46A4-9B11-6025211D87F0}.Release 4.0|Any CPU.ActiveCfg = Release|x64 {BB268536-9E03-46A4-9B11-6025211D87F0}.Release 4.0|Any CPU.Build.0 = Release|x64 {BB268536-9E03-46A4-9B11-6025211D87F0}.Release 4.0|ARM.ActiveCfg = Release|x64 @@ -9491,6 +11677,26 @@ Global {1E938FD2-C669-4738-98C9-77F96CE4D451}.Debug|x64.Build.0 = Debug|Any CPU {1E938FD2-C669-4738-98C9-77F96CE4D451}.Debug|x86.ActiveCfg = Debug|Any CPU {1E938FD2-C669-4738-98C9-77F96CE4D451}.Debug|x86.Build.0 = Debug|Any CPU + {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka|Any CPU.Build.0 = Release|Any CPU + {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka|ARM.ActiveCfg = Release|Any CPU + {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka|ARM.Build.0 = Release|Any CPU + {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka|ARM64.Build.0 = Release|Any CPU + {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka|x64.ActiveCfg = Release|Any CPU + {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka|x64.Build.0 = Release|Any CPU + {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka|x86.ActiveCfg = Release|Any CPU + {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka|x86.Build.0 = Release|Any CPU {1E938FD2-C669-4738-98C9-77F96CE4D451}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {1E938FD2-C669-4738-98C9-77F96CE4D451}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {1E938FD2-C669-4738-98C9-77F96CE4D451}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -9571,6 +11777,26 @@ Global {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Debug|x64.Build.0 = Debug|Any CPU {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Debug|x86.ActiveCfg = Debug|Any CPU {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Debug|x86.Build.0 = Debug|Any CPU + {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka|Any CPU.Build.0 = Release|Any CPU + {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka|ARM.ActiveCfg = Release|Any CPU + {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka|ARM.Build.0 = Release|Any CPU + {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka|ARM64.Build.0 = Release|Any CPU + {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka|x64.ActiveCfg = Release|Any CPU + {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka|x64.Build.0 = Release|Any CPU + {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka|x86.ActiveCfg = Release|Any CPU + {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka|x86.Build.0 = Release|Any CPU {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -9651,6 +11877,26 @@ Global {C9F60285-91FB-4293-BCF5-164D76755CDD}.Debug|x64.Build.0 = Debug|Any CPU {C9F60285-91FB-4293-BCF5-164D76755CDD}.Debug|x86.ActiveCfg = Debug|Any CPU {C9F60285-91FB-4293-BCF5-164D76755CDD}.Debug|x86.Build.0 = Debug|Any CPU + {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka|Any CPU.Build.0 = Release|Any CPU + {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka|ARM.ActiveCfg = Release|Any CPU + {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka|ARM.Build.0 = Release|Any CPU + {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka|ARM64.Build.0 = Release|Any CPU + {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka|x64.ActiveCfg = Release|Any CPU + {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka|x64.Build.0 = Release|Any CPU + {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka|x86.ActiveCfg = Release|Any CPU + {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka|x86.Build.0 = Release|Any CPU {C9F60285-91FB-4293-BCF5-164D76755CDD}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {C9F60285-91FB-4293-BCF5-164D76755CDD}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {C9F60285-91FB-4293-BCF5-164D76755CDD}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -9731,6 +11977,26 @@ Global {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Debug|x64.Build.0 = Debug|Any CPU {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Debug|x86.ActiveCfg = Debug|Any CPU {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Debug|x86.Build.0 = Debug|Any CPU + {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka|Any CPU.Build.0 = Release|Any CPU + {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka|ARM.ActiveCfg = Release|Any CPU + {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka|ARM.Build.0 = Release|Any CPU + {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka|ARM64.Build.0 = Release|Any CPU + {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka|x64.ActiveCfg = Release|Any CPU + {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka|x64.Build.0 = Release|Any CPU + {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka|x86.ActiveCfg = Release|Any CPU + {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka|x86.Build.0 = Release|Any CPU {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -9811,6 +12077,26 @@ Global {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Debug|x64.Build.0 = Debug|Any CPU {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Debug|x86.ActiveCfg = Debug|Any CPU {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Debug|x86.Build.0 = Debug|Any CPU + {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka|Any CPU.Build.0 = Release|Any CPU + {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka|ARM.ActiveCfg = Release|Any CPU + {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka|ARM.Build.0 = Release|Any CPU + {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka|ARM64.Build.0 = Release|Any CPU + {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka|x64.ActiveCfg = Release|Any CPU + {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka|x64.Build.0 = Release|Any CPU + {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka|x86.ActiveCfg = Release|Any CPU + {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka|x86.Build.0 = Release|Any CPU {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -9891,6 +12177,26 @@ Global {F13A489C-80EE-4CD0-BDD4-92D959215646}.Debug|x64.Build.0 = Debug|Any CPU {F13A489C-80EE-4CD0-BDD4-92D959215646}.Debug|x86.ActiveCfg = Debug|Any CPU {F13A489C-80EE-4CD0-BDD4-92D959215646}.Debug|x86.Build.0 = Debug|Any CPU + {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka|Any CPU.Build.0 = Release|Any CPU + {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka|ARM.ActiveCfg = Release|Any CPU + {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka|ARM.Build.0 = Release|Any CPU + {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka|ARM64.Build.0 = Release|Any CPU + {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka|x64.ActiveCfg = Release|Any CPU + {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka|x64.Build.0 = Release|Any CPU + {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka|x86.ActiveCfg = Release|Any CPU + {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka|x86.Build.0 = Release|Any CPU {F13A489C-80EE-4CD0-BDD4-92D959215646}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {F13A489C-80EE-4CD0-BDD4-92D959215646}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {F13A489C-80EE-4CD0-BDD4-92D959215646}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -9971,6 +12277,26 @@ Global {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Debug|x64.Build.0 = Debug|Any CPU {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Debug|x86.ActiveCfg = Debug|Any CPU {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Debug|x86.Build.0 = Debug|Any CPU + {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka|Any CPU.Build.0 = Release|Any CPU + {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka|ARM.ActiveCfg = Release|Any CPU + {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka|ARM.Build.0 = Release|Any CPU + {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka|ARM64.Build.0 = Release|Any CPU + {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka|x64.ActiveCfg = Release|Any CPU + {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka|x64.Build.0 = Release|Any CPU + {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka|x86.ActiveCfg = Release|Any CPU + {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka|x86.Build.0 = Release|Any CPU {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -10051,6 +12377,26 @@ Global {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Debug|x64.Build.0 = Debug|Any CPU {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Debug|x86.ActiveCfg = Debug|Any CPU {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Debug|x86.Build.0 = Debug|Any CPU + {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka|Any CPU.Build.0 = Release|Any CPU + {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka|ARM.ActiveCfg = Release|Any CPU + {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka|ARM.Build.0 = Release|Any CPU + {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka|ARM64.Build.0 = Release|Any CPU + {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka|x64.ActiveCfg = Release|Any CPU + {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka|x64.Build.0 = Release|Any CPU + {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka|x86.ActiveCfg = Release|Any CPU + {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka|x86.Build.0 = Release|Any CPU {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -10131,6 +12477,26 @@ Global {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Debug|x64.Build.0 = Debug|Any CPU {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Debug|x86.ActiveCfg = Debug|Any CPU {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Debug|x86.Build.0 = Debug|Any CPU + {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka|Any CPU.Build.0 = Release|Any CPU + {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka|ARM.ActiveCfg = Release|Any CPU + {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka|ARM.Build.0 = Release|Any CPU + {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka|ARM64.Build.0 = Release|Any CPU + {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka|x64.ActiveCfg = Release|Any CPU + {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka|x64.Build.0 = Release|Any CPU + {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka|x86.ActiveCfg = Release|Any CPU + {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka|x86.Build.0 = Release|Any CPU {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -10211,6 +12577,26 @@ Global {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Debug|x64.Build.0 = Debug|Any CPU {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Debug|x86.ActiveCfg = Debug|Any CPU {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Debug|x86.Build.0 = Debug|Any CPU + {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka|Any CPU.Build.0 = Release|Any CPU + {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka|ARM.ActiveCfg = Release|Any CPU + {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka|ARM.Build.0 = Release|Any CPU + {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka|ARM64.Build.0 = Release|Any CPU + {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka|x64.ActiveCfg = Release|Any CPU + {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka|x64.Build.0 = Release|Any CPU + {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka|x86.ActiveCfg = Release|Any CPU + {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka|x86.Build.0 = Release|Any CPU {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -10291,6 +12677,26 @@ Global {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Debug|x64.Build.0 = Debug|Any CPU {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Debug|x86.ActiveCfg = Debug|Any CPU {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Debug|x86.Build.0 = Debug|Any CPU + {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka|Any CPU.Build.0 = Release|Any CPU + {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka|ARM.ActiveCfg = Release|Any CPU + {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka|ARM.Build.0 = Release|Any CPU + {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka|ARM64.Build.0 = Release|Any CPU + {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka|x64.ActiveCfg = Release|Any CPU + {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka|x64.Build.0 = Release|Any CPU + {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka|x86.ActiveCfg = Release|Any CPU + {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka|x86.Build.0 = Release|Any CPU {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -10371,6 +12777,26 @@ Global {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Debug|x64.Build.0 = Debug|Any CPU {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Debug|x86.ActiveCfg = Debug|Any CPU {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Debug|x86.Build.0 = Debug|Any CPU + {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka|Any CPU.Build.0 = Release|Any CPU + {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka|ARM.ActiveCfg = Release|Any CPU + {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka|ARM.Build.0 = Release|Any CPU + {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka|ARM64.Build.0 = Release|Any CPU + {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka|x64.ActiveCfg = Release|Any CPU + {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka|x64.Build.0 = Release|Any CPU + {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka|x86.ActiveCfg = Release|Any CPU + {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka|x86.Build.0 = Release|Any CPU {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -10451,6 +12877,26 @@ Global {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Debug|x64.Build.0 = Debug|Any CPU {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Debug|x86.ActiveCfg = Debug|Any CPU {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Debug|x86.Build.0 = Debug|Any CPU + {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka|Any CPU.Build.0 = Release|Any CPU + {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka|ARM.ActiveCfg = Release|Any CPU + {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka|ARM.Build.0 = Release|Any CPU + {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka|ARM64.Build.0 = Release|Any CPU + {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka|x64.ActiveCfg = Release|Any CPU + {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka|x64.Build.0 = Release|Any CPU + {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka|x86.ActiveCfg = Release|Any CPU + {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka|x86.Build.0 = Release|Any CPU {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -10531,6 +12977,26 @@ Global {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Debug|x64.Build.0 = Debug|Any CPU {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Debug|x86.ActiveCfg = Debug|Any CPU {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Debug|x86.Build.0 = Debug|Any CPU + {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka|Any CPU.Build.0 = Release|Any CPU + {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka|ARM.ActiveCfg = Release|Any CPU + {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka|ARM.Build.0 = Release|Any CPU + {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka|ARM64.Build.0 = Release|Any CPU + {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka|x64.ActiveCfg = Release|Any CPU + {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka|x64.Build.0 = Release|Any CPU + {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka|x86.ActiveCfg = Release|Any CPU + {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka|x86.Build.0 = Release|Any CPU {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -10611,6 +13077,26 @@ Global {50119E79-5012-4B36-8438-953DD5FC06E6}.Debug|x64.Build.0 = Debug|Any CPU {50119E79-5012-4B36-8438-953DD5FC06E6}.Debug|x86.ActiveCfg = Debug|Any CPU {50119E79-5012-4B36-8438-953DD5FC06E6}.Debug|x86.Build.0 = Debug|Any CPU + {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka|Any CPU.Build.0 = Release|Any CPU + {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka|ARM.ActiveCfg = Release|Any CPU + {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka|ARM.Build.0 = Release|Any CPU + {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka|ARM64.Build.0 = Release|Any CPU + {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka|x64.ActiveCfg = Release|Any CPU + {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka|x64.Build.0 = Release|Any CPU + {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka|x86.ActiveCfg = Release|Any CPU + {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka|x86.Build.0 = Release|Any CPU {50119E79-5012-4B36-8438-953DD5FC06E6}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {50119E79-5012-4B36-8438-953DD5FC06E6}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {50119E79-5012-4B36-8438-953DD5FC06E6}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -10689,6 +13175,22 @@ Global {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Debug|x64.Build.0 = Debug|x64 {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Debug|x86.ActiveCfg = Debug|Win32 {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Debug|x86.Build.0 = Debug|Win32 + {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Win32 + {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Eureka_Debug|Any CPU.Build.0 = Debug|Win32 + {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Eureka_Debug|ARM.ActiveCfg = Debug|Win32 + {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Eureka_Debug|ARM64.ActiveCfg = Debug|Win32 + {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Eureka_Debug|x64.ActiveCfg = Debug|x64 + {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Eureka_Debug|x64.Build.0 = Debug|x64 + {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Eureka_Debug|x86.ActiveCfg = Debug|Win32 + {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Eureka_Debug|x86.Build.0 = Debug|Win32 + {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Eureka|Any CPU.ActiveCfg = Debug|Win32 + {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Eureka|Any CPU.Build.0 = Debug|Win32 + {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Eureka|ARM.ActiveCfg = Release|Win32 + {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Eureka|ARM64.ActiveCfg = Release|Win32 + {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Eureka|x64.ActiveCfg = Release|x64 + {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Eureka|x64.Build.0 = Release|x64 + {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Eureka|x86.ActiveCfg = Release|Win32 + {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Eureka|x86.Build.0 = Release|Win32 {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Release 4.0|Any CPU.ActiveCfg = Release|x64 {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Release 4.0|Any CPU.Build.0 = Release|x64 {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Release 4.0|ARM.ActiveCfg = Release|x64 @@ -10765,6 +13267,22 @@ Global {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Debug|x64.Build.0 = Debug|x64 {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Debug|x86.ActiveCfg = Debug|Win32 {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Debug|x86.Build.0 = Debug|Win32 + {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Win32 + {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Eureka_Debug|Any CPU.Build.0 = Debug|Win32 + {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Eureka_Debug|ARM.ActiveCfg = Debug|Win32 + {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Eureka_Debug|ARM64.ActiveCfg = Debug|Win32 + {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Eureka_Debug|x64.ActiveCfg = Debug|x64 + {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Eureka_Debug|x64.Build.0 = Debug|x64 + {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Eureka_Debug|x86.ActiveCfg = Debug|Win32 + {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Eureka_Debug|x86.Build.0 = Debug|Win32 + {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Eureka|Any CPU.ActiveCfg = Debug|Win32 + {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Eureka|Any CPU.Build.0 = Debug|Win32 + {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Eureka|ARM.ActiveCfg = Release|Win32 + {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Eureka|ARM64.ActiveCfg = Release|Win32 + {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Eureka|x64.ActiveCfg = Release|x64 + {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Eureka|x64.Build.0 = Release|x64 + {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Eureka|x86.ActiveCfg = Release|Win32 + {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Eureka|x86.Build.0 = Release|Win32 {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Release 4.0|Any CPU.ActiveCfg = Release|x64 {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Release 4.0|Any CPU.Build.0 = Release|x64 {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Release 4.0|ARM.ActiveCfg = Release|x64 @@ -10841,6 +13359,22 @@ Global {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Debug|x64.Build.0 = Debug|x64 {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Debug|x86.ActiveCfg = Debug|Win32 {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Debug|x86.Build.0 = Debug|Win32 + {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Win32 + {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Eureka_Debug|Any CPU.Build.0 = Debug|Win32 + {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Eureka_Debug|ARM.ActiveCfg = Debug|Win32 + {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Eureka_Debug|ARM64.ActiveCfg = Debug|Win32 + {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Eureka_Debug|x64.ActiveCfg = Debug|x64 + {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Eureka_Debug|x64.Build.0 = Debug|x64 + {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Eureka_Debug|x86.ActiveCfg = Debug|Win32 + {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Eureka_Debug|x86.Build.0 = Debug|Win32 + {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Eureka|Any CPU.ActiveCfg = Debug|Win32 + {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Eureka|Any CPU.Build.0 = Debug|Win32 + {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Eureka|ARM.ActiveCfg = Release|Win32 + {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Eureka|ARM64.ActiveCfg = Release|Win32 + {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Eureka|x64.ActiveCfg = Release|x64 + {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Eureka|x64.Build.0 = Release|x64 + {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Eureka|x86.ActiveCfg = Release|Win32 + {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Eureka|x86.Build.0 = Release|Win32 {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Release 4.0|Any CPU.ActiveCfg = Release|x64 {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Release 4.0|Any CPU.Build.0 = Release|x64 {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Release 4.0|ARM.ActiveCfg = Release|x64 @@ -10919,6 +13453,26 @@ Global {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Debug|x64.Build.0 = Debug|Any CPU {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Debug|x86.ActiveCfg = Debug|Any CPU {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Debug|x86.Build.0 = Debug|Any CPU + {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka|Any CPU.Build.0 = Release|Any CPU + {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka|ARM.ActiveCfg = Release|Any CPU + {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka|ARM.Build.0 = Release|Any CPU + {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka|ARM64.Build.0 = Release|Any CPU + {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka|x64.ActiveCfg = Release|Any CPU + {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka|x64.Build.0 = Release|Any CPU + {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka|x86.ActiveCfg = Release|Any CPU + {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka|x86.Build.0 = Release|Any CPU {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -10999,6 +13553,26 @@ Global {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Debug|x64.Build.0 = Debug|Any CPU {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Debug|x86.ActiveCfg = Debug|Any CPU {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Debug|x86.Build.0 = Debug|Any CPU + {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka|Any CPU.Build.0 = Release|Any CPU + {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka|ARM.ActiveCfg = Release|Any CPU + {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka|ARM.Build.0 = Release|Any CPU + {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka|ARM64.Build.0 = Release|Any CPU + {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka|x64.ActiveCfg = Release|Any CPU + {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka|x64.Build.0 = Release|Any CPU + {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka|x86.ActiveCfg = Release|Any CPU + {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka|x86.Build.0 = Release|Any CPU {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -11079,6 +13653,26 @@ Global {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Debug|x64.Build.0 = Debug|Any CPU {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Debug|x86.ActiveCfg = Debug|Any CPU {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Debug|x86.Build.0 = Debug|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka|Any CPU.Build.0 = Release|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka|ARM.ActiveCfg = Release|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka|ARM.Build.0 = Release|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka|ARM64.Build.0 = Release|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka|x64.ActiveCfg = Release|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka|x64.Build.0 = Release|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka|x86.ActiveCfg = Release|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka|x86.Build.0 = Release|Any CPU {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -11159,6 +13753,24 @@ Global {2CD12594-3522-4658-A65F-190EE58B6AFA}.Debug|x64.Build.0 = Debug|Any CPU {2CD12594-3522-4658-A65F-190EE58B6AFA}.Debug|x86.ActiveCfg = Debug|Any CPU {2CD12594-3522-4658-A65F-190EE58B6AFA}.Debug|x86.Build.0 = Debug|Any CPU + {2CD12594-3522-4658-A65F-190EE58B6AFA}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2CD12594-3522-4658-A65F-190EE58B6AFA}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {2CD12594-3522-4658-A65F-190EE58B6AFA}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {2CD12594-3522-4658-A65F-190EE58B6AFA}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {2CD12594-3522-4658-A65F-190EE58B6AFA}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {2CD12594-3522-4658-A65F-190EE58B6AFA}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {2CD12594-3522-4658-A65F-190EE58B6AFA}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {2CD12594-3522-4658-A65F-190EE58B6AFA}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {2CD12594-3522-4658-A65F-190EE58B6AFA}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {2CD12594-3522-4658-A65F-190EE58B6AFA}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {2CD12594-3522-4658-A65F-190EE58B6AFA}.Eureka|ARM.ActiveCfg = Release|Any CPU + {2CD12594-3522-4658-A65F-190EE58B6AFA}.Eureka|ARM.Build.0 = Release|Any CPU + {2CD12594-3522-4658-A65F-190EE58B6AFA}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {2CD12594-3522-4658-A65F-190EE58B6AFA}.Eureka|ARM64.Build.0 = Release|Any CPU + {2CD12594-3522-4658-A65F-190EE58B6AFA}.Eureka|x64.ActiveCfg = Release|Any CPU + {2CD12594-3522-4658-A65F-190EE58B6AFA}.Eureka|x64.Build.0 = Release|Any CPU + {2CD12594-3522-4658-A65F-190EE58B6AFA}.Eureka|x86.ActiveCfg = Release|Any CPU + {2CD12594-3522-4658-A65F-190EE58B6AFA}.Eureka|x86.Build.0 = Release|Any CPU {2CD12594-3522-4658-A65F-190EE58B6AFA}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {2CD12594-3522-4658-A65F-190EE58B6AFA}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {2CD12594-3522-4658-A65F-190EE58B6AFA}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -11239,6 +13851,24 @@ Global {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Debug|x64.Build.0 = Debug|Any CPU {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Debug|x86.ActiveCfg = Debug|Any CPU {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Debug|x86.Build.0 = Debug|Any CPU + {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Eureka|ARM.ActiveCfg = Release|Any CPU + {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Eureka|ARM.Build.0 = Release|Any CPU + {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Eureka|ARM64.Build.0 = Release|Any CPU + {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Eureka|x64.ActiveCfg = Release|Any CPU + {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Eureka|x64.Build.0 = Release|Any CPU + {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Eureka|x86.ActiveCfg = Release|Any CPU + {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Eureka|x86.Build.0 = Release|Any CPU {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -11319,6 +13949,26 @@ Global {F3746F2B-E4AE-498B-9D42-74F95D992460}.Debug|x64.Build.0 = Debug|Any CPU {F3746F2B-E4AE-498B-9D42-74F95D992460}.Debug|x86.ActiveCfg = Debug|Any CPU {F3746F2B-E4AE-498B-9D42-74F95D992460}.Debug|x86.Build.0 = Debug|Any CPU + {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka|Any CPU.Build.0 = Release|Any CPU + {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka|ARM.ActiveCfg = Release|Any CPU + {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka|ARM.Build.0 = Release|Any CPU + {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka|ARM64.Build.0 = Release|Any CPU + {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka|x64.ActiveCfg = Release|Any CPU + {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka|x64.Build.0 = Release|Any CPU + {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka|x86.ActiveCfg = Release|Any CPU + {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka|x86.Build.0 = Release|Any CPU {F3746F2B-E4AE-498B-9D42-74F95D992460}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {F3746F2B-E4AE-498B-9D42-74F95D992460}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {F3746F2B-E4AE-498B-9D42-74F95D992460}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -11399,6 +14049,26 @@ Global {18A27902-9881-4556-8163-F6DF2236A14D}.Debug|x64.Build.0 = Debug|Any CPU {18A27902-9881-4556-8163-F6DF2236A14D}.Debug|x86.ActiveCfg = Debug|Any CPU {18A27902-9881-4556-8163-F6DF2236A14D}.Debug|x86.Build.0 = Debug|Any CPU + {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka|Any CPU.Build.0 = Release|Any CPU + {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka|ARM.ActiveCfg = Release|Any CPU + {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka|ARM.Build.0 = Release|Any CPU + {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka|ARM64.Build.0 = Release|Any CPU + {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka|x64.ActiveCfg = Release|Any CPU + {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka|x64.Build.0 = Release|Any CPU + {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka|x86.ActiveCfg = Release|Any CPU + {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka|x86.Build.0 = Release|Any CPU {18A27902-9881-4556-8163-F6DF2236A14D}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {18A27902-9881-4556-8163-F6DF2236A14D}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {18A27902-9881-4556-8163-F6DF2236A14D}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -11479,6 +14149,26 @@ Global {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Debug|x64.Build.0 = Debug|Any CPU {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Debug|x86.ActiveCfg = Debug|Any CPU {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Debug|x86.Build.0 = Debug|Any CPU + {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka|Any CPU.Build.0 = Release|Any CPU + {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka|ARM.ActiveCfg = Release|Any CPU + {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka|ARM.Build.0 = Release|Any CPU + {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka|ARM64.Build.0 = Release|Any CPU + {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka|x64.ActiveCfg = Release|Any CPU + {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka|x64.Build.0 = Release|Any CPU + {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka|x86.ActiveCfg = Release|Any CPU + {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka|x86.Build.0 = Release|Any CPU {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -11559,6 +14249,26 @@ Global {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Debug|x64.Build.0 = Debug|Any CPU {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Debug|x86.ActiveCfg = Debug|Any CPU {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Debug|x86.Build.0 = Debug|Any CPU + {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka|Any CPU.Build.0 = Release|Any CPU + {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka|ARM.ActiveCfg = Release|Any CPU + {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka|ARM.Build.0 = Release|Any CPU + {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka|ARM64.Build.0 = Release|Any CPU + {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka|x64.ActiveCfg = Release|Any CPU + {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka|x64.Build.0 = Release|Any CPU + {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka|x86.ActiveCfg = Release|Any CPU + {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka|x86.Build.0 = Release|Any CPU {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -11639,6 +14349,26 @@ Global {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Debug|x64.Build.0 = Debug|Any CPU {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Debug|x86.ActiveCfg = Debug|Any CPU {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Debug|x86.Build.0 = Debug|Any CPU + {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka|Any CPU.Build.0 = Release|Any CPU + {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka|ARM.ActiveCfg = Release|Any CPU + {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka|ARM.Build.0 = Release|Any CPU + {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka|ARM64.Build.0 = Release|Any CPU + {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka|x64.ActiveCfg = Release|Any CPU + {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka|x64.Build.0 = Release|Any CPU + {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka|x86.ActiveCfg = Release|Any CPU + {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka|x86.Build.0 = Release|Any CPU {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -11719,6 +14449,26 @@ Global {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Debug|x64.Build.0 = Debug|Any CPU {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Debug|x86.ActiveCfg = Debug|Any CPU {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Debug|x86.Build.0 = Debug|Any CPU + {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka|Any CPU.Build.0 = Release|Any CPU + {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka|ARM.ActiveCfg = Release|Any CPU + {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka|ARM.Build.0 = Release|Any CPU + {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka|ARM64.Build.0 = Release|Any CPU + {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka|x64.ActiveCfg = Release|Any CPU + {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka|x64.Build.0 = Release|Any CPU + {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka|x86.ActiveCfg = Release|Any CPU + {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka|x86.Build.0 = Release|Any CPU {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -11799,6 +14549,26 @@ Global {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Debug|x64.Build.0 = Debug|Any CPU {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Debug|x86.ActiveCfg = Debug|Any CPU {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Debug|x86.Build.0 = Debug|Any CPU + {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka|Any CPU.Build.0 = Release|Any CPU + {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka|ARM.ActiveCfg = Release|Any CPU + {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka|ARM.Build.0 = Release|Any CPU + {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka|ARM64.Build.0 = Release|Any CPU + {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka|x64.ActiveCfg = Release|Any CPU + {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka|x64.Build.0 = Release|Any CPU + {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka|x86.ActiveCfg = Release|Any CPU + {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka|x86.Build.0 = Release|Any CPU {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -11879,6 +14649,26 @@ Global {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Debug|x64.Build.0 = Debug|Any CPU {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Debug|x86.ActiveCfg = Debug|Any CPU {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Debug|x86.Build.0 = Debug|Any CPU + {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka|Any CPU.Build.0 = Release|Any CPU + {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka|ARM.ActiveCfg = Release|Any CPU + {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka|ARM.Build.0 = Release|Any CPU + {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka|ARM64.Build.0 = Release|Any CPU + {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka|x64.ActiveCfg = Release|Any CPU + {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka|x64.Build.0 = Release|Any CPU + {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka|x86.ActiveCfg = Release|Any CPU + {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka|x86.Build.0 = Release|Any CPU {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -11959,6 +14749,26 @@ Global {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Debug|x64.Build.0 = Debug|Any CPU {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Debug|x86.ActiveCfg = Debug|Any CPU {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Debug|x86.Build.0 = Debug|Any CPU + {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka|Any CPU.Build.0 = Release|Any CPU + {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka|ARM.ActiveCfg = Release|Any CPU + {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka|ARM.Build.0 = Release|Any CPU + {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka|ARM64.Build.0 = Release|Any CPU + {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka|x64.ActiveCfg = Release|Any CPU + {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka|x64.Build.0 = Release|Any CPU + {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka|x86.ActiveCfg = Release|Any CPU + {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka|x86.Build.0 = Release|Any CPU {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -12039,6 +14849,26 @@ Global {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Debug|x64.Build.0 = Debug|Any CPU {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Debug|x86.ActiveCfg = Debug|Any CPU {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Debug|x86.Build.0 = Debug|Any CPU + {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka|Any CPU.Build.0 = Release|Any CPU + {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka|ARM.ActiveCfg = Release|Any CPU + {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka|ARM.Build.0 = Release|Any CPU + {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka|ARM64.Build.0 = Release|Any CPU + {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka|x64.ActiveCfg = Release|Any CPU + {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka|x64.Build.0 = Release|Any CPU + {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka|x86.ActiveCfg = Release|Any CPU + {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka|x86.Build.0 = Release|Any CPU {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -12119,6 +14949,26 @@ Global {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Debug|x64.Build.0 = Debug|Any CPU {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Debug|x86.ActiveCfg = Debug|Any CPU {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Debug|x86.Build.0 = Debug|Any CPU + {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka|Any CPU.Build.0 = Release|Any CPU + {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka|ARM.ActiveCfg = Release|Any CPU + {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka|ARM.Build.0 = Release|Any CPU + {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka|ARM64.Build.0 = Release|Any CPU + {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka|x64.ActiveCfg = Release|Any CPU + {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka|x64.Build.0 = Release|Any CPU + {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka|x86.ActiveCfg = Release|Any CPU + {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka|x86.Build.0 = Release|Any CPU {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -12199,6 +15049,26 @@ Global {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Debug|x64.Build.0 = Debug|Any CPU {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Debug|x86.ActiveCfg = Debug|Any CPU {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Debug|x86.Build.0 = Debug|Any CPU + {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka|Any CPU.Build.0 = Release|Any CPU + {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka|ARM.ActiveCfg = Release|Any CPU + {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka|ARM.Build.0 = Release|Any CPU + {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka|ARM64.Build.0 = Release|Any CPU + {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka|x64.ActiveCfg = Release|Any CPU + {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka|x64.Build.0 = Release|Any CPU + {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka|x86.ActiveCfg = Release|Any CPU + {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka|x86.Build.0 = Release|Any CPU {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -12279,6 +15149,26 @@ Global {866B916A-207C-43F0-B403-7C4A820C2E11}.Debug|x64.Build.0 = Debug|Any CPU {866B916A-207C-43F0-B403-7C4A820C2E11}.Debug|x86.ActiveCfg = Debug|Any CPU {866B916A-207C-43F0-B403-7C4A820C2E11}.Debug|x86.Build.0 = Debug|Any CPU + {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka|Any CPU.Build.0 = Release|Any CPU + {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka|ARM.ActiveCfg = Release|Any CPU + {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka|ARM.Build.0 = Release|Any CPU + {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka|ARM64.Build.0 = Release|Any CPU + {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka|x64.ActiveCfg = Release|Any CPU + {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka|x64.Build.0 = Release|Any CPU + {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka|x86.ActiveCfg = Release|Any CPU + {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka|x86.Build.0 = Release|Any CPU {866B916A-207C-43F0-B403-7C4A820C2E11}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {866B916A-207C-43F0-B403-7C4A820C2E11}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {866B916A-207C-43F0-B403-7C4A820C2E11}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -12359,6 +15249,26 @@ Global {199E8359-CAD3-433D-9EED-2027652B24A4}.Debug|x64.Build.0 = Debug|Any CPU {199E8359-CAD3-433D-9EED-2027652B24A4}.Debug|x86.ActiveCfg = Debug|Any CPU {199E8359-CAD3-433D-9EED-2027652B24A4}.Debug|x86.Build.0 = Debug|Any CPU + {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka|Any CPU.Build.0 = Release|Any CPU + {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka|ARM.ActiveCfg = Release|Any CPU + {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka|ARM.Build.0 = Release|Any CPU + {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka|ARM64.Build.0 = Release|Any CPU + {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka|x64.ActiveCfg = Release|Any CPU + {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka|x64.Build.0 = Release|Any CPU + {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka|x86.ActiveCfg = Release|Any CPU + {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka|x86.Build.0 = Release|Any CPU {199E8359-CAD3-433D-9EED-2027652B24A4}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {199E8359-CAD3-433D-9EED-2027652B24A4}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {199E8359-CAD3-433D-9EED-2027652B24A4}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -12439,6 +15349,26 @@ Global {A78068D4-2061-4376-8EDE-583D8D880DEC}.Debug|x64.Build.0 = Debug|Any CPU {A78068D4-2061-4376-8EDE-583D8D880DEC}.Debug|x86.ActiveCfg = Debug|Any CPU {A78068D4-2061-4376-8EDE-583D8D880DEC}.Debug|x86.Build.0 = Debug|Any CPU + {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka|Any CPU.Build.0 = Release|Any CPU + {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka|ARM.ActiveCfg = Release|Any CPU + {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka|ARM.Build.0 = Release|Any CPU + {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka|ARM64.Build.0 = Release|Any CPU + {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka|x64.ActiveCfg = Release|Any CPU + {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka|x64.Build.0 = Release|Any CPU + {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka|x86.ActiveCfg = Release|Any CPU + {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka|x86.Build.0 = Release|Any CPU {A78068D4-2061-4376-8EDE-583D8D880DEC}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {A78068D4-2061-4376-8EDE-583D8D880DEC}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {A78068D4-2061-4376-8EDE-583D8D880DEC}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -12517,6 +15447,22 @@ Global {A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Debug|x64.Build.0 = Debug|x64 {A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Debug|x86.ActiveCfg = Debug|Win32 {A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Debug|x86.Build.0 = Debug|Win32 + {A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Win32 + {A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Eureka_Debug|Any CPU.Build.0 = Debug|Win32 + {A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Eureka_Debug|ARM.ActiveCfg = Debug|Win32 + {A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Eureka_Debug|ARM64.ActiveCfg = Debug|Win32 + {A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Eureka_Debug|x64.ActiveCfg = Debug|x64 + {A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Eureka_Debug|x64.Build.0 = Debug|x64 + {A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Eureka_Debug|x86.ActiveCfg = Debug|Win32 + {A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Eureka_Debug|x86.Build.0 = Debug|Win32 + {A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Eureka|Any CPU.ActiveCfg = Debug|Win32 + {A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Eureka|Any CPU.Build.0 = Debug|Win32 + {A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Eureka|ARM.ActiveCfg = Release|Win32 + {A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Eureka|ARM64.ActiveCfg = Release|Win32 + {A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Eureka|x64.ActiveCfg = Release|x64 + {A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Eureka|x64.Build.0 = Release|x64 + {A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Eureka|x86.ActiveCfg = Release|Win32 + {A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Eureka|x86.Build.0 = Release|Win32 {A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Release 4.0|Any CPU.ActiveCfg = Release|x64 {A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Release 4.0|Any CPU.Build.0 = Release|x64 {A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Release 4.0|ARM.ActiveCfg = Release|x64 @@ -12595,6 +15541,26 @@ Global {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Debug|x64.Build.0 = Debug|Any CPU {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Debug|x86.ActiveCfg = Debug|Any CPU {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Debug|x86.Build.0 = Debug|Any CPU + {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka|Any CPU.Build.0 = Release|Any CPU + {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka|ARM.ActiveCfg = Release|Any CPU + {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka|ARM.Build.0 = Release|Any CPU + {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka|ARM64.Build.0 = Release|Any CPU + {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka|x64.ActiveCfg = Release|Any CPU + {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka|x64.Build.0 = Release|Any CPU + {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka|x86.ActiveCfg = Release|Any CPU + {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka|x86.Build.0 = Release|Any CPU {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -12675,6 +15641,26 @@ Global {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Debug|x64.Build.0 = Debug|Any CPU {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Debug|x86.ActiveCfg = Debug|Any CPU {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Debug|x86.Build.0 = Debug|Any CPU + {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka|Any CPU.Build.0 = Release|Any CPU + {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka|ARM.ActiveCfg = Release|Any CPU + {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka|ARM.Build.0 = Release|Any CPU + {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka|ARM64.Build.0 = Release|Any CPU + {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka|x64.ActiveCfg = Release|Any CPU + {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka|x64.Build.0 = Release|Any CPU + {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka|x86.ActiveCfg = Release|Any CPU + {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka|x86.Build.0 = Release|Any CPU {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -12755,6 +15741,26 @@ Global {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Debug|x64.Build.0 = Debug|Any CPU {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Debug|x86.ActiveCfg = Debug|Any CPU {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Debug|x86.Build.0 = Debug|Any CPU + {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka|Any CPU.Build.0 = Release|Any CPU + {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka|ARM.ActiveCfg = Release|Any CPU + {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka|ARM.Build.0 = Release|Any CPU + {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka|ARM64.Build.0 = Release|Any CPU + {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka|x64.ActiveCfg = Release|Any CPU + {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka|x64.Build.0 = Release|Any CPU + {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka|x86.ActiveCfg = Release|Any CPU + {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka|x86.Build.0 = Release|Any CPU {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -12835,6 +15841,26 @@ Global {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Debug|x64.Build.0 = Debug|Any CPU {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Debug|x86.ActiveCfg = Debug|Any CPU {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Debug|x86.Build.0 = Debug|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka|Any CPU.Build.0 = Release|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka|ARM.ActiveCfg = Release|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka|ARM.Build.0 = Release|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka|ARM64.Build.0 = Release|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka|x64.ActiveCfg = Release|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka|x64.Build.0 = Release|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka|x86.ActiveCfg = Release|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka|x86.Build.0 = Release|Any CPU {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -12915,6 +15941,26 @@ Global {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Debug|x64.Build.0 = Debug|Any CPU {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Debug|x86.ActiveCfg = Debug|Any CPU {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Debug|x86.Build.0 = Debug|Any CPU + {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka|Any CPU.Build.0 = Release|Any CPU + {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka|ARM.ActiveCfg = Release|Any CPU + {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka|ARM.Build.0 = Release|Any CPU + {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka|ARM64.Build.0 = Release|Any CPU + {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka|x64.ActiveCfg = Release|Any CPU + {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka|x64.Build.0 = Release|Any CPU + {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka|x86.ActiveCfg = Release|Any CPU + {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka|x86.Build.0 = Release|Any CPU {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -12995,6 +16041,26 @@ Global {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Debug|x64.Build.0 = Debug|Any CPU {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Debug|x86.ActiveCfg = Debug|Any CPU {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Debug|x86.Build.0 = Debug|Any CPU + {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka|Any CPU.Build.0 = Release|Any CPU + {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka|ARM.ActiveCfg = Release|Any CPU + {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka|ARM.Build.0 = Release|Any CPU + {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka|ARM64.Build.0 = Release|Any CPU + {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka|x64.ActiveCfg = Release|Any CPU + {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka|x64.Build.0 = Release|Any CPU + {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka|x86.ActiveCfg = Release|Any CPU + {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka|x86.Build.0 = Release|Any CPU {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -13075,6 +16141,26 @@ Global {564A30E2-E681-422A-9528-3E8CE301B837}.Debug|x64.Build.0 = Debug|Any CPU {564A30E2-E681-422A-9528-3E8CE301B837}.Debug|x86.ActiveCfg = Debug|Any CPU {564A30E2-E681-422A-9528-3E8CE301B837}.Debug|x86.Build.0 = Debug|Any CPU + {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka|Any CPU.Build.0 = Release|Any CPU + {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka|ARM.ActiveCfg = Release|Any CPU + {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka|ARM.Build.0 = Release|Any CPU + {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka|ARM64.Build.0 = Release|Any CPU + {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka|x64.ActiveCfg = Release|Any CPU + {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka|x64.Build.0 = Release|Any CPU + {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka|x86.ActiveCfg = Release|Any CPU + {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka|x86.Build.0 = Release|Any CPU {564A30E2-E681-422A-9528-3E8CE301B837}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {564A30E2-E681-422A-9528-3E8CE301B837}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {564A30E2-E681-422A-9528-3E8CE301B837}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -13155,6 +16241,26 @@ Global {2B29A699-1D65-463A-8250-A2CE81D019C9}.Debug|x64.Build.0 = Debug|Any CPU {2B29A699-1D65-463A-8250-A2CE81D019C9}.Debug|x86.ActiveCfg = Debug|Any CPU {2B29A699-1D65-463A-8250-A2CE81D019C9}.Debug|x86.Build.0 = Debug|Any CPU + {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka|Any CPU.Build.0 = Release|Any CPU + {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka|ARM.ActiveCfg = Release|Any CPU + {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka|ARM.Build.0 = Release|Any CPU + {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka|ARM64.Build.0 = Release|Any CPU + {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka|x64.ActiveCfg = Release|Any CPU + {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka|x64.Build.0 = Release|Any CPU + {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka|x86.ActiveCfg = Release|Any CPU + {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka|x86.Build.0 = Release|Any CPU {2B29A699-1D65-463A-8250-A2CE81D019C9}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {2B29A699-1D65-463A-8250-A2CE81D019C9}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {2B29A699-1D65-463A-8250-A2CE81D019C9}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -13235,6 +16341,26 @@ Global {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Debug|x64.Build.0 = Debug|Any CPU {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Debug|x86.ActiveCfg = Debug|Any CPU {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Debug|x86.Build.0 = Debug|Any CPU + {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka|Any CPU.Build.0 = Release|Any CPU + {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka|ARM.ActiveCfg = Release|Any CPU + {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka|ARM.Build.0 = Release|Any CPU + {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka|ARM64.Build.0 = Release|Any CPU + {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka|x64.ActiveCfg = Release|Any CPU + {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka|x64.Build.0 = Release|Any CPU + {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka|x86.ActiveCfg = Release|Any CPU + {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka|x86.Build.0 = Release|Any CPU {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -13315,6 +16441,26 @@ Global {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Debug|x64.Build.0 = Debug|Any CPU {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Debug|x86.ActiveCfg = Debug|Any CPU {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Debug|x86.Build.0 = Debug|Any CPU + {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka|Any CPU.Build.0 = Release|Any CPU + {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka|ARM.ActiveCfg = Release|Any CPU + {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka|ARM.Build.0 = Release|Any CPU + {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka|ARM64.Build.0 = Release|Any CPU + {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka|x64.ActiveCfg = Release|Any CPU + {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka|x64.Build.0 = Release|Any CPU + {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka|x86.ActiveCfg = Release|Any CPU + {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka|x86.Build.0 = Release|Any CPU {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -13395,6 +16541,26 @@ Global {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Debug|x64.Build.0 = Debug|Any CPU {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Debug|x86.ActiveCfg = Debug|Any CPU {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Debug|x86.Build.0 = Debug|Any CPU + {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka|Any CPU.Build.0 = Release|Any CPU + {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka|ARM.ActiveCfg = Release|Any CPU + {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka|ARM.Build.0 = Release|Any CPU + {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka|ARM64.Build.0 = Release|Any CPU + {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka|x64.ActiveCfg = Release|Any CPU + {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka|x64.Build.0 = Release|Any CPU + {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka|x86.ActiveCfg = Release|Any CPU + {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka|x86.Build.0 = Release|Any CPU {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -13475,6 +16641,26 @@ Global {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Debug|x64.Build.0 = Debug|Any CPU {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Debug|x86.ActiveCfg = Debug|Any CPU {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Debug|x86.Build.0 = Debug|Any CPU + {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka|Any CPU.Build.0 = Release|Any CPU + {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka|ARM.ActiveCfg = Release|Any CPU + {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka|ARM.Build.0 = Release|Any CPU + {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka|ARM64.Build.0 = Release|Any CPU + {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka|x64.ActiveCfg = Release|Any CPU + {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka|x64.Build.0 = Release|Any CPU + {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka|x86.ActiveCfg = Release|Any CPU + {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka|x86.Build.0 = Release|Any CPU {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -13555,6 +16741,26 @@ Global {A248FF61-94E5-428C-B30C-25CB433C5F53}.Debug|x64.Build.0 = Debug|Any CPU {A248FF61-94E5-428C-B30C-25CB433C5F53}.Debug|x86.ActiveCfg = Debug|Any CPU {A248FF61-94E5-428C-B30C-25CB433C5F53}.Debug|x86.Build.0 = Debug|Any CPU + {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka|Any CPU.Build.0 = Release|Any CPU + {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka|ARM.ActiveCfg = Release|Any CPU + {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka|ARM.Build.0 = Release|Any CPU + {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka|ARM64.Build.0 = Release|Any CPU + {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka|x64.ActiveCfg = Release|Any CPU + {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka|x64.Build.0 = Release|Any CPU + {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka|x86.ActiveCfg = Release|Any CPU + {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka|x86.Build.0 = Release|Any CPU {A248FF61-94E5-428C-B30C-25CB433C5F53}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {A248FF61-94E5-428C-B30C-25CB433C5F53}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {A248FF61-94E5-428C-B30C-25CB433C5F53}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -13635,6 +16841,26 @@ Global {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Debug|x64.Build.0 = Debug|Any CPU {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Debug|x86.ActiveCfg = Debug|Any CPU {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Debug|x86.Build.0 = Debug|Any CPU + {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka|Any CPU.Build.0 = Release|Any CPU + {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka|ARM.ActiveCfg = Release|Any CPU + {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka|ARM.Build.0 = Release|Any CPU + {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka|ARM64.Build.0 = Release|Any CPU + {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka|x64.ActiveCfg = Release|Any CPU + {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka|x64.Build.0 = Release|Any CPU + {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka|x86.ActiveCfg = Release|Any CPU + {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka|x86.Build.0 = Release|Any CPU {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -13713,6 +16939,22 @@ Global {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Debug|x64.Build.0 = Debug|x64 {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Debug|x86.ActiveCfg = Debug|Win32 {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Debug|x86.Build.0 = Debug|Win32 + {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Win32 + {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Eureka_Debug|Any CPU.Build.0 = Debug|Win32 + {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Eureka_Debug|ARM.ActiveCfg = Debug|Win32 + {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Eureka_Debug|ARM64.ActiveCfg = Debug|Win32 + {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Eureka_Debug|x64.ActiveCfg = Debug|x64 + {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Eureka_Debug|x64.Build.0 = Debug|x64 + {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Eureka_Debug|x86.ActiveCfg = Debug|Win32 + {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Eureka_Debug|x86.Build.0 = Debug|Win32 + {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Eureka|Any CPU.ActiveCfg = Debug|Win32 + {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Eureka|Any CPU.Build.0 = Debug|Win32 + {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Eureka|ARM.ActiveCfg = Release|Win32 + {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Eureka|ARM64.ActiveCfg = Release|Win32 + {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Eureka|x64.ActiveCfg = Release|x64 + {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Eureka|x64.Build.0 = Release|x64 + {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Eureka|x86.ActiveCfg = Release|Win32 + {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Eureka|x86.Build.0 = Release|Win32 {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Release 4.0|Any CPU.ActiveCfg = Release|x64 {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Release 4.0|Any CPU.Build.0 = Release|x64 {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Release 4.0|ARM.ActiveCfg = Release|x64 @@ -13791,6 +17033,26 @@ Global {B60C695C-61E8-4091-B506-4C45349C04AA}.Debug|x64.Build.0 = Debug|Any CPU {B60C695C-61E8-4091-B506-4C45349C04AA}.Debug|x86.ActiveCfg = Debug|Any CPU {B60C695C-61E8-4091-B506-4C45349C04AA}.Debug|x86.Build.0 = Debug|Any CPU + {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka|Any CPU.Build.0 = Release|Any CPU + {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka|ARM.ActiveCfg = Release|Any CPU + {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka|ARM.Build.0 = Release|Any CPU + {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka|ARM64.Build.0 = Release|Any CPU + {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka|x64.ActiveCfg = Release|Any CPU + {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka|x64.Build.0 = Release|Any CPU + {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka|x86.ActiveCfg = Release|Any CPU + {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka|x86.Build.0 = Release|Any CPU {B60C695C-61E8-4091-B506-4C45349C04AA}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {B60C695C-61E8-4091-B506-4C45349C04AA}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {B60C695C-61E8-4091-B506-4C45349C04AA}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -13871,6 +17133,26 @@ Global {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Debug|x64.Build.0 = Debug|Any CPU {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Debug|x86.ActiveCfg = Debug|Any CPU {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Debug|x86.Build.0 = Debug|Any CPU + {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka|Any CPU.Build.0 = Release|Any CPU + {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka|ARM.ActiveCfg = Release|Any CPU + {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka|ARM.Build.0 = Release|Any CPU + {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka|ARM64.Build.0 = Release|Any CPU + {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka|x64.ActiveCfg = Release|Any CPU + {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka|x64.Build.0 = Release|Any CPU + {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka|x86.ActiveCfg = Release|Any CPU + {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka|x86.Build.0 = Release|Any CPU {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -13951,6 +17233,26 @@ Global {1754F846-4763-4000-807F-C7BFAA145DB2}.Debug|x64.Build.0 = Debug|Any CPU {1754F846-4763-4000-807F-C7BFAA145DB2}.Debug|x86.ActiveCfg = Debug|Any CPU {1754F846-4763-4000-807F-C7BFAA145DB2}.Debug|x86.Build.0 = Debug|Any CPU + {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka|Any CPU.Build.0 = Release|Any CPU + {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka|ARM.ActiveCfg = Release|Any CPU + {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka|ARM.Build.0 = Release|Any CPU + {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka|ARM64.Build.0 = Release|Any CPU + {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka|x64.ActiveCfg = Release|Any CPU + {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka|x64.Build.0 = Release|Any CPU + {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka|x86.ActiveCfg = Release|Any CPU + {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka|x86.Build.0 = Release|Any CPU {1754F846-4763-4000-807F-C7BFAA145DB2}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {1754F846-4763-4000-807F-C7BFAA145DB2}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {1754F846-4763-4000-807F-C7BFAA145DB2}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -14031,6 +17333,26 @@ Global {4C045668-9E5A-447A-A3B8-106C872C1039}.Debug|x64.Build.0 = Debug|Any CPU {4C045668-9E5A-447A-A3B8-106C872C1039}.Debug|x86.ActiveCfg = Debug|Any CPU {4C045668-9E5A-447A-A3B8-106C872C1039}.Debug|x86.Build.0 = Debug|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka|Any CPU.Build.0 = Release|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka|ARM.ActiveCfg = Release|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka|ARM.Build.0 = Release|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka|ARM64.Build.0 = Release|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka|x64.ActiveCfg = Release|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka|x64.Build.0 = Release|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka|x86.ActiveCfg = Release|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka|x86.Build.0 = Release|Any CPU {4C045668-9E5A-447A-A3B8-106C872C1039}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {4C045668-9E5A-447A-A3B8-106C872C1039}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {4C045668-9E5A-447A-A3B8-106C872C1039}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -14110,6 +17432,25 @@ Global {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Debug|x64.Build.0 = Debug|Any CPU {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Debug|x86.ActiveCfg = Debug|Any CPU {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Debug|x86.Build.0 = Debug|Any CPU + {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Eureka|Any CPU.Build.0 = Release|Any CPU + {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Eureka|ARM.ActiveCfg = Release|Any CPU + {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Eureka|ARM.Build.0 = Release|Any CPU + {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Eureka|ARM64.Build.0 = Release|Any CPU + {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Eureka|x64.ActiveCfg = Release|Any CPU + {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Eureka|x64.Build.0 = Release|Any CPU + {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Eureka|x86.ActiveCfg = Release|Any CPU + {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Eureka|x86.Build.0 = Release|Any CPU {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -14190,6 +17531,26 @@ Global {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Debug|x64.Build.0 = Debug|Any CPU {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Debug|x86.ActiveCfg = Debug|Any CPU {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Debug|x86.Build.0 = Debug|Any CPU + {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka|Any CPU.Build.0 = Release|Any CPU + {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka|ARM.ActiveCfg = Release|Any CPU + {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka|ARM.Build.0 = Release|Any CPU + {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka|ARM64.Build.0 = Release|Any CPU + {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka|x64.ActiveCfg = Release|Any CPU + {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka|x64.Build.0 = Release|Any CPU + {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka|x86.ActiveCfg = Release|Any CPU + {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka|x86.Build.0 = Release|Any CPU {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -14270,6 +17631,26 @@ Global {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Debug|x64.Build.0 = Debug|Any CPU {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Debug|x86.ActiveCfg = Debug|Any CPU {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Debug|x86.Build.0 = Debug|Any CPU + {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka|Any CPU.Build.0 = Release|Any CPU + {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka|ARM.ActiveCfg = Release|Any CPU + {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka|ARM.Build.0 = Release|Any CPU + {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka|ARM64.Build.0 = Release|Any CPU + {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka|x64.ActiveCfg = Release|Any CPU + {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka|x64.Build.0 = Release|Any CPU + {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka|x86.ActiveCfg = Release|Any CPU + {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka|x86.Build.0 = Release|Any CPU {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -14350,6 +17731,26 @@ Global {44908607-2E91-4713-821E-C35E25430BA0}.Debug|x64.Build.0 = Debug|Any CPU {44908607-2E91-4713-821E-C35E25430BA0}.Debug|x86.ActiveCfg = Debug|Any CPU {44908607-2E91-4713-821E-C35E25430BA0}.Debug|x86.Build.0 = Debug|Any CPU + {44908607-2E91-4713-821E-C35E25430BA0}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {44908607-2E91-4713-821E-C35E25430BA0}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {44908607-2E91-4713-821E-C35E25430BA0}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {44908607-2E91-4713-821E-C35E25430BA0}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {44908607-2E91-4713-821E-C35E25430BA0}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {44908607-2E91-4713-821E-C35E25430BA0}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {44908607-2E91-4713-821E-C35E25430BA0}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {44908607-2E91-4713-821E-C35E25430BA0}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {44908607-2E91-4713-821E-C35E25430BA0}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {44908607-2E91-4713-821E-C35E25430BA0}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {44908607-2E91-4713-821E-C35E25430BA0}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {44908607-2E91-4713-821E-C35E25430BA0}.Eureka|Any CPU.Build.0 = Release|Any CPU + {44908607-2E91-4713-821E-C35E25430BA0}.Eureka|ARM.ActiveCfg = Release|Any CPU + {44908607-2E91-4713-821E-C35E25430BA0}.Eureka|ARM.Build.0 = Release|Any CPU + {44908607-2E91-4713-821E-C35E25430BA0}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {44908607-2E91-4713-821E-C35E25430BA0}.Eureka|ARM64.Build.0 = Release|Any CPU + {44908607-2E91-4713-821E-C35E25430BA0}.Eureka|x64.ActiveCfg = Release|Any CPU + {44908607-2E91-4713-821E-C35E25430BA0}.Eureka|x64.Build.0 = Release|Any CPU + {44908607-2E91-4713-821E-C35E25430BA0}.Eureka|x86.ActiveCfg = Release|Any CPU + {44908607-2E91-4713-821E-C35E25430BA0}.Eureka|x86.Build.0 = Release|Any CPU {44908607-2E91-4713-821E-C35E25430BA0}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {44908607-2E91-4713-821E-C35E25430BA0}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {44908607-2E91-4713-821E-C35E25430BA0}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -14429,6 +17830,24 @@ Global {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Debug|x64.Build.0 = Debug|Any CPU {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Debug|x86.ActiveCfg = Debug|Any CPU {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Debug|x86.Build.0 = Debug|Any CPU + {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Eureka|ARM.ActiveCfg = Release|Any CPU + {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Eureka|ARM.Build.0 = Release|Any CPU + {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Eureka|ARM64.Build.0 = Release|Any CPU + {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Eureka|x64.ActiveCfg = Release|Any CPU + {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Eureka|x64.Build.0 = Release|Any CPU + {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Eureka|x86.ActiveCfg = Release|Any CPU + {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Eureka|x86.Build.0 = Release|Any CPU {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -14509,6 +17928,26 @@ Global {69168924-9AA8-447D-AD64-F07DBF4F0909}.Debug|x64.Build.0 = Debug|Any CPU {69168924-9AA8-447D-AD64-F07DBF4F0909}.Debug|x86.ActiveCfg = Debug|Any CPU {69168924-9AA8-447D-AD64-F07DBF4F0909}.Debug|x86.Build.0 = Debug|Any CPU + {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka|Any CPU.Build.0 = Release|Any CPU + {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka|ARM.ActiveCfg = Release|Any CPU + {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka|ARM.Build.0 = Release|Any CPU + {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka|ARM64.Build.0 = Release|Any CPU + {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka|x64.ActiveCfg = Release|Any CPU + {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka|x64.Build.0 = Release|Any CPU + {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka|x86.ActiveCfg = Release|Any CPU + {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka|x86.Build.0 = Release|Any CPU {69168924-9AA8-447D-AD64-F07DBF4F0909}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {69168924-9AA8-447D-AD64-F07DBF4F0909}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {69168924-9AA8-447D-AD64-F07DBF4F0909}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -14589,6 +18028,26 @@ Global {99081C0E-065C-4D68-BF60-F82330CCA02D}.Debug|x64.Build.0 = Debug|Any CPU {99081C0E-065C-4D68-BF60-F82330CCA02D}.Debug|x86.ActiveCfg = Debug|Any CPU {99081C0E-065C-4D68-BF60-F82330CCA02D}.Debug|x86.Build.0 = Debug|Any CPU + {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka|Any CPU.Build.0 = Release|Any CPU + {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka|ARM.ActiveCfg = Release|Any CPU + {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka|ARM.Build.0 = Release|Any CPU + {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka|ARM64.Build.0 = Release|Any CPU + {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka|x64.ActiveCfg = Release|Any CPU + {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka|x64.Build.0 = Release|Any CPU + {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka|x86.ActiveCfg = Release|Any CPU + {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka|x86.Build.0 = Release|Any CPU {99081C0E-065C-4D68-BF60-F82330CCA02D}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {99081C0E-065C-4D68-BF60-F82330CCA02D}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {99081C0E-065C-4D68-BF60-F82330CCA02D}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -14669,6 +18128,24 @@ Global {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Debug|x64.Build.0 = Debug|Any CPU {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Debug|x86.ActiveCfg = Debug|Any CPU {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Debug|x86.Build.0 = Debug|Any CPU + {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Eureka|ARM.ActiveCfg = Release|Any CPU + {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Eureka|ARM.Build.0 = Release|Any CPU + {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Eureka|ARM64.Build.0 = Release|Any CPU + {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Eureka|x64.ActiveCfg = Release|Any CPU + {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Eureka|x64.Build.0 = Release|Any CPU + {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Eureka|x86.ActiveCfg = Release|Any CPU + {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Eureka|x86.Build.0 = Release|Any CPU {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -14749,6 +18226,26 @@ Global {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Debug|x64.Build.0 = Debug|Any CPU {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Debug|x86.ActiveCfg = Debug|Any CPU {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Debug|x86.Build.0 = Debug|Any CPU + {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka|Any CPU.Build.0 = Release|Any CPU + {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka|ARM.ActiveCfg = Release|Any CPU + {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka|ARM.Build.0 = Release|Any CPU + {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka|ARM64.Build.0 = Release|Any CPU + {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka|x64.ActiveCfg = Release|Any CPU + {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka|x64.Build.0 = Release|Any CPU + {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka|x86.ActiveCfg = Release|Any CPU + {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka|x86.Build.0 = Release|Any CPU {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -14829,6 +18326,26 @@ Global {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Debug|x64.Build.0 = Debug|Any CPU {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Debug|x86.ActiveCfg = Debug|Any CPU {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Debug|x86.Build.0 = Debug|Any CPU + {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka|Any CPU.Build.0 = Release|Any CPU + {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka|ARM.ActiveCfg = Release|Any CPU + {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka|ARM.Build.0 = Release|Any CPU + {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka|ARM64.Build.0 = Release|Any CPU + {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka|x64.ActiveCfg = Release|Any CPU + {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka|x64.Build.0 = Release|Any CPU + {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka|x86.ActiveCfg = Release|Any CPU + {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka|x86.Build.0 = Release|Any CPU {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -14909,6 +18426,26 @@ Global {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Debug|x64.Build.0 = Debug|Any CPU {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Debug|x86.ActiveCfg = Debug|Any CPU {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Debug|x86.Build.0 = Debug|Any CPU + {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka|Any CPU.Build.0 = Release|Any CPU + {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka|ARM.ActiveCfg = Release|Any CPU + {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka|ARM.Build.0 = Release|Any CPU + {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka|ARM64.Build.0 = Release|Any CPU + {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka|x64.ActiveCfg = Release|Any CPU + {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka|x64.Build.0 = Release|Any CPU + {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka|x86.ActiveCfg = Release|Any CPU + {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka|x86.Build.0 = Release|Any CPU {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -14989,6 +18526,26 @@ Global {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Debug|x64.Build.0 = Debug|Any CPU {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Debug|x86.ActiveCfg = Debug|Any CPU {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Debug|x86.Build.0 = Debug|Any CPU + {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka|Any CPU.Build.0 = Release|Any CPU + {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka|ARM.ActiveCfg = Release|Any CPU + {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka|ARM.Build.0 = Release|Any CPU + {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka|ARM64.Build.0 = Release|Any CPU + {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka|x64.ActiveCfg = Release|Any CPU + {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka|x64.Build.0 = Release|Any CPU + {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka|x86.ActiveCfg = Release|Any CPU + {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka|x86.Build.0 = Release|Any CPU {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -15069,6 +18626,26 @@ Global {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Debug|x64.Build.0 = Debug|Any CPU {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Debug|x86.ActiveCfg = Debug|Any CPU {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Debug|x86.Build.0 = Debug|Any CPU + {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka|Any CPU.Build.0 = Release|Any CPU + {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka|ARM.ActiveCfg = Release|Any CPU + {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka|ARM.Build.0 = Release|Any CPU + {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka|ARM64.Build.0 = Release|Any CPU + {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka|x64.ActiveCfg = Release|Any CPU + {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka|x64.Build.0 = Release|Any CPU + {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka|x86.ActiveCfg = Release|Any CPU + {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka|x86.Build.0 = Release|Any CPU {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -15149,6 +18726,26 @@ Global {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Debug|x64.Build.0 = Debug|Any CPU {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Debug|x86.ActiveCfg = Debug|Any CPU {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Debug|x86.Build.0 = Debug|Any CPU + {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka|Any CPU.Build.0 = Release|Any CPU + {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka|ARM.ActiveCfg = Release|Any CPU + {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka|ARM.Build.0 = Release|Any CPU + {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka|ARM64.Build.0 = Release|Any CPU + {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka|x64.ActiveCfg = Release|Any CPU + {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka|x64.Build.0 = Release|Any CPU + {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka|x86.ActiveCfg = Release|Any CPU + {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka|x86.Build.0 = Release|Any CPU {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -15229,6 +18826,26 @@ Global {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Debug|x64.Build.0 = Debug|Any CPU {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Debug|x86.ActiveCfg = Debug|Any CPU {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Debug|x86.Build.0 = Debug|Any CPU + {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka|Any CPU.Build.0 = Release|Any CPU + {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka|ARM.ActiveCfg = Release|Any CPU + {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka|ARM.Build.0 = Release|Any CPU + {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka|ARM64.Build.0 = Release|Any CPU + {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka|x64.ActiveCfg = Release|Any CPU + {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka|x64.Build.0 = Release|Any CPU + {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka|x86.ActiveCfg = Release|Any CPU + {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka|x86.Build.0 = Release|Any CPU {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -15309,6 +18926,26 @@ Global {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Debug|x64.Build.0 = Debug|Any CPU {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Debug|x86.ActiveCfg = Debug|Any CPU {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Debug|x86.Build.0 = Debug|Any CPU + {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka|Any CPU.Build.0 = Release|Any CPU + {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka|ARM.ActiveCfg = Release|Any CPU + {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka|ARM.Build.0 = Release|Any CPU + {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka|ARM64.Build.0 = Release|Any CPU + {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka|x64.ActiveCfg = Release|Any CPU + {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka|x64.Build.0 = Release|Any CPU + {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka|x86.ActiveCfg = Release|Any CPU + {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka|x86.Build.0 = Release|Any CPU {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -15389,6 +19026,26 @@ Global {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Debug|x64.Build.0 = Debug|Any CPU {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Debug|x86.ActiveCfg = Debug|Any CPU {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Debug|x86.Build.0 = Debug|Any CPU + {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka|Any CPU.Build.0 = Release|Any CPU + {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka|ARM.ActiveCfg = Release|Any CPU + {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka|ARM.Build.0 = Release|Any CPU + {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka|ARM64.Build.0 = Release|Any CPU + {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka|x64.ActiveCfg = Release|Any CPU + {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka|x64.Build.0 = Release|Any CPU + {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka|x86.ActiveCfg = Release|Any CPU + {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka|x86.Build.0 = Release|Any CPU {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -15469,6 +19126,26 @@ Global {949857A0-777D-4A32-8668-7163E404D800}.Debug|x64.Build.0 = Debug|Any CPU {949857A0-777D-4A32-8668-7163E404D800}.Debug|x86.ActiveCfg = Debug|Any CPU {949857A0-777D-4A32-8668-7163E404D800}.Debug|x86.Build.0 = Debug|Any CPU + {949857A0-777D-4A32-8668-7163E404D800}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {949857A0-777D-4A32-8668-7163E404D800}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {949857A0-777D-4A32-8668-7163E404D800}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {949857A0-777D-4A32-8668-7163E404D800}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {949857A0-777D-4A32-8668-7163E404D800}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {949857A0-777D-4A32-8668-7163E404D800}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {949857A0-777D-4A32-8668-7163E404D800}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {949857A0-777D-4A32-8668-7163E404D800}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {949857A0-777D-4A32-8668-7163E404D800}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {949857A0-777D-4A32-8668-7163E404D800}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {949857A0-777D-4A32-8668-7163E404D800}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {949857A0-777D-4A32-8668-7163E404D800}.Eureka|Any CPU.Build.0 = Release|Any CPU + {949857A0-777D-4A32-8668-7163E404D800}.Eureka|ARM.ActiveCfg = Release|Any CPU + {949857A0-777D-4A32-8668-7163E404D800}.Eureka|ARM.Build.0 = Release|Any CPU + {949857A0-777D-4A32-8668-7163E404D800}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {949857A0-777D-4A32-8668-7163E404D800}.Eureka|ARM64.Build.0 = Release|Any CPU + {949857A0-777D-4A32-8668-7163E404D800}.Eureka|x64.ActiveCfg = Release|Any CPU + {949857A0-777D-4A32-8668-7163E404D800}.Eureka|x64.Build.0 = Release|Any CPU + {949857A0-777D-4A32-8668-7163E404D800}.Eureka|x86.ActiveCfg = Release|Any CPU + {949857A0-777D-4A32-8668-7163E404D800}.Eureka|x86.Build.0 = Release|Any CPU {949857A0-777D-4A32-8668-7163E404D800}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {949857A0-777D-4A32-8668-7163E404D800}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {949857A0-777D-4A32-8668-7163E404D800}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -15549,6 +19226,26 @@ Global {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Debug|x64.Build.0 = Debug|Any CPU {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Debug|x86.ActiveCfg = Debug|Any CPU {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Debug|x86.Build.0 = Debug|Any CPU + {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka|Any CPU.Build.0 = Release|Any CPU + {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka|ARM.ActiveCfg = Release|Any CPU + {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka|ARM.Build.0 = Release|Any CPU + {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka|ARM64.Build.0 = Release|Any CPU + {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka|x64.ActiveCfg = Release|Any CPU + {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka|x64.Build.0 = Release|Any CPU + {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka|x86.ActiveCfg = Release|Any CPU + {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka|x86.Build.0 = Release|Any CPU {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -15629,6 +19326,26 @@ Global {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Debug|x64.Build.0 = Debug|Any CPU {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Debug|x86.ActiveCfg = Debug|Any CPU {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Debug|x86.Build.0 = Debug|Any CPU + {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka|Any CPU.Build.0 = Release|Any CPU + {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka|ARM.ActiveCfg = Release|Any CPU + {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka|ARM.Build.0 = Release|Any CPU + {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka|ARM64.Build.0 = Release|Any CPU + {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka|x64.ActiveCfg = Release|Any CPU + {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka|x64.Build.0 = Release|Any CPU + {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka|x86.ActiveCfg = Release|Any CPU + {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka|x86.Build.0 = Release|Any CPU {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -15709,6 +19426,26 @@ Global {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Debug|x64.Build.0 = Debug|Any CPU {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Debug|x86.ActiveCfg = Debug|Any CPU {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Debug|x86.Build.0 = Debug|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka|Any CPU.Build.0 = Release|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka|ARM.ActiveCfg = Release|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka|ARM.Build.0 = Release|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka|ARM64.Build.0 = Release|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka|x64.ActiveCfg = Release|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka|x64.Build.0 = Release|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka|x86.ActiveCfg = Release|Any CPU + {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka|x86.Build.0 = Release|Any CPU {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -15789,6 +19526,26 @@ Global {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Debug|x64.Build.0 = Debug|Any CPU {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Debug|x86.ActiveCfg = Debug|Any CPU {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Debug|x86.Build.0 = Debug|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka|Any CPU.Build.0 = Release|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka|ARM.ActiveCfg = Release|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka|ARM.Build.0 = Release|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka|ARM64.Build.0 = Release|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka|x64.ActiveCfg = Release|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka|x64.Build.0 = Release|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka|x86.ActiveCfg = Release|Any CPU + {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka|x86.Build.0 = Release|Any CPU {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -15869,6 +19626,26 @@ Global {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Debug|x64.Build.0 = Debug|Any CPU {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Debug|x86.ActiveCfg = Debug|Any CPU {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Debug|x86.Build.0 = Debug|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka|Any CPU.Build.0 = Release|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka|ARM.ActiveCfg = Release|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka|ARM.Build.0 = Release|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka|ARM64.Build.0 = Release|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka|x64.ActiveCfg = Release|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka|x64.Build.0 = Release|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka|x86.ActiveCfg = Release|Any CPU + {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka|x86.Build.0 = Release|Any CPU {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -15949,6 +19726,26 @@ Global {DAE96F06-72CD-411D-90A3-9456AE79F699}.Debug|x64.Build.0 = Debug|Any CPU {DAE96F06-72CD-411D-90A3-9456AE79F699}.Debug|x86.ActiveCfg = Debug|Any CPU {DAE96F06-72CD-411D-90A3-9456AE79F699}.Debug|x86.Build.0 = Debug|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka|Any CPU.Build.0 = Release|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka|ARM.ActiveCfg = Release|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka|ARM.Build.0 = Release|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka|ARM64.Build.0 = Release|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka|x64.ActiveCfg = Release|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka|x64.Build.0 = Release|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka|x86.ActiveCfg = Release|Any CPU + {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka|x86.Build.0 = Release|Any CPU {DAE96F06-72CD-411D-90A3-9456AE79F699}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {DAE96F06-72CD-411D-90A3-9456AE79F699}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {DAE96F06-72CD-411D-90A3-9456AE79F699}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -16029,6 +19826,26 @@ Global {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Debug|x64.Build.0 = Debug|Any CPU {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Debug|x86.ActiveCfg = Debug|Any CPU {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Debug|x86.Build.0 = Debug|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka|Any CPU.Build.0 = Release|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka|ARM.ActiveCfg = Release|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka|ARM.Build.0 = Release|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka|ARM64.Build.0 = Release|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka|x64.ActiveCfg = Release|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka|x64.Build.0 = Release|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka|x86.ActiveCfg = Release|Any CPU + {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka|x86.Build.0 = Release|Any CPU {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -16109,6 +19926,26 @@ Global {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Debug|x64.Build.0 = Debug|Any CPU {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Debug|x86.ActiveCfg = Debug|Any CPU {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Debug|x86.Build.0 = Debug|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka|Any CPU.Build.0 = Release|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka|ARM.ActiveCfg = Release|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka|ARM.Build.0 = Release|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka|ARM64.Build.0 = Release|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka|x64.ActiveCfg = Release|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka|x64.Build.0 = Release|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka|x86.ActiveCfg = Release|Any CPU + {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka|x86.Build.0 = Release|Any CPU {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -16189,6 +20026,26 @@ Global {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Debug|x64.Build.0 = Debug|Any CPU {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Debug|x86.ActiveCfg = Debug|Any CPU {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Debug|x86.Build.0 = Debug|Any CPU + {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka|Any CPU.ActiveCfg = Release 4.6.1|Any CPU + {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka|Any CPU.Build.0 = Release 4.6.1|Any CPU + {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka|ARM.ActiveCfg = Release 4.6.1|Any CPU + {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka|ARM.Build.0 = Release 4.6.1|Any CPU + {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka|ARM64.ActiveCfg = Release 4.6.1|Any CPU + {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka|ARM64.Build.0 = Release 4.6.1|Any CPU + {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka|x64.ActiveCfg = Release 4.6.1|Any CPU + {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka|x64.Build.0 = Release 4.6.1|Any CPU + {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka|x86.ActiveCfg = Release 4.6.1|Any CPU + {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka|x86.Build.0 = Release 4.6.1|Any CPU {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Release 4.0|Any CPU.ActiveCfg = Release 4.0|Any CPU {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Release 4.0|Any CPU.Build.0 = Release 4.0|Any CPU {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Release 4.0|ARM.ActiveCfg = Release 4.0|Any CPU @@ -16269,6 +20126,26 @@ Global {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Debug|x64.Build.0 = Debug|Any CPU {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Debug|x86.ActiveCfg = Debug|Any CPU {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Debug|x86.Build.0 = Debug|Any CPU + {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka|Any CPU.Build.0 = Release|Any CPU + {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka|ARM.ActiveCfg = Release|Any CPU + {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka|ARM.Build.0 = Release|Any CPU + {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka|ARM64.Build.0 = Release|Any CPU + {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka|x64.ActiveCfg = Release|Any CPU + {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka|x64.Build.0 = Release|Any CPU + {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka|x86.ActiveCfg = Release|Any CPU + {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka|x86.Build.0 = Release|Any CPU {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -16349,6 +20226,26 @@ Global {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Debug|x64.Build.0 = Debug|Any CPU {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Debug|x86.ActiveCfg = Debug|Any CPU {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Debug|x86.Build.0 = Debug|Any CPU + {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka|Any CPU.Build.0 = Release|Any CPU + {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka|ARM.ActiveCfg = Release|Any CPU + {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka|ARM.Build.0 = Release|Any CPU + {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka|ARM64.Build.0 = Release|Any CPU + {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka|x64.ActiveCfg = Release|Any CPU + {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka|x64.Build.0 = Release|Any CPU + {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka|x86.ActiveCfg = Release|Any CPU + {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka|x86.Build.0 = Release|Any CPU {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -16429,6 +20326,26 @@ Global {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Debug|x64.Build.0 = Debug|Any CPU {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Debug|x86.ActiveCfg = Debug|Any CPU {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Debug|x86.Build.0 = Debug|Any CPU + {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka|Any CPU.Build.0 = Release|Any CPU + {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka|ARM.ActiveCfg = Release|Any CPU + {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka|ARM.Build.0 = Release|Any CPU + {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka|ARM64.Build.0 = Release|Any CPU + {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka|x64.ActiveCfg = Release|Any CPU + {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka|x64.Build.0 = Release|Any CPU + {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka|x86.ActiveCfg = Release|Any CPU + {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka|x86.Build.0 = Release|Any CPU {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -16509,6 +20426,26 @@ Global {6B13E186-ADE2-4D97-9643-8132E00FC207}.Debug|x64.Build.0 = Debug|Any CPU {6B13E186-ADE2-4D97-9643-8132E00FC207}.Debug|x86.ActiveCfg = Debug|Any CPU {6B13E186-ADE2-4D97-9643-8132E00FC207}.Debug|x86.Build.0 = Debug|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka|Any CPU.Build.0 = Release|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka|ARM.ActiveCfg = Release|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka|ARM.Build.0 = Release|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka|ARM64.Build.0 = Release|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka|x64.ActiveCfg = Release|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka|x64.Build.0 = Release|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka|x86.ActiveCfg = Release|Any CPU + {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka|x86.Build.0 = Release|Any CPU {6B13E186-ADE2-4D97-9643-8132E00FC207}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {6B13E186-ADE2-4D97-9643-8132E00FC207}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {6B13E186-ADE2-4D97-9643-8132E00FC207}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -16589,6 +20526,26 @@ Global {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Debug|x64.Build.0 = Debug|Any CPU {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Debug|x86.ActiveCfg = Debug|Any CPU {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Debug|x86.Build.0 = Debug|Any CPU + {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka|Any CPU.Build.0 = Release|Any CPU + {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka|ARM.ActiveCfg = Release|Any CPU + {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka|ARM.Build.0 = Release|Any CPU + {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka|ARM64.Build.0 = Release|Any CPU + {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka|x64.ActiveCfg = Release|Any CPU + {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka|x64.Build.0 = Release|Any CPU + {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka|x86.ActiveCfg = Release|Any CPU + {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka|x86.Build.0 = Release|Any CPU {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -16669,6 +20626,26 @@ Global {6C784296-CCF9-469C-A7C1-4C13305E1203}.Debug|x64.Build.0 = Debug|Any CPU {6C784296-CCF9-469C-A7C1-4C13305E1203}.Debug|x86.ActiveCfg = Debug|Any CPU {6C784296-CCF9-469C-A7C1-4C13305E1203}.Debug|x86.Build.0 = Debug|Any CPU + {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka|Any CPU.Build.0 = Release|Any CPU + {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka|ARM.ActiveCfg = Release|Any CPU + {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka|ARM.Build.0 = Release|Any CPU + {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka|ARM64.Build.0 = Release|Any CPU + {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka|x64.ActiveCfg = Release|Any CPU + {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka|x64.Build.0 = Release|Any CPU + {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka|x86.ActiveCfg = Release|Any CPU + {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka|x86.Build.0 = Release|Any CPU {6C784296-CCF9-469C-A7C1-4C13305E1203}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {6C784296-CCF9-469C-A7C1-4C13305E1203}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {6C784296-CCF9-469C-A7C1-4C13305E1203}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -16749,6 +20726,26 @@ Global {C89C1866-C76B-401F-A232-40FC58065CBF}.Debug|x64.Build.0 = Debug|Any CPU {C89C1866-C76B-401F-A232-40FC58065CBF}.Debug|x86.ActiveCfg = Debug|Any CPU {C89C1866-C76B-401F-A232-40FC58065CBF}.Debug|x86.Build.0 = Debug|Any CPU + {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka|Any CPU.Build.0 = Release|Any CPU + {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka|ARM.ActiveCfg = Release|Any CPU + {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka|ARM.Build.0 = Release|Any CPU + {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka|ARM64.Build.0 = Release|Any CPU + {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka|x64.ActiveCfg = Release|Any CPU + {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka|x64.Build.0 = Release|Any CPU + {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka|x86.ActiveCfg = Release|Any CPU + {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka|x86.Build.0 = Release|Any CPU {C89C1866-C76B-401F-A232-40FC58065CBF}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {C89C1866-C76B-401F-A232-40FC58065CBF}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {C89C1866-C76B-401F-A232-40FC58065CBF}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -16829,6 +20826,26 @@ Global {859A766B-78AD-484E-9BF2-2CE0FE288894}.Debug|x64.Build.0 = Debug|Any CPU {859A766B-78AD-484E-9BF2-2CE0FE288894}.Debug|x86.ActiveCfg = Debug|Any CPU {859A766B-78AD-484E-9BF2-2CE0FE288894}.Debug|x86.Build.0 = Debug|Any CPU + {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka|Any CPU.Build.0 = Release|Any CPU + {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka|ARM.ActiveCfg = Release|Any CPU + {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka|ARM.Build.0 = Release|Any CPU + {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka|ARM64.Build.0 = Release|Any CPU + {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka|x64.ActiveCfg = Release|Any CPU + {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka|x64.Build.0 = Release|Any CPU + {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka|x86.ActiveCfg = Release|Any CPU + {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka|x86.Build.0 = Release|Any CPU {859A766B-78AD-484E-9BF2-2CE0FE288894}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {859A766B-78AD-484E-9BF2-2CE0FE288894}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {859A766B-78AD-484E-9BF2-2CE0FE288894}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -16909,6 +20926,26 @@ Global {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Debug|x64.Build.0 = Debug|Any CPU {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Debug|x86.ActiveCfg = Debug|Any CPU {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Debug|x86.Build.0 = Debug|Any CPU + {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka|Any CPU.Build.0 = Release|Any CPU + {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka|ARM.ActiveCfg = Release|Any CPU + {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka|ARM.Build.0 = Release|Any CPU + {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka|ARM64.Build.0 = Release|Any CPU + {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka|x64.ActiveCfg = Release|Any CPU + {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka|x64.Build.0 = Release|Any CPU + {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka|x86.ActiveCfg = Release|Any CPU + {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka|x86.Build.0 = Release|Any CPU {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -16987,6 +21024,22 @@ Global {0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Debug|x64.Build.0 = Debug|x64 {0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Debug|x86.ActiveCfg = Debug|Win32 {0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Debug|x86.Build.0 = Debug|Win32 + {0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Win32 + {0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Eureka_Debug|Any CPU.Build.0 = Debug|Win32 + {0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Eureka_Debug|ARM.ActiveCfg = Debug|Win32 + {0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Eureka_Debug|ARM64.ActiveCfg = Debug|Win32 + {0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Eureka_Debug|x64.ActiveCfg = Debug|x64 + {0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Eureka_Debug|x64.Build.0 = Debug|x64 + {0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Eureka_Debug|x86.ActiveCfg = Debug|Win32 + {0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Eureka_Debug|x86.Build.0 = Debug|Win32 + {0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Eureka|Any CPU.ActiveCfg = Debug|Win32 + {0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Eureka|Any CPU.Build.0 = Debug|Win32 + {0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Eureka|ARM.ActiveCfg = Release|Win32 + {0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Eureka|ARM64.ActiveCfg = Release|Win32 + {0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Eureka|x64.ActiveCfg = Release|x64 + {0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Eureka|x64.Build.0 = Release|x64 + {0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Eureka|x86.ActiveCfg = Release|Win32 + {0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Eureka|x86.Build.0 = Release|Win32 {0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Release 4.0|Any CPU.ActiveCfg = Release|x64 {0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Release 4.0|Any CPU.Build.0 = Release|x64 {0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Release 4.0|ARM.ActiveCfg = Release|x64 @@ -17065,6 +21118,26 @@ Global {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Debug|x64.Build.0 = Debug|Any CPU {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Debug|x86.ActiveCfg = Debug|Any CPU {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Debug|x86.Build.0 = Debug|Any CPU + {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka|Any CPU.Build.0 = Release|Any CPU + {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka|ARM.ActiveCfg = Release|Any CPU + {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka|ARM.Build.0 = Release|Any CPU + {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka|ARM64.Build.0 = Release|Any CPU + {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka|x64.ActiveCfg = Release|Any CPU + {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka|x64.Build.0 = Release|Any CPU + {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka|x86.ActiveCfg = Release|Any CPU + {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka|x86.Build.0 = Release|Any CPU {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -17145,6 +21218,26 @@ Global {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Debug|x64.Build.0 = Debug|Any CPU {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Debug|x86.ActiveCfg = Debug|Any CPU {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Debug|x86.Build.0 = Debug|Any CPU + {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka|Any CPU.Build.0 = Release|Any CPU + {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka|ARM.ActiveCfg = Release|Any CPU + {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka|ARM.Build.0 = Release|Any CPU + {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka|ARM64.Build.0 = Release|Any CPU + {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka|x64.ActiveCfg = Release|Any CPU + {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka|x64.Build.0 = Release|Any CPU + {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka|x86.ActiveCfg = Release|Any CPU + {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka|x86.Build.0 = Release|Any CPU {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -17223,6 +21316,22 @@ Global {D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Debug|x64.Build.0 = Debug|x64 {D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Debug|x86.ActiveCfg = Debug|Win32 {D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Debug|x86.Build.0 = Debug|Win32 + {D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Win32 + {D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Eureka_Debug|Any CPU.Build.0 = Debug|Win32 + {D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Eureka_Debug|ARM.ActiveCfg = Debug|Win32 + {D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Eureka_Debug|ARM64.ActiveCfg = Debug|Win32 + {D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Eureka_Debug|x64.ActiveCfg = Debug|x64 + {D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Eureka_Debug|x64.Build.0 = Debug|x64 + {D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Eureka_Debug|x86.ActiveCfg = Debug|Win32 + {D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Eureka_Debug|x86.Build.0 = Debug|Win32 + {D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Eureka|Any CPU.ActiveCfg = Debug|Win32 + {D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Eureka|Any CPU.Build.0 = Debug|Win32 + {D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Eureka|ARM.ActiveCfg = Release|Win32 + {D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Eureka|ARM64.ActiveCfg = Release|Win32 + {D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Eureka|x64.ActiveCfg = Release|x64 + {D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Eureka|x64.Build.0 = Release|x64 + {D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Eureka|x86.ActiveCfg = Release|Win32 + {D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Eureka|x86.Build.0 = Release|Win32 {D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Release 4.0|Any CPU.ActiveCfg = Release|x64 {D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Release 4.0|Any CPU.Build.0 = Release|x64 {D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Release 4.0|ARM.ActiveCfg = Release|x64 @@ -17301,6 +21410,26 @@ Global {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Debug|x64.Build.0 = Debug|Any CPU {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Debug|x86.ActiveCfg = Debug|Any CPU {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Debug|x86.Build.0 = Debug|Any CPU + {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU + {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU + {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU + {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU + {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU + {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU + {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka_Debug|x64.Build.0 = Debug|Any CPU + {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU + {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka_Debug|x86.Build.0 = Debug|Any CPU + {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka|Any CPU.ActiveCfg = Release|Any CPU + {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka|Any CPU.Build.0 = Release|Any CPU + {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka|ARM.ActiveCfg = Release|Any CPU + {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka|ARM.Build.0 = Release|Any CPU + {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka|ARM64.ActiveCfg = Release|Any CPU + {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka|ARM64.Build.0 = Release|Any CPU + {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka|x64.ActiveCfg = Release|Any CPU + {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka|x64.Build.0 = Release|Any CPU + {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka|x86.ActiveCfg = Release|Any CPU + {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka|x86.Build.0 = Release|Any CPU {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Release 4.0|Any CPU.Build.0 = Release|Any CPU {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Release 4.0|ARM.ActiveCfg = Release|Any CPU @@ -17536,12 +21665,12 @@ Global {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788} = {4EE6DBA1-71BC-49E2-8DC7-266487E61050} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {7986F7F4-A86A-4994-B1B6-0988D7F057B6} - BuildVersion_BuildVersioningStyle = None.None.Increment.DeltaBaseYearDayOfYear - BuildVersion_UpdateAssemblyVersion = True - BuildVersion_UpdateFileVersion = False - BuildVersion_StartDate = 2000/1/1 - BuildVersion_AssemblyInfoFilename = Properties\AssemblyInfo.cs BuildVersion_UseGlobalSettings = False + BuildVersion_AssemblyInfoFilename = Properties\AssemblyInfo.cs + BuildVersion_StartDate = 2000/1/1 + BuildVersion_UpdateFileVersion = False + BuildVersion_UpdateAssemblyVersion = True + BuildVersion_BuildVersioningStyle = None.None.Increment.DeltaBaseYearDayOfYear + SolutionGuid = {7986F7F4-A86A-4994-B1B6-0988D7F057B6} EndGlobalSection EndGlobal diff --git a/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev4.xlsx b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev4.xlsx Binary files differnew file mode 100644 index 000000000..7f9b01b2c --- /dev/null +++ b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev4.xlsx diff --git a/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev4_groups.xlsx b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev4_groups.xlsx Binary files differnew file mode 100644 index 000000000..8814872ef --- /dev/null +++ b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev4_groups.xlsx diff --git a/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev5.xlsx b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev5.xlsx Binary files differnew file mode 100644 index 000000000..8814872ef --- /dev/null +++ b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev5.xlsx diff --git a/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev7.xlsx b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev7.xlsx Binary files differnew file mode 100644 index 000000000..f7574efc4 --- /dev/null +++ b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev7.xlsx diff --git a/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev8.xlsx b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev8.xlsx Binary files differnew file mode 100644 index 000000000..f7574efc4 --- /dev/null +++ b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev8.xlsx diff --git a/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Program.cs b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Program.cs index 8735634ef..84a6c4094 100644 --- a/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Program.cs +++ b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Program.cs @@ -16,7 +16,7 @@ namespace Tango.EventsTypesGenerator { class Program { - private static string EVENTS_FILE = "Tango alarm events handling chart_Rev31.xlsx"; + private static string EVENTS_FILE = "Eureka BB alarm events handling chart_TS_and_X4_Rev8.xlsx"; private class ExcelEventType { diff --git a/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Tango.EventsTypesGenerator.csproj b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Tango.EventsTypesGenerator.csproj index 5881b521f..188794a23 100644 --- a/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Tango.EventsTypesGenerator.csproj +++ b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Tango.EventsTypesGenerator.csproj @@ -61,6 +61,21 @@ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> <None Include="App.config" /> + <None Include="Eureka BB alarm events handling chart_TS_and_X4_Rev4.xlsx"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="Eureka BB alarm events handling chart_TS_and_X4_Rev4_groups.xlsx"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="Eureka BB alarm events handling chart_TS_and_X4_Rev5.xlsx"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="Eureka BB alarm events handling chart_TS_and_X4_Rev7.xlsx"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="Eureka BB alarm events handling chart_TS_and_X4_Rev8.xlsx"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> <None Include="packages.config" /> </ItemGroup> <ItemGroup> diff --git a/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/JobHandler2.cs b/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/JobHandler2.cs index b4fc23c8e..608b015d8 100644 --- a/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/JobHandler2.cs +++ b/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/JobHandler2.cs @@ -13,7 +13,7 @@ namespace Tango.JobProgressTester.UI public class JobHandler2 : JobHandler { public JobHandler2(Action cancelAction, Job job, JobTicket jobTicket, ProcessParametersTable processParameters, JobHandlerModes mode) - : base(cancelAction, job, jobTicket, processParameters, mode) + : base(cancelAction, job, jobTicket, processParameters, mode, BL.Enumerations.MachineTypes.TS1800) { } diff --git a/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/MainWindow.xaml b/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/MainWindow.xaml index 8f066800e..875072faa 100644 --- a/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/MainWindow.xaml +++ b/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/MainWindow.xaml @@ -9,7 +9,7 @@ xmlns:local="clr-namespace:Tango.MachineEM.UI" xmlns:views="clr-namespace:Tango.MachineEM.UI.Views" mc:Ignorable="d" - Title="Tango Embedded Emulator" Height="820" Width="1300" TitleCaps="False" BorderBrush="Gray" BorderThickness="1" WindowStartupLocation="CenterScreen" Background="#202020" Foreground="Gainsboro" DataContext="{Binding RelativeSource={RelativeSource Self}}"> + Title="Firmware Emulator" Height="820" Width="1300" TitleCaps="False" BorderBrush="Gray" BorderThickness="1" WindowStartupLocation="CenterScreen" Background="#202020" Foreground="Gainsboro" DataContext="{Binding RelativeSource={RelativeSource Self}}"> <Grid> <views:MainView DataContext="{StaticResource MainViewVM}"></views:MainView> </Grid> diff --git a/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/ViewModels/MainViewVM.cs b/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/ViewModels/MainViewVM.cs index c993be2d7..be77ee217 100644 --- a/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/ViewModels/MainViewVM.cs @@ -210,9 +210,12 @@ namespace Tango.MachineEM.UI.ViewModels /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="ClientConnectedEventArgs"/> instance containing the event data.</param> - private void TcpServer_ClientConnected(object sender, ClientConnectedEventArgs e) + private async void TcpServer_ClientConnected(object sender, ClientConnectedEventArgs e) { - Emulator.Transporter.Adapter = new TcpTransportAdapter(e.Socket); + Emulator.Transporter = new BasicTransporter(new TcpTransportAdapter(e.Socket)); + await Emulator.Transporter.Connect(); + + InvalidateRelayCommands(); } #endregion @@ -224,17 +227,21 @@ namespace Tango.MachineEM.UI.ViewModels /// </summary> private async void Start() { + var settings = SettingsManager.Default.GetOrCreate<Integration.IntegrationSettings>(); + if (SelectedPort == Ports.First()) { - TcpServer = new TcpServer(9999); + TcpServer = new TcpServer(settings.FirmwarePort); TcpServer.ClientConnected += TcpServer_ClientConnected; TcpServer.Start(); + await Emulator.Start(); } else { Emulator.Transporter.Adapter = new UsbTransportAdapter(SelectedPort); + await Emulator.Start(); } - await Emulator.Start(); + InvalidateRelayCommands(); } diff --git a/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/Views/MainView.xaml b/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/Views/MainView.xaml index c0c4b7b97..c3c086065 100644 --- a/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/Views/MainView.xaml +++ b/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/Views/MainView.xaml @@ -40,7 +40,7 @@ </Grid.Background> <StackPanel Orientation="Horizontal" VerticalAlignment="Center" Margin="20 15"> <Image Source="/Images/embedded-device.png" RenderOptions.BitmapScalingMode="Fant"></Image> - <TextBlock Text="Tango Embedded Emulator" VerticalAlignment="Center" Margin="20 0 0 0" FontSize="36" Foreground="Red"> + <TextBlock Text="Firmware Emulator" VerticalAlignment="Center" Margin="20 0 0 0" FontSize="36" Foreground="Red"> <TextBlock.Effect> <DropShadowEffect/> </TextBlock.Effect> diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Controllers/DownloadsController.cs b/Software/Visual_Studio/Web/Tango.MachineService/Controllers/DownloadsController.cs index 1be5b7bdf..e65a8ebbc 100644 --- a/Software/Visual_Studio/Web/Tango.MachineService/Controllers/DownloadsController.cs +++ b/Software/Visual_Studio/Web/Tango.MachineService/Controllers/DownloadsController.cs @@ -42,7 +42,7 @@ namespace Tango.MachineService.Controllers downloads.Add(download); } - foreach (var item in db.TangoVersions.Where(x => x.InstallerBlobName != null).Include(x => x.User).Include(x => x.User.Contact).ToList()) + foreach (var item in db.TangoVersions.Where(x => x.InstallerBlobName != null).Include(x => x.User).Include(x => x.User.Contact).Include(x => x.MachineVersion).Where(x => x.MachineVersion.Version == 1).ToList()) { DownloadModel download = new DownloadModel(); download.App = DownloadModel.DownloadApp.PPC; @@ -55,6 +55,20 @@ namespace Tango.MachineService.Controllers downloads.Add(download); } + + foreach (var item in db.TangoVersions.Where(x => x.InstallerBlobName != null).Include(x => x.User).Include(x => x.User.Contact).Include(x => x.MachineVersion).Where(x => x.MachineVersion.Version == 2).ToList()) + { + DownloadModel download = new DownloadModel(); + download.App = DownloadModel.DownloadApp.Eureka; + download.ID = item.InstallerBlobName; + download.Name = $"Twine4X v{item.VersionAndTag}.exe"; + download.Version = item.Version; + download.User = item.User.Contact.FullName; + download.Date = item.LastUpdated; + download.Comments = item.Comments; + + downloads.Add(download); + } } downloads = downloads.OrderByDescending(x => x.Date).ToList(); diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Controllers/PPCController.cs b/Software/Visual_Studio/Web/Tango.MachineService/Controllers/PPCController.cs index c08aa7a00..9cbc17abf 100644 --- a/Software/Visual_Studio/Web/Tango.MachineService/Controllers/PPCController.cs +++ b/Software/Visual_Studio/Web/Tango.MachineService/Controllers/PPCController.cs @@ -919,7 +919,7 @@ namespace Tango.MachineService.Controllers if (local_version > Version.Parse(latestVersion.Version)) { - String newVersionFileName = $"{machine_version.Name} - Tango Version {local_version.ToString() + (request.Tag.IsNotNullOrEmpty() ? $" [{request.Tag}]" : String.Empty)}.tup"; + String newVersionFileName = $"{machine_version.Name} v{local_version.ToString(3) + (request.Tag.IsNotNullOrEmpty() ? $" [{request.Tag}]" : String.Empty)}.tup"; var manager = new BlobStorageManager(); var container = manager.GetContainer(MachineServiceConfig.TANGO_VERSIONS_CONTAINER); diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Images/eureka.png b/Software/Visual_Studio/Web/Tango.MachineService/Images/eureka.png Binary files differnew file mode 100644 index 000000000..c03daaded --- /dev/null +++ b/Software/Visual_Studio/Web/Tango.MachineService/Images/eureka.png diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Models/DownloadModel.cs b/Software/Visual_Studio/Web/Tango.MachineService/Models/DownloadModel.cs index b13f5c66f..cfd2e02cd 100644 --- a/Software/Visual_Studio/Web/Tango.MachineService/Models/DownloadModel.cs +++ b/Software/Visual_Studio/Web/Tango.MachineService/Models/DownloadModel.cs @@ -19,6 +19,7 @@ namespace Tango.MachineService.Models { MachineStudio, PPC, + Eureka } } }
\ No newline at end of file diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Web/Tango.MachineService/Properties/AssemblyInfo.cs index 1b038f94b..7b9a55380 100644 --- a/Software/Visual_Studio/Web/Tango.MachineService/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Web/Tango.MachineService/Properties/AssemblyInfo.cs @@ -24,4 +24,4 @@ using System.Runtime.InteropServices; // // You can specify all the values or you can default the Revision and Build Numbers // by using the '*' as shown below: -[assembly: AssemblyVersion("3.0.17.0")] +[assembly: AssemblyVersion("3.0.19.0")] diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Properties/PublishProfiles/Beta.pubxml b/Software/Visual_Studio/Web/Tango.MachineService/Properties/PublishProfiles/Beta.pubxml index e02abdacc..385d3cfd7 100644 --- a/Software/Visual_Studio/Web/Tango.MachineService/Properties/PublishProfiles/Beta.pubxml +++ b/Software/Visual_Studio/Web/Tango.MachineService/Properties/PublishProfiles/Beta.pubxml @@ -24,5 +24,21 @@ by editing this MSBuild file. In order to learn more about this please visit htt <UserName>$machineservice-alpha-beta__MachineService-BETA</UserName> <_SavePWD>True</_SavePWD> <_DestinationType>AzureWebSite</_DestinationType> + <PublishDatabaseSettings> + <Objects xmlns=""> + <ObjectGroup Name="Tango.BL.ObservablesContext" Order="1" Enabled="False"> + <Destination Path="" /> + <Object Type="DbCodeFirst"> + <Source Path="DBContext" DbContext="Tango.BL.ObservablesContext, Tango.BL" Origin="Convention" /> + </Object> + </ObjectGroup> + </Objects> + </PublishDatabaseSettings> </PropertyGroup> + <ItemGroup> + <MSDeployParameterValue Include="$(DeployParameterPrefix)Tango.BL.ObservablesContext-Web.config Connection String" /> + </ItemGroup> + <ItemGroup> + <_ConnectionStringsToInsert Include="Tango.BL.ObservablesContext" /> + </ItemGroup> </Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Properties/PublishProfiles/Staging.pubxml b/Software/Visual_Studio/Web/Tango.MachineService/Properties/PublishProfiles/Staging.pubxml new file mode 100644 index 000000000..3ea713203 --- /dev/null +++ b/Software/Visual_Studio/Web/Tango.MachineService/Properties/PublishProfiles/Staging.pubxml @@ -0,0 +1,44 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +This file is used by the publish/package process of your Web project. You can customize the behavior of this process +by editing this MSBuild file. In order to learn more about this please visit https://go.microsoft.com/fwlink/?LinkID=208121. +--> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <WebPublishMethod>MSDeploy</WebPublishMethod> + <ResourceId>/subscriptions/10c8aa60-3b15-4e0d-b412-6aeef90e5e91/resourceGroups/Tango/providers/Microsoft.Web/sites/machineservice/slots/MachineService-TEST</ResourceId> + <ResourceGroup>Tango</ResourceGroup> + <PublishProvider>AzureWebSite</PublishProvider> + <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration> + <LastUsedPlatform>Any CPU</LastUsedPlatform> + <SiteUrlToLaunchAfterPublish>http://machineservice-machineservice-stage.azurewebsites.net</SiteUrlToLaunchAfterPublish> + <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish> + <ExcludeApp_Data>False</ExcludeApp_Data> + <MSDeployServiceURL>machineservice-machineservice-stage.scm.azurewebsites.net:443</MSDeployServiceURL> + <DeployIisAppPath>machineservice__MachineService-STAGE</DeployIisAppPath> + <RemoteSitePhysicalPath /> + <SkipExtraFilesOnServer>True</SkipExtraFilesOnServer> + <InstallAspNetCoreSiteExtension>False</InstallAspNetCoreSiteExtension> + <MSDeployPublishMethod>WMSVC</MSDeployPublishMethod> + <EnableMSDeployBackup>True</EnableMSDeployBackup> + <UserName>$machineservice__MachineService-STAGE</UserName> + <_SavePWD>True</_SavePWD> + <_DestinationType>AzureWebSite</_DestinationType> + <PublishDatabaseSettings> + <Objects xmlns=""> + <ObjectGroup Name="Tango.BL.ObservablesContext" Order="1" Enabled="False"> + <Destination Path="" /> + <Object Type="DbCodeFirst"> + <Source Path="DBContext" DbContext="Tango.BL.ObservablesContext, Tango.BL" Origin="Convention" /> + </Object> + </ObjectGroup> + </Objects> + </PublishDatabaseSettings> + </PropertyGroup> + <ItemGroup> + <MSDeployParameterValue Include="$(DeployParameterPrefix)Tango.BL.ObservablesContext-Web.config Connection String" /> + </ItemGroup> + <ItemGroup> + <_ConnectionStringsToInsert Include="Tango.BL.ObservablesContext" /> + </ItemGroup> +</Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Tango.MachineService.csproj b/Software/Visual_Studio/Web/Tango.MachineService/Tango.MachineService.csproj index 2e05ad690..3cb22c5b1 100644 --- a/Software/Visual_Studio/Web/Tango.MachineService/Tango.MachineService.csproj +++ b/Software/Visual_Studio/Web/Tango.MachineService/Tango.MachineService.csproj @@ -343,7 +343,9 @@ <Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Views\FSEAccount\ResetPasswordVM.cs" /> <Compile Include="Views\FSEDownloads\IndexViewModel.cs" /> + <Content Include="Images\eureka.png" /> <Content Include="Nswag\DataStoreClient.nswag" /> + <None Include="Properties\PublishProfiles\Staging.pubxml" /> <None Include="Security\RefreshTokenEncoder.cs" /> <None Include="Security\RefreshTokenEntity.cs" /> <None Include="Security\RefreshTokensManager.cs" /> diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Views/Downloads/Index.cshtml b/Software/Visual_Studio/Web/Tango.MachineService/Views/Downloads/Index.cshtml index 044daaaa2..805c2cc55 100644 --- a/Software/Visual_Studio/Web/Tango.MachineService/Views/Downloads/Index.cshtml +++ b/Software/Visual_Studio/Web/Tango.MachineService/Views/Downloads/Index.cshtml @@ -24,10 +24,14 @@ { <img src="~/Images/machine-studio.png" width="50" /> } - else + else if (item.App == Tango.MachineService.Models.DownloadModel.DownloadApp.PPC) { <img src="~/Images/ppc.png" width="50" /> } + else + { + <img src="~/Images/eureka.png" width="50" /> + } </td> <td> <a style="display:inline" href="/Downloads/Download?blobName=@item.ID&downloadApp=@item.App">@item.Name</a> |
