aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2020-11-09 23:34:01 +0200
committerShlomo Hecht <shlomo@twine-s.com>2020-11-09 23:34:01 +0200
commite7cbb2ad47498bb072ee293baaf7fc9e2999fbec (patch)
tree073fe0b1fee57246dd639c2f21dc6b175e197a23 /Software/Visual_Studio
parentf42acf4a2513bfb156f3323d2cd9dadf67809220 (diff)
parent313970208cf06fe7925e41a9479e619fa1aca7f6 (diff)
downloadTango-e7cbb2ad47498bb072ee293baaf7fc9e2999fbec.tar.gz
Tango-e7cbb2ad47498bb072ee293baaf7fc9e2999fbec.zip
Merge branch 'master' of https://twinetfs.visualstudio.com/Tango/_git/Tango
Diffstat (limited to 'Software/Visual_Studio')
-rw-r--r--Software/Visual_Studio/Advanced Installer Projects/FSE Installer.aip15
-rw-r--r--Software/Visual_Studio/Advanced Installer Projects/Machine Studio Installer.aip81
-rw-r--r--Software/Visual_Studio/Advanced Installer Projects/PPC Installer.aip133
-rw-r--r--Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorConverter.cpp285
-rw-r--r--Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorConverter.h4
-rw-r--r--Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/Utils/NumConversions.cpp18
-rw-r--r--Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/Utils/NumConversions.h1
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures.Documentation/Help/proc-doc.chmbin208671 -> 233761 bytes
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.UI/Properties/AssemblyInfo.cs2
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.UI/ViewModels/LoginViewVM.cs16
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.UI/Views/LoginView.xaml8
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/HeadCleaningParametersView.xaml3
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/Converters/MachineEventToViewConverter.cs1
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/EventsViews/ThreadBreakView.xaml26
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/EventsViews/ThreadBreakView.xaml.cs49
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/Tango.PPC.Events.csproj9
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobsViewVM.cs2
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Images/thread_loading.pngbin0 -> 7209 bytes
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Tango.PPC.Maintenance.csproj5
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/ViewModels/MaintenanceViewVM.cs14
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Views/MaintenanceView.xaml38
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/ViewModels/MainViewVM.cs6
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/Views/MainView.xaml3
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Connection/DefaultMachineProvider.cs2
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Controls/ImageGalleryControl.cs114
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Controls/ImageGalleryControl.xaml101
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Merged.xaml3
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Tango.PPC.Common.csproj7
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/ThreadLoading/IThreadLoadingService.cs3
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadBreakView.xaml225
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadBreakView.xaml.cs28
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadBreakViewVM.cs243
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadLoadingView.xaml111
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadLoadingViewVM - Copy.cs176
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadLoadingViewVM.cs20
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/DryerClose/1.jpgbin0 -> 57998 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/DryerClose/2.jpgbin0 -> 58057 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/DryerClose/3.jpgbin0 -> 59306 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/DryerClose/4.jpgbin0 -> 55777 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/FeedingUnits/1.JPGbin0 -> 50823 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/FeedingUnits/2.JPGbin0 -> 36100 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/FeedingUnits/3.JPGbin0 -> 52652 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/FeedingUnits/4.JPGbin0 -> 103042 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/FeedingUnits/arc/1.jpgbin0 -> 50823 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/FeedingUnits/arc/2.jpgbin0 -> 36100 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/FeedingUnits/arc/3.jpgbin0 -> 52652 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/FeedingUnits/arc/4.jpgbin0 -> 103042 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/FeedingUnits/arc/5.jpgbin0 -> 123123 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/GuidingUnits/1.JPGbin0 -> 47345 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/NewThread/ReadyForLoading/arc/1.jpgbin0 -> 70545 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/NewThread/ReadyForLoading/arc/2.JPGbin0 -> 50823 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/NewThread/ReadyForLoading/arc/3.JPGbin0 -> 36100 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/NewThread/ReadyForLoading/arc/4.JPGbin0 -> 85970 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/NewThread/ReadyForLoading/arc/5.JPGbin0 -> 123123 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/NewThread/ReadyForLoading/arc/6.JPGbin0 -> 67829 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/NewThread/ReadyForLoading/arc/7.jpgbin0 -> 229536 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/NewThread/TS1800_CloseUp_Feeder_P.jpgbin0 -> 94899 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/NewThread/machine_full.jpgbin0 -> 67243 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/TheDryer/1.jpgbin0 -> 39336 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/TheDryer/2.jpgbin0 -> 36100 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/TheDryer/3.jpgbin0 -> 45420 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/TheDryer/4.jpgbin0 -> 46782 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/TheDryer/5.jpgbin0 -> 49932 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Tango.PPC.UI.csproj39
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/ThreadLoading/DefaultThreadLoadingService.cs17
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/app.manifest2
-rw-r--r--Software/Visual_Studio/Resources/Events Revisions/Tango alarm events handling chart_Rev27.xlsxbin0 -> 69986 bytes
-rw-r--r--Software/Visual_Studio/Tango.BL/DTO/ProcessParametersTableDTOBase.cs8
-rw-r--r--Software/Visual_Studio/Tango.BL/DTO/RmlDTOBase.cs8
-rw-r--r--Software/Visual_Studio/Tango.BL/Dispensing/TransparentLiquidDispensingCalc.cs16
-rw-r--r--Software/Visual_Studio/Tango.BL/Entities/ProcessParametersTableBase.cs42
-rw-r--r--Software/Visual_Studio/Tango.BL/Entities/RmlBase.cs38
-rw-r--r--Software/Visual_Studio/Tango.BL/Enumerations/EventTypes.cs96
-rw-r--r--Software/Visual_Studio/Tango.ColorConversion/DefaultColorConverter.cs49
-rw-r--r--Software/Visual_Studio/Tango.ColorConversion/ExtensionMethods/ConversionOutputExtensions.cs24
-rw-r--r--Software/Visual_Studio/Tango.ColorLib.GradientTest.CLI/Program.cs805
-rw-r--r--Software/Visual_Studio/Tango.Core/ExtensionMethods/StringExtensions.cs22
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/PROCESS_PARAMETERS_TABLES.cs1
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/RML.cs1
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx6
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram164
-rw-r--r--Software/Visual_Studio/Tango.Emulations/Emulators/MachineEmulator.cs17
-rw-r--r--Software/Visual_Studio/Tango.Integration/Operation/IMachineOperator.cs6
-rw-r--r--Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs14
-rw-r--r--Software/Visual_Studio/Tango.PMR/Common/MessageType.cs17
-rw-r--r--Software/Visual_Studio/Tango.PMR/Diagnostics/EventType.cs635
-rw-r--r--Software/Visual_Studio/Tango.PMR/EmbeddedParameters/AlarmHandlingItem.cs138
-rw-r--r--Software/Visual_Studio/Tango.PMR/Printing/HeadCleaningParameters.cs36
-rw-r--r--Software/Visual_Studio/Tango.PMR/Printing/ProcessParameters.cs35
-rw-r--r--Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj4
-rw-r--r--Software/Visual_Studio/Tango.PMR/ThreadLoading/AttemptThreadJoggingRequest.cs132
-rw-r--r--Software/Visual_Studio/Tango.PMR/ThreadLoading/AttemptThreadJoggingResponse.cs132
-rw-r--r--Software/Visual_Studio/Utilities/Tango.AlarmParametersGenerator/Program.cs4
-rw-r--r--Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Program.cs2
-rw-r--r--Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Tango.EventsTypesGenerator.csproj7
95 files changed, 3142 insertions, 1127 deletions
diff --git a/Software/Visual_Studio/Advanced Installer Projects/FSE Installer.aip b/Software/Visual_Studio/Advanced Installer Projects/FSE Installer.aip
index f5347ea7d..3b2172443 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:{AAD4B0FB-3B13-446E-A63A-79E146A26A47} " Type="16"/>
+ <ROW Property="ProductCode" Value="1033:{60135750-CBB3-42F2-BCFC-9C43156DCA8A} " Type="16"/>
<ROW Property="ProductLanguage" Value="1033"/>
<ROW Property="ProductName" Value="Tango FSE"/>
- <ROW Property="ProductVersion" Value="1.0.12.0" Type="32"/>
+ <ROW Property="ProductVersion" Value="1.1.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="{0E13CB0D-89F7-465E-9F56-F1CBD6773E6E}"/>
@@ -303,6 +303,8 @@
<ROW Component="Tango.Console.dll" ComponentId="{EA15B4D4-5171-4747-8F7D-0D21CF8CAFD3}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Console.dll"/>
<ROW Component="Tango.Core.dll" ComponentId="{FEA537DB-7B1F-4B88-940A-9911A4D29057}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Core.dll"/>
<ROW Component="Tango.DAL.Remote.dll" ComponentId="{62700DCA-5334-45BB-9B3F-1E60D8E1CB51}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.DAL.Remote.dll"/>
+ <ROW Component="Tango.DataStore.Remote.dll" ComponentId="{DC3934E7-E3F0-4995-A415-117E35345F66}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.DataStore.Remote.dll"/>
+ <ROW Component="Tango.DataStore.dll" ComponentId="{935AC8A1-F425-4763-B91B-FBD559AA35F0}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.DataStore.dll"/>
<ROW Component="Tango.Documents.dll" ComponentId="{FB9E5160-6481-4879-AFC6-89C3D7E21ED6}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Documents.dll"/>
<ROW Component="Tango.DragAndDrop.dll" ComponentId="{E660863F-2225-48FE-B966-E7375A48FBF1}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.DragAndDrop.dll"/>
<ROW Component="Tango.Emulations.dll" ComponentId="{87B4BB2B-DA02-47A4-B738-F0D388ED5B03}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Emulations.dll"/>
@@ -758,6 +760,11 @@
<ROW File="turbojpeg.dll_1" Component_="turbojpeg.dll_1" FileName="TURBOJ~1.DLL|turbojpeg.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\win7-x86\turbojpeg.dll" SelfReg="false"/>
<ROW File="turbojpeg.dll.meta_1" Component_="turbojpeg.dll.meta_1" FileName="TURBOJ~1.MET|turbojpeg.dll.meta" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\win7-x86\turbojpeg.dll.meta" SelfReg="false"/>
<ROW File="DeviceId.dll" Component_="DeviceId.dll" FileName="DeviceId.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\DeviceId.dll" SelfReg="false"/>
+ <ROW File="Tango.DataStore.dll" Component_="Tango.DataStore.dll" FileName="TANGOD~2.DLL|Tango.DataStore.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Tango.DataStore.dll" SelfReg="false"/>
+ <ROW File="Tango.DataStore.pdb" Component_="Tango.DataStore.dll" FileName="TANGOD~2.PDB|Tango.DataStore.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Tango.DataStore.pdb" SelfReg="false"/>
+ <ROW File="Tango.DataStore.Remote.dll" Component_="Tango.DataStore.Remote.dll" FileName="TANGOD~5.DLL|Tango.DataStore.Remote.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Tango.DataStore.Remote.dll" SelfReg="false"/>
+ <ROW File="Tango.DataStore.Remote.pdb" Component_="Tango.DataStore.Remote.dll" FileName="TANGOD~5.PDB|Tango.DataStore.Remote.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Tango.DataStore.Remote.pdb" 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\FSE\Release\Tango.DataStore.xml" SelfReg="false"/>
</COMPONENT>
<COMPONENT cid="caphyon.advinst.msicomp.AiRemoveFileComponent">
<ROW RemoveFile="_" Options="3"/>
@@ -772,7 +779,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.0.12" Languages="en" InstallationType="4" CabsLocation="1" PackageType="1" FilesInsideExe="true" ExtractionFolder="[AppDataFolder][|Manufacturer]\[|ProductName] [|ProductVersion]\install" ExtUI="true" UseLargeSchema="true" ExeName="Tango FSE v1.0.12"/>
+ <ROW BuildKey="DefaultBuild" BuildName="DefaultBuild" BuildOrder="1" BuildType="0" PackageFolder="..\Build\Installers\FSE\Release" PackageFileName="Tango FSE v1.1.0" Languages="en" InstallationType="4" CabsLocation="1" PackageType="1" FilesInsideExe="true" ExtractionFolder="[AppDataFolder][|Manufacturer]\[|ProductName] [|ProductVersion]\install" ExtUI="true" UseLargeSchema="true" ExeName="Tango FSE v1.1.0"/>
</COMPONENT>
<COMPONENT cid="caphyon.advinst.msicomp.DictionaryComponent">
<ROW Path="&lt;AI_DICTS&gt;ui.ail"/>
@@ -1244,6 +1251,8 @@
<ROW Feature_="TangoFSE" Component_="turbojpeg.dll_1"/>
<ROW Feature_="TangoFSE" Component_="turbojpeg.dll.meta_1"/>
<ROW Feature_="TangoFSE" Component_="DeviceId.dll"/>
+ <ROW Feature_="TangoFSE" Component_="Tango.DataStore.dll"/>
+ <ROW Feature_="TangoFSE" Component_="Tango.DataStore.Remote.dll"/>
</COMPONENT>
<COMPONENT cid="caphyon.advinst.msicomp.MsiIconsComponent">
<ROW Name="Tango.FSE.LogViewer.UI.exe" SourcePath="..\..\Graphics\FSE\log_viewer_icon.ico" Index="0"/>
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 bf2235681..13f3dae11 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:{EE8C56DC-7409-4562-9366-398B3F5DB27A} " Type="16"/>
+ <ROW Property="ProductCode" Value="1033:{730EA73A-6350-443D-9767-230B8178CB4E} " Type="16"/>
<ROW Property="ProductLanguage" Value="1033"/>
<ROW Property="ProductName" Value="Machine Studio"/>
- <ROW Property="ProductVersion" Value="4.1.20.0" Type="32"/>
+ <ROW Property="ProductVersion" Value="4.2.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="-"/>
@@ -343,24 +343,30 @@
<ROW Component="WriteableBitmapEx.Wpf.dll" ComponentId="{BAFB96A8-B5C1-407F-A4DB-8C5DABB73210}" Directory_="APPDIR" Attributes="0" KeyPath="WriteableBitmapEx.Wpf.dll"/>
<ROW Component="ZedGraph.dll" ComponentId="{26CEF5FC-DB1D-42D0-8080-6F453FA04474}" Directory_="APPDIR" Attributes="0" KeyPath="ZedGraph.dll"/>
<ROW Component="ZedGraph.resources.dll" ComponentId="{C19A98E8-041E-475F-B94C-2DBD2C3AEB54}" Directory_="APPDIR" Attributes="0" KeyPath="ZedGraph.resources.dll"/>
- <ROW Component="alpine.3.9x64" ComponentId="{35763209-C56A-46BC-B3AF-7C0443B84800}" Directory_="alpine.3.9x64_Dir" Attributes="0"/>
- <ROW Component="alpinex64" ComponentId="{A19D9514-0A1F-43AE-B717-5B79D2DEDDDF}" Directory_="alpinex64_Dir" Attributes="0"/>
<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="cvextern.dll" ComponentId="{5FBA3BA5-D6C4-48B0-B108-61E7F9915D5A}" Directory_="APPDIR" Attributes="256" KeyPath="cvextern.dll"/>
- <ROW Component="debian.9x64" ComponentId="{66571329-844A-4BA2-8E49-CA00BB66415A}" Directory_="debian.9x64_Dir" Attributes="0"/>
- <ROW Component="debianarm64" ComponentId="{DD4F1C49-90D2-466A-913F-6A973B65E7A7}" Directory_="debianarm64_Dir" Attributes="0"/>
- <ROW Component="fedorax64" ComponentId="{CD6E3E27-1699-4AAC-A179-4E159CA5AE3F}" Directory_="fedorax64_Dir" Attributes="0"/>
<ROW Component="fpgen.exe" ComponentId="{457206AA-0093-4C01-80E4-BBCAB192F18F}" Directory_="APPDIR" Attributes="0" KeyPath="fpgen.exe"/>
+ <ROW Component="git2106a5f2.dll" ComponentId="{16263A91-E9CF-4A2E-BD95-E9A7D805B098}" Directory_="x64_1_Dir" Attributes="256" KeyPath="git2106a5f2.dll"/>
+ <ROW Component="git2106a5f2.dll_1" ComponentId="{5CE2807D-387F-41AB-A493-CDD0CE48E5BC}" 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="{5C43C7F8-FA6A-4DFA-A79E-6E9D58264073}" Directory_="osx_Dir" Attributes="0" KeyPath="libgit2106a5f2.dylib" Type="0"/>
+ <ROW Component="libgit2106a5f2.so" ComponentId="{BBC8E395-EE58-4519-ADC2-91B52EB88641}" Directory_="alpinex64_Dir" Attributes="0" KeyPath="libgit2106a5f2.so" Type="0"/>
+ <ROW Component="libgit2106a5f2.so_1" ComponentId="{8486919E-8025-4563-8ED5-02DCE8EB754A}" Directory_="alpine.3.9x64_Dir" Attributes="0" KeyPath="libgit2106a5f2.so_1" Type="0"/>
+ <ROW Component="libgit2106a5f2.so_2" ComponentId="{17FA8D37-2266-40ED-A5B2-BD78A7A1008C}" Directory_="debianarm64_Dir" Attributes="0" KeyPath="libgit2106a5f2.so_2" Type="0"/>
+ <ROW Component="libgit2106a5f2.so_3" ComponentId="{4810D88F-B06E-4C7F-A645-49E838E5DFF7}" Directory_="debian.9x64_Dir" Attributes="0" KeyPath="libgit2106a5f2.so_3" Type="0"/>
+ <ROW Component="libgit2106a5f2.so_4" ComponentId="{67204EC0-70C7-4175-9AA6-49B29B45EC76}" Directory_="fedorax64_Dir" Attributes="0" KeyPath="libgit2106a5f2.so_4" Type="0"/>
+ <ROW Component="libgit2106a5f2.so_5" ComponentId="{273CC194-382B-4029-A734-34D7F5C0122D}" Directory_="linuxx64_Dir" Attributes="0" KeyPath="libgit2106a5f2.so_5" Type="0"/>
+ <ROW Component="libgit2106a5f2.so_6" ComponentId="{BC011615-79FC-4D4A-89AA-C899292BC35A}" Directory_="rhelx64_Dir" Attributes="0" KeyPath="libgit2106a5f2.so_6" Type="0"/>
+ <ROW Component="libgit2106a5f2.so_7" ComponentId="{EAC7C83F-C579-4225-966A-6517B91622C7}" Directory_="ubuntu.16.04arm64_Dir" Attributes="0" KeyPath="libgit2106a5f2.so_7" Type="0"/>
+ <ROW Component="libgit2106a5f2.so_8" ComponentId="{857F80A6-743B-4FE8-B291-31F3E0CF019E}" 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"/>
<ROW Component="libtiff3.dll" ComponentId="{B0AFF3A9-FDF3-45E6-957F-0DDD9015A945}" Directory_="APPDIR" Attributes="0" KeyPath="libtiff3.dll"/>
<ROW Component="libxml22.dll" ComponentId="{DD4CEEAA-1435-4088-B282-1713DC646832}" Directory_="APPDIR" Attributes="0" KeyPath="libxml22.dll"/>
<ROW Component="libzbar0.dll" ComponentId="{1C46ED02-3AD0-4C0E-B80C-E519040270CD}" Directory_="APPDIR" Attributes="0" KeyPath="libzbar0.dll"/>
- <ROW Component="linuxx64" ComponentId="{EA306049-77CF-4BAC-A1A3-1714BF3F3D49}" Directory_="linuxx64_Dir" Attributes="0"/>
<ROW Component="mscoree.dll" ComponentId="{B7304190-8E59-45C3-B972-4611DEB9DE60}" Directory_="APPDIR" Attributes="0" KeyPath="mscoree.dll"/>
<ROW Component="msvcp140.dll" ComponentId="{552CD5DA-6369-4853-9E3A-550AA2609CC0}" Directory_="APPDIR" Attributes="256" KeyPath="msvcp140.dll"/>
<ROW Component="msvcp140d.dll" ComponentId="{6B725C2A-71DF-44D3-A761-EB3D28379956}" Directory_="APPDIR" Attributes="0" KeyPath="msvcp140d.dll"/>
@@ -388,17 +394,11 @@
<ROW Component="opencv_video330d.dll" ComponentId="{961A4293-2F0D-43AE-B49A-CDEB8911F176}" Directory_="APPDIR" Attributes="0" KeyPath="opencv_video330d.dll"/>
<ROW Component="opencv_videoio330d.dll" ComponentId="{FCE62E62-C669-4BE2-90ED-EF4639CDAAD6}" Directory_="APPDIR" Attributes="0" KeyPath="opencv_videoio330d.dll"/>
<ROW Component="opencv_videostab330d.dll" ComponentId="{98E1A941-24F3-4054-A292-F897A688B0C0}" Directory_="APPDIR" Attributes="0" KeyPath="opencv_videostab330d.dll"/>
- <ROW Component="osx" ComponentId="{A2F3AE7D-68A3-4CB8-B3B0-B6A6D482FC0E}" Directory_="osx_Dir" Attributes="0"/>
<ROW Component="protobufnet.dll" ComponentId="{EC7E9950-BFF7-4B28-918D-7F5EBAD54696}" Directory_="APPDIR" Attributes="0" KeyPath="protobufnet.dll"/>
- <ROW Component="rhelx64" ComponentId="{6F6E7CCC-1B6A-4FA3-81C6-2DF27A8D7934}" Directory_="rhelx64_Dir" Attributes="0"/>
<ROW Component="template.bmp" ComponentId="{927DB4C0-6F7A-4D61-8BFC-16AE3116AD96}" Directory_="TCC_Dir" Attributes="0" KeyPath="template.bmp"/>
- <ROW Component="ubuntu.16.04arm64" ComponentId="{0D505378-BAF1-4D33-BF26-34CADDC50B01}" Directory_="ubuntu.16.04arm64_Dir" Attributes="0"/>
- <ROW Component="ubuntu.18.04x64" ComponentId="{66285ECB-9F6D-430E-9443-7FC9D1F85537}" Directory_="ubuntu.18.04x64_Dir" Attributes="0"/>
<ROW Component="ucrtbased.dll" ComponentId="{4188BB88-A714-488A-A02D-98710ACC94F5}" Directory_="APPDIR" Attributes="0" KeyPath="ucrtbased.dll"/>
<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="x64" ComponentId="{BFBEB159-4825-47FB-B091-241335276D07}" Directory_="x64_1_Dir" Attributes="0"/>
- <ROW Component="x86" ComponentId="{5E3FA9D0-FD9E-4952-AE1E-D1C46383010C}" Directory_="x86_1_Dir" Attributes="0"/>
<ROW Component="zlib1.dll" ComponentId="{B1077B58-3ED7-4166-8329-8FF92411C301}" Directory_="APPDIR" Attributes="0" KeyPath="zlib1.dll"/>
</COMPONENT>
<COMPONENT cid="caphyon.advinst.msicomp.MsiFeatsComponent">
@@ -847,6 +847,21 @@
<ROW File="LibGit2Sharp.pdb" Component_="LibGit2Sharp.dll" FileName="LIBGIT~1.PDB|LibGit2Sharp.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\LibGit2Sharp.pdb" SelfReg="false"/>
<ROW File="Tango.Git.dll" Component_="Tango.Git.dll" FileName="TANGOG~1.DLL|Tango.Git.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\Tango.Git.dll" SelfReg="false"/>
<ROW File="Tango.Git.pdb" Component_="Tango.Git.dll" FileName="TANGOG~1.PDB|Tango.Git.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\Tango.Git.pdb" 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.dll.config" Component_="Dragablz.xml" FileName="LIBGIT~1.CON|LibGit2Sharp.dll.config" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\LibGit2Sharp.dll.config" SelfReg="false"/>
</COMPONENT>
<COMPONENT cid="caphyon.advinst.msicomp.AiRemoveFileComponent">
<ROW RemoveFile="_" Options="3"/>
@@ -858,7 +873,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.0.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.1.20"/>
+ <ROW BuildKey="DefaultBuild" BuildName="DefaultBuild" BuildOrder="1" BuildType="0" PackageFolder="..\Build\Installers\Machine Studio\Release" PackageFileName="Machine Studio Installer_v4.2.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_v4.2.0"/>
</COMPONENT>
<COMPONENT cid="caphyon.advinst.msicomp.DictionaryComponent">
<ROW Path="&lt;AI_DICTS&gt;ui.ail"/>
@@ -959,18 +974,6 @@
<COMPONENT cid="caphyon.advinst.msicomp.MsiCreateFolderComponent">
<ROW Directory_="SHORTCUTDIR" Component_="SHORTCUTDIR" ManualDelete="false"/>
<ROW Directory_="APPDIR" Component_="APPDIR" ManualDelete="true"/>
- <ROW Directory_="alpinex64_Dir" Component_="alpinex64" ManualDelete="false"/>
- <ROW Directory_="alpine.3.9x64_Dir" Component_="alpine.3.9x64" ManualDelete="false"/>
- <ROW Directory_="debianarm64_Dir" Component_="debianarm64" ManualDelete="false"/>
- <ROW Directory_="debian.9x64_Dir" Component_="debian.9x64" ManualDelete="false"/>
- <ROW Directory_="fedorax64_Dir" Component_="fedorax64" ManualDelete="false"/>
- <ROW Directory_="linuxx64_Dir" Component_="linuxx64" ManualDelete="false"/>
- <ROW Directory_="osx_Dir" Component_="osx" ManualDelete="false"/>
- <ROW Directory_="rhelx64_Dir" Component_="rhelx64" ManualDelete="false"/>
- <ROW Directory_="ubuntu.16.04arm64_Dir" Component_="ubuntu.16.04arm64" ManualDelete="false"/>
- <ROW Directory_="ubuntu.18.04x64_Dir" Component_="ubuntu.18.04x64" ManualDelete="false"/>
- <ROW Directory_="x64_1_Dir" Component_="x64" ManualDelete="false"/>
- <ROW Directory_="x86_1_Dir" Component_="x86" ManualDelete="false"/>
</COMPONENT>
<COMPONENT cid="caphyon.advinst.msicomp.MsiCustActComponent">
<ROW Action="AI_AiRemoveFilesCommit" Type="11777" Source="ResourceCleaner.dll" Target="OnAiRemoveFilesCommit" WithoutSeq="true"/>
@@ -1341,18 +1344,18 @@
<ROW Feature_="MachineStudio" Component_="Tango.ColorLib_v4.dll"/>
<ROW Feature_="MachineStudio" Component_="LibGit2Sharp.dll"/>
<ROW Feature_="MachineStudio" Component_="Tango.Git.dll"/>
- <ROW Feature_="MachineStudio" Component_="x86"/>
- <ROW Feature_="MachineStudio" Component_="alpinex64"/>
- <ROW Feature_="MachineStudio" Component_="alpine.3.9x64"/>
- <ROW Feature_="MachineStudio" Component_="debianarm64"/>
- <ROW Feature_="MachineStudio" Component_="debian.9x64"/>
- <ROW Feature_="MachineStudio" Component_="fedorax64"/>
- <ROW Feature_="MachineStudio" Component_="linuxx64"/>
- <ROW Feature_="MachineStudio" Component_="osx"/>
- <ROW Feature_="MachineStudio" Component_="rhelx64"/>
- <ROW Feature_="MachineStudio" Component_="ubuntu.16.04arm64"/>
- <ROW Feature_="MachineStudio" Component_="ubuntu.18.04x64"/>
- <ROW Feature_="MachineStudio" Component_="x64"/>
+ <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"/>
</COMPONENT>
<COMPONENT cid="caphyon.advinst.msicomp.MsiInstExSeqComponent">
<ROW Action="AI_DOWNGRADE" Condition="AI_NEWERPRODUCTFOUND AND (UILevel &lt;&gt; 5)" Sequence="210"/>
diff --git a/Software/Visual_Studio/Advanced Installer Projects/PPC Installer.aip b/Software/Visual_Studio/Advanced Installer Projects/PPC Installer.aip
index 7cd6c02b1..872e4b938 100644
--- a/Software/Visual_Studio/Advanced Installer Projects/PPC Installer.aip
+++ b/Software/Visual_Studio/Advanced Installer Projects/PPC Installer.aip
@@ -73,9 +73,7 @@
<ROW Component="DocumentFormat.OpenXml.dll" ComponentId="{DF22F9D3-CEF7-4D41-8D0D-1D45C509376E}" Directory_="APPDIR" Attributes="0" KeyPath="DocumentFormat.OpenXml.dll"/>
<ROW Component="EFCache.dll" ComponentId="{E15AE519-6E9A-4860-AE1B-36A611A2ACC2}" Directory_="APPDIR" Attributes="0" KeyPath="EFCache.dll"/>
<ROW Component="EntityFramework.SqlServer.dll" ComponentId="{38839FC0-3C26-4FF6-B4F7-83CE250C9BA2}" Directory_="APPDIR" Attributes="0" KeyPath="EntityFramework.SqlServer.dll"/>
- <ROW Component="EntityFramework.SqlServer.dll_1" ComponentId="{618EF41C-2BB3-4EFB-87D5-6218117DA04B}" Directory_="Packages_Dir" Attributes="0" KeyPath="EntityFramework.SqlServer.dll_1"/>
<ROW Component="EntityFramework.dll" ComponentId="{84E4D21B-268D-488B-B890-EC2958C2FFBC}" Directory_="APPDIR" Attributes="0" KeyPath="EntityFramework.dll"/>
- <ROW Component="EntityFramework.dll_1" ComponentId="{BEAA311D-850A-4779-8BB6-CEF1F36296F8}" Directory_="Packages_Dir" Attributes="0" KeyPath="EntityFramework.dll_1"/>
<ROW Component="FluentFTP.dll" ComponentId="{212CBAE7-9A31-46CD-AA9C-2585FB7EC2E5}" Directory_="APPDIR" Attributes="0" KeyPath="FluentFTP.dll"/>
<ROW Component="FontAwesome.WPF.dll" ComponentId="{303DB9BF-511C-4AAB-8DD9-C0B773679FFF}" Directory_="APPDIR" Attributes="0" KeyPath="FontAwesome.WPF.dll"/>
<ROW Component="Google.Protobuf.dll" ComponentId="{974E6663-6A5F-4596-A2A1-BBD1B21850E8}" Directory_="APPDIR" Attributes="0" KeyPath="Google.Protobuf.dll"/>
@@ -158,6 +156,7 @@
<ROW Component="System.Reactive.Interfaces.dll" ComponentId="{C23DD172-ACE0-4811-90D6-0C2F38B2C27E}" Directory_="APPDIR" Attributes="0" KeyPath="System.Reactive.Interfaces.dll"/>
<ROW Component="System.Reactive.Linq.dll" ComponentId="{572F229C-22E6-4934-BDB9-68600F354F67}" Directory_="APPDIR" Attributes="0" KeyPath="System.Reactive.Linq.dll"/>
<ROW Component="System.Reactive.PlatformServices.dll" ComponentId="{84B191EA-72B0-4FA8-B352-AEF6BBD48F31}" Directory_="APPDIR" Attributes="0" KeyPath="System.Reactive.PlatformServices.dll"/>
+ <ROW Component="System.Spatial.dll" ComponentId="{ABC8AAEE-2D43-49D7-8038-3CE15B23E699}" Directory_="APPDIR" Attributes="0" KeyPath="System.Spatial.dll"/>
<ROW Component="System.Web.Http.WebHost.dll" ComponentId="{9F1DD6B2-3514-4C62-AACA-EE7368ECB36B}" Directory_="APPDIR" Attributes="0" KeyPath="System.Web.Http.WebHost.dll"/>
<ROW Component="System.Web.Http.dll" ComponentId="{0ABCDC64-DE4A-4994-B4C8-3B0146F68F09}" Directory_="APPDIR" Attributes="0" KeyPath="System.Web.Http.dll"/>
<ROW Component="System.Web.Razor.dll" ComponentId="{231E534C-FAF8-41DD-A21F-B5CACF6AB05F}" Directory_="APPDIR" Attributes="0" KeyPath="System.Web.Razor.dll"/>
@@ -165,15 +164,19 @@
<ROW Component="Tango.AdvancedInstaller.dll" ComponentId="{5C51256D-50D1-46F5-A44F-73AF2E63EAF5}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.AdvancedInstaller.dll"/>
<ROW Component="Tango.AnimatedGif.dll" ComponentId="{2DCBEDC8-EDA7-4C90-8852-39E0B13DABF7}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.AnimatedGif.dll"/>
<ROW Component="Tango.BL.dll" ComponentId="{56D29CF3-E600-48A5-BF55-045EEE7CFDC6}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.BL.dll"/>
- <ROW Component="Tango.BL.dll_1" ComponentId="{CA63BB8F-8EF2-4DF9-A796-6D546B0F5FCE}" Directory_="Packages_Dir" Attributes="0" KeyPath="Tango.BL.dll_1"/>
<ROW Component="Tango.CSV.dll" ComponentId="{7980426F-EE8B-472C-A2E5-D5E09258E1B1}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.CSV.dll"/>
<ROW Component="Tango.CodeGeneration.dll" ComponentId="{7BE2B8CB-E5B7-435B-A585-C49EB042E9EB}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.CodeGeneration.dll"/>
<ROW Component="Tango.ColorConversion.dll" ComponentId="{A7FB8123-03C9-41A1-AEFE-1516E5A04224}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.ColorConversion.dll"/>
<ROW Component="Tango.ColorLib_v1.dll" ComponentId="{2144DE18-A79A-4811-ABBD-080FB91B0977}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.ColorLib_v1.dll"/>
<ROW Component="Tango.ColorLib_v2.dll" ComponentId="{BF397BA6-85CE-4A7A-9C1B-76F8FD3210D8}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.ColorLib_v2.dll"/>
<ROW Component="Tango.ColorLib_v3.dll" ComponentId="{3264F593-EBB0-4AAB-BC34-AF382E485620}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.ColorLib_v3.dll"/>
+ <ROW Component="Tango.ColorLib_v4.dll" ComponentId="{ECFA3C0A-1834-4F60-9A19-5AB6DA9CB5E6}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.ColorLib_v4.dll"/>
<ROW Component="Tango.Console.dll" ComponentId="{9F335170-14FF-472E-B3A5-1AAFA7C3067B}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Console.dll"/>
<ROW Component="Tango.Core.dll" ComponentId="{4DF6644D-C4EC-419D-9622-2F79BBBC5A3F}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Core.dll"/>
+ <ROW Component="Tango.DataStore.EF.dll" ComponentId="{8CB699F6-2992-4E8B-A985-BFB711F00887}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.DataStore.EF.dll"/>
+ <ROW Component="Tango.DataStore.Lite.dll" ComponentId="{A4DE7D38-9FFE-4876-8EA5-D2DFFF941DD7}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.DataStore.Lite.dll"/>
+ <ROW Component="Tango.DataStore.Remote.dll" ComponentId="{75E21DF0-35CB-4C0D-9542-79176449F9E1}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.DataStore.Remote.dll"/>
+ <ROW Component="Tango.DataStore.dll" ComponentId="{8CD7FAF4-6184-490D-B632-FA65A392F79F}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.DataStore.dll"/>
<ROW Component="Tango.Documents.dll" ComponentId="{1FFC36F6-BF53-47D7-A4DB-92ABBDCC127B}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Documents.dll"/>
<ROW Component="Tango.DragAndDrop.dll" ComponentId="{E9081F1C-7A40-402F-83B4-62F4E3D5E4BE}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.DragAndDrop.dll"/>
<ROW Component="Tango.Emulations.dll" ComponentId="{51084E24-6781-469C-97CF-AE6CBB6E8A25}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Emulations.dll"/>
@@ -203,7 +206,6 @@
<ROW Component="Tango.PPC.Packages.SamplePostPackage.dll" ComponentId="{B5384C95-9D5A-48EE-A938-DBFE32FC2E25}" Directory_="Packages_Dir" Attributes="0" KeyPath="Tango.PPC.Packages.SamplePostPackage.dll"/>
<ROW Component="Tango.PPC.Packages.SamplePrePackage.dll" ComponentId="{30CD58AB-F4B9-4690-8962-DCBAB4DD059D}" Directory_="Packages_Dir" Attributes="0" KeyPath="Tango.PPC.Packages.SamplePrePackage.dll"/>
<ROW Component="Tango.PPC.Shared.dll" ComponentId="{AA769313-AC05-4C33-A72C-43CF04DF6EBD}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.PPC.Shared.dll"/>
- <ROW Component="Tango.PPC.Shared.dll_1" ComponentId="{79B609E5-FDCC-4169-ACB7-84A1503DFF2A}" Directory_="Packages_Dir" Attributes="0" KeyPath="Tango.PPC.Shared.dll_1"/>
<ROW Component="Tango.PPC.Storage.dll" ComponentId="{5FDB1CE0-A29E-44F9-83E2-AD7A5FC7DF22}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.PPC.Storage.dll"/>
<ROW Component="Tango.PPC.Technician.dll" ComponentId="{B96E96EB-9E0A-49D1-A8E5-E2989E81F142}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.PPC.Technician.dll"/>
<ROW Component="Tango.PPC.UI.exe" ComponentId="{ABCBFD0F-3957-42AF-A7E5-931A097E4814}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.PPC.UI.exe"/>
@@ -225,28 +227,26 @@
<ROW Component="Tango.WiFi.dll" ComponentId="{8082C9BD-5BDB-4C52-BCA6-E8604D4D232B}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.WiFi.dll"/>
<ROW Component="WebRtc.NET.dll" ComponentId="{11563A6C-E1FC-4578-8BDD-8A8C30677126}" Directory_="APPDIR" Attributes="0" KeyPath="WebRtc.NET.dll"/>
<ROW Component="WindowsInput.dll" ComponentId="{916884AD-CD7D-4AB0-8B3B-A2205ACFBDF4}" Directory_="APPDIR" Attributes="0" KeyPath="WindowsInput.dll"/>
- <ROW Component="git2106a5f2.dll" ComponentId="{3FE9C608-F478-4E38-898A-160256F0207A}" Directory_="x64_Dir" Attributes="256" KeyPath="git2106a5f2.dll"/>
- <ROW Component="git2106a5f2.dll_1" ComponentId="{034CC49B-B60E-454A-9643-18180F3D7D0E}" Directory_="x86_Dir" Attributes="0" KeyPath="git2106a5f2.dll_1"/>
- <ROW Component="libgit2106a5f2.dylib" ComponentId="{7F920851-4EC7-4DF7-B150-61CDB649EB3F}" Directory_="osx_Dir" Attributes="0" KeyPath="libgit2106a5f2.dylib" Type="0"/>
- <ROW Component="libgit2106a5f2.so" ComponentId="{A767A633-DB48-42D4-ABEE-A8A578F95EC4}" Directory_="alpinex64_Dir" Attributes="0" KeyPath="libgit2106a5f2.so" Type="0"/>
- <ROW Component="libgit2106a5f2.so_1" ComponentId="{316FC4F2-3D64-4777-A62D-7D06C4C6FF8F}" Directory_="alpine.3.9x64_Dir" Attributes="0" KeyPath="libgit2106a5f2.so_1" Type="0"/>
- <ROW Component="libgit2106a5f2.so_2" ComponentId="{7F5E08CD-38C5-4B15-B06B-19976D817463}" Directory_="debianarm64_Dir" Attributes="0" KeyPath="libgit2106a5f2.so_2" Type="0"/>
- <ROW Component="libgit2106a5f2.so_3" ComponentId="{3C3270C3-3155-4C87-9508-3DA75A04B567}" Directory_="debian.9x64_Dir" Attributes="0" KeyPath="libgit2106a5f2.so_3" Type="0"/>
- <ROW Component="libgit2106a5f2.so_4" ComponentId="{C8ECEF88-EF7E-41CD-B096-63A127E8EA86}" Directory_="fedorax64_Dir" Attributes="0" KeyPath="libgit2106a5f2.so_4" Type="0"/>
- <ROW Component="libgit2106a5f2.so_5" ComponentId="{AF241129-A015-49D0-8235-1DC392831CBF}" Directory_="linuxx64_Dir" Attributes="0" KeyPath="libgit2106a5f2.so_5" Type="0"/>
- <ROW Component="libgit2106a5f2.so_6" ComponentId="{3631727D-7F4D-4790-B843-A22D9A7ACD8A}" Directory_="rhelx64_Dir" Attributes="0" KeyPath="libgit2106a5f2.so_6" Type="0"/>
- <ROW Component="libgit2106a5f2.so_7" ComponentId="{DADA6055-E0A4-40CF-A68B-9539D7B5F3DE}" Directory_="ubuntu.16.04arm64_Dir" Attributes="0" KeyPath="libgit2106a5f2.so_7" Type="0"/>
- <ROW Component="libgit2106a5f2.so_8" ComponentId="{EC200D68-EA0F-4188-A631-5D0FAA7B529B}" Directory_="ubuntu.18.04x64_Dir" Attributes="0" KeyPath="libgit2106a5f2.so_8" Type="0"/>
+ <ROW Component="alpine.3.9x64" ComponentId="{D4BCF305-49A6-4295-82B6-104C83D9D3A6}" Directory_="alpine.3.9x64_Dir" Attributes="0"/>
+ <ROW Component="alpinex64" ComponentId="{61852CDB-13E7-4A1B-8E80-5EC2F09698B7}" Directory_="alpinex64_Dir" Attributes="0"/>
+ <ROW Component="debian.9x64" ComponentId="{DC31704C-C7AF-47FD-9EE8-116E5F602B68}" Directory_="debian.9x64_Dir" Attributes="0"/>
+ <ROW Component="debianarm64" ComponentId="{FC83A31E-4E0A-4840-A044-BDDD61B0FE1E}" Directory_="debianarm64_Dir" Attributes="0"/>
+ <ROW Component="fedorax64" ComponentId="{24C8A0D2-96C5-428E-97B3-3DAA62B414E9}" Directory_="fedorax64_Dir" Attributes="0"/>
+ <ROW Component="linuxx64" ComponentId="{D88F848F-666F-4CD1-A62D-F8CDE2CBA18F}" Directory_="linuxx64_Dir" Attributes="0"/>
<ROW Component="mscoree.dll" ComponentId="{85F439D0-8FD0-4B99-888D-336C7A125E3D}" Directory_="APPDIR" Attributes="0" KeyPath="mscoree.dll"/>
<ROW Component="msvcp140d.dll" ComponentId="{69E32675-9ACF-4C23-A495-300B78913B66}" Directory_="APPDIR" Attributes="0" KeyPath="msvcp140d.dll"/>
+ <ROW Component="osx" ComponentId="{EFAA0F58-2E8D-4EAA-9E30-58E5A062EBB0}" Directory_="osx_Dir" Attributes="0"/>
<ROW Component="protobufnet.dll" ComponentId="{163F1E17-6462-4ABE-BC86-E055F7690139}" Directory_="APPDIR" Attributes="0" KeyPath="protobufnet.dll"/>
- <ROW Component="turbojpeg.dll" ComponentId="{A46C81B7-627E-4493-8AAE-071A649795BD}" Directory_="win7x64_Dir" Attributes="256" KeyPath="turbojpeg.dll"/>
- <ROW Component="turbojpeg.dll.meta" ComponentId="{D02BE769-2478-40E5-87F6-72F9118F1F66}" Directory_="win7x64_Dir" Attributes="0" KeyPath="turbojpeg.dll.meta" Type="0"/>
- <ROW Component="turbojpeg.dll.meta_1" ComponentId="{2E34E404-D1CB-4367-B793-B979811AA003}" Directory_="win7x86_Dir" Attributes="0" KeyPath="turbojpeg.dll.meta_1" Type="0"/>
- <ROW Component="turbojpeg.dll_1" ComponentId="{A1261149-D64C-43FD-902A-6F9A36BA420C}" Directory_="win7x86_Dir" Attributes="0" KeyPath="turbojpeg.dll_1"/>
+ <ROW Component="rhelx64" ComponentId="{20FDADE2-65E8-4ABA-8ED2-A7923A4EFE86}" Directory_="rhelx64_Dir" Attributes="0"/>
+ <ROW Component="ubuntu.16.04arm64" ComponentId="{C6CE6C53-EF79-4EFC-8616-5FDC856F8644}" Directory_="ubuntu.16.04arm64_Dir" Attributes="0"/>
+ <ROW Component="ubuntu.18.04x64" ComponentId="{81511E67-ED99-4AE0-AA1C-5F4C3BD93282}" Directory_="ubuntu.18.04x64_Dir" Attributes="0"/>
<ROW Component="ucrtbased.dll" ComponentId="{B8D025EA-CD16-4EE7-A3E7-713E2BE82BF3}" Directory_="APPDIR" Attributes="0" KeyPath="ucrtbased.dll"/>
<ROW Component="vcruntime140.dll" ComponentId="{144594CC-D19B-45E4-A420-7A1BBB122EE3}" Directory_="APPDIR" Attributes="0" KeyPath="vcruntime140.dll"/>
<ROW Component="vcruntime140d.dll" ComponentId="{7653420C-C6C3-4F31-97E8-D6DE417D3DF2}" Directory_="APPDIR" Attributes="0" KeyPath="vcruntime140d.dll"/>
+ <ROW Component="win7x64" ComponentId="{A4F0F832-0F44-4BEB-B50F-1C6B8C5BE876}" Directory_="win7x64_Dir" Attributes="0"/>
+ <ROW Component="win7x86" ComponentId="{19161320-54C7-4E88-A0CF-999336DC5173}" Directory_="win7x86_Dir" Attributes="0"/>
+ <ROW Component="x64" ComponentId="{29CA5548-8E90-4F84-BCB4-C74FB4B2AE7B}" Directory_="x64_Dir" Attributes="0"/>
+ <ROW Component="x86" ComponentId="{0DBB98B7-0CE8-446B-9540-D4A7A2E28B08}" Directory_="x86_Dir" Attributes="0"/>
</COMPONENT>
<COMPONENT cid="caphyon.advinst.msicomp.MsiFeatsComponent">
<ROW Feature="MainFeature" Title="MainFeature" Description="Description" Display="1" Level="1" Directory_="APPDIR" Attributes="0"/>
@@ -507,38 +507,19 @@
<ROW File="LibGit2Sharp.pdb" Component_="LibGit2Sharp.dll" FileName="LIBGIT~1.PDB|LibGit2Sharp.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\PPC\Release\LibGit2Sharp.pdb" SelfReg="false"/>
<ROW File="Tango.Git.dll" Component_="Tango.Git.dll" FileName="TANGOG~1.DLL|Tango.Git.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\PPC\Release\Tango.Git.dll" SelfReg="false"/>
<ROW File="Tango.Git.pdb" Component_="Tango.Git.dll" FileName="TANGOG~1.PDB|Tango.Git.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\PPC\Release\Tango.Git.pdb" 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\PPC\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\PPC\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\PPC\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\PPC\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\PPC\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\PPC\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\PPC\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\PPC\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\PPC\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\PPC\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\PPC\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\PPC\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\PPC\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\PPC\Release\lib\win32\x86\git2-106a5f2.pdb" SelfReg="false"/>
- <ROW File="LibGit2Sharp.dll.config" Component_="CommandLine.xml" FileName="LIBGIT~1.CON|LibGit2Sharp.dll.config" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\PPC\Release\LibGit2Sharp.dll.config" SelfReg="false"/>
- <ROW File="EntityFramework.dll_1" Component_="EntityFramework.dll_1" FileName="ENTITY~1.DLL|EntityFramework.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\PPC\Release\Packages\EntityFramework.dll" SelfReg="false"/>
- <ROW File="EntityFramework.SqlServer.dll_1" Component_="EntityFramework.SqlServer.dll_1" FileName="ENTITY~2.DLL|EntityFramework.SqlServer.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\PPC\Release\Packages\EntityFramework.SqlServer.dll" SelfReg="false"/>
- <ROW File="EntityFramework.SqlServer.xml" Component_="Tango.PPC.Packages.JobRunsStartTimePatch.dll.config" FileName="ENTITY~1.XML|EntityFramework.SqlServer.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\PPC\Release\Packages\EntityFramework.SqlServer.xml" SelfReg="false"/>
- <ROW File="EntityFramework.xml" Component_="Tango.PPC.Packages.JobRunsStartTimePatch.dll.config" FileName="ENTITY~2.XML|EntityFramework.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\PPC\Release\Packages\EntityFramework.xml" SelfReg="false"/>
- <ROW File="Tango.BL.dll_1" Component_="Tango.BL.dll_1" FileName="TANGOB~1.DLL|Tango.BL.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\PPC\Release\Packages\Tango.BL.dll" SelfReg="false"/>
- <ROW File="Tango.BL.dll.config_1" Component_="Tango.PPC.Packages.JobRunsStartTimePatch.dll.config" FileName="TANGOB~1.CON|Tango.BL.dll.config" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\PPC\Release\Packages\Tango.BL.dll.config" SelfReg="false"/>
- <ROW File="Tango.BL.pdb_1" Component_="Tango.BL.dll_1" FileName="TANGOB~1.PDB|Tango.BL.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\PPC\Release\Packages\Tango.BL.pdb" SelfReg="false"/>
<ROW File="Tango.PPC.Packages.Auth2.dll" Component_="Tango.PPC.Packages.Auth2.dll" FileName="TANGOP~5.DLL|Tango.PPC.Packages.Auth2.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\PPC\Release\Packages\Tango.PPC.Packages.Auth2.dll" SelfReg="false"/>
<ROW File="Tango.PPC.Packages.Auth2.dll.config" Component_="Tango.PPC.Packages.JobRunsStartTimePatch.dll.config" FileName="TANGOP~2.CON|Tango.PPC.Packages.Auth2.dll.config" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\PPC\Release\Packages\Tango.PPC.Packages.Auth2.dll.config" SelfReg="false"/>
<ROW File="Tango.PPC.Packages.Auth2.pdb" Component_="Tango.PPC.Packages.Auth2.dll" FileName="TANGOP~5.PDB|Tango.PPC.Packages.Auth2.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\PPC\Release\Packages\Tango.PPC.Packages.Auth2.pdb" SelfReg="false"/>
- <ROW File="Tango.PPC.Shared.dll_1" Component_="Tango.PPC.Shared.dll_1" FileName="TANGOP~6.DLL|Tango.PPC.Shared.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\PPC\Release\Packages\Tango.PPC.Shared.dll" SelfReg="false"/>
- <ROW File="Tango.PPC.Shared.pdb_1" Component_="Tango.PPC.Shared.dll_1" FileName="TANGOP~6.PDB|Tango.PPC.Shared.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\PPC\Release\Packages\Tango.PPC.Shared.pdb" SelfReg="false"/>
- <ROW File="Tango.PPC.Shared.xml" Component_="Tango.PPC.Packages.JobRunsStartTimePatch.dll.config" FileName="TANGOP~1.XML|Tango.PPC.Shared.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\PPC\Release\Packages\Tango.PPC.Shared.xml" SelfReg="false"/>
- <ROW File="turbojpeg.dll" Component_="turbojpeg.dll" FileName="TURBOJ~1.DLL|turbojpeg.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\PPC\Release\win7-x64\turbojpeg.dll" SelfReg="false"/>
- <ROW File="turbojpeg.dll.meta" Component_="turbojpeg.dll.meta" FileName="TURBOJ~1.MET|turbojpeg.dll.meta" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\PPC\Release\win7-x64\turbojpeg.dll.meta" SelfReg="false"/>
- <ROW File="turbojpeg.dll_1" Component_="turbojpeg.dll_1" FileName="TURBOJ~1.DLL|turbojpeg.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\PPC\Release\win7-x86\turbojpeg.dll" SelfReg="false"/>
- <ROW File="turbojpeg.dll.meta_1" Component_="turbojpeg.dll.meta_1" FileName="TURBOJ~1.MET|turbojpeg.dll.meta" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\PPC\Release\win7-x86\turbojpeg.dll.meta" 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\PPC\Release\System.Spatial.dll" SelfReg="false"/>
+ <ROW File="Tango.ColorLib_v4.dll" Component_="Tango.ColorLib_v4.dll" FileName="TANGOC~9.DLL|Tango.ColorLib_v4.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\PPC\Release\Tango.ColorLib_v4.dll" SelfReg="false"/>
+ <ROW File="Tango.DataStore.dll" Component_="Tango.DataStore.dll" FileName="TANGOD~3.DLL|Tango.DataStore.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\PPC\Release\Tango.DataStore.dll" SelfReg="false"/>
+ <ROW File="Tango.DataStore.EF.dll" Component_="Tango.DataStore.EF.dll" FileName="TANGOD~4.DLL|Tango.DataStore.EF.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\PPC\Release\Tango.DataStore.EF.dll" SelfReg="false"/>
+ <ROW File="Tango.DataStore.EF.pdb" Component_="Tango.DataStore.EF.dll" FileName="TANGOD~3.PDB|Tango.DataStore.EF.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\PPC\Release\Tango.DataStore.EF.pdb" SelfReg="false"/>
+ <ROW File="Tango.DataStore.Lite.dll" Component_="Tango.DataStore.Lite.dll" FileName="TANGOD~5.DLL|Tango.DataStore.Lite.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\PPC\Release\Tango.DataStore.Lite.dll" SelfReg="false"/>
+ <ROW File="Tango.DataStore.Lite.pdb" Component_="Tango.DataStore.Lite.dll" FileName="TANGOD~4.PDB|Tango.DataStore.Lite.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\PPC\Release\Tango.DataStore.Lite.pdb" SelfReg="false"/>
+ <ROW File="Tango.DataStore.pdb" Component_="Tango.DataStore.dll" FileName="TANGOD~5.PDB|Tango.DataStore.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\PPC\Release\Tango.DataStore.pdb" SelfReg="false"/>
+ <ROW File="Tango.DataStore.Remote.dll" Component_="Tango.DataStore.Remote.dll" FileName="TANGOD~6.DLL|Tango.DataStore.Remote.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\PPC\Release\Tango.DataStore.Remote.dll" SelfReg="false"/>
+ <ROW File="Tango.DataStore.Remote.pdb" Component_="Tango.DataStore.Remote.dll" FileName="TANGOD~6.PDB|Tango.DataStore.Remote.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\PPC\Release\Tango.DataStore.Remote.pdb" SelfReg="false"/>
<ATTRIBUTE name="DontAddFileAttributes" value="true"/>
</COMPONENT>
<COMPONENT cid="caphyon.advinst.msicomp.BootstrOptComponent">
@@ -616,6 +597,20 @@
<COMPONENT cid="caphyon.advinst.msicomp.MsiCreateFolderComponent">
<ROW Directory_="SHORTCUTDIR" Component_="SHORTCUTDIR" ManualDelete="false"/>
<ROW Directory_="APPDIR" Component_="APPDIR" ManualDelete="true"/>
+ <ROW Directory_="alpinex64_Dir" Component_="alpinex64" ManualDelete="false"/>
+ <ROW Directory_="alpine.3.9x64_Dir" Component_="alpine.3.9x64" ManualDelete="false"/>
+ <ROW Directory_="debianarm64_Dir" Component_="debianarm64" ManualDelete="false"/>
+ <ROW Directory_="debian.9x64_Dir" Component_="debian.9x64" ManualDelete="false"/>
+ <ROW Directory_="fedorax64_Dir" Component_="fedorax64" ManualDelete="false"/>
+ <ROW Directory_="linuxx64_Dir" Component_="linuxx64" ManualDelete="false"/>
+ <ROW Directory_="osx_Dir" Component_="osx" ManualDelete="false"/>
+ <ROW Directory_="rhelx64_Dir" Component_="rhelx64" ManualDelete="false"/>
+ <ROW Directory_="ubuntu.16.04arm64_Dir" Component_="ubuntu.16.04arm64" ManualDelete="false"/>
+ <ROW Directory_="ubuntu.18.04x64_Dir" Component_="ubuntu.18.04x64" ManualDelete="false"/>
+ <ROW Directory_="x64_Dir" Component_="x64" ManualDelete="false"/>
+ <ROW Directory_="x86_Dir" Component_="x86" ManualDelete="false"/>
+ <ROW Directory_="win7x64_Dir" Component_="win7x64" ManualDelete="false"/>
+ <ROW Directory_="win7x86_Dir" Component_="win7x86" ManualDelete="false"/>
</COMPONENT>
<COMPONENT cid="caphyon.advinst.msicomp.MsiCustActComponent">
<ROW Action="AI_BACKUP_AI_SETUPEXEPATH" Type="51" Source="AI_SETUPEXEPATH_ORIGINAL" Target="[AI_SETUPEXEPATH]"/>
@@ -813,27 +808,27 @@
<ROW Feature_="MainFeature" Component_="Tango.Insights.dll"/>
<ROW Feature_="MainFeature" Component_="LibGit2Sharp.dll"/>
<ROW Feature_="MainFeature" Component_="Tango.Git.dll"/>
- <ROW Feature_="MainFeature" Component_="libgit2106a5f2.so"/>
- <ROW Feature_="MainFeature" Component_="libgit2106a5f2.so_1"/>
- <ROW Feature_="MainFeature" Component_="libgit2106a5f2.so_2"/>
- <ROW Feature_="MainFeature" Component_="libgit2106a5f2.so_3"/>
- <ROW Feature_="MainFeature" Component_="libgit2106a5f2.so_4"/>
- <ROW Feature_="MainFeature" Component_="libgit2106a5f2.so_5"/>
- <ROW Feature_="MainFeature" Component_="libgit2106a5f2.dylib"/>
- <ROW Feature_="MainFeature" Component_="libgit2106a5f2.so_6"/>
- <ROW Feature_="MainFeature" Component_="libgit2106a5f2.so_7"/>
- <ROW Feature_="MainFeature" Component_="libgit2106a5f2.so_8"/>
- <ROW Feature_="MainFeature" Component_="git2106a5f2.dll"/>
- <ROW Feature_="MainFeature" Component_="git2106a5f2.dll_1"/>
- <ROW Feature_="MainFeature" Component_="EntityFramework.dll_1"/>
- <ROW Feature_="MainFeature" Component_="EntityFramework.SqlServer.dll_1"/>
- <ROW Feature_="MainFeature" Component_="Tango.BL.dll_1"/>
<ROW Feature_="MainFeature" Component_="Tango.PPC.Packages.Auth2.dll"/>
- <ROW Feature_="MainFeature" Component_="Tango.PPC.Shared.dll_1"/>
- <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_="System.Spatial.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.ColorLib_v4.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.DataStore.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.DataStore.EF.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.DataStore.Lite.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.DataStore.Remote.dll"/>
+ <ROW Feature_="MainFeature" Component_="alpinex64"/>
+ <ROW Feature_="MainFeature" Component_="alpine.3.9x64"/>
+ <ROW Feature_="MainFeature" Component_="debianarm64"/>
+ <ROW Feature_="MainFeature" Component_="debian.9x64"/>
+ <ROW Feature_="MainFeature" Component_="fedorax64"/>
+ <ROW Feature_="MainFeature" Component_="linuxx64"/>
+ <ROW Feature_="MainFeature" Component_="osx"/>
+ <ROW Feature_="MainFeature" Component_="rhelx64"/>
+ <ROW Feature_="MainFeature" Component_="ubuntu.16.04arm64"/>
+ <ROW Feature_="MainFeature" Component_="ubuntu.18.04x64"/>
+ <ROW Feature_="MainFeature" Component_="x64"/>
+ <ROW Feature_="MainFeature" Component_="x86"/>
+ <ROW Feature_="MainFeature" Component_="win7x64"/>
+ <ROW Feature_="MainFeature" Component_="win7x86"/>
</COMPONENT>
<COMPONENT cid="caphyon.advinst.msicomp.MsiInstExSeqComponent">
<ROW Action="AI_STORE_LOCATION" Condition="(Not Installed) OR REINSTALL" Sequence="1502"/>
diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorConverter.cpp b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorConverter.cpp
index 23be99668..39b093539 100644
--- a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorConverter.cpp
+++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorConverter.cpp
@@ -253,14 +253,6 @@ void Tango::ColorLib::ColorConverter::ProcessHiveNeighbors(ConversionInput *conv
VectorXd NLInkOut(m_nInks);
ConvertToNLInks(DoubleToVector(InkOut, m_nInks), NLInkOut);
- //Limit inks based on m_maxNlpercm
- //Inks are limited in their nonlinear form
- //Output Volume is in %
- /* LimitInks(NLInkOut, InkOutP);
- NLInkPToVolume(DoubleToVector(InkOutP, m_nInks), Vol);
- GamutRegion[i] = GetGamutRegion(Vol, m_ProcessRangesMaxP);
- LimitLowVolume(Vol, GamutRegion[i], Vol);
- NLcmtoPercentage(Vol, Vol); */
LimitNLInks2Volume(NLInkOut, GamutRegion[i], Vol);
//m_A2BTransform->evalInkP2Lab(InkOut, Lab1P, GamutRegion[i]);
@@ -1451,15 +1443,6 @@ size_t Tango::ColorLib::ColorConverter::Convert(uint8_t * input_buffer, size_t i
// Right now calibration is in the [0-100] range, values exceeding [0-100] are not transformed
ConvertToNLInks(InkOut, NLInkOut);
- //Limit inks based on m_maxNlpercm
- //Inks are limited in their nonlinear form
- //Output Volume is in %
- // double *InkOutP = new double[m_nInks];
- /* LimitInks(NLInkOut, InkOutP);
- NLInkPToVolume(DoubleToVector(InkOutP, m_nInks), Volume);
- GamutRegion = GetGamutRegion(Volume, m_ProcessRangesMaxP);
- LimitLowVolume(Volume, GamutRegion, Volume);
- NLcmtoPercentage(Volume, Volume);*/
LimitNLInks2Volume(NLInkOut, GamutRegion, Volume);
//OutputCoordinates outputCoords = OUTPUT_COORDINATES__INIT;
/* if (InkOutP != NULL)
@@ -2684,20 +2667,9 @@ void Tango::ColorLib::ColorConverter::ConvertGradStoptoVolume(InputCoordinates*
}
VectorXd NLInkOut(m_nInks);
VectorXd VolumeOut(m_nInks);
-/* double *InkOutL = new double[m_nInks];*/
- ConvertToNLInks(InkOut, NLInkOut);
-/* LimitInks(NLInkOut, InkOutL); // InkOutL in [nl/cm]
- NLInkPToVolume(DoubleToVector(InkOutL, m_nInks), Volume);
- GamutRegion = GetGamutRegion(Volume, m_ProcessRangesMaxP);
- LimitLowVolume(Volume, GamutRegion, Volume);
- NLcmtoPercentage(Volume, Volume);*/
- LimitNLInks2Volume(NLInkOut, GamutRegion, Volume);
-/* if (InkOutL != NULL)
- {
- delete[] InkOutL;
- InkOutL = NULL;
- }*/
+ ConvertToNLInks(InkOut, NLInkOut);
+ LimitNLInks2VolumeThr(NLInkOut, GamutRegion, Volume);
return;
}
@@ -2805,7 +2777,7 @@ void Tango::ColorLib::ColorConverter::PrepareGradient(GradientConversionInput* c
//Choose Gamut Region for Gradient calculation
bool same_regions = true;
- if ((maxreg != minreg) & (maxreg > 0))
+ if ((maxreg != minreg) | (maxreg > 0))
same_regions = false;
double dEThr = 0.8;
//find intermediate points
@@ -2943,6 +2915,11 @@ void Tango::ColorLib::ColorConverter::PrepareGradient(GradientConversionInput* c
ColorSpace SubStopsCS = COLOR_SPACE__LAB;
//double NormFactor = m_ProcessRangesMaxP[m_nProcessRanges - 1] / 100.0;
+
+ //Low Volume Threshold will be applied at the end of the sequence
+ //This is to avoid smoothing to reduce the ink % below the LowVolume threshold
+ //In order to keep continuity the simple Low Volume threshold will be applied.
+
VectorXd VolumeStop(m_nInks);
MatrixXd MatVolume(nTotalStops, m_nInks);
for (int iS = 0; iS < nTotalStops; ++iS)
@@ -2959,6 +2936,7 @@ void Tango::ColorLib::ColorConverter::PrepareGradient(GradientConversionInput* c
//Smooth Volumes
VectorXd VIn(nTotalStops);
VectorXd VOut(nTotalStops);
+
int FilterWidth = 7;
for (int iSep = 0; iSep < m_nInks; ++iSep)
{
@@ -2969,7 +2947,14 @@ void Tango::ColorLib::ColorConverter::PrepareGradient(GradientConversionInput* c
outputStops[jS]->outputliquids[iSep]->volume = VOut(jS);
}
//Temp Output
-
+ for (int i = 0; i < nTotalStops; ++i)
+ {
+ for (int j = 0; j < m_nInks; ++j)
+ VolumeStop(j) = outputStops[i]->outputliquids[j]->volume;
+ LimitLowVolumeP(VolumeStop, GamutRegion, VolumeStop);
+ for (int j = 0; j < m_nInks; ++j)
+ outputStops[i]->outputliquids[j]->volume = VolumeStop(j);
+ }
for (int i = 0; i < nTotalStops; ++i)
{
fprintf(stdout, "%d\t%6.3f\t%6.3f\t%6.3f\t%6.3f\t%6.3f\t%6.3f\t%6.3f\t%6.3f\t%d\t%d\t%d\n", i,
@@ -3154,6 +3139,39 @@ void Tango::ColorLib::ColorConverter::LimitLowVolume(VectorXd InVolume, int &Gam
}
}
+void Tango::ColorLib::ColorConverter::LimitLowVolumeP(VectorXd InVolume, int &GamutRegion, VectorXd &OutVolume)
+{
+ int indGR = 0;
+ //Find Gamut Region
+ for (int i = 1; i < m_nProcessRanges; ++i)
+ {
+ if (GamutRegion == i)
+ indGR = i;
+ }
+ //Limit Volume based on Gamut Region
+ double sumVol = 0;
+ for (int i = 0; i < m_nInks; ++i)
+ {
+ if (InVolume(i) >= LowVolumeThreshold)
+ OutVolume(i) = InVolume(i);
+ else if (InVolume(i) < LowVolHalf)
+ OutVolume(i) = 0.0;
+ else
+ OutVolume(i) = LowVolumeThreshold;
+ sumVol += OutVolume(i);
+ }
+ //recalculate GamutRegion
+ if (indGR == 0)
+ return;
+ else
+ {
+ for (int i = 1; i < indGR + 1; ++i)
+ {
+ if ((sumVol > m_NormGamutRegionMaxLim[i - 1]) & (sumVol <= m_NormGamutRegionMaxLim[i]))
+ GamutRegion = i;
+ }
+ }
+}
int Tango::ColorLib::ColorConverter::GetGamutRegion(VectorXd Volume, double *GamutLimits)
{
double TotalVolume = 0.0;
@@ -3230,11 +3248,7 @@ void Tango::ColorLib::ColorConverter::ProcessGradientStops(InputCoordinates **in
C_RGB_XYZ_Lab Lab(LabOutV[0], LabOutV[1], LabOutV[2]);
C_RGB_XYZ_Lab RGB(RGBOut);
ConvertToNLInks(InkOut, NLInkOut);
- /* LimitInks(NLInkOut, InkOutL);
- NLInkPToVolume(DoubleToVector(InkOutL, m_nInks), Volume);
- GamutRegion = GetGamutRegion(Volume, m_ProcessRangesMaxP);
- LimitLowVolume(Volume, GamutRegion, Volume);
- NLcmtoPercentage(Volume, Volume);*/
+
LimitNLInks2Volume(NLInkOut, GamutRegion, Volume);
//fill data
//fill volume
@@ -3312,10 +3326,29 @@ void Tango::ColorLib::ColorConverter::SetLowVolThr_nlcm()
void Tango::ColorLib::ColorConverter::LimitNLInks2Volume(VectorXd NLInks, int &GamutRegion, VectorXd &Volume)
{
- VectorXd NLInkOut(m_nInks);
+ //VectorXd NLInkOut(m_nInks);
+ double *InkOutL = new double[m_nInks];
+ //ConvertToNLInks(NLInks, NLInkOut);
+ LimitInks(NLInks, InkOutL); // InkOutL in [nl/cm]
+ NLInkPToVolume(DoubleToVector(InkOutL, m_nInks), Volume);
+ GamutRegion = GetGamutRegion(Volume, m_ProcessRangesMaxP);
+ //LimitLowVolume(Volume, GamutRegion, Volume);
+ GetClosestInk(Volume, GamutRegion, Volume);
+ //NLcmtoPercentage(Volume, Volume);
+
+ if (InkOutL != NULL)
+ {
+ delete[]InkOutL;
+ InkOutL = NULL;
+ }
+}
+
+void Tango::ColorLib::ColorConverter::LimitNLInks2VolumeThr(VectorXd NLInks, int &GamutRegion, VectorXd &Volume)
+{
+// VectorXd NLInkOut(m_nInks);
double *InkOutL = new double[m_nInks];
- ConvertToNLInks(NLInks, NLInkOut);
- LimitInks(NLInkOut, InkOutL); // InkOutL in [nl/cm]
+// ConvertToNLInks(NLInks, NLInkOut);
+ LimitInks(NLInks, InkOutL); // InkOutL in [nl/cm]
NLInkPToVolume(DoubleToVector(InkOutL, m_nInks), Volume);
GamutRegion = GetGamutRegion(Volume, m_ProcessRangesMaxP);
LimitLowVolume(Volume, GamutRegion, Volume);
@@ -3327,3 +3360,175 @@ void Tango::ColorLib::ColorConverter::LimitNLInks2Volume(VectorXd NLInks, int &G
InkOutL = NULL;
}
}
+
+void Tango::ColorLib::ColorConverter::GetClosestInk(VectorXd Volume, int &GamutRegion, VectorXd &BestVolume)
+{
+ VectorXd LabOut(3);
+ NumConversions D2B;
+ double *diffVolume = new double[m_nInks];
+ int *LVThrIndex = new int[m_nInks];
+ int indCount = -1;
+ for (int i = 0; i < m_nInks; ++i)
+ {
+ if (Volume(i) > 1.e-05)
+ diffVolume[i] = std::abs(Volume(i) - std::max(Volume(i), m_LowVolThr_nlcm[GamutRegion]));
+ else
+ diffVolume[i] = 0;
+ if (diffVolume[i] > 1.0E-04)
+ {
+ indCount++;
+ LVThrIndex[indCount] = i;
+ }
+ }
+
+ if (diffVolume != NULL)
+ {
+ delete[]diffVolume;
+ diffVolume = NULL;
+ }
+
+ NLcmtoPercentage(Volume, Volume);
+ indCount++;
+ if (indCount > 0)
+ {
+ double LabTarget[3];
+ ConvertVolumeToLabRel(Volume, LabOut, GamutRegion);
+ VectorToDouble(LabOut, LabTarget);
+ int pwr2LVThr = (int)pow(2, indCount);
+ double **VolumeComb = new double*[pwr2LVThr];
+ for (int i = 0; i < pwr2LVThr; ++i)
+ {
+ VolumeComb[i] = new double[m_nInks];
+ for (int j=0; j<m_nInks; ++j)
+ VolumeComb[ i][j] = Volume(j);
+ }
+ int **binPerm = new int*[pwr2LVThr];
+ for (int i = 0; i < pwr2LVThr; ++i)
+ {
+ binPerm[i] = new int[indCount];
+ for (int k = 0; k < indCount ; ++k)
+ binPerm[i][k] = -1;
+ D2B.DecToBinary(i, binPerm[i], indCount);
+ }
+ double *dE = new double[pwr2LVThr];
+ double mindE = 10000.0;
+ int indMindE = -1;
+ for (int i = 0; i < pwr2LVThr; ++i)
+ {
+ for (int j=0; j<indCount ; ++j)
+ VolumeComb[i][LVThrIndex[j]] = (double)(binPerm[i][j])* LowVolumeThreshold;
+ }
+ //find the volume with smallest dE from Target.
+ //Convert Volume to Lab and calculate dE from Volume
+ double sumVolComb = 0;
+ for (int isum = 0; isum < m_nInks; ++isum)
+ sumVolComb += VolumeComb[0][isum];
+ int istart = 0;
+ if (sumVolComb < 1.0e-04)
+ istart = 1;
+
+ for (int i = istart; i < pwr2LVThr; ++i)
+ {
+ ConvertVolumeToLabRel(DoubleToVector(VolumeComb[i], m_nInks), LabOut, GamutRegion);
+ m_Conv02->SymmetricaldECMC(LabOut, DoubleToVector(LabTarget,3), dE[i]);
+ if (dE[i] < mindE)
+ {
+ mindE = dE[i];
+ indMindE = i;
+ BestVolume = DoubleToVector(VolumeComb[i], m_nInks);
+ }
+ }
+ if (binPerm != NULL)
+ {
+ for (int i = 0; i < pwr2LVThr; ++i)
+ delete[]binPerm[i];
+ delete[]binPerm;
+ binPerm = NULL;
+ }
+ if (VolumeComb != NULL)
+ {
+ for (int i = 0; i < pwr2LVThr; ++i)
+ delete[]VolumeComb[i];
+ delete[]VolumeComb;
+ VolumeComb = NULL;
+ }
+ if (dE != NULL)
+ {
+ delete[]dE;
+ dE = NULL;
+ }
+ }
+ else
+ BestVolume = Volume;
+}
+
+void Tango::ColorLib::ColorConverter::ConvertVolumeToLabRel(VectorXd &Volume, VectorXd &LabOut, int GamutRegion)
+{
+ VectorXd NLInkP(m_nInks);
+ VectorXd InkOut((int)(m_nInks));
+ //Convert to Nonlinear Inks
+ double SumVol_Ink = 0.0;
+ //Volume is in [nl/cm]
+ VolumeToNLInkP(Volume, NLInkP);
+ double *InkOutP = new double[m_nInks];
+ double *LinInkP = new double[m_nInks];
+
+ //Limit inks based on m_maxNlpercm
+ //Inks are limited in their nonlinear form
+
+ LimitInks(NLInkP, InkOutP);
+ NLInkPToVolume(DoubleToVector(InkOutP, m_nInks), Volume);
+ GamutRegion = GetGamutRegion(Volume, m_ProcessRangesMaxP);
+ NLcmtoPercentage(Volume, Volume); //Volume is back to percentage
+ VolumeToNLInkP(Volume, NLInkP);
+ VectorToDouble(NLInkP, InkOutP);
+ //Convert to RGB
+ //GamutRegion = 0;
+ //Convert to Lab
+
+ double *LabOutP = new double[3];
+
+ for (int i = 0; i < m_nInks; ++i)
+ InkOutP[i] *= m_colortable->GetInverseNormFactor();
+
+ m_colortable->m_A2BTransform->evalInkP2Lab(InkOutP, LabOutP, GamutRegion);
+ //LabOutP is in Relative Colorimetric
+ ColorConvert CConvertD65(D65, D65);
+ double *LabOutFinal1 = new double[3];
+ double *LabOutFinal = new double[3];
+
+ CConvertD65.ChangeWP(LabOutP, LabOutFinal1, m_whitepointXYZ_Strip, m_WP); //To Absolute
+ for (int i = 0; i < 3; ++i)
+ LabOutFinal[i] = LabOutFinal1[i];
+
+ LabOut = DoubleToVector(LabOutFinal, 3);
+
+ if (InkOutP != NULL)
+ {
+ delete[]InkOutP;
+ InkOutP = NULL;
+ }
+ if (LinInkP != NULL)
+ {
+ delete[]LinInkP;
+ LinInkP = NULL;
+ }
+ if (LabOutP != NULL)
+ {
+ delete[] LabOutP;
+ LabOutP = NULL;
+ }
+
+ if (LabOutFinal1 != NULL)
+ {
+ delete[] LabOutFinal1;
+ LabOutFinal1 = NULL;
+ }
+ if (LabOutFinal != NULL)
+ {
+ delete[] LabOutFinal;
+ LabOutFinal = NULL;
+ }
+ return;
+
+} \ No newline at end of file
diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorConverter.h b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorConverter.h
index af621a082..e4190e75e 100644
--- a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorConverter.h
+++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/ColorConverter.h
@@ -78,6 +78,7 @@ namespace Tango
void ConvertVolumeToRGBDisplay(InputCoordinates *IC, int n_processRanges,int colorspace,
VectorXd &InkOut, VectorXd &RGBOut,
VectorXd &LabOut, int &GamutRegion);
+ void ConvertVolumeToLabRel(VectorXd &Volume, VectorXd &LabOut, int GamutRegion);
size_t Tango::ColorLib::ColorConverter::Convert(uint8_t * input_buffer, size_t input_buffer_size, uint8_t *& output_buffer);
size_t Tango::ColorLib::ColorConverter::GenerateGradient(uint8_t * input_buffer, size_t input_buffer_size, uint8_t *& output_buffer);
void ConvertToNLInks(VectorXd InkIn, VectorXd &InkOut);
@@ -160,7 +161,10 @@ namespace Tango
VectorXd &InkOut, VectorXd &RGBOut,
VectorXd &LabOut, int &GamutRegion, bool &InGamut, SURROUND sur, CAM02CS CS);
void LimitLowVolume(VectorXd InVolume, int &GamutRegion, VectorXd &OutVolume);
+ void LimitLowVolumeP(VectorXd InVolume, int &GamutRegion, VectorXd &OutVolume);
void LimitNLInks2Volume(VectorXd NLInks, int &GamutRegion, VectorXd &OutVolume);
+ void LimitNLInks2VolumeThr(VectorXd NLInks, int &GamutRegion, VectorXd &Volume);
+ void GetClosestInk(VectorXd Volume, int &GamutRegion, VectorXd &BestVolume);
};
}
}
diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/Utils/NumConversions.cpp b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/Utils/NumConversions.cpp
index 050ad0283..f541b370c 100644
--- a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/Utils/NumConversions.cpp
+++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/Utils/NumConversions.cpp
@@ -65,3 +65,21 @@ void NumConversions::getchar(uint32_t num, char &tmpC)
tmpC[i] = getChar[nlen - 1 - i];
}*/
}
+
+void NumConversions::DecToBinary(int DecNumber, int *&BinOut, int nsize)
+{
+ //Store in reverse order, meaning the way it comes out of the calculation
+ // array to store binary number
+
+ // counter for binary array
+ int i = 0;
+ for (int i = 0; i < nsize; ++i)
+ BinOut[i] = 0;
+ while (DecNumber > 0 && i<nsize)
+ {
+ // store remainder in binary array
+ BinOut[i] = DecNumber % 2;
+ DecNumber = DecNumber / 2;
+ i++;
+ }
+} \ No newline at end of file
diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/Utils/NumConversions.h b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/Utils/NumConversions.h
index 51559f71a..a2ac26306 100644
--- a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/Utils/NumConversions.h
+++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v4/Utils/NumConversions.h
@@ -12,6 +12,7 @@ class NumConversions
int ByteToInt(uint8_t *byteN, int Start);
uint16_t ByteToShort(uint8_t *byteN, int Start);
void getchar(uint32_t num, char &tmpC);
+ void DecToBinary(int DecNumber,int *&BinOut, int nsize);
private:
};
#endif //__NUMCONVERSIONS_H__ \ No newline at end of file
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
index 49bfd2707..dd4a2d6c4 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
Binary files differ
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 45f1f1c67..fa70e630e 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Properties/AssemblyInfo.cs
+++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Properties/AssemblyInfo.cs
@@ -8,5 +8,5 @@ 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.1.0.0")]
+[assembly: AssemblyVersion("1.1.1.0")]
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/ViewModels/LoginViewVM.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/ViewModels/LoginViewVM.cs
index 27c490c80..70a68918a 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.UI/ViewModels/LoginViewVM.cs
+++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/ViewModels/LoginViewVM.cs
@@ -66,7 +66,7 @@ namespace Tango.FSE.UI.ViewModels
public String Email
{
get { return _email; }
- set { _email = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); }
+ set { _email = value; RaisePropertyChangedAuto(); RaisePropertyChanged(nameof(DisplayEnvironment)); InvalidateRelayCommands(); }
}
private String _password;
@@ -153,6 +153,14 @@ namespace Tango.FSE.UI.ViewModels
}
}
+ /// <summary>
+ /// Gets or sets a value indicating whether to display the environment selection.
+ /// </summary>
+ public bool DisplayEnvironment
+ {
+ get { return Email.IsNotNullOrEmpty() && Email.ToLower().EndsWith("@twine-s.com"); }
+ }
+
#endregion
#region Commands
@@ -288,6 +296,12 @@ namespace Tango.FSE.UI.ViewModels
}
IsFree = false;
+
+ if (!DisplayEnvironment) //Force production environment if not a twine user.
+ {
+ SelectedEnvironment = Services.GatewayService.Environments.SingleOrDefault(x => x.Name == "PROD");
+ }
+
SelectedView = LoginViews.Logging;
var result = await AuthenticationProvider.Login(Email, Password, SelectedEnvironment, (status) => Status = status);
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 b4ff8030c..260c0a532 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Views/LoginView.xaml
+++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Views/LoginView.xaml
@@ -65,7 +65,9 @@
<TextBox Margin="0 20 0 0" Text="{Binding Email,UpdateSourceTrigger=PropertyChanged}" material:HintAssist.Hint="Email" material:HintAssist.IsFloating="True"></TextBox>
<PasswordBox Margin="0 20 0 0" helpers:PasswordHelper.Attach="True" helpers:PasswordHelper.Password="{Binding Password,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" material:HintAssist.Hint="Password" material:HintAssist.IsFloating="True"></PasswordBox>
- <ToggleButton x:Name="chkEnv" Visibility="{Binding RelativeSource={RelativeSource Mode=Self},Path=IsChecked,Converter={StaticResource BooleanToVisibilityInverseConverter}}" HorizontalAlignment="Left" ToolTip="Select different environment" Margin="0 10 0 35" TextElement.Foreground="{StaticResource FSE_PrimaryAccentBrush}" Cursor="Hand">
+ <StackPanel MinHeight="100">
+ <StackPanel Visibility="{Binding DisplayEnvironment,Converter={StaticResource BooleanToVisibilityConverter}}">
+ <ToggleButton x:Name="chkEnv" Visibility="{Binding RelativeSource={RelativeSource Mode=Self},Path=IsChecked,Converter={StaticResource BooleanToVisibilityInverseConverter}}" HorizontalAlignment="Left" ToolTip="Select different environment" Margin="0 10 0 35" TextElement.Foreground="{StaticResource FSE_PrimaryAccentBrush}" Cursor="Hand">
<ToggleButton.Style>
<Style TargetType="ToggleButton">
<Setter Property="Template">
@@ -82,7 +84,9 @@
</ToggleButton.Style>
</ToggleButton>
- <ComboBox Visibility="{Binding Source={x:Reference Name=chkEnv},Path=IsChecked,Converter={StaticResource BooleanToVisibilityConverter}}" Margin="0 20 0 0" material:HintAssist.Hint="Environment" material:HintAssist.IsFloating="True" ItemsSource="{Binding Services.GatewayService.Environments}" SelectedItem="{Binding SelectedEnvironment}" DisplayMemberPath="Description"></ComboBox>
+ <ComboBox Visibility="{Binding Source={x:Reference Name=chkEnv},Path=IsChecked,Converter={StaticResource BooleanToVisibilityConverter}}" Margin="0 20 0 0" material:HintAssist.Hint="Environment" material:HintAssist.IsFloating="True" ItemsSource="{Binding Services.GatewayService.Environments}" SelectedItem="{Binding SelectedEnvironment}" DisplayMemberPath="Description"></ComboBox>
+ </StackPanel>
+ </StackPanel>
<CheckBox Margin="0 10 0 0" IsChecked="{Binding RememberMe}">remember my password</CheckBox>
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/HeadCleaningParametersView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/HeadCleaningParametersView.xaml
index 72e377c34..aec12aa63 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/HeadCleaningParametersView.xaml
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/HeadCleaningParametersView.xaml
@@ -44,6 +44,9 @@
</controls:TableGrid.Resources>
<TextBlock Text="Cleaner Flow:" VerticalAlignment="Center"></TextBlock>
<mahapps:NumericUpDown Value="{Binding ActiveRML.CleanerFlow,Mode=TwoWay}" Minimum="0" Maximum="10000" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="False" HorizontalContentAlignment="Left"></mahapps:NumericUpDown>
+
+ <TextBlock Text="Arc Head Cleaning Motor Speed:" VerticalAlignment="Center"></TextBlock>
+ <mahapps:NumericUpDown Value="{Binding ActiveRML.ArcHeadCleaningMotorSpeed,Mode=TwoWay}" Minimum="0" Maximum="10000" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="True" HorizontalContentAlignment="Left"></mahapps:NumericUpDown>
</controls:TableGrid>
</DockPanel>
</StackPanel>
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/Converters/MachineEventToViewConverter.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/Converters/MachineEventToViewConverter.cs
index 47c9e0ddf..6981bd5d6 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/Converters/MachineEventToViewConverter.cs
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/Converters/MachineEventToViewConverter.cs
@@ -22,6 +22,7 @@ namespace Tango.PPC.Events.Converters
_eventViews.Add(EventTypes.JOB_ABORTED, typeof(JobEventView));
_eventViews.Add(EventTypes.JOB_COMPLETED, typeof(JobEventView));
_eventViews.Add(EventTypes.JOB_FAILED, typeof(JobEventView));
+ _eventViews.Add(EventTypes.THREAD_BREAK, typeof(ThreadBreakView));
}
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/EventsViews/ThreadBreakView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/EventsViews/ThreadBreakView.xaml
new file mode 100644
index 000000000..71c4ced07
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/EventsViews/ThreadBreakView.xaml
@@ -0,0 +1,26 @@
+<UserControl x:Class="Tango.PPC.Events.EventsViews.ThreadBreakView"
+ 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:entities="clr-namespace:Tango.BL.Entities;assembly=Tango.BL"
+ xmlns:local="clr-namespace:Tango.PPC.Events.EventsViews"
+ mc:Ignorable="d"
+ d:DesignHeight="220" d:DesignWidth="750" d:DataContext="{d:DesignInstance Type=entities:MachinesEvent, IsDesignTimeCreatable=False}">
+ <Grid Background="{StaticResource TangoPrimaryBackgroundBrush}">
+ <DockPanel>
+ <Image Stretch="None" Margin="20" DockPanel.Dock="Right" Source="../Images/machine_small.png" RenderOptions.BitmapScalingMode="Fant" />
+ <DockPanel Margin="35 20 20 20">
+ <TextBlock FontSize="{StaticResource TangoTitleFontSize}" FontWeight="SemiBold" DockPanel.Dock="Top" Text="{Binding EventType.Title,FallbackValue='Unknown Event'}"></TextBlock>
+
+ <StackPanel Margin="0 30 0 0">
+ <TextBlock TextWrapping="Wrap" FontWeight="SemiBold" Text="{Binding EventType.Description,FallbackValue='No Description'}"></TextBlock>
+ <Rectangle Margin="0 5 0 10" StrokeThickness="2" Stroke="{StaticResource TangoDividerBrush}" />
+
+ <touch:TouchButton x:Name="btnLoadThreadBreakWizard" Margin="0 10 0 0" Height="55" Style="{StaticResource TangoHollowButton}" Width="280" HorizontalAlignment="Left">LOAD THREAD BREAK WIZARD</touch:TouchButton>
+ </StackPanel>
+ </DockPanel>
+ </DockPanel>
+ </Grid>
+</UserControl>
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/EventsViews/ThreadBreakView.xaml.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/EventsViews/ThreadBreakView.xaml.cs
new file mode 100644
index 000000000..7e8337514
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/EventsViews/ThreadBreakView.xaml.cs
@@ -0,0 +1,49 @@
+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.DI;
+using Tango.PPC.Common.ThreadLoading;
+
+namespace Tango.PPC.Events.EventsViews
+{
+ /// <summary>
+ /// Interaction logic for ThreadBreakView.xaml
+ /// </summary>
+ public partial class ThreadBreakView : UserControl
+ {
+ public ThreadBreakView()
+ {
+ InitializeComponent();
+
+ btnLoadThreadBreakWizard.Click += BtnLoadThreadBreakWizard_Click;
+ }
+
+ private void BtnLoadThreadBreakWizard_Click(object sender, RoutedEventArgs e)
+ {
+ try
+ {
+ var threadLoadingService = TangoIOC.Default.GetInstance<IThreadLoadingService>();
+
+ if (threadLoadingService != null)
+ {
+ threadLoadingService.StartThreadBreakWizard();
+ }
+ }
+ catch (Exception ex)
+ {
+ Logging.LogManager.Default.Log(ex, "Error loading the thread break wizard.");
+ }
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/Tango.PPC.Events.csproj b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/Tango.PPC.Events.csproj
index e2133e585..e8d4683ee 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/Tango.PPC.Events.csproj
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Events/Tango.PPC.Events.csproj
@@ -76,6 +76,10 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
+ <Page Include="EventsViews\ThreadBreakView.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
<Page Include="Resources\Styles.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
@@ -98,6 +102,9 @@
<Compile Include="EventsViews\JobEventView.xaml.cs">
<DependentUpon>JobEventView.xaml</DependentUpon>
</Compile>
+ <Compile Include="EventsViews\ThreadBreakView.xaml.cs">
+ <DependentUpon>ThreadBreakView.xaml</DependentUpon>
+ </Compile>
<Compile Include="Properties\AssemblyInfo.cs">
<SubType>Code</SubType>
</Compile>
@@ -180,7 +187,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.Jobs/ViewModels/JobsViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobsViewVM.cs
index a6ccad7de..64931cbe3 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
@@ -809,7 +809,7 @@ namespace Tango.PPC.Jobs.ViewModels
{
var jobFile = await job.ToJobFile();
- using (FileStream fs = new FileStream(Path.Combine(result.Path, jobFile.Name) + ExplorerFileDefinition.Job.Extension, FileMode.Create))
+ using (FileStream fs = new FileStream(Path.Combine(result.Path, jobFile.Name.ToValidFileName()) + ExplorerFileDefinition.Job.Extension, FileMode.Create))
{
jobFile.WriteTo(fs);
}
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Images/thread_loading.png b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Images/thread_loading.png
new file mode 100644
index 000000000..5d536e7ae
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Images/thread_loading.png
Binary files differ
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 94dc4e2cb..f334dac5b 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
@@ -300,10 +300,13 @@
<Resource Include="Images\Waste\present_empty_right.png" />
<Resource Include="Images\Waste\present_full_right.png" />
</ItemGroup>
+ <ItemGroup>
+ <Resource Include="Images\thread_loading.png" />
+ </ItemGroup>
<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.Maintenance/ViewModels/MaintenanceViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/ViewModels/MaintenanceViewVM.cs
index 9de8313f8..c8cb4415d 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
@@ -106,6 +106,8 @@ namespace Tango.PPC.Maintenance.ViewModels
public RelayCommand StartThreadLoadingCommand { get; set; }
+ public RelayCommand StartThreadBreakCommand { get; set; }
+
public MaintenanceViewVM()
{
Guides = new ObservableCollection<GuideBase>(GuideHelper.CreateAllGuides());
@@ -119,7 +121,8 @@ namespace Tango.PPC.Maintenance.ViewModels
OpenCloseRightLeadingWheelsCommand = new OpenCloseRightLeadingWheelsCommand();
ResetThreadLoadingCommand = new ResetThreadLoadingCommand();
HeadCleaningCommand = new RelayCommand(PerformHeadCleaning, () => MachineProvider.MachineOperator.CanPrint);
- StartThreadLoadingCommand = new RelayCommand(StartThreadLoading, () => MachineProvider.MachineOperator.CanPrint);
+ StartThreadLoadingCommand = new RelayCommand(StartThreadLoadingWizard, () => MachineProvider.MachineOperator.CanPrint);
+ StartThreadBreakCommand = new RelayCommand(StartThreadBreakWizard, () => MachineProvider.MachineOperator.CanPrint);
WasteStates = new List<WasteStateModel>()
{
@@ -282,9 +285,14 @@ namespace Tango.PPC.Maintenance.ViewModels
await NotificationProvider.ShowDialog<HeadCleaningViewVM>();
}
- private void StartThreadLoading()
+ private void StartThreadLoadingWizard()
+ {
+ ThreadLoadingService.StartThreadLoadingWizard();
+ }
+
+ private void StartThreadBreakWizard()
{
- ThreadLoadingService.StartThreadLoading();
+ ThreadLoadingService.StartThreadBreakWizard();
}
}
}
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 188983b3f..a24d336ee 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
@@ -12,7 +12,7 @@
xmlns:localControls="clr-namespace:Tango.PPC.Maintenance.Controls"
xmlns:local="clr-namespace:Tango.PPC.Maintenance.Views"
mc:Ignorable="d"
- d:DesignHeight="1380" d:DesignWidth="800" d:DataContext="{d:DesignInstance Type=vm:MaintenanceViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.MaintenanceViewVM}">
+ d:DesignHeight="1800" d:DesignWidth="800" d:DataContext="{d:DesignInstance Type=vm:MaintenanceViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.MaintenanceViewVM}">
<UserControl.Resources>
@@ -252,18 +252,46 @@
<localControls:ButtonState Value="Opened" Content="CLOSE DYEING HEAD LID" />
</localControls:StateTouchButton>
- <touch:TouchButton Margin="20" CornerRadius="25" Height="50" FontSize="18" Style="{StaticResource TangoHollowButton}" Command="{Binding ResetThreadLoadingCommand.Command}">RESET THREAD LOADING</touch:TouchButton>
-
<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 StartThreadLoadingCommand}">THREAD LOADING WIZARD</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>
</StackPanel>
</StackPanel>
</touch:TouchDropShadowBorder>
+ <!--THREAD LOADING-->
+ <touch:TouchDropShadowBorder Margin="0 20 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 Style="{StaticResource Level2ContainerExtraMargin}">
+ <UniformGrid Columns="1" Margin="0 0" HorizontalAlignment="Left">
+ <StackPanel Margin="20">
+ <touch:TouchButton Width="280" HorizontalAlignment="Left" CornerRadius="25" Height="50" FontSize="18" Style="{StaticResource TangoHollowButton}" Command="{Binding StartThreadBreakCommand}">THREAD BREAK WIZARD</touch:TouchButton>
+ <DockPanel Margin="15 10 0 0" TextElement.Foreground="{StaticResource TangoGrayTextBrush}" HorizontalAlignment="Left">
+ <touch:TouchIcon Icon="InformationOutline" Width="14" Height="18" VerticalAlignment="Center" />
+ <TextBlock Margin="5 0 0 0" FontSize="{StaticResource TangoSmallFontSize}">This wizard will help you resolve thread breaking issues</TextBlock>
+ </DockPanel>
+ </StackPanel>
+
+ <StackPanel Margin="20">
+ <touch:TouchButton Width="280" HorizontalAlignment="Left" CornerRadius="25" Height="50" FontSize="18" Style="{StaticResource TangoHollowButton}" Command="{Binding StartThreadLoadingCommand}">THREAD LOADING WIZARD</touch:TouchButton>
+ <DockPanel Margin="15 10 0 0" TextElement.Foreground="{StaticResource TangoGrayTextBrush}" HorizontalAlignment="Left">
+ <touch:TouchIcon Icon="InformationOutline" Width="14" Height="18" VerticalAlignment="Center" />
+ <TextBlock Margin="5 0 0 0" FontSize="{StaticResource TangoSmallFontSize}">This wizard will help you load a new thread in to the system</TextBlock>
+ </DockPanel>
+ </StackPanel>
+
+ <touch:TouchButton Width="280" HorizontalAlignment="Left" Margin="20" CornerRadius="25" Height="50" FontSize="18" Style="{StaticResource TangoHollowButton}" Command="{Binding ResetThreadLoadingCommand.Command}">RESET THREAD LOADING</touch:TouchButton>
+ </UniformGrid>
+ </StackPanel>
+ </StackPanel>
+ </touch:TouchDropShadowBorder>
+
<!--GUIDES-->
<touch:TouchDropShadowBorder Margin="0 20 0 0" Padding="0 0 0 50">
<StackPanel>
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 b9d59334c..9b22fcdb5 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
@@ -22,7 +22,6 @@ namespace Tango.PPC.Storage.ViewModels
{
private bool _allow_exit;
private ExplorerFileItem _selectedItem;
- private static char[] _invalidChars = System.IO.Path.GetInvalidFileNameChars();
private String _currentPath;
public String CurrentPath
@@ -238,10 +237,7 @@ namespace Tango.PPC.Storage.ViewModels
if (text != null)
{
- foreach (var c in _invalidChars)
- {
- text = text.Replace(c.ToString(), "");
- }
+ text = text.ToValidFileName();
_fileName = text;
RaisePropertyChanged(nameof(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 e8d402d89..c57735a7b 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
@@ -112,7 +112,8 @@
<Setter Property="EnableMultiSelect" Value="True"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding Request.Intent}" Value="LoadFile">
- <Setter Property="EnableFileSelection" Value="False"></Setter>
+ <Setter Property="EnableFileSelection" Value="True"></Setter>
+ <Setter Property="EnableMultiSelect" Value="False"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
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 244d26f28..b2c752ca8 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Connection/DefaultMachineProvider.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Connection/DefaultMachineProvider.cs
@@ -136,7 +136,7 @@ namespace Tango.PPC.Common.Connection
{
if (IsConnected)
{
- OnMachineConnected();
+ OnMachineDisconnected();
}
}
}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Controls/ImageGalleryControl.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Controls/ImageGalleryControl.cs
new file mode 100644
index 000000000..ba2550e25
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Controls/ImageGalleryControl.cs
@@ -0,0 +1,114 @@
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.ComponentModel;
+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;
+using System.Windows.Threading;
+using Tango.SharedUI.Controls;
+
+namespace Tango.PPC.Common.Controls
+{
+ [ContentProperty(nameof(Elements))]
+ public class ImageGalleryControl : Control
+ {
+ private NavigationControl _navigationControl;
+ private DispatcherTimer _timer;
+
+ public int SelectedIndex
+ {
+ get { return (int)GetValue(SelectedIndexProperty); }
+ set { SetValue(SelectedIndexProperty, value); }
+ }
+ public static readonly DependencyProperty SelectedIndexProperty =
+ DependencyProperty.Register("SelectedIndex", typeof(int), typeof(ImageGalleryControl), new PropertyMetadata(0));
+
+ public ObservableCollection<FrameworkElement> Elements
+ {
+ get { return (ObservableCollection<FrameworkElement>)GetValue(ElementsProperty); }
+ set { SetValue(ElementsProperty, value); }
+ }
+ public static readonly DependencyProperty ElementsProperty =
+ DependencyProperty.Register("Elements", typeof(ObservableCollection<FrameworkElement>), typeof(ImageGalleryControl), new PropertyMetadata(null));
+
+ public Duration Duration
+ {
+ get { return (Duration)GetValue(DurationProperty); }
+ set { SetValue(DurationProperty, value); }
+ }
+ public static readonly DependencyProperty DurationProperty =
+ DependencyProperty.Register("Duration", typeof(Duration), typeof(ImageGalleryControl), new PropertyMetadata(new Duration(TimeSpan.FromSeconds(2))));
+
+
+ static ImageGalleryControl()
+ {
+ DefaultStyleKeyProperty.OverrideMetadata(typeof(ImageGalleryControl), new FrameworkPropertyMetadata(typeof(ImageGalleryControl)));
+ }
+
+ public ImageGalleryControl()
+ {
+ Elements = new ObservableCollection<FrameworkElement>();
+ Loaded += ImageGalleryControl_Loaded;
+
+ _timer = new DispatcherTimer();
+ _timer.Tick += _timer_Tick;
+ }
+
+ public override void OnApplyTemplate()
+ {
+ base.OnApplyTemplate();
+
+ _navigationControl = GetTemplateChild("navigationControl") as NavigationControl;
+ }
+
+ private void ImageGalleryControl_Loaded(object sender, RoutedEventArgs e)
+ {
+ if (_navigationControl != null)
+ {
+ _navigationControl.Elements = Elements;
+
+ _timer.Interval = Duration.TimeSpan;
+
+ if (!DesignerProperties.GetIsInDesignMode(new DependencyObject()))
+ {
+ _timer.Start();
+ }
+ }
+ }
+
+ private void _timer_Tick(object sender, EventArgs e)
+ {
+ if (SelectedIndex < Elements.Count - 1)
+ {
+ SelectedIndex++;
+ }
+ else
+ {
+ SelectedIndex = 0;
+ }
+ }
+
+ protected override void OnPreviewMouseDown(MouseButtonEventArgs e)
+ {
+ base.OnPreviewMouseDown(e);
+ _timer.Stop();
+ }
+
+ protected override void OnPreviewMouseUp(MouseButtonEventArgs e)
+ {
+ base.OnPreviewMouseUp(e);
+ _timer.Start();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Controls/ImageGalleryControl.xaml b/Software/Visual_Studio/PPC/Tango.PPC.Common/Controls/ImageGalleryControl.xaml
new file mode 100644
index 000000000..f3b45d5b8
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Controls/ImageGalleryControl.xaml
@@ -0,0 +1,101 @@
+<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:controls="clr-namespace:Tango.SharedUI.Controls;assembly=Tango.SharedUI"
+ xmlns:local="clr-namespace:Tango.PPC.Common.Controls">
+
+ <Style TargetType="{x:Type ListBoxItem}" x:Key="Gallery_BlankListBoxItem">
+ <Setter Property="Background" Value="Transparent"/>
+ <Setter Property="BorderThickness" Value="0"></Setter>
+ <Setter Property="Foreground" Value="{Binding Path=(TextElement.Foreground), RelativeSource={RelativeSource AncestorType=ContentPresenter}}"></Setter>
+ <Setter Property="FocusVisualStyle" Value="{x:Null}"></Setter>
+ <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter>
+ <Setter Property="Padding" Value="0"/>
+ <Setter Property="Template">
+ <Setter.Value>
+ <ControlTemplate TargetType="{x:Type ListBoxItem}">
+ <Border x:Name="Bd" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="0" Background="{TemplateBinding Background}" Padding="0" SnapsToDevicePixels="true">
+ <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
+ </Border>
+ <ControlTemplate.Triggers>
+ <Trigger Property="IsSelected" Value="true">
+ <Setter Property="Background" TargetName="Bd" Value="Transparent"/>
+ </Trigger>
+ <MultiTrigger>
+ <MultiTrigger.Conditions>
+ <Condition Property="IsSelected" Value="true"/>
+ <Condition Property="Selector.IsSelectionActive" Value="false"/>
+ </MultiTrigger.Conditions>
+ <Setter Property="Background" TargetName="Bd" Value="Transparent"/>
+ </MultiTrigger>
+ <Trigger Property="IsEnabled" Value="false">
+ <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
+ </Trigger>
+ </ControlTemplate.Triggers>
+ </ControlTemplate>
+ </Setter.Value>
+ </Setter>
+ </Style>
+
+ <Style TargetType="{x:Type ListBox}" x:Key="Gallery_BlankListBox">
+ <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Disabled"></Setter>
+ <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Disabled"></Setter>
+ <Setter Property="BorderThickness" Value="0"></Setter>
+ <Setter Property="Background" Value="Transparent"></Setter>
+ <Setter Property="ItemContainerStyle" Value="{StaticResource Gallery_BlankListBoxItem}"></Setter>
+ </Style>
+
+ <Style TargetType="{x:Type local:ImageGalleryControl}">
+ <Setter Property="Template">
+ <Setter.Value>
+ <ControlTemplate TargetType="{x:Type local:ImageGalleryControl}">
+ <Border Background="{TemplateBinding Background}"
+ BorderBrush="{TemplateBinding BorderBrush}"
+ BorderThickness="{TemplateBinding BorderThickness}">
+
+ <DockPanel>
+
+ <ListBox DockPanel.Dock="Bottom" ItemsSource="{TemplateBinding Elements}" SelectedIndex="{Binding RelativeSource={RelativeSource Mode=TemplatedParent},Path=SelectedIndex,Mode=TwoWay}" Style="{StaticResource Gallery_BlankListBox}">
+ <ListBox.ItemsPanel>
+ <ItemsPanelTemplate>
+ <StackPanel Orientation="Horizontal" HorizontalAlignment="Center"></StackPanel>
+ </ItemsPanelTemplate>
+ </ListBox.ItemsPanel>
+ <ListBox.ItemContainerStyle>
+ <Style TargetType="ListBoxItem" BasedOn="{StaticResource Gallery_BlankListBoxItem}">
+ <Setter Property="Margin" Value="10 0"></Setter>
+ <Setter Property="Template">
+ <Setter.Value>
+ <ControlTemplate TargetType="ListBoxItem">
+ <Ellipse x:Name="ellipse" Stroke="{StaticResource TangoPrimaryAccentBrush}" Width="20" Height="20" StrokeThickness="1">
+ <Ellipse.Style>
+ <Style TargetType="Ellipse">
+
+ </Style>
+ </Ellipse.Style>
+ </Ellipse>
+ <ControlTemplate.Triggers>
+ <Trigger Property="IsSelected" Value="True">
+ <Setter TargetName="ellipse" Property="Fill" Value="{StaticResource TangoGrayBrush}"></Setter>
+ </Trigger>
+ <Trigger Property="IsSelected" Value="False">
+ <Setter TargetName="ellipse" Property="Fill" Value="Transparent"></Setter>
+ </Trigger>
+ </ControlTemplate.Triggers>
+ </ControlTemplate>
+ </Setter.Value>
+ </Setter>
+ </Style>
+ </ListBox.ItemContainerStyle>
+ </ListBox>
+
+ <controls:NavigationControl x:Name="navigationControl" TransitionType="Slide" TransitionDuration="00:00:0.2" SelectedIndex="{TemplateBinding SelectedIndex}">
+
+ </controls:NavigationControl>
+ </DockPanel>
+ </Border>
+ </ControlTemplate>
+ </Setter.Value>
+ </Setter>
+ </Style>
+
+</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 806a94bb0..374f5b51b 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Merged.xaml
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Merged.xaml
@@ -21,6 +21,9 @@
<ResourceDictionary Source="pack://application:,,,/Tango.PPC.Common;component/Resources/Fonts.xaml"/>
<ResourceDictionary Source="pack://application:,,,/Tango.PPC.Common;component/Resources/Styles.xaml"/>
+ <!--PPC Controls-->
+ <ResourceDictionary Source="pack://application:,,,/Tango.PPC.Common;component/Controls/ImageGalleryControl.xaml"/>
+
<!--Converters-->
</ResourceDictionary.MergedDictionaries>
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 0a6e57f5d..4cb3b42dc 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
@@ -146,6 +146,7 @@
<Compile Include="Console\DefaultConsoleEngineService.cs" />
<Compile Include="Console\IConsoleEngineService.cs" />
<Compile Include="Controls\AsyncAdornerControl.cs" />
+ <Compile Include="Controls\ImageGalleryControl.cs" />
<Compile Include="Controls\TwineCatalogControl.xaml.cs">
<DependentUpon>TwineCatalogControl.xaml</DependentUpon>
</Compile>
@@ -280,6 +281,10 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
+ <Page Include="Controls\ImageGalleryControl.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
<Page Include="Controls\MultiPieChart.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
@@ -511,7 +516,7 @@
</Target>
<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/PPC/Tango.PPC.Common/ThreadLoading/IThreadLoadingService.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/ThreadLoading/IThreadLoadingService.cs
index ac878ed07..0394a17c2 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/ThreadLoading/IThreadLoadingService.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/ThreadLoading/IThreadLoadingService.cs
@@ -8,6 +8,7 @@ namespace Tango.PPC.Common.ThreadLoading
{
public interface IThreadLoadingService
{
- void StartThreadLoading();
+ void StartThreadLoadingWizard();
+ void StartThreadBreakWizard();
}
}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadBreakView.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadBreakView.xaml
new file mode 100644
index 000000000..6c64520a4
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadBreakView.xaml
@@ -0,0 +1,225 @@
+<UserControl x:Class="Tango.PPC.UI.Dialogs.ThreadBreakView"
+ 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:controls="clr-namespace:Tango.SharedUI.Controls;assembly=Tango.SharedUI"
+ xmlns:commonControls="clr-namespace:Tango.PPC.Common.Controls;assembly=Tango.PPC.Common"
+ xmlns:local="clr-namespace:Tango.PPC.UI.Dialogs"
+ mc:Ignorable="d"
+ Background="{StaticResource TangoPrimaryBackgroundBrush}" d:DesignHeight="555" d:DesignWidth="560" Width="700" Height="1150" d:DataContext="{d:DesignInstance Type=local:ThreadBreakViewVM, IsDesignTimeCreatable=False}">
+ <Grid>
+ <DockPanel>
+ <StackPanel DockPanel.Dock="Top" Margin="0 30 0 0">
+ <Image HorizontalAlignment="Center" Source="/Images/thread_loading.png" Stretch="None"></Image>
+ <TextBlock HorizontalAlignment="Center" FontSize="{StaticResource TangoHeaderFontSize}" Margin="0 30 0 0">Thread Break Wizard</TextBlock>
+ </StackPanel>
+
+ <StackPanel Margin="10 0 0 0" Orientation="Horizontal" DockPanel.Dock="Bottom">
+ <touch:TouchButton Command="{Binding BackCommand}">
+ <touch:TouchButton.Style>
+ <Style TargetType="touch:TouchButton" BasedOn="{StaticResource TangoFlatButton}">
+ <Setter Property="Foreground" Value="{StaticResource TangoPrimaryAccentBrush}"></Setter>
+ <Style.Triggers>
+ <Trigger Property="IsEnabled" Value="False">
+ <Setter Property="Foreground" Value="{StaticResource TangoGrayBrush}"></Setter>
+ </Trigger>
+ </Style.Triggers>
+ </Style>
+ </touch:TouchButton.Style>
+ <StackPanel>
+ <touch:TouchIcon Icon="ArrowLeft" Width="24" Height="24" />
+ <TextBlock Margin="0 5 0 0" HorizontalAlignment="Center">Back</TextBlock>
+ </StackPanel>
+ </touch:TouchButton>
+ </StackPanel>
+
+ <Grid Margin="0 20 0 0">
+ <controls:NavigationControl Margin="0 5 0 0" SelectedObject="{Binding Stage}" TransitionType="Slide" TransitionAlwaysFades="False" TransitionDuration="00:00:0.1" SelectedIndex="0">
+
+ <!--Guiding Units-->
+ <Grid controls:NavigationControl.NavigationName="GuidingUnits" Background="{StaticResource TangoPrimaryBackgroundBrush}">
+ <DockPanel>
+ <UniformGrid Margin="20" Columns="3" DockPanel.Dock="Bottom" Height="55">
+ <touch:TouchButton Style="{StaticResource TangoHollowButton}" Padding="30 0" HorizontalAlignment="Left" Command="{Binding GuidingUnitsFoundCantFixCommand}">Found But Can't Fix</touch:TouchButton>
+ <touch:TouchButton Style="{StaticResource TangoHollowButton}" Padding="40 0" HorizontalAlignment="Right" Command="{Binding GuidingUnitsFoundAndFixedCommand}">Found and Fixed</touch:TouchButton>
+ <touch:TouchButton Style="{StaticResource TangoHollowButton}" Padding="50 0" HorizontalAlignment="Right" Command="{Binding GuidingUnitsCantFindItCommand}">Can't Find It</touch:TouchButton>
+ </UniformGrid>
+ <DockPanel>
+ <StackPanel DockPanel.Dock="Top">
+ <TextBlock TextWrapping="Wrap" TextAlignment="Center" Margin="40 0" HorizontalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}">Please check guiding units on both sides of the system and fix/tie the thread if possible.</TextBlock>
+ </StackPanel>
+
+ <commonControls:ImageGalleryControl Duration="00:00:02">
+ <Image Stretch="Uniform" Source="/Images/ThreadLoading/GuidingUnits/1.jpg"></Image>
+ </commonControls:ImageGalleryControl>
+ </DockPanel>
+ </DockPanel>
+ </Grid>
+
+ <!--Feeding Units-->
+ <Grid controls:NavigationControl.NavigationName="FeedingUnits" Background="{StaticResource TangoPrimaryBackgroundBrush}">
+ <DockPanel>
+ <UniformGrid Margin="20" Columns="2" DockPanel.Dock="Bottom" Height="55">
+ <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Left" Command="{Binding FeedingUnitsFoundAndFixedCommand}">Found and Fixed</touch:TouchButton>
+ <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Right" Command="{Binding FeedingUnitsCantFixCommand}">Can't Fix</touch:TouchButton>
+ </UniformGrid>
+ <TextBlock Foreground="{StaticResource TangoErrorBrush}" DockPanel.Dock="Bottom" TextWrapping="Wrap" TextAlignment="Center" Margin="50 20">
+ if the thread is out of is route or tangle on one of the components you can go to the maintenance screen and open the component to solve the problem
+ </TextBlock>
+ <DockPanel>
+ <StackPanel DockPanel.Dock="Top">
+ <TextBlock TextWrapping="Wrap" TextAlignment="Center" Margin="40 0" HorizontalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}">
+ Open the covers and check the feeder and puller and fix/tie if possible.
+ </TextBlock>
+ </StackPanel>
+
+ <Grid>
+ <Grid Visibility="{Binding IsArcHead,Converter={StaticResource BooleanToVisibilityInverseConverter}}">
+ <commonControls:ImageGalleryControl Duration="00:00:02">
+ <Image Stretch="Uniform" Source="/Images/ThreadLoading/FeedingUnits/1.jpg"></Image>
+ <Image Stretch="Uniform" Source="/Images/ThreadLoading/FeedingUnits/2.jpg"></Image>
+ <Image Stretch="Uniform" Source="/Images/ThreadLoading/FeedingUnits/3.jpg"></Image>
+ <Image Stretch="Uniform" Source="/Images/ThreadLoading/FeedingUnits/4.jpg"></Image>
+ </commonControls:ImageGalleryControl>
+ </Grid>
+
+ <Grid Visibility="{Binding IsArcHead,Converter={StaticResource BooleanToVisibilityConverter}}">
+ <commonControls:ImageGalleryControl Duration="00:00:02">
+ <Image Stretch="Uniform" Source="/Images/ThreadLoading/FeedingUnits/arc/1.jpg"></Image>
+ <Image Stretch="Uniform" Source="/Images/ThreadLoading/FeedingUnits/arc/2.jpg"></Image>
+ <Image Stretch="Uniform" Source="/Images/ThreadLoading/FeedingUnits/arc/3.jpg"></Image>
+ <Image Stretch="Uniform" Source="/Images/ThreadLoading/FeedingUnits/arc/4.jpg"></Image>
+ <Image Stretch="Uniform" Source="/Images/ThreadLoading/FeedingUnits/arc/5.jpg"></Image>
+ </commonControls:ImageGalleryControl>
+ </Grid>
+ </Grid>
+ </DockPanel>
+ </DockPanel>
+ </Grid>
+
+ <!--The Dryer-->
+ <Grid controls:NavigationControl.NavigationName="TheDryer" Background="{StaticResource TangoPrimaryBackgroundBrush}">
+ <DockPanel>
+ <UniformGrid Margin="20" Columns="2" DockPanel.Dock="Bottom" Height="55">
+ <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Left" Command="{Binding TheDryerRemovedSuccessfullyCommand}">Removed Successfully</touch:TouchButton>
+ <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Right" Command="{Binding TheDryerCantRemoveCommand}">Can't Remove</touch:TouchButton>
+ </UniformGrid>
+ <StackPanel DockPanel.Dock="Bottom" TextElement.Foreground="{StaticResource TangoErrorBrush}" Margin="50 20">
+ <DockPanel HorizontalAlignment="Center">
+ <touch:TouchIcon Icon="Alert" Foreground="{StaticResource TangoErrorBrush}" />
+ <TextBlock Margin="5 0 0 0" VerticalAlignment="Center">HOT SURFACE!</TextBlock>
+ </DockPanel>
+ <TextBlock Margin="0 5 0 0" Foreground="{StaticResource TangoErrorBrush}" TextWrapping="Wrap" TextAlignment="Center">
+ Recommended to cool down and/or to wear safety gloves
+ </TextBlock>
+ </StackPanel>
+ <DockPanel>
+ <StackPanel DockPanel.Dock="Top">
+ <TextBlock TextWrapping="Wrap" TextAlignment="Center" Margin="40 0" HorizontalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}">
+ Open the dryer, cut the thread and remove any residue.
+ </TextBlock>
+ </StackPanel>
+
+ <commonControls:ImageGalleryControl Duration="00:00:02">
+ <Image Stretch="Uniform" Source="/Images/ThreadLoading/TheDryer/1.jpg"></Image>
+ <Image Stretch="Uniform" Source="/Images/ThreadLoading/TheDryer/2.jpg"></Image>
+ <Image Stretch="Uniform" Source="/Images/ThreadLoading/TheDryer/3.jpg"></Image>
+ <Image Stretch="Uniform" Source="/Images/ThreadLoading/TheDryer/4.jpg"></Image>
+ <Image Stretch="Uniform" Source="/Images/ThreadLoading/TheDryer/5.jpg"></Image>
+ </commonControls:ImageGalleryControl>
+ </DockPanel>
+ </DockPanel>
+ </Grid>
+
+ <!--Dryer Close-->
+ <Grid controls:NavigationControl.NavigationName="DryerClose" Background="{StaticResource TangoPrimaryBackgroundBrush}">
+ <DockPanel>
+ <UniformGrid Margin="20" Columns="1" DockPanel.Dock="Bottom" Height="55">
+ <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="300" HorizontalAlignment="Center" Command="{Binding OpenThreadLoadingWizardCommand}">Open The Thread Loading Wizard</touch:TouchButton>
+ </UniformGrid>
+ <TextBlock DockPanel.Dock="Bottom" TextWrapping="Wrap" TextAlignment="Center" Margin="50 20">
+ You will be able to open the thread loading wizard once the dryer door is closed
+ </TextBlock>
+ <DockPanel>
+ <StackPanel DockPanel.Dock="Top">
+ <TextBlock TextWrapping="Wrap" TextAlignment="Center" Margin="40 0" HorizontalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}">
+ Close the dryer door
+ </TextBlock>
+ </StackPanel>
+
+ <commonControls:ImageGalleryControl Duration="00:00:02">
+ <Image Stretch="Uniform" Source="/Images/ThreadLoading/DryerClose/1.jpg"></Image>
+ <Image Stretch="Uniform" Source="/Images/ThreadLoading/DryerClose/2.jpg"></Image>
+ <Image Stretch="Uniform" Source="/Images/ThreadLoading/DryerClose/3.jpg"></Image>
+ <Image Stretch="Uniform" Source="/Images/ThreadLoading/DryerClose/4.jpg"></Image>
+ </commonControls:ImageGalleryControl>
+ </DockPanel>
+ </DockPanel>
+ </Grid>
+
+ <!--Contact Support-->
+ <Grid controls:NavigationControl.NavigationName="ContactSupport" Background="{StaticResource TangoPrimaryBackgroundBrush}">
+ <DockPanel>
+ <UniformGrid Margin="20" Columns="1" DockPanel.Dock="Bottom" Height="55">
+ <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Center" Command="{Binding CloseCommand}">Close</touch:TouchButton>
+ </UniformGrid>
+ <DockPanel>
+ <StackPanel DockPanel.Dock="Top">
+ <TextBlock TextWrapping="Wrap" TextAlignment="Center" Margin="40 0" HorizontalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}">
+ Please Contact Twine Customer Care
+ </TextBlock>
+ </StackPanel>
+
+ <Grid>
+ <TextBlock HorizontalAlignment="Center" Margin="0 50 0 0" FontSize="40" Foreground="{StaticResource TangoPrimaryAccentBrush}">support@twine-s.com</TextBlock>
+ </Grid>
+ </DockPanel>
+ </DockPanel>
+ </Grid>
+
+ <!--Jogging-->
+ <Grid controls:NavigationControl.NavigationName="Jogging" Background="{StaticResource TangoPrimaryBackgroundBrush}">
+ <DockPanel>
+ <DockPanel>
+ <StackPanel DockPanel.Dock="Top">
+ <TextBlock TextWrapping="Wrap" TextAlignment="Center" Margin="40 0" HorizontalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}">
+ Verifying thread movement
+ </TextBlock>
+ </StackPanel>
+
+ <StackPanel Margin="0 100 0 0">
+ <TextBlock HorizontalAlignment="Center" FontWeight="SemiBold">working...</TextBlock>
+ <touch:TouchBusyIndicator Foreground="{StaticResource TangoGrayBrush}" Width="130" Height="130" Margin="0 40 0 0" StrokeThickness="8" IsIndeterminate="{Binding IsVisible}" />
+ </StackPanel>
+ </DockPanel>
+ </DockPanel>
+ </Grid>
+
+ <!--Fixed-->
+ <Grid controls:NavigationControl.NavigationName="Fixed" Background="{StaticResource TangoPrimaryBackgroundBrush}">
+ <DockPanel>
+ <UniformGrid Margin="20" Columns="1" DockPanel.Dock="Bottom" Height="55">
+ <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Center" Command="{Binding CloseCommand}">Close</touch:TouchButton>
+ </UniformGrid>
+ <DockPanel>
+ <StackPanel DockPanel.Dock="Top">
+ <TextBlock TextWrapping="Wrap" TextAlignment="Center" Margin="40 0" HorizontalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}">
+ Issue Resolved
+ </TextBlock>
+ </StackPanel>
+
+ <Grid>
+ <touch:TouchIcon Icon="CheckCircleOutline" Foreground="{StaticResource TangoSuccessBrush}" HorizontalAlignment="Center" VerticalAlignment="Top" Width="100" Margin="0 100 0 0" />
+ </Grid>
+ </DockPanel>
+ </DockPanel>
+ </Grid>
+ </controls:NavigationControl>
+ </Grid>
+ </DockPanel>
+
+ <touch:TouchIconButton Command="{Binding CloseCommand}" HorizontalAlignment="Right" VerticalAlignment="Top" Icon="Close" Width="45" Height="45" Padding="14" Foreground="{StaticResource TangoDarkForegroundBrush}" />
+ </Grid>
+</UserControl>
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadBreakView.xaml.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadBreakView.xaml.cs
new file mode 100644
index 000000000..c105a9a15
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadBreakView.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 ThreadBreakWizard.xaml
+ /// </summary>
+ public partial class ThreadBreakView : UserControl
+ {
+ public ThreadBreakView()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadBreakViewVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadBreakViewVM.cs
new file mode 100644
index 000000000..131f976c1
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadBreakViewVM.cs
@@ -0,0 +1,243 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.Core.Commands;
+using Tango.Core.DI;
+using Tango.Logging;
+using Tango.PPC.Common.Connection;
+using Tango.PPC.Common.Notifications;
+using Tango.SharedUI;
+
+namespace Tango.PPC.UI.Dialogs
+{
+ public class ThreadBreakViewVM : DialogViewVM
+ {
+ public enum ThreadBreakWizardResult
+ {
+ None,
+ StartThreadLoading
+ }
+
+ public enum WizardStage
+ {
+ Welcome,
+ GuidingUnits,
+ FeedingUnits,
+ Jogging,
+ TheDryer,
+ DryerClose,
+ Fixed,
+ ContactSupport,
+ }
+
+ [TangoInject]
+ private IMachineProvider MachineProvider { get; set; }
+
+ [TangoInject]
+ private INotificationProvider NotificationProvider { get; set; }
+
+ public ThreadBreakWizardResult Result { get; set; }
+
+ private WizardStage _stage;
+ public WizardStage Stage
+ {
+ get { return _stage; }
+ set { _stage = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); }
+ }
+
+ private bool _isArcHead;
+ public bool IsArcHead
+ {
+ get { return _isArcHead; }
+ set { _isArcHead = value; RaisePropertyChangedAuto(); }
+ }
+
+ public RelayCommand BackCommand { get; set; }
+
+ //Guiding Units
+ public RelayCommand GuidingUnitsFoundCantFixCommand { get; set; }
+ public RelayCommand GuidingUnitsCantFindItCommand { get; set; }
+ public RelayCommand GuidingUnitsFoundAndFixedCommand { get; set; }
+
+ //Feeding Units
+ public RelayCommand FeedingUnitsCantFixCommand { get; set; }
+ public RelayCommand FeedingUnitsFoundAndFixedCommand { get; set; }
+
+ //The Dryer
+ public RelayCommand TheDryerCantRemoveCommand { get; set; }
+ public RelayCommand TheDryerRemovedSuccessfullyCommand { get; set; }
+
+ //Dryer Close
+ public RelayCommand OpenThreadLoadingWizardCommand { get; set; }
+
+ public ThreadBreakViewVM()
+ {
+ CanClose = true;
+ TangoIOC.Default.Inject(this);
+
+ MachineProvider.MachineOperator.MachineEventsStateProvider.EventsChanged += MachineEventsStateProvider_EventsChanged;
+ MachineProvider.MachineDisconnected += MachineProvider_MachineDisconnected;
+
+ IsArcHead = MachineProvider.Machine.MachineHeadType == BL.Enumerations.HeadTypes.Arc;
+
+ BackCommand = new RelayCommand(GoBack, CanGoBack);
+
+ //Guiding Units Commands
+ GuidingUnitsFoundCantFixCommand = new RelayCommand(GuidingUnitsFoundCantFix);
+ GuidingUnitsCantFindItCommand = new RelayCommand(GuidingUnitsCantFindIt);
+ GuidingUnitsFoundAndFixedCommand = new RelayCommand(GuidingUnitsFoundAndFixed);
+
+ //Feeding Units Commands
+ FeedingUnitsCantFixCommand = new RelayCommand(FeedingUnitsCantFix);
+ FeedingUnitsFoundAndFixedCommand = new RelayCommand(FeedingUnitsFoundAndFixed);
+
+ //The Dryer Commands
+ TheDryerRemovedSuccessfullyCommand = new RelayCommand(TheDryerRemovedSuccessfully);
+ TheDryerCantRemoveCommand = new RelayCommand(TheDryerCantRemove);
+
+ OpenThreadLoadingWizardCommand = new RelayCommand(OpenThreadLoadingWizard, () => !MachineProvider.MachineOperator.MachineEventsStateProvider.Events.Any(x => x.Type == BL.Enumerations.EventTypes.DRYER_DOOR_OPEN));
+ }
+
+ private void MachineProvider_MachineDisconnected(object sender, EventArgs e)
+ {
+ InvokeUI(() =>
+ {
+ Cancel();
+ });
+ }
+
+ private void MachineEventsStateProvider_EventsChanged(object sender, IEnumerable<BL.Entities.MachinesEvent> e)
+ {
+ InvalidateRelayCommands();
+ }
+
+ #region Back
+
+ private bool CanGoBack()
+ {
+ return Stage != WizardStage.GuidingUnits &&
+ Stage != WizardStage.Jogging &&
+ Stage != WizardStage.Fixed;
+ }
+
+ private void GoBack()
+ {
+ switch (Stage)
+ {
+ case WizardStage.FeedingUnits:
+ Stage = WizardStage.GuidingUnits;
+ break;
+ case WizardStage.TheDryer:
+ Stage = WizardStage.GuidingUnits;
+ break;
+ case WizardStage.ContactSupport:
+ Stage = WizardStage.TheDryer;
+ break;
+ case WizardStage.DryerClose:
+ Stage = WizardStage.TheDryer;
+ break;
+ }
+ }
+
+ #endregion
+
+ #region Guiding Units Commands
+
+ private async void GuidingUnitsFoundAndFixed()
+ {
+ Stage = WizardStage.Jogging;
+
+ try
+ {
+ await MachineProvider.MachineOperator.AttemptThreadJogging();
+ Stage = WizardStage.Fixed;
+ }
+ catch (Exception ex)
+ {
+ LogManager.Log(ex, LogCategory.Warning, "Error occurred while attempting to perform thread jogging.");
+ Stage = WizardStage.FeedingUnits;
+ }
+ }
+
+ private void GuidingUnitsCantFindIt()
+ {
+ Stage = WizardStage.FeedingUnits;
+ }
+
+ private void GuidingUnitsFoundCantFix()
+ {
+ Stage = WizardStage.TheDryer;
+ }
+
+ #endregion
+
+ #region Feeding Units Commands
+
+ private void FeedingUnitsCantFix()
+ {
+ Stage = WizardStage.TheDryer;
+ }
+
+ private async void FeedingUnitsFoundAndFixed()
+ {
+ Stage = WizardStage.Jogging;
+
+ try
+ {
+ await MachineProvider.MachineOperator.AttemptThreadJogging();
+ Stage = WizardStage.Fixed;
+ }
+ catch (Exception ex)
+ {
+ LogManager.Log(ex, LogCategory.Warning, "Error occurred while attempting to perform thread jogging.");
+ Stage = WizardStage.TheDryer;
+ }
+ }
+
+ #endregion
+
+ #region The Dryer Commands
+
+ private void TheDryerCantRemove()
+ {
+ Stage = WizardStage.ContactSupport;
+ }
+
+ private void TheDryerRemovedSuccessfully()
+ {
+ Stage = WizardStage.DryerClose;
+ }
+
+ #endregion
+
+ #region Dryer Close Commands
+
+ private void OpenThreadLoadingWizard()
+ {
+ Result = ThreadBreakWizardResult.StartThreadLoading;
+ Accept();
+ }
+
+ #endregion
+
+ protected override void Accept()
+ {
+ base.Accept();
+ CleanUp();
+ }
+
+ protected override void Cancel()
+ {
+ base.Cancel();
+ CleanUp();
+ }
+
+ private void CleanUp()
+ {
+ MachineProvider.MachineOperator.MachineEventsStateProvider.EventsChanged -= MachineEventsStateProvider_EventsChanged;
+ MachineProvider.MachineDisconnected -= MachineProvider_MachineDisconnected;
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadLoadingView.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadLoadingView.xaml
index a88d7a598..3d37c81bd 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadLoadingView.xaml
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadLoadingView.xaml
@@ -4,6 +4,7 @@
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:commonControls="clr-namespace:Tango.PPC.Common.Controls;assembly=Tango.PPC.Common"
xmlns:controls="clr-namespace:Tango.SharedUI.Controls;assembly=Tango.SharedUI"
xmlns:local="clr-namespace:Tango.PPC.UI.Dialogs"
mc:Ignorable="d"
@@ -17,123 +18,153 @@
<Grid Margin="0 20 0 0">
<controls:NavigationControl Margin="0 5 0 0" SelectedObject="{Binding Stage}" TransitionType="Slide" TransitionAlwaysFades="False" TransitionDuration="00:00:0.1" SelectedIndex="0">
+ <!--Welcome-->
<Grid controls:NavigationControl.NavigationName="Welcome" Background="{StaticResource TangoPrimaryBackgroundBrush}">
<DockPanel>
- <UniformGrid Margin="20" Columns="2" DockPanel.Dock="Bottom" Height="55">
- <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Left" Command="{Binding AbortCommand}">CLOSE</touch:TouchButton>
- <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Right" Command="{Binding ContinueCommand}">CONTINUE</touch:TouchButton>
+ <UniformGrid Margin="50" Columns="1" DockPanel.Dock="Bottom" Height="55">
+ <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Center" Command="{Binding ContinueCommand}">Continue</touch:TouchButton>
</UniformGrid>
<DockPanel Margin="0 50 0 0" >
<StackPanel DockPanel.Dock="Top">
<TextBlock HorizontalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}">Welcome to the automatic thread loading wizard.</TextBlock>
- <DockPanel HorizontalAlignment="Center" Margin="0 20 0 0">
- <touch:TouchIcon Icon="Alert" VerticalAlignment="Center" Foreground="{StaticResource TangoWarningBrush}" />
- <TextBlock TextWrapping="Wrap" TextAlignment="Center" VerticalAlignment="Center" Margin="10 0 0 0">Please ensure there are no thread residue in the system and press 'continue'.</TextBlock>
- </DockPanel>
+ <StackPanel HorizontalAlignment="Center" Margin="0 20 0 0">
+ <touch:TouchIcon Icon="Alert" VerticalAlignment="Center" Foreground="{StaticResource TangoErrorBrush}" />
+ <TextBlock TextWrapping="Wrap" TextAlignment="Center" VerticalAlignment="Center" Margin="0 10 0 0" Width="400">
+ <Run>Please ensure there are no thread residue in the system and press</Run>
+ <Run FontWeight="SemiBold">continue</Run>
+ </TextBlock>
+ </StackPanel>
</StackPanel>
- <Image Stretch="Uniform" Source="/Images/thread_loading_preview.png" VerticalAlignment="Bottom"></Image>
+ <Image Stretch="Uniform" Source="/Images/ThreadLoading/NewThread/TS1800_CloseUp_Feeder_P.jpg" VerticalAlignment="Center" Margin="50"></Image>
</DockPanel>
</DockPanel>
</Grid>
+
+ <!--Preparing-->
<Grid controls:NavigationControl.NavigationName="Preparing" Background="{StaticResource TangoPrimaryBackgroundBrush}">
<DockPanel>
- <UniformGrid Margin="20" Columns="2" DockPanel.Dock="Bottom" Height="55">
- <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Left" Command="{Binding AbortCommand}">CLOSE</touch:TouchButton>
- <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Right" Command="{Binding ContinueCommand}">CONTINUE</touch:TouchButton>
+ <UniformGrid Margin="50" Columns="1" DockPanel.Dock="Bottom" Height="55">
+ <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Center" Command="{Binding ContinueCommand}">Continue</touch:TouchButton>
</UniformGrid>
<DockPanel Margin="0 20 0 0">
- <StackPanel VerticalAlignment="Center" DockPanel.Dock="Top">
+ <StackPanel VerticalAlignment="Top" DockPanel.Dock="Top" Margin="0 40 0 0">
<TextBlock Margin="0 50 0 0" FontSize="{StaticResource TangoTitleFontSize}" HorizontalAlignment="Center" TextWrapping="Wrap" TextAlignment="Center">
The system is now preparing...
</TextBlock>
- <touch:TouchProgressBar Margin="50 10 50 0" Height="10" IsIndeterminate="{Binding IsVisible}" />
+ <touch:TouchBusyIndicator Width="140" Height="140" StrokeThickness="8" IsIndeterminate="{Binding IsVisible}" Margin="0 50 0 0" Foreground="{StaticResource TangoGrayBrush}" />
</StackPanel>
- <Image VerticalAlignment="Bottom" Stretch="Uniform" Source="/Images/thread_loading_preview.png"></Image>
</DockPanel>
</DockPanel>
</Grid>
+
+ <!--Ready For Loading-->
<Grid controls:NavigationControl.NavigationName="ReadyForLoading" Background="{StaticResource TangoPrimaryBackgroundBrush}">
<DockPanel>
- <UniformGrid Margin="20" Columns="2" DockPanel.Dock="Bottom" Height="55">
- <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Left" Command="{Binding AbortCommand}">CLOSE</touch:TouchButton>
- <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Right" Command="{Binding ContinueCommand}">CONTINUE</touch:TouchButton>
+ <UniformGrid Margin="50" Columns="1" DockPanel.Dock="Bottom" Height="55">
+ <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Center" Command="{Binding ContinueCommand}">Continue</touch:TouchButton>
</UniformGrid>
<DockPanel Margin="0 50 0 0">
<StackPanel DockPanel.Dock="Top">
<TextBlock HorizontalAlignment="Center" TextWrapping="Wrap" TextAlignment="Center">
- Please select the thread type you are going to load and press 'continue'.
+ <Run>Please select the thread type you are going to load and press</Run>
+ <Run FontWeight="SemiBold">continue</Run>
</TextBlock>
<touch:TouchComboBox Margin="0 40 0 0" Width="500" ItemsSource="{Binding Rmls}" SelectedItem="{Binding SelectedRml}" DisplayMemberPath="Name" Title="Select thread type"></touch:TouchComboBox>
</StackPanel>
- <touch:TouchGifAnimation Margin="10" Source="/Images/thread_loading.gif" VerticalAlignment="Bottom" Stretch="Uniform" EnableAnimation="{Binding IsVisible}" />
+
+ <Grid>
+ <Grid Visibility="{Binding IsArcHead,Converter={StaticResource BooleanToVisibilityInverseConverter}}">
+ <touch:TouchGifAnimation Margin="50" Source="/Images/thread_loading.gif" VerticalAlignment="Center" Stretch="Uniform" EnableAnimation="{Binding IsVisible}" />
+ </Grid>
+
+ <Grid>
+ <commonControls:ImageGalleryControl Duration="00:00:02">
+ <Image Stretch="Uniform" Source="/Images/ThreadLoading/NewThread/ReadyForLoading/arc/1.jpg"></Image>
+ <Image Stretch="Uniform" Source="/Images/ThreadLoading/NewThread/ReadyForLoading/arc/2.jpg"></Image>
+ <Image Stretch="Uniform" Source="/Images/ThreadLoading/NewThread/ReadyForLoading/arc/3.jpg"></Image>
+ <Image Stretch="Uniform" Source="/Images/ThreadLoading/NewThread/ReadyForLoading/arc/4.jpg"></Image>
+ <Image Stretch="Uniform" Source="/Images/ThreadLoading/NewThread/ReadyForLoading/arc/5.jpg"></Image>
+ <Image Stretch="Uniform" Source="/Images/ThreadLoading/NewThread/ReadyForLoading/arc/6.jpg"></Image>
+ <Image Stretch="Uniform" Source="/Images/ThreadLoading/NewThread/ReadyForLoading/arc/7.jpg"></Image>
+ </commonControls:ImageGalleryControl>
+ </Grid>
+ </Grid>
</DockPanel>
</DockPanel>
</Grid>
+
+ <!--Finalizing-->
<Grid controls:NavigationControl.NavigationName="Finalizing" Background="{StaticResource TangoPrimaryBackgroundBrush}">
<DockPanel>
- <UniformGrid Margin="20" Columns="2" DockPanel.Dock="Bottom" Height="55">
- <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Left" Command="{Binding AbortCommand}">CLOSE</touch:TouchButton>
- <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Right" Command="{Binding ContinueCommand}">CONTINUE</touch:TouchButton>
+ <UniformGrid Margin="50" Columns="1" DockPanel.Dock="Bottom" Height="55">
+ <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Center" Command="{Binding ContinueCommand}">Continue</touch:TouchButton>
</UniformGrid>
<DockPanel Margin="0 20 0 0">
<StackPanel VerticalAlignment="Center" DockPanel.Dock="Top">
<TextBlock Margin="0 50 0 0" FontSize="{StaticResource TangoTitleFontSize}" HorizontalAlignment="Center" TextWrapping="Wrap" TextAlignment="Center">
The system is now loading the thread...
</TextBlock>
- <touch:TouchProgressBar Margin="50 10 50 0" Height="10" IsIndeterminate="{Binding IsVisible}" />
+ <touch:TouchProgressBar Margin="50 40 50 0" Height="10" IsIndeterminate="{Binding IsVisible}" />
</StackPanel>
- <Image VerticalAlignment="Bottom" Stretch="Uniform" Source="/Images/thread_loading_preview.png"></Image>
+
+ <Image VerticalAlignment="Center" Margin="50" Stretch="Uniform" Source="/Images/ThreadLoading/NewThread/machine_full.jpg"></Image>
</DockPanel>
</DockPanel>
</Grid>
+
+ <!--Completed-->
<Grid controls:NavigationControl.NavigationName="Completed" Background="{StaticResource TangoPrimaryBackgroundBrush}">
<DockPanel>
- <UniformGrid Margin="20" DockPanel.Dock="Bottom" Height="55">
- <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Right" Command="{Binding AbortCommand}">CLOSE</touch:TouchButton>
+ <UniformGrid Margin="50" DockPanel.Dock="Bottom" Height="55">
+ <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Center" Command="{Binding AbortCommand}">Close</touch:TouchButton>
</UniformGrid>
<DockPanel Margin="0 50 0 0" >
<StackPanel DockPanel.Dock="Top">
- <touch:TouchIcon Icon="Check" HorizontalAlignment="Center" Foreground="{StaticResource TangoSuccessBrush}" Width="100" Height="100" />
<TextBlock HorizontalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}">Thread loading completed successfully!</TextBlock>
+ <touch:TouchIcon Margin="0 40 0 0" Icon="CheckCircleOutline" HorizontalAlignment="Center" Foreground="{StaticResource TangoSuccessBrush}" Width="100" Height="100" />
</StackPanel>
- <Image Stretch="Uniform" Source="/Images/thread_loading_preview.png" VerticalAlignment="Bottom"></Image>
</DockPanel>
</DockPanel>
</Grid>
+
+ <!--Preparation Error-->
<Grid controls:NavigationControl.NavigationName="PreparationError" Background="{StaticResource TangoPrimaryBackgroundBrush}">
<DockPanel>
- <UniformGrid Margin="20" Columns="2" DockPanel.Dock="Bottom" Height="55">
- <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Left" Command="{Binding AbortCommand}">CLOSE</touch:TouchButton>
- <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Right" Command="{Binding ContinueCommand}">RETRY</touch:TouchButton>
+ <UniformGrid Margin="50" Columns="2" DockPanel.Dock="Bottom" Height="55">
+ <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Left" Command="{Binding AbortCommand}">Close</touch:TouchButton>
+ <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Right" Command="{Binding ContinueCommand}">Retry</touch:TouchButton>
</UniformGrid>
<DockPanel Margin="0 50 0 0" >
<StackPanel DockPanel.Dock="Top">
- <touch:TouchIcon Icon="Alert" HorizontalAlignment="Center" Foreground="{StaticResource TangoErrorBrush}" Width="100" Height="100" />
<TextBlock HorizontalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}">Something went wrong</TextBlock>
- <TextBlock Margin="0 5 0 0" FontSize="{StaticResource TangoSmallFontSize}" TextAlignment="Center" TextWrapping="Wrap" HorizontalAlignment="Center" Foreground="{StaticResource TangoGrayTextBrush}" Text="{Binding Error}"></TextBlock>
+ <touch:TouchIcon Icon="AlertCircleOutline" Margin="0 40 0 0" HorizontalAlignment="Center" Foreground="{StaticResource TangoErrorBrush}" Width="100" Height="100" />
+ <TextBlock Margin="0 10 0 0" FontSize="{StaticResource TangoSmallFontSize}" TextAlignment="Center" TextWrapping="Wrap" HorizontalAlignment="Center" Foreground="{StaticResource TangoGrayTextBrush}" Text="{Binding Error}"></TextBlock>
</StackPanel>
- <Image Stretch="Uniform" Source="/Images/thread_loading_preview.png" VerticalAlignment="Bottom"></Image>
</DockPanel>
</DockPanel>
</Grid>
+
+ <!--Finalization Error-->
<Grid controls:NavigationControl.NavigationName="FinalizationError" Background="{StaticResource TangoPrimaryBackgroundBrush}">
<DockPanel>
- <UniformGrid Margin="20" Columns="2" DockPanel.Dock="Bottom" Height="55">
- <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Left" Command="{Binding AbortCommand}">CLOSE</touch:TouchButton>
- <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Right" Command="{Binding ContinueCommand}">RETRY</touch:TouchButton>
+ <UniformGrid Margin="50" Columns="2" DockPanel.Dock="Bottom" Height="55">
+ <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Left" Command="{Binding AbortCommand}">Close</touch:TouchButton>
+ <touch:TouchButton Style="{StaticResource TangoHollowButton}" Width="250" HorizontalAlignment="Right" Command="{Binding ContinueCommand}">Retry</touch:TouchButton>
</UniformGrid>
<DockPanel Margin="0 50 0 0" >
<StackPanel DockPanel.Dock="Top">
- <touch:TouchIcon Icon="Alert" HorizontalAlignment="Center" Foreground="{StaticResource TangoErrorBrush}" Width="100" Height="100" />
<TextBlock HorizontalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}">Something went wrong</TextBlock>
- <TextBlock Margin="0 5 0 0" FontSize="{StaticResource TangoSmallFontSize}" TextAlignment="Center" TextWrapping="Wrap" HorizontalAlignment="Center" Foreground="{StaticResource TangoGrayTextBrush}" Text="{Binding Error}"></TextBlock>
+ <touch:TouchIcon Icon="AlertCircleOutline" Margin="0 40 0 0" HorizontalAlignment="Center" Foreground="{StaticResource TangoErrorBrush}" Width="100" Height="100" />
+ <TextBlock Margin="0 10 0 0" FontSize="{StaticResource TangoSmallFontSize}" TextAlignment="Center" TextWrapping="Wrap" HorizontalAlignment="Center" Foreground="{StaticResource TangoGrayTextBrush}" Text="{Binding Error}"></TextBlock>
</StackPanel>
- <Image Stretch="Uniform" Source="/Images/thread_loading_preview.png" VerticalAlignment="Bottom"></Image>
</DockPanel>
</DockPanel>
</Grid>
</controls:NavigationControl>
+
</Grid>
</DockPanel>
+
+ <touch:TouchIconButton Command="{Binding AbortCommand}" HorizontalAlignment="Right" VerticalAlignment="Top" Icon="Close" Width="45" Height="45" Padding="14" Foreground="{StaticResource TangoDarkForegroundBrush}" />
</Grid>
</UserControl>
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadLoadingViewVM - Copy.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadLoadingViewVM - Copy.cs
deleted file mode 100644
index 95fb77e48..000000000
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadLoadingViewVM - Copy.cs
+++ /dev/null
@@ -1,176 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.BL.Entities;
-using Tango.Core.Commands;
-using Tango.Integration.Operation;
-using Tango.PMR.ThreadLoading;
-using Tango.PPC.Common.Connection;
-using Tango.SharedUI;
-
-namespace Tango.PPC.UI.Dialogs
-{
- public class ThreadLoadingViewVM : DialogViewVM
- {
- public class ThreadLoadingResult
- {
- public bool IsCompleted { get; set; }
- public Exception FailedException { get; set; }
- }
-
- private ThreadLoadingConfirmationRequiredEventArgs _confirmationArgs;
-
- public ThreadLoadingResult Result { get; set; }
-
- public IMachineProvider MachineProvider { get; set; }
-
- private StartThreadLoadingResponse _status;
- public StartThreadLoadingResponse Status
- {
- get { return _status; }
- set { _status = value; RaisePropertyChangedAuto(); }
- }
-
- private bool _isFinalizing;
- public bool IsFinalizing
- {
- get { return _isFinalizing; }
- set { _isFinalizing = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); }
- }
-
- private bool _isPreparing;
- public bool IsPreparing
- {
- get { return _isPreparing; }
- set { _isPreparing = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); }
- }
-
- public List<Rml> Rmls { get; set; }
-
- private Rml _selectedRml;
- public Rml SelectedRml
- {
- get { return _selectedRml; }
- set { _selectedRml = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); }
- }
-
- public RelayCommand ContinueCommand { get; set; }
-
- public ThreadLoadingViewVM(IMachineProvider machineProvider)
- {
- CanClose = false;
- IsPreparing = true;
- ContinueCommand = new RelayCommand(ContinueThreadLoading, () => !IsFinalizing && SelectedRml != null);
- MachineProvider = machineProvider;
- MachineProvider.MachineOperator.ThreadLoadingStatusChanged += MachineOperator_ThreadLoadingStatusChanged;
- MachineProvider.MachineOperator.ThreadLoadingCompleted += MachineOperator_ThreadLoadingCompleted;
- MachineProvider.MachineOperator.ThreadLoadingFailed += MachineOperator_ThreadLoadingFailed;
- MachineProvider.MachineOperator.ThreadLoadingConfirmationRequired += MachineOperator_ThreadLoadingConfirmationRequired;
- }
-
- public ThreadLoadingViewVM(IMachineProvider machineProvider, ThreadLoadingConfirmationRequiredEventArgs confirmationArgs) : this(machineProvider)
- {
- _confirmationArgs = confirmationArgs;
- IsPreparing = false;
- }
-
- private void MachineOperator_ThreadLoadingConfirmationRequired(object sender, ThreadLoadingConfirmationRequiredEventArgs e)
- {
- _confirmationArgs = e;
- IsPreparing = false;
- }
-
- private async void ContinueThreadLoading()
- {
- IsFinalizing = true;
-
- try
- {
- await Task.Factory.StartNew(() => { _confirmationArgs.Confirm(SelectedRml.GetActiveProcessGroup().ProcessParametersTables.FirstOrDefault()); });
- }
- catch (Exception ex)
- {
- Result = new ThreadLoadingResult()
- {
- FailedException = ex,
- };
-
- IsFinalizing = false;
-
- if (IsVisible)
- {
- InvokeUI(() =>
- {
- Accept();
- });
- }
- }
- }
-
- private void MachineOperator_ThreadLoadingCompleted(object sender, StartThreadLoadingResponse e)
- {
- Result = new ThreadLoadingResult()
- {
- IsCompleted = true
- };
-
- if (IsVisible)
- {
- InvokeUI(() =>
- {
- Accept();
- });
- }
- }
-
- private void MachineOperator_ThreadLoadingFailed(object sender, StartThreadLoadingResponse e)
- {
- Result = new ThreadLoadingResult()
- {
- FailedException = new Exception(e.ErrorReason),
- };
-
- if (IsVisible)
- {
- InvokeUI(() =>
- {
- Accept();
- });
- }
- }
-
- private void MachineOperator_ThreadLoadingStatusChanged(object sender, StartThreadLoadingResponse e)
- {
- Status = e;
-
- if (Status.State == ThreadLoadingState.Finalizing)
- {
- IsFinalizing = true;
- }
- }
-
- protected override void Cancel()
- {
- IsFinalizing = false;
- ClearEvents();
- base.Cancel();
- }
-
- protected override void Accept()
- {
- IsFinalizing = false;
- ClearEvents();
- base.Accept();
- }
-
- private void ClearEvents()
- {
- MachineProvider.MachineOperator.ThreadLoadingStatusChanged -= MachineOperator_ThreadLoadingStatusChanged;
- MachineProvider.MachineOperator.ThreadLoadingCompleted -= MachineOperator_ThreadLoadingCompleted;
- MachineProvider.MachineOperator.ThreadLoadingFailed -= MachineOperator_ThreadLoadingFailed;
- MachineProvider.MachineOperator.ThreadLoadingConfirmationRequired -= MachineOperator_ThreadLoadingConfirmationRequired;
- }
- }
-}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadLoadingViewVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadLoadingViewVM.cs
index 75354caf2..bb503e718 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadLoadingViewVM.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadLoadingViewVM.cs
@@ -67,6 +67,13 @@ namespace Tango.PPC.UI.Dialogs
set { _stage = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); }
}
+ private bool _isArcHead;
+ public bool IsArcHead
+ {
+ get { return _isArcHead; }
+ set { _isArcHead = value; RaisePropertyChangedAuto(); }
+ }
+
private String _error;
public String Error
{
@@ -74,7 +81,6 @@ namespace Tango.PPC.UI.Dialogs
set { _error = value; RaisePropertyChangedAuto(); }
}
-
public RelayCommand ContinueCommand { get; set; }
public RelayCommand AbortCommand { get; set; }
@@ -86,6 +92,9 @@ namespace Tango.PPC.UI.Dialogs
_settings = SettingsManager.Default.GetOrCreate<PPCSettings>();
MachineProvider.MachineOperator.ThreadLoadingStatusChanged += MachineOperator_ThreadLoadingStatusChanged;
+ MachineProvider.MachineDisconnected += MachineProvider_MachineDisconnected;
+
+ IsArcHead = MachineProvider.Machine.MachineHeadType == BL.Enumerations.HeadTypes.Arc;
ContinueCommand = new RelayCommand(Continue, CanContinue);
AbortCommand = new RelayCommand(Abort);
@@ -93,6 +102,14 @@ namespace Tango.PPC.UI.Dialogs
AdaptToState(userInvoked);
}
+ private void MachineProvider_MachineDisconnected(object sender, EventArgs e)
+ {
+ InvokeUI(() =>
+ {
+ Cancel();
+ });
+ }
+
private void AdaptToState(bool userInvoked = false)
{
var status = MachineProvider.MachineOperator.ThreadLoadingStatus;
@@ -258,6 +275,7 @@ namespace Tango.PPC.UI.Dialogs
private void CleanUp()
{
MachineProvider.MachineOperator.ThreadLoadingStatusChanged -= MachineOperator_ThreadLoadingStatusChanged;
+ MachineProvider.MachineDisconnected -= MachineProvider_MachineDisconnected;
if (SelectedRml != null)
{
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/DryerClose/1.jpg b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/DryerClose/1.jpg
new file mode 100644
index 000000000..3b2f58620
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/DryerClose/1.jpg
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/DryerClose/2.jpg b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/DryerClose/2.jpg
new file mode 100644
index 000000000..a2f5ae568
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/DryerClose/2.jpg
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/DryerClose/3.jpg b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/DryerClose/3.jpg
new file mode 100644
index 000000000..6069e9c29
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/DryerClose/3.jpg
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/DryerClose/4.jpg b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/DryerClose/4.jpg
new file mode 100644
index 000000000..7588d68e2
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/DryerClose/4.jpg
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/FeedingUnits/1.JPG b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/FeedingUnits/1.JPG
new file mode 100644
index 000000000..68921f1ca
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/FeedingUnits/1.JPG
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/FeedingUnits/2.JPG b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/FeedingUnits/2.JPG
new file mode 100644
index 000000000..a8b5d9ba4
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/FeedingUnits/2.JPG
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/FeedingUnits/3.JPG b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/FeedingUnits/3.JPG
new file mode 100644
index 000000000..407f1eae6
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/FeedingUnits/3.JPG
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/FeedingUnits/4.JPG b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/FeedingUnits/4.JPG
new file mode 100644
index 000000000..575066c23
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/FeedingUnits/4.JPG
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/FeedingUnits/arc/1.jpg b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/FeedingUnits/arc/1.jpg
new file mode 100644
index 000000000..68921f1ca
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/FeedingUnits/arc/1.jpg
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/FeedingUnits/arc/2.jpg b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/FeedingUnits/arc/2.jpg
new file mode 100644
index 000000000..a8b5d9ba4
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/FeedingUnits/arc/2.jpg
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/FeedingUnits/arc/3.jpg b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/FeedingUnits/arc/3.jpg
new file mode 100644
index 000000000..407f1eae6
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/FeedingUnits/arc/3.jpg
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/FeedingUnits/arc/4.jpg b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/FeedingUnits/arc/4.jpg
new file mode 100644
index 000000000..575066c23
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/FeedingUnits/arc/4.jpg
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/FeedingUnits/arc/5.jpg b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/FeedingUnits/arc/5.jpg
new file mode 100644
index 000000000..fa2c8312d
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/FeedingUnits/arc/5.jpg
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/GuidingUnits/1.JPG b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/GuidingUnits/1.JPG
new file mode 100644
index 000000000..8d58771d4
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/GuidingUnits/1.JPG
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/NewThread/ReadyForLoading/arc/1.jpg b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/NewThread/ReadyForLoading/arc/1.jpg
new file mode 100644
index 000000000..81aa412ec
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/NewThread/ReadyForLoading/arc/1.jpg
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/NewThread/ReadyForLoading/arc/2.JPG b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/NewThread/ReadyForLoading/arc/2.JPG
new file mode 100644
index 000000000..68921f1ca
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/NewThread/ReadyForLoading/arc/2.JPG
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/NewThread/ReadyForLoading/arc/3.JPG b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/NewThread/ReadyForLoading/arc/3.JPG
new file mode 100644
index 000000000..a8b5d9ba4
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/NewThread/ReadyForLoading/arc/3.JPG
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/NewThread/ReadyForLoading/arc/4.JPG b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/NewThread/ReadyForLoading/arc/4.JPG
new file mode 100644
index 000000000..9f200198d
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/NewThread/ReadyForLoading/arc/4.JPG
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/NewThread/ReadyForLoading/arc/5.JPG b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/NewThread/ReadyForLoading/arc/5.JPG
new file mode 100644
index 000000000..fa2c8312d
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/NewThread/ReadyForLoading/arc/5.JPG
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/NewThread/ReadyForLoading/arc/6.JPG b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/NewThread/ReadyForLoading/arc/6.JPG
new file mode 100644
index 000000000..7956b0695
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/NewThread/ReadyForLoading/arc/6.JPG
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/NewThread/ReadyForLoading/arc/7.jpg b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/NewThread/ReadyForLoading/arc/7.jpg
new file mode 100644
index 000000000..4ca8677cd
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/NewThread/ReadyForLoading/arc/7.jpg
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/NewThread/TS1800_CloseUp_Feeder_P.jpg b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/NewThread/TS1800_CloseUp_Feeder_P.jpg
new file mode 100644
index 000000000..f41898bc1
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/NewThread/TS1800_CloseUp_Feeder_P.jpg
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/NewThread/machine_full.jpg b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/NewThread/machine_full.jpg
new file mode 100644
index 000000000..212edc547
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/NewThread/machine_full.jpg
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/TheDryer/1.jpg b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/TheDryer/1.jpg
new file mode 100644
index 000000000..d8da5726d
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/TheDryer/1.jpg
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/TheDryer/2.jpg b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/TheDryer/2.jpg
new file mode 100644
index 000000000..a8b5d9ba4
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/TheDryer/2.jpg
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/TheDryer/3.jpg b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/TheDryer/3.jpg
new file mode 100644
index 000000000..86dd6f397
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/TheDryer/3.jpg
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/TheDryer/4.jpg b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/TheDryer/4.jpg
new file mode 100644
index 000000000..9d36f3642
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/TheDryer/4.jpg
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/TheDryer/5.jpg b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/TheDryer/5.jpg
new file mode 100644
index 000000000..6ac67aa46
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/ThreadLoading/TheDryer/5.jpg
Binary files differ
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 4e9c8af59..7f520ecc5 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
@@ -144,6 +144,10 @@
<DependentUpon>SafetyLevelOperationsConfirmationView.xaml</DependentUpon>
</Compile>
<Compile Include="Dialogs\SafetyLevelOperationsConfirmationViewVM.cs" />
+ <Compile Include="Dialogs\ThreadBreakView.xaml.cs">
+ <DependentUpon>ThreadBreakView.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="Dialogs\ThreadBreakViewVM.cs" />
<Compile Include="Dialogs\ThreadLoadingView.xaml.cs">
<DependentUpon>ThreadLoadingView.xaml</DependentUpon>
</Compile>
@@ -160,7 +164,6 @@
</Compile>
<Compile Include="Dialogs\ScreenLockViewVM.cs" />
<Compile Include="Dialogs\TechnicianModeLoginViewVM.cs" />
- <None Include="Dialogs\ThreadLoadingViewVM - Copy.cs" />
<Compile Include="Dialogs\ThreadLoadingViewVM.cs" />
<Compile Include="Dialogs\FirmwareUpgradeFromFileView.xaml.cs">
<DependentUpon>FirmwareUpgradeFromFileView.xaml</DependentUpon>
@@ -273,6 +276,10 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
+ <Page Include="Dialogs\ThreadBreakView.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
<Page Include="Dialogs\ThreadLoadingView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
@@ -454,6 +461,34 @@
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Resource Include="Images\thread_loading_preview.png" />
+ <Resource Include="Images\ThreadLoading\FeedingUnits\1.JPG" />
+ <Resource Include="Images\ThreadLoading\FeedingUnits\2.JPG" />
+ <Resource Include="Images\ThreadLoading\FeedingUnits\3.JPG" />
+ <Resource Include="Images\ThreadLoading\FeedingUnits\4.JPG" />
+ <Resource Include="Images\ThreadLoading\GuidingUnits\1.JPG" />
+ <Resource Include="Images\ThreadLoading\TheDryer\1.jpg" />
+ <Resource Include="Images\ThreadLoading\TheDryer\2.jpg" />
+ <Resource Include="Images\ThreadLoading\TheDryer\3.jpg" />
+ <Resource Include="Images\ThreadLoading\TheDryer\4.jpg" />
+ <Resource Include="Images\ThreadLoading\TheDryer\5.jpg" />
+ <Resource Include="Images\ThreadLoading\DryerClose\1.jpg" />
+ <Resource Include="Images\ThreadLoading\DryerClose\2.jpg" />
+ <Resource Include="Images\ThreadLoading\DryerClose\3.jpg" />
+ <Resource Include="Images\ThreadLoading\DryerClose\4.jpg" />
+ <Resource Include="Images\ThreadLoading\FeedingUnits\arc\1.jpg" />
+ <Resource Include="Images\ThreadLoading\FeedingUnits\arc\2.jpg" />
+ <Resource Include="Images\ThreadLoading\FeedingUnits\arc\3.jpg" />
+ <Resource Include="Images\ThreadLoading\FeedingUnits\arc\4.jpg" />
+ <Resource Include="Images\ThreadLoading\FeedingUnits\arc\5.jpg" />
+ <Resource Include="Images\ThreadLoading\NewThread\TS1800_CloseUp_Feeder_P.jpg" />
+ <Resource Include="Images\ThreadLoading\NewThread\ReadyForLoading\arc\1.jpg" />
+ <Resource Include="Images\ThreadLoading\NewThread\ReadyForLoading\arc\2.JPG" />
+ <Resource Include="Images\ThreadLoading\NewThread\ReadyForLoading\arc\3.JPG" />
+ <Resource Include="Images\ThreadLoading\NewThread\ReadyForLoading\arc\4.JPG" />
+ <Resource Include="Images\ThreadLoading\NewThread\ReadyForLoading\arc\5.JPG" />
+ <Resource Include="Images\ThreadLoading\NewThread\ReadyForLoading\arc\6.JPG" />
+ <Resource Include="Images\ThreadLoading\NewThread\ReadyForLoading\arc\7.jpg" />
+ <Resource Include="Images\ThreadLoading\NewThread\machine_full.jpg" />
<Content Include="Manifests\release.xml" />
<Content Include="Manifests\debug.xml" />
<None Include="firmware_package.tfp">
@@ -726,7 +761,7 @@ if $(ConfigurationName) == Debug copy /Y "$(TargetDir)Packages" "$(TargetDir)"</
</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>
</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 5656300a7..a6479da63 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/ThreadLoading/DefaultThreadLoadingService.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ThreadLoading/DefaultThreadLoadingService.cs
@@ -40,11 +40,26 @@ namespace Tango.PPC.UI.ThreadLoading
}
}
- public async void StartThreadLoading()
+ public async void StartThreadLoadingWizard()
{
_dialogShown = true;
await _notificationsProvider.ShowDialog<ThreadLoadingViewVM>(new ThreadLoadingViewVM(true));
_dialogShown = false;
}
+
+ public async void StartThreadBreakWizard()
+ {
+ if (!_dialogShown)
+ {
+ _dialogShown = true;
+ var vm = await _notificationsProvider.ShowDialog<ThreadBreakViewVM>();
+ _dialogShown = false;
+
+ if (vm.Result == ThreadBreakViewVM.ThreadBreakWizardResult.StartThreadLoading)
+ {
+ StartThreadLoadingWizard();
+ }
+ }
+ }
}
}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/app.manifest b/Software/Visual_Studio/PPC/Tango.PPC.UI/app.manifest
index efc5f8179..d72e75011 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/app.manifest
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/app.manifest
@@ -16,7 +16,7 @@
Remove this element if your application requires this virtualization for backwards
compatibility.
-->
- <!--<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />-->
+ <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
diff --git a/Software/Visual_Studio/Resources/Events Revisions/Tango alarm events handling chart_Rev27.xlsx b/Software/Visual_Studio/Resources/Events Revisions/Tango alarm events handling chart_Rev27.xlsx
new file mode 100644
index 000000000..51dbc42ba
--- /dev/null
+++ b/Software/Visual_Studio/Resources/Events Revisions/Tango alarm events handling chart_Rev27.xlsx
Binary files differ
diff --git a/Software/Visual_Studio/Tango.BL/DTO/ProcessParametersTableDTOBase.cs b/Software/Visual_Studio/Tango.BL/DTO/ProcessParametersTableDTOBase.cs
index 2294ec874..f0699bc72 100644
--- a/Software/Visual_Studio/Tango.BL/DTO/ProcessParametersTableDTOBase.cs
+++ b/Software/Visual_Studio/Tango.BL/DTO/ProcessParametersTableDTOBase.cs
@@ -285,13 +285,5 @@ namespace Tango.BL.DTO
get; set;
}
- /// <summary>
- /// arc head cleaning motor speed
- /// </summary>
- public Double ArcHeadCleaningMotorSpeed
- {
- get; set;
- }
-
}
}
diff --git a/Software/Visual_Studio/Tango.BL/DTO/RmlDTOBase.cs b/Software/Visual_Studio/Tango.BL/DTO/RmlDTOBase.cs
index 51b069d54..6bb8e951d 100644
--- a/Software/Visual_Studio/Tango.BL/DTO/RmlDTOBase.cs
+++ b/Software/Visual_Studio/Tango.BL/DTO/RmlDTOBase.cs
@@ -365,5 +365,13 @@ namespace Tango.BL.DTO
get; set;
}
+ /// <summary>
+ /// arc head cleaning motor speed
+ /// </summary>
+ public Double ArcHeadCleaningMotorSpeed
+ {
+ get; set;
+ }
+
}
}
diff --git a/Software/Visual_Studio/Tango.BL/Dispensing/TransparentLiquidDispensingCalc.cs b/Software/Visual_Studio/Tango.BL/Dispensing/TransparentLiquidDispensingCalc.cs
index 40a716c13..2340cdd62 100644
--- a/Software/Visual_Studio/Tango.BL/Dispensing/TransparentLiquidDispensingCalc.cs
+++ b/Software/Visual_Studio/Tango.BL/Dispensing/TransparentLiquidDispensingCalc.cs
@@ -25,10 +25,15 @@ namespace Tango.BL.Dispensing
if (liquidVolume.Configuration != null && liquidVolume.RML != null && liquidVolume.ProcessParametersTable != null)
{
double nlPcmSum = liquidVolume.BrushStop.LiquidVolumes.Where(x => (IdsPackFormulas)x.IdsPack.IdsPackFormula.Code == IdsPackFormulas.StandardColor).Sum(x => x.NanoliterPerCentimeter);
- double minInkUptake = liquidVolume.ProcessParametersTable.MinInkUptake;
- double virtual_volume = Math.Max(0, minInkUptake - nlPcmSum);
- return virtual_volume;
- //(liquidVolume.Volume / 100d) * (Math.Min(liquidVolume.LiquidMaxNanoliterPerCentimeter, liquidVolume.ProcessParametersTable.MinInkUptake));
+
+ nlPcmSum = Math.Max(0, liquidVolume.ProcessParametersTable.MinInkUptake - nlPcmSum);
+
+ //if (liquidVolume.RML.ColorConversionVersion > 3)
+ //{
+ // nlPcmSum = nlPcmSum <= 0.5 ? 0 : nlPcmSum;
+ //}
+
+ return nlPcmSum;
}
else
{
@@ -45,9 +50,6 @@ namespace Tango.BL.Dispensing
{
if (liquidVolume.ProcessParametersTable != null)
{
- //double nlPcmSum = liquidVolume.BrushStop.LiquidVolumes.Where(x => (IdsPackFormulas)x.IdsPack.IdsPackFormula.Code == IdsPackFormulas.StandardColor).Sum(x => x.NanoliterPerCentimeter);
- //double minInkUptake = liquidVolume.ProcessParametersTable.MinInkUptake;
- //double volume = ((liquidVolume.LiquidMaxNanoliterPerCentimeter - nlPcmSum) / liquidVolume.LiquidMaxNanoliterPerCentimeter) * 100d;
return Math.Max(100d - liquidVolume.BrushStop.LiquidVolumes.Where(x => (IdsPackFormulas)x.IdsPack.IdsPackFormula.Code == IdsPackFormulas.StandardColor).Sum(x => x.Volume), 0);
}
else
diff --git a/Software/Visual_Studio/Tango.BL/Entities/ProcessParametersTableBase.cs b/Software/Visual_Studio/Tango.BL/Entities/ProcessParametersTableBase.cs
index 172b5f18f..498bafc85 100644
--- a/Software/Visual_Studio/Tango.BL/Entities/ProcessParametersTableBase.cs
+++ b/Software/Visual_Studio/Tango.BL/Entities/ProcessParametersTableBase.cs
@@ -91,8 +91,6 @@ namespace Tango.BL.Entities
public event EventHandler<Double> PressureBuildUpChanged;
- public event EventHandler<Double> ArcHeadCleaningMotorSpeedChanged;
-
public event EventHandler<ProcessParametersTablesGroup> ProcessParametersTablesGroupChanged;
protected String _name;
@@ -1109,37 +1107,6 @@ namespace Tango.BL.Entities
}
}
- protected Double _archeadcleaningmotorspeed;
-
- /// <summary>
- /// Gets or sets the processparameterstablebase arc head cleaning motor speed.
- /// </summary>
-
- [Column("ARC_HEAD_CLEANING_MOTOR_SPEED")]
-
- [StringFormat("0.0")]
-
- [PropertyIndex(30)]
-
- public Double ArcHeadCleaningMotorSpeed
- {
- get
- {
- return _archeadcleaningmotorspeed;
- }
-
- set
- {
- if (_archeadcleaningmotorspeed != value)
- {
- _archeadcleaningmotorspeed = value;
-
- OnArcHeadCleaningMotorSpeedChanged(value);
-
- }
- }
- }
-
protected ProcessParametersTablesGroup _processparameterstablesgroup;
/// <summary>
@@ -1461,15 +1428,6 @@ namespace Tango.BL.Entities
}
/// <summary>
- /// Called when the ArcHeadCleaningMotorSpeed has changed.
- /// </summary>
- protected virtual void OnArcHeadCleaningMotorSpeedChanged(Double archeadcleaningmotorspeed)
- {
- ArcHeadCleaningMotorSpeedChanged?.Invoke(this, archeadcleaningmotorspeed);
- RaisePropertyChanged(nameof(ArcHeadCleaningMotorSpeed));
- }
-
- /// <summary>
/// Called when the ProcessParametersTablesGroup has changed.
/// </summary>
protected virtual void OnProcessParametersTablesGroupChanged(ProcessParametersTablesGroup processparameterstablesgroup)
diff --git a/Software/Visual_Studio/Tango.BL/Entities/RmlBase.cs b/Software/Visual_Studio/Tango.BL/Entities/RmlBase.cs
index 2d3162c95..8958884a2 100644
--- a/Software/Visual_Studio/Tango.BL/Entities/RmlBase.cs
+++ b/Software/Visual_Studio/Tango.BL/Entities/RmlBase.cs
@@ -99,6 +99,8 @@ namespace Tango.BL.Entities
public event EventHandler<Int32> CleanerFlowChanged;
+ public event EventHandler<Double> ArcHeadCleaningMotorSpeedChanged;
+
public event EventHandler<SynchronizedObservableCollection<Cat>> CatsChanged;
public event EventHandler<Cct> CctChanged;
@@ -1281,6 +1283,33 @@ namespace Tango.BL.Entities
}
}
+ protected Double _archeadcleaningmotorspeed;
+
+ /// <summary>
+ /// Gets or sets the rmlbase arc head cleaning motor speed.
+ /// </summary>
+
+ [Column("ARC_HEAD_CLEANING_MOTOR_SPEED")]
+
+ public Double ArcHeadCleaningMotorSpeed
+ {
+ get
+ {
+ return _archeadcleaningmotorspeed;
+ }
+
+ set
+ {
+ if (_archeadcleaningmotorspeed != value)
+ {
+ _archeadcleaningmotorspeed = value;
+
+ OnArcHeadCleaningMotorSpeedChanged(value);
+
+ }
+ }
+ }
+
protected SynchronizedObservableCollection<Cat> _cats;
/// <summary>
@@ -2005,6 +2034,15 @@ namespace Tango.BL.Entities
}
/// <summary>
+ /// Called when the ArcHeadCleaningMotorSpeed has changed.
+ /// </summary>
+ protected virtual void OnArcHeadCleaningMotorSpeedChanged(Double archeadcleaningmotorspeed)
+ {
+ ArcHeadCleaningMotorSpeedChanged?.Invoke(this, archeadcleaningmotorspeed);
+ RaisePropertyChanged(nameof(ArcHeadCleaningMotorSpeed));
+ }
+
+ /// <summary>
/// Called when the Cats has changed.
/// </summary>
protected virtual void OnCatsChanged(SynchronizedObservableCollection<Cat> cats)
diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/EventTypes.cs b/Software/Visual_Studio/Tango.BL/Enumerations/EventTypes.cs
index e0a5b0114..fe0009818 100644
--- a/Software/Visual_Studio/Tango.BL/Enumerations/EventTypes.cs
+++ b/Software/Visual_Studio/Tango.BL/Enumerations/EventTypes.cs
@@ -140,9 +140,9 @@ namespace Tango.BL.Enumerations
FRONT_COVER_4_OPEN = 2005,
/// <summary>
- /// (Cartridges door is open. Cannot start new job )
+ /// (IFS door is open. Cannot start new job )
/// </summary>
- [Description("Cartridges door is open. Cannot start new job ")]
+ [Description("IFS door is open. Cannot start new job ")]
CARTRIDGES_COVER_OPEN = 2006,
/// <summary>
@@ -236,6 +236,24 @@ namespace Tango.BL.Enumerations
TEMPERATURE_MEASUREMENT_ERROR = 2021,
/// <summary>
+ /// (Cannot read the cartridge. Cannot perform ink filling )
+ /// </summary>
+ [Description("Cannot read the cartridge. Cannot perform ink filling ")]
+ RFID_READER_MALFUNCTION_INK_SLOT = 2022,
+
+ /// <summary>
+ /// (Cannot read the cartridge. Cannot replace waste cartridge )
+ /// </summary>
+ [Description("Cannot read the cartridge. Cannot replace waste cartridge ")]
+ RFID_READER_MALFUNCTION_WASTE_SLOT_1 = 2023,
+
+ /// <summary>
+ /// (Cannot read the cartridge. Cannot replace waste cartridge )
+ /// </summary>
+ [Description("Cannot read the cartridge. Cannot replace waste cartridge ")]
+ RFID_READER_MALFUNCTION_WASTE_SLOT_2 = 2024,
+
+ /// <summary>
/// (Thread break. Cannot execute job)
/// </summary>
[Description("Thread break. Cannot execute job")]
@@ -2180,15 +2198,15 @@ namespace Tango.BL.Enumerations
INK_CARTRIDGE_RFID_TIMEOUT = 10001,
/// <summary>
- /// (Waste level is high. Insert waste cartridge)
+ /// (No waste cartridge in system. Cannot execute job. Please insert waste cartridge)
/// </summary>
- [Description("Waste level is high. Insert waste cartridge")]
+ [Description("No waste cartridge in system. Cannot execute job. Please insert waste cartridge")]
NO_WASTE_CARTRIDGE_AVAILABLE = 10002,
/// <summary>
- /// (Waste cartridge detected. Cannot execute job. Please extract waste cartridge)
+ /// (Both waste cartridges are full. Cannot execute job. Please replace waste cartridges)
/// </summary>
- [Description("Waste cartridge detected. Cannot execute job. Please extract waste cartridge")]
+ [Description("Both waste cartridges are full. Cannot execute job. Please replace waste cartridges")]
ALL_WASTE_CARTRIDGES_FULL = 10003,
/// <summary>
@@ -2203,5 +2221,71 @@ namespace Tango.BL.Enumerations
[Description("Cannot identify waste cartridge. Cannot execute job ")]
WASTE_CARTRIDGE_RFID_TIMEOUT = 10005,
+ /// <summary>
+ /// (Ink cartridge failure. Cannot perform ink filling)
+ /// </summary>
+ [Description("Ink cartridge failure. Cannot perform ink filling")]
+ INK_CARTRIDGE_RFID_TAG_CANNOT_BE_READ = 10006,
+
+ /// <summary>
+ /// (Waste cartridge failure. Cannot replace waste cartridge)
+ /// </summary>
+ [Description("Waste cartridge failure. Cannot replace waste cartridge")]
+ WASTE_CARTRIDGE_RFID_TAG_CANNOT_BE_READ = 10007,
+
+ /// <summary>
+ /// (Ink cartridge failure. Cannot perform ink filling)
+ /// </summary>
+ [Description("Ink cartridge failure. Cannot perform ink filling")]
+ INK_CARTRIDGE_RFID_TAG_IS_NOT_VALID = 10008,
+
+ /// <summary>
+ /// (Waste cartridge failure. Cannot replace waste cartridge)
+ /// </summary>
+ [Description("Waste cartridge failure. Cannot replace waste cartridge")]
+ WASTE_CARTRIDGE_RFID_TAG_IS_NOT_VALID = 10009,
+
+ /// <summary>
+ /// (Ink cartridge failure. Cannot perform ink filling)
+ /// </summary>
+ [Description("Ink cartridge failure. Cannot perform ink filling")]
+ INK_CARTRIDGE_AUTHENTICATION_FAILED = 10010,
+
+ /// <summary>
+ /// (Waste cartridge failure. Cannot replace waste cartridge)
+ /// </summary>
+ [Description("Waste cartridge failure. Cannot replace waste cartridge")]
+ WASTE_CARTRIDGE_AUTHENTICATION_FAILED = 10011,
+
+ /// <summary>
+ /// (Ink cartridge failure. Cannot perform ink filling)
+ /// </summary>
+ [Description("Ink cartridge failure. Cannot perform ink filling")]
+ INK_CARTRIDGE_IS_BLOCKED = 10012,
+
+ /// <summary>
+ /// (Waste cartridge failure. Cannot replace waste cartridge)
+ /// </summary>
+ [Description("Waste cartridge failure. Cannot replace waste cartridge")]
+ WASTE_CARTRIDGE_IS_BLOCKED = 10013,
+
+ /// <summary>
+ /// (Ink cartridge failure. Cannot perform ink filling)
+ /// </summary>
+ [Description("Ink cartridge failure. Cannot perform ink filling")]
+ INK_CARTRIDGE_RFID_TAG_CANNOT_BE_UPDATED = 10014,
+
+ /// <summary>
+ /// (Waste cartridge failure. Cannot replace waste cartridge)
+ /// </summary>
+ [Description("Waste cartridge failure. Cannot replace waste cartridge")]
+ WASTE_CARTRIDGE_RFID_TAG_CANNOT_BE_UPDATED = 10015,
+
+ /// <summary>
+ /// (Ink in cartridge is expired. Cannot perform ink filling)
+ /// </summary>
+ [Description("Ink in cartridge is expired. Cannot perform ink filling")]
+ INK_IN_CARTRIDGE_IS_EXPIRED = 10016,
+
}
}
diff --git a/Software/Visual_Studio/Tango.ColorConversion/DefaultColorConverter.cs b/Software/Visual_Studio/Tango.ColorConversion/DefaultColorConverter.cs
index 6d21c69c3..fa60fbd69 100644
--- a/Software/Visual_Studio/Tango.ColorConversion/DefaultColorConverter.cs
+++ b/Software/Visual_Studio/Tango.ColorConversion/DefaultColorConverter.cs
@@ -232,10 +232,54 @@ namespace Tango.ColorConversion
public ProcessParametersTable GetRecommendedProcessParameters(Job job, ProcessParametersTablesGroup group)
{
+ return GetRecommendedProcessParametersByGamutRegion(job, group);
+ }
+
+ private ProcessParametersTable GetRecommendedProcessParametersByProcessParameters(Job job, ProcessParametersTablesGroup group)
+ {
+ if (group.ProcessParametersTables.Count == 0)
+ {
+ throw new InvalidOperationException("The specified RML process group does not contain any tables.");
+ }
+
+ List<BrushStop> stops = job.Segments.Select(x => x.Clone()).SelectMany(x => x.BrushStops).ToList();
+
+ if (stops.Count == 0)
+ {
+ return group.ProcessParametersTables[0];
+ }
+
+ foreach (var stop in stops)
+ {
+ if (stop.LiquidVolumes == null)
+ {
+ stop.SetLiquidVolumes(job.Machine.Configuration, job.Rml, group.ProcessParametersTables[0]);
+ }
+
+ if (stop.BrushColorSpace != ColorSpaces.Catalog && stop.BrushColorSpace != ColorSpaces.Volume)
+ {
+ Convert(stop, false).ApplyOnBrushStopVolumesOnly(stop);
+ }
+ }
+
+ double maxNlCM = stops.Max(x => x.TotalLiquidNanoliterPerCentimeter);
+
+ foreach (var table in group.ProcessParametersTables.OrderBy(x => x.MaxInkUptake))
+ {
+ if (maxNlCM <= table.MaxInkUptake) return table;
+ }
+
+ throw new InvalidOperationException($"The total liquid quantity ({maxNlCM.ToString("0.0")} nl/cm) does not fit any process table for one or more colors.");
+
+ //Is MaxInkUptake a percentage ? because if not, i have to know what process parameters table to use to calculate the NlCm.
+ }
+
+ private ProcessParametersTable GetRecommendedProcessParametersByGamutRegion(Job job, ProcessParametersTablesGroup group)
+ {
var stops = job.Segments.SelectMany(x => x.BrushStops).ToList();
- var standard_stops = stops.Where(x => x.BrushColorSpace == ColorSpaces.RGB || x.BrushColorSpace == ColorSpaces.LAB || x.BrushColorSpace == ColorSpaces.CMYK || x.BrushColorSpace == ColorSpaces.Volume);
- var color_catalog_stops = stops.Where(x => x.BrushColorSpace != ColorSpaces.RGB && x.BrushColorSpace != ColorSpaces.LAB && x.BrushColorSpace != ColorSpaces.CMYK && x.BrushColorSpace != ColorSpaces.Volume);
+ var standard_stops = stops.Where(x => x.BrushColorSpace != ColorSpaces.Catalog);
+ var color_catalog_stops = stops.Where(x => x.BrushColorSpace == ColorSpaces.Catalog);
var max_standard = 1;
var max_catalog = 1;
@@ -433,6 +477,7 @@ namespace Tango.ColorConversion
{
GradientInputStop istop = new GradientInputStop();
istop.ColorSpace = (PMR.ColorLab.ColorSpace)stop.ColorSpace.Code;
+ istop.Offset = stop.OffsetPercent / 100d;
istop.L = stop.L;
istop.A = stop.A;
istop.B = stop.B;
diff --git a/Software/Visual_Studio/Tango.ColorConversion/ExtensionMethods/ConversionOutputExtensions.cs b/Software/Visual_Studio/Tango.ColorConversion/ExtensionMethods/ConversionOutputExtensions.cs
index bb94918f8..259afcfda 100644
--- a/Software/Visual_Studio/Tango.ColorConversion/ExtensionMethods/ConversionOutputExtensions.cs
+++ b/Software/Visual_Studio/Tango.ColorConversion/ExtensionMethods/ConversionOutputExtensions.cs
@@ -98,5 +98,29 @@ public static class ConversionOutputExtensions
liquidVolume.Volume = outputLiquid.Volume;
}
}
+
+ public static void ApplyOnBrushStopVolumesOnly(this ConversionOutput conversionOutput, BrushStop stop)
+ {
+ var output = conversionOutput;
+
+ stop.IsOutOfGamut = conversionOutput.OutOfGamut;
+
+ if (stop.LiquidVolumes == null || stop.LiquidVolumes.Count == 0)
+ {
+ throw new InvalidOperationException("The specified brush stop liquid volumes was not initialized. Could not apply the conversion output.");
+ }
+
+ foreach (var outputLiquid in output.SingleCoordinates.OutputLiquids)
+ {
+ var liquidVolume = stop.LiquidVolumes.SingleOrDefault(x => x.IdsPack.LiquidType.Code == outputLiquid.LiquidType.ToInt32());
+
+ if (liquidVolume == null)
+ {
+ throw new NullReferenceException("Liquid volume not found for color conversion output liquid '" + outputLiquid.LiquidType + "'.");
+ }
+
+ liquidVolume.Volume = outputLiquid.Volume;
+ }
+ }
}
diff --git a/Software/Visual_Studio/Tango.ColorLib.GradientTest.CLI/Program.cs b/Software/Visual_Studio/Tango.ColorLib.GradientTest.CLI/Program.cs
index 437ae1df0..f2a9651c9 100644
--- a/Software/Visual_Studio/Tango.ColorLib.GradientTest.CLI/Program.cs
+++ b/Software/Visual_Studio/Tango.ColorLib.GradientTest.CLI/Program.cs
@@ -16,7 +16,178 @@ namespace Tango.ColorLib.GradientTest.CLI
static void Main(string[] args)
{
GradientGenerator generator = new GradientGenerator();
+ //RGB, Gamut Region 0, In Gamut
+ //TEST1
+ TestRGBGamutRegion0(generator);
+ Console.WriteLine("Press enter to nextTestLABGamutRegion0 test...");
+ Console.ReadLine();
+ // Lab, Gamut Region 0, In Gamut
+ //TEST2
+ TestLABGamutRegion0(generator);
+ Console.WriteLine("Press enter to next TestVolumeGamutRegion0 test...");
+ Console.ReadLine();
+ //Volume, Gamut Region 0, In Gamut
+ //TEST3
+ TestVolumeGamutRegion0(generator);
+ Console.WriteLine("Press enter to next TestVolumeGamutRegion1 test...");
+ Console.ReadLine();
+ //Volume, Gamut Region 1, In Gamut
+ //TEST4
+ TestVolumeGamutRegion1(generator);
+ Console.WriteLine("Press enter to next TestRGBMixedGamut test...");
+ Console.ReadLine();
+
+ //RGB, Mixed Gamut Regions, In Gamut
+ //TEST5
+ TestRGBMixedGamut(generator);
+ Console.WriteLine("Press enter to next TestLABOutOfGamut test...");
+ Console.ReadLine();
+
+ //LAB, Gamut Region 0, Out of Gamut
+ //TEST6
+ TestLABOutOfGamut(generator);
+ Console.WriteLine("Press enter to next TestLABMixedGamut test...");
+ Console.ReadLine();
+
+ //7. Lab, Mixed Gamut Regions, In Gamut
+ //TEST7
+ TestLABMixedGamut(generator);
+ Console.WriteLine("Press enter to next TestMixedEnvironment test...");
+ Console.ReadLine();
+
+ //8. Mixed Environment
+ //TEST8
+ TestMixedEnvironment(generator);
+ {
+ /*GradientConversionInput input = new GradientConversionInput();
+
+ //CCT
+ input.ForwardData = ByteString.CopyFrom(File.ReadAllBytes(@"Sylko_HV_IL350R.cct")); //TODO: Load CCT file from local drive.
+
+ //RML Liquid Factors
+ input.InputLiquids.Add(new InputLiquid()
+ {
+ LiquidType = LiquidType.Cyan,
+ CalibrationData = BL.Entities.Cat.CreateDemoCalibrationData(LiquidType.Cyan),
+ MaxNanoliterPerCentimeter = 200,
+ });
+
+ input.InputLiquids.Add(new InputLiquid()
+ {
+ LiquidType = LiquidType.Magenta,
+ CalibrationData = BL.Entities.Cat.CreateDemoCalibrationData(LiquidType.Magenta),
+ MaxNanoliterPerCentimeter = 200,
+ });
+
+ input.InputLiquids.Add(new InputLiquid()
+ {
+ LiquidType = LiquidType.Yellow,
+ CalibrationData = BL.Entities.Cat.CreateDemoCalibrationData(LiquidType.Yellow),
+ MaxNanoliterPerCentimeter = 200,
+ });
+
+ input.InputLiquids.Add(new InputLiquid()
+ {
+ LiquidType = LiquidType.Black,
+ CalibrationData = BL.Entities.Cat.CreateDemoCalibrationData(LiquidType.Black),
+ MaxNanoliterPerCentimeter =200,
+ });
+
+ //Process Ranges
+ input.ProcessRanges.Add(new ProcessRange()
+ {
+ MinInkUptake = 200,
+ MaxInkUptake =200,
+ });
+
+ input.ProcessRanges.Add(new ProcessRange()
+ {
+ MinInkUptake = 200,
+ MaxInkUptake = 400,
+ });
+
+ //White Point
+ input.ThreadL = 92.7867 ;
+ input.ThreadA = -0.2519;
+ input.ThreadB = 0.6968;
+
+ //Segment length
+ input.SegmentLength = 1000;*/
+ }
+ {
+ /*
+ input.Stops.Add(new GradientInputStop()
+ {
+ ColorSpace = ColorSpace.Rgb,
+ Offset = 0,
+ Red = 93,
+ Green = 123,
+ Blue = 95,
+ });
+ //Lab Stop 2
+ input.Stops.Add(new GradientInputStop()
+ {
+ ColorSpace = ColorSpace.Lab,
+ Offset = 0.6,
+ L = 50,
+ A = -10,
+ B = -10,
+ });
+ //Volume Stop 3
+ GradientInputStop c = new GradientInputStop()
+ {
+ ColorSpace = ColorSpace.Volume,
+ Offset = 1,
+ };
+ c.LiquidVolumes.Add(new LiquidVolume()
+ {
+ LiquidType = LiquidType.Cyan,
+ Volume = 50
+ });
+ c.LiquidVolumes.Add(new LiquidVolume()
+ {
+ LiquidType = LiquidType.Magenta,
+ Volume = 0
+ });
+ c.LiquidVolumes.Add(new LiquidVolume()
+ {
+ LiquidType = LiquidType.Yellow,
+ Volume = 50
+ });
+ c.LiquidVolumes.Add(new LiquidVolume()
+ {
+ LiquidType = LiquidType.Black,
+ Volume = 0
+ });
+ input.Stops.Add(c);
+
+ Console.WriteLine($"Testing input:\n{input.ToJsonString(nameof(input.ForwardData),nameof(CalibrationData))}");
+
+ Console.WriteLine();
+
+ Console.WriteLine("Processing...");
+
+ Stopwatch watch = new Stopwatch();
+ watch.Start();
+
+ GradientConversionOutput output = generator.GenerateGradient(input);
+
+ watch.Stop();
+ Console.WriteLine($"Processing completed after: {watch.Elapsed.Milliseconds.ToString("00000.00")} mseconds.");
+
+ //watch.Elapsed.TotalSeconds.ToString("0.0")}
+
+ Console.WriteLine();
+ Console.WriteLine($"Result:\n{output.ToJsonString()}");
+ Console.WriteLine();*/
+ }
+
+ Console.WriteLine("Press return to exit...");
+ Console.ReadLine();
+ }
+ static GradientConversionInput CreateBaseGradientConversionInput()
+ {
GradientConversionInput input = new GradientConversionInput();
//CCT
@@ -48,14 +219,14 @@ namespace Tango.ColorLib.GradientTest.CLI
{
LiquidType = LiquidType.Black,
CalibrationData = BL.Entities.Cat.CreateDemoCalibrationData(LiquidType.Black),
- MaxNanoliterPerCentimeter =200,
+ MaxNanoliterPerCentimeter = 200,
});
//Process Ranges
input.ProcessRanges.Add(new ProcessRange()
{
MinInkUptake = 200,
- MaxInkUptake =200,
+ MaxInkUptake = 200,
});
input.ProcessRanges.Add(new ProcessRange()
@@ -65,170 +236,446 @@ namespace Tango.ColorLib.GradientTest.CLI
});
//White Point
- input.ThreadL = 92.7867 ;
+ input.ThreadL = 92.7867;
input.ThreadA = -0.2519;
input.ThreadB = 0.6968;
//Segment length
input.SegmentLength = 1000;
+ return input;
+ }
+
+ /// <summary>
+ /// 1. RGB, Gamut Region 0, In Gamut
+ /// </summary>
+ static void TestRGBGamutRegion0(GradientGenerator generator)
+ {
+ GradientConversionInput input = CreateBaseGradientConversionInput();
+ input.Stops.Add(new GradientInputStop()
+ {
+ ColorSpace = ColorSpace.Rgb,
+ Offset = 0,
+ Red = 160,
+ Green = 200,
+ Blue = 200,
+ });
+ input.Stops.Add(new GradientInputStop()
+ {
+ ColorSpace = ColorSpace.Rgb,
+ Offset = 0.5,
+ Red = 100,
+ Green = 100,
+ Blue = 160,
+ });
+ input.Stops.Add(new GradientInputStop()
+ {
+ ColorSpace = ColorSpace.Rgb,
+ Offset = 1,
+ Red = 0,
+ Green = 150,
+ Blue = 200,
+ });
+ Console.WriteLine($"TestRGBGamutRegion0 input:\n{input.ToJsonString(nameof(input.ForwardData), nameof(CalibrationData))}");
+ Console.WriteLine();
+ Console.WriteLine("Processing...");
+ Stopwatch watch = new Stopwatch();
+ watch.Start();
+ GradientConversionOutput output = generator.GenerateGradient(input);
- //RGB Stop 1
- input.Stops.Add(new GradientInputStop()
- {
- ColorSpace = ColorSpace.Rgb,
- Offset = 0,
- Red = 255,
- Green = 0,
- Blue = 0,
- /* ColorSpace = ColorSpace.Lab,
- Offset = 0,
- L=44,
- A = -31,
- B = -14,*/
- // ColorSpace = ColorSpace.Volume,
+ watch.Stop();
+ Console.WriteLine($"Processing completed after: {watch.Elapsed.Milliseconds.ToString("00000.00")} mseconds.");
+ Console.WriteLine();
+ Console.WriteLine($"Result TestRGBGamutRegion0 :\n{output.ToJsonString()}");
+ Console.WriteLine();
+ }
- // Cyan = 200,
- // Magenta =0,
- // Yellow =0,
- // Key = 0,
- });
+ /// <summary>
+ /// 2. LAB, Gamut Region 0, In Gamut
+ /// </summary>
+ static void TestLABGamutRegion0(GradientGenerator generator)
+ {
+ GradientConversionInput input = CreateBaseGradientConversionInput();
+ input.Stops.Add(new GradientInputStop()
+ {
+ ColorSpace = ColorSpace.Lab,
+ Offset = 0.0,
+ L = 44.75,
+ A = 15.14,
+ B = -32.5,
+ });
+ input.Stops.Add(new GradientInputStop()
+ {
+ ColorSpace = ColorSpace.Lab,
+ Offset = 0.5,
+ L = 39.70,
+ A = 25.0,
+ B = -4.8,
+ });
+ input.Stops.Add(new GradientInputStop()
+ {
+ ColorSpace = ColorSpace.Lab,
+ Offset = 1,
+ L = 53,
+ A = -15.0,
+ B = -35,
+ });
+
+ Console.WriteLine($"TestLABGamutRegion0 input:\n{input.ToJsonString(nameof(input.ForwardData), nameof(CalibrationData))}");
+ Console.WriteLine();
+ Console.WriteLine("Processing...");
+ Stopwatch watch = new Stopwatch();
+ watch.Start();
- //RGB Stop 2
- input.Stops.Add(new GradientInputStop()
+ GradientConversionOutput output = generator.GenerateGradient(input);
+
+ watch.Stop();
+ Console.WriteLine($"Processing completed after: {watch.Elapsed.Milliseconds.ToString("00000.00")} mseconds.");
+ Console.WriteLine();
+ Console.WriteLine($"Result TestLABGamutRegion0 :\n{output.ToJsonString()}");
+ Console.WriteLine();
+ }
+
+ /// <summary>
+ /// 3. VolumeAB, Gamut Region 0, In Gamut
+ /// </summary>
+ static void TestVolumeGamutRegion0(GradientGenerator generator)
+ {
+ GradientConversionInput input = CreateBaseGradientConversionInput();
+
+ GradientInputStop gradientInputStop1 = new GradientInputStop()
+ {
+ ColorSpace = ColorSpace.Volume,
+ Offset = 0.0,
+ };
+ gradientInputStop1.LiquidVolumes.Add(new LiquidVolume()
+ {
+ LiquidType = LiquidType.Cyan,
+ Volume = 50
+ });
+ gradientInputStop1.LiquidVolumes.Add(new LiquidVolume()
+ {
+ LiquidType = LiquidType.Magenta,
+ Volume = 50
+ });
+ gradientInputStop1.LiquidVolumes.Add(new LiquidVolume()
+ {
+ LiquidType = LiquidType.Yellow,
+ Volume = 0
+ });
+ gradientInputStop1.LiquidVolumes.Add(new LiquidVolume()
+ {
+ LiquidType = LiquidType.Black,
+ Volume = 0
+ });
+ input.Stops.Add(gradientInputStop1);
+
+ GradientInputStop gradientInputStop2 = new GradientInputStop()
+ {
+ ColorSpace = ColorSpace.Volume,
+ Offset = 0.5,
+ };
+ gradientInputStop2.LiquidVolumes.Add(new LiquidVolume()
+ {
+ LiquidType = LiquidType.Cyan,
+ Volume = 0
+ });
+ gradientInputStop2.LiquidVolumes.Add(new LiquidVolume()
+ {
+ LiquidType = LiquidType.Magenta,
+ Volume = 50
+ });
+ gradientInputStop2.LiquidVolumes.Add(new LiquidVolume()
+ {
+ LiquidType = LiquidType.Yellow,
+ Volume = 50
+ });
+ gradientInputStop2.LiquidVolumes.Add(new LiquidVolume()
{
- ColorSpace = ColorSpace.Rgb,
- Offset =0.5,
- Red =0,
- Green =255,
- Blue = 0,
- //ColorSpace = ColorSpace.Lab,
- // Offset = 0.3,
- // L = 80.092825,
- // A =- 11.94398025,
- // B = 90.89376625,
- //ColorSpace = ColorSpace.Volume,
+ LiquidType = LiquidType.Black,
+ Volume = 0
+ });
+ input.Stops.Add(gradientInputStop2);
- //Cyan = 0,
- //Magenta = 0,
- // Yellow = 0,
- // Key = 0,
+ GradientInputStop gradientInputStop3 = new GradientInputStop()
+ {
+ ColorSpace = ColorSpace.Volume,
+ Offset = 1,
+ };
+ gradientInputStop3.LiquidVolumes.Add(new LiquidVolume()
+ {
+ LiquidType = LiquidType.Cyan,
+ Volume = 50
+ });
+ gradientInputStop3.LiquidVolumes.Add(new LiquidVolume()
+ {
+ LiquidType = LiquidType.Magenta,
+ Volume = 0
+ });
+ gradientInputStop3.LiquidVolumes.Add(new LiquidVolume()
+ {
+ LiquidType = LiquidType.Yellow,
+ Volume = 50
+ });
+ gradientInputStop3.LiquidVolumes.Add(new LiquidVolume()
+ {
+ LiquidType = LiquidType.Black,
+ Volume = 0
+ });
+ input.Stops.Add(gradientInputStop3);
+
+ Console.WriteLine($"TestVolumeGamutRegion0 input:\n{input.ToJsonString(nameof(input.ForwardData), nameof(CalibrationData))}");
+ Console.WriteLine();
+ Console.WriteLine("Processing...");
+ Stopwatch watch = new Stopwatch();
+ watch.Start();
+
+ GradientConversionOutput output = generator.GenerateGradient(input);
+
+ watch.Stop();
+ Console.WriteLine($"Processing completed after: {watch.Elapsed.Milliseconds.ToString("00000.00")} mseconds.");
+ Console.WriteLine();
+ Console.WriteLine($"Result TestVolumeGamutRegion0 :\n{output.ToJsonString()}");
+ Console.WriteLine();
+ }
+
+ /// <summary>
+ /// 4. VolumeAB, Gamut Region 1, In Gamut
+ /// </summary>
+ static void TestVolumeGamutRegion1(GradientGenerator generator)
+ {
+ GradientConversionInput input = CreateBaseGradientConversionInput();
+
+ GradientInputStop gradientInputStop1 = new GradientInputStop()
+ {
+ ColorSpace = ColorSpace.Volume,
+ Offset = 0.0,
+ };
+ gradientInputStop1.LiquidVolumes.Add(new LiquidVolume()
+ {
+ LiquidType = LiquidType.Cyan,
+ Volume = 100
+ });
+ gradientInputStop1.LiquidVolumes.Add(new LiquidVolume()
+ {
+ LiquidType = LiquidType.Magenta,
+ Volume = 50
+ });
+ gradientInputStop1.LiquidVolumes.Add(new LiquidVolume()
+ {
+ LiquidType = LiquidType.Yellow,
+ Volume = 0
+ });
+ gradientInputStop1.LiquidVolumes.Add(new LiquidVolume()
+ {
+ LiquidType = LiquidType.Black,
+ Volume = 0
+ });
+ input.Stops.Add(gradientInputStop1);
+
+ //Volume, Gamut Region 1, In Gamut
+ GradientInputStop gradientInputStop2 = new GradientInputStop()
+ {
+ ColorSpace = ColorSpace.Volume,
+ Offset = 0.5,
+ };
+ gradientInputStop2.LiquidVolumes.Add(new LiquidVolume()
+ {
+ LiquidType = LiquidType.Cyan,
+ Volume = 0
+ });
+ gradientInputStop2.LiquidVolumes.Add(new LiquidVolume()
+ {
+ LiquidType = LiquidType.Magenta,
+ Volume = 100
+ });
+ gradientInputStop2.LiquidVolumes.Add(new LiquidVolume()
+ {
+ LiquidType = LiquidType.Yellow,
+ Volume = 50
+ });
+ gradientInputStop2.LiquidVolumes.Add(new LiquidVolume()
+ {
+ LiquidType = LiquidType.Black,
+ Volume = 0
+ });
+ input.Stops.Add(gradientInputStop2);
+
+ GradientInputStop gradientInputStop3 = new GradientInputStop()
+ {
+ ColorSpace = ColorSpace.Volume,
+ Offset = 1,
+ };
+ gradientInputStop3.LiquidVolumes.Add(new LiquidVolume()
+ {
+ LiquidType = LiquidType.Cyan,
+ Volume = 50
+ });
+ gradientInputStop3.LiquidVolumes.Add(new LiquidVolume()
+ {
+ LiquidType = LiquidType.Magenta,
+ Volume = 0
+ });
+ gradientInputStop3.LiquidVolumes.Add(new LiquidVolume()
+ {
+ LiquidType = LiquidType.Yellow,
+ Volume = 100
+ });
+ gradientInputStop3.LiquidVolumes.Add(new LiquidVolume()
+ {
+ LiquidType = LiquidType.Black,
+ Volume = 0
+ });
+ input.Stops.Add(gradientInputStop3);
+
+ Console.WriteLine($"TestVolumeGamutRegion1 input:\n{input.ToJsonString(nameof(input.ForwardData), nameof(CalibrationData))}");
+ Console.WriteLine();
+ Console.WriteLine("Processing...");
+ Stopwatch watch = new Stopwatch();
+ watch.Start();
+
+ GradientConversionOutput output = generator.GenerateGradient(input);
+
+ watch.Stop();
+ Console.WriteLine($"Processing completed after: {watch.Elapsed.Milliseconds.ToString("00000.00")} mseconds.");
+ Console.WriteLine();
+ Console.WriteLine($"Result TestVolumeGamutRegion1 :\n{output.ToJsonString()}");
+ Console.WriteLine();
+ }
+
+ /// <summary>
+ /// 5. RGB, Mixed Gamut Regions, In Gamut
+ /// </summary>
+ static void TestRGBMixedGamut(GradientGenerator generator)
+ {
+ GradientConversionInput input = CreateBaseGradientConversionInput();
+ input.Stops.Add(new GradientInputStop()
+ {
+ ColorSpace = ColorSpace.Rgb,
+ Offset = 0,
+ Red = 180,
+ Green = 152,
+ Blue = 116,
+ });
+ input.Stops.Add(new GradientInputStop()
+ {
+ ColorSpace = ColorSpace.Rgb,
+ Offset = 0.4,
+ Red = 34,
+ Green = 108,
+ Blue = 80,
});
- //RGB Stop 2
input.Stops.Add(new GradientInputStop()
{
ColorSpace = ColorSpace.Rgb,
Offset = 1,
- Red = 0,
- Green = 255,
- Blue = 255,
+ Red = 70,
+ Green = 50,
+ Blue = 50,
});
- /* //Volume Stop 3
- GradientInputStop a = new GradientInputStop()
- {
- ColorSpace = ColorSpace.Volume,
- Offset = 1.0,
- };
- a.LiquidVolumes.Add(new LiquidVolume()
- {
- LiquidType = LiquidType.Cyan,
- Volume = 100
- });
- a.LiquidVolumes.Add(new LiquidVolume()
- {
- LiquidType = LiquidType.Magenta,
- Volume = 0
- });
- a.LiquidVolumes.Add(new LiquidVolume()
- {
- LiquidType = LiquidType.Yellow,
- Volume = 0
- });
- a.LiquidVolumes.Add(new LiquidVolume()
- {
- LiquidType = LiquidType.Black,
- Volume = 0
- });
- input.Stops.Add(a);*/
- /* GradientInputStop c = new GradientInputStop()
- {
- ColorSpace = ColorSpace.Volume,
- Offset = 0.5,
- };
- c.LiquidVolumes.Add(new LiquidVolume()
- {
- LiquidType = LiquidType.Cyan,
- Volume = 0
- });
- c.LiquidVolumes.Add(new LiquidVolume()
- {
- LiquidType = LiquidType.Magenta,
- Volume = 100
- });
- c.LiquidVolumes.Add(new LiquidVolume()
- {
- LiquidType = LiquidType.Yellow,
- Volume = 0
- });
- c.LiquidVolumes.Add(new LiquidVolume()
- {
- LiquidType = LiquidType.Black,
- Volume = 0
- });
- input.Stops.Add(c);
- GradientInputStop b = new GradientInputStop()
- {
- ColorSpace = ColorSpace.Volume,
- Offset = 1.0,
- };
- b.LiquidVolumes.Add(new LiquidVolume()
- {
- LiquidType = LiquidType.Cyan,
- Volume = 0
- });
- b.LiquidVolumes.Add(new LiquidVolume()
- {
- LiquidType = LiquidType.Magenta,
- Volume = 80
- });
- b.LiquidVolumes.Add(new LiquidVolume()
- {
- LiquidType = LiquidType.Yellow,
- Volume = 20
- });
- b.LiquidVolumes.Add(new LiquidVolume()
- {
- LiquidType = LiquidType.Black,
- Volume = 0
- });
- input.Stops.Add(b);*/
- //RGB Stop 4
- /* input.Stops.Add(new GradientInputStop()
- {
- // ColorSpace = ColorSpace.Rgb,
- // Offset = 0,
- // Red = 25,
- // Green = 139,
- // Blue = 246,
- ColorSpace = ColorSpace.Lab,
- Offset = 1,
- L = 52,
- A = 25.3326,
- B = -15.6336,*/
- /* ColorSpace = ColorSpace.Volume,
- Offset = 0,
- Cyan = 41.7186,
- Magenta = 28.1257,
- Yellow =0,
- Key = 0.5887,
- });*/
- Console.WriteLine($"Testing input:\n{input.ToJsonString(nameof(input.ForwardData),nameof(CalibrationData))}");
+ Console.WriteLine($"TestRGBMixedGamut input:\n{input.ToJsonString(nameof(input.ForwardData), nameof(CalibrationData))}");
Console.WriteLine();
+ Console.WriteLine("Processing...");
+ Stopwatch watch = new Stopwatch();
+ watch.Start();
+ GradientConversionOutput output = generator.GenerateGradient(input);
+
+ watch.Stop();
+ Console.WriteLine($"Processing completed after: {watch.Elapsed.Milliseconds.ToString("00000.00")} mseconds.");
+ Console.WriteLine();
+ Console.WriteLine($"Result TestRGBMixedGamut :\n{output.ToJsonString()}");
+ Console.WriteLine();
+ }
+
+ /// <summary>
+ /// 6. Lab, Gamut Region 0, Out of Gamut
+ /// </summary>
+ static void TestLABOutOfGamut(GradientGenerator generator)
+ {
+ GradientConversionInput input = CreateBaseGradientConversionInput();
+ input.Stops.Add(new GradientInputStop()
+ {
+ ColorSpace = ColorSpace.Lab,
+ Offset = 0.0,
+ L = 51,
+ A = 70,
+ B = 35,
+ });
+
+ //Lab Stop 2
+ input.Stops.Add(new GradientInputStop()
+ {
+ ColorSpace = ColorSpace.Lab,
+ Offset = 0.3,
+ L = 37,
+ A = 24,
+ B = -50,
+ });
+ //Lab Stop 3
+ input.Stops.Add(new GradientInputStop()
+ {
+ ColorSpace = ColorSpace.Lab,
+ Offset = 1,
+ L = 78,
+ A = -50,
+ B = 75,
+ });
+
+ Console.WriteLine($"TestLABOutOfGamut input:\n{input.ToJsonString(nameof(input.ForwardData), nameof(CalibrationData))}");
+ Console.WriteLine();
Console.WriteLine("Processing...");
+ Stopwatch watch = new Stopwatch();
+ watch.Start();
+
+ GradientConversionOutput output = generator.GenerateGradient(input);
+
+ watch.Stop();
+ Console.WriteLine($"Processing completed after: {watch.Elapsed.Milliseconds.ToString("00000.00")} mseconds.");
+ Console.WriteLine();
+ Console.WriteLine($"Result TestLABOutOfGamut :\n{output.ToJsonString()}");
+ Console.WriteLine();
+ }
+
+ /// <summary>
+ ///7. Lab, Mixed Gamut Regions, In Gamut
+ /// </summary>
+ static void TestLABMixedGamut(GradientGenerator generator)
+ {
+ GradientConversionInput input = CreateBaseGradientConversionInput();
+ input.Stops.Add(new GradientInputStop()
+ {
+ ColorSpace = ColorSpace.Lab,
+ Offset = 0.0,
+ L = 73,
+ A = -30,
+ B = 45,
+ });
+ //Lab Stop 2
+ input.Stops.Add(new GradientInputStop()
+ {
+ ColorSpace = ColorSpace.Lab,
+ Offset = 0.6,
+ L = 27,
+ A = 5,
+ B = -15,
+ });
+ //Lab Stop 3
+ input.Stops.Add(new GradientInputStop()
+ {
+ ColorSpace = ColorSpace.Lab,
+ Offset = 1,
+ L = 74,
+ A = -12,
+ B = 35,
+ });
+
+ Console.WriteLine($"TestLABMixedGamut input:\n{input.ToJsonString(nameof(input.ForwardData), nameof(CalibrationData))}");
+ Console.WriteLine();
+ Console.WriteLine("Processing...");
Stopwatch watch = new Stopwatch();
watch.Start();
@@ -236,15 +683,75 @@ namespace Tango.ColorLib.GradientTest.CLI
watch.Stop();
Console.WriteLine($"Processing completed after: {watch.Elapsed.Milliseconds.ToString("00000.00")} mseconds.");
-
-//watch.Elapsed.TotalSeconds.ToString("0.0")}
-
Console.WriteLine();
- Console.WriteLine($"Result:\n{output.ToJsonString()}");
+ Console.WriteLine($"Result TestLABMixedGamut :\n{output.ToJsonString()}");
Console.WriteLine();
+ }
- Console.WriteLine("Press return to exit...");
- Console.ReadLine();
+ /// <summary>
+ ///8. Mixed Environment
+ /// </summary>
+ static void TestMixedEnvironment(GradientGenerator generator)
+ {
+ GradientConversionInput input = CreateBaseGradientConversionInput();
+ input.Stops.Add(new GradientInputStop()
+ {
+ ColorSpace = ColorSpace.Rgb,
+ Offset = 0,
+ Red = 93,
+ Green = 123,
+ Blue = 95,
+ });
+
+ input.Stops.Add(new GradientInputStop()
+ {
+ ColorSpace = ColorSpace.Lab,
+ Offset = 0.6,
+ L = 50,
+ A = -10,
+ B = -10,
+ });
+
+ GradientInputStop gradientInputStop1 = new GradientInputStop()
+ {
+ ColorSpace = ColorSpace.Volume,
+ Offset = 1.0,
+ };
+ gradientInputStop1.LiquidVolumes.Add(new LiquidVolume()
+ {
+ LiquidType = LiquidType.Cyan,
+ Volume = 50
+ });
+ gradientInputStop1.LiquidVolumes.Add(new LiquidVolume()
+ {
+ LiquidType = LiquidType.Magenta,
+ Volume = 0
+ });
+ gradientInputStop1.LiquidVolumes.Add(new LiquidVolume()
+ {
+ LiquidType = LiquidType.Yellow,
+ Volume = 50
+ });
+ gradientInputStop1.LiquidVolumes.Add(new LiquidVolume()
+ {
+ LiquidType = LiquidType.Black,
+ Volume = 0
+ });
+ input.Stops.Add(gradientInputStop1);
+
+ Console.WriteLine($"TestMixedEnvironment input:\n{input.ToJsonString(nameof(input.ForwardData), nameof(CalibrationData))}");
+ Console.WriteLine();
+ Console.WriteLine("Processing...");
+ Stopwatch watch = new Stopwatch();
+ watch.Start();
+
+ GradientConversionOutput output = generator.GenerateGradient(input);
+
+ watch.Stop();
+ Console.WriteLine($"Processing completed after: {watch.Elapsed.Milliseconds.ToString("00000.00")} mseconds.");
+ Console.WriteLine();
+ Console.WriteLine($"Result TestMixedEnvironment :\n{output.ToJsonString()}");
+ Console.WriteLine();
}
}
}
diff --git a/Software/Visual_Studio/Tango.Core/ExtensionMethods/StringExtensions.cs b/Software/Visual_Studio/Tango.Core/ExtensionMethods/StringExtensions.cs
index ef17f0279..97c8773d6 100644
--- a/Software/Visual_Studio/Tango.Core/ExtensionMethods/StringExtensions.cs
+++ b/Software/Visual_Studio/Tango.Core/ExtensionMethods/StringExtensions.cs
@@ -224,6 +224,28 @@ public static class StringExtensions
);
}
+ /// <summary>
+ /// Removes any invalid file name characters from the string.
+ /// </summary>
+ /// <param name="str">The string.</param>
+ /// <returns></returns>
+ public static string ToValidFileName(this string str)
+ {
+ char[] _invalidChars = System.IO.Path.GetInvalidFileNameChars();
+
+ String validFileName = str;
+
+ if (validFileName != null)
+ {
+ foreach (var c in _invalidChars)
+ {
+ validFileName = validFileName.Replace(c.ToString(), "");
+ }
+ }
+
+ return validFileName;
+ }
+
public static String ToStringOrEmpty(this String str)
{
return str != null ? str : String.Empty;
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 13c1a65f6..5896f742e 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
@@ -50,7 +50,6 @@ namespace Tango.DAL.Remote.DB
public double L_BLOWER_FLOW { get; set; }
public double L_BLOWER_TEMP { get; set; }
public double PRESSURE_BUILD_UP { get; set; }
- public double ARC_HEAD_CLEANING_MOTOR_SPEED { get; set; }
public virtual PROCESS_PARAMETERS_TABLES_GROUPS PROCESS_PARAMETERS_TABLES_GROUPS { get; set; }
}
diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/RML.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/RML.cs
index 93648de50..af0077df7 100644
--- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RML.cs
+++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RML.cs
@@ -72,6 +72,7 @@ namespace Tango.DAL.Remote.DB
public int WINDER_D { get; set; }
public bool BYPASS_ROCKERS { get; set; }
public int CLEANER_FLOW { get; set; }
+ public double ARC_HEAD_CLEANING_MOTOR_SPEED { 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/RemoteADO.edmx b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx
index 01417ab3e..3b471ca54 100644
--- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx
+++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx
@@ -933,7 +933,6 @@
<Property Name="L_BLOWER_FLOW" Type="float" Nullable="false" />
<Property Name="L_BLOWER_TEMP" Type="float" Nullable="false" />
<Property Name="PRESSURE_BUILD_UP" Type="float" Nullable="false" />
- <Property Name="ARC_HEAD_CLEANING_MOTOR_SPEED" Type="float" Nullable="false" />
</EntityType>
<EntityType Name="PROCESS_PARAMETERS_TABLES_GROUPS">
<Key>
@@ -1023,6 +1022,7 @@
<Property Name="WINDER_D" Type="int" Nullable="false" />
<Property Name="BYPASS_ROCKERS" Type="bit" Nullable="false" />
<Property Name="CLEANER_FLOW" Type="int" Nullable="false" />
+ <Property Name="ARC_HEAD_CLEANING_MOTOR_SPEED" Type="float" Nullable="false" />
</EntityType>
<EntityType Name="RMLS_SPOOLS">
<Key>
@@ -4423,7 +4423,6 @@
<Property Name="L_BLOWER_FLOW" Type="Double" Nullable="false" />
<Property Name="L_BLOWER_TEMP" Type="Double" Nullable="false" />
<Property Name="PRESSURE_BUILD_UP" Type="Double" Nullable="false" />
- <Property Name="ARC_HEAD_CLEANING_MOTOR_SPEED" 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">
@@ -4518,6 +4517,7 @@
<Property Name="WINDER_D" Type="Int32" Nullable="false" />
<Property Name="BYPASS_ROCKERS" Type="Boolean" Nullable="false" />
<Property Name="CLEANER_FLOW" Type="Int32" Nullable="false" />
+ <Property Name="ARC_HEAD_CLEANING_MOTOR_SPEED" Type="Double" Nullable="false" />
<NavigationProperty Name="CATS" Relationship="RemoteModel.FK_CATS_RMLS" FromRole="RML" ToRole="CAT" />
<NavigationProperty Name="CCT" Relationship="RemoteModel.FK_RMLS_CCTS" FromRole="RML" ToRole="CCT" />
<NavigationProperty Name="COLOR_CATALOGS_ITEMS_RECIPES" Relationship="RemoteModel.FK_COLOR_CATALOGS_ITEMS_RECIPES_RMLS" FromRole="RML" ToRole="COLOR_CATALOGS_ITEMS_RECIPES" />
@@ -6973,7 +6973,6 @@
<EntitySetMapping Name="PROCESS_PARAMETERS_TABLES">
<EntityTypeMapping TypeName="RemoteModel.PROCESS_PARAMETERS_TABLES">
<MappingFragment StoreEntitySet="PROCESS_PARAMETERS_TABLES">
- <ScalarProperty Name="ARC_HEAD_CLEANING_MOTOR_SPEED" ColumnName="ARC_HEAD_CLEANING_MOTOR_SPEED" />
<ScalarProperty Name="PRESSURE_BUILD_UP" ColumnName="PRESSURE_BUILD_UP" />
<ScalarProperty Name="L_BLOWER_TEMP" ColumnName="L_BLOWER_TEMP" />
<ScalarProperty Name="L_BLOWER_FLOW" ColumnName="L_BLOWER_FLOW" />
@@ -7057,6 +7056,7 @@
<EntitySetMapping Name="RMLS">
<EntityTypeMapping TypeName="RemoteModel.RML">
<MappingFragment StoreEntitySet="RMLS">
+ <ScalarProperty Name="ARC_HEAD_CLEANING_MOTOR_SPEED" ColumnName="ARC_HEAD_CLEANING_MOTOR_SPEED" />
<ScalarProperty Name="CLEANER_FLOW" ColumnName="CLEANER_FLOW" />
<ScalarProperty Name="BYPASS_ROCKERS" ColumnName="BYPASS_ROCKERS" />
<ScalarProperty Name="WINDER_D" ColumnName="WINDER_D" />
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 44584e115..357b569f8 100644
--- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram
+++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram
@@ -5,90 +5,90 @@
<!-- 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="27.75" />
- <EntityTypeShape EntityType="RemoteModel.ADDRESS" Width="1.5" PointX="1.5" PointY="36.25" />
- <EntityTypeShape EntityType="RemoteModel.APPLICATION_DISPLAY_PANEL_VERSIONS" Width="1.5" PointX="4.5" PointY="68.625" />
- <EntityTypeShape EntityType="RemoteModel.APPLICATION_FIRMWARE_VERSIONS" Width="1.5" PointX="4.5" PointY="62.75" />
- <EntityTypeShape EntityType="RemoteModel.APPLICATION_OS_VERSIONS" Width="1.5" PointX="4.5" PointY="59.875" />
+ <EntityTypeShape EntityType="RemoteModel.ACTION_LOGS" Width="1.5" PointX="11.25" PointY="27.25" />
+ <EntityTypeShape EntityType="RemoteModel.ADDRESS" Width="1.5" PointX="1.5" PointY="76" />
+ <EntityTypeShape EntityType="RemoteModel.APPLICATION_DISPLAY_PANEL_VERSIONS" Width="1.5" PointX="1.5" PointY="62" />
+ <EntityTypeShape EntityType="RemoteModel.APPLICATION_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="56.125" />
+ <EntityTypeShape EntityType="RemoteModel.APPLICATION_OS_VERSIONS" Width="1.5" PointX="1.5" PointY="64.875" />
<EntityTypeShape EntityType="RemoteModel.BRUSH_STOPS" Width="1.5" PointX="15.75" PointY="17" />
- <EntityTypeShape EntityType="RemoteModel.CARTRIDGE_TYPES" Width="1.5" PointX="7.75" PointY="42.625" />
- <EntityTypeShape EntityType="RemoteModel.CAT" Width="1.5" PointX="5.25" PointY="23.875" />
- <EntityTypeShape EntityType="RemoteModel.CCT" Width="1.5" PointX="0.75" PointY="20.25" />
- <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS" Width="1.5" PointX="1.5" PointY="7.75" />
- <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_GROUPS" Width="1.5" PointX="3.75" PointY="8.25" />
- <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS" Width="1.5" PointX="6" PointY="7" />
- <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS_RECIPES" Width="1.5" PointX="8.25" PointY="15.875" />
- <EntityTypeShape EntityType="RemoteModel.COLOR_SPACES" Width="1.5" PointX="9" PointY="30" />
- <EntityTypeShape EntityType="RemoteModel.CONFIGURATION" Width="1.5" PointX="6.75" PointY="65.375" />
- <EntityTypeShape EntityType="RemoteModel.CONTACT" Width="1.5" PointX="1.5" PointY="40.375" />
- <EntityTypeShape EntityType="RemoteModel.CUSTOMER" Width="1.5" PointX="9" PointY="11.875" />
- <EntityTypeShape EntityType="RemoteModel.DATA_STORE_ITEMS" Width="1.5" PointX="11.25" PointY="72.625" />
- <EntityTypeShape EntityType="RemoteModel.DISPENSER_TYPES" Width="1.5" PointX="5.5" PointY="82.625" />
- <EntityTypeShape EntityType="RemoteModel.DISPENSER" Width="1.5" PointX="7.75" PointY="82" />
- <EntityTypeShape EntityType="RemoteModel.EMBEDDED_FIRMWARE_VERSIONS" Width="1.5" PointX="4.5" PointY="65.625" />
- <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES" Width="1.5" PointX="10" PointY="41.125" />
- <EntityTypeShape EntityType="RemoteModel.FIBER_SHAPES" Width="1.5" PointX="0.75" PointY="16" />
- <EntityTypeShape EntityType="RemoteModel.FIBER_SYNTHS" Width="1.5" PointX="0.75" PointY="26.875" />
- <EntityTypeShape EntityType="RemoteModel.FSE_VERSIONS" Width="1.5" PointX="11.25" PointY="31.5" />
- <EntityTypeShape EntityType="RemoteModel.GLOBAL_DATA_STORE_ITEMS" Width="1.5" PointX="11.75" PointY="4.75" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWER_TYPES" Width="1.5" PointX="10.5" PointY="85.125" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWERS" Width="1.5" PointX="12.75" PointY="76.75" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSOR_TYPES" Width="1.5" PointX="12.5" PointY="59.125" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSORS" Width="1.5" PointX="14.75" PointY="64.875" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCER_TYPES" Width="1.5" PointX="4.5" PointY="86.125" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCERS" Width="1.5" PointX="6.75" PointY="76" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTOR_TYPES" Width="1.5" PointX="9.5" PointY="57" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTORS" Width="1.5" PointX="11.75" PointY="62.75" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROL_TYPES" Width="1.5" PointX="12.5" PointY="81.125" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROLS" Width="1.5" PointX="14.75" PointY="69.125" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSOR_TYPES" Width="1.5" PointX="4.5" PointY="76.125" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSORS" Width="1.5" PointX="6.75" PointY="71.875" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS" Width="1.5" PointX="4.5" PointY="71.5" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDER_TYPES" Width="1.5" PointX="7.5" PointY="87.125" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDERS" Width="1.5" PointX="9.75" PointY="76.875" />
- <EntityTypeShape EntityType="RemoteModel.IDS_PACK_FORMULAS" Width="1.5" PointX="7.75" PointY="34.75" />
- <EntityTypeShape EntityType="RemoteModel.IDS_PACKS" Width="1.5" PointX="10" PointY="47" />
- <EntityTypeShape EntityType="RemoteModel.JOB_RUNS" Width="1.5" PointX="16.75" PointY="0.75" />
- <EntityTypeShape EntityType="RemoteModel.JOB" Width="1.5" PointX="11.25" PointY="16.5" />
- <EntityTypeShape EntityType="RemoteModel.LINEAR_MASS_DENSITY_UNITS" Width="1.5" PointX="0.75" PointY="24" />
- <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES" Width="1.5" PointX="3" PointY="28.75" />
- <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES_RMLS" Width="1.5" PointX="5.25" PointY="20.125" />
- <EntityTypeShape EntityType="RemoteModel.MACHINE_STUDIO_VERSIONS" Width="1.5" PointX="11.25" PointY="52" />
- <EntityTypeShape EntityType="RemoteModel.MACHINE_VERSIONS" Width="1.5" PointX="6.75" PointY="56.5" />
- <EntityTypeShape EntityType="RemoteModel.MACHINE" Width="1.5" PointX="9" PointY="61.25" />
- <EntityTypeShape EntityType="RemoteModel.MACHINES_EVENTS" Width="1.5" PointX="12.25" PointY="44.5" />
- <EntityTypeShape EntityType="RemoteModel.MEDIA_CONDITIONS" Width="1.5" PointX="0.75" PointY="13.125" />
- <EntityTypeShape EntityType="RemoteModel.MEDIA_MATERIALS" Width="1.5" PointX="0.75" PointY="29.75" />
- <EntityTypeShape EntityType="RemoteModel.MEDIA_PURPOSES" Width="1.5" PointX="0.75" PointY="32.75" />
- <EntityTypeShape EntityType="RemoteModel.MID_TANK_TYPES" Width="1.5" PointX="7.75" PointY="38.625" />
- <EntityTypeShape EntityType="RemoteModel.ORGANIZATION" Width="1.5" PointX="0.75" PointY="1.5" />
- <EntityTypeShape EntityType="RemoteModel.PERMISSION" Width="1.5" PointX="12" PointY="8.5" />
+ <EntityTypeShape EntityType="RemoteModel.CARTRIDGE_TYPES" Width="1.5" PointX="3.75" PointY="43.5" />
+ <EntityTypeShape EntityType="RemoteModel.CAT" Width="1.5" PointX="8.25" PointY="19.875" />
+ <EntityTypeShape EntityType="RemoteModel.CCT" Width="1.5" PointX="0.75" PointY="15.75" />
+ <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS" Width="1.5" PointX="1.5" PointY="7.625" />
+ <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_GROUPS" Width="1.5" PointX="3.75" PointY="8.125" />
+ <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS" Width="1.5" PointX="6" PointY="6.875" />
+ <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS_RECIPES" Width="1.5" PointX="8.25" PointY="15.75" />
+ <EntityTypeShape EntityType="RemoteModel.COLOR_SPACES" Width="1.5" PointX="9" PointY="33.5" />
+ <EntityTypeShape EntityType="RemoteModel.CONFIGURATION" Width="1.5" PointX="3.75" PointY="61.75" />
+ <EntityTypeShape EntityType="RemoteModel.CONTACT" Width="1.5" PointX="1.5" PointY="72.125" />
+ <EntityTypeShape EntityType="RemoteModel.CUSTOMER" Width="1.5" PointX="9" PointY="11.5" />
+ <EntityTypeShape EntityType="RemoteModel.DATA_STORE_ITEMS" Width="1.5" PointX="8.25" PointY="76.25" />
+ <EntityTypeShape EntityType="RemoteModel.DISPENSER_TYPES" Width="1.5" PointX="1.5" PointY="36.5" />
+ <EntityTypeShape EntityType="RemoteModel.DISPENSER" Width="1.5" PointX="3.75" PointY="35.875" />
+ <EntityTypeShape EntityType="RemoteModel.EMBEDDED_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="59.125" />
+ <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES" Width="1.5" PointX="9" PointY="40.75" />
+ <EntityTypeShape EntityType="RemoteModel.FIBER_SHAPES" Width="1.5" PointX="0.75" PointY="20.25" />
+ <EntityTypeShape EntityType="RemoteModel.FIBER_SYNTHS" Width="1.5" PointX="0.75" PointY="32.75" />
+ <EntityTypeShape EntityType="RemoteModel.FSE_VERSIONS" Width="1.5" PointX="11.25" PointY="42.625" />
+ <EntityTypeShape EntityType="RemoteModel.GLOBAL_DATA_STORE_ITEMS" Width="1.5" PointX="10.75" PointY="0.75" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWER_TYPES" Width="1.5" PointX="4.5" PointY="58.375" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWERS" Width="1.5" PointX="6.75" PointY="60" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSOR_TYPES" Width="1.5" PointX="6.5" PointY="80.375" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSORS" Width="1.5" PointX="8.75" PointY="64.125" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCER_TYPES" Width="1.5" PointX="1.5" PointY="80.375" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCERS" Width="1.5" PointX="3.75" PointY="67.375" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTOR_TYPES" Width="1.5" PointX="9.5" PointY="59.375" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTORS" Width="1.5" PointX="11.75" PointY="56" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROL_TYPES" Width="1.5" PointX="9.5" PointY="80.375" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROLS" Width="1.5" PointX="11.75" PointY="66.5" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSOR_TYPES" Width="1.5" PointX="6.5" PointY="88.375" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSORS" Width="1.5" PointX="8.75" PointY="72.125" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="67.875" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDER_TYPES" Width="1.5" PointX="6.5" PointY="84.375" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDERS" Width="1.5" PointX="8.75" PointY="68.25" />
+ <EntityTypeShape EntityType="RemoteModel.IDS_PACK_FORMULAS" Width="1.5" PointX="3.75" PointY="40.125" />
+ <EntityTypeShape EntityType="RemoteModel.IDS_PACKS" Width="1.5" PointX="6" PointY="32.125" />
+ <EntityTypeShape EntityType="RemoteModel.JOB_RUNS" Width="1.5" PointX="14.75" PointY="0.75" />
+ <EntityTypeShape EntityType="RemoteModel.JOB" Width="1.5" PointX="11.25" PointY="16.375" />
+ <EntityTypeShape EntityType="RemoteModel.LINEAR_MASS_DENSITY_UNITS" Width="1.5" PointX="0.75" PointY="27" />
+ <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES" Width="1.5" PointX="3" PointY="2.625" />
+ <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES_RMLS" Width="1.5" PointX="5.25" PointY="16" />
+ <EntityTypeShape EntityType="RemoteModel.MACHINE_STUDIO_VERSIONS" Width="1.5" PointX="11.25" PointY="31" />
+ <EntityTypeShape EntityType="RemoteModel.MACHINE_VERSIONS" Width="1.5" PointX="3.75" PointY="80.125" />
+ <EntityTypeShape EntityType="RemoteModel.MACHINE" Width="1.5" PointX="6" PointY="64.875" />
+ <EntityTypeShape EntityType="RemoteModel.MACHINES_EVENTS" Width="1.5" PointX="11.25" PointY="49.125" />
+ <EntityTypeShape EntityType="RemoteModel.MEDIA_CONDITIONS" Width="1.5" PointX="0.75" PointY="24" />
+ <EntityTypeShape EntityType="RemoteModel.MEDIA_MATERIALS" Width="1.5" PointX="0.75" PointY="12.75" />
+ <EntityTypeShape EntityType="RemoteModel.MEDIA_PURPOSES" Width="1.5" PointX="0.75" PointY="29.875" />
+ <EntityTypeShape EntityType="RemoteModel.MID_TANK_TYPES" Width="1.5" PointX="3.75" PointY="32.75" />
+ <EntityTypeShape EntityType="RemoteModel.ORGANIZATION" Width="1.5" PointX="3.75" PointY="74" />
+ <EntityTypeShape EntityType="RemoteModel.PERMISSION" Width="1.5" PointX="12" PointY="5.125" />
<EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES" Width="1.5" PointX="7.5" PointY="46.625" />
- <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES_GROUPS" Width="1.5" PointX="5.25" PointY="49.375" />
- <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS" Width="1.5" PointX="11.75" PointY="1" />
- <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS_VERSIONS" Width="1.5" PointX="14" PointY="1.125" />
- <EntityTypeShape EntityType="RemoteModel.RML" Width="1.5" PointX="3" PointY="15.25" />
- <EntityTypeShape EntityType="RemoteModel.RMLS_SPOOLS" Width="1.5" PointX="8.25" PointY="19.875" />
- <EntityTypeShape EntityType="RemoteModel.ROLE" Width="1.5" PointX="12" PointY="12.375" />
- <EntityTypeShape EntityType="RemoteModel.ROLES_PERMISSIONS" Width="1.5" PointX="14.25" PointY="12.5" />
- <EntityTypeShape EntityType="RemoteModel.SEGMENT" Width="1.5" PointX="13.5" PointY="20.125" />
- <EntityTypeShape EntityType="RemoteModel.SITE" Width="1.5" PointX="3" PointY="1.125" />
- <EntityTypeShape EntityType="RemoteModel.SITES_CATALOGS" Width="1.5" PointX="5.25" PointY="3" />
- <EntityTypeShape EntityType="RemoteModel.SITES_RMLS" Width="1.5" PointX="5.25" PointY="16.375" />
- <EntityTypeShape EntityType="RemoteModel.SPOOL_TYPES" Width="1.5" PointX="9" PointY="5.125" />
- <EntityTypeShape EntityType="RemoteModel.SPOOL" Width="1.5" PointX="11.25" PointY="36" />
- <EntityTypeShape EntityType="RemoteModel.sysdiagram" Width="1.5" PointX="13.75" PointY="4.75" />
- <EntityTypeShape EntityType="RemoteModel.TANGO_UPDATES" Width="1.5" PointX="16.75" PointY="8.75" />
- <EntityTypeShape EntityType="RemoteModel.TANGO_VERSIONS" Width="1.5" PointX="14.25" PointY="39.875" />
- <EntityTypeShape EntityType="RemoteModel.TECH_CONTROLLERS" Width="1.5" PointX="17.75" PointY="13.75" />
- <EntityTypeShape EntityType="RemoteModel.TECH_DISPENSERS" Width="1.5" PointX="17.75" PointY="17.75" />
- <EntityTypeShape EntityType="RemoteModel.TECH_HEATERS" Width="1.5" PointX="18.75" PointY="0.75" />
- <EntityTypeShape EntityType="RemoteModel.TECH_IOS" Width="1.5" PointX="18.75" PointY="3.75" />
- <EntityTypeShape EntityType="RemoteModel.TECH_MONITORS" Width="1.5" PointX="18.75" PointY="8.75" />
- <EntityTypeShape EntityType="RemoteModel.TECH_VALVES" Width="1.5" PointX="19.75" PointY="13.75" />
- <EntityTypeShape EntityType="RemoteModel.USER" Width="1.5" PointX="9" PointY="24.125" />
- <EntityTypeShape EntityType="RemoteModel.USERS_ROLES" Width="1.5" PointX="14.25" PointY="27.5" />
- <EntityTypeShape EntityType="RemoteModel.WINDING_METHODS" Width="1.5" PointX="9" PointY="2" />
+ <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES_GROUPS" Width="1.5" PointX="5.25" PointY="49.25" />
+ <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS" Width="1.5" PointX="5.75" PointY="1" />
+ <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS_VERSIONS" Width="1.5" PointX="8" PointY="1.125" />
+ <EntityTypeShape EntityType="RemoteModel.RML" Width="1.5" PointX="3" PointY="15" />
+ <EntityTypeShape EntityType="RemoteModel.RMLS_SPOOLS" Width="1.5" PointX="5.25" PointY="23.875" />
+ <EntityTypeShape EntityType="RemoteModel.ROLE" Width="1.5" PointX="12" PointY="9" />
+ <EntityTypeShape EntityType="RemoteModel.ROLES_PERMISSIONS" Width="1.5" PointX="14.25" PointY="9.125" />
+ <EntityTypeShape EntityType="RemoteModel.SEGMENT" Width="1.5" PointX="13.5" PointY="20" />
+ <EntityTypeShape EntityType="RemoteModel.SITE" Width="1.5" PointX="3" PointY="29" />
+ <EntityTypeShape EntityType="RemoteModel.SITES_CATALOGS" Width="1.5" PointX="11.25" PointY="12.5" />
+ <EntityTypeShape EntityType="RemoteModel.SITES_RMLS" Width="1.5" PointX="5.25" PointY="20.25" />
+ <EntityTypeShape EntityType="RemoteModel.SPOOL_TYPES" Width="1.5" PointX="9" PointY="5.625" />
+ <EntityTypeShape EntityType="RemoteModel.SPOOL" Width="1.5" PointX="11.25" PointY="38.125" />
+ <EntityTypeShape EntityType="RemoteModel.sysdiagram" Width="1.5" PointX="5.75" PointY="12.75" />
+ <EntityTypeShape EntityType="RemoteModel.TANGO_UPDATES" Width="1.5" PointX="13.75" PointY="12.75" />
+ <EntityTypeShape EntityType="RemoteModel.TANGO_VERSIONS" Width="1.5" PointX="14.25" PointY="53.5" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_CONTROLLERS" Width="1.5" PointX="15.75" PointY="12.75" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_DISPENSERS" Width="1.5" PointX="16.75" PointY="0.75" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_HEATERS" Width="1.5" PointX="16.75" PointY="3.75" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_IOS" Width="1.5" PointX="16.75" PointY="6.75" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_MONITORS" Width="1.5" PointX="17.75" PointY="11.75" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_VALVES" Width="1.5" PointX="17.75" PointY="16.75" />
+ <EntityTypeShape EntityType="RemoteModel.USER" Width="1.5" PointX="9" PointY="27.75" />
+ <EntityTypeShape EntityType="RemoteModel.USERS_ROLES" Width="1.5" PointX="14.25" PointY="29.125" />
+ <EntityTypeShape EntityType="RemoteModel.WINDING_METHODS" Width="1.5" PointX="9" PointY="24.625" />
<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 6b49ca4eb..1d420e33f 100644
--- a/Software/Visual_Studio/Tango.Emulations/Emulators/MachineEmulator.cs
+++ b/Software/Visual_Studio/Tango.Emulations/Emulators/MachineEmulator.cs
@@ -470,6 +470,9 @@ namespace Tango.Emulations.Emulators
case MessageType.StandByRequest:
HandleStandByRequest(MessageFactory.ParseTangoMessageFromContainer<StandByRequest>(container));
break;
+ case MessageType.AttemptThreadJoggingRequest:
+ HandleAttemptThreadJoggingRequest(MessageFactory.ParseTangoMessageFromContainer<AttemptThreadJoggingRequest>(container));
+ break;
}
}
@@ -1719,6 +1722,20 @@ namespace Tango.Emulations.Emulators
await Transporter.SendResponse(new StandByResponse(), request.Container.Token);
}
+ private async void HandleAttemptThreadJoggingRequest(TangoMessage<AttemptThreadJoggingRequest> request)
+ {
+ await Task.Delay(3000);
+
+ if (_rnd.Next(0, 100) > 50)
+ {
+ await Transporter.SendResponse(new AttemptThreadJoggingResponse(), request.Container.Token);
+ }
+ else
+ {
+ await Transporter.SendResponse(new AttemptThreadJoggingResponse(), request.Container.Token, new TransportResponseConfig() { ErrorCode = ErrorCode.GeneralError });
+ }
+ }
+
#endregion
#region Public Methods
diff --git a/Software/Visual_Studio/Tango.Integration/Operation/IMachineOperator.cs b/Software/Visual_Studio/Tango.Integration/Operation/IMachineOperator.cs
index 8fd4a6438..232446cb6 100644
--- a/Software/Visual_Studio/Tango.Integration/Operation/IMachineOperator.cs
+++ b/Software/Visual_Studio/Tango.Integration/Operation/IMachineOperator.cs
@@ -544,5 +544,11 @@ namespace Tango.Integration.Operation
/// <param name="processParameters">The process parameters.</param>
/// <returns></returns>
Task ContinueThreadLoading(ProcessParametersTable processParameters);
+
+ /// <summary>
+ /// Attempts to jog the thread in order to check whether there are no thread breaking issues.
+ /// </summary>
+ /// <returns></returns>
+ Task AttemptThreadJogging();
}
}
diff --git a/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs b/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs
index 464e0713f..83579d776 100644
--- a/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs
+++ b/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs
@@ -1384,6 +1384,7 @@ namespace Tango.Integration.Operation
if (Status == MachineStatuses.Upgrading) return;
Status = MachineStatuses.Disconnected;
+ MachineStatus.State = MachineState.Ready;
SessionLogger.EndSession();
@@ -2699,6 +2700,7 @@ namespace Tango.Integration.Operation
//Head Cleaning Parameters
ticket.HeadCleaningParameters = new HeadCleaningParameters();
ticket.HeadCleaningParameters.CleanerFlow = job.Rml.CleanerFlow;
+ ticket.HeadCleaningParameters.ArcHeadCleaningMotorSpeed = job.Rml.ArcHeadCleaningMotorSpeed;
JobHandler handler = null;
StorageFileHandler fileUploadHandler = null;
@@ -4131,6 +4133,18 @@ namespace Tango.Integration.Operation
}, new TransportRequestConfig() { ShouldLog = true });
}
+ /// <summary>
+ /// Attempts to jog the thread in order to check whether there are no thread breaking issues.
+ /// </summary>
+ /// <returns></returns>
+ public async Task AttemptThreadJogging()
+ {
+ var r = await SendRequest<AttemptThreadJoggingRequest, AttemptThreadJoggingResponse>(new AttemptThreadJoggingRequest()
+ {
+
+ }, new TransportRequestConfig() { ShouldLog = true, Timeout = TimeSpan.FromSeconds(20) });
+ }
+
#endregion
}
}
diff --git a/Software/Visual_Studio/Tango.PMR/Common/MessageType.cs b/Software/Visual_Studio/Tango.PMR/Common/MessageType.cs
index 2ef40336c..e7e14f988 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(
- "ChFNZXNzYWdlVHlwZS5wcm90bxIQVGFuZ28uUE1SLkNvbW1vbircPQoLTWVz",
+ "ChFNZXNzYWdlVHlwZS5wcm90bxIQVGFuZ28uUE1SLkNvbW1vbiqhPgoLTWVz",
"c2FnZVR5cGUSCAoETm9uZRAAEhEKDUVycm9yUmVzcG9uc2UQARIUChBDYWxj",
"dWxhdGVSZXF1ZXN0EAMSFQoRQ2FsY3VsYXRlUmVzcG9uc2UQBBITCg9Qcm9n",
"cmVzc1JlcXVlc3QQBRIUChBQcm9ncmVzc1Jlc3BvbnNlEAYSHAoYU3R1YkNh",
@@ -194,12 +194,13 @@ namespace Tango.PMR.Common {
"TG9hZGluZ1Jlc3BvbnNlEPtVEh0KGFN0b3BUaHJlYWRMb2FkaW5nUmVxdWVz",
"dBD8VRIeChlTdG9wVGhyZWFkTG9hZGluZ1Jlc3BvbnNlEP1VEhwKF1RyeVRo",
"cmVhZExvYWRpbmdSZXF1ZXN0EP5VEh0KGFRyeVRocmVhZExvYWRpbmdSZXNw",
- "b25zZRD/VRIhChxTdGFydElua0ZpbGxpbmdTdGF0dXNSZXF1ZXN0EOBdEiIK",
- "HVN0YXJ0SW5rRmlsbGluZ1N0YXR1c1Jlc3BvbnNlEOFdEhwKF1B1dERhdGFT",
- "dG9yZUl0ZW1SZXF1ZXN0EMhlEh0KGFB1dERhdGFTdG9yZUl0ZW1SZXNwb25z",
- "ZRDJZRIcChdHZXREYXRhU3RvcmVJdGVtUmVxdWVzdBDKZRIdChhHZXREYXRh",
- "U3RvcmVJdGVtUmVzcG9uc2UQy2VCHAoaY29tLnR3aW5lLnRhbmdvLnBtci5j",
- "b21tb25iBnByb3RvMw=="));
+ "b25zZRD/VRIgChtBdHRlbXB0VGhyZWFkSm9nZ2luZ1JlcXVlc3QQgFYSIQoc",
+ "QXR0ZW1wdFRocmVhZEpvZ2dpbmdSZXNwb25zZRCBVhIhChxTdGFydElua0Zp",
+ "bGxpbmdTdGF0dXNSZXF1ZXN0EOBdEiIKHVN0YXJ0SW5rRmlsbGluZ1N0YXR1",
+ "c1Jlc3BvbnNlEOFdEhwKF1B1dERhdGFTdG9yZUl0ZW1SZXF1ZXN0EMhlEh0K",
+ "GFB1dERhdGFTdG9yZUl0ZW1SZXNwb25zZRDJZRIcChdHZXREYXRhU3RvcmVJ",
+ "dGVtUmVxdWVzdBDKZRIdChhHZXREYXRhU3RvcmVJdGVtUmVzcG9uc2UQy2VC",
+ "HAoaY29tLnR3aW5lLnRhbmdvLnBtci5jb21tb25iBnByb3RvMw=="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Tango.PMR.Common.MessageType), }, null));
@@ -517,6 +518,8 @@ namespace Tango.PMR.Common {
[pbr::OriginalName("StopThreadLoadingResponse")] StopThreadLoadingResponse = 11005,
[pbr::OriginalName("TryThreadLoadingRequest")] TryThreadLoadingRequest = 11006,
[pbr::OriginalName("TryThreadLoadingResponse")] TryThreadLoadingResponse = 11007,
+ [pbr::OriginalName("AttemptThreadJoggingRequest")] AttemptThreadJoggingRequest = 11008,
+ [pbr::OriginalName("AttemptThreadJoggingResponse")] AttemptThreadJoggingResponse = 11009,
/// <summary>
///IFS
/// </summary>
diff --git a/Software/Visual_Studio/Tango.PMR/Diagnostics/EventType.cs b/Software/Visual_Studio/Tango.PMR/Diagnostics/EventType.cs
index c9dc70417..59a807634 100644
--- a/Software/Visual_Studio/Tango.PMR/Diagnostics/EventType.cs
+++ b/Software/Visual_Studio/Tango.PMR/Diagnostics/EventType.cs
@@ -22,7 +22,7 @@ namespace Tango.PMR.Diagnostics {
static EventTypeReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
- "Cg9FdmVudFR5cGUucHJvdG8SFVRhbmdvLlBNUi5EaWFnbm9zdGljcyr5YwoJ",
+ "Cg9FdmVudFR5cGUucHJvdG8SFVRhbmdvLlBNUi5EaWFnbm9zdGljcyq+aAoJ",
"RXZlbnRUeXBlEggKBE5vbmUQABIRCgxSRVFVRVNUX1NFTlQQ6AcSFgoRUkVT",
"UE9OU0VfUkVDRUlWRUQQ6QcSEwoOUkVRVUVTVF9GQUlMRUQQ6gcSGgoVQVBQ",
"TElDQVRJT05fRVhDRVBUSU9OEOsHEhwKF0FQUExJQ0FUSU9OX0lORk9STUFU",
@@ -45,270 +45,283 @@ namespace Tango.PMR.Diagnostics {
"CiJNQUNISU5FX0lOVEVSTkFMX09WRVJURU1QRVJBVFVSRV8yEOEPEicKIkVM",
"RUNUUklDQUxfQ0FCSU5FVF9PVkVSVEVNUEVSQVRVUkUQ4g8SHAoXRlBHQV9X",
"QVRDSERPR19BQ1RJVkFURUQQ4w8SFQoQVU5JTlRFTkRFRF9SRVNFVBDkDxIi",
- "Ch1URU1QRVJBVFVSRV9NRUFTVVJFTUVOVF9FUlJPUhDlDxIRCgxUSFJFQURf",
- "QlJFQUsQuBcSMQosVEhSRUFEX1RFTlNJT05fQ09OVFJPTF9GQUlMVVJFX0ZF",
- "RURFUl9EQU5DRVIQuRcSHwoaV0lOREVSX0NPTkVfRE9FU19OT1RfRVhJU1QQ",
- "uhcSHQoYRkVFREVSX01PVE9SX09WRVJDVVJSRU5UELsXEiMKHlJJR0hUX0xP",
- "QURFUl9NT1RPUl9PVkVSQ1VSUkVOVBC8FxIdChhQVUxMRVJfTU9UT1JfT1ZF",
- "UkNVUlJFTlQQvRcSIgodTEVGVF9MT0FERVJfTU9UT1JfT1ZFUkNVUlJFTlQQ",
- "vhcSHQoYV0lOREVSX01PVE9SX09WRVJDVVJSRU5UEL8XEhwKF1NDUkVXX01P",
- "VE9SX09WRVJDVVJSRU5UEMAXEiIKHUxPQURJTkdfQVJNX01PVE9SX09WRVJD",
- "VVJSRU5UEMEXEiEKHEZFRURFUl9NT1RPUl9PVkVSVEVNUEVSQVRVUkUQwhcS",
- "JwoiUklHSFRfTE9BREVSX01PVE9SX09WRVJURU1QRVJBVFVSRRDDFxIhChxQ",
- "VUxMRVJfTU9UT1JfT1ZFUlRFTVBFUkFUVVJFEMQXEiYKIUxFRlRfTE9BREVS",
- "X01PVE9SX09WRVJURU1QRVJBVFVSRRDFFxIhChxXSU5ERVJfTU9UT1JfT1ZF",
- "UlRFTVBFUkFUVVJFEMYXEiAKG1NDUkVXX01PVE9SX09WRVJURU1QRVJBVFVS",
- "RRDHFxImCiFMT0FESU5HX0FSTV9NT1RPUl9PVkVSVEVNUEVSQVRVUkUQyBcS",
- "FwoSRkVFREVSX01PVE9SX1NUQUxMEMkXEh0KGFJJR0hUX0xPQURFUl9NT1RP",
- "Ul9TVEFMTBDKFxIXChJQVUxMRVJfTU9UT1JfU1RBTEwQyxcSHAoXTEVGVF9M",
- "T0FERVJfTU9UT1JfU1RBTEwQzBcSFwoSV0lOREVSX01PVE9SX1NUQUxMEM0X",
- "EhYKEVNDUkVXX01PVE9SX1NUQUxMEM4XEhwKF0xPQURJTkdfQVJNX01PVE9S",
- "X1NUQUxMEM8XEh4KGUZFRURFUl9NT1RPUl9VTkRFUlZPTFRBR0UQ0BcSJAof",
- "UklHSFRfTE9BREVSX01PVE9SX1VOREVSVk9MVEFHRRDRFxIeChlQVUxMRVJf",
- "TU9UT1JfVU5ERVJWT0xUQUdFENIXEiMKHkxFRlRfTE9BREVSX01PVE9SX1VO",
- "REVSVk9MVEFHRRDTFxIeChlXSU5ERVJfTU9UT1JfVU5ERVJWT0xUQUdFENQX",
- "Eh0KGFNDUkVXX01PVE9SX1VOREVSVk9MVEFHRRDVFxIjCh5MT0FESU5HX0FS",
- "TV9NT1RPUl9VTkRFUlZPTFRBR0UQ1hcSFAoPTFRGVV9VUF9USU1FT1VUENcX",
- "EhYKEUxURlVfRE9XTl9USU1FT1VUENgXEhQKD1JURlVfVVBfVElNRU9VVBDZ",
- "FxIWChFSVEZVX0RPV05fVElNRU9VVBDaFxIeChlTQ1JFV19NT1RPUl9MSU1J",
- "VF9USU1FT1VUENsXEiQKH1dJTkRFUl9EQU5DRVJfTU9UT1JfT1ZFUkNVUlJF",
- "TlQQ3BcSJAofUFVMTEVSX0RBTkNFUl9NT1RPUl9PVkVSQ1VSUkVOVBDdFxIk",
- "Ch9GRUVERVJfREFOQ0VSX01PVE9SX09WRVJDVVJSRU5UEN4XEigKI1dJTkRF",
- "Ul9EQU5DRVJfTU9UT1JfT1ZFUlRFTVBFUkFUVVJFEN8XEigKI1BVTExFUl9E",
- "QU5DRVJfTU9UT1JfT1ZFUlRFTVBFUkFUVVJFEOAXEigKI0ZFRURFUl9EQU5D",
- "RVJfTU9UT1JfT1ZFUlRFTVBFUkFUVVJFEOEXEh4KGVdJTkRFUl9EQU5DRVJf",
- "TU9UT1JfU1RBTEwQ4hcSHgoZUFVMTEVSX0RBTkNFUl9NT1RPUl9TVEFMTBDj",
- "FxIeChlGRUVERVJfREFOQ0VSX01PVE9SX1NUQUxMEOQXEiUKIFdJTkRFUl9E",
- "QU5DRVJfTU9UT1JfVU5ERVJWT0xUQUdFEOUXEiUKIFBVTExFUl9EQU5DRVJf",
- "TU9UT1JfVU5ERVJWT0xUQUdFEOYXEiUKIEZFRURFUl9EQU5DRVJfTU9UT1Jf",
- "VU5ERVJWT0xUQUdFEOcXEjEKLFRIUkVBRF9URU5TSU9OX0NPTlRST0xfRkFJ",
- "TFVSRV9QVUxMRVJfREFOQ0VSEOgXEjEKLFRIUkVBRF9URU5TSU9OX0NPTlRS",
- "T0xfRkFJTFVSRV9XSU5ERVJfREFOQ0VSEOkXEiUKIE1BQ0hJTkVfU1RBVEVf",
- "Tk9fVEhSRUFEX0RFVEVDVEVEEOoXEhkKFFRIUkVBRF9MT0FESU5HX0VSUk9S",
- "EOsXEhwKF0RSWUVSX01PVE9SX09WRVJDVVJSRU5UEKAfEiAKG0RSWUVSX01P",
- "VE9SX09WRVJURU1QRVJBVFVSRRChHxIWChFEUllFUl9NT1RPUl9TVEFMTBCi",
- "HxIdChhEUllFUl9NT1RPUl9VTkRFUlZPTFRBR0UQox8SFAoPRFJZRVJfRE9P",
- "Ul9PUEVOEKQfEiEKHERSWUVSX1pPTkVfMV9PVkVSVEVNUEVSQVRVUkUQpR8S",
- "IQocRFJZRVJfWk9ORV8yX09WRVJURU1QRVJBVFVSRRCmHxIkCh9EUllFUl9a",
- "T05FXzFfVU5ERVJURU1QRVJBVFVSRV9BEKcfEiQKH0RSWUVSX1pPTkVfMV9V",
- "TkRFUlRFTVBFUkFUVVJFX0IQqB8SJAofRFJZRVJfWk9ORV8yX1VOREVSVEVN",
- "UEVSQVRVUkVfQhCpHxIZChREUllFUl9USEVSTUFMX0NVVE9GRhCqHxIuCilE",
- "UllFUl9IRUFURVJTX1pPTkVfMV9DVVJSRU5UX09VVF9PRl9SQU5HRRCrHxIu",
- "CilEUllFUl9IRUFURVJTX1pPTkVfMl9DVVJSRU5UX09VVF9PRl9SQU5HRRCs",
- "HxIsCidEUllFUl9IRUFURVJTX1pPTkVfMV9DVVJSRU5UX0xPT1BfQlJFQUsQ",
- "rR8SLAonRFJZRVJfSEVBVEVSU19aT05FXzJfQ1VSUkVOVF9MT09QX0JSRUFL",
- "EK4fEhoKFURSWUVSX0ZBTl9SUE1fVE9PX0xPVxCvHxIWChFEUllFUl9GQU5f",
- "U1RPUFBFRBCwHxIgChtEUllFUl9MSURfTU9UT1JfT1ZFUkNVUlJFTlQQsR8S",
- "JAofRFJZRVJfTElEX01PVE9SX09WRVJURU1QRVJBVFVSRRCyHxIaChVEUllF",
- "Ul9MSURfTU9UT1JfU1RBTEwQsx8SIQocRFJZRVJfTElEX01PVE9SX1VOREVS",
- "Vk9MVEFHRRC0HxIkCh9EUllFUl9aT05FXzJfVU5ERVJURU1QRVJBVFVSRV9B",
- "ELUfEicKIkRZRUlOR19IRUFEX1pPTkVfMV9PVkVSVEVNUEVSQVRVUkUQiCcS",
- "JwoiRFlFSU5HX0hFQURfWk9ORV8yX09WRVJURU1QRVJBVFVSRRCJJxInCiJE",
- "WUVJTkdfSEVBRF9aT05FXzNfT1ZFUlRFTVBFUkFUVVJFEIonEicKIkRZRUlO",
- "R19IRUFEX1pPTkVfNF9PVkVSVEVNUEVSQVRVUkUQiycSJwoiRFlFSU5HX0hF",
- "QURfWk9ORV81X09WRVJURU1QRVJBVFVSRRCMJxInCiJEWUVJTkdfSEVBRF9a",
- "T05FXzZfT1ZFUlRFTVBFUkFUVVJFEI0nEioKJURZRUlOR19IRUFEX1pPTkVf",
- "MV9VTkRFUlRFTVBFUkFUVVJFX0EQjicSKgolRFlFSU5HX0hFQURfWk9ORV8y",
- "X1VOREVSVEVNUEVSQVRVUkVfQRCPJxIqCiVEWUVJTkdfSEVBRF9aT05FXzNf",
- "VU5ERVJURU1QRVJBVFVSRV9BEJAnEioKJURZRUlOR19IRUFEX1pPTkVfNF9V",
- "TkRFUlRFTVBFUkFUVVJFX0EQkScSKgolRFlFSU5HX0hFQURfWk9ORV81X1VO",
- "REVSVEVNUEVSQVRVUkVfQRCSJxIqCiVEWUVJTkdfSEVBRF9aT05FXzZfVU5E",
- "RVJURU1QRVJBVFVSRV9BEJMnEioKJURZRUlOR19IRUFEX1pPTkVfMV9VTkRF",
- "UlRFTVBFUkFUVVJFX0IQlCcSKgolRFlFSU5HX0hFQURfWk9ORV8yX1VOREVS",
- "VEVNUEVSQVRVUkVfQhCVJxIqCiVEWUVJTkdfSEVBRF9aT05FXzNfVU5ERVJU",
- "RU1QRVJBVFVSRV9CEJYnEioKJURZRUlOR19IRUFEX1pPTkVfNF9VTkRFUlRF",
- "TVBFUkFUVVJFX0IQlycSKgolRFlFSU5HX0hFQURfWk9ORV81X1VOREVSVEVN",
- "UEVSQVRVUkVfQhCYJxIqCiVEWUVJTkdfSEVBRF9aT05FXzZfVU5ERVJURU1Q",
- "RVJBVFVSRV9CEJknEiwKJ0RZRUlOR19IRUFEX1pPTkVfMV9DVVJSRU5UX09V",
- "VF9PRl9SQU5HRRCaJxIsCidEWUVJTkdfSEVBRF9aT05FXzJfQ1VSUkVOVF9P",
- "VVRfT0ZfUkFOR0UQmycSLAonRFlFSU5HX0hFQURfWk9ORV8zX0NVUlJFTlRf",
- "T1VUX09GX1JBTkdFEJwnEiwKJ0RZRUlOR19IRUFEX1pPTkVfNF9DVVJSRU5U",
- "X09VVF9PRl9SQU5HRRCdJxIsCidEWUVJTkdfSEVBRF9aT05FXzVfQ1VSUkVO",
- "VF9PVVRfT0ZfUkFOR0UQnicSKgolRFlFSU5HX0hFQURfWk9ORV8xX0NVUlJF",
- "TlRfTE9PUF9CUkVBSxCfJxIqCiVEWUVJTkdfSEVBRF9aT05FXzJfQ1VSUkVO",
- "VF9MT09QX0JSRUFLEKAnEioKJURZRUlOR19IRUFEX1pPTkVfM19DVVJSRU5U",
- "X0xPT1BfQlJFQUsQoScSKgolRFlFSU5HX0hFQURfWk9ORV80X0NVUlJFTlRf",
- "TE9PUF9CUkVBSxCiJxIqCiVEWUVJTkdfSEVBRF9aT05FXzVfQ1VSUkVOVF9M",
- "T09QX0JSRUFLEKMnEh8KGkRZRUlOR19IRUFEX1RIRVJNQUxfQ1VUT0ZGEKQn",
- "EiMKHkRZRUlOR19IRUFEX0NPVkVSX09QRU5fVElNRU9VVBClJxIkCh9EWUVJ",
- "TkdfSEVBRF9DT1ZFUl9DTE9TRV9USU1FT1VUEKYnEigKI0RZRUlOR19IRUFE",
- "X0NPVkVSX01PVE9SX09WRVJDVVJSRU5UEKcnEiwKJ0RZRUlOR19IRUFEX0NP",
- "VkVSX01PVE9SX09WRVJURU1QRVJBVFVSRRCoJxIiCh1EWUVJTkdfSEVBRF9D",
- "T1ZFUl9NT1RPUl9TVEFMTBCpJxIpCiREWUVJTkdfSEVBRF9DT1ZFUl9NT1RP",
- "Ul9VTkRFUlZPTFRBR0UQqicSNQowRFlFSU5HX0hFQURfQ0xFQU5JTkdfTUVD",
- "SEFOSVNNX01PVE9SX09WRVJDVVJSRU5UEKsnEjkKNERZRUlOR19IRUFEX0NM",
- "RUFOSU5HX01FQ0hBTklTTV9NT1RPUl9PVkVSVEVNUEVSQVRVUkUQrCcSLwoq",
- "RFlFSU5HX0hFQURfQ0xFQU5JTkdfTUVDSEFOSVNNX01PVE9SX1NUQUxMEK0n",
- "EjYKMURZRUlOR19IRUFEX0NMRUFOSU5HX01FQ0hBTklTTV9NT1RPUl9VTkRF",
- "UlZPTFRBR0UQricSMAorRFlFSU5HX0hFQURfQ0xFQU5JTkdfSEVBRF9NT1RP",
- "Ul9PVkVSQ1VSUkVOVBCvJxI0Ci9EWUVJTkdfSEVBRF9DTEVBTklOR19IRUFE",
- "X01PVE9SX09WRVJURU1QRVJBVFVSRRCwJxIqCiVEWUVJTkdfSEVBRF9DTEVB",
- "TklOR19IRUFEX01PVE9SX1NUQUxMELEnEjEKLERZRUlOR19IRUFEX0NMRUFO",
- "SU5HX0hFQURfTU9UT1JfVU5ERVJWT0xUQUdFELInEicKIkRZRUlOR19IRUFE",
- "X1pPTkVfN19PVkVSVEVNUEVSQVRVUkUQsycSJwoiRFlFSU5HX0hFQURfWk9O",
- "RV84X09WRVJURU1QRVJBVFVSRRC0JxInCiJEWUVJTkdfSEVBRF9aT05FXzlf",
- "T1ZFUlRFTVBFUkFUVVJFELUnEigKI0RZRUlOR19IRUFEX1pPTkVfMTBfT1ZF",
- "UlRFTVBFUkFUVVJFELYnEigKI0RZRUlOR19IRUFEX1pPTkVfMTFfT1ZFUlRF",
- "TVBFUkFUVVJFELcnEigKI0RZRUlOR19IRUFEX1pPTkVfMTJfT1ZFUlRFTVBF",
- "UkFUVVJFELgnEioKJURZRUlOR19IRUFEX1pPTkVfN19VTkRFUlRFTVBFUkFU",
- "VVJFX0EQuScSKgolRFlFSU5HX0hFQURfWk9ORV84X1VOREVSVEVNUEVSQVRV",
- "UkVfQRC6JxIqCiVEWUVJTkdfSEVBRF9aT05FXzlfVU5ERVJURU1QRVJBVFVS",
- "RV9BELsnEisKJkRZRUlOR19IRUFEX1pPTkVfMTBfVU5ERVJURU1QRVJBVFVS",
- "RV9BELwnEisKJkRZRUlOR19IRUFEX1pPTkVfMTFfVU5ERVJURU1QRVJBVFVS",
- "RV9BEL0nEisKJkRZRUlOR19IRUFEX1pPTkVfMTJfVU5ERVJURU1QRVJBVFVS",
- "RV9BEL4nEioKJURZRUlOR19IRUFEX1pPTkVfN19VTkRFUlRFTVBFUkFUVVJF",
- "X0IQvycSKgolRFlFSU5HX0hFQURfWk9ORV84X1VOREVSVEVNUEVSQVRVUkVf",
- "QhDAJxIqCiVEWUVJTkdfSEVBRF9aT05FXzlfVU5ERVJURU1QRVJBVFVSRV9C",
- "EMEnEisKJkRZRUlOR19IRUFEX1pPTkVfMTBfVU5ERVJURU1QRVJBVFVSRV9C",
- "EMInEisKJkRZRUlOR19IRUFEX1pPTkVfMTFfVU5ERVJURU1QRVJBVFVSRV9C",
- "EMMnEisKJkRZRUlOR19IRUFEX1pPTkVfMTJfVU5ERVJURU1QRVJBVFVSRV9C",
- "EMQnEiwKJ0RZRUlOR19IRUFEX1pPTkVfNl9DVVJSRU5UX09VVF9PRl9SQU5H",
- "RRDFJxIsCidEWUVJTkdfSEVBRF9aT05FXzdfQ1VSUkVOVF9PVVRfT0ZfUkFO",
- "R0UQxicSLAonRFlFSU5HX0hFQURfWk9ORV84X0NVUlJFTlRfT1VUX09GX1JB",
- "TkdFEMcnEiwKJ0RZRUlOR19IRUFEX1pPTkVfOV9DVVJSRU5UX09VVF9PRl9S",
- "QU5HRRDIJxItCihEWUVJTkdfSEVBRF9aT05FXzEwX0NVUlJFTlRfT1VUX09G",
- "X1JBTkdFEMknEi0KKERZRUlOR19IRUFEX1pPTkVfMTFfQ1VSUkVOVF9PVVRf",
- "T0ZfUkFOR0UQyicSLQooRFlFSU5HX0hFQURfWk9ORV8xMl9DVVJSRU5UX09V",
- "VF9PRl9SQU5HRRDLJxIqCiVEWUVJTkdfSEVBRF9aT05FXzZfQ1VSUkVOVF9M",
- "T09QX0JSRUFLEMwnEioKJURZRUlOR19IRUFEX1pPTkVfN19DVVJSRU5UX0xP",
- "T1BfQlJFQUsQzScSKgolRFlFSU5HX0hFQURfWk9ORV84X0NVUlJFTlRfTE9P",
- "UF9CUkVBSxDOJxIqCiVEWUVJTkdfSEVBRF9aT05FXzlfQ1VSUkVOVF9MT09Q",
- "X0JSRUFLEM8nEisKJkRZRUlOR19IRUFEX1pPTkVfMTBfQ1VSUkVOVF9MT09Q",
- "X0JSRUFLENAnEisKJkRZRUlOR19IRUFEX1pPTkVfMTFfQ1VSUkVOVF9MT09Q",
- "X0JSRUFLENEnEisKJkRZRUlOR19IRUFEX1pPTkVfMTJfQ1VSUkVOVF9MT09Q",
- "X0JSRUFLENInEikKJERZRUlOR19IRUFEX0JMT1dFUl8xX09WRVJURU1QRVJB",
- "VFVSRRDTJxIpCiREWUVJTkdfSEVBRF9CTE9XRVJfMl9PVkVSVEVNUEVSQVRV",
- "UkUQ1CcSLAonRFlFSU5HX0hFQURfQkxPV0VSXzFfVU5ERVJURU1QRVJBVFVS",
- "RV9BENUnEiwKJ0RZRUlOR19IRUFEX0JMT1dFUl8yX1VOREVSVEVNUEVSQVRV",
- "UkVfQRDWJxIsCidEWUVJTkdfSEVBRF9CTE9XRVJfMV9VTkRFUlRFTVBFUkFU",
- "VVJFX0IQ1ycSLAonRFlFSU5HX0hFQURfQkxPV0VSXzJfVU5ERVJURU1QRVJB",
- "VFVSRV9CENgnEi4KKURZRUlOR19IRUFEX0JMT1dFUl8xX0NVUlJFTlRfT1VU",
- "X09GX1JBTkdFENknEi4KKURZRUlOR19IRUFEX0JMT1dFUl8yX0NVUlJFTlRf",
- "T1VUX09GX1JBTkdFENonEiwKJ0RZRUlOR19IRUFEX0JMT1dFUl8xX0NVUlJF",
- "TlRfTE9PUF9CUkVBSxDbJxIsCidEWUVJTkdfSEVBRF9CTE9XRVJfMl9DVVJS",
- "RU5UX0xPT1BfQlJFQUsQ3CcSJQogRFlFSU5HX0hFQURfQkxPV0VSXzFfRkFO",
- "X1NUT1BQRUQQ3ScSJQogRFlFSU5HX0hFQURfQkxPV0VSXzJfRkFOX1NUT1BQ",
- "RUQQ3icSKQokRFlFSU5HX0hFQURfQkxPV0VSXzFfRkFOX1JQTV9UT09fTE9X",
- "EN8nEikKJERZRUlOR19IRUFEX0JMT1dFUl8yX0ZBTl9SUE1fVE9PX0xPVxDg",
- "JxIqCiVEWUVJTkdfSEVBRF9SSUdIVF9BQ1RVQVRPUl9VUF9USU1FT1VUEOEn",
- "EikKJERZRUlOR19IRUFEX0xFRlRfQUNUVUFUT1JfVVBfVElNRU9VVBDiJxIs",
- "CidEWUVJTkdfSEVBRF9SSUdIVF9BQ1RVQVRPUl9ET1dOX1RJTUVPVVQQ4ycS",
- "KwomRFlFSU5HX0hFQURfTEVGVF9BQ1RVQVRPUl9ET1dOX1RJTUVPVVQQ5CcS",
- "JwoiRFlFSU5HX0hFQURfQkxPV0VSXzFfRkxPV19UT09fSElHSBDlJxInCiJE",
- "WUVJTkdfSEVBRF9CTE9XRVJfMl9GTE9XX1RPT19ISUdIEOYnEiYKIURZRUlO",
- "R19IRUFEX0JMT1dFUl8xX0ZMT1dfVE9PX0xPVxDnJxImCiFEWUVJTkdfSEVB",
- "RF9CTE9XRVJfMl9GTE9XX1RPT19MT1cQ6CcSIAobRFlFSU5HX0hFQURfQVJD",
- "X0xJRF9JU19PUEVOEOknEiMKHkRZRUlOR19IRUFEX1RVTk5FTF9MSURfSVNf",
- "T1BFThDqJxIaChVNSVhFUl9PVkVSVEVNUEVSQVRVUkUQ8C4SHQoYTUlYRVJf",
- "VU5ERVJURU1QRVJBVFVSRV9BEPEuEh0KGE1JWEVSX1VOREVSVEVNUEVSQVRV",
- "UkVfQhDyLhIZChRNSVhFUl9USEVSTUFMX0NVVE9GRhDzLhIfChpNSVhFUl9D",
- "VVJSRU5UX09VVF9PRl9SQU5HRRD0LhIdChhNSVhFUl9DVVJSRU5UX0xPT1Bf",
- "QlJFQUsQ9S4SHQoYRElTUEVOU0VSXzFfT1ZFUlBSRVNTVVJFENg2Eh0KGERJ",
- "U1BFTlNFUl8yX09WRVJQUkVTU1VSRRDZNhIdChhESVNQRU5TRVJfM19PVkVS",
- "UFJFU1NVUkUQ2jYSHQoYRElTUEVOU0VSXzRfT1ZFUlBSRVNTVVJFENs2Eh0K",
- "GERJU1BFTlNFUl81X09WRVJQUkVTU1VSRRDcNhIdChhESVNQRU5TRVJfNl9P",
- "VkVSUFJFU1NVUkUQ3TYSHQoYRElTUEVOU0VSXzdfT1ZFUlBSRVNTVVJFEN42",
- "Eh0KGERJU1BFTlNFUl84X09WRVJQUkVTU1VSRRDfNhIeChlESVNQRU5TRVJf",
- "MV9VTkRFUlBSRVNTVVJFEOA2Eh4KGURJU1BFTlNFUl8yX1VOREVSUFJFU1NV",
- "UkUQ4TYSHgoZRElTUEVOU0VSXzNfVU5ERVJQUkVTU1VSRRDiNhIeChlESVNQ",
- "RU5TRVJfNF9VTkRFUlBSRVNTVVJFEOM2Eh4KGURJU1BFTlNFUl81X1VOREVS",
- "UFJFU1NVUkUQ5DYSHgoZRElTUEVOU0VSXzZfVU5ERVJQUkVTU1VSRRDlNhIe",
- "ChlESVNQRU5TRVJfN19VTkRFUlBSRVNTVVJFEOY2Eh4KGURJU1BFTlNFUl84",
- "X1VOREVSUFJFU1NVUkUQ5zYSFgoRRElTUEVOU0VSXzFfRU1QVFkQ6DYSFgoR",
- "RElTUEVOU0VSXzJfRU1QVFkQ6TYSFgoRRElTUEVOU0VSXzNfRU1QVFkQ6jYS",
- "FgoRRElTUEVOU0VSXzRfRU1QVFkQ6zYSFgoRRElTUEVOU0VSXzVfRU1QVFkQ",
- "7DYSFgoRRElTUEVOU0VSXzZfRU1QVFkQ7TYSFgoRRElTUEVOU0VSXzdfRU1Q",
- "VFkQ7jYSFgoRRElTUEVOU0VSXzhfRU1QVFkQ7zYSHwoaRElTUEVOU0VSXzFf",
- "UkVGSUxMX0ZBSUxVUkUQ8DYSHwoaRElTUEVOU0VSXzJfUkVGSUxMX0ZBSUxV",
- "UkUQ8TYSHwoaRElTUEVOU0VSXzNfUkVGSUxMX0ZBSUxVUkUQ8jYSHwoaRElT",
- "UEVOU0VSXzRfUkVGSUxMX0ZBSUxVUkUQ8zYSHwoaRElTUEVOU0VSXzVfUkVG",
- "SUxMX0ZBSUxVUkUQ9DYSHwoaRElTUEVOU0VSXzZfUkVGSUxMX0ZBSUxVUkUQ",
- "9TYSHwoaRElTUEVOU0VSXzdfUkVGSUxMX0ZBSUxVUkUQ9jYSHwoaRElTUEVO",
- "U0VSXzhfUkVGSUxMX0ZBSUxVUkUQ9zYSIgodRElTUEVOU0VSXzFfTU9UT1Jf",
- "T1ZFUkNVUlJFTlQQ+DYSIgodRElTUEVOU0VSXzJfTU9UT1JfT1ZFUkNVUlJF",
- "TlQQ+TYSIgodRElTUEVOU0VSXzNfTU9UT1JfT1ZFUkNVUlJFTlQQ+jYSIgod",
- "RElTUEVOU0VSXzRfTU9UT1JfT1ZFUkNVUlJFTlQQ+zYSIgodRElTUEVOU0VS",
- "XzVfTU9UT1JfT1ZFUkNVUlJFTlQQ/DYSIgodRElTUEVOU0VSXzZfTU9UT1Jf",
- "T1ZFUkNVUlJFTlQQ/TYSIgodRElTUEVOU0VSXzdfTU9UT1JfT1ZFUkNVUlJF",
- "TlQQ/jYSIgodRElTUEVOU0VSXzhfTU9UT1JfT1ZFUkNVUlJFTlQQ/zYSJgoh",
- "RElTUEVOU0VSXzFfTU9UT1JfT1ZFUlRFTVBFUkFUVVJFEIA3EiYKIURJU1BF",
- "TlNFUl8yX01PVE9SX09WRVJURU1QRVJBVFVSRRCBNxImCiFESVNQRU5TRVJf",
- "M19NT1RPUl9PVkVSVEVNUEVSQVRVUkUQgjcSJgohRElTUEVOU0VSXzRfTU9U",
- "T1JfT1ZFUlRFTVBFUkFUVVJFEIM3EiYKIURJU1BFTlNFUl81X01PVE9SX09W",
- "RVJURU1QRVJBVFVSRRCENxImCiFESVNQRU5TRVJfNl9NT1RPUl9PVkVSVEVN",
- "UEVSQVRVUkUQhTcSJgohRElTUEVOU0VSXzdfTU9UT1JfT1ZFUlRFTVBFUkFU",
- "VVJFEIY3EiYKIURJU1BFTlNFUl84X01PVE9SX09WRVJURU1QRVJBVFVSRRCH",
- "NxIcChdESVNQRU5TRVJfMV9NT1RPUl9TVEFMTBCINxIcChdESVNQRU5TRVJf",
- "Ml9NT1RPUl9TVEFMTBCJNxIcChdESVNQRU5TRVJfM19NT1RPUl9TVEFMTBCK",
- "NxIcChdESVNQRU5TRVJfNF9NT1RPUl9TVEFMTBCLNxIcChdESVNQRU5TRVJf",
- "NV9NT1RPUl9TVEFMTBCMNxIcChdESVNQRU5TRVJfNl9NT1RPUl9TVEFMTBCN",
- "NxIcChdESVNQRU5TRVJfN19NT1RPUl9TVEFMTBCONxIcChdESVNQRU5TRVJf",
- "OF9NT1RPUl9TVEFMTBCPNxIjCh5ESVNQRU5TRVJfMV9NT1RPUl9VTkRFUlZP",
- "TFRBR0UQkDcSIwoeRElTUEVOU0VSXzJfTU9UT1JfVU5ERVJWT0xUQUdFEJE3",
- "EiMKHkRJU1BFTlNFUl8zX01PVE9SX1VOREVSVk9MVEFHRRCSNxIjCh5ESVNQ",
- "RU5TRVJfNF9NT1RPUl9VTkRFUlZPTFRBR0UQkzcSIwoeRElTUEVOU0VSXzVf",
- "TU9UT1JfVU5ERVJWT0xUQUdFEJQ3EiMKHkRJU1BFTlNFUl82X01PVE9SX1VO",
- "REVSVk9MVEFHRRCVNxIjCh5ESVNQRU5TRVJfN19NT1RPUl9VTkRFUlZPTFRB",
- "R0UQljcSIwoeRElTUEVOU0VSXzhfTU9UT1JfVU5ERVJWT0xUQUdFEJc3EiEK",
- "HERJU1BFTlNFUl8xX1VQUEVSX0hBUkRfTElNSVQQmDcSIQocRElTUEVOU0VS",
- "XzJfVVBQRVJfSEFSRF9MSU1JVBCZNxIhChxESVNQRU5TRVJfM19VUFBFUl9I",
- "QVJEX0xJTUlUEJo3EiEKHERJU1BFTlNFUl80X1VQUEVSX0hBUkRfTElNSVQQ",
- "mzcSIQocRElTUEVOU0VSXzVfVVBQRVJfSEFSRF9MSU1JVBCcNxIhChxESVNQ",
- "RU5TRVJfNl9VUFBFUl9IQVJEX0xJTUlUEJ03EiEKHERJU1BFTlNFUl83X1VQ",
- "UEVSX0hBUkRfTElNSVQQnjcSIQocRElTUEVOU0VSXzhfVVBQRVJfSEFSRF9M",
- "SU1JVBCfNxIhChxESVNQRU5TRVJfMV9MT1dFUl9IQVJEX0xJTUlUEKA3EiEK",
- "HERJU1BFTlNFUl8yX0xPV0VSX0hBUkRfTElNSVQQoTcSIQocRElTUEVOU0VS",
- "XzNfTE9XRVJfSEFSRF9MSU1JVBCiNxIhChxESVNQRU5TRVJfNF9MT1dFUl9I",
- "QVJEX0xJTUlUEKM3EiEKHERJU1BFTlNFUl81X0xPV0VSX0hBUkRfTElNSVQQ",
- "pDcSIQocRElTUEVOU0VSXzZfTE9XRVJfSEFSRF9MSU1JVBClNxIhChxESVNQ",
- "RU5TRVJfN19MT1dFUl9IQVJEX0xJTUlUEKY3EiEKHERJU1BFTlNFUl84X0xP",
- "V0VSX0hBUkRfTElNSVQQpzcSHgoZRElTUEVOU0VSXzFfSElHSF9QUkVTU1VS",
- "RRCoNxIeChlESVNQRU5TRVJfMl9ISUdIX1BSRVNTVVJFEKk3Eh4KGURJU1BF",
- "TlNFUl8zX0hJR0hfUFJFU1NVUkUQqjcSHgoZRElTUEVOU0VSXzRfSElHSF9Q",
- "UkVTU1VSRRCrNxIeChlESVNQRU5TRVJfNV9ISUdIX1BSRVNTVVJFEKw3Eh4K",
- "GURJU1BFTlNFUl82X0hJR0hfUFJFU1NVUkUQrTcSHgoZRElTUEVOU0VSXzdf",
- "SElHSF9QUkVTU1VSRRCuNxIeChlESVNQRU5TRVJfOF9ISUdIX1BSRVNTVVJF",
- "EK83EhkKFE1JRF9UQU5LXzFfTE9XX0xFVkVMEMA+EhkKFE1JRF9UQU5LXzJf",
- "TE9XX0xFVkVMEME+EhkKFE1JRF9UQU5LXzNfTE9XX0xFVkVMEMI+EhkKFE1J",
- "RF9UQU5LXzRfTE9XX0xFVkVMEMM+EhkKFE1JRF9UQU5LXzVfTE9XX0xFVkVM",
- "EMQ+EhkKFE1JRF9UQU5LXzZfTE9XX0xFVkVMEMU+EhkKFE1JRF9UQU5LXzdf",
- "TE9XX0xFVkVMEMY+EhkKFE1JRF9UQU5LXzhfTE9XX0xFVkVMEMc+EhUKEE1J",
- "RF9UQU5LXzFfRU1QVFkQyD4SFQoQTUlEX1RBTktfMl9FTVBUWRDJPhIVChBN",
- "SURfVEFOS18zX0VNUFRZEMo+EhUKEE1JRF9UQU5LXzRfRU1QVFkQyz4SFQoQ",
- "TUlEX1RBTktfNV9FTVBUWRDMPhIVChBNSURfVEFOS182X0VNUFRZEM0+EhUK",
- "EE1JRF9UQU5LXzdfRU1QVFkQzj4SFQoQTUlEX1RBTktfOF9FTVBUWRDPPhIY",
- "ChNNSURfVEFOS18xX09WRVJGTE9XENA+EhgKE01JRF9UQU5LXzJfT1ZFUkZM",
- "T1cQ0T4SGAoTTUlEX1RBTktfM19PVkVSRkxPVxDSPhIYChNNSURfVEFOS180",
- "X09WRVJGTE9XENM+EhgKE01JRF9UQU5LXzVfT1ZFUkZMT1cQ1D4SGAoTTUlE",
- "X1RBTktfNl9PVkVSRkxPVxDVPhIYChNNSURfVEFOS183X09WRVJGTE9XENY+",
- "EhgKE01JRF9UQU5LXzhfT1ZFUkZMT1cQ1z4SHAoXTUlEX1RBTktfMV9GSUxM",
- "X1RJTUVPVVQQ2D4SHAoXTUlEX1RBTktfMl9GSUxMX1RJTUVPVVQQ2T4SHAoX",
- "TUlEX1RBTktfM19GSUxMX1RJTUVPVVQQ2j4SHAoXTUlEX1RBTktfNF9GSUxM",
- "X1RJTUVPVVQQ2z4SHAoXTUlEX1RBTktfNV9GSUxMX1RJTUVPVVQQ3D4SHAoX",
- "TUlEX1RBTktfNl9GSUxMX1RJTUVPVVQQ3T4SHAoXTUlEX1RBTktfN19GSUxM",
- "X1RJTUVPVVQQ3j4SHAoXTUlEX1RBTktfOF9GSUxMX1RJTUVPVVQQ3z4SHQoY",
- "QUlSX0ZJTFRFUl9OT1RfSU5TVEFMTEVEEKhGEhcKEkFJUl9GSUxURVJfQ0xP",
- "R0dFRBCpRhIlCiBXQVNURV9DT05UQUlORVJfRU1QVFlJTkdfVElNRU9VVBCq",
- "RhIUCg9OT19BSVJfUFJFU1NVUkUQq0YSHQoYV0FTVEVfQ09OVEFJTkVSX09W",
- "RVJGTE9XEKxGEhoKFVZPQ19TRU5TT1JfQUxBUk1fVElNRRCtRhIYChNDSElM",
- "TEVSX0RSWV9DT05UQUNUEK5GEhoKFUlOU1VGRklDSUVOVF9BSVJfRkxPVxCv",
- "RhIbChZWT0NfU0VOU09SX0FMQVJNX1NMT1BFELBGEh0KGFBSRV9DT09MRVJf",
- "RkFOXzFfU1RPUFBFRBCxRhIdChhQUkVfQ09PTEVSX0ZBTl8yX1NUT1BQRUQQ",
- "skYSGQoUQ09PTEVSX0ZBTl8xX1NUT1BQRUQQs0YSGQoUQ09PTEVSX0ZBTl8y",
- "X1NUT1BQRUQQtEYSGQoUQ09PTEVSX0ZBTl8zX1NUT1BQRUQQtUYSGQoUQ09P",
- "TEVSX0ZBTl80X1NUT1BQRUQQtkYSIQocUFJFX0NPT0xFUl9GQU5fMV9SUE1f",
- "VE9PX0xPVxC3RhIhChxQUkVfQ09PTEVSX0ZBTl8yX1JQTV9UT09fTE9XELhG",
- "Eh0KGENPT0xFUl9GQU5fMV9SUE1fVE9PX0xPVxC5RhIdChhDT09MRVJfRkFO",
- "XzJfUlBNX1RPT19MT1cQukYSHQoYQ09PTEVSX0ZBTl8zX1JQTV9UT09fTE9X",
- "ELtGEh0KGENPT0xFUl9GQU5fNF9SUE1fVE9PX0xPVxC8RhIgChtDT09MRVJf",
- "VEVNUEVSQVRVUkVfVE9PX0hJR0gQvUYSHwoaQ09PTEVSX1RFTVBFUkFUVVJF",
- "X1RPT19MT1cQvkYSKgolSU5LX0NBUlRSSURHRV9QUkVTRU5DRV9TRU5TT1Jf",
- "VElNRU9VVBCQThIfChpJTktfQ0FSVFJJREdFX1JGSURfVElNRU9VVBCRThIh",
- "ChxOT19XQVNURV9DQVJUUklER0VfQVZBSUxBQkxFEJJOEh4KGUFMTF9XQVNU",
- "RV9DQVJUUklER0VTX0ZVTEwQk04SLAonV0FTVEVfQ0FSVFJJREdFX1BSRVNF",
- "TkNFX1NFTlNPUl9USU1FT1VUEJROEiEKHFdBU1RFX0NBUlRSSURHRV9SRklE",
- "X1RJTUVPVVQQlU5CIQofY29tLnR3aW5lLnRhbmdvLnBtci5kaWFnbm9zdGlj",
- "c2IGcHJvdG8z"));
+ "Ch1URU1QRVJBVFVSRV9NRUFTVVJFTUVOVF9FUlJPUhDlDxIlCiBSRklEX1JF",
+ "QURFUl9NQUxGVU5DVElPTl9JTktfU0xPVBDmDxIpCiRSRklEX1JFQURFUl9N",
+ "QUxGVU5DVElPTl9XQVNURV9TTE9UXzEQ5w8SKQokUkZJRF9SRUFERVJfTUFM",
+ "RlVOQ1RJT05fV0FTVEVfU0xPVF8yEOgPEhEKDFRIUkVBRF9CUkVBSxC4FxIx",
+ "CixUSFJFQURfVEVOU0lPTl9DT05UUk9MX0ZBSUxVUkVfRkVFREVSX0RBTkNF",
+ "UhC5FxIfChpXSU5ERVJfQ09ORV9ET0VTX05PVF9FWElTVBC6FxIdChhGRUVE",
+ "RVJfTU9UT1JfT1ZFUkNVUlJFTlQQuxcSIwoeUklHSFRfTE9BREVSX01PVE9S",
+ "X09WRVJDVVJSRU5UELwXEh0KGFBVTExFUl9NT1RPUl9PVkVSQ1VSUkVOVBC9",
+ "FxIiCh1MRUZUX0xPQURFUl9NT1RPUl9PVkVSQ1VSUkVOVBC+FxIdChhXSU5E",
+ "RVJfTU9UT1JfT1ZFUkNVUlJFTlQQvxcSHAoXU0NSRVdfTU9UT1JfT1ZFUkNV",
+ "UlJFTlQQwBcSIgodTE9BRElOR19BUk1fTU9UT1JfT1ZFUkNVUlJFTlQQwRcS",
+ "IQocRkVFREVSX01PVE9SX09WRVJURU1QRVJBVFVSRRDCFxInCiJSSUdIVF9M",
+ "T0FERVJfTU9UT1JfT1ZFUlRFTVBFUkFUVVJFEMMXEiEKHFBVTExFUl9NT1RP",
+ "Ul9PVkVSVEVNUEVSQVRVUkUQxBcSJgohTEVGVF9MT0FERVJfTU9UT1JfT1ZF",
+ "UlRFTVBFUkFUVVJFEMUXEiEKHFdJTkRFUl9NT1RPUl9PVkVSVEVNUEVSQVRV",
+ "UkUQxhcSIAobU0NSRVdfTU9UT1JfT1ZFUlRFTVBFUkFUVVJFEMcXEiYKIUxP",
+ "QURJTkdfQVJNX01PVE9SX09WRVJURU1QRVJBVFVSRRDIFxIXChJGRUVERVJf",
+ "TU9UT1JfU1RBTEwQyRcSHQoYUklHSFRfTE9BREVSX01PVE9SX1NUQUxMEMoX",
+ "EhcKElBVTExFUl9NT1RPUl9TVEFMTBDLFxIcChdMRUZUX0xPQURFUl9NT1RP",
+ "Ul9TVEFMTBDMFxIXChJXSU5ERVJfTU9UT1JfU1RBTEwQzRcSFgoRU0NSRVdf",
+ "TU9UT1JfU1RBTEwQzhcSHAoXTE9BRElOR19BUk1fTU9UT1JfU1RBTEwQzxcS",
+ "HgoZRkVFREVSX01PVE9SX1VOREVSVk9MVEFHRRDQFxIkCh9SSUdIVF9MT0FE",
+ "RVJfTU9UT1JfVU5ERVJWT0xUQUdFENEXEh4KGVBVTExFUl9NT1RPUl9VTkRF",
+ "UlZPTFRBR0UQ0hcSIwoeTEVGVF9MT0FERVJfTU9UT1JfVU5ERVJWT0xUQUdF",
+ "ENMXEh4KGVdJTkRFUl9NT1RPUl9VTkRFUlZPTFRBR0UQ1BcSHQoYU0NSRVdf",
+ "TU9UT1JfVU5ERVJWT0xUQUdFENUXEiMKHkxPQURJTkdfQVJNX01PVE9SX1VO",
+ "REVSVk9MVEFHRRDWFxIUCg9MVEZVX1VQX1RJTUVPVVQQ1xcSFgoRTFRGVV9E",
+ "T1dOX1RJTUVPVVQQ2BcSFAoPUlRGVV9VUF9USU1FT1VUENkXEhYKEVJURlVf",
+ "RE9XTl9USU1FT1VUENoXEh4KGVNDUkVXX01PVE9SX0xJTUlUX1RJTUVPVVQQ",
+ "2xcSJAofV0lOREVSX0RBTkNFUl9NT1RPUl9PVkVSQ1VSUkVOVBDcFxIkCh9Q",
+ "VUxMRVJfREFOQ0VSX01PVE9SX09WRVJDVVJSRU5UEN0XEiQKH0ZFRURFUl9E",
+ "QU5DRVJfTU9UT1JfT1ZFUkNVUlJFTlQQ3hcSKAojV0lOREVSX0RBTkNFUl9N",
+ "T1RPUl9PVkVSVEVNUEVSQVRVUkUQ3xcSKAojUFVMTEVSX0RBTkNFUl9NT1RP",
+ "Ul9PVkVSVEVNUEVSQVRVUkUQ4BcSKAojRkVFREVSX0RBTkNFUl9NT1RPUl9P",
+ "VkVSVEVNUEVSQVRVUkUQ4RcSHgoZV0lOREVSX0RBTkNFUl9NT1RPUl9TVEFM",
+ "TBDiFxIeChlQVUxMRVJfREFOQ0VSX01PVE9SX1NUQUxMEOMXEh4KGUZFRURF",
+ "Ul9EQU5DRVJfTU9UT1JfU1RBTEwQ5BcSJQogV0lOREVSX0RBTkNFUl9NT1RP",
+ "Ul9VTkRFUlZPTFRBR0UQ5RcSJQogUFVMTEVSX0RBTkNFUl9NT1RPUl9VTkRF",
+ "UlZPTFRBR0UQ5hcSJQogRkVFREVSX0RBTkNFUl9NT1RPUl9VTkRFUlZPTFRB",
+ "R0UQ5xcSMQosVEhSRUFEX1RFTlNJT05fQ09OVFJPTF9GQUlMVVJFX1BVTExF",
+ "Ul9EQU5DRVIQ6BcSMQosVEhSRUFEX1RFTlNJT05fQ09OVFJPTF9GQUlMVVJF",
+ "X1dJTkRFUl9EQU5DRVIQ6RcSJQogTUFDSElORV9TVEFURV9OT19USFJFQURf",
+ "REVURUNURUQQ6hcSGQoUVEhSRUFEX0xPQURJTkdfRVJST1IQ6xcSHAoXRFJZ",
+ "RVJfTU9UT1JfT1ZFUkNVUlJFTlQQoB8SIAobRFJZRVJfTU9UT1JfT1ZFUlRF",
+ "TVBFUkFUVVJFEKEfEhYKEURSWUVSX01PVE9SX1NUQUxMEKIfEh0KGERSWUVS",
+ "X01PVE9SX1VOREVSVk9MVEFHRRCjHxIUCg9EUllFUl9ET09SX09QRU4QpB8S",
+ "IQocRFJZRVJfWk9ORV8xX09WRVJURU1QRVJBVFVSRRClHxIhChxEUllFUl9a",
+ "T05FXzJfT1ZFUlRFTVBFUkFUVVJFEKYfEiQKH0RSWUVSX1pPTkVfMV9VTkRF",
+ "UlRFTVBFUkFUVVJFX0EQpx8SJAofRFJZRVJfWk9ORV8xX1VOREVSVEVNUEVS",
+ "QVRVUkVfQhCoHxIkCh9EUllFUl9aT05FXzJfVU5ERVJURU1QRVJBVFVSRV9C",
+ "EKkfEhkKFERSWUVSX1RIRVJNQUxfQ1VUT0ZGEKofEi4KKURSWUVSX0hFQVRF",
+ "UlNfWk9ORV8xX0NVUlJFTlRfT1VUX09GX1JBTkdFEKsfEi4KKURSWUVSX0hF",
+ "QVRFUlNfWk9ORV8yX0NVUlJFTlRfT1VUX09GX1JBTkdFEKwfEiwKJ0RSWUVS",
+ "X0hFQVRFUlNfWk9ORV8xX0NVUlJFTlRfTE9PUF9CUkVBSxCtHxIsCidEUllF",
+ "Ul9IRUFURVJTX1pPTkVfMl9DVVJSRU5UX0xPT1BfQlJFQUsQrh8SGgoVRFJZ",
+ "RVJfRkFOX1JQTV9UT09fTE9XEK8fEhYKEURSWUVSX0ZBTl9TVE9QUEVEELAf",
+ "EiAKG0RSWUVSX0xJRF9NT1RPUl9PVkVSQ1VSUkVOVBCxHxIkCh9EUllFUl9M",
+ "SURfTU9UT1JfT1ZFUlRFTVBFUkFUVVJFELIfEhoKFURSWUVSX0xJRF9NT1RP",
+ "Ul9TVEFMTBCzHxIhChxEUllFUl9MSURfTU9UT1JfVU5ERVJWT0xUQUdFELQf",
+ "EiQKH0RSWUVSX1pPTkVfMl9VTkRFUlRFTVBFUkFUVVJFX0EQtR8SJwoiRFlF",
+ "SU5HX0hFQURfWk9ORV8xX09WRVJURU1QRVJBVFVSRRCIJxInCiJEWUVJTkdf",
+ "SEVBRF9aT05FXzJfT1ZFUlRFTVBFUkFUVVJFEIknEicKIkRZRUlOR19IRUFE",
+ "X1pPTkVfM19PVkVSVEVNUEVSQVRVUkUQiicSJwoiRFlFSU5HX0hFQURfWk9O",
+ "RV80X09WRVJURU1QRVJBVFVSRRCLJxInCiJEWUVJTkdfSEVBRF9aT05FXzVf",
+ "T1ZFUlRFTVBFUkFUVVJFEIwnEicKIkRZRUlOR19IRUFEX1pPTkVfNl9PVkVS",
+ "VEVNUEVSQVRVUkUQjScSKgolRFlFSU5HX0hFQURfWk9ORV8xX1VOREVSVEVN",
+ "UEVSQVRVUkVfQRCOJxIqCiVEWUVJTkdfSEVBRF9aT05FXzJfVU5ERVJURU1Q",
+ "RVJBVFVSRV9BEI8nEioKJURZRUlOR19IRUFEX1pPTkVfM19VTkRFUlRFTVBF",
+ "UkFUVVJFX0EQkCcSKgolRFlFSU5HX0hFQURfWk9ORV80X1VOREVSVEVNUEVS",
+ "QVRVUkVfQRCRJxIqCiVEWUVJTkdfSEVBRF9aT05FXzVfVU5ERVJURU1QRVJB",
+ "VFVSRV9BEJInEioKJURZRUlOR19IRUFEX1pPTkVfNl9VTkRFUlRFTVBFUkFU",
+ "VVJFX0EQkycSKgolRFlFSU5HX0hFQURfWk9ORV8xX1VOREVSVEVNUEVSQVRV",
+ "UkVfQhCUJxIqCiVEWUVJTkdfSEVBRF9aT05FXzJfVU5ERVJURU1QRVJBVFVS",
+ "RV9CEJUnEioKJURZRUlOR19IRUFEX1pPTkVfM19VTkRFUlRFTVBFUkFUVVJF",
+ "X0IQlicSKgolRFlFSU5HX0hFQURfWk9ORV80X1VOREVSVEVNUEVSQVRVUkVf",
+ "QhCXJxIqCiVEWUVJTkdfSEVBRF9aT05FXzVfVU5ERVJURU1QRVJBVFVSRV9C",
+ "EJgnEioKJURZRUlOR19IRUFEX1pPTkVfNl9VTkRFUlRFTVBFUkFUVVJFX0IQ",
+ "mScSLAonRFlFSU5HX0hFQURfWk9ORV8xX0NVUlJFTlRfT1VUX09GX1JBTkdF",
+ "EJonEiwKJ0RZRUlOR19IRUFEX1pPTkVfMl9DVVJSRU5UX09VVF9PRl9SQU5H",
+ "RRCbJxIsCidEWUVJTkdfSEVBRF9aT05FXzNfQ1VSUkVOVF9PVVRfT0ZfUkFO",
+ "R0UQnCcSLAonRFlFSU5HX0hFQURfWk9ORV80X0NVUlJFTlRfT1VUX09GX1JB",
+ "TkdFEJ0nEiwKJ0RZRUlOR19IRUFEX1pPTkVfNV9DVVJSRU5UX09VVF9PRl9S",
+ "QU5HRRCeJxIqCiVEWUVJTkdfSEVBRF9aT05FXzFfQ1VSUkVOVF9MT09QX0JS",
+ "RUFLEJ8nEioKJURZRUlOR19IRUFEX1pPTkVfMl9DVVJSRU5UX0xPT1BfQlJF",
+ "QUsQoCcSKgolRFlFSU5HX0hFQURfWk9ORV8zX0NVUlJFTlRfTE9PUF9CUkVB",
+ "SxChJxIqCiVEWUVJTkdfSEVBRF9aT05FXzRfQ1VSUkVOVF9MT09QX0JSRUFL",
+ "EKInEioKJURZRUlOR19IRUFEX1pPTkVfNV9DVVJSRU5UX0xPT1BfQlJFQUsQ",
+ "oycSHwoaRFlFSU5HX0hFQURfVEhFUk1BTF9DVVRPRkYQpCcSIwoeRFlFSU5H",
+ "X0hFQURfQ09WRVJfT1BFTl9USU1FT1VUEKUnEiQKH0RZRUlOR19IRUFEX0NP",
+ "VkVSX0NMT1NFX1RJTUVPVVQQpicSKAojRFlFSU5HX0hFQURfQ09WRVJfTU9U",
+ "T1JfT1ZFUkNVUlJFTlQQpycSLAonRFlFSU5HX0hFQURfQ09WRVJfTU9UT1Jf",
+ "T1ZFUlRFTVBFUkFUVVJFEKgnEiIKHURZRUlOR19IRUFEX0NPVkVSX01PVE9S",
+ "X1NUQUxMEKknEikKJERZRUlOR19IRUFEX0NPVkVSX01PVE9SX1VOREVSVk9M",
+ "VEFHRRCqJxI1CjBEWUVJTkdfSEVBRF9DTEVBTklOR19NRUNIQU5JU01fTU9U",
+ "T1JfT1ZFUkNVUlJFTlQQqycSOQo0RFlFSU5HX0hFQURfQ0xFQU5JTkdfTUVD",
+ "SEFOSVNNX01PVE9SX09WRVJURU1QRVJBVFVSRRCsJxIvCipEWUVJTkdfSEVB",
+ "RF9DTEVBTklOR19NRUNIQU5JU01fTU9UT1JfU1RBTEwQrScSNgoxRFlFSU5H",
+ "X0hFQURfQ0xFQU5JTkdfTUVDSEFOSVNNX01PVE9SX1VOREVSVk9MVEFHRRCu",
+ "JxIwCitEWUVJTkdfSEVBRF9DTEVBTklOR19IRUFEX01PVE9SX09WRVJDVVJS",
+ "RU5UEK8nEjQKL0RZRUlOR19IRUFEX0NMRUFOSU5HX0hFQURfTU9UT1JfT1ZF",
+ "UlRFTVBFUkFUVVJFELAnEioKJURZRUlOR19IRUFEX0NMRUFOSU5HX0hFQURf",
+ "TU9UT1JfU1RBTEwQsScSMQosRFlFSU5HX0hFQURfQ0xFQU5JTkdfSEVBRF9N",
+ "T1RPUl9VTkRFUlZPTFRBR0UQsicSJwoiRFlFSU5HX0hFQURfWk9ORV83X09W",
+ "RVJURU1QRVJBVFVSRRCzJxInCiJEWUVJTkdfSEVBRF9aT05FXzhfT1ZFUlRF",
+ "TVBFUkFUVVJFELQnEicKIkRZRUlOR19IRUFEX1pPTkVfOV9PVkVSVEVNUEVS",
+ "QVRVUkUQtScSKAojRFlFSU5HX0hFQURfWk9ORV8xMF9PVkVSVEVNUEVSQVRV",
+ "UkUQticSKAojRFlFSU5HX0hFQURfWk9ORV8xMV9PVkVSVEVNUEVSQVRVUkUQ",
+ "tycSKAojRFlFSU5HX0hFQURfWk9ORV8xMl9PVkVSVEVNUEVSQVRVUkUQuCcS",
+ "KgolRFlFSU5HX0hFQURfWk9ORV83X1VOREVSVEVNUEVSQVRVUkVfQRC5JxIq",
+ "CiVEWUVJTkdfSEVBRF9aT05FXzhfVU5ERVJURU1QRVJBVFVSRV9BELonEioK",
+ "JURZRUlOR19IRUFEX1pPTkVfOV9VTkRFUlRFTVBFUkFUVVJFX0EQuycSKwom",
+ "RFlFSU5HX0hFQURfWk9ORV8xMF9VTkRFUlRFTVBFUkFUVVJFX0EQvCcSKwom",
+ "RFlFSU5HX0hFQURfWk9ORV8xMV9VTkRFUlRFTVBFUkFUVVJFX0EQvScSKwom",
+ "RFlFSU5HX0hFQURfWk9ORV8xMl9VTkRFUlRFTVBFUkFUVVJFX0EQvicSKgol",
+ "RFlFSU5HX0hFQURfWk9ORV83X1VOREVSVEVNUEVSQVRVUkVfQhC/JxIqCiVE",
+ "WUVJTkdfSEVBRF9aT05FXzhfVU5ERVJURU1QRVJBVFVSRV9CEMAnEioKJURZ",
+ "RUlOR19IRUFEX1pPTkVfOV9VTkRFUlRFTVBFUkFUVVJFX0IQwScSKwomRFlF",
+ "SU5HX0hFQURfWk9ORV8xMF9VTkRFUlRFTVBFUkFUVVJFX0IQwicSKwomRFlF",
+ "SU5HX0hFQURfWk9ORV8xMV9VTkRFUlRFTVBFUkFUVVJFX0IQwycSKwomRFlF",
+ "SU5HX0hFQURfWk9ORV8xMl9VTkRFUlRFTVBFUkFUVVJFX0IQxCcSLAonRFlF",
+ "SU5HX0hFQURfWk9ORV82X0NVUlJFTlRfT1VUX09GX1JBTkdFEMUnEiwKJ0RZ",
+ "RUlOR19IRUFEX1pPTkVfN19DVVJSRU5UX09VVF9PRl9SQU5HRRDGJxIsCidE",
+ "WUVJTkdfSEVBRF9aT05FXzhfQ1VSUkVOVF9PVVRfT0ZfUkFOR0UQxycSLAon",
+ "RFlFSU5HX0hFQURfWk9ORV85X0NVUlJFTlRfT1VUX09GX1JBTkdFEMgnEi0K",
+ "KERZRUlOR19IRUFEX1pPTkVfMTBfQ1VSUkVOVF9PVVRfT0ZfUkFOR0UQyScS",
+ "LQooRFlFSU5HX0hFQURfWk9ORV8xMV9DVVJSRU5UX09VVF9PRl9SQU5HRRDK",
+ "JxItCihEWUVJTkdfSEVBRF9aT05FXzEyX0NVUlJFTlRfT1VUX09GX1JBTkdF",
+ "EMsnEioKJURZRUlOR19IRUFEX1pPTkVfNl9DVVJSRU5UX0xPT1BfQlJFQUsQ",
+ "zCcSKgolRFlFSU5HX0hFQURfWk9ORV83X0NVUlJFTlRfTE9PUF9CUkVBSxDN",
+ "JxIqCiVEWUVJTkdfSEVBRF9aT05FXzhfQ1VSUkVOVF9MT09QX0JSRUFLEM4n",
+ "EioKJURZRUlOR19IRUFEX1pPTkVfOV9DVVJSRU5UX0xPT1BfQlJFQUsQzycS",
+ "KwomRFlFSU5HX0hFQURfWk9ORV8xMF9DVVJSRU5UX0xPT1BfQlJFQUsQ0CcS",
+ "KwomRFlFSU5HX0hFQURfWk9ORV8xMV9DVVJSRU5UX0xPT1BfQlJFQUsQ0ScS",
+ "KwomRFlFSU5HX0hFQURfWk9ORV8xMl9DVVJSRU5UX0xPT1BfQlJFQUsQ0icS",
+ "KQokRFlFSU5HX0hFQURfQkxPV0VSXzFfT1ZFUlRFTVBFUkFUVVJFENMnEikK",
+ "JERZRUlOR19IRUFEX0JMT1dFUl8yX09WRVJURU1QRVJBVFVSRRDUJxIsCidE",
+ "WUVJTkdfSEVBRF9CTE9XRVJfMV9VTkRFUlRFTVBFUkFUVVJFX0EQ1ScSLAon",
+ "RFlFSU5HX0hFQURfQkxPV0VSXzJfVU5ERVJURU1QRVJBVFVSRV9BENYnEiwK",
+ "J0RZRUlOR19IRUFEX0JMT1dFUl8xX1VOREVSVEVNUEVSQVRVUkVfQhDXJxIs",
+ "CidEWUVJTkdfSEVBRF9CTE9XRVJfMl9VTkRFUlRFTVBFUkFUVVJFX0IQ2CcS",
+ "LgopRFlFSU5HX0hFQURfQkxPV0VSXzFfQ1VSUkVOVF9PVVRfT0ZfUkFOR0UQ",
+ "2ScSLgopRFlFSU5HX0hFQURfQkxPV0VSXzJfQ1VSUkVOVF9PVVRfT0ZfUkFO",
+ "R0UQ2icSLAonRFlFSU5HX0hFQURfQkxPV0VSXzFfQ1VSUkVOVF9MT09QX0JS",
+ "RUFLENsnEiwKJ0RZRUlOR19IRUFEX0JMT1dFUl8yX0NVUlJFTlRfTE9PUF9C",
+ "UkVBSxDcJxIlCiBEWUVJTkdfSEVBRF9CTE9XRVJfMV9GQU5fU1RPUFBFRBDd",
+ "JxIlCiBEWUVJTkdfSEVBRF9CTE9XRVJfMl9GQU5fU1RPUFBFRBDeJxIpCiRE",
+ "WUVJTkdfSEVBRF9CTE9XRVJfMV9GQU5fUlBNX1RPT19MT1cQ3ycSKQokRFlF",
+ "SU5HX0hFQURfQkxPV0VSXzJfRkFOX1JQTV9UT09fTE9XEOAnEioKJURZRUlO",
+ "R19IRUFEX1JJR0hUX0FDVFVBVE9SX1VQX1RJTUVPVVQQ4ScSKQokRFlFSU5H",
+ "X0hFQURfTEVGVF9BQ1RVQVRPUl9VUF9USU1FT1VUEOInEiwKJ0RZRUlOR19I",
+ "RUFEX1JJR0hUX0FDVFVBVE9SX0RPV05fVElNRU9VVBDjJxIrCiZEWUVJTkdf",
+ "SEVBRF9MRUZUX0FDVFVBVE9SX0RPV05fVElNRU9VVBDkJxInCiJEWUVJTkdf",
+ "SEVBRF9CTE9XRVJfMV9GTE9XX1RPT19ISUdIEOUnEicKIkRZRUlOR19IRUFE",
+ "X0JMT1dFUl8yX0ZMT1dfVE9PX0hJR0gQ5icSJgohRFlFSU5HX0hFQURfQkxP",
+ "V0VSXzFfRkxPV19UT09fTE9XEOcnEiYKIURZRUlOR19IRUFEX0JMT1dFUl8y",
+ "X0ZMT1dfVE9PX0xPVxDoJxIgChtEWUVJTkdfSEVBRF9BUkNfTElEX0lTX09Q",
+ "RU4Q6ScSIwoeRFlFSU5HX0hFQURfVFVOTkVMX0xJRF9JU19PUEVOEOonEhoK",
+ "FU1JWEVSX09WRVJURU1QRVJBVFVSRRDwLhIdChhNSVhFUl9VTkRFUlRFTVBF",
+ "UkFUVVJFX0EQ8S4SHQoYTUlYRVJfVU5ERVJURU1QRVJBVFVSRV9CEPIuEhkK",
+ "FE1JWEVSX1RIRVJNQUxfQ1VUT0ZGEPMuEh8KGk1JWEVSX0NVUlJFTlRfT1VU",
+ "X09GX1JBTkdFEPQuEh0KGE1JWEVSX0NVUlJFTlRfTE9PUF9CUkVBSxD1LhId",
+ "ChhESVNQRU5TRVJfMV9PVkVSUFJFU1NVUkUQ2DYSHQoYRElTUEVOU0VSXzJf",
+ "T1ZFUlBSRVNTVVJFENk2Eh0KGERJU1BFTlNFUl8zX09WRVJQUkVTU1VSRRDa",
+ "NhIdChhESVNQRU5TRVJfNF9PVkVSUFJFU1NVUkUQ2zYSHQoYRElTUEVOU0VS",
+ "XzVfT1ZFUlBSRVNTVVJFENw2Eh0KGERJU1BFTlNFUl82X09WRVJQUkVTU1VS",
+ "RRDdNhIdChhESVNQRU5TRVJfN19PVkVSUFJFU1NVUkUQ3jYSHQoYRElTUEVO",
+ "U0VSXzhfT1ZFUlBSRVNTVVJFEN82Eh4KGURJU1BFTlNFUl8xX1VOREVSUFJF",
+ "U1NVUkUQ4DYSHgoZRElTUEVOU0VSXzJfVU5ERVJQUkVTU1VSRRDhNhIeChlE",
+ "SVNQRU5TRVJfM19VTkRFUlBSRVNTVVJFEOI2Eh4KGURJU1BFTlNFUl80X1VO",
+ "REVSUFJFU1NVUkUQ4zYSHgoZRElTUEVOU0VSXzVfVU5ERVJQUkVTU1VSRRDk",
+ "NhIeChlESVNQRU5TRVJfNl9VTkRFUlBSRVNTVVJFEOU2Eh4KGURJU1BFTlNF",
+ "Ul83X1VOREVSUFJFU1NVUkUQ5jYSHgoZRElTUEVOU0VSXzhfVU5ERVJQUkVT",
+ "U1VSRRDnNhIWChFESVNQRU5TRVJfMV9FTVBUWRDoNhIWChFESVNQRU5TRVJf",
+ "Ml9FTVBUWRDpNhIWChFESVNQRU5TRVJfM19FTVBUWRDqNhIWChFESVNQRU5T",
+ "RVJfNF9FTVBUWRDrNhIWChFESVNQRU5TRVJfNV9FTVBUWRDsNhIWChFESVNQ",
+ "RU5TRVJfNl9FTVBUWRDtNhIWChFESVNQRU5TRVJfN19FTVBUWRDuNhIWChFE",
+ "SVNQRU5TRVJfOF9FTVBUWRDvNhIfChpESVNQRU5TRVJfMV9SRUZJTExfRkFJ",
+ "TFVSRRDwNhIfChpESVNQRU5TRVJfMl9SRUZJTExfRkFJTFVSRRDxNhIfChpE",
+ "SVNQRU5TRVJfM19SRUZJTExfRkFJTFVSRRDyNhIfChpESVNQRU5TRVJfNF9S",
+ "RUZJTExfRkFJTFVSRRDzNhIfChpESVNQRU5TRVJfNV9SRUZJTExfRkFJTFVS",
+ "RRD0NhIfChpESVNQRU5TRVJfNl9SRUZJTExfRkFJTFVSRRD1NhIfChpESVNQ",
+ "RU5TRVJfN19SRUZJTExfRkFJTFVSRRD2NhIfChpESVNQRU5TRVJfOF9SRUZJ",
+ "TExfRkFJTFVSRRD3NhIiCh1ESVNQRU5TRVJfMV9NT1RPUl9PVkVSQ1VSUkVO",
+ "VBD4NhIiCh1ESVNQRU5TRVJfMl9NT1RPUl9PVkVSQ1VSUkVOVBD5NhIiCh1E",
+ "SVNQRU5TRVJfM19NT1RPUl9PVkVSQ1VSUkVOVBD6NhIiCh1ESVNQRU5TRVJf",
+ "NF9NT1RPUl9PVkVSQ1VSUkVOVBD7NhIiCh1ESVNQRU5TRVJfNV9NT1RPUl9P",
+ "VkVSQ1VSUkVOVBD8NhIiCh1ESVNQRU5TRVJfNl9NT1RPUl9PVkVSQ1VSUkVO",
+ "VBD9NhIiCh1ESVNQRU5TRVJfN19NT1RPUl9PVkVSQ1VSUkVOVBD+NhIiCh1E",
+ "SVNQRU5TRVJfOF9NT1RPUl9PVkVSQ1VSUkVOVBD/NhImCiFESVNQRU5TRVJf",
+ "MV9NT1RPUl9PVkVSVEVNUEVSQVRVUkUQgDcSJgohRElTUEVOU0VSXzJfTU9U",
+ "T1JfT1ZFUlRFTVBFUkFUVVJFEIE3EiYKIURJU1BFTlNFUl8zX01PVE9SX09W",
+ "RVJURU1QRVJBVFVSRRCCNxImCiFESVNQRU5TRVJfNF9NT1RPUl9PVkVSVEVN",
+ "UEVSQVRVUkUQgzcSJgohRElTUEVOU0VSXzVfTU9UT1JfT1ZFUlRFTVBFUkFU",
+ "VVJFEIQ3EiYKIURJU1BFTlNFUl82X01PVE9SX09WRVJURU1QRVJBVFVSRRCF",
+ "NxImCiFESVNQRU5TRVJfN19NT1RPUl9PVkVSVEVNUEVSQVRVUkUQhjcSJgoh",
+ "RElTUEVOU0VSXzhfTU9UT1JfT1ZFUlRFTVBFUkFUVVJFEIc3EhwKF0RJU1BF",
+ "TlNFUl8xX01PVE9SX1NUQUxMEIg3EhwKF0RJU1BFTlNFUl8yX01PVE9SX1NU",
+ "QUxMEIk3EhwKF0RJU1BFTlNFUl8zX01PVE9SX1NUQUxMEIo3EhwKF0RJU1BF",
+ "TlNFUl80X01PVE9SX1NUQUxMEIs3EhwKF0RJU1BFTlNFUl81X01PVE9SX1NU",
+ "QUxMEIw3EhwKF0RJU1BFTlNFUl82X01PVE9SX1NUQUxMEI03EhwKF0RJU1BF",
+ "TlNFUl83X01PVE9SX1NUQUxMEI43EhwKF0RJU1BFTlNFUl84X01PVE9SX1NU",
+ "QUxMEI83EiMKHkRJU1BFTlNFUl8xX01PVE9SX1VOREVSVk9MVEFHRRCQNxIj",
+ "Ch5ESVNQRU5TRVJfMl9NT1RPUl9VTkRFUlZPTFRBR0UQkTcSIwoeRElTUEVO",
+ "U0VSXzNfTU9UT1JfVU5ERVJWT0xUQUdFEJI3EiMKHkRJU1BFTlNFUl80X01P",
+ "VE9SX1VOREVSVk9MVEFHRRCTNxIjCh5ESVNQRU5TRVJfNV9NT1RPUl9VTkRF",
+ "UlZPTFRBR0UQlDcSIwoeRElTUEVOU0VSXzZfTU9UT1JfVU5ERVJWT0xUQUdF",
+ "EJU3EiMKHkRJU1BFTlNFUl83X01PVE9SX1VOREVSVk9MVEFHRRCWNxIjCh5E",
+ "SVNQRU5TRVJfOF9NT1RPUl9VTkRFUlZPTFRBR0UQlzcSIQocRElTUEVOU0VS",
+ "XzFfVVBQRVJfSEFSRF9MSU1JVBCYNxIhChxESVNQRU5TRVJfMl9VUFBFUl9I",
+ "QVJEX0xJTUlUEJk3EiEKHERJU1BFTlNFUl8zX1VQUEVSX0hBUkRfTElNSVQQ",
+ "mjcSIQocRElTUEVOU0VSXzRfVVBQRVJfSEFSRF9MSU1JVBCbNxIhChxESVNQ",
+ "RU5TRVJfNV9VUFBFUl9IQVJEX0xJTUlUEJw3EiEKHERJU1BFTlNFUl82X1VQ",
+ "UEVSX0hBUkRfTElNSVQQnTcSIQocRElTUEVOU0VSXzdfVVBQRVJfSEFSRF9M",
+ "SU1JVBCeNxIhChxESVNQRU5TRVJfOF9VUFBFUl9IQVJEX0xJTUlUEJ83EiEK",
+ "HERJU1BFTlNFUl8xX0xPV0VSX0hBUkRfTElNSVQQoDcSIQocRElTUEVOU0VS",
+ "XzJfTE9XRVJfSEFSRF9MSU1JVBChNxIhChxESVNQRU5TRVJfM19MT1dFUl9I",
+ "QVJEX0xJTUlUEKI3EiEKHERJU1BFTlNFUl80X0xPV0VSX0hBUkRfTElNSVQQ",
+ "ozcSIQocRElTUEVOU0VSXzVfTE9XRVJfSEFSRF9MSU1JVBCkNxIhChxESVNQ",
+ "RU5TRVJfNl9MT1dFUl9IQVJEX0xJTUlUEKU3EiEKHERJU1BFTlNFUl83X0xP",
+ "V0VSX0hBUkRfTElNSVQQpjcSIQocRElTUEVOU0VSXzhfTE9XRVJfSEFSRF9M",
+ "SU1JVBCnNxIeChlESVNQRU5TRVJfMV9ISUdIX1BSRVNTVVJFEKg3Eh4KGURJ",
+ "U1BFTlNFUl8yX0hJR0hfUFJFU1NVUkUQqTcSHgoZRElTUEVOU0VSXzNfSElH",
+ "SF9QUkVTU1VSRRCqNxIeChlESVNQRU5TRVJfNF9ISUdIX1BSRVNTVVJFEKs3",
+ "Eh4KGURJU1BFTlNFUl81X0hJR0hfUFJFU1NVUkUQrDcSHgoZRElTUEVOU0VS",
+ "XzZfSElHSF9QUkVTU1VSRRCtNxIeChlESVNQRU5TRVJfN19ISUdIX1BSRVNT",
+ "VVJFEK43Eh4KGURJU1BFTlNFUl84X0hJR0hfUFJFU1NVUkUQrzcSGQoUTUlE",
+ "X1RBTktfMV9MT1dfTEVWRUwQwD4SGQoUTUlEX1RBTktfMl9MT1dfTEVWRUwQ",
+ "wT4SGQoUTUlEX1RBTktfM19MT1dfTEVWRUwQwj4SGQoUTUlEX1RBTktfNF9M",
+ "T1dfTEVWRUwQwz4SGQoUTUlEX1RBTktfNV9MT1dfTEVWRUwQxD4SGQoUTUlE",
+ "X1RBTktfNl9MT1dfTEVWRUwQxT4SGQoUTUlEX1RBTktfN19MT1dfTEVWRUwQ",
+ "xj4SGQoUTUlEX1RBTktfOF9MT1dfTEVWRUwQxz4SFQoQTUlEX1RBTktfMV9F",
+ "TVBUWRDIPhIVChBNSURfVEFOS18yX0VNUFRZEMk+EhUKEE1JRF9UQU5LXzNf",
+ "RU1QVFkQyj4SFQoQTUlEX1RBTktfNF9FTVBUWRDLPhIVChBNSURfVEFOS181",
+ "X0VNUFRZEMw+EhUKEE1JRF9UQU5LXzZfRU1QVFkQzT4SFQoQTUlEX1RBTktf",
+ "N19FTVBUWRDOPhIVChBNSURfVEFOS184X0VNUFRZEM8+EhgKE01JRF9UQU5L",
+ "XzFfT1ZFUkZMT1cQ0D4SGAoTTUlEX1RBTktfMl9PVkVSRkxPVxDRPhIYChNN",
+ "SURfVEFOS18zX09WRVJGTE9XENI+EhgKE01JRF9UQU5LXzRfT1ZFUkZMT1cQ",
+ "0z4SGAoTTUlEX1RBTktfNV9PVkVSRkxPVxDUPhIYChNNSURfVEFOS182X09W",
+ "RVJGTE9XENU+EhgKE01JRF9UQU5LXzdfT1ZFUkZMT1cQ1j4SGAoTTUlEX1RB",
+ "TktfOF9PVkVSRkxPVxDXPhIcChdNSURfVEFOS18xX0ZJTExfVElNRU9VVBDY",
+ "PhIcChdNSURfVEFOS18yX0ZJTExfVElNRU9VVBDZPhIcChdNSURfVEFOS18z",
+ "X0ZJTExfVElNRU9VVBDaPhIcChdNSURfVEFOS180X0ZJTExfVElNRU9VVBDb",
+ "PhIcChdNSURfVEFOS181X0ZJTExfVElNRU9VVBDcPhIcChdNSURfVEFOS182",
+ "X0ZJTExfVElNRU9VVBDdPhIcChdNSURfVEFOS183X0ZJTExfVElNRU9VVBDe",
+ "PhIcChdNSURfVEFOS184X0ZJTExfVElNRU9VVBDfPhIdChhBSVJfRklMVEVS",
+ "X05PVF9JTlNUQUxMRUQQqEYSFwoSQUlSX0ZJTFRFUl9DTE9HR0VEEKlGEiUK",
+ "IFdBU1RFX0NPTlRBSU5FUl9FTVBUWUlOR19USU1FT1VUEKpGEhQKD05PX0FJ",
+ "Ul9QUkVTU1VSRRCrRhIdChhXQVNURV9DT05UQUlORVJfT1ZFUkZMT1cQrEYS",
+ "GgoVVk9DX1NFTlNPUl9BTEFSTV9USU1FEK1GEhgKE0NISUxMRVJfRFJZX0NP",
+ "TlRBQ1QQrkYSGgoVSU5TVUZGSUNJRU5UX0FJUl9GTE9XEK9GEhsKFlZPQ19T",
+ "RU5TT1JfQUxBUk1fU0xPUEUQsEYSHQoYUFJFX0NPT0xFUl9GQU5fMV9TVE9Q",
+ "UEVEELFGEh0KGFBSRV9DT09MRVJfRkFOXzJfU1RPUFBFRBCyRhIZChRDT09M",
+ "RVJfRkFOXzFfU1RPUFBFRBCzRhIZChRDT09MRVJfRkFOXzJfU1RPUFBFRBC0",
+ "RhIZChRDT09MRVJfRkFOXzNfU1RPUFBFRBC1RhIZChRDT09MRVJfRkFOXzRf",
+ "U1RPUFBFRBC2RhIhChxQUkVfQ09PTEVSX0ZBTl8xX1JQTV9UT09fTE9XELdG",
+ "EiEKHFBSRV9DT09MRVJfRkFOXzJfUlBNX1RPT19MT1cQuEYSHQoYQ09PTEVS",
+ "X0ZBTl8xX1JQTV9UT09fTE9XELlGEh0KGENPT0xFUl9GQU5fMl9SUE1fVE9P",
+ "X0xPVxC6RhIdChhDT09MRVJfRkFOXzNfUlBNX1RPT19MT1cQu0YSHQoYQ09P",
+ "TEVSX0ZBTl80X1JQTV9UT09fTE9XELxGEiAKG0NPT0xFUl9URU1QRVJBVFVS",
+ "RV9UT09fSElHSBC9RhIfChpDT09MRVJfVEVNUEVSQVRVUkVfVE9PX0xPVxC+",
+ "RhIqCiVJTktfQ0FSVFJJREdFX1BSRVNFTkNFX1NFTlNPUl9USU1FT1VUEJBO",
+ "Eh8KGklOS19DQVJUUklER0VfUkZJRF9USU1FT1VUEJFOEiEKHE5PX1dBU1RF",
+ "X0NBUlRSSURHRV9BVkFJTEFCTEUQkk4SHgoZQUxMX1dBU1RFX0NBUlRSSURH",
+ "RVNfRlVMTBCTThIsCidXQVNURV9DQVJUUklER0VfUFJFU0VOQ0VfU0VOU09S",
+ "X1RJTUVPVVQQlE4SIQocV0FTVEVfQ0FSVFJJREdFX1JGSURfVElNRU9VVBCV",
+ "ThIqCiVJTktfQ0FSVFJJREdFX1JGSURfVEFHX0NBTk5PVF9CRV9SRUFEEJZO",
+ "EiwKJ1dBU1RFX0NBUlRSSURHRV9SRklEX1RBR19DQU5OT1RfQkVfUkVBRBCX",
+ "ThIoCiNJTktfQ0FSVFJJREdFX1JGSURfVEFHX0lTX05PVF9WQUxJRBCYThIq",
+ "CiVXQVNURV9DQVJUUklER0VfUkZJRF9UQUdfSVNfTk9UX1ZBTElEEJlOEigK",
+ "I0lOS19DQVJUUklER0VfQVVUSEVOVElDQVRJT05fRkFJTEVEEJpOEioKJVdB",
+ "U1RFX0NBUlRSSURHRV9BVVRIRU5USUNBVElPTl9GQUlMRUQQm04SHQoYSU5L",
+ "X0NBUlRSSURHRV9JU19CTE9DS0VEEJxOEh8KGldBU1RFX0NBUlRSSURHRV9J",
+ "U19CTE9DS0VEEJ1OEi0KKElOS19DQVJUUklER0VfUkZJRF9UQUdfQ0FOTk9U",
+ "X0JFX1VQREFURUQQnk4SLwoqV0FTVEVfQ0FSVFJJREdFX1JGSURfVEFHX0NB",
+ "Tk5PVF9CRV9VUERBVEVEEJ9OEiAKG0lOS19JTl9DQVJUUklER0VfSVNfRVhQ",
+ "SVJFRBCgTkIhCh9jb20udHdpbmUudGFuZ28ucG1yLmRpYWdub3N0aWNzYgZw",
+ "cm90bzM="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Tango.PMR.Diagnostics.EventType), }, null));
@@ -403,7 +416,7 @@ namespace Tango.PMR.Diagnostics {
/// </summary>
[pbr::OriginalName("FRONT_COVER_4_OPEN")] FrontCover4Open = 2005,
/// <summary>
- ///Cartridges door is open. Cannot start new job (Group = GeneralHardware, Category = Warning)
+ ///IFS door is open. Cannot start new job (Group = GeneralHardware, Category = Warning)
/// </summary>
[pbr::OriginalName("CARTRIDGES_COVER_OPEN")] CartridgesCoverOpen = 2006,
/// <summary>
@@ -427,7 +440,7 @@ namespace Tango.PMR.Diagnostics {
/// </summary>
[pbr::OriginalName("ELECTRICAL_CABINET_FANS_RPM_TOO_LOW")] ElectricalCabinetFansRpmTooLow = 2011,
/// <summary>
- ///Electrical cabinet fans stopped. Cannot execute job (Group = GeneralHardware, Category = Critical)
+ ///Electrical cabinet fans stopped. Cannot execute job (Group = GeneralHardware, Category = Warning)
/// </summary>
[pbr::OriginalName("ELECTRICAL_CABINET_FANS_STOPPED")] ElectricalCabinetFansStopped = 2012,
/// <summary>
@@ -467,6 +480,18 @@ namespace Tango.PMR.Diagnostics {
/// </summary>
[pbr::OriginalName("TEMPERATURE_MEASUREMENT_ERROR")] TemperatureMeasurementError = 2021,
/// <summary>
+ ///Cannot read the cartridge. Cannot perform ink filling (Group = GeneralHardware, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("RFID_READER_MALFUNCTION_INK_SLOT")] RfidReaderMalfunctionInkSlot = 2022,
+ /// <summary>
+ ///Cannot read the cartridge. Cannot replace waste cartridge (Group = GeneralHardware, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("RFID_READER_MALFUNCTION_WASTE_SLOT_1")] RfidReaderMalfunctionWasteSlot1 = 2023,
+ /// <summary>
+ ///Cannot read the cartridge. Cannot replace waste cartridge (Group = GeneralHardware, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("RFID_READER_MALFUNCTION_WASTE_SLOT_2")] RfidReaderMalfunctionWasteSlot2 = 2024,
+ /// <summary>
///Thread break. Cannot execute job (Group = ThreadFeedingSystem, Category = Error)
/// </summary>
[pbr::OriginalName("THREAD_BREAK")] ThreadBreak = 3000,
@@ -699,7 +724,7 @@ namespace Tango.PMR.Diagnostics {
/// </summary>
[pbr::OriginalName("DRYER_ZONE_1_OVERTEMPERATURE")] DryerZone1Overtemperature = 4005,
/// <summary>
- ///The temperature in dryer zone is too high. Cannot execute job (Group = Dryer, Category = Critical)
+ ///The temperature in dryer zone is too high. Cannot execute job (Group = Dryer, Category = Error)
/// </summary>
[pbr::OriginalName("DRYER_ZONE_2_OVERTEMPERATURE")] DryerZone2Overtemperature = 4006,
/// <summary>
@@ -719,19 +744,19 @@ namespace Tango.PMR.Diagnostics {
/// </summary>
[pbr::OriginalName("DRYER_THERMAL_CUTOFF")] DryerThermalCutoff = 4010,
/// <summary>
- ///Dryer zone current is out of range. Cannot execute job (Group = Dryer, Category = Critical)
+ ///Dryer zone current is out of range. Cannot execute job (Group = Dryer, Category = Warning)
/// </summary>
[pbr::OriginalName("DRYER_HEATERS_ZONE_1_CURRENT_OUT_OF_RANGE")] DryerHeatersZone1CurrentOutOfRange = 4011,
/// <summary>
- ///Dryer zone current is out of range. Cannot execute job (Group = Dryer, Category = Critical)
+ ///Dryer zone current is out of range. Cannot execute job (Group = Dryer, Category = Warning)
/// </summary>
[pbr::OriginalName("DRYER_HEATERS_ZONE_2_CURRENT_OUT_OF_RANGE")] DryerHeatersZone2CurrentOutOfRange = 4012,
/// <summary>
- ///Dryer zone current loop break. Cannot execute job (Group = Dryer, Category = Critical)
+ ///Dryer zone current loop break. Cannot execute job (Group = Dryer, Category = Error)
/// </summary>
[pbr::OriginalName("DRYER_HEATERS_ZONE_1_CURRENT_LOOP_BREAK")] DryerHeatersZone1CurrentLoopBreak = 4013,
/// <summary>
- ///Dryer zone current loop break. Cannot execute job (Group = Dryer, Category = Critical)
+ ///Dryer zone current loop break. Cannot execute job (Group = Dryer, Category = Error)
/// </summary>
[pbr::OriginalName("DRYER_HEATERS_ZONE_2_CURRENT_LOOP_BREAK")] DryerHeatersZone2CurrentLoopBreak = 4014,
/// <summary>
@@ -935,27 +960,27 @@ namespace Tango.PMR.Diagnostics {
/// </summary>
[pbr::OriginalName("DYEING_HEAD_CLEANING_HEAD_MOTOR_UNDERVOLTAGE")] DyeingHeadCleaningHeadMotorUndervoltage = 5042,
/// <summary>
- ///The temperature in dyeing head zone is too high. Cannot execute job (Group = DyeingHead, Category = Critical)
+ ///The temperature in dyeing head zone is too high. Cannot execute job (Group = DyeingHead, Category = Error)
/// </summary>
[pbr::OriginalName("DYEING_HEAD_ZONE_7_OVERTEMPERATURE")] DyeingHeadZone7Overtemperature = 5043,
/// <summary>
- ///The temperature in dyeing head zone is too high. Cannot execute job (Group = DyeingHead, Category = Critical)
+ ///The temperature in dyeing head zone is too high. Cannot execute job (Group = DyeingHead, Category = Error)
/// </summary>
[pbr::OriginalName("DYEING_HEAD_ZONE_8_OVERTEMPERATURE")] DyeingHeadZone8Overtemperature = 5044,
/// <summary>
- ///The temperature in dyeing head zone is too high. Cannot execute job (Group = DyeingHead, Category = Critical)
+ ///The temperature in dyeing head zone is too high. Cannot execute job (Group = DyeingHead, Category = Error)
/// </summary>
[pbr::OriginalName("DYEING_HEAD_ZONE_9_OVERTEMPERATURE")] DyeingHeadZone9Overtemperature = 5045,
/// <summary>
- ///The temperature in dyeing head zone is too high. Cannot execute job (Group = DyeingHead, Category = Critical)
+ ///The temperature in dyeing head zone is too high. Cannot execute job (Group = DyeingHead, Category = Error)
/// </summary>
[pbr::OriginalName("DYEING_HEAD_ZONE_10_OVERTEMPERATURE")] DyeingHeadZone10Overtemperature = 5046,
/// <summary>
- ///The temperature in dyeing head zone is too high. Cannot execute job (Group = DyeingHead, Category = Critical)
+ ///The temperature in dyeing head zone is too high. Cannot execute job (Group = DyeingHead, Category = Error)
/// </summary>
[pbr::OriginalName("DYEING_HEAD_ZONE_11_OVERTEMPERATURE")] DyeingHeadZone11Overtemperature = 5047,
/// <summary>
- ///The temperature in dyeing head zone is too high. Cannot execute job (Group = DyeingHead, Category = Critical)
+ ///The temperature in dyeing head zone is too high. Cannot execute job (Group = DyeingHead, Category = Error)
/// </summary>
[pbr::OriginalName("DYEING_HEAD_ZONE_12_OVERTEMPERATURE")] DyeingHeadZone12Overtemperature = 5048,
/// <summary>
@@ -1063,11 +1088,11 @@ namespace Tango.PMR.Diagnostics {
/// </summary>
[pbr::OriginalName("DYEING_HEAD_ZONE_12_CURRENT_LOOP_BREAK")] DyeingHeadZone12CurrentLoopBreak = 5074,
/// <summary>
- ///The temperature in dyeing head blower is too high. Cannot execute job (Group = DyeingHead, Category = Critical)
+ ///The temperature in dyeing head blower is too high. Cannot execute job (Group = DyeingHead, Category = Error)
/// </summary>
[pbr::OriginalName("DYEING_HEAD_BLOWER_1_OVERTEMPERATURE")] DyeingHeadBlower1Overtemperature = 5075,
/// <summary>
- ///The temperature in dyeing head blower is too high. Cannot execute job (Group = DyeingHead, Category = Critical)
+ ///The temperature in dyeing head blower is too high. Cannot execute job (Group = DyeingHead, Category = Error)
/// </summary>
[pbr::OriginalName("DYEING_HEAD_BLOWER_2_OVERTEMPERATURE")] DyeingHeadBlower2Overtemperature = 5076,
/// <summary>
@@ -1159,7 +1184,7 @@ namespace Tango.PMR.Diagnostics {
/// </summary>
[pbr::OriginalName("DYEING_HEAD_TUNNEL_LID_IS_OPEN")] DyeingHeadTunnelLidIsOpen = 5098,
/// <summary>
- ///The temperature in the mixer is too high. Cannot execute job (Group = Mixer, Category = Critical)
+ ///The temperature in the mixer is too high. Cannot execute job (Group = Mixer, Category = Error)
/// </summary>
[pbr::OriginalName("MIXER_OVERTEMPERATURE")] MixerOvertemperature = 6000,
/// <summary>
@@ -1763,11 +1788,11 @@ namespace Tango.PMR.Diagnostics {
/// </summary>
[pbr::OriginalName("INK_CARTRIDGE_RFID_TIMEOUT")] InkCartridgeRfidTimeout = 10001,
/// <summary>
- ///Waste level is high. Insert waste cartridge (Group = InkFillingSystem, Category = Warning)
+ ///No waste cartridge in system. Cannot execute job. Please insert waste cartridge (Group = InkFillingSystem, Category = Error)
/// </summary>
[pbr::OriginalName("NO_WASTE_CARTRIDGE_AVAILABLE")] NoWasteCartridgeAvailable = 10002,
/// <summary>
- ///Waste cartridge detected. Cannot execute job. Please extract waste cartridge (Group = InkFillingSystem, Category = Error)
+ ///Both waste cartridges are full. Cannot execute job. Please replace waste cartridges (Group = InkFillingSystem, Category = Error)
/// </summary>
[pbr::OriginalName("ALL_WASTE_CARTRIDGES_FULL")] AllWasteCartridgesFull = 10003,
/// <summary>
@@ -1778,6 +1803,50 @@ namespace Tango.PMR.Diagnostics {
///Cannot identify waste cartridge. Cannot execute job (Group = InkFillingSystem, Category = Error)
/// </summary>
[pbr::OriginalName("WASTE_CARTRIDGE_RFID_TIMEOUT")] WasteCartridgeRfidTimeout = 10005,
+ /// <summary>
+ ///Ink cartridge failure. Cannot perform ink filling (Group = InkFillingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("INK_CARTRIDGE_RFID_TAG_CANNOT_BE_READ")] InkCartridgeRfidTagCannotBeRead = 10006,
+ /// <summary>
+ ///Waste cartridge failure. Cannot replace waste cartridge (Group = InkFillingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("WASTE_CARTRIDGE_RFID_TAG_CANNOT_BE_READ")] WasteCartridgeRfidTagCannotBeRead = 10007,
+ /// <summary>
+ ///Ink cartridge failure. Cannot perform ink filling (Group = InkFillingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("INK_CARTRIDGE_RFID_TAG_IS_NOT_VALID")] InkCartridgeRfidTagIsNotValid = 10008,
+ /// <summary>
+ ///Waste cartridge failure. Cannot replace waste cartridge (Group = InkFillingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("WASTE_CARTRIDGE_RFID_TAG_IS_NOT_VALID")] WasteCartridgeRfidTagIsNotValid = 10009,
+ /// <summary>
+ ///Ink cartridge failure. Cannot perform ink filling (Group = InkFillingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("INK_CARTRIDGE_AUTHENTICATION_FAILED")] InkCartridgeAuthenticationFailed = 10010,
+ /// <summary>
+ ///Waste cartridge failure. Cannot replace waste cartridge (Group = InkFillingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("WASTE_CARTRIDGE_AUTHENTICATION_FAILED")] WasteCartridgeAuthenticationFailed = 10011,
+ /// <summary>
+ ///Ink cartridge failure. Cannot perform ink filling (Group = InkFillingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("INK_CARTRIDGE_IS_BLOCKED")] InkCartridgeIsBlocked = 10012,
+ /// <summary>
+ ///Waste cartridge failure. Cannot replace waste cartridge (Group = InkFillingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("WASTE_CARTRIDGE_IS_BLOCKED")] WasteCartridgeIsBlocked = 10013,
+ /// <summary>
+ ///Ink cartridge failure. Cannot perform ink filling (Group = InkFillingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("INK_CARTRIDGE_RFID_TAG_CANNOT_BE_UPDATED")] InkCartridgeRfidTagCannotBeUpdated = 10014,
+ /// <summary>
+ ///Waste cartridge failure. Cannot replace waste cartridge (Group = InkFillingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("WASTE_CARTRIDGE_RFID_TAG_CANNOT_BE_UPDATED")] WasteCartridgeRfidTagCannotBeUpdated = 10015,
+ /// <summary>
+ ///Ink in cartridge is expired. Cannot perform ink filling (Group = InkFillingSystem, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("INK_IN_CARTRIDGE_IS_EXPIRED")] InkInCartridgeIsExpired = 10016,
}
#endregion
diff --git a/Software/Visual_Studio/Tango.PMR/EmbeddedParameters/AlarmHandlingItem.cs b/Software/Visual_Studio/Tango.PMR/EmbeddedParameters/AlarmHandlingItem.cs
index 0d957f6be..42ff24301 100644
--- a/Software/Visual_Studio/Tango.PMR/EmbeddedParameters/AlarmHandlingItem.cs
+++ b/Software/Visual_Studio/Tango.PMR/EmbeddedParameters/AlarmHandlingItem.cs
@@ -24,21 +24,20 @@ namespace Tango.PMR.EmbeddedParameters {
string.Concat(
"ChdBbGFybUhhbmRsaW5nSXRlbS5wcm90bxIcVGFuZ28uUE1SLkVtYmVkZGVk",
"UGFyYW1ldGVycxoVQWxhcm1Tb3VyY2VUeXBlLnByb3RvGhZEZWJ1Z0xvZ0Nh",
- "dGVnb3J5LnByb3RvGg9FdmVudFR5cGUucHJvdG8igwMKEUFsYXJtSGFuZGxp",
+ "dGVnb3J5LnByb3RvGg9FdmVudFR5cGUucHJvdG8i2wIKEUFsYXJtSGFuZGxp",
"bmdJdGVtEkIKC0FsYXJtU291cmNlGAEgASgOMi0uVGFuZ28uUE1SLkVtYmVk",
- "ZGVkUGFyYW1ldGVycy5BbGFybVNvdXJjZVR5cGUSEQoJRnJlcXVlbmN5GAIg",
- "ASgNEhAKCERldmljZUlkGAMgASgNEhYKDk1vZHVsZURldmljZUlkGAQgASgN",
- "EhIKCkFsYXJtVmFsdWUYBSABKA0SFgoOQWxhcm1EaXJlY3Rpb24YBiABKAgS",
- "NwoIU2V2ZXJpdHkYByABKA4yJS5UYW5nby5QTVIuRGVidWdnaW5nLkRlYnVn",
- "TG9nQ2F0ZWdvcnkSEwoLUHJlZGVjZXNzb3IYCCABKA0SFQoNRGVib3VuY2VW",
- "YWx1ZRgJIAEoDRIzCglFdmVudFR5cGUYCiABKA4yIC5UYW5nby5QTVIuRGlh",
- "Z25vc3RpY3MuRXZlbnRUeXBlEhEKCUV2ZW50TmFtZRgLIAEoCRIUCgxJc1Bl",
- "cnNpc3RlbnQYDCABKAhCKAomY29tLnR3aW5lLnRhbmdvLnBtci5lbWJlZGRl",
- "ZHBhcmFtZXRlcnNiBnByb3RvMw=="));
+ "ZGVkUGFyYW1ldGVycy5BbGFybVNvdXJjZVR5cGUSEAoIRGV2aWNlSWQYAiAB",
+ "KA0SFgoOTW9kdWxlRGV2aWNlSWQYAyABKA0SEgoKQWxhcm1WYWx1ZRgEIAEo",
+ "DRIWCg5BbGFybURpcmVjdGlvbhgFIAEoCBI3CghTZXZlcml0eRgGIAEoDjIl",
+ "LlRhbmdvLlBNUi5EZWJ1Z2dpbmcuRGVidWdMb2dDYXRlZ29yeRIVCg1EZWJv",
+ "dW5jZVZhbHVlGAcgASgNEjMKCUV2ZW50VHlwZRgIIAEoDjIgLlRhbmdvLlBN",
+ "Ui5EaWFnbm9zdGljcy5FdmVudFR5cGUSEQoJRXZlbnROYW1lGAkgASgJEhQK",
+ "DElzUGVyc2lzdGVudBgKIAEoCEIoCiZjb20udHdpbmUudGFuZ28ucG1yLmVt",
+ "YmVkZGVkcGFyYW1ldGVyc2IGcHJvdG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::Tango.PMR.EmbeddedParameters.AlarmSourceTypeReflection.Descriptor, global::Tango.PMR.Debugging.DebugLogCategoryReflection.Descriptor, global::Tango.PMR.Diagnostics.EventTypeReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
- new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.EmbeddedParameters.AlarmHandlingItem), global::Tango.PMR.EmbeddedParameters.AlarmHandlingItem.Parser, new[]{ "AlarmSource", "Frequency", "DeviceId", "ModuleDeviceId", "AlarmValue", "AlarmDirection", "Severity", "Predecessor", "DebounceValue", "EventType", "EventName", "IsPersistent" }, null, null, null)
+ new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.EmbeddedParameters.AlarmHandlingItem), global::Tango.PMR.EmbeddedParameters.AlarmHandlingItem.Parser, new[]{ "AlarmSource", "DeviceId", "ModuleDeviceId", "AlarmValue", "AlarmDirection", "Severity", "DebounceValue", "EventType", "EventName", "IsPersistent" }, null, null, null)
}));
}
#endregion
@@ -70,13 +69,11 @@ namespace Tango.PMR.EmbeddedParameters {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public AlarmHandlingItem(AlarmHandlingItem other) : this() {
alarmSource_ = other.alarmSource_;
- frequency_ = other.frequency_;
deviceId_ = other.deviceId_;
moduleDeviceId_ = other.moduleDeviceId_;
alarmValue_ = other.alarmValue_;
alarmDirection_ = other.alarmDirection_;
severity_ = other.severity_;
- predecessor_ = other.predecessor_;
debounceValue_ = other.debounceValue_;
eventType_ = other.eventType_;
eventName_ = other.eventName_;
@@ -99,23 +96,12 @@ namespace Tango.PMR.EmbeddedParameters {
}
}
- /// <summary>Field number for the "Frequency" field.</summary>
- public const int FrequencyFieldNumber = 2;
- private uint frequency_;
- /// <summary>
- ///1/10/100/1000
- /// </summary>
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public uint Frequency {
- get { return frequency_; }
- set {
- frequency_ = value;
- }
- }
-
/// <summary>Field number for the "DeviceId" field.</summary>
- public const int DeviceIdFieldNumber = 3;
+ public const int DeviceIdFieldNumber = 2;
private uint deviceId_;
+ /// <summary>
+ ///uint32 Frequency = 2; //1/10/100/1000
+ /// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public uint DeviceId {
get { return deviceId_; }
@@ -125,7 +111,7 @@ namespace Tango.PMR.EmbeddedParameters {
}
/// <summary>Field number for the "ModuleDeviceId" field.</summary>
- public const int ModuleDeviceIdFieldNumber = 4;
+ public const int ModuleDeviceIdFieldNumber = 3;
private uint moduleDeviceId_;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public uint ModuleDeviceId {
@@ -136,7 +122,7 @@ namespace Tango.PMR.EmbeddedParameters {
}
/// <summary>Field number for the "AlarmValue" field.</summary>
- public const int AlarmValueFieldNumber = 5;
+ public const int AlarmValueFieldNumber = 4;
private uint alarmValue_;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public uint AlarmValue {
@@ -147,7 +133,7 @@ namespace Tango.PMR.EmbeddedParameters {
}
/// <summary>Field number for the "AlarmDirection" field.</summary>
- public const int AlarmDirectionFieldNumber = 6;
+ public const int AlarmDirectionFieldNumber = 5;
private bool alarmDirection_;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public bool AlarmDirection {
@@ -158,7 +144,7 @@ namespace Tango.PMR.EmbeddedParameters {
}
/// <summary>Field number for the "Severity" field.</summary>
- public const int SeverityFieldNumber = 7;
+ public const int SeverityFieldNumber = 6;
private global::Tango.PMR.Debugging.DebugLogCategory severity_ = 0;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public global::Tango.PMR.Debugging.DebugLogCategory Severity {
@@ -168,20 +154,12 @@ namespace Tango.PMR.EmbeddedParameters {
}
}
- /// <summary>Field number for the "Predecessor" field.</summary>
- public const int PredecessorFieldNumber = 8;
- private uint predecessor_;
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public uint Predecessor {
- get { return predecessor_; }
- set {
- predecessor_ = value;
- }
- }
-
/// <summary>Field number for the "DebounceValue" field.</summary>
- public const int DebounceValueFieldNumber = 9;
+ public const int DebounceValueFieldNumber = 7;
private uint debounceValue_;
+ /// <summary>
+ ///uint32 Predecessor = 7;
+ /// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public uint DebounceValue {
get { return debounceValue_; }
@@ -191,7 +169,7 @@ namespace Tango.PMR.EmbeddedParameters {
}
/// <summary>Field number for the "EventType" field.</summary>
- public const int EventTypeFieldNumber = 10;
+ public const int EventTypeFieldNumber = 8;
private global::Tango.PMR.Diagnostics.EventType eventType_ = 0;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public global::Tango.PMR.Diagnostics.EventType EventType {
@@ -202,7 +180,7 @@ namespace Tango.PMR.EmbeddedParameters {
}
/// <summary>Field number for the "EventName" field.</summary>
- public const int EventNameFieldNumber = 11;
+ public const int EventNameFieldNumber = 9;
private string eventName_ = "";
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public string EventName {
@@ -213,7 +191,7 @@ namespace Tango.PMR.EmbeddedParameters {
}
/// <summary>Field number for the "IsPersistent" field.</summary>
- public const int IsPersistentFieldNumber = 12;
+ public const int IsPersistentFieldNumber = 10;
private bool isPersistent_;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public bool IsPersistent {
@@ -237,13 +215,11 @@ namespace Tango.PMR.EmbeddedParameters {
return true;
}
if (AlarmSource != other.AlarmSource) return false;
- if (Frequency != other.Frequency) return false;
if (DeviceId != other.DeviceId) return false;
if (ModuleDeviceId != other.ModuleDeviceId) return false;
if (AlarmValue != other.AlarmValue) return false;
if (AlarmDirection != other.AlarmDirection) return false;
if (Severity != other.Severity) return false;
- if (Predecessor != other.Predecessor) return false;
if (DebounceValue != other.DebounceValue) return false;
if (EventType != other.EventType) return false;
if (EventName != other.EventName) return false;
@@ -255,13 +231,11 @@ namespace Tango.PMR.EmbeddedParameters {
public override int GetHashCode() {
int hash = 1;
if (AlarmSource != 0) hash ^= AlarmSource.GetHashCode();
- if (Frequency != 0) hash ^= Frequency.GetHashCode();
if (DeviceId != 0) hash ^= DeviceId.GetHashCode();
if (ModuleDeviceId != 0) hash ^= ModuleDeviceId.GetHashCode();
if (AlarmValue != 0) hash ^= AlarmValue.GetHashCode();
if (AlarmDirection != false) hash ^= AlarmDirection.GetHashCode();
if (Severity != 0) hash ^= Severity.GetHashCode();
- if (Predecessor != 0) hash ^= Predecessor.GetHashCode();
if (DebounceValue != 0) hash ^= DebounceValue.GetHashCode();
if (EventType != 0) hash ^= EventType.GetHashCode();
if (EventName.Length != 0) hash ^= EventName.GetHashCode();
@@ -280,48 +254,40 @@ namespace Tango.PMR.EmbeddedParameters {
output.WriteRawTag(8);
output.WriteEnum((int) AlarmSource);
}
- if (Frequency != 0) {
- output.WriteRawTag(16);
- output.WriteUInt32(Frequency);
- }
if (DeviceId != 0) {
- output.WriteRawTag(24);
+ output.WriteRawTag(16);
output.WriteUInt32(DeviceId);
}
if (ModuleDeviceId != 0) {
- output.WriteRawTag(32);
+ output.WriteRawTag(24);
output.WriteUInt32(ModuleDeviceId);
}
if (AlarmValue != 0) {
- output.WriteRawTag(40);
+ output.WriteRawTag(32);
output.WriteUInt32(AlarmValue);
}
if (AlarmDirection != false) {
- output.WriteRawTag(48);
+ output.WriteRawTag(40);
output.WriteBool(AlarmDirection);
}
if (Severity != 0) {
- output.WriteRawTag(56);
+ output.WriteRawTag(48);
output.WriteEnum((int) Severity);
}
- if (Predecessor != 0) {
- output.WriteRawTag(64);
- output.WriteUInt32(Predecessor);
- }
if (DebounceValue != 0) {
- output.WriteRawTag(72);
+ output.WriteRawTag(56);
output.WriteUInt32(DebounceValue);
}
if (EventType != 0) {
- output.WriteRawTag(80);
+ output.WriteRawTag(64);
output.WriteEnum((int) EventType);
}
if (EventName.Length != 0) {
- output.WriteRawTag(90);
+ output.WriteRawTag(74);
output.WriteString(EventName);
}
if (IsPersistent != false) {
- output.WriteRawTag(96);
+ output.WriteRawTag(80);
output.WriteBool(IsPersistent);
}
}
@@ -332,9 +298,6 @@ namespace Tango.PMR.EmbeddedParameters {
if (AlarmSource != 0) {
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) AlarmSource);
}
- if (Frequency != 0) {
- size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Frequency);
- }
if (DeviceId != 0) {
size += 1 + pb::CodedOutputStream.ComputeUInt32Size(DeviceId);
}
@@ -350,9 +313,6 @@ namespace Tango.PMR.EmbeddedParameters {
if (Severity != 0) {
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Severity);
}
- if (Predecessor != 0) {
- size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Predecessor);
- }
if (DebounceValue != 0) {
size += 1 + pb::CodedOutputStream.ComputeUInt32Size(DebounceValue);
}
@@ -376,9 +336,6 @@ namespace Tango.PMR.EmbeddedParameters {
if (other.AlarmSource != 0) {
AlarmSource = other.AlarmSource;
}
- if (other.Frequency != 0) {
- Frequency = other.Frequency;
- }
if (other.DeviceId != 0) {
DeviceId = other.DeviceId;
}
@@ -394,9 +351,6 @@ namespace Tango.PMR.EmbeddedParameters {
if (other.Severity != 0) {
Severity = other.Severity;
}
- if (other.Predecessor != 0) {
- Predecessor = other.Predecessor;
- }
if (other.DebounceValue != 0) {
DebounceValue = other.DebounceValue;
}
@@ -424,46 +378,38 @@ namespace Tango.PMR.EmbeddedParameters {
break;
}
case 16: {
- Frequency = input.ReadUInt32();
- break;
- }
- case 24: {
DeviceId = input.ReadUInt32();
break;
}
- case 32: {
+ case 24: {
ModuleDeviceId = input.ReadUInt32();
break;
}
- case 40: {
+ case 32: {
AlarmValue = input.ReadUInt32();
break;
}
- case 48: {
+ case 40: {
AlarmDirection = input.ReadBool();
break;
}
- case 56: {
+ case 48: {
severity_ = (global::Tango.PMR.Debugging.DebugLogCategory) input.ReadEnum();
break;
}
- case 64: {
- Predecessor = input.ReadUInt32();
- break;
- }
- case 72: {
+ case 56: {
DebounceValue = input.ReadUInt32();
break;
}
- case 80: {
+ case 64: {
eventType_ = (global::Tango.PMR.Diagnostics.EventType) input.ReadEnum();
break;
}
- case 90: {
+ case 74: {
EventName = input.ReadString();
break;
}
- case 96: {
+ case 80: {
IsPersistent = input.ReadBool();
break;
}
diff --git a/Software/Visual_Studio/Tango.PMR/Printing/HeadCleaningParameters.cs b/Software/Visual_Studio/Tango.PMR/Printing/HeadCleaningParameters.cs
index e086fdddf..1c6786540 100644
--- a/Software/Visual_Studio/Tango.PMR/Printing/HeadCleaningParameters.cs
+++ b/Software/Visual_Studio/Tango.PMR/Printing/HeadCleaningParameters.cs
@@ -23,13 +23,13 @@ namespace Tango.PMR.Printing {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"ChxIZWFkQ2xlYW5pbmdQYXJhbWV0ZXJzLnByb3RvEhJUYW5nby5QTVIuUHJp",
- "bnRpbmciLQoWSGVhZENsZWFuaW5nUGFyYW1ldGVycxITCgtDbGVhbmVyRmxv",
- "dxgBIAEoAUIeChxjb20udHdpbmUudGFuZ28ucG1yLnByaW50aW5nYgZwcm90",
- "bzM="));
+ "bnRpbmciUAoWSGVhZENsZWFuaW5nUGFyYW1ldGVycxITCgtDbGVhbmVyRmxv",
+ "dxgBIAEoARIhChlBcmNIZWFkQ2xlYW5pbmdNb3RvclNwZWVkGAIgASgBQh4K",
+ "HGNvbS50d2luZS50YW5nby5wbXIucHJpbnRpbmdiBnByb3RvMw=="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
- new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Printing.HeadCleaningParameters), global::Tango.PMR.Printing.HeadCleaningParameters.Parser, new[]{ "CleanerFlow" }, null, null, null)
+ new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Printing.HeadCleaningParameters), global::Tango.PMR.Printing.HeadCleaningParameters.Parser, new[]{ "CleanerFlow", "ArcHeadCleaningMotorSpeed" }, null, null, null)
}));
}
#endregion
@@ -61,6 +61,7 @@ namespace Tango.PMR.Printing {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public HeadCleaningParameters(HeadCleaningParameters other) : this() {
cleanerFlow_ = other.cleanerFlow_;
+ arcHeadCleaningMotorSpeed_ = other.arcHeadCleaningMotorSpeed_;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -79,6 +80,17 @@ namespace Tango.PMR.Printing {
}
}
+ /// <summary>Field number for the "ArcHeadCleaningMotorSpeed" field.</summary>
+ public const int ArcHeadCleaningMotorSpeedFieldNumber = 2;
+ private double arcHeadCleaningMotorSpeed_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double ArcHeadCleaningMotorSpeed {
+ get { return arcHeadCleaningMotorSpeed_; }
+ set {
+ arcHeadCleaningMotorSpeed_ = value;
+ }
+ }
+
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as HeadCleaningParameters);
@@ -93,6 +105,7 @@ namespace Tango.PMR.Printing {
return true;
}
if (CleanerFlow != other.CleanerFlow) return false;
+ if (ArcHeadCleaningMotorSpeed != other.ArcHeadCleaningMotorSpeed) return false;
return true;
}
@@ -100,6 +113,7 @@ namespace Tango.PMR.Printing {
public override int GetHashCode() {
int hash = 1;
if (CleanerFlow != 0D) hash ^= CleanerFlow.GetHashCode();
+ if (ArcHeadCleaningMotorSpeed != 0D) hash ^= ArcHeadCleaningMotorSpeed.GetHashCode();
return hash;
}
@@ -114,6 +128,10 @@ namespace Tango.PMR.Printing {
output.WriteRawTag(9);
output.WriteDouble(CleanerFlow);
}
+ if (ArcHeadCleaningMotorSpeed != 0D) {
+ output.WriteRawTag(17);
+ output.WriteDouble(ArcHeadCleaningMotorSpeed);
+ }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -122,6 +140,9 @@ namespace Tango.PMR.Printing {
if (CleanerFlow != 0D) {
size += 1 + 8;
}
+ if (ArcHeadCleaningMotorSpeed != 0D) {
+ size += 1 + 8;
+ }
return size;
}
@@ -133,6 +154,9 @@ namespace Tango.PMR.Printing {
if (other.CleanerFlow != 0D) {
CleanerFlow = other.CleanerFlow;
}
+ if (other.ArcHeadCleaningMotorSpeed != 0D) {
+ ArcHeadCleaningMotorSpeed = other.ArcHeadCleaningMotorSpeed;
+ }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -147,6 +171,10 @@ namespace Tango.PMR.Printing {
CleanerFlow = input.ReadDouble();
break;
}
+ case 17: {
+ ArcHeadCleaningMotorSpeed = input.ReadDouble();
+ break;
+ }
}
}
}
diff --git a/Software/Visual_Studio/Tango.PMR/Printing/ProcessParameters.cs b/Software/Visual_Studio/Tango.PMR/Printing/ProcessParameters.cs
index 0f03cf4f0..b0c29288f 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",
- "IvUFChFQcm9jZXNzUGFyYW1ldGVycxITCgtEeWVpbmdTcGVlZBgBIAEoARIU",
+ "ItIFChFQcm9jZXNzUGFyYW1ldGVycxITCgtEeWVpbmdTcGVlZBgBIAEoARIU",
"CgxNaW5JbmtVcHRha2UYAiABKAESFAoMTWF4SW5rVXB0YWtlGAMgASgBEhUK",
"DUZlZWRlclRlbnNpb24YBCABKAESFQoNUHVsbGVyVGVuc2lvbhgFIAEoARIV",
"Cg1XaW5kZXJUZW5zaW9uGAYgASgBEhEKCU1peGVyVGVtcBgHIAEoARIVCg1I",
@@ -39,12 +39,11 @@ namespace Tango.PMR.Printing {
"cBgZIAEoARIWCg5IZWFkWm9uZTEyVGVtcBgaIAEoARITCgtSQmxvd2VyRmxv",
"dxgbIAEoARITCgtSQmxvd2VyVGVtcBgcIAEoARITCgtMQmxvd2VyRmxvdxgd",
"IAEoARITCgtMQmxvd2VyVGVtcBgeIAEoARIXCg9QcmVzc3VyZUJ1aWxkVXAY",
- "HyABKAESIQoZQXJjSGVhZENsZWFuaW5nTW90b3JTcGVlZBggIAEoAUIeChxj",
- "b20udHdpbmUudGFuZ28ucG1yLnByaW50aW5nYgZwcm90bzM="));
+ "HyABKAFCHgocY29tLnR3aW5lLnRhbmdvLnBtci5wcmludGluZ2IGcHJvdG8z"));
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", "ArcHeadCleaningMotorSpeed" }, 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" }, null, null, null)
}));
}
#endregion
@@ -106,7 +105,6 @@ namespace Tango.PMR.Printing {
lBlowerFlow_ = other.lBlowerFlow_;
lBlowerTemp_ = other.lBlowerTemp_;
pressureBuildUp_ = other.pressureBuildUp_;
- arcHeadCleaningMotorSpeed_ = other.arcHeadCleaningMotorSpeed_;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -455,17 +453,6 @@ namespace Tango.PMR.Printing {
}
}
- /// <summary>Field number for the "ArcHeadCleaningMotorSpeed" field.</summary>
- public const int ArcHeadCleaningMotorSpeedFieldNumber = 32;
- private double arcHeadCleaningMotorSpeed_;
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public double ArcHeadCleaningMotorSpeed {
- get { return arcHeadCleaningMotorSpeed_; }
- set {
- arcHeadCleaningMotorSpeed_ = value;
- }
- }
-
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as ProcessParameters);
@@ -510,7 +497,6 @@ namespace Tango.PMR.Printing {
if (LBlowerFlow != other.LBlowerFlow) return false;
if (LBlowerTemp != other.LBlowerTemp) return false;
if (PressureBuildUp != other.PressureBuildUp) return false;
- if (ArcHeadCleaningMotorSpeed != other.ArcHeadCleaningMotorSpeed) return false;
return true;
}
@@ -548,7 +534,6 @@ namespace Tango.PMR.Printing {
if (LBlowerFlow != 0D) hash ^= LBlowerFlow.GetHashCode();
if (LBlowerTemp != 0D) hash ^= LBlowerTemp.GetHashCode();
if (PressureBuildUp != 0D) hash ^= PressureBuildUp.GetHashCode();
- if (ArcHeadCleaningMotorSpeed != 0D) hash ^= ArcHeadCleaningMotorSpeed.GetHashCode();
return hash;
}
@@ -683,10 +668,6 @@ namespace Tango.PMR.Printing {
output.WriteRawTag(249, 1);
output.WriteDouble(PressureBuildUp);
}
- if (ArcHeadCleaningMotorSpeed != 0D) {
- output.WriteRawTag(129, 2);
- output.WriteDouble(ArcHeadCleaningMotorSpeed);
- }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -785,9 +766,6 @@ namespace Tango.PMR.Printing {
if (PressureBuildUp != 0D) {
size += 2 + 8;
}
- if (ArcHeadCleaningMotorSpeed != 0D) {
- size += 2 + 8;
- }
return size;
}
@@ -889,9 +867,6 @@ namespace Tango.PMR.Printing {
if (other.PressureBuildUp != 0D) {
PressureBuildUp = other.PressureBuildUp;
}
- if (other.ArcHeadCleaningMotorSpeed != 0D) {
- ArcHeadCleaningMotorSpeed = other.ArcHeadCleaningMotorSpeed;
- }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -1026,10 +1001,6 @@ namespace Tango.PMR.Printing {
PressureBuildUp = input.ReadDouble();
break;
}
- case 257: {
- ArcHeadCleaningMotorSpeed = input.ReadDouble();
- break;
- }
}
}
}
diff --git a/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj b/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj
index bb44ef591..18b1e2aa1 100644
--- a/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj
+++ b/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj
@@ -457,6 +457,8 @@
<Compile Include="TCC\DetectionColorFile.cs" />
<Compile Include="TCC\DetectionInput.cs" />
<Compile Include="TCC\DetectionOutput.cs" />
+ <Compile Include="ThreadLoading\AttemptThreadJoggingRequest.cs" />
+ <Compile Include="ThreadLoading\AttemptThreadJoggingResponse.cs" />
<Compile Include="ThreadLoading\ContinueThreadLoadingRequest.cs" />
<Compile Include="ThreadLoading\ContinueThreadLoadingResponse.cs" />
<Compile Include="ThreadLoading\StartThreadLoadingRequest.cs" />
@@ -483,7 +485,7 @@
</PropertyGroup>
<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.PMR/ThreadLoading/AttemptThreadJoggingRequest.cs b/Software/Visual_Studio/Tango.PMR/ThreadLoading/AttemptThreadJoggingRequest.cs
new file mode 100644
index 000000000..dd3f7717c
--- /dev/null
+++ b/Software/Visual_Studio/Tango.PMR/ThreadLoading/AttemptThreadJoggingRequest.cs
@@ -0,0 +1,132 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: AttemptThreadJoggingRequest.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.ThreadLoading {
+
+ /// <summary>Holder for reflection information generated from AttemptThreadJoggingRequest.proto</summary>
+ public static partial class AttemptThreadJoggingRequestReflection {
+
+ #region Descriptor
+ /// <summary>File descriptor for AttemptThreadJoggingRequest.proto</summary>
+ public static pbr::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbr::FileDescriptor descriptor;
+
+ static AttemptThreadJoggingRequestReflection() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "CiFBdHRlbXB0VGhyZWFkSm9nZ2luZ1JlcXVlc3QucHJvdG8SF1RhbmdvLlBN",
+ "Ui5UaHJlYWRMb2FkaW5nIh0KG0F0dGVtcHRUaHJlYWRKb2dnaW5nUmVxdWVz",
+ "dEIjCiFjb20udHdpbmUudGFuZ28ucG1yLnRocmVhZGxvYWRpbmdiBnByb3Rv",
+ "Mw=="));
+ descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
+ new pbr::FileDescriptor[] { },
+ new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
+ new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.ThreadLoading.AttemptThreadJoggingRequest), global::Tango.PMR.ThreadLoading.AttemptThreadJoggingRequest.Parser, null, null, null, null)
+ }));
+ }
+ #endregion
+
+ }
+ #region Messages
+ public sealed partial class AttemptThreadJoggingRequest : pb::IMessage<AttemptThreadJoggingRequest> {
+ private static readonly pb::MessageParser<AttemptThreadJoggingRequest> _parser = new pb::MessageParser<AttemptThreadJoggingRequest>(() => new AttemptThreadJoggingRequest());
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pb::MessageParser<AttemptThreadJoggingRequest> Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::Tango.PMR.ThreadLoading.AttemptThreadJoggingRequestReflection.Descriptor.MessageTypes[0]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public AttemptThreadJoggingRequest() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public AttemptThreadJoggingRequest(AttemptThreadJoggingRequest other) : this() {
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public AttemptThreadJoggingRequest Clone() {
+ return new AttemptThreadJoggingRequest(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override bool Equals(object other) {
+ return Equals(other as AttemptThreadJoggingRequest);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool Equals(AttemptThreadJoggingRequest 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(AttemptThreadJoggingRequest 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/ThreadLoading/AttemptThreadJoggingResponse.cs b/Software/Visual_Studio/Tango.PMR/ThreadLoading/AttemptThreadJoggingResponse.cs
new file mode 100644
index 000000000..a3c20c6ff
--- /dev/null
+++ b/Software/Visual_Studio/Tango.PMR/ThreadLoading/AttemptThreadJoggingResponse.cs
@@ -0,0 +1,132 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: AttemptThreadJoggingResponse.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.ThreadLoading {
+
+ /// <summary>Holder for reflection information generated from AttemptThreadJoggingResponse.proto</summary>
+ public static partial class AttemptThreadJoggingResponseReflection {
+
+ #region Descriptor
+ /// <summary>File descriptor for AttemptThreadJoggingResponse.proto</summary>
+ public static pbr::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbr::FileDescriptor descriptor;
+
+ static AttemptThreadJoggingResponseReflection() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "CiJBdHRlbXB0VGhyZWFkSm9nZ2luZ1Jlc3BvbnNlLnByb3RvEhdUYW5nby5Q",
+ "TVIuVGhyZWFkTG9hZGluZyIeChxBdHRlbXB0VGhyZWFkSm9nZ2luZ1Jlc3Bv",
+ "bnNlQiMKIWNvbS50d2luZS50YW5nby5wbXIudGhyZWFkbG9hZGluZ2IGcHJv",
+ "dG8z"));
+ descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
+ new pbr::FileDescriptor[] { },
+ new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
+ new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.ThreadLoading.AttemptThreadJoggingResponse), global::Tango.PMR.ThreadLoading.AttemptThreadJoggingResponse.Parser, null, null, null, null)
+ }));
+ }
+ #endregion
+
+ }
+ #region Messages
+ public sealed partial class AttemptThreadJoggingResponse : pb::IMessage<AttemptThreadJoggingResponse> {
+ private static readonly pb::MessageParser<AttemptThreadJoggingResponse> _parser = new pb::MessageParser<AttemptThreadJoggingResponse>(() => new AttemptThreadJoggingResponse());
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pb::MessageParser<AttemptThreadJoggingResponse> Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::Tango.PMR.ThreadLoading.AttemptThreadJoggingResponseReflection.Descriptor.MessageTypes[0]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public AttemptThreadJoggingResponse() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public AttemptThreadJoggingResponse(AttemptThreadJoggingResponse other) : this() {
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public AttemptThreadJoggingResponse Clone() {
+ return new AttemptThreadJoggingResponse(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override bool Equals(object other) {
+ return Equals(other as AttemptThreadJoggingResponse);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool Equals(AttemptThreadJoggingResponse 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(AttemptThreadJoggingResponse 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/Utilities/Tango.AlarmParametersGenerator/Program.cs b/Software/Visual_Studio/Utilities/Tango.AlarmParametersGenerator/Program.cs
index a18befe34..2972b4892 100644
--- a/Software/Visual_Studio/Utilities/Tango.AlarmParametersGenerator/Program.cs
+++ b/Software/Visual_Studio/Utilities/Tango.AlarmParametersGenerator/Program.cs
@@ -94,13 +94,13 @@ namespace Tango.AlarmParametersGenerator
AlarmHandlingItem alarm = new AlarmHandlingItem();
alarm.AlarmSource = item.Source.ToEnum<AlarmSourceType>();
- alarm.Frequency = item.Frequency.ToUint();
+ //alarm.Frequency = item.Frequency.ToUint();
alarm.DeviceId = item.DeviceId.ToUint();
alarm.ModuleDeviceId = item.ApplicationDeviceID.ToUint();
alarm.AlarmValue = item.Criteria.ToUint();
alarm.AlarmDirection = item.Direction.ToBoolean();
alarm.Severity = item.Severity.ToEnum<DebugLogCategory>();
- alarm.Predecessor = item.Predeccesor.ToUint();
+ //alarm.Predecessor = item.Predeccesor.ToUint();
alarm.DebounceValue = item.DebounceValue.ToUint();
alarm.EventType = (EventType)item.Code.ToUint();
alarm.IsPersistent = item.Persistent.ToBooleanYesNo();
diff --git a/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Program.cs b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Program.cs
index e5f94d95e..af1e6cfeb 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_Rev25.xlsx";
+ private static string EVENTS_FILE = "Tango alarm events handling chart_Rev27.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 7461a88a8..240ba67f5 100644
--- a/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Tango.EventsTypesGenerator.csproj
+++ b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Tango.EventsTypesGenerator.csproj
@@ -56,13 +56,10 @@
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
- <None Include="..\..\Resources\Events Revisions\Tango alarm events handling chart_Rev25.xlsx">
- <Link>Tango alarm events handling chart_Rev25.xlsx</Link>
+ <None Include="..\..\Resources\Events Revisions\Tango alarm events handling chart_Rev27.xlsx">
+ <Link>Tango alarm events handling chart_Rev27.xlsx</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
- <None Include="..\..\Resources\Events Revisions\Tango alarm events handling chart_Rev25_Persistent.xlsx">
- <Link>Tango alarm events handling chart_Rev25_Persistent.xlsx</Link>
- </None>
<None Include="App.config" />
<None Include="packages.config" />
</ItemGroup>