aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio
diff options
context:
space:
mode:
authorRoy <Roy.mail.net@gmail.com>2023-09-03 16:18:55 +0300
committerRoy <Roy.mail.net@gmail.com>2023-09-03 16:18:55 +0300
commitc66acc359b311ecc940f3c4e74bd9e21dc0bfd51 (patch)
tree8869b9d48fbad776c94df401680afc43fc350e69 /Software/Visual_Studio
parent6cdea71fa07d092139697d9c67651dade37aed96 (diff)
parentb271fe1c21172ed22a34b987a2cb9457b39ce8a3 (diff)
downloadTango-c66acc359b311ecc940f3c4e74bd9e21dc0bfd51.tar.gz
Tango-c66acc359b311ecc940f3c4e74bd9e21dc0bfd51.zip
Merged Eureka Branch !!!
Diffstat (limited to 'Software/Visual_Studio')
-rw-r--r--Software/Visual_Studio/Advanced Installer Projects/Eureka Installer.aip1131
-rw-r--r--Software/Visual_Studio/Advanced Installer Projects/FSE Installer.aip14
-rw-r--r--Software/Visual_Studio/Advanced Installer Projects/Machine Studio Installer.aip216
-rw-r--r--Software/Visual_Studio/Advanced Installer Projects/TwineRSM Installer.aip6
-rw-r--r--Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/RecommendedProcessTableInput.pb-c.c19
-rw-r--r--Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/RecommendedProcessTableInput.pb-c.h4
-rw-r--r--Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/RecommendedProcessTableInput.pb-c.c19
-rw-r--r--Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/RecommendedProcessTableInput.pb-c.h4
-rw-r--r--Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/RecommendedProcessTableInput.pb-c.c19
-rw-r--r--Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/RecommendedProcessTableInput.pb-c.h4
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/MachineView.xaml2
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/SelectionView.xaml5
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Controls/RemoteDesktopControl.xaml14
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Views/RemoteDesktopView.xaml38
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures.Documentation/Help/proc-doc.chmbin335557 -> 368011 bytes
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/StopModel.cs14
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/ViewModels/MainViewVM.cs5
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Views/MainView.xaml4
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Common/Connection/MachineConnectionTypes.cs4
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/ConnectedMachineIcon.xaml20
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineConnectionIcon.cs83
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineConnectionIcon.xaml64
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineIcon.cs54
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineIcon.xaml30
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineIconFull.cs25
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineIconFull.xaml30
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineView.xaml557
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/RunningJobRingProgress.xaml28
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/RunningJobRingProgress.xaml.cs9
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/RunningJobViewer.xaml15
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/RunningJobViewer.xaml.cs8
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Common/Converters/ProgressLengthSpoolConverter.cs61
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Common/FSESettings.cs5
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/emulator.pngbin0 -> 1131 bytes
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/eureka.pngbin0 -> 168692 bytes
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/signalr.pngbin0 -> 2739 bytes
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/tcp.pngbin0 -> 1968 bytes
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/ts1800.pngbin0 -> 43275 bytes
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/usb.pngbin0 -> 560 bytes
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/wifi.pngbin0 -> 743 bytes
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Common/Images/eureka_full.pngbin0 -> 1038958 bytes
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Common/Images/eureka_small.pngbin0 -> 33703 bytes
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Common/Images/machines.pngbin0 -> 394373 bytes
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Colors.xaml2
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Controls.xaml3
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Images.xaml3
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Styles.xaml5
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Common/Tango.FSE.Common.csproj47
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Common/Themes/Generic.xaml1
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.UI/BugReporting/DefaultBugReporter.cs1
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.UI/Connection/DefaultMachineProvider.cs6
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.UI/Converters/MidTankLevelToElementHeightConverter.cs6
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionEmulatorView.xaml3
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionLostView.xaml9
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionSignalRView.xaml3
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionUsbView.xaml3
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionUsbViewVM.cs3
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionWifiView.xaml3
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineWaitForConnectionView.xaml9
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.UI/Panes/MachineConnectionPane.xaml9
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.UI/Properties/AssemblyInfo.cs2
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/Machine/MachineTile.cs20
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/Machine/MachineTileView.xaml2
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/MidTankLevels/MidTankLevelsTile.cs2
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/MidTankLevels/MidTankLevelsTileView.xaml1
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/RemoteJob/RemoteJobProgressRingTileView.xaml2
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/RemoteJob/RemoteJobTile.cs11
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/RemoteJob/RemoteJobTileView.xaml2
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.UI/Views/LayoutView.xaml2
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.UI/Views/LoginView.xaml2
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/ViewModels/MainViewVM.cs3
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Views/MainView.xaml12
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models/MachineModel.cs3
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MachineCreationDialogVM.cs29
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs16
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineCreationDialog.xaml18
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineSettingsView.xaml2
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachinesView.xaml3
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Models/RmlModel.cs23
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/ViewModels/MainViewVM.cs65
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlView.xaml66
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlsView.xaml26
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/MachineConnectionIcon.xaml48
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/MachineConnectionIcon.xaml.cs94
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/emulator.pngbin0 -> 1131 bytes
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/eureka.pngbin0 -> 168692 bytes
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/signalr.pngbin0 -> 2739 bytes
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/tcp.pngbin0 -> 1968 bytes
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/ts1800.pngbin0 -> 43275 bytes
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/usb.pngbin0 -> 560 bytes
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/wifi.pngbin0 -> 743 bytes
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/eureka_full.pngbin0 -> 1038958 bytes
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/eureka_small.pngbin0 -> 33703 bytes
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/machines.pngbin0 -> 394373 bytes
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs3
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Resources/MaterialDesign.xaml3
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj27
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Images/external-bridge-lan.pngbin0 -> 6200 bytes
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Properties/AssemblyInfo.cs2
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs4
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/TFS/TeamFoundationServiceExtendedClient.cs5
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj1
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MachineConnectionViewVM.cs9
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs4
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ConnectedMachineView.xaml62
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MachineConnectionView.xaml21
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ReportIssueView.xaml9
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.BugReporting/TFS/TeamFoundationServicePPCClient.cs7
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobsViewVM.cs12
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Controls/JobModelSummaryViewerControl.xaml1
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Controls/JobModelSummaryViewerControl.xaml.cs11
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/FirstValueCollectionConverter.cs34
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/LengthToWeightConverter.cs35
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/LengthWithSpoolsConverter.cs37
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/ObjectsConverter.cs23
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/TimeSpanToHoursConverter.cs23
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionView.xaml108
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionViewVM.cs149
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/JobCreationView.xaml2
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/MessageDiscardAdvancedOptions.xaml35
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/MessageDiscardAdvancedOptions.xaml.cs28
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/MessageDiscardAdvancedOptionsVM.cs18
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/VectorFineTuningDialog.xaml25
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/VectorFineTuningDialogVM.cs56
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/BrushStopModel.cs56
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/FavoriteColor.cs12
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/JobModel.cs150
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/SegmentModel.cs127
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/VisualOffsetModel.cs24
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Resume/JobResumeDB.cs83
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Resume/JobResumeModel.cs21
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Tango.PPC.JobsV2.csproj24
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/JobViewVM.cs303
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/JobsViewVM.cs156
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobEurekaView.xaml1373
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobEurekaView.xaml.cs106
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobProgressView.xaml1
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobView.xaml.cs6
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobsView.xaml120
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/MainView.xaml1
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/ViewModels/MainViewVM.cs173
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Views/MainView.xaml24
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/MaitenanceModuleSettings.cs14
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Models/MidTankLevelModel.cs2
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Tango.PPC.Maintenance.csproj8
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/ViewModels/MainViewVM.cs7
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/ViewModels/MaintenanceViewVM.cs300
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Views/EurekaMaintenanceView.xaml284
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Views/EurekaMaintenanceView.xaml.cs28
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Views/MainView.xaml3
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Views/MaintenanceView.xaml2
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/Tango.PPC.Storage.csproj1
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/ViewModels/MainViewVM.cs86
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/Views/MainView.xaml7
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Technician/ViewModels/SystemViewVM.cs28
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Technician/Views/SystemView.xaml186
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Build/BuildType.cs14
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Build/IBuildProvider.cs15
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Connection/DefaultMachineProvider.cs43
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Converters/BuildTypeToVisibilityConverter.cs26
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Converters/BuildTypeToVisibilityInverseConverter.cs26
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Converters/IsEurekaToBooleanConverter.cs32
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Black.ttfbin0 -> 151396 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-BlackItalic.ttfbin0 -> 171604 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Bold.ttfbin0 -> 153944 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-BoldItalic.ttfbin0 -> 176588 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-ExtraBold.ttfbin0 -> 152764 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-ExtraBoldItalic.ttfbin0 -> 173916 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-ExtraLight.ttfbin0 -> 161456 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-ExtraLightItalic.ttfbin0 -> 186168 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Italic.ttfbin0 -> 182012 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Light.ttfbin0 -> 159892 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-LightItalic.ttfbin0 -> 184460 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Medium.ttfbin0 -> 156520 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-MediumItalic.ttfbin0 -> 180444 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Regular.ttfbin0 -> 158240 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-SemiBold.ttfbin0 -> 155232 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-SemiBoldItalic.ttfbin0 -> 178584 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Thin.ttfbin0 -> 161652 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-ThinItalic.ttfbin0 -> 187044 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/MachineSetup/MachineSetupManager.cs14
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs7
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/PPCSettings.cs40
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/PPCViewModel.cs4
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Printing/PrintingConfiguration.cs4
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Publish/PPCPublisher.cs10
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteDesktop/DefaultRemoteDesktopService.cs26
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Fonts.xaml5
-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.csproj42
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Publisher.UI/MainWindow.xaml1
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Publisher.UI/MainWindow.xaml.cs13
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Publisher.UI/MainWindowVM.cs8
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Publisher.UI/Tango.PPC.Publisher.UI.csproj9
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/App.xaml2
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/App.xaml.cs16
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Build/DefaultBuildProvider.cs34
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Controls/JobOutlineControl.cs327
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Controls/RunningJobViewerEureka.xaml101
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Controls/RunningJobViewerEureka.xaml.cs287
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/CollectionToCountConverter.cs30
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/ComapareModulNameConverter.cs44
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/DoubleWidthConverter.cs24
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/LengthToWeightConverter.cs35
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/LengthWithSpoolsConverter.cs33
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/LiquidTypeToBrushConverter.cs58
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/MidTankLevelToElementRectConverter.cs37
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/ProgressBorderWidthConverter.cs24
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/ProgressLengthSpoolConverter.cs62
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/ProgressUnitSpoolConverter.cs40
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/ProgressWeightSpoolConverter.cs67
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/StatisticTabToVisibilityConverter.cs28
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/GeneralInformationView.xaml279
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/GeneralInformationView.xaml.cs28
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/GeneralInformationViewVM.cs240
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/PowerEurekaView.xaml66
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/PowerEurekaView.xaml.cs28
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/PowerEurekaViewVM.cs85
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Graphs/GraphHelper.cs36
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Graphs/RealTimeGraph.cs159
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Graphs/RealTimeGraph.xaml106
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Helpers/DpiHelper.cs36
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Icon.icobin0 -> 141840 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/Events.pngbin0 -> 646 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/Machine outline.pngbin0 -> 3459 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/Thread.pngbin0 -> 1239 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/input.pngbin0 -> 1011 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/job_copies.pngbin0 -> 978 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/job_length.pngbin0 -> 1150 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/job_weight.pngbin0 -> 1192 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/output.pngbin0 -> 995 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/spools.pngbin0 -> 1177 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/thread_type.pngbin0 -> 1223 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/ttime_left.pngbin0 -> 906 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/JobProgressView/clock.pngbin0 -> 536 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/JobProgressView/drop.pngbin0 -> 516 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Menu/AppPower_image.pngbin0 -> 799 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Menu/Power_image.pngbin0 -> 721 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Menu/restart_t.pngbin0 -> 443 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Error.pngbin0 -> 2146 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Feeder1.pngbin0 -> 501 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Feeder2.pngbin0 -> 601 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Feeder3.pngbin0 -> 634 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Feeder4.pngbin0 -> 586 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Inks.pngbin0 -> 1165 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/JericanRemoved.pngbin0 -> 1038 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Normal.pngbin0 -> 1407 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Sensors.pngbin0 -> 1233 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/UpdateInk.pngbin0 -> 1344 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Warning.pngbin0 -> 1506 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Waste.pngbin0 -> 1124 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/motor.pngbin0 -> 1023 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/pr_data.pngbin0 -> 1054 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/pressure.pngbin0 -> 1156 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/temperature.pngbin0 -> 1065 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Images/screw.pngbin0 -> 937 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Intro.wmvbin0 -> 6369158 bytes
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/MainWindow.xaml8
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/MainWindow.xaml.cs79
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Manifests/eureka.xml76
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Manifests/eureka_debug.xml76
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Models/JerricanLevelModel.cs85
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Models/MachineOverviewErrorItem.cs26
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Models/MachineOverviewErrorStates.cs68
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Models/MachineOverviewItem.cs67
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Models/MachineOverviewModel.cs214
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Modules/DefaultPPCModuleLoader.cs6
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation/DefaultNavigationManager.cs24
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation/EurekaNavigationManager.cs606
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Notifications/DefaultNotificationProvider.cs12
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/PPCApplication/DefaultPPCApplicationManager.cs18
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Printing/DefaultPrintingManager.cs8
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Properties/AssemblyInfo.cs2
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Resources/Graphs.xaml8
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Tango.PPC.UI.csproj170
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/ThreadLoading/DefaultThreadLoadingService.cs5
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModelLocator.cs33
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/LayoutViewVM.cs82
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/LoginViewVM.cs9
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineSetupViewVM.cs16
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineStatusViewVM.cs855
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineUpdateViewVM.cs6
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MainViewVM.cs2
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LayoutEurekaView.xaml342
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LayoutEurekaView.xaml.cs58
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LayoutView.xaml.cs6
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LoadingView.xaml43
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LoadingView.xaml.cs16
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MachineStatusView.xaml1435
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MachineStatusView.xaml.cs71
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MainEurekaView.xaml51
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MainEurekaView.xaml.cs38
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MainView.xaml.cs9
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Views/PowerOffView.xaml9
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/ViewsContracts/ILayoutView.cs3
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/ViewsContracts/IMainView.cs15
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/packages.config1
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Updater/MainWindow.xaml.cs63
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Updater/Tango.PPC.Updater.csproj9
-rw-r--r--Software/Visual_Studio/SideChains/RealTimeGraphX-master/RealTimeGraphX.WPF/Themes/Generic.xaml2
-rw-r--r--Software/Visual_Studio/SideChains/RealTimeGraphX-master/RealTimeGraphX.WPF/WpfGraphAxisControl.cs14
-rw-r--r--Software/Visual_Studio/Tango.BL/Builders/JobsCollectionBuilder.cs11
-rw-r--r--Software/Visual_Studio/Tango.BL/DTO/HardwareVersionDTOBase.cs16
-rw-r--r--Software/Visual_Studio/Tango.BL/DTO/JobRunDTOBase.cs8
-rw-r--r--Software/Visual_Studio/Tango.BL/DTO/MachineDTOBase.cs8
-rw-r--r--Software/Visual_Studio/Tango.BL/DTO/MachinePrototypeDTOBase.cs8
-rw-r--r--Software/Visual_Studio/Tango.BL/DTO/ProcessParametersTableDTOBase.cs240
-rw-r--r--Software/Visual_Studio/Tango.BL/Entities/HardwareVersion.cs17
-rw-r--r--Software/Visual_Studio/Tango.BL/Entities/HardwareVersionBase.cs76
-rw-r--r--Software/Visual_Studio/Tango.BL/Entities/Job.cs127
-rw-r--r--Software/Visual_Studio/Tango.BL/Entities/JobRunBase.cs38
-rw-r--r--Software/Visual_Studio/Tango.BL/Entities/Machine.cs34
-rw-r--r--Software/Visual_Studio/Tango.BL/Entities/MachineBase.cs38
-rw-r--r--Software/Visual_Studio/Tango.BL/Entities/MachinePrototype.cs1
-rw-r--r--Software/Visual_Studio/Tango.BL/Entities/MachinePrototypeBase.cs38
-rw-r--r--Software/Visual_Studio/Tango.BL/Entities/MachineVersion.cs10
-rw-r--r--Software/Visual_Studio/Tango.BL/Entities/ProcessParametersTable.cs17
-rw-r--r--Software/Visual_Studio/Tango.BL/Entities/ProcessParametersTableBase.cs1260
-rw-r--r--Software/Visual_Studio/Tango.BL/Entities/Rml.cs50
-rw-r--r--Software/Visual_Studio/Tango.BL/Entities/Segment.cs10
-rw-r--r--Software/Visual_Studio/Tango.BL/Enumerations/EventTypeGroups.cs4
-rw-r--r--Software/Visual_Studio/Tango.BL/Enumerations/EventTypes.cs1374
-rw-r--r--Software/Visual_Studio/Tango.BL/Enumerations/HardwareMotorTypes.cs102
-rw-r--r--Software/Visual_Studio/Tango.BL/Enumerations/HardwarePidControlTypes.cs126
-rw-r--r--Software/Visual_Studio/Tango.BL/Enumerations/MachineTypes.cs17
-rw-r--r--Software/Visual_Studio/Tango.BL/Enumerations/MidTankTypes.cs6
-rw-r--r--Software/Visual_Studio/Tango.BL/Enumerations/TechHeaters.cs66
-rw-r--r--Software/Visual_Studio/Tango.BL/Enumerations/TechMonitors.cs618
-rw-r--r--Software/Visual_Studio/Tango.BL/Tango.BL.csproj1
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/HARDWARE_VERSIONS.cs2
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/JOB_RUNS.cs1
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/MACHINE.cs1
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/MACHINE_PROTOTYPES.cs1
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/PROCESS_PARAMETERS_TABLES.cs30
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx105
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram192
-rw-r--r--Software/Visual_Studio/Tango.Emulations/Emulators/MachineEmulator.cs155
-rw-r--r--Software/Visual_Studio/Tango.FileSystem/FileSystemManager.cs2
-rw-r--r--Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeScanner.cs4
-rw-r--r--Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeService.cs4
-rw-r--r--Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeTcpFirmwareClient.cs79
-rw-r--r--Software/Visual_Studio/Tango.Integration/ExternalBridge/Web/MachineInfo.cs1
-rw-r--r--Software/Visual_Studio/Tango.Integration/IntegrationSettings.cs12
-rw-r--r--Software/Visual_Studio/Tango.Integration/JobRuns/BasicJobRunsLogger.cs15
-rw-r--r--Software/Visual_Studio/Tango.Integration/Operation/AdditionalJobConfiguration.cs8
-rw-r--r--Software/Visual_Studio/Tango.Integration/Operation/IMachineOperator.cs19
-rw-r--r--Software/Visual_Studio/Tango.Integration/Operation/JobHandler.cs48
-rw-r--r--Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs187
-rw-r--r--Software/Visual_Studio/Tango.Integration/Tango.Integration.csproj1
-rw-r--r--Software/Visual_Studio/Tango.PMR/Common/MachineType.cs45
-rw-r--r--Software/Visual_Studio/Tango.PMR/Common/MessageType.cs150
-rw-r--r--Software/Visual_Studio/Tango.PMR/Connection/ConnectRequest.cs42
-rw-r--r--Software/Visual_Studio/Tango.PMR/Diagnostics/DiagnosticsMonitors.cs2542
-rw-r--r--Software/Visual_Studio/Tango.PMR/Diagnostics/EventType.cs1733
-rw-r--r--Software/Visual_Studio/Tango.PMR/Diagnostics/HeaterType.cs22
-rw-r--r--Software/Visual_Studio/Tango.PMR/Diagnostics/ResetCardRequest.cs159
-rw-r--r--Software/Visual_Studio/Tango.PMR/Diagnostics/ResetCardResponse.cs131
-rw-r--r--Software/Visual_Studio/Tango.PMR/FirmwareUpgrade/GetVersionDescriptorsRequest.cs132
-rw-r--r--Software/Visual_Studio/Tango.PMR/FirmwareUpgrade/GetVersionDescriptorsResponse.cs154
-rw-r--r--Software/Visual_Studio/Tango.PMR/FirmwareUpgrade/VersionFileDestination.cs20
-rw-r--r--Software/Visual_Studio/Tango.PMR/Hardware/HardwareMotorType.cs83
-rw-r--r--Software/Visual_Studio/Tango.PMR/Hardware/HardwarePidControlType.cs99
-rw-r--r--Software/Visual_Studio/Tango.PMR/Insights/InsightsMonitors.cs3234
-rw-r--r--Software/Visual_Studio/Tango.PMR/Integration/ExternalBridgeUdpDiscoveryPacket.cs41
-rw-r--r--Software/Visual_Studio/Tango.PMR/MachineStatus/IDSPackLevel.cs151
-rw-r--r--Software/Visual_Studio/Tango.PMR/MachineStatus/MachineStatus.cs73
-rw-r--r--Software/Visual_Studio/Tango.PMR/Printing/JobRequest.cs37
-rw-r--r--Software/Visual_Studio/Tango.PMR/Printing/ProcessParameters.cs865
-rw-r--r--Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj5
-rw-r--r--Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/OverrideData.xmlbin94118 -> 97108 bytes
-rw-r--r--Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/ProvisionMachine.xmlbin82334 -> 82642 bytes
-rw-r--r--Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/UpdateMachine.xmlbin84274 -> 84582 bytes
-rw-r--r--Software/Visual_Studio/Tango.SharedUI/Converters/IsNullToVisibilityInverseConverter.cs24
-rw-r--r--Software/Visual_Studio/Tango.SharedUI/Converters/NullObjectToBooleanInverseConverter.cs45
-rw-r--r--Software/Visual_Studio/Tango.SharedUI/Converters/WidthHeightToRectConverter.cs13
-rw-r--r--Software/Visual_Studio/Tango.SharedUI/Tango.SharedUI.csproj4
-rw-r--r--Software/Visual_Studio/Tango.TFS/MachineType.cs17
-rw-r--r--Software/Visual_Studio/Tango.TFS/Tango.TFS.csproj3
-rw-r--r--Software/Visual_Studio/Tango.TFS/TeamFoundationServiceClient.cs13
-rw-r--r--Software/Visual_Studio/Tango.TFS/WorkItem.cs7
-rw-r--r--Software/Visual_Studio/Tango.Touch/Controls/LightTouchScrollViewer.cs5
-rw-r--r--Software/Visual_Studio/Tango.Touch/Controls/SliderContentControl.cs122
-rw-r--r--Software/Visual_Studio/Tango.Touch/Controls/SliderContentControl.xaml92
-rw-r--r--Software/Visual_Studio/Tango.Touch/Controls/TouchArcProgress.cs102
-rw-r--r--Software/Visual_Studio/Tango.Touch/Controls/TouchArcProgress.xaml24
-rw-r--r--Software/Visual_Studio/Tango.Touch/Controls/TouchExpander.cs7
-rw-r--r--Software/Visual_Studio/Tango.Touch/Controls/TouchNavigationLinks.cs22
-rw-r--r--Software/Visual_Studio/Tango.Touch/Controls/TouchNavigationLinks.xaml5
-rw-r--r--Software/Visual_Studio/Tango.Touch/Controls/TouchNotificationBar.cs1
-rw-r--r--Software/Visual_Studio/Tango.Touch/Controls/TouchNumericTextBox.cs21
-rw-r--r--Software/Visual_Studio/Tango.Touch/Controls/TouchPanel.cs8
-rw-r--r--Software/Visual_Studio/Tango.Touch/Controls/TouchPanel.xaml2
-rw-r--r--Software/Visual_Studio/Tango.Touch/Controls/TouchPanelEureka.cs87
-rw-r--r--Software/Visual_Studio/Tango.Touch/Controls/TouchPanelEureka.xaml330
-rw-r--r--Software/Visual_Studio/Tango.Touch/Controls/TouchPanelEurekaNoKeyboard.cs25
-rw-r--r--Software/Visual_Studio/Tango.Touch/Controls/TouchPanelEurekaNoKeyboard.xaml330
-rw-r--r--Software/Visual_Studio/Tango.Touch/Controls/TouchToggleSlider.cs53
-rw-r--r--Software/Visual_Studio/Tango.Touch/Controls/TouchToggleSlider.xaml125
-rw-r--r--Software/Visual_Studio/Tango.Touch/Helpers/TouchHelper.cs8
-rw-r--r--Software/Visual_Studio/Tango.Touch/Resources/Colors.xaml36
-rw-r--r--Software/Visual_Studio/Tango.Touch/Resources/Fonts.xaml2
-rw-r--r--Software/Visual_Studio/Tango.Touch/Styles/TouchScrollViewer.xaml43
-rw-r--r--Software/Visual_Studio/Tango.Touch/Tango.Touch.csproj22
-rw-r--r--Software/Visual_Studio/Tango.Touch/Themes/Generic.xaml6
-rw-r--r--Software/Visual_Studio/Tango.Touch/TouchColorPickerControls/MultiRangeSlider.cs2
-rw-r--r--Software/Visual_Studio/Tango.Transport/Adapters/UsbSerialBaudRates.cs14
-rw-r--r--Software/Visual_Studio/Tango.Transport/Discovery/TcpValidationInfo.cs1
-rw-r--r--Software/Visual_Studio/Tango.Transport/Discovery/UdpDiscoveryService.cs3
-rw-r--r--Software/Visual_Studio/Tango.Transport/Tango.Transport.csproj2
-rw-r--r--Software/Visual_Studio/Tango.Web/DeploymentSlot.cs5
-rw-r--r--Software/Visual_Studio/Tango.sln4141
-rw-r--r--Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev4.xlsxbin0 -> 88783 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev4_groups.xlsxbin0 -> 88978 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev5.xlsxbin0 -> 88978 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev7.xlsxbin0 -> 89397 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev8.xlsxbin0 -> 89397 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Program.cs2
-rw-r--r--Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Tango.EventsTypesGenerator.csproj15
-rw-r--r--Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/JobHandler2.cs2
-rw-r--r--Software/Visual_Studio/Utilities/Tango.MachineEM.UI/MainWindow.xaml2
-rw-r--r--Software/Visual_Studio/Utilities/Tango.MachineEM.UI/ViewModels/MainViewVM.cs15
-rw-r--r--Software/Visual_Studio/Utilities/Tango.MachineEM.UI/Views/MainView.xaml2
-rw-r--r--Software/Visual_Studio/Web/Tango.MachineService/Controllers/DownloadsController.cs16
-rw-r--r--Software/Visual_Studio/Web/Tango.MachineService/Controllers/PPCController.cs2
-rw-r--r--Software/Visual_Studio/Web/Tango.MachineService/Images/eureka.pngbin0 -> 142092 bytes
-rw-r--r--Software/Visual_Studio/Web/Tango.MachineService/Models/DownloadModel.cs1
-rw-r--r--Software/Visual_Studio/Web/Tango.MachineService/Properties/AssemblyInfo.cs2
-rw-r--r--Software/Visual_Studio/Web/Tango.MachineService/Properties/PublishProfiles/Beta.pubxml16
-rw-r--r--Software/Visual_Studio/Web/Tango.MachineService/Properties/PublishProfiles/Staging.pubxml44
-rw-r--r--Software/Visual_Studio/Web/Tango.MachineService/Tango.MachineService.csproj2
-rw-r--r--Software/Visual_Studio/Web/Tango.MachineService/Views/Downloads/Index.cshtml6
431 files changed, 34305 insertions, 1451 deletions
diff --git a/Software/Visual_Studio/Advanced Installer Projects/Eureka Installer.aip b/Software/Visual_Studio/Advanced Installer Projects/Eureka Installer.aip
new file mode 100644
index 000000000..a0ee3bf70
--- /dev/null
+++ b/Software/Visual_Studio/Advanced Installer Projects/Eureka Installer.aip
@@ -0,0 +1,1131 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<DOCUMENT Type="Advanced Installer" CreateVersion="16.2" version="16.2" Modules="professional" RootPath="." Language="en" Id="{063B15FD-D9F7-4763-BDD8-90A08BF65800}">
+ <COMPONENT cid="caphyon.advinst.msicomp.ProjectOptionsComponent">
+ <ROW Name="HiddenItems" Value="AppXProductDetailsComponent;AppXDependenciesComponent;AppXAppDetailsComponent;AppXVisualAssetsComponent;AppXCapabilitiesComponent;AppXAppDeclarationsComponent;AppXUriRulesComponent;MsiJavaComponent;MsiDriverPackagesComponent;UserAccountsComponent;ScheduledTasksComponent;SqlConnectionComponent;AutorunComponent;FirewallExceptionComponent;GameUxComponent;MsiDirectEditorComponent;SharePointSlnComponent;SilverlightSlnComponent;MultipleInstancesComponent;SccmComponent;ActSyncAppComponent;FixupComponent"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.MsiPropsComponent">
+ <ROW Property="AI_BITMAP_DISPLAY_MODE" Value="0"/>
+ <ROW Property="AI_FINDEXE_TITLE" Value="Select the installation package for [|ProductName]" ValueLocId="AI.Property.FindExeTitle"/>
+ <ROW Property="AI_PREDEF_LCONDS_PROPS" Value="AI_DETECTED_INTERNET_CONNECTION"/>
+ <ROW Property="AI_RUN_AS_ADMIN" Value="0"/>
+ <ROW Property="ALLUSERS" Value="1"/>
+ <ROW Property="ARPCOMMENTS" Value="This installer database contains the logic and data required to install [|ProductName]." ValueLocId="*"/>
+ <ROW Property="ARPNOREPAIR" MultiBuildValue="DefaultBuild:1"/>
+ <ROW Property="ARPPRODUCTICON" Value="Tango.PPC.UI.exe" Type="8"/>
+ <ROW Property="CTRLS" Value="2"/>
+ <ROW Property="ExtractFilesFirst" Value="1"/>
+ <ROW Property="Manufacturer" Value="Twine Solutions LTD"/>
+ <ROW Property="ProductCode" Value="1033:{9F0F61B8-72B3-4439-A090-6CF84FF9C642} " Type="16"/>
+ <ROW Property="ProductLanguage" Value="1033"/>
+ <ROW Property="ProductName" Value="Twine X4"/>
+ <ROW Property="ProductVersion" Value="2.0.13.0" Type="32" TargetFile="Tango.PPC.UI.exe"/>
+ <ROW Property="SecureCustomProperties" Value="OLDPRODUCTS;AI_NEWERPRODUCTFOUND;AI_SETUPEXEPATH;SETUPEXEDIR"/>
+ <ROW Property="UpgradeCode" Value="{4D8FDA03-F63E-4002-9A96-4BDE65B04355}"/>
+ <ROW Property="WindowsType9X" MultiBuildValue="DefaultBuild:Windows 9x/ME" ValueLocId="-"/>
+ <ROW Property="WindowsType9XDisplay" MultiBuildValue="DefaultBuild:Windows 9x/ME" ValueLocId="-"/>
+ <ROW Property="WindowsTypeNT40" MultiBuildValue="DefaultBuild:Windows NT 4.0" ValueLocId="-"/>
+ <ROW Property="WindowsTypeNT40Display" MultiBuildValue="DefaultBuild:Windows NT 4.0" ValueLocId="-"/>
+ <ROW Property="WindowsTypeNT50" MultiBuildValue="DefaultBuild:Windows 2000" ValueLocId="-"/>
+ <ROW Property="WindowsTypeNT50Display" MultiBuildValue="DefaultBuild:Windows 2000" ValueLocId="-"/>
+ <ROW Property="WindowsTypeNT5X" MultiBuildValue="DefaultBuild:Windows XP/2003 RTM, Windows XP/2003 SP1, Windows XP SP2 x86" ValueLocId="-"/>
+ <ROW Property="WindowsTypeNT5XDisplay" MultiBuildValue="DefaultBuild:Windows XP/2003 RTM, Windows XP/2003 SP1, Windows XP SP2 x86" ValueLocId="-"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.MsiDirsComponent">
+ <ROW Directory="APPDIR" Directory_Parent="TARGETDIR" DefaultDir="APPDIR:." IsPseudoRoot="1"/>
+ <ROW Directory="Configurations_Dir" Directory_Parent="SQLExaminer_Dir" DefaultDir="CONFIG~1|Configurations"/>
+ <ROW Directory="DesktopFolder" Directory_Parent="TARGETDIR" DefaultDir="DESKTO~1|DesktopFolder" IsPseudoRoot="1"/>
+ <ROW Directory="Packages_Dir" Directory_Parent="APPDIR" DefaultDir="Packages"/>
+ <ROW Directory="SHORTCUTDIR" Directory_Parent="TARGETDIR" DefaultDir="SHORTC~1|SHORTCUTDIR" IsPseudoRoot="1"/>
+ <ROW Directory="SQLExaminer_Dir" Directory_Parent="APPDIR" DefaultDir="SQLEXA~1|SQLExaminer"/>
+ <ROW Directory="TARGETDIR" DefaultDir="SourceDir"/>
+ <ROW Directory="win7x64_Dir" Directory_Parent="APPDIR" DefaultDir="win7-x64"/>
+ <ROW Directory="win7x86_Dir" Directory_Parent="APPDIR" DefaultDir="win7-x86"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.MsiCompsComponent">
+ <ROW Component="AI_ExePath" ComponentId="{0EE00C00-4148-477E-891A-4759FC9DF13B}" Directory_="APPDIR" Attributes="4" KeyPath="AI_ExePath"/>
+ <ROW Component="APPDIR" ComponentId="{A5F469AF-2587-435E-AE20-479C6D654E91}" Directory_="APPDIR" Attributes="0"/>
+ <ROW Component="ColorMine.dll" ComponentId="{9B139184-3E64-4BB9-955B-58583A266459}" Directory_="APPDIR" Attributes="0" KeyPath="ColorMine.dll"/>
+ <ROW Component="CommandLine.dll" ComponentId="{B36C45CA-B159-4968-A2D5-0BBA85EDBB64}" Directory_="APPDIR" Attributes="0" KeyPath="CommandLine.dll"/>
+ <ROW Component="ControlzEx.dll" ComponentId="{531AF187-B39C-48E6-9136-6238854A1C75}" Directory_="APPDIR" Attributes="0" KeyPath="ControlzEx.dll"/>
+ <ROW Component="DirectShowLib2005.dll" ComponentId="{15923B8D-71FF-46B0-B1E0-2753A5765F7E}" Directory_="APPDIR" Attributes="0" KeyPath="DirectShowLib2005.dll"/>
+ <ROW Component="DocumentFormat.OpenXml.dll" ComponentId="{4EB39E8C-3B91-49E5-AA7A-281583E66544}" Directory_="APPDIR" Attributes="0" KeyPath="DocumentFormat.OpenXml.dll"/>
+ <ROW Component="EFCache.dll" ComponentId="{3BFE31B3-158C-47AA-80A9-9FE8E6EB67F5}" Directory_="APPDIR" Attributes="0" KeyPath="EFCache.dll"/>
+ <ROW Component="EVRPresenter32.dll" ComponentId="{DC63912F-BBFC-432B-862E-622B00F54C32}" Directory_="APPDIR" Attributes="0" KeyPath="EVRPresenter32.dll"/>
+ <ROW Component="EVRPresenter64.dll" ComponentId="{4171532E-2880-4310-AF72-67D4F28BF5FB}" Directory_="APPDIR" Attributes="256" KeyPath="EVRPresenter64.dll"/>
+ <ROW Component="EntityFramework.SqlServer.dll" ComponentId="{728B6CE9-DD44-42CA-8884-95BD5A3466AA}" Directory_="APPDIR" Attributes="0" KeyPath="EntityFramework.SqlServer.dll"/>
+ <ROW Component="EntityFramework.dll" ComponentId="{67C07F0F-D157-4DA1-B657-991509D43F57}" Directory_="APPDIR" Attributes="0" KeyPath="EntityFramework.dll"/>
+ <ROW Component="FluentFTP.dll" ComponentId="{C3DD16E3-01F3-4EA6-8BAE-C76FE5BEB694}" Directory_="APPDIR" Attributes="0" KeyPath="FluentFTP.dll"/>
+ <ROW Component="FontAwesome.WPF.dll" ComponentId="{DD74F47C-D1FA-42A6-A3CF-715E58B66310}" Directory_="APPDIR" Attributes="0" KeyPath="FontAwesome.WPF.dll"/>
+ <ROW Component="GetVersionTag.bat" ComponentId="{E2BA3D62-2C11-409E-8679-8284CDEB99A9}" Directory_="APPDIR" Attributes="0" KeyPath="GetVersionTag.bat" Type="0"/>
+ <ROW Component="Google.Protobuf.dll" ComponentId="{43B7CE55-F225-4BD1-97E4-850FD5C984AF}" Directory_="APPDIR" Attributes="0" KeyPath="Google.Protobuf.dll"/>
+ <ROW Component="HiraokaHyperTools.PdfSharp.Xps.dll" ComponentId="{9DECD027-E42B-406A-9E63-814E1C379A6B}" Directory_="APPDIR" Attributes="0" KeyPath="HiraokaHyperTools.PdfSharp.Xps.dll"/>
+ <ROW Component="HiraokaHyperTools.PdfSharpWPF.dll" ComponentId="{2557B339-79A2-48A7-9E6C-636EF55C295F}" Directory_="APPDIR" Attributes="0" KeyPath="HiraokaHyperTools.PdfSharpWPF.dll"/>
+ <ROW Component="Hyak.Common.dll" ComponentId="{F48428A8-0279-429A-B60A-DF76A70E47E8}" Directory_="APPDIR" Attributes="0" KeyPath="Hyak.Common.dll"/>
+ <ROW Component="Interop.MSDASC.dll" ComponentId="{F02E80A8-BDDA-4435-9089-6BC46F362BC5}" Directory_="SQLExaminer_Dir" Attributes="0" KeyPath="Interop.MSDASC.dll"/>
+ <ROW Component="Ionic.Zip.dll" ComponentId="{5EA483CE-3D94-4644-8945-A64E3895B695}" Directory_="APPDIR" Attributes="0" KeyPath="Ionic.Zip.dll"/>
+ <ROW Component="JWT.dll" ComponentId="{CBA6AA40-B344-44C8-B54C-94B57A26DF9F}" Directory_="APPDIR" Attributes="0" KeyPath="JWT.dll"/>
+ <ROW Component="LibGit2Sharp.dll" ComponentId="{3BBC9D3F-BBCC-4EBE-96FC-CA219B8538E6}" Directory_="APPDIR" Attributes="0" KeyPath="LibGit2Sharp.dll"/>
+ <ROW Component="License.lic" ComponentId="{2BB84404-F410-4628-B161-77CD604DABC5}" Directory_="SQLExaminer_Dir" Attributes="0" KeyPath="License.lic" Type="0"/>
+ <ROW Component="LiteDB.dll" ComponentId="{19DC3560-1C92-492E-BD9B-DC36E71185B2}" Directory_="APPDIR" Attributes="0" KeyPath="LiteDB.dll"/>
+ <ROW Component="Microsoft.AspNet.SignalR.Client.dll" ComponentId="{8359389B-8413-48E3-9361-27D8DB9744EB}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.AspNet.SignalR.Client.dll"/>
+ <ROW Component="Microsoft.Azure.ActiveDirectory.GraphClient.dll" ComponentId="{3925347D-F3C9-4305-B16A-0ED7EC469370}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.Azure.ActiveDirectory.GraphClient.dll"/>
+ <ROW Component="Microsoft.Azure.Common.NetFramework.dll" ComponentId="{1A6C9C10-4CBB-4035-BECD-57E7DCA5D682}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.Azure.Common.NetFramework.dll"/>
+ <ROW Component="Microsoft.Azure.Common.dll" ComponentId="{9C75A42B-E2D9-42AC-8E0D-9DD77F7909F5}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.Azure.Common.dll"/>
+ <ROW Component="Microsoft.Azure.ResourceManager.dll" ComponentId="{6F437382-182A-4715-AAB3-2FB0862F73C2}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.Azure.ResourceManager.dll"/>
+ <ROW Component="Microsoft.Data.Edm.dll" ComponentId="{B99E42BE-BF1B-4ABF-AE7E-6BBE29B9A120}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.Data.Edm.dll"/>
+ <ROW Component="Microsoft.Data.OData.dll" ComponentId="{6A9CCDC9-9F38-48A3-931B-A0FD4FC04142}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.Data.OData.dll"/>
+ <ROW Component="Microsoft.Data.Services.Client.dll" ComponentId="{C7C4F083-FDF1-45A7-8787-58F0788A3467}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.Data.Services.Client.dll"/>
+ <ROW Component="Microsoft.IdentityModel.Clients.ActiveDirectory.dll" ComponentId="{33A72E59-DC78-457D-AD80-7BE99191B663}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.IdentityModel.Clients.ActiveDirectory.dll"/>
+ <ROW Component="Microsoft.ServiceBus.dll" ComponentId="{C08F188F-0E73-4FEB-9B56-849D9604E6F4}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.ServiceBus.dll"/>
+ <ROW Component="Microsoft.SqlServer.AzureStorageEnum.dll" ComponentId="{F3633EB3-CB5B-407D-8501-CDDFEAB5AC6F}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.SqlServer.AzureStorageEnum.dll"/>
+ <ROW Component="Microsoft.SqlServer.ConnectionInfo.dll" ComponentId="{380CCB99-BE98-425C-A111-9BDF520EB71C}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.SqlServer.ConnectionInfo.dll"/>
+ <ROW Component="Microsoft.SqlServer.Diagnostics.STrace.dll" ComponentId="{76B98EF0-711F-4BF4-B463-837C27237626}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.SqlServer.Diagnostics.STrace.dll"/>
+ <ROW Component="Microsoft.SqlServer.Dmf.Common.dll" ComponentId="{4EEF836D-0983-4FC1-8A80-2E6741CE5D99}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.SqlServer.Dmf.Common.dll"/>
+ <ROW Component="Microsoft.SqlServer.Management.Sdk.Sfc.dll" ComponentId="{A02BA871-E627-4639-95CE-676F7B627F19}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.SqlServer.Management.Sdk.Sfc.dll"/>
+ <ROW Component="Microsoft.SqlServer.ServiceBrokerEnum.dll" ComponentId="{8A789C43-2F56-4493-A514-AC51D17D69FA}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.SqlServer.ServiceBrokerEnum.dll"/>
+ <ROW Component="Microsoft.SqlServer.Smo.dll" ComponentId="{DC57E02A-BAC2-48A2-88C5-29A1F6285135}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.SqlServer.Smo.dll"/>
+ <ROW Component="Microsoft.SqlServer.SqlClrProvider.dll" ComponentId="{02030230-D354-4428-A191-0562169376E0}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.SqlServer.SqlClrProvider.dll"/>
+ <ROW Component="Microsoft.SqlServer.SqlEnum.dll" ComponentId="{C0E7CCEE-126D-4D23-8BEA-46DFB7C5E5DC}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.SqlServer.SqlEnum.dll"/>
+ <ROW Component="Microsoft.TeamFoundation.Client.dll" ComponentId="{5C41618C-8B34-4EA9-8AAF-EA13F8E314D7}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.Client.dll"/>
+ <ROW Component="Microsoft.TeamFoundation.Common.dll" ComponentId="{9D6AEB90-A2F2-4C2B-BE82-62A002DE4009}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.Common.dll"/>
+ <ROW Component="Microsoft.TeamFoundation.Core.WebApi.dll" ComponentId="{0F01E78E-01C2-40B3-BB4A-DF2BDE4923B1}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.Core.WebApi.dll"/>
+ <ROW Component="Microsoft.TeamFoundation.Diff.dll" ComponentId="{8F975948-A4D3-4B6A-A350-F7F4B8D3FF03}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.Diff.dll"/>
+ <ROW Component="Microsoft.TeamFoundation.Work.WebApi.dll" ComponentId="{56BF6DDA-F1F7-4E38-B538-9788F4F5FC92}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.Work.WebApi.dll"/>
+ <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader.dll" ComponentId="{3EC89528-5C01-4534-983A-A4AFB3FEABD2}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader.dll"/>
+ <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.dll" ComponentId="{4460D385-70BF-4223-9C53-54A3550A4B8E}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.dll"/>
+ <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.dll" ComponentId="{06609E49-5BE7-43F6-932D-B8EE3A96EBC9}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.dll"/>
+ <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Common.dll" ComponentId="{1659A14D-ABCE-424E-8E34-41B488501FD1}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Common.dll"/>
+ <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Proxy.dll" ComponentId="{1E90E451-1392-4E87-9A45-EC788C860335}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Proxy.dll"/>
+ <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.WebApi.dll" ComponentId="{B9225D16-72E8-40A3-84D4-B7896C1ECDA7}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.WebApi.dll"/>
+ <ROW Component="Microsoft.VisualStudio.Services.Client.Interactive.dll" ComponentId="{78AC1534-08FE-4C93-BB6C-B33A5AE63E97}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Client.Interactive.dll"/>
+ <ROW Component="Microsoft.VisualStudio.Services.Common.dll" ComponentId="{7AF525A9-3D5A-4600-A4F7-6F407820F23B}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Common.dll"/>
+ <ROW Component="Microsoft.VisualStudio.Services.WebApi.dll" ComponentId="{7B099B1C-1379-4CBC-8761-AA946595700A}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.WebApi.dll"/>
+ <ROW Component="Microsoft.WITDataStore32.dll" ComponentId="{EE603CD8-1E82-4758-80AA-E4802A2D06F6}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.WITDataStore32.dll"/>
+ <ROW Component="Microsoft.Win32.Primitives.dll" ComponentId="{A361A734-5D52-4BBA-9D96-F64FC8BCD4F8}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.Win32.Primitives.dll"/>
+ <ROW Component="Microsoft.WindowsAPICodePack.Shell.dll" ComponentId="{4B7A01A1-19A8-425B-AEEC-FBE59915FAB8}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.WindowsAPICodePack.Shell.dll"/>
+ <ROW Component="Microsoft.WindowsAPICodePack.dll" ComponentId="{D685DB51-A99E-4520-AFF6-E254CE3BA4A4}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.WindowsAPICodePack.dll"/>
+ <ROW Component="Microsoft.WindowsAzure.Storage.dll" ComponentId="{2CEEB2CF-6686-4B69-AFCF-A0C909D80B38}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.WindowsAzure.Storage.dll"/>
+ <ROW Component="Newtonsoft.Json.dll" ComponentId="{8AE7E6F8-3BC1-4251-B5A1-C40251299D64}" Directory_="APPDIR" Attributes="0" KeyPath="Newtonsoft.Json.dll"/>
+ <ROW Component="OverrideData.xml" ComponentId="{91EE7227-E457-4018-99A9-0E5B3CEB1A9B}" Directory_="Configurations_Dir" Attributes="0" KeyPath="OverrideData.xml" Type="0"/>
+ <ROW Component="Packages" ComponentId="{629384BE-9E66-44DD-91D4-465581612ECA}" Directory_="Packages_Dir" Attributes="0"/>
+ <ROW Component="ProductInformation" ComponentId="{40D8A01C-085B-4573-A849-57B2179D84F5}" Directory_="APPDIR" Attributes="4" KeyPath="Version"/>
+ <ROW Component="Quamotion.TurboJpegWrapper.dll" ComponentId="{466D5D51-5EAA-4D17-8DE3-1A4B686DBA15}" Directory_="APPDIR" Attributes="0" KeyPath="Quamotion.TurboJpegWrapper.dll"/>
+ <ROW Component="RazorEngine.dll" ComponentId="{E57A4ECC-7D13-41F6-B1AC-CE58163CB860}" Directory_="APPDIR" Attributes="0" KeyPath="RazorEngine.dll"/>
+ <ROW Component="RealTimeGraphX.WPF.dll" ComponentId="{BD65D4FC-0030-480F-AD34-DA4463E0AED1}" Directory_="APPDIR" Attributes="0" KeyPath="RealTimeGraphX.WPF.dll"/>
+ <ROW Component="RealTimeGraphX.dll" ComponentId="{04A06730-8231-49D1-B1B8-ACDCD61F0DDF}" Directory_="APPDIR" Attributes="0" KeyPath="RealTimeGraphX.dll"/>
+ <ROW Component="SA.Binary.dll" ComponentId="{80FA77FB-9D9B-4B98-AA26-4B9CBD0E2BAF}" Directory_="SQLExaminer_Dir" Attributes="0" KeyPath="SA.Binary.dll"/>
+ <ROW Component="SA.CodeView.dll" ComponentId="{D8469E76-F243-44D2-9852-2F574149506D}" Directory_="SQLExaminer_Dir" Attributes="0" KeyPath="SA.CodeView.dll"/>
+ <ROW Component="SA.CommonTypes.dll" ComponentId="{F282F23C-78DF-4F53-8230-C256EBB13689}" Directory_="SQLExaminer_Dir" Attributes="0" KeyPath="SA.CommonTypes.dll"/>
+ <ROW Component="SA.CommonUI.dll" ComponentId="{107AEBD2-B785-49D1-99DA-75F773C1559C}" Directory_="SQLExaminer_Dir" Attributes="0" KeyPath="SA.CommonUI.dll"/>
+ <ROW Component="SA.SCBaseProvider.dll" ComponentId="{87B2A016-59A7-42E7-9948-00F0F43027B0}" Directory_="SQLExaminer_Dir" Attributes="0" KeyPath="SA.SCBaseProvider.dll"/>
+ <ROW Component="SA.SQLDataExaminer.Engine.dll" ComponentId="{56173595-3727-44B6-8B71-C41DB73BAAF5}" Directory_="SQLExaminer_Dir" Attributes="0" KeyPath="SA.SQLDataExaminer.Engine.dll"/>
+ <ROW Component="SA.SQLExaminer.Engine.dll" ComponentId="{6503E0B9-CD87-431E-B1BE-ABF91751894F}" Directory_="SQLExaminer_Dir" Attributes="0" KeyPath="SA.SQLExaminer.Engine.dll"/>
+ <ROW Component="SA.Utils.ErrorReporter.dll" ComponentId="{B5A0BB96-D4E1-4B2B-B4B0-ACE7800C27E2}" Directory_="SQLExaminer_Dir" Attributes="0" KeyPath="SA.Utils.ErrorReporter.dll"/>
+ <ROW Component="SHORTCUTDIR" ComponentId="{E06BEFF4-7657-4641-A3DC-56277AC8566D}" Directory_="SHORTCUTDIR" Attributes="0"/>
+ <ROW Component="SQLDECmd.exe" ComponentId="{193275C4-245E-4D62-BC5F-31E5DF3092CC}" Directory_="SQLExaminer_Dir" Attributes="0" KeyPath="SQLDECmd.exe"/>
+ <ROW Component="SQLECmd.exe" ComponentId="{9894A14D-DFBE-4B71-93E7-A5ED0FE515AE}" Directory_="SQLExaminer_Dir" Attributes="0" KeyPath="SQLECmd.exe"/>
+ <ROW Component="SharpDX.DXGI.dll" ComponentId="{6EB41928-897B-4B43-BF61-5A020A7E93E6}" Directory_="APPDIR" Attributes="0" KeyPath="SharpDX.DXGI.dll"/>
+ <ROW Component="SharpDX.Direct3D11.dll" ComponentId="{3F722702-CC64-497F-9EC2-B9931F1658C3}" Directory_="APPDIR" Attributes="0" KeyPath="SharpDX.Direct3D11.dll"/>
+ <ROW Component="SharpDX.Mathematics.dll" ComponentId="{CF277791-8421-451B-B4BF-34AA5B5541F1}" Directory_="APPDIR" Attributes="0" KeyPath="SharpDX.Mathematics.dll"/>
+ <ROW Component="SharpDX.dll" ComponentId="{DB04B87D-65D8-4646-AD5F-0F2B8B29DA93}" Directory_="APPDIR" Attributes="0" KeyPath="SharpDX.dll"/>
+ <ROW Component="SimpleValidator.dll" ComponentId="{8105A679-43DE-451F-A21E-E7BF67AFB608}" Directory_="APPDIR" Attributes="0" KeyPath="SimpleValidator.dll"/>
+ <ROW Component="System.AppContext.dll" ComponentId="{A67AD5C7-3A82-4729-A923-7BB6547F28AE}" Directory_="APPDIR" Attributes="0" KeyPath="System.AppContext.dll"/>
+ <ROW Component="System.Collections.Concurrent.dll" ComponentId="{CC6AC3EB-9C3D-4205-B3DD-F6947E049279}" Directory_="APPDIR" Attributes="0" KeyPath="System.Collections.Concurrent.dll"/>
+ <ROW Component="System.Collections.NonGeneric.dll" ComponentId="{FE472305-462B-47F5-8351-7DD1ED9A6CF9}" Directory_="APPDIR" Attributes="0" KeyPath="System.Collections.NonGeneric.dll"/>
+ <ROW Component="System.Collections.Specialized.dll" ComponentId="{87B55B16-5AB8-4533-9887-B3191D415CB6}" Directory_="APPDIR" Attributes="0" KeyPath="System.Collections.Specialized.dll"/>
+ <ROW Component="System.Collections.dll" ComponentId="{4808331A-8932-408B-867F-C5381CD79F55}" Directory_="APPDIR" Attributes="0" KeyPath="System.Collections.dll"/>
+ <ROW Component="System.ComponentModel.EventBasedAsync.dll" ComponentId="{A50C66A4-EEC7-493D-8979-2329237F0DC9}" Directory_="APPDIR" Attributes="0" KeyPath="System.ComponentModel.EventBasedAsync.dll"/>
+ <ROW Component="System.ComponentModel.Primitives.dll" ComponentId="{7912244B-3BF1-4738-85EB-F56B15CD30BC}" Directory_="APPDIR" Attributes="0" KeyPath="System.ComponentModel.Primitives.dll"/>
+ <ROW Component="System.ComponentModel.TypeConverter.dll" ComponentId="{A8DE45F4-32E0-4CD5-98DC-44F03B161921}" Directory_="APPDIR" Attributes="0" KeyPath="System.ComponentModel.TypeConverter.dll"/>
+ <ROW Component="System.ComponentModel.dll" ComponentId="{E68706EF-B964-49D8-B5FA-EB8177E4CADE}" Directory_="APPDIR" Attributes="0" KeyPath="System.ComponentModel.dll"/>
+ <ROW Component="System.Console.dll" ComponentId="{48707FC1-E092-4A5A-AA97-EE1B2B445C87}" Directory_="APPDIR" Attributes="0" KeyPath="System.Console.dll"/>
+ <ROW Component="System.Data.Common.dll" ComponentId="{D00D1950-3A35-43BE-9AFF-3816D1149742}" Directory_="APPDIR" Attributes="0" KeyPath="System.Data.Common.dll"/>
+ <ROW Component="System.Data.SQLite.EF6.dll" ComponentId="{0DFB0FC1-0100-419F-B556-188FEE5F1DF3}" Directory_="APPDIR" Attributes="0" KeyPath="System.Data.SQLite.EF6.dll"/>
+ <ROW Component="System.Data.SQLite.Linq.dll" ComponentId="{2F09659A-7493-4421-B722-CDAFA4EAB33A}" Directory_="APPDIR" Attributes="0" KeyPath="System.Data.SQLite.Linq.dll"/>
+ <ROW Component="System.Data.SQLite.dll" ComponentId="{FA4C9531-DADE-4B95-BEDB-778B1D7BDBF0}" Directory_="APPDIR" Attributes="0" KeyPath="System.Data.SQLite.dll"/>
+ <ROW Component="System.Diagnostics.Contracts.dll" ComponentId="{719DE5EC-1DA5-4117-ABF6-D2FC10C8BEF1}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.Contracts.dll"/>
+ <ROW Component="System.Diagnostics.Debug.dll" ComponentId="{1676AA51-40BD-4995-BA76-7F17A138FEC2}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.Debug.dll"/>
+ <ROW Component="System.Diagnostics.FileVersionInfo.dll" ComponentId="{B4852A91-0CC3-4941-B8E8-A0C341636B52}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.FileVersionInfo.dll"/>
+ <ROW Component="System.Diagnostics.Process.dll" ComponentId="{EA11FBE2-6159-4921-810F-838319F879E0}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.Process.dll"/>
+ <ROW Component="System.Diagnostics.StackTrace.dll" ComponentId="{D9631AE4-45F7-45D8-A6B4-D92EE6F0016A}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.StackTrace.dll"/>
+ <ROW Component="System.Diagnostics.TextWriterTraceListener.dll" ComponentId="{3A75E709-BF48-49A5-B6CE-8BB0622EA661}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.TextWriterTraceListener.dll"/>
+ <ROW Component="System.Diagnostics.Tools.dll" ComponentId="{4B38C158-CF9B-4B13-90C9-DB93F00A66B3}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.Tools.dll"/>
+ <ROW Component="System.Diagnostics.TraceSource.dll" ComponentId="{706D31E0-D3A6-4A1A-A129-99C6F83767EE}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.TraceSource.dll"/>
+ <ROW Component="System.Diagnostics.Tracing.dll" ComponentId="{4486BFA3-696A-43E7-B3F6-8D51DBE3F6C6}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.Tracing.dll"/>
+ <ROW Component="System.Drawing.Primitives.dll" ComponentId="{FE26ECDA-8198-4D73-B456-BC3EBDFB79CA}" Directory_="APPDIR" Attributes="0" KeyPath="System.Drawing.Primitives.dll"/>
+ <ROW Component="System.Dynamic.Runtime.dll" ComponentId="{20D6F0C0-7191-4651-8244-64B03DD1A846}" Directory_="APPDIR" Attributes="0" KeyPath="System.Dynamic.Runtime.dll"/>
+ <ROW Component="System.Globalization.Calendars.dll" ComponentId="{94989E3E-F2D0-4742-BED7-09991DA04CFB}" Directory_="APPDIR" Attributes="0" KeyPath="System.Globalization.Calendars.dll"/>
+ <ROW Component="System.Globalization.Extensions.dll" ComponentId="{76C98276-6636-477C-8294-7967A030268C}" Directory_="APPDIR" Attributes="0" KeyPath="System.Globalization.Extensions.dll"/>
+ <ROW Component="System.Globalization.dll" ComponentId="{534BF954-54A0-4A02-895C-0D1AEE194619}" Directory_="APPDIR" Attributes="0" KeyPath="System.Globalization.dll"/>
+ <ROW Component="System.IO.Compression.FileSystem.dll" ComponentId="{F165C128-766B-415D-995A-0EF0EAFCB426}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.Compression.FileSystem.dll"/>
+ <ROW Component="System.IO.Compression.ZipFile.dll" ComponentId="{7E28CB83-78C9-4B91-B970-3BB18D5B5C06}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.Compression.ZipFile.dll"/>
+ <ROW Component="System.IO.Compression.dll" ComponentId="{70B66455-64C4-437F-9669-6206D84EFEE0}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.Compression.dll"/>
+ <ROW Component="System.IO.FileSystem.DriveInfo.dll" ComponentId="{BE69DE93-1B85-43D8-8C87-3E01295EDBAA}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.FileSystem.DriveInfo.dll"/>
+ <ROW Component="System.IO.FileSystem.Primitives.dll" ComponentId="{62B564D3-7868-4C07-8A36-F8F1FC1A7234}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.FileSystem.Primitives.dll"/>
+ <ROW Component="System.IO.FileSystem.Watcher.dll" ComponentId="{FA9CF368-317F-4895-BFC4-A89A4F987AEA}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.FileSystem.Watcher.dll"/>
+ <ROW Component="System.IO.FileSystem.dll" ComponentId="{3431654B-8225-4C07-BEC5-E073C313A14C}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.FileSystem.dll"/>
+ <ROW Component="System.IO.IsolatedStorage.dll" ComponentId="{4A3CE8CD-DB48-4963-B00D-490E3F5FE8EA}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.IsolatedStorage.dll"/>
+ <ROW Component="System.IO.MemoryMappedFiles.dll" ComponentId="{7521D5AA-538B-4C9E-AC06-A8108906A3A5}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.MemoryMappedFiles.dll"/>
+ <ROW Component="System.IO.Pipes.dll" ComponentId="{6706EB39-04A6-4C31-A951-3715D32321B9}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.Pipes.dll"/>
+ <ROW Component="System.IO.UnmanagedMemoryStream.dll" ComponentId="{CBE47FB3-B580-4CB3-BF98-AD69E2ABD574}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.UnmanagedMemoryStream.dll"/>
+ <ROW Component="System.IO.dll" ComponentId="{EEBBDF01-0CD2-4057-AD76-9076C3DA37AD}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.dll"/>
+ <ROW Component="System.IdentityModel.Tokens.Jwt.dll" ComponentId="{5C3A6074-5479-472B-B87D-BF6C17F5A610}" Directory_="APPDIR" Attributes="0" KeyPath="System.IdentityModel.Tokens.Jwt.dll"/>
+ <ROW Component="System.Linq.Expressions.dll" ComponentId="{876602BF-EC80-40A7-B709-37C5777B5467}" Directory_="APPDIR" Attributes="0" KeyPath="System.Linq.Expressions.dll"/>
+ <ROW Component="System.Linq.Parallel.dll" ComponentId="{6DDC88FC-7F8F-4B92-85FC-D97551EE48D5}" Directory_="APPDIR" Attributes="0" KeyPath="System.Linq.Parallel.dll"/>
+ <ROW Component="System.Linq.Queryable.dll" ComponentId="{1DC6D8CB-37FB-448F-9DD1-FF034D84F003}" Directory_="APPDIR" Attributes="0" KeyPath="System.Linq.Queryable.dll"/>
+ <ROW Component="System.Linq.dll" ComponentId="{04A2EEA2-6DBE-4084-B67E-FA5A31DD5741}" Directory_="APPDIR" Attributes="0" KeyPath="System.Linq.dll"/>
+ <ROW Component="System.Net.Http.Formatting.dll" ComponentId="{EFB30A9E-95D8-4092-8172-0D1B9896ACA0}" Directory_="APPDIR" Attributes="0" KeyPath="System.Net.Http.Formatting.dll"/>
+ <ROW Component="System.Net.Http.dll" ComponentId="{15B7ACD4-BF3C-400A-BD0C-A5EEABB25631}" Directory_="APPDIR" Attributes="0" KeyPath="System.Net.Http.dll"/>
+ <ROW Component="System.Net.NameResolution.dll" ComponentId="{2635863A-F155-40DA-8AAB-FB594184EC5F}" Directory_="APPDIR" Attributes="0" KeyPath="System.Net.NameResolution.dll"/>
+ <ROW Component="System.Net.NetworkInformation.dll" ComponentId="{CA1C56F5-6620-4DC6-8688-223B200A6D68}" Directory_="APPDIR" Attributes="0" KeyPath="System.Net.NetworkInformation.dll"/>
+ <ROW Component="System.Net.Ping.dll" ComponentId="{EDEBD422-4D43-4C41-A61C-BC5BD55D0E26}" Directory_="APPDIR" Attributes="0" KeyPath="System.Net.Ping.dll"/>
+ <ROW Component="System.Net.Primitives.dll" ComponentId="{0F09EECC-E674-447C-BD10-CDF09F64A767}" Directory_="APPDIR" Attributes="0" KeyPath="System.Net.Primitives.dll"/>
+ <ROW Component="System.Net.Requests.dll" ComponentId="{98569ACE-2F5F-4B1E-878E-CD1B5D25B96F}" Directory_="APPDIR" Attributes="0" KeyPath="System.Net.Requests.dll"/>
+ <ROW Component="System.Net.Security.dll" ComponentId="{035C3143-5A64-4967-AED6-BF404CA97601}" Directory_="APPDIR" Attributes="0" KeyPath="System.Net.Security.dll"/>
+ <ROW Component="System.Net.Sockets.dll" ComponentId="{2D1BEAE0-C660-4C54-8C8B-8E4D7F2B2782}" Directory_="APPDIR" Attributes="0" KeyPath="System.Net.Sockets.dll"/>
+ <ROW Component="System.Net.WebHeaderCollection.dll" ComponentId="{5BDCBC67-BFA7-4E3D-B0A2-3183A468FFB8}" Directory_="APPDIR" Attributes="0" KeyPath="System.Net.WebHeaderCollection.dll"/>
+ <ROW Component="System.Net.WebSockets.Client.dll" ComponentId="{60ED738A-4F2F-4F1B-8B17-60069D8962CA}" Directory_="APPDIR" Attributes="0" KeyPath="System.Net.WebSockets.Client.dll"/>
+ <ROW Component="System.Net.WebSockets.dll" ComponentId="{4BE225E1-8F23-4C08-9BE5-35371655879B}" Directory_="APPDIR" Attributes="0" KeyPath="System.Net.WebSockets.dll"/>
+ <ROW Component="System.ObjectModel.dll" ComponentId="{E56C6924-727B-4D70-8A46-BFD98330EAF0}" Directory_="APPDIR" Attributes="0" KeyPath="System.ObjectModel.dll"/>
+ <ROW Component="System.Reactive.Core.dll" ComponentId="{62E95FC6-34DB-4CCA-98FA-340519D8B00A}" Directory_="APPDIR" Attributes="0" KeyPath="System.Reactive.Core.dll"/>
+ <ROW Component="System.Reactive.Interfaces.dll" ComponentId="{F8ADD7D3-7FA5-4D5A-B6AF-7865E656DF18}" Directory_="APPDIR" Attributes="0" KeyPath="System.Reactive.Interfaces.dll"/>
+ <ROW Component="System.Reactive.Linq.dll" ComponentId="{CB3B39C5-A09D-41C3-BD3D-2418EDEE1B7E}" Directory_="APPDIR" Attributes="0" KeyPath="System.Reactive.Linq.dll"/>
+ <ROW Component="System.Reactive.PlatformServices.dll" ComponentId="{FD7A1A65-6497-4392-AA5E-032B1CEAAD0B}" Directory_="APPDIR" Attributes="0" KeyPath="System.Reactive.PlatformServices.dll"/>
+ <ROW Component="System.Reflection.Extensions.dll" ComponentId="{73BB2BFB-98AD-4D9E-AEC6-99187E422E6C}" Directory_="APPDIR" Attributes="0" KeyPath="System.Reflection.Extensions.dll"/>
+ <ROW Component="System.Reflection.Primitives.dll" ComponentId="{5B6CD5C2-2396-4760-B6AC-E26672BB1CE7}" Directory_="APPDIR" Attributes="0" KeyPath="System.Reflection.Primitives.dll"/>
+ <ROW Component="System.Reflection.dll" ComponentId="{676E610A-2D36-43A6-88E4-60243B050F17}" Directory_="APPDIR" Attributes="0" KeyPath="System.Reflection.dll"/>
+ <ROW Component="System.Resources.Reader.dll" ComponentId="{6678C452-1188-4C5C-8E64-ADCF162857F3}" Directory_="APPDIR" Attributes="0" KeyPath="System.Resources.Reader.dll"/>
+ <ROW Component="System.Resources.ResourceManager.dll" ComponentId="{8B064109-6900-4DA7-82DB-ECED0F9DEDC6}" Directory_="APPDIR" Attributes="0" KeyPath="System.Resources.ResourceManager.dll"/>
+ <ROW Component="System.Resources.Writer.dll" ComponentId="{3BDAAA0D-EABE-4BE0-AFEE-3B6795F2C4BB}" Directory_="APPDIR" Attributes="0" KeyPath="System.Resources.Writer.dll"/>
+ <ROW Component="System.Runtime.CompilerServices.VisualC.dll" ComponentId="{19C82358-EE83-4F8B-98D6-22970AB72BB3}" Directory_="APPDIR" Attributes="0" KeyPath="System.Runtime.CompilerServices.VisualC.dll"/>
+ <ROW Component="System.Runtime.Extensions.dll" ComponentId="{9D247F14-0B9B-4AF3-99BD-8DC5923B024D}" Directory_="APPDIR" Attributes="0" KeyPath="System.Runtime.Extensions.dll"/>
+ <ROW Component="System.Runtime.Handles.dll" ComponentId="{CB3F22EC-22D4-4F8C-8B60-E01EA27E392C}" Directory_="APPDIR" Attributes="0" KeyPath="System.Runtime.Handles.dll"/>
+ <ROW Component="System.Runtime.InteropServices.RuntimeInformation.dll" ComponentId="{7833C7AE-E023-4B93-88FA-563016F8CA0E}" Directory_="APPDIR" Attributes="0" KeyPath="System.Runtime.InteropServices.RuntimeInformation.dll"/>
+ <ROW Component="System.Runtime.InteropServices.dll" ComponentId="{A83A1B9A-9188-41EA-9E25-1285174DA304}" Directory_="APPDIR" Attributes="0" KeyPath="System.Runtime.InteropServices.dll"/>
+ <ROW Component="System.Runtime.Numerics.dll" ComponentId="{AD3A4D2D-C688-448D-9975-F3E8CFF6763B}" Directory_="APPDIR" Attributes="0" KeyPath="System.Runtime.Numerics.dll"/>
+ <ROW Component="System.Runtime.Serialization.Formatters.dll" ComponentId="{2F9D3061-0E05-4AEE-BF94-88009429F966}" Directory_="APPDIR" Attributes="0" KeyPath="System.Runtime.Serialization.Formatters.dll"/>
+ <ROW Component="System.Runtime.Serialization.Json.dll" ComponentId="{79DC847B-DC38-4888-9947-10A91C32392C}" Directory_="APPDIR" Attributes="0" KeyPath="System.Runtime.Serialization.Json.dll"/>
+ <ROW Component="System.Runtime.Serialization.Primitives.dll" ComponentId="{77BC2C68-F02C-40D2-8ADF-23016DBEE7F7}" Directory_="APPDIR" Attributes="0" KeyPath="System.Runtime.Serialization.Primitives.dll"/>
+ <ROW Component="System.Runtime.Serialization.Xml.dll" ComponentId="{7E616B70-5412-49F4-8ACE-FC705F99AF15}" Directory_="APPDIR" Attributes="0" KeyPath="System.Runtime.Serialization.Xml.dll"/>
+ <ROW Component="System.Runtime.dll" ComponentId="{D3EF6533-9CF6-4142-A3B4-76488F4EAD17}" Directory_="APPDIR" Attributes="0" KeyPath="System.Runtime.dll"/>
+ <ROW Component="System.Security.Claims.dll" ComponentId="{037B3972-4FFD-47FB-B492-E5965237537D}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.Claims.dll"/>
+ <ROW Component="System.Security.Cryptography.Algorithms.dll" ComponentId="{9B8366F8-1867-4477-BA22-06151C36AE30}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.Cryptography.Algorithms.dll"/>
+ <ROW Component="System.Security.Cryptography.Csp.dll" ComponentId="{7BCBEA04-48BE-44BA-8D28-747E21B931FA}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.Cryptography.Csp.dll"/>
+ <ROW Component="System.Security.Cryptography.Encoding.dll" ComponentId="{C314578B-DB2D-4E37-89F9-8CB90876E268}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.Cryptography.Encoding.dll"/>
+ <ROW Component="System.Security.Cryptography.Primitives.dll" ComponentId="{782C1EF9-172B-4277-BAC3-0889428B4A07}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.Cryptography.Primitives.dll"/>
+ <ROW Component="System.Security.Cryptography.X509Certificates.dll" ComponentId="{D0C68A19-1CA9-4758-9FC3-F5C6C1FDE73C}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.Cryptography.X509Certificates.dll"/>
+ <ROW Component="System.Security.Principal.dll" ComponentId="{400FDAA7-5D5A-4765-BF38-E28160E36D16}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.Principal.dll"/>
+ <ROW Component="System.Security.SecureString.dll" ComponentId="{3289F64A-2DBF-45CE-B9CC-C52988C38FB6}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.SecureString.dll"/>
+ <ROW Component="System.Spatial.dll" ComponentId="{AB00DDF9-EDFC-4D58-ACEB-22F491765FB0}" Directory_="APPDIR" Attributes="0" KeyPath="System.Spatial.dll"/>
+ <ROW Component="System.Text.Encoding.Extensions.dll" ComponentId="{64EBCAAA-8A6E-4E52-83B5-6BFCDDB16682}" Directory_="APPDIR" Attributes="0" KeyPath="System.Text.Encoding.Extensions.dll"/>
+ <ROW Component="System.Text.Encoding.dll" ComponentId="{8F91F004-ED48-4DD5-8616-4BEB128D1CE5}" Directory_="APPDIR" Attributes="0" KeyPath="System.Text.Encoding.dll"/>
+ <ROW Component="System.Text.RegularExpressions.dll" ComponentId="{E8AC2491-ECF8-4180-B0F8-B564546BAB32}" Directory_="APPDIR" Attributes="0" KeyPath="System.Text.RegularExpressions.dll"/>
+ <ROW Component="System.Threading.Overlapped.dll" ComponentId="{F536CF8E-3CAA-4179-9692-7307EF2B2141}" Directory_="APPDIR" Attributes="0" KeyPath="System.Threading.Overlapped.dll"/>
+ <ROW Component="System.Threading.Tasks.Parallel.dll" ComponentId="{D2B66EF6-97EE-4F88-9667-3550C08BA473}" Directory_="APPDIR" Attributes="0" KeyPath="System.Threading.Tasks.Parallel.dll"/>
+ <ROW Component="System.Threading.Tasks.dll" ComponentId="{AC190BD9-30D5-4355-94B1-85179AA59A5F}" Directory_="APPDIR" Attributes="0" KeyPath="System.Threading.Tasks.dll"/>
+ <ROW Component="System.Threading.Thread.dll" ComponentId="{0DAD78EA-56C4-41B7-A379-F38828A33505}" Directory_="APPDIR" Attributes="0" KeyPath="System.Threading.Thread.dll"/>
+ <ROW Component="System.Threading.ThreadPool.dll" ComponentId="{0F1DD8C5-1EE6-4640-B01C-46FB4CB83F75}" Directory_="APPDIR" Attributes="0" KeyPath="System.Threading.ThreadPool.dll"/>
+ <ROW Component="System.Threading.Timer.dll" ComponentId="{B4CAFB30-B6C7-45CD-AA8B-B195D33F33C0}" Directory_="APPDIR" Attributes="0" KeyPath="System.Threading.Timer.dll"/>
+ <ROW Component="System.Threading.dll" ComponentId="{890DC656-6BEA-4F56-A742-806C87C0EA9C}" Directory_="APPDIR" Attributes="0" KeyPath="System.Threading.dll"/>
+ <ROW Component="System.ValueTuple.dll" ComponentId="{F13628B5-C5E3-479C-A515-0A975855FEC7}" Directory_="APPDIR" Attributes="0" KeyPath="System.ValueTuple.dll"/>
+ <ROW Component="System.Web.Http.WebHost.dll" ComponentId="{18DD2F13-E03E-4535-BBDF-3621387564FC}" Directory_="APPDIR" Attributes="0" KeyPath="System.Web.Http.WebHost.dll"/>
+ <ROW Component="System.Web.Http.dll" ComponentId="{02EE2ED8-EDE7-4DDA-BBCE-77D0998E3815}" Directory_="APPDIR" Attributes="0" KeyPath="System.Web.Http.dll"/>
+ <ROW Component="System.Web.Razor.dll" ComponentId="{58F85C46-451E-4EE8-8CCF-2052C92FDD1A}" Directory_="APPDIR" Attributes="0" KeyPath="System.Web.Razor.dll"/>
+ <ROW Component="System.Windows.Interactivity.dll" ComponentId="{DE8D82AC-01FE-4839-8BF4-29D5DB049D1A}" Directory_="APPDIR" Attributes="0" KeyPath="System.Windows.Interactivity.dll"/>
+ <ROW Component="System.Xml.ReaderWriter.dll" ComponentId="{32E4FBE3-408E-4BA1-B9A4-7493FC692C95}" Directory_="APPDIR" Attributes="0" KeyPath="System.Xml.ReaderWriter.dll"/>
+ <ROW Component="System.Xml.XDocument.dll" ComponentId="{281AB200-4E26-4E05-AF86-A63D2D21945C}" Directory_="APPDIR" Attributes="0" KeyPath="System.Xml.XDocument.dll"/>
+ <ROW Component="System.Xml.XPath.XDocument.dll" ComponentId="{C4B5736C-DCA6-4E70-AC3E-7ACD22B016F9}" Directory_="APPDIR" Attributes="0" KeyPath="System.Xml.XPath.XDocument.dll"/>
+ <ROW Component="System.Xml.XPath.dll" ComponentId="{7596FA31-0649-4230-8C74-4B0D00D6BBB9}" Directory_="APPDIR" Attributes="0" KeyPath="System.Xml.XPath.dll"/>
+ <ROW Component="System.Xml.XmlDocument.dll" ComponentId="{05453417-03C4-4496-8E1A-8C7C709BC95D}" Directory_="APPDIR" Attributes="0" KeyPath="System.Xml.XmlDocument.dll"/>
+ <ROW Component="System.Xml.XmlSerializer.dll" ComponentId="{1DDA637D-8907-4954-A1B0-92BA9428C040}" Directory_="APPDIR" Attributes="0" KeyPath="System.Xml.XmlSerializer.dll"/>
+ <ROW Component="Tango.AdvancedInstaller.dll" ComponentId="{3A9B6729-87A1-47A5-AC7D-AB028041F0D2}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.AdvancedInstaller.dll"/>
+ <ROW Component="Tango.AnimatedGif.dll" ComponentId="{9F1620F9-14FE-491C-97FF-E1FFD8BEB39D}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.AnimatedGif.dll"/>
+ <ROW Component="Tango.BL.dll" ComponentId="{2F671852-9B0F-4B76-87EF-B01A824E3395}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.BL.dll"/>
+ <ROW Component="Tango.CSV.dll" ComponentId="{47CBA01E-67E3-45AC-BF23-01B145FE9FC6}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.CSV.dll"/>
+ <ROW Component="Tango.CodeGeneration.dll" ComponentId="{3F2637CB-6483-4159-A9A3-48D48EBA97C3}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.CodeGeneration.dll"/>
+ <ROW Component="Tango.ColorConversion.dll" ComponentId="{07A037A2-63A4-43CD-96CF-AD00ACBBCE82}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.ColorConversion.dll"/>
+ <ROW Component="Tango.ColorLib_v1.dll" ComponentId="{B1DA08EE-4CBA-422B-B00B-389BE2C6C494}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.ColorLib_v1.dll"/>
+ <ROW Component="Tango.ColorLib_v2.dll" ComponentId="{CE35AA7C-9674-44D2-86A6-D911B7A07DD8}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.ColorLib_v2.dll"/>
+ <ROW Component="Tango.ColorLib_v3.dll" ComponentId="{2925DA8C-C511-4D8D-82F4-2270820960C1}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.ColorLib_v3.dll"/>
+ <ROW Component="Tango.ColorLib_v4.dll" ComponentId="{3051180C-BDFC-40A5-89E6-BB2704414BC8}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.ColorLib_v4.dll"/>
+ <ROW Component="Tango.ColorLib_v5.dll" ComponentId="{E79E49A6-BD7D-4229-90D1-5A1E9AD2BF8D}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.ColorLib_v5.dll"/>
+ <ROW Component="Tango.ColorLib_v6.dll" ComponentId="{49BE3D85-4F8A-46C5-8027-295FF3BE9382}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.ColorLib_v6.dll"/>
+ <ROW Component="Tango.Colorful.dll" ComponentId="{30883320-6F05-438C-8C9B-5D9A24DD1949}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Colorful.dll"/>
+ <ROW Component="Tango.Console.dll" ComponentId="{0C4A4549-05F8-45AC-A2A1-50928C22AB1F}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Console.dll"/>
+ <ROW Component="Tango.Core.dll" ComponentId="{03FFCE4B-103D-471C-9BC4-BA61F308CD50}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Core.dll"/>
+ <ROW Component="Tango.DataStore.EF.dll" ComponentId="{0C314E44-E58A-471E-99AB-2AFD99078A99}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.DataStore.EF.dll"/>
+ <ROW Component="Tango.DataStore.Editing.dll" ComponentId="{D639C94D-6CA8-495B-B539-5DDD5DB39910}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.DataStore.Editing.dll"/>
+ <ROW Component="Tango.DataStore.Lite.dll" ComponentId="{7CAAB878-0A1E-48E0-AA3E-0E8AF9C2278B}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.DataStore.Lite.dll"/>
+ <ROW Component="Tango.DataStore.Remote.dll" ComponentId="{1D14AA13-DFB1-44F8-B462-9D3018593209}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.DataStore.Remote.dll"/>
+ <ROW Component="Tango.DataStore.dll" ComponentId="{3AF6B88E-E0FE-4891-92A4-9689590258F4}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.DataStore.dll"/>
+ <ROW Component="Tango.Documents.dll" ComponentId="{E5AB4E1D-1AA5-4B59-B12F-A307742242BB}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Documents.dll"/>
+ <ROW Component="Tango.DragAndDrop.dll" ComponentId="{26C7101A-FD53-4D76-A1A2-2065394CEC54}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.DragAndDrop.dll"/>
+ <ROW Component="Tango.Emulations.dll" ComponentId="{B49603F7-F3D4-438F-92FA-FA36BD801934}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Emulations.dll"/>
+ <ROW Component="Tango.Explorer.dll" ComponentId="{3B205CF0-B682-4938-9738-88DCD0904C1E}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Explorer.dll"/>
+ <ROW Component="Tango.FileSystem.dll" ComponentId="{2DC5A6C3-8F58-45BB-B90E-E580A14DBC6B}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.FileSystem.dll"/>
+ <ROW Component="Tango.FirmwareUpdateLib.WPF.dll" ComponentId="{6F79848C-43CE-430A-8F2D-B79DA1F67E70}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.FirmwareUpdateLib.WPF.dll"/>
+ <ROW Component="Tango.FirmwareUpdateLib.dll" ComponentId="{296922F3-B8CA-47CC-A5B9-FF6885FC9C7E}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.FirmwareUpdateLib.dll"/>
+ <ROW Component="Tango.Git.dll" ComponentId="{719AFAAA-806B-43AD-B61E-D95538565D41}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Git.dll"/>
+ <ROW Component="Tango.Insights.dll" ComponentId="{54810EAB-618E-40DE-825A-70B1A78C2442}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Insights.dll"/>
+ <ROW Component="Tango.Integration.dll" ComponentId="{6D218681-1823-4AED-8688-F2DA321E83B9}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Integration.dll"/>
+ <ROW Component="Tango.Logging.dll" ComponentId="{5256735A-F5A7-4F19-A800-227260121838}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Logging.dll"/>
+ <ROW Component="Tango.PDF.dll" ComponentId="{E47D232C-3670-40D8-9C5E-E20920DE0A5B}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.PDF.dll"/>
+ <ROW Component="Tango.PMR.dll" ComponentId="{B4C51C81-321D-48A9-93F6-F83B13E97880}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.PMR.dll"/>
+ <ROW Component="Tango.PPC.BackupRestore.dll" ComponentId="{70CF99A3-B297-4EA6-A524-91CFB9C43FD9}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.PPC.BackupRestore.dll"/>
+ <ROW Component="Tango.PPC.BugReporting.dll" ComponentId="{98287604-CBAA-4A84-9CB7-4F9B15A0CF90}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.PPC.BugReporting.dll"/>
+ <ROW Component="Tango.PPC.Common.dll" ComponentId="{938E4DF2-9097-4F5D-9E31-3E12F4F8578E}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.PPC.Common.dll"/>
+ <ROW Component="Tango.PPC.Events.dll" ComponentId="{DA5DD140-32EB-4626-A17B-57B0B4244FD9}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.PPC.Events.dll"/>
+ <ROW Component="Tango.PPC.JobsV2.dll" ComponentId="{A05CA7E1-C471-4364-927E-10A5557B62E2}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.PPC.JobsV2.dll"/>
+ <ROW Component="Tango.PPC.MachineSettings.dll" ComponentId="{42FF302C-CC24-4990-A83C-9FE60F7F96D1}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.PPC.MachineSettings.dll"/>
+ <ROW Component="Tango.PPC.Maintenance.dll" ComponentId="{F51D866F-24EB-4BF5-9547-487163A11333}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.PPC.Maintenance.dll"/>
+ <ROW Component="Tango.PPC.Shared.dll" ComponentId="{1E762A0A-D386-409B-ADB7-8B9C3D491EDB}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.PPC.Shared.dll"/>
+ <ROW Component="Tango.PPC.Storage.dll" ComponentId="{EE46C6FE-ED22-4F15-B481-52D8974777B3}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.PPC.Storage.dll"/>
+ <ROW Component="Tango.PPC.Technician.dll" ComponentId="{9F4C652D-6530-458B-940A-D2383B087B11}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.PPC.Technician.dll"/>
+ <ROW Component="Tango.PPC.UI.exe" ComponentId="{683BF992-5971-420D-B92F-5EE85CBA93B1}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.PPC.UI.exe"/>
+ <ROW Component="Tango.PPC.Updater.exe" ComponentId="{8826CE42-B6B9-466B-8A87-EFC6947086F0}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.PPC.Updater.exe"/>
+ <ROW Component="Tango.Pulse.dll" ComponentId="{7E8F504F-1125-4E4A-9367-A7F1AA5E77B1}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Pulse.dll"/>
+ <ROW Component="Tango.RemoteDesktop.dll" ComponentId="{2AB79FAE-D74A-407B-B40E-14CE343102C1}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.RemoteDesktop.dll"/>
+ <ROW Component="Tango.SQLExaminer.dll" ComponentId="{3B98ED7F-3935-4C9A-857B-4D2589ABE853}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.SQLExaminer.dll"/>
+ <ROW Component="Tango.Serialization.dll" ComponentId="{E613913D-9EF4-4AC0-ABB8-B516BE57DFAA}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Serialization.dll"/>
+ <ROW Component="Tango.Settings.dll" ComponentId="{0DEDDC60-7E7F-41C8-BDA2-7601FFD63769}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Settings.dll"/>
+ <ROW Component="Tango.SharedUI.dll" ComponentId="{B7D82F19-79F1-47B4-BBAA-0D96BD9FA0F7}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.SharedUI.dll"/>
+ <ROW Component="Tango.SystemInfo.dll" ComponentId="{B64CF925-0BC6-44CD-B13C-26A58C62A38F}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.SystemInfo.dll"/>
+ <ROW Component="Tango.TFS.dll" ComponentId="{3324A8D4-DC5D-4A8A-9BAE-6D18DEAAF872}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.TFS.dll"/>
+ <ROW Component="Tango.Touch.dll" ComponentId="{DDCFB82B-AF5F-4B04-B80A-27FB3A6038B8}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Touch.dll"/>
+ <ROW Component="Tango.Transport.dll" ComponentId="{0AEA439D-68A9-4FD9-B3BD-DBC4F4A3EF84}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Transport.dll"/>
+ <ROW Component="Tango.Web.dll" ComponentId="{D3043D33-4676-48B4-B122-2F2B57BB20D2}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Web.dll"/>
+ <ROW Component="Tango.WebRTC.dll" ComponentId="{6FC621F5-A14A-4BBB-A3E5-774B982C3527}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.WebRTC.dll"/>
+ <ROW Component="Tango.WiFi.dll" ComponentId="{BE79796A-C78B-4F03-B9E1-14DB08A8AE34}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.WiFi.dll"/>
+ <ROW Component="WPFMediaKit.dll" ComponentId="{682E3B5C-3A2E-4EBE-A62C-48EC158A8E40}" Directory_="APPDIR" Attributes="0" KeyPath="WPFMediaKit.dll"/>
+ <ROW Component="WebRtc.NET.dll" ComponentId="{937B957F-326D-44FF-AFA4-E863A10C31D3}" Directory_="APPDIR" Attributes="0" KeyPath="WebRtc.NET.dll"/>
+ <ROW Component="WindowsInput.dll" ComponentId="{0B5BB534-35DF-4C8E-9EA9-343A0A313518}" Directory_="APPDIR" Attributes="0" KeyPath="WindowsInput.dll"/>
+ <ROW Component="mscoree.dll" ComponentId="{AA32C32C-5143-4899-AD35-96FC51E521B0}" Directory_="APPDIR" Attributes="0" KeyPath="mscoree.dll"/>
+ <ROW Component="msvcp140d.dll" ComponentId="{EB34D5FE-FCFF-46A6-882A-F9B34C958DCB}" Directory_="APPDIR" Attributes="0" KeyPath="msvcp140d.dll"/>
+ <ROW Component="netstandard.dll" ComponentId="{DE31E227-FD3C-4CF2-9C94-74C321D20200}" Directory_="APPDIR" Attributes="0" KeyPath="netstandard.dll"/>
+ <ROW Component="protobufnet.dll" ComponentId="{6EFD03F3-D1BD-4948-93EB-E9C24273FB0E}" Directory_="APPDIR" Attributes="0" KeyPath="protobufnet.dll"/>
+ <ROW Component="rc.exe" ComponentId="{F37FD42F-F697-4891-9F10-FCDA5B659035}" Directory_="APPDIR" Attributes="256" KeyPath="rc.exe"/>
+ <ROW Component="turbojpeg.dll" ComponentId="{56532295-4230-4C31-87BB-E750421A1399}" Directory_="win7x64_Dir" Attributes="256" KeyPath="turbojpeg.dll"/>
+ <ROW Component="turbojpeg.dll.meta" ComponentId="{694B77D2-534D-49CD-91F8-FEE887D5A02A}" Directory_="win7x64_Dir" Attributes="0" KeyPath="turbojpeg.dll.meta" Type="0"/>
+ <ROW Component="turbojpeg.dll.meta_1" ComponentId="{8BC477AD-D9E8-44D8-AF39-25BD461F5FA4}" Directory_="win7x86_Dir" Attributes="0" KeyPath="turbojpeg.dll.meta_1" Type="0"/>
+ <ROW Component="turbojpeg.dll_1" ComponentId="{CDE71D36-D7C8-47B0-B24A-156C101D8193}" Directory_="win7x86_Dir" Attributes="0" KeyPath="turbojpeg.dll_1"/>
+ <ROW Component="ucrtbased.dll" ComponentId="{4C4B5F18-0749-4F1F-8645-381A4DE86894}" Directory_="APPDIR" Attributes="0" KeyPath="ucrtbased.dll"/>
+ <ROW Component="vcruntime140.dll" ComponentId="{6AB8BB00-0CEB-4F31-AC89-45BEB7839ED3}" Directory_="APPDIR" Attributes="0" KeyPath="vcruntime140.dll"/>
+ <ROW Component="vcruntime140d.dll" ComponentId="{A04FC8B1-2D31-4DCE-B151-BB57EB1197C8}" Directory_="APPDIR" Attributes="0" KeyPath="vcruntime140d.dll"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.MsiFeatsComponent">
+ <ROW Feature="MainFeature" Title="MainFeature" Description="Description" Display="1" Level="1" Directory_="APPDIR" Attributes="0"/>
+ <ATTRIBUTE name="CurrentFeature" value="MainFeature"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.MsiFilesComponent">
+ <ROW File="ColorMine.dll" Component_="ColorMine.dll" FileName="COLORM~1.DLL|ColorMine.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\ColorMine.dll" SelfReg="false"/>
+ <ROW File="ColorMine.pdb" Component_="ColorMine.dll" FileName="COLORM~1.PDB|ColorMine.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\ColorMine.pdb" SelfReg="false"/>
+ <ROW File="CommandLine.dll" Component_="CommandLine.dll" FileName="COMMAN~1.DLL|CommandLine.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\CommandLine.dll" SelfReg="false"/>
+ <ROW File="ControlzEx.dll" Component_="ControlzEx.dll" FileName="CONTRO~1.DLL|ControlzEx.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\ControlzEx.dll" SelfReg="false"/>
+ <ROW File="ControlzEx.pdb" Component_="ControlzEx.dll" FileName="CONTRO~1.PDB|ControlzEx.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\ControlzEx.pdb" SelfReg="false"/>
+ <ROW File="DocumentFormat.OpenXml.dll" Component_="DocumentFormat.OpenXml.dll" FileName="DOCUME~1.DLL|DocumentFormat.OpenXml.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\DocumentFormat.OpenXml.dll" SelfReg="false"/>
+ <ROW File="EFCache.dll" Component_="EFCache.dll" FileName="EFCache.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\EFCache.dll" SelfReg="false"/>
+ <ROW File="EntityFramework.dll" Component_="EntityFramework.dll" FileName="ENTITY~1.DLL|EntityFramework.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\EntityFramework.dll" SelfReg="false"/>
+ <ROW File="EntityFramework.SqlServer.dll" Component_="EntityFramework.SqlServer.dll" FileName="ENTITY~2.DLL|EntityFramework.SqlServer.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\EntityFramework.SqlServer.dll" SelfReg="false"/>
+ <ROW File="FontAwesome.WPF.dll" Component_="FontAwesome.WPF.dll" FileName="FONTAW~1.DLL|FontAwesome.WPF.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\FontAwesome.WPF.dll" SelfReg="false"/>
+ <ROW File="GetVersionTag.bat" Component_="GetVersionTag.bat" FileName="GETVER~1.BAT|GetVersionTag.bat" Attributes="0" SourcePath="..\Build\PPC\Eureka\GetVersionTag.bat" SelfReg="false"/>
+ <ROW File="Google.Protobuf.dll" Component_="Google.Protobuf.dll" FileName="GOOGLE~1.DLL|Google.Protobuf.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Google.Protobuf.dll" SelfReg="false"/>
+ <ROW File="HiraokaHyperTools.PdfSharpWPF.dll" Component_="HiraokaHyperTools.PdfSharpWPF.dll" FileName="HIRAOK~1.DLL|HiraokaHyperTools.PdfSharp-WPF.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\HiraokaHyperTools.PdfSharp-WPF.dll" SelfReg="false"/>
+ <ROW File="HiraokaHyperTools.PdfSharp.Xps.dll" Component_="HiraokaHyperTools.PdfSharp.Xps.dll" FileName="HIRAOK~2.DLL|HiraokaHyperTools.PdfSharp.Xps.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\HiraokaHyperTools.PdfSharp.Xps.dll" SelfReg="false"/>
+ <ROW File="Ionic.Zip.dll" Component_="Ionic.Zip.dll" FileName="IONICZ~1.DLL|Ionic.Zip.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Ionic.Zip.dll" SelfReg="false"/>
+ <ROW File="JWT.dll" Component_="JWT.dll" FileName="JWT.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\JWT.dll" SelfReg="false"/>
+ <ROW File="LibGit2Sharp.dll" Component_="LibGit2Sharp.dll" FileName="LIBGIT~1.DLL|LibGit2Sharp.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\LibGit2Sharp.dll" SelfReg="false"/>
+ <ROW File="LibGit2Sharp.pdb" Component_="LibGit2Sharp.dll" FileName="LIBGIT~1.PDB|LibGit2Sharp.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\LibGit2Sharp.pdb" SelfReg="false"/>
+ <ROW File="LiteDB.dll" Component_="LiteDB.dll" FileName="LiteDB.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\LiteDB.dll" SelfReg="false"/>
+ <ROW File="Microsoft.AspNet.SignalR.Client.dll" Component_="Microsoft.AspNet.SignalR.Client.dll" FileName="MICROS~1.DLL|Microsoft.AspNet.SignalR.Client.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.AspNet.SignalR.Client.dll" SelfReg="false"/>
+ <ROW File="Microsoft.AspNet.SignalR.Client.pdb" Component_="Microsoft.AspNet.SignalR.Client.dll" FileName="MICROS~1.PDB|Microsoft.AspNet.SignalR.Client.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.AspNet.SignalR.Client.pdb" SelfReg="false"/>
+ <ROW File="Microsoft.Azure.ActiveDirectory.GraphClient.dll" Component_="Microsoft.Azure.ActiveDirectory.GraphClient.dll" FileName="MICROS~2.DLL|Microsoft.Azure.ActiveDirectory.GraphClient.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.Azure.ActiveDirectory.GraphClient.dll" SelfReg="false"/>
+ <ROW File="Microsoft.IdentityModel.Clients.ActiveDirectory.dll" Component_="Microsoft.IdentityModel.Clients.ActiveDirectory.dll" FileName="MICROS~6.DLL|Microsoft.IdentityModel.Clients.ActiveDirectory.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.IdentityModel.Clients.ActiveDirectory.dll" SelfReg="false"/>
+ <ROW File="Microsoft.IdentityModel.Clients.ActiveDirectory.pdb" Component_="Microsoft.IdentityModel.Clients.ActiveDirectory.dll" FileName="MICROS~2.PDB|Microsoft.IdentityModel.Clients.ActiveDirectory.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.IdentityModel.Clients.ActiveDirectory.pdb" SelfReg="false"/>
+ <ROW File="Microsoft.ServiceBus.dll" Component_="Microsoft.ServiceBus.dll" FileName="MICROS~7.DLL|Microsoft.ServiceBus.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.ServiceBus.dll" SelfReg="false"/>
+ <ROW File="Microsoft.SqlServer.ConnectionInfo.dll" Component_="Microsoft.SqlServer.ConnectionInfo.dll" FileName="MICROS~8.DLL|Microsoft.SqlServer.ConnectionInfo.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.SqlServer.ConnectionInfo.dll" SelfReg="false"/>
+ <ROW File="Microsoft.SqlServer.Diagnostics.STrace.dll" Component_="Microsoft.SqlServer.Diagnostics.STrace.dll" FileName="MICROS~9.DLL|Microsoft.SqlServer.Diagnostics.STrace.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.SqlServer.Diagnostics.STrace.dll" SelfReg="false"/>
+ <ROW File="Microsoft.SqlServer.Dmf.Common.dll" Component_="Microsoft.SqlServer.Dmf.Common.dll" FileName="MICRO~10.DLL|Microsoft.SqlServer.Dmf.Common.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.SqlServer.Dmf.Common.dll" SelfReg="false"/>
+ <ROW File="Microsoft.SqlServer.Management.Sdk.Sfc.dll" Component_="Microsoft.SqlServer.Management.Sdk.Sfc.dll" FileName="MICRO~11.DLL|Microsoft.SqlServer.Management.Sdk.Sfc.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.SqlServer.Management.Sdk.Sfc.dll" SelfReg="false"/>
+ <ROW File="Microsoft.SqlServer.ServiceBrokerEnum.dll" Component_="Microsoft.SqlServer.ServiceBrokerEnum.dll" FileName="MICRO~12.DLL|Microsoft.SqlServer.ServiceBrokerEnum.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.SqlServer.ServiceBrokerEnum.dll" SelfReg="false"/>
+ <ROW File="Microsoft.SqlServer.Smo.dll" Component_="Microsoft.SqlServer.Smo.dll" FileName="MICRO~13.DLL|Microsoft.SqlServer.Smo.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.SqlServer.Smo.dll" SelfReg="false"/>
+ <ROW File="Microsoft.SqlServer.SqlClrProvider.dll" Component_="Microsoft.SqlServer.SqlClrProvider.dll" FileName="MICRO~14.DLL|Microsoft.SqlServer.SqlClrProvider.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.SqlServer.SqlClrProvider.dll" SelfReg="false"/>
+ <ROW File="Microsoft.SqlServer.SqlEnum.dll" Component_="Microsoft.SqlServer.SqlEnum.dll" FileName="MICRO~15.DLL|Microsoft.SqlServer.SqlEnum.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.SqlServer.SqlEnum.dll" SelfReg="false"/>
+ <ROW File="Microsoft.TeamFoundation.Client.dll" Component_="Microsoft.TeamFoundation.Client.dll" FileName="MICRO~16.DLL|Microsoft.TeamFoundation.Client.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.TeamFoundation.Client.dll" SelfReg="false"/>
+ <ROW File="Microsoft.TeamFoundation.Common.dll" Component_="Microsoft.TeamFoundation.Common.dll" FileName="MICRO~17.DLL|Microsoft.TeamFoundation.Common.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.TeamFoundation.Common.dll" SelfReg="false"/>
+ <ROW File="Microsoft.TeamFoundation.Core.WebApi.dll" Component_="Microsoft.TeamFoundation.Core.WebApi.dll" FileName="MICRO~18.DLL|Microsoft.TeamFoundation.Core.WebApi.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.TeamFoundation.Core.WebApi.dll" SelfReg="false"/>
+ <ROW File="Microsoft.TeamFoundation.Diff.dll" Component_="Microsoft.TeamFoundation.Diff.dll" FileName="MICRO~19.DLL|Microsoft.TeamFoundation.Diff.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.TeamFoundation.Diff.dll" SelfReg="false"/>
+ <ROW File="Microsoft.TeamFoundation.Work.WebApi.dll" Component_="Microsoft.TeamFoundation.Work.WebApi.dll" FileName="MICRO~20.DLL|Microsoft.TeamFoundation.Work.WebApi.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.TeamFoundation.Work.WebApi.dll" SelfReg="false"/>
+ <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader.dll" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader.dll" FileName="MICRO~21.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader.dll" SelfReg="false"/>
+ <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.dll" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.dll" FileName="MICRO~22.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.TeamFoundation.WorkItemTracking.Client.dll" SelfReg="false"/>
+ <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.dll" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.dll" FileName="MICRO~23.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.dll" SelfReg="false"/>
+ <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Common.dll" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.dll" FileName="MICRO~24.DLL|Microsoft.TeamFoundation.WorkItemTracking.Common.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.TeamFoundation.WorkItemTracking.Common.dll" SelfReg="false"/>
+ <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Proxy.dll" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.dll" FileName="MICRO~25.DLL|Microsoft.TeamFoundation.WorkItemTracking.Proxy.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.TeamFoundation.WorkItemTracking.Proxy.dll" SelfReg="false"/>
+ <ROW File="Microsoft.TeamFoundation.WorkItemTracking.WebApi.dll" Component_="Microsoft.TeamFoundation.WorkItemTracking.WebApi.dll" FileName="MICRO~26.DLL|Microsoft.TeamFoundation.WorkItemTracking.WebApi.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.TeamFoundation.WorkItemTracking.WebApi.dll" SelfReg="false"/>
+ <ROW File="Microsoft.VisualStudio.Services.Client.Interactive.dll" Component_="Microsoft.VisualStudio.Services.Client.Interactive.dll" FileName="MICRO~27.DLL|Microsoft.VisualStudio.Services.Client.Interactive.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.VisualStudio.Services.Client.Interactive.dll" SelfReg="false"/>
+ <ROW File="Microsoft.VisualStudio.Services.Common.dll" Component_="Microsoft.VisualStudio.Services.Common.dll" FileName="MICRO~28.DLL|Microsoft.VisualStudio.Services.Common.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.VisualStudio.Services.Common.dll" SelfReg="false"/>
+ <ROW File="Microsoft.VisualStudio.Services.WebApi.dll" Component_="Microsoft.VisualStudio.Services.WebApi.dll" FileName="MICRO~29.DLL|Microsoft.VisualStudio.Services.WebApi.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.VisualStudio.Services.WebApi.dll" SelfReg="false"/>
+ <ROW File="Microsoft.WindowsAPICodePack.dll" Component_="Microsoft.WindowsAPICodePack.dll" FileName="MICRO~30.DLL|Microsoft.WindowsAPICodePack.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.WindowsAPICodePack.dll" SelfReg="false"/>
+ <ROW File="Microsoft.WindowsAPICodePack.pdb" Component_="Microsoft.WindowsAPICodePack.dll" FileName="MICROS~3.PDB|Microsoft.WindowsAPICodePack.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.WindowsAPICodePack.pdb" SelfReg="false"/>
+ <ROW File="Microsoft.WindowsAPICodePack.Shell.dll" Component_="Microsoft.WindowsAPICodePack.Shell.dll" FileName="MICRO~31.DLL|Microsoft.WindowsAPICodePack.Shell.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.WindowsAPICodePack.Shell.dll" SelfReg="false"/>
+ <ROW File="Microsoft.WindowsAzure.Storage.dll" Component_="Microsoft.WindowsAzure.Storage.dll" FileName="MICRO~32.DLL|Microsoft.WindowsAzure.Storage.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.WindowsAzure.Storage.dll" SelfReg="false"/>
+ <ROW File="Microsoft.WITDataStore32.dll" Component_="Microsoft.WITDataStore32.dll" FileName="MICRO~33.DLL|Microsoft.WITDataStore32.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.WITDataStore32.dll" SelfReg="false"/>
+ <ROW File="mscoree.dll" Component_="mscoree.dll" FileName="mscoree.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\mscoree.dll" SelfReg="false"/>
+ <ROW File="msvcp140d.dll" Component_="msvcp140d.dll" FileName="MSVCP1~1.DLL|msvcp140d.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\msvcp140d.dll" SelfReg="false"/>
+ <ROW File="Newtonsoft.Json.dll" Component_="Newtonsoft.Json.dll" FileName="NEWTON~1.DLL|Newtonsoft.Json.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Newtonsoft.Json.dll" SelfReg="false"/>
+ <ROW File="protobufnet.dll" Component_="protobufnet.dll" FileName="PROTOB~1.DLL|protobuf-net.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\protobuf-net.dll" SelfReg="false"/>
+ <ROW File="Quamotion.TurboJpegWrapper.dll" Component_="Quamotion.TurboJpegWrapper.dll" FileName="QUAMOT~1.DLL|Quamotion.TurboJpegWrapper.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Quamotion.TurboJpegWrapper.dll" SelfReg="false"/>
+ <ROW File="Quamotion.TurboJpegWrapper.pdb" Component_="Quamotion.TurboJpegWrapper.dll" FileName="QUAMOT~1.PDB|Quamotion.TurboJpegWrapper.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Quamotion.TurboJpegWrapper.pdb" SelfReg="false"/>
+ <ROW File="RazorEngine.dll" Component_="RazorEngine.dll" FileName="RAZORE~1.DLL|RazorEngine.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\RazorEngine.dll" SelfReg="false"/>
+ <ROW File="rc.exe" Component_="rc.exe" FileName="rc.exe" Attributes="0" SourcePath="..\Build\PPC\Eureka\rc.exe" SelfReg="false" DigSign="true"/>
+ <ROW File="SharpDX.Direct3D11.dll" Component_="SharpDX.Direct3D11.dll" FileName="SHARPD~1.DLL|SharpDX.Direct3D11.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\SharpDX.Direct3D11.dll" SelfReg="false"/>
+ <ROW File="SharpDX.dll" Component_="SharpDX.dll" FileName="SharpDX.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\SharpDX.dll" SelfReg="false"/>
+ <ROW File="SharpDX.DXGI.dll" Component_="SharpDX.DXGI.dll" FileName="SHARPD~2.DLL|SharpDX.DXGI.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\SharpDX.DXGI.dll" SelfReg="false"/>
+ <ROW File="SharpDX.Mathematics.dll" Component_="SharpDX.Mathematics.dll" FileName="SHARPD~3.DLL|SharpDX.Mathematics.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\SharpDX.Mathematics.dll" SelfReg="false"/>
+ <ROW File="SimpleValidator.dll" Component_="SimpleValidator.dll" FileName="SIMPLE~1.DLL|SimpleValidator.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\SimpleValidator.dll" SelfReg="false"/>
+ <ROW File="OverrideData.xml" Component_="OverrideData.xml" FileName="OVERRI~1.XML|OverrideData.xml" Attributes="0" SourcePath="..\Build\PPC\Eureka\SQLExaminer\Configurations\OverrideData.xml" SelfReg="false"/>
+ <ROW File="ProvisionMachine.xml" Component_="OverrideData.xml" FileName="PROVIS~1.XML|ProvisionMachine.xml" Attributes="0" SourcePath="..\Build\PPC\Eureka\SQLExaminer\Configurations\ProvisionMachine.xml" SelfReg="false"/>
+ <ROW File="Schema.xml" Component_="OverrideData.xml" FileName="Schema.xml" Attributes="0" SourcePath="..\Build\PPC\Eureka\SQLExaminer\Configurations\Schema.xml" SelfReg="false"/>
+ <ROW File="UpdateMachine.xml" Component_="OverrideData.xml" FileName="UPDATE~1.XML|UpdateMachine.xml" Attributes="0" SourcePath="..\Build\PPC\Eureka\SQLExaminer\Configurations\UpdateMachine.xml" SelfReg="false"/>
+ <ROW File="UpdateTwineDB.xml" Component_="OverrideData.xml" FileName="UPDATE~2.XML|UpdateTwineDB.xml" Attributes="0" SourcePath="..\Build\PPC\Eureka\SQLExaminer\Configurations\UpdateTwineDB.xml" SelfReg="false"/>
+ <ROW File="Interop.MSDASC.dll" Component_="Interop.MSDASC.dll" FileName="INTERO~1.DLL|Interop.MSDASC.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\SQLExaminer\Interop.MSDASC.dll" SelfReg="false"/>
+ <ROW File="License.lic" Component_="License.lic" FileName="License.lic" Attributes="0" SourcePath="..\Build\PPC\Eureka\SQLExaminer\License.lic" SelfReg="false"/>
+ <ROW File="SA.Binary.dll" Component_="SA.Binary.dll" FileName="SABINA~1.DLL|SA.Binary.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\SQLExaminer\SA.Binary.dll" SelfReg="false"/>
+ <ROW File="SA.CodeView.dll" Component_="SA.CodeView.dll" FileName="SACODE~1.DLL|SA.CodeView.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\SQLExaminer\SA.CodeView.dll" SelfReg="false"/>
+ <ROW File="SA.CommonTypes.dll" Component_="SA.CommonTypes.dll" FileName="SACOMM~1.DLL|SA.CommonTypes.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\SQLExaminer\SA.CommonTypes.dll" SelfReg="false"/>
+ <ROW File="SA.CommonUI.dll" Component_="SA.CommonUI.dll" FileName="SACOMM~2.DLL|SA.CommonUI.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\SQLExaminer\SA.CommonUI.dll" SelfReg="false"/>
+ <ROW File="SA.SCBaseProvider.dll" Component_="SA.SCBaseProvider.dll" FileName="SASCBA~1.DLL|SA.SCBaseProvider.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\SQLExaminer\SA.SCBaseProvider.dll" SelfReg="false"/>
+ <ROW File="SA.SQLDataExaminer.Engine.dll" Component_="SA.SQLDataExaminer.Engine.dll" FileName="SASQLD~1.DLL|SA.SQLDataExaminer.Engine.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\SQLExaminer\SA.SQLDataExaminer.Engine.dll" SelfReg="false"/>
+ <ROW File="SA.SQLExaminer.Engine.dll" Component_="SA.SQLExaminer.Engine.dll" FileName="SASQLE~1.DLL|SA.SQLExaminer.Engine.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\SQLExaminer\SA.SQLExaminer.Engine.dll" SelfReg="false"/>
+ <ROW File="SA.Utils.ErrorReporter.dll" Component_="SA.Utils.ErrorReporter.dll" FileName="SAUTIL~1.DLL|SA.Utils.ErrorReporter.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\SQLExaminer\SA.Utils.ErrorReporter.dll" SelfReg="false"/>
+ <ROW File="SQLDECmd.exe" Component_="SQLDECmd.exe" FileName="SQLDECmd.exe" Attributes="0" SourcePath="..\Build\PPC\Eureka\SQLExaminer\SQLDECmd.exe" SelfReg="false" DigSign="true"/>
+ <ROW File="SQLECmd.exe" Component_="SQLECmd.exe" FileName="SQLECmd.exe" Attributes="0" SourcePath="..\Build\PPC\Eureka\SQLExaminer\SQLECmd.exe" SelfReg="false" DigSign="true"/>
+ <ROW File="System.Data.SQLite.dll" Component_="System.Data.SQLite.dll" FileName="SYSTEM~1.DLL|System.Data.SQLite.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Data.SQLite.dll" SelfReg="false"/>
+ <ROW File="System.Data.SQLite.dll.config" Component_="GetVersionTag.bat" FileName="SYSTEM~1.CON|System.Data.SQLite.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Data.SQLite.dll.config" SelfReg="false"/>
+ <ROW File="System.Data.SQLite.EF6.dll" Component_="System.Data.SQLite.EF6.dll" FileName="SYSTEM~2.DLL|System.Data.SQLite.EF6.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Data.SQLite.EF6.dll" SelfReg="false"/>
+ <ROW File="System.Data.SQLite.Linq.dll" Component_="System.Data.SQLite.Linq.dll" FileName="SYSTEM~3.DLL|System.Data.SQLite.Linq.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Data.SQLite.Linq.dll" SelfReg="false"/>
+ <ROW File="System.IdentityModel.Tokens.Jwt.dll" Component_="System.IdentityModel.Tokens.Jwt.dll" FileName="SYSTEM~4.DLL|System.IdentityModel.Tokens.Jwt.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.IdentityModel.Tokens.Jwt.dll" SelfReg="false"/>
+ <ROW File="System.IdentityModel.Tokens.Jwt.pdb" Component_="System.IdentityModel.Tokens.Jwt.dll" FileName="SYSTEM~1.PDB|System.IdentityModel.Tokens.Jwt.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.IdentityModel.Tokens.Jwt.pdb" SelfReg="false"/>
+ <ROW File="System.Net.Http.Formatting.dll" Component_="System.Net.Http.Formatting.dll" FileName="SYSTEM~5.DLL|System.Net.Http.Formatting.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Net.Http.Formatting.dll" SelfReg="false"/>
+ <ROW File="System.Reactive.Core.dll" Component_="System.Reactive.Core.dll" FileName="SYSTEM~6.DLL|System.Reactive.Core.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Reactive.Core.dll" SelfReg="false"/>
+ <ROW File="System.Reactive.Interfaces.dll" Component_="System.Reactive.Interfaces.dll" FileName="SYSTEM~7.DLL|System.Reactive.Interfaces.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Reactive.Interfaces.dll" SelfReg="false"/>
+ <ROW File="System.Reactive.Linq.dll" Component_="System.Reactive.Linq.dll" FileName="SYSTEM~8.DLL|System.Reactive.Linq.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Reactive.Linq.dll" SelfReg="false"/>
+ <ROW File="System.Reactive.PlatformServices.dll" Component_="System.Reactive.PlatformServices.dll" FileName="SYSTEM~9.DLL|System.Reactive.PlatformServices.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Reactive.PlatformServices.dll" SelfReg="false"/>
+ <ROW File="System.Web.Http.dll" Component_="System.Web.Http.dll" FileName="SYSTE~11.DLL|System.Web.Http.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Web.Http.dll" SelfReg="false"/>
+ <ROW File="System.Web.Http.WebHost.dll" Component_="System.Web.Http.WebHost.dll" FileName="SYSTE~12.DLL|System.Web.Http.WebHost.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Web.Http.WebHost.dll" SelfReg="false"/>
+ <ROW File="System.Web.Razor.dll" Component_="System.Web.Razor.dll" FileName="SYSTE~13.DLL|System.Web.Razor.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Web.Razor.dll" SelfReg="false"/>
+ <ROW File="System.Windows.Interactivity.dll" Component_="System.Windows.Interactivity.dll" FileName="SYSTE~14.DLL|System.Windows.Interactivity.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Windows.Interactivity.dll" SelfReg="false"/>
+ <ROW File="Tango.AdvancedInstaller.dll" Component_="Tango.AdvancedInstaller.dll" FileName="TANGOA~1.DLL|Tango.AdvancedInstaller.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.AdvancedInstaller.dll" SelfReg="false"/>
+ <ROW File="Tango.AdvancedInstaller.pdb" Component_="Tango.AdvancedInstaller.dll" FileName="TANGOA~1.PDB|Tango.AdvancedInstaller.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.AdvancedInstaller.pdb" SelfReg="false"/>
+ <ROW File="Tango.AnimatedGif.dll" Component_="Tango.AnimatedGif.dll" FileName="TANGOA~2.DLL|Tango.AnimatedGif.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.AnimatedGif.dll" SelfReg="false"/>
+ <ROW File="Tango.AnimatedGif.pdb" Component_="Tango.AnimatedGif.dll" FileName="TANGOA~2.PDB|Tango.AnimatedGif.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.AnimatedGif.pdb" SelfReg="false"/>
+ <ROW File="Tango.BL.dll" Component_="Tango.BL.dll" FileName="TANGOB~1.DLL|Tango.BL.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.BL.dll" SelfReg="false"/>
+ <ROW File="Tango.BL.dll.config" Component_="GetVersionTag.bat" FileName="TANGOB~1.CON|Tango.BL.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.BL.dll.config" SelfReg="false"/>
+ <ROW File="Tango.BL.pdb" Component_="Tango.BL.dll" FileName="TANGOB~1.PDB|Tango.BL.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.BL.pdb" SelfReg="false"/>
+ <ROW File="Tango.CodeGeneration.dll" Component_="Tango.CodeGeneration.dll" FileName="TANGOC~1.DLL|Tango.CodeGeneration.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.CodeGeneration.dll" SelfReg="false"/>
+ <ROW File="Tango.CodeGeneration.pdb" Component_="Tango.CodeGeneration.dll" FileName="TANGOC~1.PDB|Tango.CodeGeneration.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.CodeGeneration.pdb" SelfReg="false"/>
+ <ROW File="Tango.ColorConversion.dll" Component_="Tango.ColorConversion.dll" FileName="TANGOC~2.DLL|Tango.ColorConversion.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.ColorConversion.dll" SelfReg="false"/>
+ <ROW File="Tango.ColorConversion.pdb" Component_="Tango.ColorConversion.dll" FileName="TANGOC~2.PDB|Tango.ColorConversion.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.ColorConversion.pdb" SelfReg="false"/>
+ <ROW File="Tango.Colorful.dll" Component_="Tango.Colorful.dll" FileName="TANGOC~3.DLL|Tango.Colorful.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Colorful.dll" SelfReg="false"/>
+ <ROW File="Tango.Colorful.pdb" Component_="Tango.Colorful.dll" FileName="TANGOC~3.PDB|Tango.Colorful.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Colorful.pdb" SelfReg="false"/>
+ <ROW File="Tango.ColorLib_v1.dll" Component_="Tango.ColorLib_v1.dll" FileName="TANGOC~4.DLL|Tango.ColorLib_v1.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.ColorLib_v1.dll" SelfReg="false"/>
+ <ROW File="Tango.ColorLib_v2.dll" Component_="Tango.ColorLib_v2.dll" FileName="TANGOC~5.DLL|Tango.ColorLib_v2.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.ColorLib_v2.dll" SelfReg="false"/>
+ <ROW File="Tango.ColorLib_v3.dll" Component_="Tango.ColorLib_v3.dll" FileName="TANGOC~6.DLL|Tango.ColorLib_v3.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.ColorLib_v3.dll" SelfReg="false"/>
+ <ROW File="Tango.ColorLib_v4.dll" Component_="Tango.ColorLib_v4.dll" FileName="TANGOC~7.DLL|Tango.ColorLib_v4.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.ColorLib_v4.dll" SelfReg="false"/>
+ <ROW File="Tango.ColorLib_v5.dll" Component_="Tango.ColorLib_v5.dll" FileName="TANGOC~8.DLL|Tango.ColorLib_v5.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.ColorLib_v5.dll" SelfReg="false"/>
+ <ROW File="Tango.ColorLib_v6.dll" Component_="Tango.ColorLib_v6.dll" FileName="TANGOC~9.DLL|Tango.ColorLib_v6.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.ColorLib_v6.dll" SelfReg="false"/>
+ <ROW File="Tango.Console.dll" Component_="Tango.Console.dll" FileName="TANGO~10.DLL|Tango.Console.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Console.dll" SelfReg="false"/>
+ <ROW File="Tango.Console.pdb" Component_="Tango.Console.dll" FileName="TANGOC~4.PDB|Tango.Console.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Console.pdb" SelfReg="false"/>
+ <ROW File="Tango.Core.dll" Component_="Tango.Core.dll" FileName="TANGO~11.DLL|Tango.Core.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Core.dll" SelfReg="false"/>
+ <ROW File="Tango.Core.dll.config" Component_="GetVersionTag.bat" FileName="TANGOC~1.CON|Tango.Core.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Core.dll.config" SelfReg="false"/>
+ <ROW File="Tango.Core.pdb" Component_="Tango.Core.dll" FileName="TANGOC~5.PDB|Tango.Core.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Core.pdb" SelfReg="false"/>
+ <ROW File="Tango.CSV.dll" Component_="Tango.CSV.dll" FileName="TANGO~12.DLL|Tango.CSV.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.CSV.dll" SelfReg="false"/>
+ <ROW File="Tango.CSV.pdb" Component_="Tango.CSV.dll" FileName="TANGOC~6.PDB|Tango.CSV.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.CSV.pdb" SelfReg="false"/>
+ <ROW File="Tango.DataStore.dll" Component_="Tango.DataStore.dll" FileName="TANGOD~1.DLL|Tango.DataStore.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.DataStore.dll" SelfReg="false"/>
+ <ROW File="Tango.DataStore.Editing.dll" Component_="Tango.DataStore.Editing.dll" FileName="TANGOD~2.DLL|Tango.DataStore.Editing.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.DataStore.Editing.dll" SelfReg="false"/>
+ <ROW File="Tango.DataStore.Editing.pdb" Component_="Tango.DataStore.Editing.dll" FileName="TANGOD~1.PDB|Tango.DataStore.Editing.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.DataStore.Editing.pdb" SelfReg="false"/>
+ <ROW File="Tango.DataStore.EF.dll" Component_="Tango.DataStore.EF.dll" FileName="TANGOD~3.DLL|Tango.DataStore.EF.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.DataStore.EF.dll" SelfReg="false"/>
+ <ROW File="Tango.DataStore.EF.pdb" Component_="Tango.DataStore.EF.dll" FileName="TANGOD~2.PDB|Tango.DataStore.EF.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.DataStore.EF.pdb" SelfReg="false"/>
+ <ROW File="Tango.DataStore.pdb" Component_="Tango.DataStore.dll" FileName="TANGOD~3.PDB|Tango.DataStore.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.DataStore.pdb" SelfReg="false"/>
+ <ROW File="Tango.DataStore.Remote.dll" Component_="Tango.DataStore.Remote.dll" FileName="TANGOD~4.DLL|Tango.DataStore.Remote.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.DataStore.Remote.dll" SelfReg="false"/>
+ <ROW File="Tango.DataStore.Remote.pdb" Component_="Tango.DataStore.Remote.dll" FileName="TANGOD~4.PDB|Tango.DataStore.Remote.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.DataStore.Remote.pdb" SelfReg="false"/>
+ <ROW File="Tango.Documents.dll" Component_="Tango.Documents.dll" FileName="TANGOD~5.DLL|Tango.Documents.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Documents.dll" SelfReg="false"/>
+ <ROW File="Tango.Documents.pdb" Component_="Tango.Documents.dll" FileName="TANGOD~5.PDB|Tango.Documents.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Documents.pdb" SelfReg="false"/>
+ <ROW File="Tango.DragAndDrop.dll" Component_="Tango.DragAndDrop.dll" FileName="TANGOD~6.DLL|Tango.DragAndDrop.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.DragAndDrop.dll" SelfReg="false"/>
+ <ROW File="Tango.DragAndDrop.dll.config" Component_="GetVersionTag.bat" FileName="TANGOD~1.CON|Tango.DragAndDrop.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.DragAndDrop.dll.config" SelfReg="false"/>
+ <ROW File="Tango.DragAndDrop.pdb" Component_="Tango.DragAndDrop.dll" FileName="TANGOD~6.PDB|Tango.DragAndDrop.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.DragAndDrop.pdb" SelfReg="false"/>
+ <ROW File="Tango.Emulations.dll" Component_="Tango.Emulations.dll" FileName="TANGOE~1.DLL|Tango.Emulations.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Emulations.dll" SelfReg="false"/>
+ <ROW File="Tango.Emulations.dll.config" Component_="GetVersionTag.bat" FileName="TANGOE~1.CON|Tango.Emulations.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Emulations.dll.config" SelfReg="false"/>
+ <ROW File="Tango.Emulations.pdb" Component_="Tango.Emulations.dll" FileName="TANGOE~1.PDB|Tango.Emulations.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Emulations.pdb" SelfReg="false"/>
+ <ROW File="Tango.Explorer.dll" Component_="Tango.Explorer.dll" FileName="TANGOE~2.DLL|Tango.Explorer.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Explorer.dll" SelfReg="false"/>
+ <ROW File="Tango.Explorer.dll.config" Component_="GetVersionTag.bat" FileName="TANGOE~2.CON|Tango.Explorer.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Explorer.dll.config" SelfReg="false"/>
+ <ROW File="Tango.Explorer.pdb" Component_="Tango.Explorer.dll" FileName="TANGOE~2.PDB|Tango.Explorer.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Explorer.pdb" SelfReg="false"/>
+ <ROW File="Tango.FileSystem.dll" Component_="Tango.FileSystem.dll" FileName="TANGOF~1.DLL|Tango.FileSystem.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.FileSystem.dll" SelfReg="false"/>
+ <ROW File="Tango.FileSystem.pdb" Component_="Tango.FileSystem.dll" FileName="TANGOF~1.PDB|Tango.FileSystem.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.FileSystem.pdb" SelfReg="false"/>
+ <ROW File="Tango.FirmwareUpdateLib.dll" Component_="Tango.FirmwareUpdateLib.dll" FileName="TANGOF~2.DLL|Tango.FirmwareUpdateLib.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.FirmwareUpdateLib.dll" SelfReg="false"/>
+ <ROW File="Tango.FirmwareUpdateLib.pdb" Component_="Tango.FirmwareUpdateLib.dll" FileName="TANGOF~2.PDB|Tango.FirmwareUpdateLib.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.FirmwareUpdateLib.pdb" SelfReg="false"/>
+ <ROW File="Tango.FirmwareUpdateLib.WPF.dll" Component_="Tango.FirmwareUpdateLib.WPF.dll" FileName="TANGOF~3.DLL|Tango.FirmwareUpdateLib.WPF.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.FirmwareUpdateLib.WPF.dll" SelfReg="false"/>
+ <ROW File="Tango.FirmwareUpdateLib.WPF.pdb" Component_="Tango.FirmwareUpdateLib.WPF.dll" FileName="TANGOF~3.PDB|Tango.FirmwareUpdateLib.WPF.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.FirmwareUpdateLib.WPF.pdb" SelfReg="false"/>
+ <ROW File="Tango.Git.dll" Component_="Tango.Git.dll" FileName="TANGOG~1.DLL|Tango.Git.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Git.dll" SelfReg="false"/>
+ <ROW File="Tango.Git.pdb" Component_="Tango.Git.dll" FileName="TANGOG~1.PDB|Tango.Git.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Git.pdb" SelfReg="false"/>
+ <ROW File="Tango.Insights.dll" Component_="Tango.Insights.dll" FileName="TANGOI~1.DLL|Tango.Insights.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Insights.dll" SelfReg="false"/>
+ <ROW File="Tango.Insights.pdb" Component_="Tango.Insights.dll" FileName="TANGOI~1.PDB|Tango.Insights.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Insights.pdb" SelfReg="false"/>
+ <ROW File="Tango.Integration.dll" Component_="Tango.Integration.dll" FileName="TANGOI~2.DLL|Tango.Integration.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Integration.dll" SelfReg="false"/>
+ <ROW File="Tango.Integration.dll.config" Component_="GetVersionTag.bat" FileName="TANGOI~1.CON|Tango.Integration.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Integration.dll.config" SelfReg="false"/>
+ <ROW File="Tango.Integration.pdb" Component_="Tango.Integration.dll" FileName="TANGOI~2.PDB|Tango.Integration.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Integration.pdb" SelfReg="false"/>
+ <ROW File="Tango.Logging.dll" Component_="Tango.Logging.dll" FileName="TANGOL~1.DLL|Tango.Logging.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Logging.dll" SelfReg="false"/>
+ <ROW File="Tango.Logging.pdb" Component_="Tango.Logging.dll" FileName="TANGOL~1.PDB|Tango.Logging.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Logging.pdb" SelfReg="false"/>
+ <ROW File="Tango.PDF.dll" Component_="Tango.PDF.dll" FileName="TANGOP~1.DLL|Tango.PDF.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PDF.dll" SelfReg="false"/>
+ <ROW File="Tango.PDF.pdb" Component_="Tango.PDF.dll" FileName="TANGOP~1.PDB|Tango.PDF.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PDF.pdb" SelfReg="false"/>
+ <ROW File="Tango.PMR.dll" Component_="Tango.PMR.dll" FileName="TANGOP~2.DLL|Tango.PMR.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PMR.dll" SelfReg="false"/>
+ <ROW File="Tango.PMR.pdb" Component_="Tango.PMR.dll" FileName="TANGOP~2.PDB|Tango.PMR.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PMR.pdb" SelfReg="false"/>
+ <ROW File="Tango.PPC.BackupRestore.dll" Component_="Tango.PPC.BackupRestore.dll" FileName="TANGOP~3.DLL|Tango.PPC.BackupRestore.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.BackupRestore.dll" SelfReg="false"/>
+ <ROW File="Tango.PPC.BackupRestore.dll.config" Component_="GetVersionTag.bat" FileName="TANGOP~1.CON|Tango.PPC.BackupRestore.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.BackupRestore.dll.config" SelfReg="false"/>
+ <ROW File="Tango.PPC.BackupRestore.pdb" Component_="Tango.PPC.BackupRestore.dll" FileName="TANGOP~3.PDB|Tango.PPC.BackupRestore.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.BackupRestore.pdb" SelfReg="false"/>
+ <ROW File="Tango.PPC.BugReporting.dll" Component_="Tango.PPC.BugReporting.dll" FileName="TANGOP~4.DLL|Tango.PPC.BugReporting.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.BugReporting.dll" SelfReg="false"/>
+ <ROW File="Tango.PPC.BugReporting.dll.config" Component_="GetVersionTag.bat" FileName="TANGOP~2.CON|Tango.PPC.BugReporting.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.BugReporting.dll.config" SelfReg="false"/>
+ <ROW File="Tango.PPC.BugReporting.pdb" Component_="Tango.PPC.BugReporting.dll" FileName="TANGOP~4.PDB|Tango.PPC.BugReporting.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.BugReporting.pdb" SelfReg="false"/>
+ <ROW File="Tango.PPC.Common.dll" Component_="Tango.PPC.Common.dll" FileName="TANGOP~5.DLL|Tango.PPC.Common.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Common.dll" SelfReg="false"/>
+ <ROW File="Tango.PPC.Common.dll.config" Component_="GetVersionTag.bat" FileName="TANGOP~3.CON|Tango.PPC.Common.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Common.dll.config" SelfReg="false"/>
+ <ROW File="Tango.PPC.Common.pdb" Component_="Tango.PPC.Common.dll" FileName="TANGOP~5.PDB|Tango.PPC.Common.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Common.pdb" SelfReg="false"/>
+ <ROW File="Tango.PPC.Events.dll" Component_="Tango.PPC.Events.dll" FileName="TANGOP~6.DLL|Tango.PPC.Events.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Events.dll" SelfReg="false"/>
+ <ROW File="Tango.PPC.Events.dll.config" Component_="GetVersionTag.bat" FileName="TANGOP~4.CON|Tango.PPC.Events.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Events.dll.config" SelfReg="false"/>
+ <ROW File="Tango.PPC.Events.pdb" Component_="Tango.PPC.Events.dll" FileName="TANGOP~6.PDB|Tango.PPC.Events.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Events.pdb" SelfReg="false"/>
+ <ROW File="Tango.PPC.JobsV2.dll" Component_="Tango.PPC.JobsV2.dll" FileName="TANGOP~7.DLL|Tango.PPC.JobsV2.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.JobsV2.dll" SelfReg="false"/>
+ <ROW File="Tango.PPC.JobsV2.dll.config" Component_="GetVersionTag.bat" FileName="TANGOP~5.CON|Tango.PPC.JobsV2.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.JobsV2.dll.config" SelfReg="false"/>
+ <ROW File="Tango.PPC.JobsV2.pdb" Component_="Tango.PPC.JobsV2.dll" FileName="TANGOP~7.PDB|Tango.PPC.JobsV2.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.JobsV2.pdb" SelfReg="false"/>
+ <ROW File="Tango.PPC.MachineSettings.dll" Component_="Tango.PPC.MachineSettings.dll" FileName="TANGOP~8.DLL|Tango.PPC.MachineSettings.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.MachineSettings.dll" SelfReg="false"/>
+ <ROW File="Tango.PPC.MachineSettings.dll.config" Component_="GetVersionTag.bat" FileName="TANGOP~6.CON|Tango.PPC.MachineSettings.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.MachineSettings.dll.config" SelfReg="false"/>
+ <ROW File="Tango.PPC.MachineSettings.pdb" Component_="Tango.PPC.MachineSettings.dll" FileName="TANGOP~8.PDB|Tango.PPC.MachineSettings.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.MachineSettings.pdb" SelfReg="false"/>
+ <ROW File="Tango.PPC.Maintenance.dll" Component_="Tango.PPC.Maintenance.dll" FileName="TANGOP~9.DLL|Tango.PPC.Maintenance.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Maintenance.dll" SelfReg="false"/>
+ <ROW File="Tango.PPC.Maintenance.dll.config" Component_="GetVersionTag.bat" FileName="TANGOP~7.CON|Tango.PPC.Maintenance.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Maintenance.dll.config" SelfReg="false"/>
+ <ROW File="Tango.PPC.Maintenance.pdb" Component_="Tango.PPC.Maintenance.dll" FileName="TANGOP~9.PDB|Tango.PPC.Maintenance.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Maintenance.pdb" SelfReg="false"/>
+ <ROW File="Tango.PPC.Shared.dll" Component_="Tango.PPC.Shared.dll" FileName="TANGO~13.DLL|Tango.PPC.Shared.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Shared.dll" SelfReg="false"/>
+ <ROW File="Tango.PPC.Shared.pdb" Component_="Tango.PPC.Shared.dll" FileName="TANGO~10.PDB|Tango.PPC.Shared.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Shared.pdb" SelfReg="false"/>
+ <ROW File="Tango.PPC.Storage.dll" Component_="Tango.PPC.Storage.dll" FileName="TANGO~14.DLL|Tango.PPC.Storage.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Storage.dll" SelfReg="false"/>
+ <ROW File="Tango.PPC.Storage.dll.config" Component_="GetVersionTag.bat" FileName="TANGOP~8.CON|Tango.PPC.Storage.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Storage.dll.config" SelfReg="false"/>
+ <ROW File="Tango.PPC.Storage.pdb" Component_="Tango.PPC.Storage.dll" FileName="TANGO~11.PDB|Tango.PPC.Storage.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Storage.pdb" SelfReg="false"/>
+ <ROW File="Tango.PPC.Technician.dll" Component_="Tango.PPC.Technician.dll" FileName="TANGO~15.DLL|Tango.PPC.Technician.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Technician.dll" SelfReg="false"/>
+ <ROW File="Tango.PPC.Technician.dll.config" Component_="GetVersionTag.bat" FileName="TANGOP~9.CON|Tango.PPC.Technician.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Technician.dll.config" SelfReg="false"/>
+ <ROW File="Tango.PPC.Technician.pdb" Component_="Tango.PPC.Technician.dll" FileName="TANGO~12.PDB|Tango.PPC.Technician.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Technician.pdb" SelfReg="false"/>
+ <ROW File="Tango.PPC.UI.exe" Component_="Tango.PPC.UI.exe" FileName="TANGOP~1.EXE|Tango.PPC.UI.exe" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.UI.exe" SelfReg="false" DigSign="true"/>
+ <ROW File="Tango.PPC.UI.exe.config" Component_="GetVersionTag.bat" FileName="TANGO~10.CON|Tango.PPC.UI.exe.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.UI.exe.config" SelfReg="false"/>
+ <ROW File="Tango.PPC.UI.pdb" Component_="Tango.PPC.UI.exe" FileName="TANGO~13.PDB|Tango.PPC.UI.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.UI.pdb" SelfReg="false"/>
+ <ROW File="Tango.Pulse.dll" Component_="Tango.Pulse.dll" FileName="TANGO~16.DLL|Tango.Pulse.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Pulse.dll" SelfReg="false"/>
+ <ROW File="Tango.Pulse.pdb" Component_="Tango.Pulse.dll" FileName="TANGO~14.PDB|Tango.Pulse.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Pulse.pdb" SelfReg="false"/>
+ <ROW File="Tango.RemoteDesktop.dll" Component_="Tango.RemoteDesktop.dll" FileName="TANGOR~1.DLL|Tango.RemoteDesktop.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.RemoteDesktop.dll" SelfReg="false"/>
+ <ROW File="Tango.RemoteDesktop.pdb" Component_="Tango.RemoteDesktop.dll" FileName="TANGOR~1.PDB|Tango.RemoteDesktop.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.RemoteDesktop.pdb" SelfReg="false"/>
+ <ROW File="Tango.Serialization.dll" Component_="Tango.Serialization.dll" FileName="TANGOS~1.DLL|Tango.Serialization.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Serialization.dll" SelfReg="false"/>
+ <ROW File="Tango.Serialization.pdb" Component_="Tango.Serialization.dll" FileName="TANGOS~1.PDB|Tango.Serialization.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Serialization.pdb" SelfReg="false"/>
+ <ROW File="Tango.Settings.dll" Component_="Tango.Settings.dll" FileName="TANGOS~2.DLL|Tango.Settings.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Settings.dll" SelfReg="false"/>
+ <ROW File="Tango.Settings.pdb" Component_="Tango.Settings.dll" FileName="TANGOS~2.PDB|Tango.Settings.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Settings.pdb" SelfReg="false"/>
+ <ROW File="Tango.SharedUI.dll" Component_="Tango.SharedUI.dll" FileName="TANGOS~3.DLL|Tango.SharedUI.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.SharedUI.dll" SelfReg="false"/>
+ <ROW File="Tango.SharedUI.dll.config" Component_="GetVersionTag.bat" FileName="TANGOS~1.CON|Tango.SharedUI.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.SharedUI.dll.config" SelfReg="false"/>
+ <ROW File="Tango.SharedUI.pdb" Component_="Tango.SharedUI.dll" FileName="TANGOS~3.PDB|Tango.SharedUI.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.SharedUI.pdb" SelfReg="false"/>
+ <ROW File="Tango.SQLExaminer.dll" Component_="Tango.SQLExaminer.dll" FileName="TANGOS~4.DLL|Tango.SQLExaminer.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.SQLExaminer.dll" SelfReg="false"/>
+ <ROW File="Tango.SQLExaminer.pdb" Component_="Tango.SQLExaminer.dll" FileName="TANGOS~4.PDB|Tango.SQLExaminer.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.SQLExaminer.pdb" SelfReg="false"/>
+ <ROW File="Tango.SystemInfo.dll" Component_="Tango.SystemInfo.dll" FileName="TANGOS~5.DLL|Tango.SystemInfo.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.SystemInfo.dll" SelfReg="false"/>
+ <ROW File="Tango.SystemInfo.pdb" Component_="Tango.SystemInfo.dll" FileName="TANGOS~5.PDB|Tango.SystemInfo.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.SystemInfo.pdb" SelfReg="false"/>
+ <ROW File="Tango.TFS.dll" Component_="Tango.TFS.dll" FileName="TANGOT~1.DLL|Tango.TFS.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.TFS.dll" SelfReg="false"/>
+ <ROW File="Tango.TFS.dll.config" Component_="GetVersionTag.bat" FileName="TANGOT~1.CON|Tango.TFS.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.TFS.dll.config" SelfReg="false"/>
+ <ROW File="Tango.TFS.pdb" Component_="Tango.TFS.dll" FileName="TANGOT~1.PDB|Tango.TFS.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.TFS.pdb" SelfReg="false"/>
+ <ROW File="Tango.Touch.dll" Component_="Tango.Touch.dll" FileName="TANGOT~2.DLL|Tango.Touch.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Touch.dll" SelfReg="false"/>
+ <ROW File="Tango.Touch.dll.config" Component_="GetVersionTag.bat" FileName="TANGOT~2.CON|Tango.Touch.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Touch.dll.config" SelfReg="false"/>
+ <ROW File="Tango.Touch.pdb" Component_="Tango.Touch.dll" FileName="TANGOT~2.PDB|Tango.Touch.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Touch.pdb" SelfReg="false"/>
+ <ROW File="Tango.Transport.dll" Component_="Tango.Transport.dll" FileName="TANGOT~3.DLL|Tango.Transport.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Transport.dll" SelfReg="false"/>
+ <ROW File="Tango.Transport.dll.config" Component_="GetVersionTag.bat" FileName="TANGOT~3.CON|Tango.Transport.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Transport.dll.config" SelfReg="false"/>
+ <ROW File="Tango.Transport.pdb" Component_="Tango.Transport.dll" FileName="TANGOT~3.PDB|Tango.Transport.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Transport.pdb" SelfReg="false"/>
+ <ROW File="Tango.Web.dll" Component_="Tango.Web.dll" FileName="TANGOW~1.DLL|Tango.Web.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Web.dll" SelfReg="false"/>
+ <ROW File="Tango.Web.dll.config" Component_="GetVersionTag.bat" FileName="TANGOW~1.CON|Tango.Web.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Web.dll.config" SelfReg="false"/>
+ <ROW File="Tango.Web.pdb" Component_="Tango.Web.dll" FileName="TANGOW~1.PDB|Tango.Web.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.Web.pdb" SelfReg="false"/>
+ <ROW File="Tango.WebRTC.dll" Component_="Tango.WebRTC.dll" FileName="TANGOW~2.DLL|Tango.WebRTC.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.WebRTC.dll" SelfReg="false"/>
+ <ROW File="Tango.WebRTC.pdb" Component_="Tango.WebRTC.dll" FileName="TANGOW~2.PDB|Tango.WebRTC.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.WebRTC.pdb" SelfReg="false"/>
+ <ROW File="Tango.WiFi.dll" Component_="Tango.WiFi.dll" FileName="TANGOW~3.DLL|Tango.WiFi.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.WiFi.dll" SelfReg="false"/>
+ <ROW File="Tango.WiFi.pdb" Component_="Tango.WiFi.dll" FileName="TANGOW~3.PDB|Tango.WiFi.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.WiFi.pdb" SelfReg="false"/>
+ <ROW File="ucrtbased.dll" Component_="ucrtbased.dll" FileName="UCRTBA~1.DLL|ucrtbased.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\ucrtbased.dll" SelfReg="false"/>
+ <ROW File="vcruntime140.dll" Component_="vcruntime140.dll" FileName="VCRUNT~1.DLL|vcruntime140.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\vcruntime140.dll" SelfReg="false"/>
+ <ROW File="vcruntime140d.dll" Component_="vcruntime140d.dll" FileName="VCRUNT~2.DLL|vcruntime140d.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\vcruntime140d.dll" SelfReg="false"/>
+ <ROW File="WebRtc.NET.dll" Component_="WebRtc.NET.dll" FileName="WEBRTC~1.DLL|WebRtc.NET.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\WebRtc.NET.dll" SelfReg="false"/>
+ <ROW File="turbojpeg.dll" Component_="turbojpeg.dll" FileName="TURBOJ~1.DLL|turbojpeg.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\win7-x64\turbojpeg.dll" SelfReg="false"/>
+ <ROW File="turbojpeg.dll.meta" Component_="turbojpeg.dll.meta" FileName="TURBOJ~1.MET|turbojpeg.dll.meta" Attributes="0" SourcePath="..\Build\PPC\Eureka\win7-x64\turbojpeg.dll.meta" SelfReg="false"/>
+ <ROW File="turbojpeg.dll_1" Component_="turbojpeg.dll_1" FileName="TURBOJ~1.DLL|turbojpeg.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\win7-x86\turbojpeg.dll" SelfReg="false"/>
+ <ROW File="turbojpeg.dll.meta_1" Component_="turbojpeg.dll.meta_1" FileName="TURBOJ~1.MET|turbojpeg.dll.meta" Attributes="0" SourcePath="..\Build\PPC\Eureka\win7-x86\turbojpeg.dll.meta" SelfReg="false"/>
+ <ROW File="WindowsInput.dll" Component_="WindowsInput.dll" FileName="WINDOW~1.DLL|WindowsInput.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\WindowsInput.dll" SelfReg="false"/>
+ <ROW File="Tango.PPC.Updater.exe" Component_="Tango.PPC.Updater.exe" FileName="TANGOP~2.EXE|Tango.PPC.Updater.exe" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Updater.exe" SelfReg="false" DigSign="true"/>
+ <ROW File="Tango.PPC.Updater.exe.config" Component_="GetVersionTag.bat" FileName="TANGO~11.CON|Tango.PPC.Updater.exe.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Updater.exe.config" SelfReg="false"/>
+ <ROW File="Tango.PPC.Updater.pdb" Component_="Tango.PPC.Updater.exe" FileName="TANGO~15.PDB|Tango.PPC.Updater.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.PPC.Updater.pdb" SelfReg="false"/>
+ <ROW File="FluentFTP.dll" Component_="FluentFTP.dll" FileName="FLUENT~1.DLL|FluentFTP.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\FluentFTP.dll" SelfReg="false"/>
+ <ROW File="Hyak.Common.dll" Component_="Hyak.Common.dll" FileName="HYAKCO~1.DLL|Hyak.Common.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Hyak.Common.dll" SelfReg="false"/>
+ <ROW File="Microsoft.Azure.Common.dll" Component_="Microsoft.Azure.Common.dll" FileName="MICROS~3.DLL|Microsoft.Azure.Common.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.Azure.Common.dll" SelfReg="false"/>
+ <ROW File="Microsoft.Azure.Common.NetFramework.dll" Component_="Microsoft.Azure.Common.NetFramework.dll" FileName="MICROS~4.DLL|Microsoft.Azure.Common.NetFramework.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.Azure.Common.NetFramework.dll" SelfReg="false"/>
+ <ROW File="Microsoft.Azure.ResourceManager.dll" Component_="Microsoft.Azure.ResourceManager.dll" FileName="MICROS~5.DLL|Microsoft.Azure.ResourceManager.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.Azure.ResourceManager.dll" SelfReg="false"/>
+ <ROW File="Microsoft.Data.Edm.dll" Component_="Microsoft.Data.Edm.dll" FileName="MICRO~34.DLL|Microsoft.Data.Edm.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.Data.Edm.dll" SelfReg="false"/>
+ <ROW File="Microsoft.Data.OData.dll" Component_="Microsoft.Data.OData.dll" FileName="MICRO~35.DLL|Microsoft.Data.OData.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.Data.OData.dll" SelfReg="false"/>
+ <ROW File="Microsoft.Data.Services.Client.dll" Component_="Microsoft.Data.Services.Client.dll" FileName="MICRO~36.DLL|Microsoft.Data.Services.Client.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.Data.Services.Client.dll" SelfReg="false"/>
+ <ROW File="Microsoft.SqlServer.AzureStorageEnum.dll" Component_="Microsoft.SqlServer.AzureStorageEnum.dll" FileName="MICRO~37.DLL|Microsoft.SqlServer.AzureStorageEnum.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.SqlServer.AzureStorageEnum.dll" SelfReg="false"/>
+ <ROW File="System.IO.Compression.FileSystem.dll" Component_="System.IO.Compression.FileSystem.dll" FileName="SYSTE~10.DLL|System.IO.Compression.FileSystem.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.IO.Compression.FileSystem.dll" SelfReg="false"/>
+ <ROW File="System.Spatial.dll" Component_="System.Spatial.dll" FileName="SYSTE~15.DLL|System.Spatial.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Spatial.dll" SelfReg="false"/>
+ <ROW File="Tango.DataStore.Lite.dll" Component_="Tango.DataStore.Lite.dll" FileName="TANGOD~7.DLL|Tango.DataStore.Lite.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.DataStore.Lite.dll" SelfReg="false"/>
+ <ROW File="Tango.DataStore.Lite.pdb" Component_="Tango.DataStore.Lite.dll" FileName="TANGOD~7.PDB|Tango.DataStore.Lite.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\Tango.DataStore.Lite.pdb" SelfReg="false"/>
+ <ROW File="Intro.wmv" Component_="GetVersionTag.bat" FileName="Intro.wmv" Attributes="0" SourcePath="..\Build\PPC\Eureka\Intro.wmv" SelfReg="false"/>
+ <ROW File="WPFMediaKit.dll" Component_="WPFMediaKit.dll" FileName="WPFMED~1.DLL|WPFMediaKit.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\WPFMediaKit.dll" SelfReg="false"/>
+ <ROW File="DirectShowLib2005.dll" Component_="DirectShowLib2005.dll" FileName="DIRECT~1.DLL|DirectShowLib-2005.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\DirectShowLib-2005.dll" SelfReg="false"/>
+ <ROW File="EVRPresenter32.dll" Component_="EVRPresenter32.dll" FileName="EVRPRE~1.DLL|EVRPresenter32.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\EVRPresenter32.dll" SelfReg="false"/>
+ <ROW File="EVRPresenter64.dll" Component_="EVRPresenter64.dll" FileName="EVRPRE~2.DLL|EVRPresenter64.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\EVRPresenter64.dll" SelfReg="false"/>
+ <ROW File="Microsoft.Win32.Primitives.dll" Component_="Microsoft.Win32.Primitives.dll" FileName="MICRO~38.DLL|Microsoft.Win32.Primitives.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\Microsoft.Win32.Primitives.dll" SelfReg="false"/>
+ <ROW File="netstandard.dll" Component_="netstandard.dll" FileName="NETSTA~1.DLL|netstandard.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\netstandard.dll" SelfReg="false"/>
+ <ROW File="RealTimeGraphX.dll" Component_="RealTimeGraphX.dll" FileName="REALTI~1.DLL|RealTimeGraphX.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\RealTimeGraphX.dll" SelfReg="false"/>
+ <ROW File="RealTimeGraphX.pdb" Component_="RealTimeGraphX.dll" FileName="REALTI~1.PDB|RealTimeGraphX.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\RealTimeGraphX.pdb" SelfReg="false"/>
+ <ROW File="RealTimeGraphX.WPF.dll" Component_="RealTimeGraphX.WPF.dll" FileName="REALTI~2.DLL|RealTimeGraphX.WPF.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\RealTimeGraphX.WPF.dll" SelfReg="false"/>
+ <ROW File="RealTimeGraphX.WPF.pdb" Component_="RealTimeGraphX.WPF.dll" FileName="REALTI~2.PDB|RealTimeGraphX.WPF.pdb" Attributes="0" SourcePath="..\Build\PPC\Eureka\RealTimeGraphX.WPF.pdb" SelfReg="false"/>
+ <ROW File="System.AppContext.dll" Component_="System.AppContext.dll" FileName="SYSTE~16.DLL|System.AppContext.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.AppContext.dll" SelfReg="false"/>
+ <ROW File="System.Collections.Concurrent.dll" Component_="System.Collections.Concurrent.dll" FileName="SYSTE~17.DLL|System.Collections.Concurrent.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Collections.Concurrent.dll" SelfReg="false"/>
+ <ROW File="System.Collections.dll" Component_="System.Collections.dll" FileName="SYSTE~18.DLL|System.Collections.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Collections.dll" SelfReg="false"/>
+ <ROW File="System.Collections.NonGeneric.dll" Component_="System.Collections.NonGeneric.dll" FileName="SYSTE~19.DLL|System.Collections.NonGeneric.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Collections.NonGeneric.dll" SelfReg="false"/>
+ <ROW File="System.Collections.Specialized.dll" Component_="System.Collections.Specialized.dll" FileName="SYSTE~20.DLL|System.Collections.Specialized.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Collections.Specialized.dll" SelfReg="false"/>
+ <ROW File="System.ComponentModel.dll" Component_="System.ComponentModel.dll" FileName="SYSTE~21.DLL|System.ComponentModel.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.ComponentModel.dll" SelfReg="false"/>
+ <ROW File="System.ComponentModel.EventBasedAsync.dll" Component_="System.ComponentModel.EventBasedAsync.dll" FileName="SYSTE~22.DLL|System.ComponentModel.EventBasedAsync.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.ComponentModel.EventBasedAsync.dll" SelfReg="false"/>
+ <ROW File="System.ComponentModel.Primitives.dll" Component_="System.ComponentModel.Primitives.dll" FileName="SYSTE~23.DLL|System.ComponentModel.Primitives.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.ComponentModel.Primitives.dll" SelfReg="false"/>
+ <ROW File="System.ComponentModel.TypeConverter.dll" Component_="System.ComponentModel.TypeConverter.dll" FileName="SYSTE~24.DLL|System.ComponentModel.TypeConverter.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.ComponentModel.TypeConverter.dll" SelfReg="false"/>
+ <ROW File="System.Console.dll" Component_="System.Console.dll" FileName="SYSTE~25.DLL|System.Console.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Console.dll" SelfReg="false"/>
+ <ROW File="System.Data.Common.dll" Component_="System.Data.Common.dll" FileName="SYSTE~26.DLL|System.Data.Common.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Data.Common.dll" SelfReg="false"/>
+ <ROW File="System.Diagnostics.Contracts.dll" Component_="System.Diagnostics.Contracts.dll" FileName="SYSTE~27.DLL|System.Diagnostics.Contracts.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Diagnostics.Contracts.dll" SelfReg="false"/>
+ <ROW File="System.Diagnostics.Debug.dll" Component_="System.Diagnostics.Debug.dll" FileName="SYSTE~28.DLL|System.Diagnostics.Debug.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Diagnostics.Debug.dll" SelfReg="false"/>
+ <ROW File="System.Diagnostics.FileVersionInfo.dll" Component_="System.Diagnostics.FileVersionInfo.dll" FileName="SYSTE~29.DLL|System.Diagnostics.FileVersionInfo.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Diagnostics.FileVersionInfo.dll" SelfReg="false"/>
+ <ROW File="System.Diagnostics.Process.dll" Component_="System.Diagnostics.Process.dll" FileName="SYSTE~30.DLL|System.Diagnostics.Process.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Diagnostics.Process.dll" SelfReg="false"/>
+ <ROW File="System.Diagnostics.StackTrace.dll" Component_="System.Diagnostics.StackTrace.dll" FileName="SYSTE~31.DLL|System.Diagnostics.StackTrace.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Diagnostics.StackTrace.dll" SelfReg="false"/>
+ <ROW File="System.Diagnostics.TextWriterTraceListener.dll" Component_="System.Diagnostics.TextWriterTraceListener.dll" FileName="SYSTE~32.DLL|System.Diagnostics.TextWriterTraceListener.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Diagnostics.TextWriterTraceListener.dll" SelfReg="false"/>
+ <ROW File="System.Diagnostics.Tools.dll" Component_="System.Diagnostics.Tools.dll" FileName="SYSTE~33.DLL|System.Diagnostics.Tools.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Diagnostics.Tools.dll" SelfReg="false"/>
+ <ROW File="System.Diagnostics.TraceSource.dll" Component_="System.Diagnostics.TraceSource.dll" FileName="SYSTE~34.DLL|System.Diagnostics.TraceSource.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Diagnostics.TraceSource.dll" SelfReg="false"/>
+ <ROW File="System.Diagnostics.Tracing.dll" Component_="System.Diagnostics.Tracing.dll" FileName="SYSTE~35.DLL|System.Diagnostics.Tracing.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Diagnostics.Tracing.dll" SelfReg="false"/>
+ <ROW File="System.Drawing.Primitives.dll" Component_="System.Drawing.Primitives.dll" FileName="SYSTE~36.DLL|System.Drawing.Primitives.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Drawing.Primitives.dll" SelfReg="false"/>
+ <ROW File="System.Dynamic.Runtime.dll" Component_="System.Dynamic.Runtime.dll" FileName="SYSTE~37.DLL|System.Dynamic.Runtime.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Dynamic.Runtime.dll" SelfReg="false"/>
+ <ROW File="System.Globalization.Calendars.dll" Component_="System.Globalization.Calendars.dll" FileName="SYSTE~38.DLL|System.Globalization.Calendars.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Globalization.Calendars.dll" SelfReg="false"/>
+ <ROW File="System.Globalization.dll" Component_="System.Globalization.dll" FileName="SYSTE~39.DLL|System.Globalization.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Globalization.dll" SelfReg="false"/>
+ <ROW File="System.Globalization.Extensions.dll" Component_="System.Globalization.Extensions.dll" FileName="SYSTE~40.DLL|System.Globalization.Extensions.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Globalization.Extensions.dll" SelfReg="false"/>
+ <ROW File="System.IO.Compression.dll" Component_="System.IO.Compression.dll" FileName="SYSTE~41.DLL|System.IO.Compression.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.IO.Compression.dll" SelfReg="false"/>
+ <ROW File="System.IO.Compression.ZipFile.dll" Component_="System.IO.Compression.ZipFile.dll" FileName="SYSTE~42.DLL|System.IO.Compression.ZipFile.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.IO.Compression.ZipFile.dll" SelfReg="false"/>
+ <ROW File="System.IO.dll" Component_="System.IO.dll" FileName="SYSTE~43.DLL|System.IO.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.IO.dll" SelfReg="false"/>
+ <ROW File="System.IO.FileSystem.dll" Component_="System.IO.FileSystem.dll" FileName="SYSTE~44.DLL|System.IO.FileSystem.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.IO.FileSystem.dll" SelfReg="false"/>
+ <ROW File="System.IO.FileSystem.DriveInfo.dll" Component_="System.IO.FileSystem.DriveInfo.dll" FileName="SYSTE~45.DLL|System.IO.FileSystem.DriveInfo.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.IO.FileSystem.DriveInfo.dll" SelfReg="false"/>
+ <ROW File="System.IO.FileSystem.Primitives.dll" Component_="System.IO.FileSystem.Primitives.dll" FileName="SYSTE~46.DLL|System.IO.FileSystem.Primitives.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.IO.FileSystem.Primitives.dll" SelfReg="false"/>
+ <ROW File="System.IO.FileSystem.Watcher.dll" Component_="System.IO.FileSystem.Watcher.dll" FileName="SYSTE~47.DLL|System.IO.FileSystem.Watcher.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.IO.FileSystem.Watcher.dll" SelfReg="false"/>
+ <ROW File="System.IO.IsolatedStorage.dll" Component_="System.IO.IsolatedStorage.dll" FileName="SYSTE~48.DLL|System.IO.IsolatedStorage.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.IO.IsolatedStorage.dll" SelfReg="false"/>
+ <ROW File="System.IO.MemoryMappedFiles.dll" Component_="System.IO.MemoryMappedFiles.dll" FileName="SYSTE~49.DLL|System.IO.MemoryMappedFiles.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.IO.MemoryMappedFiles.dll" SelfReg="false"/>
+ <ROW File="System.IO.Pipes.dll" Component_="System.IO.Pipes.dll" FileName="SYSTE~50.DLL|System.IO.Pipes.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.IO.Pipes.dll" SelfReg="false"/>
+ <ROW File="System.IO.UnmanagedMemoryStream.dll" Component_="System.IO.UnmanagedMemoryStream.dll" FileName="SYSTE~51.DLL|System.IO.UnmanagedMemoryStream.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.IO.UnmanagedMemoryStream.dll" SelfReg="false"/>
+ <ROW File="System.Linq.dll" Component_="System.Linq.dll" FileName="SYSTE~52.DLL|System.Linq.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Linq.dll" SelfReg="false"/>
+ <ROW File="System.Linq.Expressions.dll" Component_="System.Linq.Expressions.dll" FileName="SYSTE~53.DLL|System.Linq.Expressions.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Linq.Expressions.dll" SelfReg="false"/>
+ <ROW File="System.Linq.Parallel.dll" Component_="System.Linq.Parallel.dll" FileName="SYSTE~54.DLL|System.Linq.Parallel.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Linq.Parallel.dll" SelfReg="false"/>
+ <ROW File="System.Linq.Queryable.dll" Component_="System.Linq.Queryable.dll" FileName="SYSTE~55.DLL|System.Linq.Queryable.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Linq.Queryable.dll" SelfReg="false"/>
+ <ROW File="System.Net.Http.dll" Component_="System.Net.Http.dll" FileName="SYSTE~56.DLL|System.Net.Http.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Net.Http.dll" SelfReg="false"/>
+ <ROW File="System.Net.NameResolution.dll" Component_="System.Net.NameResolution.dll" FileName="SYSTE~57.DLL|System.Net.NameResolution.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Net.NameResolution.dll" SelfReg="false"/>
+ <ROW File="System.Net.NetworkInformation.dll" Component_="System.Net.NetworkInformation.dll" FileName="SYSTE~58.DLL|System.Net.NetworkInformation.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Net.NetworkInformation.dll" SelfReg="false"/>
+ <ROW File="System.Net.Ping.dll" Component_="System.Net.Ping.dll" FileName="SYSTE~59.DLL|System.Net.Ping.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Net.Ping.dll" SelfReg="false"/>
+ <ROW File="System.Net.Primitives.dll" Component_="System.Net.Primitives.dll" FileName="SYSTE~60.DLL|System.Net.Primitives.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Net.Primitives.dll" SelfReg="false"/>
+ <ROW File="System.Net.Requests.dll" Component_="System.Net.Requests.dll" FileName="SYSTE~61.DLL|System.Net.Requests.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Net.Requests.dll" SelfReg="false"/>
+ <ROW File="System.Net.Security.dll" Component_="System.Net.Security.dll" FileName="SYSTE~62.DLL|System.Net.Security.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Net.Security.dll" SelfReg="false"/>
+ <ROW File="System.Net.Sockets.dll" Component_="System.Net.Sockets.dll" FileName="SYSTE~63.DLL|System.Net.Sockets.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Net.Sockets.dll" SelfReg="false"/>
+ <ROW File="System.Net.WebHeaderCollection.dll" Component_="System.Net.WebHeaderCollection.dll" FileName="SYSTE~64.DLL|System.Net.WebHeaderCollection.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Net.WebHeaderCollection.dll" SelfReg="false"/>
+ <ROW File="System.Net.WebSockets.Client.dll" Component_="System.Net.WebSockets.Client.dll" FileName="SYSTE~65.DLL|System.Net.WebSockets.Client.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Net.WebSockets.Client.dll" SelfReg="false"/>
+ <ROW File="System.Net.WebSockets.dll" Component_="System.Net.WebSockets.dll" FileName="SYSTE~66.DLL|System.Net.WebSockets.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Net.WebSockets.dll" SelfReg="false"/>
+ <ROW File="System.ObjectModel.dll" Component_="System.ObjectModel.dll" FileName="SYSTE~67.DLL|System.ObjectModel.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.ObjectModel.dll" SelfReg="false"/>
+ <ROW File="System.Reflection.dll" Component_="System.Reflection.dll" FileName="SYSTE~68.DLL|System.Reflection.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Reflection.dll" SelfReg="false"/>
+ <ROW File="System.Reflection.Extensions.dll" Component_="System.Reflection.Extensions.dll" FileName="SYSTE~69.DLL|System.Reflection.Extensions.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Reflection.Extensions.dll" SelfReg="false"/>
+ <ROW File="System.Reflection.Primitives.dll" Component_="System.Reflection.Primitives.dll" FileName="SYSTE~70.DLL|System.Reflection.Primitives.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Reflection.Primitives.dll" SelfReg="false"/>
+ <ROW File="System.Resources.Reader.dll" Component_="System.Resources.Reader.dll" FileName="SYSTE~71.DLL|System.Resources.Reader.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Resources.Reader.dll" SelfReg="false"/>
+ <ROW File="System.Resources.ResourceManager.dll" Component_="System.Resources.ResourceManager.dll" FileName="SYSTE~72.DLL|System.Resources.ResourceManager.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Resources.ResourceManager.dll" SelfReg="false"/>
+ <ROW File="System.Resources.Writer.dll" Component_="System.Resources.Writer.dll" FileName="SYSTE~73.DLL|System.Resources.Writer.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Resources.Writer.dll" SelfReg="false"/>
+ <ROW File="System.Runtime.CompilerServices.VisualC.dll" Component_="System.Runtime.CompilerServices.VisualC.dll" FileName="SYSTE~74.DLL|System.Runtime.CompilerServices.VisualC.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Runtime.CompilerServices.VisualC.dll" SelfReg="false"/>
+ <ROW File="System.Runtime.dll" Component_="System.Runtime.dll" FileName="SYSTE~75.DLL|System.Runtime.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Runtime.dll" SelfReg="false"/>
+ <ROW File="System.Runtime.Extensions.dll" Component_="System.Runtime.Extensions.dll" FileName="SYSTE~76.DLL|System.Runtime.Extensions.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Runtime.Extensions.dll" SelfReg="false"/>
+ <ROW File="System.Runtime.Handles.dll" Component_="System.Runtime.Handles.dll" FileName="SYSTE~77.DLL|System.Runtime.Handles.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Runtime.Handles.dll" SelfReg="false"/>
+ <ROW File="System.Runtime.InteropServices.dll" Component_="System.Runtime.InteropServices.dll" FileName="SYSTE~78.DLL|System.Runtime.InteropServices.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Runtime.InteropServices.dll" SelfReg="false"/>
+ <ROW File="System.Runtime.InteropServices.RuntimeInformation.dll" Component_="System.Runtime.InteropServices.RuntimeInformation.dll" FileName="SYSTE~79.DLL|System.Runtime.InteropServices.RuntimeInformation.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Runtime.InteropServices.RuntimeInformation.dll" SelfReg="false"/>
+ <ROW File="System.Runtime.Numerics.dll" Component_="System.Runtime.Numerics.dll" FileName="SYSTE~80.DLL|System.Runtime.Numerics.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Runtime.Numerics.dll" SelfReg="false"/>
+ <ROW File="System.Runtime.Serialization.Formatters.dll" Component_="System.Runtime.Serialization.Formatters.dll" FileName="SYSTE~81.DLL|System.Runtime.Serialization.Formatters.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Runtime.Serialization.Formatters.dll" SelfReg="false"/>
+ <ROW File="System.Runtime.Serialization.Json.dll" Component_="System.Runtime.Serialization.Json.dll" FileName="SYSTE~82.DLL|System.Runtime.Serialization.Json.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Runtime.Serialization.Json.dll" SelfReg="false"/>
+ <ROW File="System.Runtime.Serialization.Primitives.dll" Component_="System.Runtime.Serialization.Primitives.dll" FileName="SYSTE~83.DLL|System.Runtime.Serialization.Primitives.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Runtime.Serialization.Primitives.dll" SelfReg="false"/>
+ <ROW File="System.Runtime.Serialization.Xml.dll" Component_="System.Runtime.Serialization.Xml.dll" FileName="SYSTE~84.DLL|System.Runtime.Serialization.Xml.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Runtime.Serialization.Xml.dll" SelfReg="false"/>
+ <ROW File="System.Security.Claims.dll" Component_="System.Security.Claims.dll" FileName="SYSTE~85.DLL|System.Security.Claims.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Security.Claims.dll" SelfReg="false"/>
+ <ROW File="System.Security.Cryptography.Algorithms.dll" Component_="System.Security.Cryptography.Algorithms.dll" FileName="SYSTE~86.DLL|System.Security.Cryptography.Algorithms.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Security.Cryptography.Algorithms.dll" SelfReg="false"/>
+ <ROW File="System.Security.Cryptography.Csp.dll" Component_="System.Security.Cryptography.Csp.dll" FileName="SYSTE~87.DLL|System.Security.Cryptography.Csp.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Security.Cryptography.Csp.dll" SelfReg="false"/>
+ <ROW File="System.Security.Cryptography.Encoding.dll" Component_="System.Security.Cryptography.Encoding.dll" FileName="SYSTE~88.DLL|System.Security.Cryptography.Encoding.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Security.Cryptography.Encoding.dll" SelfReg="false"/>
+ <ROW File="System.Security.Cryptography.Primitives.dll" Component_="System.Security.Cryptography.Primitives.dll" FileName="SYSTE~89.DLL|System.Security.Cryptography.Primitives.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Security.Cryptography.Primitives.dll" SelfReg="false"/>
+ <ROW File="System.Security.Cryptography.X509Certificates.dll" Component_="System.Security.Cryptography.X509Certificates.dll" FileName="SYSTE~90.DLL|System.Security.Cryptography.X509Certificates.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Security.Cryptography.X509Certificates.dll" SelfReg="false"/>
+ <ROW File="System.Security.Principal.dll" Component_="System.Security.Principal.dll" FileName="SYSTE~91.DLL|System.Security.Principal.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Security.Principal.dll" SelfReg="false"/>
+ <ROW File="System.Security.SecureString.dll" Component_="System.Security.SecureString.dll" FileName="SYSTE~92.DLL|System.Security.SecureString.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Security.SecureString.dll" SelfReg="false"/>
+ <ROW File="System.Text.Encoding.dll" Component_="System.Text.Encoding.dll" FileName="SYSTE~93.DLL|System.Text.Encoding.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Text.Encoding.dll" SelfReg="false"/>
+ <ROW File="System.Text.Encoding.Extensions.dll" Component_="System.Text.Encoding.Extensions.dll" FileName="SYSTE~94.DLL|System.Text.Encoding.Extensions.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Text.Encoding.Extensions.dll" SelfReg="false"/>
+ <ROW File="System.Text.RegularExpressions.dll" Component_="System.Text.RegularExpressions.dll" FileName="SYSTE~95.DLL|System.Text.RegularExpressions.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Text.RegularExpressions.dll" SelfReg="false"/>
+ <ROW File="System.Threading.dll" Component_="System.Threading.dll" FileName="SYSTE~96.DLL|System.Threading.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Threading.dll" SelfReg="false"/>
+ <ROW File="System.Threading.Overlapped.dll" Component_="System.Threading.Overlapped.dll" FileName="SYSTE~97.DLL|System.Threading.Overlapped.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Threading.Overlapped.dll" SelfReg="false"/>
+ <ROW File="System.Threading.Tasks.dll" Component_="System.Threading.Tasks.dll" FileName="SYSTE~98.DLL|System.Threading.Tasks.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Threading.Tasks.dll" SelfReg="false"/>
+ <ROW File="System.Threading.Tasks.Parallel.dll" Component_="System.Threading.Tasks.Parallel.dll" FileName="SYSTE~99.DLL|System.Threading.Tasks.Parallel.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Threading.Tasks.Parallel.dll" SelfReg="false"/>
+ <ROW File="System.Threading.Thread.dll" Component_="System.Threading.Thread.dll" FileName="SYST~100.DLL|System.Threading.Thread.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Threading.Thread.dll" SelfReg="false"/>
+ <ROW File="System.Threading.ThreadPool.dll" Component_="System.Threading.ThreadPool.dll" FileName="SYST~101.DLL|System.Threading.ThreadPool.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Threading.ThreadPool.dll" SelfReg="false"/>
+ <ROW File="System.Threading.Timer.dll" Component_="System.Threading.Timer.dll" FileName="SYST~102.DLL|System.Threading.Timer.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Threading.Timer.dll" SelfReg="false"/>
+ <ROW File="System.ValueTuple.dll" Component_="System.ValueTuple.dll" FileName="SYST~103.DLL|System.ValueTuple.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.ValueTuple.dll" SelfReg="false"/>
+ <ROW File="System.Xml.ReaderWriter.dll" Component_="System.Xml.ReaderWriter.dll" FileName="SYST~104.DLL|System.Xml.ReaderWriter.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Xml.ReaderWriter.dll" SelfReg="false"/>
+ <ROW File="System.Xml.XDocument.dll" Component_="System.Xml.XDocument.dll" FileName="SYST~105.DLL|System.Xml.XDocument.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Xml.XDocument.dll" SelfReg="false"/>
+ <ROW File="System.Xml.XmlDocument.dll" Component_="System.Xml.XmlDocument.dll" FileName="SYST~106.DLL|System.Xml.XmlDocument.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Xml.XmlDocument.dll" SelfReg="false"/>
+ <ROW File="System.Xml.XmlSerializer.dll" Component_="System.Xml.XmlSerializer.dll" FileName="SYST~107.DLL|System.Xml.XmlSerializer.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Xml.XmlSerializer.dll" SelfReg="false"/>
+ <ROW File="System.Xml.XPath.dll" Component_="System.Xml.XPath.dll" FileName="SYST~108.DLL|System.Xml.XPath.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Xml.XPath.dll" SelfReg="false"/>
+ <ROW File="System.Xml.XPath.XDocument.dll" Component_="System.Xml.XPath.XDocument.dll" FileName="SYST~109.DLL|System.Xml.XPath.XDocument.dll" Attributes="0" SourcePath="..\Build\PPC\Eureka\System.Xml.XPath.XDocument.dll" SelfReg="false"/>
+ <ROW File="LibGit2Sharp.dll.config" Component_="GetVersionTag.bat" FileName="LIBGIT~1.CON|LibGit2Sharp.dll.config" Attributes="0" SourcePath="..\Build\PPC\Eureka\LibGit2Sharp.dll.config" SelfReg="false"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.BootstrOptComponent">
+ <ROW BootstrOptKey="GlobalOptions" DownloadFolder="[AppDataFolder][|Manufacturer]\[|ProductName]\prerequisites" Options="2"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.BootstrapperUISequenceComponent">
+ <ROW Action="AI_DetectSoftware" Sequence="101"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.BuildComponent">
+ <ROW BuildKey="DefaultBuild" BuildName="DefaultBuild" BuildOrder="1" BuildType="0" PackageFolder="..\Build\Installers\Eureka" PackageFileName="TwineX4 Installer_v2.0.13" Languages="en" InstallationType="4" CabsLocation="1" PackageType="1" FilesInsideExe="true" ExtractionFolder="[AppDataFolder][|Manufacturer]\[|ProductName] [|ProductVersion]\install" ExtUI="true" UseLargeSchema="true" ExeName="TwineX4 Installer_v2.0.13"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.DictionaryComponent">
+ <ROW Path="&lt;AI_DICTS&gt;ui.ail"/>
+ <ROW Path="&lt;AI_DICTS&gt;ui_en.ail"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.FragmentComponent">
+ <ROW Fragment="CommonUI.aip" Path="&lt;AI_FRAGS&gt;CommonUI.aip"/>
+ <ROW Fragment="FolderDlg.aip" Path="&lt;AI_THEMES&gt;azure\fragments\FolderDlg.aip"/>
+ <ROW Fragment="MaintenanceTypeDlg.aip" Path="&lt;AI_THEMES&gt;azure\fragments\MaintenanceTypeDlg.aip"/>
+ <ROW Fragment="MaintenanceWelcomeDlg.aip" Path="&lt;AI_THEMES&gt;azure\fragments\MaintenanceWelcomeDlg.aip"/>
+ <ROW Fragment="PreparePrereqDlg.aip" Path="&lt;AI_THEMES&gt;azure\fragments\PreparePrereqDlg.aip"/>
+ <ROW Fragment="PrerequisitesDlg.aip" Path="&lt;AI_THEMES&gt;azure\fragments\PrerequisitesDlg.aip"/>
+ <ROW Fragment="ProgressPrereqDlg.aip" Path="&lt;AI_THEMES&gt;azure\fragments\ProgressPrereqDlg.aip"/>
+ <ROW Fragment="SequenceDialogs.aip" Path="&lt;AI_THEMES&gt;azure\fragments\SequenceDialogs.aip"/>
+ <ROW Fragment="Sequences.aip" Path="&lt;AI_FRAGS&gt;Sequences.aip"/>
+ <ROW Fragment="StaticUIStrings.aip" Path="&lt;AI_FRAGS&gt;StaticUIStrings.aip"/>
+ <ROW Fragment="UI.aip" Path="&lt;AI_THEMES&gt;azure\fragments\UI.aip"/>
+ <ROW Fragment="Validation.aip" Path="&lt;AI_FRAGS&gt;Validation.aip"/>
+ <ROW Fragment="VerifyRemoveDlg.aip" Path="&lt;AI_THEMES&gt;azure\fragments\VerifyRemoveDlg.aip"/>
+ <ROW Fragment="VerifyRepairDlg.aip" Path="&lt;AI_THEMES&gt;azure\fragments\VerifyRepairDlg.aip"/>
+ <ROW Fragment="WelcomeDlg.aip" Path="&lt;AI_THEMES&gt;azure\fragments\WelcomeDlg.aip"/>
+ <ROW Fragment="WelcomePrereqDlg.aip" Path="&lt;AI_THEMES&gt;azure\fragments\WelcomePrereqDlg.aip"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.MsiActionTextComponent">
+ <ROW Action="AI_DeleteLzma" Description="Deleting files extracted from archive" DescriptionLocId="ActionText.Description.AI_DeleteLzma" TemplateLocId="-"/>
+ <ROW Action="AI_DeleteRLzma" Description="Deleting files extracted from archive" DescriptionLocId="ActionText.Description.AI_DeleteLzma" TemplateLocId="-"/>
+ <ROW Action="AI_ExtractFiles" Description="Extracting files from archive" DescriptionLocId="ActionText.Description.AI_ExtractLzma" TemplateLocId="-"/>
+ <ROW Action="AI_ExtractLzma" Description="Extracting files from archive" DescriptionLocId="ActionText.Description.AI_ExtractLzma" TemplateLocId="-"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.MsiAppSearchComponent">
+ <ROW Property="AI_SETUPEXEPATH" Signature_="AI_EXE_PATH_LM" Builds="DefaultBuild"/>
+ <ROW Property="AI_SETUPEXEPATH" Signature_="AI_EXE_PATH_CU" Builds="DefaultBuild"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.MsiBinaryComponent">
+ <ROW Name="Prereq.dll" SourcePath="&lt;AI_CUSTACTS&gt;Prereq.dll"/>
+ <ROW Name="SoftwareDetector.dll" SourcePath="&lt;AI_CUSTACTS&gt;SoftwareDetector.dll"/>
+ <ROW Name="aicustact.dll" SourcePath="&lt;AI_CUSTACTS&gt;aicustact.dll"/>
+ <ROW Name="lzmaextractor.dll" SourcePath="&lt;AI_CUSTACTS&gt;lzmaextractor.dll"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.MsiControlEventComponent">
+ <ROW Dialog_="WelcomePrereqDlg" Control_="Next" Event="NewDialog" Argument="PrerequisitesDlg" Condition="AI_BOOTSTRAPPER" Ordering="1"/>
+ <ROW Dialog_="PrerequisitesDlg" Control_="Next" Event="EndDialog" Argument="Return" Condition="AI_BOOTSTRAPPER" Ordering="1"/>
+ <ROW Dialog_="PrerequisitesDlg" Control_="Back" Event="NewDialog" Argument="WelcomePrereqDlg" Condition="AI_BOOTSTRAPPER" Ordering="1"/>
+ <ROW Dialog_="WelcomeDlg" Control_="Next" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL" Ordering="1"/>
+ <ROW Dialog_="FolderDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_INSTALL" Ordering="201"/>
+ <ROW Dialog_="FolderDlg" Control_="Back" Event="NewDialog" Argument="WelcomeDlg" Condition="AI_INSTALL" Ordering="1"/>
+ <ROW Dialog_="VerifyReadyDlg" Control_="Install" Event="EndDialog" Argument="Return" Condition="AI_INSTALL" Ordering="197"/>
+ <ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL" Ordering="201"/>
+ <ROW Dialog_="MaintenanceWelcomeDlg" Control_="Next" Event="NewDialog" Argument="MaintenanceTypeDlg" Condition="AI_MAINT" Ordering="99"/>
+ <ROW Dialog_="CustomizeDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_MAINT" Ordering="101"/>
+ <ROW Dialog_="CustomizeDlg" Control_="Back" Event="NewDialog" Argument="MaintenanceTypeDlg" Condition="AI_MAINT" Ordering="1"/>
+ <ROW Dialog_="VerifyReadyDlg" Control_="Install" Event="EndDialog" Argument="Return" Condition="AI_MAINT" Ordering="198"/>
+ <ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="CustomizeDlg" Condition="AI_MAINT" Ordering="202"/>
+ <ROW Dialog_="MaintenanceTypeDlg" Control_="ChangeButton" Event="NewDialog" Argument="CustomizeDlg" Condition="AI_MAINT" Ordering="501"/>
+ <ROW Dialog_="MaintenanceTypeDlg" Control_="Back" Event="NewDialog" Argument="MaintenanceWelcomeDlg" Condition="AI_MAINT" Ordering="1"/>
+ <ROW Dialog_="MaintenanceTypeDlg" Control_="RemoveButton" Event="NewDialog" Argument="VerifyRemoveDlg" Condition="AI_MAINT AND InstallMode=&quot;Remove&quot;" Ordering="601"/>
+ <ROW Dialog_="VerifyRemoveDlg" Control_="Back" Event="NewDialog" Argument="MaintenanceTypeDlg" Condition="AI_MAINT AND InstallMode=&quot;Remove&quot;" Ordering="1"/>
+ <ROW Dialog_="MaintenanceTypeDlg" Control_="RepairButton" Event="NewDialog" Argument="VerifyRepairDlg" Condition="AI_MAINT AND InstallMode=&quot;Repair&quot;" Ordering="601"/>
+ <ROW Dialog_="VerifyRepairDlg" Control_="Back" Event="NewDialog" Argument="MaintenanceTypeDlg" Condition="AI_MAINT AND InstallMode=&quot;Repair&quot;" Ordering="1"/>
+ <ROW Dialog_="VerifyRepairDlg" Control_="Repair" Event="EndDialog" Argument="Return" Condition="AI_MAINT AND InstallMode=&quot;Repair&quot;" Ordering="399" Options="1"/>
+ <ROW Dialog_="VerifyRemoveDlg" Control_="Remove" Event="EndDialog" Argument="Return" Condition="AI_MAINT AND InstallMode=&quot;Remove&quot;" Ordering="299" Options="1"/>
+ <ROW Dialog_="PatchWelcomeDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_PATCH" Ordering="201"/>
+ <ROW Dialog_="VerifyReadyDlg" Control_="Install" Event="EndDialog" Argument="Return" Condition="AI_PATCH" Ordering="199"/>
+ <ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="PatchWelcomeDlg" Condition="AI_PATCH" Ordering="203"/>
+ <ROW Dialog_="ResumeDlg" Control_="Install" Event="EndDialog" Argument="Return" Condition="AI_RESUME" Ordering="299"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.MsiCreateFolderComponent">
+ <ROW Directory_="APPDIR" Component_="APPDIR" ManualDelete="true"/>
+ <ROW Directory_="SHORTCUTDIR" Component_="SHORTCUTDIR" ManualDelete="false"/>
+ <ROW Directory_="Packages_Dir" Component_="Packages" ManualDelete="false"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.MsiCustActComponent">
+ <ROW Action="AI_AppSearchEx" Type="1" Source="Prereq.dll" Target="DoAppSearchEx"/>
+ <ROW Action="AI_BACKUP_AI_SETUPEXEPATH" Type="51" Source="AI_SETUPEXEPATH_ORIGINAL" Target="[AI_SETUPEXEPATH]"/>
+ <ROW Action="AI_DATA_SETTER" Type="51" Source="AI_ExtractFiles" Target="[AI_SETUPEXEPATH]"/>
+ <ROW Action="AI_DOWNGRADE" Type="19" Target="4010"/>
+ <ROW Action="AI_DeleteCadLzma" Type="51" Source="AI_DeleteLzma" Target="[AI_SETUPEXEPATH]"/>
+ <ROW Action="AI_DeleteLzma" Type="1025" Source="lzmaextractor.dll" Target="DeleteLZMAFiles"/>
+ <ROW Action="AI_DeleteRCadLzma" Type="51" Source="AI_DeleteRLzma" Target="[AI_SETUPEXEPATH]"/>
+ <ROW Action="AI_DeleteRLzma" Type="1281" Source="lzmaextractor.dll" Target="DeleteLZMAFiles"/>
+ <ROW Action="AI_DetectSoftware" Type="257" Source="SoftwareDetector.dll" Target="OnDetectSoftware"/>
+ <ROW Action="AI_DpiContentScale" Type="1" Source="aicustact.dll" Target="DpiContentScale"/>
+ <ROW Action="AI_EnableDebugLog" Type="321" Source="aicustact.dll" Target="EnableDebugLog"/>
+ <ROW Action="AI_EstimateExtractFiles" Type="1" Source="Prereq.dll" Target="EstimateExtractFiles"/>
+ <ROW Action="AI_ExtractCadLzma" Type="51" Source="AI_ExtractLzma" Target="[AI_SETUPEXEPATH]"/>
+ <ROW Action="AI_ExtractFiles" Type="1025" Source="Prereq.dll" Target="ExtractSourceFiles" AdditionalSeq="AI_DATA_SETTER"/>
+ <ROW Action="AI_ExtractLzma" Type="1025" Source="lzmaextractor.dll" Target="ExtractLZMAFiles"/>
+ <ROW Action="AI_FindExeLzma" Type="1" Source="lzmaextractor.dll" Target="FindEXE"/>
+ <ROW Action="AI_InstallModeCheck" Type="1" Source="aicustact.dll" Target="UpdateInstallMode" WithoutSeq="true"/>
+ <ROW Action="AI_LaunchApp" Type="1" Source="aicustact.dll" Target="[#Tango.PPC.UI.exe]"/>
+ <ROW Action="AI_PREPARE_UPGRADE" Type="65" Source="aicustact.dll" Target="PrepareUpgrade"/>
+ <ROW Action="AI_RESTORE_AI_SETUPEXEPATH" Type="51" Source="AI_SETUPEXEPATH" Target="[AI_SETUPEXEPATH_ORIGINAL]"/>
+ <ROW Action="AI_RESTORE_LOCATION" Type="65" Source="aicustact.dll" Target="RestoreLocation"/>
+ <ROW Action="AI_ResolveKnownFolders" Type="1" Source="aicustact.dll" Target="AI_ResolveKnownFolders"/>
+ <ROW Action="AI_RunFinishActions" Type="1" Source="aicustact.dll" Target="RunFinishActions" WithoutSeq="true"/>
+ <ROW Action="AI_SHOW_LOG" Type="65" Source="aicustact.dll" Target="LaunchLogFile" WithoutSeq="true"/>
+ <ROW Action="AI_STORE_LOCATION" Type="51" Source="ARPINSTALLLOCATION" Target="[APPDIR]"/>
+ <ROW Action="SET_APPDIR" Type="307" Source="APPDIR" Target="[ProgramFilesFolder][Manufacturer]\[ProductName]"/>
+ <ROW Action="SET_SHORTCUTDIR" Type="307" Source="SHORTCUTDIR" Target="[ProgramMenuFolder][ProductName]"/>
+ <ROW Action="SET_TARGETDIR_TO_APPDIR" Type="51" Source="TARGETDIR" Target="[APPDIR]"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.MsiFeatCompsComponent">
+ <ROW Feature_="MainFeature" Component_="APPDIR"/>
+ <ROW Feature_="MainFeature" Component_="ProductInformation"/>
+ <ROW Feature_="MainFeature" Component_="AI_ExePath"/>
+ <ROW Feature_="MainFeature" Component_="ColorMine.dll"/>
+ <ROW Feature_="MainFeature" Component_="CommandLine.dll"/>
+ <ROW Feature_="MainFeature" Component_="ControlzEx.dll"/>
+ <ROW Feature_="MainFeature" Component_="DocumentFormat.OpenXml.dll"/>
+ <ROW Feature_="MainFeature" Component_="EFCache.dll"/>
+ <ROW Feature_="MainFeature" Component_="EntityFramework.dll"/>
+ <ROW Feature_="MainFeature" Component_="EntityFramework.SqlServer.dll"/>
+ <ROW Feature_="MainFeature" Component_="FontAwesome.WPF.dll"/>
+ <ROW Feature_="MainFeature" Component_="GetVersionTag.bat"/>
+ <ROW Feature_="MainFeature" Component_="Google.Protobuf.dll"/>
+ <ROW Feature_="MainFeature" Component_="HiraokaHyperTools.PdfSharpWPF.dll"/>
+ <ROW Feature_="MainFeature" Component_="HiraokaHyperTools.PdfSharp.Xps.dll"/>
+ <ROW Feature_="MainFeature" Component_="Ionic.Zip.dll"/>
+ <ROW Feature_="MainFeature" Component_="JWT.dll"/>
+ <ROW Feature_="MainFeature" Component_="LibGit2Sharp.dll"/>
+ <ROW Feature_="MainFeature" Component_="LiteDB.dll"/>
+ <ROW Feature_="MainFeature" Component_="Microsoft.AspNet.SignalR.Client.dll"/>
+ <ROW Feature_="MainFeature" Component_="Microsoft.Azure.ActiveDirectory.GraphClient.dll"/>
+ <ROW Feature_="MainFeature" Component_="Microsoft.IdentityModel.Clients.ActiveDirectory.dll"/>
+ <ROW Feature_="MainFeature" Component_="Microsoft.ServiceBus.dll"/>
+ <ROW Feature_="MainFeature" Component_="Microsoft.SqlServer.ConnectionInfo.dll"/>
+ <ROW Feature_="MainFeature" Component_="Microsoft.SqlServer.Diagnostics.STrace.dll"/>
+ <ROW Feature_="MainFeature" Component_="Microsoft.SqlServer.Dmf.Common.dll"/>
+ <ROW Feature_="MainFeature" Component_="Microsoft.SqlServer.Management.Sdk.Sfc.dll"/>
+ <ROW Feature_="MainFeature" Component_="Microsoft.SqlServer.ServiceBrokerEnum.dll"/>
+ <ROW Feature_="MainFeature" Component_="Microsoft.SqlServer.Smo.dll"/>
+ <ROW Feature_="MainFeature" Component_="Microsoft.SqlServer.SqlClrProvider.dll"/>
+ <ROW Feature_="MainFeature" Component_="Microsoft.SqlServer.SqlEnum.dll"/>
+ <ROW Feature_="MainFeature" Component_="Microsoft.TeamFoundation.Client.dll"/>
+ <ROW Feature_="MainFeature" Component_="Microsoft.TeamFoundation.Common.dll"/>
+ <ROW Feature_="MainFeature" Component_="Microsoft.TeamFoundation.Core.WebApi.dll"/>
+ <ROW Feature_="MainFeature" Component_="Microsoft.TeamFoundation.Diff.dll"/>
+ <ROW Feature_="MainFeature" Component_="Microsoft.TeamFoundation.Work.WebApi.dll"/>
+ <ROW Feature_="MainFeature" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader.dll"/>
+ <ROW Feature_="MainFeature" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.dll"/>
+ <ROW Feature_="MainFeature" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.dll"/>
+ <ROW Feature_="MainFeature" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.dll"/>
+ <ROW Feature_="MainFeature" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.dll"/>
+ <ROW Feature_="MainFeature" Component_="Microsoft.TeamFoundation.WorkItemTracking.WebApi.dll"/>
+ <ROW Feature_="MainFeature" Component_="Microsoft.VisualStudio.Services.Client.Interactive.dll"/>
+ <ROW Feature_="MainFeature" Component_="Microsoft.VisualStudio.Services.Common.dll"/>
+ <ROW Feature_="MainFeature" Component_="Microsoft.VisualStudio.Services.WebApi.dll"/>
+ <ROW Feature_="MainFeature" Component_="Microsoft.WindowsAPICodePack.dll"/>
+ <ROW Feature_="MainFeature" Component_="Microsoft.WindowsAPICodePack.Shell.dll"/>
+ <ROW Feature_="MainFeature" Component_="Microsoft.WindowsAzure.Storage.dll"/>
+ <ROW Feature_="MainFeature" Component_="Microsoft.WITDataStore32.dll"/>
+ <ROW Feature_="MainFeature" Component_="mscoree.dll"/>
+ <ROW Feature_="MainFeature" Component_="msvcp140d.dll"/>
+ <ROW Feature_="MainFeature" Component_="Newtonsoft.Json.dll"/>
+ <ROW Feature_="MainFeature" Component_="protobufnet.dll"/>
+ <ROW Feature_="MainFeature" Component_="Quamotion.TurboJpegWrapper.dll"/>
+ <ROW Feature_="MainFeature" Component_="RazorEngine.dll"/>
+ <ROW Feature_="MainFeature" Component_="rc.exe"/>
+ <ROW Feature_="MainFeature" Component_="SharpDX.Direct3D11.dll"/>
+ <ROW Feature_="MainFeature" Component_="SharpDX.dll"/>
+ <ROW Feature_="MainFeature" Component_="SharpDX.DXGI.dll"/>
+ <ROW Feature_="MainFeature" Component_="SharpDX.Mathematics.dll"/>
+ <ROW Feature_="MainFeature" Component_="SimpleValidator.dll"/>
+ <ROW Feature_="MainFeature" Component_="OverrideData.xml"/>
+ <ROW Feature_="MainFeature" Component_="Interop.MSDASC.dll"/>
+ <ROW Feature_="MainFeature" Component_="License.lic"/>
+ <ROW Feature_="MainFeature" Component_="SA.Binary.dll"/>
+ <ROW Feature_="MainFeature" Component_="SA.CodeView.dll"/>
+ <ROW Feature_="MainFeature" Component_="SA.CommonTypes.dll"/>
+ <ROW Feature_="MainFeature" Component_="SA.CommonUI.dll"/>
+ <ROW Feature_="MainFeature" Component_="SA.SCBaseProvider.dll"/>
+ <ROW Feature_="MainFeature" Component_="SA.SQLDataExaminer.Engine.dll"/>
+ <ROW Feature_="MainFeature" Component_="SA.SQLExaminer.Engine.dll"/>
+ <ROW Feature_="MainFeature" Component_="SA.Utils.ErrorReporter.dll"/>
+ <ROW Feature_="MainFeature" Component_="SQLDECmd.exe"/>
+ <ROW Feature_="MainFeature" Component_="SQLECmd.exe"/>
+ <ROW Feature_="MainFeature" Component_="System.Data.SQLite.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Data.SQLite.EF6.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Data.SQLite.Linq.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.IdentityModel.Tokens.Jwt.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Net.Http.Formatting.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Reactive.Core.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Reactive.Interfaces.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Reactive.Linq.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Reactive.PlatformServices.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Web.Http.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Web.Http.WebHost.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Web.Razor.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Windows.Interactivity.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.AdvancedInstaller.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.AnimatedGif.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.BL.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.CodeGeneration.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.ColorConversion.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.Colorful.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.ColorLib_v1.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.ColorLib_v2.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.ColorLib_v3.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.ColorLib_v4.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.ColorLib_v5.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.ColorLib_v6.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.Console.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.Core.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.CSV.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.DataStore.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.DataStore.Editing.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.DataStore.EF.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.DataStore.Remote.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.Documents.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.DragAndDrop.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.Emulations.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.Explorer.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.FileSystem.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.FirmwareUpdateLib.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.FirmwareUpdateLib.WPF.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.Git.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.Insights.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.Integration.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.Logging.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.PDF.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.PMR.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.PPC.BackupRestore.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.PPC.BugReporting.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.PPC.Common.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.PPC.Events.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.PPC.JobsV2.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.PPC.MachineSettings.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.PPC.Maintenance.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.PPC.Shared.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.PPC.Storage.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.PPC.Technician.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.PPC.UI.exe"/>
+ <ROW Feature_="MainFeature" Component_="Tango.Pulse.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.RemoteDesktop.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.Serialization.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.Settings.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.SharedUI.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.SQLExaminer.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.SystemInfo.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.TFS.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.Touch.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.Transport.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.Web.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.WebRTC.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.WiFi.dll"/>
+ <ROW Feature_="MainFeature" Component_="ucrtbased.dll"/>
+ <ROW Feature_="MainFeature" Component_="vcruntime140.dll"/>
+ <ROW Feature_="MainFeature" Component_="vcruntime140d.dll"/>
+ <ROW Feature_="MainFeature" Component_="WebRtc.NET.dll"/>
+ <ROW Feature_="MainFeature" Component_="turbojpeg.dll"/>
+ <ROW Feature_="MainFeature" Component_="turbojpeg.dll.meta"/>
+ <ROW Feature_="MainFeature" Component_="turbojpeg.dll_1"/>
+ <ROW Feature_="MainFeature" Component_="turbojpeg.dll.meta_1"/>
+ <ROW Feature_="MainFeature" Component_="WindowsInput.dll"/>
+ <ROW Feature_="MainFeature" Component_="SHORTCUTDIR"/>
+ <ROW Feature_="MainFeature" Component_="Packages"/>
+ <ROW Feature_="MainFeature" Component_="Tango.PPC.Updater.exe"/>
+ <ROW Feature_="MainFeature" Component_="FluentFTP.dll"/>
+ <ROW Feature_="MainFeature" Component_="Hyak.Common.dll"/>
+ <ROW Feature_="MainFeature" Component_="Microsoft.Azure.Common.dll"/>
+ <ROW Feature_="MainFeature" Component_="Microsoft.Azure.Common.NetFramework.dll"/>
+ <ROW Feature_="MainFeature" Component_="Microsoft.Azure.ResourceManager.dll"/>
+ <ROW Feature_="MainFeature" Component_="Microsoft.Data.Edm.dll"/>
+ <ROW Feature_="MainFeature" Component_="Microsoft.Data.OData.dll"/>
+ <ROW Feature_="MainFeature" Component_="Microsoft.Data.Services.Client.dll"/>
+ <ROW Feature_="MainFeature" Component_="Microsoft.SqlServer.AzureStorageEnum.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.IO.Compression.FileSystem.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Spatial.dll"/>
+ <ROW Feature_="MainFeature" Component_="Tango.DataStore.Lite.dll"/>
+ <ROW Feature_="MainFeature" Component_="WPFMediaKit.dll"/>
+ <ROW Feature_="MainFeature" Component_="DirectShowLib2005.dll"/>
+ <ROW Feature_="MainFeature" Component_="EVRPresenter32.dll"/>
+ <ROW Feature_="MainFeature" Component_="EVRPresenter64.dll"/>
+ <ROW Feature_="MainFeature" Component_="Microsoft.Win32.Primitives.dll"/>
+ <ROW Feature_="MainFeature" Component_="netstandard.dll"/>
+ <ROW Feature_="MainFeature" Component_="RealTimeGraphX.dll"/>
+ <ROW Feature_="MainFeature" Component_="RealTimeGraphX.WPF.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.AppContext.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Collections.Concurrent.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Collections.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Collections.NonGeneric.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Collections.Specialized.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.ComponentModel.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.ComponentModel.EventBasedAsync.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.ComponentModel.Primitives.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.ComponentModel.TypeConverter.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Console.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Data.Common.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Diagnostics.Contracts.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Diagnostics.Debug.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Diagnostics.FileVersionInfo.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Diagnostics.Process.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Diagnostics.StackTrace.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Diagnostics.TextWriterTraceListener.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Diagnostics.Tools.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Diagnostics.TraceSource.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Diagnostics.Tracing.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Drawing.Primitives.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Dynamic.Runtime.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Globalization.Calendars.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Globalization.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Globalization.Extensions.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.IO.Compression.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.IO.Compression.ZipFile.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.IO.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.IO.FileSystem.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.IO.FileSystem.DriveInfo.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.IO.FileSystem.Primitives.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.IO.FileSystem.Watcher.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.IO.IsolatedStorage.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.IO.MemoryMappedFiles.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.IO.Pipes.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.IO.UnmanagedMemoryStream.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Linq.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Linq.Expressions.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Linq.Parallel.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Linq.Queryable.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Net.Http.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Net.NameResolution.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Net.NetworkInformation.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Net.Ping.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Net.Primitives.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Net.Requests.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Net.Security.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Net.Sockets.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Net.WebHeaderCollection.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Net.WebSockets.Client.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Net.WebSockets.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.ObjectModel.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Reflection.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Reflection.Extensions.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Reflection.Primitives.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Resources.Reader.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Resources.ResourceManager.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Resources.Writer.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Runtime.CompilerServices.VisualC.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Runtime.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Runtime.Extensions.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Runtime.Handles.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Runtime.InteropServices.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Runtime.InteropServices.RuntimeInformation.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Runtime.Numerics.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Runtime.Serialization.Formatters.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Runtime.Serialization.Json.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Runtime.Serialization.Primitives.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Runtime.Serialization.Xml.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Security.Claims.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Security.Cryptography.Algorithms.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Security.Cryptography.Csp.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Security.Cryptography.Encoding.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Security.Cryptography.Primitives.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Security.Cryptography.X509Certificates.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Security.Principal.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Security.SecureString.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Text.Encoding.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Text.Encoding.Extensions.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Text.RegularExpressions.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Threading.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Threading.Overlapped.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Threading.Tasks.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Threading.Tasks.Parallel.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Threading.Thread.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Threading.ThreadPool.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Threading.Timer.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.ValueTuple.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Xml.ReaderWriter.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Xml.XDocument.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Xml.XmlDocument.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Xml.XmlSerializer.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Xml.XPath.dll"/>
+ <ROW Feature_="MainFeature" Component_="System.Xml.XPath.XDocument.dll"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.MsiIconsComponent">
+ <ROW Name="Tango.PPC.UI.exe" SourcePath="..\Build\PPC\Eureka\Tango.PPC.UI.exe" Index="0"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.MsiInstExSeqComponent">
+ <ROW Action="AI_DOWNGRADE" Condition="AI_NEWERPRODUCTFOUND AND (UILevel &lt;&gt; 5)" Sequence="210"/>
+ <ROW Action="AI_RESTORE_LOCATION" Condition="APPDIR=&quot;&quot;" Sequence="749"/>
+ <ROW Action="AI_STORE_LOCATION" Condition="(Not Installed) OR REINSTALL" Sequence="1501"/>
+ <ROW Action="AI_PREPARE_UPGRADE" Condition="AI_UPGRADE=&quot;No&quot; AND (Not Installed)" Sequence="1399"/>
+ <ROW Action="AI_ResolveKnownFolders" Sequence="52"/>
+ <ROW Action="AI_EnableDebugLog" Sequence="51"/>
+ <ROW Action="AI_BACKUP_AI_SETUPEXEPATH" Sequence="99" Builds="DefaultBuild"/>
+ <ROW Action="AI_RESTORE_AI_SETUPEXEPATH" Condition="AI_SETUPEXEPATH_ORIGINAL" Sequence="103" Builds="DefaultBuild"/>
+ <ROW Action="AI_DeleteCadLzma" Condition="SETUPEXEDIR=&quot;&quot; AND Installed AND (REMOVE&lt;&gt;&quot;ALL&quot;) AND (AI_INSTALL_MODE&lt;&gt;&quot;Remove&quot;) AND (NOT PATCH)" Sequence="199" Builds="DefaultBuild"/>
+ <ROW Action="AI_DeleteRCadLzma" Condition="SETUPEXEDIR=&quot;&quot; AND Installed AND (REMOVE&lt;&gt;&quot;ALL&quot;) AND (AI_INSTALL_MODE&lt;&gt;&quot;Remove&quot;) AND (NOT PATCH)" Sequence="198" Builds="DefaultBuild"/>
+ <ROW Action="AI_ExtractCadLzma" Condition="SETUPEXEDIR=&quot;&quot; AND Installed AND (REMOVE&lt;&gt;&quot;ALL&quot;) AND (AI_INSTALL_MODE&lt;&gt;&quot;Remove&quot;) AND (NOT PATCH)" Sequence="197" Builds="DefaultBuild"/>
+ <ROW Action="AI_FindExeLzma" Condition="SETUPEXEDIR=&quot;&quot; AND Installed AND (REMOVE&lt;&gt;&quot;ALL&quot;) AND (AI_INSTALL_MODE&lt;&gt;&quot;Remove&quot;) AND (NOT PATCH)" Sequence="196" Builds="DefaultBuild"/>
+ <ROW Action="AI_ExtractLzma" Condition="SETUPEXEDIR=&quot;&quot; AND Installed AND (REMOVE&lt;&gt;&quot;ALL&quot;) AND (AI_INSTALL_MODE&lt;&gt;&quot;Remove&quot;) AND (NOT PATCH)" Sequence="1549" Builds="DefaultBuild"/>
+ <ROW Action="AI_DeleteRLzma" Condition="SETUPEXEDIR=&quot;&quot; AND Installed AND (REMOVE&lt;&gt;&quot;ALL&quot;) AND (AI_INSTALL_MODE&lt;&gt;&quot;Remove&quot;) AND (NOT PATCH)" Sequence="1548" Builds="DefaultBuild"/>
+ <ROW Action="AI_DeleteLzma" Condition="SETUPEXEDIR=&quot;&quot; AND Installed AND (REMOVE&lt;&gt;&quot;ALL&quot;) AND (AI_INSTALL_MODE&lt;&gt;&quot;Remove&quot;) AND (NOT PATCH)" Sequence="6599" Builds="DefaultBuild"/>
+ <ROW Action="AI_ExtractFiles" Sequence="3998" Builds="DefaultBuild"/>
+ <ROW Action="AI_DATA_SETTER" Sequence="3997"/>
+ <ROW Action="AI_EstimateExtractFiles" Sequence="3999" Builds="DefaultBuild"/>
+ <ROW Action="AI_AppSearchEx" Sequence="102"/>
+ <ROW Action="AI_DetectSoftware" Sequence="101"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.MsiInstallUISequenceComponent">
+ <ROW Action="AI_RESTORE_LOCATION" Condition="APPDIR=&quot;&quot;" Sequence="749"/>
+ <ROW Action="AI_ResolveKnownFolders" Sequence="53"/>
+ <ROW Action="AI_DpiContentScale" Sequence="52"/>
+ <ROW Action="AI_EnableDebugLog" Sequence="51"/>
+ <ROW Action="AI_BACKUP_AI_SETUPEXEPATH" Sequence="99"/>
+ <ROW Action="AI_RESTORE_AI_SETUPEXEPATH" Condition="AI_SETUPEXEPATH_ORIGINAL" Sequence="103"/>
+ <ROW Action="AI_AppSearchEx" Sequence="102"/>
+ <ROW Action="AI_DetectSoftware" Sequence="101"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.MsiLaunchConditionsComponent">
+ <ROW Condition="(VersionNT &lt;&gt; 400)" Description="[ProductName] cannot be installed on [WindowsTypeNT40Display]." DescriptionLocId="AI.LaunchCondition.NoNT40" IsPredefined="true" Builds="DefaultBuild"/>
+ <ROW Condition="(VersionNT &lt;&gt; 500)" Description="[ProductName] cannot be installed on [WindowsTypeNT50Display]." DescriptionLocId="AI.LaunchCondition.NoNT50" IsPredefined="true" Builds="DefaultBuild"/>
+ <ROW Condition="(VersionNT64 OR ((VersionNT &lt;&gt; 501) OR (ServicePackLevel = 3))) AND ((VersionNT &lt;&gt; 502) OR (ServicePackLevel = 2))" Description="[ProductName] cannot be installed on [WindowsTypeNT5XDisplay]." DescriptionLocId="AI.LaunchCondition.NoNT5X" IsPredefined="true" Builds="DefaultBuild"/>
+ <ROW Condition="AI_DETECTED_INTERNET_CONNECTION" Description="[ProductName] requires an active Internet connection for installation. Please check your network configuration and proxy settings." DescriptionLocId="AI.LaunchCondition.Internet" IsPredefined="true" Builds="DefaultBuild"/>
+ <ROW Condition="SETUPEXEDIR OR (REMOVE=&quot;ALL&quot;)" Description="This package can only be run from a bootstrapper." DescriptionLocId="AI.LaunchCondition.RequireBootstrapper" IsPredefined="true" Builds="DefaultBuild"/>
+ <ROW Condition="VersionNT" Description="[ProductName] cannot be installed on [WindowsType9XDisplay]." DescriptionLocId="AI.LaunchCondition.No9X" IsPredefined="true" Builds="DefaultBuild"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.MsiRegLocatorComponent">
+ <ROW Signature_="AI_EXE_PATH_CU" Root="1" Key="Software\Caphyon\Advanced Installer\LZMA\[ProductCode]\[ProductVersion]" Name="AI_ExePath" Type="2"/>
+ <ROW Signature_="AI_EXE_PATH_LM" Root="2" Key="Software\Caphyon\Advanced Installer\LZMA\[ProductCode]\[ProductVersion]" Name="AI_ExePath" Type="2"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.MsiRegsComponent">
+ <ROW Registry="AI_ExePath" Root="-1" Key="Software\Caphyon\Advanced Installer\LZMA\[ProductCode]\[ProductVersion]" Name="AI_ExePath" Value="[AI_SETUPEXEPATH]" Component_="AI_ExePath"/>
+ <ROW Registry="Path" Root="-1" Key="Software\[Manufacturer]\[ProductName]" Name="Path" Value="[APPDIR]" Component_="ProductInformation"/>
+ <ROW Registry="Version" Root="-1" Key="Software\[Manufacturer]\[ProductName]" Name="Version" Value="[ProductVersion]" Component_="ProductInformation"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.MsiShortsComponent">
+ <ROW Shortcut="TwineX4" Directory_="SHORTCUTDIR" Name="TWINEX~1|Twine X4" Component_="Tango.PPC.UI.exe" Target="[#Tango.PPC.UI.exe]" Description="Twine X4" Hotkey="0" IconIndex="0" ShowCmd="1" WkDir="APPDIR"/>
+ <ROW Shortcut="TwineX4_1" Directory_="DesktopFolder" Name="TWINEX~1|Twine X4" Component_="Tango.PPC.UI.exe" Target="[#Tango.PPC.UI.exe]" Description="Twine X4" Hotkey="0" IconIndex="0" ShowCmd="1" WkDir="APPDIR"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.MsiThemeComponent">
+ <ATTRIBUTE name="UsedTheme" value="azure"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.MsiUpgradeComponent">
+ <ROW UpgradeCode="[|UpgradeCode]" VersionMin="0.0.1" VersionMax="[|ProductVersion]" Attributes="257" ActionProperty="OLDPRODUCTS"/>
+ <ROW UpgradeCode="[|UpgradeCode]" VersionMin="[|ProductVersion]" Attributes="2" ActionProperty="AI_NEWERPRODUCTFOUND"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.PreReqComponent">
+ <ROW PrereqKey="F4_28D6_4E08_8648_3469A5B0C76D" DisplayName=".NET Framework 3.5 (web installer)" SetupFileUrl="http://download.microsoft.com/download/7/0/3/703455ee-a747-4cc8-bd3e-98a615c3aedb/dotNetFx35setup.exe" Location="1" ExactSize="2869264" WinNTVersions="Windows 7 x86, Windows 8 x86, Windows 8.1 x86, Windows 10 x86" WinNT64Versions="Windows 7 x64, Windows Server 2008 R2 x64, Windows 8 x64, Windows Server 2012 x64, Windows 8.1 x64, Windows Server 2012 R2 x64, Windows 10 x64, Windows Server x64" Operator="1" NoUiComLine="/q /norestart" Options="xy" MD5="269f314b87e6222a20e5f745b6b89783" TargetName=".NET Framework 3.5"/>
+ <ROW PrereqKey="RequiredApplication" DisplayName="SQL Server Express 2017" SetupFileUrl="https://download.microsoft.com/download/5/E/9/5E9B18CC-8FD5-467E-B5BF-BADE39C51F73/SQLServer2017-SSEI-Expr.exe" Location="1" ExactSize="0" Operator="1" Options="ym"/>
+ <ATTRIBUTE name="PrereqsOrder" value="RequiredApplication F4_28D6_4E08_8648_3469A5B0C76D"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.PreReqSearchComponent">
+ <ROW SearchKey="F4_28D6_4E08_8648_3469A5B0C76DInsta" Prereq="F4_28D6_4E08_8648_3469A5B0C76D" SearchType="9" SearchString="HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5\Install" RefContent="M1" Order="1" Property="PreReqSearch_F4_28D6_4E08_8648_3469"/>
+ <ROW SearchKey="SystemFolderfile.dll" Prereq="RequiredApplication" SearchType="2" SearchString="HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\140\Tools\ClientSetup\CurrentVersion\CurrentVersion" VerMin="14.0" Order="1" Property="PreReqSearch"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.SynchronizedFolderComponent">
+ <ROW Directory_="APPDIR" SourcePath="..\Build\PPC\Eureka" Feature="MainFeature" ExcludePattern="*~|#*#|%*%|._|CVS|.cvsignore|SCCS|vssver.scc|mssccprj.scc|vssver2.scc|.svn|.DS_Store" ExcludeFlags="6"/>
+ </COMPONENT>
+</DOCUMENT>
diff --git a/Software/Visual_Studio/Advanced Installer Projects/FSE Installer.aip b/Software/Visual_Studio/Advanced Installer Projects/FSE Installer.aip
index 344bb6883..baa6d6fb9 100644
--- a/Software/Visual_Studio/Advanced Installer Projects/FSE Installer.aip
+++ b/Software/Visual_Studio/Advanced Installer Projects/FSE Installer.aip
@@ -29,10 +29,10 @@
<ROW Property="ExtractFilesFirst" Value="1"/>
<ROW Property="LogoIcon" Value="externalui.ico" MultiBuildValue="DefaultBuild:machine_full_0UZ_icon.ico_1" Type="1" MsiKey="LogoIcon"/>
<ROW Property="Manufacturer" Value="Twine Solutions LTD"/>
- <ROW Property="ProductCode" Value="1033:{572553AE-7CED-4471-BE84-9D5252E1E4C4} " Type="16"/>
+ <ROW Property="ProductCode" Value="1033:{ACD29FBD-AB01-477D-8FDB-4D8625896C70} " Type="16"/>
<ROW Property="ProductLanguage" Value="1033"/>
<ROW Property="ProductName" Value="Tango FSE"/>
- <ROW Property="ProductVersion" Value="1.4.7.0" Type="32"/>
+ <ROW Property="ProductVersion" Value="2.0.2.0" Type="32"/>
<ROW Property="RUNAPPLICATION" Value="1" Type="4"/>
<ROW Property="SecureCustomProperties" Value="OLDPRODUCTS;AI_NEWERPRODUCTFOUND;AI_SETUPEXEPATH;SETUPEXEDIR"/>
<ROW Property="UpgradeCode" Value="{0E13CB0D-89F7-465E-9F56-F1CBD6773E6E}"/>
@@ -515,10 +515,10 @@
<ROW Component="shell" ComponentId="{A08B0CB0-9A35-4E7B-B7A3-F0039D92CBE4}" Directory_="APPDIR" Attributes="4" KeyPath="shell"/>
<ROW Component="shell_1" ComponentId="{082186C6-1C9B-401A-85E8-3F1DA42DD4C6}" Directory_="APPDIR" Attributes="4" KeyPath="shell_1"/>
<ROW Component="sysglobl.dll" ComponentId="{A8218B40-45BD-4818-B9F2-88F081F76303}" Directory_="ProceduresAssemblies_Dir" Attributes="0" KeyPath="sysglobl.dll"/>
- <ROW Component="turbojpeg.dll" ComponentId="{DB334C2E-C1B9-45D6-88C1-6CFDA17EB4A3}" Directory_="win7x64_Dir" Attributes="256" KeyPath="turbojpeg.dll"/>
- <ROW Component="turbojpeg.dll.meta" ComponentId="{6C2C631D-5F51-4649-8DCC-17B00C80C311}" Directory_="win7x64_Dir" Attributes="0" KeyPath="turbojpeg.dll.meta" Type="0"/>
- <ROW Component="turbojpeg.dll.meta_1" ComponentId="{B10DDC60-7539-4FAB-9C5E-45E6EE867C49}" Directory_="win7x86_Dir" Attributes="0" KeyPath="turbojpeg.dll.meta_1" Type="0"/>
- <ROW Component="turbojpeg.dll_1" ComponentId="{1C8AB217-7B7A-4D11-9531-42272081A499}" Directory_="win7x86_Dir" Attributes="0" KeyPath="turbojpeg.dll_1"/>
+ <ROW Component="turbojpeg.dll" ComponentId="{A29DB622-229B-400D-B1BE-C3312C60A442}" Directory_="win7x64_Dir" Attributes="256" KeyPath="turbojpeg.dll"/>
+ <ROW Component="turbojpeg.dll.meta" ComponentId="{A6D6CFBE-A169-421F-B951-6DCEFF56E7CC}" Directory_="win7x64_Dir" Attributes="0" KeyPath="turbojpeg.dll.meta" Type="0"/>
+ <ROW Component="turbojpeg.dll.meta_1" ComponentId="{9BA9D016-B300-4B32-A23F-C3EC1658FFD3}" Directory_="win7x86_Dir" Attributes="0" KeyPath="turbojpeg.dll.meta_1" Type="0"/>
+ <ROW Component="turbojpeg.dll_1" ComponentId="{FFD6EB51-256F-44BC-B7AF-86FFDE3A45D2}" Directory_="win7x86_Dir" Attributes="0" KeyPath="turbojpeg.dll_1"/>
<ROW Component="ucrtbased.dll" ComponentId="{E62DD38B-E521-4526-81F2-F5A404504F4F}" Directory_="APPDIR" Attributes="0" KeyPath="ucrtbased.dll"/>
<ROW Component="vcruntime140.dll" ComponentId="{AA9985D1-8172-473C-BD9F-FA29A60F7E46}" Directory_="APPDIR" Attributes="0" KeyPath="vcruntime140.dll"/>
<ROW Component="vcruntime140d.dll" ComponentId="{BBF9A450-5DF1-4FEF-A22F-350FF9C558B8}" Directory_="APPDIR" Attributes="0" KeyPath="vcruntime140d.dll"/>
@@ -1201,7 +1201,7 @@
<ROW Action="AI_DetectSoftware" Sequence="101"/>
</COMPONENT>
<COMPONENT cid="caphyon.advinst.msicomp.BuildComponent">
- <ROW BuildKey="DefaultBuild" BuildName="DefaultBuild" BuildOrder="1" BuildType="0" PackageFolder="..\Build\Installers\FSE\Release" PackageFileName="Tango FSE v1.4.7" Languages="en" InstallationType="4" CabsLocation="1" PackageType="1" FilesInsideExe="true" ExtractionFolder="[AppDataFolder][|Manufacturer]\[|ProductName] [|ProductVersion]\install" ExtUI="true" UseLargeSchema="true" ExeName="Tango FSE v1.4.7"/>
+ <ROW BuildKey="DefaultBuild" BuildName="DefaultBuild" BuildOrder="1" BuildType="0" PackageFolder="..\Build\Installers\FSE\Release" PackageFileName="Tango FSE v2.0.2" Languages="en" InstallationType="4" CabsLocation="1" PackageType="1" FilesInsideExe="true" ExtractionFolder="[AppDataFolder][|Manufacturer]\[|ProductName] [|ProductVersion]\install" ExtUI="true" UseLargeSchema="true" ExeName="Tango FSE v2.0.2"/>
</COMPONENT>
<COMPONENT cid="caphyon.advinst.msicomp.DictionaryComponent">
<ROW Path="&lt;AI_DICTS&gt;ui.ail"/>
diff --git a/Software/Visual_Studio/Advanced Installer Projects/Machine Studio Installer.aip b/Software/Visual_Studio/Advanced Installer Projects/Machine Studio Installer.aip
index 72fc27314..098af50cf 100644
--- a/Software/Visual_Studio/Advanced Installer Projects/Machine Studio Installer.aip
+++ b/Software/Visual_Studio/Advanced Installer Projects/Machine Studio Installer.aip
@@ -16,10 +16,10 @@
<ROW Property="ARPCOMMENTS" Value="This installer database contains the logic and data required to install [|ProductName]." ValueLocId="*"/>
<ROW Property="ARPNOREPAIR" MultiBuildValue="DefaultBuild:1"/>
<ROW Property="Manufacturer" Value="Twine"/>
- <ROW Property="ProductCode" Value="1033:{1B559EB3-5D6B-47D1-A6B7-996BFAADFD68} " Type="16"/>
+ <ROW Property="ProductCode" Value="1033:{68115B02-4748-418E-8A0A-256318D8D8D2} " Type="16"/>
<ROW Property="ProductLanguage" Value="1033"/>
<ROW Property="ProductName" Value="Machine Studio"/>
- <ROW Property="ProductVersion" Value="4.9.9.0" Type="32"/>
+ <ROW Property="ProductVersion" Value="5.9.0.0" Type="32"/>
<ROW Property="SecureCustomProperties" Value="OLDPRODUCTS;AI_NEWERPRODUCTFOUND;AI_SETUPEXEPATH;SETUPEXEDIR"/>
<ROW Property="UpgradeCode" Value="{CBEE5CAE-7C5A-4280-98DE-AA98113764E4}"/>
<ROW Property="WindowsType9X" MultiBuildValue="DefaultBuild:Windows 9x/ME" ValueLocId="-"/>
@@ -44,7 +44,22 @@
<ROW Directory="SQLExaminer_Dir" Directory_Parent="APPDIR" DefaultDir="SQLEXA~1|SQLExaminer" DirectoryOptions="3"/>
<ROW Directory="TARGETDIR" DefaultDir="SourceDir"/>
<ROW Directory="TCC_Dir" Directory_Parent="APPDIR" DefaultDir="TCC" DirectoryOptions="3"/>
+ <ROW Directory="alpine.3.9x64_Dir" Directory_Parent="lib_Dir" DefaultDir="ALPINE~1.9-X|alpine.3.9-x64" DirectoryOptions="3"/>
+ <ROW Directory="alpinex64_Dir" Directory_Parent="lib_Dir" DefaultDir="ALPINE~1|alpine-x64" DirectoryOptions="3"/>
+ <ROW Directory="debian.9x64_Dir" Directory_Parent="lib_Dir" DefaultDir="DEBIAN~1.9-X|debian.9-x64" DirectoryOptions="3"/>
+ <ROW Directory="debianarm64_Dir" Directory_Parent="lib_Dir" DefaultDir="DEBIAN~1|debian-arm64" DirectoryOptions="3"/>
+ <ROW Directory="fedorax64_Dir" Directory_Parent="lib_Dir" DefaultDir="FEDORA~1|fedora-x64" DirectoryOptions="3"/>
+ <ROW Directory="lib_Dir" Directory_Parent="APPDIR" DefaultDir="lib" DirectoryOptions="3"/>
+ <ROW Directory="linuxx64_Dir" Directory_Parent="lib_Dir" DefaultDir="LINUX-~1|linux-x64" DirectoryOptions="3"/>
+ <ROW Directory="osx_Dir" Directory_Parent="lib_Dir" DefaultDir="osx" DirectoryOptions="3"/>
+ <ROW Directory="rhelx64_Dir" Directory_Parent="lib_Dir" DefaultDir="rhel-x64" DirectoryOptions="3"/>
+ <ROW Directory="roslyn_Dir" Directory_Parent="APPDIR" DefaultDir="roslyn" DirectoryOptions="3"/>
+ <ROW Directory="ubuntu.16.04arm64_Dir" Directory_Parent="lib_Dir" DefaultDir="UBUNTU~1.04-|ubuntu.16.04-arm64" DirectoryOptions="3"/>
+ <ROW Directory="ubuntu.18.04x64_Dir" Directory_Parent="lib_Dir" DefaultDir="UBUNTU~2.04-|ubuntu.18.04-x64" DirectoryOptions="3"/>
+ <ROW Directory="win32_Dir" Directory_Parent="lib_Dir" DefaultDir="win32" DirectoryOptions="3"/>
+ <ROW Directory="x64_1_Dir" Directory_Parent="win32_Dir" DefaultDir="x64" DirectoryOptions="3"/>
<ROW Directory="x64_Dir" Directory_Parent="APPDIR" DefaultDir="x64" DirectoryOptions="3"/>
+ <ROW Directory="x86_1_Dir" Directory_Parent="win32_Dir" DefaultDir="x86" DirectoryOptions="3"/>
<ROW Directory="x86_Dir" Directory_Parent="APPDIR" DefaultDir="x86" DirectoryOptions="3"/>
</COMPONENT>
<COMPONENT cid="caphyon.advinst.msicomp.MsiCompsComponent">
@@ -83,9 +98,17 @@
<ROW Component="MaterialDesignThemes.Wpf.dll" ComponentId="{D4A89F22-F969-46C3-915C-C565E7BE99D1}" Directory_="APPDIR" Attributes="0" KeyPath="MaterialDesignThemes.Wpf.dll"/>
<ROW Component="Microsoft.AspNet.SignalR.Client.dll" ComponentId="{A6A1BE43-A965-4718-8B9B-E8BB2D2B6FA9}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.AspNet.SignalR.Client.dll"/>
<ROW Component="Microsoft.Azure.ActiveDirectory.GraphClient.dll" ComponentId="{623FE6DD-F44D-4E99-8FD5-E54A608BE511}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.Azure.ActiveDirectory.GraphClient.dll"/>
+ <ROW Component="Microsoft.Build.Tasks.CodeAnalysis.dll" ComponentId="{1BCE1248-761D-4264-9E7F-E9F4D0D91D2A}" Directory_="roslyn_Dir" Attributes="0" KeyPath="Microsoft.Build.Tasks.CodeAnalysis.dll"/>
+ <ROW Component="Microsoft.CodeAnalysis.CSharp.Scripting.dll" ComponentId="{8A0AD9F6-646C-44DC-89B8-60EF3A8A48E5}" Directory_="roslyn_Dir" Attributes="0" KeyPath="Microsoft.CodeAnalysis.CSharp.Scripting.dll"/>
+ <ROW Component="Microsoft.CodeAnalysis.CSharp.dll" ComponentId="{A515FD93-C530-4DE6-B103-1956165EF88B}" Directory_="roslyn_Dir" Attributes="0" KeyPath="Microsoft.CodeAnalysis.CSharp.dll"/>
+ <ROW Component="Microsoft.CodeAnalysis.Scripting.dll" ComponentId="{F863D211-5006-4831-8388-0EE65357F40D}" Directory_="roslyn_Dir" Attributes="0" KeyPath="Microsoft.CodeAnalysis.Scripting.dll"/>
+ <ROW Component="Microsoft.CodeAnalysis.VisualBasic.dll" ComponentId="{305F9E2B-9F03-4F2D-A382-07DC75ACD126}" Directory_="roslyn_Dir" Attributes="0" KeyPath="Microsoft.CodeAnalysis.VisualBasic.dll"/>
+ <ROW Component="Microsoft.CodeAnalysis.dll" ComponentId="{9ACDD738-0254-4691-A294-AB4C05A31616}" Directory_="roslyn_Dir" Attributes="0" KeyPath="Microsoft.CodeAnalysis.dll"/>
<ROW Component="Microsoft.Data.Edm.dll" ComponentId="{2350532D-AD9C-40A6-A70E-169F339F0451}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.Data.Edm.dll"/>
<ROW Component="Microsoft.Data.OData.dll" ComponentId="{55F248A2-158B-42D6-B1BB-4D0EFA28E7CF}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.Data.OData.dll"/>
<ROW Component="Microsoft.Data.Services.Client.dll" ComponentId="{B6076FF3-B531-4AF2-BAE4-17BD2870C982}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.Data.Services.Client.dll"/>
+ <ROW Component="Microsoft.DiaSymReader.Native.amd64.dll" ComponentId="{A4AEBA9B-B3B5-4DD6-A6CD-94E023022422}" Directory_="roslyn_Dir" Attributes="256" KeyPath="Microsoft.DiaSymReader.Native.amd64.dll"/>
+ <ROW Component="Microsoft.DiaSymReader.Native.x86.dll" ComponentId="{A5AB6A2C-4B36-4779-91BA-8E76BFCB0CB2}" Directory_="roslyn_Dir" Attributes="0" KeyPath="Microsoft.DiaSymReader.Native.x86.dll"/>
<ROW Component="Microsoft.IdentityModel.Clients.ActiveDirectory.dll" ComponentId="{C8FF51E6-B8BB-401D-BD03-58FD08E4C389}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.IdentityModel.Clients.ActiveDirectory.dll"/>
<ROW Component="Microsoft.Practices.ServiceLocation.dll" ComponentId="{FD4F5E8C-62FB-4E90-8AFE-91B6F9458007}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.Practices.ServiceLocation.dll"/>
<ROW Component="Microsoft.ServiceBus.dll" ComponentId="{B19BCB1E-6C52-4BF7-A128-DDA1DC047D0E}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.ServiceBus.dll"/>
@@ -114,6 +137,7 @@
<ROW Component="Microsoft.VisualStudio.Services.WebApi.dll" ComponentId="{C7189E85-DD7D-4AE6-B417-4EC21AF1CE83}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.WebApi.dll"/>
<ROW Component="Microsoft.WITDataStore32.dll" ComponentId="{4C13EE15-BCEC-400D-A528-50AF945B8F8D}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.WITDataStore32.dll"/>
<ROW Component="Microsoft.Win32.Primitives.dll" ComponentId="{BF151A6C-FFF4-4A01-BC24-A9F7DD9A5FDF}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.Win32.Primitives.dll"/>
+ <ROW Component="Microsoft.Win32.Primitives.dll_1" ComponentId="{A40ECA54-B6F2-47BA-8267-B8A7E3338E72}" Directory_="roslyn_Dir" Attributes="0" KeyPath="Microsoft.Win32.Primitives.dll_1"/>
<ROW Component="Microsoft.WindowsAPICodePack.Shell.dll" ComponentId="{9012CCFC-2D61-447A-BD29-4A21EB0F931B}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.WindowsAPICodePack.Shell.dll"/>
<ROW Component="Microsoft.WindowsAPICodePack.ShellExtensions.dll" ComponentId="{EA4E42E9-528C-4EB5-82B4-84F6CA646FC4}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.WindowsAPICodePack.ShellExtensions.dll"/>
<ROW Component="Microsoft.WindowsAPICodePack.dll" ComponentId="{C451DC70-A14F-4DE9-8E91-B3CAE54178FB}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.WindowsAPICodePack.dll"/>
@@ -141,7 +165,9 @@
<ROW Component="SQLite.Interop.dll_1" ComponentId="{953C72C6-AD84-44D2-B02D-5CBD0511E5C0}" Directory_="x86_Dir" Attributes="0" KeyPath="SQLite.Interop.dll_1"/>
<ROW Component="SimpleValidator.dll" ComponentId="{81091AC7-AB7A-4043-8D23-F329BBCA40BD}" Directory_="APPDIR" Attributes="0" KeyPath="SimpleValidator.dll"/>
<ROW Component="System.AppContext.dll" ComponentId="{358E356C-62BE-4F21-8647-16E76597A83B}" Directory_="APPDIR" Attributes="0" KeyPath="System.AppContext.dll"/>
+ <ROW Component="System.AppContext.dll_1" ComponentId="{ADDE600C-810C-4202-9B2D-446121A122F6}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.AppContext.dll_1"/>
<ROW Component="System.Collections.Concurrent.dll" ComponentId="{E0EB1925-1EA9-4E60-BDF7-FDAD9CDCCA54}" Directory_="APPDIR" Attributes="0" KeyPath="System.Collections.Concurrent.dll"/>
+ <ROW Component="System.Collections.Immutable.dll" ComponentId="{9A517387-B542-4AEF-82D6-18C774F37ED6}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Collections.Immutable.dll"/>
<ROW Component="System.Collections.NonGeneric.dll" ComponentId="{011DA1E5-BA07-477C-8A6B-6F7F1C82CEC2}" Directory_="APPDIR" Attributes="0" KeyPath="System.Collections.NonGeneric.dll"/>
<ROW Component="System.Collections.Specialized.dll" ComponentId="{26CC4B96-5E70-45BF-BA53-BEF10D2D2EC7}" Directory_="APPDIR" Attributes="0" KeyPath="System.Collections.Specialized.dll"/>
<ROW Component="System.Collections.dll" ComponentId="{EB70E9A5-F888-4B4B-840C-E94098874BBC}" Directory_="APPDIR" Attributes="0" KeyPath="System.Collections.dll"/>
@@ -150,6 +176,7 @@
<ROW Component="System.ComponentModel.TypeConverter.dll" ComponentId="{29481774-C7DE-404C-866B-00C152FD9F54}" Directory_="APPDIR" Attributes="0" KeyPath="System.ComponentModel.TypeConverter.dll"/>
<ROW Component="System.ComponentModel.dll" ComponentId="{66A049C3-F933-41FB-B446-1B59D998A76D}" Directory_="APPDIR" Attributes="0" KeyPath="System.ComponentModel.dll"/>
<ROW Component="System.Console.dll" ComponentId="{F70C16C5-D638-4396-94D7-60D61AD29043}" Directory_="APPDIR" Attributes="0" KeyPath="System.Console.dll"/>
+ <ROW Component="System.Console.dll_1" ComponentId="{C2B7A32A-3F53-44B4-A836-6CBDA9E0904E}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Console.dll_1"/>
<ROW Component="System.Data.Common.dll" ComponentId="{12CBF4E7-6852-4A9B-BEA3-68E4D59C74D0}" Directory_="APPDIR" Attributes="0" KeyPath="System.Data.Common.dll"/>
<ROW Component="System.Data.SQLite.EF6.dll" ComponentId="{E1451EC3-9A1A-4AA6-9847-85C335CE1D14}" Directory_="APPDIR" Attributes="0" KeyPath="System.Data.SQLite.EF6.dll"/>
<ROW Component="System.Data.SQLite.Linq.dll" ComponentId="{EBAE90CC-361C-4FAA-973A-FB6530A43290}" Directory_="APPDIR" Attributes="0" KeyPath="System.Data.SQLite.Linq.dll"/>
@@ -157,8 +184,11 @@
<ROW Component="System.Diagnostics.Contracts.dll" ComponentId="{F7F8A2C5-672E-4DDF-9B06-813BE46ABE9A}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.Contracts.dll"/>
<ROW Component="System.Diagnostics.Debug.dll" ComponentId="{5398838C-738A-4FFD-9FC4-7A91BE89B332}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.Debug.dll"/>
<ROW Component="System.Diagnostics.FileVersionInfo.dll" ComponentId="{F5D89192-D7C9-401A-AE25-B55DF0EAF352}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.FileVersionInfo.dll"/>
+ <ROW Component="System.Diagnostics.FileVersionInfo.dll_1" ComponentId="{599BAB63-882B-48BD-94D2-AC5B490E8FC5}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Diagnostics.FileVersionInfo.dll_1"/>
<ROW Component="System.Diagnostics.Process.dll" ComponentId="{AD6B2C65-C00C-4CCE-9857-4525E5155685}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.Process.dll"/>
+ <ROW Component="System.Diagnostics.Process.dll_1" ComponentId="{3D91E365-A698-44B0-994A-4F581A5F47BE}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Diagnostics.Process.dll_1"/>
<ROW Component="System.Diagnostics.StackTrace.dll" ComponentId="{9D42C40E-BA14-446E-9F28-700F79F93CF1}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.StackTrace.dll"/>
+ <ROW Component="System.Diagnostics.StackTrace.dll_1" ComponentId="{332192FB-5338-4DF7-AF0F-A205EB4B89D7}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Diagnostics.StackTrace.dll_1"/>
<ROW Component="System.Diagnostics.TextWriterTraceListener.dll" ComponentId="{8763EE73-B2CF-4675-BC65-61A5A2844030}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.TextWriterTraceListener.dll"/>
<ROW Component="System.Diagnostics.Tools.dll" ComponentId="{5F0560B5-B294-4C8E-814D-AA2A7CD38CBE}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.Tools.dll"/>
<ROW Component="System.Diagnostics.TraceSource.dll" ComponentId="{81026182-D1C0-40AD-B6DF-DA82096ADAAE}" Directory_="APPDIR" Attributes="0" KeyPath="System.Diagnostics.TraceSource.dll"/>
@@ -170,13 +200,18 @@
<ROW Component="System.Globalization.dll" ComponentId="{7AF72BE3-61B7-4285-8471-EF35418DE3F7}" Directory_="APPDIR" Attributes="0" KeyPath="System.Globalization.dll"/>
<ROW Component="System.IO.Compression.ZipFile.dll" ComponentId="{CF2092A8-AE50-4D12-860E-2F0BD0CE6A6A}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.Compression.ZipFile.dll"/>
<ROW Component="System.IO.Compression.dll" ComponentId="{E35A2B0E-E9DD-4B5D-A7BE-D501A42C9DF4}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.Compression.dll"/>
+ <ROW Component="System.IO.Compression.dll_1" ComponentId="{09B73784-6B70-469D-94F8-512DA09D4FF1}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.IO.Compression.dll_1"/>
<ROW Component="System.IO.FileSystem.DriveInfo.dll" ComponentId="{983AC4A9-31A9-4D80-98BA-ECFC143D5E7F}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.FileSystem.DriveInfo.dll"/>
+ <ROW Component="System.IO.FileSystem.DriveInfo.dll_1" ComponentId="{A8588274-7B01-4753-ACD9-F32231F552E2}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.IO.FileSystem.DriveInfo.dll_1"/>
<ROW Component="System.IO.FileSystem.Primitives.dll" ComponentId="{29A233E2-6200-43EE-87E9-7313437223EB}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.FileSystem.Primitives.dll"/>
+ <ROW Component="System.IO.FileSystem.Primitives.dll_1" ComponentId="{674647B6-F3CA-49D1-971A-13B35B2DFE03}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.IO.FileSystem.Primitives.dll_1"/>
<ROW Component="System.IO.FileSystem.Watcher.dll" ComponentId="{A84EDD4B-8636-492F-8114-EA248483C1E6}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.FileSystem.Watcher.dll"/>
<ROW Component="System.IO.FileSystem.dll" ComponentId="{CEDBD51C-2D62-42FF-8C1D-84219B6029EF}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.FileSystem.dll"/>
+ <ROW Component="System.IO.FileSystem.dll_1" ComponentId="{0699564F-B508-436B-90E0-D4932D341BA3}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.IO.FileSystem.dll_1"/>
<ROW Component="System.IO.IsolatedStorage.dll" ComponentId="{83D8FD3C-958D-47B6-849E-15CD940244E0}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.IsolatedStorage.dll"/>
<ROW Component="System.IO.MemoryMappedFiles.dll" ComponentId="{C874420A-A38B-482E-8EC8-5D73CBB256E0}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.MemoryMappedFiles.dll"/>
<ROW Component="System.IO.Pipes.dll" ComponentId="{AF452794-8BF8-4BAD-AA3B-B9DB59D723E3}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.Pipes.dll"/>
+ <ROW Component="System.IO.Pipes.dll_1" ComponentId="{605BD35F-074F-41A1-B2C6-6AC170EC1014}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.IO.Pipes.dll_1"/>
<ROW Component="System.IO.UnmanagedMemoryStream.dll" ComponentId="{514B14A8-9B28-4268-90BD-A39B895B0041}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.UnmanagedMemoryStream.dll"/>
<ROW Component="System.IO.dll" ComponentId="{A5AA6EF0-C89E-4F78-A468-ACFD84069FCF}" Directory_="APPDIR" Attributes="0" KeyPath="System.IO.dll"/>
<ROW Component="System.IdentityModel.Tokens.Jwt.dll" ComponentId="{E4D36818-F673-4F97-89E3-3ACEE6B795CC}" Directory_="APPDIR" Attributes="0" KeyPath="System.IdentityModel.Tokens.Jwt.dll"/>
@@ -203,6 +238,7 @@
<ROW Component="System.Reactive.PlatformServices.dll" ComponentId="{2DD8FDBF-C96F-4DC9-AA12-1F5A88FB9370}" Directory_="APPDIR" Attributes="0" KeyPath="System.Reactive.PlatformServices.dll"/>
<ROW Component="System.Reactive.Windows.Threading.dll" ComponentId="{B460E505-47E6-4146-BF7D-F1FF8E52EB8A}" Directory_="APPDIR" Attributes="0" KeyPath="System.Reactive.Windows.Threading.dll"/>
<ROW Component="System.Reflection.Extensions.dll" ComponentId="{5FCB5312-1D48-4D99-8728-7628637BB4F2}" Directory_="APPDIR" Attributes="0" KeyPath="System.Reflection.Extensions.dll"/>
+ <ROW Component="System.Reflection.Metadata.dll" ComponentId="{9DA91072-C351-430B-A14A-35B771A2CCF7}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Reflection.Metadata.dll"/>
<ROW Component="System.Reflection.Primitives.dll" ComponentId="{11C0857E-2BD7-4A36-B20B-F227826B99F0}" Directory_="APPDIR" Attributes="0" KeyPath="System.Reflection.Primitives.dll"/>
<ROW Component="System.Reflection.dll" ComponentId="{4889F7EB-7BBE-4926-B487-65F9E50FD867}" Directory_="APPDIR" Attributes="0" KeyPath="System.Reflection.dll"/>
<ROW Component="System.Resources.Reader.dll" ComponentId="{EBDB1797-7E2A-4C28-889D-DF29D154127A}" Directory_="APPDIR" Attributes="0" KeyPath="System.Resources.Reader.dll"/>
@@ -219,15 +255,23 @@
<ROW Component="System.Runtime.Serialization.Primitives.dll" ComponentId="{05D7F62B-3EA2-4487-800F-2E3E26A17623}" Directory_="APPDIR" Attributes="0" KeyPath="System.Runtime.Serialization.Primitives.dll"/>
<ROW Component="System.Runtime.Serialization.Xml.dll" ComponentId="{72603E1F-3B97-4A61-B3D4-864FF9865F6A}" Directory_="APPDIR" Attributes="0" KeyPath="System.Runtime.Serialization.Xml.dll"/>
<ROW Component="System.Runtime.dll" ComponentId="{1A86F578-5323-432C-834E-6A1C7AB1CE76}" Directory_="APPDIR" Attributes="0" KeyPath="System.Runtime.dll"/>
+ <ROW Component="System.Security.AccessControl.dll" ComponentId="{C9B1FC6B-C4F2-4B9C-A29F-C38D47111179}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Security.AccessControl.dll"/>
<ROW Component="System.Security.Claims.dll" ComponentId="{A58BFEA5-776F-4F09-AD57-783855FBFD2C}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.Claims.dll"/>
+ <ROW Component="System.Security.Claims.dll_1" ComponentId="{1797D00D-8329-4347-925E-FB04704EB6BC}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Security.Claims.dll_1"/>
<ROW Component="System.Security.Cryptography.Algorithms.dll" ComponentId="{5510E981-08E6-4C71-AB20-55EC75BD52D3}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.Cryptography.Algorithms.dll"/>
+ <ROW Component="System.Security.Cryptography.Algorithms.dll_1" ComponentId="{BEA56F15-BD53-4D9A-A06F-9FF0AAFFD272}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Security.Cryptography.Algorithms.dll_1"/>
<ROW Component="System.Security.Cryptography.Csp.dll" ComponentId="{3F6AAE9A-0126-43EF-894E-65A4931597F8}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.Cryptography.Csp.dll"/>
<ROW Component="System.Security.Cryptography.Encoding.dll" ComponentId="{086BF834-ACD2-41FC-9C95-098F1C731B0B}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.Cryptography.Encoding.dll"/>
+ <ROW Component="System.Security.Cryptography.Encoding.dll_1" ComponentId="{939F660B-6699-4BA4-B42B-4D41598C462D}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Security.Cryptography.Encoding.dll_1"/>
<ROW Component="System.Security.Cryptography.Primitives.dll" ComponentId="{AC2E9278-0D19-40A4-83B9-E97716BD255D}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.Cryptography.Primitives.dll"/>
+ <ROW Component="System.Security.Cryptography.Primitives.dll_1" ComponentId="{23626E8C-4011-407F-85A4-F2415DB164F3}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Security.Cryptography.Primitives.dll_1"/>
<ROW Component="System.Security.Cryptography.X509Certificates.dll" ComponentId="{00F4F6C1-6B4D-4DFD-BD59-72EE690FC246}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.Cryptography.X509Certificates.dll"/>
+ <ROW Component="System.Security.Cryptography.X509Certificates.dll_1" ComponentId="{55475D52-5B8D-42A2-86D0-CCB0C999ED7A}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Security.Cryptography.X509Certificates.dll_1"/>
+ <ROW Component="System.Security.Principal.Windows.dll" ComponentId="{0E71A106-4E6D-4062-9021-2428497116A0}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Security.Principal.Windows.dll"/>
<ROW Component="System.Security.Principal.dll" ComponentId="{127424E0-24F8-456F-BBEC-F23E331E1669}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.Principal.dll"/>
<ROW Component="System.Security.SecureString.dll" ComponentId="{C40FA779-F72E-4CF2-9A42-368ADB1D05E4}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.SecureString.dll"/>
<ROW Component="System.Spatial.dll" ComponentId="{A65F504C-A7EC-41BF-9C4F-3752037EFE25}" Directory_="APPDIR" Attributes="0" KeyPath="System.Spatial.dll"/>
+ <ROW Component="System.Text.Encoding.CodePages.dll" ComponentId="{493DD921-91C0-4731-BD4B-588DA7D4B4F6}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Text.Encoding.CodePages.dll"/>
<ROW Component="System.Text.Encoding.Extensions.dll" ComponentId="{C177E423-71AE-4FB7-BDC1-1FFF650EFEBC}" Directory_="APPDIR" Attributes="0" KeyPath="System.Text.Encoding.Extensions.dll"/>
<ROW Component="System.Text.Encoding.dll" ComponentId="{903DBCE1-0C97-4F99-BF85-41B54EF26B33}" Directory_="APPDIR" Attributes="0" KeyPath="System.Text.Encoding.dll"/>
<ROW Component="System.Text.RegularExpressions.dll" ComponentId="{BFF6B45B-522B-44D6-8421-EC4B091B3DB5}" Directory_="APPDIR" Attributes="0" KeyPath="System.Text.RegularExpressions.dll"/>
@@ -235,19 +279,25 @@
<ROW Component="System.Threading.Tasks.Parallel.dll" ComponentId="{987E51AD-AF06-4D03-B691-7318BD6BDA34}" Directory_="APPDIR" Attributes="0" KeyPath="System.Threading.Tasks.Parallel.dll"/>
<ROW Component="System.Threading.Tasks.dll" ComponentId="{B92EED7E-FE98-4A94-B157-F75D4E92EB85}" Directory_="APPDIR" Attributes="0" KeyPath="System.Threading.Tasks.dll"/>
<ROW Component="System.Threading.Thread.dll" ComponentId="{4C4CAEB2-FB35-4937-BDCB-2FF8E541EB65}" Directory_="APPDIR" Attributes="0" KeyPath="System.Threading.Thread.dll"/>
+ <ROW Component="System.Threading.Thread.dll_1" ComponentId="{71B6832A-77A9-4CDE-868B-64CC66AFB7EB}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Threading.Thread.dll_1"/>
<ROW Component="System.Threading.ThreadPool.dll" ComponentId="{4AD2E492-AA1B-4C56-98F6-AAF9AC9DD7F5}" Directory_="APPDIR" Attributes="0" KeyPath="System.Threading.ThreadPool.dll"/>
<ROW Component="System.Threading.Timer.dll" ComponentId="{8DBA4386-A1D8-4D98-9A3E-FA449DAA031F}" Directory_="APPDIR" Attributes="0" KeyPath="System.Threading.Timer.dll"/>
<ROW Component="System.Threading.dll" ComponentId="{08B42E48-C46A-402F-B07A-D944F647A72F}" Directory_="APPDIR" Attributes="0" KeyPath="System.Threading.dll"/>
<ROW Component="System.ValueTuple.dll" ComponentId="{33243DAF-2CB1-4158-BD3E-646D178E6BE3}" Directory_="APPDIR" Attributes="0" KeyPath="System.ValueTuple.dll"/>
+ <ROW Component="System.ValueTuple.dll_1" ComponentId="{B645B514-431C-405E-A84F-795718582196}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.ValueTuple.dll_1"/>
<ROW Component="System.Web.Http.WebHost.dll" ComponentId="{76AA8551-7C36-44F1-8076-7DC8C0159CB6}" Directory_="APPDIR" Attributes="0" KeyPath="System.Web.Http.WebHost.dll"/>
<ROW Component="System.Web.Http.dll" ComponentId="{7F609038-B81D-44BC-821F-2A742860ECD5}" Directory_="APPDIR" Attributes="0" KeyPath="System.Web.Http.dll"/>
<ROW Component="System.Web.Razor.dll" ComponentId="{40A62E23-8887-4240-8D87-D8D07E2C347F}" Directory_="APPDIR" Attributes="0" KeyPath="System.Web.Razor.dll"/>
<ROW Component="System.Windows.Interactivity.dll" ComponentId="{844D2D3C-AC50-418F-A9D4-8D928DBA49A7}" Directory_="APPDIR" Attributes="0" KeyPath="System.Windows.Interactivity.dll"/>
<ROW Component="System.Xml.ReaderWriter.dll" ComponentId="{6DAC8C4A-BB06-465D-98B1-9D1015022B9C}" Directory_="APPDIR" Attributes="0" KeyPath="System.Xml.ReaderWriter.dll"/>
+ <ROW Component="System.Xml.ReaderWriter.dll_1" ComponentId="{159C7118-2AAA-43AD-948F-0B6B214DE77C}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Xml.ReaderWriter.dll_1"/>
<ROW Component="System.Xml.XDocument.dll" ComponentId="{A37644F6-E28C-4F46-8A2F-FF8148DE4CEE}" Directory_="APPDIR" Attributes="0" KeyPath="System.Xml.XDocument.dll"/>
<ROW Component="System.Xml.XPath.XDocument.dll" ComponentId="{4D676094-4D89-4619-A5C2-C6E26D44F46E}" Directory_="APPDIR" Attributes="0" KeyPath="System.Xml.XPath.XDocument.dll"/>
+ <ROW Component="System.Xml.XPath.XDocument.dll_1" ComponentId="{D137B4CE-A31F-4CB4-A5A8-3C45799EC935}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Xml.XPath.XDocument.dll_1"/>
<ROW Component="System.Xml.XPath.dll" ComponentId="{60E883E1-D85B-432F-BB51-F83BF3E79BFA}" Directory_="APPDIR" Attributes="0" KeyPath="System.Xml.XPath.dll"/>
+ <ROW Component="System.Xml.XPath.dll_1" ComponentId="{73C84E5E-DA39-404A-BD5B-7717983C4213}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Xml.XPath.dll_1"/>
<ROW Component="System.Xml.XmlDocument.dll" ComponentId="{A0706488-0521-4073-AB50-2345AC9C663D}" Directory_="APPDIR" Attributes="0" KeyPath="System.Xml.XmlDocument.dll"/>
+ <ROW Component="System.Xml.XmlDocument.dll_1" ComponentId="{5DD496B2-F222-4697-AFC3-88B5549FF78D}" Directory_="roslyn_Dir" Attributes="0" KeyPath="System.Xml.XmlDocument.dll_1"/>
<ROW Component="System.Xml.XmlSerializer.dll" ComponentId="{2DD41ED6-51F1-4B11-B7F8-923AD51C1271}" Directory_="APPDIR" Attributes="0" KeyPath="System.Xml.XmlSerializer.dll"/>
<ROW Component="Tango.AdvancedInstaller.dll" ComponentId="{1B4CE66E-9A77-4A06-8BCC-8D39EC9F27A7}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.AdvancedInstaller.dll"/>
<ROW Component="Tango.AnimatedGif.dll" ComponentId="{4E1F5301-EA6D-45D5-9C99-23E59875096A}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.AnimatedGif.dll"/>
@@ -328,6 +378,7 @@
<ROW Component="Tango.Video.dll" ComponentId="{3CC4C095-51B4-44F0-ACB2-DEB38DCECDCD}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Video.dll"/>
<ROW Component="Tango.Visuals.dll" ComponentId="{B7CD722E-F1B8-4512-9136-4E8C89A2C6EB}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Visuals.dll"/>
<ROW Component="Tango.Web.dll" ComponentId="{7544BD5E-0E9E-4E4E-8952-9FFF36EABC33}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.Web.dll"/>
+ <ROW Component="VBCSCompiler.exe" ComponentId="{C2852448-4039-4B8D-B3AB-37FFF7635382}" Directory_="roslyn_Dir" Attributes="0" KeyPath="VBCSCompiler.exe"/>
<ROW Component="WpfAnimatedGif.dll" ComponentId="{BF256556-2C42-4205-BA49-9E1623855ED9}" Directory_="APPDIR" Attributes="0" KeyPath="WpfAnimatedGif.dll"/>
<ROW Component="Z.EntityFramework.Extensions.dll" ComponentId="{6015DA13-CC4C-40F5-B1D9-7B4B02545E10}" Directory_="APPDIR" Attributes="0" KeyPath="Z.EntityFramework.Extensions.dll"/>
<ROW Component="Z.EntityFramework.Plus.EF6.dll" ComponentId="{F4F59D2D-274A-4524-AB1A-B878E4007709}" Directory_="APPDIR" Attributes="0" KeyPath="Z.EntityFramework.Plus.EF6.dll"/>
@@ -336,10 +387,25 @@
<ROW Component="ZedGraph.resources.dll" ComponentId="{C19A98E8-041E-475F-B94C-2DBD2C3AEB54}" Directory_="APPDIR" Attributes="0" KeyPath="ZedGraph.resources.dll"/>
<ROW Component="benchmarks_rgb_lab.csv" ComponentId="{227CFC36-C088-48B6-B3FB-99170EB7B182}" Directory_="TCC_Dir" Attributes="0" KeyPath="benchmarks_rgb_lab.csv" Type="0"/>
<ROW Component="concrt140.dll" ComponentId="{BA1FDE96-3FAB-4FE6-BCDF-547FB5468791}" Directory_="APPDIR" Attributes="256" KeyPath="concrt140.dll"/>
+ <ROW Component="csc.exe" ComponentId="{9E02905A-7CAD-4882-94E4-3ED85FC909CD}" Directory_="roslyn_Dir" Attributes="0" KeyPath="csc.exe"/>
+ <ROW Component="csc.exe.config" ComponentId="{C2010BC3-8EEC-4240-914E-DF695CF3DD19}" Directory_="roslyn_Dir" Attributes="0" KeyPath="csc.exe.config" Type="0"/>
+ <ROW Component="csi.exe" ComponentId="{9E9E7113-F15F-4055-8079-CB8D4F737103}" Directory_="roslyn_Dir" Attributes="0" KeyPath="csi.exe"/>
<ROW Component="cvextern.dll" ComponentId="{5FBA3BA5-D6C4-48B0-B108-61E7F9915D5A}" Directory_="APPDIR" Attributes="256" KeyPath="cvextern.dll"/>
<ROW Component="fpgen.exe" ComponentId="{457206AA-0093-4C01-80E4-BBCAB192F18F}" Directory_="APPDIR" Attributes="0" KeyPath="fpgen.exe"/>
+ <ROW Component="git2106a5f2.dll" ComponentId="{3947226D-AE97-4200-ACE5-C2C0D4698C19}" Directory_="x64_1_Dir" Attributes="256" KeyPath="git2106a5f2.dll"/>
+ <ROW Component="git2106a5f2.dll_1" ComponentId="{5806E7F5-63C4-432A-92F2-FD1F83CF4C11}" Directory_="x86_1_Dir" Attributes="0" KeyPath="git2106a5f2.dll_1"/>
<ROW Component="libMagickCore2.dll" ComponentId="{858FD670-C906-401C-834B-AA69D5D7B106}" Directory_="APPDIR" Attributes="0" KeyPath="libMagickCore2.dll"/>
<ROW Component="libMagickWand2.dll" ComponentId="{2E38FD24-82A5-432F-9847-E9A78CB2A5A6}" Directory_="APPDIR" Attributes="0" KeyPath="libMagickWand2.dll"/>
+ <ROW Component="libgit2106a5f2.dylib" ComponentId="{2E4E4943-AFC7-4B0D-BF24-C10D92715CB7}" Directory_="osx_Dir" Attributes="0" KeyPath="libgit2106a5f2.dylib" Type="0"/>
+ <ROW Component="libgit2106a5f2.so" ComponentId="{6132FC72-0E0D-4B56-94C3-1856A9D83A10}" Directory_="alpinex64_Dir" Attributes="0" KeyPath="libgit2106a5f2.so" Type="0"/>
+ <ROW Component="libgit2106a5f2.so_1" ComponentId="{8382554A-45C3-45B7-80D4-0A807913318F}" Directory_="alpine.3.9x64_Dir" Attributes="0" KeyPath="libgit2106a5f2.so_1" Type="0"/>
+ <ROW Component="libgit2106a5f2.so_2" ComponentId="{A926BABA-3F99-4452-8735-F2C1E4299AC5}" Directory_="debianarm64_Dir" Attributes="0" KeyPath="libgit2106a5f2.so_2" Type="0"/>
+ <ROW Component="libgit2106a5f2.so_3" ComponentId="{BB92FD4B-C44B-4D1F-9FC8-2F831CB1C3CE}" Directory_="debian.9x64_Dir" Attributes="0" KeyPath="libgit2106a5f2.so_3" Type="0"/>
+ <ROW Component="libgit2106a5f2.so_4" ComponentId="{9DA3CC8D-B5D1-42B1-A12F-CE446DBC07DF}" Directory_="fedorax64_Dir" Attributes="0" KeyPath="libgit2106a5f2.so_4" Type="0"/>
+ <ROW Component="libgit2106a5f2.so_5" ComponentId="{33D1A65F-2C29-4345-9E4B-91B795875986}" Directory_="linuxx64_Dir" Attributes="0" KeyPath="libgit2106a5f2.so_5" Type="0"/>
+ <ROW Component="libgit2106a5f2.so_6" ComponentId="{8FF6DB35-CBA4-4895-8974-C7959FB60DA8}" Directory_="rhelx64_Dir" Attributes="0" KeyPath="libgit2106a5f2.so_6" Type="0"/>
+ <ROW Component="libgit2106a5f2.so_7" ComponentId="{601C20DD-9218-4B01-9B41-C3F526E09DDC}" Directory_="ubuntu.16.04arm64_Dir" Attributes="0" KeyPath="libgit2106a5f2.so_7" Type="0"/>
+ <ROW Component="libgit2106a5f2.so_8" ComponentId="{5B803211-BED1-4F87-94C8-FAD76D18F05C}" Directory_="ubuntu.18.04x64_Dir" Attributes="0" KeyPath="libgit2106a5f2.so_8" Type="0"/>
<ROW Component="libiconv2.dll" ComponentId="{2700198B-26A6-4D84-93C7-8855FD014A13}" Directory_="APPDIR" Attributes="0" KeyPath="libiconv2.dll"/>
<ROW Component="libjpeg7.dll" ComponentId="{88A7E4EB-DBA8-40A6-AB9A-54F0DE726F06}" Directory_="APPDIR" Attributes="0" KeyPath="libjpeg7.dll"/>
<ROW Component="libpng120.dll" ComponentId="{45735C72-6B1C-421C-8F92-561795B2B945}" Directory_="APPDIR" Attributes="0" KeyPath="libpng120.dll"/>
@@ -376,6 +442,7 @@
<ROW Component="protobufnet.dll" ComponentId="{EC7E9950-BFF7-4B28-918D-7F5EBAD54696}" Directory_="APPDIR" Attributes="0" KeyPath="protobufnet.dll"/>
<ROW Component="template.bmp" ComponentId="{927DB4C0-6F7A-4D61-8BFC-16AE3116AD96}" Directory_="TCC_Dir" Attributes="0" KeyPath="template.bmp"/>
<ROW Component="ucrtbased.dll" ComponentId="{4188BB88-A714-488A-A02D-98710ACC94F5}" Directory_="APPDIR" Attributes="0" KeyPath="ucrtbased.dll"/>
+ <ROW Component="vbc.exe" ComponentId="{F0A093C2-E31E-4D71-9D0A-F3A87D12E6FE}" Directory_="roslyn_Dir" Attributes="0" KeyPath="vbc.exe"/>
<ROW Component="vcruntime140.dll" ComponentId="{078A42AF-E964-4CA3-8A9C-CBE6D0FD76AA}" Directory_="APPDIR" Attributes="0" KeyPath="vcruntime140.dll"/>
<ROW Component="vcruntime140d.dll" ComponentId="{AF42196B-67BB-4EBA-8C3A-38B9527F9775}" Directory_="APPDIR" Attributes="0" KeyPath="vcruntime140d.dll"/>
<ROW Component="zlib1.dll" ComponentId="{B1077B58-3ED7-4166-8329-8FF92411C301}" Directory_="APPDIR" Attributes="0" KeyPath="zlib1.dll"/>
@@ -834,6 +901,97 @@
<ROW File="Microsoft.Data.Services.Client.dll" Component_="Microsoft.Data.Services.Client.dll" FileName="MICRO~26.DLL|Microsoft.Data.Services.Client.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\Microsoft.Data.Services.Client.dll" SelfReg="false"/>
<ROW File="System.Spatial.dll" Component_="System.Spatial.dll" FileName="SYSTE~11.DLL|System.Spatial.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\System.Spatial.dll" SelfReg="false"/>
<ROW File="Tango.ColorLib_v6.dll" Component_="Tango.ColorLib_v6.dll" FileName="TANGO~24.DLL|Tango.ColorLib_v6.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\Tango.ColorLib_v6.dll" SelfReg="false"/>
+ <ROW File="CommandLine.xml" Component_="Dragablz.xml" FileName="COMMAN~1.XML|CommandLine.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\CommandLine.xml" SelfReg="false"/>
+ <ROW File="DocumentFormat.OpenXml.xml" Component_="Dragablz.xml" FileName="DOCUME~1.XML|DocumentFormat.OpenXml.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\DocumentFormat.OpenXml.xml" SelfReg="false"/>
+ <ROW File="EntityFramework.SqlServer.xml" Component_="Dragablz.xml" FileName="ENTITY~1.XML|EntityFramework.SqlServer.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\EntityFramework.SqlServer.xml" SelfReg="false"/>
+ <ROW File="EntityFramework.xml" Component_="Dragablz.xml" FileName="ENTITY~2.XML|EntityFramework.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\EntityFramework.xml" SelfReg="false"/>
+ <ROW File="Google.Protobuf.xml" Component_="Dragablz.xml" FileName="GOOGLE~1.XML|Google.Protobuf.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\Google.Protobuf.xml" SelfReg="false"/>
+ <ROW File="JWT.xml" Component_="Dragablz.xml" FileName="JWT.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\JWT.xml" SelfReg="false"/>
+ <ROW File="libgit2106a5f2.so" Component_="libgit2106a5f2.so" FileName="LIBGIT~1.SO|libgit2-106a5f2.so" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\lib\alpine-x64\libgit2-106a5f2.so" SelfReg="false"/>
+ <ROW File="libgit2106a5f2.so_1" Component_="libgit2106a5f2.so_1" FileName="LIBGIT~1.SO|libgit2-106a5f2.so" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\lib\alpine.3.9-x64\libgit2-106a5f2.so" SelfReg="false"/>
+ <ROW File="libgit2106a5f2.so_2" Component_="libgit2106a5f2.so_2" FileName="LIBGIT~1.SO|libgit2-106a5f2.so" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\lib\debian-arm64\libgit2-106a5f2.so" SelfReg="false"/>
+ <ROW File="libgit2106a5f2.so_3" Component_="libgit2106a5f2.so_3" FileName="LIBGIT~1.SO|libgit2-106a5f2.so" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\lib\debian.9-x64\libgit2-106a5f2.so" SelfReg="false"/>
+ <ROW File="libgit2106a5f2.so_4" Component_="libgit2106a5f2.so_4" FileName="LIBGIT~1.SO|libgit2-106a5f2.so" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\lib\fedora-x64\libgit2-106a5f2.so" SelfReg="false"/>
+ <ROW File="libgit2106a5f2.so_5" Component_="libgit2106a5f2.so_5" FileName="LIBGIT~1.SO|libgit2-106a5f2.so" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\lib\linux-x64\libgit2-106a5f2.so" SelfReg="false"/>
+ <ROW File="libgit2106a5f2.dylib" Component_="libgit2106a5f2.dylib" FileName="LIBGIT~1.DYL|libgit2-106a5f2.dylib" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\lib\osx\libgit2-106a5f2.dylib" SelfReg="false"/>
+ <ROW File="libgit2106a5f2.so_6" Component_="libgit2106a5f2.so_6" FileName="LIBGIT~1.SO|libgit2-106a5f2.so" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\lib\rhel-x64\libgit2-106a5f2.so" SelfReg="false"/>
+ <ROW File="libgit2106a5f2.so_7" Component_="libgit2106a5f2.so_7" FileName="LIBGIT~1.SO|libgit2-106a5f2.so" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\lib\ubuntu.16.04-arm64\libgit2-106a5f2.so" SelfReg="false"/>
+ <ROW File="libgit2106a5f2.so_8" Component_="libgit2106a5f2.so_8" FileName="LIBGIT~1.SO|libgit2-106a5f2.so" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\lib\ubuntu.18.04-x64\libgit2-106a5f2.so" SelfReg="false"/>
+ <ROW File="git2106a5f2.dll" Component_="git2106a5f2.dll" FileName="GIT2-1~1.DLL|git2-106a5f2.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\lib\win32\x64\git2-106a5f2.dll" SelfReg="false"/>
+ <ROW File="git2106a5f2.pdb" Component_="git2106a5f2.dll" FileName="GIT2-1~1.PDB|git2-106a5f2.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\lib\win32\x64\git2-106a5f2.pdb" SelfReg="false"/>
+ <ROW File="git2106a5f2.dll_1" Component_="git2106a5f2.dll_1" FileName="GIT2-1~1.DLL|git2-106a5f2.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\lib\win32\x86\git2-106a5f2.dll" SelfReg="false"/>
+ <ROW File="git2106a5f2.pdb_1" Component_="git2106a5f2.dll_1" FileName="GIT2-1~1.PDB|git2-106a5f2.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\lib\win32\x86\git2-106a5f2.pdb" SelfReg="false"/>
+ <ROW File="LibGit2Sharp.xml" Component_="Dragablz.xml" FileName="LIBGIT~1.XML|LibGit2Sharp.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\LibGit2Sharp.xml" SelfReg="false"/>
+ <ROW File="LiteDB.xml" Component_="Dragablz.xml" FileName="LiteDB.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\LiteDB.xml" SelfReg="false"/>
+ <ROW File="MahApps.Metro.xml" Component_="Dragablz.xml" FileName="MAHAPP~1.XML|MahApps.Metro.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\MahApps.Metro.xml" SelfReg="false"/>
+ <ROW File="MaterialDesignThemes.Wpf.xml" Component_="Dragablz.xml" FileName="MATERI~1.XML|MaterialDesignThemes.Wpf.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\MaterialDesignThemes.Wpf.xml" SelfReg="false"/>
+ <ROW File="Microsoft.AspNet.SignalR.Client.xml" Component_="Dragablz.xml" FileName="MICROS~1.XML|Microsoft.AspNet.SignalR.Client.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\Microsoft.AspNet.SignalR.Client.xml" SelfReg="false"/>
+ <ROW File="Microsoft.IdentityModel.Clients.ActiveDirectory.xml" Component_="Dragablz.xml" FileName="MICROS~2.XML|Microsoft.IdentityModel.Clients.ActiveDirectory.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\Microsoft.IdentityModel.Clients.ActiveDirectory.xml" SelfReg="false"/>
+ <ROW File="Microsoft.SqlServer.AzureStorageEnum.xml" Component_="Dragablz.xml" FileName="MICROS~3.XML|Microsoft.SqlServer.AzureStorageEnum.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\Microsoft.SqlServer.AzureStorageEnum.xml" SelfReg="false"/>
+ <ROW File="Microsoft.SqlServer.ConnectionInfo.xml" Component_="Dragablz.xml" FileName="MICROS~4.XML|Microsoft.SqlServer.ConnectionInfo.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\Microsoft.SqlServer.ConnectionInfo.xml" SelfReg="false"/>
+ <ROW File="Microsoft.SqlServer.Dmf.Common.xml" Component_="Dragablz.xml" FileName="MICROS~5.XML|Microsoft.SqlServer.Dmf.Common.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\Microsoft.SqlServer.Dmf.Common.xml" SelfReg="false"/>
+ <ROW File="Microsoft.SqlServer.ServiceBrokerEnum.xml" Component_="Dragablz.xml" FileName="MICROS~6.XML|Microsoft.SqlServer.ServiceBrokerEnum.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\Microsoft.SqlServer.ServiceBrokerEnum.xml" SelfReg="false"/>
+ <ROW File="Microsoft.SqlServer.Smo.xml" Component_="Dragablz.xml" FileName="MICROS~7.XML|Microsoft.SqlServer.Smo.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\Microsoft.SqlServer.Smo.xml" SelfReg="false"/>
+ <ROW File="Microsoft.SqlServer.SqlEnum.xml" Component_="Dragablz.xml" FileName="MICROS~8.XML|Microsoft.SqlServer.SqlEnum.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\Microsoft.SqlServer.SqlEnum.xml" SelfReg="false"/>
+ <ROW File="Newtonsoft.Json.xml" Component_="Dragablz.xml" FileName="NEWTON~1.XML|Newtonsoft.Json.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\Newtonsoft.Json.xml" SelfReg="false"/>
+ <ROW File="protobufnet.xml" Component_="Dragablz.xml" FileName="PROTOB~1.XML|protobuf-net.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\protobuf-net.xml" SelfReg="false"/>
+ <ROW File="csc.exe" Component_="csc.exe" FileName="csc.exe" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\csc.exe" SelfReg="false" DigSign="true"/>
+ <ROW File="csc.exe.config" Component_="csc.exe.config" FileName="CSCEXE~1.CON|csc.exe.config" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\csc.exe.config" SelfReg="false"/>
+ <ROW File="csc.rsp" Component_="csc.exe.config" FileName="csc.rsp" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\csc.rsp" SelfReg="false"/>
+ <ROW File="csi.exe" Component_="csi.exe" FileName="csi.exe" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\csi.exe" SelfReg="false" DigSign="true"/>
+ <ROW File="csi.exe.config" Component_="csc.exe.config" FileName="CSIEXE~1.CON|csi.exe.config" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\csi.exe.config" SelfReg="false"/>
+ <ROW File="csi.rsp" Component_="csc.exe.config" FileName="csi.rsp" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\csi.rsp" SelfReg="false"/>
+ <ROW File="Microsoft.Build.Tasks.CodeAnalysis.dll" Component_="Microsoft.Build.Tasks.CodeAnalysis.dll" FileName="MICROS~1.DLL|Microsoft.Build.Tasks.CodeAnalysis.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\Microsoft.Build.Tasks.CodeAnalysis.dll" SelfReg="false"/>
+ <ROW File="Microsoft.CodeAnalysis.CSharp.dll" Component_="Microsoft.CodeAnalysis.CSharp.dll" FileName="MICROS~2.DLL|Microsoft.CodeAnalysis.CSharp.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\Microsoft.CodeAnalysis.CSharp.dll" SelfReg="false"/>
+ <ROW File="Microsoft.CodeAnalysis.CSharp.Scripting.dll" Component_="Microsoft.CodeAnalysis.CSharp.Scripting.dll" FileName="MICROS~3.DLL|Microsoft.CodeAnalysis.CSharp.Scripting.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\Microsoft.CodeAnalysis.CSharp.Scripting.dll" SelfReg="false"/>
+ <ROW File="Microsoft.CodeAnalysis.dll" Component_="Microsoft.CodeAnalysis.dll" FileName="MICROS~4.DLL|Microsoft.CodeAnalysis.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\Microsoft.CodeAnalysis.dll" SelfReg="false"/>
+ <ROW File="Microsoft.CodeAnalysis.Scripting.dll" Component_="Microsoft.CodeAnalysis.Scripting.dll" FileName="MICROS~5.DLL|Microsoft.CodeAnalysis.Scripting.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\Microsoft.CodeAnalysis.Scripting.dll" SelfReg="false"/>
+ <ROW File="Microsoft.CodeAnalysis.VisualBasic.dll" Component_="Microsoft.CodeAnalysis.VisualBasic.dll" FileName="MICROS~6.DLL|Microsoft.CodeAnalysis.VisualBasic.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\Microsoft.CodeAnalysis.VisualBasic.dll" SelfReg="false"/>
+ <ROW File="Microsoft.CSharp.Core.targets" Component_="csc.exe.config" FileName="MICROS~1.TAR|Microsoft.CSharp.Core.targets" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\Microsoft.CSharp.Core.targets" SelfReg="false"/>
+ <ROW File="Microsoft.DiaSymReader.Native.amd64.dll" Component_="Microsoft.DiaSymReader.Native.amd64.dll" FileName="MICROS~7.DLL|Microsoft.DiaSymReader.Native.amd64.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\Microsoft.DiaSymReader.Native.amd64.dll" SelfReg="false"/>
+ <ROW File="Microsoft.DiaSymReader.Native.x86.dll" Component_="Microsoft.DiaSymReader.Native.x86.dll" FileName="MICROS~8.DLL|Microsoft.DiaSymReader.Native.x86.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\Microsoft.DiaSymReader.Native.x86.dll" SelfReg="false"/>
+ <ROW File="Microsoft.VisualBasic.Core.targets" Component_="csc.exe.config" FileName="MICROS~2.TAR|Microsoft.VisualBasic.Core.targets" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\Microsoft.VisualBasic.Core.targets" SelfReg="false"/>
+ <ROW File="Microsoft.Win32.Primitives.dll_1" Component_="Microsoft.Win32.Primitives.dll_1" FileName="MICROS~9.DLL|Microsoft.Win32.Primitives.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\Microsoft.Win32.Primitives.dll" SelfReg="false"/>
+ <ROW File="System.AppContext.dll_1" Component_="System.AppContext.dll_1" FileName="SYSTEM~1.DLL|System.AppContext.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.AppContext.dll" SelfReg="false"/>
+ <ROW File="System.Collections.Immutable.dll" Component_="System.Collections.Immutable.dll" FileName="SYSTEM~2.DLL|System.Collections.Immutable.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.Collections.Immutable.dll" SelfReg="false"/>
+ <ROW File="System.Console.dll_1" Component_="System.Console.dll_1" FileName="SYSTEM~3.DLL|System.Console.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.Console.dll" SelfReg="false"/>
+ <ROW File="System.Diagnostics.FileVersionInfo.dll_1" Component_="System.Diagnostics.FileVersionInfo.dll_1" FileName="SYSTEM~4.DLL|System.Diagnostics.FileVersionInfo.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.Diagnostics.FileVersionInfo.dll" SelfReg="false"/>
+ <ROW File="System.Diagnostics.Process.dll_1" Component_="System.Diagnostics.Process.dll_1" FileName="SYSTEM~5.DLL|System.Diagnostics.Process.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.Diagnostics.Process.dll" SelfReg="false"/>
+ <ROW File="System.Diagnostics.StackTrace.dll_1" Component_="System.Diagnostics.StackTrace.dll_1" FileName="SYSTEM~6.DLL|System.Diagnostics.StackTrace.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.Diagnostics.StackTrace.dll" SelfReg="false"/>
+ <ROW File="System.IO.Compression.dll_1" Component_="System.IO.Compression.dll_1" FileName="SYSTEM~7.DLL|System.IO.Compression.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.IO.Compression.dll" SelfReg="false"/>
+ <ROW File="System.IO.FileSystem.dll_1" Component_="System.IO.FileSystem.dll_1" FileName="SYSTEM~8.DLL|System.IO.FileSystem.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.IO.FileSystem.dll" SelfReg="false"/>
+ <ROW File="System.IO.FileSystem.DriveInfo.dll_1" Component_="System.IO.FileSystem.DriveInfo.dll_1" FileName="SYSTEM~9.DLL|System.IO.FileSystem.DriveInfo.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.IO.FileSystem.DriveInfo.dll" SelfReg="false"/>
+ <ROW File="System.IO.FileSystem.Primitives.dll_1" Component_="System.IO.FileSystem.Primitives.dll_1" FileName="SYSTE~10.DLL|System.IO.FileSystem.Primitives.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.IO.FileSystem.Primitives.dll" SelfReg="false"/>
+ <ROW File="System.IO.Pipes.dll_1" Component_="System.IO.Pipes.dll_1" FileName="SYSTE~11.DLL|System.IO.Pipes.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.IO.Pipes.dll" SelfReg="false"/>
+ <ROW File="System.Reflection.Metadata.dll" Component_="System.Reflection.Metadata.dll" FileName="SYSTE~12.DLL|System.Reflection.Metadata.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.Reflection.Metadata.dll" SelfReg="false"/>
+ <ROW File="System.Security.AccessControl.dll" Component_="System.Security.AccessControl.dll" FileName="SYSTE~13.DLL|System.Security.AccessControl.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.Security.AccessControl.dll" SelfReg="false"/>
+ <ROW File="System.Security.Claims.dll_1" Component_="System.Security.Claims.dll_1" FileName="SYSTE~14.DLL|System.Security.Claims.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.Security.Claims.dll" SelfReg="false"/>
+ <ROW File="System.Security.Cryptography.Algorithms.dll_1" Component_="System.Security.Cryptography.Algorithms.dll_1" FileName="SYSTE~15.DLL|System.Security.Cryptography.Algorithms.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.Security.Cryptography.Algorithms.dll" SelfReg="false"/>
+ <ROW File="System.Security.Cryptography.Encoding.dll_1" Component_="System.Security.Cryptography.Encoding.dll_1" FileName="SYSTE~16.DLL|System.Security.Cryptography.Encoding.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.Security.Cryptography.Encoding.dll" SelfReg="false"/>
+ <ROW File="System.Security.Cryptography.Primitives.dll_1" Component_="System.Security.Cryptography.Primitives.dll_1" FileName="SYSTE~17.DLL|System.Security.Cryptography.Primitives.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.Security.Cryptography.Primitives.dll" SelfReg="false"/>
+ <ROW File="System.Security.Cryptography.X509Certificates.dll_1" Component_="System.Security.Cryptography.X509Certificates.dll_1" FileName="SYSTE~18.DLL|System.Security.Cryptography.X509Certificates.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.Security.Cryptography.X509Certificates.dll" SelfReg="false"/>
+ <ROW File="System.Security.Principal.Windows.dll" Component_="System.Security.Principal.Windows.dll" FileName="SYSTE~19.DLL|System.Security.Principal.Windows.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.Security.Principal.Windows.dll" SelfReg="false"/>
+ <ROW File="System.Text.Encoding.CodePages.dll" Component_="System.Text.Encoding.CodePages.dll" FileName="SYSTE~20.DLL|System.Text.Encoding.CodePages.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.Text.Encoding.CodePages.dll" SelfReg="false"/>
+ <ROW File="System.Threading.Thread.dll_1" Component_="System.Threading.Thread.dll_1" FileName="SYSTE~21.DLL|System.Threading.Thread.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.Threading.Thread.dll" SelfReg="false"/>
+ <ROW File="System.ValueTuple.dll_1" Component_="System.ValueTuple.dll_1" FileName="SYSTE~22.DLL|System.ValueTuple.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.ValueTuple.dll" SelfReg="false"/>
+ <ROW File="System.Xml.ReaderWriter.dll_1" Component_="System.Xml.ReaderWriter.dll_1" FileName="SYSTE~23.DLL|System.Xml.ReaderWriter.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.Xml.ReaderWriter.dll" SelfReg="false"/>
+ <ROW File="System.Xml.XmlDocument.dll_1" Component_="System.Xml.XmlDocument.dll_1" FileName="SYSTE~24.DLL|System.Xml.XmlDocument.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.Xml.XmlDocument.dll" SelfReg="false"/>
+ <ROW File="System.Xml.XPath.dll_1" Component_="System.Xml.XPath.dll_1" FileName="SYSTE~25.DLL|System.Xml.XPath.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.Xml.XPath.dll" SelfReg="false"/>
+ <ROW File="System.Xml.XPath.XDocument.dll_1" Component_="System.Xml.XPath.XDocument.dll_1" FileName="SYSTE~26.DLL|System.Xml.XPath.XDocument.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\System.Xml.XPath.XDocument.dll" SelfReg="false"/>
+ <ROW File="vbc.exe" Component_="vbc.exe" FileName="vbc.exe" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\vbc.exe" SelfReg="false" DigSign="true"/>
+ <ROW File="vbc.exe.config" Component_="csc.exe.config" FileName="VBCEXE~1.CON|vbc.exe.config" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\vbc.exe.config" SelfReg="false"/>
+ <ROW File="vbc.rsp" Component_="csc.exe.config" FileName="vbc.rsp" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\vbc.rsp" SelfReg="false"/>
+ <ROW File="VBCSCompiler.exe" Component_="VBCSCompiler.exe" FileName="VBCSCO~1.EXE|VBCSCompiler.exe" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\VBCSCompiler.exe" SelfReg="false" DigSign="true"/>
+ <ROW File="VBCSCompiler.exe.config" Component_="csc.exe.config" FileName="VBCSCO~1.CON|VBCSCompiler.exe.config" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\roslyn\VBCSCompiler.exe.config" SelfReg="false"/>
+ <ROW File="System.Data.SQLite.xml" Component_="Dragablz.xml" FileName="SYSTEM~1.XML|System.Data.SQLite.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\System.Data.SQLite.xml" SelfReg="false"/>
+ <ROW File="System.Net.Http.Formatting.xml" Component_="Dragablz.xml" FileName="SYSTEM~2.XML|System.Net.Http.Formatting.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\System.Net.Http.Formatting.xml" SelfReg="false"/>
+ <ROW File="System.Reactive.Core.xml" Component_="Dragablz.xml" FileName="SYSTEM~3.XML|System.Reactive.Core.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\System.Reactive.Core.xml" SelfReg="false"/>
+ <ROW File="System.Reactive.Interfaces.xml" Component_="Dragablz.xml" FileName="SYSTEM~4.XML|System.Reactive.Interfaces.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\System.Reactive.Interfaces.xml" SelfReg="false"/>
+ <ROW File="System.Reactive.Linq.xml" Component_="Dragablz.xml" FileName="SYSTEM~5.XML|System.Reactive.Linq.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\System.Reactive.Linq.xml" SelfReg="false"/>
+ <ROW File="System.Reactive.PlatformServices.xml" Component_="Dragablz.xml" FileName="SYSTEM~6.XML|System.Reactive.PlatformServices.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\System.Reactive.PlatformServices.xml" SelfReg="false"/>
+ <ROW File="System.Web.Http.WebHost.xml" Component_="Dragablz.xml" FileName="SYSTEM~7.XML|System.Web.Http.WebHost.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\System.Web.Http.WebHost.xml" SelfReg="false"/>
+ <ROW File="System.Web.Http.xml" Component_="Dragablz.xml" FileName="SYSTEM~8.XML|System.Web.Http.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\System.Web.Http.xml" SelfReg="false"/>
+ <ROW File="Tango.DataStore.xml" Component_="Dragablz.xml" FileName="TANGOD~1.XML|Tango.DataStore.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\Machine Studio\Release\Tango.DataStore.xml" SelfReg="false"/>
</COMPONENT>
<COMPONENT cid="caphyon.advinst.msicomp.AiRemoveFileComponent">
<ROW RemoveFile="_" Options="3"/>
@@ -845,7 +1003,7 @@
<ROW Action="AI_DetectSoftware" Sequence="101"/>
</COMPONENT>
<COMPONENT cid="caphyon.advinst.msicomp.BuildComponent">
- <ROW BuildKey="DefaultBuild" BuildName="DefaultBuild" BuildOrder="1" BuildType="0" PackageFolder="..\Build\Installers\Machine Studio\Release" PackageFileName="Machine Studio Installer_v4.9.9" Languages="en" InstallationType="4" CabsLocation="1" PackageType="1" FilesInsideExe="true" ExtractionFolder="[AppDataFolder][|Manufacturer]\[|ProductName] [|ProductVersion]\install" ExtUI="true" UseLargeSchema="true" ExeName="Machine Studio Installer_v4.9.9"/>
+ <ROW BuildKey="DefaultBuild" BuildName="DefaultBuild" BuildOrder="1" BuildType="0" PackageFolder="..\Build\Installers\Machine Studio\Release" PackageFileName="Machine Studio Installer_v5.9.0" Languages="en" InstallationType="4" CabsLocation="1" PackageType="1" FilesInsideExe="true" ExtractionFolder="[AppDataFolder][|Manufacturer]\[|ProductName] [|ProductVersion]\install" ExtUI="true" UseLargeSchema="true" ExeName="Machine Studio Installer_v5.9.0"/>
</COMPONENT>
<COMPONENT cid="caphyon.advinst.msicomp.DictionaryComponent">
<ROW Path="&lt;AI_DICTS&gt;ui.ail"/>
@@ -1321,6 +1479,58 @@
<ROW Feature_="MachineStudio" Component_="Microsoft.Data.Services.Client.dll"/>
<ROW Feature_="MachineStudio" Component_="System.Spatial.dll"/>
<ROW Feature_="MachineStudio" Component_="Tango.ColorLib_v6.dll"/>
+ <ROW Feature_="MachineStudio" Component_="libgit2106a5f2.so"/>
+ <ROW Feature_="MachineStudio" Component_="libgit2106a5f2.so_1"/>
+ <ROW Feature_="MachineStudio" Component_="libgit2106a5f2.so_2"/>
+ <ROW Feature_="MachineStudio" Component_="libgit2106a5f2.so_3"/>
+ <ROW Feature_="MachineStudio" Component_="libgit2106a5f2.so_4"/>
+ <ROW Feature_="MachineStudio" Component_="libgit2106a5f2.so_5"/>
+ <ROW Feature_="MachineStudio" Component_="libgit2106a5f2.dylib"/>
+ <ROW Feature_="MachineStudio" Component_="libgit2106a5f2.so_6"/>
+ <ROW Feature_="MachineStudio" Component_="libgit2106a5f2.so_7"/>
+ <ROW Feature_="MachineStudio" Component_="libgit2106a5f2.so_8"/>
+ <ROW Feature_="MachineStudio" Component_="git2106a5f2.dll"/>
+ <ROW Feature_="MachineStudio" Component_="git2106a5f2.dll_1"/>
+ <ROW Feature_="MachineStudio" Component_="csc.exe"/>
+ <ROW Feature_="MachineStudio" Component_="csc.exe.config"/>
+ <ROW Feature_="MachineStudio" Component_="csi.exe"/>
+ <ROW Feature_="MachineStudio" Component_="Microsoft.Build.Tasks.CodeAnalysis.dll"/>
+ <ROW Feature_="MachineStudio" Component_="Microsoft.CodeAnalysis.CSharp.dll"/>
+ <ROW Feature_="MachineStudio" Component_="Microsoft.CodeAnalysis.CSharp.Scripting.dll"/>
+ <ROW Feature_="MachineStudio" Component_="Microsoft.CodeAnalysis.dll"/>
+ <ROW Feature_="MachineStudio" Component_="Microsoft.CodeAnalysis.Scripting.dll"/>
+ <ROW Feature_="MachineStudio" Component_="Microsoft.CodeAnalysis.VisualBasic.dll"/>
+ <ROW Feature_="MachineStudio" Component_="Microsoft.DiaSymReader.Native.amd64.dll"/>
+ <ROW Feature_="MachineStudio" Component_="Microsoft.DiaSymReader.Native.x86.dll"/>
+ <ROW Feature_="MachineStudio" Component_="Microsoft.Win32.Primitives.dll_1"/>
+ <ROW Feature_="MachineStudio" Component_="System.AppContext.dll_1"/>
+ <ROW Feature_="MachineStudio" Component_="System.Collections.Immutable.dll"/>
+ <ROW Feature_="MachineStudio" Component_="System.Console.dll_1"/>
+ <ROW Feature_="MachineStudio" Component_="System.Diagnostics.FileVersionInfo.dll_1"/>
+ <ROW Feature_="MachineStudio" Component_="System.Diagnostics.Process.dll_1"/>
+ <ROW Feature_="MachineStudio" Component_="System.Diagnostics.StackTrace.dll_1"/>
+ <ROW Feature_="MachineStudio" Component_="System.IO.Compression.dll_1"/>
+ <ROW Feature_="MachineStudio" Component_="System.IO.FileSystem.dll_1"/>
+ <ROW Feature_="MachineStudio" Component_="System.IO.FileSystem.DriveInfo.dll_1"/>
+ <ROW Feature_="MachineStudio" Component_="System.IO.FileSystem.Primitives.dll_1"/>
+ <ROW Feature_="MachineStudio" Component_="System.IO.Pipes.dll_1"/>
+ <ROW Feature_="MachineStudio" Component_="System.Reflection.Metadata.dll"/>
+ <ROW Feature_="MachineStudio" Component_="System.Security.AccessControl.dll"/>
+ <ROW Feature_="MachineStudio" Component_="System.Security.Claims.dll_1"/>
+ <ROW Feature_="MachineStudio" Component_="System.Security.Cryptography.Algorithms.dll_1"/>
+ <ROW Feature_="MachineStudio" Component_="System.Security.Cryptography.Encoding.dll_1"/>
+ <ROW Feature_="MachineStudio" Component_="System.Security.Cryptography.Primitives.dll_1"/>
+ <ROW Feature_="MachineStudio" Component_="System.Security.Cryptography.X509Certificates.dll_1"/>
+ <ROW Feature_="MachineStudio" Component_="System.Security.Principal.Windows.dll"/>
+ <ROW Feature_="MachineStudio" Component_="System.Text.Encoding.CodePages.dll"/>
+ <ROW Feature_="MachineStudio" Component_="System.Threading.Thread.dll_1"/>
+ <ROW Feature_="MachineStudio" Component_="System.ValueTuple.dll_1"/>
+ <ROW Feature_="MachineStudio" Component_="System.Xml.ReaderWriter.dll_1"/>
+ <ROW Feature_="MachineStudio" Component_="System.Xml.XmlDocument.dll_1"/>
+ <ROW Feature_="MachineStudio" Component_="System.Xml.XPath.dll_1"/>
+ <ROW Feature_="MachineStudio" Component_="System.Xml.XPath.XDocument.dll_1"/>
+ <ROW Feature_="MachineStudio" Component_="vbc.exe"/>
+ <ROW Feature_="MachineStudio" Component_="VBCSCompiler.exe"/>
</COMPONENT>
<COMPONENT cid="caphyon.advinst.msicomp.MsiInstExSeqComponent">
<ROW Action="AI_DOWNGRADE" Condition="AI_NEWERPRODUCTFOUND AND (UILevel &lt;&gt; 5)" Sequence="210"/>
diff --git a/Software/Visual_Studio/Advanced Installer Projects/TwineRSM Installer.aip b/Software/Visual_Studio/Advanced Installer Projects/TwineRSM Installer.aip
index 85f4a0944..ca88f458d 100644
--- a/Software/Visual_Studio/Advanced Installer Projects/TwineRSM Installer.aip
+++ b/Software/Visual_Studio/Advanced Installer Projects/TwineRSM Installer.aip
@@ -25,10 +25,10 @@
<ROW Property="ExtractFilesFirst" Value="1"/>
<ROW Property="LogoIcon" Value="externalui.ico" MultiBuildValue="DefaultBuild:rsm.ico" Type="1" MsiKey="LogoIcon"/>
<ROW Property="Manufacturer" Value="Twine Solutions LTD"/>
- <ROW Property="ProductCode" Value="1033:{DC0B8571-DFD2-4A85-8AD4-8BD2D8D7DC39} " Type="16"/>
+ <ROW Property="ProductCode" Value="1033:{E15F6F0B-BE57-45F3-94BA-F150CBACA71B} " Type="16"/>
<ROW Property="ProductLanguage" Value="1033"/>
<ROW Property="ProductName" Value="Twine RSM"/>
- <ROW Property="ProductVersion" Value="1.4.7.0" Type="32"/>
+ <ROW Property="ProductVersion" Value="2.0.0.0" Type="32"/>
<ROW Property="RUNAPPLICATION" Value="1" Type="4"/>
<ROW Property="SecureCustomProperties" Value="OLDPRODUCTS;AI_NEWERPRODUCTFOUND;AI_SETUPEXEPATH;SETUPEXEDIR"/>
<ROW Property="UpgradeCode" Value="{22D27628-0032-4538-8C96-8A699B84A3EC}"/>
@@ -1138,7 +1138,7 @@
<ROW Action="AI_DetectSoftware" Sequence="101"/>
</COMPONENT>
<COMPONENT cid="caphyon.advinst.msicomp.BuildComponent">
- <ROW BuildKey="DefaultBuild" BuildName="DefaultBuild" BuildOrder="1" BuildType="0" PackageFolder="..\Build\Installers\TwineRSM\Release" PackageFileName="Twine RSM v1.4.7" Languages="en" InstallationType="4" CabsLocation="1" PackageType="1" FilesInsideExe="true" ExtractionFolder="[AppDataFolder][|Manufacturer]\[|ProductName] [|ProductVersion]\install" ExtUI="true" UseLargeSchema="true" ExeName="Twine RSM v1.4.7"/>
+ <ROW BuildKey="DefaultBuild" BuildName="DefaultBuild" BuildOrder="1" BuildType="0" PackageFolder="..\Build\Installers\TwineRSM\Release" PackageFileName="Twine RSM v2.0.0" Languages="en" InstallationType="4" CabsLocation="1" PackageType="1" FilesInsideExe="true" ExtractionFolder="[AppDataFolder][|Manufacturer]\[|ProductName] [|ProductVersion]\install" ExtUI="true" UseLargeSchema="true" ExeName="Twine RSM v2.0.0"/>
</COMPONENT>
<COMPONENT cid="caphyon.advinst.msicomp.DictionaryComponent">
<ROW Path="&lt;AI_DICTS&gt;ui.ail"/>
diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/RecommendedProcessTableInput.pb-c.c b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/RecommendedProcessTableInput.pb-c.c
index 39c139cda..90164c8b7 100644
--- a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/RecommendedProcessTableInput.pb-c.c
+++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/RecommendedProcessTableInput.pb-c.c
@@ -52,7 +52,7 @@ void recommended_process_table_input__free_unpacked
assert(message->base.descriptor == &recommended_process_table_input__descriptor);
protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
-static const ProtobufCFieldDescriptor recommended_process_table_input__field_descriptors[11] =
+static const ProtobufCFieldDescriptor recommended_process_table_input__field_descriptors[12] =
{
{
"ThreadL",
@@ -186,6 +186,18 @@ static const ProtobufCFieldDescriptor recommended_process_table_input__field_des
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
+ {
+ "VMax",
+ 12,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_DOUBLE,
+ offsetof(RecommendedProcessTableInput, has_vmax),
+ offsetof(RecommendedProcessTableInput, vmax),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
};
static const unsigned recommended_process_table_input__field_indices_by_name[] = {
3, /* field[3] = ForwardData */
@@ -199,11 +211,12 @@ static const unsigned recommended_process_table_input__field_indices_by_name[] =
0, /* field[0] = ThreadL */
7, /* field[7] = UseLightInks */
10, /* field[10] = UseLubricantTransform */
+ 11, /* field[11] = VMax */
};
static const ProtobufCIntRange recommended_process_table_input__number_ranges[1 + 1] =
{
{ 1, 0 },
- { 0, 11 }
+ { 0, 12 }
};
const ProtobufCMessageDescriptor recommended_process_table_input__descriptor =
{
@@ -213,7 +226,7 @@ const ProtobufCMessageDescriptor recommended_process_table_input__descriptor =
"RecommendedProcessTableInput",
"",
sizeof(RecommendedProcessTableInput),
- 11,
+ 12,
recommended_process_table_input__field_descriptors,
recommended_process_table_input__field_indices_by_name,
1, recommended_process_table_input__number_ranges,
diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/RecommendedProcessTableInput.pb-c.h b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/RecommendedProcessTableInput.pb-c.h
index e75ddd39e..df4a26da3 100644
--- a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/RecommendedProcessTableInput.pb-c.h
+++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v1/PMR/ColorLab/RecommendedProcessTableInput.pb-c.h
@@ -51,10 +51,12 @@ struct _RecommendedProcessTableInput
ProtobufCBinaryData lubdata;
protobuf_c_boolean has_uselubricanttransform;
protobuf_c_boolean uselubricanttransform;
+ protobuf_c_boolean has_vmax;
+ double vmax;
};
#define RECOMMENDED_PROCESS_TABLE_INPUT__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&recommended_process_table_input__descriptor) \
- , 0, 0, 0, 0, 0, 0, 0, {0,NULL}, 0,NULL, 0,NULL, 0,NULL, 0, 0, 0, {0,NULL}, 0, {0,NULL}, 0, 0 }
+ , 0, 0, 0, 0, 0, 0, 0, {0,NULL}, 0,NULL, 0,NULL, 0,NULL, 0, 0, 0, {0,NULL}, 0, {0,NULL}, 0, 0, 0, 0 }
/* RecommendedProcessTableInput methods */
diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/RecommendedProcessTableInput.pb-c.c b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/RecommendedProcessTableInput.pb-c.c
index 39c139cda..90164c8b7 100644
--- a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/RecommendedProcessTableInput.pb-c.c
+++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/RecommendedProcessTableInput.pb-c.c
@@ -52,7 +52,7 @@ void recommended_process_table_input__free_unpacked
assert(message->base.descriptor == &recommended_process_table_input__descriptor);
protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
-static const ProtobufCFieldDescriptor recommended_process_table_input__field_descriptors[11] =
+static const ProtobufCFieldDescriptor recommended_process_table_input__field_descriptors[12] =
{
{
"ThreadL",
@@ -186,6 +186,18 @@ static const ProtobufCFieldDescriptor recommended_process_table_input__field_des
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
+ {
+ "VMax",
+ 12,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_DOUBLE,
+ offsetof(RecommendedProcessTableInput, has_vmax),
+ offsetof(RecommendedProcessTableInput, vmax),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
};
static const unsigned recommended_process_table_input__field_indices_by_name[] = {
3, /* field[3] = ForwardData */
@@ -199,11 +211,12 @@ static const unsigned recommended_process_table_input__field_indices_by_name[] =
0, /* field[0] = ThreadL */
7, /* field[7] = UseLightInks */
10, /* field[10] = UseLubricantTransform */
+ 11, /* field[11] = VMax */
};
static const ProtobufCIntRange recommended_process_table_input__number_ranges[1 + 1] =
{
{ 1, 0 },
- { 0, 11 }
+ { 0, 12 }
};
const ProtobufCMessageDescriptor recommended_process_table_input__descriptor =
{
@@ -213,7 +226,7 @@ const ProtobufCMessageDescriptor recommended_process_table_input__descriptor =
"RecommendedProcessTableInput",
"",
sizeof(RecommendedProcessTableInput),
- 11,
+ 12,
recommended_process_table_input__field_descriptors,
recommended_process_table_input__field_indices_by_name,
1, recommended_process_table_input__number_ranges,
diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/RecommendedProcessTableInput.pb-c.h b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/RecommendedProcessTableInput.pb-c.h
index e75ddd39e..df4a26da3 100644
--- a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/RecommendedProcessTableInput.pb-c.h
+++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v2/PMR/ColorLab/RecommendedProcessTableInput.pb-c.h
@@ -51,10 +51,12 @@ struct _RecommendedProcessTableInput
ProtobufCBinaryData lubdata;
protobuf_c_boolean has_uselubricanttransform;
protobuf_c_boolean uselubricanttransform;
+ protobuf_c_boolean has_vmax;
+ double vmax;
};
#define RECOMMENDED_PROCESS_TABLE_INPUT__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&recommended_process_table_input__descriptor) \
- , 0, 0, 0, 0, 0, 0, 0, {0,NULL}, 0,NULL, 0,NULL, 0,NULL, 0, 0, 0, {0,NULL}, 0, {0,NULL}, 0, 0 }
+ , 0, 0, 0, 0, 0, 0, 0, {0,NULL}, 0,NULL, 0,NULL, 0,NULL, 0, 0, 0, {0,NULL}, 0, {0,NULL}, 0, 0, 0, 0 }
/* RecommendedProcessTableInput methods */
diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/RecommendedProcessTableInput.pb-c.c b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/RecommendedProcessTableInput.pb-c.c
index 39c139cda..90164c8b7 100644
--- a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/RecommendedProcessTableInput.pb-c.c
+++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/RecommendedProcessTableInput.pb-c.c
@@ -52,7 +52,7 @@ void recommended_process_table_input__free_unpacked
assert(message->base.descriptor == &recommended_process_table_input__descriptor);
protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
-static const ProtobufCFieldDescriptor recommended_process_table_input__field_descriptors[11] =
+static const ProtobufCFieldDescriptor recommended_process_table_input__field_descriptors[12] =
{
{
"ThreadL",
@@ -186,6 +186,18 @@ static const ProtobufCFieldDescriptor recommended_process_table_input__field_des
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
+ {
+ "VMax",
+ 12,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_DOUBLE,
+ offsetof(RecommendedProcessTableInput, has_vmax),
+ offsetof(RecommendedProcessTableInput, vmax),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
};
static const unsigned recommended_process_table_input__field_indices_by_name[] = {
3, /* field[3] = ForwardData */
@@ -199,11 +211,12 @@ static const unsigned recommended_process_table_input__field_indices_by_name[] =
0, /* field[0] = ThreadL */
7, /* field[7] = UseLightInks */
10, /* field[10] = UseLubricantTransform */
+ 11, /* field[11] = VMax */
};
static const ProtobufCIntRange recommended_process_table_input__number_ranges[1 + 1] =
{
{ 1, 0 },
- { 0, 11 }
+ { 0, 12 }
};
const ProtobufCMessageDescriptor recommended_process_table_input__descriptor =
{
@@ -213,7 +226,7 @@ const ProtobufCMessageDescriptor recommended_process_table_input__descriptor =
"RecommendedProcessTableInput",
"",
sizeof(RecommendedProcessTableInput),
- 11,
+ 12,
recommended_process_table_input__field_descriptors,
recommended_process_table_input__field_indices_by_name,
1, recommended_process_table_input__number_ranges,
diff --git a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/RecommendedProcessTableInput.pb-c.h b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/RecommendedProcessTableInput.pb-c.h
index e75ddd39e..df4a26da3 100644
--- a/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/RecommendedProcessTableInput.pb-c.h
+++ b/Software/Visual_Studio/ColorLib/Tango.ColorLib_v3/PMR/ColorLab/RecommendedProcessTableInput.pb-c.h
@@ -51,10 +51,12 @@ struct _RecommendedProcessTableInput
ProtobufCBinaryData lubdata;
protobuf_c_boolean has_uselubricanttransform;
protobuf_c_boolean uselubricanttransform;
+ protobuf_c_boolean has_vmax;
+ double vmax;
};
#define RECOMMENDED_PROCESS_TABLE_INPUT__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&recommended_process_table_input__descriptor) \
- , 0, 0, 0, 0, 0, 0, 0, {0,NULL}, 0,NULL, 0,NULL, 0,NULL, 0, 0, 0, {0,NULL}, 0, {0,NULL}, 0, 0 }
+ , 0, 0, 0, 0, 0, 0, 0, {0,NULL}, 0,NULL, 0,NULL, 0,NULL, 0, 0, 0, {0,NULL}, 0, {0,NULL}, 0, 0, 0, 0 }
/* RecommendedProcessTableInput methods */
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/MachineView.xaml b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/MachineView.xaml
index d33966e18..3de00198c 100644
--- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/MachineView.xaml
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/MachineView.xaml
@@ -27,7 +27,7 @@
<DockPanel>
<StackPanel Orientation="Horizontal" DockPanel.Dock="Top" HorizontalAlignment="Left">
- <Image Source="{StaticResource FSE_Machine_Full}" Width="100" Stretch="Uniform" RenderOptions.BitmapScalingMode="Fant" />
+ <commonControls:MachineIconFull Height="80" DataContext="{Binding EditingComposition.Machine}" />
<StackPanel Margin="5 0 0 0">
<TextBlock Text="{Binding EditingComposition.Machine.SerialNumber,FallbackValue='101010'}" FontSize="{StaticResource FSE_ModuleHeaderFontSize}"></TextBlock>
<TextBlock Text="{Binding EditingComposition.Machine.Organization.Name,FallbackValue='Organization'}" FontSize="{StaticResource FSE_LargerFontSize}" Foreground="{StaticResource FSE_GrayBrush}"></TextBlock>
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/SelectionView.xaml b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/SelectionView.xaml
index a2aa7240b..ca6d3ca4c 100644
--- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/SelectionView.xaml
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/Views/SelectionView.xaml
@@ -4,6 +4,7 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Tango.FSE.MachineConfiguration.Views"
+ xmlns:controls="clr-namespace:Tango.FSE.Common.Controls;assembly=Tango.FSE.Common"
xmlns:material="http://materialdesigninxaml.net/winfx/xaml/themes"
xmlns:global="clr-namespace:Tango.FSE.MachineConfiguration"
xmlns:autoComplete="clr-namespace:Tango.AutoComplete.Editors;assembly=Tango.AutoComplete"
@@ -28,7 +29,7 @@
<autoComplete:AutoCompleteTextBox.SelectedItemTemplate>
<DataTemplate>
<DockPanel VerticalAlignment="Center">
- <Image RenderOptions.BitmapScalingMode="Fant" Source="{StaticResource FSE_Machine_Small}" Width="24" />
+ <controls:MachineIcon RenderOptions.BitmapScalingMode="Fant" Height="24" />
<StackPanel VerticalAlignment="Center" Margin="10 0 0 0" Orientation="Horizontal">
<TextBlock Text="{Binding SerialNumber}" FontSize="{StaticResource FSE_SmallFontSize}"></TextBlock>
<TextBlock Margin="10 0 0 0" FontSize="{StaticResource FSE_SmallFontSize}" Foreground="{StaticResource FSE_GrayBrush}" Text="{Binding Name}"></TextBlock>
@@ -39,7 +40,7 @@
<autoComplete:AutoCompleteTextBox.ItemTemplate>
<DataTemplate>
<DockPanel VerticalAlignment="Center">
- <Image RenderOptions.BitmapScalingMode="Fant" Source="{StaticResource FSE_Machine_Small}" Width="32" />
+ <controls:MachineIcon Height="32" />
<StackPanel Margin="5 0 0 0">
<TextBlock Text="{Binding SerialNumber}"></TextBlock>
<TextBlock Margin="0 5 0 0" FontSize="{StaticResource FSE_SmallerFontSize}" Foreground="{StaticResource FSE_GrayBrush}" Text="{Binding Name}"></TextBlock>
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Controls/RemoteDesktopControl.xaml b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Controls/RemoteDesktopControl.xaml
index 4e6959e5b..da3cb101c 100644
--- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Controls/RemoteDesktopControl.xaml
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Controls/RemoteDesktopControl.xaml
@@ -32,7 +32,19 @@
<Border.Background>
<ImageBrush ImageSource="{StaticResource FSE_PPC_Back}" />
</Border.Background>
- <Border Width="{Binding RelativeSource={RelativeSource Self},Path=ActualHeight,Converter={StaticResource MathOperatorConverter},ConverterParameter='/1.6',FallbackValue=500,TargetNullValue=500}">
+ <Border>
+ <Border.Style>
+ <Style TargetType="Border">
+ <Setter Property="Width" Value="{Binding RelativeSource={RelativeSource Self},Path=ActualHeight,Converter={StaticResource MathOperatorConverter},ConverterParameter='/1.6',FallbackValue=500,TargetNullValue=500}"></Setter>
+ <Setter Property="Height" Value="Auto"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding MachineProvider.MachineOperator.MachineType}" Value="Eureka">
+ <Setter Property="Width" Value="Auto"></Setter>
+ <Setter Property="Height" Value="{Binding RelativeSource={RelativeSource Self},Path=ActualWidth,Converter={StaticResource MathOperatorConverter},ConverterParameter='/1.7',FallbackValue=500,TargetNullValue=500}"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Border.Style>
<Grid>
<Image x:Name="img" FocusVisualStyle="{x:Null}" Focusable="True" Source="{Binding Source}" RenderOptions.BitmapScalingMode="Fant" Stretch="Fill" Visibility="{Binding RemoteDesktopProvider.InSession,Converter={StaticResource BooleanToVisibilityConverter}}"></Image>
<Rectangle x:Name="rectSnapshot" Fill="White" IsHitTestVisible="False" Opacity="0"></Rectangle>
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Views/RemoteDesktopView.xaml b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Views/RemoteDesktopView.xaml
index 833e3bd44..1560b759d 100644
--- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Views/RemoteDesktopView.xaml
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Views/RemoteDesktopView.xaml
@@ -16,18 +16,42 @@
<Grid>
<DockPanel IsEnabled="{Binding IsFree}">
<Grid DockPanel.Dock="Right" IsEnabled="{Binding MachineProvider.IsPPCAvailable}">
+ <Grid.Style>
+ <Style TargetType="Grid">
+ <Setter Property="VerticalAlignment" Value="Stretch"></Setter>
+ <Setter Property="Width" Value="Auto"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding MachineProvider.MachineOperator.MachineType}" Value="Eureka">
+ <Setter Property="VerticalAlignment" Value="Top"></Setter>
+ <Setter Property="Width" Value="490"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Grid.Style>
<Border>
- <localControls:RemoteDesktopControl
- x:Name="remoteDesktopControl"
- win:WindowsManagerHelper.MinWidth="400"
- win:WindowsManagerHelper.MinHeight="640"
- win:WindowsManagerHelper.StartWidth="400"
- win:WindowsManagerHelper.StartHeight="640"
+ <localControls:RemoteDesktopControl x:Name="remoteDesktopControl"
win:WindowsManagerHelper.LockAspectRatio="True"
win:WindowsManagerHelper.WindowTitle="{Binding MachineProvider.Machine.SerialNumber}"
win:WindowsManagerHelper.DisableMaximize="True"
win:WindowsManagerHelper.PreservePlaceHolder="True"
- win:WindowsManagerHelper.DisableResolutionServiceInjection="True"/>
+ win:WindowsManagerHelper.DisableResolutionServiceInjection="True">
+ <localControls:RemoteDesktopControl.Style>
+ <Style TargetType="localControls:RemoteDesktopControl">
+ <Setter Property="win:WindowsManagerHelper.MinWidth" Value="400"/>
+ <Setter Property="win:WindowsManagerHelper.MinWidth" Value="640"/>
+ <Setter Property="win:WindowsManagerHelper.StartWidth" Value="400"/>
+ <Setter Property="win:WindowsManagerHelper.StartHeight" Value="640"/>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding MachineProvider.MachineOperator.MachineType}" Value="Eureka">
+ <Setter Property="win:WindowsManagerHelper.MinWidth" Value="640"/>
+ <Setter Property="win:WindowsManagerHelper.MinHeight" Value="440"/>
+ <Setter Property="win:WindowsManagerHelper.StartWidth" Value="640"/>
+ <Setter Property="win:WindowsManagerHelper.StartHeight" Value="440"/>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </localControls:RemoteDesktopControl.Style>
+ </localControls:RemoteDesktopControl>
</Border>
</Grid>
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures.Documentation/Help/proc-doc.chm b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures.Documentation/Help/proc-doc.chm
index eeeb72237..b6bc6d4cd 100644
--- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures.Documentation/Help/proc-doc.chm
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures.Documentation/Help/proc-doc.chm
Binary files differ
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/StopModel.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/StopModel.cs
index 24ddc80bf..3d616f957 100644
--- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/StopModel.cs
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/StopModel.cs
@@ -29,6 +29,7 @@ namespace Tango.FSE.Statistics.Models
public JobRunExtendedInfo ExtendedInfo { get; set; }
public bool IsAdvancedMode { get; set; }
public VectorFineTuningRunModel FineTuningModel { get; set; }
+ public bool IsEureka { get; set; }
public bool IsFineTuning
{
@@ -163,7 +164,18 @@ namespace Tango.FSE.Statistics.Models
public String LogicalLength
{
- get { return JobRun.NumberOfUnits > 1 ? $"{JobRun.JobLogicalLength} x{JobRun.NumberOfUnits}" : JobRun.JobLogicalLength.ToString(); }
+ get { var length = IsEureka ? JobRun.JobLogicalLength * 4 : JobRun.JobLogicalLength;
+ return JobRun.NumberOfUnits > 1 ? $"{length} x{JobRun.NumberOfUnits}" : length.ToString(); }
+ }
+
+ public double JobLength
+ {
+ get { return IsEureka ? JobRun.JobLength * 4 : JobRun.JobLength; }
+ }
+
+ public double EndPosition
+ {
+ get { return IsEureka ? JobRun.EndPosition * 4 : JobRun.EndPosition; }
}
public String FineTuningMeasured
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/ViewModels/MainViewVM.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/ViewModels/MainViewVM.cs
index d77b0b5a1..ae4444f06 100644
--- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/ViewModels/MainViewVM.cs
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/ViewModels/MainViewVM.cs
@@ -422,6 +422,7 @@ namespace Tango.FSE.Statistics.ViewModels
stop.ThreadName = rmlName;
stop.IsAdvancedMode = !BuildProvider.IsTwineRSM && CurrentUser.HasRole(Roles.FSEAdvancedTechnician);
stop.FineTuningModel = fineTuningModel;
+ stop.IsEureka = MachineProvider.MachineOperator.MachineType == MachineTypes.Eureka;
if (fineTuningModel != null)
{
@@ -735,11 +736,11 @@ namespace Tango.FSE.Statistics.ViewModels
model.JobName = stop.JobRun.JobName;
model.JobKind = ((JobDesignations)stop.JobRun.JobDesignation).ToDescription();
model.Thread = stop.ThreadName;
- model.Length = ((int)stop.JobRun.JobLogicalLength).ToString();
+ model.Length = stop.LogicalLength;
model.NumberOfUnits = stop.JobRun.NumberOfUnits.ToString();
model.StartTime = stop.JobRun.StartDate.ToLocalTime().ToString();
model.Duration = stop.Duration.ToStringUnlimitedHours();
- model.EndPosition = stop.JobRun.EndPosition.ToString();
+ model.EndPosition = stop.EndPosition.ToString();
model.Status = ((JobRunStatus)stop.JobRun.Status).ToString();
model.SegmentIndex = stop.SegmentIndex.ToString();
model.Offset = stop.StartMeters.ToString();
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Views/MainView.xaml b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Views/MainView.xaml
index 5f0ceaa5a..88b460ab1 100644
--- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Views/MainView.xaml
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Views/MainView.xaml
@@ -138,13 +138,13 @@
<TextBlock>
<Run>Actual Length:</Run>
<LineBreak/>
- <Run Text="{Binding Items[0].Items[0].JobRun.JobLength}"></Run>
+ <Run Text="{Binding Items[0].Items[0].JobLength, Mode=OneWay}"></Run>
</TextBlock>
</TextBlock.ToolTip>
</TextBlock>
<TextBlock Text="{Binding Items[0].Items[0].JobRun.StartDate,Converter={StaticResource DateTimeUTCToShortDateTimeConverter}}" VerticalAlignment="Center" Width="120"></TextBlock>
<TextBlock Text="{Binding Items[0].Items[0].Duration,Mode=OneWay,Converter={StaticResource TotalDyeTimeConverter}}" VerticalAlignment="Center" Width="100"></TextBlock>
- <TextBlock Text="{Binding Items[0].Items[0].JobRun.EndPosition,StringFormat=N1}" VerticalAlignment="Center" Width="80"></TextBlock>
+ <TextBlock Text="{Binding Items[0].Items[0].EndPosition,StringFormat=N1}" VerticalAlignment="Center" Width="80"></TextBlock>
</StackPanel>
<Grid Visibility="{Binding IsAdvancedMode,Converter={StaticResource BooleanToVisibilityConverter}}" DataContext="{Binding Items[0].Items[0]}" Width="250" Margin="0 0 50 5" HorizontalAlignment="Right" VerticalAlignment="Bottom">
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Connection/MachineConnectionTypes.cs b/Software/Visual_Studio/FSE/Tango.FSE.Common/Connection/MachineConnectionTypes.cs
index ef233dda8..5b585533e 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.Common/Connection/MachineConnectionTypes.cs
+++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Connection/MachineConnectionTypes.cs
@@ -17,6 +17,10 @@ namespace Tango.FSE.Common.Connection
/// </summary>
USB,
/// <summary>
+ /// Local TCP connection.
+ /// </summary>
+ TCP,
+ /// <summary>
/// Local area network.
/// </summary>
Wifi,
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/ConnectedMachineIcon.xaml b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/ConnectedMachineIcon.xaml
index f6be93ec9..98d9dc13d 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/ConnectedMachineIcon.xaml
+++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/ConnectedMachineIcon.xaml
@@ -9,24 +9,6 @@
mc:Ignorable="d"
d:DesignHeight="50" d:DesignWidth="50" Height="50">
<Grid>
- <ContentControl Content="{Binding}" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch">
- <ContentControl.Resources>
- <DataTemplate DataType="{x:Type integration:ExternalBridgeSignalRClient}">
- <ContentControl Style="{StaticResource FSE_SignalRMachineIcon}" />
- </DataTemplate>
-
- <DataTemplate DataType="{x:Type integration:ExternalBridgeTcpClient}">
- <ContentControl Style="{StaticResource FSE_WifiMachineIcon}" />
- </DataTemplate>
-
- <DataTemplate DataType="{x:Type integration:ExternalBridgeUsbClient}">
- <ContentControl Style="{StaticResource FSE_UsbMachineIcon}" />
- </DataTemplate>
-
- <DataTemplate DataType="{x:Type emulations:EmulatorExternalBridge}">
- <ContentControl Style="{StaticResource FSE_EmulatorMachineIcon}"/>
- </DataTemplate>
- </ContentControl.Resources>
- </ContentControl>
+ <local:MachineConnectionIcon ExternalBridgeClient="{Binding}" />
</Grid>
</UserControl>
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineConnectionIcon.cs b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineConnectionIcon.cs
new file mode 100644
index 000000000..d739ac6e5
--- /dev/null
+++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineConnectionIcon.cs
@@ -0,0 +1,83 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using Tango.BL.Enumerations;
+using Tango.Emulations.ExternalBridge;
+using Tango.FSE.Common.Connection;
+using Tango.Integration.ExternalBridge;
+
+namespace Tango.FSE.Common.Controls
+{
+ public class MachineConnectionIcon : Control
+ {
+ public MachineTypes MachineType
+ {
+ get { return (MachineTypes)GetValue(MachineTypeProperty); }
+ set { SetValue(MachineTypeProperty, value); }
+ }
+ public static readonly DependencyProperty MachineTypeProperty =
+ DependencyProperty.Register("MachineType", typeof(MachineTypes), typeof(MachineConnectionIcon), new PropertyMetadata(MachineTypes.TS1800));
+
+ public IExternalBridgeClient ExternalBridgeClient
+ {
+ get { return (IExternalBridgeClient)GetValue(ExternalBridgeClientProperty); }
+ set { SetValue(ExternalBridgeClientProperty, value); }
+ }
+ public static readonly DependencyProperty ExternalBridgeClientProperty =
+ DependencyProperty.Register("ExternalBridgeClient", typeof(IExternalBridgeClient), typeof(MachineConnectionIcon), new PropertyMetadata((d, e) => (d as MachineConnectionIcon).OnExternalBridgeClientChanged()));
+
+ public MachineConnectionTypes ExternalBridgeClientType
+ {
+ get { return (MachineConnectionTypes)GetValue(ExternalBridgeClientTypeProperty); }
+ set { SetValue(ExternalBridgeClientTypeProperty, value); }
+ }
+ public static readonly DependencyProperty ExternalBridgeClientTypeProperty =
+ DependencyProperty.Register("ExternalBridgeClientType", typeof(MachineConnectionTypes), typeof(MachineConnectionIcon), new PropertyMetadata(MachineConnectionTypes.USB));
+
+ private void OnExternalBridgeClientChanged()
+ {
+ if (ExternalBridgeClient != null)
+ {
+ if (ExternalBridgeClient.GetType() == typeof(ExternalBridgeUsbClient))
+ {
+ ExternalBridgeClientType = MachineConnectionTypes.USB;
+ }
+ else if (ExternalBridgeClient.GetType() == typeof(ExternalBridgeTcpFirmwareClient))
+ {
+ ExternalBridgeClientType = MachineConnectionTypes.TCP;
+ MachineType = MachineTypes.Eureka;
+ }
+ else if (ExternalBridgeClient.GetType() == typeof(ExternalBridgeTcpClient))
+ {
+ ExternalBridgeClientType = MachineConnectionTypes.Wifi;
+ MachineType = ExternalBridgeClient.MachineType;
+ }
+ else if (ExternalBridgeClient.GetType() == typeof(ExternalBridgeSignalRClient))
+ {
+ ExternalBridgeClientType = MachineConnectionTypes.SignalR;
+ MachineType = ExternalBridgeClient.MachineType;
+ }
+ else if (ExternalBridgeClient.GetType() == typeof(EmulatorExternalBridge))
+ {
+ ExternalBridgeClientType = MachineConnectionTypes.Emulator;
+ }
+ }
+ }
+
+ static MachineConnectionIcon()
+ {
+ DefaultStyleKeyProperty.OverrideMetadata(typeof(MachineConnectionIcon), new FrameworkPropertyMetadata(typeof(MachineConnectionIcon)));
+ }
+ }
+}
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineConnectionIcon.xaml b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineConnectionIcon.xaml
new file mode 100644
index 000000000..c402b2d21
--- /dev/null
+++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineConnectionIcon.xaml
@@ -0,0 +1,64 @@
+<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:material="http://materialdesigninxaml.net/winfx/xaml/themes"
+ xmlns:local="clr-namespace:Tango.FSE.Common.Controls">
+
+ <Style TargetType="{x:Type local:MachineConnectionIcon}">
+ <Setter Property="Template">
+ <Setter.Value>
+ <ControlTemplate TargetType="{x:Type local:MachineConnectionIcon}">
+ <Border Background="{TemplateBinding Background}"
+ BorderBrush="{TemplateBinding BorderBrush}"
+ BorderThickness="{TemplateBinding BorderThickness}">
+ <Grid DataContext="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local:MachineConnectionIcon}}">
+ <Image Margin="0 5 10 0" RenderOptions.BitmapScalingMode="Fant">
+ <Image.Style>
+ <Style TargetType="Image">
+ <Setter Property="Source" Value="../Images/Connections/ts1800.png"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding MachineType}" Value="Eureka">
+ <Setter Property="Source" Value="../Images/Connections/eureka.png"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Image.Style>
+ </Image>
+
+ <material:PackIcon RenderOptions.BitmapScalingMode="Fant" Width="20" Height="20" VerticalAlignment="Top" HorizontalAlignment="Right" Margin="0 0 -1 0">
+ <material:PackIcon.Style>
+ <Style TargetType="material:PackIcon">
+ <Setter Property="Kind" Value="Usb"></Setter>
+ <Setter Property="Foreground" Value="{StaticResource FSE_UsbBrush}"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding ExternalBridgeClientType}" Value="USB">
+ <Setter Property="Kind" Value="Usb"></Setter>
+ <Setter Property="Foreground" Value="{StaticResource FSE_UsbBrush}"></Setter>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding ExternalBridgeClientType}" Value="TCP">
+ <Setter Property="Kind" Value="Lan"></Setter>
+ <Setter Property="Foreground" Value="{StaticResource FSE_LanBrush}"></Setter>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding ExternalBridgeClientType}" Value="Wifi">
+ <Setter Property="Kind" Value="Wifi"></Setter>
+ <Setter Property="Foreground" Value="{StaticResource FSE_WifiBrush}"></Setter>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding ExternalBridgeClientType}" Value="SignalR">
+ <Setter Property="Kind" Value="Cloud"></Setter>
+ <Setter Property="Foreground" Value="{StaticResource FSE_SignalRBrush}"></Setter>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding ExternalBridgeClientType}" Value="Emulator">
+ <Setter Property="Kind" Value="SdCard"></Setter>
+ <Setter Property="Foreground" Value="{StaticResource FSE_EmulatorBrush}"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </material:PackIcon.Style>
+ </material:PackIcon>
+ </Grid>
+ </Border>
+ </ControlTemplate>
+ </Setter.Value>
+ </Setter>
+ </Style>
+
+</ResourceDictionary> \ No newline at end of file
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineIcon.cs b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineIcon.cs
new file mode 100644
index 000000000..349328676
--- /dev/null
+++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineIcon.cs
@@ -0,0 +1,54 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace Tango.FSE.Common.Controls
+{
+ /// <summary>
+ /// Follow steps 1a or 1b and then 2 to use this custom control in a XAML file.
+ ///
+ /// Step 1a) Using this custom control in a XAML file that exists in the current project.
+ /// Add this XmlNamespace attribute to the root element of the markup file where it is
+ /// to be used:
+ ///
+ /// xmlns:MyNamespace="clr-namespace:Tango.FSE.Common.Controls"
+ ///
+ ///
+ /// Step 1b) Using this custom control in a XAML file that exists in a different project.
+ /// Add this XmlNamespace attribute to the root element of the markup file where it is
+ /// to be used:
+ ///
+ /// xmlns:MyNamespace="clr-namespace:Tango.FSE.Common.Controls;assembly=Tango.FSE.Common.Controls"
+ ///
+ /// You will also need to add a project reference from the project where the XAML file lives
+ /// to this project and Rebuild to avoid compilation errors:
+ ///
+ /// Right click on the target project in the Solution Explorer and
+ /// "Add Reference"->"Projects"->[Browse to and select this project]
+ ///
+ ///
+ /// Step 2)
+ /// Go ahead and use your control in the XAML file.
+ ///
+ /// <MyNamespace:MachineIcon/>
+ ///
+ /// </summary>
+ public class MachineIcon : Control
+ {
+ static MachineIcon()
+ {
+ DefaultStyleKeyProperty.OverrideMetadata(typeof(MachineIcon), new FrameworkPropertyMetadata(typeof(MachineIcon)));
+ }
+ }
+}
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineIcon.xaml b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineIcon.xaml
new file mode 100644
index 000000000..e4e9e1b48
--- /dev/null
+++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineIcon.xaml
@@ -0,0 +1,30 @@
+<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:local="clr-namespace:Tango.FSE.Common.Controls">
+
+ <Style TargetType="{x:Type local:MachineIcon}">
+ <Setter Property="Template">
+ <Setter.Value>
+ <ControlTemplate TargetType="{x:Type local:MachineIcon}">
+ <Border Background="{TemplateBinding Background}"
+ BorderBrush="{TemplateBinding BorderBrush}"
+ BorderThickness="{TemplateBinding BorderThickness}">
+ <Image RenderOptions.BitmapScalingMode="Fant">
+ <Image.Style>
+ <Style TargetType="Image">
+ <Setter Property="Source" Value="{StaticResource FSE_Machine_Small}"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding MachineType}" Value="1">
+ <Setter Property="Source" Value="{StaticResource FSE_Machine_Eureka_Small}"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Image.Style>
+ </Image>
+ </Border>
+ </ControlTemplate>
+ </Setter.Value>
+ </Setter>
+ </Style>
+
+</ResourceDictionary> \ No newline at end of file
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineIconFull.cs b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineIconFull.cs
new file mode 100644
index 000000000..c6f1da030
--- /dev/null
+++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineIconFull.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace Tango.FSE.Common.Controls
+{
+ public class MachineIconFull : Control
+ {
+ static MachineIconFull()
+ {
+ DefaultStyleKeyProperty.OverrideMetadata(typeof(MachineIconFull), new FrameworkPropertyMetadata(typeof(MachineIconFull)));
+ }
+ }
+}
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineIconFull.xaml b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineIconFull.xaml
new file mode 100644
index 000000000..10a4d655d
--- /dev/null
+++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineIconFull.xaml
@@ -0,0 +1,30 @@
+<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:local="clr-namespace:Tango.FSE.Common.Controls">
+
+ <Style TargetType="{x:Type local:MachineIconFull}">
+ <Setter Property="Template">
+ <Setter.Value>
+ <ControlTemplate TargetType="{x:Type local:MachineIconFull}">
+ <Border Background="{TemplateBinding Background}"
+ BorderBrush="{TemplateBinding BorderBrush}"
+ BorderThickness="{TemplateBinding BorderThickness}">
+ <Image RenderOptions.BitmapScalingMode="Fant">
+ <Image.Style>
+ <Style TargetType="Image">
+ <Setter Property="Source" Value="{StaticResource FSE_Machine_Full}"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding MachineType}" Value="1">
+ <Setter Property="Source" Value="{StaticResource FSE_Machine_Eureka_Full}"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Image.Style>
+ </Image>
+ </Border>
+ </ControlTemplate>
+ </Setter.Value>
+ </Setter>
+ </Style>
+
+</ResourceDictionary> \ No newline at end of file
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineView.xaml b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineView.xaml
index c82b5b460..25fc3f88e 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineView.xaml
+++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineView.xaml
@@ -24,247 +24,426 @@
</UserControl.Resources>
<Grid>
- <Viewbox MaxWidth="1200" Grid.Row="1" >
- <Grid VerticalAlignment="Top">
-
- <Image IsHitTestVisible="False" Source="{StaticResource FSE_Machine_Full}" MaxWidth="800" RenderOptions.BitmapScalingMode="Fant">
- <!--<Image.Effect>
+ <Grid>
+ <Grid.Style>
+ <Style TargetType="Grid">
+ <Setter Property="Visibility" Value="Visible"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding Type}" Value="Eureka">
+ <Setter Property="Visibility" Value="Hidden"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Grid.Style>
+ <Viewbox MaxWidth="1200" Grid.Row="1" >
+ <Grid VerticalAlignment="Top">
+ <Grid>
+ <Image IsHitTestVisible="False" Source="{StaticResource FSE_Machine_Full}" MaxWidth="800" RenderOptions.BitmapScalingMode="Fant">
+ <!--<Image.Effect>
<DropShadowEffect ShadowDepth="0" BlurRadius="20" Opacity="1" RenderingBias="Performance" Color="DimGray"></DropShadowEffect>
</Image.Effect>-->
- </Image>
+ </Image>
- <Canvas ClipToBounds="False" x:Name="canvas">
+ <Canvas ClipToBounds="False" x:Name="canvas">
- <Grid x:Name="hardwareGrid" Width="180" ToolTip="{Binding Configuration.HardwareVersion.Name}" Height="27" Canvas.Left="342" Canvas.Top="80" Background="#6B303030" IsHitTestVisible="True">
- <Border BorderBrush="#6C6C6C" BorderThickness="1" IsHitTestVisible="False">
- <StackPanel Orientation="Horizontal">
- <Image Source="../Images/hardware.png" Width="10" VerticalAlignment="Center" Margin="5" RenderOptions.BitmapScalingMode="Fant"></Image>
- <TextBlock Padding="2 0 2 0" VerticalAlignment="Center" TextAlignment="Center" Foreground="{StaticResource FSE_GrayBrush}" IsHitTestVisible="False" FontSize="12" TextWrapping="Wrap">
+ <Grid x:Name="hardwareGrid" Width="180" ToolTip="{Binding Configuration.HardwareVersion.Name}" Height="27" Canvas.Left="342" Canvas.Top="80" Background="#6B303030" IsHitTestVisible="True">
+ <Border BorderBrush="#6C6C6C" BorderThickness="1" IsHitTestVisible="False">
+ <StackPanel Orientation="Horizontal">
+ <Image Source="../Images/hardware.png" Width="10" VerticalAlignment="Center" Margin="5" RenderOptions.BitmapScalingMode="Fant"></Image>
+ <TextBlock Padding="2 0 2 0" VerticalAlignment="Center" TextAlignment="Center" Foreground="{StaticResource FSE_GrayBrush}" IsHitTestVisible="False" FontSize="12" TextWrapping="Wrap">
<Run Text="{Binding Configuration.HardwareVersion.Name}"></Run>
<Run Text="{Binding Configuration.HardwareVersion.Version}"></Run>
- </TextBlock>
- </StackPanel>
- </Border>
- </Grid>
+ </TextBlock>
+ </StackPanel>
+ </Border>
+ </Grid>
- <!--<TextBlock Canvas.Left="532" FontStyle="Italic" Foreground="Gray" Canvas.Top="-22">Hardware</TextBlock>
+ <!--<TextBlock Canvas.Left="532" FontStyle="Italic" Foreground="Gray" Canvas.Top="-22">Hardware</TextBlock>
<Grid Width="97" Height="90" Canvas.Left="431" Canvas.Top="-13">
<Rectangle Stroke="Gray" VerticalAlignment="Top" StrokeThickness="1" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/>
<Rectangle Stroke="Gray" HorizontalAlignment="Left" StrokeThickness="1" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/>
</Grid>-->
- <UniformGrid Width="310" Canvas.Top="295" Canvas.Left="420" TextElement.Foreground="#252525" Rows="1" Columns="10" TextElement.FontSize="9">
- <TextBlock HorizontalAlignment="Center">1</TextBlock>
- <TextBlock HorizontalAlignment="Center">2</TextBlock>
- <TextBlock HorizontalAlignment="Center">3</TextBlock>
- <TextBlock HorizontalAlignment="Center">4</TextBlock>
- <TextBlock HorizontalAlignment="Center">5</TextBlock>
- <TextBlock HorizontalAlignment="Center">6</TextBlock>
- <TextBlock HorizontalAlignment="Center">7</TextBlock>
- <TextBlock HorizontalAlignment="Center">8</TextBlock>
- <TextBlock HorizontalAlignment="Center">9</TextBlock>
- <TextBlock HorizontalAlignment="Center">10</TextBlock>
- </UniformGrid>
+ <UniformGrid Width="310" Canvas.Top="295" Canvas.Left="420" TextElement.Foreground="#252525" Rows="1" Columns="10" TextElement.FontSize="9">
+ <TextBlock HorizontalAlignment="Center">1</TextBlock>
+ <TextBlock HorizontalAlignment="Center">2</TextBlock>
+ <TextBlock HorizontalAlignment="Center">3</TextBlock>
+ <TextBlock HorizontalAlignment="Center">4</TextBlock>
+ <TextBlock HorizontalAlignment="Center">5</TextBlock>
+ <TextBlock HorizontalAlignment="Center">6</TextBlock>
+ <TextBlock HorizontalAlignment="Center">7</TextBlock>
+ <TextBlock HorizontalAlignment="Center">8</TextBlock>
+ <TextBlock HorizontalAlignment="Center">9</TextBlock>
+ <TextBlock HorizontalAlignment="Center">10</TextBlock>
+ </UniformGrid>
- <Grid x:Name="gridIds" Width="310" Height="195" Canvas.Top="314" Canvas.Left="420">
- <ListBox ItemsSource="{Binding Configuration.IdsPacks}" ScrollViewer.VerticalScrollBarVisibility="Disabled" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
- <ListBox.ItemContainerStyle>
- <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}">
- <Setter Property="Padding" Value="0"></Setter>
- <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter>
- <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter>
- </Style>
- </ListBox.ItemContainerStyle>
- <ItemsControl.ItemsPanel>
- <ItemsPanelTemplate>
- <UniformGrid Columns="10"></UniformGrid>
- </ItemsPanelTemplate>
- </ItemsControl.ItemsPanel>
- <ItemsControl.ItemTemplate>
- <DataTemplate>
- <Grid>
- <Grid.RowDefinitions>
- <RowDefinition Height="1*"/>
- <RowDefinition Height="30"/>
- </Grid.RowDefinitions>
- <UniformGrid Columns="1" Rows="2">
- <Grid Margin="2">
- <Image IsHitTestVisible="False" Source="../Images/dispenser.png" RenderOptions.BitmapScalingMode="Fant">
- <Image.Style>
- <Style TargetType="Image">
- <Style.Triggers>
- <DataTrigger Binding="{Binding Dispenser}" Value="{x:Null}">
- <Setter Property="Opacity" Value="0.2"></Setter>
- </DataTrigger>
- </Style.Triggers>
- </Style>
- </Image.Style>
- </Image>
- <Rectangle IsHitTestVisible="False" Margin="14 25 13 34">
- <Rectangle.Fill>
- <LinearGradientBrush StartPoint="0,0" EndPoint="0,0.8" Opacity="0.8">
- <GradientStop Offset="0" Color="Transparent" />
- <GradientStop Offset="1" Color="{Binding LiquidType.Color,Converter={StaticResource ColorToIntegerConverter}}"/>
- </LinearGradientBrush>
- </Rectangle.Fill>
- </Rectangle>
- </Grid>
+ <Grid x:Name="gridIds" Width="310" Height="195" Canvas.Top="314" Canvas.Left="420">
+ <ListBox ItemsSource="{Binding Configuration.IdsPacks}" ScrollViewer.VerticalScrollBarVisibility="Disabled" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
+ <ListBox.ItemContainerStyle>
+ <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}">
+ <Setter Property="Padding" Value="0"></Setter>
+ <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter>
+ <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter>
+ </Style>
+ </ListBox.ItemContainerStyle>
+ <ItemsControl.ItemsPanel>
+ <ItemsPanelTemplate>
+ <UniformGrid Columns="10"></UniformGrid>
+ </ItemsPanelTemplate>
+ </ItemsControl.ItemsPanel>
+ <ItemsControl.ItemTemplate>
+ <DataTemplate>
+ <Grid>
+ <Grid.RowDefinitions>
+ <RowDefinition Height="1*"/>
+ <RowDefinition Height="30"/>
+ </Grid.RowDefinitions>
+ <UniformGrid Columns="1" Rows="2">
+ <Grid Margin="2">
+ <Image IsHitTestVisible="False" Source="../Images/dispenser.png" RenderOptions.BitmapScalingMode="Fant">
+ <Image.Style>
+ <Style TargetType="Image">
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding Dispenser}" Value="{x:Null}">
+ <Setter Property="Opacity" Value="0.2"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Image.Style>
+ </Image>
+ <Rectangle IsHitTestVisible="False" Margin="14 25 13 34">
+ <Rectangle.Fill>
+ <LinearGradientBrush StartPoint="0,0" EndPoint="0,0.8" Opacity="0.8">
+ <GradientStop Offset="0" Color="Transparent" />
+ <GradientStop Offset="1" Color="{Binding LiquidType.Color,Converter={StaticResource ColorToIntegerConverter}}"/>
+ </LinearGradientBrush>
+ </Rectangle.Fill>
+ </Rectangle>
+ </Grid>
+
+ <Grid Margin="2">
+ <Image IsHitTestVisible="False" Stretch="Fill" Source="../Images/mid-tank.png" RenderOptions.BitmapScalingMode="Fant">
+ <Image.Style>
+ <Style TargetType="Image">
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding MidTankType}" Value="{x:Null}">
+ <Setter Property="Opacity" Value="0.2"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Image.Style>
+ </Image>
+ <Rectangle IsHitTestVisible="False" Margin="4 25 4 1">
+ <Rectangle.Fill>
+ <LinearGradientBrush StartPoint="0,0" EndPoint="0,0.8" Opacity="0.8">
+ <GradientStop Offset="0" Color="Transparent" />
+ <GradientStop Offset="1" Color="{Binding LiquidType.Color,Converter={StaticResource ColorToIntegerConverter}}"/>
+ </LinearGradientBrush>
+ </Rectangle.Fill>
+ </Rectangle>
+ </Grid>
+ </UniformGrid>
- <Grid Margin="2">
- <Image IsHitTestVisible="False" Stretch="Fill" Source="../Images/mid-tank.png" RenderOptions.BitmapScalingMode="Fant">
- <Image.Style>
- <Style TargetType="Image">
+ <Grid Grid.Row="1" Margin="3" IsHitTestVisible="False">
+ <Grid.Style>
+ <Style TargetType="Grid">
<Style.Triggers>
- <DataTrigger Binding="{Binding MidTankType}" Value="{x:Null}">
+ <DataTrigger Binding="{Binding CartridgeType}" Value="{x:Null}">
<Setter Property="Opacity" Value="0.2"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
- </Image.Style>
- </Image>
- <Rectangle IsHitTestVisible="False" Margin="4 25 4 1">
- <Rectangle.Fill>
- <LinearGradientBrush StartPoint="0,0" EndPoint="0,0.8" Opacity="0.8">
- <GradientStop Offset="0" Color="Transparent" />
- <GradientStop Offset="1" Color="{Binding LiquidType.Color,Converter={StaticResource ColorToIntegerConverter}}"/>
- </LinearGradientBrush>
- </Rectangle.Fill>
- </Rectangle>
+ </Grid.Style>
+ <Border BorderBrush="#252525" BorderThickness="1" CornerRadius="3">
+ <Border.Background>
+ <LinearGradientBrush>
+ <GradientStop Color="#FF252525"/>
+ <GradientStop Color="#FF838383" Offset="1"/>
+ </LinearGradientBrush>
+ </Border.Background>
+ </Border>
+ <Border BorderBrush="#252525" BorderThickness="1" CornerRadius="3">
+ <Border.Background>
+ <LinearGradientBrush Opacity="0.7">
+ <GradientStop Offset="0" Color="Transparent" />
+ <GradientStop Offset="1" Color="{Binding LiquidType.Color,Converter={StaticResource ColorToIntegerConverter}}"/>
+ </LinearGradientBrush>
+ </Border.Background>
+ </Border>
+ </Grid>
</Grid>
- </UniformGrid>
+ </DataTemplate>
+ </ItemsControl.ItemTemplate>
+ </ListBox>
- <Grid Grid.Row="1" Margin="3" IsHitTestVisible="False">
- <Grid.Style>
- <Style TargetType="Grid">
- <Style.Triggers>
- <DataTrigger Binding="{Binding CartridgeType}" Value="{x:Null}">
- <Setter Property="Opacity" Value="0.2"></Setter>
- </DataTrigger>
- </Style.Triggers>
- </Style>
- </Grid.Style>
- <Border BorderBrush="#252525" BorderThickness="1" CornerRadius="3">
- <Border.Background>
- <LinearGradientBrush>
- <GradientStop Color="#FF252525"/>
- <GradientStop Color="#FF838383" Offset="1"/>
- </LinearGradientBrush>
- </Border.Background>
- </Border>
- <Border BorderBrush="#252525" BorderThickness="1" CornerRadius="3">
- <Border.Background>
- <LinearGradientBrush Opacity="0.7">
- <GradientStop Offset="0" Color="Transparent" />
- <GradientStop Offset="1" Color="{Binding LiquidType.Color,Converter={StaticResource ColorToIntegerConverter}}"/>
- </LinearGradientBrush>
- </Border.Background>
- </Border>
- </Grid>
- </Grid>
- </DataTemplate>
- </ItemsControl.ItemTemplate>
- </ListBox>
-
- <Grid Margin="0 50 0 0">
- <Grid.Style>
- <Style TargetType="Grid">
- <Setter Property="Visibility" Value="Hidden"></Setter>
- <Style.Triggers>
- <DataTrigger Binding="{Binding Configuration.IdsPacks.Count}" Value="0">
- <Setter Property="Visibility" Value="Visible"></Setter>
- </DataTrigger>
- </Style.Triggers>
- </Style>
- </Grid.Style>
- <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="20" FontWeight="Bold" Foreground="{StaticResource FSE_GrayBrush}">NO IDS PACKS</TextBlock>
- </Grid>
+ <Grid Margin="0 50 0 0">
+ <Grid.Style>
+ <Style TargetType="Grid">
+ <Setter Property="Visibility" Value="Hidden"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding Configuration.IdsPacks.Count}" Value="0">
+ <Setter Property="Visibility" Value="Visible"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Grid.Style>
+ <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="20" FontWeight="Bold" Foreground="{StaticResource FSE_GrayBrush}">NO IDS PACKS</TextBlock>
+ </Grid>
- <Rectangle VerticalAlignment="Bottom" Stroke="DimGray" StrokeThickness="2">
- <!--<Rectangle.Effect>
+ <Rectangle VerticalAlignment="Bottom" Stroke="DimGray" StrokeThickness="2">
+ <!--<Rectangle.Effect>
<DropShadowEffect ShadowDepth="1" Opacity="1" Color="Black" />
</Rectangle.Effect>-->
- </Rectangle>
- </Grid>
+ </Rectangle>
+ </Grid>
- <Grid x:Name="gridEmbedded" Width="70" Height="100" Canvas.Left="80" Canvas.Top="331" IsHitTestVisible="True" SnapsToDevicePixels="True">
- <Image Source="../Images/ti-tm4c129x.png" RenderOptions.BitmapScalingMode="Fant"></Image>
- </Grid>
+ <Grid x:Name="gridEmbedded" Width="70" Height="100" Canvas.Left="80" Canvas.Top="331" IsHitTestVisible="True" SnapsToDevicePixels="True">
+ <Image Source="../Images/ti-tm4c129x.png" RenderOptions.BitmapScalingMode="Fant"></Image>
+ </Grid>
- <Grid Width="61" IsHitTestVisible="True" SnapsToDevicePixels="True" ClipToBounds="True" Height="42" Canvas.Left="85" Canvas.Top="385">
- <Grid.RowDefinitions>
- <RowDefinition Height="1*" />
- </Grid.RowDefinitions>
+ <Grid Width="61" IsHitTestVisible="True" SnapsToDevicePixels="True" ClipToBounds="True" Height="42" Canvas.Left="85" Canvas.Top="385">
+ <Grid.RowDefinitions>
+ <RowDefinition Height="1*" />
+ </Grid.RowDefinitions>
- <StackPanel Orientation="Horizontal">
- <Image Source="../Images/embedded.png" Width="10" VerticalAlignment="Center" Margin="1" RenderOptions.BitmapScalingMode="Fant"></Image>
- <TextBlock VerticalAlignment="Center" Padding="1" Foreground="{StaticResource FSE_GrayBrush}" IsHitTestVisible="False" FontSize="5" TextAlignment="Center" TextWrapping="Wrap" Height="15" Margin="0,6,0,0" Width="47"><Run Text="{Binding Configuration.EmbeddedFirmwareVersion.Name}"/><Run Text=" "/><Run Text="{Binding Configuration.EmbeddedFirmwareVersion.Version}"/></TextBlock>
- </StackPanel>
- </Grid>
+ <StackPanel Orientation="Horizontal">
+ <Image Source="../Images/embedded.png" Width="10" VerticalAlignment="Center" Margin="1" RenderOptions.BitmapScalingMode="Fant"></Image>
+ <TextBlock VerticalAlignment="Center" Padding="1" Foreground="{StaticResource FSE_GrayBrush}" IsHitTestVisible="False" FontSize="5" TextAlignment="Center" TextWrapping="Wrap" Height="15" Margin="0,6,0,0" Width="47"><Run Text="{Binding Configuration.EmbeddedFirmwareVersion.Name}"/><Run Text=" "/><Run Text="{Binding Configuration.EmbeddedFirmwareVersion.Version}"/></TextBlock>
+ </StackPanel>
+ </Grid>
- <TextBlock Canvas.Top="163" Canvas.Left="288" FontStyle="Italic" Foreground="Gray">Touch Panel</TextBlock>
- <Grid Width="53" Height="55" Canvas.Top="184" Canvas.Left="279">
- <Rectangle Stroke="Gray" VerticalAlignment="Bottom" StrokeThickness="2" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/>
- <Rectangle Stroke="Gray" HorizontalAlignment="Right" StrokeThickness="1" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/>
- </Grid>
+ <TextBlock Canvas.Top="163" Canvas.Left="288" FontStyle="Italic" Foreground="Gray">Touch Panel</TextBlock>
+ <Grid Width="53" Height="55" Canvas.Top="184" Canvas.Left="279">
+ <Rectangle Stroke="Gray" VerticalAlignment="Bottom" StrokeThickness="2" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/>
+ <Rectangle Stroke="Gray" HorizontalAlignment="Right" StrokeThickness="1" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/>
+ </Grid>
- <TextBlock Canvas.Top="441" Canvas.Left="156" FontStyle="Italic" Foreground="Gray">Embedded Firmware</TextBlock>
- <Grid Width="82" Height="26" Canvas.Top="410" Canvas.Left="158">
- <Rectangle Stroke="Gray" VerticalAlignment="Top" StrokeThickness="1" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/>
- <Rectangle Stroke="Gray" HorizontalAlignment="Right" StrokeThickness="1" StrokeDashArray="6" RenderTransformOrigin="0.5,0.5"/>
- </Grid>
+ <TextBlock Canvas.Top="441" Canvas.Left="156" FontStyle="Italic" Foreground="Gray">Embedded Firmware</TextBlock>
+ <Grid Width="82" Height="26" Canvas.Top="410" Canvas.Left="158">
+ <Rectangle Stroke="Gray" VerticalAlignment="Top" StrokeThickness="1" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/>
+ <Rectangle Stroke="Gray" HorizontalAlignment="Right" StrokeThickness="1" StrokeDashArray="6" RenderTransformOrigin="0.5,0.5"/>
+ </Grid>
- <TextBlock Canvas.Top="310" Canvas.Left="340" FontStyle="Italic" Foreground="Gray">Dispensers</TextBlock>
- <Grid Width="53" Height="20" Canvas.Top="331" Canvas.Left="377">
- <Rectangle Stroke="Gray" VerticalAlignment="Bottom" StrokeThickness="2" StrokeDashArray="3" RenderTransformOrigin="0.5,0.5"/>
- <Rectangle Stroke="Gray" HorizontalAlignment="Left" StrokeThickness="2" StrokeDashArray="3" RenderTransformOrigin="0.5,0.5"/>
- </Grid>
+ <TextBlock Canvas.Top="310" Canvas.Left="340" FontStyle="Italic" Foreground="Gray">Dispensers</TextBlock>
+ <Grid Width="53" Height="20" Canvas.Top="331" Canvas.Left="377">
+ <Rectangle Stroke="Gray" VerticalAlignment="Bottom" StrokeThickness="2" StrokeDashArray="3" RenderTransformOrigin="0.5,0.5"/>
+ <Rectangle Stroke="Gray" HorizontalAlignment="Left" StrokeThickness="2" StrokeDashArray="3" RenderTransformOrigin="0.5,0.5"/>
+ </Grid>
- <!--<TextBlock Canvas.Top="395" Canvas.Left="331" FontStyle="Italic" Foreground="Gray">Mid Tanks</TextBlock>
+ <!--<TextBlock Canvas.Top="395" Canvas.Left="331" FontStyle="Italic" Foreground="Gray">Mid Tanks</TextBlock>
<Grid Width="62" Height="29" Canvas.Top="418" Canvas.Left="357">
<Rectangle Stroke="Gray" VerticalAlignment="Bottom" StrokeThickness="2" StrokeDashArray="4" RenderTransformOrigin="0.5,0.5"/>
<Rectangle Stroke="Gray" HorizontalAlignment="Left" StrokeThickness="1" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/>
</Grid>-->
- <!--<TextBlock Canvas.Top="469" Canvas.Left="304" FontStyle="Italic" Foreground="Gray">Cartridges</TextBlock>
+ <!--<TextBlock Canvas.Top="469" Canvas.Left="304" FontStyle="Italic" Foreground="Gray">Cartridges</TextBlock>
<Grid Width="87" Height="10" Canvas.Top="487" Canvas.Left="332">
<Rectangle Stroke="Gray" VerticalAlignment="Bottom" StrokeThickness="2" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/>
<Rectangle Stroke="Gray" HorizontalAlignment="Left" StrokeThickness="2" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/>
</Grid>-->
- <Grid x:Name="gridTablet" Width="67" IsHitTestVisible="True" SnapsToDevicePixels="True" ClipToBounds="True" Height="90" Canvas.Left="188" Canvas.Top="198">
- <Grid.RowDefinitions>
- <RowDefinition Height="1*" />
- <RowDefinition Height="1*" />
- <RowDefinition Height="1*" />
- </Grid.RowDefinitions>
+ <Grid x:Name="gridTablet" Width="67" IsHitTestVisible="True" SnapsToDevicePixels="True" ClipToBounds="True" Height="90" Canvas.Left="188" Canvas.Top="198">
+ <Grid.RowDefinitions>
+ <RowDefinition Height="1*" />
+ <RowDefinition Height="1*" />
+ <RowDefinition Height="1*" />
+ </Grid.RowDefinitions>
- <StackPanel>
- <Image Source="../Images/tablet.png" Width="10" Margin="2" RenderOptions.BitmapScalingMode="Fant"></Image>
- <TextBlock Padding="2 0 2 0" Foreground="{StaticResource FSE_GrayBrush}" IsHitTestVisible="False" FontSize="6" TextAlignment="Center" TextWrapping="Wrap">
+ <StackPanel>
+ <Image Source="../Images/tablet.png" Width="10" Margin="2" RenderOptions.BitmapScalingMode="Fant"></Image>
+ <TextBlock Padding="2 0 2 0" Foreground="{StaticResource FSE_GrayBrush}" IsHitTestVisible="False" FontSize="6" TextAlignment="Center" TextWrapping="Wrap">
<Run Text="{Binding Configuration.ApplicationDisplayPanelVersion.Name}"></Run>
<Run Text="{Binding Configuration.ApplicationDisplayPanelVersion.Version}"></Run>
- </TextBlock>
- </StackPanel>
+ </TextBlock>
+ </StackPanel>
- <StackPanel Grid.Row="3" >
- <Image Source="../Images/application-firmware.png" Width="10" Margin="2" RenderOptions.BitmapScalingMode="Fant"></Image>
- <TextBlock Padding="2 0 2 0" IsHitTestVisible="False" Foreground="{StaticResource FSE_GrayBrush}" FontSize="6" TextAlignment="Center" TextWrapping="Wrap">
+ <StackPanel Grid.Row="3" >
+ <Image Source="../Images/application-firmware.png" Width="10" Margin="2" RenderOptions.BitmapScalingMode="Fant"></Image>
+ <TextBlock Padding="2 0 2 0" IsHitTestVisible="False" Foreground="{StaticResource FSE_GrayBrush}" FontSize="6" TextAlignment="Center" TextWrapping="Wrap">
<Run Text="{Binding Configuration.ApplicationFirmwareVersion.Name}"></Run>
<Run Text="{Binding Configuration.ApplicationFirmwareVersion.Version}"></Run>
- </TextBlock>
- </StackPanel>
+ </TextBlock>
+ </StackPanel>
- <StackPanel Grid.Row="1" >
- <Image Source="../Images/android.png" Width="10" Margin="2" RenderOptions.BitmapScalingMode="Fant"></Image>
- <TextBlock Padding="2 0 2 0" IsHitTestVisible="False" Foreground="{StaticResource FSE_GrayBrush}" FontSize="6" TextAlignment="Center" TextWrapping="Wrap">
+ <StackPanel Grid.Row="1" >
+ <Image Source="../Images/android.png" Width="10" Margin="2" RenderOptions.BitmapScalingMode="Fant"></Image>
+ <TextBlock Padding="2 0 2 0" IsHitTestVisible="False" Foreground="{StaticResource FSE_GrayBrush}" FontSize="6" TextAlignment="Center" TextWrapping="Wrap">
<Run Text="{Binding Configuration.ApplicationOsVersion.Name}"></Run>
<Run Text="{Binding Configuration.ApplicationOsVersion.Version}"></Run>
+ </TextBlock>
+ </StackPanel>
+ </Grid>
+ </Canvas>
+
+ </Grid>
+
+ </Grid>
+ </Viewbox>
+ </Grid>
+
+ <Grid>
+ <Grid.Style>
+ <Style TargetType="Grid">
+ <Setter Property="Visibility" Value="Hidden"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding Type}" Value="Eureka">
+ <Setter Property="Visibility" Value="Visible"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Grid.Style>
+ <Viewbox MaxWidth="1200" Grid.Row="1" Margin="25 0 0 0">
+ <Grid IsHitTestVisible="False" VerticalAlignment="Top">
+
+ <Image IsHitTestVisible="False" Source="{StaticResource FSE_Machine_Eureka_Full}" MaxWidth="1000" Margin="-150 -50 0 0" RenderOptions.BitmapScalingMode="Fant"/>
+
+ <StackPanel Margin="160 150 0 0" Width="410" HorizontalAlignment="Left">
+ <UniformGrid TextElement.Foreground="#252525" Rows="1" Columns="10" TextElement.FontSize="20">
+ <TextBlock HorizontalAlignment="Center">1</TextBlock>
+ <TextBlock HorizontalAlignment="Center">2</TextBlock>
+ <TextBlock HorizontalAlignment="Center">3</TextBlock>
+ <TextBlock HorizontalAlignment="Center">4</TextBlock>
+ <TextBlock HorizontalAlignment="Center">5</TextBlock>
+ <TextBlock HorizontalAlignment="Center">6</TextBlock>
+ <TextBlock HorizontalAlignment="Center">7</TextBlock>
+ <TextBlock HorizontalAlignment="Center">8</TextBlock>
+ <TextBlock HorizontalAlignment="Center">9</TextBlock>
+ <TextBlock HorizontalAlignment="Center">10</TextBlock>
+ </UniformGrid>
+
+ <Grid Height="218">
+ <ListBox ItemsSource="{Binding Configuration.IdsPacks}" ScrollViewer.VerticalScrollBarVisibility="Disabled" ScrollViewer.HorizontalScrollBarVisibility="Disabled" Background="Transparent">
+ <ListBox.ItemContainerStyle>
+ <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}">
+ <Setter Property="Padding" Value="0"></Setter>
+ <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter>
+ <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter>
+ </Style>
+ </ListBox.ItemContainerStyle>
+ <ItemsControl.ItemsPanel>
+ <ItemsPanelTemplate>
+ <UniformGrid Columns="10"></UniformGrid>
+ </ItemsPanelTemplate>
+ </ItemsControl.ItemsPanel>
+ <ItemsControl.ItemTemplate>
+ <DataTemplate>
+ <Grid>
+ <Grid.RowDefinitions>
+ <RowDefinition Height="1*"/>
+ <RowDefinition Height="30"/>
+ </Grid.RowDefinitions>
+ <UniformGrid Columns="1" Rows="2">
+ <Grid Margin="2">
+ <Image IsHitTestVisible="False" Source="../Images/dispenser.png" RenderOptions.BitmapScalingMode="Fant">
+ <Image.Style>
+ <Style TargetType="Image">
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding Dispenser}" Value="{x:Null}">
+ <Setter Property="Opacity" Value="0.2"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Image.Style>
+ </Image>
+ <Rectangle IsHitTestVisible="False" Margin="14 25 13 34">
+ <Rectangle.Fill>
+ <LinearGradientBrush StartPoint="0,0" EndPoint="0,0.8" Opacity="0.8">
+ <GradientStop Offset="0" Color="Transparent" />
+ <GradientStop Offset="1" Color="{Binding LiquidType.Color,Converter={StaticResource ColorToIntegerConverter}}"/>
+ </LinearGradientBrush>
+ </Rectangle.Fill>
+ </Rectangle>
+ </Grid>
+
+ <Grid Margin="2">
+ <Image IsHitTestVisible="False" Stretch="Fill" Source="../Images/mid-tank.png" RenderOptions.BitmapScalingMode="Fant">
+ <Image.Style>
+ <Style TargetType="Image">
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding MidTankType}" Value="{x:Null}">
+ <Setter Property="Opacity" Value="0.2"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Image.Style>
+ </Image>
+ <Rectangle IsHitTestVisible="False" Margin="4 25 4 1">
+ <Rectangle.Fill>
+ <LinearGradientBrush StartPoint="0,0" EndPoint="0,0.8" Opacity="0.8">
+ <GradientStop Offset="0" Color="Transparent" />
+ <GradientStop Offset="1" Color="{Binding LiquidType.Color,Converter={StaticResource ColorToIntegerConverter}}"/>
+ </LinearGradientBrush>
+ </Rectangle.Fill>
+ </Rectangle>
+ </Grid>
+ </UniformGrid>
+
+ <Grid Grid.Row="1" Margin="3" IsHitTestVisible="False">
+ <Grid.Style>
+ <Style TargetType="Grid">
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding CartridgeType}" Value="{x:Null}">
+ <Setter Property="Opacity" Value="0.2"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Grid.Style>
+ <Border BorderBrush="#252525" BorderThickness="1" CornerRadius="3">
+ <Border.Background>
+ <LinearGradientBrush>
+ <GradientStop Color="#FF252525"/>
+ <GradientStop Color="#FF838383" Offset="1"/>
+ </LinearGradientBrush>
+ </Border.Background>
+ </Border>
+ <Border BorderBrush="#252525" BorderThickness="1" CornerRadius="3">
+ <Border.Background>
+ <LinearGradientBrush Opacity="0.7">
+ <GradientStop Offset="0" Color="Transparent" />
+ <GradientStop Offset="1" Color="{Binding LiquidType.Color,Converter={StaticResource ColorToIntegerConverter}}"/>
+ </LinearGradientBrush>
+ </Border.Background>
+ </Border>
+ </Grid>
+ </Grid>
+ </DataTemplate>
+ </ItemsControl.ItemTemplate>
+ </ListBox>
+
+ <Grid Margin="0 50 0 0">
+ <Grid.Style>
+ <Style TargetType="Grid">
+ <Setter Property="Visibility" Value="Hidden"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding Configuration.IdsPacks.Count}" Value="0">
+ <Setter Property="Visibility" Value="Visible"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Grid.Style>
+ <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="20" FontWeight="Bold" Foreground="{StaticResource FSE_GrayBrush}">NO IDS PACKS</TextBlock>
+ </Grid>
+
+ <Rectangle VerticalAlignment="Bottom" Stroke="DimGray" StrokeThickness="2">
+ <!--<Rectangle.Effect>
+ <DropShadowEffect ShadowDepth="1" Opacity="1" Color="Black" />
+ </Rectangle.Effect>-->
+ </Rectangle>
+ </Grid>
+ </StackPanel>
+
+ <Border Margin="150 30 0 0" BorderThickness="1" IsHitTestVisible="False" HorizontalAlignment="Left" VerticalAlignment="Top">
+ <StackPanel Orientation="Horizontal">
+ <Image Source="../Images/hardware.png" Width="30" VerticalAlignment="Center" Margin="5" RenderOptions.BitmapScalingMode="Fant"></Image>
+ <TextBlock Padding="2 0 2 0" VerticalAlignment="Center" TextAlignment="Center" Foreground="{StaticResource FSE_GrayBrush}" IsHitTestVisible="False" FontSize="20" TextWrapping="Wrap">
+ <Run Text="{Binding Configuration.HardwareVersion.Name}"></Run>
+ <Run Text="{Binding Configuration.HardwareVersion.Version}"></Run>
</TextBlock>
</StackPanel>
- </Grid>
- </Canvas>
- </Grid>
- </Viewbox>
+ </Border>
+ </Grid>
+ </Viewbox>
+ </Grid>
</Grid>
</UserControl>
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/RunningJobRingProgress.xaml b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/RunningJobRingProgress.xaml
index d0121afa5..b683ae0d2 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/RunningJobRingProgress.xaml
+++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/RunningJobRingProgress.xaml
@@ -5,9 +5,14 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:behaviors="clr-namespace:Tango.FSE.Common.Behaviors"
xmlns:local="clr-namespace:Tango.FSE.Common.Controls"
+ xmlns:localConverters="clr-namespace:Tango.FSE.Common.Converters"
xmlns:material="http://materialdesigninxaml.net/winfx/xaml/themes"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="450" x:Name="control">
+ <UserControl.Resources>
+ <localConverters:ProgressLengthSpoolConverter x:Key="ProgressLengthSpoolConverter"/>
+ </UserControl.Resources>
+
<Grid Opacity="0.7">
<Viewbox>
<Grid>
@@ -50,10 +55,31 @@
<TextBlock Margin="5 0 0 0" VerticalAlignment="Center">Completed</TextBlock>
</StackPanel>
- <TextBlock FontWeight="Light" FontSize="25" Margin="0 10 0 0" HorizontalAlignment="Center">
+ <TextBlock FontWeight="Light" FontSize="25" Margin="0 10 0 0" HorizontalAlignment="Center" Visibility="Collapsed">
<Run Text="{Binding ElementName=control,Path=RunningJobStatus.ProgressMinusSettingUp,StringFormat=0,FallbackValue=0}"></Run><Run Text="/" /><Run Text="{Binding RunningJobStatus.TotalProgressMinusSettingUp,StringFormat=0,FallbackValue=0}"/>
<Run FontSize="16">m</Run>
</TextBlock>
+ <StackPanel Orientation="Horizontal" Margin="0 10 0 0" HorizontalAlignment="Center" Visibility="Visible">
+ <TextBlock FontWeight="Light" FontSize="25" VerticalAlignment="Center" >
+ <TextBlock.Text>
+ <MultiBinding Converter="{StaticResource ProgressLengthSpoolConverter}" StringFormat="0.#" TargetNullValue='-' FallbackValue='0' Mode="OneWay">
+ <Binding Path="RunningJobStatus.TotalProgressMinusSettingUp" />
+ <Binding Path="IsEureka"/>
+ <Binding Path="RunningJobStatus.ProgressMinusSettingUp" />
+ </MultiBinding>
+ </TextBlock.Text>
+ </TextBlock>
+ <TextBlock FontWeight="Light" FontSize="25" VerticalAlignment="Center" Text="/"></TextBlock>
+ <TextBlock FontWeight="Light" FontSize="25" VerticalAlignment="Center" >
+ <TextBlock.Text>
+ <MultiBinding Converter="{StaticResource ProgressLengthSpoolConverter}" StringFormat="0" TargetNullValue='-' FallbackValue='0' Mode="OneWay">
+ <Binding Path="RunningJobStatus.TotalProgressMinusSettingUp"/>
+ <Binding Path="IsEureka"/>
+ </MultiBinding>
+ </TextBlock.Text>
+ </TextBlock>
+ <TextBlock FontWeight="Light" FontSize="25" VerticalAlignment="Center" Text=" m"></TextBlock>
+ </StackPanel>
</StackPanel>
<StackPanel Height="90" Visibility="{Binding ElementName=control,Path=RunningJobStatus.IsSettingUp,Converter={StaticResource BooleanToVisibilityConverter}}">
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/RunningJobRingProgress.xaml.cs b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/RunningJobRingProgress.xaml.cs
index 5e0f28419..d8374573c 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/RunningJobRingProgress.xaml.cs
+++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/RunningJobRingProgress.xaml.cs
@@ -40,8 +40,15 @@ namespace Tango.FSE.Common.Controls
public static readonly DependencyProperty IsRunningProperty =
DependencyProperty.Register("IsRunning", typeof(bool), typeof(RunningJobRingProgress), new PropertyMetadata(false));
+ public bool IsEureka
+ {
+ get { return (bool)GetValue(IsEurekaProperty); }
+ set { SetValue(IsEurekaProperty, value); }
+ }
+ public static readonly DependencyProperty IsEurekaProperty =
+ DependencyProperty.Register("IsEureka", typeof(bool), typeof(RunningJobRingProgress), new PropertyMetadata(false));
-
+
public RunningJobRingProgress()
{
InitializeComponent();
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/RunningJobViewer.xaml b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/RunningJobViewer.xaml
index 2cd4fa7ad..faf5e072f 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/RunningJobViewer.xaml
+++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/RunningJobViewer.xaml
@@ -6,9 +6,14 @@
xmlns:enumerations="clr-namespace:Tango.BL.Enumerations;assembly=Tango.BL"
xmlns:material="http://materialdesigninxaml.net/winfx/xaml/themes"
xmlns:local="clr-namespace:Tango.FSE.Common.Controls"
+ xmlns:localConverters="clr-namespace:Tango.FSE.Common.Converters"
mc:Ignorable="d"
d:DesignHeight="120" d:DesignWidth="800">
+ <UserControl.Resources>
+ <localConverters:ProgressLengthSpoolConverter x:Key="ProgressLengthSpoolConverter"/>
+ </UserControl.Resources>
+
<DockPanel>
<Canvas Height="50" Margin="0" DockPanel.Dock="Top">
<StackPanel>
@@ -132,7 +137,15 @@
</Style.Triggers>
</Style>
</TextBlock.Style>
- <Run Text="{Binding LengthWithFactor,Mode=OneWay,StringFormat=N0}"></Run><Run Text="m"></Run>
+ <Run >
+ <Run.Text>
+ <MultiBinding Converter="{StaticResource ProgressLengthSpoolConverter}" StringFormat="N0" TargetNullValue=' ' FallbackValue='0' Mode="OneWay">
+ <Binding Path="LengthWithFactor"/>
+ <Binding RelativeSource="{RelativeSource AncestorType=UserControl}" Path="IsEureka"/>
+ </MultiBinding>
+ </Run.Text>
+ </Run>
+ <Run Text="m"></Run>
</TextBlock>
</Grid>
</DataTemplate>
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/RunningJobViewer.xaml.cs b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/RunningJobViewer.xaml.cs
index 4a970ffda..459728264 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/RunningJobViewer.xaml.cs
+++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/RunningJobViewer.xaml.cs
@@ -55,6 +55,14 @@ namespace Tango.FSE.Common.Controls
public static readonly DependencyProperty JobProperty =
DependencyProperty.Register("Job", typeof(Job), typeof(RunningJobViewer), new PropertyMetadata(null));
+ public bool IsEureka
+ {
+ get { return (bool)GetValue(IsEurekaProperty); }
+ set { SetValue(IsEurekaProperty, value); }
+ }
+ public static readonly DependencyProperty IsEurekaProperty =
+ DependencyProperty.Register("IsEureka", typeof(bool), typeof(RunningJobViewer), new PropertyMetadata(false));
+
/// <summary>
/// Gets or sets the running job status.
/// </summary>
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Converters/ProgressLengthSpoolConverter.cs b/Software/Visual_Studio/FSE/Tango.FSE.Common/Converters/ProgressLengthSpoolConverter.cs
new file mode 100644
index 000000000..10c20c171
--- /dev/null
+++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Converters/ProgressLengthSpoolConverter.cs
@@ -0,0 +1,61 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Data;
+using Tango.BL.Entities;
+
+namespace Tango.FSE.Common.Converters
+{
+ public class ProgressLengthSpoolConverter : IMultiValueConverter
+ {
+ public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
+ {
+ try
+ {
+ if (values.Count() == 2)
+ {
+ double length = System.Convert.ToDouble(values[0]);
+ bool isEureka = System.Convert.ToBoolean(values[1]);
+ int jobSpools = 1;
+ if (isEureka)
+ jobSpools = 4;
+ var totalBy4Spools = (double)length * jobSpools;// spools 4;
+ return totalBy4Spools;
+
+ }
+ if (values.Count() == 3)
+ {
+ double length = System.Convert.ToDouble(values[0]);
+ var segment = values[1] as Segment;
+ bool isEureka = System.Convert.ToBoolean(values[1]);
+ int jobSpools = 1;
+ if (isEureka)
+ jobSpools = 4;
+ double currentProgresslength = System.Convert.ToDouble(values[2]);
+
+ var totalBySpools = (double)length * jobSpools;
+ var currentProgressBySpools = (double)currentProgresslength * jobSpools;
+
+ int coeff = (int)currentProgressBySpools / (int)totalBySpools;
+ var progressCurrent = (coeff == 0 || coeff == 1) ? currentProgressBySpools : currentProgressBySpools % (coeff * totalBySpools);//show for progress
+
+ return progressCurrent;
+ }
+ return "-";
+ }
+ catch
+ {
+ return "-";
+ }
+ }
+
+ public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/FSESettings.cs b/Software/Visual_Studio/FSE/Tango.FSE.Common/FSESettings.cs
index d6b8bd492..f518ef2d2 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.Common/FSESettings.cs
+++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/FSESettings.cs
@@ -190,6 +190,11 @@ namespace Tango.FSE.Common
public StatisticsStreamingConfiguration StatisticsStreamingConfig { get; set; }
/// <summary>
+ /// Gets or sets the last type of the connected machine.
+ /// </summary>
+ public int LastConnectedMachineType { get; set; }
+
+ /// <summary>
/// Initializes a new instance of the <see cref="FSESettings"/> class.
/// </summary>
public FSESettings()
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/emulator.png b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/emulator.png
new file mode 100644
index 000000000..cd3478ab2
--- /dev/null
+++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/emulator.png
Binary files differ
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/eureka.png b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/eureka.png
new file mode 100644
index 000000000..212d391d4
--- /dev/null
+++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/eureka.png
Binary files differ
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/signalr.png b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/signalr.png
new file mode 100644
index 000000000..20d329640
--- /dev/null
+++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/signalr.png
Binary files differ
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/tcp.png b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/tcp.png
new file mode 100644
index 000000000..a19a64fec
--- /dev/null
+++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/tcp.png
Binary files differ
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/ts1800.png b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/ts1800.png
new file mode 100644
index 000000000..116e1e9c7
--- /dev/null
+++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/ts1800.png
Binary files differ
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/usb.png b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/usb.png
new file mode 100644
index 000000000..d0b917b44
--- /dev/null
+++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/usb.png
Binary files differ
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/wifi.png b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/wifi.png
new file mode 100644
index 000000000..8c4bfebc4
--- /dev/null
+++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/Connections/wifi.png
Binary files differ
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/eureka_full.png b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/eureka_full.png
new file mode 100644
index 000000000..484bb2ac1
--- /dev/null
+++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/eureka_full.png
Binary files differ
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/eureka_small.png b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/eureka_small.png
new file mode 100644
index 000000000..c9da4ae29
--- /dev/null
+++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/eureka_small.png
Binary files differ
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/machines.png b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/machines.png
new file mode 100644
index 000000000..788d1e67b
--- /dev/null
+++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Images/machines.png
Binary files differ
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Colors.xaml b/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Colors.xaml
index 792826d31..e10b0678d 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Colors.xaml
+++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Colors.xaml
@@ -22,6 +22,7 @@
<Color x:Key="FSE_MessageBoxTitleHeaderBackgroundColor">#404040</Color>
<Color x:Key="FSE_UsbColor">#FF6F6F</Color>
+ <Color x:Key="FSE_LanColor">#EA6FFF</Color>
<Color x:Key="FSE_WifiColor">#58C13B</Color>
<Color x:Key="FSE_SignalRColor">#6DDAFF</Color>
<Color x:Key="FSE_EmulatorColor">#F3FF6D</Color>
@@ -66,6 +67,7 @@
<SolidColorBrush x:Key="FSE_MessageBoxTitleHeaderBackgroundBrush" Color="{StaticResource FSE_MessageBoxTitleHeaderBackgroundColor}"></SolidColorBrush>
<SolidColorBrush x:Key="FSE_UsbBrush" Color="{StaticResource FSE_UsbColor}"></SolidColorBrush>
+ <SolidColorBrush x:Key="FSE_LanBrush" Color="{StaticResource FSE_LanColor}"></SolidColorBrush>
<SolidColorBrush x:Key="FSE_WifiBrush" Color="{StaticResource FSE_WifiColor}"></SolidColorBrush>
<SolidColorBrush x:Key="FSE_SignalRBrush" Color="{StaticResource FSE_SignalRColor}"></SolidColorBrush>
<SolidColorBrush x:Key="FSE_EmulatorBrush" Color="{StaticResource FSE_EmulatorColor}"></SolidColorBrush>
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Controls.xaml b/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Controls.xaml
index e2b01843e..0204be2ea 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Controls.xaml
+++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Controls.xaml
@@ -15,6 +15,9 @@
<ResourceDictionary Source="pack://application:,,,/Tango.FSE.Common;component/Controls/FSEGroupBox.xaml" />
<ResourceDictionary Source="pack://application:,,,/Tango.FSE.Common;component/Controls/FSERoundedCornersComboBox.xaml" />
<ResourceDictionary Source="pack://application:,,,/Tango.FSE.Common;component/Controls/SelectionComboBox.xaml" />
+ <ResourceDictionary Source="pack://application:,,,/Tango.FSE.Common;component/Controls/MachineConnectionIcon.xaml" />
+ <ResourceDictionary Source="pack://application:,,,/Tango.FSE.Common;component/Controls/MachineIcon.xaml" />
+ <ResourceDictionary Source="pack://application:,,,/Tango.FSE.Common;component/Controls/MachineIconFull.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary> \ No newline at end of file
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Images.xaml b/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Images.xaml
index 91bf1816f..e69b69e44 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Images.xaml
+++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Images.xaml
@@ -4,7 +4,10 @@
<BitmapImage x:Key="FSE_Machine_Big" UriSource="../Images/machine_big.png" />
<BitmapImage x:Key="FSE_Machine_Small" UriSource="../Images/machine_small.png" />
+ <BitmapImage x:Key="FSE_Machine_Eureka_Small" UriSource="../Images/eureka_small.png" />
<BitmapImage x:Key="FSE_Machine_Full" UriSource="../Images/machine_full.png" />
+ <BitmapImage x:Key="FSE_Machine_Eureka_Full" UriSource="../Images/eureka_full.png" />
+ <BitmapImage x:Key="FSE_Machines_Full" UriSource="../Images/machines.png" />
<BitmapImage x:Key="FSE_Twine_Logo" UriSource="../Images/twine_logo.png" />
<BitmapImage x:Key="FSE_Twine_Logo_Colored" UriSource="../Images/twine_logo_colored.png" />
<BitmapImage x:Key="FSE_PPC" UriSource="../Images/tablet.png" />
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Styles.xaml b/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Styles.xaml
index 4b5d8f8d2..c7e36cafa 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Styles.xaml
+++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Styles.xaml
@@ -4,6 +4,7 @@
xmlns:actions="clr-namespace:Tango.FSE.Common.EventTriggerActions"
xmlns:material="http://materialdesigninxaml.net/winfx/xaml/themes"
xmlns:controls="clr-namespace:Tango.SharedUI.Controls;assembly=Tango.SharedUI"
+ xmlns:commonControls="clr-namespace:Tango.FSE.Common.Controls"
xmlns:wpf="http://materialdesigninxaml.net/winfx/xaml/themes"
xmlns:mahapps="http://metro.mahapps.com/winfx/xaml/controls"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
@@ -625,7 +626,7 @@
<Setter.Value>
<DataTemplate>
<DockPanel VerticalAlignment="Center">
- <Image RenderOptions.BitmapScalingMode="Fant" Source="{StaticResource FSE_Machine_Small}" Width="24" />
+ <commonControls:MachineIcon Height="24" />
<StackPanel VerticalAlignment="Center" Margin="10 0 0 0" Orientation="Horizontal">
<TextBlock Text="{Binding SerialNumber}" FontSize="{StaticResource FSE_SmallFontSize}"></TextBlock>
<TextBlock Margin="10 0 0 0" FontSize="{StaticResource FSE_SmallFontSize}" Foreground="{StaticResource FSE_GrayBrush}" Text="{Binding Name}"></TextBlock>
@@ -638,7 +639,7 @@
<Setter.Value>
<DataTemplate>
<DockPanel VerticalAlignment="Center">
- <Image RenderOptions.BitmapScalingMode="Fant" Source="{StaticResource FSE_Machine_Small}" Width="32" />
+ <commonControls:MachineIcon Height="32" />
<StackPanel Margin="5 0 0 0">
<TextBlock Text="{Binding SerialNumber}"></TextBlock>
<TextBlock Margin="0 5 0 0" FontSize="{StaticResource FSE_SmallerFontSize}" Foreground="{StaticResource FSE_GrayBrush}" Text="{Binding Name}"></TextBlock>
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Tango.FSE.Common.csproj b/Software/Visual_Studio/FSE/Tango.FSE.Common/Tango.FSE.Common.csproj
index 95ee0b2f5..8ef3551d5 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.Common/Tango.FSE.Common.csproj
+++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Tango.FSE.Common.csproj
@@ -190,6 +190,9 @@
<Compile Include="Controls\FSEPanel.cs" />
<Compile Include="Controls\FSETabControl.cs" />
<Compile Include="Controls\IconButton.cs" />
+ <Compile Include="Controls\MachineConnectionIcon.cs" />
+ <Compile Include="Controls\MachineIcon.cs" />
+ <Compile Include="Controls\MachineIconFull.cs" />
<Compile Include="Controls\MachineView.xaml.cs">
<DependentUpon>MachineView.xaml</DependentUpon>
</Compile>
@@ -217,6 +220,7 @@
<Compile Include="Converters\LiquidTypeToShortNameConverter.cs" />
<Compile Include="Converters\NanolitersToLitersConverter.cs" />
<Compile Include="Converters\ObjectToJsonConverter.cs" />
+ <Compile Include="Converters\ProgressLengthSpoolConverter.cs" />
<Compile Include="Converters\TimeSpanHumanizeConverter.cs" />
<Compile Include="Converters\TotalDyeTimeConverter.cs" />
<Compile Include="Converters\TotalMetersConverter.cs" />
@@ -380,6 +384,18 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
+ <Page Include="Controls\MachineConnectionIcon.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
+ <Page Include="Controls\MachineIcon.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
+ <Page Include="Controls\MachineIconFull.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
<Page Include="Controls\MachineView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
@@ -670,7 +686,36 @@
<Resource Include="Images\shadow_right.png" />
<Resource Include="Images\shadow_top.png" />
</ItemGroup>
- <ItemGroup />
+ <ItemGroup>
+ <Resource Include="Images\Connections\emulator.png" />
+ </ItemGroup>
+ <ItemGroup>
+ <Resource Include="Images\Connections\signalr.png" />
+ </ItemGroup>
+ <ItemGroup>
+ <Resource Include="Images\Connections\tcp.png" />
+ </ItemGroup>
+ <ItemGroup>
+ <Resource Include="Images\Connections\ts1800.png" />
+ </ItemGroup>
+ <ItemGroup>
+ <Resource Include="Images\Connections\usb.png" />
+ </ItemGroup>
+ <ItemGroup>
+ <Resource Include="Images\Connections\wifi.png" />
+ </ItemGroup>
+ <ItemGroup>
+ <Resource Include="Images\Connections\eureka.png" />
+ </ItemGroup>
+ <ItemGroup>
+ <Resource Include="Images\eureka_full.png" />
+ </ItemGroup>
+ <ItemGroup>
+ <Resource Include="Images\eureka_small.png" />
+ </ItemGroup>
+ <ItemGroup>
+ <Resource Include="Images\machines.png" />
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PreBuildEvent>
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Themes/Generic.xaml b/Software/Visual_Studio/FSE/Tango.FSE.Common/Themes/Generic.xaml
index 9b1bd93cf..994dfc6ba 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.Common/Themes/Generic.xaml
+++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Themes/Generic.xaml
@@ -3,5 +3,6 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:Tango.FSE.Common">
+
</ResourceDictionary>
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/BugReporting/DefaultBugReporter.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/BugReporting/DefaultBugReporter.cs
index 2f4d75b37..e902bfded 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.UI/BugReporting/DefaultBugReporter.cs
+++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/BugReporting/DefaultBugReporter.cs
@@ -162,6 +162,7 @@ namespace Tango.FSE.UI.BugReporting
item.State = State.New;
item.Type = WorkItemType.Bug;
item.Environment = AuthenticationProvider.CurrentEnvironment.Description;
+ item.MachineType = (MachineType)Settings.LastConnectedMachineType;
bool hasPPCLogs = false;
bool hasFirmwareLogs = false;
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Connection/DefaultMachineProvider.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/Connection/DefaultMachineProvider.cs
index cf4337508..aee4613d4 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Connection/DefaultMachineProvider.cs
+++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Connection/DefaultMachineProvider.cs
@@ -203,11 +203,11 @@ namespace Tango.FSE.UI.Connection
if (machine.GetType() == typeof(ExternalBridgeUsbClient))
{
- vm = await NotificationProvider.ShowDialog<MachineConnectionUsbViewVM>();
+ vm = await NotificationProvider.ShowDialog(new MachineConnectionUsbViewVM() { Machine = machine });
}
else if (machine.GetType() == typeof(EmulatorExternalBridge))
{
- vm = await NotificationProvider.ShowDialog<MachineConnectionEmulatorViewVM>();
+ vm = await NotificationProvider.ShowDialog(new MachineConnectionEmulatorViewVM() { Machine = machine });
}
else if (machine is ExternalBridgeTcpClient)
{
@@ -566,6 +566,8 @@ namespace Tango.FSE.UI.Connection
protected virtual void OnMachineConnected(IExternalBridgeClient machineOperator)
{
+ Settings.LastConnectedMachineType = (int)machineOperator.MachineType;
+
MachineConnected?.Invoke(this, new MachineConnectedEventArgs()
{
MachineOperator = machineOperator,
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Converters/MidTankLevelToElementHeightConverter.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/Converters/MidTankLevelToElementHeightConverter.cs
index 88a90484d..f96725816 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Converters/MidTankLevelToElementHeightConverter.cs
+++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Converters/MidTankLevelToElementHeightConverter.cs
@@ -16,9 +16,9 @@ namespace Tango.FSE.UI.Converters
try
{
double parentActualHeight = (double)values[0];
- double midTankLevel = Math.Min((double)values[1], MachineOperator.MAX_MIDTANK_LITERS);
- //var test = (parentActualHeight - (midTankLevel / MachineOperator.MAX_MIDTANK_LITERS) * parentActualHeight);
- return (parentActualHeight - (midTankLevel / MachineOperator.MAX_MIDTANK_LITERS) * parentActualHeight);
+ double max = (double)values[2];
+ double midTankLevel = Math.Min((double)values[1], max);
+ return (parentActualHeight - (midTankLevel / max) * parentActualHeight);
}
catch
{
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionEmulatorView.xaml b/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionEmulatorView.xaml
index 45be0817b..0e78e8b55 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionEmulatorView.xaml
+++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionEmulatorView.xaml
@@ -5,13 +5,14 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:autoComplete="clr-namespace:Tango.AutoComplete.Editors;assembly=Tango.AutoComplete"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
+ xmlns:controls="clr-namespace:Tango.FSE.Common.Controls;assembly=Tango.FSE.Common"
xmlns:local="clr-namespace:Tango.FSE.UI.Dialogs"
mc:Ignorable="d"
Height="300" Width="700" d:DataContext="{d:DesignInstance Type=local:MachineConnectionEmulatorViewVM, IsDesignTimeCreatable=False}" Background="{StaticResource FSE_PrimaryBackgroundLightBrush}" Foreground="{StaticResource FSE_PrimaryForegroundBrush}">
<Grid>
<DockPanel Margin="10">
<StackPanel DockPanel.Dock="Top" Orientation="Horizontal" Margin="10">
- <ContentControl Height="60" Margin="-10 0 0 0" Style="{StaticResource FSE_EmulatorMachineIcon}"></ContentControl>
+ <controls:MachineConnectionIcon ExternalBridgeClient="{Binding Machine}" Height="60" Margin="-10 0 0 0"></controls:MachineConnectionIcon>
<TextBlock Text="Machine Selection" FontWeight="SemiBold" VerticalAlignment="Center" Margin="10 0 0 0" FontSize="{StaticResource FSE_MessageBoxTitleFontSize}"></TextBlock>
</StackPanel>
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionLostView.xaml b/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionLostView.xaml
index 06617885a..26fca9093 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionLostView.xaml
+++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionLostView.xaml
@@ -5,17 +5,18 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:material="http://materialdesigninxaml.net/winfx/xaml/themes"
xmlns:local="clr-namespace:Tango.FSE.UI.Dialogs"
+ xmlns:controls="clr-namespace:Tango.FSE.Common.Controls;assembly=Tango.FSE.Common"
mc:Ignorable="d"
Height="300" Width="700" d:DataContext="{d:DesignInstance Type=local:MachineConnectionLostViewVM, IsDesignTimeCreatable=False}" Background="{StaticResource FSE_PrimaryBackgroundLightBrush}" Foreground="{StaticResource FSE_PrimaryForegroundBrush}">
<Grid>
<DockPanel Margin="10">
<StackPanel DockPanel.Dock="Top" Orientation="Horizontal" Margin="10">
<Grid>
- <ContentControl Height="60" Margin="-10 0 0 0" Style="{StaticResource FSE_WifiMachineIcon}">
- <ContentControl.Effect>
+ <controls:MachineConnectionIcon ExternalBridgeClient="{Binding Machine}" Height="60" Margin="-10 0 0 0">
+ <controls:MachineConnectionIcon.Effect>
<BlurEffect Radius="5" />
- </ContentControl.Effect>
- </ContentControl>
+ </controls:MachineConnectionIcon.Effect>
+ </controls:MachineConnectionIcon>
<Canvas>
<material:PackIcon Kind="Exclamation" Foreground="{StaticResource FSE_ErrorBrush}" Width="45" Height="45" Margin="-5 13 0 0" />
</Canvas>
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionSignalRView.xaml b/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionSignalRView.xaml
index b091516df..43f32d820 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionSignalRView.xaml
+++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionSignalRView.xaml
@@ -6,13 +6,14 @@
xmlns:autoComplete="clr-namespace:Tango.AutoComplete.Editors;assembly=Tango.AutoComplete"
xmlns:helpers="clr-namespace:Tango.SharedUI.Helpers;assembly=Tango.SharedUI"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
+ xmlns:controls="clr-namespace:Tango.FSE.Common.Controls;assembly=Tango.FSE.Common"
xmlns:local="clr-namespace:Tango.FSE.UI.Dialogs"
mc:Ignorable="d"
Height="300" Width="700" d:DataContext="{d:DesignInstance Type=local:MachineConnectionSignalRViewVM, IsDesignTimeCreatable=False}" Background="{StaticResource FSE_PrimaryBackgroundLightBrush}" Foreground="{StaticResource FSE_PrimaryForegroundBrush}">
<Grid>
<DockPanel Margin="10">
<StackPanel DockPanel.Dock="Top" Orientation="Horizontal" Margin="10">
- <ContentControl Height="60" Margin="-10 0 0 0" Style="{StaticResource FSE_SignalRMachineIcon}"></ContentControl>
+ <controls:MachineConnectionIcon ExternalBridgeClient="{Binding Machine}" Height="60" Margin="-10 0 0 0"></controls:MachineConnectionIcon>
<TextBlock FontWeight="SemiBold" VerticalAlignment="Center" Margin="10 0 0 0" FontSize="{StaticResource FSE_MessageBoxTitleFontSize}">
<Run>Connect to</Run>
<Run>'</Run><Run FontWeight="Normal" Foreground="{StaticResource FSE_SignalRBrush}" Text="{Binding Machine.SerialNumber}"></Run><Run>'</Run>
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionUsbView.xaml b/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionUsbView.xaml
index 6ab2414f3..c285d2ed6 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionUsbView.xaml
+++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionUsbView.xaml
@@ -5,13 +5,14 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:autoComplete="clr-namespace:Tango.AutoComplete.Editors;assembly=Tango.AutoComplete"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
+ xmlns:controls="clr-namespace:Tango.FSE.Common.Controls;assembly=Tango.FSE.Common"
xmlns:local="clr-namespace:Tango.FSE.UI.Dialogs"
mc:Ignorable="d"
Height="300" Width="700" d:DataContext="{d:DesignInstance Type=local:MachineConnectionUsbViewVM, IsDesignTimeCreatable=False}" Background="{StaticResource FSE_PrimaryBackgroundLightBrush}" Foreground="{StaticResource FSE_PrimaryForegroundBrush}">
<Grid>
<DockPanel Margin="10">
<StackPanel DockPanel.Dock="Top" Orientation="Horizontal" Margin="10">
- <ContentControl Height="60" Margin="-10 0 0 0" Style="{StaticResource FSE_UsbMachineIcon}"></ContentControl>
+ <controls:MachineConnectionIcon ExternalBridgeClient="{Binding Machine}" Height="60" Margin="-10 0 0 0"></controls:MachineConnectionIcon>
<TextBlock Text="Machine Selection" FontWeight="SemiBold" VerticalAlignment="Center" Margin="10 0 0 0" FontSize="{StaticResource FSE_MessageBoxTitleFontSize}"></TextBlock>
</StackPanel>
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionUsbViewVM.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionUsbViewVM.cs
index e881da0ac..9056e7f4d 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionUsbViewVM.cs
+++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionUsbViewVM.cs
@@ -10,6 +10,7 @@ using Tango.Core.DI;
using Tango.FSE.BL;
using Tango.FSE.Common;
using Tango.FSE.Common.AutoComplete;
+using Tango.Integration.ExternalBridge;
namespace Tango.FSE.UI.Dialogs
{
@@ -22,6 +23,8 @@ namespace Tango.FSE.UI.Dialogs
[TangoInject]
protected FSEServicesContainer Services { get; set; }
+ public IExternalBridgeClient Machine { get; set; }
+
/// <summary>
/// Gets or sets the machines completion source.
/// </summary>
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionWifiView.xaml b/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionWifiView.xaml
index 5d9a5f74f..c1fd6fa7c 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionWifiView.xaml
+++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineConnectionWifiView.xaml
@@ -3,6 +3,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:controls="clr-namespace:Tango.FSE.Common.Controls;assembly=Tango.FSE.Common"
xmlns:autoComplete="clr-namespace:Tango.AutoComplete.Editors;assembly=Tango.AutoComplete"
xmlns:helpers="clr-namespace:Tango.SharedUI.Helpers;assembly=Tango.SharedUI"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
@@ -12,7 +13,7 @@
<Grid>
<DockPanel Margin="10">
<StackPanel DockPanel.Dock="Top" Orientation="Horizontal" Margin="10">
- <ContentControl Height="60" Margin="-10 0 0 0" Style="{StaticResource FSE_WifiMachineIcon}"></ContentControl>
+ <controls:MachineConnectionIcon ExternalBridgeClient="{Binding Machine}" Height="60" Margin="-10 0 0 0"></controls:MachineConnectionIcon>
<TextBlock FontWeight="SemiBold" VerticalAlignment="Center" Margin="10 0 0 0" FontSize="{StaticResource FSE_MessageBoxTitleFontSize}">
<Run>Connect to</Run>
<Run>'</Run><Run FontWeight="Normal" Foreground="{StaticResource FSE_WifiBrush}" Text="{Binding Machine.SerialNumber}"></Run><Run>'</Run>
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineWaitForConnectionView.xaml b/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineWaitForConnectionView.xaml
index 946e2bf0d..1d9359b04 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineWaitForConnectionView.xaml
+++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Dialogs/MachineWaitForConnectionView.xaml
@@ -4,6 +4,7 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:material="http://materialdesigninxaml.net/winfx/xaml/themes"
+ xmlns:controls="clr-namespace:Tango.FSE.Common.Controls;assembly=Tango.FSE.Common"
xmlns:local="clr-namespace:Tango.FSE.UI.Dialogs"
mc:Ignorable="d"
Height="300" Width="700" d:DataContext="{d:DesignInstance Type=local:MachineWaitForConnectionViewVM, IsDesignTimeCreatable=False}" Background="{StaticResource FSE_PrimaryBackgroundLightBrush}" Foreground="{StaticResource FSE_PrimaryForegroundBrush}">
@@ -11,11 +12,11 @@
<DockPanel Margin="10">
<StackPanel DockPanel.Dock="Top" Orientation="Horizontal" Margin="10">
<Grid>
- <ContentControl Height="60" Margin="-10 0 0 0" Style="{StaticResource FSE_WifiMachineIcon}">
- <ContentControl.Effect>
+ <controls:MachineConnectionIcon ExternalBridgeClient="{Binding Machine}" Height="60" Margin="-10 0 0 0">
+ <controls:MachineConnectionIcon.Effect>
<BlurEffect Radius="5" />
- </ContentControl.Effect>
- </ContentControl>
+ </controls:MachineConnectionIcon.Effect>
+ </controls:MachineConnectionIcon>
<Canvas>
<ProgressBar Style="{StaticResource FSE_CircularProgressBar}" Foreground="{StaticResource FSE_GrayBrush}" Opacity="0.5" Width="24" Height="24" Margin="5 24 0 0" />
</Canvas>
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Panes/MachineConnectionPane.xaml b/Software/Visual_Studio/FSE/Tango.FSE.UI/Panes/MachineConnectionPane.xaml
index b4b70cffd..1c6668e2a 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Panes/MachineConnectionPane.xaml
+++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Panes/MachineConnectionPane.xaml
@@ -5,6 +5,7 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:material="http://materialdesigninxaml.net/winfx/xaml/themes"
xmlns:local="clr-namespace:Tango.FSE.UI.Panes"
+ xmlns:controls="clr-namespace:Tango.FSE.Common.Controls;assembly=Tango.FSE.Common"
mc:Ignorable="d"
d:DesignHeight="600" d:DesignWidth="350" d:DataContext="{d:DesignInstance Type=local:MachineConnectionPaneVM, IsDesignTimeCreatable=False}">
<Grid>
@@ -34,7 +35,7 @@
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
- <ContentControl Style="{StaticResource FSE_EmulatorMachineIcon}" Height="35"></ContentControl>
+ <controls:MachineConnectionIcon ExternalBridgeClient="{Binding}" Height="35"></controls:MachineConnectionIcon>
<StackPanel Margin="10 0 0 0">
<TextBlock FontSize="{StaticResource FSE_SmallFontSize}" FontWeight="SemiBold">In-Memory Emulator</TextBlock>
<TextBlock FontSize="{StaticResource FSE_SmallFontSize}">
@@ -55,7 +56,7 @@
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
- <ContentControl Style="{StaticResource FSE_UsbMachineIcon}" Height="35"></ContentControl>
+ <controls:MachineConnectionIcon ExternalBridgeClient="{Binding}" Height="35"></controls:MachineConnectionIcon>
<StackPanel Margin="10 0 0 0">
<TextBlock FontSize="{StaticResource FSE_SmallFontSize}">
<Run FontWeight="SemiBold">Port:</Run> <Run Text="{Binding ComPort,Mode=OneWay}"></Run>
@@ -90,7 +91,7 @@
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
- <ContentControl Style="{StaticResource FSE_WifiMachineIcon}" />
+ <controls:MachineConnectionIcon ExternalBridgeClient="{Binding}" Height="35"></controls:MachineConnectionIcon>
<StackPanel Margin="10 0 0 0">
<TextBlock FontSize="{StaticResource FSE_SmallFontSize}">
<Run FontWeight="SemiBold">S/N:</Run> <Run Text="{Binding SerialNumber,Mode=OneWay}"></Run>
@@ -117,7 +118,7 @@
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
- <ContentControl Style="{StaticResource FSE_SignalRMachineIcon}" />
+ <controls:MachineConnectionIcon ExternalBridgeClient="{Binding}" Height="35"></controls:MachineConnectionIcon>
<StackPanel Margin="10 0 0 0">
<TextBlock FontSize="{StaticResource FSE_SmallFontSize}">
<Run FontWeight="Bold">S/N:</Run> <Run Text="{Binding SerialNumber,Mode=OneWay}"></Run>
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/Properties/AssemblyInfo.cs
index ccb936fc4..f13bd3e02 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Properties/AssemblyInfo.cs
+++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Properties/AssemblyInfo.cs
@@ -8,4 +8,4 @@ using System.Windows;
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Tango FSE")]
-[assembly: AssemblyVersion("1.4.7.0")]
+[assembly: AssemblyVersion("2.0.2.0")]
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/Machine/MachineTile.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/Machine/MachineTile.cs
index 611c4d93e..45265c636 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/Machine/MachineTile.cs
+++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/Machine/MachineTile.cs
@@ -5,11 +5,19 @@ using System.Text;
using System.Threading.Tasks;
using System.Windows;
using Tango.FSE.Common;
+using Tango.FSE.Common.Connection;
namespace Tango.FSE.UI.Tiles.Machine
{
public class MachineTile : DashboardTile
{
+ private Tango.BL.Entities.Machine _machine;
+ public Tango.BL.Entities.Machine Machine
+ {
+ get { return _machine; }
+ set { _machine = value; RaisePropertyChangedAuto(); }
+ }
+
public MachineTile()
{
Name = "Machine Configuration";
@@ -21,6 +29,18 @@ namespace Tango.FSE.UI.Tiles.Machine
RowSpan = 6;
}
+ public override void OnApplicationReady()
+ {
+ base.OnApplicationReady();
+
+ MachineProvider.MachineConnected += MachineProvider_MachineConnected;
+ }
+
+ private void MachineProvider_MachineConnected(object sender, MachineConnectedEventArgs e)
+ {
+ Machine = MachineProvider.Machine;
+ }
+
public override FrameworkElement GetView()
{
return new MachineTileView();
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/Machine/MachineTileView.xaml b/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/Machine/MachineTileView.xaml
index 625f0df7d..9f1d7bd30 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/Machine/MachineTileView.xaml
+++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/Machine/MachineTileView.xaml
@@ -8,6 +8,6 @@
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800" d:DataContext="{d:DesignInstance Type=local:MachineTile, IsDesignTimeCreatable=False}">
<Grid Margin="20">
- <controls:MachineView Opacity="0.6" DataContext="{Binding MachineProvider.Machine}" />
+ <controls:MachineView Opacity="0.6" DataContext="{Binding Machine}" />
</Grid>
</UserControl>
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/MidTankLevels/MidTankLevelsTile.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/MidTankLevels/MidTankLevelsTile.cs
index d8165d8aa..730055872 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/MidTankLevels/MidTankLevelsTile.cs
+++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/MidTankLevels/MidTankLevelsTile.cs
@@ -142,7 +142,7 @@ namespace Tango.FSE.UI.Tiles.MidTankLevels
{
MidTankLevels = MachineProvider.Machine.Configuration.NoneEmptyIdsPacks.Where(x => x.MidTankType.HasLevelMeasure).OrderBy(x => x.PackIndex).Select(x => new MidTankLevelModel()
{
- Max = MachineOperator.MAX_MIDTANK_LITERS,
+ Max = x.MidTankType.LiterCapacity,
IDSPack = x,
}).ToList();
}
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/MidTankLevels/MidTankLevelsTileView.xaml b/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/MidTankLevels/MidTankLevelsTileView.xaml
index 7465f41c0..5e4f8ed9a 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/MidTankLevels/MidTankLevelsTileView.xaml
+++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/MidTankLevels/MidTankLevelsTileView.xaml
@@ -58,6 +58,7 @@
<MultiBinding Converter="{StaticResource MidTankLevelToElementHeightConverter}">
<Binding ElementName="pathBorder" Path="ActualHeight" />
<Binding Path="Level" />
+ <Binding Path="Max" />
</MultiBinding>
</Setter.Value>
</Setter>
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/RemoteJob/RemoteJobProgressRingTileView.xaml b/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/RemoteJob/RemoteJobProgressRingTileView.xaml
index 62e7c4798..c021b0a15 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/RemoteJob/RemoteJobProgressRingTileView.xaml
+++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/RemoteJob/RemoteJobProgressRingTileView.xaml
@@ -9,6 +9,6 @@
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800" d:DataContext="{d:DesignInstance Type=local:RemoteJobProgressRingTile, IsDesignTimeCreatable=False}">
<Grid Margin="30">
- <controls:RunningJobRingProgress RunningJobStatus="{Binding RunningJobStatus}" IsRunning="{Binding IsRunning}" />
+ <controls:RunningJobRingProgress RunningJobStatus="{Binding RunningJobStatus}" IsRunning="{Binding IsRunning}" IsEureka ="{Binding IsEureka}" />
</Grid>
</UserControl>
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/RemoteJob/RemoteJobTile.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/RemoteJob/RemoteJobTile.cs
index 650818c22..453a0892e 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/RemoteJob/RemoteJobTile.cs
+++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/RemoteJob/RemoteJobTile.cs
@@ -6,6 +6,7 @@ using System.Threading.Tasks;
using System.Windows;
using System.Windows.Media;
using Tango.BL.Entities;
+using Tango.BL.Enumerations;
using Tango.FSE.Common;
using Tango.Integration.Operation;
using Tango.PPC.Shared.Jobs;
@@ -42,6 +43,15 @@ namespace Tango.FSE.UI.Tiles.RemoteJob
set { _isRunning = value; RaisePropertyChangedAuto(); }
}
+ private bool _isEureka;
+
+ public bool IsEureka
+ {
+ get { return _isEureka; }
+ set { _isEureka = value; RaisePropertyChangedAuto(); }
+ }
+
+
public RemoteJobTile()
{
Name = "Remote Job";
@@ -113,6 +123,7 @@ namespace Tango.FSE.UI.Tiles.RemoteJob
Handler.StatusChanged += Handler_StatusChanged;
Job = e.JobHandler.Job;
IsRunning = true;
+ IsEureka = MachineProvider.MachineOperator.MachineType == MachineTypes.Eureka;
}
private void Handler_StatusChanged(object sender, RunningJobStatus status)
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/RemoteJob/RemoteJobTileView.xaml b/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/RemoteJob/RemoteJobTileView.xaml
index ee05314ce..1323c9298 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/RemoteJob/RemoteJobTileView.xaml
+++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Tiles/RemoteJob/RemoteJobTileView.xaml
@@ -10,7 +10,7 @@
<Grid TextElement.Foreground="{StaticResource FSE_PrimaryAccentBrush}">
<Viewbox Width="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=ActualWidth}">
<Border Background="#292929" CornerRadius="10" VerticalAlignment="Bottom" Padding="20 0" Width="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=ActualWidth}">
- <controls:RunningJobViewer IsRunning="{Binding IsRunning}" Job="{Binding Job}" RunningJobStatus="{Binding RunningJobStatus}" IsActive="True" Margin="30 10" Height="90" />
+ <controls:RunningJobViewer IsRunning="{Binding IsRunning}" Job="{Binding Job}" RunningJobStatus="{Binding RunningJobStatus}" IsEureka="{Binding IsEureka}" IsActive="True" Margin="30 10" Height="90" />
</Border>
</Viewbox>
</Grid>
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Views/LayoutView.xaml b/Software/Visual_Studio/FSE/Tango.FSE.UI/Views/LayoutView.xaml
index b897851fc..f1ed89aff 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Views/LayoutView.xaml
+++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Views/LayoutView.xaml
@@ -548,7 +548,7 @@
<Grid Panel.ZIndex="100">
<DockPanel>
- <Image x:Name="imgHome" RenderTransformOrigin="0.5,0.5" Cursor="Hand" Source="{StaticResource FSE_Machine_Full}" Stretch="Uniform" RenderOptions.BitmapScalingMode="Fant" Margin="10">
+ <Image x:Name="imgHome" RenderTransformOrigin="0.5,0.5" Cursor="Hand" Source="{StaticResource FSE_Machines_Full}" Stretch="Uniform" RenderOptions.BitmapScalingMode="Fant" Margin="10">
<i:Interaction.Triggers>
<i:EventTrigger EventName="PreviewMouseUp">
<i:InvokeCommandAction Command="{Binding NavigateHomeCommand}" />
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Views/LoginView.xaml b/Software/Visual_Studio/FSE/Tango.FSE.UI/Views/LoginView.xaml
index 0ab9c5018..ca56e7b05 100644
--- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Views/LoginView.xaml
+++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Views/LoginView.xaml
@@ -50,7 +50,7 @@
<Run FontSize="10">v</Run><Run Text="{Binding ApplicationVersion,Mode=OneWay,FallbackValue='1.0.0'}"></Run>
</TextBlock>
</StackPanel>
- <Image Source="{StaticResource FSE_Machine_Full}" VerticalAlignment="Bottom" RenderOptions.BitmapScalingMode="Fant" Margin="0 0 0 150" MaxWidth="300" MinWidth="100" />
+ <Image Source="{StaticResource FSE_Machines_Full}" VerticalAlignment="Bottom" RenderOptions.BitmapScalingMode="Fant" Margin="0 0 0 150" MaxWidth="300" MinWidth="100" />
<Rectangle HorizontalAlignment="Right" StrokeThickness="1" Stroke="{StaticResource FSE_BorderBrush}" StrokeDashArray="5" />
</Grid>
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/ViewModels/MainViewVM.cs
index 47fe19a05..ab86d8356 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/ViewModels/MainViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/ViewModels/MainViewVM.cs
@@ -19,6 +19,7 @@ using System.IO;
using Tango.BL.ActionLogs;
using Tango.MachineStudio.Common.Authentication;
using Tango.BL.DTO;
+using Tango.BL.Enumerations;
namespace Tango.MachineStudio.HardwareDesigner.ViewModels
{
@@ -445,6 +446,8 @@ namespace Tango.MachineStudio.HardwareDesigner.ViewModels
await Task.Factory.StartNew(() =>
{
CurrentVersion.LastUpdated = DateTime.UtcNow;
+ CurrentVersion.UserName = _authentication.CurrentUser.Email;
+
_db.SaveChanges();
var dtoAfter = HardwareVersionDTO.FromObservable(CurrentVersion);
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Views/MainView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Views/MainView.xaml
index 9ee2ffee7..134d5d455 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Views/MainView.xaml
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Views/MainView.xaml
@@ -14,13 +14,14 @@
xmlns:vm="clr-namespace:Tango.MachineStudio.HardwareDesigner.ViewModels"
xmlns:observables="clr-namespace:Tango.BL.Entities;assembly=Tango.BL"
xmlns:global="clr-namespace:Tango.MachineStudio.HardwareDesigner"
+ xmlns:enumerations="clr-namespace:Tango.BL.Enumerations;assembly=Tango.BL"
mc:Ignorable="d"
d:DesignHeight="2000" d:DesignWidth="1280" d:DataContext="{d:DesignInstance Type=vm:MainViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.MainViewVM}">
<UserControl.Resources>
<converters:DoubleToIntConverter x:Key="DoubleToIntConverter" />
<converters:NullObjectToBooleanConverter x:Key="NullObjectToBooleanConverter" />
-
+ <converters:EnumToItemsSourceConverter x:Key="EnumToItemsSourceConverter" />
<Style TargetType="ListBox" x:Key="typesList" BasedOn="{StaticResource {x:Type ListBox}}">
<Setter Property="FontSize" Value="14"></Setter>
<Setter Property="ItemContainerStyle">
@@ -58,10 +59,11 @@
<TextBlock FontSize="30" FontStyle="Italic" VerticalAlignment="Center" Margin="50 10 10 0" Foreground="Silver" FontWeight="Bold">HARDWARE DESIGNER</TextBlock>
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" Margin="10 10 0 0">
<materialDesign:PackIcon Kind="Pencil" Width="32" Height="32" Foreground="Silver" />
- <controls:SearchComboBox IsEnabled="{Binding IsFree}" ItemsSource="{Binding HardwareVersions}" SelectedItem="{Binding SelectedVersion}" Width="300" SearchProperty="FullName" FontSize="16" FontWeight="Bold" Margin="5 0 0 0" materialDesign:HintAssist.Hint="Hardware Version">
+
+ <controls:SearchComboBox IsEnabled="{Binding IsFree}" ItemsSource="{Binding HardwareVersions}" SelectedItem="{Binding SelectedVersion}" Width="400" SearchProperty="FullName" FontSize="16" FontWeight="Bold" Margin="5 0 0 0" materialDesign:HintAssist.Hint="Hardware Version">
<ComboBox.ItemTemplate>
<DataTemplate>
- <TextBlock><Run Text="{Binding Name}"></Run> <Run></Run> <Run Foreground="{StaticResource MainWindow.Foreground}" FontSize="14">v</Run><Run Foreground="{StaticResource MainWindow.Foreground}" FontSize="14" Text="{Binding Version}"></Run></TextBlock>
+ <TextBlock><Run Text="{Binding Name}"></Run> <Run></Run> <Run Foreground="{StaticResource MainWindow.Foreground}" FontSize="14">v</Run><Run Foreground="{StaticResource MainWindow.Foreground}" FontSize="14" Text="{Binding Version}"></Run> <Run Foreground="{StaticResource AccentColorBrush}" FontSize="14" Text="{Binding ForMachineType}"></Run></TextBlock>
</DataTemplate>
</ComboBox.ItemTemplate>
</controls:SearchComboBox>
@@ -385,8 +387,12 @@
<TextBlock Margin="0 10 0 0" FontSize="10" Foreground="{StaticResource GrayBrush}">Name</TextBlock>
<TextBox Text="{Binding CurrentVersion.Name,UpdateSourceTrigger=PropertyChanged}"></TextBox>
+ <TextBlock Margin="0 20 0 0" FontSize="10" Foreground="{StaticResource GrayBrush}">Machine Type</TextBlock>
+ <ComboBox ItemsSource="{Binding Source={x:Type enumerations:MachineTypes},Converter={StaticResource EnumToItemsSourceConverter}}" SelectedValue="{Binding CurrentVersion.ForMachineType,Mode=TwoWay}" SelectedValuePath="Value" DisplayMemberPath="DisplayName"/>
+
<TextBlock Margin="0 20 0 0" FontSize="10" Foreground="{StaticResource GrayBrush}">Version</TextBlock>
<mahApps:NumericUpDown Minimum="0" BorderThickness="0 0 0 1" HorizontalContentAlignment="Left" Maximum="1000" HasDecimals="True" Value="{Binding CurrentVersion.Version}" Foreground="{StaticResource GrayBrush}"/>
+
</StackPanel>
</materialDesign:Card>
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models/MachineModel.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models/MachineModel.cs
index 8a2f5dd9f..38430e197 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models/MachineModel.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models/MachineModel.cs
@@ -4,6 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.BL.Entities;
+using Tango.BL.Enumerations;
using Tango.Core;
namespace Tango.MachineStudio.MachineDesigner.Models
@@ -12,6 +13,8 @@ namespace Tango.MachineStudio.MachineDesigner.Models
{
public String Guid { get; set; }
+ public MachineTypes MachineType { get; set; }
+
public String SerialNumber { get; set; }
public String Name { get; set; }
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MachineCreationDialogVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MachineCreationDialogVM.cs
index 168ff62dd..9d203b76d 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MachineCreationDialogVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MachineCreationDialogVM.cs
@@ -4,6 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.BL.Entities;
+using Tango.BL.Enumerations;
using Tango.SharedUI;
namespace Tango.MachineStudio.MachineDesigner.ViewModels
@@ -14,9 +15,24 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
public List<HardwareVersion> HardwareVersions { get; set; }
- public HardwareVersion SelectedHardwareVersion { get; set; }
+ public List<HardwareVersion> HardwareVersionsFiltered
+ {
+ get { return HardwareVersions.Where(x => x.MachineType == (int)MachineType).ToList(); }
+ }
+
+ private HardwareVersion _selectedHardwareVersion;
+ public HardwareVersion SelectedHardwareVersion
+ {
+ get { return _selectedHardwareVersion; }
+ set { _selectedHardwareVersion = value; RaisePropertyChangedAuto(); }
+ }
- public MachinePrototype SelectedPrototype { get; set; }
+ private MachinePrototype _selectedProtoType;
+ public MachinePrototype SelectedPrototype
+ {
+ get { return _selectedProtoType; }
+ set { _selectedProtoType = value; MachineType = (MachineTypes)value.MachineType; }
+ }
private bool _isNewMachine;
public bool IsNewMachine
@@ -32,6 +48,13 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
set { _serialNumber = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); }
}
+ private MachineTypes _machineType;
+ public MachineTypes MachineType
+ {
+ get { return _machineType; }
+ set { _machineType = value; RaisePropertyChanged(nameof(HardwareVersionsFiltered)); SelectedHardwareVersion = HardwareVersionsFiltered.FirstOrDefault(); }
+ }
+
private String _name;
public String Name
{
@@ -41,7 +64,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
protected override bool CanOK()
{
- return base.CanOK() && !String.IsNullOrWhiteSpace(SerialNumber) && !String.IsNullOrWhiteSpace(Name);
+ return base.CanOK() && !String.IsNullOrWhiteSpace(SerialNumber) && !String.IsNullOrWhiteSpace(Name) && SelectedHardwareVersion != null;
}
}
}
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs
index c31ea0a53..cad54c848 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs
@@ -540,6 +540,8 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
ActiveMachine.Configuration = new Configuration();
ActiveMachine.SerialNumber = machineCreationDialogVM.SerialNumber;
ActiveMachine.Name = machineCreationDialogVM.Name;
+ ActiveMachine.Type = machineCreationDialogVM.MachineType;
+ ActiveMachine.MachineVersion = ActiveMachineAdapter.MachineVersions.First(x => x.MachineType == machineCreationDialogVM.MachineType);
ActiveMachineAdapter.Context.Machines.Add(ActiveMachine);
}
else
@@ -548,7 +550,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
{
initHwConfig = false;
ActiveMachine = machineCreationDialogVM.SelectedPrototype.CreateMachine(machineCreationDialogVM.SerialNumber, machineCreationDialogVM.Name);
- ActiveMachine.MachineVersion = ActiveMachineAdapter.MachineVersions.FirstOrDefault(x => x.Guid == ActiveMachine.MachineVersionGuid);
+ ActiveMachine.MachineVersion = ActiveMachineAdapter.MachineVersions.First(x => x.MachineType == machineCreationDialogVM.MachineType);
if (machineCreationDialogVM.SelectedHardwareVersion != null)
{
@@ -713,6 +715,14 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
errors.Add("Hardware version is required.");
}
+ if (ActiveMachine.Configuration.HardwareVersion != null)
+ {
+ if (ActiveMachine.Configuration.HardwareVersion.ForMachineType != ActiveMachine.Type)
+ {
+ errors.Add($"Hardware version '{ActiveMachine.Configuration.HardwareVersion.Name}' is intended only for {ActiveMachine.Configuration.HardwareVersion.ForMachineType} machines.");
+ }
+ }
+
foreach (var pack in ActiveMachine.Configuration.IdsPacks)
{
if (pack.LiquidType != null || pack.CartridgeType != null || pack.Dispenser != null || pack.IdsPackFormula != null || pack.MidTankType != null)
@@ -853,7 +863,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
vm.IsNewMachine = true;
vm.Prototypes = prototypes.ToList();
vm.HardwareVersions = hardwareVersions.OrderByDescending(x => x.Version).ToList();
- vm.SelectedHardwareVersion = vm.HardwareVersions.FirstOrDefault();
+ vm.SelectedHardwareVersion = vm.HardwareVersions.Where(x => x.ForMachineType == MachineTypes.TS1800).FirstOrDefault();
_notification.ShowModalDialog<MachineCreationDialogVM, Views.MachineCreationDialog>(vm, (x) =>
{
using (ObservablesContext db = ObservablesContext.CreateDefault())
@@ -1013,6 +1023,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
{
x.Guid,
x.SerialNumber,
+ x.MachineType,
x.Name,
Organization = x.Organization.Name,
MachineVersion = x.MachineVersion.Name,
@@ -1030,6 +1041,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
MachineModel model = new MachineModel();
model.Guid = machine.Guid;
model.SerialNumber = machine.SerialNumber;
+ model.MachineType = (MachineTypes)machine.MachineType;
model.Name = machine.Name;
model.Organization = machine.Organization;
model.HardwareVersion = machine.HardwareVersionName + " v" + machine.HardwareVersionVersion;
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineCreationDialog.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineCreationDialog.xaml
index 8b3851036..8a4a9161b 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineCreationDialog.xaml
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineCreationDialog.xaml
@@ -8,11 +8,14 @@
xmlns:vm="clr-namespace:Tango.MachineStudio.MachineDesigner.ViewModels"
xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI"
xmlns:local="clr-namespace:Tango.MachineStudio.MachineDesigner.Views"
+ xmlns:enumerations="clr-namespace:Tango.BL.Enumerations;assembly=Tango.BL"
mc:Ignorable="d"
d:DesignHeight="400" d:DesignWidth="700" Height="460" Width="750" Background="{StaticResource Dialog.Background}" d:DataContext="{d:DesignInstance Type=vm:MachineCreationDialogVM, IsDesignTimeCreatable=False}" Foreground="{StaticResource Dialog.Foreground}">
<UserControl.Resources>
<converters:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"></converters:BooleanToVisibilityConverter>
+ <converters:EnumToItemsSourceConverter x:Key="EnumToItemsSourceConverter" />
+ <converters:IsNullToVisibilityInverseConverter x:Key="IsNullToVisibilityInverseConverter" />
</UserControl.Resources>
<Grid Margin="10">
@@ -20,7 +23,7 @@
<Grid DockPanel.Dock="Top">
<StackPanel Orientation="Horizontal">
<Grid>
- <Image Source="../Images/machine-full-fx.png" Width="120" RenderOptions.BitmapScalingMode="Fant"></Image>
+ <Image Source="{StaticResource Machines}" Width="120" RenderOptions.BitmapScalingMode="Fant"></Image>
<materialDesign:PackIcon HorizontalAlignment="Right" VerticalAlignment="Bottom" Margin="0 0 -10 -10" Kind="PlusCircle" Foreground="#15C315" Width="42" Height="42" />
</Grid>
<TextBlock Margin="30 0 0 0" VerticalAlignment="Bottom" FontSize="22">
@@ -52,11 +55,16 @@
<Grid>
<StackPanel HorizontalAlignment="Left" VerticalAlignment="Top" Margin="20 20 0 0" Width="400">
<TextBlock TextWrapping="Wrap" Visibility="{Binding IsNewMachine,Converter={StaticResource BooleanToVisibilityConverter}}">
- <Run>Specify a machine prototype to create the new machine with default settings and configuration.</Run>
+ <Run>Specify a machine prototype and machine type to create the new machine with default settings and configuration.</Run>
</TextBlock>
- <ComboBox Visibility="{Binding IsNewMachine,Converter={StaticResource BooleanToVisibilityConverter}}" ItemsSource="{Binding Prototypes}" SelectedItem="{Binding SelectedPrototype}" DisplayMemberPath="Name" Margin="0 10 0 0" FontSize="16" materialDesign:HintAssist.Hint="NONE"></ComboBox>
-
+ <DockPanel Visibility="{Binding IsNewMachine,Converter={StaticResource BooleanToVisibilityConverter}}" Margin="0 10 0 0">
+ <ComboBox x:Name="comboProto" Width="200" ItemsSource="{Binding Prototypes}" SelectedItem="{Binding SelectedPrototype}" DisplayMemberPath="Name" FontSize="16" materialDesign:HintAssist.Hint="NONE"></ComboBox>
+ <ComboBox Visibility="{Binding ElementName=comboProto,Path=SelectedItem,Converter={StaticResource IsNullToVisibilityInverseConverter}}" Margin="30 0 0 0" ItemsSource="{Binding Source={x:Type enumerations:MachineTypes},Converter={StaticResource EnumToItemsSourceConverter}}" FontSize="16" SelectedValue="{Binding MachineType,Mode=TwoWay}" SelectedValuePath="Value" DisplayMemberPath="DisplayName">
+
+ </ComboBox>
+ </DockPanel>
+
<TextBlock Margin="0 20 0 0" FontSize="10">Serial Number</TextBlock>
<TextBox Margin="0 2 0 0" Text="{Binding SerialNumber,UpdateSourceTrigger=PropertyChanged}"></TextBox>
@@ -65,7 +73,7 @@
<StackPanel Margin="0 20 0 0" Visibility="{Binding IsNewMachine,Converter={StaticResource BooleanToVisibilityConverter}}">
<TextBlock FontSize="10">Hardware Version</TextBlock>
- <ComboBox Margin="0 2 0 0" ItemsSource="{Binding HardwareVersions}" SelectedItem="{Binding SelectedHardwareVersion}" DisplayMemberPath="FullName"></ComboBox>
+ <ComboBox Margin="0 2 0 0" ItemsSource="{Binding HardwareVersionsFiltered}" SelectedItem="{Binding SelectedHardwareVersion}" DisplayMemberPath="FullName"></ComboBox>
</StackPanel>
</StackPanel>
</Grid>
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineSettingsView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineSettingsView.xaml
index 4ba79d3f5..852e60d0f 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineSettingsView.xaml
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineSettingsView.xaml
@@ -54,7 +54,7 @@
<ComboBox ItemsSource="{Binding Source={x:Type enumerations:HeadTypes},Converter={StaticResource EnumToItemsSourceConverter}}" SelectedValue="{Binding ActiveMachine.MachineHeadType}" SelectedValuePath="Value" DisplayMemberPath="DisplayName" Style="{StaticResource TransparentComboBoxStyle}"></ComboBox>
<TextBlock FontWeight="SemiBold">Machine Version</TextBlock>
- <ComboBox Background="Transparent" ItemsSource="{Binding ActiveMachineAdapter.MachineVersions}" SelectedItem="{Binding ActiveMachine.MachineVersion}" DisplayMemberPath="Name" Style="{StaticResource TransparentComboBoxStyle}" ></ComboBox>
+ <ComboBox IsEnabled="False" Background="Transparent" ItemsSource="{Binding ActiveMachineAdapter.MachineVersions}" SelectedItem="{Binding ActiveMachine.MachineVersion}" DisplayMemberPath="Name" Style="{StaticResource TransparentComboBoxStyle}" ></ComboBox>
<TextBlock FontWeight="SemiBold">Version Tag</TextBlock>
<ComboBox Background="Transparent" ItemsSource="{Binding Tags}" SelectedItem="{Binding ActiveMachine.VersionTag}" Style="{StaticResource TransparentComboBoxStyle}" ></ComboBox>
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachinesView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachinesView.xaml
index 5fda6dbfa..3c73ecc2b 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachinesView.xaml
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachinesView.xaml
@@ -22,7 +22,7 @@
<DockPanel Margin="100" MaxWidth="1200">
<Grid DockPanel.Dock="Top">
<StackPanel Orientation="Horizontal">
- <Image Source="../Images/machine-full-fx.png" Width="350" RenderOptions.BitmapScalingMode="Fant" Margin="10" />
+ <Image Source="{StaticResource Machines}" Width="350" RenderOptions.BitmapScalingMode="Fant" Margin="10" />
<StackPanel Orientation="Horizontal" VerticalAlignment="Bottom" Margin="0 0 0 10">
<materialDesign:PackIcon VerticalAlignment="Center" Kind="BarcodeScan" Width="32" Height="32" />
@@ -70,6 +70,7 @@
</Style>
</DataGrid.CellStyle>
<DataGrid.Columns>
+ <DataGridTextColumn Header="TYPE" Binding="{Binding MachineType}" Width="Auto" />
<DataGridTextColumn Header="SERIAL NUMBER" Binding="{Binding SerialNumber}" Width="Auto" />
<DataGridTextColumn Header="NAME" Binding="{Binding Name}" Width="Auto" />
<DataGridTextColumn Header="ORGANIZATION" Binding="{Binding Organization}" Width="Auto" />
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Models/RmlModel.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Models/RmlModel.cs
index b1be35a38..dce3432e2 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Models/RmlModel.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Models/RmlModel.cs
@@ -11,10 +11,16 @@ namespace Tango.MachineStudio.RML.Models
{
public class RmlModel : ExtendedObject
{
+ public class LiquidTypeColorValue
+ {
+ public int Color { get; set; }
+
+ public double LiquidTypeValue { get; set; }
+ }
public String Guid { get; set; }
public String Name { get; set; }
-
+
public String DisplayName { get; set; }
public String CCT { get; set; }
@@ -27,8 +33,23 @@ namespace Tango.MachineStudio.RML.Models
public String Btsr { get; set; }
+ public String DyeingSpeed { get; set; }
+
+ public String Zone1InkUptake { get; set; }
+
+ public String Zone2InkUptake { get; set; }
+
public DateTime LastUpdated { get; set; }
public List<int> LiquidTypes { get; set; }
+
+ public List<LiquidTypeColorValue> LiquidTypesR { get; set; }
+
+ public RmlModel()
+ {
+ DyeingSpeed = "-";
+ Zone1InkUptake = "-";
+ Zone2InkUptake = "-";
+ }
}
}
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/ViewModels/MainViewVM.cs
index fd276ea65..7eb6e9058 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/ViewModels/MainViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/ViewModels/MainViewVM.cs
@@ -28,6 +28,7 @@ using Tango.BL.Enumerations;
using Google.Protobuf;
using Tango.ColorConversion;
using Tango.CSV;
+using Tango.Core;
namespace Tango.MachineStudio.RML.ViewModels
{
@@ -345,18 +346,21 @@ namespace Tango.MachineStudio.RML.ViewModels
private async Task LoadRmls()
{
var filter = RMLFilter.ToStringOrEmpty().ToLower();
-
+
using (ObservablesContext db = ObservablesContext.CreateDefault())
{
+
var rmls = await db.Rmls.Where(x => x.Name.ToLower().Contains(filter) || x.DisplayName.ToLower().Contains(filter))
.Include(x => x.Cct.FileName)
+ .Include(x => x.LiquidTypesRmls)
.Include(x => x.LiquidTypesRmls.Select(y => y.LiquidType))
.Include(x => x.BtsrApplicationType.Name)
.Include(x => x.BtsrYarnType.Name)
+ .Include(x => x.ProcessParametersTablesGroups)
.Select(x => new
{
- x.Guid,
x.Name,
+ x.Guid,
x.DisplayName,
x.Cct.FileName,
x.ColorConversionVersion,
@@ -366,13 +370,44 @@ namespace Tango.MachineStudio.RML.ViewModels
x.LastUpdated,
BtsrApplicationType = x.BtsrApplicationType != null ? x.BtsrApplicationType.Name : String.Empty,
BtsrYarnType = x.BtsrYarnType != null ? x.BtsrYarnType.Name : String.Empty,
- LiquidTypes = x.LiquidTypesRmls.Select(y => y.LiquidType)
+ LiquidTypesRmls = x.LiquidTypesRmls,
+ LiquidTypes = x.LiquidTypesRmls.Select(y => y.LiquidType),
+ ProcessParametersTables = x.ProcessParametersTablesGroups
}).ToListAsync();
+
List<RmlModel> models = new List<RmlModel>();
+ //var tables = ActiveRML.GetActiveProcessGroup().ProcessParametersTables;
+
foreach (var rml in rmls.OrderBy(x => x.Name).ToList())
{
+ ProcessParametersTable tableZone1 = null;
+ ProcessParametersTable tableZone2 = null;
+ if (rml.ProcessParametersTables != null)
+ {
+ var activeTablesGroup = rml.ProcessParametersTables.Where(x=>x.Active).FirstOrDefault();
+ if ( activeTablesGroup != null)
+ {
+ try
+ {
+ var tables = await db.ProcessParametersTables.Where(x => x.ProcessParametersTablesGroupGuid == activeTablesGroup.Guid).OrderBy(x => x.TableIndex).ToListAsync();
+ if (tables.Count > 0)
+ {
+ tableZone1 = tables[0];
+ }
+ if (tables.Count > 1)
+ {
+ tableZone2 = tables[1];
+ }
+ }
+ catch (Exception ex)
+ {
+ LogManager.Log($"Error loading ProcessParametersTables {ex.Message}");
+ }
+ };
+ }
+
RmlModel model = new RmlModel();
model.Guid = rml.Guid;
model.Name = rml.Name;
@@ -383,8 +418,21 @@ namespace Tango.MachineStudio.RML.ViewModels
model.UseLightInks = rml.UseLightInks;
model.HeadType = (HeadTypes)rml.HeadType;
model.Btsr = (String.IsNullOrEmpty(rml.BtsrApplicationType) ? "N/A" : rml.BtsrApplicationType) + ", " + (String.IsNullOrEmpty(rml.BtsrYarnType) ? "N/A" : rml.BtsrYarnType);
- model.LiquidTypes = rml.LiquidTypes.OrderBy(x => x.Code).Select(x => x.Color).ToList();
+
+ if( tableZone1 != null)
+ {
+ model.Zone1InkUptake = String.Format($"{tableZone1.MinInkUptake}-{tableZone1.MaxInkUptake}");
+ model.DyeingSpeed = tableZone1.DyeingSpeed.ToString();
+ }
+ if(tableZone2 != null)
+ {
+ model.DyeingSpeed += String.Format($"-{tableZone2.DyeingSpeed}");
+ model.Zone2InkUptake = tableZone2 == null ? "-" : String.Format($"{tableZone2.MinInkUptake}-{tableZone2.MaxInkUptake}");
+ }
+ model.LiquidTypes = rml.LiquidTypes.OrderBy(x => x.Code).Select(x => x.Color).ToList();
+ model.LiquidTypesR = rml.LiquidTypesRmls.OrderBy(x => x.LiquidType.Code).ToList().Select((n) => new RmlModel.LiquidTypeColorValue(){ Color = n.LiquidType.Color, LiquidTypeValue = n.MaxNlPerCm }).ToList();
+
models.Add(model);
}
@@ -482,6 +530,11 @@ namespace Tango.MachineStudio.RML.ViewModels
}
ActiveProcessParametersGroup = ActiveRML.ProcessParametersTablesGroups.ToList().FirstOrDefault();
+
+ var tables= ActiveRML.ProcessParametersTablesGroups.ToList();
+ var zone1 = tables[0].ProcessParametersTables;
+ /*
+ * */
ActiveProcessParametersTableView = CollectionViewSource.GetDefaultView(ActiveProcessParametersGroup.ProcessParametersTables);
ActiveProcessParametersTableView.SortDescriptions.Add(new SortDescription(nameof(ProcessParametersTable.TableIndex), ListSortDirection.Ascending));
@@ -1075,10 +1128,10 @@ namespace Tango.MachineStudio.RML.ViewModels
}
}
- private void BackToRmls()
+ private async void BackToRmls()
{
View.NavigateTo(RmlNavigationView.RmlsView);
- LoadRmls();
+ await LoadRmls();
}
#region Batch Conversion
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlView.xaml
index 08af47ef4..8730355cc 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlView.xaml
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlView.xaml
@@ -5,6 +5,7 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:global="clr-namespace:Tango.MachineStudio.RML"
xmlns:enumerations="clr-namespace:Tango.BL.Enumerations;assembly=Tango.BL"
+ xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:observables="clr-namespace:Tango.BL.Entities;assembly=Tango.BL"
xmlns:shapes="clr-namespace:Tango.SharedUI.Shapes;assembly=Tango.SharedUI"
xmlns:controls="clr-namespace:Tango.SharedUI.Controls;assembly=Tango.SharedUI"
@@ -21,6 +22,14 @@
<UserControl.Resources>
<converters:ColorToIntegerConverter x:Key="ColorToIntegerConverter"></converters:ColorToIntegerConverter>
<converters:EnumToItemsSourceConverter x:Key="EnumToItemsSourceConverter"/>
+ <converters:EnumToDescriptionConverter x:Key="EnumToDescriptionConverter"/>
+
+ <ObjectDataProvider x:Key="Plies" ObjectType="{x:Type sys:Enum}" MethodName="GetValues">
+ <ObjectDataProvider.MethodParameters>
+ <x:Type TypeName="enumerations:Plies"/>
+ </ObjectDataProvider.MethodParameters>
+ </ObjectDataProvider>
+
</UserControl.Resources>
<Grid Margin="20">
@@ -94,45 +103,60 @@
<ComboBox ItemsSource="{Binding Purposes}" SelectedItem="{Binding ActiveRML.MediaPurpose,Mode=TwoWay}" DisplayMemberPath="Name"></ComboBox>
<TextBlock Text="Condition:" ></TextBlock>
- <ComboBox ItemsSource="{Binding Conditions}" SelectedItem="{Binding ActiveRML.MediaCondition,Mode=TwoWay}" DisplayMemberPath="Name"></ComboBox>
+ <ComboBox ItemsSource="{Binding Conditions}" SelectedItem="{Binding ActiveRML.MediaCondition,Mode=TwoWay}" DisplayMemberPath="Name"></ComboBox>-->
+
+
+ <TextBlock Text="Linear Density:" ></TextBlock>
+ <mahapps:NumericUpDown Minimum="0" Maximum="9999" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="False" HorizontalContentAlignment="Left" Value="{Binding ActiveRML.FiberSize,Mode=TwoWay}" FontSize="16"></mahapps:NumericUpDown>
- <TextBlock Text="Linear Mass Density Unit:" ></TextBlock>
+ <TextBlock Text="Linear Density Unit:" ></TextBlock>
<ComboBox ItemsSource="{Binding LinearMassDensityUnits}" SelectedItem="{Binding ActiveRML.LinearMassDensityUnit,Mode=TwoWay}" DisplayMemberPath="Name"></ComboBox>
- <TextBlock Text="Fiber Shape:" ></TextBlock>
- <ComboBox ItemsSource="{Binding FiberShapes}" SelectedItem="{Binding ActiveRML.FiberShape,Mode=TwoWay}" DisplayMemberPath="Name"></ComboBox>
+ <TextBlock Text="Plies:" ></TextBlock>
+ <ComboBox ItemsSource="{Binding Source={StaticResource Plies}}" SelectedItem="{Binding ActiveRML.RMLPlies, Mode=TwoWay}" >
+ <ComboBox.ItemTemplate>
+ <DataTemplate>
+ <TextBlock Text="{Binding Converter={StaticResource EnumToDescriptionConverter}}"></TextBlock>
+ </DataTemplate>
+ </ComboBox.ItemTemplate>
+ </ComboBox>
+
+ <TextBlock Text="Count (den):" ></TextBlock>
+ <TextBlock Text="{Binding ActiveRML.DencityCount}" Foreground="Blue" ></TextBlock>
- <TextBlock Text="Fiber Syntheses:" ></TextBlock>
- <ComboBox ItemsSource="{Binding FiberSynths}" SelectedItem="{Binding ActiveRML.FiberSynth,Mode=TwoWay}" DisplayMemberPath="Name"></ComboBox>
+
+ <!--<TextBlock Text="Fiber Shape:" ></TextBlock>
+ <ComboBox ItemsSource="{Binding FiberShapes}" SelectedItem="{Binding ActiveRML.FiberShape,Mode=TwoWay}" DisplayMemberPath="Name"></ComboBox>-->
- <TextBlock Text="Fiber Size:" ></TextBlock>
- <mahapps:NumericUpDown Minimum="0" Maximum="10000" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="True" HorizontalContentAlignment="Left" Value="{Binding ActiveRML.FiberSize,Mode=TwoWay}"></mahapps:NumericUpDown>
+ <!--<TextBlock Text="Fiber Syntheses:" ></TextBlock>
+ <ComboBox ItemsSource="{Binding FiberSynths}" SelectedItem="{Binding ActiveRML.FiberSynth,Mode=TwoWay}" DisplayMemberPath="Name"></ComboBox>-->
- <TextBlock Text="Fibers Count:" ></TextBlock>
- <mahapps:NumericUpDown Minimum="0" Maximum="10000" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="False" HorizontalContentAlignment="Left" Value="{Binding ActiveRML.NumberOfFibers,Mode=TwoWay}"></mahapps:NumericUpDown>
+ <!--<TextBlock Text="Fiber Size:" ></TextBlock>
+ <mahapps:NumericUpDown Minimum="0" Maximum="10000" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="True" HorizontalContentAlignment="Left" Value="{Binding ActiveRML.FiberSize,Mode=TwoWay}"></mahapps:NumericUpDown>-->
- <TextBlock Text="Plies Per Fiber:" ></TextBlock>
- <mahapps:NumericUpDown Minimum="0" Maximum="10000" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="False" HorizontalContentAlignment="Left" Value="{Binding ActiveRML.PliesPerFiber,Mode=TwoWay}"></mahapps:NumericUpDown>
+ <!--<TextBlock Text="Fibers Count:" ></TextBlock>
+ <mahapps:NumericUpDown Minimum="0" Maximum="10000" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="False" HorizontalContentAlignment="Left" Value="{Binding ActiveRML.NumberOfFibers,Mode=TwoWay}"></mahapps:NumericUpDown>-->
- <TextBlock Text="Plies Per Thread:" ></TextBlock>
- <mahapps:NumericUpDown Minimum="0" Maximum="10000" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="False" HorizontalContentAlignment="Left" Value="{Binding ActiveRML.PliesPerThread,Mode=TwoWay}"></mahapps:NumericUpDown>
+ <!--<TextBlock Text="Plies Per Thread:" ></TextBlock>
+ <mahapps:NumericUpDown Minimum="0" Maximum="10000" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="False" HorizontalContentAlignment="Left" Value="{Binding ActiveRML.PliesPerThread,Mode=TwoWay}"></mahapps:NumericUpDown>-->
+
- <TextBlock Text="Tensile Strength:" ></TextBlock>
+ <!--<TextBlock Text="Tensile Strength:" ></TextBlock>
<mahapps:NumericUpDown Minimum="0" Maximum="10000" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="True" HorizontalContentAlignment="Left" Value="{Binding ActiveRML.TensileStrength,Mode=TwoWay}"></mahapps:NumericUpDown>
<TextBlock Text="Elongation Break Percentage:" ></TextBlock>
- <mahapps:NumericUpDown Minimum="0" Maximum="10000" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="True" HorizontalContentAlignment="Left" Value="{Binding ActiveRML.ElongationAtBreakPercentage,Mode=TwoWay}"></mahapps:NumericUpDown>
+ <mahapps:NumericUpDown Minimum="0" Maximum="10000" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="True" HorizontalContentAlignment="Left" Value="{Binding ActiveRML.ElongationAtBreakPercentage,Mode=TwoWay}"></mahapps:NumericUpDown>-->
- <TextBlock Text="Estimated Thread Diameter:" ></TextBlock>
- <mahapps:NumericUpDown Minimum="0" Maximum="10000" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="True" HorizontalContentAlignment="Left" Value="{Binding ActiveRML.EstimatedThreadDiameter,Mode=TwoWay}"></mahapps:NumericUpDown>
+ <!--<TextBlock Text="Estimated Thread Diameter:" ></TextBlock>
+ <mahapps:NumericUpDown Minimum="0" Maximum="10000" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="True" HorizontalContentAlignment="Left" Value="{Binding ActiveRML.EstimatedThreadDiameter,Mode=TwoWay}"></mahapps:NumericUpDown>-->
- <TextBlock Text="Twisted:" ></TextBlock>
+ <!--<TextBlock Text="Twisted:" ></TextBlock>
<ToggleButton HorizontalAlignment="Right" IsChecked="{Binding ActiveRML.Twisted}" Style="{StaticResource MaterialDesignSwitchToggleButton}" />
<TextBlock Text="Air Entanglement:" ></TextBlock>
- <ToggleButton HorizontalAlignment="Right" IsChecked="{Binding ActiveRML.AirEntanglement}" Style="{StaticResource MaterialDesignSwitchToggleButton}" />
+ <ToggleButton HorizontalAlignment="Right" IsChecked="{Binding ActiveRML.AirEntanglement}" Style="{StaticResource MaterialDesignSwitchToggleButton}" />-->
- <TextBlock Text="Lubricant:" ></TextBlock>
+ <!--<TextBlock Text="Lubricant:" ></TextBlock>
<ToggleButton HorizontalAlignment="Right" IsChecked="{Binding ActiveRML.Lubricant}" Style="{StaticResource MaterialDesignSwitchToggleButton}" />-->
</controls:TableGrid>
</DockPanel>
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlsView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlsView.xaml
index d5f4165c9..9c684c052 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlsView.xaml
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlsView.xaml
@@ -81,7 +81,7 @@
</StackPanel>
</Grid>
<Grid>
- <DataGrid Margin="0 0 0 10" BorderBrush="Silver" IsReadOnly="True" BorderThickness="1" SelectionUnit="FullRow" RowHeight="60" Background="{StaticResource TransparentBackgroundBrush}" AlternatingRowBackground="{StaticResource Transparent200}" AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False" ItemsSource="{Binding Rmls}" SelectedItem="{Binding SelectedRML}" HorizontalScrollBarVisibility="Disabled">
+ <DataGrid Margin="0 0 0 10" BorderBrush="Silver" IsReadOnly="True" BorderThickness="1" SelectionUnit="FullRow" RowHeight="60" Background="{StaticResource TransparentBackgroundBrush}" AlternatingRowBackground="{StaticResource Transparent200}" AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False" ItemsSource="{Binding Rmls}" SelectedItem="{Binding SelectedRML}" HorizontalScrollBarVisibility="Disabled" EnableRowVirtualization="False">
<DataGrid.CellStyle>
<Style TargetType="DataGridCell" BasedOn="{StaticResource {x:Type DataGridCell}}">
<Setter Property="BorderThickness" Value="0"/>
@@ -90,31 +90,34 @@
</Style>
</DataGrid.CellStyle>
<DataGrid.Columns>
- <DataGridTemplateColumn Header="NAME" Width="200">
+ <DataGridTemplateColumn Header="NAME" Width="220">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel>
- <TextBlock Text="{Binding Name}"></TextBlock>
- <TextBlock Visibility="{Binding DisplayName,Converter={StaticResource IsNullToVisibilityConverter}}" FontSize="11" Foreground="{StaticResource GrayBrush}" Margin="2 2 0 0">
+ <TextBlock Text="{Binding Name}" TextTrimming="CharacterEllipsis"></TextBlock>
+ <TextBlock Visibility="{Binding DisplayName,Converter={StaticResource IsNullToVisibilityConverter}}" FontSize="11" Foreground="{StaticResource GrayBrush}" Margin="2 2 0 0" TextTrimming="CharacterEllipsis">
<Run>(</Run><Run Text="{Binding DisplayName,Mode=OneWay}"></Run><Run>)</Run>
</TextBlock>
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
- <DataGridTextColumn Header="HEAD" Binding="{Binding HeadType}" Width="Auto" />
- <DataGridTextColumn Header="BTSR" Binding="{Binding Btsr}" Width="Auto" />
+ <DataGridTextColumn Header="Dyeing speed" Width="Auto" Binding="{Binding DyeingSpeed}"></DataGridTextColumn>
+ <DataGridTextColumn Header="Zone1 ink uptake" Width="Auto" Binding="{Binding Zone1InkUptake}"></DataGridTextColumn>
+ <DataGridTextColumn Header="Zone2 ink uptake" Width="Auto" Binding="{Binding Zone2InkUptake}"></DataGridTextColumn>
+ <!--<DataGridTextColumn Header="HEAD" Binding="{Binding HeadType}" Width="Auto" />-->
+ <!--<DataGridTextColumn Header="BTSR" Binding="{Binding Btsr}" Width="Auto" />-->
<DataGridTextColumn Header="CCT" Binding="{Binding CCT}" Width="Auto" />
- <DataGridTextColumn Header="CL GR" Binding="{Binding UseGradients,Converter={StaticResource BooleanToYesNoConverter}}" Width="Auto" />
- <DataGridTextColumn Header="LIGHT INKS" Binding="{Binding UseLightInks,Converter={StaticResource BooleanToYesNoConverter}}" Width="Auto" />
+ <!--<DataGridTextColumn Header="CL GR" Binding="{Binding UseGradients,Converter={StaticResource BooleanToYesNoConverter}}" Width="Auto" />-->
+ <!--<DataGridTextColumn Header="LIGHT INKS" Binding="{Binding UseLightInks,Converter={StaticResource BooleanToYesNoConverter}}" Width="Auto" />-->
<DataGridTextColumn Header="LAST UPDATED" Binding="{Binding LastUpdated,Converter={StaticResource DateTimeUTCToShortDateTimeConverter}}" Width="Auto" />
<DataGridTemplateColumn Header="LIQUID FACTORS" Width="1*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
- <ItemsControl ItemsSource="{Binding LiquidTypes}" Margin="0 -5 0 0">
+ <ItemsControl ItemsSource="{Binding LiquidTypesR}" Margin="0 -5 0 0">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
- <StackPanel HorizontalAlignment="Left" Orientation="Horizontal" IsItemsHost="True"></StackPanel>
+ <StackPanel HorizontalAlignment="Left" Orientation="Horizontal" IsItemsHost="True" ></StackPanel>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
@@ -123,11 +126,12 @@
<shapes:Hexagon StrokeThickness="1" Stroke="Gray">
<shapes:Hexagon.Fill>
<LinearGradientBrush Opacity="0.7" >
- <GradientStop Color="{Binding Converter={StaticResource ColorToIntegerConverter}}"/>
+ <GradientStop Color="{Binding Color, Converter={StaticResource ColorToIntegerConverter}}"/>
<GradientStop Color="White" Offset="1"/>
</LinearGradientBrush>
</shapes:Hexagon.Fill>
</shapes:Hexagon>
+ <TextBlock Text="{Binding LiquidTypeValue, TargetNullValue=0}" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="9"></TextBlock>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/MachineConnectionIcon.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/MachineConnectionIcon.xaml
new file mode 100644
index 000000000..bfcf221c9
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/MachineConnectionIcon.xaml
@@ -0,0 +1,48 @@
+<UserControl x:Class="Tango.MachineStudio.Common.Controls.MachineConnectionIcon"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:local="clr-namespace:Tango.MachineStudio.Common.Controls"
+ mc:Ignorable="d"
+ d:DesignHeight="45" d:DesignWidth="45" d:DataContext="{d:DesignInstance Type=local:MachineConnectionIcon,IsDesignTimeCreatable=False}">
+ <Grid DataContext="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}}">
+ <Image Margin="0 5 5 0" RenderOptions.BitmapScalingMode="Fant">
+ <Image.Style>
+ <Style TargetType="Image">
+ <Setter Property="Source" Value="../Images/Connections/ts1800.png"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding MachineType}" Value="Eureka">
+ <Setter Property="Source" Value="../Images/Connections/eureka.png"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Image.Style>
+ </Image>
+
+ <Image RenderOptions.BitmapScalingMode="Fant" Width="20" VerticalAlignment="Top" HorizontalAlignment="Right">
+ <Image.Style>
+ <Style TargetType="Image">
+ <Setter Property="Source" Value="../Images/Connections/usb.png"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding ExternalBridgeClientType}" Value="Usb">
+ <Setter Property="Source" Value="../Images/Connections/usb.png"></Setter>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding ExternalBridgeClientType}" Value="Tcp">
+ <Setter Property="Source" Value="../Images/Connections/tcp.png"></Setter>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding ExternalBridgeClientType}" Value="Wifi">
+ <Setter Property="Source" Value="../Images/Connections/wifi.png"></Setter>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding ExternalBridgeClientType}" Value="SignalR">
+ <Setter Property="Source" Value="../Images/Connections/signalr.png"></Setter>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding ExternalBridgeClientType}" Value="Emulator">
+ <Setter Property="Source" Value="../Images/Connections/emulator.png"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Image.Style>
+ </Image>
+ </Grid>
+</UserControl>
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/MachineConnectionIcon.xaml.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/MachineConnectionIcon.xaml.cs
new file mode 100644
index 000000000..6f754e306
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/MachineConnectionIcon.xaml.cs
@@ -0,0 +1,94 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using Tango.BL.Enumerations;
+using Tango.Emulations.ExternalBridge;
+using Tango.Integration.ExternalBridge;
+
+namespace Tango.MachineStudio.Common.Controls
+{
+ public enum ExternalBridgeClientType
+ {
+ Usb,
+ Tcp,
+ Wifi,
+ SignalR,
+ Emulator,
+ }
+
+ /// <summary>
+ /// Interaction logic for MachineConnectionIcon.xaml
+ /// </summary>
+ public partial class MachineConnectionIcon : UserControl
+ {
+ public MachineTypes MachineType
+ {
+ get { return (MachineTypes)GetValue(MachineTypeProperty); }
+ set { SetValue(MachineTypeProperty, value); }
+ }
+ public static readonly DependencyProperty MachineTypeProperty =
+ DependencyProperty.Register("MachineType", typeof(MachineTypes), typeof(MachineConnectionIcon), new PropertyMetadata(MachineTypes.TS1800));
+
+ public IExternalBridgeClient ExternalBridgeClient
+ {
+ get { return (IExternalBridgeClient)GetValue(ExternalBridgeClientProperty); }
+ set { SetValue(ExternalBridgeClientProperty, value); }
+ }
+ public static readonly DependencyProperty ExternalBridgeClientProperty =
+ DependencyProperty.Register("ExternalBridgeClient", typeof(IExternalBridgeClient), typeof(MachineConnectionIcon), new PropertyMetadata((d,e) => (d as MachineConnectionIcon).OnExternalBridgeClientChanged()));
+
+ public ExternalBridgeClientType ExternalBridgeClientType
+ {
+ get { return (ExternalBridgeClientType)GetValue(ExternalBridgeClientTypeProperty); }
+ set { SetValue(ExternalBridgeClientTypeProperty, value); }
+ }
+ public static readonly DependencyProperty ExternalBridgeClientTypeProperty =
+ DependencyProperty.Register("ExternalBridgeClientType", typeof(ExternalBridgeClientType), typeof(MachineConnectionIcon), new PropertyMetadata(ExternalBridgeClientType.Usb));
+
+ private void OnExternalBridgeClientChanged()
+ {
+ if (ExternalBridgeClient != null)
+ {
+ if (ExternalBridgeClient.GetType() == typeof(ExternalBridgeUsbClient))
+ {
+ ExternalBridgeClientType = ExternalBridgeClientType.Usb;
+ }
+ else if (ExternalBridgeClient.GetType() == typeof(ExternalBridgeTcpFirmwareClient))
+ {
+ ExternalBridgeClientType = ExternalBridgeClientType.Tcp;
+ MachineType = MachineTypes.Eureka;
+ }
+ else if (ExternalBridgeClient.GetType() == typeof(ExternalBridgeTcpClient))
+ {
+ ExternalBridgeClientType = ExternalBridgeClientType.Wifi;
+ MachineType = ExternalBridgeClient.MachineType;
+ }
+ else if (ExternalBridgeClient.GetType() == typeof(ExternalBridgeSignalRClient))
+ {
+ ExternalBridgeClientType = ExternalBridgeClientType.SignalR;
+ MachineType = ExternalBridgeClient.MachineType;
+ }
+ else if (ExternalBridgeClient.GetType() == typeof(EmulatorExternalBridge))
+ {
+ ExternalBridgeClientType = ExternalBridgeClientType.Emulator;
+ }
+ }
+ }
+
+ public MachineConnectionIcon()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/emulator.png b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/emulator.png
new file mode 100644
index 000000000..cd3478ab2
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/emulator.png
Binary files differ
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/eureka.png b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/eureka.png
new file mode 100644
index 000000000..212d391d4
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/eureka.png
Binary files differ
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/signalr.png b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/signalr.png
new file mode 100644
index 000000000..20d329640
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/signalr.png
Binary files differ
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/tcp.png b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/tcp.png
new file mode 100644
index 000000000..a19a64fec
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/tcp.png
Binary files differ
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/ts1800.png b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/ts1800.png
new file mode 100644
index 000000000..116e1e9c7
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/ts1800.png
Binary files differ
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/usb.png b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/usb.png
new file mode 100644
index 000000000..d0b917b44
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/usb.png
Binary files differ
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/wifi.png b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/wifi.png
new file mode 100644
index 000000000..8c4bfebc4
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/Connections/wifi.png
Binary files differ
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/eureka_full.png b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/eureka_full.png
new file mode 100644
index 000000000..484bb2ac1
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/eureka_full.png
Binary files differ
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/eureka_small.png b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/eureka_small.png
new file mode 100644
index 000000000..c9da4ae29
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/eureka_small.png
Binary files differ
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/machines.png b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/machines.png
new file mode 100644
index 000000000..788d1e67b
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Images/machines.png
Binary files differ
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs
index 25dfc2dc8..6ae71d50d 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs
@@ -9,6 +9,7 @@ using Tango.BL;
using Tango.Integration.Operation;
using Tango.Logging;
using Tango.MachineStudio.Common.Web;
+using Tango.PMR.Common;
using Tango.PMR.Printing;
using Tango.Settings;
using Tango.Transport.Adapters;
@@ -178,6 +179,8 @@ namespace Tango.MachineStudio.Common
/// </summary>
public MachineStudioTheme Theme { get; set; }
+ public int LastConnectedMachineType { get; set; }
+
/// <summary>
/// Initializes a new instance of the <see cref="MachineStudio"/> class.
/// </summary>
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Resources/MaterialDesign.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Resources/MaterialDesign.xaml
index d8e2017ec..bd35677d2 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Resources/MaterialDesign.xaml
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Resources/MaterialDesign.xaml
@@ -73,6 +73,9 @@
<ResourceDictionary>
<BitmapImage x:Key="MachineBig" UriSource="../Images/machine_new.png"></BitmapImage>
<BitmapImage x:Key="MachineSmall" UriSource="../Images/machine_new_small.png"></BitmapImage>
+ <BitmapImage x:Key="MachineEurekaSmall" UriSource="../Images/eureka_small.png"></BitmapImage>
+ <BitmapImage x:Key="MachineEurekaFull" UriSource="../Images/eureka_full.png"></BitmapImage>
+ <BitmapImage x:Key="Machines" UriSource="../Images/machines.png"></BitmapImage>
</ResourceDictionary>
<!--Styles-->
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj
index a14bb4e2a..af0d6aab8 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj
@@ -93,6 +93,9 @@
<Link>GlobalVersionInfo.cs</Link>
</Compile>
<Compile Include="Authentication\AuthenticationLoginResult.cs" />
+ <Compile Include="Controls\MachineConnectionIcon.xaml.cs">
+ <DependentUpon>MachineConnectionIcon.xaml</DependentUpon>
+ </Compile>
<Compile Include="Controls\MachineView.xaml.cs">
<DependentUpon>MachineView.xaml</DependentUpon>
</Compile>
@@ -189,6 +192,10 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
+ <Page Include="Controls\MachineConnectionIcon.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
<Page Include="Controls\MachineView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
@@ -298,6 +305,10 @@
<Project>{de2f2b86-025b-4f26-83a4-38bd48224ed5}</Project>
<Name>Tango.Editors</Name>
</ProjectReference>
+ <ProjectReference Include="..\..\Tango.Emulations\Tango.Emulations.csproj">
+ <Project>{63561e19-ff5a-414b-a5ef-e30711543e1d}</Project>
+ <Name>Tango.Emulations</Name>
+ </ProjectReference>
<ProjectReference Include="..\..\Tango.Git\Tango.Git.csproj">
<Project>{99081c0e-065c-4d68-bf60-f82330cca02d}</Project>
<Name>Tango.Git</Name>
@@ -428,10 +439,24 @@
<ItemGroup>
<Resource Include="Images\machine_new_small.png" />
</ItemGroup>
+ <ItemGroup>
+ <Resource Include="Images\Connections\usb.png" />
+ <Resource Include="Images\Connections\emulator.png" />
+ <Resource Include="Images\Connections\eureka.png" />
+ <Resource Include="Images\Connections\signalr.png" />
+ <Resource Include="Images\Connections\tcp.png" />
+ <Resource Include="Images\Connections\ts1800.png" />
+ <Resource Include="Images\Connections\wifi.png" />
+ </ItemGroup>
+ <ItemGroup>
+ <Resource Include="Images\eureka_full.png" />
+ <Resource Include="Images\eureka_small.png" />
+ <Resource Include="Images\machines.png" />
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<ProjectExtensions>
<VisualStudio>
- <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" />
+ <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" />
</VisualStudio>
</ProjectExtensions>
<PropertyGroup>
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Images/external-bridge-lan.png b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Images/external-bridge-lan.png
new file mode 100644
index 000000000..461b29b75
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Images/external-bridge-lan.png
Binary files differ
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Properties/AssemblyInfo.cs
index 2a49c1d8d..90fab6ad9 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Properties/AssemblyInfo.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Properties/AssemblyInfo.cs
@@ -4,5 +4,5 @@ using System.Runtime.InteropServices;
[assembly: System.Windows.ThemeInfo(System.Windows.ResourceDictionaryLocation.None, System.Windows.ResourceDictionaryLocation.SourceAssembly)]
[assembly: AssemblyTitle("Tango - Machine Studio")]
-[assembly: AssemblyVersion("4.9.9.0")]
+[assembly: AssemblyVersion("5.9.0.0")]
[assembly: ComVisible(false)] \ No newline at end of file
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs
index feed9e193..2efe4c719 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs
@@ -395,10 +395,14 @@ namespace Tango.MachineStudio.UI.StudioApplication
throw new NullReferenceException($"The specified machine '{connectedMachine.SerialNumber}' could not be found on the database.");
}
+ //Adjust Dryer Buffer Length Mode
+ ProcessParametersTable.DryerBufferMode = Machine.Type;
+
connectedMachine.SetMachine(Machine);
ConnectedMachine = connectedMachine;
var settings = SettingsManager.Default.GetOrCreate<MachineStudioSettings>();
ConnectedMachine.JobUploadStrategy = settings.JobUploadStrategy;
+ settings.LastConnectedMachineType = Machine.MachineType;
}
else
{
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/TFS/TeamFoundationServiceExtendedClient.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/TFS/TeamFoundationServiceExtendedClient.cs
index b716ed1fb..7a0a9414c 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/TFS/TeamFoundationServiceExtendedClient.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/TFS/TeamFoundationServiceExtendedClient.cs
@@ -152,6 +152,8 @@ namespace Tango.MachineStudio.UI.TFS
throw LogManager.Default.Log(new AuthenticationException($"User '{user_email}' is not part of the Tango VSTS team. Please contact your administrator."));
}
+ var settings = SettingsManager.Default.GetOrCreate<MachineStudioSettings>();
+
item.CreatedBy = currentUser;
item.ChangedBy = currentUser;
item.AuthorizedAs = currentUser;
@@ -161,7 +163,8 @@ namespace Tango.MachineStudio.UI.TFS
item.Severity = Severity.Medium;
item.State = State.New;
item.Type = WorkItemType.Bug;
- item.Environment = SettingsManager.Default.GetOrCreate<MachineStudioSettings>().DeploymentSlot.ToDescription();
+ item.Environment = settings.DeploymentSlot.ToDescription();
+ item.MachineType = (MachineType)settings.LastConnectedMachineType;
foreach (var window in Application.Current.Windows.OfType<Window>().Where(x => !String.IsNullOrWhiteSpace(x.Title)))
{
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj
index eca12dfef..4dbcbf600 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj
@@ -360,6 +360,7 @@
<Link>TCC\template.bmp</Link>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
+ <Resource Include="Images\external-bridge-lan.png" />
<Resource Include="Images\login_white.png" />
<Resource Include="Images\login.png" />
<Resource Include="Images\active_directory.png" />
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MachineConnectionViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MachineConnectionViewVM.cs
index c7c8335f0..511733984 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MachineConnectionViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MachineConnectionViewVM.cs
@@ -21,6 +21,8 @@ namespace Tango.MachineStudio.UI.ViewModels
/// <seealso cref="Tango.MachineStudio.Common.Notifications.DialogViewVM" />
public class MachineConnectionViewVM : DialogViewVM
{
+ private ExternalBridgeTcpFirmwareClient _firmwareTcpClient;
+
private static ExternalBridgeScanner _scanner;
public ExternalBridgeScanner Scanner
{
@@ -107,7 +109,7 @@ namespace Tango.MachineStudio.UI.ViewModels
/// <summary>
/// Called when the dialog has been shown.
/// </summary>
- public override void OnShow()
+ public async override void OnShow()
{
base.OnShow();
@@ -123,9 +125,12 @@ namespace Tango.MachineStudio.UI.ViewModels
_emulator.Disconnect();
}
_emulator = new EmulatorExternalBridge();
+ _scanner.AvailableMachines.Add(_emulator);
}
- _scanner.AvailableMachines.Add(_emulator);
+ _firmwareTcpClient = new ExternalBridgeTcpFirmwareClient();
+ _scanner.AvailableMachines.Add(_firmwareTcpClient);
+
_scanner.Start();
}
catch (Exception ex)
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs
index 0550383fb..293cccec4 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs
@@ -478,13 +478,12 @@ namespace Tango.MachineStudio.UI.ViewModels
x.SelectedMachine.JobUnitsMethod = _settings.JobUnitsMethod;
x.SelectedMachine.JobRunsLogger.JobSource = BL.Enumerations.JobSource.Remote;
- if (x.SelectedMachine is ExternalBridgeTcpClient)
+ if (x.SelectedMachine is ExternalBridgeTcpClient && x.SelectedMachine.GetType() != typeof(ExternalBridgeTcpFirmwareClient))
{
x.SelectedMachine.As<ExternalBridgeTcpClient>().EnableApplicationLogs = x.EnableApplicationLogs;
x.SelectedMachine.RequestTimeout = _settings.ExternalBridgeRequestTimeout;
x.SelectedMachine.ContinuousRequestTimeout = _settings.ExternalBridgeContinuousRequestTimeout;
}
-
if (x.SelectedMachine.Adapter is TcpTransportAdapter)
{
(x.SelectedMachine.Adapter as TcpTransportAdapter).WriteMode = _settings.TcpTransportAdapterWriteMode;
@@ -581,6 +580,7 @@ namespace Tango.MachineStudio.UI.ViewModels
{
_reconnectionMachine = client;
+ client.MachineType = machine.Type; //In case trying to connect to Eureka on USB.
await client.Connect();
client.SerialNumber = machine.SerialNumber;
ApplicationManager.SetConnectedMachine(client);
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ConnectedMachineView.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ConnectedMachineView.xaml
index 600104095..f7751958a 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ConnectedMachineView.xaml
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ConnectedMachineView.xaml
@@ -9,6 +9,7 @@
xmlns:emulations="clr-namespace:Tango.Emulations.ExternalBridge;assembly=Tango.Emulations"
xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI"
xmlns:controls="clr-namespace:Tango.SharedUI.Controls;assembly=Tango.SharedUI"
+ xmlns:commonControls="clr-namespace:Tango.MachineStudio.Common.Controls;assembly=Tango.MachineStudio.Common"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Tango.MachineStudio.UI.Views"
mc:Ignorable="d"
@@ -32,25 +33,7 @@
<Grid>
<StackPanel Orientation="Horizontal" Margin="10">
- <ContentControl Content="{Binding ApplicationManager.ConnectedMachine}">
- <ContentControl.Resources>
- <DataTemplate DataType="{x:Type integration:ExternalBridgeSignalRClient}">
- <Image Source="/Images/external-bridge-signalr.png" Width="48" Height="48" RenderOptions.BitmapScalingMode="Fant"></Image>
- </DataTemplate>
-
- <DataTemplate DataType="{x:Type integration:ExternalBridgeTcpClient}">
- <Image Source="/Images/external-bridge-tcp.png" Width="48" Height="48" RenderOptions.BitmapScalingMode="Fant"></Image>
- </DataTemplate>
-
- <DataTemplate DataType="{x:Type integration:ExternalBridgeUsbClient}">
- <Image Source="/Images/external-bridge-usb.png" Width="48" Height="48" RenderOptions.BitmapScalingMode="Fant"></Image>
- </DataTemplate>
-
- <DataTemplate DataType="{x:Type emulations:EmulatorExternalBridge}">
- <Image Source="/Images/external-bridge-emulator.png" Width="48" Height="48" RenderOptions.BitmapScalingMode="Fant"></Image>
- </DataTemplate>
- </ContentControl.Resources>
- </ContentControl>
+ <commonControls:MachineConnectionIcon ExternalBridgeClient="{Binding ApplicationManager.ConnectedMachine}" />
<TextBlock Text="Machine Connection" VerticalAlignment="Center" Margin="10 0 0 0" FontSize="20"></TextBlock>
</StackPanel>
@@ -222,6 +205,47 @@
</controls:TableGrid>
</DataTemplate>
+ <DataTemplate DataType="{x:Type integration:ExternalBridgeTcpFirmwareClient}">
+ <controls:TableGrid RowHeight="22">
+ <TextBlock FontWeight="SemiBold" Text="Serial Number:" />
+ <TextBlock Text="{Binding SerialNumber}" />
+ <TextBlock FontWeight="SemiBold" Text="Name:" />
+ <TextBlock Text="{Binding Machine.Name}" />
+ <TextBlock FontWeight="SemiBold" Text="Organization:" />
+ <TextBlock Text="{Binding Machine.Organization.Name}" />
+ <TextBlock FontWeight="SemiBold" Text="Total Dye Time:" />
+ <TextBlock Text="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.TotalMachineWorkTime}" />
+ <TextBlock FontWeight="SemiBold" Text="Total Dye Meters:" />
+ <TextBlock Text="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.TotalMachineMeters}" />
+ <TextBlock FontWeight="SemiBold" Text="Embedded Software Version:" />
+ <TextBlock Text="{Binding DeviceInformation.Version}" />
+ <TextBlock FontWeight="SemiBold" Text="IP Address:" />
+ <TextBlock Text="{Binding IPAddress}" />
+ <TextBlock FontWeight="SemiBold" Text="Total Bytes Sent:" />
+ <TextBlock Text="{Binding Adapter.TotalBytesSent,Converter={StaticResource ByteArrayToFileSizeConverter},Mode=OneWay}" />
+ <TextBlock FontWeight="SemiBold" Text="Total Bytes Received:" />
+ <TextBlock Text="{Binding Adapter.TotalBytesReceived,Converter={StaticResource ByteArrayToFileSizeConverter},Mode=OneWay}" />
+ <TextBlock FontWeight="SemiBold" Text="Transfer Rate:" />
+ <TextBlock>
+ <Run Text="{Binding Adapter.TransferRate,Converter={StaticResource ByteArrayToFileSizeConverter},Mode=OneWay}"></Run>
+ <Run Text="/ sec"></Run>
+ </TextBlock>
+ <TextBlock FontWeight="SemiBold" Text="Diagnostics Frame Rate:" />
+ <TextBlock>
+ <Run Text="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.DiagnosticsFrameProvider.FrameRate,Mode=OneWay,IsAsync=True}"></Run>
+ <Run Text="/ sec"></Run>
+ </TextBlock>
+ <TextBlock FontWeight="SemiBold" Text="Enable Diagnostics:" />
+ <ToggleButton IsChecked="{Binding EnableDiagnostics}" HorizontalAlignment="Left"></ToggleButton>
+ <TextBlock FontWeight="SemiBold" Text="Enable Embedded Debug Logs:" />
+ <ToggleButton IsChecked="{Binding EnableEmbeddedDebugging}" HorizontalAlignment="Left"></ToggleButton>
+ <TextBlock FontWeight="SemiBold" Text="Enable KeepAlive:" />
+ <ToggleButton IsChecked="{Binding UseKeepAlive}" HorizontalAlignment="Left"></ToggleButton>
+ <TextBlock FontWeight="SemiBold" Text="Enable Events:" />
+ <ToggleButton IsChecked="{Binding EnableEventsNotification}" HorizontalAlignment="Left"></ToggleButton>
+ </controls:TableGrid>
+ </DataTemplate>
+
<DataTemplate DataType="{x:Type emulations:EmulatorExternalBridge}">
<controls:TableGrid RowHeight="22">
<TextBlock FontWeight="SemiBold" Text="Address:" />
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MachineConnectionView.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MachineConnectionView.xaml
index 78557a42e..59b9fe67f 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MachineConnectionView.xaml
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MachineConnectionView.xaml
@@ -8,6 +8,7 @@
xmlns:integration="clr-namespace:Tango.Integration.ExternalBridge;assembly=Tango.Integration"
xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI"
xmlns:emulations="clr-namespace:Tango.Emulations.ExternalBridge;assembly=Tango.Emulations"
+ xmlns:controls="clr-namespace:Tango.MachineStudio.Common.Controls;assembly=Tango.MachineStudio.Common"
xmlns:local="clr-namespace:Tango.MachineStudio.UI.Views"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400" Width="700" Height="500" Background="{StaticResource Dialog.Background}" DataContext="{Binding MachineConnectionViewVM, Source={StaticResource Locator}}" Foreground="{StaticResource MainWindow.Foreground}">
@@ -58,7 +59,7 @@
<DataTemplate DataType="{x:Type integration:ExternalBridgeSignalRClient}">
<DockPanel>
<StackPanel Orientation="Horizontal">
- <Image Source="/Images/external-bridge-signalr.png" Height="45" RenderOptions.BitmapScalingMode="Fant"></Image>
+ <controls:MachineConnectionIcon ExternalBridgeClient="{Binding}" Height="45" />
<StackPanel Margin="10 0 0 0">
<TextBlock FontSize="11">
<Run FontWeight="Bold">S/N:</Run> <Run Text="{Binding SerialNumber,Mode=OneWay}"></Run>
@@ -76,7 +77,7 @@
<DataTemplate DataType="{x:Type integration:ExternalBridgeTcpClient}">
<DockPanel>
<StackPanel Orientation="Horizontal">
- <Image Source="/Images/external-bridge-tcp.png" Height="45" RenderOptions.BitmapScalingMode="Fant"></Image>
+ <controls:MachineConnectionIcon ExternalBridgeClient="{Binding}" Height="45" />
<StackPanel Margin="10 0 0 0">
<TextBlock FontSize="11">
<Run FontWeight="Bold">S/N:</Run> <Run Text="{Binding SerialNumber,Mode=OneWay}"></Run>
@@ -94,7 +95,7 @@
<DataTemplate DataType="{x:Type integration:ExternalBridgeUsbClient}">
<DockPanel>
<StackPanel Orientation="Horizontal">
- <Image Source="/Images/external-bridge-usb.png" Height="45" RenderOptions.BitmapScalingMode="Fant"></Image>
+ <controls:MachineConnectionIcon ExternalBridgeClient="{Binding}" Height="45" />
<StackPanel Margin="10 0 0 0">
<TextBlock FontSize="11">
<Run FontWeight="Bold">Port:</Run> <Run Text="{Binding ComPort,Mode=OneWay}"></Run>
@@ -106,10 +107,22 @@
</StackPanel>
</DockPanel>
</DataTemplate>
+ <DataTemplate DataType="{x:Type integration:ExternalBridgeTcpFirmwareClient}">
+ <DockPanel>
+ <StackPanel Orientation="Horizontal">
+ <controls:MachineConnectionIcon ExternalBridgeClient="{Binding}" Height="45" />
+ <StackPanel Margin="10 0 0 0">
+ <TextBlock FontSize="11">
+ <Run FontWeight="Bold">IP Address:</Run> <Run Text="{Binding IPAddress,Mode=OneWay}"></Run>
+ </TextBlock>
+ </StackPanel>
+ </StackPanel>
+ </DockPanel>
+ </DataTemplate>
<DataTemplate DataType="{x:Type emulations:EmulatorExternalBridge}">
<DockPanel>
<StackPanel Orientation="Horizontal">
- <Image Source="/Images/external-bridge-emulator.png" Height="45" RenderOptions.BitmapScalingMode="Fant"></Image>
+ <controls:MachineConnectionIcon ExternalBridgeClient="{Binding}" Height="45" />
<StackPanel Margin="10 0 0 0">
<TextBlock FontSize="11">
<Run Text="External Bridge Emulator"></Run>
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ReportIssueView.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ReportIssueView.xaml
index aac712f59..3eeb5f901 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ReportIssueView.xaml
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ReportIssueView.xaml
@@ -12,7 +12,7 @@
xmlns:tfs="clr-namespace:Tango.TFS;assembly=Tango.TFS"
xmlns:tfss="clr-namespace:Tango.MachineStudio.UI.TFS"
xmlns:local="clr-namespace:Tango.MachineStudio.UI.Views"
- mc:Ignorable="d" Width="530" Height="660" Background="{StaticResource Dialog.Background}" d:DataContext="{d:DesignInstance Type=vm:ReportIssueViewVM, IsDesignTimeCreatable=False}" Foreground="{StaticResource MainWindow.Foreground}">
+ mc:Ignorable="d" Width="530" Height="700" Background="{StaticResource Dialog.Background}" d:DataContext="{d:DesignInstance Type=vm:ReportIssueViewVM, IsDesignTimeCreatable=False}" Foreground="{StaticResource MainWindow.Foreground}">
<UserControl.Resources>
<converters:EnumToItemsSourceConverter x:Key="EnumToItemsSourceConverter" />
@@ -44,6 +44,11 @@
</DockPanel>
<DockPanel Margin="0 10 0 0">
+ <materialDesign:PackIcon Kind="Settings" Width="24" Height="24" VerticalAlignment="Center" Margin="0 0 10 0" />
+ <ComboBox materialDesign:HintAssist.Hint="Machine Type" materialDesign:HintAssist.IsFloating="True" ItemsSource="{Binding Source={x:Type tfs:MachineType},Converter={StaticResource EnumToItemsSourceConverter}}" SelectedValue="{Binding WorkItem.MachineType}" SelectedValuePath="Value" DisplayMemberPath="DisplayName"></ComboBox>
+ </DockPanel>
+
+ <DockPanel Margin="0 10 0 0">
<materialDesign:PackIcon Kind="Account" Width="24" Height="24" VerticalAlignment="Center" Margin="0 0 10 0" />
<autoComplete:AutoCompleteTextBox Provider="{StaticResource TeamMembersProvider}" SelectedItem="{Binding WorkItem.AssignedTo,Mode=TwoWay}" DisplayMember="DisplayName" materialDesign:HintAssist.Hint="Assigned To" materialDesign:HintAssist.IsFloating="True"></autoComplete:AutoCompleteTextBox>
</DockPanel>
@@ -83,7 +88,7 @@
<materialDesign:PackIcon Kind="Tag" Width="24" Height="24" VerticalAlignment="Center" Margin="0 0 10 0" />
<TextBlock VerticalAlignment="Center"><Run>Tags</Run> <Run FontSize="10" Foreground="Gray">(highlight selected tags)</Run></TextBlock>
</DockPanel>
- <ScrollViewer Margin="30 0 0 0" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto" Height="120">
+ <ScrollViewer Margin="30 0 0 0" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto" Height="100">
<ItemsControl ItemsSource="{Binding SelectedTags}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.BugReporting/TFS/TeamFoundationServicePPCClient.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.BugReporting/TFS/TeamFoundationServicePPCClient.cs
index b84d11c37..c21d56f2a 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.BugReporting/TFS/TeamFoundationServicePPCClient.cs
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.BugReporting/TFS/TeamFoundationServicePPCClient.cs
@@ -15,6 +15,7 @@ using Tango.Core.ExtensionMethods;
using Tango.Core.Helpers;
using Tango.Settings;
using Tango.PPC.Common;
+using Tango.PPC.Common.Build;
namespace Tango.PPC.BugReporting.TFS
{
@@ -22,6 +23,7 @@ namespace Tango.PPC.BugReporting.TFS
{
private IPPCApplicationManager _applicationManager;
private IMachineProvider _machineProvider;
+ private IBuildProvider _buildProvider;
public Project Project { get; private set; }
@@ -33,6 +35,7 @@ namespace Tango.PPC.BugReporting.TFS
{
_applicationManager = TangoIOC.Default.GetInstance<IPPCApplicationManager>();
_machineProvider = TangoIOC.Default.GetInstance<IMachineProvider>();
+ _buildProvider = TangoIOC.Default.GetInstance<IBuildProvider>();
_applicationManager.ApplicationReady += ApplicationManager_ApplicationReady;
}
@@ -82,7 +85,7 @@ namespace Tango.PPC.BugReporting.TFS
{
item.Title = title;
- item.Area = Project.GetAreaByName("PPC");
+ item.Area = _buildProvider.IsEureka ? Project.GetAreaByName("Twine X4") : Project.GetAreaByName("PPC");
item.Iteration = Project.Iterations.FirstOrDefault();
item.CreatedBy = createdBy;
@@ -99,6 +102,8 @@ namespace Tango.PPC.BugReporting.TFS
item.Type = WorkItemType.Bug;
item.Environment = SettingsManager.Default.GetOrCreate<PPCSettings>().DeploymentSlot.ToDescription();
+ item.MachineType = _buildProvider.IsEureka ? MachineType.TwineX4 : MachineType.TS1800;
+
FileLogger appFileLogger = LogManager.Default.RegisteredLoggers.FirstOrDefault(x => x.GetType() == typeof(FileLogger)) as FileLogger;
FileLogger embeddedFileLogger = MachineOperator.EmbeddedLogManager.RegisteredLoggers.FirstOrDefault(x => x.GetType() == typeof(FileLogger)) as FileLogger;
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobsViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobsViewVM.cs
index 0b039b618..90ca8ed0c 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobsViewVM.cs
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobsViewVM.cs
@@ -511,7 +511,17 @@ namespace Tango.PPC.Jobs.ViewModels
job.JobSource = JobSource.Local;
job.Name = "untitled";
job.NumberOfHeads = 1;
- job.NumberOfUnits = 1;
+
+ if(BuildProvider.IsEureka)
+ {
+ job.NumberOfUnits = 4;
+ //job.NumberOfHeads = 4;
+ }
+ else
+ {
+ job.NumberOfUnits = 1;
+
+ }
job.SampleUnitsOrMeters = 1;
job.CreationDate = DateTime.UtcNow;
job.JobStatus = JobStatuses.Draft;
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Controls/JobModelSummaryViewerControl.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Controls/JobModelSummaryViewerControl.xaml
index afd05e902..4c2e0ba62 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Controls/JobModelSummaryViewerControl.xaml
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Controls/JobModelSummaryViewerControl.xaml
@@ -104,6 +104,7 @@
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding ElementName=control,Path=JobModel.JobType}" Value="{x:Static enumerations:JobTypes.Embroidery}" />
<Condition Binding="{Binding ElementName=control,Path=IsActive}" Value="False" />
+ <Condition Binding="{Binding ElementName=control,Path=DisplayUnits}" Value="True" />
</MultiDataTrigger.Conditions>
<Setter Property="Visibility" Value="Visible"></Setter>
</MultiDataTrigger>
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Controls/JobModelSummaryViewerControl.xaml.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Controls/JobModelSummaryViewerControl.xaml.cs
index 5bc74e046..6ec36a8fe 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Controls/JobModelSummaryViewerControl.xaml.cs
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Controls/JobModelSummaryViewerControl.xaml.cs
@@ -55,6 +55,17 @@ namespace Tango.PPC.Jobs.Controls
public static readonly DependencyProperty DisplayMarkersProperty =
DependencyProperty.Register("DisplayMarkers", typeof(bool), typeof(JobModelSummaryViewerControl), new PropertyMetadata(true));
+
+ public bool DisplayUnits
+ {
+ get { return (bool)GetValue(DisplayUnitsProperty); }
+ set { SetValue(DisplayUnitsProperty, value); }
+ }
+
+ // Using a DependencyProperty as the backing store for DisplayUnits. This enables animation, styling, binding, etc...
+ public static readonly DependencyProperty DisplayUnitsProperty =
+ DependencyProperty.Register("DisplayUnits", typeof(bool), typeof(JobModelSummaryViewerControl), new PropertyMetadata(true));
+
public JobModelSummaryViewerControl()
{
InitializeComponent();
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/FirstValueCollectionConverter.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/FirstValueCollectionConverter.cs
new file mode 100644
index 000000000..9f5480e5e
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/FirstValueCollectionConverter.cs
@@ -0,0 +1,34 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Data;
+using Tango.Core;
+using Tango.PPC.Jobs.Models;
+
+namespace Tango.PPC.Jobs.Converters
+{
+ public class FirstValueCollectionConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ if(value is SynchronizedObservableCollection<SegmentModel>)
+ {
+ SynchronizedObservableCollection<SegmentModel> list = value as SynchronizedObservableCollection<SegmentModel>;
+ if(list.Count >= 1)
+ {
+ return list[0];
+ }
+ }
+ return null;
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/LengthToWeightConverter.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/LengthToWeightConverter.cs
new file mode 100644
index 000000000..e36dd3c63
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/LengthToWeightConverter.cs
@@ -0,0 +1,35 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Data;
+
+namespace Tango.PPC.Jobs.Converters
+{
+ public class LengthToWeightConverter : IMultiValueConverter
+ {
+ public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
+ {
+ try
+ {
+ double length = System.Convert.ToDouble(values[0]);
+ double coef = System.Convert.ToDouble(values[1]);
+ //int spools = System.Convert.ToInt32(values[2]);
+ var weight = ((double)length * coef) / (1000);//(g)
+ return weight;
+ }
+ catch (Exception ex)
+ {
+ return "-";
+ }
+ }
+
+ public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/LengthWithSpoolsConverter.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/LengthWithSpoolsConverter.cs
new file mode 100644
index 000000000..60f94b8aa
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/LengthWithSpoolsConverter.cs
@@ -0,0 +1,37 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Data;
+
+namespace Tango.PPC.Jobs.Converters
+{
+ public class LengthWithSpoolsConverter : IMultiValueConverter
+ {
+ public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
+ {
+ try
+ {
+ double length = System.Convert.ToDouble(values[0]);
+ bool isEureka = System.Convert.ToBoolean(values[1]);
+ double spools = System.Convert.ToDouble(values[2]);
+
+ if (isEureka)
+ return length * spools;
+ else return length;
+ }
+ catch
+ {
+ return 0d;
+ }
+ }
+
+ public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/ObjectsConverter.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/ObjectsConverter.cs
new file mode 100644
index 000000000..c5585cc73
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/ObjectsConverter.cs
@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Data;
+
+namespace Tango.PPC.Jobs.Converters
+{
+ public class ObjectsConverter : IMultiValueConverter
+ {
+ public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
+ {
+ return values.Clone();
+ }
+
+ public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/TimeSpanToHoursConverter.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/TimeSpanToHoursConverter.cs
new file mode 100644
index 000000000..10c666c4e
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/TimeSpanToHoursConverter.cs
@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Data;
+
+namespace Tango.PPC.Jobs.Converters
+{
+ public class TimeSpanToHoursConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ return ((TimeSpan)value).TotalHours;
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ return TimeSpan.FromHours(double.Parse(value.ToString()));
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionView.xaml
index 28958cbc8..e737a8f7a 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionView.xaml
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionView.xaml
@@ -17,7 +17,7 @@
mc:Ignorable="d"
Background="{StaticResource TangoMidBackgroundBrush}"
d:DesignHeight="1280" d:DesignWidth="800" Width="750" Height="1200"
- d:DataContext="{d:DesignInstance Type=vm:ColorSelectionViewVM, IsDesignTimeCreatable=False}" x:Name="colorSelectionView">
+ d:DataContext="{d:DesignInstance Type=vm:ColorSelectionViewVM, IsDesignTimeCreatable=False}" x:Name="colorSelectionView" touch:TouchPanelEureka.MakeEurekaFullScreen="True">
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
@@ -25,6 +25,7 @@
</ResourceDictionary.MergedDictionaries>
<converters:ColorTabToVisibilityConverter x:Key="ColorTabToVisibilityConverter" />
+ <converters:ObjectsConverter x:Key="ObjectsConverter" />
<sharedConverters:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
<sharedConverters:BooleanToVisibilityInverseConverter x:Key="BooleanToVisibilityInverseConverter" />
<sharedConverters:BooleanInverseConverter x:Key="BooleanInverseConverter"/>
@@ -268,12 +269,12 @@
<DockPanel Margin="40 0 20 20">
<StackPanel Orientation="Horizontal" DockPanel.Dock="Top" Visibility="{Binding EditColorsGroupMode , Converter={StaticResource BooleanToVisibilityInverseConverter}}">
<TextBlock Text="{Binding Name}" Height="30" Margin="0 10 0 0" FontSize="{StaticResource TangoButtonFontSize}" FontWeight="SemiBold" VerticalAlignment="Center" Foreground="{StaticResource TangoBlackInkBrush}" ></TextBlock>
- <touch:TouchIconButton Margin="20 0 0 0" VerticalAlignment="Center" Foreground="{StaticResource TangoBlackInkBrush}" Height="16.5" Icon="PencilAltSolid" Command="{Binding DataContext.EditColorsLibraryCommand, ElementName=colorSelectionView}" CommandParameter="{Binding }" />
+ <!--<touch:TouchIconButton Margin="20 0 0 0" VerticalAlignment="Center" Foreground="{StaticResource TangoBlackInkBrush}" Height="16.5" Icon="PencilAltSolid" Command="{Binding DataContext.EditColorsLibraryCommand, ElementName=colorSelectionView}" CommandParameter="{Binding }" />-->
</StackPanel>
<DockPanel DockPanel.Dock="Top" Visibility="{Binding EditColorsGroupMode , Converter={StaticResource BooleanToVisibilityConverter}}">
- <touch:TouchIconButton DockPanel.Dock="Right" Icon="TrashAltRegular" Width="16" Height="16.5" Margin="0 0 35 1" EnableDropShadow="False" Foreground="{StaticResource TangoBlackInkBrush}" Command="{Binding DataContext.DeleteGroupCommand , ElementName=colorSelectionView}" />
+ <touch:TouchIconButton DockPanel.Dock="Right" Icon="TrashAltRegular" Width="16" Height="16.5" Margin="0 0 35 1" EnableDropShadow="False" Foreground="{StaticResource TangoBlackInkBrush}" Command="{Binding DataContext.DeleteGroupCommand , ElementName=colorSelectionView}" CommandParameter="{Binding DataContext,RelativeSource={RelativeSource Self}}"/>
<StackPanel Orientation="Horizontal" DockPanel.Dock="Left">
- <touch:TouchTextBox MaxLength="20" Validation.ErrorTemplate="{StaticResource validationTemplate}" MinWidth="100" Margin="0 0 0 0" FontSize="{StaticResource TangoButtonFontSize}" FontWeight="SemiBold" VerticalAlignment="Center" Foreground="{StaticResource TangoBlackInkBrush}" >
+ <touch:TouchTextBox MaxLength="20" Validation.ErrorTemplate="{StaticResource validationTemplate}" MinWidth="100" Margin="0 0 0 0" FontSize="{StaticResource TangoButtonFontSize}" FontWeight="SemiBold" VerticalAlignment="Center" Foreground="{StaticResource TangoBlackInkBrush}" FocusSelectionMode="SelectAll" >
<touch:TouchTextBox.Resources>
<helpers:BindingProxy x:Key="proxy" Data="{Binding DataContext, ElementName=colorSelectionView}"/>
</touch:TouchTextBox.Resources>
@@ -289,7 +290,7 @@
</Binding>
</touch:TouchTextBox.Text>
</touch:TouchTextBox>
- <touch:TouchIconButton Margin="20 0 0 0" VerticalAlignment="Center" Foreground="{StaticResource TangoPrimaryAccentBrush}" Height="16.5" Icon="PencilAltSolid" Command="{Binding DataContext.EditColorsLibraryCommand, ElementName=colorSelectionView}" CommandParameter="{Binding }" />
+ <!--<touch:TouchIconButton Margin="20 0 0 0" VerticalAlignment="Center" Foreground="{StaticResource TangoPrimaryAccentBrush}" Height="16.5" Icon="PencilAltSolid" Command="{Binding DataContext.EditColorsLibraryCommand, ElementName=colorSelectionView}" CommandParameter="{Binding }" />-->
</StackPanel>
</DockPanel>
<Rectangle DockPanel.Dock="Bottom" Margin="0 10 0 0" Height="1" Stroke="{StaticResource TangoDividerBrush}" VerticalAlignment="Bottom" />
@@ -310,15 +311,47 @@
<touch:TouchButton Width="68" Height="68" EnableDropShadow="False" Background="Transparent" BorderThickness="0" Command="{Binding DataContext.SelectColorCommand , ElementName=colorSelectionView}" CommandParameter="{Binding }" />
</Border>
<Border Background="{Binding Brush}" Width="68" Height="68" CornerRadius="10" BorderBrush="{StaticResource TangoKeyboardKeyDarkBrush}" BorderThickness="2" HorizontalAlignment="Left" Visibility="{Binding DataContext.EditColorsGroupMode , ElementName=colorLibraryList, Converter={StaticResource BooleanToVisibilityConverter}}">
- <touch:TouchButton Width="68" Height="68" EnableDropShadow="False" Background="Transparent" BorderThickness="0" Command="{Binding DataContext.DeleteColorCommand , ElementName=colorSelectionView}" CommandParameter="{Binding }" >
+ <touch:TouchButton Width="68" Height="68" EnableDropShadow="False" Background="Transparent" BorderThickness="0" Command="{Binding DataContext.DeleteColorCommand , ElementName=colorSelectionView}" >
<Border Height="26" Width="28" BorderThickness="0" BorderBrush="{StaticResource TangoKeyboardKeyDarkBrush}" Background="Transparent" HorizontalAlignment="Left">
<Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/ColorSelection/delete_color.png" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</Border>
+ <touch:TouchButton.CommandParameter>
+ <MultiBinding Converter="{StaticResource ObjectsConverter}">
+ <Binding/>
+ <Binding Path="DataContext" ElementName="colorLibraryList"/>
+ </MultiBinding>
+ </touch:TouchButton.CommandParameter>
</touch:TouchButton>
</Border>
<!--<Border Background="{Binding Color}" Width="65" Height="65" CornerRadius="6"></Border>-->
- <TextBlock Grid.Row="1" Margin="3 12 0 10" MaxWidth="78" HorizontalAlignment="Left" TextAlignment="Left" Text="{Binding Name}" TextWrapping="Wrap" TextTrimming="CharacterEllipsis" ToolTip="{Binding Name}" FontSize="{StaticResource TangoSmallFontSizeBar}" Visibility="{Binding DataContext.EditColorsGroupMode , ElementName=colorLibraryList , Converter={StaticResource BooleanToVisibilityInverseConverter}}"></TextBlock>
- <touch:TouchTextBox MaxLength="24" Grid.Row="1" Margin="3 12 0 10" MaxWidth="78" Text="{Binding Name, UpdateSourceTrigger=LostFocus, Mode=TwoWay}" FontSize="{StaticResource TangoSmallFontSizeBar}" Visibility="{Binding DataContext.EditColorsGroupMode , ElementName=colorLibraryList, Converter={StaticResource BooleanToVisibilityConverter}}" HorizontalAlignment="Left" TextBlock.TextAlignment="Left"/>
+ <TextBlock Grid.Row="1" Margin="3 12 0 10" MaxWidth="78" HorizontalAlignment="Left" TextAlignment="Left" Text="{Binding Name}" TextWrapping="Wrap" TextTrimming="CharacterEllipsis" ToolTip="{Binding Name}" FontSize="{StaticResource TangoSmallFontSizeBar}" Visibility="{Binding DataContext.EditColorsGroupMode , ElementName=colorLibraryList , Converter={StaticResource BooleanToVisibilityInverseConverter}}">
+ <TextBlock.Style>
+ <Style TargetType="TextBlock">
+ <Setter Property="Foreground" Value="{StaticResource TangoDarkForegroundBrush}" />
+ <Setter Property="Background" Value="Transparent" />
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding IsSelected}" Value="True">
+ <!--<Setter Property="Foreground" Value="{StaticResource TangoRedBrush}" />-->
+ <Setter Property="Background" Value="LightBlue"/>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </TextBlock.Style>
+ </TextBlock>
+ <touch:TouchTextBox MaxLength="24" Grid.Row="1" Margin="3 12 0 10" MaxWidth="78" Text="{Binding Name, UpdateSourceTrigger=LostFocus, Mode=TwoWay}" FontSize="{StaticResource TangoSmallFontSizeBar}" Visibility="{Binding DataContext.EditColorsGroupMode , ElementName=colorLibraryList, Converter={StaticResource BooleanToVisibilityConverter}}" HorizontalAlignment="Left" TextBlock.TextAlignment="Left" FocusSelectionMode="SelectAll">
+ <touch:TouchTextBox.Style>
+ <Style TargetType="touch:TouchTextBox">
+ <Setter Property="Foreground" Value="{StaticResource TangoDarkForegroundBrush}" />
+ <Setter Property="Background" Value="Transparent" />
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding IsSelected}" Value="True">
+ <!--<Setter Property="Foreground" Value="{StaticResource TangoRedBrush}" />-->
+ <Setter Property="Background" Value="LightBlue"/>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </touch:TouchTextBox.Style>
+ </touch:TouchTextBox>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
@@ -329,17 +362,21 @@
<DataTemplate x:Key="saveMyColorsDlg">
<Canvas Margin="200 50 100 0" Visibility="{Binding SaveMyColorMode, Mode=TwoWay, Converter={StaticResource BooleanToVisibilityConverter}}" >
- <Border x:Name="SaveMyColorGroups" Width="280" Background="Transparent" Height="Auto" MinHeight="100" MaxHeight="450">
+ <Border x:Name="SaveMyColorGroups" Width="380" Background="Transparent" Height="Auto" MinHeight="100" MaxHeight="550">
<Grid MinWidth="260" >
<Border Background="{StaticResource TangoPrimaryBackgroundBrush}" CornerRadius="12" BorderThickness="0" MinHeight="100" Margin="0">
<Border.Effect>
<DropShadowEffect Opacity="0.5" ShadowDepth="6" Color="Silver" BlurRadius="10" Direction="270"/>
</Border.Effect>
- <Grid>
- <Border Background="{StaticResource TangoPrimaryBackgroundBrush}" CornerRadius="12" BorderThickness="0" Padding="10" MinHeight="100" Margin="0 20 0 0">
+ <StackPanel Orientation="Vertical">
+ <Border Background="{StaticResource TangoPrimaryBackgroundBrush}" CornerRadius="12" BorderThickness="0" Padding="10" MinHeight="100" Margin="0 10 0 0">
<StackPanel Orientation="Vertical">
+ <StackPanel Orientation="Horizontal" Height="60" >
+ <TextBlock VerticalAlignment="Center" FontSize="{StaticResource TangoButtonFontSize}" Margin="20 0 0 0" >Name: </TextBlock>
+ <touch:TouchTextBox Width="220" Height="40" FontSize="{StaticResource TangoButtonFontSize}" Margin=" 20 0 10 0" Text="{Binding MyColorName}" FocusSelectionMode="SelectAll"></touch:TouchTextBox>
+ </StackPanel>
<Grid Margin="14 10 14 10" >
- <ListBox HorizontalAlignment="Stretch" MaxHeight="320" ItemsSource="{Binding Libraries}" Style="{StaticResource ListBoxVerticalScroll}"
+ <ListBox HorizontalAlignment="Stretch" MaxHeight="220" ItemsSource="{Binding Libraries}" Style="{StaticResource ListBoxVerticalScroll}"
ScrollViewer.VerticalScrollBarVisibility="Visible" >
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
@@ -367,10 +404,26 @@
</StackPanel>
</StackPanel>
</Border>
- <Border BorderThickness="0" Width="Auto" Height="Auto" BorderBrush="{StaticResource TangoDividerBrush}" Margin="0 18 15 0" HorizontalAlignment="Right" VerticalAlignment="Top">
+ <!--<Border BorderThickness="0" Width="Auto" Height="Auto" BorderBrush="{StaticResource TangoDividerBrush}" Margin="0 18 15 0" HorizontalAlignment="Right" VerticalAlignment="Top">
<touch:TouchImageButton Width="22" Height="15" Image="{StaticResource Close_SaveMyColor}" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0 0 0 0" EnableDropShadow="False" Background="Transparent" BorderThickness="0" Command="{Binding SaveMyColorsCommand}" Focusable="False"/>
+ </Border>-->
+ <Border BorderThickness="0" Width="Auto" Height="Auto" BorderBrush="{StaticResource TangoDividerBrush}" Margin="0 10 0 20" Padding="0" HorizontalAlignment="Center" VerticalAlignment="Bottom">
+ <touch:TouchButton Width="100" Height="40" CornerRadius="20" Command="{Binding SaveMyColorsCommand}" TextElement.Foreground="{StaticResource TangoLightForegroundBrush}" FontSize="{StaticResource TangoButtonFontSize}" ShadowDepth="0" Content="OK">
+ <touch:TouchButton.Style >
+ <Style TargetType="touch:TouchButton" >
+ <Setter Property="Foreground" Value="{StaticResource TangoPrimaryAccentBrush}"></Setter>
+ <Setter Property="Background" Value="{StaticResource TangoMidAccentBrush}"/>
+ <Style.Triggers>
+ <Trigger Property="IsEnabled" Value="False">
+ <Setter Property="Foreground" Value="{StaticResource TangoDisabledForegroundBrush}"></Setter>
+ <Setter Property="Background" Value="{StaticResource TangoDisabledBackgroundBrush}"></Setter>
+ </Trigger>
+ </Style.Triggers>
+ </Style>
+ </touch:TouchButton.Style>
+ </touch:TouchButton>
</Border>
- </Grid>
+ </StackPanel>
</Border>
</Grid>
</Border>
@@ -634,7 +687,7 @@
<DockPanel >
<Grid DockPanel.Dock="Bottom" Height="137">
<Rectangle Height="1" Stroke="{StaticResource TangoDividerBrush}" HorizontalAlignment="Stretch"/>
- <Grid Margin="48 50 0 0" >
+ <Grid Margin="48 30 0 0" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="1*"/>
@@ -650,15 +703,30 @@
</Grid>
</Grid>
<DockPanel x:Name="headerPanel" Height="122" DockPanel.Dock="Top">
- <Rectangle DockPanel.Dock="Bottom" Margin="43 0 63 10" Height="1" Stroke="{StaticResource TangoDividerBrush}" VerticalAlignment="Bottom"/>
+ <Rectangle DockPanel.Dock="Bottom" Margin="43 0 63 0" Height="1" Stroke="{StaticResource TangoDividerBrush}" VerticalAlignment="Bottom"/>
<TextBlock DockPanel.Dock="Left" Margin="43 53 0 28" HorizontalAlignment="Left" VerticalAlignment="Center" FontSize="{StaticResource TangoHeaderFontSize}" FontWeight="SemiBold">My Colors</TextBlock>
<touch:TouchImageButton DockPanel.Dock="Top" Width="32" Height="32" Image="{StaticResource Close_mycolorsdlg}" HorizontalAlignment="Right" Margin="0 20 23 0" EnableDropShadow="False" Background="Transparent" BorderThickness="0" Command="{Binding CloseMyColorsCommand}"/>
</DockPanel>
- <Grid>
+ <StackPanel Orientation="Vertical" Margin="0">
+ <DockPanel>
+ <touch:TouchButton DockPanel.Dock="Right" Height="48" Command="{Binding DataContext.EditColorsLibrariesCommand, ElementName=colorSelectionView}" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0 0 30 10" Background="Transparent" ShadowDepth="0" ShadowColor="Transparent">
+ <StackPanel Height="48" Width="160" Orientation="Horizontal">
+ <touch:TouchIcon Margin="0 7 0 0" VerticalAlignment="Center" Foreground="{StaticResource TangoBlackInkBrush}" Height="16.5" Icon="PencilAltSolid" />
+ <TextBlock Text="{Binding EditColorButtonName, Mode=TwoWay, TargetNullValue=EDIT}" Height="30" Margin="25 10 0 0" FontSize="{StaticResource TangoButtonFontSize}" FontWeight="SemiBold" VerticalAlignment="Center" Foreground="{StaticResource TangoBlackInkBrush}" ></TextBlock>
+ </StackPanel>
+ </touch:TouchButton>
+ <Grid DockPanel.Dock="Left" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="60 0 0 0" Width="280">
+ <DockPanel>
+ <Image DockPanel.Dock="Left" HorizontalAlignment="Left" VerticalAlignment="Bottom" Width="40" Height="40" Source="{StaticResource SearchImage}"/>
+ <!--<touch:TouchIcon DockPanel.Dock="Left" Foreground="{StaticResource TangoGrayBrush}" Width="20" Height="20" VerticalAlignment="Bottom" Icon="Magnify" />-->
+ <touch:TouchTextBox Margin="5 0 0 0" Width="300" Text="{Binding SearchColorText,Mode=TwoWay, UpdateSourceTrigger=LostFocus}" ></touch:TouchTextBox>
+ </DockPanel>
+ </Grid>
+ </DockPanel>
<ListBox x:Name="listLibraries" Grid.Row="1" Margin="10 0 10 60" ItemsSource="{Binding Libraries}" Style="{StaticResource ListBoxVerticalScroll}"
- ScrollViewer.VerticalScrollBarVisibility="Visible" Width="560" ItemTemplate="{StaticResource ColorLibrary_Template}">
+ ScrollViewer.VerticalScrollBarVisibility="Visible" Width="560" ItemTemplate="{StaticResource ColorLibrary_Template}" Height="580">
</ListBox>
- </Grid>
+ </StackPanel>
</DockPanel>
</Grid>
</Border>
@@ -667,7 +735,7 @@
</Grid>
</Border>
<Border Visibility="{Binding IsOpenVectorFineTuningDialog, Converter={StaticResource BooleanToVisibilityConverter}}">
- <local:VectorFineTuningDialog DataContext="{Binding VectorFineTuningDialogVM}" />
+ <local:VectorFineTuningDialog DataContext="{Binding VectorFineTuningDialogVM}" Width="{Binding ActualWidth, ElementName=local:ColorSelectionView}" Height="{Binding ActualHeight, ElementName=local:colorSelectionView}"/>
</Border>
</Grid>
</UserControl>
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionViewVM.cs
index 7e5f73637..3146da179 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionViewVM.cs
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionViewVM.cs
@@ -7,6 +7,7 @@ using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using System.Windows.Data;
using Tango.BL.Entities;
using Tango.BL.Enumerations;
using Tango.ColorConversion;
@@ -315,6 +316,8 @@ namespace Tango.PPC.Jobs.Dialogs
}
}
+ public ICollectionView ColorLibrariesView { get; private set; }
+
public Dictionary<ColorSpaces, List<FavoriteColor>> _colorSpaceToFavoriteColorDictionary;
@@ -392,6 +395,16 @@ namespace Tango.PPC.Jobs.Dialogs
}
}
+ private String _searchColorText;
+ /// <summary>
+ /// Gets or sets the search filter.
+ /// </summary>
+ public String SearchColorText
+ {
+ get { return _searchColorText; }
+ set { _searchColorText = value; RaisePropertyChangedAuto(); OnSearchColorChanged(); }
+ }
+
private bool _isOpenVectorFineTuningDialog;
public bool IsOpenVectorFineTuningDialog
@@ -408,6 +421,24 @@ namespace Tango.PPC.Jobs.Dialogs
get { return _vectorFineTuningDialogVM; }
set { _vectorFineTuningDialogVM = value; RaisePropertyChangedAuto(); }
}
+
+ private String _myColorName;
+
+ public String MyColorName
+ {
+ get { return _myColorName; }
+ set { _myColorName = value;
+ RaisePropertyChangedAuto();}
+ }
+
+ private String _editColorButtonName;
+
+ public String EditColorButtonName
+ {
+ get { return _editColorButtonName; }
+ set { _editColorButtonName = value;
+ RaisePropertyChangedAuto();}
+ }
#endregion
@@ -426,10 +457,11 @@ namespace Tango.PPC.Jobs.Dialogs
public RelayCommand OpenMyColorsCommand { get; set; }
public RelayCommand CloseMyColorsCommand { get; set; }
public RelayCommand AddGroupCommand { get; set; }
- public RelayCommand DeleteGroupCommand { get; set; }
+ public RelayCommand<ColorLibrary> DeleteGroupCommand { get; set; }
public RelayCommand<FavoriteColor> SelectColorCommand { get; set; }
public RelayCommand<ColorLibrary> EditColorsLibraryCommand { get; set; }
- public RelayCommand<FavoriteColor> DeleteColorCommand { get; set; }
+ public RelayCommand EditColorsLibrariesCommand { get; set; }
+ public RelayCommand<object> DeleteColorCommand { get; set; }
public RelayCommand VectorFineTuningCommand { get; set; }
@@ -471,15 +503,16 @@ namespace Tango.PPC.Jobs.Dialogs
SaveMyColorsCommand = new RelayCommand(SaveMyColors);
OpenMyColorsCommand = new RelayCommand(() => { MyColorsMode = true; });
- CloseMyColorsCommand = new RelayCommand(() => { MyColorsMode = false; });
+ CloseMyColorsCommand = new RelayCommand(() => { MyColorsMode = false; SearchColorText = "";});
SelectColorCommand = new RelayCommand<FavoriteColor>(SelectColor);
AddGroupCommand = new RelayCommand(AddGroup);
AddNewGroupCommand = new RelayCommand<string>(AddNewGroup);
AddNewGroupAndColorCommand = new RelayCommand<string>(AddNewGroupAndColor);
AddColorToLibraryCommand = new RelayCommand<ColorLibrary>(AddColorToLibrary);
- DeleteGroupCommand = new RelayCommand(DeleteGroup);
+ DeleteGroupCommand = new RelayCommand<ColorLibrary>(DeleteGroup);
EditColorsLibraryCommand = new RelayCommand<ColorLibrary>(EditColorsLibrary);
- DeleteColorCommand = new RelayCommand<FavoriteColor>(DeleteColor);
+ EditColorsLibrariesCommand = new RelayCommand(EditColorsLibraries);
+ DeleteColorCommand = new RelayCommand<object>(DeleteColor);
MyColorsMode = false;
EditColorsGroupMode = false;
SaveMyColorMode = false;
@@ -497,6 +530,33 @@ namespace Tango.PPC.Jobs.Dialogs
Libraries.CollectionChanged -= Libraries_CollectionChanged;
Libraries.CollectionChanged += Libraries_CollectionChanged;
+ ColorLibrariesView = CollectionViewSource.GetDefaultView(Libraries);
+ ColorLibrariesView.SortDescriptions.Add(new SortDescription(nameof(ColorLibrary.Name), ListSortDirection.Ascending));
+ ColorLibrariesView.Filter = new Predicate<object> (item =>
+ {
+ var ColorLibraryItem = item as ColorLibrary;
+
+ if (ColorLibraryItem != null)
+ {
+ if (String.IsNullOrEmpty(SearchColorText))
+ {
+ ColorLibraryItem.ColorList.ToList().ForEach(x => x.IsSelected = false);
+ return true;
+ }
+ else
+ {
+ ColorLibraryItem.ColorList.ToList().ForEach( x=> x.IsSelected = x.Name.ToLower().StartsWith(SearchColorText.ToLower()));
+
+ if(ColorLibraryItem.ColorList.ToList().Any(x=>x.Name.ToLower().StartsWith(SearchColorText.ToLower())))
+ return true;
+ return (ColorLibraryItem.Name.ToLower().StartsWith(SearchColorText.ToLower()));
+ }
+ }
+ else
+ {
+ return true;
+ }
+ });
base.OnShow();
SegmentIndex = DialogEditObject.SelectedSegment.SegmentIndex;
@@ -555,7 +615,7 @@ namespace Tango.PPC.Jobs.Dialogs
SelectedBrushStop.ColorChanged += OnBrushColorChanged;
CheckIsSelectedColorInLibrary();
SelectedBrushStop.ConvertColor();//test OOG
- }
+ }
@@ -667,6 +727,14 @@ namespace Tango.PPC.Jobs.Dialogs
}
}
+ private void OnSearchColorChanged()
+ {
+ if (ColorLibrariesView != null)
+ {
+ ColorLibrariesView.Refresh();
+ }
+ }
+
private double GetMaxCMYKValueOrDefault(LiquidTypes type)
{
@@ -771,6 +839,7 @@ namespace Tango.PPC.Jobs.Dialogs
var favoriteColor = colors.FirstOrDefault(item => item.Color == SelectedBrushStop.Color);
if (favoriteColor != null)
{
+ MyColorName = favoriteColor.Name;
foreach (var library in Libraries)
{
if(library.IsColorExist(favoriteColor))
@@ -782,6 +851,7 @@ namespace Tango.PPC.Jobs.Dialogs
}
}
}
+
}
}
catch( Exception ex)
@@ -796,6 +866,15 @@ namespace Tango.PPC.Jobs.Dialogs
else
{
SaveMyColorMode = !SaveMyColorMode;
+ String colorName = "MyColor";
+ if (SelectedBrushStop != null && SelectedBrushStop.SegmentModel != null
+ && SelectedBrushStop.SegmentModel.Job != null)
+ {
+ colorName = SelectedBrushStop.SegmentModel.Job.Name;
+ if(colorName.Length > 40)
+ colorName = colorName.Substring(0, 40);
+ }
+ MyColorName = colorName;
}
IsBusy = false;
@@ -885,7 +964,7 @@ namespace Tango.PPC.Jobs.Dialogs
newcolor.Brightness = SelectedBrushStop.Brightness;
newcolor.RmlGuid = SelectedBrushStop.SegmentModel.Job.Rml.Guid;
int index = obj.ColorList.Count() + 1;
- newcolor.Name = String.Format($"Color{index}");//String.Format("#{0:X2}{1:X2}{2:X2}", newcolor.Red, newcolor.Green, newcolor.Blue);
+ newcolor.Name = MyColorName;//String.Format($"Color{index}");//String.Format("#{0:X2}{1:X2}{2:X2}", newcolor.Red, newcolor.Green, newcolor.Blue);
obj.AddToLibrary(newcolor);
@@ -963,22 +1042,62 @@ namespace Tango.PPC.Jobs.Dialogs
}
}
- private void DeleteColor(FavoriteColor favoriteColor)
+ private void EditColorsLibraries()
{
- if (favoriteColor != null && SelectedColorLibrary != null)
+ if (EditColorsGroupMode)
{
- SelectedColorLibrary.RemoveFromLibrary(favoriteColor);
- LoadLibraryDictionary();
+ //SelectedColorLibrary.EditColorsGroupMode = false;
+ EditColorsGroupMode = false;
+ EditColorButtonName = "EDIT";
+ foreach (var library in Libraries)
+ {
+ library.EditColorsGroupMode = false;
+ }
+ //save all
+ }
+ else
+ {
+ EditColorsGroupMode = true;
+ EditColorButtonName = "SAVE";
+ foreach (var library in Libraries)
+ {
+ library.EditColorsGroupMode = true;
+ }
+
+ //SelectedColorLibrary = library;SelectedColorLibrary
+ //SelectedColorLibrary.EditColorsGroupMode = true;
}
}
- private void DeleteGroup()
+ private void DeleteColor(object parameter)
+ {
+ var values = parameter as object[];
+ if (values != null && values.Count() == 2)
+ {
+ var favoriteColor = values[0] as FavoriteColor;
+ var colorlibrary = values[1] as ColorLibrary;
+ if (favoriteColor != null && colorlibrary != null)
+ {
+ colorlibrary.RemoveFromLibrary(favoriteColor);
+ LoadLibraryDictionary();
+ }
+ }
+
+ }
+
+ private void DeleteGroup(ColorLibrary library)
{
- if (SelectedColorLibrary != null)
+ //if (SelectedColorLibrary != null)
+ //{
+ // //message
+ // Libraries.Remove(SelectedColorLibrary);
+ // SelectedColorLibrary.Delete();
+ //}
+ if (library != null)
{
//message
- Libraries.Remove(SelectedColorLibrary);
- SelectedColorLibrary.Delete();
+ Libraries.Remove(library);
+ library.Delete();
}
}
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/JobCreationView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/JobCreationView.xaml
index 19ef9cf4c..f018acf97 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/JobCreationView.xaml
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/JobCreationView.xaml
@@ -10,7 +10,7 @@
xmlns:touch="clr-namespace:Tango.Touch.Controls;assembly=Tango.Touch"
xmlns:keyboard="clr-namespace:Tango.Touch.Keyboard;assembly=Tango.Touch"
mc:Ignorable="d"
- Background="{StaticResource TangoMidBackgroundBrush}" d:DesignHeight="861" d:DesignWidth="600" Width="750" Height="1200" d:DataContext="{d:DesignInstance Type=local:JobCreationViewVM, IsDesignTimeCreatable=False}" HorizontalAlignment="Center">
+ Background="{StaticResource TangoMidBackgroundBrush}" d:DesignHeight="861" d:DesignWidth="600" Width="750" Height="1200" d:DataContext="{d:DesignInstance Type=local:JobCreationViewVM, IsDesignTimeCreatable=False}" HorizontalAlignment="Center" touch:TouchPanelEureka.MakeEurekaFullScreen="True">
<UserControl.Resources>
<converters:JobTypeToImageConverter x:Key="JobTypeToImageConverter" />
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/MessageDiscardAdvancedOptions.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/MessageDiscardAdvancedOptions.xaml
new file mode 100644
index 000000000..e28b719ba
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/MessageDiscardAdvancedOptions.xaml
@@ -0,0 +1,35 @@
+<UserControl x:Class="Tango.PPC.Jobs.Dialogs.MessageDiscardAdvancedOptions"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:touch="clr-namespace:Tango.Touch.Controls;assembly=Tango.Touch"
+ xmlns:local="clr-namespace:Tango.PPC.Jobs.Dialogs"
+ mc:Ignorable="d"
+ Background="Transparent" d:DesignHeight="630" d:DesignWidth="560" Width="480" Height="350"
+ d:DataContext="{d:DesignInstance Type=local:MessageDiscardAdvancedOptionsVM, IsDesignTimeCreatable=False}">
+ <Border BorderBrush="{StaticResource TangoRippleDarkBrush}" Margin="-24" CornerRadius="40" BorderThickness="2" Background="{StaticResource TangoPrimaryBackgroundBrush}">
+
+ <Grid>
+ <Grid.RowDefinitions>
+ <RowDefinition Height="Auto"/>
+ <RowDefinition Height="Auto"/>
+ <RowDefinition Height="1*"/>
+ </Grid.RowDefinitions>
+
+ <DockPanel VerticalAlignment="Top" Margin="0 16 18 18" Grid.Row="0">
+ <touch:TouchIconButton DockPanel.Dock="Right" VerticalAlignment="Center" Height="46" Command="{Binding CloseCommand}" Icon="CloseCircleOutline" RippleBrush="{StaticResource TangoRippleDarkBrush}" Foreground="{StaticResource TangoDarkForegroundBrush}" HorizontalAlignment="Right" />
+ </DockPanel>
+
+ <StackPanel Grid.Row="1">
+ <TextBlock Height="Auto" Margin="50 20 50 10" FontSize="{StaticResource TangoHeaderFontSize}" FontWeight="SemiBold" HorizontalAlignment="Center" TextWrapping="Wrap">Discard all advanced options?</TextBlock>
+
+ <TextBlock Height="Auto" Margin="50 20 50 10" FontSize="{StaticResource TangoMessageBoxButtonFontSize}" FontWeight="SemiBold" HorizontalAlignment="Center" TextWrapping="Wrap">Only the first color will remain.</TextBlock>
+ </StackPanel>
+ <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Grid.Row="2">
+ <touch:TouchButton Margin="0 21 0 0 " Command="{Binding CloseCommand}" Width="164" Height="60" FontSize="{StaticResource TangoMessageBoxButtonFontSize}" BorderBrush="{StaticResource TangoPrimaryAccentBrush}" VerticalAlignment="Center" HorizontalAlignment="Center" Style="{StaticResource TangoMessageBoxButton}" BorderThickness="2" >No</touch:TouchButton>
+ <touch:TouchButton Margin="40 21 0 0 " Command="{Binding OKCommand}" Width="164" Height="60" FontSize="{StaticResource TangoMessageBoxButtonFontSize}" Background="{StaticResource TangoPrimaryAccentBrush}" Foreground="{StaticResource TangoLightForegroundBrush}" VerticalAlignment="Center" HorizontalAlignment="Center" Style="{StaticResource TangoMessageBoxButton}">Yes</touch:TouchButton>
+ </StackPanel>
+ </Grid>
+ </Border>
+</UserControl>
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/MessageDiscardAdvancedOptions.xaml.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/MessageDiscardAdvancedOptions.xaml.cs
new file mode 100644
index 000000000..037f191ba
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/MessageDiscardAdvancedOptions.xaml.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace Tango.PPC.Jobs.Dialogs
+{
+ /// <summary>
+ /// Interaction logic for MessageDiscardAdvancedOptionsDialog.xaml
+ /// </summary>
+ public partial class MessageDiscardAdvancedOptions : UserControl
+ {
+ public MessageDiscardAdvancedOptions()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/MessageDiscardAdvancedOptionsVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/MessageDiscardAdvancedOptionsVM.cs
new file mode 100644
index 000000000..8165a3013
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/MessageDiscardAdvancedOptionsVM.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.SharedUI;
+
+namespace Tango.PPC.Jobs.Dialogs
+{
+ public class MessageDiscardAdvancedOptionsVM : DialogViewVM
+ {
+
+ public MessageDiscardAdvancedOptionsVM()
+ {
+
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/VectorFineTuningDialog.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/VectorFineTuningDialog.xaml
index b967ddec2..2e3732eff 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/VectorFineTuningDialog.xaml
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/VectorFineTuningDialog.xaml
@@ -15,7 +15,7 @@
mc:Ignorable="d"
Background="{StaticResource TangoMidBackgroundBrush}"
d:DesignHeight="1280" d:DesignWidth="800" Width="750" Height="1200"
- d:DataContext="{d:DesignInstance Type=vm:VectorFineTuningDialogVM, IsDesignTimeCreatable=False}" >
+ d:DataContext="{d:DesignInstance Type=vm:VectorFineTuningDialogVM, IsDesignTimeCreatable=False}" touch:TouchPanelEureka.MakeEurekaFullScreen="True">
<UserControl.Resources>
<ResourceDictionary>
@@ -231,7 +231,7 @@
<Run Text="{Binding TrialNumber, Mode=OneWay}" Foreground="{StaticResource TangoGrayTextBrush}"></Run>
</TextBlock>
</StackPanel>
-
+ <Grid Grid.Row="1" HorizontalAlignment="Stretch" Grid.RowSpan="2" >
<touch:TouchNavigationLinks Grid.Row="1" BorderBrush="{StaticResource TangoDividerBrush}" BorderThickness="0 0 0 3" x:Name="navigationCSTLinks" SelectionChanged="TouchNavigationLinks_SelectionChanged" HorizontalContentAlignment="Center"
SelectedIndex="{Binding SelectedTabIndex,Mode=TwoWay}" VerticalAlignment="Bottom" Margin="0,0,0,30" Padding="40 0 40 0"
FontSize="{StaticResource TangoNavigationLinksFontSize}" Grid.RowSpan="2" PreviewMouseDown="NavigationCSTLinks_PreviewMouseDown" PreviewTouchDown="NavigationCSTLinks_PreviewTouchDown" >
@@ -262,6 +262,11 @@
</touch:TouchNavigationLinks.Style>
</touch:TouchNavigationLinks>
+ <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Margin="0 0 20 20" >
+ <TextBlock HorizontalAlignment="Left" VerticalAlignment="Center" FontSize="{StaticResource TangoButtonFontSize}">Length:</TextBlock>
+ <touch:TouchNumericTextBox Margin="20 0 20 5" Width="80" Height="40" HorizontalAlignment="Stretch" BorderThickness="0.8" Minimum="60" Maximum="999" Value="{Binding FineTuningTrialLengthMeters, Mode=TwoWay}" FontSize="{StaticResource TangoButtonFontSize}" FontWeight="Normal" BorderBrush="{StaticResource TangoDividerBrush}" HideUnderline="True" HasDecimalPoint="False" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/>
+ </StackPanel>
+ </Grid>
<Grid Grid.Row="3" Margin="40 0 20 0">
<Grid Visibility="{Binding IsManualFineTuning, Converter={StaticResource BooleanToVisibilityInverseConverter}}" Margin="0 0 24 0" x:Name="Automatic">
@@ -548,7 +553,18 @@
<TextBlock FontSize="{StaticResource TangoSmallFontSize}" FontWeight="SemiBold" Margin="10 0 0 -5" HorizontalAlignment="Left" >Correction</TextBlock>
<Border Grid.Row="1" Height="220" Margin="0 10 0 0" CornerRadius="0 0 0 0" BorderThickness="0" BorderBrush="{StaticResource TangoGrayBrush}" Background="{Binding VisualCorrectionModel.ManualColorBrush}" >
- <UniformGrid Rows="3" Columns="1" VerticalAlignment="Bottom" Background="Transparent">
+ <Grid>
+ <Grid.RowDefinitions>
+ <RowDefinition Height="1*"/>
+ <RowDefinition Height="Auto"/>
+ </Grid.RowDefinitions>
+ <StackPanel Grid.Row="0" Orientation="Vertical" VerticalAlignment="Center" HorizontalAlignment="Center" Visibility="{Binding VisualCorrectionModel.IsOutOfGamut,Converter={StaticResource BooleanToVisibilityConverter}}">
+ <Image Margin="30 0 24 0" Stretch="Fill" Width="47" Height="43" RenderOptions.BitmapScalingMode="Fant" Source="../Images/ColorSelection/Exclamation.png" HorizontalAlignment="Center"></Image>
+ <!--<Border Margin=" 0 10 0 0" MinWidth="115" Height="31" Background="{StaticResource TangoDarkForegroundBrush}" CornerRadius="2">
+ <TextBlock Margin="10 0" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="{StaticResource TangoLightForegroundBrush}" FontSize="{StaticResource TangoSmallFontSize}" FontWeight="SemiBold" Text="This color is not supported." ></TextBlock>
+ </Border>-->
+ </StackPanel>
+ <UniformGrid Grid.Row="1" Rows="3" Columns="1" VerticalAlignment="Bottom" Background="Transparent">
<TextBlock FontWeight="Medium" Margin="10 10 0 0" VerticalAlignment="Center" Foreground="{Binding VisualCorrectionModel.ManualColorBrush, Converter={StaticResource ColorContrastConverter}}" FontSize="{StaticResource TangoSmallFontSize}">
<Run Text="L:" ></Run>
<Run Text="{Binding VisualCorrectionModel.L, StringFormat={}{0:F2}}"></Run>
@@ -562,7 +578,8 @@
<Run Text="{Binding VisualCorrectionModel.B, StringFormat={}{0:F2}}"></Run>
</TextBlock>
</UniformGrid>
- </Border>
+ </Grid>
+ </Border>
</StackPanel>
<StackPanel Orientation="Vertical" Grid.Column="2" Grid.Row="1" Margin="0 10 0 0" Visibility="{Binding IsTargetVisible, Converter={StaticResource BooleanToVisibilityConverter}, Mode=TwoWay}">
<TextBlock FontSize="{StaticResource TangoSmallFontSize}" FontWeight="SemiBold" Margin="10 0 0 -5" HorizontalAlignment="Left" >Target</TextBlock>
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/VectorFineTuningDialogVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/VectorFineTuningDialogVM.cs
index e473fa420..e6094d0d7 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/VectorFineTuningDialogVM.cs
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/VectorFineTuningDialogVM.cs
@@ -716,7 +716,20 @@ namespace Tango.PPC.Jobs.Dialogs
}
}
}
-
+
+ private int _fineTuningTrialLengthMeters;
+
+ public int FineTuningTrialLengthMeters
+ {
+ get { return _fineTuningTrialLengthMeters; }
+ set
+ {
+ _fineTuningTrialLengthMeters = value;
+ RaisePropertyChangedAuto();
+ OnUpdateSettingineTuningTrialLengthMeters();
+ }
+ }
+
#endregion
#region Commands
@@ -757,6 +770,9 @@ namespace Tango.PPC.Jobs.Dialogs
IsManualFineTuning = false;
IsOnlyManual = false;
VisualCorrectionModel = new VisualOffsetModel();
+
+ var settings = SettingsManager.Default.GetOrCreate<PPCSettings>();
+ FineTuningTrialLengthMeters = settings.FineTuningTrialLengthMeters;
}
/// <summary>
@@ -818,6 +834,12 @@ namespace Tango.PPC.Jobs.Dialogs
TargetB = brushstop.B;
TargetA = brushstop.A;
BrushStopModel.ConvertColorToVolume();
+ if (BrushStopModel.Black > 0 && BrushStopModel.Black < 0.5)
+ {
+ BrushStopModel.PreventPropertyUpdate = true;
+ BrushStopModel.Black = 0;
+ BrushStopModel.PreventPropertyUpdate = false;
+ }
BrushStopModel.ColorSpace = ColorSpaces.LAB;
IsOnlyManual = false;
}
@@ -828,6 +850,7 @@ namespace Tango.PPC.Jobs.Dialogs
Magenta = BrushStopModel.Magenta;
Yellow = BrushStopModel.Yellow;
Black = BrushStopModel.Black;
+
MeasuredL = MeasuredB = MeasuredA = null;
TestColor = null;
@@ -1319,6 +1342,7 @@ namespace Tango.PPC.Jobs.Dialogs
ActiveLogModel.VectorCorrectionL = VisualCorrectionModel.L;
ActiveLogModel.VectorCorrectionA = VisualCorrectionModel.A;
ActiveLogModel.VectorCorrectionB = VisualCorrectionModel.B;
+ VisualCorrectionModel.IsOutOfGamut = IsOutOfGammot();
TestCommand.RaiseCanExecuteChanged();
ByPassTestCommand.RaiseCanExecuteChanged();
@@ -1333,6 +1357,7 @@ namespace Tango.PPC.Jobs.Dialogs
ActiveLogModel.VectorCorrectionL = VisualCorrectionModel.L;
ActiveLogModel.VectorCorrectionA = VisualCorrectionModel.A;
ActiveLogModel.VectorCorrectionB = VisualCorrectionModel.B;
+ VisualCorrectionModel.IsOutOfGamut = IsOutOfGammot();
TestCommand.RaiseCanExecuteChanged();
ByPassTestCommand.RaiseCanExecuteChanged();
}
@@ -1347,10 +1372,35 @@ namespace Tango.PPC.Jobs.Dialogs
ActiveLogModel.VectorCorrectionL = VisualCorrectionModel.L;
ActiveLogModel.VectorCorrectionA = VisualCorrectionModel.A;
ActiveLogModel.VectorCorrectionB = VisualCorrectionModel.B;
+ VisualCorrectionModel.IsOutOfGamut = IsOutOfGammot();
TestCommand.RaiseCanExecuteChanged();
ByPassTestCommand.RaiseCanExecuteChanged();
}
+ private bool IsOutOfGammot()
+ {
+ BrushStopModel.ColorSpace = ColorSpaces.LAB;
+ BrushStopModel.PreventPropertyUpdate = true;
+ BrushStopModel.L = ActiveLogModel.VectorCorrectionL;
+ BrushStopModel.A = ActiveLogModel.VectorCorrectionA;
+ BrushStopModel.B = ActiveLogModel.VectorCorrectionB;
+ BrushStopModel.PreventPropertyUpdate = false;
+ BrushStopModel.IsOutputOfGamut(ColorSpaces.LAB);
+
+ return BrushStopModel.IsOutOfGamut;
+
+ }
+
+ private void OnUpdateSettingineTuningTrialLengthMeters()
+ {
+ if (FineTuningTrialLengthMeters != 0)
+ {
+ var settings = SettingsManager.Default.GetOrCreate<PPCSettings>();
+ settings.FineTuningTrialLengthMeters = FineTuningTrialLengthMeters;
+ settings.Save();
+ }
+ }
+
#endregion
#region Job
@@ -1420,7 +1470,7 @@ namespace Tango.PPC.Jobs.Dialogs
}
BrushStopModel.ColorSpace = ColorSpaces.LAB;
}
- var settings = SettingsManager.Default.GetOrCreate<PPCSettings>();
+ // var settings = SettingsManager.Default.GetOrCreate<PPCSettings>();
using (ObservablesContext db = ObservablesContext.CreateDefault())
{
@@ -1440,7 +1490,7 @@ namespace Tango.PPC.Jobs.Dialogs
Segment segment = new Segment();
segment.Name = "VFT Segment";
- segment.Length = settings.FineTuningTrialLengthMeters;
+ segment.Length = FineTuningTrialLengthMeters;//settings.FineTuningTrialLengthMeters;
segment.Job = job;
segment.JobGuid = job.Guid;
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/BrushStopModel.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/BrushStopModel.cs
index d415dbb79..ffec3cfa1 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/BrushStopModel.cs
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/BrushStopModel.cs
@@ -1,23 +1,18 @@
-using System;
-using ColorMine.ColorSpaces;
+using ColorMine.ColorSpaces;
+using Newtonsoft.Json;
+using System;
using System.Collections.Generic;
using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.BL.Entities;
-using Tango.SharedUI;
using System.Windows.Media;
+using Tango.BL.Dispensing;
+using Tango.BL.Entities;
using Tango.BL.Enumerations;
-using Tango.Core.Threading;
using Tango.ColorConversion;
-using System.Reflection;
-using Tango.BL.Dispensing;
-using Tango.BL;
-using Tango.Core.ExtensionMethods;
-using Newtonsoft.Json;
-using Tango.Settings;
-using Tango.PPC.Common;
+using Tango.Core.Threading;
using Tango.PMR.ColorLab;
+using Tango.PPC.Common;
+using Tango.Settings;
+using Tango.SharedUI;
namespace Tango.PPC.Jobs.Models
{
@@ -1558,6 +1553,10 @@ namespace Tango.PPC.Jobs.Models
_yellow = (output.SingleCoordinates.OutputLiquids.SingleOrDefault(x => x.LiquidType == PMR.ColorLab.LiquidType.Yellow).Volume);
_magenta = (output.SingleCoordinates.OutputLiquids.SingleOrDefault(x => x.LiquidType == PMR.ColorLab.LiquidType.Magenta).Volume);
_black = (output.SingleCoordinates.OutputLiquids.SingleOrDefault(x => x.LiquidType == PMR.ColorLab.LiquidType.Black).Volume);
+ if(_black > 0 && _black < 0.5)//bug 7959 0.001 < K% < 0.5 ==> reset the K to 0.
+ {
+ _black = 0;
+ }
IsOutOfGamut = output.OutOfGamut;
if(IsOutOfGamut)
{
@@ -1728,7 +1727,17 @@ namespace Tango.PPC.Jobs.Models
Configuration configuration = SegmentModel.Job.Machine.Configuration;
Rml rml = SegmentModel.Job.Rml;
+ bool bChangedVersion = false;
+ if (stop.BrushColorSpace == BL.Enumerations.ColorSpaces.Volume && rml.ColorConversionVersion == 6)
+ {
+ rml.ColorConversionVersion = 5;
+ bChangedVersion = true;
+ }
var output = _converter.Convert(stop, configuration, rml, false, false, false);
+ if (bChangedVersion)
+ {
+ rml.ColorConversionVersion = 6;
+ }
//output.SingleCoordinates.OutputLiquids.SingleOrDefault(x => x.LiquidType == PMR.ColorLab.LiquidType.Cyan).Volume;
if (stop.BrushColorSpace == BL.Enumerations.ColorSpaces.Volume)
@@ -1796,6 +1805,25 @@ namespace Tango.PPC.Jobs.Models
}
}
+ public void IsOutputOfGamut(ColorSpaces colorSpace)
+ {
+ try
+ {
+ BrushStop stop = CreateBrushStop(colorSpace);
+ Configuration configuration = SegmentModel.Job.Machine.Configuration;
+ Rml rml = SegmentModel.Job.Rml;
+ IsOutOfGamut = _converter.IsOutOfGamut(stop, configuration, rml);
+ }
+ catch (Exception ex)
+ {
+ LogManager.Log(ex, "An error occurred while trying to test IsOutputOfGammut from conversion engine." + ex);
+ BestMatchColor = Color.FromRgb((byte)Red, (byte)Green, (byte)Blue);
+ }
+ finally
+ {
+ IsBusy = false;
+ }
+ }
#endregion
}
}
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/FavoriteColor.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/FavoriteColor.cs
index 43d41539e..00c8293bd 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/FavoriteColor.cs
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/FavoriteColor.cs
@@ -91,6 +91,17 @@ namespace Tango.PPC.Jobs.Models
get { return new SolidColorBrush(Color); }
}
+ [BsonIgnore]
+ private bool _isSelected;
+ [BsonIgnore]
+ public bool IsSelected
+ {
+ get { return _isSelected; }
+ set { _isSelected = value;
+ RaisePropertyChangedAuto();}
+ }
+
+
#endregion
public FavoriteColor()
@@ -104,6 +115,7 @@ namespace Tango.PPC.Jobs.Models
Cyan = Magenta = Yellow = Black = 0;
Color = Colors.White;
ColorSpace = ColorSpaces.Volume;
+ IsSelected = false;
}
}
}
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/JobModel.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/JobModel.cs
index d2ad7e96b..d8a71fc78 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/JobModel.cs
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/JobModel.cs
@@ -130,7 +130,7 @@ namespace Tango.PPC.Jobs.Models
{
_numberofunits = value;
RaisePropertyChangedAuto();
- RaisePropertyChanged(nameof(LengthIncludingNumberOfUnits));
+ OnUpdateLengthhWeight();
RaisePropertyChanged(nameof(GetEstimatedDuration));
}
}
@@ -191,6 +191,20 @@ namespace Tango.PPC.Jobs.Models
}
}
+ [JsonIgnore]
+ public double LengthIncludingNumberOfUnitsAndSpools
+ {
+ get
+ {
+ if(NumberSpools >= 4)
+ {
+ return LengthIncludingNumberOfUnits * NumberSpools;
+ }
+
+ return LengthIncludingNumberOfUnits;
+ }
+ }
+
protected Rml _rml;
/// <summary>
@@ -211,6 +225,8 @@ namespace Tango.PPC.Jobs.Models
_rml = value;
RaisePropertyChangedAuto();
RaisePropertyChanged( nameof(GetEstimatedDuration));
+ RaisePropertyChanged(nameof(GramPerLength));
+ OnUpdateLengthhWeight();
}
}
}
@@ -335,6 +351,55 @@ namespace Tango.PPC.Jobs.Models
get { return SpoolType.Guid; }
}
+ private int _numberSpools;
+ [JsonIgnore]
+ public int NumberSpools
+ {
+ get { return _numberSpools; }
+ set {
+ if(_numberSpools != value)
+ {
+ _numberSpools = value;
+ RaisePropertyChangedAuto();
+ OnNumberOfSpoolsChanged();
+ RaisePropertyChanged(nameof(Copies));
+ OnUpdateLengthhWeight();
+ }
+ }
+ }
+
+ protected Int32 _copies;
+ [JsonIgnore]
+ public Int32 Copies //_numberOfUnitsMultipliedBySpools
+ {
+ get
+ {
+ return _copies;
+ }
+
+ set
+ {
+ if (_copies != value)
+ {
+ if (NumberSpools>=4)
+ {
+ if(value < NumberSpools)
+ _copies = NumberSpools;
+ else
+ {
+ int coeff = (int)(value + NumberSpools - 1) / NumberSpools;
+ _copies = coeff * NumberSpools;
+ }
+ NumberOfUnits = (int)_copies / NumberSpools;
+ OnUpdateLengthhWeight();
+ }
+ else
+ _copies = value;
+ RaisePropertyChangedAuto();
+ }
+ }
+ }
+
protected User _user;
/// <summary>
@@ -606,11 +671,56 @@ namespace Tango.PPC.Jobs.Models
}
}
+
+
+
+ [JsonIgnore]
+ public bool IsEureka { get; set; }
+
+ [JsonIgnore]
+ public double GramPerLength
+ {
+ get
+ {
+ if(Rml != null)
+ return Rml.GetGramPer1000mLength;
+ return 0d;
+ }
+ }
+
+ [JsonIgnore]
+ public double WeightIncludingNumberOfUnits
+ {
+ get
+ {
+ if (Rml == null)
+ return 0;
+
+ var gramPerlength = Rml.GetGramPer1000mLength;
+ var weight = (LengthIncludingNumberOfUnits * gramPerlength) / (1000);//(g)
+ return weight;
+ }
+ }
+
+ [JsonIgnore]
+ public double WeightIncludingNumberOfUnitsAndSpools
+ {
+ get
+ {
+ if (NumberSpools >= 4)
+ {
+ return WeightIncludingNumberOfUnits * NumberSpools;
+ }
+
+ return WeightIncludingNumberOfUnits;
+ }
+ }
+
#endregion
#region constructors
- public JobModel(List<ColorSpace> list)
+ public JobModel(List<ColorSpace> list, bool isEureka)
{
ColorSpacesList = list;
_segments = new SynchronizedObservableCollection<SegmentModel>();
@@ -625,7 +735,12 @@ namespace Tango.PPC.Jobs.Models
GroupingSegments.CollectionChanged -= SegmentsGroup_CollectionChanged;
GroupingSegments.CollectionChanged += SegmentsGroup_CollectionChanged;
SelectAllSegments = false;
- NumberOfUnits = 1;
+ //if not eurika
+ if (!isEureka)
+ NumberOfUnits = 1;
+ else
+ NumberOfUnits = 4;
+ IsEureka = isEureka;
}
#endregion
@@ -973,7 +1088,9 @@ namespace Tango.PPC.Jobs.Models
if (joblength > maxLength)
{
var maxRep = (maxLength == 0 ? 999 : (maxLength / Length));
- await TangoIOC.Default.GetInstance<INotificationProvider>().ShowError($"You have reached the maximum length for this job {maxLength}.");
+
+ if(!IsEureka)
+ await TangoIOC.Default.GetInstance<INotificationProvider>().ShowError($"You have reached the maximum length for this job {maxLength}.");
//if(NumberOfUnits > 1 && NumberOfUnits > maxRep)
//{
@@ -981,12 +1098,20 @@ namespace Tango.PPC.Jobs.Models
//}
}
RaisePropertyChanged(nameof(Length));
- RaisePropertyChanged(nameof(LengthIncludingNumberOfUnits));
-
+ OnUpdateLengthhWeight();
+
}
RaisePropertyChanged(nameof(GetEstimatedDuration));
}
+ private void OnUpdateLengthhWeight()
+ {
+ RaisePropertyChanged(nameof(LengthIncludingNumberOfUnits));
+ RaisePropertyChanged(nameof(LengthIncludingNumberOfUnitsAndSpools));
+ RaisePropertyChanged(nameof(WeightIncludingNumberOfUnits));
+ RaisePropertyChanged(nameof(WeightIncludingNumberOfUnitsAndSpools));
+ }
+
private void OnSelectAllChanged()
{
if (Segments != null )
@@ -1009,11 +1134,20 @@ namespace Tango.PPC.Jobs.Models
_preventChange = false;
OnLengthChanged();
}
-
+
+ private void OnNumberOfSpoolsChanged()
+ {
+ if(NumberSpools > 0)
+ {
+ int coeff = (int)(Copies + NumberSpools -1) / NumberSpools;
+ Copies = coeff * NumberSpools;
+ }
+ }
+
#endregion
#region collapsed mode actions
-
+
public void InsertWhiteGapToSelectedSegments()
{
if (false == Segments.ToList().Any(x => x.IsSelected))
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/SegmentModel.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/SegmentModel.cs
index 40450c001..fb4932a2e 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/SegmentModel.cs
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/SegmentModel.cs
@@ -96,7 +96,23 @@ namespace Tango.PPC.Jobs.Models
UndoRedoManager.Instance.InsertAndExecuteCommand(new ChangeLengthCommand(this, _lastLength, value));
_lastLength = Length;
}
-
+
+ private double _weight;
+
+ public double Weight
+ {
+ get { return _weight; }
+ set
+ {
+ if(_weight != value)
+ {
+ _weight = value;
+ OnWeightChanged();
+ RaisePropertyChangedAuto();
+ }
+ }
+ }
+
protected Int32 _segmentindex;
/// <summary>
/// Gets or sets the index of the segment.
@@ -813,19 +829,45 @@ namespace Tango.PPC.Jobs.Models
/// <summary>
/// Called when the Length has changed.
- /// </summary>
- /// <param name="length"></param>
protected void OnLengthChanged(double length)
{
- //if (_lastLength != length)
+ if (Job != null && Job.Rml != null)
{
+ var gramPerlength = Job.Rml.GetGramPer1000mLength;
+ var weight = (Length * gramPerlength)/( 1000 );//(kg)
+ _weight = weight;
+ RaisePropertyChanged(nameof(Weight));
+ //if (_lastLength != length)
+ {
+ BrushStops.ToList().ForEach(x => x.RaiseOffsetChanged());
+ //_lastLength = Length;
+ //RaisePropertyChanged(nameof(LengthWithFactor));
+ RaisePropertyChanged(nameof(LengthWithInterSegment));
+ RaisePropertyChanged(nameof(LeftOffsetLabel));
+ RaisePropertyChanged(nameof(MiddleOffsetLabel));
+ RaisePropertyChanged(nameof(RightOffsetLabel));
+ }
+ }
+ }
+
+ /// <summary>
+ /// Called when [weight changed].
+ /// </summary>
+ private void OnWeightChanged()
+ {
+ if (Job != null && Job.Rml != null)
+ {
+ var gramPerlength = Job.Rml.GetGramPer1000mLength;
+ var length = (Weight * 1000 )/ gramPerlength;//(m) weight in gr
+ _length = length;
+ RaisePropertyChanged(nameof(Length));
+
BrushStops.ToList().ForEach(x => x.RaiseOffsetChanged());
- //_lastLength = Length;
- //RaisePropertyChanged(nameof(LengthWithFactor));
RaisePropertyChanged(nameof(LengthWithInterSegment));
RaisePropertyChanged(nameof(LeftOffsetLabel));
RaisePropertyChanged(nameof(MiddleOffsetLabel));
RaisePropertyChanged(nameof(RightOffsetLabel));
+
}
}
@@ -834,49 +876,62 @@ namespace Tango.PPC.Jobs.Models
/// </summary>
/// <param name="brushstops"></param>
protected void OnBrushStopsChanged(SynchronizedObservableCollection<BrushStopModel> brushstops)
- {
- if (brushstops != null)
{
- brushstops.CollectionChanged -= BrushStops_CollectionChanged;
- brushstops.CollectionChanged += BrushStops_CollectionChanged;
-
- foreach (var stop in brushstops.ToList())
+ if (brushstops != null)
{
- stop.RaiseOffsetChanged();
+ brushstops.CollectionChanged -= BrushStops_CollectionChanged;
+ brushstops.CollectionChanged += BrushStops_CollectionChanged;
+
+ foreach (var stop in brushstops.ToList())
+ {
+ stop.RaiseOffsetChanged();
+ }
+
+ RaiseSegmentBrushChanged();
}
+ }
- RaiseSegmentBrushChanged();
+ private void AddGap()
+ {
+ EnableInterSegment = true;
}
- }
- private void AddGap()
- {
- EnableInterSegment = true;
- }
+ private void DeleteGap()
+ {
+ EnableInterSegment = false;
+ }
- private void DeleteGap()
- {
- EnableInterSegment = false;
- }
+ public void UpdateBrushStops()
+ {
+ foreach (var stop in BrushStops.Where(x => x.ColorSpace == BL.Enumerations.ColorSpaces.RGB || x.ColorSpace == BL.Enumerations.ColorSpaces.LAB).ToList())
+ {
+ try
+ {
+ stop.OnBrushStopFieldValueChanged();
+ stop.InitColorsFromBestmatch();
+ //TODO ASK ROY!!!!!!
+ //output.ApplyOnBrushStopVolumesOnly(stop);
+ }
+ catch (Exception ex)
+ {
+ LogManager.Log(ex, $"Error updating stop volumes after changing thread on segment {stop.SegmentModel.SegmentIndex}, stop {stop.StopIndex}.");
+ }
+ }
+ }
- public void UpdateBrushStops()
- {
- foreach (var stop in BrushStops.Where(x => x.ColorSpace == BL.Enumerations.ColorSpaces.RGB || x.ColorSpace == BL.Enumerations.ColorSpaces.LAB).ToList())
+ public void UpdateWeightOnRMLChange( bool isWeightView)
{
- try
+ if(isWeightView)
{
- stop.OnBrushStopFieldValueChanged();
- stop.InitColorsFromBestmatch();
- //TODO ASK ROY!!!!!!
- //output.ApplyOnBrushStopVolumesOnly(stop);
+ OnWeightChanged();
}
- catch (Exception ex)
+ else
{
- LogManager.Log(ex, $"Error updating stop volumes after changing thread on segment {stop.SegmentModel.SegmentIndex}, stop {stop.StopIndex}.");
+ OnLengthChanged(Length);
}
}
+
+
+ #endregion
}
-
- #endregion
}
-}
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/VisualOffsetModel.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/VisualOffsetModel.cs
index a0b6156a3..74651992e 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/VisualOffsetModel.cs
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/VisualOffsetModel.cs
@@ -237,7 +237,24 @@ namespace Tango.PPC.Jobs.Models
return new SolidColorBrush() { Color = Color.FromRgb((byte)rgb.R, (byte)rgb.G, (byte)rgb.B) };
}
}
-
+
+ private bool _isOutOfGamut;
+ /// <summary>
+ /// Gets or sets a value indicating whether this instance is out of gamut.
+ /// </summary>
+ public bool IsOutOfGamut
+ {
+ get { return _isOutOfGamut; }
+ set
+ {
+ if (_isOutOfGamut != value)
+ {
+ _isOutOfGamut = value;
+ RaisePropertyChangedAuto();
+ }
+ }
+ }
+
#endregion
public VisualOffsetModel()
@@ -248,7 +265,9 @@ namespace Tango.PPC.Jobs.Models
MaxChroma = new VisualLCHOffset(TypeColorCorrection.Chroma, 1);
MinHue = new VisualLCHOffset(TypeColorCorrection.Hue, -1);
MaxHue = new VisualLCHOffset(TypeColorCorrection.Hue, 1);
-
+ IsOutOfGamut = false;
+
+
}
public void InitLAB(double l, double a, double b, double c, double h)
@@ -292,6 +311,7 @@ namespace Tango.PPC.Jobs.Models
B = b;
C = last_LCH.C;
H = last_LCH.h;
+ IsOutOfGamut = false;
}
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Resume/JobResumeDB.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Resume/JobResumeDB.cs
new file mode 100644
index 000000000..28184eee1
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Resume/JobResumeDB.cs
@@ -0,0 +1,83 @@
+using LiteDB;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Tango.PPC.Jobs.Resume
+{
+ public class JobResumeDB : IDisposable
+ {
+ private LiteDatabase _db;
+ private ILiteCollection<JobResumeModel> _collection;
+
+ private static Lazy<JobResumeDB> _default = new Lazy<JobResumeDB>(() => new JobResumeDB());
+
+ public static JobResumeDB Default
+ {
+ get
+ {
+ return _default.Value;
+ }
+ }
+
+ private JobResumeDB()
+ {
+ Init();
+ }
+
+ private void Init()
+ {
+ String dbFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Twine", "Tango", "Job Resume v2");
+ Directory.CreateDirectory(dbFolder);
+ _db = new LiteDatabase($"Filename={Path.Combine(dbFolder, "job_resume.db")};connection=shared");
+ _collection = _db.GetCollection<JobResumeModel>("JobResume");
+ }
+
+ public void Update(JobResumeModel model)
+ {
+ _collection.Update(model);
+ }
+
+ public void Add(JobResumeModel model)
+ {
+ _collection.Insert(model);
+ }
+
+ public List<JobResumeModel> GetAll()
+ {
+ return _collection.FindAll().ToList();
+ }
+
+ public JobResumeModel Get(String jobGuild)
+ {
+ return _collection.FindOne(x => x.JobGuid == jobGuild);
+ }
+
+ public void Delete(JobResumeModel model)
+ {
+ _collection.Delete(model.JobGuid);
+ }
+
+ public void Delete(String jobGuid)
+ {
+ _collection.Delete(jobGuid);
+ }
+
+ ~JobResumeDB()
+ {
+ Dispose();
+ }
+
+ public void Dispose()
+ {
+ try
+ {
+ _db?.Dispose();
+ }
+ catch { }
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Resume/JobResumeModel.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Resume/JobResumeModel.cs
new file mode 100644
index 000000000..4ded7e313
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Resume/JobResumeModel.cs
@@ -0,0 +1,21 @@
+using LiteDB;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Tango.PPC.Jobs.Resume
+{
+ public class JobResumeModel
+ {
+ [BsonId]
+ public String JobGuid { get; set; }
+
+ public int RemainingUnits { get; set; }
+
+ public double GlobalStartPosition { get; set; }
+
+ public double FirstUnitStartPosition { get; set; }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Tango.PPC.JobsV2.csproj b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Tango.PPC.JobsV2.csproj
index 6263cab77..5ec7c3f39 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Tango.PPC.JobsV2.csproj
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Tango.PPC.JobsV2.csproj
@@ -143,6 +143,10 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
+ <Page Include="Dialogs\MessageDiscardAdvancedOptions.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
<Page Include="Dialogs\RepeatJobView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
@@ -179,6 +183,10 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
+ <Page Include="Views\JobEurekaView.xaml">
+ <Generator>MSBuild:Compile</Generator>
+ <SubType>Designer</SubType>
+ </Page>
<Page Include="Views\JobView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
@@ -222,6 +230,7 @@
<Compile Include="Converters\ColorTabToVisibilityConverter.cs" />
<Compile Include="Converters\DeltaLCHToTextConverter.cs" />
<Compile Include="Converters\DoubleNullConverter.cs" />
+ <Compile Include="Converters\FirstValueCollectionConverter.cs" />
<Compile Include="Converters\HueValueToTextConvereter.cs" />
<Compile Include="Converters\InterSegmentLengthToWidthConverter.cs" />
<Compile Include="Converters\JobsCategoryToOpacityConverter.cs" />
@@ -230,8 +239,12 @@
<Compile Include="Converters\JobToEmbroideryImageConverter.cs" />
<Compile Include="Converters\JobToPieImageConverter.cs" />
<Compile Include="Converters\JobTypeToImageConverter.cs" />
+ <Compile Include="Converters\LengthToWeightConverter.cs" />
+ <Compile Include="Converters\LengthWithSpoolsConverter.cs" />
<Compile Include="Converters\MarginOffsetSliderConverter .cs" />
+ <Compile Include="Converters\ObjectsConverter.cs" />
<Compile Include="Converters\RoundDoubleConverter.cs" />
+ <Compile Include="Converters\TimeSpanToHoursConverter.cs" />
<Compile Include="Dialogs\AddSegmentWarningDialog.xaml.cs">
<DependentUpon>AddSegmentWarningDialog.xaml</DependentUpon>
</Compile>
@@ -279,6 +292,10 @@
</Compile>
<Compile Include="Dialogs\CatalogSelectionViewVM.cs" />
<Compile Include="Dialogs\JobCreationViewVM.cs" />
+ <Compile Include="Dialogs\MessageDiscardAdvancedOptionsVM.cs" />
+ <Compile Include="Dialogs\MessageDiscardAdvancedOptions.xaml.cs">
+ <DependentUpon>MessageDiscardAdvancedOptions.xaml</DependentUpon>
+ </Compile>
<Compile Include="Dialogs\RepeatJobView.xaml.cs">
<DependentUpon>RepeatJobView.xaml</DependentUpon>
</Compile>
@@ -335,6 +352,8 @@
<DependentUpon>ColorCorrectionReport.xaml</DependentUpon>
</Compile>
<Compile Include="Reports\ColorCorrectionRepotVM.cs" />
+ <Compile Include="Resume\JobResumeDB.cs" />
+ <Compile Include="Resume\JobResumeModel.cs" />
<Compile Include="UndoRedoCommands\AddBrushStopCommand.cs" />
<Compile Include="UndoRedoCommands\AddNewSegmentCommand.cs" />
<Compile Include="UndoRedoCommands\ChangeLengthCommand.cs" />
@@ -370,6 +389,9 @@
<Compile Include="Views\JobSummeryView.xaml.cs">
<DependentUpon>JobSummeryView.xaml</DependentUpon>
</Compile>
+ <Compile Include="Views\JobEurekaView.xaml.cs">
+ <DependentUpon>JobEurekaView.xaml</DependentUpon>
+ </Compile>
<Compile Include="Views\JobView.xaml.cs">
<DependentUpon>JobView.xaml</DependentUpon>
</Compile>
@@ -735,7 +757,7 @@
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<ProjectExtensions>
<VisualStudio>
- <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" />
+ <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" />
</VisualStudio>
</ProjectExtensions>
</Project> \ No newline at end of file
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/JobViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/JobViewVM.cs
index 60db14e21..9d8ae1555 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/JobViewVM.cs
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/JobViewVM.cs
@@ -46,6 +46,8 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Tango.PPC.Jobs.ColorCorrectionTool;
using Tango.PPC.Common.Printing;
+using Tango.PPC.Jobs.Resume;
+using Tango.Core.ExtensionMethods;
namespace Tango.PPC.Jobs.ViewModels
{
@@ -68,7 +70,6 @@ namespace Tango.PPC.Jobs.ViewModels
private string _current_job_string;
private bool startingJob = false;
private List<ColorCatalog> _catalogs;
-
private string _jsonJobModelLoaded;
#region Properties
@@ -88,7 +89,6 @@ namespace Tango.PPC.Jobs.ViewModels
}
private JobModel _jobModel;
-
public JobModel JobModel
{
get { return _jobModel; }
@@ -99,6 +99,16 @@ namespace Tango.PPC.Jobs.ViewModels
}
}
+ public bool CanEdit
+ {
+ get {
+ return Job != null &&
+ (!MachineProvider.MachineOperator.IsPrinting
+ || MachineProvider.MachineOperator.RunningJob == null
+ || MachineProvider.MachineOperator.RunningJob.Guid != Job.Guid)
+ && !HasResumeModel;
+ }
+ }
private ICollectionView _segmentsCollectionView;
/// <summary>
@@ -220,6 +230,30 @@ namespace Tango.PPC.Jobs.ViewModels
}
}
+ private bool _isBasicMode;
+
+ public bool IsBasicMode
+ {
+ get { return _isBasicMode; }
+ set
+ {
+ if (_isBasicMode != value)
+ {
+ if (value == true && JobModel != null && JobModel.Segments.Count > 0)
+ {
+ var firstSegment = JobModel.Segments.Where(x => x.SegmentIndex == 1).FirstOrDefault();
+ if (JobModel.Segments.Count > 1 || firstSegment.IsGradient)
+ {
+ SetOrDiscardAll();
+ return;
+ }
+ }
+ _isBasicMode = value;
+ RaisePropertyChangedAuto();
+ }
+ }
+ }
+
private bool _isSummaryOpened;
public bool IsSummaryOpened
@@ -231,6 +265,45 @@ namespace Tango.PPC.Jobs.ViewModels
RaisePropertyChangedAuto();
}
}
+ private bool _isWeigthView;
+
+ public bool IsWeightView
+ {
+ get { return _isWeigthView; }
+ set
+ {
+ if (_isWeigthView != value)
+ {
+ _isWeigthView = value;
+
+ RaisePropertyChangedAuto();
+ }
+ }
+ }
+
+ private bool _showAdvanced;
+
+ public bool ShowAdvanced
+ {
+ get { return _showAdvanced; }
+ set
+ {
+ _showAdvanced = value;
+ RaisePropertyChangedAuto();
+ }
+ }
+
+ private JobResumeModel _resumeModel;
+ public JobResumeModel ResumeModel
+ {
+ get { return _resumeModel; }
+ set { _resumeModel = value; RaisePropertyChangedAuto(); RaisePropertyChanged(nameof(HasResumeModel)); RaisePropertyChanged(nameof(CanEdit)); }
+ }
+
+ public bool HasResumeModel
+ {
+ get { return ResumeModel != null; }
+ }
#endregion
@@ -286,6 +359,10 @@ namespace Tango.PPC.Jobs.ViewModels
public RelayCommand<SegmentsGroupModel> DeleteSegmentsGroupCommand { get; set; }
public RelayCommand<SegmentsGroupModel> RepeatSegmentsGroupCommand { get; set; }
+ public RelayCommand NavigateBackToJobs { get; set; }
+
+ public RelayCommand DropResumeCommand { get; set; }
+
#endregion
#region collapsed mode commands
@@ -358,7 +435,10 @@ namespace Tango.PPC.Jobs.ViewModels
CopyCommand = new RelayCommand(Copy);
UndoCommand = new RelayCommand(Undo);//(x) => { return UndoRedoManager.Instance.IsEnableUndoOperation(); }
RedoCommand = new RelayCommand(Redo);//(x) => { return UndoRedoManager.Instance.IsEnableRedoOperation();}
+ DropResumeCommand = new RelayCommand(DropResume);
+
+ NavigateBackToJobs = new RelayCommand(NavigateBack);
IsFullMode = true;
IsSummaryOpened = true;
_not_show_warning = false;
@@ -427,6 +507,22 @@ namespace Tango.PPC.Jobs.ViewModels
.WithSegmentsGroups()
.BuildAsync();
+ try
+ {
+ ResumeModel = JobResumeDB.Default.Get(Job.Guid);
+
+ if (ResumeModel != null)
+ {
+ LogManager.Log($"Job resume info found:\n{ResumeModel.ToJsonString()}");
+ }
+ }
+ catch (Exception ex)
+ {
+ LogManager.Log(ex, "Error retrieving job resume info from db.");
+ }
+
+ RaisePropertyChanged(nameof(CanEdit));
+
Job.NameChanged -= Job_NameChanged;
Job.NameChanged += Job_NameChanged;
@@ -451,6 +547,12 @@ namespace Tango.PPC.Jobs.ViewModels
RaisePropertyChanged(nameof(SelectedRML));
await LoadRML(_selectedRML);
+ if (BuildProvider.IsEureka && Job.Segments.Count == 1 && Job.Segments[0].BrushStops.Count == 1)
+ {
+ IsBasicMode = true;
+ }
+ else IsBasicMode = false;
+ IsWeightView = false;
LoadJobModel();
@@ -479,6 +581,7 @@ namespace Tango.PPC.Jobs.ViewModels
IsFullMode = true;
DyeCommand.RaiseCanExecuteChanged();
+ ShowAdvanced = Settings.ShowAdvancedOptions;
}
catch (Exception ex)
{
@@ -497,7 +600,7 @@ namespace Tango.PPC.Jobs.ViewModels
private void LoadJobModel()
{
SpoolType PPCSpoolType = null;
-
+
if (Settings.SpoolTypeGuid.IsNotNullOrEmpty())
{
PPCSpoolType = _spoolTypes.FirstOrDefault(x => x.Guid == Settings.SpoolTypeGuid);
@@ -512,7 +615,7 @@ namespace Tango.PPC.Jobs.ViewModels
PPCSpoolType = _spoolTypes.FirstOrDefault(x => x.Type == BL.Enumerations.SpoolTypes.FlatSpool);
}
- var jobModel = new JobModel(ColorSpaces)
+ var jobModel = new JobModel(ColorSpaces, BuildProvider.IsEureka)
{
Name = Job.Name,
Guid = Job.Guid,
@@ -529,7 +632,9 @@ namespace Tango.PPC.Jobs.ViewModels
Machine = Job.Machine,
JobType = Job.JobType,
InterSegmentLength = Job.InterSegmentLength,
- EnableInterSegment = Job.EnableInterSegment
+ EnableInterSegment = Job.EnableInterSegment,
+ NumberSpools = (BuildProvider.IsEureka ? Job.Spools : 1),
+ Copies = (BuildProvider.IsEureka ? Job.NumberOfUnits * Job.Spools : Job.NumberOfUnits)
};
Dictionary<string, SegmentsGroupModel> guidToGroup = new Dictionary<string, SegmentsGroupModel>();
if (Job.Version < 2)
@@ -661,8 +766,27 @@ namespace Tango.PPC.Jobs.ViewModels
startingJob = true;
LogManager.Log("Start job command pressed. Starting job and navigating to job progress view...");
await Save();
- var handler = await PrintingManager.Print(Job, _db, new PrintingConfiguration() { });
- await NavigationManager.NavigateTo<JobsV2Module>(nameof(JobProgressView));
+
+ var printConfig = new PrintingConfiguration();
+
+ if (HasResumeModel)
+ {
+ printConfig.FirstUnitStartPosition = ResumeModel.FirstUnitStartPosition;
+ printConfig.GlobalStartPosition = ResumeModel.GlobalStartPosition;
+ printConfig.RemainingUnits = ResumeModel.RemainingUnits;
+ //LogManager.Log($"!!!!! Start Job resume : FirstUnitStartPosition = {ResumeModel.FirstUnitStartPosition} GlobalStartPosition = {ResumeModel.GlobalStartPosition} RemainingUnits = {ResumeModel.RemainingUnits}", LogCategory.Debug);
+
+ }
+
+ var handler = await PrintingManager.Print(Job, _db, printConfig);
+
+ RaisePropertyChanged(nameof(CanEdit));
+
+ if (!BuildProvider.IsEureka)
+ {
+ await NavigationManager.NavigateTo<JobsV2Module>(nameof(JobProgressView));
+ }
+
startingJob = false;
}
catch (InsufficientLiquidQuantityException)
@@ -852,7 +976,9 @@ namespace Tango.PPC.Jobs.ViewModels
.WithSpools()
.BuildAsync();
if (JobModel != null)
+ {
JobModel.Rml = Job.Rml;
+ }
if (updateRML && JobModel != null)
{
@@ -861,12 +987,15 @@ namespace Tango.PPC.Jobs.ViewModels
{
if (segment is SegmentModel innerSegment)
{
+ innerSegment.UpdateWeightOnRMLChange(IsWeightView);
innerSegment.UpdateBrushStops();
+
}
else if (segment is SegmentsGroupModel group)
{
foreach (var segm in group.Segments)
{
+ segm.UpdateWeightOnRMLChange(IsWeightView);
segm.UpdateBrushStops();
}
}
@@ -1196,14 +1325,7 @@ namespace Tango.PPC.Jobs.ViewModels
base.OnApplicationStarted();
MachineProvider.MachineOperator.PrintingEnded += MachineOperator_PrintingEnded;
- }
-
- private void MachineOperator_PrintingEnded(object sender, Integration.Operation.PrintingEventArgs e)
- {
- if (IsVisible)
- {
- _start_printing_btn.Push();
- }
+ MachineProvider.MachineOperator.PrintingStarted += MachineOperator_PrintingStarted;
}
/// <summary>
@@ -1276,6 +1398,19 @@ namespace Tango.PPC.Jobs.ViewModels
}
}
+ private async void NavigateBack()
+ {
+ if (IsFree)
+ {
+ if (await OnNavigateBackRequest())
+ {
+ LogManager.Log("Back command to Jobs pressed.");
+ await NavigationManager.NavigateTo<JobsV2Module>(nameof(JobsView));
+ }
+
+ }
+ }
+
public override void OnApplicationReady()
{
base.OnApplicationReady();
@@ -1393,6 +1528,51 @@ namespace Tango.PPC.Jobs.ViewModels
DyeCommand.RaiseCanExecuteChanged();
}
+ private void SetOrDiscardAll()
+ {
+ InvokeUI(async () =>
+ {
+ IsBasicMode = await MessageDiscardAllChanges();
+ });
+ }
+
+ private async Task<bool> MessageDiscardAllChanges()
+ {
+ try
+ {
+ MessageDiscardAdvancedOptionsVM vm = new MessageDiscardAdvancedOptionsVM();
+ vm = await NotificationProvider.ShowDialog<MessageDiscardAdvancedOptionsVM>(vm);
+
+ if (vm.DialogResult)
+ {
+ //delete all
+ var segments = JobModel.OrderedSegmentsWithGroups;
+ var firstSegment = JobModel.Segments.Where(x => x.SegmentIndex == 1).FirstOrDefault();
+ firstSegment.SegmentsGroupModel = null;
+ JobModel.GroupingSegments.Clear();
+ JobModel.Segments.Clear();
+ JobModel.Segments.Add(firstSegment);
+ JobModel.GroupingSegments.Add(firstSegment);
+ JobModel.EnableInterSegment = false;
+ JobModel.InterSegmentLength = 0;
+ if (firstSegment.IsGradient)
+ {
+ BrushStopModel firstbrush = firstSegment.FirstBrushStop;
+ firstSegment.BrushStops.Clear();
+ firstSegment.BrushStops.Add(firstbrush);
+ firstSegment.ArrangeBrushStopsIndexes();
+ }
+
+ return true;
+ }
+ return false;
+ }
+ catch
+ {
+ return false;
+ }
+ }
+
#endregion
#region Save from models to db
@@ -1407,6 +1587,7 @@ namespace Tango.PPC.Jobs.ViewModels
Job.ColorSpace = colorSpaces.FirstOrDefault();
Job.Version = 2;
+ Job.Name = JobModel.Name;
Job.NumberOfUnits = JobModel.NumberOfUnits;
Job.EnableInterSegment = JobModel.InterSegmentLength > 0;
Job.InterSegmentLength = JobModel.InterSegmentLength;
@@ -1596,5 +1777,97 @@ namespace Tango.PPC.Jobs.ViewModels
}
#endregion
+
+ #region Machine Operator Events
+
+ private void MachineOperator_PrintingStarted(object sender, PrintingEventArgs e)
+ {
+ RaisePropertyChanged(nameof(CanEdit));
+ }
+
+ private void MachineOperator_PrintingEnded(object sender, Integration.Operation.PrintingEventArgs e)
+ {
+ if (IsVisible)
+ {
+ _start_printing_btn.Push();
+ }
+
+ RaisePropertyChanged(nameof(CanEdit));
+
+ if (BuildProvider.IsEureka)
+ {
+ UpdateJobResume(e);
+ }
+ }
+
+
+ #endregion
+
+ #region Resume
+
+ private void UpdateJobResume(PrintingEventArgs e)
+ {
+ try
+ {
+ if (!e.JobHandler.Status.IsCompleted)
+ {
+ if (e.JobHandler.JobStatus.Progress <= e.JobHandler.ProcessParameters.DryerBufferLengthMeters) return;
+
+ var model = JobResumeDB.Default.Get(e.Job.Guid);
+ bool insert = false;
+ if (model == null)
+ {
+ model = new JobResumeModel();
+ insert = true;
+ }
+
+ model.JobGuid = e.Job.Guid;
+ model.FirstUnitStartPosition = e.JobHandler.Status.CurrentUnitProgress;
+ model.RemainingUnits = e.JobHandler.Status.RemainingUnits;
+ model.GlobalStartPosition = e.JobHandler.JobStatus.Progress;
+
+ if (insert)
+ {
+ JobResumeDB.Default.Add(model);
+ }
+ else
+ {
+ JobResumeDB.Default.Update(model);
+ }
+
+ if (Job.Guid == e.Job.Guid)
+ {
+ ResumeModel = model;
+ }
+ }
+ else
+ {
+ JobResumeDB.Default.Delete(e.Job.Guid);
+
+ if (Job.Guid == e.Job.Guid)
+ {
+ ResumeModel = null;
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ LogManager.Log(ex, "Error inserting/updating job resume info on db.");
+ }
+ }
+
+ private async void DropResume()
+ {
+ if (Job != null && HasResumeModel)
+ {
+ if (await NotificationProvider.ShowQuestion("Drop resume information and enable job editing?"))
+ {
+ JobResumeDB.Default.Delete(Job.Guid);
+ ResumeModel = null;
+ }
+ }
+ }
+
+ #endregion
}
}
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/JobsViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/JobsViewVM.cs
index 6a1c830b5..e5e41b382 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/JobsViewVM.cs
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/JobsViewVM.cs
@@ -225,6 +225,11 @@ namespace Tango.PPC.Jobs.ViewModels
/// </summary>
public RelayCommand ExportJobCommand { get; set; }
+ /// <summary>
+ /// Gets or sets the move to list ( History or Draft) jobs command.
+ /// </summary>
+ public RelayCommand MoveToListJobsCommand { get; set; }
+
#endregion
#region Constructors
@@ -251,6 +256,7 @@ namespace Tango.PPC.Jobs.ViewModels
DeleteJobsCommand = new RelayCommand(() => DeleteJobs(SelectedJobs));
CloneJobsCommand = new RelayCommand(() => CloneJobs(SelectedJobs));
ExportJobCommand = new RelayCommand(ExportJob);
+ MoveToListJobsCommand = new RelayCommand(() => MoveToListJobs(SelectedJobs));
RegisterForMessage<JobRemovedMessage>(HandleJobRemovedMessage);
RegisterForMessage<JobSavedMessage>(HandleJobSavedMessage);
@@ -331,17 +337,24 @@ namespace Tango.PPC.Jobs.ViewModels
RaiseMessage(new JobSelectedMessage() { Job = job, Context = _db });
- if (!directlyToEdit && MachineProvider.MachineOperator.CanPrint)
+ if (BuildProvider.IsEureka)
{
- await NavigationManager.NavigateWithObject<JobsV2Module, JobSummeryView, JobSummeryNavigationObject>(new JobSummeryNavigationObject()
- {
- Context = _db,
- Job = job,
- });
+ await NavigationManager.NavigateTo<JobsV2Module>(nameof(JobEurekaView));
}
else
{
- await NavigationManager.NavigateTo<JobsV2Module>(nameof(JobView));
+ if (!directlyToEdit && MachineProvider.MachineOperator.CanPrint)
+ {
+ await NavigationManager.NavigateWithObject<JobsV2Module, JobSummeryView, JobSummeryNavigationObject>(new JobSummeryNavigationObject()
+ {
+ Context = _db,
+ Job = job,
+ });
+ }
+ else
+ {
+ await NavigationManager.NavigateTo<JobsV2Module>(nameof(JobView));
+ }
}
}
@@ -364,7 +377,7 @@ namespace Tango.PPC.Jobs.ViewModels
_colorSpaces = _db.ColorSpaces.ToList();
- var jobs = new JobsCollectionBuilder(_db).Set(x => x.MachineGuid == MachineProvider.Machine.Guid).WithSegments().WithBrushStops().WithCustomer().WithColorSpace().WithSegmentsGroups().Build();
+ var jobs = new JobsCollectionBuilder(_db).Set(x => x.MachineGuid == MachineProvider.Machine.Guid).WithSegments().WithBrushStops().WithCustomer().WithColorSpace().WithSegmentsGroups().WithRmls().Build();
InvokeUI(() =>
{
@@ -425,38 +438,48 @@ namespace Tango.PPC.Jobs.ViewModels
{
await Task.Delay(200);
}
- var selectedRmlGuid = Settings.DefaultRmlGuid;
- JobCreationViewVM vm = new JobCreationViewVM(_spoolTypes.ToList(), _rmls.ToList(), selectedRmlGuid, 0, false);
-
- var selectedSpoolTypeGuid = Settings.SpoolTypeGuid;
- vm.SelectedSpoolType = false == String.IsNullOrEmpty(selectedSpoolTypeGuid) ? _spoolTypes.FirstOrDefault(x => x.Guid == selectedSpoolTypeGuid) : _spoolTypes.FirstOrDefault(x => x.Type == SpoolTypes.StandardSpool);
- if (twnFile == null)
- {
- vm = await NotificationProvider.ShowDialog<JobCreationViewVM>(vm);
- if (!vm.DialogResult) return;
-
- if (vm.SelectedRML != null)
- {
- selectedRmlGuid = vm.SelectedRML.Guid;
- }
- if (vm.SelectedSpoolType != null)
- {
- selectedSpoolTypeGuid = vm.SelectedSpoolType.Guid;
- }
-
- }
-
+ var selectedRmlGuid = Settings.DefaultRmlGuid ?? _rmls.First().Guid;
Job job = new Job();
job.LastUpdated = DateTime.UtcNow;
job.JobSource = JobSource.Local;
- job.Name = vm.JobName;
job.NumberOfHeads = 1;
job.NumberOfUnits = 1;
job.SampleUnitsOrMeters = 1;
job.CreationDate = DateTime.UtcNow;
job.JobStatus = JobStatuses.Draft;
- job.EnableInterSegment = vm.WhiteGap > 0;
- job.InterSegmentLength = vm.WhiteGap;
+
+ var selectedSpoolTypeGuid = Settings.SpoolTypeGuid ?? _spoolTypes.First().Guid;
+
+ if (BuildProvider.IsEureka)
+ {
+ job.Name = "Unnamed";
+ job.EnableInterSegment = false;
+ job.InterSegmentLength = 0;
+ }
+ else
+ {
+ JobCreationViewVM vm = new JobCreationViewVM(_spoolTypes.ToList(), _rmls.ToList(), selectedRmlGuid, 0, false);
+ vm.SelectedSpoolType = false == String.IsNullOrEmpty(selectedSpoolTypeGuid) ? _spoolTypes.FirstOrDefault(x => x.Guid == selectedSpoolTypeGuid) : _spoolTypes.FirstOrDefault(x => x.Type == SpoolTypes.StandardSpool);
+ if (twnFile == null)
+ {
+ vm = await NotificationProvider.ShowDialog<JobCreationViewVM>(vm);
+ if (!vm.DialogResult)
+ return;
+
+ if (vm.SelectedRML != null)
+ {
+ selectedRmlGuid = vm.SelectedRML.Guid;
+ }
+ if (vm.SelectedSpoolType != null)
+ {
+ selectedSpoolTypeGuid = vm.SelectedSpoolType.Guid;
+ }
+ job.Name = vm.JobName;
+ job.EnableInterSegment = vm.WhiteGap > 0;
+ job.InterSegmentLength = vm.WhiteGap;
+ }
+ }
+
//job.JobType = vm.SelectedJobType;
job.EnableLubrication = true;
//job.ColorSpaceGuid = Adapter.ColorSpaces.FirstOrDefault(x => x.Code == vm.SelectedColorSpace.ToInt32()).Guid;
@@ -535,11 +558,22 @@ namespace Tango.PPC.Jobs.ViewModels
await Task.Delay(200);
- await NavigationManager.NavigateWithObject<JobsV2Module, JobView, JobNavigationObject>(new JobNavigationObject()
+ if(BuildProvider.IsEureka)
{
- Job = job,
- Intent = JobNavigationIntent.NewJob
- });
+ await NavigationManager.NavigateWithObject<JobsV2Module, JobEurekaView, JobNavigationObject>(new JobNavigationObject()
+ {
+ Job = job,
+ Intent = JobNavigationIntent.NewJob
+ });
+ }
+ else
+ {
+ await NavigationManager.NavigateWithObject<JobsV2Module, JobView, JobNavigationObject>(new JobNavigationObject()
+ {
+ Job = job,
+ Intent = JobNavigationIntent.NewJob
+ });
+ }
}
catch (Exception ex)
{
@@ -616,6 +650,52 @@ namespace Tango.PPC.Jobs.ViewModels
}
/// <summary>
+ /// Moves to list (Draft/History) jobs.
+ /// </summary>
+ /// <param name="jobs">The jobs.</param>
+ private async void MoveToListJobs(ObservableCollection<Job> jobs)
+ {
+ bool isHistory = SelectedCategory == JobsCategory.History;
+ string list = isHistory ? "Draft" : "History";
+ try
+ {
+
+ LogManager.Log($"Move To {list} selected jobs:\n{jobs.Select(x => x.Name).ToList().ToJsonString()}");
+
+ foreach (var job in SelectedJobs)
+ {
+ if(isHistory)
+ {
+ if(job.JobStatus != JobStatuses.Draft)
+ {
+ job.JobStatus = JobStatuses.Draft;
+ job.LastUpdated = DateTime.UtcNow;
+ }
+ }
+ if(!isHistory)//draft
+ {
+ if(job.JobStatus == JobStatuses.Draft)
+ {
+ job.JobStatus = JobStatuses.Completed;
+ job.LastUpdated = DateTime.UtcNow;
+ }
+ }
+ }
+
+ await _db.SaveChangesAsync();
+
+ HistoryJobsCollectionView.Refresh();
+ DraftJobsCollectionView.Refresh();
+ ClearSelection();
+ }
+ catch (Exception ex)
+ {
+ LogManager.Log(ex, $"Error Move To {list} selected jobs.");
+ await NotificationProvider.ShowError($"An error occurred while trying to Move To {list} the selected jobs.");
+ }
+ }
+
+ /// <summary>
/// Called when the search filter has been changed
/// </summary>
private void OnFilterChanged()
@@ -687,9 +767,9 @@ namespace Tango.PPC.Jobs.ViewModels
using (ObservablesContext db = ObservablesContext.CreateDefault())
{
_catalogs = await new CatalogsCollectionBuilder(db).SetAll().ForSite(MachineProvider.Machine.SiteGuid).BuildAsync();
- _rmls = await new RmlsCollectionBuilder(db).SetAll().WithSpools().ForHeadType(MachineProvider.Machine.MachineHeadType).ForSite(MachineProvider.Machine.SiteGuid).BuildAsync();
+ _rmls = (await new RmlsCollectionBuilder(db).SetAll().WithSpools().ForHeadType(MachineProvider.Machine.MachineHeadType).ForSite(MachineProvider.Machine.SiteGuid).BuildAsync()).OrderBy(x => x.FinalName).ToObservableCollection();
//_rmls = (await new RmlsCollectionBuilder(db).SetAll().WithSpools().BuildAsync()).OrderBy(x => x.FinalName).ToObservableCollection();
- _spoolTypes = db.SpoolTypes.ToObservableCollection();
+ _spoolTypes = await MachineProvider.Machine.GetSiteSpoolTypes(db);
}
MachineDataSynchronizer.SynchronizationEnded += MachineDataSynchronizer_SynchronizationEnded;
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobEurekaView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobEurekaView.xaml
new file mode 100644
index 000000000..d6163506f
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobEurekaView.xaml
@@ -0,0 +1,1373 @@
+<UserControl x:Class="Tango.PPC.Jobs.Views.JobEurekaView"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:vm="clr-namespace:Tango.PPC.Jobs.ViewModels"
+ xmlns:model="clr-namespace:Tango.PPC.Jobs.Models"
+ xmlns:helpers="clr-namespace:Tango.PPC.Jobs.Helpers"
+ xmlns:fa="http://schemas.fontawesome.io/icons/"
+ xmlns:touch="clr-namespace:Tango.Touch.Controls;assembly=Tango.Touch"
+ xmlns:keyboard="clr-namespace:Tango.Touch.Keyboard;assembly=Tango.Touch"
+ xmlns:global="clr-namespace:Tango.PPC.Jobs"
+ xmlns:controls="clr-namespace:Tango.SharedUI.Controls;assembly=Tango.SharedUI"
+ xmlns:enumerations="clr-namespace:Tango.BL.Enumerations;assembly=Tango.BL"
+ xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI"
+ xmlns:entities="clr-namespace:Tango.BL.Entities;assembly=Tango.BL"
+ xmlns:localConverters="clr-namespace:Tango.PPC.Jobs.Converters"
+ xmlns:dragAndDrop="clr-namespace:Tango.DragAndDrop;assembly=Tango.DragAndDrop"
+ xmlns:localControls="clr-namespace:Tango.PPC.Jobs.Controls"
+ xmlns:components="clr-namespace:Tango.Touch.Components;assembly=Tango.Touch"
+ xmlns:local="clr-namespace:Tango.PPC.Jobs.Views"
+ mc:Ignorable="d"
+ d:DesignHeight="2000" d:DesignWidth="800" d:DataContext="{d:DesignInstance Type=vm:JobViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.JobViewVM}" x:Name="view">
+
+ <UserControl.Resources>
+
+ <localConverters:ColorSpaceToVisibilityConverter x:Key="ColorSpaceToVisibilityConverter" />
+ <localConverters:JobToEmbroideryImageConverter x:Key="JobToEmbroideryImageConverter" />
+ <converters:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
+ <converters:BooleanToVisibilityInverseConverter x:Key="BooleanToVisibilityInverseConverter"/>
+ <converters:EnumToDescriptionConverter x:Key="EnumToDescriptionConverter"/>
+ <converters:TimeSpanToMinutesConverter x:Key="TimeSpanToMinutesConverter"/>
+ <converters:TimeSpanToTwoDigitsTimeConverter x:Key="TimeSpanToTwoDigitsTimeConverter"/>
+ <converters:TimeSpanToLabelConverter x:Key="TimeSpanToLabelConverter"/>
+ <localConverters:MarginOffsetSliderConverter x:Key="MarginOffsetSliderConverter"/>
+ <localConverters:FirstValueCollectionConverter x:Key="FirstValueCollectionConverter"/>
+ <localConverters:LengthToWeightConverter x:Key="LengthToWeightConverter"/>
+
+ <BitmapImage x:Key="Image_Out_Of_Gamut" UriSource="../Images/JobView/error.png" />
+ <BitmapImage x:Key="Image_Replace_Color" UriSource="../Images/JobView/replace-color.png" />
+ <BitmapImage x:Key="Image_Color_Picker" UriSource="../Images/JobView/color-picker.png" />
+ <BitmapImage x:Key="Image_Transparent" UriSource="../Images/JobView/transparent.jpg" />
+ <BitmapImage x:Key="Image_TransparentSmall" UriSource="../Images/JobView/transparent_small.jpg" />
+
+
+ <Style TargetType="FrameworkElement" x:Key="Level1Container">
+ <Setter Property="Margin" Value="20 15 60 15"></Setter>
+ </Style>
+ <Style TargetType="FrameworkElement" x:Key="Level2Container">
+ <Setter Property="Margin" Value="80 30 60 0"></Setter>
+ </Style>
+ <Style TargetType="FrameworkElement" x:Key="Level2ContainerExtraMargin">
+ <Setter Property="Margin" Value="80 40 60 0"></Setter>
+ </Style>
+
+ <Style x:Key="CollapsedPanelButton" TargetType="{x:Type touch:TouchButton}">
+ <Setter Property="Background" Value="Transparent"></Setter>
+ <Setter Property="Foreground" Value="{StaticResource TangoMidAccentBrush}"></Setter>
+ <Setter Property="Width" Value="{Binding RelativeSource={RelativeSource Self},Path=ActualHeight}"></Setter>
+ <Setter Property="MinHeight" Value="50"/>
+ <Setter Property="CornerRadius" Value="{Binding RelativeSource={RelativeSource Self},Path=ActualHeight}"></Setter>
+ <Setter Property="BorderThickness" Value="0"></Setter>
+ <Setter Property="EnableDropShadow" Value="False"></Setter>
+ <Setter Property="Padding" Value="4"></Setter>
+ <Setter Property="VerticalAlignment" Value="Center"></Setter>
+ <Setter Property="FontSize" Value="{StaticResource TangoDefaultFontSize}"></Setter>
+ <Style.Triggers>
+ <Trigger Property="IsEnabled" Value="False">
+ <Setter Property="Opacity" Value=".5"/>
+ </Trigger>
+ <DataTrigger Binding="{Binding JobModel.HasSelectedItems}" Value="false">
+ <Setter Property="Opacity" Value=".5"/>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+
+ <Style x:Key="SliderGreyTextStyle" TargetType="TextBlock">
+ <Setter Property="Foreground" Value="{StaticResource TangoGrayTextBrush}"></Setter>
+ <Setter Property="FontSize" Value="{StaticResource TangoSmallFontSize}"></Setter>
+ <Setter Property="VerticalAlignment" Value="Center"></Setter>
+ <Setter Property="HorizontalAlignment" Value="Center"></Setter>
+ </Style>
+
+ <Style x:Key="TouchButtonWithDisableState" TargetType="{x:Type touch:TouchButton}">
+ <Setter Property="Background" Value="Transparent"></Setter>
+ <Setter Property="Foreground" Value="{StaticResource TangoPrimaryAccentBrush}"></Setter>
+ <Setter Property="BorderThickness" Value="0"></Setter>
+ <Setter Property="EnableDropShadow" Value="False"></Setter>
+ <Setter Property="FontSize" Value="{StaticResource TangoDefaultFontSize}"></Setter>
+ <Style.Triggers>
+ <Trigger Property="IsEnabled" Value="False">
+ <Setter Property="Background" Value="{StaticResource TangoDisabledBackgroundBrush}"></Setter>
+ </Trigger>
+ </Style.Triggers>
+ </Style>
+
+ <DataTemplate x:Key="HSB_Template" DataType="{x:Type entities:BrushStop}">
+ <UniformGrid Rows="1" Columns="3">
+ <StackPanel Orientation="Horizontal">
+ <TextBlock Text="H" FontSize="{StaticResource TangoSmallFontSize}" VerticalAlignment="Center"/>
+ <Border Margin="10 0 0 0" Background="Transparent" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0.8" Width="42" Height="29" >
+ <TextBlock Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Hue, StringFormat=0.0}"></TextBlock>
+ </Border>
+ </StackPanel>
+ <StackPanel Orientation="Horizontal" Margin="10 0 0 0">
+ <TextBlock Text="S" FontSize="{StaticResource TangoSmallFontSize}" VerticalAlignment="Center"/>
+ <Border Margin="10 0 0 0" Background="Transparent" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0.8" Width="42" Height="29">
+ <TextBlock Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Saturation, StringFormat=0.0}" ></TextBlock>
+ </Border>
+ </StackPanel>
+ <StackPanel Orientation="Horizontal" Margin="10 0 0 0">
+ <TextBlock Text="B" FontSize="{StaticResource TangoSmallFontSize}" VerticalAlignment="Center"/>
+ <Border Margin="10 0 0 0" Background="Transparent" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0.8" Width="42" Height="29">
+ <TextBlock Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Brightness, StringFormat=0.0}"></TextBlock>
+ </Border>
+ </StackPanel>
+ </UniformGrid>
+
+ </DataTemplate>
+
+ <DataTemplate x:Key="RGB_Template" DataType="{x:Type entities:BrushStop}">
+ <UniformGrid Rows="1" Columns="3" Height="30" >
+ <StackPanel Orientation="Horizontal">
+ <TextBlock Text="R" FontSize="{StaticResource TangoSmallFontSize}" VerticalAlignment="Center"/>
+ <Border Margin="10 0 0 0" Background="Transparent" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0.8" Width="42">
+ <TextBlock Style="{StaticResource SliderGreyTextStyle}" Text="{Binding BestMatchColor.R}" ></TextBlock>
+ </Border>
+ </StackPanel>
+ <StackPanel Orientation="Horizontal" Margin="4 0 0 0">
+ <TextBlock Text="G" FontSize="{StaticResource TangoSmallFontSize}" VerticalAlignment="Center"/>
+ <Border Margin="10 0 0 0" Background="Transparent" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0.8" Width="42">
+ <TextBlock Style="{StaticResource SliderGreyTextStyle}" Text="{Binding BestMatchColor.G}" ></TextBlock>
+ </Border>
+ </StackPanel>
+ <StackPanel Orientation="Horizontal" Margin="4 0 0 0">
+ <TextBlock Text="B" FontSize="{StaticResource TangoSmallFontSize}" VerticalAlignment="Center"/>
+ <Border Margin="10 0 0 0" Background="Transparent" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0.8" Width="42">
+ <TextBlock Style="{StaticResource SliderGreyTextStyle}" Text="{Binding BestMatchColor.B}" ></TextBlock>
+ </Border>
+ </StackPanel>
+ </UniformGrid>
+ </DataTemplate>
+
+ <DataTemplate x:Key="CMYK_Template" DataType="{x:Type entities:BrushStop}">
+ <UniformGrid Rows="1" Columns="4" Height="30" >
+ <StackPanel Orientation="Horizontal">
+ <TextBlock Text="C" FontSize="{StaticResource TangoSmallFontSize}" VerticalAlignment="Center"/>
+ <Border Margin="10 0 0 0" Background="Transparent" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0.8" Width="48">
+ <TextBlock Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Cyan, StringFormat=0.##}" ></TextBlock>
+ </Border>
+ </StackPanel>
+ <StackPanel Orientation="Horizontal" Margin="0 0 0 0">
+ <TextBlock Text="M" FontSize="{StaticResource TangoSmallFontSize}" VerticalAlignment="Center"/>
+ <Border Margin="10 0 0 0" Background="Transparent" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0.8" Width="48">
+ <TextBlock Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Magenta, StringFormat=0.##}" ></TextBlock>
+ </Border>
+ </StackPanel>
+ <StackPanel Orientation="Horizontal" Margin="10 0 0 0">
+ <TextBlock Text="Y" FontSize="{StaticResource TangoSmallFontSize}" VerticalAlignment="Center"/>
+ <Border Margin="10 0 0 0" Background="Transparent" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0.8" Width="48">
+ <TextBlock Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Yellow, StringFormat=0.##}" ></TextBlock>
+ </Border>
+ </StackPanel>
+ <StackPanel Orientation="Horizontal" Margin="10 0 0 0">
+ <TextBlock Text="K" FontSize="{StaticResource TangoSmallFontSize}" VerticalAlignment="Center"/>
+ <Border Margin="10 0 0 0" Background="Transparent" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0.8" Width="48">
+ <TextBlock Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Black, StringFormat=0.##}"></TextBlock>
+ </Border>
+ </StackPanel>
+ </UniformGrid>
+ </DataTemplate>
+
+ <DataTemplate x:Key="LAB_Template" DataType="{x:Type entities:BrushStop}">
+ <UniformGrid Rows="1" Columns="3" Height="30" MinWidth="150">
+ <StackPanel Orientation="Horizontal">
+ <TextBlock Text="L" FontSize="{StaticResource TangoSmallFontSize}" VerticalAlignment="Center"/>
+ <Border Margin="10 0 0 0" Background="Transparent" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0.8" Width="52">
+ <TextBlock Style="{StaticResource SliderGreyTextStyle}" Text="{Binding BestMatchL, StringFormat=0.##}" ></TextBlock>
+ </Border>
+ </StackPanel>
+ <StackPanel Orientation="Horizontal" Margin="5 0 0 0">
+ <TextBlock Text="a" FontSize="{StaticResource TangoSmallFontSize}" VerticalAlignment="Center"/>
+ <Border Margin="10 0 0 0" Background="Transparent" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0.8" Width="52">
+ <TextBlock Style="{StaticResource SliderGreyTextStyle}" Text="{Binding BestMatchA, StringFormat=0.##}" ></TextBlock>
+ </Border>
+ </StackPanel>
+ <StackPanel Orientation="Horizontal" Margin="10 0 0 0">
+ <TextBlock Text="b" FontSize="{StaticResource TangoSmallFontSize}" VerticalAlignment="Center"/>
+ <Border Margin="10 0 0 0" Background="Transparent" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0.8" Width="52">
+ <TextBlock Style="{StaticResource SliderGreyTextStyle}" Text="{Binding BestMatchB, StringFormat=0.##}" ></TextBlock>
+ </Border>
+ </StackPanel>
+ </UniformGrid>
+ </DataTemplate>
+
+ <DataTemplate x:Key="CATALOG_Template" DataType="{x:Type entities:BrushStop}">
+ <UniformGrid Rows="1" Columns="2" Height="30" MinWidth="150">
+ <StackPanel Orientation="Horizontal" Margin="0 0 0 0">
+ <TextBlock Text="Catalog:" FontSize="{StaticResource TangoSmallFontSize}" VerticalAlignment="Center"/>
+ <Border Margin="10 0 0 0" Background="Transparent" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0.8" MinWidth="42" MaxWidth="130">
+ <TextBlock Padding="4 0 4 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding ColorCatalog.Name}" ></TextBlock>
+ </Border>
+ </StackPanel>
+ <StackPanel Orientation="Horizontal" Margin="10 0 0 0">
+ <TextBlock Text="Color:" FontSize="{StaticResource TangoSmallFontSize}" VerticalAlignment="Center"/>
+ <Border Margin="10 0 0 0" Background="Transparent" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0.8" MinWidth="42">
+ <TextBlock Padding="4 0 4 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding ColorCatalogsItem.Name}" ></TextBlock>
+ </Border>
+ </StackPanel>
+ </UniformGrid>
+ </DataTemplate>
+
+ <DataTemplate x:Key="Segment_Template" DataType="{x:Type model:SegmentModel}">
+ <Grid Height="410" Margin="57 15 57 0">
+ <!--<Grid Height="310" Margin="57 10 57 0">-->
+ <Grid.RowDefinitions>
+ <RowDefinition Height="Auto" />
+ <RowDefinition Height="Auto" />
+ <RowDefinition Height="Auto" />
+ <RowDefinition Height="Auto" />
+ <RowDefinition Height="Auto" />
+ <!--<RowDefinition Height="10" />-->
+ <RowDefinition Height="1*" />
+ </Grid.RowDefinitions>
+
+ <DockPanel x:Name="header">
+ <StackPanel Orientation="Horizontal" DockPanel.Dock="Right" Height="60">
+ <touch:TouchButton Margin="20 0 0 0" VerticalAlignment="Center" EnableDropShadow="False" Background="Transparent" BorderThickness="0" Command="{Binding ElementName=view,Path=DataContext.RemoveSegmentCommand}" CommandParameter="{Binding}">
+ <Border Height="24" Width="24" BorderThickness="0" BorderBrush="{StaticResource TangoKeyboardKeyDarkBrush}" Background="Transparent" HorizontalAlignment="Left">
+ <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/delete_segment.png"/>
+ </Border>
+ </touch:TouchButton>
+ <touch:TouchButton Margin="20 0 0 0" VerticalAlignment="Center" EnableDropShadow="False" Background="Transparent" BorderThickness="0" Command="{Binding ElementName=view,Path=DataContext.DuplicateSegmentCommand}" CommandParameter="{Binding}">
+ <Border Height="27" Width="23" BorderThickness="0" BorderBrush="{StaticResource TangoKeyboardKeyDarkBrush}" Background="Transparent" HorizontalAlignment="Left">
+ <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/duplicate.png"/>
+ </Border>
+ </touch:TouchButton>
+ </StackPanel>
+ <StackPanel Grid.Row="0" DockPanel.Dock="Left">
+ <StackPanel Margin="0 0 0 0" Orientation="Horizontal" >
+ <controls:FastTextBlock FontSize="{StaticResource TangoTitleFontSize}">Segment #</controls:FastTextBlock>
+ <controls:FastTextBlock FontSize="{StaticResource TangoTitleFontSize}" Text="{Binding SegmentIndex,Mode=OneWay}"></controls:FastTextBlock>
+ </StackPanel>
+ <StackPanel Margin="0 5 0 0" Orientation="Horizontal">
+ <controls:FastTextBlock VerticalAlignment="Center" FontSize="18">
+ <controls:FastTextBlock.Style>
+ <Style TargetType="controls:FastTextBlock">
+ <Setter Property="Text" Value="Weight (g):" />
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding ElementName=segmentsGrid, Path=DataContext.IsWeightView}" Value="False">
+ <Setter Property="Text" Value="Length (m):" />
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </controls:FastTextBlock.Style>
+ </controls:FastTextBlock>
+
+ <Border Margin="20 0 0 0" BorderThickness="1" Height="44" CornerRadius="12" BorderBrush="{StaticResource TangoMidAccentBrush}" Visibility="{Binding ElementName=segmentsGrid, Path=DataContext.IsWeightView, Converter={StaticResource BooleanToVisibilityInverseConverter}}">
+ <touch:TouchNumericTextBox Margin="20 0 0 0" Width="192" FocusSelectionMode="SelectAll" HorizontalAlignment="Left" HideUnderline="True" VerticalAlignment="Center"
+ Value="{Binding Length, UpdateSourceTrigger=LostFocus}" VerticalContentAlignment="Center"
+ StringFormat="N1" AutoCalculateJogStep="False"
+ HasDecimalPoint="True" Minimum="1" Maximum="1000000"
+ KeyboardContainer="{Binding ElementName=Container}"
+ FontSize="18" ValueChangedEnd="Length_ValueChanged"
+ TextGotFocus="Length_BeforeChangeValue" RippleBrush="Transparent"/>
+ </Border>
+ <Border Margin="20 0 0 0" BorderThickness="1" Height="44" CornerRadius="12" BorderBrush="{StaticResource TangoMidAccentBrush}" Visibility="{Binding ElementName=segmentsGrid, Path=DataContext.IsWeightView, Converter={StaticResource BooleanToVisibilityConverter}}">
+ <touch:TouchNumericTextBox Margin="20 0 0 0" Width="192" FocusSelectionMode="SelectAll" HorizontalAlignment="Left" HideUnderline="True" VerticalAlignment="Center"
+ Value="{Binding Weight, UpdateSourceTrigger=LostFocus}" VerticalContentAlignment="Center"
+ StringFormat="0.0" AutoCalculateJogStep="False"
+ HasDecimalPoint="True" Minimum="0" Maximum="100000"
+ KeyboardContainer="{Binding ElementName=Container}"
+ FontSize="18" RippleBrush="Transparent"/>
+ </Border>
+ </StackPanel>
+ </StackPanel>
+
+ </DockPanel>
+
+ <Grid Grid.Row="1" x:Name="displayOffset" Margin="0 10 0 -11" Visibility="{Binding IsGradient, Converter={StaticResource BooleanToVisibilityConverter}}">
+ <Border x:Name="leftoffsetBorder" Visibility="{Binding IsGradient, Converter={StaticResource BooleanToVisibilityConverter}}">
+ <TextBlock x:Name="leftoffsetLabel" HorizontalAlignment="Left" MaxWidth="80" Margin="0 0 10 0" FontSize="{StaticResource TangoSmallFontSize}" Foreground="{StaticResource TangoNotificationBarMaskBrush}" Text="{Binding LeftOffsetLabel,Mode=OneWay}"/>
+
+ <Border.Margin>
+ <MultiBinding Converter="{StaticResource MarginOffsetSliderConverter}" ConverterParameter="1" Delay="200" Mode="OneWay">
+ <Binding ElementName="sliderOffset" Path="LowerValue" ></Binding>
+ <Binding ElementName="sliderOffset" Path="ActualWidth"></Binding>
+ <Binding ElementName="leftoffsetLabel" Path="ActualWidth"></Binding>
+ <Binding ElementName="middleoffsetBorder" Path="Margin.Left"></Binding>
+
+ </MultiBinding>
+ </Border.Margin>
+ </Border>
+ <Border x:Name="middleoffsetBorder">
+ <TextBlock x:Name="middleoffsetLabel" HorizontalAlignment="Left" MaxWidth="80" Margin="10 0 10 0" FontSize="{StaticResource TangoSmallFontSize}" Foreground="{StaticResource TangoNotificationBarMaskBrush}" Text="{Binding MiddleOffsetLabel,Mode=OneWay}"/>
+
+ <Border.Margin>
+ <MultiBinding Converter="{StaticResource MarginOffsetSliderConverter}" ConverterParameter="2" Delay="200" Mode="OneWay">
+ <Binding ElementName="sliderOffset" Path="MiddleValue"></Binding>
+ <Binding ElementName="sliderOffset" Path="ActualWidth"></Binding>
+ <Binding ElementName="middleoffsetLabel" Path="ActualWidth"></Binding>
+ <Binding ElementName="leftoffsetLabel" Path="ActualWidth"></Binding>
+ <Binding ElementName="upperoffsetLabel" Path="ActualWidth"></Binding>
+ </MultiBinding>
+ </Border.Margin>
+ </Border>
+ <Border x:Name="rightoffsetBorder">
+ <TextBlock x:Name="upperoffsetLabel" HorizontalAlignment="Left" MaxWidth="80" Margin="0 0 0 0" FontSize="{StaticResource TangoSmallFontSize}" Foreground="{StaticResource TangoNotificationBarMaskBrush}" Text="{Binding RightOffsetLabel,Mode=OneWay}"/>
+
+
+ <Border.Margin>
+ <MultiBinding Converter="{StaticResource MarginOffsetSliderConverter}" ConverterParameter="3" Delay="200" Mode="OneWay">
+ <Binding ElementName="sliderOffset" Path="UpperValue"></Binding>
+ <Binding ElementName="sliderOffset" Path="ActualWidth"></Binding>
+ <Binding ElementName="upperoffsetLabel" Path="ActualWidth"></Binding>
+ <Binding ElementName="middleoffsetBorder" Path="Margin.Left"></Binding>
+ <Binding ElementName="middleoffsetLabel" Path="ActualWidth"></Binding>
+ </MultiBinding>
+ </Border.Margin>
+ </Border>
+ </Grid>
+
+ <Border Grid.Row="2" x:Name="segmentBrush" Height="90" Margin="0 20 0 0" CornerRadius="20" Background="{StaticResource TangoPrimaryBackgroundBrush}" BorderThickness="1" BorderBrush="{StaticResource TangoGrayBrush}">
+
+ <Border Background="{Binding SegmentBrush}" CornerRadius="20">
+ <Grid>
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="1*"/>
+ <ColumnDefinition Width="1*"/>
+ <ColumnDefinition Width="1*"/>
+ </Grid.ColumnDefinitions>
+ <touch:TouchButton Margin="26 0 0 0" HorizontalAlignment="Left" VerticalAlignment="Center" Command="{Binding ElementName=view,Path=DataContext.EditColorCommand}" CommandParameter="{Binding FirstBrushStop}" Visibility="{Binding HasColors, Converter={StaticResource BooleanToVisibilityConverter}}" EnableDropShadow="False" Foreground="{StaticResource TangoKeyboardKeyDarkTextBrush}" Background="Transparent" BorderThickness="0">
+ <Border Height="40" Width="40" BorderThickness="0" BorderBrush="{StaticResource TangoKeyboardKeyDarkBrush}" Background="Transparent" HorizontalAlignment="Left">
+ <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/Edit_color.png"/>
+ </Border>
+ </touch:TouchButton>
+ <StackPanel Grid.Column="1" Orientation="Vertical" HorizontalAlignment="Center" VerticalAlignment="Center">
+ <!--<touch:TouchIconButton Command="{Binding ElementName=view,Path=DataContext.AddColorCommand}" CommandParameter="{Binding}"
+ Height="40" Width="40" Style="{StaticResource TangoRoundTouchIconButton}" Icon="Plus" Background="{StaticResource TangoRippleDarkBrush}" Foreground="{StaticResource TangoLightForegroundBrush}" Padding="12" Margin="20 0 0 0" />-->
+ <touch:TouchButton Margin="0 0 0 0" VerticalAlignment="Center" Command="{Binding ElementName=view,Path=DataContext.AddColorCommand}" CommandParameter="{Binding}" EnableDropShadow="False" Foreground="{StaticResource TangoKeyboardKeyDarkTextBrush}" Background="Transparent" BorderThickness="0" BorderBrush="Transparent" RippleBrush="Transparent" >
+ <Border Height="40" Width="40" BorderThickness="0" BorderBrush="{StaticResource TangoKeyboardKeyDarkBrush}" Background="Transparent" HorizontalAlignment="Left">
+ <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/AddColor.png"/>
+ </Border>
+ </touch:TouchButton>
+ <TextBlock VerticalAlignment="Center" Margin="20 5 0 0" FontSize="{StaticResource TangoSmallFontSize}" Visibility="{Binding HasColors, Converter={StaticResource BooleanToVisibilityInverseConverter}}" Foreground="{StaticResource TangoKeyboardKeyDarkTextBrush}">Add Color</TextBlock>
+ </StackPanel>
+ <touch:TouchButton Margin="0 0 26 0" Grid.Column="2" HorizontalAlignment="Right" VerticalAlignment="Center" Command="{Binding ElementName=view,Path=DataContext.EditColorCommand}" CommandParameter="{Binding SecondBrushStop}" Visibility="{Binding IsGradient, Converter={StaticResource BooleanToVisibilityConverter}}" EnableDropShadow="False" Foreground="{StaticResource TangoKeyboardKeyDarkTextBrush}" Background="Transparent" BorderThickness="0">
+ <Border Height="40" Width="40" BorderThickness="0" BorderBrush="{StaticResource TangoKeyboardKeyDarkBrush}" Background="Transparent" HorizontalAlignment="Left">
+ <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/Edit_color.png"/>
+ </Border>
+ </touch:TouchButton>
+
+ </Grid>
+ </Border>
+ </Border>
+ <!--<Canvas Grid.Row="1" x:Name="alert_canvas_segment" Width="30" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="-40 -10 0 0" >
+ <touch:TouchButton Height="22" Width="24" Canvas.Left="0" Canvas.Top="0" x:Name="addmyColors" EnableDropShadow="False" Foreground="{StaticResource TangoKeyboardKeyDarkTextBrush}" Background="Transparent" BorderThickness="0" Visibility="{Binding HasOutOfGamutBrush, Converter={StaticResource BooleanToVisibilityConverter}}">
+ <Border BorderThickness="0" BorderBrush="{StaticResource TangoKeyboardKeyDarkBrush}" Background="Transparent" HorizontalAlignment="Left">
+ <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/Exclamation_black.png"/>
+ </Border>
+ </touch:TouchButton>
+ </Canvas>-->
+
+ <Grid Grid.Row="3" x:Name="sliderThreeThumbs" Visibility="{Binding IsGradient, Converter={StaticResource BooleanToVisibilityConverter}}" >
+ <touch:TouchSliderThreeThumbs x:Name="sliderOffset" Height="40" MinimumMiddleRange="5.0" Length="{Binding Length}" LowerValue="{Binding LeftOffset, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" MiddleValue="{Binding MiddleOffset, Mode=TwoWay}" UpperValue="{Binding RightOffset, Mode=TwoWay}"
+ LowerValueEndChanging ="{Binding LeftOffsetChangeComleted}" LowerValueStartChanging="{Binding LeftOffsetStartChanging}"
+ UpperValueStartChanging ="{Binding RightOffsetStartChanging}" UpperValueEndChanging="{Binding RightOffsetChangeComleted}"
+ MiddleValueStartChanging ="{Binding MiddleOffsetStartChanging}" MiddleValueEndChanging ="{Binding MiddleOffsetChangeComleted}"/>
+ </Grid>
+
+ <Grid Grid.Row="4" Margin="0 10 0 0" x:Name="colorSpacesSegment" >
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="Auto"/>
+ <ColumnDefinition Width="1*" MinWidth="10"/>
+ <ColumnDefinition Width="Auto" />
+ </Grid.ColumnDefinitions>
+
+ <ContentControl x:Name="leftColorSpaceValues" Grid.Column="0" Focusable="False" Margin="0 0 0 0" HorizontalAlignment="Left" Content="{Binding FirstBrushStop}" Visibility="{Binding HasColors, Converter={StaticResource BooleanToVisibilityConverter}}">
+ <ContentControl.Style>
+ <Style TargetType="ContentControl">
+ <Setter Property="ContentTemplate">
+ <Setter.Value>
+ <DataTemplate/>
+ </Setter.Value>
+ </Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding FirstBrushStop.ColorSpace, Converter={StaticResource EnumToDescriptionConverter}}" Value="HSB">
+ <Setter Property="ContentTemplate" Value="{StaticResource HSB_Template}" />
+ </DataTrigger>
+ <DataTrigger Binding="{Binding FirstBrushStop.ColorSpace, Converter={StaticResource EnumToDescriptionConverter}}" Value="RGB">
+ <Setter Property="ContentTemplate" Value="{StaticResource RGB_Template}" />
+ </DataTrigger>
+ <DataTrigger Binding="{Binding FirstBrushStop.ColorSpace, Converter={StaticResource EnumToDescriptionConverter}}" Value="Volume">
+ <Setter Property="ContentTemplate" Value="{StaticResource CMYK_Template}" />
+ </DataTrigger>
+ <DataTrigger Binding="{Binding FirstBrushStop.ColorSpace, Converter={StaticResource EnumToDescriptionConverter}}" Value="LAB">
+ <Setter Property="ContentTemplate" Value="{StaticResource LAB_Template}" />
+ </DataTrigger>
+ <DataTrigger Binding="{Binding FirstBrushStop.ColorSpace, Converter={StaticResource EnumToDescriptionConverter}}" Value="Catalog">
+ <Setter Property="ContentTemplate" Value="{StaticResource CATALOG_Template}" />
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </ContentControl.Style>
+ </ContentControl>
+ <Border Grid.Column="1"></Border>
+ <ContentControl x:Name="rightColorSpaceValues" Grid.Column="2" Focusable="False" Margin="0 0 0 0" HorizontalAlignment="Right" HorizontalContentAlignment="Right"
+ Visibility="{Binding IsGradient, Converter={StaticResource BooleanToVisibilityConverter}}" Content="{Binding SecondBrushStop}">
+ <ContentControl.Style>
+ <Style TargetType="ContentControl">
+ <Setter Property="ContentTemplate">
+ <Setter.Value>
+ <DataTemplate/>
+ </Setter.Value>
+ </Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding SecondBrushStop.ColorSpace, Converter={StaticResource EnumToDescriptionConverter}, Mode=OneWay}" Value="HSB">
+ <Setter Property="ContentTemplate" Value="{StaticResource HSB_Template}" />
+ </DataTrigger>
+ <DataTrigger Binding="{Binding SecondBrushStop.ColorSpace, Converter={StaticResource EnumToDescriptionConverter}, Mode=TwoWay}" Value="RGB">
+ <Setter Property="ContentTemplate" Value="{StaticResource RGB_Template}" />
+ </DataTrigger>
+ <DataTrigger Binding="{Binding SecondBrushStop.ColorSpace, Converter={StaticResource EnumToDescriptionConverter}, Mode=OneWay}" Value="Volume">
+ <Setter Property="ContentTemplate" Value="{StaticResource CMYK_Template}" />
+ </DataTrigger>
+ <DataTrigger Binding="{Binding SecondBrushStop.ColorSpace, Converter={StaticResource EnumToDescriptionConverter}, Mode=OneWay}" Value="LAB">
+ <Setter Property="ContentTemplate" Value="{StaticResource LAB_Template}" />
+ </DataTrigger>
+ <DataTrigger Binding="{Binding SecondBrushStop.ColorSpace, Converter={StaticResource EnumToDescriptionConverter}, Mode=OneWay}" Value="Catalog">
+ <Setter Property="ContentTemplate" Value="{StaticResource CATALOG_Template}" />
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </ContentControl.Style>
+ </ContentControl>
+
+ </Grid>
+ <!--<Rectangle Grid.Row="5" Fill="{StaticResource TangoDividerBrush}" Height="2" VerticalAlignment="Bottom" Margin="0 0 0 0"/>-->
+
+ <Grid Grid.Row="5" x:Name="add_new_segment_gap" HorizontalAlignment="Stretch" Margin="0 30 0 0" >
+ <Grid.RowDefinitions>
+ <RowDefinition Height="Auto"/>
+ <RowDefinition Height="1*"/>
+ <RowDefinition Height="Auto"/>
+ </Grid.RowDefinitions>
+ <Rectangle Stroke="{StaticResource TangoDividerBrush}" StrokeThickness="1" VerticalAlignment="Top" />
+
+ <Border x:Name="gapBorder" Margin="0 0 0 0" Height="24" ClipToBounds="False" CornerRadius="10" Visibility="{Binding ShowGap, Converter={StaticResource BooleanToVisibilityConverter}}">
+ <Border.Clip>
+ <RectangleGeometry RadiusX="10" RadiusY="10">
+ <RectangleGeometry.Rect>
+ <MultiBinding Converter="{StaticResource WidthHeightToRectConverter}">
+ <Binding ElementName="gapBorder" Path="ActualWidth" />
+ <Binding ElementName="gapBorder" Path="ActualHeight" />
+ </MultiBinding>
+ </RectangleGeometry.Rect>
+ </RectangleGeometry>
+ </Border.Clip>
+ <Grid>
+ <TextBlock FontSize="{StaticResource TangoDefaultFontSize}" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="4">
+ <Run Text="{Binding InterSegmentLength, Mode=OneWay}"></Run>
+ <Run Text="m Gap"></Run>
+ </TextBlock>
+ <Rectangle Stroke="{StaticResource TangoGrayBrush}" StrokeThickness="1" StrokeDashArray="5 5 5 5" RadiusX="12" RadiusY="12" />
+ </Grid>
+ </Border>
+
+ <DockPanel Margin="0 10 0 0" Grid.Row="1">
+ <!--<Grid DockPanel.Dock="Right" Visibility="{Binding IsLast, Converter={StaticResource BooleanToVisibilityInverseConverter}}">-->
+ <Grid DockPanel.Dock="Right" Visibility="Collapsed">
+ <touch:TouchButton x:Name="deletegap" DockPanel.Dock="Right" HorizontalAlignment="Right" VerticalAlignment="Center" Command="{Binding DeleteGapCommand}" EnableDropShadow="False" Foreground="{StaticResource TangoKeyboardKeyDarkTextBrush}" Background="Transparent" BorderThickness="0" Visibility="{Binding EnableInterSegment, Converter={StaticResource BooleanToVisibilityConverter}}">
+ <TextBlock Margin="10 2 0 0" FontSize="{StaticResource TangoButtonFontSize}" VerticalAlignment="Center">Delete Gap</TextBlock>
+ </touch:TouchButton>
+ <touch:TouchButton x:Name="addGap" DockPanel.Dock="Right" HorizontalAlignment="Left" VerticalAlignment="Center" Command="{Binding AddGapCommand}" EnableDropShadow="False" Foreground="{StaticResource TangoKeyboardKeyDarkTextBrush}" Background="Transparent" BorderThickness="0" Visibility="{Binding EnableInterSegment, Converter={StaticResource BooleanToVisibilityInverseConverter}}">
+ <StackPanel Orientation="Horizontal">
+ <Border Height="35" Width="35" BorderThickness="0" Background="Transparent" HorizontalAlignment="Left">
+ <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/add_gap.png"/>
+ </Border>
+ <TextBlock Margin="10 2 0 0" FontSize="{StaticResource TangoButtonFontSize}" VerticalAlignment="Center">Add Gap</TextBlock>
+ </StackPanel>
+ </touch:TouchButton>
+ </Grid>
+ <touch:TouchButton DockPanel.Dock="Left" HorizontalAlignment="Left" VerticalAlignment="Center" Command="{Binding DataContext.AddNewSegmentCommand, ElementName=listSegments}" CommandParameter="{Binding }" EnableDropShadow="False" Foreground="{StaticResource TangoKeyboardKeyDarkTextBrush}" Background="Transparent" BorderThickness="0">
+ <StackPanel Orientation="Horizontal">
+ <Border Height="35" Width="35" BorderThickness="0" Background="Transparent" HorizontalAlignment="Left">
+ <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/AddNewSegment.png"/>
+ </Border>
+ <TextBlock Margin="10 2 0 0" FontSize="{StaticResource TangoButtonFontSize}" VerticalAlignment="Center">Add New Segments</TextBlock>
+ </StackPanel>
+ </touch:TouchButton>
+ </DockPanel>
+
+ <Rectangle Margin="0 10 0 0" Grid.Row="2" Stroke="{StaticResource TangoDividerBrush}" StrokeThickness="1" VerticalAlignment="Bottom"/>
+ </Grid>
+ </Grid>
+ </DataTemplate>
+
+ <DataTemplate x:Key="GroupSegment_Template" DataType="{x:Type model:SegmentsGroupModel}">
+ <!--<Grid Height="310" Margin="57 10 57 0">-->
+ <Grid Height="400" Margin="57 15 57 0">
+ <Grid.RowDefinitions>
+ <RowDefinition Height="Auto" />
+ <RowDefinition Height="Auto" />
+ <RowDefinition Height="1*" />
+ <!--<RowDefinition Height="10" />-->
+ </Grid.RowDefinitions>
+
+ <DockPanel>
+ <StackPanel Orientation="Horizontal" DockPanel.Dock="Right" Height="60">
+ <touch:TouchButton Background="Transparent" Foreground="{StaticResource TangoPrimaryAccentBrush}" EnableDropShadow="False" Command="{Binding ElementName=view,Path=DataContext.UngroupSegmentsCommand}" CommandParameter="{Binding}">
+ <TextBlock FontSize="{StaticResource TangoButtonFontSize}" TextDecorations="Underline" Text="Ungroup" />
+ </touch:TouchButton>
+ <touch:TouchButton Margin="20 0 0 0" VerticalAlignment="Center" EnableDropShadow="False" Background="Transparent" BorderThickness="0" Command="{Binding ElementName=view,Path=DataContext.DeleteSegmentsGroupCommand}" CommandParameter="{Binding}">
+ <Border Height="24" Width="24" BorderThickness="0" BorderBrush="{StaticResource TangoKeyboardKeyDarkBrush}" Background="Transparent" HorizontalAlignment="Left">
+ <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/delete_segment.png"/>
+ </Border>
+ </touch:TouchButton>
+ <!--<touch:TouchButton Margin="20 0 0 0" VerticalAlignment="Center" EnableDropShadow="False" Background="Transparent" BorderThickness="0" Command="{Binding ElementName=view,Path=DataContext.DuplicateSegmentCommand}" CommandParameter="{Binding}">
+ <Border Height="24" Width="24" BorderThickness="0" BorderBrush="{StaticResource TangoKeyboardKeyDarkBrush}" Background="Transparent" HorizontalAlignment="Left">
+ <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/duplicate.png"/>
+ </Border>
+ </touch:TouchButton>-->
+ </StackPanel>
+ <StackPanel Grid.Row="0" DockPanel.Dock="Left">
+ <StackPanel Margin="0 0 0 0" Orientation="Horizontal" >
+ <TextBlock FontSize="{StaticResource TangoTitleFontSize}">
+ <Run>Group #</Run>
+ <Run Text="{Binding SegmentIndex, Mode=OneWay,IsAsync=True,FallbackValue='0000'}"></Run>
+
+ </TextBlock>
+ <touch:TouchButton Background="Transparent" Width="Auto" EnableDropShadow="False" Command="{Binding ElementName=view,Path=DataContext.RepeatSegmentsGroupCommand}" CommandParameter="{Binding}">
+ <TextBlock Margin="10 0 0 0" Foreground="{StaticResource TangoPrimaryAccentBrush}" TextDecorations="Underline">
+ <Run>x</Run>
+ <Run Text="{Binding Repeats, Mode=OneWay,IsAsync=True,FallbackValue='0000'}"></Run>
+ </TextBlock>
+ </touch:TouchButton>
+ </StackPanel>
+ <StackPanel Margin="0 0 0 0" Orientation="Horizontal">
+ <controls:FastTextBlock VerticalAlignment="Bottom" DockPanel.Dock="Left" Text="Length (m):" FontSize="18"></controls:FastTextBlock>
+ <controls:FastTextBlock Margin="20 0 0 0" Width="92" VerticalAlignment="Bottom" DockPanel.Dock="Left" Text="{Binding Length}" FontSize="18"></controls:FastTextBlock>
+ </StackPanel>
+ </StackPanel>
+ </DockPanel>
+
+ <Border Grid.Row="1" x:Name="brush_border" Height="90" Margin="0 20 0 0" CornerRadius="20" Background="{StaticResource TangoPrimaryBackgroundBrush}" BorderThickness="1" BorderBrush="{StaticResource TangoGrayBrush}">
+ <Border.Clip>
+ <RectangleGeometry RadiusX="25" RadiusY="25">
+ <RectangleGeometry.Rect>
+ <MultiBinding Converter="{StaticResource WidthHeightToRectConverter}">
+ <Binding ElementName="brush_border" Path="ActualWidth" />
+ <Binding ElementName="brush_border" Path="ActualHeight" />
+ </MultiBinding>
+ </RectangleGeometry.Rect>
+ </RectangleGeometry>
+ </Border.Clip>
+ <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
+ <ItemsControl ClipToBounds="False" ItemsSource="{Binding Segments}" >
+ <ItemsControl.ItemsPanel>
+ <ItemsPanelTemplate>
+ <StackPanel Orientation="Horizontal" ClipToBounds="False"></StackPanel>
+ </ItemsPanelTemplate>
+ </ItemsControl.ItemsPanel>
+ <ItemsControl.ItemTemplate>
+ <DataTemplate>
+ <Grid>
+ <Grid.Width>
+ <MultiBinding Converter="{StaticResource SegmentLengthToWidthConverter}">
+ <Binding RelativeSource="{RelativeSource AncestorType=ItemsControl}" Path="DataContext.Length"></Binding>
+ <Binding RelativeSource="{RelativeSource AncestorType=ItemsControl}" Path="ActualWidth"></Binding>
+ <Binding Path="Length"></Binding>
+ </MultiBinding>
+ </Grid.Width>
+ <Rectangle Fill="{Binding SegmentBrush}"></Rectangle>
+ </Grid>
+ </DataTemplate>
+ </ItemsControl.ItemTemplate>
+ </ItemsControl>
+
+ <Border Height="40" Width="151" Opacity="1" Background="#32787880" HorizontalAlignment="Center" CornerRadius="8" VerticalAlignment="Center">
+ <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="{StaticResource TangoComboBoxItemFontSize}"> Grouped</TextBlock>
+ </Border>
+ </Grid>
+ </Border>
+ <!--<Rectangle Grid.Row="2" Fill="{StaticResource TangoDividerBrush}" Height="2" VerticalAlignment="Bottom" Margin="0 0 0 0"/>-->
+
+ <Grid Grid.Row="2" x:Name="add_new_segment_gap" HorizontalAlignment="Stretch" Margin="0 30 0 0" >
+ <Grid.RowDefinitions>
+ <RowDefinition Height="Auto"/>
+ <RowDefinition Height="1*"/>
+ <RowDefinition Height="Auto"/>
+ </Grid.RowDefinitions>
+ <Rectangle Stroke="{StaticResource TangoDividerBrush}" StrokeThickness="1" VerticalAlignment="Top" />
+
+ <Border x:Name="gapBorder" Margin="0 0 0 0" Height="24" ClipToBounds="False" CornerRadius="10" Visibility="{Binding ShowGap, Converter={StaticResource BooleanToVisibilityConverter}}">
+ <Border.Clip>
+ <RectangleGeometry RadiusX="10" RadiusY="10">
+ <RectangleGeometry.Rect>
+ <MultiBinding Converter="{StaticResource WidthHeightToRectConverter}">
+ <Binding ElementName="gapBorder" Path="ActualWidth" />
+ <Binding ElementName="gapBorder" Path="ActualHeight" />
+ </MultiBinding>
+ </RectangleGeometry.Rect>
+ </RectangleGeometry>
+ </Border.Clip>
+ <Grid>
+ <TextBlock FontSize="{StaticResource TangoDefaultFontSize}" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="4">
+ <Run Text="{Binding InterSegmentLength, Mode=OneWay}"></Run>
+ <Run Text="m Gap"></Run>
+ </TextBlock>
+ <Rectangle Stroke="{StaticResource TangoGrayBrush}" StrokeThickness="1" StrokeDashArray="5 5 5 5" RadiusX="12" RadiusY="12" />
+ </Grid>
+ </Border>
+
+ <DockPanel Margin="0 10 0 0" Grid.Row="1">
+ <!--<Grid DockPanel.Dock="Right" Visibility="{Binding IsLast, Converter={StaticResource BooleanToVisibilityInverseConverter}}">
+ <Grid DockPanel.Dock="Right" Visibility="Collapsed">
+ <touch:TouchButton x:Name="deletegap" DockPanel.Dock="Right" HorizontalAlignment="Right" VerticalAlignment="Center" Command="{Binding DeleteGapCommand}" EnableDropShadow="False" Foreground="{StaticResource TangoKeyboardKeyDarkTextBrush}" Background="Transparent" BorderThickness="0" Visibility="{Binding EnableInterSegment, Converter={StaticResource BooleanToVisibilityConverter}}">
+ <TextBlock Margin="10 2 0 0" FontSize="{StaticResource TangoButtonFontSize}" VerticalAlignment="Center">Delete Gap</TextBlock>
+ </touch:TouchButton>
+ <touch:TouchButton x:Name="addGap" DockPanel.Dock="Right" HorizontalAlignment="Left" VerticalAlignment="Center" Command="{Binding AddGapCommand}" EnableDropShadow="False" Foreground="{StaticResource TangoKeyboardKeyDarkTextBrush}" Background="Transparent" BorderThickness="0" Visibility="{Binding EnableInterSegment, Converter={StaticResource BooleanToVisibilityInverseConverter}}">
+ <StackPanel Orientation="Horizontal">
+ <Border Height="35" Width="35" BorderThickness="0" Background="Transparent" HorizontalAlignment="Left">
+ <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/add_gap.png"/>
+ </Border>
+ <TextBlock Margin="10 2 0 0" FontSize="{StaticResource TangoButtonFontSize}" VerticalAlignment="Center">Add Gap</TextBlock>
+ </StackPanel>
+ </touch:TouchButton>
+ </Grid>-->
+ <touch:TouchButton DockPanel.Dock="Left" HorizontalAlignment="Left" VerticalAlignment="Center" Command="{Binding DataContext.AddNewSegmentCommand, ElementName=listSegments}" CommandParameter="{Binding }" EnableDropShadow="False" Foreground="{StaticResource TangoKeyboardKeyDarkTextBrush}" Background="Transparent" BorderThickness="0">
+ <StackPanel Orientation="Horizontal">
+ <Border Height="35" Width="35" BorderThickness="0" Background="Transparent" HorizontalAlignment="Left">
+ <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/AddNewSegment.png"/>
+ </Border>
+ <TextBlock Margin="10 2 0 0" FontSize="{StaticResource TangoButtonFontSize}" VerticalAlignment="Center">Add New Segments</TextBlock>
+ </StackPanel>
+ </touch:TouchButton>
+ </DockPanel>
+
+ <Rectangle Margin="0 10 0 0" Grid.Row="2" Stroke="{StaticResource TangoDividerBrush}" StrokeThickness="1" VerticalAlignment="Bottom"/>
+ </Grid>
+
+ <Rectangle Margin="0 10 0 0" Grid.Row="2" Stroke="{StaticResource TangoDividerBrush}" StrokeThickness="1" VerticalAlignment="Bottom"/>
+ </Grid>
+ </DataTemplate>
+
+ <DataTemplate x:Key="CollapsedSegment_Template" DataType="{x:Type model:SegmentModel}">
+ <Grid Height="180" Margin="57 15 57 0">
+ <Grid.RowDefinitions>
+ <RowDefinition Height="Auto" />
+ <RowDefinition Height="Auto" />
+ </Grid.RowDefinitions>
+ <DockPanel>
+ <Rectangle DockPanel.Dock="Top" Stroke="{StaticResource TangoDividerBrush}" StrokeThickness="1" VerticalAlignment="Top" Margin="0 0 0 10"/>
+ <StackPanel Orientation="Horizontal" DockPanel.Dock="Right" Height="40">
+ <touch:TouchButton Margin="0 0 0 0" VerticalAlignment="Center" EnableDropShadow="False" Background="Transparent" BorderThickness="0" Command="{Binding ElementName=view,Path=DataContext.RemoveSegmentCommand}" CommandParameter="{Binding}">
+ <Border Height="24" Width="24" BorderThickness="0" BorderBrush="{StaticResource TangoKeyboardKeyDarkBrush}" Background="Transparent" HorizontalAlignment="Left">
+ <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/delete_segment.png"/>
+ </Border>
+ </touch:TouchButton>
+ <touch:TouchButton Margin="20 0 0 0" VerticalAlignment="Center" EnableDropShadow="False" Background="Transparent" BorderThickness="0" Command="{Binding ElementName=view,Path=DataContext.DuplicateSegmentCommand}" CommandParameter="{Binding}">
+ <Border Height="27" Width="23" BorderThickness="0" BorderBrush="{StaticResource TangoKeyboardKeyDarkBrush}" Background="Transparent" HorizontalAlignment="Left">
+ <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/duplicate.png"/>
+ </Border>
+ </touch:TouchButton>
+ </StackPanel>
+ <StackPanel DockPanel.Dock="Left">
+ <StackPanel Margin="0 10 0 0" Orientation="Horizontal" >
+ <controls:FastTextBlock FontSize="{StaticResource TangoTitleFontSize}">Segment #</controls:FastTextBlock>
+ <controls:FastTextBlock FontSize="{StaticResource TangoTitleFontSize}" Text="{Binding SegmentIndex,Mode=OneWay}"></controls:FastTextBlock>
+ </StackPanel>
+ </StackPanel>
+ </DockPanel>
+
+ <StackPanel Grid.Row="1" Orientation="Vertical">
+ <Border Height="50" x:Name="segmentBrush" Margin="0 11 0 0" CornerRadius="25" Background="{StaticResource TangoPrimaryBackgroundBrush}" BorderThickness="1" BorderBrush="{StaticResource TangoGrayBrush}">
+ <Border Background="{Binding SegmentBrush}" CornerRadius="25" />
+ </Border>
+ <Border x:Name="gapBorder" Margin="0 20 0 0" Height="24" ClipToBounds="False" CornerRadius="10" Visibility="{Binding ShowGap, Converter={StaticResource BooleanToVisibilityConverter}}">
+ <Border.Clip>
+ <RectangleGeometry RadiusX="10" RadiusY="10">
+ <RectangleGeometry.Rect>
+ <MultiBinding Converter="{StaticResource WidthHeightToRectConverter}">
+ <Binding ElementName="gapBorder" Path="ActualWidth" />
+ <Binding ElementName="gapBorder" Path="ActualHeight" />
+ </MultiBinding>
+ </RectangleGeometry.Rect>
+ </RectangleGeometry>
+ </Border.Clip>
+ <Grid>
+ <TextBlock FontSize="{StaticResource TangoDefaultFontSize}" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="4">
+ <Run Text="{Binding InterSegmentLength, Mode=OneWay}"></Run>
+ <Run Text="m Gap"></Run>
+ </TextBlock>
+ <Rectangle Stroke="{StaticResource TangoGrayBrush}" StrokeThickness="1" StrokeDashArray="5 5 5 5" RadiusX="12" RadiusY="12" />
+ </Grid>
+ </Border>
+
+ </StackPanel>
+
+ <Canvas Grid.Row="1" x:Name="select_canvas_segment" Width="24" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="-50 -35 0 0" >
+ <touch:TouchCheckBox Height="22" Width="24" Margin="20 -20 0 0" Style="{StaticResource TouchRoundCheckBox}" Canvas.Left="0" Canvas.Top="0" x:Name="selectItem" Foreground="{StaticResource TangoKeyboardKeyDarkTextBrush}" Background="Transparent" IsChecked="{Binding IsSelected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Center" HorizontalAlignment="Center"/>
+ </Canvas>
+
+ </Grid>
+ </DataTemplate>
+
+ <DataTemplate x:Key="CollapsedGroupSegment_Template" DataType="{x:Type model:SegmentsGroupModel}">
+ <Grid Height="180" Margin="57 15 57 0">
+ <Grid.RowDefinitions>
+ <RowDefinition Height="Auto" />
+ <RowDefinition Height="Auto" />
+ </Grid.RowDefinitions>
+ <DockPanel>
+ <Rectangle DockPanel.Dock="Top" Stroke="{StaticResource TangoDividerBrush}" StrokeThickness="1" VerticalAlignment="Top" Margin="0 0 0 10"/>
+ <StackPanel Orientation="Horizontal" DockPanel.Dock="Right" Height="40">
+ <touch:TouchButton Background="Transparent" Foreground="{StaticResource TangoPrimaryAccentBrush}" EnableDropShadow="False" Command="{Binding ElementName=view,Path=DataContext.UngroupSegmentsCommand}" CommandParameter="{Binding}">
+ <TextBlock FontSize="{StaticResource TangoButtonFontSize}" TextDecorations="Underline" Text="Ungroup" />
+ </touch:TouchButton>
+ <touch:TouchButton Margin="10 0 0 0" VerticalAlignment="Center" EnableDropShadow="False" Background="Transparent" BorderThickness="0" Command="{Binding ElementName=view,Path=DataContext.DeleteSegmentsGroupCommand}" CommandParameter="{Binding}">
+ <Border Height="24" Width="24" BorderThickness="0" BorderBrush="{StaticResource TangoKeyboardKeyDarkBrush}" Background="Transparent" HorizontalAlignment="Left">
+ <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/delete_segment.png"/>
+ </Border>
+ </touch:TouchButton>
+ <!--<touch:TouchButton Margin="20 0 0 0" VerticalAlignment="Center" EnableDropShadow="False" Background="Transparent" BorderThickness="0" Command="{Binding ElementName=view,Path=DataContext.DuplicateSegmentCommand}" CommandParameter="{Binding}">
+ <Border Height="27" Width="23" BorderThickness="0" BorderBrush="{StaticResource TangoKeyboardKeyDarkBrush}" Background="Transparent" HorizontalAlignment="Left">
+ <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/duplicate.png"/>
+ </Border>
+ </touch:TouchButton>-->
+ </StackPanel>
+ <StackPanel DockPanel.Dock="Left">
+ <StackPanel Margin="0 10 0 0" Orientation="Horizontal" >
+ <TextBlock FontSize="{StaticResource TangoTitleFontSize}">
+ <Run>Group #</Run>
+ <Run Text="{Binding SegmentIndex, Mode=OneWay,IsAsync=True,FallbackValue='0000'}"></Run>
+ </TextBlock>
+ <touch:TouchButton Margin="10 0 0 0" Background="Transparent" Width="Auto" EnableDropShadow="False" Command="{Binding ElementName=view,Path=DataContext.RepeatSegmentsGroupCommand}" CommandParameter="{Binding}">
+ <TextBlock Foreground="{StaticResource TangoPrimaryAccentBrush}" TextDecorations="Underline">
+ <Run>x</Run>
+ <Run Text="{Binding Repeats, Mode=OneWay,IsAsync=True,FallbackValue='0000'}"></Run>
+ </TextBlock>
+ </touch:TouchButton>
+ </StackPanel>
+ </StackPanel>
+ </DockPanel>
+
+ <StackPanel Grid.Row="1" Orientation="Vertical">
+ <Border Height="50" x:Name="brush_border" Margin="0 10 0 0" CornerRadius="25" Background="{StaticResource TangoPrimaryBackgroundBrush}" BorderThickness="1" BorderBrush="{StaticResource TangoGrayBrush}" ClipToBounds="False">
+ <Border.Clip>
+ <RectangleGeometry RadiusX="25" RadiusY="25">
+ <RectangleGeometry.Rect>
+ <MultiBinding Converter="{StaticResource WidthHeightToRectConverter}">
+ <Binding ElementName="brush_border" Path="ActualWidth" />
+ <Binding ElementName="brush_border" Path="ActualHeight" />
+ </MultiBinding>
+ </RectangleGeometry.Rect>
+ </RectangleGeometry>
+ </Border.Clip>
+ <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
+ <ItemsControl ClipToBounds="False" ItemsSource="{Binding Segments}" >
+ <ItemsControl.ItemsPanel>
+ <ItemsPanelTemplate>
+ <StackPanel Orientation="Horizontal" ClipToBounds="False"></StackPanel>
+ </ItemsPanelTemplate>
+ </ItemsControl.ItemsPanel>
+ <ItemsControl.ItemTemplate>
+ <DataTemplate>
+ <Grid>
+ <Grid.Width>
+ <MultiBinding Converter="{StaticResource SegmentLengthToWidthConverter}">
+ <Binding RelativeSource="{RelativeSource AncestorType=ItemsControl}" Path="DataContext.Length"></Binding>
+ <Binding RelativeSource="{RelativeSource AncestorType=ItemsControl}" Path="ActualWidth"></Binding>
+ <Binding Path="Length"></Binding>
+ </MultiBinding>
+ </Grid.Width>
+ <Rectangle Fill="{Binding SegmentBrush}"></Rectangle>
+ </Grid>
+ </DataTemplate>
+ </ItemsControl.ItemTemplate>
+ </ItemsControl>
+
+ <Border Height="28" Width="150" BorderThickness="0" BorderBrush="Transparent" Opacity="20" Background="#32787880" HorizontalAlignment="Center" CornerRadius="8" VerticalAlignment="Center">
+ <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="{StaticResource TangoComboBoxItemFontSize}"> Grouped</TextBlock>
+ </Border>
+
+ </Grid>
+
+ </Border>
+ <Border x:Name="gapBorder" Margin="0 20 0 0" Height="24" ClipToBounds="False" CornerRadius="10" Visibility="{Binding ShowGap, Converter={StaticResource BooleanToVisibilityConverter}}">
+ <Border.Clip>
+ <RectangleGeometry RadiusX="10" RadiusY="10">
+ <RectangleGeometry.Rect>
+ <MultiBinding Converter="{StaticResource WidthHeightToRectConverter}">
+ <Binding ElementName="gapBorder" Path="ActualWidth" />
+ <Binding ElementName="gapBorder" Path="ActualHeight" />
+ </MultiBinding>
+ </RectangleGeometry.Rect>
+ </RectangleGeometry>
+ </Border.Clip>
+ <Grid>
+ <TextBlock FontSize="{StaticResource TangoDefaultFontSize}" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="4">
+ <Run Text="{Binding InterSegmentLength, Mode=OneWay}"></Run>
+ <Run Text="m Gap"></Run>
+ </TextBlock>
+ <Rectangle Stroke="{StaticResource TangoGrayBrush}" StrokeThickness="1" StrokeDashArray="5 5 5 5" RadiusX="12" RadiusY="12" />
+ </Grid>
+ </Border>
+
+ </StackPanel>
+
+ <Canvas Grid.Row="1" x:Name="select_canvas_segment" Width="24" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="-50 -35 0 0" >
+ <touch:TouchCheckBox Height="22" Width="24" Margin="20 -20 0 0" Style="{StaticResource TouchRoundCheckBox}" Canvas.Left="0" Canvas.Top="0" x:Name="selectItem" Foreground="{StaticResource TangoKeyboardKeyDarkTextBrush}" Background="Transparent" IsChecked="{Binding IsSelected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Center" HorizontalAlignment="Center"/>
+ </Canvas>
+
+ </Grid>
+ </DataTemplate>
+
+ <helpers:GroupSegmentTemplateSelector x:Key="GroupSegmentTemplateSelector"
+ GroupSegmentsTemplate="{StaticResource GroupSegment_Template}"
+ SegmentTemplate="{StaticResource Segment_Template}"/>
+ <helpers:GroupSegmentTemplateSelector x:Key="CollapsedGroupSegmentTemplateSelector"
+ GroupSegmentsTemplate="{StaticResource CollapsedGroupSegment_Template}"
+ SegmentTemplate="{StaticResource CollapsedSegment_Template}"/>
+
+ </UserControl.Resources>
+
+ <Grid Background="{StaticResource TangoMidBackgroundBrush}" SnapsToDevicePixels="False">
+ <Grid.RowDefinitions>
+ <RowDefinition Height="Auto"/>
+ <RowDefinition Height="Auto"/>
+ <RowDefinition Height="1*"/>
+ </Grid.RowDefinitions>
+ <touch:TouchLoadingPanel x:Name="GeneralSettings" Grid.Row="1" IsLoading="{Binding IsBusy}" Margin="10 7 10 0" IsEnabled="{Binding CanEdit}">
+ <Border Grid.Row="1" x:Name="jobDetailsBorder" Background="{StaticResource TangoPrimaryBackgroundBrush}" BorderThickness="2" BorderBrush="{StaticResource TangoLightBorderBrush}" Margin="0 7 0 7">
+
+ <Grid x:Name="job_details" HorizontalAlignment="Stretch" >
+
+ <StackPanel Orientation="Vertical">
+ <DockPanel>
+ <StackPanel DockPanel.Dock="Right" Orientation="Horizontal" VerticalAlignment="Center" Width="200" MinHeight="55" HorizontalAlignment="Right" Margin="0 0 0 0">
+ <touch:TouchToggleSlider Style="{StaticResource TouchToggleButtonSlider}" Background="{StaticResource TangoMidBackgroundBrush}" CheckedBackground="{StaticResource TangoMidBackgroundBrush}" UncheckedBackground="{StaticResource TangoMidBackgroundBrush}" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="20 0 110 0" CornerRadius="17" Height="34" Width="164" ThumbWidth="80" LeftText="Length" RightText="Weight" ThumbCornerRadius="13" IsChecked="{Binding IsWeightView}" ></touch:TouchToggleSlider>
+ </StackPanel>
+ <StackPanel Orientation="Horizontal" MinHeight="55" VerticalAlignment="Top" >
+ <StackPanel.Style>
+ <Style TargetType="StackPanel">
+ <Setter Property="Margin" Value="20 10 10 0"></Setter>
+ <!--<Style.Triggers>
+ <DataTrigger Binding="{Binding IsFullMode}" Value="false">
+ <Setter Property="Margin" Value="20 15 60 15"></Setter>
+ </DataTrigger>
+ </Style.Triggers>-->
+ </Style>
+ </StackPanel.Style>
+ <Image Source="../Images/JobView/job-details.png" Width="30" Height="30" />
+ <TextBlock FontWeight="Medium" Margin="20 0 0 0" VerticalAlignment="Center" FontSize="{StaticResource TangoExpanderHeaderFontSize}">General Settings</TextBlock>
+ </StackPanel>
+
+ </DockPanel>
+
+ <Rectangle Height="2" Margin="0 0 0 0" Fill="{StaticResource TangoDividerBrush}" VerticalAlignment="Bottom"></Rectangle>
+
+ <StackPanel Orientation="Vertical" VerticalAlignment="Top">
+ <DockPanel HorizontalAlignment="Stretch" Margin="60 20 60 0">
+ <TextBlock HorizontalAlignment="Left" Margin="0 10 0 0" Text="Thread" FontSize="{StaticResource TangoButtonFontSize}" Width="145"/>
+ <Border Margin="20 0 0 0" BorderThickness="1" Height="44" CornerRadius="12" BorderBrush="{StaticResource TangoMidAccentBrush}">
+ <touch:TouchComboBox Margin="20 0 10 10" ItemsSource="{Binding Rmls}" SelectedItem="{Binding SelectedRML ,Mode=TwoWay}" Focusable="False" KeyboardNavigation.TabNavigation ="None">
+ <touch:TouchComboBox.ItemTemplate>
+ <DataTemplate>
+ <TextBlock Margin="20 10 10 10" TextTrimming="CharacterEllipsis" FontSize="{StaticResource TangoComboBoxItemFontSize}" Text="{Binding FinalName}"/>
+ </DataTemplate>
+ </touch:TouchComboBox.ItemTemplate>
+ <touch:TouchComboBox.SelectedItemTemplate>
+ <DataTemplate>
+ <TextBlock Margin="0 0 0 5" FontSize="{StaticResource TangoComboBoxItemFontSize}" Text="{Binding FinalName}" VerticalAlignment="Center"></TextBlock>
+ </DataTemplate>
+ </touch:TouchComboBox.SelectedItemTemplate>
+ </touch:TouchComboBox>
+ </Border>
+ </DockPanel>
+ </StackPanel>
+ <DockPanel HorizontalAlignment="Stretch" Margin="60 20 60 20">
+ <StackPanel Orientation="Horizontal" DockPanel.Dock="Right">
+ <TextBlock HorizontalAlignment="Left" Margin="20 10 0 0" Text="Divided By Spools" FontSize="{StaticResource TangoButtonFontSize}" Width="Auto"/>
+ <Border Margin="20 0 0 0" BorderThickness="1" Height="44" CornerRadius="12" BorderBrush="{StaticResource TangoMidAccentBrush}" Width="120" DockPanel.Dock="Right">
+ <touch:TouchNumericTextBox BorderBrush="Transparent" Margin="0 0 0 0" HasDecimalPoint="False" Minimum="4" Step="4" FontSize="{StaticResource TangoComboBoxItemFontSize}" VerticalAlignment="Center" VerticalContentAlignment="Center" HorizontalAlignment="Center" Value="{Binding JobModel.NumberSpools}" HideUnderline="True" RippleBrush="Transparent"></touch:TouchNumericTextBox>
+ </Border>
+ </StackPanel>
+ <StackPanel Orientation="Horizontal">
+ <TextBlock HorizontalAlignment="Left" Margin="0 10 0 0" Text="Copies" FontSize="{StaticResource TangoButtonFontSize}" Width="145"/>
+ <Border Margin="20 0 0 0" BorderThickness="1" Height="44" CornerRadius="12" BorderBrush="{StaticResource TangoMidAccentBrush}" Width="120">
+ <touch:TouchNumericTextBox BorderBrush="Transparent" HasDecimalPoint="False" Minimum="4" Maximum="1000000" Step="4" Margin="0 0 0 0" FontSize="{StaticResource TangoComboBoxItemFontSize}" VerticalContentAlignment="Center" VerticalAlignment="Center" HorizontalAlignment="Center" Value="{Binding JobModel.Copies}" HideUnderline="True" RippleBrush="Transparent"></touch:TouchNumericTextBox>
+
+ </Border>
+ </StackPanel>
+
+ </DockPanel>
+ <StackPanel Orientation="Horizontal" Margin="60 0 60 20" Visibility="{Binding IsBasicMode, Converter={StaticResource BooleanToVisibilityInverseConverter}}">
+ <TextBlock HorizontalAlignment="Left" Margin="0 10 0 0" Text="White Gap(m)" FontSize="{StaticResource TangoButtonFontSize}" Width="145"/>
+ <Border Margin="20 0 0 0" BorderThickness="1" Height="44" CornerRadius="12" BorderBrush="{StaticResource TangoMidAccentBrush}" Width="120">
+ <touch:TouchNumericTextBox BorderBrush="Transparent" HasDecimalPoint="False" Minimum="0" Margin="0 0 0 0" FontSize="{StaticResource TangoComboBoxItemFontSize}" VerticalContentAlignment="Center" VerticalAlignment="Center" HorizontalAlignment="Center" Value="{Binding JobModel.InterSegmentLength}" HideUnderline="True" RippleBrush="Transparent"></touch:TouchNumericTextBox>
+
+ </Border>
+ </StackPanel>
+ </StackPanel>
+
+ <!--<touch:TouchButton Margin="0 0 30 0" VerticalAlignment="Center" HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch" EnableDropShadow="False" Background="Transparent" BorderThickness="0" Command="{Binding EditJobDetailsCommand}" Foreground="{StaticResource TangoKeyboardKeyDarkTextBrush}"
+ components:TransformationHelper.TransformWhenPressed ="False">
+
+ <Grid VerticalAlignment="Center" HorizontalAlignment="Stretch" Background="Transparent">
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="1*"/>
+ <ColumnDefinition Width="auto" MaxWidth="320"/>
+ <ColumnDefinition Width="auto" MaxWidth="320"/>
+ <ColumnDefinition Width="40"/>
+ </Grid.ColumnDefinitions>
+ <TextBlock Visibility="Hidden" Margin="16 0 0 5" TextTrimming="CharacterEllipsis" HorizontalAlignment="Left" VerticalAlignment="Center" FontWeight="SemiBold" FontSize="{StaticResource TangoMessageBoxTitleFontSize}" Text="{Binding JobModel.Name,FallbackValue='Job Name'}" ToolTip="{Binding JobModel.Name}"/>
+
+ <StackPanel Margin="10 0 0 0" Grid.Column="1" VerticalAlignment="Center" Orientation="Horizontal" HorizontalAlignment="Left">
+ <StackPanel.ToolTip>
+ <ToolTip>
+ <TextBlock Text="{Binding JobModel.Rml.Name}" />
+ </ToolTip>
+ </StackPanel.ToolTip>
+ <TextBlock Text="Thread Type:" VerticalAlignment="Center" FontSize="{StaticResource TangoDefaultFontSize}" ></TextBlock>
+ <TextBlock Margin="5 0 0 0" VerticalAlignment="Center" TextTrimming="CharacterEllipsis" FontSize="{StaticResource TangoDefaultFontSize}" Text="{Binding JobModel.Rml.FinalName}"/>
+ </StackPanel>
+
+ <StackPanel Margin="30 0 0 0" Grid.Column="2" VerticalAlignment="Center" Orientation="Horizontal" HorizontalAlignment="Center">
+ <StackPanel.ToolTip>
+ <ToolTip>
+ <TextBlock Text="{Binding JobModel.SpoolTypeName}" />
+ </ToolTip>
+ </StackPanel.ToolTip>
+ <TextBlock Text="Spool Type:" VerticalAlignment="Center" FontSize="{StaticResource TangoDefaultFontSize}" ></TextBlock>
+ <TextBlock Text="{Binding JobModel.SpoolTypeName}" Margin="5 0 0 0" VerticalAlignment="Center" TextTrimming="CharacterEllipsis" FontSize="{StaticResource TangoDefaultFontSize}"/>
+ </StackPanel>
+
+
+ </Grid>
+ </touch:TouchButton>-->
+
+ </Grid>
+
+ </Border>
+
+ </touch:TouchLoadingPanel>
+ <touch:TouchLoadingPanel Grid.Row="2" IsLoading="{Binding IsBusy}" IsEnabled="{Binding CanEdit}">
+ <Grid >
+ <Grid.RowDefinitions>
+ <RowDefinition Height="1*"/>
+ <RowDefinition Height="Auto"/>
+ <RowDefinition Height="Auto"/>
+ </Grid.RowDefinitions>
+
+ <Grid Grid.Row="0" x:Name="segmentsGrid" Grid.RowSpan="3" >
+ <Grid x:Name="Container" keyboard:KeyboardView.ContainerOffset="40" Margin="0 0 0 0" Background="{StaticResource TangoMidBackgroundBrush}">
+ <touch:TouchDropShadowBorder Margin="10 0 10 0" Padding="0 0 0 0" >
+ <Grid>
+ <Grid.RowDefinitions>
+ <RowDefinition Height="Auto"/>
+ <RowDefinition Height="1*"/>
+ <RowDefinition Height="100"/>
+ </Grid.RowDefinitions>
+ <Grid Grid.Row="0">
+ <DockPanel x:Name="ColorPropertiesPanel" VerticalAlignment="Top" >
+ <StackPanel x:Name="AdvansedOptions" DockPanel.Dock="Right" Orientation="Horizontal" VerticalAlignment="Top" Margin="0 5 18 0" Height="55" HorizontalAlignment="Right" Width="Auto" Visibility="{Binding ShowAdvanced, Converter={StaticResource BooleanToVisibilityConverter}}">
+ <TextBlock FontSize="20" VerticalAlignment="Center" >Advanced Options</TextBlock>
+ <touch:TouchToggleSlider Style="{StaticResource TangoToggleButtonGreenAccent}" Height="28" CornerRadius="14" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="10 0 0 0" Width="54" IsChecked="{Binding IsBasicMode, Converter={StaticResource BooleanInverseConverter}, Mode=TwoWay}"></touch:TouchToggleSlider>
+ </StackPanel>
+ <DockPanel DockPanel.Dock="Left">
+ <StackPanel x:Name="colorAndLength" DockPanel.Dock="Top" Orientation="Horizontal" VerticalAlignment="Center">
+ <StackPanel.Style>
+ <Style TargetType="StackPanel">
+ <Setter Property="Margin" Value="20 25 10 15"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding IsFullMode}" Value="false">
+ <Setter Property="Margin" Value="20 15 60 15"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </StackPanel.Style>
+ <Image Source="../Images/JobView/color-length.png" Width="30" />
+ <TextBlock FontWeight="Medium" Margin="20 0 0 0" VerticalAlignment="Center" FontSize="{StaticResource TangoExpanderHeaderFontSize}">Copy Properties</TextBlock>
+ </StackPanel>
+ <touch:TouchCheckBox x:Name="selectAll" Width="120" Height="22" Style="{StaticResource TouchRoundCheckBox}" Margin="28 0 0 20" IsChecked="{Binding JobModel.SelectAllSegments}" DockPanel.Dock="Top" FontSize="{StaticResource TangoDefaultFontSize}" HorizontalAlignment="Left" Visibility="{Binding IsFullMode, Converter={StaticResource BooleanToVisibilityInverseConverter}}">
+ <TextBlock FontSize="{StaticResource TangoButtonFontSize}" Foreground="{StaticResource TangoMidAccentBrush}"> Select All</TextBlock>
+ </touch:TouchCheckBox>
+ </DockPanel>
+ </DockPanel>
+ <Rectangle Height="2" Margin="0 0 0 0" Fill="{StaticResource TangoDividerBrush}" VerticalAlignment="Bottom"></Rectangle>
+ </Grid>
+ <Grid Grid.Row="1" Margin="0 4 0 0" Visibility="{Binding IsBasicMode, Converter={StaticResource BooleanToVisibilityInverseConverter}}">
+ <!--Border x:Name="borderDockFloat" Height="10" Margin="0 0 0 0" BorderBrush="Transparent" >
+ <DockPanel x:Name="dockEdit" LastChildFill="False" Height="10" Width="50" HorizontalAlignment="Right" RenderTransformOrigin="0.58,2.08"/>
+ </Border> -->
+ <ListBox x:Name="listSegments" Margin="10 0 10 20" Padding="0" BorderThickness="0" ItemsSource="{Binding SegmentsCollectionView}" ItemTemplateSelector="{StaticResource GroupSegmentTemplateSelector}" Style="{StaticResource SegmentsListBox}"
+ ScrollViewer.VerticalScrollBarVisibility="Visible"
+ Visibility="{Binding IsFullMode, Converter={StaticResource BooleanToVisibilityConverter}}"/>
+
+
+ <ListBox x:Name="collapsedListSegments" ItemsSource="{Binding SegmentsCollectionView}" ItemTemplateSelector ="{StaticResource CollapsedGroupSegmentTemplateSelector}" Style="{StaticResource SegmentsListBox}"
+ ScrollViewer.VerticalScrollBarVisibility="Visible"
+ Visibility="{Binding IsFullMode, Converter={StaticResource BooleanToVisibilityInverseConverter}}" Margin=" 0 0 0 100"/>
+
+ <!--<StackPanel x:Name="stackOutput" Orientation="Horizontal" VerticalAlignment="Center" Style="{StaticResource Level1Container}"/>-->
+
+ </Grid>
+ <Grid Grid.Row="1" Margin="0 4 0 0" Visibility="{Binding IsBasicMode, Converter={StaticResource BooleanToVisibilityConverter}}" >
+
+ <Grid Height="Auto" Margin="57 15 57 0" DataContext="{Binding JobModel.Segments, Converter={StaticResource FirstValueCollectionConverter}}">
+ <Grid.RowDefinitions>
+ <RowDefinition Height="Auto" />
+ <RowDefinition Height="Auto" />
+ <RowDefinition Height="Auto" />
+ </Grid.RowDefinitions>
+
+ <Grid x:Name="header" HorizontalAlignment="Stretch" Margin="0 10 0 0">
+ <controls:FastTextBlock VerticalAlignment="Center" DockPanel.Dock="Left" FontSize="{StaticResource TangoButtonFontSize}" Width="120" HorizontalAlignment="Left">
+ <controls:FastTextBlock.Style>
+ <Style TargetType="controls:FastTextBlock">
+ <Setter Property="Text" Value="Weight (g):" />
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding ElementName=segmentsGrid, Path=DataContext.IsWeightView}" Value="False">
+ <Setter Property="Text" Value="Length (m):" />
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </controls:FastTextBlock.Style>
+ </controls:FastTextBlock>
+ <Border Margin="140 0 0 0" BorderThickness="1" Height="44" CornerRadius="12" BorderBrush="{StaticResource TangoMidAccentBrush}" Visibility="{Binding ElementName=segmentsGrid, Path=DataContext.IsWeightView, Converter={StaticResource BooleanToVisibilityInverseConverter}}">
+ <touch:TouchNumericTextBox Margin="20 0 0 0" Width="192" FocusSelectionMode="SelectAll" HorizontalAlignment="Left" HideUnderline="True" VerticalAlignment="Center"
+ Value="{Binding Length, UpdateSourceTrigger=LostFocus}" VerticalContentAlignment="Center"
+ StringFormat='#,0.0' AutoCalculateJogStep="False"
+ HasDecimalPoint="True" Minimum="1" Maximum="1000000"
+ KeyboardContainer="{Binding ElementName=Container}"
+ FontSize="18" ValueChangedEnd="Length_ValueChanged"
+ TextGotFocus="Length_BeforeChangeValue" RippleBrush="Transparent"/>
+
+ </Border>
+ <Border Margin="140 0 0 0" BorderThickness="1" Height="44" CornerRadius="12" BorderBrush="{StaticResource TangoMidAccentBrush}" Visibility="{Binding ElementName=segmentsGrid, Path=DataContext.IsWeightView, Converter={StaticResource BooleanToVisibilityConverter}}">
+ <touch:TouchNumericTextBox Margin="20 0 0 0" Width="192" FocusSelectionMode="SelectAll" HorizontalAlignment="Left" HideUnderline="True" VerticalAlignment="Center"
+ Value="{Binding Weight, UpdateSourceTrigger=LostFocus}" VerticalContentAlignment="Center"
+ StringFormat="#,0.0" AutoCalculateJogStep="False"
+ HasDecimalPoint="True" Minimum="0" Maximum="100000"
+ KeyboardContainer="{Binding ElementName=Container}"
+ FontSize="18" RippleBrush="Transparent"/>
+
+ </Border>
+ </Grid>
+
+ <Border Grid.Row="1" x:Name="segmentBrush" Height="90" Margin="0 20 0 0" CornerRadius="20" Background="{StaticResource TangoPrimaryBackgroundBrush}" BorderThickness="1" BorderBrush="{StaticResource TangoGrayBrush}">
+
+ <Border Background="{Binding SegmentBrush}" CornerRadius="20">
+ <Grid>
+ <touch:TouchButton Margin="26 0 0 0" HorizontalAlignment="Center" VerticalAlignment="Center" Command="{Binding ElementName=segmentsGrid,Path=DataContext.EditColorCommand}" CommandParameter="{Binding FirstBrushStop}" Visibility="{Binding HasColors, Converter={StaticResource BooleanToVisibilityConverter}}" EnableDropShadow="False" Foreground="{StaticResource TangoKeyboardKeyDarkTextBrush}" Background="Transparent" BorderThickness="0">
+ <Border Height="40" Width="40" BorderThickness="0" BorderBrush="{StaticResource TangoKeyboardKeyDarkBrush}" Background="Transparent" HorizontalAlignment="Left">
+ <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/Edit_color.png"/>
+ </Border>
+ </touch:TouchButton>
+ <StackPanel Orientation="Vertical" HorizontalAlignment="Center" VerticalAlignment="Center">
+ <!--<touch:TouchIconButton Command="{Binding ElementName=view,Path=DataContext.AddColorCommand}" CommandParameter="{Binding}"
+ Height="40" Width="40" Style="{StaticResource TangoRoundTouchIconButton}" Icon="Plus" Background="{StaticResource TangoRippleDarkBrush}" Foreground="{StaticResource TangoLightForegroundBrush}" Padding="12" Margin="20 0 0 0" />-->
+ <touch:TouchButton Margin="0 0 0 0" VerticalAlignment="Center" Command="{Binding ElementName=segmentsGrid,Path=DataContext.AddColorCommand}" CommandParameter="{Binding}" EnableDropShadow="False" Foreground="{StaticResource TangoKeyboardKeyDarkTextBrush}" Background="Transparent" BorderThickness="0" BorderBrush="Transparent" RippleBrush="Transparent"
+ Visibility="{Binding HasColors, Converter={StaticResource BooleanToVisibilityInverseConverter}}">
+ <Border Height="40" Width="40" BorderThickness="0" BorderBrush="{StaticResource TangoKeyboardKeyDarkBrush}" Background="Transparent" HorizontalAlignment="Left">
+ <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/AddColor.png"/>
+ </Border>
+ </touch:TouchButton>
+ <TextBlock VerticalAlignment="Center" Margin="20 5 0 0" FontSize="{StaticResource TangoSmallFontSize}" Visibility="{Binding HasColors, Converter={StaticResource BooleanToVisibilityInverseConverter}}" Foreground="{StaticResource TangoKeyboardKeyDarkTextBrush}">Add Color</TextBlock>
+ </StackPanel>
+ </Grid>
+ </Border>
+ </Border>
+
+ <Grid Grid.Row="2" Margin="0 10 0 0" x:Name="colorSpacesSegment" >
+ <ContentControl x:Name="basicColorSpaceValues" Focusable="False" VerticalAlignment="Top" Margin="0 0 0 0" HorizontalAlignment="Left" Content="{Binding FirstBrushStop}" Visibility="{Binding HasColors, Converter={StaticResource BooleanToVisibilityConverter}}">
+ <ContentControl.Style>
+ <Style TargetType="ContentControl">
+ <Setter Property="ContentTemplate">
+ <Setter.Value>
+ <DataTemplate/>
+ </Setter.Value>
+ </Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding FirstBrushStop.ColorSpace, Converter={StaticResource EnumToDescriptionConverter}}" Value="HSB">
+ <Setter Property="ContentTemplate" Value="{StaticResource HSB_Template}" />
+ </DataTrigger>
+ <DataTrigger Binding="{Binding FirstBrushStop.ColorSpace, Converter={StaticResource EnumToDescriptionConverter}}" Value="RGB">
+ <Setter Property="ContentTemplate" Value="{StaticResource RGB_Template}" />
+ </DataTrigger>
+ <DataTrigger Binding="{Binding FirstBrushStop.ColorSpace, Converter={StaticResource EnumToDescriptionConverter}}" Value="Volume">
+ <Setter Property="ContentTemplate" Value="{StaticResource CMYK_Template}" />
+ </DataTrigger>
+ <DataTrigger Binding="{Binding FirstBrushStop.ColorSpace, Converter={StaticResource EnumToDescriptionConverter}}" Value="LAB">
+ <Setter Property="ContentTemplate" Value="{StaticResource LAB_Template}" />
+ </DataTrigger>
+ <DataTrigger Binding="{Binding FirstBrushStop.ColorSpace, Converter={StaticResource EnumToDescriptionConverter}}" Value="Catalog">
+ <Setter Property="ContentTemplate" Value="{StaticResource CATALOG_Template}" />
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </ContentControl.Style>
+ </ContentControl>
+ </Grid>
+ </Grid>
+ </Grid>
+
+ </Grid>
+ </touch:TouchDropShadowBorder>
+ </Grid>
+ <Border VerticalAlignment="Top" x:Name="borderEditDock" Background="{StaticResource TangoPrimaryBackgroundBrush}" BorderThickness="0 0 0 0" BorderBrush="{StaticResource TangoDividerBrush}" Padding="0 0 0 10" Margin="10 0 10 0"/>
+ </Grid>
+
+ <Grid Grid.Row="1">
+ <Grid >
+ <DockPanel VerticalAlignment="Top" x:Name="collapsedToolbar" Margin="30 2 30 8" Height="80" HorizontalAlignment="Stretch" Visibility="{Binding IsFullMode, Converter={StaticResource BooleanToVisibilityInverseConverter}}">
+
+ <Border DockPanel.Dock="Right" Height="80" CornerRadius="22" BorderBrush="{StaticResource TangoDividerBrush}" BorderThickness="1" Background="{StaticResource TangoPrimaryBackgroundBrush}" >
+ <Border.Effect>
+ <DropShadowEffect Opacity="0.5" ShadowDepth="6" Color="Silver" BlurRadius="10" Direction="270"/>
+ </Border.Effect>
+ <UniformGrid Columns="7" Rows="1" HorizontalAlignment="Stretch" Margin="0 0 70 0">
+ <touch:TouchButton Style="{StaticResource TouchButtonWithDisableState}" MinHeight="50" Padding="4" Margin="20 0 0 0" EnableDropShadow="False" VerticalAlignment="Center" HorizontalAlignment="Center" Command="{Binding UndoCommand}" >
+ <StackPanel Orientation="Vertical" VerticalAlignment="Center" >
+ <Image Width="20" MaxWidth="50" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/undo.png"/>
+ <TextBlock FontWeight="Medium" Margin="0 0 0 0" VerticalAlignment="Center" FontSize="{StaticResource TangoSmallFontSizeBar}" Foreground="{StaticResource TangoMidAccentBrush}">Undo</TextBlock>
+ </StackPanel>
+ </touch:TouchButton>
+ <touch:TouchButton Margin="0 0 0 0" Style="{StaticResource TouchButtonWithDisableState}" MinHeight="50" Padding="4" EnableDropShadow="False" VerticalAlignment="Center" HorizontalAlignment="Center" Command="{Binding RedoCommand}" >
+ <StackPanel Orientation="Vertical" VerticalAlignment="Center" >
+ <Image Width="20" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/redo.png"/>
+ <TextBlock FontWeight="Medium" Margin="0" VerticalAlignment="Center" FontSize="{StaticResource TangoSmallFontSizeBar}" Foreground="{StaticResource TangoMidAccentBrush}">Redo</TextBlock>
+ </StackPanel>
+ </touch:TouchButton>
+ <touch:TouchButton Style="{StaticResource CollapsedPanelButton}" EnableDropShadow="False" Command="{Binding RepeateSegmentCommand}" IsEnabled="{Binding JobModel.HasSelectedItems}">
+ <StackPanel Orientation="Vertical" VerticalAlignment="Center" >
+ <Image Width="20" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/repeat.png"/>
+ <TextBlock FontWeight="Medium" Margin="0 0 0 0" VerticalAlignment="Center" FontSize="{StaticResource TangoSmallFontSizeBar}" >Repeat</TextBlock>
+ </StackPanel>
+ </touch:TouchButton>
+ <touch:TouchButton Style="{StaticResource CollapsedPanelButton}" EnableDropShadow="False" Command="{Binding ReverseCommand}" IsEnabled="{Binding JobModel.IsReverseEnable}">
+ <StackPanel Orientation="Vertical" VerticalAlignment="Center">
+ <Image Width="20" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/reverse.png"/>
+ <TextBlock FontWeight="Medium" Margin="0 0 0 0" VerticalAlignment="Center" FontSize="{StaticResource TangoSmallFontSizeBar}" Foreground="{StaticResource TangoMidAccentBrush}">Reverse</TextBlock>
+ </StackPanel>
+ </touch:TouchButton>
+ <touch:TouchButton Style="{StaticResource CollapsedPanelButton}" EnableDropShadow="False" Command="{Binding DeleteSegmentCommand}" IsEnabled="{Binding JobModel.HasSelectedItems}">
+ <StackPanel Orientation="Vertical" VerticalAlignment="Center">
+ <Image Width="20" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/delete_segment.png"/>
+ <TextBlock FontWeight="Medium" Margin="0" VerticalAlignment="Center" FontSize="{StaticResource TangoSmallFontSizeBar}" Foreground="{StaticResource TangoMidAccentBrush}">Delete</TextBlock>
+ </StackPanel>
+ </touch:TouchButton>
+ <touch:TouchButton Style="{StaticResource CollapsedPanelButton}" EnableDropShadow="False" Command="{Binding PasteCommand}" IsEnabled="{Binding JobModel.HasSegmentsToCopy}" >
+ <StackPanel Orientation="Vertical" VerticalAlignment="Center">
+ <Image Width="20" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/paste.png"/>
+ <TextBlock FontWeight="Medium" Margin="0" VerticalAlignment="Center" FontSize="{StaticResource TangoSmallFontSizeBar}" Foreground="{StaticResource TangoMidAccentBrush}">Paste</TextBlock>
+ </StackPanel>
+ </touch:TouchButton>
+ <touch:TouchButton Style="{StaticResource CollapsedPanelButton}" EnableDropShadow="False" Command="{Binding CopyCommand}" IsEnabled="{Binding JobModel.HasSelectedItems}">
+ <StackPanel Orientation="Vertical" VerticalAlignment="Center">
+ <Image Width="19" Height="23" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/copy.png"/>
+ <TextBlock FontWeight="Medium" Margin="0" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="{StaticResource TangoSmallFontSizeBar}" Foreground="{StaticResource TangoMidAccentBrush}">Copy</TextBlock>
+ </StackPanel>
+ </touch:TouchButton>
+ </UniformGrid>
+ </Border>
+ <!--<Grid DockPanel.Dock="Left" HorizontalAlignment="Left" Margin="40 0 30 0">
+ <StackPanel DockPanel.Dock="Left" HorizontalAlignment="Left" Orientation="Horizontal" VerticalAlignment="Center">
+ <touch:TouchButton Margin="0" Style="{StaticResource TouchButtonWithDisableState}" VerticalAlignment="Center" HorizontalAlignment="Left" EnableDropShadow="False" Command="{Binding UndoCommand}" ToolTip="Undone" >
+ <Border Padding="0" BorderThickness="0" Background="Transparent" HorizontalAlignment="Left">
+ <Image Height="28" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/undo.png"/>
+ </Border>
+ </touch:TouchButton>
+ <touch:TouchButton Margin="16 0 0 0" Style="{StaticResource TouchButtonWithDisableState}" VerticalAlignment="Center" HorizontalAlignment="Left" EnableDropShadow="False" Command="{Binding RedoCommand}" ToolTip="Restore">
+ <Border Padding="0" BorderThickness="0" Background="Transparent" HorizontalAlignment="Left">
+ <Image Height="28" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/redo.png"/>
+ </Border>
+ </touch:TouchButton>
+ </StackPanel>
+ </Grid>-->
+ </DockPanel>
+ <Canvas Width="70" Height="70" Margin="0 3 40 0" HorizontalAlignment="Right" VerticalAlignment="Center" Visibility="{Binding IsBasicMode, Converter={StaticResource BooleanToVisibilityInverseConverter}}">
+ <touch:TouchButton HorizontalAlignment="Right" VerticalAlignment="Center" EnableDropShadow="False" Background="Transparent" BorderThickness="0" Command="{Binding JobModeSwitchCommand}" >
+ <Border BorderThickness="0" Background="Transparent" HorizontalAlignment="Right">
+ <Image Height="70" Width="70" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/job_mode.png"/>
+ </Border>
+ </touch:TouchButton>
+ </Canvas>
+ </Grid>
+ </Grid>
+
+ <!--<touch:TouchDropShadowBorder Grid.Row="3" Margin="10 0 10 15" CornerRadius="0" BorderThickness="0" Padding="0" >-->
+ <Border Grid.Row="2" Margin="0 0 0 0" BorderThickness="0">
+ <touch:TouchExpander x:Name="summaryExpander" IsExpanded="{Binding IsSummaryOpened, Mode=TwoWay}" Grid.Row="3" Margin="15 0 15 0 " FontSize="{StaticResource TangoTitleFontSize}" BorderThickness="0" Style="{StaticResource TouchRoundedExpander}" CornerRadius="20 20 0 0" Padding="10" IsTabStop="False" >
+ <touch:TouchExpander.Header>
+ <DockPanel Height="80">
+ <StackPanel Orientation="Horizontal" DockPanel.Dock="Right" Margin="0 0 10 0" VerticalAlignment="Center" >
+ <StackPanel Orientation="Horizontal" Visibility="{Binding IsSummaryOpened, Converter={StaticResource BooleanToVisibilityInverseConverter}, Mode=TwoWay}">
+ <TextBlock VerticalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}" Visibility="{Binding IsWeightView, Converter={StaticResource BooleanToVisibilityInverseConverter}}">
+ <Run Text="Copy:" FontWeight="Normal"></Run>
+ <Run Text="{Binding JobModel.Length,Mode=OneWay,StringFormat='#,0.##'}" FontWeight="DemiBold"/>
+ <Run Text="m" FontWeight="DemiBold"></Run>
+ </TextBlock>
+ <TextBlock VerticalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}" Visibility="{Binding IsWeightView, Converter={StaticResource BooleanToVisibilityConverter}}">
+ <Run Text="Copy:" FontWeight="Normal"></Run>
+ <Run FontWeight="DemiBold">
+ <Run.Text>
+ <MultiBinding Converter="{StaticResource LengthToWeightConverter}" StringFormat="#,0.##" >
+ <Binding Path="JobModel.Length" Mode="OneWay"/>
+ <Binding Path="JobModel.GramPerLength" Mode="OneWay"/>
+ </MultiBinding>
+ </Run.Text>
+ </Run>
+ <Run Text="g" FontWeight="DemiBold"></Run>
+ </TextBlock>
+ <TextBlock VerticalAlignment="Center" Margin="10 0 0 0" FontSize="{StaticResource TangoTitleFontSize}" Visibility="{Binding IsWeightView, Converter={StaticResource BooleanToVisibilityInverseConverter}}">
+ <Run Text="Total:" FontWeight="Normal"></Run>
+ <Run Text="{Binding JobModel.LengthIncludingNumberOfUnitsAndSpools,Mode=OneWay, StringFormat='#,0.##'}" FontWeight="Bold"/>
+ <Run Text="m" FontWeight="Bold"></Run>
+ </TextBlock>
+ <TextBlock VerticalAlignment="Center" Margin="10 0 0 0" FontSize="{StaticResource TangoTitleFontSize}" Visibility="{Binding IsWeightView, Converter={StaticResource BooleanToVisibilityConverter}}">
+ <Run Text="Total:" FontWeight="Normal"></Run>
+ <Run FontWeight="Bold" Text="{Binding JobModel.WeightIncludingNumberOfUnitsAndSpools, StringFormat='#,0.##', Mode=OneWay}">
+ <!--<Run.Text >
+ <MultiBinding Converter="{StaticResource LengthToWeightConverter}" StringFormat="#,0.##" >
+ <Binding Path="JobModel.LengthIncludingNumberOfUnitsAndSpools" />
+ <Binding Path="JobModel.GramPerLength" />
+ </MultiBinding>
+ </Run.Text>-->
+ </Run>
+ <Run Text="g" FontWeight="Bold"></Run>
+ </TextBlock>
+ </StackPanel>
+ <TextBlock Margin="10 0 0 0" VerticalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}" FontWeight="Bold" Foreground="{StaticResource TangoDarkForegroundBrush}">
+ <Run Text="Duration: " FontWeight="Normal"></Run>
+ <Run Text="{Binding JobModel.GetEstimatedDuration, Converter={StaticResource TimeSpanToTwoDigitsTimeConverter}, FallbackValue=0, Mode=OneWay}"></Run>
+ <Run Text="{Binding JobModel.GetEstimatedDuration, Converter={StaticResource TimeSpanToLabelConverter}, FallbackValue=min, Mode=OneWay}"></Run>
+ </TextBlock>
+ </StackPanel>
+ <StackPanel DockPanel.Dock="Left" Orientation="Horizontal" VerticalAlignment="Center" Style="{StaticResource Level1Container}">
+ <Image Source="../Images/JobView/job-summary.png" Width="39" />
+ <TextBlock FontWeight="Medium" Margin="10 0 0 0" VerticalAlignment="Center" FontSize="{StaticResource TangoExpanderHeaderFontSize}">Summary</TextBlock>
+ </StackPanel>
+ </DockPanel>
+
+ </touch:TouchExpander.Header>
+ <Grid Margin="40 0 40 10">
+ <Grid.RowDefinitions>
+ <RowDefinition Height="Auto"/>
+ <RowDefinition Height="Auto"/>
+ <RowDefinition Height="Auto"/>
+ </Grid.RowDefinitions>
+ <Grid Margin=" 0 10 0 0">
+
+ <localControls:JobModelSummaryViewerControl JobModel="{Binding JobModel}" Height="20" DisplayMarkers="False" DisplayUnits="False"/>
+
+ </Grid>
+ <UniformGrid Grid.Row="1" Margin="0 40 0 0" Columns="4" Rows="1" HorizontalAlignment="Stretch" >
+ <TextBlock Text="Total:" FontWeight="Bold" FontSize="{StaticResource TangoTitleFontSize}" ></TextBlock>
+ <TextBlock FontSize="{StaticResource TangoTitleFontSize}" Visibility="{Binding IsWeightView, Converter={StaticResource BooleanToVisibilityInverseConverter}}">
+ <Run Text="Copy:" FontWeight="Normal"></Run>
+ <Run Text="{Binding JobModel.Length,Mode=OneWay,StringFormat='#,0.##'}" FontWeight="Bold"/>
+ <Run Text="m" FontWeight="Bold"></Run>
+ </TextBlock>
+ <TextBlock FontSize="{StaticResource TangoTitleFontSize}" Visibility="{Binding IsWeightView, Converter={StaticResource BooleanToVisibilityConverter}}">
+ <Run Text="Copy:" FontWeight="Normal"></Run>
+ <Run FontWeight="Bold">
+ <Run.Text>
+ <MultiBinding Converter="{StaticResource LengthToWeightConverter}" StringFormat="#,0.##" >
+ <Binding Path="JobModel.Length" Mode="OneWay"/>
+ <Binding Path="JobModel.GramPerLength" Mode="OneWay"/>
+ </MultiBinding>
+ </Run.Text>
+ </Run>
+ <Run Text="g" FontWeight="DemiBold"></Run>
+ </TextBlock>
+ <TextBlock FontSize="{StaticResource TangoTitleFontSize}">
+ <Run Text="Copies:" FontWeight="Normal"></Run>
+ <Run Text="{Binding JobModel.Copies}" FontWeight="Bold"/>
+ </TextBlock>
+ <TextBlock FontSize="{StaticResource TangoTitleFontSize}" Visibility="{Binding IsWeightView, Converter={StaticResource BooleanToVisibilityInverseConverter}}">
+ <Run Text="Total:" FontWeight="Normal"></Run>
+ <Run Text="{Binding JobModel.LengthIncludingNumberOfUnitsAndSpools,Mode=OneWay, StringFormat='#,0.##'}" FontWeight="Bold"/>
+ <Run Text="m" FontWeight="Bold"></Run>
+ </TextBlock>
+ <TextBlock FontSize="{StaticResource TangoTitleFontSize}" Visibility="{Binding IsWeightView, Converter={StaticResource BooleanToVisibilityConverter}}">
+ <Run Text="Total:" FontWeight="Normal"></Run>
+ <Run FontWeight="Bold" Text="{Binding JobModel.WeightIncludingNumberOfUnitsAndSpools, StringFormat='#,0.##', Mode=OneWay}">
+ <!--<Run.Text>
+ <MultiBinding Converter="{StaticResource LengthToWeightConverter}" StringFormat="#,0.##" >
+ <Binding Path="JobModel.LengthIncludingNumberOfUnitsAndSpools" />
+ <Binding Path="JobModel.GramPerLength" />
+ </MultiBinding>
+ </Run.Text>-->
+ </Run>
+ <Run Text="g" FontWeight="Bold"></Run>
+ </TextBlock>
+ </UniformGrid>
+ <UniformGrid Grid.Row="2" Margin="0 40 0 0" Columns="4" Rows="1" HorizontalAlignment="Stretch">
+ <TextBlock Text="Per Spool:" FontWeight="Bold" FontSize="{StaticResource TangoTitleFontSize}"></TextBlock>
+ <TextBlock FontSize="{StaticResource TangoTitleFontSize}">
+ <Run Text="Spools:" FontWeight="Normal"></Run>
+ <Run Text="{Binding JobModel.NumberSpools}" FontWeight="Bold"/>
+ </TextBlock>
+ <TextBlock FontSize="{StaticResource TangoTitleFontSize}">
+ <Run Text="Copies:" FontWeight="Normal"></Run>
+ <Run Text="{Binding JobModel.NumberOfUnits}" FontWeight="Bold"/>
+ </TextBlock>
+ <TextBlock FontSize="{StaticResource TangoTitleFontSize}" Visibility="{Binding IsWeightView, Converter={StaticResource BooleanToVisibilityInverseConverter}}">
+ <Run Text="Total:" FontWeight="Normal"></Run>
+ <Run Text="{Binding JobModel.LengthIncludingNumberOfUnits,Mode=OneWay, StringFormat='#,0.##'}" FontWeight="Bold"/>
+ <Run Text="m" FontWeight="Bold"></Run>
+ </TextBlock>
+ <TextBlock FontSize="{StaticResource TangoTitleFontSize}" Visibility="{Binding IsWeightView, Converter={StaticResource BooleanToVisibilityConverter}}">
+ <Run Text="Total:" FontWeight="Normal"></Run>
+ <Run FontWeight="Bold" Text="{Binding JobModel.WeightIncludingNumberOfUnits, Mode=OneWay, StringFormat='#,0.##'}"/>
+ <Run Text="g" FontWeight="Bold"></Run>
+ </TextBlock>
+ </UniformGrid>
+ </Grid>
+ </touch:TouchExpander>
+ </Border>
+ <!--</touch:TouchDropShadowBorder>-->
+
+ <!--<dragAndDrop:DraggingSurface x:Name="DraggingSurface" />-->
+ </Grid>
+ </touch:TouchLoadingPanel>
+
+ <Border Height="77" Padding="20 0" Background="{StaticResource TangoPrimaryBackgroundBrush}" BorderThickness="0 0 0 1" BorderBrush="{StaticResource TangoDividerBrush}">
+ <Border.Effect>
+ <DropShadowEffect Color="Silver" ShadowDepth="0" BlurRadius="20" Opacity="1" />
+ </Border.Effect>
+
+ <Grid>
+
+ <DockPanel>
+
+ <!--<touch:TouchIconButton Icon="ArrowLeftSolid" IsHitTestVisible="{Binding NavigationManager.IsNavigating,Converter={StaticResource BooleanInverseConverter}}" IsEnabled="{Binding NavigationManager.CanNavigateBack}" Width="40" Height="40" Padding="10" Margin="10 0 10 0" Command="{Binding NavigateBackToJobs}" EnableDropShadow="False">
+ <touch:TouchIconButton.Style>
+ <Style TargetType="touch:TouchIconButton" BasedOn="{StaticResource {x:Type touch:TouchIconButton}}">
+ <Setter Property="Foreground" Value="{StaticResource TangoPrimaryAccentBrush}"></Setter>
+ </Style>
+ </touch:TouchIconButton.Style>
+ </touch:TouchIconButton>-->
+ <touch:TouchTextBox IsEnabled="{Binding CanEdit}" Margin="20 6 240 0" Text="{Binding JobModel.Name,FallbackValue='Job Name'}" ToolTip="{Binding JobModel.Name}" VerticalAlignment="Center" FontSize="{StaticResource TangoHeaderFontSize}" FontWeight="SemiBold"></touch:TouchTextBox>
+ <!--<touch:TouchButton Margin="0 0 0 0" VerticalAlignment="Center" Width="50" Height="50" HorizontalAlignment="Left" EnableDropShadow="False" Background="Transparent" BorderThickness="0" Command="{Binding EditJobDetailsCommand}" Foreground="{StaticResource TangoKeyboardKeyDarkTextBrush}"
+ components:TransformationHelper.TransformWhenPressed ="False">
+ <Border Height="24" Width="24" Margin="0 0 0 0" BorderThickness="0" Background="Transparent" HorizontalAlignment="Center">
+ <Image Stretch="Fill" RenderOptions.BitmapScalingMode="Fant" Source="../Images/JobView/job_details.png"/>
+ </Border>
+ </touch:TouchButton>-->
+
+ </DockPanel>
+ <Canvas ClipToBounds="False" HorizontalAlignment="Right" Width="200">
+ <touch:TouchButton VerticalAlignment="Center" Height="55" Canvas.Top="10" Width="200" CornerRadius="30" BlurRadius="10" EnableDropShadow="False" Command="{Binding DyeCommand}" IsEnabled="{Binding MachineProvider.MachineOperator.CanPrint}">
+ <touch:TouchButton.Style>
+ <Style TargetType="touch:TouchButton" BasedOn="{StaticResource {x:Type touch:TouchButton}}">
+ <Setter Property="Content" Value="DYE"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding HasResumeModel}" Value="True">
+ <Setter Property="Content" Value="RESUME"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </touch:TouchButton.Style>
+ </touch:TouchButton>
+ <touch:TouchIconButton Visibility="{Binding HasResumeModel,Converter={StaticResource BooleanToVisibilityConverter}}" Icon="DeleteSweep" VerticalAlignment="Center" BorderThickness="0 0 1 0" BorderBrush="White" Height="55" Canvas.Left="-75" Canvas.Top="10" Background="{StaticResource TangoMidAccentBrush}" Padding="15" Width="100" CornerRadius="30 0 0 30" BlurRadius="10" EnableDropShadow="False" Command="{Binding DropResumeCommand}">
+
+ </touch:TouchIconButton>
+ </Canvas>
+ </Grid>
+ </Border>
+ </Grid>
+</UserControl>
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobEurekaView.xaml.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobEurekaView.xaml.cs
new file mode 100644
index 000000000..38f3bb346
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobEurekaView.xaml.cs
@@ -0,0 +1,106 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using Tango.BL;
+using Tango.BL.Entities;
+using Tango.Core.DI;
+using Tango.PPC.Common.Build;
+using Tango.PPC.Jobs.Models;
+using Tango.PPC.Jobs.ViewContracts;
+using Tango.PPC.Jobs.ViewModels;
+using static Tango.SharedUI.Controls.NavigationControl;
+
+namespace Tango.PPC.Jobs.Views
+{
+ /// <summary>
+ /// Interaction logic for JobView.xaml
+ /// </summary>
+ public partial class JobEurekaView : UserControl, INavigationView, IJobView
+ {
+ private JobViewVM _vm;
+
+
+ public JobEurekaView()
+ {
+ InitializeComponent();
+
+ Loaded += (_, __) =>
+ {
+ _vm = DataContext as JobViewVM;
+ };
+
+ if (TangoIOC.Default.GetInstance<IBuildProvider>().IsEureka)
+ {
+ TangoIOC.Default.Register<IJobView>(this);
+ }
+ }
+
+ public void OnNavigatedTo()
+ {
+
+ }
+
+ public void OnNavigatedFrom()
+ {
+
+ }
+
+ private void Length_ValueChanged(object sender, Touch.Controls.DoubleValueChangedEventArgs e)
+ {
+ var segmentModel = (sender as FrameworkElement).DataContext as SegmentModel;
+ if(segmentModel != null)
+ {
+ segmentModel.LengthChanged(e.Value);
+ }
+
+ }
+ private void Length_BeforeChangeValue(object sender, Touch.Controls.DoubleValueChangedEventArgs e)
+ {
+ var segmentModel = (sender as FrameworkElement).DataContext as SegmentModel;
+ if (segmentModel != null)
+ {
+ segmentModel.LengthBeforeChange(e.Value);
+ }
+
+ }
+
+ public void DisplaySampleDye()
+ {
+
+ }
+
+ public void DisplayFineTuning()
+ {
+
+ }
+
+ public void ScrollToTop()
+ {
+
+ }
+
+ public void ScrollToEnd()
+ {
+ if(listSegments.Visibility == Visibility.Visible && listSegments.Items != null && listSegments.Items.Count > 0)
+ {
+ listSegments.ScrollIntoView(listSegments.Items[listSegments.Items.Count - 1]);
+ }
+ else if(collapsedListSegments.Visibility == Visibility.Visible && collapsedListSegments.Items != null && collapsedListSegments.Items.Count > 0)
+ {
+ collapsedListSegments.ScrollIntoView(collapsedListSegments.Items[collapsedListSegments.Items.Count - 1]);
+ }
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobProgressView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobProgressView.xaml
index ec8801dc1..a91d5676b 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobProgressView.xaml
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobProgressView.xaml
@@ -102,6 +102,7 @@
<Image Source="../Images/JobProgressView/drop.png" Stretch="None" />
<TextBlock Margin="5 0 0 0" VerticalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}">Getting Ready...</TextBlock>
</StackPanel>
+ <TextBlock Margin="40 20 40 0" FontSize="{StaticResource TangoSmallFontSize}" FontWeight="Light" Text="{Binding RunningJobStatus.Message, FallbackValue='', TargetNullValue='', Converter={StaticResource StringEllipsisConverter},ConverterParameter='76'}" TextWrapping="Wrap" MaxWidth="310" HorizontalAlignment="Center" TextAlignment="Center" Height="42"></TextBlock>
</StackPanel>
<Rectangle Margin="0 10 0 0" Width="250" Stroke="{StaticResource TangoDividerBrush}" />
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobView.xaml.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobView.xaml.cs
index a31630b0a..1780e654e 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobView.xaml.cs
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobView.xaml.cs
@@ -16,6 +16,7 @@ using System.Windows.Shapes;
using Tango.BL;
using Tango.BL.Entities;
using Tango.Core.DI;
+using Tango.PPC.Common.Build;
using Tango.PPC.Jobs.Models;
using Tango.PPC.Jobs.ViewContracts;
using Tango.PPC.Jobs.ViewModels;
@@ -40,7 +41,10 @@ namespace Tango.PPC.Jobs.Views
_vm = DataContext as JobViewVM;
};
- TangoIOC.Default.Register<IJobView>(this);
+ if (!TangoIOC.Default.GetInstance<IBuildProvider>().IsEureka)
+ {
+ TangoIOC.Default.Register<IJobView>(this);
+ }
}
public void OnNavigatedTo()
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobsView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobsView.xaml
index f6630b0a3..d3fdedde5 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobsView.xaml
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobsView.xaml
@@ -29,6 +29,7 @@
</ResourceDictionary.MergedDictionaries>
<converters:JobToPieImageConverter x:Key="JobToPieImageConverter" />
+ <converters:LengthWithSpoolsConverter x:Key="LengthWithSpoolsConverter"/>
<sharedConverters:DateTimeUTCToShortDateConverter x:Key="DateTimeUTCToShortDateConverter" />
<sharedConverters:EnumToDescriptionConverter x:Key="EnumToDescriptionConverter" />
<sharedConverters:EnumToItemsSourceConverter x:Key="EnumToItemsSourceConverter" />
@@ -90,26 +91,17 @@
</Style.Triggers>
</Style>
</StackPanel.Style>
- <touch:TouchIconButton Command="{Binding ClearSelectionCommand}" Visibility="{Binding IsMultiSelecting,Converter={StaticResource BooleanToVisibilityConverter}}" Margin="0 0 30 0" Padding="20" Icon="Undo">
+ <touch:TouchIconButton Command="{Binding ClearSelectionCommand}" Visibility="{Binding IsMultiSelecting,Converter={StaticResource BooleanToVisibilityConverter}}" Margin="0 0 30 0" Padding="20" Icon="Close" Width="50" Height="50" Style="{StaticResource TangoRoundTouchIconButton}">
+
+ </touch:TouchIconButton>
+ <touch:TouchIconButton Command="{Binding MoveToListJobsCommand}" Margin="0 0 30 0" Padding="20" >
<touch:TouchIconButton.Style>
<Style TargetType="touch:TouchIconButton" BasedOn="{StaticResource TangoRoundTouchIconButton}">
<Setter Property="IconAngle" Value="0"></Setter>
+ <Setter Property="Icon" Value="Redo"/>
<Style.Triggers>
- <DataTrigger Binding="{Binding IsMultiSelecting}" Value="True">
- <DataTrigger.EnterActions>
- <BeginStoryboard>
- <Storyboard>
- <DoubleAnimation Storyboard.TargetProperty="IconAngle" To="360" Duration="00:00:0.2"></DoubleAnimation>
- </Storyboard>
- </BeginStoryboard>
- </DataTrigger.EnterActions>
- <DataTrigger.ExitActions>
- <BeginStoryboard>
- <Storyboard>
- <DoubleAnimation Storyboard.TargetProperty="IconAngle" To="0" Duration="00:00:00"></DoubleAnimation>
- </Storyboard>
- </BeginStoryboard>
- </DataTrigger.ExitActions>
+ <DataTrigger Binding="{Binding SelectedCategoryIndex}" Value="1">
+ <Setter Property="Icon" Value="Undo"/>
</DataTrigger>
</Style.Triggers>
</Style>
@@ -119,7 +111,7 @@
<touch:TouchIconButton Command="{Binding CloneJobsCommand}" Margin="0 0 30 0" Padding="20" Icon="CopyRegular" Style="{StaticResource TangoRoundTouchIconButton}"></touch:TouchIconButton>
<touch:TouchIconButton Command="{Binding DeleteJobsCommand}" Padding="20" Icon="TrashAltRegular" Style="{StaticResource TangoRoundTouchIconButton}"></touch:TouchIconButton>
</StackPanel>
- <touch:TouchIconButton Command="{Binding AddJobCommand}" RenderTransformOrigin="0.5,0.5" Margin="0 -15 0 0" Padding="20" Height="80" Icon="Plus" HorizontalAlignment="Right">
+ <touch:TouchIconButton Command="{Binding AddJobCommand}" RenderTransformOrigin="0.5,0.5" Margin="0 -15 0 0" Padding="20" Height="80" Icon="Plus" HorizontalAlignment="Right" Visibility="{Binding BuildProvider.IsEureka, Converter={StaticResource BooleanToVisibilityInverseConverter}}">
<touch:TouchIconButton.Style>
<Style TargetType="touch:TouchIconButton" BasedOn="{StaticResource TangoRoundTouchIconButton}">
<Setter Property="Opacity" Value="1"></Setter>
@@ -167,9 +159,48 @@
<DockPanel>
<Rectangle Margin="0 0 20 0" HorizontalAlignment="Center" VerticalAlignment="Bottom" Stroke="{StaticResource TangoGrayBrush}" StrokeThickness="1" Height="25"></Rectangle>
<touch:TouchIcon DockPanel.Dock="Left" Foreground="{StaticResource TangoGrayBrush}" Width="20" Height="20" VerticalAlignment="Bottom" Icon="Magnify" />
- <touch:TouchTextBox Margin="5 0 0 0" Width="300" Text="{Binding Filter,Mode=TwoWay}" Watermark="find name, customer..."></touch:TouchTextBox>
+ <touch:TouchTextBox Margin="5 0 0 0" Width="300" Text="{Binding Filter,Mode=TwoWay}" Watermark="find name"></touch:TouchTextBox>
</DockPanel>
</Grid>
+ <StackPanel Orientation="Horizontal" DockPanel.Dock="Right" HorizontalAlignment="Right" Margin="0 20 20 0" Visibility="{Binding BuildProvider.IsEureka, Converter={StaticResource BooleanToVisibilityConverter}}">
+ <!--<TextBlock FontSize="{StaticResource TangoButtonFontSize}" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="0 10 0 0">ADD JOB</TextBlock>-->
+ <touch:TouchIconButton Command="{Binding AddJobCommand}" RenderTransformOrigin="0.5,0.5" Margin="20 0 10 0" Padding="20" Height="70" Icon="Plus" HorizontalAlignment="Right" Background="{StaticResource TangoPrimaryAccentBrush}">
+ <touch:TouchIconButton.Style>
+ <Style TargetType="touch:TouchIconButton" BasedOn="{StaticResource TangoRoundTouchIconButton}">
+ <Setter Property="Opacity" Value="1"></Setter>
+ <Setter Property="IsHitTestVisible" Value="True"></Setter>
+ <Setter Property="RenderTransform">
+ <Setter.Value>
+ <ScaleTransform ScaleX="1" ScaleY="1" />
+ </Setter.Value>
+ </Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding IsMultiSelecting}" Value="True">
+ <Setter Property="IsHitTestVisible" Value="False"></Setter>
+ <DataTrigger.EnterActions>
+ <BeginStoryboard>
+ <Storyboard>
+ <DoubleAnimation Storyboard.TargetProperty="Opacity" To="0" Duration="00:00:0.2"></DoubleAnimation>
+ <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX" To="0.5" Duration="00:00:0.2"></DoubleAnimation>
+ <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleY" To="0.5" Duration="00:00:0.2"></DoubleAnimation>
+ </Storyboard>
+ </BeginStoryboard>
+ </DataTrigger.EnterActions>
+ <DataTrigger.ExitActions>
+ <BeginStoryboard>
+ <Storyboard>
+ <DoubleAnimation Storyboard.TargetProperty="Opacity" To="1" Duration="00:00:0.2"></DoubleAnimation>
+ <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX" To="1" Duration="00:00:0.2"></DoubleAnimation>
+ <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleY" To="1" Duration="00:00:0.2"></DoubleAnimation>
+ </Storyboard>
+ </BeginStoryboard>
+ </DataTrigger.ExitActions>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </touch:TouchIconButton.Style>
+ </touch:TouchIconButton>
+ </StackPanel>
</DockPanel>
<Grid Grid.Row="1" x:Name="moveGrid">
@@ -217,28 +248,44 @@
</touch:LightTouchDataGridColumn.Header>
<touch:LightTouchDataGridColumn.CellTemplate>
<DataTemplate>
- <TextBlock Margin="20 0 0 0" IsHitTestVisible="False" Text="{Binding Name,Converter={StaticResource StringEllipsisConverter},ConverterParameter='40'}"></TextBlock>
+ <TextBlock Margin="20 0 0 0" IsHitTestVisible="False" Text="{Binding Name,Converter={StaticResource StringEllipsisConverter},ConverterParameter='56'}" TextWrapping="Wrap"></TextBlock>
+ </DataTemplate>
+ </touch:LightTouchDataGridColumn.CellTemplate>
+ </touch:LightTouchDataGridColumn>
+ <touch:LightTouchDataGridColumn Width="200" Header="Thread" SortMember="ThreadName" HorizontalContentAlignment="Left">
+ <touch:LightTouchDataGridColumn.CellTemplate>
+ <DataTemplate>
+ <TextBlock Margin="5 0 0 0" IsHitTestVisible="False" Text="{Binding ThreadName,Converter={StaticResource StringEllipsisConverter},ConverterParameter='44'}" TextWrapping="Wrap" HorizontalAlignment="Left" VerticalAlignment="Center" FontWeight="Regular"></TextBlock>
</DataTemplate>
</touch:LightTouchDataGridColumn.CellTemplate>
</touch:LightTouchDataGridColumn>
- <touch:LightTouchDataGridColumn Width="117" Header="Length (m)" SortMember="Length">
+ <touch:LightTouchDataGridColumn Width="117" Header="Length (m)" SortMember="LengthIncludingNumberOfUnits">
<touch:LightTouchDataGridColumn.CellTemplate>
<DataTemplate>
- <TextBlock IsHitTestVisible="False" Text="{Binding Length,StringFormat=0.0}"></TextBlock>
+ <TextBlock IsHitTestVisible="False">
+ <TextBlock.Text>
+ <MultiBinding Converter="{StaticResource LengthWithSpoolsConverter}" StringFormat="#,0.0" TargetNullValue='0' FallbackValue='0' Mode="OneWay">
+ <Binding Path="LengthIncludingNumberOfUnits" Mode="OneWay"/>
+ <Binding Path="DataContext.BuildProvider.IsEureka" Mode="OneWay" RelativeSource="{RelativeSource AncestorType=UserControl}"/>
+ <Binding Path="Spools" Mode="OneWay"/>
+ </MultiBinding>
+ </TextBlock.Text>
+ </TextBlock>
</DataTemplate>
</touch:LightTouchDataGridColumn.CellTemplate>
</touch:LightTouchDataGridColumn>
+
<touch:LightTouchDataGridColumn Header="Colors" SortMember="Segments.Count" Width="85">
<touch:LightTouchDataGridColumn.CellTemplate>
<DataTemplate>
- <Image Stretch="Fill" IsHitTestVisible="False" Source="{Binding Converter={StaticResource JobToPieImageConverter},ConverterParameter='25,25',IsAsync=True}" Width="25" Height="25" HorizontalAlignment="Left"></Image>
+ <Image Stretch="Fill" IsHitTestVisible="False" Source="{Binding Converter={StaticResource JobToPieImageConverter},ConverterParameter='60,60',IsAsync=True}" Width="60" Height="60" HorizontalAlignment="Left"></Image>
</DataTemplate>
</touch:LightTouchDataGridColumn.CellTemplate>
</touch:LightTouchDataGridColumn>
<touch:LightTouchDataGridColumn Width="100" Header="Updated" SortMember="LastUpdated">
<touch:LightTouchDataGridColumn.CellTemplate>
<DataTemplate>
- <TextBlock IsHitTestVisible="False" Text="{Binding LastUpdated,Converter={StaticResource DateTimeUTCToShortDateConverter}}"></TextBlock>
+ <TextBlock IsHitTestVisible="False" Text="{Binding LastUpdated,Converter={StaticResource DateTimeUTCToShortDateConverter}}" FontWeight="Regular"></TextBlock>
</DataTemplate>
</touch:LightTouchDataGridColumn.CellTemplate>
</touch:LightTouchDataGridColumn>
@@ -317,35 +364,50 @@
<touch:LightTouchDataGridColumn Width="100" Header="Status" SortMember="JobStatus" HorizontalContentAlignment="Left">
<touch:LightTouchDataGridColumn.CellTemplate>
<DataTemplate>
- <TextBlock IsHitTestVisible="False" Text="{Binding JobStatus,Converter={StaticResource EnumToDescriptionConverter}}" HorizontalAlignment="Left" VerticalAlignment="Center"></TextBlock>
+ <TextBlock IsHitTestVisible="False" Text="{Binding JobStatus,Converter={StaticResource EnumToDescriptionConverter}}" HorizontalAlignment="Left" VerticalAlignment="Center" FontWeight="Regular"></TextBlock>
</DataTemplate>
</touch:LightTouchDataGridColumn.CellTemplate>
</touch:LightTouchDataGridColumn>
<touch:LightTouchDataGridColumn Width="1*" Header="Name" SortMember="Name" HorizontalContentAlignment="Left">
<touch:LightTouchDataGridColumn.CellTemplate>
<DataTemplate>
- <TextBlock IsHitTestVisible="False" Text="{Binding Name,Converter={StaticResource StringEllipsisConverter},ConverterParameter='40'}" HorizontalAlignment="Left" VerticalAlignment="Center"></TextBlock>
+ <TextBlock IsHitTestVisible="False" Text="{Binding Name,Converter={StaticResource StringEllipsisConverter},ConverterParameter='46'}" TextWrapping="Wrap" HorizontalAlignment="Left" VerticalAlignment="Center"></TextBlock>
+ </DataTemplate>
+ </touch:LightTouchDataGridColumn.CellTemplate>
+ </touch:LightTouchDataGridColumn>
+ <touch:LightTouchDataGridColumn Width="200" Header="Thread" SortMember="ThreadName" HorizontalContentAlignment="Left">
+ <touch:LightTouchDataGridColumn.CellTemplate>
+ <DataTemplate>
+ <TextBlock Margin="5 0 0 0" IsHitTestVisible="False" Text="{Binding ThreadName,Converter={StaticResource StringEllipsisConverter},ConverterParameter='43'}" TextWrapping="Wrap" HorizontalAlignment="Left" VerticalAlignment="Center" FontWeight="Regular"></TextBlock>
</DataTemplate>
</touch:LightTouchDataGridColumn.CellTemplate>
</touch:LightTouchDataGridColumn>
- <touch:LightTouchDataGridColumn Width="117" Header="Length (m)" SortMember="Length">
+ <touch:LightTouchDataGridColumn Width="117" Header="Length (m)" SortMember="LengthIncludingNumberOfUnits">
<touch:LightTouchDataGridColumn.CellTemplate>
<DataTemplate>
- <TextBlock IsHitTestVisible="False" Text="{Binding Length,StringFormat=0.0}"></TextBlock>
+ <TextBlock IsHitTestVisible="False" >
+ <TextBlock.Text>
+ <MultiBinding Converter="{StaticResource LengthWithSpoolsConverter}" StringFormat="0.0" TargetNullValue='0' FallbackValue='0'>
+ <Binding Path="LengthIncludingNumberOfUnits" Mode="OneWay"/>
+ <Binding Path="DataContext.BuildProvider.IsEureka" Mode="OneWay" RelativeSource="{RelativeSource AncestorType=UserControl}"/>
+ <Binding Path="Spools" Mode="OneWay"/>
+ </MultiBinding>
+ </TextBlock.Text>
+ </TextBlock>
</DataTemplate>
</touch:LightTouchDataGridColumn.CellTemplate>
</touch:LightTouchDataGridColumn>
<touch:LightTouchDataGridColumn Header="Colors" SortMember="Segments.Count" Width="85">
<touch:LightTouchDataGridColumn.CellTemplate>
<DataTemplate>
- <Image Stretch="Fill" IsHitTestVisible="False" Source="{Binding Converter={StaticResource JobToPieImageConverter},ConverterParameter='25,25',IsAsync=True}" Width="25" Height="25" HorizontalAlignment="Left"></Image>
+ <Image Stretch="Fill" IsHitTestVisible="False" Source="{Binding Converter={StaticResource JobToPieImageConverter},ConverterParameter='60,60',IsAsync=True}" Width="60" Height="60" HorizontalAlignment="Left"></Image>
</DataTemplate>
</touch:LightTouchDataGridColumn.CellTemplate>
</touch:LightTouchDataGridColumn>
<touch:LightTouchDataGridColumn Width="100" Header="Updated" SortMember="LastUpdated">
<touch:LightTouchDataGridColumn.CellTemplate>
<DataTemplate>
- <TextBlock IsHitTestVisible="False" Text="{Binding LastUpdated,Converter={StaticResource DateTimeUTCToShortDateConverter}}"></TextBlock>
+ <TextBlock IsHitTestVisible="False" Text="{Binding LastUpdated,Converter={StaticResource DateTimeUTCToShortDateConverter}}" FontWeight="Regular"></TextBlock>
</DataTemplate>
</touch:LightTouchDataGridColumn.CellTemplate>
</touch:LightTouchDataGridColumn>
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/MainView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/MainView.xaml
index 505ccc312..a496fded6 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/MainView.xaml
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/MainView.xaml
@@ -15,6 +15,7 @@
<views:JobsView />
<views:JobSummeryView />
<views:JobView />
+ <views:JobEurekaView />
<views:TwineCatalogView />
<views:JobProgressView />
</controls:NavigationControl>
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/ViewModels/MainViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/ViewModels/MainViewVM.cs
index 49afbe63b..6787136be 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/ViewModels/MainViewVM.cs
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/ViewModels/MainViewVM.cs
@@ -323,7 +323,7 @@ namespace Tango.PPC.MachineSettings.ViewModels
{
Settings.SupportedJobTypes = SelectedJobTypes.SynchedSource.ToList();
Settings.SupportedColorSpaces = SelectedColorSpaces.SynchedSource.ToList();
-
+
Machine.MapPropertiesTo(MachineProvider.Machine, MappingFlags.NoReferenceTypes);
Settings.EnableHotSpot = EnableHotSpot;
@@ -381,72 +381,75 @@ namespace Tango.PPC.MachineSettings.ViewModels
}
}
- if (EnableProxy != Settings.EnableProxifier)
+ if (!BuildProvider.IsEureka)
{
- CmdCommand cmd = null;
- CmdCommandResult result = null;
-
- if (!EnableProxy)
+ if (EnableProxy != Settings.EnableProxifier)
{
- try
+ CmdCommand cmd = null;
+ CmdCommandResult result = null;
+
+ if (!EnableProxy)
{
- cmd = new CmdCommand("taskkill", "/F /IM proxifier.exe");
- result = await cmd.Run();
- Settings.EnableProxifier = false;
- Settings.Save();
+ try
+ {
+ cmd = new CmdCommand("taskkill", "/F /IM proxifier.exe");
+ result = await cmd.Run();
+ Settings.EnableProxifier = false;
+ Settings.Save();
+ }
+ catch (Exception ex)
+ {
+ LogManager.Log(ex, $"Unable to disable the proxy.\n{ex.Message}");
+ await NotificationProvider.ShowError($"Unable to disable the proxy.\n{ex.Message}");
+ }
}
- catch (Exception ex)
+ else
{
- LogManager.Log(ex, $"Unable to disable the proxy.\n{ex.Message}");
- await NotificationProvider.ShowError($"Unable to disable the proxy.\n{ex.Message}");
+ try
+ {
+ Process.Start(@"C:\Program Files (x86)\Proxifier\Proxifier.exe");
+ Settings.EnableProxifier = true;
+ Settings.Save();
+ }
+ catch (Exception ex)
+ {
+ LogManager.Log(ex, $"Unable to start the proxy service.\n{ex.Message}");
+ await NotificationProvider.ShowError($"Unable to start the proxy service.\n{ex.Message}");
+ }
}
}
- else
+
+ if (_previousEnableUWF != EnableUWF)
{
+ await NotificationProvider.ShowWarning("Changes to disk protection (UWF) will take effect only after a full system restart.");
+
try
{
- Process.Start(@"C:\Program Files (x86)\Proxifier\Proxifier.exe");
- Settings.EnableProxifier = true;
- Settings.Save();
+ LogManager.Log($"Changing UWF mode to '{EnableUWF}'.");
+ if (EnableUWF)
+ {
+ NotificationProvider.SetGlobalBusyMessage("Enabling disk protection (UWF)...");
+ await UnifiedWriteFilterManager.Enable();
+ }
+ else
+ {
+ NotificationProvider.SetGlobalBusyMessage("Disabling disk protection (UWF)...");
+ await UnifiedWriteFilterManager.Disable();
+ }
+ NotificationProvider.ReleaseGlobalBusyMessage();
}
catch (Exception ex)
{
- LogManager.Log(ex, $"Unable to start the proxy service.\n{ex.Message}");
- await NotificationProvider.ShowError($"Unable to start the proxy service.\n{ex.Message}");
+ NotificationProvider.ReleaseGlobalBusyMessage();
+ LogManager.Log(ex, "Error setting UWF mode.");
+ await NotificationProvider.ShowError($"Could not change the disk protection mode\n{ex.FlattenMessage()}");
}
}
- }
- if (_previousEnableUWF != EnableUWF)
- {
- await NotificationProvider.ShowWarning("Changes to disk protection (UWF) will take effect only after a full system restart.");
-
- try
+ if (!isRestarting)
{
- LogManager.Log($"Changing UWF mode to '{EnableUWF}'.");
- if (EnableUWF)
- {
- NotificationProvider.SetGlobalBusyMessage("Enabling disk protection (UWF)...");
- await UnifiedWriteFilterManager.Enable();
- }
- else
- {
- NotificationProvider.SetGlobalBusyMessage("Disabling disk protection (UWF)...");
- await UnifiedWriteFilterManager.Disable();
- }
- NotificationProvider.ReleaseGlobalBusyMessage();
+ await NavigationManager.NavigateBack();
}
- catch (Exception ex)
- {
- NotificationProvider.ReleaseGlobalBusyMessage();
- LogManager.Log(ex, "Error setting UWF mode.");
- await NotificationProvider.ShowError($"Could not change the disk protection mode\n{ex.FlattenMessage()}");
- }
- }
-
- if (!isRestarting)
- {
- await NavigationManager.NavigateBack();
}
}
}
@@ -477,45 +480,29 @@ namespace Tango.PPC.MachineSettings.ViewModels
MachineDataSynchronizer.SynchronizationStarted += (_, __) => InvalidateRelayCommands();
MachineDataSynchronizer.SynchronizationEnded += (_, __) => InvalidateRelayCommands();
- if (!Settings.EnableProxifier)
+ if (!BuildProvider.IsEureka)
{
- CmdCommand cmd = null;
- CmdCommandResult result = null;
-
- try
+ if (!Settings.EnableProxifier)
{
- cmd = new CmdCommand("taskkill", "/F /IM proxifier.exe");
- result = await cmd.Run();
- }
- catch (Exception ex)
- {
- LogManager.Log(ex, $"Unable to disable the proxy.\n{ex.Message}");
+ CmdCommand cmd = null;
+ CmdCommandResult result = null;
+
+ try
+ {
+ cmd = new CmdCommand("taskkill", "/F /IM proxifier.exe");
+ result = await cmd.Run();
+ }
+ catch (Exception ex)
+ {
+ LogManager.Log(ex, $"Unable to disable the proxy.\n{ex.Message}");
+ }
}
}
using (ObservablesContext db = ObservablesContext.CreateDefault())
{
Rmls = (await new RmlsCollectionBuilder(db).SetAll().ForHeadType(MachineProvider.Machine.MachineHeadType).ForSite(MachineProvider.Machine.SiteGuid).BuildAsync()).OrderBy(x => x.FinalName).ToObservableCollection();
-
- try
- {
- SpoolTypes = (await db.SitesSpoolTypes.Where(x => x.SiteGuid == MachineProvider.Machine.SiteGuid).Include(x => x.SpoolType).Select(x => x.SpoolType).ToListAsync()).OrderBy(x => x.LastUpdated).ToObservableCollection();
-
- if (SpoolTypes.Count == 0)
- {
- SpoolTypes = new ObservableCollection<SpoolType>();
- var standardSpool = await db.SpoolTypes.FirstOrDefaultAsync(x => x.Code == (int)BL.Enumerations.SpoolTypes.StandardSpool);
- if (standardSpool != null)
- {
- SpoolTypes.Add(standardSpool);
- }
- }
-
- }
- catch (Exception ex)
- {
- LogManager.Log(ex, "Error getting machine site spool types.");
- }
+ SpoolTypes = await MachineProvider.Machine.GetSiteSpoolTypes(db);
}
}
@@ -549,8 +536,8 @@ namespace Tango.PPC.MachineSettings.ViewModels
SelectedJobTypes = new SelectedObjectCollection<JobTypes>(Enum.GetValues(typeof(JobTypes)).Cast<JobTypes>().ToObservableCollection(), Settings.SupportedJobTypes.ToObservableCollection());
SelectedColorSpaces = new SelectedObjectCollection<ColorSpaces>(Enum.GetValues(typeof(ColorSpaces)).Cast<ColorSpaces>().Where(x => x.IsUserSpace()).ToObservableCollection(), Settings.SupportedColorSpaces.ToObservableCollection());
- TabsColorSpaces = new ObservableCollection<ColorSpaces>(Enum.GetValues(typeof(ColorSpaces)).Cast<ColorSpaces>().Where(x => x!= ColorSpaces.Volume /*&& x!= ColorSpaces.HSB*/).ToObservableCollection());
- DefaultTabColorSpace = Settings.DefaultTabColorSpace == null? ColorSpaces.CMYK : TabsColorSpaces.SingleOrDefault(x => x == Settings.DefaultTabColorSpace);
+ TabsColorSpaces = new ObservableCollection<ColorSpaces>(Enum.GetValues(typeof(ColorSpaces)).Cast<ColorSpaces>().Where(x => x != ColorSpaces.Volume /*&& x!= ColorSpaces.HSB*/).ToObservableCollection());
+ DefaultTabColorSpace = Settings.DefaultTabColorSpace == null ? ColorSpaces.CMYK : TabsColorSpaces.SingleOrDefault(x => x == Settings.DefaultTabColorSpace);
DefaultRML = Rmls.SingleOrDefault(x => x.Guid == Settings.DefaultRmlGuid);
SelectedSpoolType = SpoolTypes.SingleOrDefault(x => x.Guid == Settings.SpoolTypeGuid);
@@ -571,14 +558,17 @@ namespace Tango.PPC.MachineSettings.ViewModels
SelectedTimeZone = TimeZones.SingleOrDefault(x => x.StandardName == TimeZone.CurrentTimeZone.StandardName);
_previousTimeZone = SelectedTimeZone;
- try
- {
- EnableUWF = await UnifiedWriteFilterManager.IsEnabled();
- _previousEnableUWF = EnableUWF;
- }
- catch (Exception ex)
+ if (!BuildProvider.IsEureka)
{
- LogManager.Log(ex, "Error getting UWF status.");
+ try
+ {
+ EnableUWF = await UnifiedWriteFilterManager.IsEnabled();
+ _previousEnableUWF = EnableUWF;
+ }
+ catch (Exception ex)
+ {
+ LogManager.Log(ex, "Error getting UWF status.");
+ }
}
try
@@ -613,7 +603,10 @@ namespace Tango.PPC.MachineSettings.ViewModels
LogManager.Log(ex, "Error loading lubrication levels.");
}
- EnableProxy = Settings.EnableProxifier;
+ if (!BuildProvider.IsEureka)
+ {
+ EnableProxy = Settings.EnableProxifier;
+ }
}
private async void OnEnableRemoteAssistanceChanged()
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Views/MainView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Views/MainView.xaml
index 6871eb330..764f044d0 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Views/MainView.xaml
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Views/MainView.xaml
@@ -59,7 +59,7 @@
<StackPanel Margin="10 30 10 10">
<connectivity:AvailableWiFiConnectionsControl DataContext="{Binding ConnectivityProvider}" />
- <controls:TableGrid Margin="10" RowHeight="60" MakeFirstColumnVerticalAlignmentBottom="False" TextElement.FontSize="{StaticResource TangoDefaultFontSize}">
+ <controls:TableGrid Visibility="{Binding BuildProvider.IsEureka,Converter={StaticResource BooleanToVisibilityInverseConverter}}" Margin="10" RowHeight="60" MakeFirstColumnVerticalAlignmentBottom="False" TextElement.FontSize="{StaticResource TangoDefaultFontSize}">
<TextBlock VerticalAlignment="Center">Enable Hot Spot</TextBlock>
<touch:TouchToggleSlider Style="{StaticResource TangoToggleButtonGrayAccent}" HorizontalAlignment="Right" Margin="0 0 110 0" Width="90" IsChecked="{Binding EnableHotSpot}"></touch:TouchToggleSlider>
@@ -68,7 +68,7 @@
<touch:TouchTextBox IsPassword="True" Watermark="•••••••" HorizontalAlignment="Right" VerticalAlignment="Bottom" Width="200" Text="{Binding HotSpotPassword}" KeyboardContainer="{Binding ElementName=Container}"></touch:TouchTextBox>
</controls:TableGrid>
- <DockPanel Margin="10 -40 0 0">
+ <DockPanel Margin="10 -40 0 0" Visibility="{Binding BuildProvider.IsEureka,Converter={StaticResource BooleanToVisibilityInverseConverter}}">
<touch:TouchIcon VerticalAlignment="Top" Icon="InformationOutline" Foreground="{StaticResource TangoGrayTextBrush}"></touch:TouchIcon>
<TextBlock Margin="10 0 0 0" VerticalAlignment="Top" TextWrapping="Wrap" FontSize="{StaticResource TangoSmallFontSize}" Foreground="{StaticResource TangoGrayTextBrush}">
Enabling a hot-spot will create a wireless network dedicated to this machine.
@@ -219,7 +219,7 @@
</touch:TouchExpander>
<!--REMOTE ASSISTANCE-->
- <touch:TouchExpander Margin="0 20 0 0" Header="Remote Assistance" IsExpanded="True" FontSize="{StaticResource TangoExpanderHeaderFontSize}">
+ <touch:TouchExpander Margin="0 20 0 0" Header="Remote Assistance" IsExpanded="True" FontSize="{StaticResource TangoExpanderHeaderFontSize}" Visibility="{Binding BuildProvider.IsEureka,Converter={StaticResource BooleanToVisibilityInverseConverter}}">
<StackPanel>
<controls:TableGrid Margin="10" RowHeight="70" MakeFirstColumnVerticalAlignmentBottom="False" TextElement.FontSize="{StaticResource TangoDefaultFontSize}">
<TextBlock VerticalAlignment="Center">Enable Remote Assistance</TextBlock>
@@ -236,7 +236,7 @@
</touch:TouchExpander>
<!--LOCK SCREEN-->
- <touch:TouchExpander Margin="0 20 0 0" Header="Lock Screen" IsExpanded="True" FontSize="{StaticResource TangoExpanderHeaderFontSize}">
+ <touch:TouchExpander Margin="0 20 0 0" Header="Lock Screen" IsExpanded="True" FontSize="{StaticResource TangoExpanderHeaderFontSize}" Visibility="{Binding BuildProvider.IsEureka,Converter={StaticResource BooleanToVisibilityInverseConverter}}">
<StackPanel>
<controls:TableGrid Margin="10" RowHeight="60" MakeFirstColumnVerticalAlignmentBottom="False" TextElement.FontSize="{StaticResource TangoDefaultFontSize}">
<TextBlock VerticalAlignment="Center">Enable Lock Screen</TextBlock>
@@ -327,7 +327,7 @@
</touch:TouchExpander>
<!--SCREEN SAVER-->
- <touch:TouchExpander Margin="0 20 0 0" Header="Screen Saver" IsExpanded="True" FontSize="{StaticResource TangoExpanderHeaderFontSize}">
+ <touch:TouchExpander Margin="0 20 0 0" Header="Screen Saver" IsExpanded="True" FontSize="{StaticResource TangoExpanderHeaderFontSize}" Visibility="{Binding BuildProvider.IsEureka,Converter={StaticResource BooleanToVisibilityInverseConverter}}">
<StackPanel>
<controls:TableGrid Margin="10" RowHeight="60" MakeFirstColumnVerticalAlignmentBottom="False" TextElement.FontSize="{StaticResource TangoDefaultFontSize}">
<TextBlock VerticalAlignment="Center">
@@ -380,7 +380,7 @@
<touch:TouchToggleSlider IsChecked="{Binding Settings.EnableEmbeddedDebugLogs}" Margin="0 0 100 0" DockPanel.Dock="Right" Style="{StaticResource TangoToggleButtonGrayAccent}" HorizontalAlignment="Right" Width="90"></touch:TouchToggleSlider>
</DockPanel>
- <DockPanel Margin="0 20 0 0" TextElement.FontSize="{StaticResource TangoDefaultFontSize}">
+ <DockPanel Visibility="{Binding BuildProvider.IsEureka,Converter={StaticResource BooleanToVisibilityInverseConverter}}" Margin="0 20 0 0" TextElement.FontSize="{StaticResource TangoDefaultFontSize}">
<TextBlock VerticalAlignment="Center">Enable Proxy</TextBlock>
<touch:TouchToggleSlider IsChecked="{Binding EnableProxy}" Margin="0 0 100 0" DockPanel.Dock="Right" Style="{StaticResource TangoToggleButtonGrayAccent}" HorizontalAlignment="Right" Width="90"></touch:TouchToggleSlider>
</DockPanel>
@@ -406,11 +406,6 @@
</DockPanel>
<DockPanel Margin="0 20 0 0" TextElement.FontSize="{StaticResource TangoDefaultFontSize}">
- <TextBlock VerticalAlignment="Center">Use Legacy Jobs Module</TextBlock>
- <touch:TouchToggleSlider IsChecked="{Binding Settings.UseJobsModuleV2,Converter={StaticResource BooleanInverseConverter}}" Margin="0 0 100 0" DockPanel.Dock="Right" Style="{StaticResource TangoToggleButtonGrayAccent}" HorizontalAlignment="Right" Width="90"></touch:TouchToggleSlider>
- </DockPanel>
-
- <DockPanel Margin="0 20 0 0" TextElement.FontSize="{StaticResource TangoDefaultFontSize}">
<TextBlock VerticalAlignment="Center">Always Start in Technician Mode</TextBlock>
<touch:TouchToggleSlider IsChecked="{Binding Settings.EnableTechnicianModeByDefault}" Margin="0 0 100 0" DockPanel.Dock="Right" Style="{StaticResource TangoToggleButtonGrayAccent}" HorizontalAlignment="Right" Width="90"></touch:TouchToggleSlider>
</DockPanel>
@@ -455,7 +450,7 @@
<touch:TouchNumericTextBox Minimum="1" Maximum="120" KeyboardContainer="{Binding ElementName=Container}" Value="{Binding Settings.InsightsMaxStorageDuration,Converter={StaticResource TimeSpanToDaysConverter}}" Margin="0 0 100 0" DockPanel.Dock="Right" HorizontalAlignment="Right" Width="90"></touch:TouchNumericTextBox>
</DockPanel>
- <DockPanel Margin="0 20 0 0" TextElement.FontSize="{StaticResource TangoDefaultFontSize}">
+ <DockPanel Visibility="{Binding BuildProvider.IsEureka,Converter={StaticResource BooleanToVisibilityInverseConverter}}" Margin="0 20 0 0" TextElement.FontSize="{StaticResource TangoDefaultFontSize}">
<TextBlock VerticalAlignment="Center">Enable UWF (Disk Protection)</TextBlock>
<touch:TouchToggleSlider IsChecked="{Binding EnableUWF}" Margin="0 0 100 0" DockPanel.Dock="Right" Style="{StaticResource TangoToggleButtonGrayAccent}" HorizontalAlignment="Right" Width="90"></touch:TouchToggleSlider>
</DockPanel>
@@ -465,6 +460,11 @@
<touch:TouchNumericTextBox Minimum="0" Maximum="10" KeyboardContainer="{Binding ElementName=Container}" Value="{Binding Settings.FineTuningMinLimitdL}" Margin="0 0 100 0" DockPanel.Dock="Right" HorizontalAlignment="Right" Width="90" HasDecimalPoint="True"></touch:TouchNumericTextBox>
</DockPanel>
+ <DockPanel Margin="0 20 0 0" TextElement.FontSize="{StaticResource TangoDefaultFontSize}">
+ <TextBlock VerticalAlignment="Center">Show advanced options (Segments &amp; Gradients) in the Job Editor</TextBlock>
+ <touch:TouchToggleSlider IsChecked="{Binding Settings.ShowAdvancedOptions}" Margin="0 0 100 0" DockPanel.Dock="Right" Style="{StaticResource TangoToggleButtonGrayAccent}" HorizontalAlignment="Right" Width="90"></touch:TouchToggleSlider>
+ </DockPanel>
+
<DockPanel Margin="0 20 0 0">
<touch:TouchIcon VerticalAlignment="Top" Icon="InformationOutline" Foreground="{StaticResource TangoGrayTextBrush}"></touch:TouchIcon>
<TextBlock Margin="10 0 0 0" VerticalAlignment="Top" TextWrapping="Wrap" FontSize="{StaticResource TangoSmallFontSize}" Foreground="{StaticResource TangoGrayTextBrush}">
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/MaitenanceModuleSettings.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/MaitenanceModuleSettings.cs
new file mode 100644
index 000000000..b4066a5d4
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/MaitenanceModuleSettings.cs
@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.Settings;
+
+namespace Tango.PPC.Maintenance
+{
+ public class MaitenanceModuleSettings : SettingsBase
+ {
+
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Models/MidTankLevelModel.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Models/MidTankLevelModel.cs
index 93af310ba..8ea16fe1b 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Models/MidTankLevelModel.cs
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Models/MidTankLevelModel.cs
@@ -28,7 +28,7 @@ namespace Tango.PPC.Maintenance.Models
public bool IsEmpty
{
get { return Level <= MachineOperator.EMPTY_MIDTANK_LITERS; }
- }
+ }
public IdsPack IDSPack { get; set; }
}
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Tango.PPC.Maintenance.csproj b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Tango.PPC.Maintenance.csproj
index 43a850289..bebdd63c7 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Tango.PPC.Maintenance.csproj
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Tango.PPC.Maintenance.csproj
@@ -96,6 +96,10 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
+ <Page Include="Views\EurekaMaintenanceView.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
<Page Include="Views\GeneralGuideView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
@@ -142,6 +146,7 @@
<Compile Include="Helpers\GuideHelper.cs" />
<Compile Include="MaintenanceCommand.cs" />
<Compile Include="MaintenanceModule.cs" />
+ <Compile Include="MaitenanceModuleSettings.cs" />
<Compile Include="Models\MidTankLevelModel.cs" />
<Compile Include="Models\OverallTemperatureModel.cs" />
<Compile Include="Properties\AssemblyInfo.cs">
@@ -161,6 +166,9 @@
<Compile Include="ViewModels\GeneralGuideViewVM.cs" />
<Compile Include="ViewModels\MaintenanceViewVM.cs" />
<Compile Include="ViewModels\MainViewVM.cs" />
+ <Compile Include="Views\EurekaMaintenanceView.xaml.cs">
+ <DependentUpon>EurekaMaintenanceView.xaml</DependentUpon>
+ </Compile>
<Compile Include="Views\GeneralGuideView.xaml.cs">
<DependentUpon>GeneralGuideView.xaml</DependentUpon>
</Compile>
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/ViewModels/MainViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/ViewModels/MainViewVM.cs
index a614f7be2..0f3dad397 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/ViewModels/MainViewVM.cs
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/ViewModels/MainViewVM.cs
@@ -25,7 +25,12 @@ namespace Tango.PPC.Maintenance.ViewModels
public override void OnNavigatedTo()
{
base.OnNavigatedTo();
- NavigationManager.NavigateTo<MaintenanceModule>(nameof(MaintenanceView), false);
+ if(BuildProvider.IsEureka)
+ {
+ NavigationManager.NavigateTo<MaintenanceModule>(nameof(EurekaMaintenanceView), false);
+ }
+ else
+ NavigationManager.NavigateTo<MaintenanceModule>(nameof(MaintenanceView), false);
}
}
}
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/ViewModels/MaintenanceViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/ViewModels/MaintenanceViewVM.cs
index cd646ce02..a8af047fc 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/ViewModels/MaintenanceViewVM.cs
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/ViewModels/MaintenanceViewVM.cs
@@ -2,11 +2,14 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
+using System.ComponentModel;
using System.Data.Entity;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.BL;
+using Tango.BL.Builders;
+using Tango.BL.Entities;
using Tango.Core;
using Tango.Core.Commands;
using Tango.Explorer;
@@ -15,6 +18,7 @@ using Tango.Logging;
using Tango.PMR.Diagnostics;
using Tango.PMR.IFS;
using Tango.PMR.MachineStatus;
+using Tango.PMR.ThreadLoading;
using Tango.PPC.Common;
using Tango.PPC.Maintenance.Commands;
using Tango.PPC.Maintenance.Dialogs;
@@ -22,13 +26,57 @@ using Tango.PPC.Maintenance.Helpers;
using Tango.PPC.Maintenance.Models;
using Tango.PPC.Maintenance.Views;
using Tango.PPC.Storage;
+using Tango.Settings;
namespace Tango.PPC.Maintenance.ViewModels
{
public class MaintenanceViewVM : PPCViewModel
{
+ public enum Boards
+ {
+ [Description("Main")]
+ Main = 1,
+ [Description("Heads")]
+ Heads = 2,
+ [Description("Dryer")]
+ Dryer = 3,
+ [Description("Mid tanks")]
+ Midtanks = 4,
+ [Description("Lubricant")]
+ Lubricant = 5,
+ [Description("Dispenser 1")]
+ Dispenser_1 = 6,
+ [Description("Dispenser 2")]
+ Dispenser_2 = 7,
+ [Description("Dispenser 3")]
+ Dispenser_3 = 8,
+ [Description("Dispenser 4")]
+ Dispenser_4 = 9,
+ [Description("Dispenser 5")]
+ Dispenser_5 = 10,
+ [Description("Dispenser 6")]
+ Dispenser_6 = 11,
+ [Description("Winder 1")]
+ Winder_1 = 12,
+ [Description("Winder 2")]
+ Winder_2 = 13,
+ [Description("Winder 3")]
+ Winder_3 = 14,
+ [Description("Winder 4")]
+ Winder_4 = 15,
+
+ }
public class WasteStateModel : ExtendedObject
{
+ public class RMLDisplayModel
+ {
+ public String Name { get; set; }
+
+ public String Guid { get; set; }
+
+ public String FinalName { get; set; }
+ }
+
private CartridgeState _state;
public CartridgeState State
{
@@ -99,6 +147,90 @@ namespace Tango.PPC.Maintenance.ViewModels
set { _isInkAutoFillingEnabled = value; RaisePropertyChangedAuto(); OnInkAutoFillingChanged(); }
}
+ public List<Boards> ListBoards { get { return typeof(Boards).GetEnumValues().Cast<Boards>().ToList(); } }
+
+ private Boards _selectedBoard;
+
+ public Boards SelecteadBoard
+ {
+ get { return _selectedBoard; }
+ set { _selectedBoard = value;
+ RaisePropertyChangedAuto();
+ }
+ }
+ public List<Rml> Rmls { get; set; }
+
+ private ObservableCollection<WasteStateModel.RMLDisplayModel> _RMLDisplayList;
+
+ public ObservableCollection<WasteStateModel.RMLDisplayModel> RMLDisplayList
+ {
+ get { return _RMLDisplayList; }
+ set { _RMLDisplayList = value;
+ RaisePropertyChangedAuto();}
+ }
+
+
+ private WasteStateModel.RMLDisplayModel _selectedRML;
+ public WasteStateModel.RMLDisplayModel SelectedRML
+ {
+ get { return _selectedRML; }
+ set
+ {
+ if (_selectedRML != value)
+ {
+ _selectedRML = value;
+ RaisePropertyChangedAuto();
+ }
+ }
+ }
+
+ private String _threadLoadingStatus;
+
+ public String ThreadLoadingStatus
+ {
+ get { return _threadLoadingStatus; }
+ set {
+ _threadLoadingStatus = value;
+ RaisePropertyChangedAuto();
+ }
+ }
+
+ private bool _readyForLoading;
+
+ public bool ReadyForLoading
+ {
+ get { return _readyForLoading; }
+ set { _readyForLoading = value;
+ RaisePropertyChangedAuto();}
+ }
+
+ private bool _startedDryerWinding;
+
+ public bool StartedDryerWinding
+ {
+ get { return _startedDryerWinding; }
+ set
+ {
+ _startedDryerWinding = value;
+ RaisePropertyChangedAuto();
+ }
+ }
+
+ private bool _enableHeaters;
+
+ public bool EnableHeaters
+ {
+ get { return _enableHeaters; }
+ set {
+ if(_enableHeaters != value)
+ {
+ _enableHeaters = value;
+ OnHeatersStateChanged();
+ RaisePropertyChangedAuto();
+ }
+ }
+ }
+
public RelayCommand ExportLogsCommand { get; set; }
public OpenCloseDyeingHeadCommand OpenCloseDyeingHeadCommand { get; set; }
@@ -119,6 +251,12 @@ namespace Tango.PPC.Maintenance.ViewModels
public RelayCommand ViewBitResultsCommand { get; set; }
+ public RelayCommand ResetBoardCommand { get; set; }
+
+ public RelayCommand MoveToLoadPositionCommand { get; set; }
+
+ public RelayCommand StartDryerWindingCommand { get; set; }
+
public MaintenanceViewVM()
{
Guides = new ObservableCollection<GuideBase>(GuideHelper.CreateAllGuides());
@@ -135,19 +273,30 @@ namespace Tango.PPC.Maintenance.ViewModels
StartThreadLoadingCommand = new RelayCommand(StartThreadLoadingWizard, () => MachineProvider.MachineOperator.CanPrint);
StartThreadBreakCommand = new RelayCommand(StartThreadBreakWizard, () => MachineProvider.MachineOperator.CanPrint);
ViewBitResultsCommand = new RelayCommand(ViewBitResult, () => MachineProvider.MachineOperator.IsConnected);
+
+
+ ResetBoardCommand = new RelayCommand(RunReset, () => MachineProvider.MachineOperator.IsConnected);
+
+ MoveToLoadPositionCommand = new RelayCommand( MoveToLoadPosition, () => { return MachineProvider.MachineOperator.IsConnected && MachineProvider.MachineOperator.CanPrint && false == StartedDryerWinding; });
+ StartDryerWindingCommand = new RelayCommand(StartDryerWinding, () => ReadyForLoading);
WasteStates = new List<WasteStateModel>()
{
new WasteStateModel() { Slot = CartridgeSlot.WasteMiddle, State = CartridgeState.Absent },
new WasteStateModel() { Slot = CartridgeSlot.WasteLower, State = CartridgeState.Absent }
};
+
+ SelecteadBoard = Boards.Dryer;
+ ReadyForLoading = false;
}
+
public override void OnApplicationStarted()
{
MachineProvider.MachineOperator.InkFillingStatusChanged += MachineOperator_InkFillingStatusChanged;
MachineProvider.MachineOperator.MachineStatusChanged += MachineOperator_MachineStatusChanged;
MachineProvider.MachineOperator.MachineEventsStateProvider.EventsChanged += MachineEventsStateProvider_EventsChanged;
+ MachineProvider.MachineOperator.ThreadLoadingStatusChanged += MachineOperator_ThreadLoadingStatusChanged;
DispenseCleanerLiquidCommand = new RelayCommand(DispenseCleanerLiquid, () =>
{
@@ -162,6 +311,21 @@ namespace Tango.PPC.Maintenance.ViewModels
});
RaisePropertyChanged(nameof(DispenseCleanerLiquidCommand));
+ _enableHeaters = true;
+ RaisePropertyChanged( nameof(EnableHeaters));
+ }
+
+ public async void CresteRMLS()
+ {
+ using (ObservablesContext db = ObservablesContext.CreateDefault())
+ {
+ LogManager.Log("Loading RMLS...");
+ Rmls = (await new RmlsCollectionBuilder(db).SetAll().WithActiveParametersGroup().ForHeadType(MachineProvider.Machine.MachineHeadType).ForSite(MachineProvider.Machine.SiteGuid).BuildAsync()).OrderBy(x => x.FinalName).ToList();
+
+ //Rmls = (await new RmlsCollectionBuilder(db).SetAll().WithActiveParametersGroup().BuildAsync()).OrderBy(x => x.FinalName).ToList();
+ RMLDisplayList = Rmls.Select(p => new WasteStateModel.RMLDisplayModel { Guid = p.Guid, Name = p.Name, FinalName = p.FinalName }).OrderBy(x => x.FinalName).ToObservableCollection();
+ SelectedRML = RMLDisplayList.FirstOrDefault();
+ }
}
public override void OnApplicationReady()
@@ -173,6 +337,9 @@ namespace Tango.PPC.Maintenance.ViewModels
Max = MachineOperator.MAX_MIDTANK_LITERS,
IDSPack = x,
}).OrderBy(y => y.IDSPack.LiquidType.Code).ToList();
+
+ if (Rmls == null)
+ CresteRMLS();
}
private void MachineEventsStateProvider_EventsChanged(object sender, IEnumerable<BL.Entities.MachinesEvent> e)
@@ -208,6 +375,60 @@ namespace Tango.PPC.Maintenance.ViewModels
}
}
+ private void MachineOperator_ThreadLoadingStatusChanged(object sender, StartThreadLoadingResponse e)
+ {
+ if( e != null)
+ {
+ var State = e.State;
+ switch (e.State)
+ {
+ case ThreadLoadingState.Preparing:
+ {
+ ThreadLoadingStatus = "Moving to load position";
+ break;
+ }
+ case ThreadLoadingState.ReadyForLoading:
+ {
+ ReadyForLoading = true;
+ ThreadLoadingStatus = "Ready for thread loading.";
+ break;
+ }
+ case ThreadLoadingState.PreparationError:
+ {
+ ThreadLoadingStatus = "Failed to move. Please inspect and try again.";
+ break;
+ }
+ case ThreadLoadingState.Finalizing:
+ {
+ ThreadLoadingStatus = "Thread loading is running.";
+ ReadyForLoading = false;
+ break;
+ }
+ case ThreadLoadingState.FinalizationError:
+ {
+ ThreadLoadingStatus = $"Thread loading failed.{e.ErrorReason}";
+ ReadyForLoading = false;
+ StartedDryerWinding = false;
+ break;
+ }
+ case ThreadLoadingState.Completed:
+ {
+ ReadyForLoading = false;
+ StartedDryerWinding = false;
+ ThreadLoadingStatus = "Thread loading completed successfully.";
+ break;
+ }
+ default:
+ {
+ ThreadLoadingStatus = "";
+ StartedDryerWinding = false;
+ return;
+ }
+
+ };
+ }
+ }
+
public async void OpenGuide(GuideBase guide)
{
await NavigationManager.NavigateWithObject<MaintenanceModule, GeneralGuideView, GuideBase>(guide);
@@ -385,5 +606,84 @@ namespace Tango.PPC.Maintenance.ViewModels
{
await BitManager.ShowBitResultsDialog();
}
+
+ private async void RunReset()
+ {
+ try
+ {
+ await MachineProvider.MachineOperator.ResetCard(SelecteadBoard.ToInt32());
+ await NotificationProvider.ShowInfo($"The {SelecteadBoard.ToDescription()} was reset successfully!");
+ }
+ catch (Exception ex)
+ {
+ await NotificationProvider.ShowError($"We could not reset the {SelecteadBoard.ToDescription()}.\n{ex.FlattenMessage()}");
+ }
+ }
+
+ private void MoveToLoadPosition(object obj)
+ {
+ MachineProvider.MachineOperator.StartThreadLoading();
+ }
+
+ private void StartDryerWinding(object obj)
+ {
+ try
+ {
+ var rml = Rmls.Where( x=> x.Guid == SelectedRML.Guid).FirstOrDefault();
+ if(rml != null && rml.GetActiveProcessGroup()!= null)
+ {
+ var processParametersTable = rml.GetActiveProcessGroup().ProcessParametersTables.FirstOrDefault();
+ if(processParametersTable != null)
+ {
+ StartedDryerWinding = true;
+ MachineProvider.MachineOperator.ContinueThreadLoading(processParametersTable.Clone());
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ StartedDryerWinding = false;
+ }
+ }
+
+ private async void OnHeatersStateChanged()
+ {
+ if(EnableHeaters == false)//turn off heaters
+ {
+ try
+ {
+ await MachineProvider.MachineOperator.UploadProcessParameters(new ProcessParametersTable());
+ }
+ catch (Exception ex)
+ {
+ LogManager.Log(ex, "Error resetting process parameters.");
+ }
+ }
+ else {
+ try
+ {
+ var currentProcessParameters = MachineProvider.MachineOperator.CurrentProcessParameters;
+ if (currentProcessParameters == null || currentProcessParameters.Guid == null)
+ {
+ var settings = SettingsManager.Default.GetOrCreate<MaitenanceModuleSettings>();
+
+ var defRmlGuid = Settings.DefaultRmlGuid ?? Rmls.First().Guid;
+ var rml = Rmls.Where(x => x.Guid == defRmlGuid).FirstOrDefault();
+ if (rml != null && rml.GetActiveProcessGroup() != null)
+ {
+ currentProcessParameters = rml.GetActiveProcessGroup().ProcessParametersTables.FirstOrDefault();
+ }
+ }
+ if (currentProcessParameters != null)
+ {
+ await MachineProvider.MachineOperator.UploadProcessParameters(currentProcessParameters);
+ }
+ }
+ catch (Exception ex)
+ {
+ LogManager.Log(ex, "Error upload process parameters.");
+ }
+ }
+ }
}
}
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Views/EurekaMaintenanceView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Views/EurekaMaintenanceView.xaml
new file mode 100644
index 000000000..faef8be1a
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Views/EurekaMaintenanceView.xaml
@@ -0,0 +1,284 @@
+<UserControl x:Class="Tango.PPC.Maintenance.Views.EurekaMaintenanceView"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:vm="clr-namespace:Tango.PPC.Maintenance.ViewModels"
+ xmlns:global="clr-namespace:Tango.PPC.Maintenance"
+ xmlns:ifs="clr-namespace:Tango.PMR.IFS;assembly=Tango.PMR"
+ xmlns:local="clr-namespace:Tango.PPC.Maintenance.Views"
+ xmlns:localConverters="clr-namespace:Tango.PPC.Maintenance.Converters"
+ xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI"
+ xmlns:localControls="clr-namespace:Tango.PPC.Maintenance.Controls"
+ xmlns:touch="clr-namespace:Tango.Touch.Controls;assembly=Tango.Touch"
+ mc:Ignorable="d"
+ d:DesignHeight="1800" d:DesignWidth="800" d:DataContext="{d:DesignInstance Type=vm:MaintenanceViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.MaintenanceViewVM}">
+ <UserControl.Resources>
+
+ <converters:EnumToDescriptionConverter x:Key="EnumToDescriptionConverter" />
+ <localConverters:StringToFirstLetterConverter x:Key="StringToFirstLetterConverter" />
+ <localConverters:MidTankLevelToElementHeightConverter x:Key="MidTankLevelToElementHeightConverter" />
+ <localConverters:LiquidTypeToBrushConverter x:Key="LiquidTypeToBrushConverter" />
+ <localConverters:LiquidTypeToShortNameConverter x:Key="LiquidTypeToShortNameConverter"/>
+
+ <Style TargetType="FrameworkElement" x:Key="Level1Container">
+ <Setter Property="Margin" Value="20 15 60 15"></Setter>
+ </Style>
+ <Style TargetType="FrameworkElement" x:Key="Level2Container">
+ <Setter Property="Margin" Value="80 30 60 0"></Setter>
+ </Style>
+ <Style TargetType="FrameworkElement" x:Key="Level2ContainerExtraMargin">
+ <Setter Property="Margin" Value="80 40 60 0"></Setter>
+ </Style>
+
+ <DataTemplate x:Key="LiquidBox">
+ <DockPanel>
+ <TextBlock DockPanel.Dock="Top" Text="{Binding IDSPack.LiquidType.ShortName}" HorizontalAlignment="Center"></TextBlock>
+ <Grid MaxWidth="20" Margin="1 0">
+ <touch:TouchIcon Icon="MapMarkerSolid" Width="20" Height="20" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0 0 0 10" Foreground ="{Binding Path=IDSPack.LiquidType, Converter={StaticResource LiquidTypeToBrushConverter}}">
+ <touch:TouchIcon.Style>
+ <Style TargetType="touch:TouchIcon">
+ <Setter Property="Visibility" Value="Hidden"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding IsLow}" Value="True">
+ <Setter Property="Visibility" Value="Visible"></Setter>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding IsEmpty}" Value="True">
+ <DataTrigger.EnterActions>
+ <BeginStoryboard Name="blinkDrop">
+ <Storyboard>
+ <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Duration="00:00:01" RepeatBehavior="Forever">
+ <DiscreteDoubleKeyFrame KeyTime="00:00:00" Value="1" />
+ <DiscreteDoubleKeyFrame KeyTime="00:00:0.5" Value="0" />
+ </DoubleAnimationUsingKeyFrames>
+ </Storyboard>
+ </BeginStoryboard>
+ </DataTrigger.EnterActions>
+ <DataTrigger.ExitActions>
+ <RemoveStoryboard BeginStoryboardName="blinkDrop" />
+ </DataTrigger.ExitActions>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </touch:TouchIcon.Style>
+ </touch:TouchIcon>
+ <Border BorderThickness="1" BorderBrush="{StaticResource TangoLightBorderBrush}" CornerRadius="3" ClipToBounds="True" x:Name="pathBorder">
+ <Canvas Width="30" >
+ <Path Panel.ZIndex="1" VerticalAlignment="Bottom" ClipToBounds="True" MinHeight="2" Data="M0,0 C2,0 8.9,-1.1705073 11.3,-4.6 14.5,-7.7 15.5,-8 18.7,-10.8 21.7,-13.16 23.3,-14.5 28,-15.6 28,-13.7 28,80 28,100 L0,100 z" Height="90" Width="29" Stretch="Fill"
+ Canvas.Left="0" Fill="{Binding Path=IDSPack.LiquidType, Converter={StaticResource LiquidTypeToBrushConverter}}" Margin="0 -14 0 0" >
+
+ <Path.Style>
+ <Style>
+ <Setter Property="Canvas.Top" >
+ <Setter.Value>
+ <MultiBinding Converter="{StaticResource MidTankLevelToElementHeightConverter}">
+ <Binding ElementName="pathBorder" Path="ActualHeight" />
+ <Binding Path="Level" />
+ </MultiBinding>
+ </Setter.Value>
+ </Setter>
+ </Style>
+ </Path.Style>
+ </Path>
+ </Canvas>
+ </Border>
+ </Grid>
+ </DockPanel>
+ </DataTemplate>
+ </UserControl.Resources>
+
+ <Grid Background="{StaticResource TangoMidBackgroundBrush}" IsEnabled="{Binding IsFree}">
+ <Grid.RowDefinitions>
+ <RowDefinition Height="Auto"/>
+ <RowDefinition Height="1*"/>
+ </Grid.RowDefinitions>
+
+ <!--<Border Padding="20" Background="{StaticResource TangoPrimaryBackgroundBrush}" BorderThickness="0 0 0 1" BorderBrush="{StaticResource TangoDividerBrush}">
+ <Border.Effect>
+ <DropShadowEffect Color="Silver" ShadowDepth="0" BlurRadius="20" Opacity="1" />
+ </Border.Effect>
+ <TextBlock VerticalAlignment="Center" FontSize="{StaticResource TangoHeaderFontSize}" FontWeight="SemiBold">Maintenance</TextBlock>
+ </Border>-->
+
+ <Grid Grid.Row="1">
+ <touch:LightTouchScrollViewer>
+ <StackPanel Margin="10 20 10 0">
+ <!--ACTIONS-->
+ <touch:TouchDropShadowBorder Margin="0 0 0 0" Padding="0 0 0 0" MinHeight="330">
+ <StackPanel>
+ <StackPanel Orientation="Horizontal" VerticalAlignment="Center" Style="{StaticResource Level1Container}">
+ <Image Source="../Images/action.png" />
+ <TextBlock FontWeight="Medium" Margin="20 0 0 0" VerticalAlignment="Center" FontSize="{StaticResource TangoExpanderHeaderFontSize}">Actions</TextBlock>
+ </StackPanel>
+ <Grid >
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="1*"/>
+
+ </Grid.ColumnDefinitions>
+ <Grid >
+ <UniformGrid Columns="2" Margin="80 0 90 20">
+ <touch:TouchButton Margin="20" CornerRadius="25" Height="50" FontSize="18" Style="{StaticResource TangoHollowButton}" Command="{Binding HeadCleaningCommand}">RUN HEAD CLEANING</touch:TouchButton>
+
+ <touch:TouchButton Margin="20" CornerRadius="25" Height="50" FontSize="18" Style="{StaticResource TangoHollowButton}" Command="{Binding ViewBitResultsCommand}">VIEW BIT RESULTS</touch:TouchButton>
+
+ <touch:TouchButton Margin="20" CornerRadius="25" Height="50" FontSize="18" Style="{StaticResource TangoHollowButton}" Command="{Binding DispenseCleanerLiquidCommand}">DISPENSE CLEANING LIQUID</touch:TouchButton>
+ <touch:TouchButton Margin="20" CornerRadius="25" Height="50" FontSize="18" Style="{StaticResource TangoHollowButton}" Command="{Binding ExportLogsCommand}" Visibility="{Binding ApplicationManager.IsInTechnicianMode,Converter={StaticResource BooleanToVisibilityConverter}}">EXPORT SYSTEM LOGS</touch:TouchButton>
+ </UniformGrid>
+
+ </Grid>
+
+ </Grid>
+
+ <touch:TouchDropShadowBorder Margin="0 0 0 0" Padding="0" MinHeight="216">
+ <StackPanel Orientation="Vertical">
+ <StackPanel Orientation="Horizontal" VerticalAlignment="Center" Margin="30 0 30 0" Height="116">
+ <TextBlock VerticalAlignment="Center" Text="Reset Specific Board:" FontSize="{StaticResource TangoExpanderHeaderFontSize}" Width="210"></TextBlock>
+ <Border Margin="55 0 0 0" x:Name="emborder" BorderThickness="1 1 1 1" Height="50" CornerRadius="25" BorderBrush="{StaticResource TangoMidAccentBrush}">
+ <touch:TouchComboBox Margin="20 0 10 0" ItemsSource="{Binding ListBoards}" SelectedItem="{Binding SelecteadBoard,Mode=TwoWay}" Focusable="False" KeyboardNavigation.TabNavigation ="None" Width="260" DisplayMemberPath="">
+ <touch:TouchComboBox.ItemTemplate>
+ <DataTemplate>
+ <TextBlock Margin="20 10 10 10" TextTrimming="CharacterEllipsis" FontSize="{StaticResource TangoDialogFontSize}" Text="{Binding Converter={StaticResource EnumToDescriptionConverter}}"/>
+
+ </DataTemplate>
+ </touch:TouchComboBox.ItemTemplate>
+ <touch:TouchComboBox.SelectedItemTemplate>
+ <DataTemplate>
+ <TextBlock Margin="0 0 0 5" FontSize="{StaticResource TangoDialogFontSize}" Text="{Binding Converter={StaticResource EnumToDescriptionConverter}}" VerticalAlignment="Center" Height="36"></TextBlock>
+ </DataTemplate>
+ </touch:TouchComboBox.SelectedItemTemplate>
+ </touch:TouchComboBox>
+ </Border>
+ <touch:TouchButton Margin="30 0 0 0" Width="120" CornerRadius="25" Height="50" FontSize="18" Style="{StaticResource TangoHollowButton}" Command="{Binding ResetBoardCommand}">RUN</touch:TouchButton>
+
+ </StackPanel>
+ <StackPanel Orientation="Horizontal" Margin="30 0 30 0" Height="100">
+ <TextBlock VerticalAlignment="Center" Text="Machine Heaters:" FontSize="{StaticResource TangoExpanderHeaderFontSize}" Width="210"></TextBlock>
+ <touch:TouchToggleSlider IsChecked="{Binding EnableHeaters}" Margin="55 0 0 0" HorizontalAlignment="Right" Width="90">
+ <touch:TouchToggleSlider.Style>
+ <Style TargetType="touch:TouchToggleSlider" BasedOn="{StaticResource TangoToggleButtonGrayAccent}">
+ <Setter Property="IsEnabled" Value="False" />
+ <Setter Property="touch:TouchToggleSlider.BorderBrush" Value="{StaticResource TangoGrayBrush}" />
+ <Setter Property="touch:TouchToggleSlider.ThumbBrush" Value="{StaticResource TangoGrayBrush}" />
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding MachineProvider.MachineOperator.CanPrint}" Value="True" >
+ <Setter Property="touch:TouchToggleSlider.IsEnabled" Value="True" />
+ <Setter Property="touch:TouchToggleSlider.BorderBrush" Value="{StaticResource TangoPrimaryAccentBrush}" />
+ <Setter Property="touch:TouchToggleSlider.ThumbBrush" Value="{StaticResource TangoPrimaryAccentBrush}" />
+ </DataTrigger>
+ <DataTrigger Binding="{Binding MachineProvider.MachineOperator.Status}" Value="9" >
+ <Setter Property="IsEnabled" Value="true" />
+ <Setter Property="touch:TouchToggleSlider.BorderBrush" Value="{StaticResource TangoPrimaryAccentBrush}" />
+ <Setter Property="touch:TouchToggleSlider.ThumbBrush" Value="{StaticResource TangoPrimaryAccentBrush}" />
+ </DataTrigger>
+ <DataTrigger Binding="{Binding EnableHeaters}" Value="False" >
+ <Setter Property="IsEnabled" Value="true" />
+ <Setter Property="touch:TouchToggleSlider.BorderBrush" Value="{StaticResource TangoPrimaryAccentBrush}" />
+ <Setter Property="touch:TouchToggleSlider.ThumbBrush" Value="{StaticResource TangoPrimaryAccentBrush}" />
+ </DataTrigger>
+ </Style.Triggers>
+
+ </Style>
+ </touch:TouchToggleSlider.Style>
+ </touch:TouchToggleSlider>
+ </StackPanel>
+ </StackPanel>
+
+ </touch:TouchDropShadowBorder>
+ </StackPanel>
+ </touch:TouchDropShadowBorder>
+ <!--THREAD LOADING-->
+ <touch:TouchDropShadowBorder Margin="0 10 0 0" Padding="0 0 0 50" MinHeight="330">
+ <StackPanel>
+ <StackPanel Orientation="Horizontal" VerticalAlignment="Center" Style="{StaticResource Level1Container}">
+ <Image Source="../Images/thread_loading.png" Width="48" RenderOptions.BitmapScalingMode="Fant" />
+ <TextBlock FontWeight="Medium" Margin="20 0 0 0" VerticalAlignment="Center" FontSize="{StaticResource TangoExpanderHeaderFontSize}">Thread Loading</TextBlock>
+ </StackPanel>
+
+ <StackPanel Margin="80 40 30 0">
+ <UniformGrid Columns="1" Margin="0" HorizontalAlignment="Left">
+ <DockPanel HorizontalAlignment="Stretch" >
+ <TextBlock HorizontalAlignment="Left" VerticalAlignment="Center" Text="Thread" FontWeight="Medium" FontSize="{StaticResource TangoDialogFontSize}" Width="110"/>
+ <Border Margin="20 0 0 0" BorderThickness="1" Height="44" CornerRadius="22" BorderBrush="{StaticResource TangoMidAccentBrush}">
+ <touch:TouchComboBox Margin="20 0 10 10" ItemsSource="{Binding RMLDisplayList}" SelectedItem="{Binding SelectedRML,Mode=TwoWay}" Focusable="False" KeyboardNavigation.TabNavigation ="None">
+ <touch:TouchComboBox.ItemTemplate>
+ <DataTemplate>
+ <TextBlock Margin="20 10 10 10" TextTrimming="CharacterEllipsis" FontSize="{StaticResource TangoDialogFontSize}" Text="{Binding FinalName}">
+
+ </TextBlock>
+ </DataTemplate>
+ </touch:TouchComboBox.ItemTemplate>
+ <touch:TouchComboBox.SelectedItemTemplate>
+ <DataTemplate>
+ <TextBlock Margin="0 0 0 0" FontSize="{StaticResource TangoDialogFontSize}" Text="{Binding FinalName}" VerticalAlignment="Center" Height="36" ></TextBlock>
+ </DataTemplate>
+ </touch:TouchComboBox.SelectedItemTemplate>
+ </touch:TouchComboBox>
+ </Border>
+ </DockPanel>
+ <StackPanel Orientation="Horizontal">
+ <touch:TouchButton Width="280" HorizontalAlignment="Left" Margin="20" CornerRadius="25" Height="50" FontSize="18" Style="{StaticResource TangoHollowButton}" Command="{Binding MoveToLoadPositionCommand}">MOVE TO LOAD POSITION</touch:TouchButton>
+
+ <TextBlock Width="380" VerticalAlignment="Center" Margin="10 0 0 0" TextAlignment="Left" FontSize="{StaticResource TangoSmallFontSize}" FontWeight="Normal" Text="Press when the Thread Loading Jig is installed on the Thread Traveler, and is holding the incoming thread." TextWrapping="Wrap"/>
+
+ </StackPanel>
+ <StackPanel Orientation="Horizontal">
+ <touch:TouchButton Width="280" HorizontalAlignment="Left" Margin="20" CornerRadius="25" Height="50" FontSize="18" Style="{StaticResource TangoHollowButton}" Command="{Binding StartDryerWindingCommand}">START DRYER WINDING</touch:TouchButton>
+ <TextBlock Width="380" VerticalAlignment="Center" Margin="10 0 0 0" TextAlignment="Left" FontSize="{StaticResource TangoSmallFontSize}" FontWeight="Normal"
+ Text="Press only when:&#10;1. The Thread Traveler reached the dryer load position &#10;2. The Thread Loading Jig is installed on the Dryer &#10;3. The Loading Comb is released"/>
+
+ </StackPanel>
+ <DockPanel HorizontalAlignment="Stretch" LastChildFill="True">
+ <Border HorizontalAlignment="Stretch" Margin="10 20 0 10" CornerRadius="5" BorderBrush="{StaticResource TangoPrimaryAccentBrush}" BorderThickness="0.8">
+ <TextBlock VerticalAlignment="Center" Margin="10 0 0 0" TextAlignment="Left" FontStyle="Italic" FontSize="18" FontWeight="Light" Text="{Binding ThreadLoadingStatus}" TextWrapping="Wrap" />
+ </Border>
+ </DockPanel>
+ </UniformGrid>
+ </StackPanel>
+ </StackPanel>
+ </touch:TouchDropShadowBorder>
+
+ <!--GUIDES-->
+ <!--<touch:TouchDropShadowBorder Margin="0 20 0 0" Padding="0 0 0 50">
+ <StackPanel>
+ <StackPanel Orientation="Horizontal" VerticalAlignment="Center" Style="{StaticResource Level1Container}">
+ <Image Source="../Images/guides.png" />
+ <TextBlock FontWeight="Medium" Margin="20 0 0 0" VerticalAlignment="Center" FontSize="{StaticResource TangoExpanderHeaderFontSize}">Guides</TextBlock>
+ </StackPanel>
+
+ <StackPanel Margin="65 10 0 0">
+ <ItemsControl ItemsSource="{Binding Guides}">
+ <ItemsControl.ItemsPanel>
+ <ItemsPanelTemplate>
+ <UniformGrid Columns="2" IsItemsHost="True" />
+ </ItemsPanelTemplate>
+ </ItemsControl.ItemsPanel>
+ <ItemsControl.ItemTemplate>
+ <DataTemplate>
+ <touch:TouchButton Command="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.OpenGuideCommand}" CommandParameter="{Binding}" Padding="20" FontSize="{StaticResource TangoTitleFontSize}" Style="{StaticResource TangoLinkButton}" HorizontalAlignment="Left">
+ <TextBlock Text="{Binding Name}"></TextBlock>
+ </touch:TouchButton>
+ </DataTemplate>
+ </ItemsControl.ItemTemplate>
+ </ItemsControl>
+ </StackPanel>
+ </StackPanel>
+ </touch:TouchDropShadowBorder>-->
+
+ <!--JOB RUNS-->
+ <!--<StackPanel Margin="0 20 0 20" TextElement.FontSize="{StaticResource TangoTitleFontSize}" TextElement.Foreground="{StaticResource TangoGrayTextBrush}">
+ <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
+ <TextBlock FontWeight="SemiBold">Total Dyeing Time:</TextBlock>
+ <TextBlock Margin="10 0 0 0" Text="{Binding TotalDyeTime,Mode=OneWay,FallbackValue=0}"></TextBlock>
+ </StackPanel>
+
+ <StackPanel Orientation="Horizontal" Margin="0 10 0 0" HorizontalAlignment="Center">
+ <TextBlock FontWeight="SemiBold">Total Dyed Length:</TextBlock>
+ <TextBlock Margin="10 0 0 0" Text="{Binding TotalDyeMeters,Mode=OneWay,FallbackValue=0}"></TextBlock>
+ </StackPanel>
+ </StackPanel>-->
+
+ </StackPanel>
+ </touch:LightTouchScrollViewer>
+ </Grid>
+ </Grid>
+</UserControl>
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Views/EurekaMaintenanceView.xaml.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Views/EurekaMaintenanceView.xaml.cs
new file mode 100644
index 000000000..8161f1fcb
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Views/EurekaMaintenanceView.xaml.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace Tango.PPC.Maintenance.Views
+{
+ /// <summary>
+ /// Interaction logic for EurikaMaintenanceView.xaml
+ /// </summary>
+ public partial class EurekaMaintenanceView : UserControl
+ {
+ public EurekaMaintenanceView()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Views/MainView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Views/MainView.xaml
index be6161952..15c01f4e0 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Views/MainView.xaml
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Views/MainView.xaml
@@ -14,7 +14,8 @@
<Grid>
<controls:NavigationControl TransitionType="Slide" TransitionDuration="00:00:0.2" KeepElementsAttached="True">
- <views:MaintenanceView/>
+ <views:MaintenanceView Visibility="{Binding BuildProvider.IsEureka,Converter={StaticResource BooleanToVisibilityInverseConverter}}"/>
+ <views:EurekaMaintenanceView Visibility="{Binding BuildProvider.IsEureka,Converter={StaticResource BooleanToVisibilityConverter}}"/>
<views:GeneralGuideView/>
</controls:NavigationControl>
</Grid>
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Views/MaintenanceView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Views/MaintenanceView.xaml
index a77ec5901..6b6c86843 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Views/MaintenanceView.xaml
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/Views/MaintenanceView.xaml
@@ -106,7 +106,7 @@
<StackPanel Margin="10 60 10 0">
<!--STATUS-->
- <touch:TouchDropShadowBorder Padding="0 0 0 50">
+ <touch:TouchDropShadowBorder Padding="0 0 0 50" Visibility="{Binding BuildProvider.BuildType,Converter={StaticResource BuildTypeToVisibilityConverter},ConverterParameter='TS1800'}">
<StackPanel>
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" Style="{StaticResource Level1Container}">
<Image Source="../Images/status.png" />
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/Tango.PPC.Storage.csproj b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/Tango.PPC.Storage.csproj
index e541c472b..3ed0be501 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/Tango.PPC.Storage.csproj
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/Tango.PPC.Storage.csproj
@@ -40,6 +40,7 @@
<Reference Include="System" />
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Data" />
+ <Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Core" />
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/ViewModels/MainViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/ViewModels/MainViewVM.cs
index 9b22fcdb5..ed7784b2b 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/ViewModels/MainViewVM.cs
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/ViewModels/MainViewVM.cs
@@ -1,9 +1,11 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
+using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using System.Windows.Forms;
using Tango.Core.Commands;
using Tango.Explorer;
using Tango.PPC.Common;
@@ -78,6 +80,8 @@ namespace Tango.PPC.Storage.ViewModels
public RelayCommand OpenCommand { get; set; }
+ public RelayCommand OpenDirectoryCommand { get; set; }
+
public MainViewVM()
{
SelectedItems = new ObservableCollection<ExplorerFileItem>();
@@ -85,6 +89,7 @@ namespace Tango.PPC.Storage.ViewModels
SaveCommand = new RelayCommand(OnSaveCommand, (x) => !String.IsNullOrWhiteSpace(FileName) || Request.Intent == StorageNavigationIntent.SaveFiles);
Request = new StorageNavigationRequest() { Intent = StorageNavigationIntent.LoadFiles };
OpenCommand = new RelayCommand(OnOpenCommand, () => Request.Intent == StorageNavigationIntent.LoadFiles);
+ OpenDirectoryCommand = new RelayCommand(OnOpenFileDialogCommand);
}
public override void OnApplicationStarted()
@@ -108,10 +113,27 @@ namespace Tango.PPC.Storage.ViewModels
_allow_exit = false;
_selectedItem = null;
- if (StorageProvider.IsConnected && StorageProvider.Drive != null)
+ if (BuildProvider.IsEureka)
+ {
+ if (Settings.StorageRootPath == null)
+ {
+ Settings.StorageRootPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "Twine", "Storage");
+ Directory.CreateDirectory(Settings.StorageRootPath);
+ }
+ }
+
+ if ((StorageProvider.IsConnected && StorageProvider.Drive != null) || Settings.StorageRootPath != null)
{
CurrentPath = null;
- CurrentPath = StorageProvider.Drive.RootDirectory.FullName;
+
+ if (Settings.StorageRootPath != null && Directory.Exists(Settings.StorageRootPath))
+ {
+ CurrentPath = Settings.StorageRootPath;
+ }
+ else
+ {
+ CurrentPath = StorageProvider.Drive.RootDirectory.FullName;
+ }
if (Request.Intent == StorageNavigationIntent.SaveFile)
{
@@ -143,13 +165,16 @@ namespace Tango.PPC.Storage.ViewModels
/// <param name="e">The drive info.</param>
private void StorageProvider_StorageConnected(object sender, System.IO.DriveInfo e)
{
- InvokeUI(async () =>
+ if (!BuildProvider.IsEureka)
{
- if (await NotificationProvider.ShowQuestion("Storage device inserted. Do you want to browse?"))
+ InvokeUI(async () =>
{
- await NavigationManager.NavigateTo<StorageModule>();
- }
- });
+ if (await NotificationProvider.ShowQuestion("Storage device inserted. Do you want to browse?"))
+ {
+ await NavigationManager.NavigateTo<StorageModule>();
+ }
+ });
+ }
}
/// <summary>
@@ -159,21 +184,26 @@ namespace Tango.PPC.Storage.ViewModels
/// <param name="e">The drive info.</param>
private void StorageProvider_StorageDisconnected(object sender, System.IO.DriveInfo e)
{
- InvokeUI(async () =>
+ if (!BuildProvider.IsEureka)
{
- if (IsVisible)
+ InvokeUI(async () =>
{
- _allow_exit = true;
- await NotificationProvider.ShowError("Storage device disconnected.");
- await NavigationManager.NavigateBack();
- CurrentPath = null;
- }
- });
+ if (IsVisible)
+ {
+ _allow_exit = true;
+ await NotificationProvider.ShowError("Storage device disconnected.");
+ await NavigationManager.NavigateBack();
+ CurrentPath = null;
+ }
+ });
+ }
}
public override Task<bool> OnNavigateBackRequest()
{
- if (_allow_exit || CurrentPath == StorageProvider.Drive.RootDirectory.FullName)
+ String path = Settings.StorageRootPath != null ? Settings.StorageRootPath : StorageProvider.Drive.RootDirectory.FullName;
+
+ if (_allow_exit || CurrentPath == path)
{
return Task.FromResult(true);
}
@@ -243,5 +273,29 @@ namespace Tango.PPC.Storage.ViewModels
RaisePropertyChanged(nameof(FileName));
}
}
+
+ private void OnOpenFileDialogCommand()
+ {
+ if(Directory.Exists(CurrentPath) )
+ {
+ Microsoft.Win32.OpenFileDialog openFileDialog = new Microsoft.Win32.OpenFileDialog
+ {
+ InitialDirectory = CurrentPath,
+ Title = "Browse Job Files",
+
+ CheckFileExists = true,
+ CheckPathExists = true,
+
+ DefaultExt = "job",
+ Filter = "job files (*.job)|*.job",
+ ReadOnlyChecked = true,
+ ShowReadOnly = true
+ };
+ if (openFileDialog.ShowDialog().Value)
+ {
+ StorageProvider.SubmitFileSelection(new List<ExplorerFileItem>() { ExplorerFileItem.LoadFromPath(openFileDialog.FileName) });
+ }
+ }
+ }
}
}
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/Views/MainView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/Views/MainView.xaml
index c57735a7b..ff1183495 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/Views/MainView.xaml
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Storage/Views/MainView.xaml
@@ -28,7 +28,12 @@
<Border.Effect>
<DropShadowEffect Color="Silver" ShadowDepth="0" BlurRadius="20" Opacity="1" />
</Border.Effect>
- <TextBlock VerticalAlignment="Center" FontSize="{StaticResource TangoHeaderFontSize}" FontWeight="SemiBold">Storage</TextBlock>
+ <StackPanel Orientation="Horizontal">
+ <TextBlock VerticalAlignment="Center" FontSize="{StaticResource TangoHeaderFontSize}" FontWeight="SemiBold">Storage</TextBlock>
+ <touch:TouchButton Command="{Binding OpenDirectoryCommand}" Style="{StaticResource TangoLinkButton}">
+ <TextBlock Margin="20 1 0 0" VerticalAlignment="Center" FontSize="{StaticResource TangoDefaultFontSize}" Text="{Binding CurrentPath}" Foreground="{StaticResource TangoPrimaryAccentBrush}" TextWrapping="Wrap"></TextBlock>
+ </touch:TouchButton>
+ </StackPanel>
</Border>
<Grid Margin="10" Grid.Row="1">
<DockPanel>
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Technician/ViewModels/SystemViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Technician/ViewModels/SystemViewVM.cs
index 452907366..e3f695514 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Technician/ViewModels/SystemViewVM.cs
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Technician/ViewModels/SystemViewVM.cs
@@ -15,6 +15,7 @@ using Tango.PPC.Common.OS;
using Tango.Settings;
using System.Data.Entity;
using Tango.PPC.Common.UWF;
+using Tango.BL.Entities;
namespace Tango.PPC.Technician.ViewModels
{
@@ -74,6 +75,14 @@ namespace Tango.PPC.Technician.ViewModels
set { _totalDyeMeters = value; RaisePropertyChangedAuto(); }
}
+ public Site CurrentSite { get; set; }
+
+ public String SiteName
+ {
+ get { return CurrentSite == null? "" : CurrentSite.Name; }
+ }
+
+
public RelayCommand ResetDeviceCommand { get; set; }
public RelayCommand RestartCommand { get; set; }
@@ -181,6 +190,8 @@ namespace Tango.PPC.Technician.ViewModels
_statsTimer.Interval = 2000;
_statsTimer.Elapsed += _statsTimer_Elapsed;
_statsTimer.Start();
+
+ InitSite();
}
private void _statsTimer_Elapsed(object sender, ElapsedEventArgs e)
@@ -299,5 +310,22 @@ namespace Tango.PPC.Technician.ViewModels
TotalDyeMeters = "error!";
}
}
+
+ public async void InitSite()
+ {
+ if (CurrentSite == null)
+ {
+ var machine = MachineProvider.Machine;
+ if (machine != null && !String.IsNullOrEmpty(machine.SiteGuid))
+ {
+ using (ObservablesContext db = ObservablesContext.CreateDefault())
+ {
+ var site = (await db.Sites.Where(x => x.Guid == machine.SiteGuid).ToListAsync()).FirstOrDefault();
+ CurrentSite = site;
+ RaisePropertyChanged( nameof(SiteName));
+ }
+ }
+ }
+ }
}
}
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Technician/Views/SystemView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Technician/Views/SystemView.xaml
index fc0f734ff..8ef29bb7e 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Technician/Views/SystemView.xaml
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Technician/Views/SystemView.xaml
@@ -110,7 +110,7 @@
</touch:TouchButton>
</StackPanel>
- <FlowDocumentScrollViewer VerticalScrollBarVisibility="Disabled">
+ <FlowDocumentScrollViewer VerticalScrollBarVisibility="Disabled" Visibility="{Binding BuildProvider.IsEureka, Converter={StaticResource BooleanToVisibilityInverseConverter}}">
<FlowDocument>
<Table CellSpacing="0" FontFamily="{StaticResource TangoFlexoFontFamily}">
<Table.Resources>
@@ -174,7 +174,7 @@
</TableCell>
</TableRow>
- <TableRow>
+ <TableRow >
<TableCell>
<Paragraph>
<TextBlock>FPGA 1:</TextBlock>
@@ -320,6 +320,188 @@
</Table>
</FlowDocument>
</FlowDocumentScrollViewer>
+ <FlowDocumentScrollViewer VerticalScrollBarVisibility="Disabled" Visibility="{Binding BuildProvider.IsEureka, Converter={StaticResource BooleanToVisibilityConverter}}">
+ <FlowDocument>
+ <Table CellSpacing="0" FontFamily="{StaticResource TangoFlexoFontFamily}">
+ <Table.Resources>
+ <Style TargetType="{x:Type TableRowGroup}">
+ <Setter Property="FontSize" Value="{StaticResource TangoDefaultFontSize}"/>
+ </Style>
+
+ <Style TargetType="TableCell">
+ <Setter Property="BorderThickness" Value="0 0 0 1"></Setter>
+ <Setter Property="BorderBrush" Value="{StaticResource TangoGrayBrush}"></Setter>
+ <Setter Property="Padding" Value="5"></Setter>
+ </Style>
+ </Table.Resources>
+ <Table.Columns>
+ <TableColumn Width="160" />
+ <TableColumn />
+ <TableColumn />
+ </Table.Columns>
+
+ <TableRowGroup>
+
+ <TableRow>
+ <TableCell>
+ <Paragraph>
+ <TextBlock>Environment:</TextBlock>
+ </Paragraph>
+ </TableCell>
+
+ <TableCell>
+ <Paragraph>
+ <TextBlock Text="{Binding Settings.DeploymentSlot,Converter={StaticResource EnumToDescriptionConverter},Mode=OneWay,TargetNullValue='N/A',FallbackValue='N/A'}"/>
+ </Paragraph>
+ </TableCell>
+ </TableRow>
+
+ <TableRow>
+ <TableCell>
+ <Paragraph>
+ <TextBlock>Application Version:</TextBlock>
+ </Paragraph>
+ </TableCell>
+
+ <TableCell>
+ <Paragraph>
+ <TextBlock Text="{Binding ApplicationManager.VersionAndTag,Mode=OneWay,TargetNullValue='N/A',FallbackValue='N/A'}"/>
+ </Paragraph>
+ </TableCell>
+ </TableRow>
+
+ <TableRow>
+ <TableCell>
+ <Paragraph>
+ <TextBlock>Site:</TextBlock>
+ </Paragraph>
+ </TableCell>
+
+ <TableCell>
+ <Paragraph>
+ <TextBlock Text="{Binding SiteName,Mode=OneWay,TargetNullValue='N/A',FallbackValue='N/A'}"/>
+ </Paragraph>
+ </TableCell>
+ </TableRow>
+
+ <TableRow>
+ <TableCell>
+ <Paragraph>
+ <TextBlock>Machine S/N:</TextBlock>
+ </Paragraph>
+ </TableCell>
+
+ <TableCell>
+ <Paragraph>
+ <TextBlock Text="{Binding MachineProvider.Machine.SerialNumber,Mode=OneWay,IsAsync=True,FallbackValue='0000'}"/>
+ </Paragraph>
+ </TableCell>
+ </TableRow>
+
+ <TableRow>
+ <TableCell>
+ <Paragraph>
+ <TextBlock>Firmware Version:</TextBlock>
+ </Paragraph>
+ </TableCell>
+
+ <TableCell>
+ <Paragraph>
+ <TextBlock Text="{Binding MachineProvider.MachineOperator.DeviceInformation.Version,Mode=OneWay,TargetNullValue='N/A',FallbackValue='N/A'}"/>
+ </Paragraph>
+ </TableCell>
+ </TableRow>
+
+ <TableRow>
+ <TableCell>
+ <Paragraph>
+ <TextBlock>CPU:</TextBlock>
+ </Paragraph>
+ </TableCell>
+
+ <TableCell>
+ <Paragraph>
+ <TextBlock>
+ <Run Text="{Binding CPU,Mode=OneWay,StringFormat='0',FallbackValue=0}"></Run>
+ <Run>%</Run>
+ </TextBlock>
+ </Paragraph>
+ </TableCell>
+ </TableRow>
+
+ <TableRow>
+ <TableCell>
+ <Paragraph>
+ <TextBlock>RAM:</TextBlock>
+ </Paragraph>
+ </TableCell>
+
+ <TableCell>
+ <Paragraph>
+ <TextBlock Text="{Binding RAM,Mode=OneWay,FallbackValue=0,Converter={StaticResource ByteArrayToFileSizeConverter},StringFormat='0'}"></TextBlock>
+ </Paragraph>
+ </TableCell>
+ </TableRow>
+
+ <TableRow>
+ <TableCell>
+ <Paragraph>
+ <TextBlock>Up Time:</TextBlock>
+ </Paragraph>
+ </TableCell>
+
+ <TableCell>
+ <Paragraph>
+ <TextBlock Text="{Binding UpTime,Mode=OneWay,StringFormat=hh\\:mm\\:ss,FallbackValue='00:00:00'}"></TextBlock>
+ </Paragraph>
+ </TableCell>
+ </TableRow>
+
+ <TableRow>
+ <TableCell>
+ <Paragraph>
+ <TextBlock>IP Address:</TextBlock>
+ </Paragraph>
+ </TableCell>
+
+ <TableCell>
+ <Paragraph>
+ <TextBlock Text="{Binding IPAddress,Mode=OneWay,FallbackValue=0}"></TextBlock>
+ </Paragraph>
+ </TableCell>
+ </TableRow>
+
+ <TableRow>
+ <TableCell>
+ <Paragraph>
+ <TextBlock>Total Dye Time:</TextBlock>
+ </Paragraph>
+ </TableCell>
+
+ <TableCell>
+ <Paragraph>
+ <TextBlock Text="{Binding TotalDyeTime,Mode=OneWay,FallbackValue=0}"></TextBlock>
+ </Paragraph>
+ </TableCell>
+ </TableRow>
+
+ <TableRow>
+ <TableCell>
+ <Paragraph>
+ <TextBlock>Total Dye Meters:</TextBlock>
+ </Paragraph>
+ </TableCell>
+
+ <TableCell>
+ <Paragraph>
+ <TextBlock Text="{Binding TotalDyeMeters,Mode=OneWay,FallbackValue=0}"></TextBlock>
+ </Paragraph>
+ </TableCell>
+ </TableRow>
+ </TableRowGroup>
+ </Table>
+ </FlowDocument>
+ </FlowDocumentScrollViewer>
</DockPanel>
</touch:LightTouchScrollViewer>
</Grid>
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Build/BuildType.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Build/BuildType.cs
new file mode 100644
index 000000000..43b1f75ca
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Build/BuildType.cs
@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Tango.PPC.Common.Build
+{
+ public enum BuildType
+ {
+ TS1800,
+ Eureka
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Build/IBuildProvider.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Build/IBuildProvider.cs
new file mode 100644
index 000000000..3ced1ddc2
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Build/IBuildProvider.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Tango.PPC.Common.Build
+{
+ public interface IBuildProvider
+ {
+ BuildType BuildType { get; }
+ bool IsEureka { get; }
+ String BuildName { get; }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Connection/DefaultMachineProvider.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Connection/DefaultMachineProvider.cs
index 2b3bc2a99..7f67a4444 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Connection/DefaultMachineProvider.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Connection/DefaultMachineProvider.cs
@@ -124,6 +124,10 @@ namespace Tango.PPC.Common.Connection
MachineOperator.EnableJobLiquidQuantityValidation = settings.EnableJobLiquidQuantityValidation;
(MachineOperator.JobRunsLogger as BasicJobRunsLogger).CreateJobRunsFiles = true;
+
+#if Eureka
+ ProcessParametersTable.DryerBufferMode = BL.Enumerations.MachineTypes.Eureka;
+#endif
}
private void MachineOperator_StatusChanged(object sender, MachineStatuses status)
@@ -186,7 +190,7 @@ namespace Tango.PPC.Common.Connection
TimeSpan timeout = TimeSpan.FromSeconds(SettingsManager.Default.GetOrCreate<PPCSettings>().MachineScanningTimeoutSeconds);
LogManager.Log("Scanning for machine on available serial ports...", LogCategory.Info);
- Transport.Discovery.UsbCommunicationScanner<ConnectRequest, ConnectResponse> scanner = new Transport.Discovery.UsbCommunicationScanner<ConnectRequest, ConnectResponse>(UsbSerialBaudRates.BR_115200);
+ Transport.Discovery.UsbCommunicationScanner<ConnectRequest, ConnectResponse> scanner = new Transport.Discovery.UsbCommunicationScanner<ConnectRequest, ConnectResponse>(settings.EmbeddedBaudRate);
var response = await scanner.Scan(new ConnectRequest() { Password = "1234" }, settings.EmbeddedDeviceHint, timeout);
LogManager.Log("Machine discovered on port: " + response.Adapter.Address, LogCategory.Info);
@@ -224,7 +228,7 @@ namespace Tango.PPC.Common.Connection
//Perform a pre-test to not overload the log file when machine is off for a long time.
using (SerialPort preCheckSerialPort = new SerialPort(settings.EmbeddedComPort))
{
- preCheckSerialPort.BaudRate = UsbSerialBaudRates.BR_115200.ToInt32();
+ preCheckSerialPort.BaudRate = settings.EmbeddedBaudRate.ToInt32();
preCheckSerialPort.Open();
preCheckSerialPort.Close();
fileLoggingDisabled = false;
@@ -233,7 +237,7 @@ namespace Tango.PPC.Common.Connection
LogManager.Log($"Connecting to machine on {settings.EmbeddedComPort}...", LogCategory.Info);
- UsbTransportAdapter adapter = new UsbTransportAdapter(settings.EmbeddedComPort, UsbSerialBaudRates.BR_115200);
+ UsbTransportAdapter adapter = new UsbTransportAdapter(settings.EmbeddedComPort, settings.EmbeddedBaudRate);
MachineOperator.Adapter = adapter;
MachineOperator.JobHandlingMode = JobHandlerModes.SettingUp;
try
@@ -261,16 +265,25 @@ namespace Tango.PPC.Common.Connection
{
LogManager.Log("Application in demo mode!");
- var emulator_channel_name = "emulator-" + Guid.NewGuid().ToString();
+ if (settings.EmulatorMode == EmulatorMode.InMemory)
+ {
+ var emulator_channel_name = "emulator-" + Guid.NewGuid().ToString();
+ LogManager.Log("Starting embedded emulator...");
+ MachineEmulator emulator = new MachineEmulator(new BasicTransporter(new MemoryTransportAdapter(emulator_channel_name)));
+ await emulator.Start();
- LogManager.Log("Starting embedded emulator...");
- MachineEmulator emulator = new MachineEmulator(new BasicTransporter(new MemoryTransportAdapter(emulator_channel_name)));
- await emulator.Start();
+ LogManager.Log("Emulator started. Connecting to emulator...");
- LogManager.Log("Emulator started. Connecting to emulator...");
+ MemoryTransportAdapter adapter = new MemoryTransportAdapter(emulator_channel_name);
+ MachineOperator.Adapter = adapter;
+ }
+ else
+ {
+ LogManager.Log("Connecting to external emulator over TCP...");
+ TcpTransportAdapter adapter = new TcpTransportAdapter("127.0.0.1", 30000);
+ MachineOperator.Adapter = adapter;
+ }
- MemoryTransportAdapter adapter = new MemoryTransportAdapter(emulator_channel_name);
- MachineOperator.Adapter = adapter;
MachineOperator.JobHandlingMode = JobHandlerModes.SettingUp;
LogManager.Log("Connecting machine operator...");
await MachineOperator.Connect();
@@ -320,6 +333,8 @@ namespace Tango.PPC.Common.Connection
{
LogManager.Log("First machine entry found. Machine serial number is: " + Machine.SerialNumber + ".");
+ MachineOperator.MachineType = Machine.Type;
+
if (Machine.IsDemo)
{
LogManager.Log("Machine is in demo mode. Changing firmware upgrade mode to TFP package only.");
@@ -381,6 +396,10 @@ namespace Tango.PPC.Common.Connection
machineOperator.EnableJobLiquidQuantityValidation = false;
machineOperator.EnablePowerUpSequence = false;
+#if Eureka
+ machineOperator.MachineType = BL.Enumerations.MachineTypes.Eureka;
+#endif
+
LogManager.Default.Log("Starting machine connection procedure...");
var settings = SettingsManager.Default.GetOrCreate<PPCSettings>();
@@ -391,7 +410,7 @@ namespace Tango.PPC.Common.Connection
onProgress?.Invoke("Scanning for the machine...");
LogManager.Default.Log("Scanning for machine on available serial ports...");
- Transport.Discovery.UsbCommunicationScanner<ConnectRequest, ConnectResponse> scanner = new Transport.Discovery.UsbCommunicationScanner<ConnectRequest, ConnectResponse>(UsbSerialBaudRates.BR_115200);
+ Transport.Discovery.UsbCommunicationScanner<ConnectRequest, ConnectResponse> scanner = new Transport.Discovery.UsbCommunicationScanner<ConnectRequest, ConnectResponse>(settings.EmbeddedBaudRate);
var response = await scanner.Scan(new ConnectRequest() { Password = "1234" }, timeout);
onProgress?.Invoke("Machine discovered on port: " + response.Adapter.Address);
@@ -411,7 +430,7 @@ namespace Tango.PPC.Common.Connection
LogManager.Default.Log($"Connecting to machine on {settings.EmbeddedComPort}...");
onProgress?.Invoke($"Connecting to machine on {settings.EmbeddedComPort}...");
- UsbTransportAdapter adapter = new UsbTransportAdapter(settings.EmbeddedComPort, UsbSerialBaudRates.BR_115200);
+ UsbTransportAdapter adapter = new UsbTransportAdapter(settings.EmbeddedComPort, settings.EmbeddedBaudRate);
machineOperator.Adapter = adapter;
machineOperator.JobHandlingMode = JobHandlerModes.SettingUp;
await machineOperator.Connect();
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Converters/BuildTypeToVisibilityConverter.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Converters/BuildTypeToVisibilityConverter.cs
new file mode 100644
index 000000000..a9b3ff8bc
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Converters/BuildTypeToVisibilityConverter.cs
@@ -0,0 +1,26 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Data;
+using Tango.Core.DI;
+using Tango.PPC.Common.Build;
+
+namespace Tango.PPC.Common.Converters
+{
+ public class BuildTypeToVisibilityConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ return (BuildType)value == (BuildType)Enum.Parse(typeof(BuildType), parameter.ToStringSafe()) ? Visibility.Visible : Visibility.Collapsed;
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Converters/BuildTypeToVisibilityInverseConverter.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Converters/BuildTypeToVisibilityInverseConverter.cs
new file mode 100644
index 000000000..744d0d975
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Converters/BuildTypeToVisibilityInverseConverter.cs
@@ -0,0 +1,26 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Data;
+using Tango.Core.DI;
+using Tango.PPC.Common.Build;
+
+namespace Tango.PPC.Common.Converters
+{
+ public class BuildTypeToVisibilityInverseConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ return (BuildType)value == (BuildType)Enum.Parse(typeof(BuildType), parameter.ToStringSafe()) ? Visibility.Collapsed : Visibility.Visible;
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Converters/IsEurekaToBooleanConverter.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Converters/IsEurekaToBooleanConverter.cs
new file mode 100644
index 000000000..3596a86be
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Converters/IsEurekaToBooleanConverter.cs
@@ -0,0 +1,32 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Data;
+using Tango.Core.DI;
+using Tango.PPC.Common.Build;
+
+namespace Tango.PPC.Common.Converters
+{
+ public class IsEurekaToBooleanConverter : IValueConverter
+ {
+ private static BuildType? _buildType = null;
+
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ if (_buildType == null)
+ {
+ _buildType = TangoIOC.Default.GetInstance<IBuildProvider>().BuildType;
+ }
+
+ return _buildType == BuildType.Eureka;
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Black.ttf b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Black.ttf
new file mode 100644
index 000000000..71c0f995e
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Black.ttf
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-BlackItalic.ttf b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-BlackItalic.ttf
new file mode 100644
index 000000000..7aeb58bd1
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-BlackItalic.ttf
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Bold.ttf b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Bold.ttf
new file mode 100644
index 000000000..00559eeb2
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Bold.ttf
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-BoldItalic.ttf b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-BoldItalic.ttf
new file mode 100644
index 000000000..e61e8e88b
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-BoldItalic.ttf
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-ExtraBold.ttf b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-ExtraBold.ttf
new file mode 100644
index 000000000..df7093608
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-ExtraBold.ttf
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-ExtraBoldItalic.ttf b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-ExtraBoldItalic.ttf
new file mode 100644
index 000000000..14d2b375d
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-ExtraBoldItalic.ttf
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-ExtraLight.ttf b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-ExtraLight.ttf
new file mode 100644
index 000000000..e76ec69a6
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-ExtraLight.ttf
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-ExtraLightItalic.ttf b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-ExtraLightItalic.ttf
new file mode 100644
index 000000000..89513d946
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-ExtraLightItalic.ttf
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Italic.ttf b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Italic.ttf
new file mode 100644
index 000000000..12b7b3c40
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Italic.ttf
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Light.ttf b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Light.ttf
new file mode 100644
index 000000000..bc36bcc24
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Light.ttf
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-LightItalic.ttf b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-LightItalic.ttf
new file mode 100644
index 000000000..9e70be6a9
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-LightItalic.ttf
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Medium.ttf b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Medium.ttf
new file mode 100644
index 000000000..6bcdcc27f
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Medium.ttf
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-MediumItalic.ttf b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-MediumItalic.ttf
new file mode 100644
index 000000000..be67410fd
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-MediumItalic.ttf
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Regular.ttf b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Regular.ttf
new file mode 100644
index 000000000..9f0c71b70
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Regular.ttf
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-SemiBold.ttf b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-SemiBold.ttf
new file mode 100644
index 000000000..74c726e32
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-SemiBold.ttf
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-SemiBoldItalic.ttf b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-SemiBoldItalic.ttf
new file mode 100644
index 000000000..3e6c94223
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-SemiBoldItalic.ttf
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Thin.ttf b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Thin.ttf
new file mode 100644
index 000000000..03e736613
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-Thin.ttf
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-ThinItalic.ttf b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-ThinItalic.ttf
new file mode 100644
index 000000000..e26db5dd3
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Fonts/Poppins-ThinItalic.ttf
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineSetup/MachineSetupManager.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineSetup/MachineSetupManager.cs
index 45fd6c1b8..0d64da83e 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineSetup/MachineSetupManager.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineSetup/MachineSetupManager.cs
@@ -32,6 +32,7 @@ using Tango.SharedUI.Helpers;
using Tango.SQLExaminer;
using Tango.Transport.Web;
using System.Data.Entity;
+using Tango.PPC.Common.Build;
namespace Tango.PPC.Common.MachineSetup
{
@@ -45,6 +46,7 @@ namespace Tango.PPC.Common.MachineSetup
private IRemoteAssistanceProvider _remoteAssistance;
private IUnifiedWriteFilterManager _uwf;
private IOperationSystemManager _windows_manager;
+ private IBuildProvider _buildProvider;
private PPCWebClient _client;
private List<LogItemBase> _logs;
private bool _isUpdating;
@@ -81,12 +83,13 @@ namespace Tango.PPC.Common.MachineSetup
/// Initializes a new instance of the <see cref="MachineSetupManager"/> class.
/// </summary>
/// <param name="remoteAssistance">The remote assistance.</param>
- public MachineSetupManager(PPCWebClient ppcWebClient, IRemoteAssistanceProvider remoteAssistance, IUnifiedWriteFilterManager unifiedWriterFilterManager, IOperationSystemManager operationSystemManager)
+ public MachineSetupManager(PPCWebClient ppcWebClient, IRemoteAssistanceProvider remoteAssistance, IUnifiedWriteFilterManager unifiedWriterFilterManager, IOperationSystemManager operationSystemManager, IBuildProvider buildProvider)
{
_client = ppcWebClient;
_remoteAssistance = remoteAssistance;
_uwf = unifiedWriterFilterManager;
_windows_manager = operationSystemManager;
+ _buildProvider = buildProvider;
_logs = new List<LogItemBase>();
LogManager.NewLog += LogManager_NewLog;
@@ -235,7 +238,7 @@ namespace Tango.PPC.Common.MachineSetup
Login(serialNumber).Wait();
- String deviceName = $"Tango-{serialNumber}-{settings.DeploymentSlot.ToString()}";
+ String deviceName = $"{(_buildProvider.BuildType == BuildType.TS1800 ? "PPC" : "TwineX4")}{serialNumber}{settings.DeploymentSlot.ToString()}";
LogManager.Log($"Settings device name: '{deviceName}'...");
try
{
@@ -254,6 +257,13 @@ namespace Tango.PPC.Common.MachineSetup
{
LogManager.Log($"Sending setup request...\n{request.ToJsonString()}");
setup_response = await _client.MachineSetup(request);
+
+ if (_buildProvider.IsEureka)
+ {
+ setup_response.SetupActivation = false;
+ setup_response.SetupUWF = false;
+ setup_response.SetupRemoteAssistance = false;
+ }
}
catch (Exception ex)
{
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs
index c5412e591..47ffe6f19 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs
@@ -37,6 +37,7 @@ using Tango.BL.DTO;
using Tango.PPC.Shared.Updates;
using Tango.PPC.Shared.RemoteUpgrade;
using Tango.Core.Threading;
+using Tango.PPC.Common.Build;
namespace Tango.PPC.Common.MachineUpdate
{
@@ -45,6 +46,7 @@ namespace Tango.PPC.Common.MachineUpdate
private IPPCApplicationManager _app_manager;
private IMachineProvider _machineProvider;
private IPackageRunner _packageRunner;
+ private IBuildProvider _buildProvider;
private PPCWebClient _client;
private List<LogItemBase> _logs;
private System.Timers.Timer _checkForUpdateTimer;
@@ -101,13 +103,14 @@ namespace Tango.PPC.Common.MachineUpdate
/// Initializes a new instance of the <see cref="MachineUpdateManager"/> class.
/// </summary>
/// <param name="applicationManager">The application manager.</param>
- public MachineUpdateManager(PPCWebClient ppcWebClient, IPPCApplicationManager applicationManager, IMachineProvider machineProvider, IPackageRunner packageRunner, IPPCExternalBridgeService externalBridge)
+ public MachineUpdateManager(PPCWebClient ppcWebClient, IPPCApplicationManager applicationManager, IMachineProvider machineProvider, IPackageRunner packageRunner, IPPCExternalBridgeService externalBridge, IBuildProvider buildProvider)
{
_client = ppcWebClient;
_machineProvider = machineProvider;
_app_manager = applicationManager;
_app_manager.ApplicationReady += _app_manager_ApplicationReady;
_packageRunner = packageRunner;
+ _buildProvider = buildProvider;
_packageRunner.PackageProgress += _packageRunner_PackageProgress;
_logs = new List<LogItemBase>();
@@ -702,7 +705,7 @@ namespace Tango.PPC.Common.MachineUpdate
}
}
- if (!op.CanPrint)
+ if (op.Status == MachineStatuses.Printing || op.Status == MachineStatuses.GettingReady)
{
throw LogManager.Log(new InvalidOperationException($"Could not perform an update while the machine is in {op.Status} status."));
}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/PPCSettings.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/PPCSettings.cs
index 6fb521838..acb84191b 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/PPCSettings.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/PPCSettings.cs
@@ -16,6 +16,12 @@ using Tango.Web;
namespace Tango.PPC.Common
{
+ public enum EmulatorMode
+ {
+ InMemory,
+ ExternalTCP,
+ }
+
/// <summary>
/// Represents the main PPC settings.
/// </summary>
@@ -50,6 +56,11 @@ namespace Tango.PPC.Common
public String EmbeddedComPort { get; set; }
/// <summary>
+ /// Gets or sets the embedded USB serial baud rate when using USB and Eureka.
+ /// </summary>
+ public UsbSerialBaudRates EmbeddedBaudRate { get; set; }
+
+ /// <summary>
/// Gets or sets the embedded device scanning hint.
/// </summary>
public String EmbeddedDeviceHint { get; set; }
@@ -350,6 +361,26 @@ namespace Tango.PPC.Common
public double FineTuningMinLimitdL { get; set; }
/// <summary>
+ /// Gets or sets a value indicating whether [show advanced options].
+ /// </summary>
+ public bool ShowAdvancedOptions { get; set; }
+
+ /// <summary>
+ /// Gets or sets a value indicating whether to force full screen mode on TwineX4.
+ /// </summary>
+ public bool ForceTouchMode { get; set; }
+
+ /// <summary>
+ /// Gets or sets the emulator mode.
+ /// </summary>
+ public EmulatorMode EmulatorMode { get; set; }
+
+ /// <summary>
+ /// Gets or sets the storage root path.
+ /// </summary>
+ public String StorageRootPath { get; set; }
+
+ /// <summary>
/// Gets the machine service address.
/// </summary>
/// <returns></returns>
@@ -363,6 +394,7 @@ namespace Tango.PPC.Common
/// </summary>
public PPCSettings()
{
+ EmulatorMode = EmulatorMode.InMemory;
LubricationLevels = new List<RmlLubricationLevel>();
JobUploadStrategy = JobUploadStrategy.JobDescriptionFile;
FineTuningTrialLengthMeters = 200;
@@ -371,6 +403,13 @@ namespace Tango.PPC.Common
GradientGenerationResolution = 40;
MachineScanningTimeoutSeconds = 20;
EmbeddedComPort = "COM10";
+
+#if Eureka
+ EmbeddedBaudRate = UsbSerialBaudRates.BR_1000000;
+#else
+ EmbeddedBaudRate = UsbSerialBaudRates.BR_115200;
+#endif
+
EmbeddedDeviceHint = "Tango USB Serial Port";
ExternalBridgePassword = "Aa123456";
HotSpotPassword = "Aa123456";
@@ -416,6 +455,7 @@ namespace Tango.PPC.Common
ScreenSaverStartDuration = 5;
EnableScreenSaver = true;
EnableRemoteJobUpload = true;
+ ShowAdvancedOptions = false;
}
}
}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/PPCViewModel.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/PPCViewModel.cs
index cdbfa909d..b54289813 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/PPCViewModel.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/PPCViewModel.cs
@@ -8,6 +8,7 @@ using Tango.Core.DI;
using Tango.PPC.Common.Application;
using Tango.PPC.Common.Authentication;
using Tango.PPC.Common.Bit;
+using Tango.PPC.Common.Build;
using Tango.PPC.Common.Connection;
using Tango.PPC.Common.Connectivity;
using Tango.PPC.Common.EventLogging;
@@ -141,6 +142,9 @@ namespace Tango.PPC.Common
[TangoInject]
public IRemoteJobUploadService RemoteJobUploadService { get; set; }
+ [TangoInject]
+ public IBuildProvider BuildProvider { get; set; }
+
private PPCSettings _settings;
/// <summary>
/// Gets the main PPC settings.
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Printing/PrintingConfiguration.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Printing/PrintingConfiguration.cs
index 815936137..ff406cefd 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Printing/PrintingConfiguration.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Printing/PrintingConfiguration.cs
@@ -8,6 +8,8 @@ namespace Tango.PPC.Common.Printing
{
public class PrintingConfiguration
{
-
+ public int RemainingUnits { get; set; }
+ public double GlobalStartPosition { get; set; }
+ public double FirstUnitStartPosition { get; set; }
}
}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Publish/PPCPublisher.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Publish/PPCPublisher.cs
index 983868c2c..a71bf6729 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Publish/PPCPublisher.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Publish/PPCPublisher.cs
@@ -28,6 +28,8 @@ namespace Tango.PPC.Common.Publish
/// </summary>
public event EventHandler<PublishProgressEventArgs> PublishProgress;
+ public bool IsEureka { get; set; }
+
private PublishOptions _options;
/// <summary>
/// Gets or sets the publish options.
@@ -200,7 +202,7 @@ namespace Tango.PPC.Common.Publish
String output_folder = Options.InstallerOutputFolder;
OnPublishProgress(0, 100, $"Building installer project...");
InstallerBuilder installerBuilder = new InstallerBuilder(Options.InstallerProject);
- String installer_name = $"PPC Installer_v{Version.Parse(local_version).ToString(3) + (Options.Tag.IsNotNullOrEmpty() ? $" [{Options.Tag}]" : String.Empty)}.exe";
+ String installer_name = $"{(IsEureka ? "TwineX4" : "PPC")} Installer_v{Version.Parse(local_version).ToString(3) + (Options.Tag.IsNotNullOrEmpty() ? $" [{Options.Tag}]" : String.Empty)}.exe";
String output_file = Path.Combine(output_folder, installer_name);
installerBuilder.Build(local_version, output_file).Wait();
@@ -256,7 +258,7 @@ namespace Tango.PPC.Common.Publish
{
String repoPath = Path.GetFullPath("../../../../../");
String tagVersion = System.Version.Parse(GetLocalVersion()).ToString(3);
- String tagName = $"PPC_v{tagVersion}";
+ String tagName = $"{(IsEureka ? "Eureka" : "PPC")}_v{tagVersion}";
if (Options.Tag.IsNotNullOrEmpty())
{
@@ -432,7 +434,9 @@ namespace Tango.PPC.Common.Publish
var cuf = zip.AddFile(update_config_file, update_dir);
cuf.FileName = update_dir + "\\config.xml";
- zip.AddDirectory(folder + "\\" + "Packages", "/Packages");
+ String packagesFolder = folder + "\\" + "Packages";
+ Directory.CreateDirectory(packagesFolder);
+ zip.AddDirectory(packagesFolder, "/Packages");
foreach (var file in Directory.GetFiles(folder, "*.*", SearchOption.TopDirectoryOnly))
{
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteDesktop/DefaultRemoteDesktopService.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteDesktop/DefaultRemoteDesktopService.cs
index 411fd5252..51c78e0f0 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteDesktop/DefaultRemoteDesktopService.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteDesktop/DefaultRemoteDesktopService.cs
@@ -14,6 +14,7 @@ using Tango.Core.Threading;
using Tango.Integration.ExternalBridge;
using Tango.Logging;
using Tango.PPC.Common.Application;
+using Tango.PPC.Common.Build;
using Tango.PPC.Common.ExternalBridge;
using Tango.PPC.Common.OS;
using Tango.PPC.Common.Printing;
@@ -46,6 +47,7 @@ namespace Tango.PPC.Common.RemoteDesktop
private bool _isMouseDown;
private bool _ensureMouseDown;
private ActionTimer _resetTimer;
+ private IBuildProvider _buildProvider;
/// <summary>
/// Gets or sets a value indicating whether this <see cref="IPPCService" /> is enabled.
@@ -79,11 +81,12 @@ namespace Tango.PPC.Common.RemoteDesktop
/// <param name="applicationManager">The application manager.</param>
/// <param name="externalBridge">The external bridge.</param>
/// <param name="osManager">The os manager.</param>
- public DefaultRemoteDesktopService(IPPCApplicationManager applicationManager, IPPCExternalBridgeService externalBridge, IOperationSystemManager osManager, IPrintingManager printingManager)
+ public DefaultRemoteDesktopService(IPPCApplicationManager applicationManager, IPPCExternalBridgeService externalBridge, IOperationSystemManager osManager, IPrintingManager printingManager, IBuildProvider buildProvider)
{
_osManager = osManager;
_appManager = applicationManager;
_printingManager = printingManager;
+ _buildProvider = buildProvider;
_jsonSettings = new JsonSerializerSettings()
{
@@ -110,10 +113,19 @@ namespace Tango.PPC.Common.RemoteDesktop
private void ApplicationManager_ApplicationReady(object sender, EventArgs e)
{
-
-
var mainWindow = System.Windows.Application.Current.MainWindow;
+ if (_buildProvider.IsEureka)
+ {
+ _engine.CaptureRegion = new CaptureRegion()
+ {
+ Left = (int)mainWindow.Left,
+ Top = 0,
+ Width = 1920,
+ Height = 1080
+ };
+ }
+
if (mainWindow.WindowStyle != System.Windows.WindowStyle.None)
{
mainWindow.LocationChanged += (_, __) =>
@@ -325,7 +337,7 @@ namespace Tango.PPC.Common.RemoteDesktop
MouseController.MouseEvent(flag);
- _resetTimer.ResetReplace(() =>
+ _resetTimer.ResetReplace(() =>
{
_printingManager.PreventPrintingByRemoteDesktop = false;
Debug.WriteLine("ALLOW PRINT");
@@ -468,7 +480,7 @@ namespace Tango.PPC.Common.RemoteDesktop
}
else
{
- _engine.EnableComparer = true;
+ _engine.EnableComparer = !_buildProvider.IsEureka;
foreach (var client in _clients.ToList().Where(x => !x.InitialPacketSent))
{
@@ -490,13 +502,13 @@ namespace Tango.PPC.Common.RemoteDesktop
}
}
- if (e.Frame.DifferenceCount > 0)
+ if (e.Frame.DifferenceCount > 0 || _buildProvider.IsEureka)
{
RemoteDesktopPacket packet = null;
Point mousePosition = new Point(System.Windows.Forms.Cursor.Position.X, System.Windows.Forms.Cursor.Position.Y);
- if (!e.Frame.DifferenceAvailable)
+ if (!e.Frame.DifferenceAvailable || _buildProvider.IsEureka)
{
packet = new RemoteDesktopPacket()
{
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Fonts.xaml b/Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Fonts.xaml
index 356c04749..4e704751c 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Fonts.xaml
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Fonts.xaml
@@ -3,4 +3,7 @@
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:local="clr-namespace:Tango.PPC.Common.Resources">
-</ResourceDictionary> \ No newline at end of file
+ <FontFamily x:Key="Poppins" >pack://application:,,,/Tango.PPC.Common;Component/Fonts/#Poppins</FontFamily>
+
+</ResourceDictionary>
+ \ No newline at end of file
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Merged.xaml b/Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Merged.xaml
index 780941f66..da4e63b51 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Merged.xaml
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Resources/Merged.xaml
@@ -71,6 +71,9 @@
<converters:IsToStringEqualToVisibilityConverter x:Key="IsToStringEqualToVisibilityConverter" />
<localConverter:EventTypeDescriptionConverter x:Key="EventTypeDescriptionConverter" />
<localConverter:EventTypeTitleConverter x:Key="EventTypeTitleConverter" />
+ <localConverter:IsEurekaToBooleanConverter x:Key="IsEurekaToBooleanConverter" />
+ <localConverter:BuildTypeToVisibilityConverter x:Key="BuildTypeToVisibilityConverter" />
+ <localConverter:BuildTypeToVisibilityInverseConverter x:Key="BuildTypeToVisibilityInverseConverter" />
<Style TargetType="FrameworkElement">
<Setter Property="TextElement.FontFamily" Value="{StaticResource TangoFlexoFontFamily}"></Setter>
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Tango.PPC.Common.csproj b/Software/Visual_Studio/PPC/Tango.PPC.Common/Tango.PPC.Common.csproj
index e1f4efdcb..e598c6fe4 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Tango.PPC.Common.csproj
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Tango.PPC.Common.csproj
@@ -47,6 +47,25 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Eureka_Debug|AnyCPU' ">
+ <PlatformTarget>AnyCPU</PlatformTarget>
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>..\..\Build\PPC\Eureka_Debug\</OutputPath>
+ <DefineConstants>TRACE;DEBUG;Eureka</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Eureka|AnyCPU' ">
+ <PlatformTarget>AnyCPU</PlatformTarget>
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>..\..\Build\PPC\Eureka\</OutputPath>
+ <DefineConstants>TRACE;Eureka</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
<ItemGroup>
<Reference Include="CommandLine, Version=1.9.71.2, Culture=neutral, PublicKeyToken=de6f01bd326f8c32, processorArchitecture=MSIL">
<HintPath>..\..\packages\CommandLineParser.1.9.71\lib\net45\CommandLine.dll</HintPath>
@@ -134,6 +153,8 @@
<Compile Include="BackupRestore\RestoreResult.cs" />
<Compile Include="BackupRestore\RestoreSettings.cs" />
<Compile Include="Bit\IBitManager.cs" />
+ <Compile Include="Build\BuildType.cs" />
+ <Compile Include="Build\IBuildProvider.cs" />
<Compile Include="Connection\DefaultMachineProvider.cs" />
<Compile Include="Connection\IMachineProvider.cs" />
<Compile Include="Connection\MachineOperatorChangedEventArgs.cs" />
@@ -158,6 +179,9 @@
<Compile Include="Converters\EventTypeDescriptionConverter.cs" />
<Compile Include="Converters\EventTypeTitleConverter.cs" />
<Compile Include="Converters\HeightToOpacityConverter.cs" />
+ <Compile Include="Converters\BuildTypeToVisibilityInverseConverter.cs" />
+ <Compile Include="Converters\BuildTypeToVisibilityConverter.cs" />
+ <Compile Include="Converters\IsEurekaToBooleanConverter.cs" />
<Compile Include="DataStore\DefaultDataStoreService.cs" />
<Compile Include="DataStore\IDataStoreService.cs" />
<Compile Include="ExtensionMethods\IListExtensions.cs" />
@@ -378,6 +402,24 @@
<None Include="app.config">
<SubType>Designer</SubType>
</None>
+ <Resource Include="Fonts\Poppins-Black.ttf" />
+ <Resource Include="Fonts\Poppins-BlackItalic.ttf" />
+ <Resource Include="Fonts\Poppins-Bold.ttf" />
+ <Resource Include="Fonts\Poppins-BoldItalic.ttf" />
+ <Resource Include="Fonts\Poppins-ExtraBold.ttf" />
+ <Resource Include="Fonts\Poppins-ExtraBoldItalic.ttf" />
+ <Resource Include="Fonts\Poppins-ExtraLight.ttf" />
+ <Resource Include="Fonts\Poppins-ExtraLightItalic.ttf" />
+ <Resource Include="Fonts\Poppins-Italic.ttf" />
+ <Resource Include="Fonts\Poppins-Light.ttf" />
+ <Resource Include="Fonts\Poppins-LightItalic.ttf" />
+ <Resource Include="Fonts\Poppins-Medium.ttf" />
+ <Resource Include="Fonts\Poppins-MediumItalic.ttf" />
+ <Resource Include="Fonts\Poppins-Regular.ttf" />
+ <Resource Include="Fonts\Poppins-SemiBold.ttf" />
+ <Resource Include="Fonts\Poppins-SemiBoldItalic.ttf" />
+ <Resource Include="Fonts\Poppins-Thin.ttf" />
+ <Resource Include="Fonts\Poppins-ThinItalic.ttf" />
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Publisher.UI/MainWindow.xaml b/Software/Visual_Studio/PPC/Tango.PPC.Publisher.UI/MainWindow.xaml
index 5697f2027..1c730bd9f 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Publisher.UI/MainWindow.xaml
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Publisher.UI/MainWindow.xaml
@@ -57,6 +57,7 @@
<ComboBox Margin="20 0 0 0" SelectedItem="{Binding Options.BuildConfig}" SelectedIndex="0">
<sys:String>Release</sys:String>
<sys:String>Debug</sys:String>
+ <sys:String>Eureka</sys:String>
</ComboBox>
</DockPanel>
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Publisher.UI/MainWindow.xaml.cs b/Software/Visual_Studio/PPC/Tango.PPC.Publisher.UI/MainWindow.xaml.cs
index 4d062d5af..fb33f246f 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Publisher.UI/MainWindow.xaml.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Publisher.UI/MainWindow.xaml.cs
@@ -14,6 +14,7 @@ using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
+using Tango.PPC.Common.Build;
using Tango.PPC.Common.Publish;
using Tango.SQLExaminer;
@@ -24,9 +25,21 @@ namespace Tango.PPC.Publisher.UI
/// </summary>
public partial class MainWindow : Window
{
+ private bool _isEureka;
+
public MainWindow()
{
+#if Eureka
+ _isEureka = true;
+#endif
+
InitializeComponent();
+
+ if (_isEureka)
+ {
+ Title = "Eureka Publisher";
+ }
+
DataContext = new MainWindowVM();
}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Publisher.UI/MainWindowVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.Publisher.UI/MainWindowVM.cs
index 4e3f5c6cd..39d8c9b18 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Publisher.UI/MainWindowVM.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Publisher.UI/MainWindowVM.cs
@@ -131,14 +131,22 @@ namespace Tango.PPC.Publisher.UI
public RelayCommand FirmwareUpgradePackageBrowseCommand { get; set; }
+ public bool IsEureka { get; set; }
+
public MainWindowVM()
{
+#if Eureka
+ IsEureka = true;
+#endif
+
_client = new PPCWebClient();
var settings = SettingsManager.Default.GetOrCreate<PublisherSettings>();
Options = settings.Options;
_publisher = new PPCPublisher(Options);
+ _publisher.IsEureka = IsEureka;
+
_publisher.PublishProgress += _publisher_PublishProgress;
ProvisionSequenceItemsView = CollectionViewSource.GetDefaultView(Options.Synchronization.ProvisionSequenceItems);
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Publisher.UI/Tango.PPC.Publisher.UI.csproj b/Software/Visual_Studio/PPC/Tango.PPC.Publisher.UI/Tango.PPC.Publisher.UI.csproj
index 778117469..be3bce7d8 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Publisher.UI/Tango.PPC.Publisher.UI.csproj
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Publisher.UI/Tango.PPC.Publisher.UI.csproj
@@ -48,6 +48,15 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Eureka|AnyCPU' ">
+ <PlatformTarget>AnyCPU</PlatformTarget>
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>..\..\Build\PPC\Debug\</OutputPath>
+ <DefineConstants>TRACE;Eureka</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
<ItemGroup>
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.dll</HintPath>
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/App.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/App.xaml
index 7addfdd13..38a5b91b2 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/App.xaml
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/App.xaml
@@ -14,11 +14,13 @@
<!--Common-->
<ResourceDictionary Source="pack://application:,,,/Tango.PPC.Common;component/Resources/Merged.xaml" />
+ <ResourceDictionary Source="pack://application:,,,/Tango.PPC.Common;component/Resources/Fonts.xaml" />
<!--Local-->
<ResourceDictionary Source="Resources/Colors.xaml"></ResourceDictionary>
<ResourceDictionary Source="Resources/Fonts.xaml"></ResourceDictionary>
<ResourceDictionary Source="Resources/Styles.xaml"></ResourceDictionary>
+ <ResourceDictionary Source="Resources/Graphs.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/App.xaml.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/App.xaml.cs
index e478dba77..4dab04327 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/App.xaml.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/App.xaml.cs
@@ -3,12 +3,14 @@ using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Diagnostics;
+using System.Globalization;
using System.IO;
using System.Linq;
using System.Net;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
+using System.Windows.Markup;
using Tango.BL;
using Tango.Core;
using Tango.Core.DI;
@@ -52,9 +54,21 @@ namespace Tango.PPC.UI
{
Debugger.Launch();
}
-
StartupArgs = e.Args;
+ //Set culture info.
+ /* var enUSCulture = new CultureInfo("en-US")
+ { NumberFormat = { NumberDecimalSeparator = "." } };
+
+ Thread.CurrentThread.CurrentCulture = enUSCulture;
+ Thread.CurrentThread.CurrentUICulture = enUSCulture;
+ CultureInfo.DefaultThreadCurrentCulture = enUSCulture;
+ CultureInfo.DefaultThreadCurrentUICulture = enUSCulture;
+
+ FrameworkElement.LanguageProperty.OverrideMetadata(
+ typeof(FrameworkElement),
+ new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));*/
+
//LogManager.RegisterLogger(new ConsoleLogger("Tango PPC Debug"));
LogManager.RegisterLogger(new FileLogger()
{
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Build/DefaultBuildProvider.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Build/DefaultBuildProvider.cs
new file mode 100644
index 000000000..599447c95
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Build/DefaultBuildProvider.cs
@@ -0,0 +1,34 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.PPC.Common.Application;
+using Tango.PPC.Common.Build;
+
+namespace Tango.PPC.UI.Build
+{
+ public class DefaultBuildProvider : IBuildProvider
+ {
+ public BuildType BuildType { get; internal set; }
+
+ public bool IsEureka
+ {
+ get { return BuildType == BuildType.Eureka; }
+ }
+
+ public string BuildName => BuildType == BuildType.Eureka ? "Twine X4" : "PPC";
+
+ public DefaultBuildProvider()
+ {
+
+ if (App.StartupArgs != null && App.StartupArgs.Contains("eureka_build"))
+ {
+ BuildType = BuildType.Eureka;
+ }
+#if Eureka
+ BuildType = BuildType.Eureka;
+#endif
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Controls/JobOutlineControl.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Controls/JobOutlineControl.cs
new file mode 100644
index 000000000..a22afe3ea
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Controls/JobOutlineControl.cs
@@ -0,0 +1,327 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Media;
+using System.Windows.Shapes;
+using Tango.PMR.Printing;
+using Tango.Touch.Controls;
+
+namespace Tango.PPC.UI.Controls
+{
+ public class JobOutlineControl : Control
+ {
+
+ #region Members
+
+ private Size _sizeControl = new Size(0, 0);
+ ScrollViewer _parentScrollViewer = null;
+ public struct LevelOffset
+ {
+ public const double level_0 = 0.0;
+ public const double level_1 = 10.0;
+ public const double level_2 = 20.0;
+ public const double level_3 = 37.0;
+ public const double level_4 = 50.0;
+ public const double level_5 = 60.0;
+ public const double level_6 = 77.0;
+ public const double level_7 = 90.0;
+ public const double level_8 = 100.0;
+ }
+ private double _verticalOffset = 0;
+ private double _viewportHeight = 0;
+ private const double HEADER_FONT_HEIGHT = 35;
+ private const double TITLE_FONT_HEIGHT = 22;
+ private const double SUB_TITLE_FONT_HEIGHT = 19;
+ private const double NORMAL_FONT_HEIGHT = 17;
+ private const double WIDTH = 330;
+
+ #endregion members
+
+ public JobOutlineControl() : base()
+ {
+ DataContextChanged += JobOutlineControl_DataContextChanged;
+ Width = WIDTH;
+ }
+
+ private void JobOutlineControl_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
+ {
+ if (DataContext == null)
+ {
+ return;
+ }
+
+ if (_parentScrollViewer != null)
+ {
+ _parentScrollViewer.ScrollToTop();
+ }
+
+ InvalidateVisual();
+ }
+
+ #region events
+
+ private void ScrollViewer_ScrollChanged(object sender, ScrollChangedEventArgs e)
+ {
+ if (e.VerticalChange == 0.0)
+ return;
+
+ _verticalOffset = _parentScrollViewer.VerticalOffset;
+ _viewportHeight = _parentScrollViewer.ViewportHeight;
+ InvalidateVisual();
+ }
+ #endregion events
+
+ #region render
+ protected override void OnRender(DrawingContext drawingContext)
+ {
+ base.OnRender(drawingContext);
+
+ if (!(DataContext is JobTicket job)) return;
+ if (_parentScrollViewer == null)
+ {
+ _parentScrollViewer = this.FindAncestor<ScrollViewer>();
+ _parentScrollViewer.ScrollChanged -= ScrollViewer_ScrollChanged;
+ _parentScrollViewer.ScrollChanged += ScrollViewer_ScrollChanged;
+ }
+ else if (_viewportHeight == 0)
+ {
+ _viewportHeight = _parentScrollViewer.ActualHeight;
+ }
+ _sizeControl = new Size();
+ _sizeControl.Height += 10;
+ DrawHeaderText(drawingContext, "JOB OUTLINE", 30, LevelOffset.level_0);
+ _sizeControl.Height += HEADER_FONT_HEIGHT;
+
+ _sizeControl.Height += 20;
+ DrawHeaderText(drawingContext, "BASIC", 17, LevelOffset.level_0);
+ _sizeControl.Height += TITLE_FONT_HEIGHT;
+ _sizeControl.Height += 5.0;
+ var basicProps = GetNameValueList(job);
+ foreach (var prop in basicProps)
+ {
+ DrawNameValueText(drawingContext, prop, LevelOffset.level_1, TouchIconKind.Pencil);
+ _sizeControl.Height += NORMAL_FONT_HEIGHT;
+ }
+ //JobTicket.Spool
+ if (job.Spool != null)
+ {
+ _sizeControl.Height += 20;
+ DrawHeaderText(drawingContext, "SPOOL", 17, LevelOffset.level_0);
+ _sizeControl.Height += TITLE_FONT_HEIGHT;
+ _sizeControl.Height += 5.0;
+ basicProps = GetNameValueList(job.Spool);
+ foreach (var prop in basicProps)
+ {
+ DrawNameValueText(drawingContext, prop, LevelOffset.level_1, TouchIconKind.Pencil);
+ _sizeControl.Height += NORMAL_FONT_HEIGHT;
+ }
+ }
+ //JobTicket.ProcessParameters
+ if (job.ProcessParameters != null)
+ {
+ _sizeControl.Height += 20;
+ DrawHeaderText(drawingContext, "PROCESS PARAMETERS", 17, LevelOffset.level_0);
+ _sizeControl.Height += TITLE_FONT_HEIGHT;
+ _sizeControl.Height += 5.0;
+ basicProps = GetNameValueList(job.ProcessParameters);
+ foreach (var prop in basicProps)
+ {
+ DrawNameValueText(drawingContext, prop, LevelOffset.level_1, TouchIconKind.Settings);
+ _sizeControl.Height += NORMAL_FONT_HEIGHT;
+ }
+ }
+ //JobTicket.ThreadParameters
+ if (job.ThreadParameters != null)
+ {
+ _sizeControl.Height += 20;
+ DrawHeaderText(drawingContext, "THREAD PARAMETERS", 17, LevelOffset.level_0);
+ _sizeControl.Height += TITLE_FONT_HEIGHT;
+ _sizeControl.Height += 5.0;
+ basicProps = GetNameValueList(job.ThreadParameters);
+ foreach (var prop in basicProps)
+ {
+ DrawNameValueText(drawingContext, prop, LevelOffset.level_1, TouchIconKind.Settings);
+ _sizeControl.Height += NORMAL_FONT_HEIGHT;
+ }
+ }
+ //JobTicket.HeadCleaningParameters
+ if (job.HeadCleaningParameters != null)
+ {
+ _sizeControl.Height += 20;
+ DrawHeaderText(drawingContext, "HEAD CLEANING PARAMETERS", 17, LevelOffset.level_0);
+ _sizeControl.Height += TITLE_FONT_HEIGHT;
+ _sizeControl.Height += 5.0;
+ basicProps = GetNameValueList(job.HeadCleaningParameters);
+ foreach (var prop in basicProps)
+ {
+ DrawNameValueText(drawingContext, prop, LevelOffset.level_1, TouchIconKind.Settings);
+ _sizeControl.Height += NORMAL_FONT_HEIGHT;
+ }
+ }
+ //JobTicket.BtsrParameters
+ if (job.BtsrParameters != null)
+ {
+ _sizeControl.Height += 20;
+ DrawHeaderText(drawingContext, "BTSR PARAMETERS", 17, LevelOffset.level_0);
+ _sizeControl.Height += TITLE_FONT_HEIGHT;
+ _sizeControl.Height += 5.0;
+ basicProps = GetNameValueList(job.BtsrParameters);
+ foreach (var prop in basicProps)
+ {
+ DrawNameValueText(drawingContext, prop, LevelOffset.level_1, TouchIconKind.Settings);
+ _sizeControl.Height += NORMAL_FONT_HEIGHT;
+ }
+ }
+ //JobTicket.Segments
+ if (job.Segments != null)
+ {
+ _sizeControl.Height += 20;
+ DrawHeaderText(drawingContext, "SEGMENTS", 17, LevelOffset.level_0);
+ _sizeControl.Height += TITLE_FONT_HEIGHT;
+ _sizeControl.Height += 10.0;
+ int index = 0;
+ foreach (JobSegment seg in job.Segments)
+ {
+ DrawHeaderText(drawingContext, string.Format("#{0} SEGMENT", ++index), 14, LevelOffset.level_1);
+ _sizeControl.Height += SUB_TITLE_FONT_HEIGHT;
+ basicProps = GetNameValueList(seg);
+ foreach (var prop in basicProps)
+ {
+ DrawNameValueText(drawingContext, prop, LevelOffset.level_2, TouchIconKind.Pencil);
+ _sizeControl.Height += NORMAL_FONT_HEIGHT;
+ }
+ //BrushStops
+ DrawHeaderText(drawingContext, "BRUSH STOPS", 12, LevelOffset.level_3);
+ _sizeControl.Height += NORMAL_FONT_HEIGHT;
+ int indexBrush = 0;
+ foreach (JobBrushStop brushstop in seg.BrushStops)
+ {
+ _sizeControl.Height += 5.0;
+ DrawHeaderText(drawingContext, string.Format("#{0} STOP", ++indexBrush), 11, LevelOffset.level_4);
+ _sizeControl.Height += NORMAL_FONT_HEIGHT;
+ var brushStops = GetNameValueList(brushstop);
+ foreach (var brushstopprop in brushStops)
+ {
+ DrawNameValueText(drawingContext, brushstopprop, LevelOffset.level_5, TouchIconKind.Pencil);
+ _sizeControl.Height += NORMAL_FONT_HEIGHT;
+ }
+ DrawHeaderText(drawingContext, "DISPENSERS", 12, LevelOffset.level_6);
+ _sizeControl.Height += NORMAL_FONT_HEIGHT;
+ _sizeControl.Height += 5.0;
+ int indexDispenser = 0;
+ foreach (JobDispenser disp in brushstop.Dispensers)
+ {
+ DrawHeaderText(drawingContext, string.Format("#{0} DISPENSER", ++indexDispenser), 11, LevelOffset.level_6);
+ _sizeControl.Height += NORMAL_FONT_HEIGHT;
+ var dispProperties = GetNameValueList(disp);
+ foreach (var dispprop in dispProperties)
+ {
+ DrawNameValueText(drawingContext, dispprop, LevelOffset.level_7, TouchIconKind.ArrowRightBoldCircle);
+ _sizeControl.Height += NORMAL_FONT_HEIGHT;
+ }
+ }
+ }
+ }
+ }
+
+ if (Height != _sizeControl.Height)
+ {
+ Height = _sizeControl.Height;
+ }
+ }
+ public IEnumerable<Tuple<String, String>> GetNameValueList(object value)
+ {
+ if (value != null)
+ {
+ var properties = value.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance).Where(x => (!x.PropertyType.IsClass && !typeof(IEnumerable).IsAssignableFrom(x.PropertyType)) || x.PropertyType == typeof(String)).ToList();
+ return properties.Select(x => new Tuple<string, string>(x.Name, x.GetValue(value).ToString()));
+ }
+ else
+ {
+ return null;
+ }
+ }
+ #endregion render
+
+ #region drawing
+ protected void DrawNameValueText(DrawingContext drawingContext, Tuple<string, string> text, double levelOfOffset, TouchIconKind? icon)
+ {
+ if (IsInViewPort())
+ {
+ FormattedText formattedName = new FormattedText(text.Item1 + ": ", System.Globalization.CultureInfo.InvariantCulture, System.Windows.FlowDirection.LeftToRight, new Typeface(this.FontFamily, FontStyles.Normal, FontWeights.Normal, FontStretches.Normal),
+ 12, Foreground);
+ DrawIconTextIfVisible(drawingContext, levelOfOffset, formattedName, icon);
+ double widthOfNameText = formattedName.WidthIncludingTrailingWhitespace + 17 + levelOfOffset;//17 pix for draw icon before text
+
+ FormattedText formattedValue = new FormattedText(text.Item2, System.Globalization.CultureInfo.InvariantCulture, System.Windows.FlowDirection.LeftToRight, new Typeface(this.FontFamily, FontStyles.Normal, FontWeights.SemiBold, FontStretches.Normal),
+ 12, Foreground);
+ DrawIconTextIfVisible(drawingContext, widthOfNameText, formattedValue);
+ _sizeControl.Width = Math.Max(_sizeControl.Width, (widthOfNameText + formattedValue.WidthIncludingTrailingWhitespace));
+ }
+ }
+
+ private bool IsInViewPort()
+ {
+ return (_sizeControl.Height >= _verticalOffset && _sizeControl.Height <= (_verticalOffset + _viewportHeight + 5));
+ }
+
+ protected void DrawHeaderText(DrawingContext drawingContext, string text, int fontSize, double levelOfOffset)
+ {
+ if (IsInViewPort())
+ {
+ FormattedText formattedtext = new FormattedText(text, System.Globalization.CultureInfo.InvariantCulture, System.Windows.FlowDirection.LeftToRight, new Typeface(this.FontFamily, FontStyles.Normal, FontWeights.SemiBold, FontStretches.Normal),
+ fontSize, Foreground);
+ DrawIconTextIfVisible(drawingContext, levelOfOffset, formattedtext);
+ _sizeControl.Width = Math.Max(_sizeControl.Width, (formattedtext.Width + levelOfOffset));
+ }
+ }
+
+ private void DrawIconTextIfVisible(DrawingContext drawingContext, double levelOfOffset, FormattedText formattedText, TouchIconKind? icon = null)
+ {
+ if (icon is TouchIconKind)
+ {
+ DrawIcon(drawingContext, (TouchIconKind)icon, new Point(levelOfOffset, _sizeControl.Height));
+ levelOfOffset += 17;
+ }
+ drawingContext.DrawText(formattedText, new Point(levelOfOffset, _sizeControl.Height));
+ }
+ private void DrawIcon(DrawingContext drawingContext, TouchIconKind kind, Point point)
+ {
+ GeometryGroup group = GetGeometryByIcon(kind);
+ SetGeometryPosition(group, point);
+ drawingContext.DrawGeometry(Foreground, new Pen(Brushes.White, 1), group);
+
+ }
+ private GeometryGroup GetGeometryByIcon(TouchIconKind kind)
+ {
+ Geometry geometry = Geometry.Parse(TouchIcon.Icons[kind]);
+ GeometryGroup group = new GeometryGroup();
+ group.Children.Add(geometry);
+
+ TransformGroup tg = new TransformGroup();
+ tg.Children.Add(new ScaleTransform()
+ {
+ ScaleX = 10d / geometry.Bounds.Width,
+ ScaleY = 10d / geometry.Bounds.Height,
+ });
+ tg.Children.Add(new TranslateTransform() { });
+
+ group.Transform = tg;
+ return group;
+ }
+ private void SetGeometryPosition(GeometryGroup group, Point point)
+ {
+ TransformGroup tg = group.Transform as TransformGroup;
+ (tg.Children[1] as TranslateTransform).X = point.X;
+ (tg.Children[1] as TranslateTransform).Y = point.Y + 1;
+ }
+ #endregion drawing
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Controls/RunningJobViewerEureka.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Controls/RunningJobViewerEureka.xaml
new file mode 100644
index 000000000..dfbd47514
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Controls/RunningJobViewerEureka.xaml
@@ -0,0 +1,101 @@
+<UserControl x:Class="Tango.PPC.UI.Controls.RunningJobViewerEureka"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:touch="clr-namespace:Tango.Touch.Controls;assembly=Tango.Touch"
+ xmlns:converters="clr-namespace:Tango.PPC.UI.Converters"
+ xmlns:local="clr-namespace:Tango.PPC.UI.Controls"
+ xmlns:enumerations="clr-namespace:Tango.BL.Enumerations;assembly=Tango.BL"
+ mc:Ignorable="d"
+ Name="RunningJobViewerEurekaContr"
+ d:DesignHeight="60" d:DesignWidth="500" Height="38" d:DataContext="{d:DesignInstance Type=local:RunningJobViewerEureka, IsDesignTimeCreatable=False}">
+ <UserControl.Resources>
+ <converters:DoubleWidthConverter x:Key="DoubleWidthConverter" />
+ <converters:ProgressBorderWidthConverter x:Key="ProgressBorderWidthConverter" />
+ </UserControl.Resources>
+ <Grid>
+ <touch:SliderContentControl x:Name="slider_control" ThumbColor="{StaticResource TangoPrimaryAccentColor}"
+ Height="{Binding RelativeSource={RelativeSource AncestorType=local:RunningJobViewerEureka}, Path=HeightSlider}"
+ ThumbHeight="{Binding RelativeSource={RelativeSource AncestorType=local:RunningJobViewerEureka}, Path=ThumbHeight}"
+ Width="{Binding RelativeSource={RelativeSource AncestorType=local:RunningJobViewerEureka}, Path=Width}"
+
+ Minimum="{Binding RelativeSource={RelativeSource AncestorType=local:RunningJobViewerEureka}, Path=MinimumValue}"
+ Maximum="{Binding RelativeSource={RelativeSource AncestorType=local:RunningJobViewerEureka}, Path=MaximumValue}"
+ MouseDown="SliderContentControl_MouseDown" TouchDown="SliderContentControl_TouchDown" SizeChanged="Slider_control_SizeChanged" >
+
+
+ <Border x:Name="brush_border" ClipToBounds="False" CornerRadius="7" Margin="0 0 0 0" Background="{StaticResource TangoLightForegroundBrush}">
+ <Border.Clip>
+ <RectangleGeometry RadiusX="7" RadiusY="7">
+ <RectangleGeometry.Rect>
+ <MultiBinding Converter="{StaticResource WidthHeightToRectConverter}">
+ <Binding ElementName="brush_border" Path="ActualWidth" />
+ <Binding ElementName="brush_border" Path="ActualHeight" />
+ </MultiBinding>
+ </RectangleGeometry.Rect>
+ </RectangleGeometry>
+ </Border.Clip>
+ <Grid>
+ <Canvas x:Name="ColorCanvas" Width="{Binding ElementName=slider_control, Path=ActualWidth}" Height="{Binding ElementName=slider_control, Path=ActualHeight}" ClipToBounds="True" >
+ <Border x:Name="ItemsBorder" ClipToBounds="False" Margin="0 0 0 0" Height="{Binding ElementName=slider_control, Path=ActualHeight}" >
+ <Grid ClipToBounds="False" HorizontalAlignment="Stretch" >
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="Auto"/>
+ <ColumnDefinition Width="1*"/>
+ </Grid.ColumnDefinitions>
+ <Grid>
+ <ItemsControl HorizontalAlignment="Left" x:Name="SegmentsItemsControl" Width="{Binding ElementName=brush_border, Path=ActualWidth, Converter={StaticResource DoubleWidthConverter}}">
+ <ItemsControl.ItemsPanel>
+ <ItemsPanelTemplate>
+ <StackPanel Orientation="Horizontal" ></StackPanel>
+ </ItemsPanelTemplate>
+ </ItemsControl.ItemsPanel>
+ <ItemsControl.ItemTemplate>
+ <DataTemplate>
+ <Grid>
+ <Grid.Width>
+ <MultiBinding Converter="{StaticResource SegmentLengthToWidthConverter}">
+ <Binding RelativeSource="{RelativeSource AncestorType=local:RunningJobViewerEureka}" Path="JobUnitLength" Converter="{StaticResource DoubleWidthConverter}"></Binding>
+ <Binding RelativeSource="{RelativeSource AncestorType=ItemsControl}" Path="ActualWidth"></Binding>
+ <Binding Path="LengthWithFactor"></Binding>
+ </MultiBinding>
+ </Grid.Width>
+ <Rectangle Fill="{Binding SegmentBrush}"></Rectangle>
+ </Grid>
+ </DataTemplate>
+ </ItemsControl.ItemTemplate>
+ </ItemsControl>
+ </Grid>
+ <Grid Grid.Column="1">
+ <ItemsControl x:Name="LastSegmentsItemsControl" HorizontalAlignment="Right" Margin="0 0 0 0" Width="{Binding ElementName=brush_border, Path=ActualWidth}">
+ <ItemsControl.ItemsPanel>
+ <ItemsPanelTemplate>
+ <StackPanel Orientation="Horizontal" ></StackPanel>
+ </ItemsPanelTemplate>
+ </ItemsControl.ItemsPanel>
+ <ItemsControl.ItemTemplate>
+ <DataTemplate>
+ <Grid>
+ <Grid.Width>
+ <MultiBinding Converter="{StaticResource SegmentLengthToWidthConverter}">
+ <Binding RelativeSource="{RelativeSource AncestorType=UserControl}" Path="RunningJobStatus.CurrentUnitTotalProgress" ></Binding>
+ <Binding RelativeSource="{RelativeSource AncestorType=ItemsControl}" Path="ActualWidth"></Binding>
+ <Binding Path="LengthWithFactor"></Binding>
+ </MultiBinding>
+ </Grid.Width>
+ <Rectangle Fill="{Binding SegmentBrush}"></Rectangle>
+ </Grid>
+ </DataTemplate>
+ </ItemsControl.ItemTemplate>
+ </ItemsControl>
+ </Grid>
+ </Grid>
+ </Border>
+ </Canvas>
+ <Rectangle Stroke="{StaticResource TangoGrayBrush}" StrokeThickness="1" StrokeDashArray="5 5 5 5" RadiusX="7" RadiusY="7" />
+ </Grid>
+ </Border>
+ </touch:SliderContentControl>
+ </Grid>
+</UserControl>
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Controls/RunningJobViewerEureka.xaml.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Controls/RunningJobViewerEureka.xaml.cs
new file mode 100644
index 000000000..60c5a0346
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Controls/RunningJobViewerEureka.xaml.cs
@@ -0,0 +1,287 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Collections.Specialized;
+using System.Diagnostics;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using Tango.BL.Entities;
+using Tango.Integration.Operation;
+using Tango.Logging;
+
+namespace Tango.PPC.UI.Controls
+{
+ /// <summary>
+ /// Interaction logic for RunningJobViewerEureka.xaml
+ /// </summary>
+ public partial class RunningJobViewerEureka : UserControl
+ {
+ List<Segment> _segments;
+ List<Segment> _lastsegments;
+
+
+ private double _prevOffset;
+ private double _addOffset;
+ private int _prevUnit;
+
+ private double _controlWidth;
+
+ public double ControlWidth
+ {
+ get { return _controlWidth; }
+ set {
+ _controlWidth = value;//for debug
+ }
+ }
+
+ /// <summary>
+ /// Maybe not necessary!
+ /// </summary>
+ public bool IsActive
+ {
+ get { return (bool)GetValue(IsActiveProperty); }
+ set { SetValue(IsActiveProperty, value); }
+ }
+ public static readonly DependencyProperty IsActiveProperty =
+ DependencyProperty.Register("IsActive", typeof(bool), typeof(RunningJobViewerEureka), new PropertyMetadata(false));
+
+ /// <summary>
+ /// Gets or sets a value indicating whether summary markers.
+ /// </summary>
+ public bool DisplayMarkers
+ {
+ get { return (bool)GetValue(DisplayMarkersProperty); }
+ set { SetValue(DisplayMarkersProperty, value); }
+ }
+ public static readonly DependencyProperty DisplayMarkersProperty =
+ DependencyProperty.Register("DisplayMarkers", typeof(bool), typeof(RunningJobViewerEureka), new PropertyMetadata(true));
+
+ /// <summary>
+ /// Gets or sets the job.
+ /// </summary>
+ public Job Job
+ {
+ get { return (Job)GetValue(JobProperty); }
+ set { SetValue(JobProperty, value); }
+ }
+ public static readonly DependencyProperty JobProperty =
+ DependencyProperty.Register("Job", typeof(Job), typeof(RunningJobViewerEureka), new PropertyMetadata(null, (d, e) => (d as RunningJobViewerEureka).OnUpdateJob()));
+
+ private void OnUpdateJob()
+ {
+ if(Job != null)
+ {
+ JobUnitLength = Job.Length;
+ _segments = Job.EffectiveSegments.ToList();
+
+ if (Job.NumberOfUnits > 1 && _segments.Count > 0
+ && (_segments.Count > 1 || _segments[0].BrushStops.Count > 1))
+ {
+ if (Job.EnableInterSegment && Job.InterSegmentLength > 0)
+ {
+ _segments.Add(Job.CreateInterSegment(Job.InterSegmentLength));
+ }
+ _segments.AddRange(Job.EffectiveSegments.ToList());
+ if(Job.NumberOfUnits > 2 && Job.EnableInterSegment && Job.InterSegmentLength > 0)
+ {
+ _segments.Add(Job.CreateInterSegment(Job.InterSegmentLength));
+ JobUnitLength += Job.InterSegmentLength;
+ //_segments.AddRange(Job.EffectiveSegments.ToList());//third set to use in end printing without intersegment
+ }
+ _lastsegments = Job.EffectiveSegments.ToList();;
+
+ IsHasMultipleColorsSegments = true;
+ }
+ else
+ {
+ IsHasMultipleColorsSegments = false;
+ }
+
+ SegmentsItemsControl.ItemsSource = _segments;
+ SegmentsItemsControl.InvalidateVisual();
+ LastSegmentsItemsControl.ItemsSource = _lastsegments;
+ LastSegmentsItemsControl.InvalidateVisual();
+
+ _prevOffset = _addOffset = 0.0;
+ _prevUnit = 0;
+ ItemsBorder.SetValue(Canvas.LeftProperty, 0.0);
+ ItemsBorder.InvalidateVisual();
+ }
+ }
+
+ /// <summary>
+ /// Gets or sets the running job status.
+ /// </summary>
+ public RunningJobStatus RunningJobStatus
+ {
+ get { return (RunningJobStatus)GetValue(RunningJobStatusProperty); }
+ set { SetValue(RunningJobStatusProperty, value); }
+ }
+ public static readonly DependencyProperty RunningJobStatusProperty =
+ DependencyProperty.Register("RunningJobStatus", typeof(RunningJobStatus), typeof(RunningJobViewerEureka), new PropertyMetadata(null));
+
+ public double MinimumValue
+ {
+ get { return (double)GetValue(MinimumValueProperty); }
+ set { SetValue(MinimumValueProperty, value); }
+ }
+ /// <summary>
+ /// The minimum value property
+ /// </summary>
+ public static readonly DependencyProperty MinimumValueProperty =
+ DependencyProperty.RegisterAttached("MinimumValue", typeof(double), typeof(RunningJobViewerEureka),
+ new FrameworkPropertyMetadata(0.0));
+ public double MaximumValue
+ {
+ get { return (double)GetValue(MaximumValueProperty); }
+ set
+ {
+ SetValue(MaximumValueProperty, value);
+ }
+ }
+ /// <summary>
+ /// The maximum value property
+ /// </summary>
+ public static readonly DependencyProperty MaximumValueProperty =
+ DependencyProperty.RegisterAttached("MaximumValue", typeof(double), typeof(RunningJobViewerEureka),
+ new FrameworkPropertyMetadata(100.0, 0));
+
+ public double SliderValue
+ {
+ get { return (double)GetValue(SliderValueProperty); }
+ set { SetValue(SliderValueProperty, value); }
+ }
+
+ // Using a DependencyProperty as the backing store for SliderValue. This enables animation, styling, binding, etc...
+ public static readonly DependencyProperty SliderValueProperty =
+ DependencyProperty.Register("SliderValue", typeof(double), typeof(RunningJobViewerEureka), new FrameworkPropertyMetadata((double)0.0, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, (d, e) => (d as RunningJobViewerEureka).OnSliderValueChanged()));
+
+ public double HeightSlider
+ {
+ get { return (double)GetValue(HeightSliderProperty); }
+ set { SetValue(HeightSliderProperty, value); }
+ }
+
+ // Using a DependencyProperty as the backing store for HeightSlider. This enables animation, styling, binding, etc...
+ public static readonly DependencyProperty HeightSliderProperty =
+ DependencyProperty.Register("HeightSlider", typeof(double), typeof(RunningJobViewerEureka), new FrameworkPropertyMetadata(0.0));
+
+ public double ThumbHeight
+ {
+ get { return (double)GetValue(ThumbHeightProperty); }
+ set { SetValue(ThumbHeightProperty, value); }
+ }
+
+ // Using a DependencyProperty as the backing store for ThumbHeight. This enables animation, styling, binding, etc...
+ public static readonly DependencyProperty ThumbHeightProperty =
+ DependencyProperty.Register("ThumbHeight", typeof(double), typeof(RunningJobViewerEureka), new FrameworkPropertyMetadata(0.0));
+
+
+ public bool IsHasMultipleColorsSegments
+ {
+ get { return (bool)GetValue(IsHasMultipleColorsSegmentsProperty); }
+ set { SetValue(IsHasMultipleColorsSegmentsProperty, value); }
+ }
+
+ // Using a DependencyProperty as the backing store for IsHasMultipleColorsSegments. This enables animation, styling, binding, etc...
+ public static readonly DependencyProperty IsHasMultipleColorsSegmentsProperty =
+ DependencyProperty.Register("IsHasMultipleColorsSegments", typeof(bool), typeof(RunningJobViewerEureka), new PropertyMetadata(false));
+
+
+
+ public double JobUnitLength
+ {
+ get { return (double)GetValue(JobUnitLengthProperty); }
+ set { SetValue(JobUnitLengthProperty, value); }
+ }
+
+ // Using a DependencyProperty as the backing store for JobUnitLength. This enables animation, styling, binding, etc...
+ public static readonly DependencyProperty JobUnitLengthProperty =
+ DependencyProperty.Register("JobUnitLength", typeof(double), typeof(RunningJobViewerEureka), new FrameworkPropertyMetadata(0.0));
+
+
+
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="RunningJobViewerEureka"/> class.
+ /// </summary>
+ public RunningJobViewerEureka()
+ {
+ InitializeComponent();
+ }
+
+ private void SliderContentControl_MouseDown(object sender, MouseButtonEventArgs e)
+ {
+ e.Handled = true;
+ }
+
+ private void SliderContentControl_TouchDown(object sender, TouchEventArgs e)
+ {
+ e.Handled = true;
+ }
+
+
+ private void OnSliderValueChanged()
+ {
+ if(slider_control != null)
+ {
+ slider_control.Value = SliderValue;
+ if(RunningJobStatus != null && RunningJobStatus.IsSettingUp == false && IsHasMultipleColorsSegments && ColorCanvas != null && ControlWidth > 0 && RunningJobStatus.CurrentUnitProgress > 0.01 && RunningJobStatus.CurrentUnitTotalProgress > 0)
+ {
+ double progress = RunningJobStatus.CurrentUnitProgress;
+ double total = RunningJobStatus.CurrentUnitTotalProgress;
+
+ int currentUnit = RunningJobStatus.CurrentUnit;
+ int totalUnits = RunningJobStatus.RemainingUnits + RunningJobStatus.CurrentUnit;//Job.NumberOfUnits;
+
+ double simpleoffset = ((progress / total) * ControlWidth) ;
+
+ double multiplier = (((double)(totalUnits - 1)) / (double)totalUnits);
+ double offset = simpleoffset * multiplier;
+
+ if(_prevUnit < currentUnit)
+ {
+ if(_prevOffset == 0)//resume
+ {
+ _prevOffset = ControlWidth * (1-multiplier) * currentUnit;
+ }
+ _addOffset = _prevOffset;
+ }
+ // Debug.WriteLine($"OnSliderValueChanged Offset: '{offset}' CurrentUnitProgress = {RunningJobStatus.CurrentUnitProgress} progress= {progress} currentUnit = {currentUnit}, total:{total}");
+ offset += _addOffset;
+
+ if (offset >= ControlWidth && currentUnit < (Job.NumberOfUnits - 2))
+ {
+ offset -= ControlWidth;//round
+ // Debug.WriteLine($"OnSliderValueChanged round!!! offset: '{offset}' currentUnit = {currentUnit}, total:{total}");
+ }
+
+ //if(currentUnit == (Job.NumberOfUnits - 1))
+ //{
+ // Debug.WriteLine($"OnSliderValueChanged offset: '{offset}' currentUnit = {currentUnit}. ControlWidth = {ControlWidth} total:{total}");
+ //}
+ _prevOffset = offset;
+ _prevUnit = currentUnit;
+
+ ItemsBorder.SetValue(Canvas.LeftProperty, (-1) * offset);
+ ItemsBorder.InvalidateVisual();
+ }
+ }
+ }
+
+ private void Slider_control_SizeChanged(object sender, SizeChangedEventArgs e)
+ {
+ ControlWidth = e.NewSize.Width;
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/CollectionToCountConverter.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/CollectionToCountConverter.cs
new file mode 100644
index 000000000..b227aa5f8
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/CollectionToCountConverter.cs
@@ -0,0 +1,30 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Data;
+
+namespace Tango.PPC.UI.Converters
+{
+ public class CollectionToCountConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ var collection = value as System.Collections.ICollection;
+ if (collection != null)
+ {
+ return collection.Count;
+ }
+ return 0;
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/ComapareModulNameConverter.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/ComapareModulNameConverter.cs
new file mode 100644
index 000000000..8ac8a44b0
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/ComapareModulNameConverter.cs
@@ -0,0 +1,44 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Data;
+using Tango.PPC.Common;
+
+namespace Tango.PPC.UI.Converters
+{
+ public class ComapareModulNameConverter : IMultiValueConverter
+ {
+ public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
+ {
+ try
+ {
+ if (values.Count() == 2)
+ {
+ IPPCModule CurrentModule = values[0] as IPPCModule;
+ string name = System.Convert.ToString(values[1]);
+
+ if (CurrentModule != null)
+ {
+ bool compare = String.Compare(CurrentModule.Name, name, true) == 0;
+ return compare;
+ }
+ }
+
+ return "false";
+ }
+ catch
+ {
+ return "false";
+ }
+ }
+
+ public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/DoubleWidthConverter.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/DoubleWidthConverter.cs
new file mode 100644
index 000000000..3ddcc5f3c
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/DoubleWidthConverter.cs
@@ -0,0 +1,24 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Data;
+
+namespace Tango.PPC.UI.Converters
+{
+ public class DoubleWidthConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ double length = System.Convert.ToDouble(value);
+ return length * 2;
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/LengthToWeightConverter.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/LengthToWeightConverter.cs
new file mode 100644
index 000000000..82a947e97
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/LengthToWeightConverter.cs
@@ -0,0 +1,35 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Data;
+
+namespace Tango.PPC.UI.Converters
+{
+ public class LengthToWeightConverter : IMultiValueConverter
+ {
+ public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
+ {
+ try
+ {
+ double length = System.Convert.ToDouble(values[0]);
+ double coef = System.Convert.ToDouble(values[1]);
+ int spools = System.Convert.ToInt32(values[2]);
+ var weight = ((double)length * spools * coef) / (1000 );//(g)
+ return weight;
+ }
+ catch (Exception ex)
+ {
+ return "-";
+ }
+ }
+
+ public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/LengthWithSpoolsConverter.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/LengthWithSpoolsConverter.cs
new file mode 100644
index 000000000..48e9bce7b
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/LengthWithSpoolsConverter.cs
@@ -0,0 +1,33 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Data;
+
+namespace Tango.PPC.UI.Converters
+{
+ public class LengthWithSpoolsConverter : IMultiValueConverter
+ {
+ public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
+ {
+ try
+ {
+ double length = System.Convert.ToDouble(values[0]);
+ double spools = System.Convert.ToDouble(values[1]);
+ return length * spools;
+ }
+ catch
+ {
+ return 0d;
+ }
+ }
+
+ public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/LiquidTypeToBrushConverter.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/LiquidTypeToBrushConverter.cs
new file mode 100644
index 000000000..75846431f
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/LiquidTypeToBrushConverter.cs
@@ -0,0 +1,58 @@
+using System;
+using System.Globalization;
+using System.Windows;
+using System.Windows.Data;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using Tango.BL.Entities;
+using Tango.SharedUI.Helpers;
+
+namespace Tango.PPC.UI.Converters
+{
+ public class LiquidTypeToBrushConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ if (value is LiquidType)
+ {
+ LiquidType type = value as LiquidType;
+ switch (type.Type)
+ {
+ case BL.Enumerations.LiquidTypes.Lubricant:
+ {
+ return Application.Current.Resources["TangoLubricantBrush"] as Brush;
+ }
+ case BL.Enumerations.LiquidTypes.Cleaner:
+ {
+ return Application.Current.Resources["TangoCleanerBrush"] as Brush;
+ }
+ case BL.Enumerations.LiquidTypes.Yellow:
+ return Application.Current.Resources["TangoYellowInkBrush"] as Brush;
+ case BL.Enumerations.LiquidTypes.Cyan:
+ return Application.Current.Resources["TangoCyanInkBrush"] as Brush;
+ case BL.Enumerations.LiquidTypes.Magenta:
+ return Application.Current.Resources["TangoMagentaInkBrush"] as Brush;
+ case BL.Enumerations.LiquidTypes.LightCyan:
+ return Application.Current.Resources["TangoLightCyanInkBrush"] as Brush;
+ case BL.Enumerations.LiquidTypes.LightMagenta:
+ return Application.Current.Resources["TangoLightMagentaInkBrush"] as Brush;
+ case BL.Enumerations.LiquidTypes.LightYellow:
+ return Application.Current.Resources["TangoLightYellowInkBrush"] as Brush;
+ }
+
+
+ return new SolidColorBrush(type.LiquidTypeColor);
+ }
+ return null;
+
+ }
+
+
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/MidTankLevelToElementRectConverter.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/MidTankLevelToElementRectConverter.cs
new file mode 100644
index 000000000..93576a8fb
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/MidTankLevelToElementRectConverter.cs
@@ -0,0 +1,37 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Data;
+using Tango.Integration.Operation;
+
+namespace Tango.PPC.UI.Converters
+{
+ public class MidTankLevelToElementRectConverter : IMultiValueConverter
+ {
+ public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
+ {
+ try
+ {
+ double actualHeight = (double)values[0];
+ double actualWidth = (double)values[1];
+ double maxLiters = (double)values[3];
+ double midTankLevel = Math.Min((double)values[2], maxLiters);
+
+ var offset = actualHeight - (midTankLevel / maxLiters) * actualHeight;
+ return new System.Windows.Rect(1, offset, actualWidth, actualHeight);
+ }
+ catch
+ {
+ return 0d;
+ }
+ }
+
+ public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/ProgressBorderWidthConverter.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/ProgressBorderWidthConverter.cs
new file mode 100644
index 000000000..3345798eb
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/ProgressBorderWidthConverter.cs
@@ -0,0 +1,24 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Data;
+
+namespace Tango.PPC.UI.Converters
+{
+ public class ProgressBorderWidthConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ double length = System.Convert.ToDouble(value);
+ return length * 3;
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/ProgressLengthSpoolConverter.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/ProgressLengthSpoolConverter.cs
new file mode 100644
index 000000000..377d02d81
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/ProgressLengthSpoolConverter.cs
@@ -0,0 +1,62 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Data;
+
+namespace Tango.PPC.UI.Converters
+{
+ public class ProgressLengthSpoolConverter : IMultiValueConverter
+ {
+ public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
+ {
+ try
+ {
+ if (values.Count() == 2)
+ {
+ double length = System.Convert.ToDouble(values[0]);
+ bool forOneSpool = System.Convert.ToBoolean(values[1]);
+ var totalBy4Spools = (double)length*4;// spools ;
+ if (forOneSpool)
+ {
+ return (double)totalBy4Spools / 4;
+ }
+ return totalBy4Spools;
+
+ }
+ if (values.Count() == 3)
+ {
+ double length = System.Convert.ToDouble(values[0]);
+ bool forOneSpool = System.Convert.ToBoolean(values[1]);
+ double currentProgresslength = System.Convert.ToDouble(values[2]) ;
+
+ var totalBy4Spools = (double)length * 4;
+ var currentProgressBy4Spools = (double)currentProgresslength * 4 ;
+
+ int coeff = (int)currentProgressBy4Spools / (int)totalBy4Spools;
+ var progressCurrent = (coeff == 0 || coeff == 1) ? currentProgressBy4Spools : currentProgressBy4Spools % (coeff * totalBy4Spools);//show for progress
+
+ if (forOneSpool)
+ {
+ return (double)progressCurrent / 4;
+
+ }
+ return progressCurrent;
+ }
+ return "-";
+ }
+ catch
+ {
+ return "-";
+ }
+ }
+
+ public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/ProgressUnitSpoolConverter.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/ProgressUnitSpoolConverter.cs
new file mode 100644
index 000000000..d0cc8284e
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/ProgressUnitSpoolConverter.cs
@@ -0,0 +1,40 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Data;
+
+namespace Tango.PPC.UI.Converters
+{
+ public class ProgressUnitSpoolConverter : IMultiValueConverter
+ {
+ public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
+ {
+ try
+ {
+ if (values.Count() == 1)//may be added count of spools
+ {
+ int CurrentUnit = System.Convert.ToInt16(values[0]);
+
+ var totalBy4Spools = (double)CurrentUnit * 4;// spools ;
+
+ return totalBy4Spools.ToString();
+
+ }
+
+ return "-";
+ }
+ catch
+ {
+ return "-";
+ }
+ }
+
+ public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/ProgressWeightSpoolConverter.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/ProgressWeightSpoolConverter.cs
new file mode 100644
index 000000000..f451fe0d9
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/ProgressWeightSpoolConverter.cs
@@ -0,0 +1,67 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Data;
+
+
+namespace Tango.PPC.UI.Converters
+{
+ public class ProgressWeightSpoolConverter : IMultiValueConverter
+ {
+ public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
+ {
+ try
+ {
+ if (values.Count() == 3)
+ {
+ double length = System.Convert.ToDouble(values[0]);
+ bool forOneSpool = System.Convert.ToBoolean(values[1]);
+ double coef = System.Convert.ToDouble(values[2]);
+ var totalBy4Spools = (double)length * 4;// spools ;
+
+ var weight = ((double)totalBy4Spools * coef) / (1000);//(g)
+ if (forOneSpool)
+ {
+ return (double)weight / 4;
+ }
+ return weight;
+
+ }
+ if (values.Count() == 4)
+ {
+ double length = System.Convert.ToDouble(values[0]);
+ bool forOneSpool = System.Convert.ToBoolean(values[1]);
+ double currentProgresslength = System.Convert.ToDouble(values[2]);
+ double coef = System.Convert.ToDouble(values[3]);
+
+ var totalBy4Spools = (double)length * 4;
+ var currentProgressBy4Spools = (double)currentProgresslength * 4;
+
+ int coeff = (int)currentProgressBy4Spools / (int)totalBy4Spools;
+ var progressCurrent = (coeff == 0 || coeff == 1) ? currentProgressBy4Spools : currentProgressBy4Spools % (coeff * totalBy4Spools);//show for progress
+ var weight = ((double)progressCurrent * coef) / (1000);//(g)
+ if (forOneSpool)
+ {
+ return (double)weight / 4;
+
+ }
+ return weight;
+ }
+ return "-";
+ }
+ catch
+ {
+ return "-";
+ }
+ }
+
+ public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/StatisticTabToVisibilityConverter.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/StatisticTabToVisibilityConverter.cs
new file mode 100644
index 000000000..06c75a999
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Converters/StatisticTabToVisibilityConverter.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Data;
+using static Tango.PPC.UI.ViewModels.MachineStatusViewVM;
+
+namespace Tango.PPC.UI.Converters
+{
+ public class StatisticTabToVisibilityConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ StatisticTab selected = (StatisticTab)Enum.Parse(typeof(StatisticTab), parameter.ToString());
+ StatisticTab statTab = (StatisticTab)value;
+
+ return statTab.Equals(selected) ? Visibility.Visible : Visibility.Hidden;
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/GeneralInformationView.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/GeneralInformationView.xaml
new file mode 100644
index 000000000..85d905841
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/GeneralInformationView.xaml
@@ -0,0 +1,279 @@
+<UserControl x:Class="Tango.PPC.UI.Dialogs.GeneralInformationView"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:touch="clr-namespace:Tango.Touch.Controls;assembly=Tango.Touch"
+ xmlns:local="clr-namespace:Tango.PPC.UI.Dialogs"
+ mc:Ignorable="d"
+ Background="{StaticResource TangoPrimaryBackgroundBrush}" Width="750" Height="1000" d:DataContext="{d:DesignInstance Type=local:GeneralInformationViewVM, IsDesignTimeCreatable=False}">
+ <Grid Margin="20">
+ <DockPanel>
+
+ <Grid DockPanel.Dock="Bottom" Margin="0 20 0 0">
+ <touch:TouchButton HorizontalAlignment="Center" CornerRadius="25" Command="{Binding CloseCommand}" Style="{StaticResource TangoHollowButton}" Width="180" Height="50" VerticalAlignment="Bottom">CLOSE</touch:TouchButton>
+ </Grid>
+
+ <StackPanel DockPanel.Dock="Top" HorizontalAlignment="Center">
+ <Image Source="../Images/logo.png" RenderOptions.BitmapScalingMode="Fant" Width="157" Height="51" Stretch="Uniform" HorizontalAlignment="Center" Margin="0 10 0 10"/>
+
+ </StackPanel>
+
+ <StackPanel Margin="0 20 0 0" Orientation="Vertical">
+ <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" Margin="0 30 0 0" FontSize="{StaticResource TangoDialogFontSize}">Machine information:</TextBlock>
+ <FlowDocumentScrollViewer VerticalScrollBarVisibility="Disabled" Margin="0 10 0 0">
+ <FlowDocument>
+ <Table CellSpacing="2" FontFamily="{StaticResource TangoFlexoFontFamily}">
+ <Table.Resources>
+ <Style TargetType="{x:Type TableRowGroup}">
+ <Setter Property="FontSize" Value="{StaticResource TangoDefaultFontSize}"/>
+ </Style>
+
+ <Style TargetType="TableCell">
+ <Setter Property="BorderThickness" Value="0 0 0 1"></Setter>
+ <Setter Property="BorderBrush" Value="{StaticResource TangoGrayBrush}"></Setter>
+ <Setter Property="Padding" Value="5"></Setter>
+ </Style>
+ </Table.Resources>
+ <Table.Columns>
+ <TableColumn Width="165" />
+ <TableColumn />
+ <TableColumn />
+ </Table.Columns>
+
+ <TableRowGroup>
+ <TableRow>
+ <TableCell>
+ <Paragraph>
+ <TextBlock>Machine S/N:</TextBlock>
+ </Paragraph>
+ </TableCell>
+
+ <TableCell>
+ <Paragraph>
+ <TextBlock Text="{Binding MachineProvider.Machine.SerialNumber,Mode=OneWay,IsAsync=True,FallbackValue='0000'}"/>
+ </Paragraph>
+ </TableCell>
+ </TableRow>
+ <TableRow>
+ <TableCell>
+ <Paragraph>
+ <TextBlock>Site:</TextBlock>
+ </Paragraph>
+ </TableCell>
+
+ <TableCell>
+ <Paragraph>
+ <TextBlock Text="{Binding SiteName,Mode=OneWay,TargetNullValue='N/A',FallbackValue='N/A'}"/>
+ </Paragraph>
+ </TableCell>
+ </TableRow>
+
+ <TableRow>
+ <TableCell>
+ <Paragraph>
+ <TextBlock>Environment:</TextBlock>
+ </Paragraph>
+ </TableCell>
+
+ <TableCell>
+ <Paragraph>
+ <TextBlock Text="{Binding Settings.DeploymentSlot,Converter={StaticResource EnumToDescriptionConverter},Mode=OneWay,TargetNullValue='N/A',FallbackValue='N/A'}"/>
+ </Paragraph>
+ </TableCell>
+ </TableRow>
+ <TableRow>
+ <TableCell>
+ <Paragraph>
+ <TextBlock>IP Address:</TextBlock>
+ </Paragraph>
+ </TableCell>
+
+ <TableCell>
+ <Paragraph>
+ <TextBlock Text="{Binding IPAddress,Mode=OneWay,FallbackValue=0}"></TextBlock>
+ </Paragraph>
+ </TableCell>
+ </TableRow>
+ <TableRow>
+ <TableCell>
+ <Paragraph>
+ <TextBlock>Up Time:</TextBlock>
+ </Paragraph>
+ </TableCell>
+
+ <TableCell>
+ <Paragraph>
+ <TextBlock Text="{Binding UpTime,Mode=OneWay,StringFormat=hh\\:mm\\:ss,FallbackValue='00:00:00'}"></TextBlock>
+ </Paragraph>
+ </TableCell>
+ </TableRow>
+
+
+ <TableRow>
+ <TableCell>
+ <Paragraph>
+ <TextBlock>Total Dye Time:</TextBlock>
+ </Paragraph>
+ </TableCell>
+
+ <TableCell>
+ <Paragraph>
+ <TextBlock Text="{Binding TotalDyeTime,Mode=OneWay,FallbackValue=0}"></TextBlock>
+ </Paragraph>
+ </TableCell>
+ </TableRow>
+
+ <TableRow>
+ <TableCell>
+ <Paragraph>
+ <TextBlock>Total Dye Meters:</TextBlock>
+ </Paragraph>
+ </TableCell>
+
+ <TableCell>
+ <Paragraph>
+ <TextBlock Text="{Binding TotalDyeMeters,Mode=OneWay,FallbackValue=0}"></TextBlock>
+ </Paragraph>
+ </TableCell>
+ </TableRow>
+
+ </TableRowGroup>
+ </Table>
+ </FlowDocument>
+ </FlowDocumentScrollViewer>
+ <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" Margin="0 20 0 0" FontSize="{StaticResource TangoDialogFontSize}">Installed Software &amp; Firmware:</TextBlock>
+ <FlowDocumentScrollViewer VerticalScrollBarVisibility="Disabled" Margin="0 10 0 0">
+ <FlowDocument>
+ <Table CellSpacing="2" FontFamily="{StaticResource TangoFlexoFontFamily}">
+ <Table.Resources>
+ <Style TargetType="{x:Type TableRowGroup}">
+ <Setter Property="FontSize" Value="{StaticResource TangoDefaultFontSize}"/>
+ </Style>
+
+ <Style TargetType="TableCell">
+ <Setter Property="BorderThickness" Value="0 0 0 1"></Setter>
+ <Setter Property="BorderBrush" Value="{StaticResource TangoGrayBrush}"></Setter>
+ <Setter Property="Padding" Value="5"></Setter>
+ </Style>
+ </Table.Resources>
+ <Table.Columns>
+ <TableColumn Width="165" />
+ <TableColumn />
+ <TableColumn />
+ </Table.Columns>
+
+ <TableRowGroup>
+ <TableRow>
+ <TableCell>
+ <Paragraph>
+ <TextBlock>Application Version:</TextBlock>
+ </Paragraph>
+ </TableCell>
+
+ <TableCell>
+ <Paragraph>
+ <TextBlock Text="{Binding ApplicationManager.VersionAndTag,Mode=OneWay,TargetNullValue='N/A',FallbackValue='N/A'}"/>
+ </Paragraph>
+ </TableCell>
+ </TableRow>
+ <TableRow>
+ <TableCell>
+ <Paragraph>
+ <TextBlock>Main Firmware:</TextBlock>
+ </Paragraph>
+ </TableCell>
+
+ <TableCell>
+ <Paragraph>
+ <TextBlock Text="{Binding MachineProvider.MachineOperator.DeviceInformation.Version,Mode=OneWay,TargetNullValue='N/A',FallbackValue='N/A'}"/>
+ </Paragraph>
+ </TableCell>
+ </TableRow>
+
+ <TableRow>
+ <TableCell>
+ <Paragraph>
+ <TextBlock>Head Firmware:</TextBlock>
+ </Paragraph>
+ </TableCell>
+
+ <TableCell>
+ <Paragraph>
+ <TextBlock Text="{Binding HeadFirmware,Mode=OneWay,TargetNullValue='N/A',FallbackValue='N/A'}"/>
+ </Paragraph>
+ </TableCell>
+ </TableRow>
+ <TableRow>
+ <TableCell>
+ <Paragraph>
+ <TextBlock>Dryer Firmware:</TextBlock>
+ </Paragraph>
+ </TableCell>
+
+ <TableCell>
+ <Paragraph>
+ <TextBlock Text="{Binding DryerFirmware,Mode=OneWay,TargetNullValue='N/A',FallbackValue='N/A'}"/>
+ </Paragraph>
+ </TableCell>
+ </TableRow>
+ <TableRow>
+ <TableCell>
+ <Paragraph>
+ <TextBlock>Mid-tanks Firmware:</TextBlock>
+ </Paragraph>
+ </TableCell>
+
+ <TableCell>
+ <Paragraph>
+ <TextBlock Text="{Binding MidtanksFirmware,Mode=OneWay,TargetNullValue='N/A',FallbackValue='N/A'}"/>
+ </Paragraph>
+ </TableCell>
+ </TableRow>
+ <TableRow>
+ <TableCell>
+ <Paragraph>
+ <TextBlock>Lubricant Firmware:</TextBlock>
+ </Paragraph>
+ </TableCell>
+
+ <TableCell>
+ <Paragraph>
+ <TextBlock Text="{Binding LubricantFirmware,Mode=OneWay,TargetNullValue='N/A',FallbackValue='N/A'}"/>
+ </Paragraph>
+ </TableCell>
+ </TableRow>
+ <TableRow>
+ <TableCell>
+ <Paragraph>
+ <TextBlock Text="Dispensers Firmware:"></TextBlock>
+ </Paragraph>
+ </TableCell>
+
+ <TableCell>
+ <Paragraph>
+ <TextBlock Text="{Binding DispensersFWFirmware,Mode=OneWay,TargetNullValue='N/A',FallbackValue='N/A'}"/>
+ </Paragraph>
+ </TableCell>
+ </TableRow>
+ <TableRow>
+ <TableCell>
+ <Paragraph>
+ <TextBlock>Winders Firmware:</TextBlock>
+ </Paragraph>
+ </TableCell>
+
+ <TableCell>
+ <Paragraph>
+ <TextBlock Text="{Binding WindersFWFirmware,Mode=OneWay,TargetNullValue='N/A',FallbackValue='N/A'}"/>
+ </Paragraph>
+ </TableCell>
+ </TableRow>
+ </TableRowGroup>
+ </Table>
+ </FlowDocument>
+ </FlowDocumentScrollViewer>
+ </StackPanel>
+ </DockPanel>
+ </Grid>
+</UserControl>
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/GeneralInformationView.xaml.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/GeneralInformationView.xaml.cs
new file mode 100644
index 000000000..3e01d9b93
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/GeneralInformationView.xaml.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace Tango.PPC.UI.Dialogs
+{
+ /// <summary>
+ /// Interaction logic for GeneralInformationView.xaml
+ /// </summary>
+ public partial class GeneralInformationView : UserControl
+ {
+ public GeneralInformationView()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/GeneralInformationViewVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/GeneralInformationViewVM.cs
new file mode 100644
index 000000000..1fd826af2
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/GeneralInformationViewVM.cs
@@ -0,0 +1,240 @@
+using System;
+using System.Data.Entity;
+using System.Linq;
+using Tango.BL;
+using Tango.BL.Entities;
+using Tango.Core.DI;
+using Tango.Integration.Operation;
+using Tango.PMR.Diagnostics;
+using Tango.PPC.Common;
+using Tango.PPC.Common.Application;
+using Tango.PPC.Common.Connection;
+using Tango.PPC.Common.Notifications;
+using Tango.Settings;
+using Tango.SharedUI;
+using Tango.PPC.Common.UWF;
+using Tango.Core.Commands;
+using Tango.PPC.Common.OS;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Management;
+using System.Net;
+using System.Net.Sockets;
+using System.Text;
+using System.Threading.Tasks;
+using System.Timers;
+using Tango.PMR.FirmwareUpgrade;
+
+namespace Tango.PPC.UI.Dialogs
+{
+ public class GeneralInformationViewVM : DialogViewVM
+ {
+ [TangoInject]
+ public IMachineProvider MachineProvider { get; set; }
+
+ [TangoInject]
+ public IPPCApplicationManager ApplicationManager { get; set; }
+
+ private PPCSettings _settings;
+ /// <summary>
+ /// Gets the main PPC settings.
+ /// </summary>
+ public PPCSettings Settings
+ {
+ get
+ {
+ if (_settings == null)
+ {
+ _settings = SettingsManager.Default.GetOrCreate<PPCSettings>();
+ }
+
+ return _settings;
+ }
+ private set { _settings = value; }
+ }
+
+ public Site CurrentSite { get; set; }
+
+ public String SiteName
+ {
+ get { return CurrentSite == null ? "" : CurrentSite.Name; }
+ }
+
+ private String _ipAddress;
+ public String IPAddress
+ {
+ get { return _ipAddress; }
+ set { _ipAddress = value; RaisePropertyChangedAuto(); }
+ }
+
+ private String _totalDyeTime;
+ public String TotalDyeTime
+ {
+ get { return _totalDyeTime; }
+ set { _totalDyeTime = value; RaisePropertyChangedAuto(); }
+ }
+
+ private String _totalDyeMeters;
+ public String TotalDyeMeters
+ {
+ get { return _totalDyeMeters; }
+ set { _totalDyeMeters = value; RaisePropertyChangedAuto(); }
+ }
+
+ private TimeSpan _upTime;
+ public TimeSpan UpTime
+ {
+ get { return _upTime; }
+ set { _upTime = value; RaisePropertyChangedAuto(); }
+ }
+ private string _headFirmware;
+
+ public string HeadFirmware
+ {
+ get { return _headFirmware; }
+ set { _headFirmware = value; RaisePropertyChangedAuto(); }
+ }
+
+ private string _dryerFirmware;
+
+ public string DryerFirmware
+ {
+ get { return _dryerFirmware; }
+ set { _dryerFirmware = value; RaisePropertyChangedAuto(); }
+ }
+
+ private string _MidtanksFirmware;
+
+ public string MidtanksFirmware
+ {
+ get { return _MidtanksFirmware; }
+ set { _MidtanksFirmware = value; RaisePropertyChangedAuto(); }
+ }
+
+ private string _lubricantFirmware;
+
+ public string LubricantFirmware
+ {
+ get { return _lubricantFirmware; }
+ set { _lubricantFirmware = value; RaisePropertyChangedAuto(); }
+ }
+
+ private string _dispensersFWFirmware;
+
+ public string DispensersFWFirmware
+ {
+ get { return _dispensersFWFirmware; }
+ set { _dispensersFWFirmware = value; RaisePropertyChangedAuto(); }
+ }
+
+ private string _windersFWFirmware;
+
+ public string WindersFWFirmware
+ {
+ get { return _windersFWFirmware; }
+ set { _windersFWFirmware = value; RaisePropertyChangedAuto(); }
+ }
+
+ public GeneralInformationViewVM( IMachineProvider provider, IPPCApplicationManager appManager)
+ {
+ MachineProvider = provider;
+ ApplicationManager = appManager;
+ InitSite();
+
+ IPAddress = GetIpv4Address();
+ InitTotalDyeProp();
+ UpTime = DateTime.Now - ApplicationManager.StartUpDate;
+ }
+ public override void OnShow()
+ {
+ base.OnShow();
+ GetFirmwareVersionDescriptors();
+ }
+
+ public async void InitSite()
+ {
+ if (CurrentSite == null)
+ {
+ var machine = MachineProvider.Machine;
+ if (machine != null && !String.IsNullOrEmpty(machine.SiteGuid))
+ {
+ using (ObservablesContext db = ObservablesContext.CreateDefault())
+ {
+ var site = (await db.Sites.Where(x => x.Guid == machine.SiteGuid).ToListAsync()).FirstOrDefault();
+ CurrentSite = site;
+ RaisePropertyChanged(nameof(SiteName));
+ }
+ }
+ }
+ }
+
+ public String GetIpv4Address()
+ {
+ try
+ {
+ var host = Dns.GetHostEntry(Dns.GetHostName());
+ foreach (var ip in host.AddressList)
+ {
+ if (ip.AddressFamily == AddressFamily.InterNetwork)
+ {
+ return ip.ToString();
+ }
+ }
+ return "N/A";
+ }
+ catch (Exception ex)
+ {
+ return "N/A";
+ }
+ }
+
+ public async void InitTotalDyeProp()
+ {
+ try
+ {
+ using (ObservablesContext db = ObservablesContext.CreateDefault())
+ {
+ var jobRuns = await db.JobRuns.Select(x => new { x.StartDate, x.EndDate, x.EndPosition }).ToListAsync();
+
+ TotalDyeTime = TimeSpan.FromHours(jobRuns.Select(x => x.EndDate - x.StartDate).Sum(x => x.TotalHours)).ToStringUnlimitedHours();
+
+ int meters = (int)jobRuns.Select(x => x.EndPosition).Sum();
+ TotalDyeMeters = $"{meters.ToString("N0")} meters";
+ }
+ }
+ catch (Exception ex)
+ {
+ LogManager.Log(ex, "Error loading machine counters.");
+ TotalDyeTime = "error!";
+ TotalDyeMeters = "error!";
+ }
+ }
+
+ public async void GetFirmwareVersionDescriptors()
+ {
+ try
+ {
+ var descriptors = await MachineProvider.MachineOperator.GetFirmwareVersionDescriptors();
+
+ HeadFirmware = GetVersionByFileDescriptor(descriptors, VersionFileDestination.HeadCardSw);
+ DryerFirmware = GetVersionByFileDescriptor(descriptors, VersionFileDestination.DryerCardSw);
+ MidtanksFirmware = GetVersionByFileDescriptor(descriptors, VersionFileDestination.MidTankCardSw);
+ LubricantFirmware = GetVersionByFileDescriptor(descriptors, VersionFileDestination.LubricantCardSw);
+ DispensersFWFirmware = GetVersionByFileDescriptor(descriptors, VersionFileDestination.PumpCardSw);
+ WindersFWFirmware = GetVersionByFileDescriptor(descriptors, VersionFileDestination.WinderCardSw);
+ }
+ catch (Exception ex)
+ {
+ LogManager.Log(ex, "GetFirmwareVersionDescriptors");
+ }
+ }
+ private String GetVersionByFileDescriptor(List<VersionFileDescriptor> descriptors, VersionFileDestination dtype)
+ {
+ var descriptor = descriptors.Where(x => x.Destination == VersionFileDestination.HeadCardSw).FirstOrDefault();
+ return descriptor != null ? descriptor.Version : "";
+ }
+
+
+ }
+}
+
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/PowerEurekaView.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/PowerEurekaView.xaml
new file mode 100644
index 000000000..3ef594046
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/PowerEurekaView.xaml
@@ -0,0 +1,66 @@
+<UserControl x:Class="Tango.PPC.UI.Dialogs.PowerEurekaView"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:touch="clr-namespace:Tango.Touch.Controls;assembly=Tango.Touch"
+ xmlns:local="clr-namespace:Tango.PPC.UI.Dialogs"
+ mc:Ignorable="d"
+ Width="500" Height="625"
+ Background="{StaticResource TangoPrimaryBackgroundBrush}" d:DesignHeight="555" d:DesignWidth="500" d:DataContext="{d:DesignInstance Type=local:PowerEurekaViewVM, IsDesignTimeCreatable=False}">
+ <UserControl.Resources>
+
+ <Style TargetType="touch:TouchButton" >
+ <Setter Property="Foreground" Value="{StaticResource TangoLightForegroundBrush}"></Setter>
+ <Setter Property="Background" Value="{StaticResource TangoPrimaryAccentBrush}"/>
+ <Setter Property="Height" Value="50"/>
+ <Setter Property="Width" Value="165"/>
+ <Setter Property="CornerRadius" Value="30"/>
+ <Setter Property="EnableDropShadow" Value="False"/>
+ <Setter Property="BorderThickness" Value="0"/>
+ <Setter Property="FontSize" Value="18"/>
+ <Style.Triggers>
+ <Trigger Property="IsEnabled" Value="False">
+ <Setter Property="Foreground" Value="{StaticResource TangoDisabledForegroundBrush}"></Setter>
+ <Setter Property="Background" Value="{StaticResource TangoDisabledBackgroundBrush}"></Setter>
+ </Trigger>
+ </Style.Triggers>
+ </Style>
+
+ </UserControl.Resources>
+ <Grid>
+
+ <Border BorderBrush="{StaticResource TangoMidAccentBrush}" Margin="-24" CornerRadius="40" BorderThickness="1" Background="{StaticResource TangoPrimaryBackgroundBrush}">
+ <StackPanel Orientation="Vertical" HorizontalAlignment="Center" Margin="10">
+ <DockPanel VerticalAlignment="Top" Margin="0 20 0 18" Width="470">
+ <touch:TouchIconButton DockPanel.Dock="Right" VerticalAlignment="Center" Height="25" Width="25" Command="{Binding CloseCommand}" Foreground="{StaticResource TangoDarkForegroundBrush}" RippleBrush="{StaticResource TangoRippleDarkBrush}" Icon="Close" HorizontalAlignment="Right" />
+ <TextBlock FontSize="{StaticResource TangoButtonFontSize}" FontWeight="SemiBold" HorizontalAlignment="Center"> Power</TextBlock>
+ </DockPanel>
+ <UniformGrid Rows="3" >
+ <Grid VerticalAlignment="Top" Margin="0 30 0 0">
+ <Image Source="../Images/Menu/AppPower_image.png" Stretch="UniformToFill" HorizontalAlignment="Left" Width="120" VerticalAlignment="Center" Margin="0 0 0 0"/>
+ <touch:TouchButton Margin="0" Command="{Binding MinimizeCommand}">Minimize</touch:TouchButton>
+ </Grid>
+ <touch:TouchButton Margin="0 35 0 0" Command="{Binding RestartTabletCommand}">Restart UI</touch:TouchButton>
+ <touch:TouchButton Margin="0 35 0 0" Command="{Binding CloseAppCommand}">Close</touch:TouchButton>
+ </UniformGrid>
+
+ <Border Height="2" Width="380" Background="{StaticResource TangoLightBorderBrush}" VerticalAlignment="Bottom" Margin="0 36 0 0" CornerRadius="2"></Border>
+
+ <UniformGrid Rows="3">
+ <Grid HorizontalAlignment="Center" Width="470" VerticalAlignment="Top" Margin="0 30 0 0">
+ <Image Source="../Images/Menu/Power_image.png" Stretch="UniformToFill" VerticalAlignment="Center" HorizontalAlignment="Left" Height="50" Width="120"/>
+ <touch:TouchButton Margin="0" Command="{Binding StandByCommand}" HorizontalAlignment="Center">Power Save</touch:TouchButton>
+ </Grid>
+ <touch:TouchButton Margin="0 35 0 0" Command="{Binding RestartCommand}">Restart FW</touch:TouchButton>
+ <touch:TouchButton Margin="0 35 0 0" Content="Turn Off" Command="{Binding TurnOffCommand}" ></touch:TouchButton>
+
+ </UniformGrid>
+
+ </StackPanel>
+
+
+ </Border>
+
+ </Grid>
+</UserControl>
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/PowerEurekaView.xaml.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/PowerEurekaView.xaml.cs
new file mode 100644
index 000000000..3279207bd
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/PowerEurekaView.xaml.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace Tango.PPC.UI.Dialogs
+{
+ /// <summary>
+ /// Interaction logic for PowerEurekaView.xaml
+ /// </summary>
+ public partial class PowerEurekaView : UserControl
+ {
+ public PowerEurekaView()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/PowerEurekaViewVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/PowerEurekaViewVM.cs
new file mode 100644
index 000000000..292c4b2d6
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/PowerEurekaViewVM.cs
@@ -0,0 +1,85 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using Tango.Core.Commands;
+using Tango.SharedUI;
+
+namespace Tango.PPC.UI.Dialogs
+{
+ public class PowerEurekaViewVM : DialogViewVM
+ {
+ public enum PowerActionEnum { TurnOff, StandBy, Restart, RestartT, CloseApp };
+
+ private PowerActionEnum _powerAction;
+
+ public PowerActionEnum PowerAction
+ {
+ get { return _powerAction; }
+ set {
+ _powerAction = value;
+ RaisePropertyChangedAuto();}
+ }
+
+ public RelayCommand TurnOffCommand { get; set;}
+ public RelayCommand StandByCommand { get; set;}
+ public RelayCommand RestartCommand { get; set; }
+ public RelayCommand RestartTabletCommand { get; set; }
+ public RelayCommand MinimizeCommand { get; set; }
+ public RelayCommand CloseAppCommand { get; set; }
+
+
+ public PowerEurekaViewVM()
+ {
+ PowerAction = PowerActionEnum.StandBy;
+ TurnOffCommand = new RelayCommand( OnTurnOff);
+ StandByCommand = new RelayCommand(OnStandBy);
+ RestartCommand = new RelayCommand(OnRestart);
+ RestartTabletCommand = new RelayCommand(OnRestartTablet);
+ MinimizeCommand = new RelayCommand(OnMinimize);
+ CloseAppCommand = new RelayCommand(OnCloseApp);
+ }
+
+ private void OnCloseApp(object obj)
+ {
+ PowerAction = PowerActionEnum.CloseApp;
+ base.Accept();
+ }
+
+ private void OnMinimize(object obj)
+ {
+ Application.Current.MainWindow.WindowState = WindowState.Minimized;
+ }
+
+ private void OnRestartTablet(object obj)
+ {
+ PowerAction = PowerActionEnum.RestartT;
+ base.Accept();
+ }
+
+ private void OnRestart(object obj)
+ {
+ PowerAction = PowerActionEnum.Restart;
+ base.Accept();
+ }
+
+ private void OnStandBy(object obj)
+ {
+ PowerAction = PowerActionEnum.StandBy;
+ base.Accept();
+ }
+
+ private void OnTurnOff(object obj)
+ {
+ PowerAction = PowerActionEnum.TurnOff;
+ base.Accept();
+ }
+
+ protected override void Cancel()
+ {
+ base.Cancel();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Graphs/GraphHelper.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Graphs/GraphHelper.cs
new file mode 100644
index 000000000..d06ed042a
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Graphs/GraphHelper.cs
@@ -0,0 +1,36 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Windows;
+using System.Windows.Media;
+
+namespace Tango.PPC.UI.Graphs
+{
+ public static class GraphHelper
+ {
+ public enum GraphColor
+ {
+ White,
+ Red,
+ Yellow,
+ Green,
+ Orange
+ }
+
+ public static Color GetGraphColor(GraphColor graphColor)
+ {
+ return (Color)Application.Current.Resources[$"Tango_RealTimeGraph_{graphColor.ToString()}"];
+ }
+
+ public static Brush GetGraphBrush(GraphColor graphColor)
+ {
+ return new SolidColorBrush(GetGraphColor(graphColor));
+ }
+
+ public static Color GetGraphStrokeColor()
+ {
+ return (Color)Application.Current.Resources["Tango_RealTimeGraph_ForegroundColor"];
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Graphs/RealTimeGraph.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Graphs/RealTimeGraph.cs
new file mode 100644
index 000000000..7e653f351
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Graphs/RealTimeGraph.cs
@@ -0,0 +1,159 @@
+using RealTimeGraphX;
+using System;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Media;
+
+namespace Tango.PPC.UI.Graphs
+{
+ public class RealTimeGraph : Control
+ {
+ /// <summary>
+ /// Gets or sets the graph controller.
+ /// </summary>
+ public IGraphController Controller
+ {
+ get { return (IGraphController)GetValue(ControllerProperty); }
+ set { SetValue(ControllerProperty, value); }
+ }
+ public static readonly DependencyProperty ControllerProperty =
+ DependencyProperty.Register("Controller", typeof(IGraphController), typeof(RealTimeGraph), new PropertyMetadata(null));
+
+
+ /// <summary>
+ /// Gets or sets the string format of the y-axis.
+ /// </summary>
+ public String StringFormat
+ {
+ get { return (String)GetValue(StringFormatProperty); }
+ set { SetValue(StringFormatProperty, value); }
+ }
+ public static readonly DependencyProperty StringFormatProperty =
+ DependencyProperty.Register("StringFormat", typeof(String), typeof(RealTimeGraph), new PropertyMetadata("0.0"));
+
+
+ /// <summary>
+ /// Gets or sets the display name.
+ /// </summary>
+ public String DisplayName
+ {
+ get { return (String)GetValue(DisplayNameProperty); }
+ set { SetValue(DisplayNameProperty, value); }
+ }
+ public static readonly DependencyProperty DisplayNameProperty =
+ DependencyProperty.Register("DisplayName", typeof(String), typeof(RealTimeGraph), new PropertyMetadata(null));
+
+
+ /// <summary>
+ /// Gets or sets the display units.
+ /// </summary>
+ public String DisplayUnits
+ {
+ get { return (String)GetValue(DisplayUnitsProperty); }
+ set { SetValue(DisplayUnitsProperty, value); }
+ }
+ public static readonly DependencyProperty DisplayUnitsProperty =
+ DependencyProperty.Register("DisplayUnits", typeof(String), typeof(RealTimeGraph), new PropertyMetadata(null));
+
+ /// <summary>
+ /// Gets or sets the graph label visibility.
+ /// </summary>
+ public Visibility GraphLabelVisibility
+ {
+ get { return (Visibility)GetValue(GraphLabelVisibilityProperty); }
+ set { SetValue(GraphLabelVisibilityProperty, value); }
+ }
+ public static readonly DependencyProperty GraphLabelVisibilityProperty =
+ DependencyProperty.Register("GraphLabelVisibility", typeof(Visibility), typeof(RealTimeGraph), new PropertyMetadata(Visibility.Visible));
+
+
+ /// <summary>
+ /// Gets or sets the vertical ticks.
+ /// </summary>
+ public int VerticalTicks
+ {
+ get { return (int)GetValue(VerticalTicksProperty); }
+ set { SetValue(VerticalTicksProperty, value); }
+ }
+ public static readonly DependencyProperty VerticalTicksProperty =
+ DependencyProperty.Register("VerticalTicks", typeof(int), typeof(RealTimeGraph), new PropertyMetadata(10));
+
+
+ /// <summary>
+ /// Gets or sets the horizontal ticks.
+ /// </summary>
+ public int HorizontalTicks
+ {
+ get { return (int)GetValue(HorizontalTicksProperty); }
+ set { SetValue(HorizontalTicksProperty, value); }
+ }
+ public static readonly DependencyProperty HorizontalTicksProperty =
+ DependencyProperty.Register("HorizontalTicks", typeof(int), typeof(RealTimeGraph), new PropertyMetadata(10));
+
+ public Brush GridLinesBrush
+ {
+ get { return (Brush)GetValue(GridLinesBrushProperty); }
+ set { SetValue(GridLinesBrushProperty, value); }
+ }
+ public static readonly DependencyProperty GridLinesBrushProperty =
+ DependencyProperty.Register("GridLinesBrush", typeof(Brush), typeof(RealTimeGraph), new PropertyMetadata(null));
+
+ public Visibility HorizontalAxisVisibility
+ {
+ get { return (Visibility)GetValue(HorizontalAxisVisibilityProperty); }
+ set { SetValue(HorizontalAxisVisibilityProperty, value); }
+ }
+ public static readonly DependencyProperty HorizontalAxisVisibilityProperty =
+ DependencyProperty.Register("HorizontalAxisVisibility", typeof(Visibility), typeof(RealTimeGraph), new PropertyMetadata(Visibility.Visible));
+
+ public double AxisLabelAngle
+ {
+ get { return (double)GetValue(AxisLabelAngleProperty); }
+ set { SetValue(AxisLabelAngleProperty, value); }
+ }
+
+ // Using a DependencyProperty as the backing store for AxisLabelAngle. This enables animation, styling, binding, etc...
+ public static readonly DependencyProperty AxisLabelAngleProperty =
+ DependencyProperty.Register("AxisLabelAngle", typeof(double), typeof(RealTimeGraph), new PropertyMetadata(-30.0));
+
+ public Visibility VerticalAxisVisibility
+ {
+ get { return (Visibility)GetValue(VerticalAxisVisibilityProperty); }
+ set { SetValue(VerticalAxisVisibilityProperty, value); }
+ }
+ public static readonly DependencyProperty VerticalAxisVisibilityProperty =
+ DependencyProperty.Register("VerticalAxisVisibility", typeof(Visibility), typeof(RealTimeGraph), new PropertyMetadata(Visibility.Visible));
+
+ public Visibility CurrentValueVisibility
+ {
+ get { return (Visibility)GetValue(CurrentValueVisibilityProperty); }
+ set { SetValue(CurrentValueVisibilityProperty, value); }
+ }
+ public static readonly DependencyProperty CurrentValueVisibilityProperty =
+ DependencyProperty.Register("CurrentValueVisibility", typeof(Visibility), typeof(RealTimeGraph), new PropertyMetadata(Visibility.Collapsed));
+
+ public double CurrentValueFontSize
+ {
+ get { return (double)GetValue(CurrentValueFontSizeProperty); }
+ set { SetValue(CurrentValueFontSizeProperty, value); }
+ }
+ public static readonly DependencyProperty CurrentValueFontSizeProperty =
+ DependencyProperty.Register("CurrentValueFontSize", typeof(double), typeof(RealTimeGraph), new PropertyMetadata(25.0));
+
+ public Thickness CurrentValueMargin
+ {
+ get { return (Thickness)GetValue(CurrentValueMarginProperty); }
+ set { SetValue(CurrentValueMarginProperty, value); }
+ }
+ public static readonly DependencyProperty CurrentValueMarginProperty =
+ DependencyProperty.Register("CurrentValueMargin", typeof(Thickness), typeof(RealTimeGraph), new PropertyMetadata(new Thickness(20)));
+
+ /// <summary>
+ /// Initializes the <see cref="RealTimeGraph"/> class.
+ /// </summary>
+ static RealTimeGraph()
+ {
+ DefaultStyleKeyProperty.OverrideMetadata(typeof(RealTimeGraph), new FrameworkPropertyMetadata(typeof(RealTimeGraph)));
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Graphs/RealTimeGraph.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Graphs/RealTimeGraph.xaml
new file mode 100644
index 000000000..6d50c4969
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Graphs/RealTimeGraph.xaml
@@ -0,0 +1,106 @@
+<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:realTimeGraphX="clr-namespace:RealTimeGraphX.WPF;assembly=RealTimeGraphX.WPF"
+ xmlns:local="clr-namespace:Tango.PPC.UI.Graphs">
+
+ <BitmapImage x:Key="PPC_Screw" UriSource="../Images/screw.png" />
+
+ <Style TargetType="{x:Type local:RealTimeGraph}">
+ <Setter Property="BorderThickness" Value="1"></Setter>
+ <Setter Property="BorderBrush" Value="{StaticResource Tango_RealTimeGraph_OuterBorderBrush}"></Setter>
+ <Setter Property="Padding" Value="20 20 30 20"></Setter>
+ <Setter Property="FontSize" Value="11"></Setter>
+ <Setter Property="Foreground" Value="{StaticResource Tango_RealTimeGraph_ForegroundBrush}"></Setter>
+ <Setter Property="Background" Value="{StaticResource Tango_RealTimeGraph_BackgroundBrush}"></Setter>
+ <Setter Property="GridLinesBrush" Value="{StaticResource Tango_RealTimeGraph_GridLinesBrush}"></Setter>
+ <Setter Property="Template">
+ <Setter.Value>
+ <ControlTemplate TargetType="{x:Type local:RealTimeGraph}">
+ <Grid>
+ <Border Background="{TemplateBinding Background}"
+ BorderBrush="{TemplateBinding BorderBrush}"
+ BorderThickness="{TemplateBinding BorderThickness}"
+ CornerRadius="5"
+ Padding="{TemplateBinding Padding}">
+ <Grid>
+ <Grid.RowDefinitions>
+ <RowDefinition Height="1*"/>
+ <RowDefinition Height="Auto"/>
+ </Grid.RowDefinitions>
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="Auto"/>
+ <ColumnDefinition Width="1*"/>
+ </Grid.ColumnDefinitions>
+
+ <Grid Grid.Column="1">
+ <realTimeGraphX:WpfGraphGridLines Controller="{TemplateBinding Controller}" Foreground="{TemplateBinding GridLinesBrush}" />
+ <realTimeGraphX:WpfGraphSurface x:Name="surface" Controller="{TemplateBinding Controller}" BorderThickness="1 0 0 1" BorderBrush="{StaticResource Tango_RealTimeGraph_InnerBorderBrush}" />
+ </Grid>
+
+ <realTimeGraphX:WpfGraphAxisControl Width="70" Visibility="{TemplateBinding VerticalAxisVisibility}" Orientation="Vertical" Controller="{TemplateBinding Controller}" StringFormat="{TemplateBinding StringFormat}" Ticks="{TemplateBinding VerticalTicks}" />
+ <realTimeGraphX:WpfGraphAxisControl Height="35" Visibility="{TemplateBinding HorizontalAxisVisibility}" Orientation="Horizontal" Controller="{TemplateBinding Controller}" Grid.Column="1" Grid.Row="1" Ticks="{TemplateBinding HorizontalTicks}" StringFormat="hh\:mm\:ss"/>
+ </Grid>
+ </Border>
+ <Image HorizontalAlignment="Left" VerticalAlignment="Top" Margin="8" Source="{StaticResource PPC_Screw}" RenderOptions.BitmapScalingMode="Fant" Width="10" Height="10" />
+ <Image HorizontalAlignment="Right" VerticalAlignment="Top" Margin="8" Source="{StaticResource PPC_Screw}" RenderOptions.BitmapScalingMode="Fant" Width="10" Height="10" />
+
+ <Image HorizontalAlignment="Right" VerticalAlignment="Bottom" Margin="8" Source="{StaticResource PPC_Screw}" RenderOptions.BitmapScalingMode="Fant" Width="10" Height="10" />
+ <Image HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="8" Source="{StaticResource PPC_Screw}" RenderOptions.BitmapScalingMode="Fant" Width="10" Height="10" />
+ </Grid>
+ </ControlTemplate>
+ </Setter.Value>
+ </Setter>
+ </Style>
+
+ <Style TargetType="{x:Type local:RealTimeGraph}" x:Key="PPC_RealTimeGraph_Flat">
+ <Setter Property="BorderThickness" Value="1"></Setter>
+ <Setter Property="BorderBrush" Value="{StaticResource Tango_RealTimeGraph_OuterBorderBrush}"></Setter>
+ <Setter Property="Padding" Value="0"></Setter>
+ <Setter Property="FontSize" Value="11"></Setter>
+ <Setter Property="Foreground" Value="{StaticResource Tango_RealTimeGraph_ForegroundBrush}"></Setter>
+ <Setter Property="Background" Value="Transparent"></Setter>
+ <Setter Property="GridLinesBrush" Value="{StaticResource Tango_RealTimeGraph_GridLinesBrush}"></Setter>
+ <Setter Property="Template">
+ <Setter.Value>
+ <ControlTemplate TargetType="{x:Type local:RealTimeGraph}">
+ <Grid>
+ <Border Background="{TemplateBinding Background}"
+ BorderBrush="{TemplateBinding BorderBrush}"
+ BorderThickness="{TemplateBinding BorderThickness}"
+ Padding="{TemplateBinding Padding}">
+ <Grid>
+ <Grid.RowDefinitions>
+ <RowDefinition Height="1*"/>
+ <RowDefinition Height="Auto"/>
+ </Grid.RowDefinitions>
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="Auto"/>
+ <ColumnDefinition Width="1*"/>
+ </Grid.ColumnDefinitions>
+
+ <Grid Grid.Column="1" ClipToBounds="True">
+ <realTimeGraphX:WpfGraphGridLines Controller="{TemplateBinding Controller}" Foreground="{TemplateBinding GridLinesBrush}" Rows="5" Columns="0"/>
+ <realTimeGraphX:WpfGraphSurface Margin="-2 0 0 0" x:Name="surface" Controller="{TemplateBinding Controller}" BorderThickness="0 0 0 0" BorderBrush="{StaticResource Tango_RealTimeGraph_InnerBorderBrush}" />
+ </Grid>
+
+ <realTimeGraphX:WpfGraphAxisControl Width="30" Visibility="{TemplateBinding VerticalAxisVisibility}" Orientation="Vertical" Controller="{TemplateBinding Controller}" StringFormat="{TemplateBinding StringFormat}" Ticks="{TemplateBinding VerticalTicks}" />
+ <realTimeGraphX:WpfGraphAxisControl Height="38" Visibility="{TemplateBinding HorizontalAxisVisibility}" Orientation="Horizontal" Controller="{TemplateBinding Controller}" Grid.Column="1" Grid.Row="1" Ticks="{TemplateBinding HorizontalTicks}" StringFormat="hh\:mm" AxisLabelAngle="{TemplateBinding AxisLabelAngle}"/>
+ </Grid>
+ </Border>
+
+ <Viewbox IsHitTestVisible="False" Stretch="Uniform" Margin="{TemplateBinding CurrentValueMargin}" Visibility="{TemplateBinding CurrentValueVisibility}">
+ <Grid Width="200" Height="200">
+ <!--<Ellipse Stroke="#38FFFFFF" StrokeThickness="20" />-->
+
+ <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
+ <TextBlock Opacity="0.8" HorizontalAlignment="Center" VerticalAlignment="Center" FontWeight="SemiBold" FontSize="{TemplateBinding CurrentValueFontSize}" Text="{Binding RelativeSource={RelativeSource Mode=TemplatedParent},Path=Controller.DataSeriesCollection[0].CurrentValue}"></TextBlock>
+ </StackPanel>
+ </Grid>
+ </Viewbox>
+ </Grid>
+ </ControlTemplate>
+ </Setter.Value>
+ </Setter>
+ </Style>
+
+</ResourceDictionary> \ No newline at end of file
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Helpers/DpiHelper.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Helpers/DpiHelper.cs
new file mode 100644
index 000000000..0d0ac9f1e
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Helpers/DpiHelper.cs
@@ -0,0 +1,36 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Runtime.InteropServices;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Tango.PPC.UI.Helpers
+{
+ public static class DpiHelper
+ {
+ private enum ProcessDPIAwareness
+ {
+ ProcessDPIUnaware = 0,
+ ProcessSystemDPIAware = 1,
+ ProcessPerMonitorDPIAware = 2
+ }
+
+ [DllImport("shcore.dll")]
+ private static extern int SetProcessDpiAwareness(ProcessDPIAwareness value);
+
+ public static void SetDpiAwareness()
+ {
+ try
+ {
+ if (Environment.OSVersion.Version.Major >= 6)
+ {
+ SetProcessDpiAwareness(ProcessDPIAwareness.ProcessPerMonitorDPIAware);
+ }
+ }
+ catch (EntryPointNotFoundException)//this exception occures if OS does not implement this API, just ignore it.
+ {
+ }
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Icon.ico b/Software/Visual_Studio/PPC/Tango.PPC.UI/Icon.ico
new file mode 100644
index 000000000..069f03569
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Icon.ico
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/Events.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/Events.png
new file mode 100644
index 000000000..4f76e1c11
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/Events.png
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/Machine outline.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/Machine outline.png
new file mode 100644
index 000000000..67c89b46e
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/Machine outline.png
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/Thread.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/Thread.png
new file mode 100644
index 000000000..85d0718f0
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/Thread.png
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/input.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/input.png
new file mode 100644
index 000000000..77dbab1c9
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/input.png
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/job_copies.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/job_copies.png
new file mode 100644
index 000000000..dc3cbf124
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/job_copies.png
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/job_length.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/job_length.png
new file mode 100644
index 000000000..97a177ef4
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/job_length.png
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/job_weight.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/job_weight.png
new file mode 100644
index 000000000..6eb0a6194
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/job_weight.png
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/output.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/output.png
new file mode 100644
index 000000000..53b317042
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/output.png
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/spools.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/spools.png
new file mode 100644
index 000000000..8bb977473
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/spools.png
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/thread_type.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/thread_type.png
new file mode 100644
index 000000000..1e2523a56
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/thread_type.png
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/ttime_left.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/ttime_left.png
new file mode 100644
index 000000000..55622f20f
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Job Issues/ttime_left.png
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/JobProgressView/clock.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/JobProgressView/clock.png
new file mode 100644
index 000000000..80cde5b8b
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/JobProgressView/clock.png
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/JobProgressView/drop.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/JobProgressView/drop.png
new file mode 100644
index 000000000..75b215a63
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/JobProgressView/drop.png
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Menu/AppPower_image.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Menu/AppPower_image.png
new file mode 100644
index 000000000..e81b56d37
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Menu/AppPower_image.png
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Menu/Power_image.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Menu/Power_image.png
new file mode 100644
index 000000000..dcabd96b5
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Menu/Power_image.png
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Menu/restart_t.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Menu/restart_t.png
new file mode 100644
index 000000000..92a8ed5e6
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Menu/restart_t.png
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Error.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Error.png
new file mode 100644
index 000000000..a5a178bdb
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Error.png
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Feeder1.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Feeder1.png
new file mode 100644
index 000000000..bc33bb720
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Feeder1.png
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Feeder2.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Feeder2.png
new file mode 100644
index 000000000..aba3e3084
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Feeder2.png
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Feeder3.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Feeder3.png
new file mode 100644
index 000000000..1cd0e8026
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Feeder3.png
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Feeder4.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Feeder4.png
new file mode 100644
index 000000000..d3072f9ad
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Feeder4.png
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Inks.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Inks.png
new file mode 100644
index 000000000..4e3bce00d
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Inks.png
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/JericanRemoved.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/JericanRemoved.png
new file mode 100644
index 000000000..4567d5146
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/JericanRemoved.png
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Normal.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Normal.png
new file mode 100644
index 000000000..8ddeecbe0
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Normal.png
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Sensors.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Sensors.png
new file mode 100644
index 000000000..a47662545
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Sensors.png
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/UpdateInk.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/UpdateInk.png
new file mode 100644
index 000000000..742121560
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/UpdateInk.png
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Warning.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Warning.png
new file mode 100644
index 000000000..25f0d8de5
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Warning.png
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Waste.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Waste.png
new file mode 100644
index 000000000..f12bfd7d4
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/Waste.png
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/motor.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/motor.png
new file mode 100644
index 000000000..8401a8e30
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/motor.png
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/pr_data.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/pr_data.png
new file mode 100644
index 000000000..ebd02a99b
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/pr_data.png
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/pressure.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/pressure.png
new file mode 100644
index 000000000..12ade5d92
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/pressure.png
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/temperature.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/temperature.png
new file mode 100644
index 000000000..de9b042c4
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/Overview Icons/temperature.png
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/screw.png b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/screw.png
new file mode 100644
index 000000000..46a8134fe
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Images/screw.png
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Intro.wmv b/Software/Visual_Studio/PPC/Tango.PPC.UI/Intro.wmv
new file mode 100644
index 000000000..7f4a8dd66
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Intro.wmv
Binary files differ
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/MainWindow.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/MainWindow.xaml
index 8ce5148b7..7a1d042a3 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/MainWindow.xaml
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/MainWindow.xaml
@@ -7,11 +7,11 @@
xmlns:views="clr-namespace:Tango.PPC.UI.Views"
mc:Ignorable="d"
Title="Tango - PPC" Height="800" Stylus.IsTapFeedbackEnabled="False" Stylus.IsPressAndHoldEnabled="False" Stylus.IsTouchFeedbackEnabled="False" Width="800" WindowStyle="SingleBorderWindow" ResizeMode="CanResize" WindowStartupLocation="CenterScreen"
- FontFamily="{StaticResource TangoFlexoFontFamily}"
+ FontFamily="{StaticResource Poppins}"
FontSize="{StaticResource TangoDefaultFontSize}"
Foreground="{StaticResource TangoDarkForegroundBrush}"
FontWeight="Medium" RenderOptions.BitmapScalingMode="LowQuality" SnapsToDevicePixels="True" UseLayoutRounding="True">
- <Grid x:Name="gridMain">
- <views:MainView/>
- </Grid>
+ <Border x:Name="mainBorder">
+
+ </Border>
</Window>
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/MainWindow.xaml.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/MainWindow.xaml.cs
index bf621ff2e..92c527134 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/MainWindow.xaml.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/MainWindow.xaml.cs
@@ -18,7 +18,12 @@ using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Tango.Core.DI;
+using Tango.PPC.Common;
using Tango.PPC.Common.Application;
+using Tango.PPC.Common.Build;
+using Tango.PPC.UI.Build;
+using Tango.PPC.UI.Helpers;
+using Tango.Settings;
using Tango.Touch.Helpers;
namespace Tango.PPC.UI
@@ -28,16 +33,82 @@ namespace Tango.PPC.UI
/// </summary>
public partial class MainWindow : Window
{
+ private DefaultBuildProvider _buildProvider;
public static MainWindow Instance { get; private set; }
public MainWindow()
{
Instance = this;
+ TangoIOC.Default.Unregister<IBuildProvider>();
+
+ _buildProvider = new DefaultBuildProvider();
+ TangoIOC.Default.Register<IBuildProvider, DefaultBuildProvider>(_buildProvider);
+
//Timeline.DesiredFrameRateProperty.OverrideMetadata(typeof(Timeline),new FrameworkPropertyMetadata { DefaultValue = 30 });
InitializeComponent();
+ if (_buildProvider.BuildType == BuildType.Eureka)
+ {
+ InitEureka();
+ }
+ else
+ {
+ InitTS1800();
+ }
+
+ Closing += MainWindow_Closing;
+ }
+
+ private void InitEureka()
+ {
+ Title = "Twine X4";
+
+ var settings = SettingsManager.Default.GetOrCreate<PPCSettings>();
+
+ Viewbox viewBox = new Viewbox();
+ viewBox.Stretch = Stretch.Uniform;
+ this.Content = viewBox;
+ viewBox.Child = new Views.MainEurekaView();
+
+ var screens = System.Windows.Forms.Screen.AllScreens;
+ var touch_screen = screens.Last();
+
+
+ bool hasTouch = TouchHelper.IsTouchEnabled() || settings.ForceTouchMode;
+
+ if (!hasTouch)
+ {
+ WindowStyle = WindowStyle.SingleBorderWindow;
+ ResizeMode = ResizeMode.CanResize;
+ Width = 1280;
+ Height = 720;
+ WindowStartupLocation = WindowStartupLocation.CenterScreen;
+ WindowState = WindowState.Normal;
+ Topmost = false; // sure?
+ }
+ else
+ {
+ WindowState = WindowState.Normal;
+ WindowStyle = WindowStyle.None;
+ ResizeMode = ResizeMode.NoResize;
+ Left = screens.Length == 2 ? screens[0].Bounds.Width : 0;
+ Top = 0;
+ Width = 1920;
+ Height = 1080;
+ WindowStartupLocation = WindowStartupLocation.Manual;
+ Topmost = false; // sure?
+ }
+
+
+ //App.Current.Resources["TangoPanelMaskColor"] = App.Current.Resources["TangoPanelMaskColorLight"];
+ }
+
+ private void InitTS1800()
+ {
+ mainBorder.Child = new Views.MainView();
+
bool has_touch = false;
#if !DESKTOP
@@ -74,17 +145,15 @@ namespace Tango.PPC.UI
Viewbox viewBox = new Viewbox();
viewBox.Stretch = Stretch.Uniform;
this.Content = viewBox;
- gridMain.Width = 800;
- gridMain.Height = 1280;
- viewBox.Child = gridMain;
+ mainBorder.Width = 800;
+ mainBorder.Height = 1280;
+ viewBox.Child = mainBorder;
LockAspectRatio();
this.SizeChanged += (x, y) =>
{
LockAspectRatio();
};
}
-
- Closing += MainWindow_Closing;
}
private void ForceTouch()
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Manifests/eureka.xml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Manifests/eureka.xml
new file mode 100644
index 000000000..d72e75011
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Manifests/eureka.xml
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="utf-8"?>
+<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
+ <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
+ <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
+ <security>
+ <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
+ <!-- UAC Manifest Options
+ If you want to change the Windows User Account Control level replace the
+ requestedExecutionLevel node with one of the following.
+
+ <requestedExecutionLevel level="asInvoker" uiAccess="false" />
+ <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
+ <requestedExecutionLevel level="highestAvailable" uiAccess="false" />
+
+ Specifying requestedExecutionLevel element will disable file and registry virtualization.
+ Remove this element if your application requires this virtualization for backwards
+ compatibility.
+ -->
+ <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
+ </requestedPrivileges>
+ </security>
+ </trustInfo>
+
+ <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
+ <application>
+ <!-- A list of the Windows versions that this application has been tested on
+ and is designed to work with. Uncomment the appropriate elements
+ and Windows will automatically select the most compatible environment. -->
+
+ <!-- Windows Vista -->
+ <!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
+
+ <!-- Windows 7 -->
+ <!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />-->
+
+ <!-- Windows 8 -->
+ <!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->
+
+ <!-- Windows 8.1 -->
+ <!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->
+
+ <!-- Windows 10 -->
+ <!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />-->
+
+ </application>
+ </compatibility>
+
+ <!-- Indicates that the application is DPI-aware and will not be automatically scaled by Windows at higher
+ DPIs. Windows Presentation Foundation (WPF) applications are automatically DPI-aware and do not need
+ to opt in. Windows Forms applications targeting .NET Framework 4.6 that opt into this setting, should
+ also set the 'EnableWindowsFormsHighDpiAutoResizing' setting to 'true' in their app.config. -->
+ <!--
+ <application xmlns="urn:schemas-microsoft-com:asm.v3">
+ <windowsSettings>
+ <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
+ </windowsSettings>
+ </application>
+ -->
+
+ <!-- Enable themes for Windows common controls and dialogs (Windows XP and later) -->
+ <!--
+ <dependency>
+ <dependentAssembly>
+ <assemblyIdentity
+ type="win32"
+ name="Microsoft.Windows.Common-Controls"
+ version="6.0.0.0"
+ processorArchitecture="*"
+ publicKeyToken="6595b64144ccf1df"
+ language="*"
+ />
+ </dependentAssembly>
+ </dependency>
+ -->
+
+</assembly>
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Manifests/eureka_debug.xml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Manifests/eureka_debug.xml
new file mode 100644
index 000000000..efc5f8179
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Manifests/eureka_debug.xml
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="utf-8"?>
+<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
+ <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
+ <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
+ <security>
+ <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
+ <!-- UAC Manifest Options
+ If you want to change the Windows User Account Control level replace the
+ requestedExecutionLevel node with one of the following.
+
+ <requestedExecutionLevel level="asInvoker" uiAccess="false" />
+ <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
+ <requestedExecutionLevel level="highestAvailable" uiAccess="false" />
+
+ Specifying requestedExecutionLevel element will disable file and registry virtualization.
+ Remove this element if your application requires this virtualization for backwards
+ compatibility.
+ -->
+ <!--<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />-->
+ </requestedPrivileges>
+ </security>
+ </trustInfo>
+
+ <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
+ <application>
+ <!-- A list of the Windows versions that this application has been tested on
+ and is designed to work with. Uncomment the appropriate elements
+ and Windows will automatically select the most compatible environment. -->
+
+ <!-- Windows Vista -->
+ <!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
+
+ <!-- Windows 7 -->
+ <!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />-->
+
+ <!-- Windows 8 -->
+ <!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->
+
+ <!-- Windows 8.1 -->
+ <!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->
+
+ <!-- Windows 10 -->
+ <!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />-->
+
+ </application>
+ </compatibility>
+
+ <!-- Indicates that the application is DPI-aware and will not be automatically scaled by Windows at higher
+ DPIs. Windows Presentation Foundation (WPF) applications are automatically DPI-aware and do not need
+ to opt in. Windows Forms applications targeting .NET Framework 4.6 that opt into this setting, should
+ also set the 'EnableWindowsFormsHighDpiAutoResizing' setting to 'true' in their app.config. -->
+ <!--
+ <application xmlns="urn:schemas-microsoft-com:asm.v3">
+ <windowsSettings>
+ <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
+ </windowsSettings>
+ </application>
+ -->
+
+ <!-- Enable themes for Windows common controls and dialogs (Windows XP and later) -->
+ <!--
+ <dependency>
+ <dependentAssembly>
+ <assemblyIdentity
+ type="win32"
+ name="Microsoft.Windows.Common-Controls"
+ version="6.0.0.0"
+ processorArchitecture="*"
+ publicKeyToken="6595b64144ccf1df"
+ language="*"
+ />
+ </dependentAssembly>
+ </dependency>
+ -->
+
+</assembly>
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Models/JerricanLevelModel.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Models/JerricanLevelModel.cs
new file mode 100644
index 000000000..13fa455e5
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Models/JerricanLevelModel.cs
@@ -0,0 +1,85 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.BL.Entities;
+using Tango.Core;
+using Tango.Integration.Operation;
+
+namespace Tango.PPC.UI.Models
+{
+ public class JerricanLevelModel : ExtendedObject
+ {
+ public double Max { get; set; }
+
+ private double _level;
+ public double Level
+ {
+ get { return _level; }
+ set { _level = value; RaisePropertyChangedAuto(); RaisePropertyChanged(nameof(IsMidTankLow)); }
+ }
+
+ private bool _bJerricanPresent;
+
+ public bool JerricanPresent
+ {
+ get { return _bJerricanPresent; }
+ set {
+ _bJerricanPresent = value;
+ RaisePropertyChangedAuto();
+ }
+ }
+
+ private bool _fillingTimeoutError;
+
+ public bool FillingTimeoutError
+ {
+ get { return _fillingTimeoutError; }
+ set { _fillingTimeoutError = value; RaisePropertyChangedAuto(); }
+ }
+
+ private bool _midTankEmpty;
+
+ public bool MidTankEmpty
+ {
+ get { return _midTankEmpty; }
+ set { _midTankEmpty = value; RaisePropertyChangedAuto();}
+ }
+
+ private bool _midTankRefillPumpActive;
+
+ public bool MidTankRefillPumpActive
+ {
+ get { return _midTankRefillPumpActive; }
+ set { _midTankRefillPumpActive = value; RaisePropertyChangedAuto(); }
+ }
+
+ public bool IsMidTankLow
+ {
+ get { return Level <= 0.5; }
+ }
+
+ private TimeSpan _remainingTimeoutError_;
+ public TimeSpan RemainingTimeoutError
+ {
+ get { return _remainingTimeoutError_; }
+ set { _remainingTimeoutError_ = value; RaisePropertyChangedAuto(); RaisePropertyChanged(nameof(HasRemainingTimeoutError)); }
+ }
+
+ public bool HasRemainingTimeoutError
+ {
+ get { return RemainingTimeoutError > TimeSpan.Zero; }
+ }
+
+
+ public IdsPack IDSPack { get; set; }
+
+ public JerricanLevelModel()
+ {
+ //RemainingTimeoutError = new TimeSpan(1,2,0);
+ JerricanPresent = true;
+ //FillingTimeoutError = MidTankEmpty = MidTankRefillPumpActive = false;
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Models/MachineOverviewErrorItem.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Models/MachineOverviewErrorItem.cs
new file mode 100644
index 000000000..3925a1752
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Models/MachineOverviewErrorItem.cs
@@ -0,0 +1,26 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.Core;
+
+namespace Tango.PPC.UI.Models
+{
+ public class MachineOverviewErrorItem : ExtendedObject
+ {
+ private bool _isErrorState;
+
+ public bool IsErrorState
+ {
+ get { return _isErrorState; }
+ set { _isErrorState = value; RaisePropertyChangedAuto();}
+ }
+
+ public MachineOverviewErrorItem()
+ {
+ IsErrorState = false;
+ }
+
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Models/MachineOverviewErrorStates.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Models/MachineOverviewErrorStates.cs
new file mode 100644
index 000000000..1863b01e1
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Models/MachineOverviewErrorStates.cs
@@ -0,0 +1,68 @@
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.Core;
+
+namespace Tango.PPC.UI.Models
+{
+ public class MachineOverviewErrorStates : ExtendedObject
+ {
+ public ObservableCollection<MachineOverviewErrorItem> Winders { get; set; }
+
+ public ObservableCollection<MachineOverviewErrorItem> Dancers { get; set; }
+
+ public ObservableCollection<MachineOverviewErrorItem> BTSRs { get; set; }
+
+ public MachineOverviewErrorStates()
+ {
+ Winders = new ObservableCollection<MachineOverviewErrorItem>();
+ Dancers = new ObservableCollection<MachineOverviewErrorItem>();
+ BTSRs = new ObservableCollection<MachineOverviewErrorItem>();
+ for ( int i = 0; i < 4 ; i++)
+ {
+ Winders.Add( new MachineOverviewErrorItem());
+ Dancers.Add(new MachineOverviewErrorItem());
+ BTSRs.Add(new MachineOverviewErrorItem());
+ }
+ }
+
+ public void UpdateWinders(List<bool> updates)
+ {
+ if(!UpdateCollection(Winders, updates))
+ {
+ LogManager.Log("Error in display Winders Errors. Number of Winders In Error is less then 4!");
+ }
+ }
+ public void UpdateDancers(List<bool> updates)
+ {
+ if(!UpdateCollection(Dancers, updates))
+ {
+ LogManager.Log("Error in display Dancers Errors. Number of Dancers In Error is less then 4!");
+ }
+ }
+ public void UpdateBTSRs(List<bool> updates)
+ {
+ if(!UpdateCollection(BTSRs, updates))
+ {
+ LogManager.Log("Error in display BTSRs Errors. Number of BTSRs In Error is less then 4!");
+ }
+ }
+
+ private bool UpdateCollection(ObservableCollection<MachineOverviewErrorItem> collection, List<bool> updates )
+ {
+ if (collection.Count == updates.Count)
+ {
+ for (int i = 0; i < collection.Count; i++)
+ {
+ collection[i].IsErrorState = updates[i];
+ }
+ return true;
+ }
+ return false;
+
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Models/MachineOverviewItem.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Models/MachineOverviewItem.cs
new file mode 100644
index 000000000..42f6bd180
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Models/MachineOverviewItem.cs
@@ -0,0 +1,67 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Media;
+using Tango.Core;
+
+namespace Tango.PPC.UI.Models
+{
+ public class MachineOverviewItem : ExtendedObject
+ {
+ private String _displayValue;
+ public String DisplayValue
+ {
+ get { return _displayValue; }
+ set { _displayValue = value; RaisePropertyChangedAuto(); }
+ }
+
+ private String _displayMaxValue;
+ public String DisplayMaxValue
+ {
+ get { return _displayMaxValue; }
+ set { _displayMaxValue = value; RaisePropertyChangedAuto(); }
+ }
+
+ private String _status;
+ public String Status
+ {
+ get { return _status; }
+ set { _status = value; RaisePropertyChangedAuto(); }
+ }
+
+ private Color _color;
+ public Color Color
+ {
+ get { return _color; }
+ set { _color = value; RaisePropertyChangedAuto(); }
+ }
+
+ private double _maxValue;
+
+ public double MaxValue
+ {
+ get { return _maxValue; }
+ set { _maxValue = value; RaisePropertyChangedAuto(); }
+ }
+
+ private double _value;
+
+ public double Value
+ {
+ get { return _value; }
+ set { _value = value; RaisePropertyChangedAuto(); }
+ }
+
+ public MachineOverviewItem()
+ {
+ Color = Colors.Gray;
+ DisplayValue = "--";
+ Value = 0;
+ MaxValue = 100;
+ DisplayMaxValue = "";
+ }
+
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Models/MachineOverviewModel.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Models/MachineOverviewModel.cs
new file mode 100644
index 000000000..beba47246
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Models/MachineOverviewModel.cs
@@ -0,0 +1,214 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Media;
+using Tango.BL.Entities;
+using Tango.Core;
+using Tango.PMR.Diagnostics;
+using Tango.PPC.Common;
+using Tango.Settings;
+
+namespace Tango.PPC.UI.Models
+{
+ public class MachineOverviewModel : ExtendedObject
+ {
+ public static double DryerAirMaxValue = 120.0;
+
+ public MachineOverviewItem DryerZone3 { get; set; }
+ public MachineOverviewItem DryerAir { get; set; }
+ public MachineOverviewItem Tunnel { get; set; }
+ public MachineOverviewItem PumpsPressure { get; set; }
+ public MachineOverviewItem Lubricant { get; set; }
+
+ private PPCSettings _settings;
+ /// <summary>
+ /// Gets the main PPC settings.
+ /// </summary>
+ public PPCSettings Settings
+ {
+ get
+ {
+ if (_settings == null)
+ {
+ _settings = SettingsManager.Default.GetOrCreate<PPCSettings>();
+ }
+
+ return _settings;
+ }
+ private set { _settings = value; }
+ }
+
+ public MachineOverviewModel()
+ {
+ DryerZone3 = new MachineOverviewItem();
+ DryerAir = new MachineOverviewItem();
+ DryerAir.MaxValue = DryerAirMaxValue;
+ Tunnel = new MachineOverviewItem();
+ PumpsPressure = new MachineOverviewItem();
+ PumpsPressure.MaxValue = 6;
+ Lubricant = new MachineOverviewItem();
+ Lubricant.MaxValue = 100;
+ Lubricant.Value = 100;
+ }
+
+ public void Update(StartDiagnosticsResponse diagnostics, Rml rml, ProcessParametersTable processParameters)
+ {
+ //Dryer Zone 3
+ var dryerZone3State = diagnostics.HeatersStates.FirstOrDefault(x => x.HeaterType == HeaterType.EDryerHeater3);
+ UpdateHeaterItem(DryerZone3, dryerZone3State);
+
+ //Dryer Air
+ var dryerAirState = diagnostics.Monitors.EuSpare1.FirstOrDefault();
+ UpdateDryerAirItem(dryerAirState);
+ //diagnostics.HeatersStates.FirstOrDefault(x => x.HeaterType == HeaterType.DryerAirHeater);
+
+
+ //Tunnel
+ var tunnelState = diagnostics.HeatersStates.FirstOrDefault(x => x.HeaterType == HeaterType.ETunnelHeater);
+ UpdateHeaterItem(Tunnel, tunnelState);
+
+ //Pumps Pressure
+
+ //EuDispenser1Pressure
+ List<double> EuDispensersPressure = new List<double>();
+ var EuDispenser1PressureValue = diagnostics.Monitors.EuDispenser1Pressure.FirstOrDefault();
+ EuDispensersPressure.Add(EuDispenser1PressureValue);
+ var EuDispenser2PressureValue = diagnostics.Monitors.EuDispenser2Pressure.FirstOrDefault();
+ EuDispensersPressure.Add(EuDispenser2PressureValue);
+ var EuDispenser3PressureValue = diagnostics.Monitors.EuDispenser3Pressure.FirstOrDefault();
+ EuDispensersPressure.Add(EuDispenser3PressureValue);
+ var EuDispenser4PressureValue = diagnostics.Monitors.EuDispenser4Pressure.FirstOrDefault();
+ EuDispensersPressure.Add(EuDispenser4PressureValue);
+ var EuDispenser5PressureValue = diagnostics.Monitors.EuDispenser5Pressure.FirstOrDefault();
+ EuDispensersPressure.Add(EuDispenser5PressureValue);
+ var EuDispenser6PressureValue = diagnostics.Monitors.EuDispenser6Pressure.FirstOrDefault();
+ EuDispensersPressure.Add(EuDispenser6PressureValue);
+ var EuDispenser7PressureValue = diagnostics.Monitors.EuDispenser7Pressure.FirstOrDefault();
+ EuDispensersPressure.Add(EuDispenser7PressureValue);
+ var EuDispenser8PressureValue = diagnostics.Monitors.EuDispenser8Pressure.FirstOrDefault();
+ EuDispensersPressure.Add(EuDispenser8PressureValue);
+
+ var pumpsPressuerValue = EuDispensersPressure.Max();// diagnostics.Monitors.EuInkLinesPressure.SelectMany(x => x.Data).Max();
+ UpdatePumpsPressureItem(pumpsPressuerValue);
+
+
+ //Lubricant
+ var lubricantValue = diagnostics.Monitors.EuLubricantCurrent.FirstOrDefault();
+ UpdateLubricantItem( rml, lubricantValue);
+ }
+
+ private void UpdateHeaterItem(MachineOverviewItem item, HeaterState state)
+ {
+ if (state != null)
+ {
+
+ if (state.IsRampingUp &&
+ (state.SetPoint != 0
+ && (state.CurrentValue <= (state.SetPoint - 10))))
+ {
+ item.Status = "Heating Up";
+ item.Color = Colors.Orange;
+ item.DisplayValue = $"{state.CurrentValue.ToString("N1")}";
+ item.DisplayMaxValue = $"/{state.SetPoint}";
+ item.MaxValue = state.SetPoint;
+ item.Value = state.CurrentValue;
+ }
+ else if (state.SetPoint == 0 || (state.CurrentValue >= (state.SetPoint - 10) && state.CurrentValue <= (state.SetPoint + 10)))
+ {
+ item.Status = "Operational";
+ item.Color = Colors.Green;
+ item.DisplayValue = $" {state.SetPoint}";
+ item.DisplayMaxValue = "";
+ if(state.SetPoint == 0 && state.CurrentValue == 0)
+ {
+ item.MaxValue = 10;
+ }
+ else
+ {
+ item.MaxValue = state.SetPoint;
+ }
+ item.Value = state.CurrentValue;
+ }
+ else if (!state.IsRampingUp && (state.CurrentValue < (state.SetPoint - 10) || state.CurrentValue > (state.SetPoint + 10)))
+ {
+ item.Status = "Over-temperature";
+ item.Color = Colors.Red;
+ item.DisplayValue = $"{state.CurrentValue.ToString("N1")}";
+ item.DisplayMaxValue = $"/{state.SetPoint}";
+ item.MaxValue = state.SetPoint;
+ item.Value = state.CurrentValue > state.SetPoint? state.SetPoint : state.CurrentValue;
+ }
+ else
+ {
+ item.Color = Colors.Gray;
+ item.MaxValue = 100;
+ item.Value = 0;
+ item.DisplayMaxValue = "";
+ }
+ }
+ }
+
+ private void UpdateDryerAirItem(double currentvalue)
+ {
+ if (currentvalue < DryerAirMaxValue)
+ {
+ DryerAir.Status = "Heating Up";
+ DryerAir.Color = Colors.Orange;
+ DryerAir.DisplayValue = currentvalue.ToString("N1");
+ }
+ else if (currentvalue >= DryerAirMaxValue)
+ {
+ DryerAir.Status = "Operational";
+ DryerAir.Color = Colors.Green;
+ DryerAir.DisplayValue = currentvalue.ToString("N1");
+ }
+ DryerAir.Value = currentvalue;
+ }
+
+ private void UpdatePumpsPressureItem(double maxValue)
+ {
+ if (maxValue > 6)
+ {
+ PumpsPressure.Status = "Overpressure";
+ PumpsPressure.Color = Colors.Red;
+ PumpsPressure.DisplayValue = maxValue.ToString("N1");
+ }
+ else
+ {
+ PumpsPressure.Status = "Operational";
+ PumpsPressure.Color = Colors.Green;
+ PumpsPressure.DisplayValue = maxValue.ToString("N1");
+ }
+ PumpsPressure.Value = maxValue;
+ }
+
+ private void UpdateLubricantItem(Rml rml, double lubricantValue)
+ {
+ if (rml != null)
+ {
+ var rmlLubrication = Settings.LubricationLevels.FirstOrDefault(x => x.RmlGuid == rml.Guid);
+ if (( rml.Lubricant == false)
+ || (rmlLubrication != null && rmlLubrication.LubricationLevel == Common.Lubrication.LubricationLevel.No))
+ {
+ Lubricant.Status = "NotActive";
+ Lubricant.DisplayValue = "None";
+ Lubricant.Color = Colors.Gray;
+
+ return;
+ }
+ Lubricant.Status = "Active";
+ Lubricant.DisplayValue = lubricantValue.ToString("N1");
+ Lubricant.Color = Colors.Green;
+ return;
+ }
+ else
+ {
+ Lubricant.Status = "NotActive";
+ Lubricant.DisplayValue = "None";
+ Lubricant.Color = Colors.Gray;
+ }
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Modules/DefaultPPCModuleLoader.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Modules/DefaultPPCModuleLoader.cs
index d0f6484ab..14f9db927 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Modules/DefaultPPCModuleLoader.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Modules/DefaultPPCModuleLoader.cs
@@ -97,8 +97,8 @@ namespace Tango.PPC.UI.Modules
}
else
{
- LogManager.Log(String.Format("Loading module '{0}'...", nameof(JobsModule)));
- AllModules.Add(new JobsModule());
+ //LogManager.Log(String.Format("Loading module '{0}'...", nameof(JobsModule)));
+ //AllModules.Add(new JobsModule());
}
//Preloaded
@@ -142,7 +142,7 @@ namespace Tango.PPC.UI.Modules
if (settings.UseJobsModuleV2)
{
- var legacyJobsModule = AllModules.SingleOrDefault(x => x.GetType() == typeof(JobsModule));
+ var legacyJobsModule = AllModules.SingleOrDefault(x => x.GetType().Name == "JobsModule");
AllModules.Remove(legacyJobsModule);
}
else
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation/DefaultNavigationManager.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation/DefaultNavigationManager.cs
index d247ab23c..66f627fdb 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation/DefaultNavigationManager.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation/DefaultNavigationManager.cs
@@ -10,12 +10,14 @@ using System.Windows;
using System.Windows.Media;
using Tango.Core;
using Tango.Core.Commands;
+using Tango.Core.DI;
using Tango.PPC.Common;
using Tango.PPC.Common.Modules;
using Tango.PPC.Common.Navigation;
using Tango.PPC.Common.Notifications;
using Tango.PPC.Common.Threading;
using Tango.PPC.UI.Views;
+using Tango.PPC.UI.ViewsContracts;
using Tango.SharedUI.Controls;
namespace Tango.PPC.UI.Navigation
@@ -145,10 +147,10 @@ namespace Tango.PPC.UI.Navigation
LogManager.Log($"Navigating to: {view.ToString()}...");
- var fromView = MainView.Instance.NavigationControl.SelectedElement;
+ var fromView = GetMainNavigationControl().SelectedElement;
FrameworkElement toView = null;
- toView = MainView.Instance.NavigationControl.NavigateTo(view.ToString(), (Action)(() =>
+ toView = GetMainNavigationControl().NavigateTo(view.ToString(), (Action)(() =>
{
CurrentVM = toView.DataContext as PPCViewModel;
NotifyOnNavigated(fromView.DataContext, toView.DataContext);
@@ -171,8 +173,8 @@ namespace Tango.PPC.UI.Navigation
public Task<bool> NavigateWithObject<TPass>(NavigationView view, TPass obj, bool pushToHistory = true)
{
LogManager.Log($"Navigating to: {view.ToString()}, with object {typeof(TPass).Name}...");
- MainView.Instance.NavigationControl.NavigateTo(view.ToString());
- INavigationObjectReceiver<TPass> receiver = MainView.Instance.NavigationControl.Elements.FirstOrDefault(x => (x.GetType().Name == view.ToString() || NavigationControl.GetNavigationName(x) == view.ToString()) && x.DataContext is INavigationObjectReceiver<TPass>).DataContext as INavigationObjectReceiver<TPass>;
+ GetMainNavigationControl().NavigateTo(view.ToString());
+ INavigationObjectReceiver<TPass> receiver = GetMainNavigationControl().Elements.FirstOrDefault(x => (x.GetType().Name == view.ToString() || NavigationControl.GetNavigationName(x) == view.ToString()) && x.DataContext is INavigationObjectReceiver<TPass>).DataContext as INavigationObjectReceiver<TPass>;
if (receiver != null)
{
@@ -272,8 +274,8 @@ namespace Tango.PPC.UI.Navigation
_lastFullPath = fullPath;
- MainView.Instance.NavigationControl.NavigateTo(NavigationView.LayoutView.ToString());
- var navigationControl = LayoutView.Instance.NavigationControl;
+ GetMainNavigationControl().NavigateTo(NavigationView.LayoutView.ToString());
+ var navigationControl = GetLayoutNavigationControl();
CurrentModule = module;
var moduleView = navigationControl.NavigateTo(module.Name);
@@ -584,5 +586,15 @@ namespace Tango.PPC.UI.Navigation
awaiter.Action();
}
}
+
+ private NavigationControl GetLayoutNavigationControl()
+ {
+ return TangoIOC.Default.GetInstance<ILayoutView>().GetNavigationControl();
+ }
+
+ private NavigationControl GetMainNavigationControl()
+ {
+ return TangoIOC.Default.GetInstance<IMainView>().GetNavigationControl();
+ }
}
}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation/EurekaNavigationManager.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation/EurekaNavigationManager.cs
new file mode 100644
index 000000000..63332e889
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation/EurekaNavigationManager.cs
@@ -0,0 +1,606 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Media;
+using Tango.Core;
+using Tango.Core.Commands;
+using Tango.Core.DI;
+using Tango.PPC.Common;
+using Tango.PPC.Common.Modules;
+using Tango.PPC.Common.Navigation;
+using Tango.PPC.Common.Notifications;
+using Tango.PPC.Common.Threading;
+using Tango.PPC.UI.Views;
+using Tango.PPC.UI.ViewsContracts;
+using Tango.SharedUI.Controls;
+
+namespace Tango.PPC.UI.Navigation
+{
+ /// <summary>
+ /// Represents the default PPC navigation manager.
+ /// </summary>
+ /// <seealso cref="Tango.PPC.Common.Navigation.INavigationManager" />
+ public class EurekaNavigationManager : ExtendedObject, INavigationManager
+ {
+ //private event Action<Object, Object> NavigationCycleCompleted;
+ //private event Action<Object, Object> BeforeNavigationCycleCompleted;
+ private class AwaitingVMResult
+ {
+ public PPCViewModel FromVM { get; set; }
+ public PPCViewModel ToVM { get; set; }
+ public Action Action { get; set; }
+ }
+
+ private List<AwaitingVMResult> _awaitingVMResults;
+ private IDispatcherProvider _dispatcherProvider;
+ private IPPCModuleLoader _moduleLoader;
+ private INotificationProvider _notificationProvider;
+ private String _lastFullPath;
+ private bool _preventHistory;
+ private bool _navigating_back;
+
+ public event EventHandler<PPCViewModel> CurrentVMChanged;
+
+ private Stack<String> _navigationHistory;
+
+ private Object _currentVM;
+ /// <summary>
+ /// Gets the current view model.
+ /// </summary>
+ public PPCViewModel CurrentVM
+ {
+ set
+ {
+ var previous = _currentVM;
+ _currentVM = value;
+
+ var vm = _currentVM as PPCViewModel;
+
+ if (_currentVM != previous && vm != null)
+ {
+ CurrentVMChanged?.Invoke(this, vm);
+ }
+ }
+ get
+ {
+ return _currentVM as PPCViewModel;
+ }
+ }
+
+ private IPPCModule _currentModule;
+ /// <summary>
+ /// Gets or sets the current module.
+ /// </summary>
+ public IPPCModule CurrentModule
+ {
+ get { return _currentModule; }
+ private set { _currentModule = value; RaisePropertyChangedAuto(); }
+ }
+
+ /// <summary>
+ /// Navigates to the previous view.
+ /// </summary>
+ public RelayCommand NavigateBackCommand { get; private set; }
+
+ /// <summary>
+ /// Navigates to the specified full path in command parameter.
+ /// </summary>
+ public RelayCommand<String> NavigateToCommand { get; private set; }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="DefaultNavigationManager"/> class.
+ /// </summary>
+ /// <param name="moduleLoader">The module loader.</param>
+ public EurekaNavigationManager(IPPCModuleLoader moduleLoader, IDispatcherProvider dispatcherProvider, INotificationProvider notificationProvider)
+ {
+ IsBackEnabled = true;
+ _awaitingVMResults = new List<AwaitingVMResult>();
+ _navigationHistory = new Stack<String>();
+ _moduleLoader = moduleLoader;
+ _notificationProvider = notificationProvider;
+
+ NavigateToCommand = new RelayCommand<string>(async (x) => await NavigateTo(x));
+ NavigateBackCommand = new RelayCommand(async () => await NavigateBack());
+
+ _dispatcherProvider = dispatcherProvider;
+ }
+
+ /// <summary>
+ /// Navigates to the specified PPC view.
+ /// </summary>
+ /// <param name="view">The view.</param>
+ public Task<bool> NavigateTo(NavigationView view, bool pushToHistory = true)
+ {
+ pushToHistory = false;
+ if (view == NavigationView.HomeModule)
+ {
+ _navigationHistory.Clear();
+ _lastFullPath = null;
+
+ var firstModule = _moduleLoader.UserModules.FirstOrDefault();
+
+ if (firstModule != null)
+ {
+ var moduleAtt = firstModule.GetType().GetCustomAttribute<PPCModuleAttribute>();
+
+ if (moduleAtt != null)
+ {
+ return NavigateTo(firstModule.GetType(), pushToHistory, moduleAtt.HomeViewName);
+ }
+ else
+ {
+ return NavigateTo(firstModule.GetType(), pushToHistory);
+ }
+ }
+ else
+ {
+ return NavigateTo(NavigationView.NoPermissionsView);
+ }
+ }
+ else
+ {
+
+ LogManager.Log($"Navigating to: {view.ToString()}...");
+
+ var fromView = GetMainNavigationControl().SelectedElement;
+ FrameworkElement toView = null;
+
+ toView = GetMainNavigationControl().NavigateTo(view.ToString(), (Action)(() =>
+ {
+ CurrentVM = toView.DataContext as PPCViewModel;
+ NotifyOnNavigated(fromView.DataContext, toView.DataContext);
+
+ }));
+
+ NotifyOnBeforeNavigated(fromView.DataContext, toView.DataContext);
+
+ return Task.FromResult(true);
+ }
+ }
+
+ /// <summary>
+ /// Navigates to the specified PPC view with the specified receive object.
+ /// </summary>
+ /// <param name="view">The view.</param>
+ /// <param name="obj"></param>
+ /// <param name="pushToHistory"></param>
+ /// <returns></returns>
+ public Task<bool> NavigateWithObject<TPass>(NavigationView view, TPass obj, bool pushToHistory = true)
+ {
+ LogManager.Log($"Navigating to: {view.ToString()}, with object {typeof(TPass).Name}...");
+ GetMainNavigationControl().NavigateTo(view.ToString());
+ INavigationObjectReceiver<TPass> receiver = GetMainNavigationControl().Elements.FirstOrDefault(x => (x.GetType().Name == view.ToString() || NavigationControl.GetNavigationName(x) == view.ToString()) && x.DataContext is INavigationObjectReceiver<TPass>).DataContext as INavigationObjectReceiver<TPass>;
+
+ if (receiver != null)
+ {
+ receiver.OnNavigatedToWithObject(obj);
+ }
+
+ return Task.FromResult(true);
+ }
+
+ /// <summary>
+ /// Navigates to the specified module.
+ /// </summary>
+ /// <typeparam name="T"></typeparam>
+ public Task<bool> NavigateTo<T>(bool pushToHistory = true) where T : IPPCModule
+ {
+ return NavigateTo(typeof(T));
+ }
+
+ /// <summary>
+ /// Navigates to the specified module using the view path (e.g MainView.JobsView).
+ /// </summary>
+ /// <typeparam name="T"></typeparam>
+ /// <param name="viewPath">The view path.</param>
+ public Task<bool> NavigateTo<T>(string viewPath, bool pushToHistory = true) where T : IPPCModule
+ {
+ return NavigateTo<T>(pushToHistory, viewPath.Split('.'));
+ }
+
+ /// <summary>
+ /// Navigates to the specified module using the view path (e.g MainView,JobsView).
+ /// This method makes it easy to do stuff like NavigateTo(nameof(MainView),nameof(JobsView));
+ /// </summary>
+ /// <typeparam name="T"></typeparam>
+ /// <param name="viewPath">The view path.</param>
+ public Task<bool> NavigateTo<T>(bool pushToHistory = true, params String[] viewPath) where T : IPPCModule
+ {
+ return NavigateTo(typeof(T), pushToHistory, viewPath);
+ }
+
+ /// <summary>
+ /// Navigates to the specified module and view by full path (e.g Jobs.JobsView).
+ /// </summary>
+ /// <param name="fullPath">The full path.</param>
+ public async Task<bool> NavigateTo(String fullPath, bool pushToHistory = true, Action<PPCViewModel, PPCViewModel> onNavigating = null, Action<PPCViewModel, PPCViewModel> onNavigated = null)
+ {
+ if (_lastFullPath != null && !_lastFullPath.Contains("JobsV2Module"))
+ {
+ pushToHistory = false;
+ }
+
+ try
+ {
+ IsNavigating = true;
+
+ String[] path = fullPath.Split('.');
+ var module = _moduleLoader.UserModules.SingleOrDefault(x => x.GetType().Name == path[0] || x.Name == path[0]);
+
+ if (module == null)
+ {
+ await _notificationProvider.ShowError("The specified module was not loaded.");
+ IsNavigating = false;
+ return false;
+ }
+
+ if (path.Length == 1 && path[0] == CurrentModule.Name)
+ {
+ IsNavigating = false;
+ return true;
+ }
+
+ LogManager.Log($"Navigating to: {fullPath}...");
+
+ var fromVM = CurrentVM;
+
+ if (CurrentVM != null && CurrentVM is INavigationBlocker)
+ {
+ if (_navigating_back)
+ {
+ if (!await (CurrentVM as INavigationBlocker).OnNavigateBackRequest())
+ {
+ IsNavigating = false;
+ return false;
+ }
+ }
+ else
+ {
+ if (!await (CurrentVM as INavigationBlocker).OnNavigateOutRequest())
+ {
+ IsNavigating = false;
+ return false;
+ }
+ }
+ }
+
+
+
+ if (pushToHistory && _lastFullPath != null && !_preventHistory)
+ {
+ _navigationHistory.Push(_lastFullPath);
+ RaisePropertyChanged(nameof(CanNavigateBack));
+ }
+
+ _lastFullPath = fullPath;
+
+ GetMainNavigationControl().NavigateTo(NavigationView.LayoutView.ToString());
+ var navigationControl = GetLayoutNavigationControl();
+ CurrentModule = module;
+ var moduleView = navigationControl.NavigateTo(module.Name);
+
+ CurrentVM = moduleView.DataContext as PPCViewModel;
+
+ if (path.Length > 1)
+ {
+ var moduleNavigation = moduleView.FindChildOffline<NavigationControl>();
+
+ if (moduleNavigation != null)
+ {
+ moduleNavigation.RegisterForLoadedOrNow(async (x, e) =>
+ {
+ var lastView = moduleNavigation.GetElement(path.Last());
+
+ if (lastView != null)
+ {
+ onNavigating?.Invoke(fromVM as PPCViewModel, lastView.DataContext as PPCViewModel);
+ }
+
+ foreach (var view in path.Skip(1))
+ {
+ await Task.Delay(100);
+
+ FrameworkElement v = null;
+
+ v = moduleNavigation.NavigateTo(view, () =>
+ {
+ if (v != null)
+ {
+ NotifyOnNavigated(fromVM, v.DataContext);
+ onNavigated?.Invoke(fromVM as PPCViewModel, v.DataContext as PPCViewModel);
+ NotifyAwaitingVMResults(fromVM as PPCViewModel, v.DataContext as PPCViewModel);
+ }
+ });
+
+ NotifyOnBeforeNavigated(fromVM, v.DataContext);
+
+ if (v != null)
+ {
+ CurrentVM = v.DataContext as PPCViewModel;
+
+ if (view != path.Last())
+ {
+ moduleNavigation = v.FindChildOffline<NavigationControl>();
+ }
+ }
+ else
+ {
+ throw LogManager.Log(new ArgumentNullException("Could not navigate to " + fullPath));
+ }
+ }
+ });
+ }
+ else
+ {
+ onNavigating?.Invoke(fromVM as PPCViewModel, CurrentVM as PPCViewModel);
+
+ NotifyOnBeforeNavigated(fromVM, CurrentVM);
+
+ await Task.Delay(navigationControl.TransitionDuration.TimeSpan);
+
+ NotifyOnNavigated(fromVM, CurrentVM);
+
+ onNavigated?.Invoke(fromVM as PPCViewModel, CurrentVM as PPCViewModel);
+ NotifyAwaitingVMResults(fromVM as PPCViewModel, CurrentVM as PPCViewModel);
+ }
+ }
+ else
+ {
+ NotifyOnBeforeNavigated(fromVM, CurrentVM);
+
+ onNavigating?.Invoke(fromVM as PPCViewModel, CurrentVM as PPCViewModel);
+
+ await Task.Delay(navigationControl.TransitionDuration.TimeSpan);
+
+ NotifyOnNavigated(fromVM, CurrentVM);
+
+ onNavigated?.Invoke(fromVM as PPCViewModel, CurrentVM as PPCViewModel);
+ NotifyAwaitingVMResults(fromVM as PPCViewModel, CurrentVM as PPCViewModel);
+ }
+
+ return true;
+ }
+ catch (Exception ex)
+ {
+ IsNavigating = false;
+ LogManager.Log(ex, $"Error navigating to '{fullPath}'.");
+ await _notificationProvider.ShowError($"Error navigating to '{fullPath}'.");
+ return false;
+ }
+ }
+
+ /// <summary>
+ /// Navigates for result.
+ /// </summary>
+ /// <typeparam name="TModule">The type of the module.</typeparam>
+ /// <typeparam name="TView">The type of the view.</typeparam>
+ /// <typeparam name="TResult">The type of the result.</typeparam>
+ /// <typeparam name="TObject">The type of the object.</typeparam>
+ /// <param name="obj">The object.</param>
+ /// <param name="pushToHistory">if set to <c>true</c> [push to history].</param>
+ /// <returns></returns>
+ public async Task<TResult> NavigateForResult<TModule, TView, TResult, TObject>(TObject obj, bool pushToHistory = true)
+ where TModule : IPPCModule
+ {
+ TaskCompletionSource<TResult> source = new TaskCompletionSource<TResult>();
+
+ var fromVM = CurrentVM;
+
+ await NavigateTo(typeof(TModule).Name + "." + typeof(TView).Name, pushToHistory, (from, to) =>
+ {
+ _awaitingVMResults.Add(new AwaitingVMResult()
+ {
+ FromVM = fromVM as PPCViewModel,
+ ToVM = to as PPCViewModel,
+ Action = () =>
+ {
+ if (to is INavigationResultProvider<TResult, TObject>)
+ {
+ source.SetResult((to as INavigationResultProvider<TResult, TObject>).GetNavigationResult());
+ }
+ }
+ });
+
+ if (to is INavigationResultProvider<TResult, TObject>)
+ {
+ (to as INavigationResultProvider<TResult, TObject>).OnNavigationObjectReceived(obj);
+ }
+ });
+
+ return await source.Task;
+ }
+
+ /// <summary>
+ /// Navigates to the specified module and view with the specified object.
+ /// </summary>
+ /// <typeparam name="TModule">The type of the module.</typeparam>
+ /// <typeparam name="TView">The type of the view.</typeparam>
+ /// <typeparam name="TPass">The type of the pass.</typeparam>
+ /// <param name="obj">The object.</param>
+ /// <param name="pushToHistory">if set to <c>true</c> [push to history].</param>
+ /// <returns></returns>
+ public Task<bool> NavigateWithObject<TModule, TView, TPass>(TPass obj, bool pushToHistory = true) where TModule : IPPCModule
+ {
+ return NavigateTo(typeof(TModule).Name + "." + typeof(TView).Name, pushToHistory, (fromVM, toVM) =>
+ {
+ if (toVM is INavigationObjectReceiver<TPass>)
+ {
+ (toVM as INavigationObjectReceiver<TPass>).OnNavigatedToWithObject(obj);
+ }
+ });
+ }
+
+ private Task<bool> NavigateTo(Type moduleType, bool pushToHistory = true, params String[] viewPath)
+ {
+ if (viewPath != null && viewPath.Length > 0)
+ {
+ return NavigateTo(moduleType.Name + "." + String.Join(".", viewPath), pushToHistory);
+ }
+ else
+ {
+ return NavigateTo(moduleType.Name, pushToHistory);
+ }
+ }
+
+ /// <summary>
+ /// Gets a value indicating whether the navigation system is able to navigate to the previous view.
+ /// </summary>
+ public bool CanNavigateBack
+ {
+ get { return _navigationHistory.Count > 0; }
+ }
+
+ private bool _isBackEnabled;
+ /// <summary>
+ /// Gets a value indicating whether the back should be enabled.
+ /// </summary>
+ public bool IsBackEnabled
+ {
+ get { return _isBackEnabled; }
+ set { _isBackEnabled = value; RaisePropertyChangedAuto(); }
+ }
+
+ private bool _isNavigating;
+ /// <summary>
+ /// Gets or sets a value indicating whether the navigation system is currently navigating.
+ /// </summary>
+ public bool IsNavigating
+ {
+ get { return _isNavigating; }
+ set
+ {
+ _isNavigating = value;
+ RaisePropertyChangedAuto();
+ }
+ }
+
+ /// <summary>
+ /// Navigates to the previous view if <see cref="P:Tango.PPC.Common.Navigation.INavigationManager.CanNavigateBack" /> is true.
+ /// </summary>
+ public async Task<bool> NavigateBack()
+ {
+ LogManager.Log("Navigating back...");
+
+ _navigating_back = true;
+
+ if (_navigationHistory.Count > 0)
+ {
+ String first = _navigationHistory.Pop();
+ _preventHistory = true;
+
+ if (await NavigateTo(first))
+ {
+ RaisePropertyChanged(nameof(CanNavigateBack));
+ _preventHistory = false;
+ _navigating_back = false;
+ return true;
+ }
+ else
+ {
+ _navigationHistory.Push(first);
+ _preventHistory = false;
+ _navigating_back = false;
+ RaisePropertyChanged(nameof(CanNavigateBack));
+ return false;
+ }
+ }
+ else
+ {
+ await NavigateTo(NavigationView.HomeModule);
+ RaisePropertyChanged(nameof(CanNavigateBack));
+ _preventHistory = false;
+ _navigating_back = false;
+ return true;
+ }
+ }
+
+ /// <summary>
+ /// Clears the navigation back history.
+ /// </summary>
+ public void ClearHistory()
+ {
+ LogManager.Log("Navigation history cleared.");
+ _navigationHistory.Clear();
+ RaisePropertyChanged(nameof(CanNavigateBack));
+ }
+
+ /// <summary>
+ /// Clears the navigation back history except the specified view type.
+ /// </summary>
+ /// <typeparam name="T"></typeparam>
+ public void ClearHistoryExcept<T>()
+ {
+ LogManager.Log($"Navigation history cleared except for {typeof(T).Name}.");
+
+ var history_list = _navigationHistory.ToList();
+ history_list = history_list.Where(x => x.Contains(typeof(T).Name)).Distinct().ToList();
+ _navigationHistory.Clear();
+
+ foreach (var item in history_list)
+ {
+ _navigationHistory.Push(item);
+ }
+
+ RaisePropertyChanged(nameof(CanNavigateBack));
+ }
+
+ private void NotifyOnBeforeNavigated(object fromVM, object toVM)
+ {
+ if (fromVM == toVM) return;
+
+ if (fromVM is PPCViewModel)
+ {
+ (fromVM as PPCViewModel)?.OnBeforeNavigatedFrom();
+ }
+
+ if (toVM is PPCViewModel)
+ {
+ (toVM as PPCViewModel)?.OnBeforeNavigatedTo();
+ }
+ }
+
+ private void NotifyOnNavigated(object fromVM, object toVM)
+ {
+ IsNavigating = false;
+
+ if (fromVM == toVM) return;
+
+ if (fromVM is PPCViewModel)
+ {
+ (fromVM as PPCViewModel)?.OnNavigatedFrom();
+ }
+
+ if (toVM is PPCViewModel)
+ {
+ (toVM as PPCViewModel)?.OnNavigatedTo();
+ (toVM as PPCViewModel)?.OnNavigatedTo(fromVM as PPCViewModel);
+ }
+ }
+
+ private void NotifyAwaitingVMResults(PPCViewModel fromVM, PPCViewModel toVM)
+ {
+ var awaiter = _awaitingVMResults.SingleOrDefault(x => x.FromVM == toVM && x.ToVM == fromVM);
+ if (awaiter != null)
+ {
+ _awaitingVMResults.Remove(awaiter);
+ awaiter.Action();
+ }
+ }
+
+ private NavigationControl GetLayoutNavigationControl()
+ {
+ return TangoIOC.Default.GetInstance<ILayoutView>().GetNavigationControl();
+ }
+
+ private NavigationControl GetMainNavigationControl()
+ {
+ return TangoIOC.Default.GetInstance<IMainView>().GetNavigationControl();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Notifications/DefaultNotificationProvider.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Notifications/DefaultNotificationProvider.cs
index c2c069f45..cc8f7b4ab 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Notifications/DefaultNotificationProvider.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Notifications/DefaultNotificationProvider.cs
@@ -100,6 +100,7 @@ namespace Tango.PPC.UI.Notifications
_currentMessageBox = value;
RaisePropertyChangedAuto();
RaisePropertyChanged(nameof(HasMessageBox));
+ RaisePropertyChanged(nameof(HasDialogOrMessage));
}
}
@@ -126,6 +127,7 @@ namespace Tango.PPC.UI.Notifications
_currentDialog = value;
RaisePropertyChangedAuto();
RaisePropertyChanged(nameof(HasDialog));
+ RaisePropertyChanged(nameof(HasDialogOrMessage));
}
}
@@ -150,6 +152,14 @@ namespace Tango.PPC.UI.Notifications
}
}
+ public bool HasDialogOrMessage
+ {
+ get
+ {
+ return HasDialog || HasMessageBox;
+ }
+ }
+
/// <summary>
/// Shows an error message box.
/// </summary>
@@ -293,6 +303,7 @@ namespace Tango.PPC.UI.Notifications
item.RemoveAction = () => { PopNotification(item); };
NotificationItems.Insert(0, item);
RaisePropertyChanged(nameof(HasNotificationItems));
+ RaisePropertyChanged(nameof(NotificationItems));
return item;
}
@@ -315,6 +326,7 @@ namespace Tango.PPC.UI.Notifications
LogManager.Log($"Popping out NotificationItem '{item.GetType().Name}'.");
NotificationItems.Remove(item);
RaisePropertyChanged(nameof(HasNotificationItems));
+ RaisePropertyChanged(nameof(NotificationItems));
}
/// <summary>
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/PPCApplication/DefaultPPCApplicationManager.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/PPCApplication/DefaultPPCApplicationManager.cs
index 9b57da988..0f65f833e 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/PPCApplication/DefaultPPCApplicationManager.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/PPCApplication/DefaultPPCApplicationManager.cs
@@ -37,6 +37,8 @@ using Tango.PPC.Common.Synchronization;
using Tango.Insights;
using System.Threading;
using System.Reflection;
+using Tango.PPC.UI.ViewsContracts;
+using Tango.PPC.Common.Build;
namespace Tango.PPC.UI.PPCApplication
{
@@ -55,6 +57,7 @@ namespace Tango.PPC.UI.PPCApplication
private IPPCModuleLoader _moduleLoader;
private INotificationProvider _notificationProvider;
private IMachineDataSynchronizer _machineDataSynchronizer;
+ private IBuildProvider _buildProvider;
private WatchDogServer _watchdogServer;
private ObservablesContext _machineContext;
private ActionTimer _screenLockTimer;
@@ -201,7 +204,7 @@ namespace Tango.PPC.UI.PPCApplication
/// <summary>
/// Initializes a new instance of the <see cref="DefaultPPCApplicationManager"/> class.
/// </summary>
- public DefaultPPCApplicationManager(IMachineProvider machineProvider, IDispatcherProvider dispatcherProvider, IEventLogger eventLogger, IPPCModuleLoader moduleLoader, INotificationProvider notificationProvider, IMachineDataSynchronizer machineDataSynchronizer)
+ public DefaultPPCApplicationManager(IMachineProvider machineProvider, IDispatcherProvider dispatcherProvider, IEventLogger eventLogger, IPPCModuleLoader moduleLoader, INotificationProvider notificationProvider, IMachineDataSynchronizer machineDataSynchronizer, IBuildProvider buildProvider)
{
StartPath = AssemblyHelper.GetCurrentAssemblyFolder();
@@ -211,6 +214,7 @@ namespace Tango.PPC.UI.PPCApplication
_eventLogger = eventLogger;
_moduleLoader = moduleLoader;
_machineDataSynchronizer = machineDataSynchronizer;
+ _buildProvider = buildProvider;
if (!DesignMode)
{
@@ -255,7 +259,7 @@ namespace Tango.PPC.UI.PPCApplication
//Start watchdog
_watchdogServer = new WatchDogServer(Application.Current.Dispatcher);
-#if !DEBUG
+#if (!DEBUG && !Eureka)
if (settings.EnableWatchDog)
{
@@ -289,7 +293,7 @@ namespace Tango.PPC.UI.PPCApplication
settings.ApplicationState = ApplicationStates.Ready;
settings.Save();
- if (isAfterSetup)
+ if (isAfterSetup && !_buildProvider.IsEureka)
{
SystemRestartRequired?.Invoke(this, new EventArgs());
return;
@@ -380,6 +384,8 @@ namespace Tango.PPC.UI.PPCApplication
{
LogManager.Log("Module loader instance has been registered. Registering for the ModulesLoaded event...");
+ ILayoutView layoutView = TangoIOC.Default.GetInstance<ILayoutView>();
+
loader.ModulesLoaded += (x, y) =>
{
LogManager.Log("Loading modules views");
@@ -387,14 +393,14 @@ namespace Tango.PPC.UI.PPCApplication
{
foreach (var module in TangoIOC.Default.GetInstance<IPPCModuleLoader>().UserModules)
{
- if (!Views.LayoutView.Instance.NavigationControl.Elements.ToList().Exists(m => m.GetType() == module.MainViewType))
+ if (!layoutView.GetNavigationControl().Elements.ToList().Exists(m => m.GetType() == module.MainViewType))
{
try
{
LogManager.Log("Loading module view " + module.Name + "...");
FrameworkElement view = Activator.CreateInstance(module.MainViewType) as FrameworkElement;
SharedUI.Controls.NavigationControl.SetNavigationName(view, module.Name);
- Views.LayoutView.Instance.NavigationControl.Elements.Add(view);
+ layoutView.GetNavigationControl().Elements.Add(view);
}
catch (Exception ex)
{
@@ -411,7 +417,7 @@ namespace Tango.PPC.UI.PPCApplication
LogManager.Log("Loading module view " + module.Name + "...");
FrameworkElement view = Activator.CreateInstance(module.MainViewType) as FrameworkElement;
SharedUI.Controls.NavigationControl.SetNavigationName(view, module.Name);
- Views.LayoutView.Instance.NavigationControl.Elements.Add(view);
+ layoutView.GetNavigationControl().Elements.Add(view);
_moduleLoader.AllModules.Add(module);
_moduleLoader.UserModules.Add(module);
}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Printing/DefaultPrintingManager.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Printing/DefaultPrintingManager.cs
index f4a3f643d..575d19efa 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Printing/DefaultPrintingManager.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Printing/DefaultPrintingManager.cs
@@ -109,6 +109,14 @@ namespace Tango.PPC.UI.Printing
job.SpoolType = spoolType;
+ if (printConfig != null && printConfig.GlobalStartPosition > 0)
+ {
+ config.ResumeConfig = new AdditionalJobConfiguration.ResumeConfiguration();
+ config.ResumeConfig.FirstUnitStartPosition = printConfig.FirstUnitStartPosition;
+ config.ResumeConfig.GlobalStartPosition = printConfig.GlobalStartPosition;
+ config.ResumeConfig.RemainingUnits = printConfig.RemainingUnits;
+ }
+
handler = await _machineProvider.MachineOperator.Print(job, config);
_notificationProvider.ReleaseGlobalBusyMessage();
}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Properties/AssemblyInfo.cs
index 95e0188ce..1e5b4ba89 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Properties/AssemblyInfo.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Properties/AssemblyInfo.cs
@@ -8,4 +8,4 @@ using System.Windows;
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Tango PPC Application")]
-[assembly: AssemblyVersion("1.8.12.0")]
+[assembly: AssemblyVersion("2.0.13.0")]
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Resources/Graphs.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Resources/Graphs.xaml
new file mode 100644
index 000000000..67047cf1f
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Resources/Graphs.xaml
@@ -0,0 +1,8 @@
+<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:local="clr-namespace:Tango.PPC.UI.Resources">
+ <ResourceDictionary.MergedDictionaries>
+ <ResourceDictionary Source="pack://application:,,,/Tango.PPC.UI;component/Graphs/RealTimeGraph.xaml" />
+ </ResourceDictionary.MergedDictionaries>
+
+</ResourceDictionary> \ No newline at end of file
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Tango.PPC.UI.csproj b/Software/Visual_Studio/PPC/Tango.PPC.UI/Tango.PPC.UI.csproj
index 464de7da9..705c042c5 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Tango.PPC.UI.csproj
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Tango.PPC.UI.csproj
@@ -50,9 +50,31 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Eureka_Debug|AnyCPU' ">
+ <PlatformTarget>AnyCPU</PlatformTarget>
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>..\..\Build\PPC\Eureka_Debug\</OutputPath>
+ <DefineConstants>TRACE;DEBUG;Eureka</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Eureka|AnyCPU' ">
+ <PlatformTarget>AnyCPU</PlatformTarget>
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>..\..\Build\PPC\Eureka\</OutputPath>
+ <DefineConstants>TRACE;Eureka</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
<PropertyGroup>
<ApplicationManifest>app.manifest</ApplicationManifest>
</PropertyGroup>
+ <PropertyGroup>
+ <ApplicationIcon>Icon.ico</ApplicationIcon>
+ </PropertyGroup>
<ItemGroup>
<Reference Include="ControlzEx, Version=3.0.2.4, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\packages\ControlzEx.3.0.2.4\lib\net45\ControlzEx.dll</HintPath>
@@ -108,6 +130,9 @@
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="WindowsFormsIntegration" />
+ <Reference Include="WPFMediaKit, Version=2.2.0.0, Culture=neutral, processorArchitecture=MSIL">
+ <HintPath>..\..\packages\WPFMediaKit.2.2.0\lib\WPFMediaKit.dll</HintPath>
+ </Reference>
</ItemGroup>
<ItemGroup>
<ApplicationDefinition Include="App.xaml">
@@ -127,16 +152,33 @@
</Compile>
<Compile Include="Authentication\DefaultAuthenticationProvider.cs" />
<Compile Include="Bit\DefaultBitManager.cs" />
+ <Compile Include="Build\DefaultBuildProvider.cs" />
<Compile Include="Connectivity\DefaultConnectivityProvider.cs" />
<Compile Include="Connectivity\WiFiAuthenticationView.xaml.cs">
<DependentUpon>WiFiAuthenticationView.xaml</DependentUpon>
</Compile>
<Compile Include="Connectivity\WiFiAuthenticationViewVM.cs" />
+ <Compile Include="Controls\JobOutlineControl.cs" />
<Compile Include="Controls\MachineStatusControl.xaml.cs">
<DependentUpon>MachineStatusControl.xaml</DependentUpon>
</Compile>
+ <Compile Include="Controls\RunningJobViewerEureka.xaml.cs">
+ <DependentUpon>RunningJobViewerEureka.xaml</DependentUpon>
+ </Compile>
<Compile Include="Converters\AppBarItemConverter.cs" />
+ <Compile Include="Converters\CollectionToCountConverter.cs" />
+ <Compile Include="Converters\ComapareModulNameConverter.cs" />
+ <Compile Include="Converters\DoubleWidthConverter.cs" />
<Compile Include="Converters\ItemBaseConverter.cs" />
+ <Compile Include="Converters\LengthToWeightConverter.cs" />
+ <Compile Include="Converters\LengthWithSpoolsConverter.cs" />
+ <Compile Include="Converters\LiquidTypeToBrushConverter.cs" />
+ <Compile Include="Converters\MidTankLevelToElementRectConverter.cs" />
+ <Compile Include="Converters\ProgressBorderWidthConverter.cs" />
+ <Compile Include="Converters\ProgressLengthSpoolConverter.cs" />
+ <Compile Include="Converters\ProgressUnitSpoolConverter.cs" />
+ <Compile Include="Converters\ProgressWeightSpoolConverter.cs" />
+ <Compile Include="Converters\StatisticTabToVisibilityConverter.cs" />
<Compile Include="Dialogs\BitResultsView.xaml.cs">
<DependentUpon>BitResultsView.xaml</DependentUpon>
</Compile>
@@ -144,10 +186,18 @@
<Compile Include="Dialogs\CartridgeValidationView.xaml.cs">
<DependentUpon>CartridgeValidationView.xaml</DependentUpon>
</Compile>
+ <Compile Include="Dialogs\GeneralInformationView.xaml.cs">
+ <DependentUpon>GeneralInformationView.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="Dialogs\GeneralInformationViewVM.cs" />
<Compile Include="Dialogs\InsufficientLiquidQuantityView.xaml.cs">
<DependentUpon>InsufficientLiquidQuantityView.xaml</DependentUpon>
</Compile>
<Compile Include="Dialogs\InsufficientLiquidQuantityViewVM.cs" />
+ <Compile Include="Dialogs\PowerEurekaView.xaml.cs">
+ <DependentUpon>PowerEurekaView.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="Dialogs\PowerEurekaViewVM.cs" />
<Compile Include="Dialogs\SafetyLevelOperationsConfirmationView.xaml.cs">
<DependentUpon>SafetyLevelOperationsConfirmationView.xaml</DependentUpon>
</Compile>
@@ -189,8 +239,17 @@
</Compile>
<Compile Include="Dialogs\FirmwareUpgradeFromFileViewVM.cs" />
<Compile Include="Dialogs\UpdateFromFileViewVM.cs" />
+ <Compile Include="Graphs\GraphHelper.cs" />
+ <Compile Include="Graphs\RealTimeGraph.cs" />
+ <Compile Include="Helpers\DpiHelper.cs" />
<Compile Include="InternalModule.cs" />
+ <Compile Include="Models\MachineOverviewErrorStates.cs" />
+ <Compile Include="Models\MachineOverviewItem.cs" />
+ <Compile Include="Models\MachineOverviewModel.cs" />
+ <Compile Include="Models\JerricanLevelModel.cs" />
+ <Compile Include="Models\MachineOverviewErrorItem.cs" />
<Compile Include="Modules\DefaultPPCModuleLoader.cs" />
+ <Compile Include="Navigation\EurekaNavigationManager.cs" />
<Compile Include="Navigation\DefaultNavigationManager.cs" />
<Compile Include="Notifications\DefaultNotificationProvider.cs" />
<Compile Include="Notifications\DialogAndView.cs" />
@@ -213,6 +272,7 @@
<Compile Include="ViewModels\LoadingViewVM.cs" />
<Compile Include="ViewModels\LoginViewVM.cs" />
<Compile Include="ViewModels\MachineSetupViewVM.cs" />
+ <Compile Include="ViewModels\MachineStatusViewVM.cs" />
<Compile Include="ViewModels\MainViewVM.cs" />
<Compile Include="ViewModels\MachineUpdateViewVM.cs" />
<Compile Include="ViewModels\NoPermissionsViewVM.cs" />
@@ -222,12 +282,16 @@
<Compile Include="ViewsContracts\ILayoutView.cs" />
<Compile Include="ViewsContracts\IMachineSetupView.cs" />
<Compile Include="ViewsContracts\IMachineUpdateView.cs" />
+ <Compile Include="ViewsContracts\IMainView.cs" />
<Compile Include="Views\ExternalBridgeView.xaml.cs">
<DependentUpon>ExternalBridgeView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\InternalModuleView.xaml.cs">
<DependentUpon>InternalModuleView.xaml</DependentUpon>
</Compile>
+ <Compile Include="Views\LayoutEurekaView.xaml.cs">
+ <DependentUpon>LayoutEurekaView.xaml</DependentUpon>
+ </Compile>
<Compile Include="Views\LayoutView.xaml.cs">
<DependentUpon>LayoutView.xaml</DependentUpon>
</Compile>
@@ -237,6 +301,12 @@
<Compile Include="Views\LoadingErrorView.xaml.cs">
<DependentUpon>LoadingErrorView.xaml</DependentUpon>
</Compile>
+ <Compile Include="Views\MachineStatusView.xaml.cs">
+ <DependentUpon>MachineStatusView.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="Views\MainEurekaView.xaml.cs">
+ <DependentUpon>MainEurekaView.xaml</DependentUpon>
+ </Compile>
<Compile Include="Views\PowerOffView.xaml.cs">
<DependentUpon>PowerOffView.xaml</DependentUpon>
</Compile>
@@ -280,6 +350,10 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
+ <Page Include="Controls\RunningJobViewerEureka.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
<Page Include="Dialogs\BitResultsView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
@@ -288,10 +362,18 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
+ <Page Include="Dialogs\GeneralInformationView.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
<Page Include="Dialogs\InsufficientLiquidQuantityView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
+ <Page Include="Dialogs\PowerEurekaView.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
<Page Include="Dialogs\SafetyLevelOperationsConfirmationView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
@@ -332,6 +414,10 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
+ <Page Include="Graphs\RealTimeGraph.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
<Page Include="MainWindow.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
@@ -356,6 +442,10 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
+ <Page Include="Resources\Graphs.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
<Page Include="Resources\Styles.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
@@ -368,6 +458,10 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
+ <Page Include="Views\LayoutEurekaView.xaml">
+ <Generator>MSBuild:Compile</Generator>
+ <SubType>Designer</SubType>
+ </Page>
<Page Include="Views\LayoutView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
@@ -380,6 +474,14 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
+ <Page Include="Views\MachineStatusView.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
+ <Page Include="Views\MainEurekaView.xaml">
+ <Generator>MSBuild:Compile</Generator>
+ <SubType>Designer</SubType>
+ </Page>
<Page Include="Views\PowerOffView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
@@ -432,6 +534,7 @@
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<Resource Include="Images\GlobalStatus\ready-to-dye.png" />
+ <Resource Include="Images\Overview Icons\Sensors.png" />
<Resource Include="Images\user-profile.png" />
<Resource Include="Images\warning-test.png" />
<EmbeddedResource Include="Properties\Resources.resx">
@@ -508,6 +611,42 @@
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<Resource Include="Images\waste_replace.png" />
+ <Resource Include="Images\JobProgressView\clock.png" />
+ <Resource Include="Images\JobProgressView\drop.png" />
+ <Resource Include="Images\Job Issues\input.png" />
+ <Resource Include="Images\Job Issues\job_copies.png" />
+ <Resource Include="Images\Job Issues\job_length.png" />
+ <Resource Include="Images\Job Issues\job_weight.png" />
+ <Resource Include="Images\Job Issues\output.png" />
+ <Resource Include="Images\Job Issues\spools.png" />
+ <Resource Include="Images\Job Issues\Thread.png" />
+ <Resource Include="Images\Job Issues\ttime_left.png" />
+ <Resource Include="Images\Job Issues\thread_type.png" />
+ <Resource Include="Images\Job Issues\Events.png" />
+ <Resource Include="Images\Job Issues\Machine outline.png" />
+ <Resource Include="Images\Menu\restart_t.png" />
+ <Resource Include="Images\Menu\Power_image.png" />
+ <Resource Include="Manifests\eureka.xml" />
+ <Resource Include="Icon.ico" />
+ <Resource Include="Images\Overview Icons\Error.png" />
+ <Resource Include="Images\Overview Icons\Feeder2.png" />
+ <Resource Include="Images\Overview Icons\Feeder3.png" />
+ <Resource Include="Images\Overview Icons\Inks.png" />
+ <Resource Include="Images\Overview Icons\Feeder1.png" />
+ <Resource Include="Images\Overview Icons\Normal.png" />
+ <Resource Include="Images\Overview Icons\UpdateInk.png" />
+ <Resource Include="Images\Overview Icons\Warning.png" />
+ <Resource Include="Images\Overview Icons\Waste.png" />
+ <Resource Include="Images\Overview Icons\Feeder4.png" />
+ <Resource Include="Manifests\eureka_debug.xml" />
+ <Resource Include="Images\Overview Icons\JericanRemoved.png" />
+ <Resource Include="Images\Overview Icons\motor.png" />
+ <Resource Include="Images\Overview Icons\pressure.png" />
+ <Resource Include="Images\Overview Icons\pr_data.png" />
+ <Resource Include="Images\Overview Icons\temperature.png" />
+ <Resource Include="Images\screw.png" />
+ <Resource Include="Images\Menu\AppPower_image.png" />
+ <Content Include="Intro.wmv" />
<Content Include="Manifests\release.xml" />
<Content Include="Manifests\debug.xml" />
<None Include="firmware_package.tfp">
@@ -516,7 +655,9 @@
<None Include="GetVersionTag.bat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
- <None Include="packages.config" />
+ <None Include="packages.config">
+ <SubType>Designer</SubType>
+ </None>
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
@@ -526,6 +667,14 @@
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
+ <ProjectReference Include="..\..\SideChains\RealTimeGraphX-master\RealTimeGraphX.WPF\RealTimeGraphX.WPF.csproj">
+ <Project>{6b9774f7-960d-438e-ad81-c6b9be328d50}</Project>
+ <Name>RealTimeGraphX.WPF</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\SideChains\RealTimeGraphX-master\RealTimeGraphX\RealTimeGraphX.csproj">
+ <Project>{f13a489c-80ee-4cd0-bdd4-92d959215646}</Project>
+ <Name>RealTimeGraphX</Name>
+ </ProjectReference>
<ProjectReference Include="..\..\Tango.AnimatedGif\Tango.AnimatedGif.csproj">
<Project>{d129789c-3096-4d0b-8dd7-fe24a4df4b21}</Project>
<Name>Tango.AnimatedGif</Name>
@@ -622,10 +771,6 @@
<Project>{dbbd90f4-4135-475d-a8f8-6795d3a8f697}</Project>
<Name>Tango.PPC.JobsV2</Name>
</ProjectReference>
- <ProjectReference Include="..\Modules\Tango.PPC.Jobs\Tango.PPC.Jobs.csproj">
- <Project>{096f16c8-6d06-4b5f-9496-b9d2df2d94a3}</Project>
- <Name>Tango.PPC.Jobs</Name>
- </ProjectReference>
<ProjectReference Include="..\Modules\Tango.PPC.MachineSettings\Tango.PPC.MachineSettings.csproj">
<Project>{91b70e9b-66a7-4873-ae10-400e71cf404f}</Project>
<Name>Tango.PPC.MachineSettings</Name>
@@ -757,6 +902,7 @@
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\..\packages\System.Data.SQLite.Core.1.0.108.0\build\net46\System.Data.SQLite.Core.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\System.Data.SQLite.Core.1.0.108.0\build\net46\System.Data.SQLite.Core.targets'))" />
+ <Error Condition="!Exists('..\..\packages\WPFMediaKit.2.2.0\build\WPFMediaKit.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WPFMediaKit.2.2.0\build\WPFMediaKit.targets'))" />
</Target>
<PropertyGroup>
<PostBuildEvent>RD /S /Q "$(TargetDir)cs\"
@@ -810,8 +956,11 @@ RD /S /Q "$(TargetDir)ProtoCompilers\"
RD /S /Q "$(TargetDir)Packages\ProtoCompilers\"
if $(ConfigurationName) == Release RD /S /Q "$(TargetDir)x86\"
if $(ConfigurationName) == Release RD /S /Q "$(TargetDir)x64\"
+if $(ConfigurationName) == Eureka RD /S /Q "$(TargetDir)x86\"
+if $(ConfigurationName) == Eureka RD /S /Q "$(TargetDir)x64\"
if $(ConfigurationName) == Release RD /S /Q "$(TargetDir)lib\"
+if $(ConfigurationName) == Eureka RD /S /Q "$(TargetDir)lib\"
copy /Y "$(SolutionDir)Referenced Assemblies\mscoree.dll" "$(TargetDir)"
copy /Y "$(SolutionDir)Referenced Assemblies\msvcp140d.dll" "$(TargetDir)"
@@ -821,14 +970,20 @@ copy /Y "$(SolutionDir)Referenced Assemblies\vcruntime140d.dll" "$(TargetDir)"
copy /Y "$(SolutionDir)Referenced Assemblies\Microsoft.WITDataStore32.dll" "$(TargetDir)"
if $(ConfigurationName) == Release del "$(TargetDir)firmware_package.tfp"
+if $(ConfigurationName) == Eureka del "$(TargetDir)firmware_package.tfp"
if $(ConfigurationName) == Release del *.xml
+if $(ConfigurationName) == Eureka del *.xml
if $(ConfigurationName) == Release del WebRtc.NET.pdb
+if $(ConfigurationName) == Eureka del WebRtc.NET.pdb
if $(ConfigurationName) == Debug copy /Y "$(TargetDir)Packages" "$(TargetDir)"
-if $(ConfigurationName) == Debug "rc.exe" "$(TargetPath)" --set-version-string "Comments" "Coats"</PostBuildEvent>
+if $(ConfigurationName) == Debug "rc.exe" "$(TargetPath)" --set-version-string "Comments" "Debug Tag"
+
+if $(ConfigurationName) == Eureka_Debug copy /Y "$(ProjectDir)Intro.wmv" "$(TargetDir)"
+if $(ConfigurationName) == Eureka copy /Y "$(ProjectDir)Intro.wmv" "$(TargetDir)"</PostBuildEvent>
</PropertyGroup>
<PropertyGroup>
<PreBuildEvent>copy /Y "$(ProjectDir)Manifests\$(ConfigurationName).xml" "$(ProjectDir)app.manifest"
@@ -836,7 +991,8 @@ if $(ConfigurationName) == Debug "rc.exe" "$(TargetPath)" --set-version-string "
</PropertyGroup>
<ProjectExtensions>
<VisualStudio>
- <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" />
+ <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" />
</VisualStudio>
</ProjectExtensions>
+ <Import Project="..\..\packages\WPFMediaKit.2.2.0\build\WPFMediaKit.targets" Condition="Exists('..\..\packages\WPFMediaKit.2.2.0\build\WPFMediaKit.targets')" />
</Project> \ No newline at end of file
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/ThreadLoading/DefaultThreadLoadingService.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/ThreadLoading/DefaultThreadLoadingService.cs
index a6479da63..4d6a848d3 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/ThreadLoading/DefaultThreadLoadingService.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ThreadLoading/DefaultThreadLoadingService.cs
@@ -3,7 +3,9 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using Tango.Core.DI;
using Tango.Integration.Operation;
+using Tango.PPC.Common.Build;
using Tango.PPC.Common.Connection;
using Tango.PPC.Common.Notifications;
using Tango.PPC.Common.Threading;
@@ -24,7 +26,8 @@ namespace Tango.PPC.UI.ThreadLoading
_notificationsProvider = notificationsProvider;
_machineProvider = machineProvider;
_dispatcher = dispatcher;
- _machineProvider.MachineOperator.ThreadLoadingStatusChanged += MachineOperator_ThreadLoadingStatusChanged;
+ if(false == TangoIOC.Default.GetInstance<IBuildProvider>().IsEureka)
+ _machineProvider.MachineOperator.ThreadLoadingStatusChanged += MachineOperator_ThreadLoadingStatusChanged;
}
private void MachineOperator_ThreadLoadingStatusChanged(object sender, PMR.ThreadLoading.StartThreadLoadingResponse e)
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModelLocator.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModelLocator.cs
index ab7547dad..251eeb1ec 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModelLocator.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModelLocator.cs
@@ -8,6 +8,7 @@ using Tango.PPC.Common.Application;
using Tango.PPC.Common.Authentication;
using Tango.PPC.Common.BackupRestore;
using Tango.PPC.Common.Bit;
+using Tango.PPC.Common.Build;
using Tango.PPC.Common.Connection;
using Tango.PPC.Common.Connectivity;
using Tango.PPC.Common.Console;
@@ -71,6 +72,8 @@ namespace Tango.PPC.UI
/// </summary>
static ViewModelLocator()
{
+ var buildProvider = TangoIOC.Default.GetInstance<IBuildProvider>();
+
TangoIOC.Default.Unregister<IDispatcherProvider>();
TangoIOC.Default.Unregister<INotificationProvider>();
TangoIOC.Default.Unregister<IAuthenticationProvider>();
@@ -125,7 +128,14 @@ namespace Tango.PPC.UI
TangoIOC.Default.Register<INotificationProvider, DefaultNotificationProvider>();
TangoIOC.Default.Register<IAuthenticationProvider, DefaultAuthenticationProvider>();
TangoIOC.Default.Register<IPPCModuleLoader, DefaultPPCModuleLoader>();
- TangoIOC.Default.Register<INavigationManager, DefaultNavigationManager>();
+ if (buildProvider.IsEureka)
+ {
+ TangoIOC.Default.Register<INavigationManager, EurekaNavigationManager>();
+ }
+ else
+ {
+ TangoIOC.Default.Register<INavigationManager, DefaultNavigationManager>();
+ }
TangoIOC.Default.Register<IMachineProvider, DefaultMachineProvider>();
TangoIOC.Default.Register<IEventLogger, DefaultEventLogger>();
TangoIOC.Default.Register<IMachineDataSynchronizer, DefaultMachineDataSynchronizer>();
@@ -174,11 +184,22 @@ namespace Tango.PPC.UI
TangoIOC.Default.Register<RestartingViewVM>();
TangoIOC.Default.Register<InternalModuleViewVM>();
TangoIOC.Default.Register<PowerOffViewVM>();
+ TangoIOC.Default.Register<MachineStatusViewVM>();
TangoIOC.Default.GetInstance<IPPCApplicationManager>().ContentRendered += (_, __) =>
{
- TangoIOC.Default.Register<ILayoutView, LayoutView>(LayoutView.Instance);
+ if (buildProvider.IsEureka)
+ {
+ TangoIOC.Default.Register<IMainView, MainEurekaView>(MainEurekaView.Instance);
+ TangoIOC.Default.Register<ILayoutView, LayoutEurekaView>(LayoutEurekaView.Instance);
+ }
+ else
+ {
+ TangoIOC.Default.Register<IMainView, MainView>(MainView.Instance);
+ TangoIOC.Default.Register<ILayoutView, LayoutView>(LayoutView.Instance);
+ }
+
TangoIOC.Default.Register<IMachineSetupView, MachineSetupView>(MachineSetupView.Instance);
TangoIOC.Default.Register<IMachineUpdateView, MachineUpdateView>(MachineUpdateView.Instance);
};
@@ -303,5 +324,13 @@ namespace Tango.PPC.UI
return TangoIOC.Default.GetInstance<PowerOffViewVM>();
}
}
+
+ public static MachineStatusViewVM MachineStatusViewVM
+ {
+ get
+ {
+ return TangoIOC.Default.GetInstance<MachineStatusViewVM>();
+ }
+ }
}
} \ No newline at end of file
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/LayoutViewVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/LayoutViewVM.cs
index 42d947326..17b676499 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/LayoutViewVM.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/LayoutViewVM.cs
@@ -16,6 +16,7 @@ using Tango.PPC.Common;
using Tango.PPC.Common.Connection;
using Tango.PPC.Common.Modules;
using Tango.PPC.Common.Navigation;
+using Tango.PPC.UI.Dialogs;
using Tango.PPC.UI.Views;
using Tango.PPC.UI.ViewsContracts;
using Tango.SharedUI;
@@ -30,6 +31,7 @@ namespace Tango.PPC.UI.ViewModels
{
private JobHandler _jobHandler;
private bool _resettingDevice;
+ private DispatcherTimer _date_timer;
/// <summary>
/// Gets or sets the module loader.
@@ -218,6 +220,16 @@ namespace Tango.PPC.UI.ViewModels
set { _cartridges = value; RaisePropertyChangedAuto(); }
}
+ private DateTime _currentDateTime;
+ /// <summary>
+ /// Gets or sets the current date time.
+ /// </summary>
+ public DateTime CurrentDateTime
+ {
+ get { return _currentDateTime; }
+ set { _currentDateTime = value; RaisePropertyChangedAuto(); }
+ }
+
#endregion
#region Commands
@@ -281,6 +293,10 @@ namespace Tango.PPC.UI.ViewModels
/// Gets or sets the stand by command.
/// </summary>
public RelayCommand StandByCommand { get; set; }
+ /// <summary>
+ /// Gets or sets the open general information dialog command.
+ /// </summary>
+ public RelayCommand OpenGeneralinformationCommand { get; set; }
#endregion
@@ -300,17 +316,61 @@ namespace Tango.PPC.UI.ViewModels
SignOutCommand = new RelayCommand(SignOut);
UpdateCommand = new RelayCommand(UpdateMachine);
- PowerCommand = new RelayCommand(() => IsPowerOpened = true);
+ PowerCommand = new RelayCommand(OpenPowerOptions);
RestartApplicationCommand = new RelayCommand(RestartApplication);
PowerOffCommand = new RelayCommand(PowerOffMachine, () => MachineProvider.MachineOperator.Status != MachineStatuses.Disconnected);
ResetCommand = new RelayCommand(ResetMachine, () => MachineProvider.MachineOperator.Status != MachineStatuses.Disconnected);
StandByCommand = new RelayCommand(StandBy, () => MachineProvider.MachineOperator.CanPrint);
+ OpenGeneralinformationCommand = new RelayCommand(OpenGeneralinformationDlg);
+
+ _date_timer = new DispatcherTimer();
+ _date_timer.Interval = TimeSpan.FromSeconds(1);
+ _date_timer.Tick += _date_timer_Tick;
+ _date_timer.Start();
}
#endregion
#region Private Methods
+ private async void OpenPowerOptions()
+ {
+ IsPowerOpened = true;
+
+ if (BuildProvider.IsEureka)
+ {
+ PowerEurekaViewVM vm = new PowerEurekaViewVM();
+ vm = await NotificationProvider.ShowDialog<PowerEurekaViewVM>(vm);
+
+ if (!vm.DialogResult) return;
+
+ switch(vm.PowerAction)
+ {
+ case PowerEurekaViewVM.PowerActionEnum.TurnOff:
+ if(MachineProvider.MachineOperator.Status != MachineStatuses.Disconnected)
+ PowerOffMachine();
+ return;
+ case PowerEurekaViewVM.PowerActionEnum.StandBy:
+ if (MachineProvider.MachineOperator.CanPrint)
+ StandBy();
+ return;
+ case PowerEurekaViewVM.PowerActionEnum.RestartT:
+ RestartApplication();
+ return;
+ case PowerEurekaViewVM.PowerActionEnum.Restart:
+ if (MachineProvider.MachineOperator.Status != MachineStatuses.Disconnected)
+ ResetMachine();
+ return;
+ case PowerEurekaViewVM.PowerActionEnum.CloseApp:
+ CloseApplication();
+ return;
+ default:
+ return;
+ }
+
+ }
+ }
+
/// <summary>
/// Stops the printing.
/// </summary>
@@ -398,6 +458,14 @@ namespace Tango.PPC.UI.ViewModels
}
}
+ private async void CloseApplication()
+ {
+ if (await NotificationProvider.ShowQuestion("Are you sure you want to close the application?"))
+ {
+ ApplicationManager.ShutDown();
+ }
+ }
+
/// <summary>
/// Powers off the machine.
/// </summary>
@@ -475,6 +543,13 @@ namespace Tango.PPC.UI.ViewModels
IsMenuOpened = false;
}
+ private async void OpenGeneralinformationDlg()
+ {
+ GeneralInformationViewVM vm = new GeneralInformationViewVM(MachineProvider, ApplicationManager);
+ vm = await NotificationProvider.ShowDialog<GeneralInformationViewVM>(vm);
+
+ }
+
#endregion
#region Override Methods
@@ -578,6 +653,11 @@ namespace Tango.PPC.UI.ViewModels
#region Event Handlers
+ private void _date_timer_Tick(object sender, EventArgs e)
+ {
+ CurrentDateTime = DateTime.Now;
+ }
+
/// <summary>
/// Handles the PrintingStarted event of the MachineOperator.
/// </summary>
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/LoginViewVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/LoginViewVM.cs
index ec316989f..07b58e55f 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/LoginViewVM.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/LoginViewVM.cs
@@ -13,6 +13,7 @@ using Tango.PPC.Common.Authentication;
using Tango.BL.Entities;
using Tango.BL.Enumerations;
using Tango.Logging;
+using Tango.PPC.UI.Views;
namespace Tango.PPC.UI.ViewModels
{
@@ -95,6 +96,14 @@ namespace Tango.PPC.UI.ViewModels
if (!AuthenticationProvider.AuthenticationRequired)
{
LogManager.Log("Application is ready! Navigating to home module...");
+
+ if (BuildProvider.IsEureka)
+ {
+ var secondsPassed = (DateTime.Now - LoadingView.VideoStartTime).TotalSeconds;
+ var secondsToHold = Math.Max(10 - secondsPassed, 0);
+ await Task.Delay(TimeSpan.FromSeconds(secondsToHold));
+ }
+
await NavigationManager.NavigateTo(NavigationView.HomeModule);
IsLoading = false;
}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineSetupViewVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineSetupViewVM.cs
index cce7d277b..6d99c1ff8 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineSetupViewVM.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineSetupViewVM.cs
@@ -306,7 +306,14 @@ namespace Tango.PPC.UI.ViewModels
if (connected)
{
- await NavigateTo(MachineSetupView.TimeZoneView);
+ if (BuildProvider.IsEureka)
+ {
+ await NavigateTo(MachineSetupView.EnvironmentView);
+ }
+ else
+ {
+ await NavigateTo(MachineSetupView.TimeZoneView);
+ }
}
else
{
@@ -346,7 +353,12 @@ namespace Tango.PPC.UI.ViewModels
{
_ppcWebClient.Environment = DeploymentSlot;
}
- await _operationSystemManager.ChangeTimeZone(SelectedTimeZone);
+
+ if (!BuildProvider.IsEureka)
+ {
+ await _operationSystemManager.ChangeTimeZone(SelectedTimeZone);
+ }
+
_setup_result = await MachineSetupManager.Setup(SerialNumber);
State = MachineSetupStates.Completed;
LogManager.Log("Machine setup completed.");
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineStatusViewVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineStatusViewVM.cs
new file mode 100644
index 000000000..131476c9e
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineStatusViewVM.cs
@@ -0,0 +1,855 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.BL.Entities;
+using Tango.BL.Enumerations;
+using Tango.Core.Commands;
+using Tango.Core.DI;
+using Tango.Integration.Operation;
+using Tango.PMR.Diagnostics;
+using Tango.PMR.MachineStatus;
+using Tango.PPC.Common;
+using Tango.PPC.Common.Diagnostics;
+using Tango.PPC.Jobs;
+using Tango.PPC.Jobs.NavigationObjects;
+using Tango.PPC.Jobs.Views;
+using Tango.PPC.UI.Models;
+using System.Timers;
+using System.Windows.Threading;
+using System.Diagnostics;
+using Tango.PMR.Printing;
+using System.ComponentModel;
+using RealTimeGraphX.WPF;
+using RealTimeGraphX.DataPoints;
+using Tango.PPC.UI.Graphs;
+using Tango.BL;
+using System.Data.Entity;
+using System.Windows.Media;
+
+namespace Tango.PPC.UI.ViewModels
+{
+ public class MachineStatusViewVM : PPCViewModel
+ {
+ public enum StatisticTab
+ {
+ [Description("Production Data")]
+ Productiondata = 0,
+ [Description("Temperature")]
+ Temperature = 1,
+ [Description("Pressure")]
+ Pressure = 2,
+ [Description("Motor")]
+ Motor = 3
+ }
+
+ public class TimeToDyeValueItem
+ {
+ public DateTime startTime;
+ public DateTime endTime;
+ public double totalValue;
+ };
+
+ public class TimeToDyeValueCollection
+ {
+ public DateTime StartTime { get; set;}
+ public List<TimeToDyeValueItem> items;
+ public TimeToDyeValueCollection()
+ {
+ items = new List<TimeToDyeValueItem>();
+ }
+ };
+
+ private DispatcherTimer _productiondata_timer;
+
+ #region Properties
+
+ [TangoInject]
+ public IDiagnosticsFrameProvider DefaultDiagnosticsFrameProvider { get; set; }
+
+ private JobHandler _handler;
+
+ private Job _job;
+ /// <summary>
+ /// Gets or sets the job.
+ /// </summary>
+ public Job Job
+ {
+ get { return _job; }
+ set
+ {
+ _job = value;
+ if (_job == null)
+ IsDyeingProcess = false;
+ RaisePropertyChangedAuto();
+ InvalidateRelayCommands();
+ }
+ }
+
+ private RunningJobStatus _runningJobStatus;
+ /// <summary>
+ /// Gets or sets the running job status.
+ /// </summary>
+ public RunningJobStatus RunningJobStatus
+ {
+ get { return _runningJobStatus; }
+ set
+ {
+ _runningJobStatus = value;
+ RaisePropertyChangedAuto();
+ }
+ }
+
+ private bool _isJobStatusViewEnable;
+
+ public bool IsJobStatusViewEnable
+ {
+ get { return _isJobStatusViewEnable; }
+ set { _isJobStatusViewEnable = value; RaisePropertyChangedAuto(); }
+ }
+
+ private bool _isEnabledStopButton;
+ /// <summary>
+ /// Gets or sets a value indicating whether this instance is enabled stop button.
+ /// </summary>
+ public bool IsEnabledStopButton
+ {
+ get { return _isEnabledStopButton; }
+ set { _isEnabledStopButton = value; RaisePropertyChangedAuto(); }
+ }
+
+ private bool _isSpoolView;
+ /// <summary>
+ /// Gets or sets a value indicating whether this instance is spool view.
+ /// </summary>
+ public bool IsSpoolView
+ {
+ get { return _isSpoolView; }
+ set { _isSpoolView = value; RaisePropertyChangedAuto(); }
+ }
+
+ private bool _isWeightView;
+ /// <summary>
+ /// Gets or sets a value indicating whether this instance is length. Show indicator values in length or weight.
+ /// </summary>
+ public bool IsWeghtView
+ {
+ get { return _isWeightView; }
+ set { _isWeightView = value; RaisePropertyChangedAuto(); }
+ }
+
+
+ private bool _isDyeingProcess;
+
+ public bool IsDyeingProcess
+ {
+ get { return _isDyeingProcess; }
+ set
+ {
+ if (_isDyeingProcess != value)
+ {
+ _isDyeingProcess = value;
+ RaisePropertyChangedAuto();
+ }
+ }
+ }
+
+ private BrushStop _currentBrushStop;
+ public BrushStop CurrentBrushStop
+ {
+ get { return _currentBrushStop; }
+ set
+ {
+ // if (_currentBrushStop != value)
+ {
+ _currentBrushStop = value;
+ OnUpdateCurrentBrush();
+ RaisePropertyChangedAuto();
+ }
+ }
+ }
+
+ public JobBrushStop JobBrushStop { get; set; }
+
+ public double CyanOutput
+ {
+ get { return GetVolumeLiquidType(LiquidTypes.Cyan); }
+ }
+
+ public double MagentaOutput
+ {
+ get { return GetVolumeLiquidType(LiquidTypes.Magenta); }
+ }
+
+ public double YellowOutput
+ {
+ get { return GetVolumeLiquidType(LiquidTypes.Yellow); }
+ }
+
+ public double BlackOutput
+ {
+ get { return GetVolumeLiquidType(LiquidTypes.Black); }
+ }
+
+ public double LightCyanOutput
+ {
+ get { return GetVolumeLiquidType(LiquidTypes.LightCyan); }
+ }
+
+ public double LightMagentaOutput
+ {
+ get { return GetVolumeLiquidType(LiquidTypes.LightMagenta); }
+ }
+
+ public double LightYellowOutput
+ {
+ get { return GetVolumeLiquidType(LiquidTypes.LightYellow); }
+ }
+
+ //public double TransparentInkOutput
+ //{
+ // get { return GetVolumeLiquidType(LiquidTypes.TransparentInk); }
+ //}
+
+ //public double LubricantOutput
+ //{
+ // get { return GetVolumeLiquidType(LiquidTypes.Lubricant); }
+ //}
+
+ private List<JerricanLevelModel> _midTankLevels;
+ public List<JerricanLevelModel> MidTankLevels
+ {
+ get { return _midTankLevels; }
+ set { _midTankLevels = value; RaisePropertyChangedAuto(); }
+ }
+
+ private JerricanLevelModel _midTankLubLevel;
+ public JerricanLevelModel MidTankLubLevel
+ {
+ get { return _midTankLubLevel; }
+ set { _midTankLubLevel = value; RaisePropertyChangedAuto(); }
+ }
+
+ public MachineOverviewModel OverviewModel { get; set; }
+
+ private bool _isDisplayJobOutline;
+ /// <summary>
+ /// Gets or sets a value indicating whether to display the job outline.
+ /// </summary>
+ public bool IsDisplayJobOutline
+ {
+ get { return _isDisplayJobOutline; }
+ set { _isDisplayJobOutline = value; RaisePropertyChangedAuto(); }
+ }
+
+ private JobTicket _jobOutlineTicket;
+ /// <summary>
+ /// Gets or sets the job outline ticket.
+ /// </summary>
+ public JobTicket JobOutlineTicket
+ {
+ get { return _jobOutlineTicket; }
+ set { _jobOutlineTicket = value; RaisePropertyChangedAuto(); }
+ }
+
+ public MachineOverviewErrorStates MachineErrorStates { get; set; }
+
+ private bool _isExpandedNotificatios;
+
+ public bool IsExpandedNotifications
+ {
+ get { return _isExpandedNotificatios; }
+ set {
+ _isExpandedNotificatios = value;
+ RaisePropertyChangedAuto();}
+ }
+
+ private int _selectedStatisticTabIndex;
+ /// <summary>
+ /// Gets or sets the index of the selected category.
+ /// </summary>
+ public int SelectedStatisticTabIndex
+ {
+ get { return _selectedStatisticTabIndex; }
+ set
+ {
+ if (_selectedStatisticTabIndex != value)
+ {
+ _selectedStatisticTabIndex = value;
+ RaisePropertyChangedAuto();
+ switch (_selectedStatisticTabIndex)
+ {
+ case 0:
+ {
+ SelectedStatisticTab = StatisticTab.Productiondata;
+ break;
+ }
+ case 1:
+ {
+ SelectedStatisticTab = StatisticTab.Temperature;
+ break;
+ }
+ case 2:
+ {
+ SelectedStatisticTab = StatisticTab.Pressure;
+ break;
+ }
+ case 3:
+ {
+ SelectedStatisticTab = StatisticTab.Motor;
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ private StatisticTab _selectedStatisticTab;
+ /// <summary>
+ /// Gets or sets the selected category.
+ /// </summary>
+ ///
+ public StatisticTab SelectedStatisticTab
+ {
+ get
+ {
+ return _selectedStatisticTab;
+ }
+ set
+ {
+ if (_selectedStatisticTab != value)
+ {
+ _selectedStatisticTab = value;
+ RaisePropertyChangedAuto();
+ }
+ _selectedStatisticTabIndex = _selectedStatisticTab.ToInt32();
+ RaisePropertyChanged(nameof(SelectedStatisticTabIndex));
+ }
+ }
+
+ public WpfGraphController<DateTimeDataPoint, DoubleDataPoint> JobController { get; set; }
+
+ #endregion
+
+ #region Commands
+
+ public RelayCommand StopCommand { get; set; }
+
+ public RelayCommand AbortCommand { get; set; }
+
+ public RelayCommand ResumeCommand { get; set; }
+ public RelayCommand CaancelJobCommand{ get; set; }
+ public RelayCommand RestartJobCommand { get; set; }
+ public RelayCommand ClearJobCommand { get; set; }
+
+
+ public RelayCommand GoToJobCommand { get; set; }
+
+ /// <summary>
+ /// Gets or sets the job status view command.
+ /// </summary>
+ public RelayCommand JobStatusViewCommand { get; set; }
+
+ /// <summary>
+ /// Gets or sets the overview view command.
+ /// </summary>
+ public RelayCommand OverviewViewCommand { get; set; }
+
+ public RelayCommand ClearAllNotificationsCommand { get; set; }
+
+ public RelayCommand DisplayJobOutlineCommand { get; set; }
+
+ public RelayCommand HideJobOutlineCommand { get; set; }
+
+ #endregion
+
+ public MachineStatusViewVM()
+ {
+ _productiondata_timer = new DispatcherTimer();
+ _productiondata_timer.Interval = TimeSpan.FromMinutes(10);
+ _productiondata_timer.Tick += _productiondata_timer_Tick;
+
+
+ StopCommand = new RelayCommand(StopJob, () => CanStopped());
+ AbortCommand = new RelayCommand(AbortJob, () => CanStopped());
+
+ ResumeCommand = new RelayCommand(ResumeJob, () => CanStopped());
+ CaancelJobCommand = new RelayCommand(CaancelJob, () => CanStopped());
+ RestartJobCommand = new RelayCommand(RestartJob, () => CanStopped());
+ ClearJobCommand = new RelayCommand(ClearJob, () => CanStopped());
+
+
+ GoToJobCommand = new RelayCommand(GoToJob, () => IsEnableGoToJob());
+ JobStatusViewCommand = new RelayCommand(JobStatusView);
+ OverviewViewCommand = new RelayCommand(OverviewView);
+ ClearAllNotificationsCommand = new RelayCommand(ClearAllNotifications);
+ DisplayJobOutlineCommand = new RelayCommand(DisplayJobOutline);
+ HideJobOutlineCommand = new RelayCommand(HideJobOutline);
+
+ IsJobStatusViewEnable = true;
+ IsEnabledStopButton = false;
+ IsSpoolView = false;
+ IsWeghtView = false;
+
+ OverviewModel = new MachineOverviewModel();
+ MachineErrorStates = new MachineOverviewErrorStates();
+
+ IsExpandedNotifications = false;
+ SelectedStatisticTabIndex = 0;
+
+ JobController = CreateController(CreateSeries("Total", GraphHelper.GraphColor.Green));
+ }
+
+ public override void OnApplicationReady()
+ {
+ base.OnApplicationReady();
+ EventLogger.EventReceived += EventLogger_EventReceived;
+
+ MidTankLevels = MachineProvider.Machine.Configuration.NoneEmptyIdsPacks.Where(x => x.MidTankType.HasLevelMeasure ).OrderBy(x => x.PackIndex).Select(x => new JerricanLevelModel()
+ {
+ Max = x.MidTankType.LiterCapacity,
+ IDSPack = x,
+ }).OrderBy(y => y.IDSPack.LiquidType.Type).ToList();
+ var LubLevel = MachineProvider.Machine.Configuration.NoneEmptyIdsPacks.Where(x => x.MidTankType.Type == MidTankTypes.LubricantMidTank).FirstOrDefault();
+
+ MidTankLubLevel = new JerricanLevelModel();
+ if(LubLevel != null)
+ {
+ MidTankLubLevel.Max = LubLevel.MidTankType.LiterCapacity;
+ MidTankLubLevel.IDSPack = LubLevel;
+ };
+
+ MachineProvider.MachineOperator.MachineStatusChanged += MachineOperator_MachineStatusChanged;
+
+ DateTime dateTime = DateTime.Now;
+ DateTime onedayEarlier = dateTime.AddDays(-1);
+
+ GetCollectionDyePropByStartTime(onedayEarlier);
+
+ _productiondata_timer.Start();
+ }
+
+ #region Events
+
+ private void EventLogger_EventReceived(object sender, MachinesEvent ev)
+ {
+ InvokeUI(() =>
+ {
+ if (ev.Category == EventTypeCategories.Error || ev.Category == EventTypeCategories.Critical)
+ {
+ IsExpandedNotifications = true;
+ }
+ });
+ }
+
+ private void MachineOperator_MachineStatusChanged(object sender, MachineStatus status)
+ {
+ UpdateMidTankLevels(status);
+ UpdateMachineStatusErrors(status);
+ }
+ private void UpdateMidTankLevels(MachineStatus status)
+ {
+ if (!IsJobStatusViewEnable)
+ {
+ foreach (var item in status.IDSPacksLevels)
+ {
+ JerricanLevelModel model = null;
+ if (item.Index == 8)//lub
+ {
+ model = MidTankLubLevel;
+
+ }
+ else {
+ model = MidTankLevels.SingleOrDefault(x => x.IDSPack.PackIndex == item.Index);
+ }
+
+ if (model != null)
+ {
+ model.Level = item.MidTankLevel;
+ model.JerricanPresent = item.JerricanPresent;
+ model.FillingTimeoutError = item.FillingTimeoutError;
+ model.MidTankEmpty = item.MidTankEmpty;
+ model.MidTankRefillPumpActive = item.MidTankRefillPumpActive;
+ model.RemainingTimeoutError = TimeSpan.FromSeconds(item.TimerRemainingSeconds);
+ }
+ //TEST
+ //if (model != null)
+ //{
+ // var Li = model.IDSPack.LiquidType.Type;
+ // var Mid = model.IDSPack.MidTankType.Type;
+ // model.Level = 0.0;
+ //model.JerricanPresent = false;
+ //model.FillingTimeoutError = false;
+ //model.MidTankEmpty = true;
+ //model.MidTankRefillPumpActive = false;
+ //model.RemainingTimeoutError = TimeSpan.FromSeconds(300);
+
+ //if (item.Index == 1)
+ //{
+ // model.Level = 1.0;
+ //}
+ //if (item.Index == 2)
+ //{
+ // model.Level = 2.0;
+ //}
+ //if (item.Index == 3)
+ //{
+ // model.Level = 3.0;
+ //}
+ //if (item.Index == 4)//TI
+ //{
+ // model.Level = 7.0;
+ //}
+ //if (item.Index == 5)//LC
+ //{
+ // model.Level = 7.0;
+ //}
+ //if (item.Index == 6)//LM
+ //{
+ // model.Level = 3.5;
+ //}
+ //if (item.Index == 7)//LY
+ //{
+ // model.Level = 2.5;
+ //}
+ // if (item.Index == 8)//Lub
+ // {
+ // model.Level = 1.5;
+ // }
+ // if (item.Index ==9)
+ // {
+ // model.Level = 4.99;
+ // }
+
+ //}
+ //////////////////////////////
+ }
+ }
+ }
+
+ private void UpdateMachineStatusErrors(MachineStatus status)
+ {
+ var windersInError = status.WindersInError.ToList();// to test
+ MachineErrorStates.UpdateWinders(windersInError);
+ var dansersInError = status.DancersInError.ToList();
+ MachineErrorStates.UpdateDancers(dansersInError);
+ var btsrsInErrors = status.BtsrsInError.ToList();
+ MachineErrorStates.UpdateBTSRs(btsrsInErrors);
+ }
+
+ private void MachineOperator_InkFillingStatusChanged(object sender, InkFillingStatusChangedEventArgs e)
+ {
+ //foreach (var cartridge in e.Status.CartridgesStatuses.Where(x => x.Cartridge.Slot != CartridgeSlot.Ink))
+ //{
+ // var wasteState = WasteStates.SingleOrDefault(x => x.Slot == cartridge.Cartridge.Slot);
+
+ // if (wasteState != null)
+ // {
+ // wasteState.State = cartridge.State;
+ // }
+ //}
+ }
+
+ private void _productiondata_timer_Tick(object sender, EventArgs e)
+ {
+ var CurrentDateTime = DateTime.Now;
+ }
+ #endregion
+
+ #region printing
+
+ public override void OnApplicationStarted()
+ {
+ MachineProvider.MachineOperator.PrintingStarted += MachineOperator_PrintingStarted;
+ MachineProvider.MachineOperator.PrintingEnded += MachineOperator_PrintingEnded;
+
+ DefaultDiagnosticsFrameProvider.FrameReceived += DefaultDiagnosticsFrameProvider_FrameReceived;
+ }
+
+ private void DefaultDiagnosticsFrameProvider_FrameReceived(object sender, PMR.Diagnostics.StartDiagnosticsResponse e)
+ {
+ OverviewModel.Update(e, this.Job != null ? Job.Rml : null, null);
+ }
+
+ private void MachineOperator_PrintingStarted(object sender, PrintingEventArgs e)
+ {
+ _handler = e.JobHandler;
+ Job = e.Job;
+ e.JobHandler.StatusChanged += JobHandler_StatusChanged;
+ //e.JobHandler.SpoolChangeRequired += JobHandler_SpoolChangeRequired;
+ e.JobHandler.Stopped += JobHandler_Stopped;
+ e.JobHandler.CanCancelChanged += JobHandler_CanCancelChanged;
+ InvokeUI(() =>
+ {
+ IsEnabledStopButton = true;
+ StopCommand.RaiseCanExecuteChanged();
+ AbortCommand.RaiseCanExecuteChanged();
+ });
+
+
+ }
+
+ private void JobHandler_Stopped(object sender, EventArgs e)
+ {
+ if (_handler != null)
+ {
+ _handler.StatusChanged -= JobHandler_StatusChanged;
+ //_handler.SpoolChangeRequired -= JobHandler_SpoolChangeRequired;
+ _handler.Stopped -= JobHandler_Stopped;
+ _handler.StatusChanged -= JobHandler_StatusChanged;
+ _handler.CanCancelChanged -= JobHandler_CanCancelChanged;
+ }
+ }
+
+ private void MachineOperator_PrintingEnded(object sender, PrintingEventArgs e)
+ {
+ LogManager.Log("Printing ended");
+ InvokeUI(() =>
+ {
+ IsEnabledStopButton = false;
+ StopCommand.RaiseCanExecuteChanged();
+ AbortCommand.RaiseCanExecuteChanged();
+ });
+ }
+
+ private void JobHandler_StatusChanged(object sender, RunningJobStatus e)
+ {
+ RunningJobStatus = e;
+ IsDyeingProcess = (RunningJobStatus != null && RunningJobStatus.CurrentSegment != null);
+ if (RunningJobStatus != null && RunningJobStatus.CurrentSegment != null)
+ {
+ if(_runningJobStatus.CurrentSegment.IsInterSegment)
+ {
+ CurrentBrushStop = _runningJobStatus.CurrentSegment.BrushStops.FirstOrDefault();
+ JobBrushStop = null;
+ }
+ else
+ {
+ var realsegmIndex = 1;
+ if (Job.EnableInterSegment && Job.InterSegmentLength > 0)
+ {
+ int segmentIndex = _runningJobStatus.CurrentSegment.SegmentIndex - (Job.EffectiveSegments.Count * RunningJobStatus.CurrentUnit);
+ if(RunningJobStatus.CurrentUnit > 0)
+ {
+ segmentIndex -= RunningJobStatus.CurrentUnit;// inter segment between units
+ }
+ realsegmIndex = (int)(segmentIndex/2) + 1;
+ }
+ else
+ {
+ realsegmIndex = Math.Max(_runningJobStatus.CurrentSegment.SegmentIndex - (Job.Segments.Count * RunningJobStatus.CurrentUnit), 0);
+ }
+
+ var segment = Job.Segments.FirstOrDefault(x => x.SegmentIndex == realsegmIndex);
+ if (segment != null)
+ {
+ if (_handler.JobTicket.Segments.Count > 0)
+ {
+ JobBrushStop = _handler.JobTicket.Segments[Job.OrderedSegments.IndexOf(segment)].BrushStops.First();
+ }
+ }
+ CurrentBrushStop = RunningJobStatus.CurrentSegment.FirstBrushStop;
+ }
+ }
+ }
+
+ private void JobHandler_CanCancelChanged(object sender, EventArgs e)
+ {
+ InvokeUI(() =>
+ {
+ IsEnabledStopButton = _handler.CanCancel;
+ StopCommand.RaiseCanExecuteChanged();
+ AbortCommand.RaiseCanExecuteChanged();
+ });
+ }
+
+ #endregion
+
+ #region Methods
+
+ private bool IsEnableGoToJob()
+ {
+ return Job != null && _handler != null;
+ }
+
+ private void GoToJob()
+ {
+
+ NavigationManager.NavigateWithObject<JobsV2Module, JobEurekaView, JobNavigationObject>(new JobNavigationObject() { Job = _handler.Job });
+ NavigationManager.ClearHistoryExcept<JobsView>();
+
+ }
+ /// <summary>
+ /// Toggles the application technician mode.
+ /// </summary>
+ public void ToggleTechnicianMode()
+ {
+ if (!ApplicationManager.IsInTechnicianMode)
+ {
+ ApplicationManager.EnterTechnicianMode();
+ }
+ else
+ {
+ ApplicationManager.ExitTechnicianMode();
+ }
+ }
+
+ protected void JobStatusView()
+ {
+ IsJobStatusViewEnable = true;
+ }
+
+ protected void OverviewView()
+ {
+ IsJobStatusViewEnable = false;
+ }
+
+ private double GetVolumeLiquidType(LiquidTypes liquidType)
+ {
+ if (JobBrushStop != null && JobBrushStop.Dispensers != null && JobBrushStop.Dispensers.Count > 0)
+ {
+ var lt = JobBrushStop.Dispensers.FirstOrDefault(x => x.DispenserLiquidType == (DispenserLiquidType)liquidType);
+
+ if (lt != null)
+ {
+ return Math.Round(lt.Volume, 2);
+ }
+ }
+ return 0;
+ }
+
+ private bool CanStopped()
+ {
+ return IsEnabledStopButton;
+ }
+
+ private void StopJob()
+ {
+ _handler?.Cancel();
+ }
+
+ private void AbortJob()
+ {
+ _handler?.Cancel();
+ //Job = null;
+ }
+
+ private void ResumeJob()
+ {
+
+ }
+
+ private void CaancelJob()
+ {
+ Job = null;
+ }
+
+ private void RestartJob()
+ {
+
+ }
+
+ private void ClearJob()
+ {
+ Job = null;
+ }
+
+ protected void ClearAllNotifications()
+ {
+ NotificationProvider.NotificationItems.Where(x => x.CanClose).ToList().ForEach(y => NotificationProvider.PopNotification(y));
+ }
+
+ protected void OnUpdateCurrentBrush()
+ {
+ RaisePropertyChanged(nameof(CyanOutput));
+ RaisePropertyChanged(nameof(LightCyanOutput));
+ RaisePropertyChanged(nameof(MagentaOutput));
+ RaisePropertyChanged(nameof(LightMagentaOutput));
+ RaisePropertyChanged(nameof(YellowOutput));
+ RaisePropertyChanged(nameof(LightYellowOutput));
+ RaisePropertyChanged(nameof(BlackOutput));
+ }
+
+ private void HideJobOutline()
+ {
+ IsDisplayJobOutline = false;
+ }
+
+ private void DisplayJobOutline()
+ {
+ if(_handler != null && _handler.JobTicket != null)
+ {
+ JobOutlineTicket = _handler.JobTicket;
+ IsDisplayJobOutline = true;
+ }
+ }
+
+ #endregion
+
+ #region graph
+
+ public TimeToDyeValueCollection graphDyeingValuesCollection = new TimeToDyeValueCollection();
+
+ private WpfGraphController<DateTimeDataPoint, DoubleDataPoint> CreateController(params WpfGraphDataSeries[] seriesCollection)
+ {
+ var controller = new WpfGraphController<DateTimeDataPoint, DoubleDataPoint>();
+
+ foreach (var series in seriesCollection)
+ {
+ controller.DataSeriesCollection.Add(series);
+ }
+
+ controller.Range.AutoY = true;
+ controller.Range.MaximumY = 100;
+ controller.Range.MinimumY = 0;
+ controller.Range.MaximumX = new DateTime(0).AddMinutes(30);
+
+ controller.RefreshRate = TimeSpan.FromMilliseconds(300000);//5 min
+
+ return controller;
+ }
+
+ private WpfGraphDataSeries CreateSeries(String name, GraphHelper.GraphColor fill)
+ {
+ WpfGraphDataSeries series = new WpfGraphDataSeries()
+ {
+ Stroke = Colors.DodgerBlue,
+ };
+ series.Name = name;
+ series.Fill = GraphHelper.GetGraphBrush(fill);
+ series.StrokeThickness = 1;
+ series.Stroke = GraphHelper.GetGraphStrokeColor();
+ return series;
+ }
+
+ public async void GetCollectionDyePropByStartTime(DateTime starttime)
+ {
+ try
+ {
+ using (ObservablesContext db = ObservablesContext.CreateDefault())
+ {
+ var jobRuns = await db.JobRuns.Where(x => x.StartDate >= starttime).Select(x => new { x.StartDate, x.EndDate, x.EndPosition }).OrderBy(y => y.StartDate).ToListAsync();
+ double allvalues = 0;
+ graphDyeingValuesCollection.StartTime = starttime;
+ for ( int i = 0; i < jobRuns.Count; i++)
+ {
+ JobController.PushData(jobRuns[i].StartDate, allvalues);
+ if (i > 0)
+ {
+ allvalues += jobRuns[i-1].EndPosition;
+ }
+ graphDyeingValuesCollection.items.Add( new TimeToDyeValueItem(){ startTime = jobRuns[i].StartDate, endTime = jobRuns[i].EndDate, totalValue = allvalues });
+ JobController.PushData(jobRuns[i].EndDate, allvalues);
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ LogManager.Log(ex, "Error loading machine counters.");
+
+ }
+ }
+ #endregion
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineUpdateViewVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineUpdateViewVM.cs
index 14b9b76e3..7caabf6a1 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineUpdateViewVM.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineUpdateViewVM.cs
@@ -566,7 +566,11 @@ namespace Tango.PPC.UI.ViewModels
{
_updateNotificationItem = null;
};
- NotificationProvider.PushNotification(_updateNotificationItem);
+
+ if (!BuildProvider.IsEureka)
+ {
+ NotificationProvider.PushNotification(_updateNotificationItem);
+ }
});
}
}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MainViewVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MainViewVM.cs
index 50f4ed054..9b47cf390 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MainViewVM.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MainViewVM.cs
@@ -328,7 +328,7 @@ namespace Tango.PPC.UI.ViewModels
{
_screenSaverTimer.Interval = TimeSpan.FromMinutes(Settings.ScreenSaverStartDuration).TotalMilliseconds;
- if (Settings.EnableScreenSaver && !MachineProvider.IsConnected)
+ if (Settings.EnableScreenSaver && !MachineProvider.IsConnected && !BuildProvider.IsEureka)
{
IsScreenSaverOn = true;
}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LayoutEurekaView.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LayoutEurekaView.xaml
new file mode 100644
index 000000000..049f2268d
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LayoutEurekaView.xaml
@@ -0,0 +1,342 @@
+<UserControl x:Class="Tango.PPC.UI.Views.LayoutEurekaView"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:local="clr-namespace:Tango.PPC.UI.Views"
+ xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
+ xmlns:fa="http://schemas.fontawesome.io/icons/"
+ xmlns:vm="clr-namespace:Tango.PPC.UI.ViewModels"
+ xmlns:global="clr-namespace:Tango.PPC.UI"
+ xmlns:localConverters="clr-namespace:Tango.PPC.UI.Converters"
+ xmlns:operations="clr-namespace:Tango.Integration.Operation;assembly=Tango.Integration"
+ xmlns:touch="clr-namespace:Tango.Touch.Controls;assembly=Tango.Touch"
+ xmlns:commonControls="clr-namespace:Tango.PPC.Common.Controls;assembly=Tango.PPC.Common"
+ xmlns:controls="clr-namespace:Tango.SharedUI.Controls;assembly=Tango.SharedUI"
+ xmlns:components="clr-namespace:Tango.Touch.Components;assembly=Tango.Touch"
+ xmlns:locaControls="clr-namespace:Tango.PPC.UI.Controls"
+ xmlns:keyboard="clr-namespace:Tango.Touch.Keyboard;assembly=Tango.Touch"
+ mc:Ignorable="d"
+ d:DesignHeight="1080" d:DesignWidth="1920" d:DataContext="{d:DesignInstance Type=vm:LayoutViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.LayoutViewVM}">
+
+ <UserControl.Resources>
+ <localConverters:ItemBaseConverter x:Key="NotificationItemConverter" />
+ <localConverters:AppBarItemConverter x:Key="AppBarItemConverter" />
+ <localConverters:ItemBaseConverter x:Key="ItemBaseConverter" />
+ <localConverters:ComapareModulNameConverter x:Key="ComapareModulNameConverter"/>
+ </UserControl.Resources>
+
+
+ <Grid>
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="Auto"/>
+ <ColumnDefinition Width="Auto"/>
+ <ColumnDefinition Width="Auto"/>
+ </Grid.ColumnDefinitions>
+
+ <Grid Background="{StaticResource TangoPrimaryBackgroundBrush}">
+ <Viewbox Stretch="Fill" Width="350">
+ <Grid Width="204" Height="750" >
+ <Border TextElement.FontSize="16" x:Name="border" BorderThickness="0 0 0 0" BorderBrush="{StaticResource TangoDarkForegroundBrush}" TextElement.Foreground="{StaticResource TangoDarkForegroundBrush}">
+ <Grid Background="{StaticResource TangoMenuPanelDarkBrush}" >
+ <StackPanel VerticalAlignment="Top">
+ <Border Background="{StaticResource TangoPrimaryBackgroundBrush}" BorderBrush="{StaticResource TangoDividerBrush}" BorderThickness="0 0 0 0" >
+ <Grid >
+ <!--<Border Height="71" Background="{StaticResource TangoPrimaryBackgroundBrush}">-->
+ <!--<Border.Effect>
+ <DropShadowEffect Color="Silver" ShadowDepth="0" BlurRadius="20" Opacity="1" />
+ </Border.Effect>-->
+ <!--</Border>-->
+ <touch:TouchButton Padding="0 0" Command="{Binding OpenGeneralinformationCommand}" Style="{StaticResource TangoFlatButton}" Background="Transparent">
+ <StackPanel >
+ <DockPanel Background="{StaticResource TangoMenuPanelDarkBrush}">
+ <Image Source="/Images/logo.png" Stretch="Uniform" HorizontalAlignment="Center" Margin="0 10 10 10" Width="157" Height="51"></Image>
+ </DockPanel>
+ </StackPanel>
+ </touch:TouchButton>
+ </Grid>
+ </Border>
+ <touch:TouchButton Command="{Binding MenuOrBackCommand}" Padding="8" Style="{StaticResource TangoFlatButton}" Width="164" Height="32" IsHitTestVisible="{Binding NavigationManager.IsNavigating,Converter={StaticResource BooleanInverseConverter}}"
+ IsEnabled="{Binding NavigationManager.CanNavigateBack}" BorderThickness="0"
+ Foreground="{StaticResource TangoLightForegroundBrush}" Background="{StaticResource TangoMidAccentBrush}" CornerRadius="18" Margin="0 8 0 8">
+
+ <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
+ <touch:TouchIcon Icon="ArrowLeft" Background="Transparent" Width="30" BorderThickness="0" HorizontalAlignment="Center" Margin="-8 0 0 0">
+ <touch:TouchIcon.Style>
+ <Style TargetType="touch:TouchIcon" BasedOn="{StaticResource {x:Type touch:TouchIcon}}">
+ <Style.Triggers>
+ <Trigger Property="IsEnabled" Value="False">
+ <Setter Property="Foreground" Value="{StaticResource TangoDisabledBackgroundBrush}"></Setter>
+ </Trigger>
+ </Style.Triggers>
+ </Style>
+ </touch:TouchIcon.Style>
+ </touch:TouchIcon>
+ <TextBlock HorizontalAlignment="Center" Background="Transparent" FontSize="{StaticResource TangoComboBoxItemFontSize}" VerticalAlignment="Center" Foreground="{StaticResource TangoLightForegroundBrush}" Margin="5 0 0 0" >Back</TextBlock>
+ </StackPanel>
+
+ </touch:TouchButton>
+
+ <ItemsControl ItemsSource="{Binding ModuleLoader.UserModules}" Margin="0 0 0 0">
+ <ItemsControl.ItemTemplate>
+ <DataTemplate>
+ <Border Visibility="{Binding DockToBottom,Converter={StaticResource BooleanToVisibilityInverseConverter}}">
+ <Border BorderBrush="{StaticResource TangoDividerBrush}" BorderThickness="0 0 0 0" Visibility="{Binding IsVisibleInMenu,Converter={StaticResource BooleanToVisibilityConverter}}">
+ <touch:TouchButton Height="45" Margin="0 0 0 0" Padding="10 0" Command="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.ModuleNavigationCommand}" CommandParameter="{Binding Name}" >
+ <StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
+ <Image VerticalAlignment="Center" Source="{Binding Image}" Width="20" Height="20"></Image>
+ <TextBlock VerticalAlignment="Center" Margin="20 0 0 0" Text="{Binding Name}" FontSize="{StaticResource TangoDataGridHeaderFontSize}" FontWeight="Light"></TextBlock>
+ </StackPanel>
+ <touch:TouchButton.Style>
+ <Style TargetType="touch:TouchButton" BasedOn="{StaticResource TangoFlatButton}" >
+ <Setter Property="Foreground" Value="{StaticResource TangoLightForegroundBrush}"></Setter>
+ <Setter Property="Background" Value="Transparent"/>
+ <Style.Triggers>
+ <DataTrigger Value="True">
+ <DataTrigger.Binding>
+ <MultiBinding Converter="{StaticResource ComapareModulNameConverter}" Delay="100">
+ <Binding RelativeSource="{RelativeSource AncestorType=UserControl}" Path="DataContext.NavigationManager.CurrentModule"></Binding>
+ <Binding Path="Name"></Binding>
+ </MultiBinding>
+ </DataTrigger.Binding>
+ <DataTrigger.Setters>
+ <Setter Property="Foreground" Value="{StaticResource TangoDarkForegroundBrush}"></Setter>
+ <Setter Property="Background" Value="{StaticResource TangoMidBackgroundBrush}"></Setter>
+ </DataTrigger.Setters>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </touch:TouchButton.Style>
+ </touch:TouchButton>
+ </Border>
+ </Border>
+ </DataTemplate>
+ </ItemsControl.ItemTemplate>
+ </ItemsControl>
+
+ <StackPanel Margin="0 5 0 0">
+ <Border BorderBrush="{StaticResource TangoDividerBrush}" BorderThickness="0 0 0 0">
+ <touch:TouchButton Style="{StaticResource TangoFlatButton}" Padding="10 0" Height="45" Foreground="{StaticResource TangoDarkForegroundBrush}" Command="{Binding UpdateCommand}">
+ <StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
+ <Image Source="/Images/Menu/update.png" VerticalAlignment="Center" Width="20" Height="20"></Image>
+ <TextBlock VerticalAlignment="Center" Margin="20 0 0 0" Foreground="{StaticResource TangoLightForegroundBrush}" FontSize="{StaticResource TangoDataGridHeaderFontSize}" FontWeight="Light">Update</TextBlock>
+ </StackPanel>
+ </touch:TouchButton>
+ </Border>
+ </StackPanel>
+ <StackPanel Margin="0 5 0 0">
+ <Border BorderBrush="{StaticResource TangoDividerBrush}" BorderThickness="0 0 0 0">
+ <touch:TouchButton Style="{StaticResource TangoFlatButton}" Padding="10 0" Height="45" Foreground="{StaticResource TangoDarkForegroundBrush}" Command="{Binding PowerCommand}">
+ <StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
+ <Image Source="/Images/menu/power.png" VerticalAlignment="Center" Width="20" Height="20" ></Image>
+ <TextBlock VerticalAlignment="Center" Margin="20 0 0 0" Foreground="{StaticResource TangoLightForegroundBrush}" FontSize="{StaticResource TangoDataGridHeaderFontSize}" FontWeight="Light">Power</TextBlock>
+ </StackPanel>
+ </touch:TouchButton>
+ </Border>
+ </StackPanel>
+ </StackPanel>
+
+ <Grid VerticalAlignment="Bottom">
+
+ <StackPanel Orientation="Vertical">
+ <Border Background="Transparent" Padding="5">
+ <UniformGrid Columns="5" Rows="1">
+
+ <touch:TouchIcon Width="20" Height="20" VerticalAlignment="Center">
+ <touch:TouchIcon.Style>
+ <Style TargetType="touch:TouchIcon" BasedOn="{StaticResource {x:Type touch:TouchIcon}}">
+ <Setter Property="Icon" Value="WifiStrengthOff"></Setter>
+ <Setter Property="Foreground" Value="{StaticResource TangoGrayBrush}"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding ConnectivityProvider.IsConnected}" Value="True">
+ <Setter Property="Icon" Value="Wifi"></Setter>
+ <Setter Property="Foreground" Value="{StaticResource TangoSuccessBrush}"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </touch:TouchIcon.Style>
+ </touch:TouchIcon>
+
+ <touch:TouchIcon Margin="10 0 0 0" Width="18" Height="18" VerticalAlignment="Center">
+ <touch:TouchIcon.Style>
+ <Style TargetType="touch:TouchIcon" BasedOn="{StaticResource {x:Type touch:TouchIcon}}">
+ <Setter Property="Icon" Value="LanDisconnect"></Setter>
+ <Setter Property="Foreground" Value="{StaticResource TangoGrayBrush}"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding ConnectivityProvider.IsLanConnected}" Value="True">
+ <Setter Property="Icon" Value="LanConnect"></Setter>
+ <Setter Property="Foreground" Value="{StaticResource TangoSuccessBrush}"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </touch:TouchIcon.Style>
+ </touch:TouchIcon>
+
+ <touch:TouchIcon Margin="10 0 0 0" Width="18" Height="18" VerticalAlignment="Center" Icon="Bridge" Visibility="{Binding ExternalBridgeService.Enabled,Converter={StaticResource BooleanToVisibilityConverter}}">
+ <touch:TouchIcon.Style>
+ <Style TargetType="touch:TouchIcon">
+ <Setter Property="Foreground" Value="{StaticResource TangoGrayBrush}"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding ExternalBridgeService.HasSessions}" Value="True">
+ <Setter Property="Foreground" Value="{StaticResource TangoSuccessBrush}"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </touch:TouchIcon.Style>
+ </touch:TouchIcon>
+
+ <touch:TouchIcon Margin="10 0 0 0" Width="18" Height="18" VerticalAlignment="Center" Foreground="{StaticResource TangoSuccessBrush}" Icon="RemoteDesktop" />
+ <!--Visibility="{Binding RemoteDesktopService.InSession,Converter={StaticResource BooleanToVisibilityConverter}}"-->
+
+ <touch:TouchIcon Margin="10 0 0 0" Width="20" Height="20" Icon="HddSolid">
+ <touch:TouchIcon.Style>
+ <Style TargetType="touch:TouchIcon" BasedOn="{StaticResource {x:Type touch:TouchIcon}}">
+ <Setter Property="Foreground" Value="{StaticResource TangoGrayBrush}"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding StorageProvider.IsConnected}" Value="True">
+ <Setter Property="Foreground" Value="{StaticResource TangoSuccessBrush}"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </touch:TouchIcon.Style>
+ </touch:TouchIcon>
+
+ </UniformGrid>
+ </Border>
+ <Border Height="1" Margin="10" Background="{StaticResource TangoDividerBrush}"></Border>
+ <TextBlock VerticalAlignment="Center" Text="{Binding CurrentDateTime, StringFormat='{}{0:HH:mm MM/dd/yyyy}'}" FontSize="18" Foreground="{StaticResource TangoPrimaryBackgroundBrush}" HorizontalAlignment="Center" Margin="0 0 0 16" FontWeight="Light"></TextBlock>
+ </StackPanel>
+
+
+ </Grid>
+ </Grid>
+ </Border>
+ </Grid>
+ </Viewbox>
+
+ <Grid Background="{StaticResource TangoPanelMaskBrushLight}" Visibility="{Binding NotificationProvider.HasDialogOrMessage,Converter={StaticResource BooleanToVisibilityConverter}}">
+
+ </Grid>
+ </Grid>
+
+ <Grid Background="Gainsboro" Grid.Column="2">
+ <Viewbox Stretch="Fill" Width="1246" Height="1400">
+ <local:MachineStatusView />
+ </Viewbox>
+ </Grid>
+
+ <Grid Grid.Column="1" Background="{StaticResource TangoPrimaryBackgroundBrush}">
+ <Grid>
+ <!--<Viewbox>-->
+ <touch:TouchPanelEureka Margin="0 -40 0 0" Width="900" Height="1445"
+ HasMessageBox="{Binding NotificationProvider.HasMessageBox}"
+ CurrentMessageBox="{Binding NotificationProvider.CurrentMessageBox}"
+ HasDialog="{Binding NotificationProvider.HasDialog}"
+ CurrentDialog="{Binding NotificationProvider.CurrentDialog}"
+ IsBusy="{Binding NotificationProvider.IsInGlobalBusyState}"
+ BusyMessage="{Binding NotificationProvider.GlobalBusyMessage}">
+ <Grid>
+ <DockPanel>
+ <Border BorderThickness="0 0 0 0" BorderBrush="{StaticResource TangoDividerBrush}" DockPanel.Dock="Top" Height="41">
+ <DockPanel Visibility="Collapsed">
+ <Border Height="101" BorderThickness="0 0 0 0" BorderBrush="{StaticResource TangoDividerBrush}">
+ <!--<touch:TouchHamburgerButton IsHitTestVisible="{Binding NavigationManager.IsNavigating,Converter={StaticResource BooleanInverseConverter}}" IsEnabled="{Binding NavigationManager.IsBackEnabled}" Width="100" Height="100" Padding="15" Command="{Binding MenuOrBackCommand}" EnableDropShadow="False" Foreground="{StaticResource TangoPrimaryAccentBrush}" IsBack="{Binding NavigationManager.CanNavigateBack}"/>-->
+ </Border>
+
+ <Grid DockPanel.Dock="Right" Margin="0 0 20 0">
+ <StackPanel Orientation="Horizontal">
+ <Grid>
+ <StackPanel Visibility="Hidden" x:Name="techPressElement" VerticalAlignment="Center" Background="Transparent">
+ <locaControls:MachineStatusControl HorizontalAlignment="Center" DataContext="{Binding MachineProvider.MachineOperator}" />
+ <TextBlock Margin="0 10 0 0" Text="{Binding MachineProvider.MachineOperator.Status,Converter={StaticResource EnumToDescriptionConverter}}"></TextBlock>
+ </StackPanel>
+
+ <Grid Visibility="Hidden" IsHitTestVisible="False" HorizontalAlignment="Center">
+ <Grid.Style>
+ <Style TargetType="Grid">
+ <Setter Property="Visibility" Value="Hidden"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding MachineProvider.MachineOperator.MachineStatus.AutoInkFillingEnabled}" Value="True">
+ <Setter Property="Visibility" Value="Visible"></Setter>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding MachineProvider.MachineOperator.IsConnected}" Value="False">
+ <Setter Property="Visibility" Value="Hidden"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Grid.Style>
+ <touch:TouchIcon Icon="InvertColors" Foreground="#151515" Width="18" Height="18" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0 6 -30 0"></touch:TouchIcon>
+ </Grid>
+ </Grid>
+ </StackPanel>
+ </Grid>
+
+ <Grid>
+
+ <Grid Margin="20 0 60 0" Height="80" Visibility="{Binding NotificationProvider.HasAppBarItems,Converter={StaticResource BooleanToVisibilityConverter}}">
+ <ItemsControl ItemsSource="{Binding NotificationProvider.AppBarItems}">
+ <ItemsControl.ItemsPanel>
+ <ItemsPanelTemplate>
+ <Grid IsItemsHost="True" />
+ </ItemsPanelTemplate>
+ </ItemsControl.ItemsPanel>
+ <ItemsControl.ItemTemplate>
+ <DataTemplate>
+ <Grid Background="{StaticResource TangoPrimaryBackgroundBrush}">
+ <ContentControl Content="{Binding Converter={StaticResource AppBarItemConverter}}"></ContentControl>
+ </Grid>
+ </DataTemplate>
+ </ItemsControl.ItemTemplate>
+ </ItemsControl>
+ </Grid>
+ </Grid>
+ </DockPanel>
+ </Border>
+
+ <Border Margin="0 0 0 0" DockPanel.Dock="Top" Visibility="{Binding IsInkFillingOrWasteEmptying,Converter={StaticResource BooleanToVisibilityConverter}}">
+ <ItemsControl ItemsSource="{Binding Cartridges}">
+ <ItemsControl.ItemTemplate>
+ <DataTemplate>
+ <Border Margin="0 5 0 0" Visibility="{Binding InProgress,Converter={StaticResource BooleanToVisibilityConverter}}">
+ <StackPanel>
+ <DockPanel Margin="2 0 0 0">
+ <touch:TouchIcon>
+ <touch:TouchIcon.Style>
+ <Style TargetType="touch:TouchIcon" BasedOn="{StaticResource {x:Type touch:TouchIcon}}">
+ <Setter Property="Icon" Value="Recycle"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding Status.Cartridge.Slot}" Value="Ink">
+ <Setter Property="Icon" Value="FormatColorFill"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </touch:TouchIcon.Style>
+ </touch:TouchIcon>
+ <TextBlock VerticalAlignment="Center" Margin="5 0 0 0" Text="{Binding Message,Mode=OneWay}" FontSize="{StaticResource TangoSmallFontSize}"></TextBlock>
+ </DockPanel>
+ <touch:TouchProgressBar Foreground="{Binding Brush,Mode=OneWay}" Background="#DBDBDB" Height="3" Margin="0 2 0 0" Minimum="0" Maximum="100" Value="{Binding Status.ProgressPercentage}" />
+ </StackPanel>
+ </Border>
+ </DataTemplate>
+ </ItemsControl.ItemTemplate>
+ </ItemsControl>
+ </Border>
+
+ <Grid Background="{StaticResource TangoPrimaryBackgroundBrush}">
+ <controls:NavigationControl x:Name="NavigationControl" x:FieldModifier="public" TransitionAlwaysFades="False" TransitionType="Fade" KeepElementsAttached="False" UseDefferedRendering="True">
+ <!--MODULES GOES HERE-->
+ </controls:NavigationControl>
+ </Grid>
+ </DockPanel>
+ </Grid>
+ </touch:TouchPanelEureka>
+ <!--</Viewbox>-->
+ </Grid>
+ </Grid>
+
+ <Grid PreviewMouseUp="Grid_PreviewMouseUp" IsHitTestVisible="True" Background="Transparent" Visibility="{Binding ApplicationManager.IsScreenLocked,Converter={StaticResource BooleanToVisibilityConverter}}" Grid.ColumnSpan="3">
+ <touch:TouchIcon HorizontalAlignment="Right" VerticalAlignment="Bottom" Margin="40" Icon="Lock" Width="60" Height="60" Opacity="0.5" Foreground="{StaticResource TangoSuccessBrush}" />
+ </Grid>
+ </Grid>
+
+</UserControl>
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LayoutEurekaView.xaml.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LayoutEurekaView.xaml.cs
new file mode 100644
index 000000000..903c15149
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LayoutEurekaView.xaml.cs
@@ -0,0 +1,58 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using System.Windows.Threading;
+using Tango.Core.EventArguments;
+using Tango.Logging;
+using Tango.PPC.Common;
+using Tango.PPC.UI.ViewModels;
+using Tango.PPC.UI.ViewsContracts;
+using Tango.SharedUI.Controls;
+
+namespace Tango.PPC.UI.Views
+{
+ /// <summary>
+ /// Interaction logic for LayoutView.xaml
+ /// </summary>
+ public partial class LayoutEurekaView : UserControl, ILayoutView
+ {
+ public static LayoutEurekaView Instance { get; private set; }
+ private LayoutViewVM _vm;
+
+ public LayoutEurekaView()
+ {
+ InitializeComponent();
+ Instance = this;
+ Loaded += (_, __) => _vm = DataContext as LayoutViewVM;
+ this.PreviewMouseUp += LayoutView_PreviewMouseUp;
+ }
+
+ private void LayoutView_PreviewMouseUp(object sender, MouseButtonEventArgs e)
+ {
+ _vm.ApplicationManager.ResetScreenLockTimer();
+ }
+
+ private void Grid_PreviewMouseUp(object sender, MouseButtonEventArgs e)
+ {
+ _vm.ApplicationManager.ReleaseScreenLock();
+ }
+
+ public NavigationControl GetNavigationControl()
+ {
+ return NavigationControl;
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LayoutView.xaml.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LayoutView.xaml.cs
index b87f14b89..901f8fd1b 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LayoutView.xaml.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LayoutView.xaml.cs
@@ -20,6 +20,7 @@ using Tango.Logging;
using Tango.PPC.Common;
using Tango.PPC.UI.ViewModels;
using Tango.PPC.UI.ViewsContracts;
+using Tango.SharedUI.Controls;
namespace Tango.PPC.UI.Views
{
@@ -93,5 +94,10 @@ namespace Tango.PPC.UI.Views
{
_vm.ApplicationManager.ReleaseScreenLock();
}
+
+ public NavigationControl GetNavigationControl()
+ {
+ return NavigationControl;
+ }
}
}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LoadingView.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LoadingView.xaml
index 146d4b50d..3ed91e5db 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LoadingView.xaml
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LoadingView.xaml
@@ -9,47 +9,16 @@
xmlns:global="clr-namespace:Tango.PPC.UI"
xmlns:touch="clr-namespace:Tango.Touch.Controls;assembly=Tango.Touch"
xmlns:local="clr-namespace:Tango.PPC.UI.Views"
+ xmlns:mediaKit="clr-namespace:WPFMediaKit.DirectShow.Controls;assembly=WPFMediaKit"
mc:Ignorable="d"
d:DesignHeight="1280" d:DesignWidth="800" Background="{StaticResource TangoPrimaryBackgroundBrush}" d:DataContext="{d:DesignInstance Type=vm:LoadingViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.LoadingView}">
<Grid>
- <StackPanel HorizontalAlignment="Center">
- <!--<Image gif:ImageBehavior.EnableAnimation="{Binding IsLoading}" gif:ImageBehavior.AnimatedSource="/Images/Twine_Loading_GIF.gif" Margin="100 100 100 0" RenderTransformOrigin="0.5,0.5" RenderOptions.BitmapScalingMode="Fant" Height="382">
- <Image.Style>
- <Style TargetType="Image">
- <Setter Property="RenderTransform">
- <Setter.Value>
- <ScaleTransform ScaleX="1" ScaleY="1" />
- </Setter.Value>
- </Setter>
- <Setter Property="Effect">
- <Setter.Value>
- <fx:DisplaySettingEffect SaturationLevel="0" />
- </Setter.Value>
- </Setter>
- <Style.Triggers>
- <DataTrigger Binding="{Binding IsLoading}" Value="True">
- <DataTrigger.EnterActions>
- <BeginStoryboard>
- <Storyboard>
- <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleY" Duration="00:00:1" To="1.010" AutoReverse="True" RepeatBehavior="10x" />
- <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX" Duration="00:00:1" To="1.010" AutoReverse="True" RepeatBehavior="10x" />
- <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Effect.SaturationLevel" Duration="00:00:3" AutoReverse="True" RepeatBehavior="3x">
- <LinearDoubleKeyFrame KeyTime="00:00:00" Value="0" />
- <LinearDoubleKeyFrame KeyTime="00:00:2" Value="1" />
- <LinearDoubleKeyFrame KeyTime="00:00:3" Value="6" />
- </DoubleAnimationUsingKeyFrames>
- </Storyboard>
- </BeginStoryboard>
- </DataTrigger.EnterActions>
- </DataTrigger>
- </Style.Triggers>
- </Style>
- </Image.Style>
- </Image>-->
-
+ <Grid x:Name="videoPlayerGrid" Visibility="{Binding BuildProvider.BuildType,Converter={StaticResource BuildTypeToVisibilityConverter},ConverterParameter='Eureka'}">
+ <mediaKit:MediaUriElement x:Name="videoPlayer" Stretch="Uniform" LoadedBehavior="Manual" />
+ </Grid>
+ <StackPanel HorizontalAlignment="Center" Visibility="{Binding BuildProvider.BuildType,Converter={StaticResource BuildTypeToVisibilityConverter},ConverterParameter='TS1800'}">
+
<Grid Margin="0 0 0 0">
- <!--<Image Source="/Images/machine.png" Stretch="Uniform" Width="250" RenderOptions.BitmapScalingMode="Fant"></Image>
- <touch:TouchBusyIndicator Width="350" Height="350" IsIndeterminate="{Binding IsLoading}" />-->
<touch:TouchGifAnimation Source="/Images/loading_anim2.gif" EnableAnimation="{Binding IsLoading}" Margin="0 200 0 0" />
</Grid>
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LoadingView.xaml.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LoadingView.xaml.cs
index a1214a0df..4616ea438 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LoadingView.xaml.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LoadingView.xaml.cs
@@ -12,6 +12,9 @@ using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
+using Tango.Core.DI;
+using Tango.PPC.Common.Application;
+using Tango.PPC.Common.Build;
namespace Tango.PPC.UI.Views
{
@@ -20,9 +23,22 @@ namespace Tango.PPC.UI.Views
/// </summary>
public partial class LoadingView : UserControl
{
+ public static DateTime VideoStartTime { get; set; }
+
public LoadingView()
{
InitializeComponent();
+
+ var buildProvider = TangoIOC.Default.GetInstance<IBuildProvider>();
+ var appManager = TangoIOC.Default.GetInstance<IPPCApplicationManager>();
+
+ if (buildProvider.IsEureka)
+ {
+ VideoStartTime = DateTime.Now;
+ videoPlayer.Source = new Uri(appManager.StartPath + "\\Intro.wmv", UriKind.Absolute);
+ videoPlayer.MediaOpened += (_, __) => VideoStartTime = DateTime.Now;
+ videoPlayer.Play();
+ }
}
}
}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MachineStatusView.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MachineStatusView.xaml
new file mode 100644
index 000000000..8f2b49f9e
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MachineStatusView.xaml
@@ -0,0 +1,1435 @@
+<UserControl x:Class="Tango.PPC.UI.Views.MachineStatusView"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:sys="clr-namespace:System;assembly=mscorlib"
+ xmlns:shapes="clr-namespace:Tango.SharedUI.Shapes;assembly=Tango.SharedUI"
+ xmlns:touch="clr-namespace:Tango.Touch.Controls;assembly=Tango.Touch"
+ xmlns:vm="clr-namespace:Tango.PPC.UI.ViewModels"
+ xmlns:entities="clr-namespace:Tango.BL.Entities;assembly=Tango.BL"
+ xmlns:locaControls="clr-namespace:Tango.PPC.UI.Controls"
+ xmlns:localConverters="clr-namespace:Tango.PPC.UI.Converters"
+ xmlns:global="clr-namespace:Tango.PPC.UI"
+ xmlns:models="clr-namespace:Tango.PPC.UI.Models"
+ xmlns:graphs="clr-namespace:Tango.PPC.UI.Graphs"
+ xmlns:local="clr-namespace:Tango.PPC.UI.Views"
+ mc:Ignorable="d"
+ d:DesignHeight="1280" d:DesignWidth="932" d:DataContext="{d:DesignInstance Type=vm:MachineStatusViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.MachineStatusViewVM}">
+ <UserControl.Resources>
+
+ <localConverters:LengthToWeightConverter x:Key="LengthToWeightConverter" />
+ <localConverters:LengthWithSpoolsConverter x:Key="LengthWithSpoolsConverter"/>
+ <localConverters:CollectionToCountConverter x:Key="CollectionToCountConverter"/>
+ <localConverters:ProgressLengthSpoolConverter x:Key="ProgressLengthSpoolConverter"/>
+ <localConverters:ProgressWeightSpoolConverter x:Key="ProgressWeightSpoolConverter"/>
+ <localConverters:LiquidTypeToBrushConverter x:Key="LiquidTypeToBrushConverter"/>
+ <localConverters:MidTankLevelToElementRectConverter x:Key="MidTankLevelToElementRectConverter"/>
+ <localConverters:ProgressUnitSpoolConverter x:Key="ProgressUnitSpoolConverter"/>
+ <localConverters:StatisticTabToVisibilityConverter x:Key="StatisticTabToVisibilityConverter"/>
+
+ <Style x:Key="LinkRoundButtonStyle" TargetType="{x:Type touch:TouchButton}">
+ <Setter Property="Background" Value="{StaticResource TangoMidAccentBrush}"></Setter>
+ <Setter Property="CornerRadius" Value="23"></Setter>
+ <Setter Property="EnableDropShadow" Value="False"></Setter>
+ <Setter Property="Width" Value="160"/>
+ <Setter Property="Height" Value="46"/>
+ <Setter Property="RenderOptions.EdgeMode" Value="Unspecified"/>
+ </Style>
+
+ <Style x:Key="SliderGreyTextStyle" TargetType="TextBlock">
+ <Setter Property="FontSize" Value="{StaticResource TangoDefaultFontSize}"></Setter>
+ <Setter Property="VerticalAlignment" Value="Center"></Setter>
+ <Setter Property="HorizontalAlignment" Value="Center"></Setter>
+ </Style>
+
+ <DataTemplate x:Key="CMYK_Template" DataType="{x:Type entities:BrushStop}">
+ <UniformGrid Rows="1" Columns="4" Height="Auto" MinWidth="180">
+ <StackPanel Orientation="Vertical">
+ <Border Width="50" Height="50" Background="Cyan" CornerRadius="16" HorizontalAlignment="Left"></Border>
+ <TextBlock Margin="0 10 0 0" Text="C" FontSize="{StaticResource TangoDefaultFontSize}" HorizontalAlignment="Center"/>
+ <TextBlock Margin="0 10 0 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Cyan, StringFormat=0.##}" ></TextBlock>
+ </StackPanel>
+ <StackPanel Orientation="Vertical" Margin="0 0 0 0">
+ <Border Width="50" Height="50" Background="Magenta" CornerRadius="16" HorizontalAlignment="Left"></Border>
+ <TextBlock Margin="0 10 0 0" Text="M" FontSize="{StaticResource TangoDefaultFontSize}" HorizontalAlignment="Center"/>
+ <TextBlock Margin="0 10 0 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Magenta, StringFormat=0.##}" ></TextBlock>
+ </StackPanel>
+ <StackPanel Orientation="Vertical" Margin="10 0 0 0">
+ <Border Width="50" Height="50" Background="Yellow" CornerRadius="16" HorizontalAlignment="Left"></Border>
+ <TextBlock Margin="0 10 0 0" Text="Y" FontSize="{StaticResource TangoDefaultFontSize}" HorizontalAlignment="Center"/>
+ <TextBlock Margin="0 10 0 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Yellow, StringFormat=0.##}" ></TextBlock>
+ </StackPanel>
+ <StackPanel Orientation="Vertical" Margin="10 0 0 0">
+ <Border Width="50" Height="50" Background="Black" CornerRadius="16" HorizontalAlignment="Left"></Border>
+ <TextBlock Margin="0 10 0 0" Text="K" FontSize="{StaticResource TangoDefaultFontSize}" HorizontalAlignment="Center"/>
+ <TextBlock Margin="0 10 0 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Black, StringFormat=0.##}"></TextBlock>
+ </StackPanel>
+ </UniformGrid>
+ </DataTemplate>
+
+ <DataTemplate x:Key="RGB_Template" DataType="{x:Type entities:BrushStop}">
+ <UniformGrid Rows="1" Columns="3" Height="Auto" >
+ <StackPanel Orientation="Vertical">
+ <Border Width="50" Height="50" Background="Red" CornerRadius="16" HorizontalAlignment="Left"></Border>
+ <TextBlock Margin="0 10 0 0" Text="R" FontSize="{StaticResource TangoDefaultFontSize}" VerticalAlignment="Center" HorizontalAlignment="Center"/>
+ <TextBlock Margin="0 10 0 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Red}" ></TextBlock>
+
+ </StackPanel>
+ <StackPanel Orientation="Vertical" Margin="4 0 0 0">
+ <Border Width="50" Height="50" Background="Green" CornerRadius="16" HorizontalAlignment="Left"></Border>
+ <TextBlock Margin="0 10 0 0" Text="G" FontSize="{StaticResource TangoDefaultFontSize}" VerticalAlignment="Center" HorizontalAlignment="Center"/>
+ <TextBlock Margin="0 10 0 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Green}" ></TextBlock>
+
+ </StackPanel>
+ <StackPanel Orientation="Vertical" Margin="4 0 0 0">
+ <Border Width="50" Height="50" Background="Blue" CornerRadius="16" HorizontalAlignment="Left"></Border>
+ <TextBlock Margin="0 10 0 0" Text="B" FontSize="{StaticResource TangoDefaultFontSize}" VerticalAlignment="Center" HorizontalAlignment="Center"/>
+ <TextBlock Margin="0 10 0 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Blue}" ></TextBlock>
+ </StackPanel>
+ </UniformGrid>
+ </DataTemplate>
+
+ <DataTemplate x:Key="LAB_Template" DataType="{x:Type entities:BrushStop}">
+ <UniformGrid Rows="1" Columns="3" Height="Auto" MinWidth="180" HorizontalAlignment="Left">
+ <StackPanel Orientation="Vertical">
+ <Border Width="50" Height="50" Background="Gray" CornerRadius="16" HorizontalAlignment="Left"></Border>
+ <TextBlock Margin="0 10 0 0 " Text="L" FontSize="{StaticResource TangoDefaultFontSize}" HorizontalAlignment="Center"/>
+ <TextBlock Margin="0 10 0 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding L, StringFormat=0.##}" ></TextBlock>
+
+ </StackPanel>
+ <StackPanel Orientation="Vertical" Width="50" HorizontalAlignment="Left" Margin="5 0 0 0">
+ <Border Width="50" Height="50" Background="red" CornerRadius="16" HorizontalAlignment="Left"></Border>
+ <TextBlock Margin="0 10 0 0 " Text="a" FontSize="{StaticResource TangoDefaultFontSize}" HorizontalAlignment="Center"/>
+ <TextBlock Margin="0 10 0 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding A, StringFormat=0.##}" ></TextBlock>
+ </StackPanel>
+ <StackPanel Orientation="Vertical" Margin="10 0 0 0" Width="50">
+ <Border Width="50" Height="50" Background="Blue" CornerRadius="16" HorizontalAlignment="Left"></Border>
+ <TextBlock Margin="0 10 0 0 " Text="b" FontSize="{StaticResource TangoDefaultFontSize}" HorizontalAlignment="Center"/>
+ <TextBlock Margin="0 10 0 0" HorizontalAlignment="Center" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding B, StringFormat=0.##}" ></TextBlock>
+ </StackPanel>
+ </UniformGrid>
+ </DataTemplate>
+
+ <DataTemplate x:Key="CATALOG_Template" DataType="{x:Type entities:BrushStop}">
+ <UniformGrid Rows="1" Columns="2" Height="Auto" MinWidth="180">
+ <StackPanel Orientation="Vertical" Margin="0 0 0 0">
+ <TextBlock Text="Catalog:" FontSize="{StaticResource TangoDefaultFontSize}" VerticalAlignment="Center"/>
+ <TextBlock Margin="0 10 0 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding ColorCatalog.Name}" FontSize="{StaticResource TangoDefaultFontSize}" HorizontalAlignment="Left"></TextBlock>
+ </StackPanel>
+ <StackPanel Orientation="Vertical" Margin="10 0 0 0">
+ <TextBlock Text="Color:" FontSize="{StaticResource TangoDefaultFontSize}" VerticalAlignment="Center"/>
+ <TextBlock Margin="0 10 0 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding ColorCatalogsItem.Name}" FontSize="{StaticResource TangoDefaultFontSize}" HorizontalAlignment="Left" ></TextBlock>
+ </StackPanel>
+ </UniformGrid>
+ </DataTemplate>
+
+ <PathGeometry x:Key="InkContainerPath" Figures="M16.000001,0.5 C24.560414,0.5 31.500001,6.9918714 31.500001,15 31.500001,15.500508 31.472893,15.995093 31.419976,16.48254 L31.417605,16.5 31.500001,16.5 31.500001,71 31.500001,71.5 31.486487,71.5 31.479832,71.74617 C31.064694,79.407524 24.292901,85.5 16.000001,85.5 7.7070995,85.5 0.9353075,79.407524 0.52016807,71.74617 L0.51351446,71.5 0.5,71.5 0.5,71 0.5,16.5 0.58239609,16.5 0.58002502,16.48254 C0.52710831,15.995093 0.50000054,15.500508 0.5,15 0.50000054,6.9918714 7.4395867,0.5 16.000001,0.5 z"/>
+ <DataTemplate x:Key="LiquidBox" DataType="{x:Type models:JerricanLevelModel}">
+ <DockPanel>
+ <TextBlock DockPanel.Dock="Bottom" Text="{Binding IDSPack.LiquidType.ShortName}" HorizontalAlignment="Center" Margin="0 8 0 0"></TextBlock>
+ <Grid Height="15" DockPanel.Dock="Top">
+ <TextBlock DockPanel.Dock="Top" Height="15" VerticalAlignment="Top" TextAlignment="Center" Visibility="{Binding HasRemainingTimeoutError,Converter={StaticResource BooleanToVisibilityConverter}}" Text="{Binding RemainingTimeoutError, StringFormat='{}{0:hh}:{0:mm}m', FallbackValue=00:00}" HorizontalAlignment="Center" FontSize="{StaticResource TangoSmallFontSizeBar}" ></TextBlock>
+ </Grid>
+ <Grid >
+ <Grid ClipToBounds="True" HorizontalAlignment="Center">
+ <Path Fill="{Binding Path=IDSPack.LiquidType, Converter={StaticResource LiquidTypeToBrushConverter}}" StrokeThickness="1.5" >
+ <Path.Resources>
+ <sys:Double x:Key="RectWidth">30</sys:Double>
+ <sys:Double x:Key="RectHeight">88</sys:Double>
+ </Path.Resources>
+ <Path.Data>
+ <CombinedGeometry GeometryCombineMode="Intersect">
+ <CombinedGeometry.Geometry1>
+ <StaticResource ResourceKey="InkContainerPath"/>
+ </CombinedGeometry.Geometry1>
+ <CombinedGeometry.Geometry2>
+ <!--Rect="1,30 30,88"-->
+ <RectangleGeometry >
+ <RectangleGeometry.Rect>
+ <MultiBinding Converter="{StaticResource MidTankLevelToElementRectConverter}">
+ <Binding Source="{StaticResource RectHeight}"/>
+ <Binding Source="{StaticResource RectWidth}"/>
+ <Binding Path="Level" />
+ <Binding Path="IDSPack.MidTankType.LiterCapacity" />
+ </MultiBinding>
+ </RectangleGeometry.Rect>
+ </RectangleGeometry>
+ </CombinedGeometry.Geometry2>
+ </CombinedGeometry>
+ </Path.Data>
+
+ </Path>
+ <Path Stroke="{StaticResource TangoTextWatermarkBrush}" Fill="Transparent" StrokeThickness="1" Data="{StaticResource InkContainerPath}">
+
+ </Path>
+ </Grid>
+ <UniformGrid Rows="4" Columns="1" Margin="0 12 0 12" HorizontalAlignment="Center">
+ <Rectangle Width="6" Height="2" Fill="{StaticResource TangoKeyboardKeyDarkBrush}"></Rectangle>
+ <Rectangle Width="6" Height="2" Fill="{StaticResource TangoKeyboardKeyDarkBrush}"></Rectangle>
+ <Rectangle Width="6" Height="2" Fill="{StaticResource TangoKeyboardKeyDarkBrush}"></Rectangle>
+ <Rectangle Width="6" Height="2" Fill="{StaticResource TangoKeyboardKeyDarkBrush}"></Rectangle>
+ </UniformGrid>
+ <Image Stretch="Fill" VerticalAlignment="Top" Margin="0 4 0 0">
+ <Image.Style>
+ <Style TargetType="{x:Type Image}" >
+ <Setter Property="Source" Value="{x:Null}"/>
+ <Setter Property="Image.Width" Value="24"/>
+ <Setter Property="Image.Height" Value="24"/>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding IsMidTankLow}" Value="True">
+ <Setter Property="Source" Value="../Images/Overview Icons/Warning.png"/>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding FillingTimeoutError}" Value="True">
+ <Setter Property="Source" Value="../Images/Overview Icons/Error.png"/>
+ <Setter Property="Image.Width" Value="21"/>
+ <Setter Property="Image.Height" Value="26"/>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding MidTankEmpty}" Value="True">
+ <Setter Property="Source" Value="../Images/Overview Icons/Error.png"/>
+ <Setter Property="Image.Width" Value="21"/>
+ <Setter Property="Image.Height" Value="26"/>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding MidTankRefillPumpActive}" Value="True" >
+ <Setter Property="Source" Value="../Images/Overview Icons/UpdateInk.png"/>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding JerricanPresent}" Value="False" >
+ <Setter Property="Source" Value="../Images/Overview Icons/JericanRemoved.png"/>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Image.Style>
+ </Image>
+ </Grid>
+ </DockPanel>
+ </DataTemplate>
+
+ <DataTemplate x:Key="LubLiquidBox" DataType="{x:Type models:JerricanLevelModel}">
+ <DockPanel>
+ <TextBlock DockPanel.Dock="Bottom" Text="Lub" HorizontalAlignment="Center" Margin="0 8 0 0"></TextBlock>
+ <Grid Height="15" DockPanel.Dock="Top">
+ <TextBlock DockPanel.Dock="Top" Height="15" VerticalAlignment="Top" TextAlignment="Center" Visibility="{Binding HasRemainingTimeoutError,Converter={StaticResource BooleanToVisibilityConverter}}" Text="{Binding RemainingTimeoutError, StringFormat='{}{0:hh}:{0:mm}m', FallbackValue=00:00}" HorizontalAlignment="Center" FontSize="{StaticResource TangoSmallFontSizeBar}" ></TextBlock>
+ </Grid>
+ <Grid >
+ <Grid ClipToBounds="True" HorizontalAlignment="Center">
+ <Path Fill="{Binding Path=IDSPack.LiquidType, Converter={StaticResource LiquidTypeToBrushConverter}}" StrokeThickness="1.5" >
+ <Path.Resources>
+ <sys:Double x:Key="RectWidth">30</sys:Double>
+ <sys:Double x:Key="RectHeight">88</sys:Double>
+ </Path.Resources>
+ <Path.Data>
+ <CombinedGeometry GeometryCombineMode="Intersect">
+ <CombinedGeometry.Geometry1>
+ <StaticResource ResourceKey="InkContainerPath"/>
+ </CombinedGeometry.Geometry1>
+ <CombinedGeometry.Geometry2>
+ <!--Rect="1,30 30,88"-->
+ <RectangleGeometry >
+ <RectangleGeometry.Rect>
+ <MultiBinding Converter="{StaticResource MidTankLevelToElementRectConverter}">
+ <Binding Source="{StaticResource RectHeight}"/>
+ <Binding Source="{StaticResource RectWidth}"/>
+ <Binding Path="Level" />
+ <Binding Path="IDSPack.MidTankType.LiterCapacity" />
+ </MultiBinding>
+ </RectangleGeometry.Rect>
+ </RectangleGeometry>
+ </CombinedGeometry.Geometry2>
+ </CombinedGeometry>
+ </Path.Data>
+
+ </Path>
+ <Path Stroke="{StaticResource TangoTextWatermarkBrush}" Fill="Transparent" StrokeThickness="1" Data="{StaticResource InkContainerPath}">
+
+ </Path>
+ </Grid>
+ <UniformGrid Rows="4" Columns="1" Margin="0 12 0 12" HorizontalAlignment="Center">
+ <Rectangle Width="6" Height="2" Fill="{StaticResource TangoKeyboardKeyDarkBrush}"></Rectangle>
+ <Rectangle Width="6" Height="2" Fill="{StaticResource TangoKeyboardKeyDarkBrush}"></Rectangle>
+ <Rectangle Width="6" Height="2" Fill="{StaticResource TangoKeyboardKeyDarkBrush}"></Rectangle>
+ <Rectangle Width="6" Height="2" Fill="{StaticResource TangoKeyboardKeyDarkBrush}"></Rectangle>
+ </UniformGrid>
+ <Image Stretch="Fill" VerticalAlignment="Top" Margin="0 4 0 0">
+ <Image.Style>
+ <Style TargetType="{x:Type Image}" >
+ <Setter Property="Source" Value="{x:Null}"/>
+ <Setter Property="Image.Width" Value="24"/>
+ <Setter Property="Image.Height" Value="24"/>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding IsMidTankLow}" Value="True">
+ <Setter Property="Source" Value="../Images/Overview Icons/Warning.png"/>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding FillingTimeoutError}" Value="True">
+ <Setter Property="Source" Value="../Images/Overview Icons/Error.png"/>
+ <Setter Property="Image.Width" Value="21"/>
+ <Setter Property="Image.Height" Value="26"/>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding MidTankEmpty}" Value="True">
+ <Setter Property="Source" Value="../Images/Overview Icons/Error.png"/>
+ <Setter Property="Image.Width" Value="21"/>
+ <Setter Property="Image.Height" Value="26"/>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding MidTankRefillPumpActive}" Value="True" >
+ <Setter Property="Source" Value="../Images/Overview Icons/UpdateInk.png"/>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding JerricanPresent}" Value="False" >
+ <Setter Property="Source" Value="../Images/Overview Icons/JericanRemoved.png"/>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Image.Style>
+ </Image>
+ </Grid>
+ </DockPanel>
+ </DataTemplate>
+
+ <DataTemplate x:Key="WasteBox">
+ <DockPanel>
+ <TextBlock DockPanel.Dock="Bottom" Text="Waste" HorizontalAlignment="Center" Margin="0 8 0 0"></TextBlock>
+ <Grid Height="15" DockPanel.Dock="Top">
+ </Grid>
+ <Grid DockPanel.Dock="Top">
+ <Grid ClipToBounds="True" HorizontalAlignment="Center">
+ <Path Fill="#CCCCCC">
+ <Path.Resources>
+ <sys:Double x:Key="RectWidth">30</sys:Double>
+ <sys:Double x:Key="RectHeight">88</sys:Double>
+ </Path.Resources>
+ <Path.Data>
+ <CombinedGeometry GeometryCombineMode="Intersect">
+ <CombinedGeometry.Geometry1>
+ <StaticResource ResourceKey="InkContainerPath"/>
+ </CombinedGeometry.Geometry1>
+ <CombinedGeometry.Geometry2>
+
+ <RectangleGeometry Rect="1,0,30,88">
+ <!--<RectangleGeometry.Rect>
+ <MultiBinding Converter="{StaticResource MidTankLevelToElementRectConverter}">
+ <Binding Source="{StaticResource RectHeight}"/>
+ <Binding Source="{StaticResource RectWidth}"/>
+ <Binding Path="Level" />
+ </MultiBinding>
+ </RectangleGeometry.Rect>-->
+ </RectangleGeometry>
+ </CombinedGeometry.Geometry2>
+ </CombinedGeometry>
+ </Path.Data>
+ </Path>
+ <Path Stroke="{StaticResource TangoTextWatermarkBrush}" Fill="Transparent" StrokeThickness="1" Data="{StaticResource InkContainerPath}"/>
+ </Grid>
+ <UniformGrid Rows="4" Columns="1" Margin="0 12 0 12" HorizontalAlignment="Center">
+ <Rectangle Fill="{StaticResource TangoKeyboardKeyDarkBrush}" Width="6" Height="2" ></Rectangle>
+ <Rectangle Width="6" Height="2" Fill="{StaticResource TangoKeyboardKeyDarkBrush}"></Rectangle>
+ <Rectangle Width="6" Height="2" Fill="{StaticResource TangoKeyboardKeyDarkBrush}"></Rectangle>
+ <Rectangle Width="6" Height="2" Fill="{StaticResource TangoKeyboardKeyDarkBrush}"></Rectangle>
+ </UniformGrid>
+ </Grid>
+ </DockPanel>
+ </DataTemplate>
+
+ <DataTemplate x:Key="ErrorState" DataType="{x:Type models:MachineOverviewErrorItem}">
+ <Border Margin="0">
+ <Image Stretch="Fill" HorizontalAlignment="Center" VerticalAlignment="Center" >
+ <Image.Style>
+ <Style>
+ <Setter Property="Image.Width" Value="24"/>
+ <Setter Property="Image.Height" Value="24"/>
+ <Setter Property="Image.Source" Value="../Images/Overview Icons/Normal.png"/>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding IsErrorState}" Value="True">
+ <Setter Property="Image.Source" Value="../Images/Overview Icons/Error.png"/>
+ <Setter Property="Image.Width" Value="21"/>
+ <Setter Property="Image.Height" Value="26"/>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Image.Style>
+ </Image>
+ </Border>
+ </DataTemplate>
+
+ <Style x:Key="DynamicResolutionGraph" TargetType="graphs:RealTimeGraph" BasedOn="{StaticResource {x:Type graphs:RealTimeGraph}}">
+ <Setter Property="VerticalTicks" Value="5"></Setter>
+ </Style>
+
+
+ <Style x:Key="BlueFlatButton" TargetType="touch:TouchButton" >
+ <Setter Property="Foreground" Value="{StaticResource TangoPrimaryAccentBrush}"></Setter>
+ <Setter Property="Background" Value="Transparent"/>
+ <Setter Property="BorderBrush" Value="{StaticResource TangoPrimaryAccentBrush}"/>
+ <Style.Triggers>
+ <Trigger Property="IsEnabled" Value="False">
+ <Setter Property="Foreground" Value="{StaticResource TangoDisabledForegroundBrush}"></Setter>
+ <Setter Property="BorderBrush" Value="{StaticResource TangoDisabledBackgroundBrush}"></Setter>
+ </Trigger>
+ </Style.Triggers>
+ </Style>
+
+
+ <Style x:Key="SelectedBlueFlatButton" TargetType="touch:TouchButton" >
+ <Setter Property="Foreground" Value="{StaticResource TangoLightForegroundBrush}"></Setter>
+ <Setter Property="Background" Value="{StaticResource TangoPrimaryAccentBrush}"/>
+ <Style.Triggers>
+ <Trigger Property="IsEnabled" Value="False">
+ <Setter Property="Foreground" Value="{StaticResource TangoDisabledForegroundBrush}"></Setter>
+ <Setter Property="Background" Value="{StaticResource TangoDisabledBackgroundBrush}"></Setter>
+ </Trigger>
+ </Style.Triggers>
+ </Style>
+
+
+ </UserControl.Resources>
+ <Grid Width="998" Height="1123">
+ <Grid >
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="28"></ColumnDefinition>
+ <ColumnDefinition Width="1*"></ColumnDefinition>
+ </Grid.ColumnDefinitions>
+ <Border>
+ <Border.Background>
+ <LinearGradientBrush StartPoint="0,0" EndPoint="1,0" >
+ <GradientStop Color="Gainsboro" Offset="0" />
+ <GradientStop Color="{StaticResource TangoMidBackgroundColor}" Offset="1.0" />
+ </LinearGradientBrush>
+ </Border.Background>
+ </Border>
+ <Grid Grid.Column="1" Background="{StaticResource TangoMidBackgroundBrush}" Margin="0 0 0 0" >
+ <Grid Margin="0 18 0 0">
+ <Grid.RowDefinitions>
+ <RowDefinition Height="56"></RowDefinition>
+ <RowDefinition Height="1*"></RowDefinition>
+ </Grid.RowDefinitions>
+
+ <touch:TouchToggleSlider Style="{StaticResource TouchToggleButtonSlider}" Background="Transparent" CheckedBackground="{StaticResource TangoMidBackgroundBrush}" UncheckedBackground="{StaticResource TangoMidBackgroundBrush}" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0 0 0 0" CornerRadius="25" Height="50" Width="335" ThumbWidth="168" LeftText="Job Status" RightText="Overview" ThumbCornerRadius="18" IsChecked="{Binding IsJobStatusViewEnable, Converter={StaticResource BooleanInverseConverter}}"></touch:TouchToggleSlider>
+
+ <Canvas Width="300" VerticalAlignment="Top" HorizontalAlignment="Right" Height="56" Margin="0 -30 -60 0">
+ <Grid Panel.ZIndex="100" DockPanel.Dock="Top" Height="117" Background="Transparent">
+ <Grid HorizontalAlignment="Right" Margin="0 0 0 0">
+ <StackPanel Orientation="Horizontal">
+ <Grid>
+ <StackPanel x:Name="techPressElement" VerticalAlignment="Center" Background="Transparent" Orientation="Horizontal">
+ <TextBlock Margin="0 10 20 0" FontSize="{StaticResource TangoComboBoxItemFontSize}" Text="{Binding MachineProvider.MachineOperator.Status,Converter={StaticResource EnumToDescriptionConverter}}"></TextBlock>
+ <locaControls:MachineStatusControl HorizontalAlignment="Center" DataContext="{Binding MachineProvider.MachineOperator}" />
+
+ </StackPanel>
+
+ <Grid IsHitTestVisible="False" HorizontalAlignment="Center">
+ <Grid.Style>
+ <Style TargetType="Grid">
+ <Setter Property="Visibility" Value="Hidden"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding MachineProvider.MachineOperator.MachineStatus.AutoInkFillingEnabled}" Value="True">
+ <Setter Property="Visibility" Value="Visible"></Setter>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding MachineProvider.MachineOperator.IsConnected}" Value="False">
+ <Setter Property="Visibility" Value="Hidden"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Grid.Style>
+ </Grid>
+ </Grid>
+ </StackPanel>
+ </Grid>
+ </Grid>
+ </Canvas>
+ <Grid x:Name="JobStatus" Margin="32 18 60 0" Grid.Row="1" Visibility="{Binding IsJobStatusViewEnable, Converter={StaticResource BooleanToVisibilityConverter}}">
+ <Grid.RowDefinitions>
+ <RowDefinition Height="78"></RowDefinition>
+ <RowDefinition Height="Auto"></RowDefinition>
+ <RowDefinition Height="Auto"></RowDefinition>
+ <RowDefinition Height="Auto"></RowDefinition>
+ <RowDefinition Height="100"></RowDefinition>
+
+ </Grid.RowDefinitions>
+ <Grid Margin=" 0 0 0 20">
+ <DockPanel>
+ <touch:TouchButton Command="{Binding GoToJobCommand}" DockPanel.Dock="Right" VerticalAlignment="Top" Style="{StaticResource TangoLinkButton}" Foreground="{StaticResource TangoPrimaryAccentBrush}">
+ <StackPanel Orientation="Vertical">
+ <TextBlock Margin="5 0 0 0" FontSize="{StaticResource TangoDefaultFontSize}" VerticalAlignment="Bottom" Text="Go To Job">
+ <TextBlock.Style>
+ <Style TargetType="{x:Type TextBlock}">
+ <Setter Property="Foreground" Value="{StaticResource TangoPrimaryAccentBrush}"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Button}}, Path=IsEnabled}" Value="False">
+ <Setter Property="Foreground" Value="{StaticResource TangoDisabledBackgroundBrush}"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </TextBlock.Style>
+ </TextBlock>
+ <Rectangle Height="3" VerticalAlignment="Bottom" Margin="0 2 0 0">
+ <Rectangle.Style>
+ <Style TargetType="{x:Type Rectangle}">
+ <Setter Property="Fill" Value="{StaticResource TangoPrimaryAccentBrush}"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Button}}, Path=IsEnabled}" Value="False">
+ <Setter Property="Fill" Value="{StaticResource TangoDisabledBackgroundBrush}"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Rectangle.Style>
+ </Rectangle>
+ </StackPanel>
+ </touch:TouchButton>
+ <touch:TouchButton DockPanel.Dock="Right" Visibility="{Binding ApplicationManager.IsInTechnicianMode,Converter={StaticResource BooleanToVisibilityConverter}}" VerticalAlignment="Top" Margin="0 0 20 0" Command="{Binding DisplayJobOutlineCommand}" Style="{StaticResource TangoLinkButton}" FontSize="{StaticResource TangoTitleFontSize}">
+ <StackPanel Orientation="Vertical">
+ <TextBlock Margin="5 0 0 0" FontSize="{StaticResource TangoDefaultFontSize}" VerticalAlignment="Bottom">Display Job Outline</TextBlock>
+ <Rectangle Height="3" Fill="{StaticResource TangoPrimaryAccentBrush}" VerticalAlignment="Bottom" Margin="0 2 0 0"></Rectangle>
+ </StackPanel>
+ </touch:TouchButton>
+ <TextBlock DockPanel.Dock="Left" FontSize="28" Text="{Binding Job.Name, TargetNullValue='-', FallbackValue='-'}"></TextBlock>
+ </DockPanel>
+ <Border Height="2" Background="{StaticResource TangoLightBorderBrush}" VerticalAlignment="Bottom" Margin="0 2 0 0" CornerRadius="2"></Border>
+ </Grid>
+ <StackPanel Orientation="Vertical" Grid.Row="1" Margin="0 11 0 0">
+ <DockPanel >
+ <StackPanel DockPanel.Dock="Right" Orientation="Horizontal" VerticalAlignment="Top" Width="200" MinHeight="30" HorizontalAlignment="Right" Margin="0 0 0 0">
+ <StackPanel Orientation="Vertical">
+ <touch:TouchToggleSlider Style="{StaticResource TouchToggleButtonSlider}" Background="{StaticResource TangoMidBackgroundBrush}" CheckedBackground="{StaticResource TangoMidBackgroundBrush}" UncheckedBackground="{StaticResource TangoMidBackgroundBrush}" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="20 0 20 0" CornerRadius="17" Height="38" Width="164" ThumbWidth="80" LeftText="1 Set" RightText="1 Spool" ThumbCornerRadius="13" IsChecked="{Binding IsSpoolView}" FontSize="{StaticResource TangoDefaultFontSize}"></touch:TouchToggleSlider>
+ <touch:TouchToggleSlider Style="{StaticResource TouchToggleButtonSlider}" Background="{StaticResource TangoMidBackgroundBrush}" CheckedBackground="{StaticResource TangoMidBackgroundBrush}" UncheckedBackground="{StaticResource TangoMidBackgroundBrush}" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="20 18 20 0" CornerRadius="17" Height="38" Width="164" ThumbWidth="80" LeftText="Length" RightText="Weight" ThumbCornerRadius="13" IsChecked="{Binding IsWeghtView}" FontSize="{StaticResource TangoDefaultFontSize}"></touch:TouchToggleSlider>
+ </StackPanel>
+ </StackPanel>
+
+ <UniformGrid x:Name="JobProperties" DockPanel.Dock="Left" Columns="1" Rows="5" HorizontalAlignment="Left" Margin="0 0 0 0" Height="390" VerticalAlignment="Top" MaxWidth="260">
+ <StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
+ <Image Source="../Images/Job Issues/thread_type.png" Stretch="None" VerticalAlignment="Top"/>
+ <StackPanel Orientation="Vertical" Margin="15 0 0 0">
+ <TextBlock VerticalAlignment="Center" FontSize="{StaticResource TangoDefaultFontSize}">Thread Type</TextBlock>
+ <TextBlock Text="{Binding Job.Rml.DisplayName,Converter={StaticResource StringEllipsisConverter},ConverterParameter='38', TargetNullValue='-', FallbackValue='-'}" FontWeight="DemiBold" FontSize="{StaticResource TangoComboBoxItemFontSize}" TextWrapping="Wrap" MaxWidth="200" MaxHeight="52" ></TextBlock>
+ </StackPanel>
+ </StackPanel>
+
+ <StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
+ <Image Source="../Images/Job Issues/job_length.png" Stretch="None" VerticalAlignment="Top" HorizontalAlignment="Left"/>
+ <StackPanel Orientation="Vertical" Margin="15 0 0 0">
+ <TextBlock VerticalAlignment="Center" FontSize="{StaticResource TangoDefaultFontSize}">Job Length (m)</TextBlock>
+ <TextBlock FontWeight="DemiBold" FontSize="{StaticResource TangoComboBoxItemFontSize}">
+ <TextBlock.Style>
+ <Style TargetType="{x:Type TextBlock}">
+ <Setter Property="Text" Value="{Binding Job.LengthIncludingNumberOfUnitsAndSpools, TargetNullValue='-', FallbackValue='-', StringFormat='#,0.##'}" />
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding IsSpoolView}" Value="True">
+ <Setter Property="Text" Value="{Binding Job.LengthIncludingNumberOfUnits, TargetNullValue='-', FallbackValue='-', StringFormat='#,0.##'}" />
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </TextBlock.Style>
+ </TextBlock>
+ </StackPanel>
+ </StackPanel>
+ <StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
+ <Image Source="../Images/Job Issues/job_weight.png" Stretch="None" VerticalAlignment="Top"/>
+ <StackPanel Orientation="Vertical" Margin="15 0 0 0">
+ <TextBlock VerticalAlignment="Center" FontSize="{StaticResource TangoDefaultFontSize}">Job Weight (g)</TextBlock>
+ <TextBlock FontWeight="DemiBold" FontSize="{StaticResource TangoComboBoxItemFontSize}">
+ <TextBlock.Style>
+ <Style TargetType="{x:Type TextBlock}">
+ <Setter Property="Text" Value="{Binding Job.WeightIncludingNumberOfUnitsAndSpools, TargetNullValue='-', FallbackValue='-', StringFormat='#,0.##'}" />
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding IsSpoolView}" Value="True">
+ <Setter Property="Text" Value="{Binding Job.WeightIncludingNumberOfUnits, TargetNullValue='-', FallbackValue='-', StringFormat='#,0.##'}" />
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </TextBlock.Style>
+ </TextBlock>
+ </StackPanel>
+ </StackPanel>
+ <StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
+ <Image Source="../Images/Job Issues/job_copies.png" Stretch="None" VerticalAlignment="Top"/>
+ <StackPanel Orientation="Vertical" Margin="15 0 0 0">
+ <TextBlock VerticalAlignment="Center" FontSize="{StaticResource TangoDefaultFontSize}">Copies</TextBlock>
+ <TextBlock FontWeight="DemiBold" FontSize="{StaticResource TangoComboBoxItemFontSize}">
+ <TextBlock.Style>
+ <Style TargetType="{x:Type TextBlock}">
+ <Setter Property="Text" Value="{Binding Job.NumberOfUnitsMultipliedBySpools, TargetNullValue='-', FallbackValue='-', StringFormat='#,0.##'}" />
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding IsSpoolView}" Value="True">
+ <Setter Property="Text" Value="{Binding Job.NumberOfUnits, TargetNullValue='-', FallbackValue='-', StringFormat='#,0.#'}" />
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </TextBlock.Style>
+ </TextBlock>
+ </StackPanel>
+ </StackPanel>
+ <StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
+ <Image Source="../Images/Job Issues/spools.png" Stretch="None" VerticalAlignment="Top"/>
+ <StackPanel Orientation="Vertical" Margin="15 0 0 0">
+ <TextBlock VerticalAlignment="Center" FontSize="{StaticResource TangoDefaultFontSize}">Spools</TextBlock>
+ <TextBlock Text="{Binding Job.Spools, TargetNullValue='-', FallbackValue='-'}" FontWeight="DemiBold" FontSize="{StaticResource TangoComboBoxItemFontSize}"></TextBlock>
+ </StackPanel>
+ </StackPanel>
+ </UniformGrid>
+ <Grid x:Name="StatusCicle" Background="{StaticResource TangoMidBackgroundBrush}" VerticalAlignment="Top">
+ <StackPanel VerticalAlignment="Center">
+ <Grid>
+ <touch:TouchRingProgress Width="364" Height="364" RingThickness="10">
+ <touch:TouchRingProgress.Style>
+ <Style TargetType="touch:TouchRingProgress">
+ <Setter Property="Visibility" Value="Visible"></Setter>
+ <Setter Property="Foreground" Value="{StaticResource TangoPrimaryAccentBrush}"></Setter>
+ <Setter Property="Maximum" Value="{Binding RunningJobStatus.TotalProgressMinusSettingUp}"></Setter>
+ <Setter Property="Value" Value="{Binding RunningJobStatus.ProgressMinusSettingUp}"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding RunningJobStatus.IsSettingUp}" Value="False">
+ <Setter Property="Visibility" Value="Visible"></Setter>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding RunningJobStatus.IsCompleted}" Value="True">
+ <Setter Property="Maximum" Value="100"></Setter>
+ <Setter Property="Value" Value="99.9999999"></Setter>
+ <Setter Property="Foreground" Value="{StaticResource TangoSuccessBrush}"></Setter>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding RunningJobStatus.IsCanceled}" Value="True">
+ <Setter Property="Foreground" Value="{StaticResource TangoWarningBrush}"></Setter>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding RunningJobStatus.IsFailed}" Value="True">
+ <Setter Property="Foreground" Value="{StaticResource TangoErrorBrush}"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </touch:TouchRingProgress.Style>
+ </touch:TouchRingProgress>
+
+ <touch:TouchBusyIndicator Width="360" Height="360" StrokeThickness="10" Maximum="100" Visibility="{Binding RunningJobStatus.IsSettingUp,Converter={StaticResource BooleanToVisibilityConverter}}">
+ <touch:TouchBusyIndicator.Style>
+ <Style TargetType="touch:TouchBusyIndicator">
+ <Setter Property="Foreground" Value="{StaticResource TangoPrimaryAccentBrush}"></Setter>
+ <Setter Property="Value" Value="0"></Setter>
+ <Setter Property="IsIndeterminate" Value="False"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding RunningJobStatus.IsSettingUp}" Value="True">
+ <Setter Property="Visibility" Value="Visible"></Setter>
+ <Setter Property="Value" Value="0"></Setter>
+ <Setter Property="IsIndeterminate" Value="True"></Setter>
+ <Setter Property="Foreground">
+ <Setter.Value>
+ <LinearGradientBrush StartPoint="0, 0" EndPoint="1, 1">
+ <GradientStop Offset="0.2" Color="{StaticResource TangoValidationErrorColor}"/>
+ <GradientStop Offset="0.5" Color="Yellow"/>
+ <GradientStop Offset="0.8" Color="{StaticResource TangoPrimaryAccentColor}"/>
+ </LinearGradientBrush>
+ </Setter.Value>
+ </Setter>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding RunningJobStatus.IsCompleted}" Value="True">
+ <Setter Property="IsIndeterminate" Value="False"></Setter>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding RunningJobStatus.IsCanceled}" Value="True">
+ <Setter Property="Value" Value="99.9999999"></Setter>
+ <Setter Property="IsIndeterminate" Value="False"></Setter>
+ <Setter Property="Foreground" Value="{StaticResource TangoWarningBrush}"></Setter>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding RunningJobStatus.IsFailed}" Value="True">
+ <Setter Property="Value" Value="99.9999999"></Setter>
+ <Setter Property="IsIndeterminate" Value="False"></Setter>
+ <Setter Property="Foreground" Value="{StaticResource TangoErrorBrush}"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </touch:TouchBusyIndicator.Style>
+ </touch:TouchBusyIndicator>
+
+ <StackPanel VerticalAlignment="Center" HorizontalAlignment="Center">
+
+ <StackPanel Visibility="{Binding RunningJobStatus.IsSettingUp, Converter={StaticResource BooleanToVisibilityInverseConverter}}">
+ <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
+ <Image Source="../Images/JobProgressView/drop.png" Stretch="None" VerticalAlignment="Center" />
+ <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
+ <TextBlock Margin="5 0 0 0" VerticalAlignment="Center" FontSize="{StaticResource TangoComboBoxItemFontSize}">Completed /</TextBlock>
+ <TextBlock Margin="5 0 0 0" VerticalAlignment="Center" FontSize="{StaticResource TangoComboBoxItemFontSize}" Visibility="{Binding IsWeghtView, Converter={StaticResource BooleanToVisibilityInverseConverter}}"> Length</TextBlock>
+ <TextBlock Margin="5 0 0 0" VerticalAlignment="Center" FontSize="{StaticResource TangoComboBoxItemFontSize}" Visibility="{Binding IsWeghtView, Converter={StaticResource BooleanToVisibilityConverter}}"> Weight</TextBlock>
+ </StackPanel>
+ </StackPanel>
+
+ <StackPanel Orientation="Horizontal" Margin="0 15 0 0" HorizontalAlignment="Center" Visibility="{Binding IsWeghtView, Converter={StaticResource BooleanToVisibilityInverseConverter}}">
+ <TextBlock FontSize="{StaticResource TangoLargeInfoFontSize}" VerticalAlignment="Center">
+ <TextBlock.Text>
+ <MultiBinding Converter="{StaticResource ProgressLengthSpoolConverter}" StringFormat="#,0." TargetNullValue='-' FallbackValue='0' Mode="OneWay">
+ <Binding Path="RunningJobStatus.TotalProgressMinusSettingUp" />
+ <Binding Path="IsSpoolView"/>
+ <Binding Path="RunningJobStatus.ProgressMinusSettingUp" />
+ </MultiBinding>
+ </TextBlock.Text>
+ </TextBlock>
+ <TextBlock FontSize="{StaticResource TangoLargeInfoFontSize}" VerticalAlignment="Center" Text="/"></TextBlock>
+ <TextBlock FontSize="{StaticResource TangoTitleFontSize}" VerticalAlignment="Center">
+ <TextBlock.Text>
+ <MultiBinding Converter="{StaticResource ProgressLengthSpoolConverter}" StringFormat="#,0" TargetNullValue='-' FallbackValue='0' Mode="OneWay">
+ <Binding Path="RunningJobStatus.TotalProgressMinusSettingUp"/>
+ <Binding Path="IsSpoolView"/>
+ </MultiBinding>
+ </TextBlock.Text>
+ </TextBlock>
+ <TextBlock FontSize="{StaticResource TangoTitleFontSize}" VerticalAlignment="Center" Text=" m"></TextBlock>
+ </StackPanel>
+
+ <StackPanel Orientation="Horizontal" Margin="0 10 0 0" HorizontalAlignment="Center" Visibility="{Binding IsWeghtView, Converter={StaticResource BooleanToVisibilityConverter}}">
+ <TextBlock FontSize="{StaticResource TangoLargeInfoFontSize}" VerticalAlignment="Center">
+ <TextBlock.Text>
+ <MultiBinding Converter="{StaticResource ProgressWeightSpoolConverter}" StringFormat="#,0.00" TargetNullValue='-' FallbackValue='0'>
+ <Binding Path="RunningJobStatus.TotalProgressMinusSettingUp" />
+ <Binding Path="IsSpoolView"/>
+ <Binding Path="RunningJobStatus.ProgressMinusSettingUp" />
+ <Binding Path="Job.GramPerLength" Mode="OneWay"/>
+ </MultiBinding>
+ </TextBlock.Text>
+ </TextBlock>
+ <TextBlock FontSize="{StaticResource TangoLargeInfoFontSize}" VerticalAlignment="Center" Text="/"></TextBlock>
+ <TextBlock FontSize="{StaticResource TangoTitleFontSize}" VerticalAlignment="Center">
+ <TextBlock.Text>
+ <MultiBinding Converter="{StaticResource ProgressWeightSpoolConverter}" StringFormat="#,0.#" TargetNullValue='-' FallbackValue='0' >
+ <Binding Path="RunningJobStatus.TotalProgressMinusSettingUp"/>
+ <Binding Path="IsSpoolView"/>
+ <Binding Path="Job.GramPerLength" Mode="OneWay"/>
+ </MultiBinding>
+ </TextBlock.Text>
+ </TextBlock>
+ <TextBlock FontSize="{StaticResource TangoTitleFontSize}" VerticalAlignment="Center" Text=" g"></TextBlock>
+ </StackPanel>
+ </StackPanel>
+
+ <DockPanel Height="106" Visibility="{Binding RunningJobStatus.IsSettingUp, FallbackValue=collapsed, Converter={StaticResource BooleanToVisibilityConverter}}">
+ <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" DockPanel.Dock="Top">
+ <Image Source="../Images/JobProgressView/drop.png" Stretch="None" />
+ <TextBlock Margin="5 0 0 0" VerticalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}">Getting Ready...</TextBlock>
+ </StackPanel>
+ <TextBlock Margin="40 30 40 0" FontSize="{StaticResource TangoSmallFontSize}" FontWeight="Light" Text="{Binding RunningJobStatus.Message, FallbackValue='', TargetNullValue='', Converter={StaticResource StringEllipsisConverter},ConverterParameter='76'}" TextWrapping="Wrap" MaxWidth="310" HorizontalAlignment="Center" TextAlignment="Center" Height="42"></TextBlock>
+ </DockPanel>
+
+ <Rectangle x:Name="Rrect" Margin="0 10 0 0" Width="250" Stroke="{StaticResource TangoLightBorderBrush}" StrokeThickness="1" Fill="{StaticResource TangoLightBorderBrush}" Height="2" />
+
+ <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Margin="0 15 0 0">
+ <Image Source="../Images/JobProgressView/clock.png" Stretch="None" VerticalAlignment="Center" />
+ <TextBlock Margin="5 0 0 0" VerticalAlignment="Center" FontSize="{StaticResource TangoComboBoxItemFontSize}">Time Left</TextBlock>
+ </StackPanel>
+
+ <TextBlock VerticalAlignment="Center" FontSize="{StaticResource TangoLargeInfoFontSize}" Margin="0 10 0 0" HorizontalAlignment="Center">
+ <Run Text="{Binding RunningJobStatus.RemainingTime,Converter={StaticResource TimeSpanToTwoDigitsTimeConverter},FallbackValue=-}"></Run>
+ <Run FontSize="{StaticResource TangoComboBoxItemFontSize}" Text="{Binding RunningJobStatus.RemainingTime,Converter={StaticResource TimeSpanToLabelConverter},FallbackValue=min}"></Run>
+ </TextBlock>
+ </StackPanel>
+ </Grid>
+
+
+ </StackPanel>
+ </Grid>
+ </DockPanel>
+ <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Visibility="Visible">
+ <touch:TouchButton Content="Abort" Visibility="Collapsed" Margin="0 20 0 0" Height="50" Width="164" CornerRadius="30" Command="{Binding AbortCommand}" IsEnabled="{Binding MachineProvider.MachineOperator.IsPrinting}" BorderThickness="1" EnableDropShadow="False" Style="{StaticResource BlueFlatButton}"/>
+
+ <touch:TouchButton Content="Stop" Margin="0 20 0 0" Height="50" Width="164" CornerRadius="30" Command="{Binding StopCommand}" IsEnabled="{Binding MachineProvider.MachineOperator.IsPrinting}" EnableDropShadow="False" Style="{StaticResource SelectedBlueFlatButton}"/>
+
+ </StackPanel>
+ <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Visibility="Collapsed">
+ <touch:TouchButton Content="Restart" Margin="0 20 0 0" Height="50" Width="164" CornerRadius="30" Command="{Binding RestartJobCommand}" IsEnabled="{Binding MachineProvider.MachineOperator.IsPrinting}" BorderThickness="1" EnableDropShadow="False" Style="{StaticResource BlueFlatButton}"/>
+
+ <touch:TouchButton Content="Clear" Margin="0 20 0 0" Height="50" Width="164" CornerRadius="30" Command="{Binding ClearJobCommand}" IsEnabled="{Binding MachineProvider.MachineOperator.IsPrinting}" EnableDropShadow="False" Style="{StaticResource SelectedBlueFlatButton}"/>
+
+ </StackPanel>
+ <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Visibility="Collapsed" MinWidth="500" VerticalAlignment="Bottom">
+ <touch:TouchButton Margin="0 0 0 0" Height="50" Width="164" CornerRadius="30" Command="{Binding CaancelJobCommand}" IsEnabled="{Binding MachineProvider.MachineOperator.IsPrinting}" BorderThickness="0" EnableDropShadow="False" Style="{StaticResource TangoLinkButton}" Foreground="{StaticResource TangoPrimaryAccentBrush}">
+ <StackPanel Orientation="Vertical">
+ <TextBlock Margin="5 0 0 0" FontSize="{StaticResource TangoButtonFontSize}" VerticalAlignment="Bottom" Text="Cancel" HorizontalAlignment="Center" Width="80">
+ <TextBlock.Style>
+ <Style TargetType="{x:Type TextBlock}">
+ <Setter Property="Foreground" Value="{StaticResource TangoPrimaryAccentBrush}"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Button}}, Path=IsEnabled}" Value="False">
+ <Setter Property="Foreground" Value="{StaticResource TangoDisabledBackgroundBrush}"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </TextBlock.Style>
+ </TextBlock>
+ <Rectangle Height="3" VerticalAlignment="Bottom" Margin="0 2 0 0" Width="84">
+ <Rectangle.Style>
+ <Style TargetType="{x:Type Rectangle}">
+ <Setter Property="Fill" Value="{StaticResource TangoPrimaryAccentBrush}"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Button}}, Path=IsEnabled}" Value="False">
+ <Setter Property="Fill" Value="{StaticResource TangoDisabledBackgroundBrush}"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Rectangle.Style>
+ </Rectangle>
+ </StackPanel>
+ </touch:TouchButton>
+
+ <touch:TouchButton Content="Resume" Margin="30 0 0 0" Height="50" Width="164" CornerRadius="30" Command="{Binding ResumeCommand}" IsEnabled="{Binding MachineProvider.MachineOperator.IsPrinting}" EnableDropShadow="False" Style="{StaticResource SelectedBlueFlatButton}"/>
+ <touch:TouchButton Content="Restart" Margin="30 0 0 0" Height="50" Width="164" CornerRadius="30" Command="{Binding RestartJobCommand}" IsEnabled="{Binding MachineProvider.MachineOperator.IsPrinting}" BorderThickness="1" EnableDropShadow="False" Style="{StaticResource BlueFlatButton}"/>
+
+ </StackPanel>
+ </StackPanel>
+ <StackPanel x:Name="Job_Progress" Grid.Row="2" Margin="0 12 0 0" Orientation="Vertical">
+ <StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
+ <Image Source="../Images/Job Issues/Thread.png" Stretch="None" VerticalAlignment="Top"/>
+ <TextBlock Text="Total Job Progress" FontWeight="DemiBold" Margin="15 10 0 0" FontSize="{StaticResource TangoComboBoxItemFontSize}" VerticalAlignment="Top"></TextBlock>
+ <Rectangle Height="2" Fill="{StaticResource TangoLightBorderBrush}" Width="1010" VerticalAlignment="Top" Margin="15 20 0 0"></Rectangle>
+ </StackPanel>
+ <Grid Margin="0 22 0 0">
+ <locaControls:RunningJobViewerEureka ThumbHeight="16" HeightSlider="14" DisplayMarkers="False" IsActive="True" Job="{Binding Job}"
+ RunningJobStatus="{Binding RunningJobStatus}"
+ MaximumValue="{Binding RunningJobStatus.TotalProgressMinusSettingUp, FallbackValue=100,TargetNullValue=100}"
+ MinimumValue="0"
+ SliderValue="{Binding RunningJobStatus.ProgressMinusSettingUp, TargetNullValue=0, FallbackValue=0}"/>
+
+
+ <!--<TextBlock Margin="0 0 -50 0" VerticalAlignment="Center" FontSize="{StaticResource TangoTitleFontSize}" HorizontalAlignment="Right">
+ <Run Text="x"></Run><Run Text="{Binding RunningJobStatus.RemainingUnits}"></Run>
+ </TextBlock>-->
+ </Grid>
+ <UniformGrid DockPanel.Dock="Bottom" Columns="4" Rows="1" HorizontalAlignment="Left" Margin="0 10 0 0" Height="Auto" VerticalAlignment="Top" Width="840">
+ <StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
+ <Image Source="../Images/Job Issues/job_length.png" Stretch="None" VerticalAlignment="Top" HorizontalAlignment="Left"/>
+ <StackPanel Orientation="Vertical" Margin="15 0 0 0">
+ <TextBlock x:Name="ProgressLength" VerticalAlignment="Center" FontSize="{StaticResource TangoDefaultFontSize}">Job Length (m)</TextBlock>
+ <TextBlock FontWeight="DemiBold" FontSize="{StaticResource TangoComboBoxItemFontSize}">
+ <TextBlock.Text>
+ <MultiBinding Converter="{StaticResource LengthWithSpoolsConverter}" StringFormat="#,0" TargetNullValue='-' FallbackValue='-' Mode="OneWay">
+ <Binding Path="RunningJobStatus.ProgressMinusSettingUp" Mode="OneWay"/>
+ <Binding Path="Job.Spools" Mode="OneWay"/>
+ </MultiBinding>
+ </TextBlock.Text>
+ </TextBlock>
+ </StackPanel>
+ </StackPanel>
+ <StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
+ <Image Source="../Images/Job Issues/job_weight.png" Stretch="None" VerticalAlignment="Top"/>
+ <StackPanel Orientation="Vertical" Margin="15 0 0 0">
+ <TextBlock VerticalAlignment="Center" FontSize="{StaticResource TangoDefaultFontSize}">Job Weight (g)</TextBlock>
+ <TextBlock FontWeight="DemiBold" FontSize="{StaticResource TangoComboBoxItemFontSize}">
+ <TextBlock.Text>
+ <MultiBinding Converter="{StaticResource LengthToWeightConverter}" StringFormat="#,0.##" TargetNullValue='-' FallbackValue='-' Mode="OneWay">
+ <Binding Path="RunningJobStatus.ProgressMinusSettingUp" Mode="OneWay"/>
+ <Binding Path="Job.GramPerLength" Mode="OneWay"/>
+ <Binding Path="Job.Spools" Mode="OneWay"/>
+ </MultiBinding>
+ </TextBlock.Text>
+ </TextBlock>
+ </StackPanel>
+ </StackPanel>
+ <StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
+ <Image Source="../Images/Job Issues/job_copies.png" Stretch="None" VerticalAlignment="Top"/>
+ <StackPanel Orientation="Vertical" Margin="15 0 0 0">
+ <TextBlock VerticalAlignment="Center" FontSize="{StaticResource TangoDefaultFontSize}">Copies</TextBlock>
+ <TextBlock FontWeight="DemiBold" FontSize="{StaticResource TangoComboBoxItemFontSize}">
+ <TextBlock.Style>
+ <Style TargetType="{x:Type TextBlock}">
+ <Setter Property="Text" Value="-"/>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding RunningJobStatus.IsCompleted}" Value="True">
+ <Setter Property="Text" Value="{Binding Job.NumberOfUnitsMultipliedBySpools}"></Setter>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding RunningJobStatus.IsCompleted}" Value="False">
+ <Setter Property="Text" >
+ <Setter.Value>
+ <MultiBinding Converter="{StaticResource ProgressUnitSpoolConverter}" TargetNullValue='-' FallbackValue='-' >
+ <Binding Path="RunningJobStatus.CurrentUnit" Mode="OneWay"/>
+ </MultiBinding>
+ </Setter.Value>
+ </Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </TextBlock.Style>
+ </TextBlock>
+ </StackPanel>
+ </StackPanel>
+ <StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
+ <Image Source="../Images/Job Issues/ttime_left.png" Stretch="None" VerticalAlignment="Top"/>
+ <StackPanel Orientation="Vertical" Margin="15 0 0 0">
+ <TextBlock VerticalAlignment="Center" FontSize="{StaticResource TangoDefaultFontSize}">Time Left</TextBlock>
+ <TextBlock FontWeight="DemiBold" FontSize="{StaticResource TangoComboBoxItemFontSize}" Margin="0 0 0 0" HorizontalAlignment="Left">
+ <Run Text="{Binding RunningJobStatus.RemainingTime,Converter={StaticResource TimeSpanToTwoDigitsTimeConverter},FallbackValue=5}"></Run>
+ <Run FontSize="16" Text="{Binding RunningJobStatus.RemainingTime,Converter={StaticResource TimeSpanToLabelConverter},FallbackValue=min}"></Run>
+
+ <!--<Run FontSize="16">m</Run>-->
+ </TextBlock>
+ </StackPanel>
+ </StackPanel>
+ </UniformGrid>
+
+ </StackPanel>
+ <Grid Grid.Row="3" Margin="0 15 0 0" >
+
+ <Rectangle Fill="{StaticResource TangoLightBorderBrush}" Height="2" VerticalAlignment="Top"></Rectangle>
+ <Grid Margin="0 30 0 0">
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="1*"/>
+ <ColumnDefinition Width="2*"/>
+ </Grid.ColumnDefinitions>
+ <StackPanel Orientation="Vertical">
+ <StackPanel Orientation="Horizontal">
+ <Image Source="../Images/Job Issues/input.png" Stretch="None" VerticalAlignment="Top" HorizontalAlignment="Left"/>
+ <TextBlock VerticalAlignment="Center" Margin="15 0 0 0" FontSize="{StaticResource TangoDefaultFontSize}">Input</TextBlock>
+ </StackPanel>
+ <UniformGrid Margin="0 20 0 0" Rows="1" Columns="3" Height="Auto" MinWidth="180" HorizontalAlignment="Left" Visibility="{Binding IsDyeingProcess,Converter={StaticResource BooleanToVisibilityInverseConverter}}">
+ <StackPanel Orientation="Vertical">
+ <Border Width="50" Height="50" Background="Transparent" CornerRadius="16" HorizontalAlignment="Left" BorderBrush="{StaticResource TangoDisabledForegroundBrush}" BorderThickness="1"></Border>
+ <TextBlock Margin="0 10 0 0 " Text="L" FontSize="{StaticResource TangoSmallFontSize}" HorizontalAlignment="Center"/>
+ <TextBlock Margin="0 10 0 0 " Style="{StaticResource SliderGreyTextStyle}" Text="-" ></TextBlock>
+
+ </StackPanel>
+ <StackPanel Orientation="Vertical" Width="50" HorizontalAlignment="Left" Margin="5 0 0 0">
+ <Border Width="50" Height="50" Background="Transparent" CornerRadius="16" HorizontalAlignment="Left" BorderBrush="{StaticResource TangoDisabledForegroundBrush}" BorderThickness="1"></Border>
+ <TextBlock Margin="0 10 0 0 " Text="a" FontSize="{StaticResource TangoSmallFontSize}" HorizontalAlignment="Center"/>
+ <TextBlock Margin="0 10 0 0 " Style="{StaticResource SliderGreyTextStyle}" Text="-" ></TextBlock>
+ </StackPanel>
+ <StackPanel Orientation="Vertical" Margin="10 0 0 0" Width="50">
+ <Border Width="50" Height="50" Background="Transparent" CornerRadius="16" HorizontalAlignment="Left" BorderBrush="{StaticResource TangoDisabledForegroundBrush}" BorderThickness="1"></Border>
+ <TextBlock Margin="0 10 0 0 " Text="b" FontSize="{StaticResource TangoSmallFontSize}" HorizontalAlignment="Center"/>
+ <TextBlock Margin="0 10 0 0 " Style="{StaticResource SliderGreyTextStyle}" Text="-" ></TextBlock>
+ </StackPanel>
+ </UniformGrid>
+ <Grid Visibility="{Binding IsDyeingProcess,Converter={StaticResource BooleanToVisibilityConverter}}">
+ <ContentControl x:Name="leftBrushValues" HorizontalAlignment="Left" Content="{Binding CurrentBrushStop}" Width="Auto" Height="Auto" Margin="0 20 0 0">
+ <ContentControl.Style>
+ <Style TargetType="ContentControl">
+ <Setter Property="ContentTemplate">
+ <Setter.Value>
+ <DataTemplate/>
+ </Setter.Value>
+ </Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding CurrentBrushStop.ColorSpace.Name, Converter={StaticResource EnumToDescriptionConverter}}" Value="RGB">
+ <Setter Property="ContentTemplate" Value="{StaticResource RGB_Template}" />
+ </DataTrigger>
+ <DataTrigger Binding="{Binding CurrentBrushStop.ColorSpace.Name, Converter={StaticResource EnumToDescriptionConverter}}" Value="Volume">
+ <Setter Property="ContentTemplate" Value="{StaticResource CMYK_Template}" />
+ </DataTrigger>
+ <DataTrigger Binding="{Binding CurrentBrushStop.ColorSpace.Name}" Value="LAB">
+ <Setter Property="ContentTemplate" Value="{StaticResource LAB_Template}" />
+ </DataTrigger>
+ <DataTrigger Binding="{Binding CurrentBrushStop.ColorSpace.Name, Converter={StaticResource EnumToDescriptionConverter}}" Value="Catalog">
+ <Setter Property="ContentTemplate" Value="{StaticResource CATALOG_Template}" />
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </ContentControl.Style>
+ </ContentControl>
+ </Grid>
+ </StackPanel>
+ <StackPanel Orientation="Vertical" Grid.Column="1" Margin="60 0 0 0">
+ <StackPanel Orientation="Horizontal">
+ <Image Source="../Images/Job Issues/output.png" Stretch="None" VerticalAlignment="Top" HorizontalAlignment="Left" Height="Auto"/>
+ <TextBlock VerticalAlignment="Center" Margin="15 0 0 0" FontSize="{StaticResource TangoDefaultFontSize}" >Output</TextBlock>
+ </StackPanel>
+ <UniformGrid Margin="0 20 0 0" Rows="1" Columns="7" Height="Auto" Width="435" HorizontalAlignment="Left" Visibility="{Binding IsDyeingProcess,Converter={StaticResource BooleanToVisibilityInverseConverter}}">
+ <StackPanel Orientation="Vertical">
+ <Border Width="50" Height="50" Background="Transparent" CornerRadius="16" HorizontalAlignment="Left" BorderBrush="{StaticResource TangoDisabledForegroundBrush}" BorderThickness="1"></Border>
+ <TextBlock Margin="0 10 0 0 " Style="{StaticResource SliderGreyTextStyle}" Text="-" ></TextBlock>
+ <TextBlock Margin="0 10 0 0 " Text="0%" FontSize="{StaticResource TangoSmallFontSize}" HorizontalAlignment="Center"/>
+ </StackPanel>
+ <StackPanel Orientation="Vertical">
+ <Border Width="50" Height="50" Background="Transparent" CornerRadius="16" HorizontalAlignment="Left" BorderBrush="{StaticResource TangoDisabledForegroundBrush}" BorderThickness="1"></Border>
+ <TextBlock Margin="0 10 0 0 " Style="{StaticResource SliderGreyTextStyle}" Text="-" ></TextBlock>
+ <TextBlock Margin="0 10 0 0 " Text="0%" FontSize="{StaticResource TangoSmallFontSize}" HorizontalAlignment="Center"/>
+ </StackPanel>
+ <StackPanel Orientation="Vertical">
+ <Border Width="50" Height="50" Background="Transparent" CornerRadius="16" HorizontalAlignment="Left" BorderBrush="{StaticResource TangoDisabledForegroundBrush}" BorderThickness="1"></Border>
+ <TextBlock Margin="0 10 0 0 " Style="{StaticResource SliderGreyTextStyle}" Text="-" ></TextBlock>
+ <TextBlock Margin="0 10 0 0 " Text="0%" FontSize="{StaticResource TangoSmallFontSize}" HorizontalAlignment="Center"/>
+ </StackPanel>
+ <StackPanel Orientation="Vertical">
+ <Border Width="50" Height="50" Background="Transparent" CornerRadius="16" HorizontalAlignment="Left" BorderBrush="{StaticResource TangoDisabledForegroundBrush}" BorderThickness="1"></Border>
+ <TextBlock Margin="0 10 0 0 " Style="{StaticResource SliderGreyTextStyle}" Text="-" ></TextBlock>
+ <TextBlock Margin="0 10 0 0 " Text="0%" FontSize="{StaticResource TangoSmallFontSize}" HorizontalAlignment="Center"/>
+ </StackPanel>
+ <StackPanel Orientation="Vertical">
+ <Border Width="50" Height="50" Background="Transparent" CornerRadius="16" HorizontalAlignment="Left" BorderBrush="{StaticResource TangoDisabledForegroundBrush}" BorderThickness="1"></Border>
+ <TextBlock Margin="0 10 0 0 " Style="{StaticResource SliderGreyTextStyle}" Text="-" ></TextBlock>
+ <TextBlock Margin="0 10 0 0 " Text="0%" FontSize="{StaticResource TangoSmallFontSize}" HorizontalAlignment="Center"/>
+ </StackPanel>
+ <StackPanel Orientation="Vertical">
+ <Border Width="50" Height="50" Background="Transparent" CornerRadius="16" HorizontalAlignment="Left" BorderBrush="{StaticResource TangoDisabledForegroundBrush}" BorderThickness="1"></Border>
+ <TextBlock Margin="0 10 0 0 " Style="{StaticResource SliderGreyTextStyle}" Text="-" ></TextBlock>
+ <TextBlock Margin="0 10 0 0 " Text="0%" FontSize="{StaticResource TangoSmallFontSize}" HorizontalAlignment="Center"/>
+ </StackPanel>
+ <StackPanel Orientation="Vertical">
+ <Border Width="50" Height="50" Background="Transparent" CornerRadius="16" HorizontalAlignment="Left" BorderBrush="{StaticResource TangoDisabledForegroundBrush}" BorderThickness="1"></Border>
+ <TextBlock Margin="0 10 0 0 " Style="{StaticResource SliderGreyTextStyle}" Text="-" ></TextBlock>
+ <TextBlock Margin="0 10 0 0 " Text="0%" FontSize="{StaticResource TangoSmallFontSize}" HorizontalAlignment="Center"/>
+ </StackPanel>
+ </UniformGrid>
+ <UniformGrid Columns="7" Rows="1" Margin="0 20 0 0" Width="440" HorizontalAlignment="Left" Visibility="{Binding IsDyeingProcess,Converter={StaticResource BooleanToVisibilityConverter}}">
+ <StackPanel Orientation="Vertical" Width="50" HorizontalAlignment="Left">
+ <Border Width="50" Height="50" Background="Cyan" CornerRadius="16" HorizontalAlignment="Left"></Border>
+ <TextBlock Margin="0 10 0 0 " HorizontalAlignment="Center">C</TextBlock>
+ <TextBlock Margin="0 10 0 0 " HorizontalAlignment="Center" Text="{Binding CyanOutput}"></TextBlock>
+ </StackPanel>
+ <StackPanel Orientation="Vertical" Width="50" HorizontalAlignment="Left">
+ <Border Width="50" Height="50" Background="LightCyan" CornerRadius="16" HorizontalAlignment="Left"></Border>
+ <TextBlock Margin="0 10 0 0 " HorizontalAlignment="Center">LC</TextBlock>
+ <TextBlock Margin="0 10 0 0 " HorizontalAlignment="Center" Text="{Binding LightCyanOutput}"></TextBlock>
+ </StackPanel>
+ <StackPanel Orientation="Vertical" Width="50" HorizontalAlignment="Left">
+ <Border Width="50" Height="50" Background="Magenta" CornerRadius="16" HorizontalAlignment="Left"></Border>
+ <TextBlock Margin="0 10 0 0 " HorizontalAlignment="Center">M</TextBlock>
+ <TextBlock Margin="0 10 0 0 " HorizontalAlignment="Center" Text="{Binding MagentaOutput}"></TextBlock>
+ </StackPanel>
+ <StackPanel Orientation="Vertical" Width="50" HorizontalAlignment="Left">
+ <Border Width="50" Height="50" Background="LightPink" CornerRadius="16" HorizontalAlignment="Left"></Border>
+ <TextBlock Margin="0 10 0 0 " HorizontalAlignment="Center">LM</TextBlock>
+ <TextBlock Margin="0 10 0 0 " HorizontalAlignment="Center" Text="{Binding LightMagentaOutput}"></TextBlock>
+ </StackPanel>
+ <StackPanel Orientation="Vertical" Width="50" HorizontalAlignment="Left">
+ <Border Width="50" Height="50" Background="Yellow" CornerRadius="16" HorizontalAlignment="Left"></Border>
+ <TextBlock Margin="0 10 0 0 " HorizontalAlignment="Center">Y</TextBlock>
+ <TextBlock Margin="0 10 0 0 " HorizontalAlignment="Center" Text="{Binding YellowOutput}"></TextBlock>
+ </StackPanel>
+ <StackPanel Orientation="Vertical" Width="50" HorizontalAlignment="Left">
+ <Border Width="50" Height="50" Background="LightYellow" CornerRadius="16" HorizontalAlignment="Left"></Border>
+ <TextBlock Margin="0 10 0 0 " HorizontalAlignment="Center">LY</TextBlock>
+ <TextBlock Margin="0 10 0 0 " HorizontalAlignment="Center" Text="{Binding LightYellowOutput}"></TextBlock>
+ </StackPanel>
+ <StackPanel Orientation="Vertical" Width="50" HorizontalAlignment="Left">
+ <Border Width="50" Height="50" Background="Black" CornerRadius="16" HorizontalAlignment="Left"></Border>
+ <TextBlock Margin="0 10 0 0 " HorizontalAlignment="Center">K</TextBlock>
+ <TextBlock Margin="0 10 0 0 " HorizontalAlignment="Center" Text="{Binding BlackOutput}"></TextBlock>
+ </StackPanel>
+ </UniformGrid>
+ </StackPanel>
+
+ </Grid>
+ </Grid>
+ </Grid>
+
+ <Grid x:Name="Overview" Margin="32 18 60 0" Grid.Row="1" Visibility="{Binding IsJobStatusViewEnable, Converter={StaticResource BooleanToVisibilityInverseConverter}}">
+ <Grid.RowDefinitions>
+ <RowDefinition Height="74"></RowDefinition>
+ <RowDefinition Height="Auto"></RowDefinition>
+ <RowDefinition Height="Auto"></RowDefinition>
+ <RowDefinition Height="Auto"></RowDefinition>
+ <RowDefinition Height="100"></RowDefinition>
+ </Grid.RowDefinitions>
+ <Grid Margin="0 10 0 0">
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="1*"/>
+ <ColumnDefinition Width="400"/>
+ <ColumnDefinition Width="Auto"/>
+ </Grid.ColumnDefinitions>
+ <StackPanel Orientation="Horizontal" HorizontalAlignment="Left" >
+ <Image Margin="0 2 0 0" Source="../Images/Job Issues/job_length.png" Stretch="Uniform" VerticalAlignment="Top" HorizontalAlignment="Left" Width="Auto" Height="32" />
+ <TextBlock Margin="20 5 0 0" Width="Auto" FontWeight="SemiBold" FontSize="{StaticResource TangoComboBoxItemFontSize}" VerticalAlignment="Top">
+ <TextBlock.Text>
+ <MultiBinding Converter="{StaticResource LengthWithSpoolsConverter}" StringFormat="#,0.##" TargetNullValue='-' FallbackValue='-' Mode="OneWay">
+ <Binding Path="RunningJobStatus.ProgressMinusSettingUp" Mode="OneWay"/>
+ <Binding Path="Job.Spools" Mode="OneWay"/>
+ </MultiBinding>
+ </TextBlock.Text>
+ </TextBlock>
+ </StackPanel>
+ <!--<Grid Grid.Column="1" Margin="20 8 20 0" VerticalAlignment="Top" Height="20">-->
+ <locaControls:RunningJobViewerEureka Grid.Column="1" Margin="10 12 20 0" VerticalAlignment="Top" ThumbHeight="16" Height="14" HeightSlider="14" DisplayMarkers="False" IsActive="True" Job="{Binding Job}"
+ RunningJobStatus="{Binding RunningJobStatus}"
+ MaximumValue="{Binding RunningJobStatus.TotalProgressMinusSettingUp, FallbackValue=100,TargetNullValue=100}"
+ MinimumValue="0"
+ SliderValue="{Binding RunningJobStatus.ProgressMinusSettingUp, TargetNullValue=0, FallbackValue=0, Delay=100}"/>
+
+ <!--</Grid>-->
+
+ <StackPanel Orientation="Horizontal" HorizontalAlignment="Left" Grid.Column="2" Margin="0 0 0 0">
+ <Image Margin="0 2 0 0" Source="../Images/Job Issues/ttime_left.png" Stretch="Uniform" VerticalAlignment="Top" Height="32"/>
+ <TextBlock Margin="15 5 0 0" FontWeight="Light" FontSize="{StaticResource TangoComboBoxItemFontSize}" HorizontalAlignment="Center">
+ <Run Text="{Binding RunningJobStatus.RemainingTime,Converter={StaticResource TimeSpanToTwoDigitsTimeConverter},FallbackValue=5}"></Run>
+ <Run FontSize="16" Text="{Binding RunningJobStatus.RemainingTime,Converter={StaticResource TimeSpanToLabelConverter},FallbackValue=min}"></Run>
+
+ </TextBlock>
+ <touch:TouchButton Content="Stop" Height="50" Width="164" CornerRadius="30" Command="{Binding StopCommand}" IsEnabled="true" BorderThickness="0" BorderBrush="{StaticResource TangoPrimaryAccentBrush}" EnableDropShadow="False" VerticalAlignment="Top" Margin="20 -5 0 0">
+ <touch:TouchButton.Style >
+ <Style TargetType="touch:TouchButton" >
+ <Setter Property="Foreground" Value="{StaticResource TangoLightForegroundBrush}"></Setter>
+ <Setter Property="Background" Value="{StaticResource TangoPrimaryAccentBrush}"/>
+ <Style.Triggers>
+ <Trigger Property="IsEnabled" Value="False">
+ <Setter Property="Foreground" Value="{StaticResource TangoDisabledForegroundBrush}"></Setter>
+ <Setter Property="Background" Value="{StaticResource TangoDisabledBackgroundBrush}"></Setter>
+ </Trigger>
+ </Style.Triggers>
+ </Style>
+ </touch:TouchButton.Style>
+ </touch:TouchButton>
+
+ </StackPanel>
+
+ <Border Height="2" Grid.ColumnSpan="012" Background="{StaticResource TangoLightBorderBrush}" VerticalAlignment="Bottom" Margin="0 2 0 0" CornerRadius="2"></Border>
+ </Grid>
+ <Grid Grid.Row="1" Margin="0 28 0 0">
+ <StackPanel Orientation="Vertical">
+ <StackPanel Orientation="Horizontal" >
+ <Image Source="../Images/Overview Icons/Sensors.png" Stretch="UniformToFill" VerticalAlignment="Top" HorizontalAlignment="Left" Width="32" Height="32"/>
+ <TextBlock Margin="12 0 0 0 " VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="{StaticResource TangoComboBoxItemFontSize}">Sensors</TextBlock>
+ </StackPanel>
+ <UniformGrid Columns="5" Rows="1" Height="120" Margin="40 11 40 0" DataContext="{Binding OverviewModel}">
+ <StackPanel Orientation="Vertical">
+ <Grid>
+ <touch:TouchArcProgress RingThickness="8" Value="{Binding DryerZone3.Value}" Maximum="{Binding DryerZone3.MaxValue}" Minimum="0" Width="100" Height="100">
+ <touch:TouchArcProgress.Foreground>
+ <SolidColorBrush Color="{Binding DryerZone3.Color}"/>
+ </touch:TouchArcProgress.Foreground>
+ </touch:TouchArcProgress>
+ <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="{StaticResource TangoDefaultFontSize}" FontWeight="Bold" >
+ <Run Text="{Binding DryerZone3.DisplayValue}">
+ <Run.Foreground>
+ <SolidColorBrush Color="{Binding DryerZone3.Color}"/>
+ </Run.Foreground>
+ </Run>
+ <Run Text="{Binding DryerZone3.DisplayMaxValue}" ></Run>
+ </TextBlock>
+ <TextBlock VerticalAlignment="Bottom" HorizontalAlignment="Center" Margin="0 0 0 20" FontSize="{StaticResource TangoDefaultFontSize}" >&#186;C</TextBlock>
+
+ </Grid>
+ <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center">Dryer Zone 3</TextBlock>
+ </StackPanel>
+
+ <StackPanel Orientation="Vertical">
+ <Grid>
+ <touch:TouchArcProgress RingThickness="8" Value="{Binding DryerAir.Value}" Maximum="{Binding DryerAir.MaxValue}" Minimum="0" Width="100" Height="100">
+ <touch:TouchArcProgress.Foreground>
+ <SolidColorBrush Color="{Binding DryerAir.Color}"/>
+ </touch:TouchArcProgress.Foreground>
+ </touch:TouchArcProgress>
+ <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="{StaticResource TangoDefaultFontSize}" FontWeight="SemiBold" Text="{Binding DryerAir.DisplayValue}">
+ <TextBlock.Foreground>
+ <SolidColorBrush Color="{Binding DryerAir.Color}"/>
+ </TextBlock.Foreground>
+ </TextBlock>
+ <TextBlock VerticalAlignment="Bottom" HorizontalAlignment="Center" Margin="0 0 0 20" FontSize="{StaticResource TangoDefaultFontSize}" FontWeight="SemiBold" Text="&#186;C" >
+ </TextBlock>
+ </Grid>
+ <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center">Dryer Air</TextBlock>
+ </StackPanel>
+ <StackPanel Orientation="Vertical">
+ <Grid>
+ <touch:TouchArcProgress RingThickness="8" Value="{Binding Tunnel.Value}" Maximum="{Binding Tunnel.MaxValue}" Minimum="0" Width="100" Height="100">
+ <touch:TouchArcProgress.Foreground>
+ <SolidColorBrush Color="{Binding Tunnel.Color}"/>
+ </touch:TouchArcProgress.Foreground>
+ </touch:TouchArcProgress>
+ <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="{StaticResource TangoDefaultFontSize}" FontWeight="SemiBold" >
+ <Run Text="{Binding Tunnel.DisplayValue}">
+ <Run.Foreground>
+ <SolidColorBrush Color="{Binding Tunnel.Color}"/>
+ </Run.Foreground>
+ </Run>
+ <Run Text="{Binding Tunnel.DisplayMaxValue}" ></Run>
+ </TextBlock>
+ <TextBlock VerticalAlignment="Bottom" HorizontalAlignment="Center" Margin="0 0 0 20" FontSize="{StaticResource TangoDefaultFontSize}" FontWeight="SemiBold" Text="&#186;C"></TextBlock>
+
+ </Grid>
+ <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center">Tunnel</TextBlock>
+ </StackPanel>
+ <StackPanel Orientation="Vertical">
+ <Grid>
+ <touch:TouchArcProgress RingThickness="8" Value="{Binding PumpsPressure.Value}" Maximum="{Binding PumpsPressure.MaxValue}" Minimum="0" Width="100" Height="100">
+ <touch:TouchArcProgress.Foreground>
+ <SolidColorBrush Color="{Binding PumpsPressure.Color}"/>
+ </touch:TouchArcProgress.Foreground>
+ </touch:TouchArcProgress>
+ <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="{StaticResource TangoDefaultFontSize}" FontWeight="SemiBold" Text="{Binding PumpsPressure.DisplayValue}">
+ <TextBlock.Foreground>
+ <SolidColorBrush Color="{Binding PumpsPressure.Color}"/>
+ </TextBlock.Foreground>
+ </TextBlock>
+ <TextBlock VerticalAlignment="Bottom" HorizontalAlignment="Center" Margin="0 0 0 20" FontSize="{StaticResource TangoDefaultFontSize}" FontWeight="SemiBold" Text="Bar"></TextBlock>
+
+ </Grid>
+ <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center">Pumps pressure</TextBlock>
+ </StackPanel>
+ <StackPanel Orientation="Vertical">
+ <Grid>
+ <touch:TouchArcProgress RingThickness="8" Value="{Binding Lubricant.Value}" Maximum="{Binding Lubricant.MaxValue}" Minimum="0" Width="100" Height="100">
+ <touch:TouchArcProgress.Foreground>
+ <SolidColorBrush Color="{Binding Lubricant.Color}"/>
+ </touch:TouchArcProgress.Foreground>
+ </touch:TouchArcProgress>
+ <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="{StaticResource TangoDefaultFontSize}" FontWeight="SemiBold" Text="{Binding Lubricant.DisplayValue, StringFormat=0.## }">
+ <TextBlock.Foreground>
+ <SolidColorBrush Color="{Binding Lubricant.Color}"/>
+ </TextBlock.Foreground>
+ </TextBlock>
+ <TextBlock VerticalAlignment="Bottom" HorizontalAlignment="Center" Margin="0 0 0 20" FontSize="{StaticResource TangoDefaultFontSize}" FontWeight="SemiBold" Text="mVolts"></TextBlock>
+
+ </Grid>
+ <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center">Lubricant</TextBlock>
+ </StackPanel>
+ </UniformGrid>
+ <Grid Margin="0 23 0 0">
+ <Image Source="../Images/Job Issues/Machine outline.png" Height="188" Stretch="UniformToFill" VerticalAlignment="Top" HorizontalAlignment="Center" Width="636" />
+ <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
+ <StackPanel Orientation="Vertical">
+ <Border Height="184" Width="83" VerticalAlignment="Center" CornerRadius="2 0 0 2" BorderThickness="0" BorderBrush="{StaticResource TangoBlackInkBrush}">
+ <ItemsControl Margin="0 21 0 9" ItemsSource="{Binding MachineErrorStates.Winders}" ItemTemplate="{StaticResource ErrorState}">
+ <ItemsControl.ItemsPanel>
+ <ItemsPanelTemplate>
+ <UniformGrid Columns="1" Rows="4" IsItemsHost="True" VerticalAlignment="Stretch"></UniformGrid>
+ </ItemsPanelTemplate>
+ </ItemsControl.ItemsPanel>
+ </ItemsControl>
+ </Border>
+ <TextBlock HorizontalAlignment="Center" Margin="0 4 0 0" FontWeight="Thin">Winder</TextBlock>
+ </StackPanel>
+ <StackPanel Orientation="Vertical">
+ <Border Height="171" Width="95" VerticalAlignment="Center" CornerRadius="0" BorderThickness="0" BorderBrush="{StaticResource TangoBlackInkBrush}">
+ <ItemsControl Margin="0 21 0 9" ItemsSource="{Binding MachineErrorStates.Dancers}" ItemTemplate="{StaticResource ErrorState}">
+ <ItemsControl.ItemsPanel>
+ <ItemsPanelTemplate>
+ <UniformGrid Columns="1" Rows="4" IsItemsHost="True" VerticalAlignment="Stretch"></UniformGrid>
+ </ItemsPanelTemplate>
+ </ItemsControl.ItemsPanel>
+ </ItemsControl>
+ </Border>
+ <TextBlock HorizontalAlignment="Center" Margin="14 18 14 14" FontWeight="Thin">Dancer</TextBlock>
+ </StackPanel>
+
+
+ <StackPanel Orientation="Vertical" Margin="274 0 0 0">
+ <Border Height="171" Width="95" VerticalAlignment="Center" CornerRadius="0" BorderThickness="0" BorderBrush="{StaticResource TangoBlackInkBrush}">
+ <ItemsControl Margin="0 21 0 9" ItemsSource="{Binding MachineErrorStates.BTSRs}" ItemTemplate="{StaticResource ErrorState}">
+ <ItemsControl.ItemsPanel>
+ <ItemsPanelTemplate>
+ <UniformGrid Columns="1" Rows="4" IsItemsHost="True" VerticalAlignment="Stretch"></UniformGrid>
+ </ItemsPanelTemplate>
+ </ItemsControl.ItemsPanel>
+ </ItemsControl>
+ </Border>
+ <TextBlock HorizontalAlignment="Center" Margin="0 18 0 0" FontWeight="Thin">BTSR</TextBlock>
+ </StackPanel>
+ <StackPanel Orientation="Vertical">
+ <Border Height="184" Width="83" VerticalAlignment="Center" CornerRadius="2 0 0 2" BorderThickness="0" BorderBrush="{StaticResource TangoBlackInkBrush}">
+ <UniformGrid Columns="1" Rows="4" Margin="24">
+ <Image Stretch="Fill" Width="20" Height="24" Source="../Images/Overview Icons/Feeder1.png" HorizontalAlignment="Center" >
+
+ </Image>
+ <Image Stretch="Fill" Width="20" Height="24" Source="../Images/Overview Icons/Feeder2.png" HorizontalAlignment="Center" ></Image>
+ <Image Stretch="Fill" Width="20" Height="24" Source="../Images/Overview Icons/Feeder3.png" HorizontalAlignment="Center" ></Image>
+ <Image Stretch="Fill" Width="20" Height="24" Source="../Images/Overview Icons/Feeder4.png" HorizontalAlignment="Center" ></Image>
+ </UniformGrid>
+ </Border>
+ <TextBlock HorizontalAlignment="Center" Margin="0 4 0 0" FontWeight="Thin">Feeder</TextBlock>
+ </StackPanel>
+ </StackPanel>
+ </Grid>
+ </StackPanel>
+ </Grid>
+ <Grid Grid.Row="2" x:Name="IncLevels" Margin="0 8 0 0" Height="196">
+ <StackPanel Orientation="Vertical">
+ <DockPanel>
+ <StackPanel Orientation="Vertical" DockPanel.Dock="Right" Margin="0 0 30 0" >
+ <StackPanel Orientation="Horizontal" >
+ <Image Source="../Images/Overview Icons/Waste.png" Stretch="UniformToFill" VerticalAlignment="Top" HorizontalAlignment="Left" Width="32" Height="32"/>
+ <TextBlock Margin="12 0 0 0 " VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="{StaticResource TangoComboBoxItemFontSize}">Waste</TextBlock>
+ </StackPanel>
+ <StackPanel Orientation="Horizontal" Margin="-25 24 0 0">
+ <Rectangle Height="88" Width="2" Fill="{StaticResource TangoTextWatermarkBrush}" VerticalAlignment="Top" Margin="-15 15 0 0"/>
+ <ContentControl Margin="20 0 0 0" ContentTemplate="{StaticResource WasteBox}" Content="{Binding}" IsTabStop="False"/>
+ </StackPanel>
+
+ </StackPanel>
+ <StackPanel Orientation="Vertical">
+ <StackPanel Orientation="Horizontal" >
+ <Image Source="../Images/Overview Icons/Inks.png" Stretch="UniformToFill" VerticalAlignment="Top" HorizontalAlignment="Left" Width="32" Height="32"/>
+ <TextBlock Margin="12 0 0 0 " VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="{StaticResource TangoComboBoxItemFontSize}">Ink Levels</TextBlock>
+ </StackPanel>
+ <StackPanel Orientation="Horizontal" Margin="0 24 0 0">
+ <ItemsControl ItemsSource="{Binding MidTankLevels}" ItemTemplate="{StaticResource LiquidBox}">
+ <ItemsControl.ItemsPanel>
+ <ItemsPanelTemplate>
+ <UniformGrid Rows="1" IsItemsHost="True" Width="550"></UniformGrid>
+ </ItemsPanelTemplate>
+ </ItemsControl.ItemsPanel>
+ </ItemsControl>
+ <StackPanel Orientation="Horizontal" Margin="40 0 0 0">
+ <Rectangle Height="88" Width="2" Fill="{StaticResource TangoTextWatermarkBrush}" VerticalAlignment="Top" Margin="-15 15 0 0"/>
+ <ContentControl Margin="30 0 0 0" ContentTemplate="{StaticResource LubLiquidBox}" Content="{Binding MidTankLubLevel}" IsTabStop="False"/>
+ </StackPanel>
+ </StackPanel>
+ </StackPanel>
+ </DockPanel>
+
+ </StackPanel>
+ <Border VerticalAlignment="Bottom" Height="2" Background="{StaticResource TangoLightBorderBrush}" Margin="0 0 0 0" CornerRadius="2"></Border>
+ </Grid>
+ <Grid Grid.Row="3" x:Name="StatRealGraph" Margin="0 8 0 0">
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="186"></ColumnDefinition>
+ <ColumnDefinition Width="32"></ColumnDefinition>
+ <ColumnDefinition Width="1*"></ColumnDefinition>
+ </Grid.ColumnDefinitions>
+
+ <touch:TouchNavigationLinks BorderBrush="{StaticResource TangoDividerBrush}" BorderThickness="0 0 0 0" x:Name="navigationSTLinks" HorizontalContentAlignment="Left"
+ SelectedIndex="{Binding SelectedStatisticTabIndex,Mode=TwoWay}" VerticalAlignment="Bottom" Margin="0,10,0,20" Padding="0 0 0 0"
+ FontSize="{StaticResource TangoNavigationLinksFontSize}" LineThickness="0" PreviewTouchDown="NavigationSTLinks_PreviewTouchDown" PreviewMouseDown="NavigationSTLinks_PreviewMouseDown">
+
+ <DockPanel HorizontalAlignment="Stretch">
+ <Image DockPanel.Dock="Left" Source="../Images/Overview Icons/pr_data.png" Stretch="UniformToFill" VerticalAlignment="Top" HorizontalAlignment="Left" Width="32" Height="32"/>
+ <TextBlock HorizontalAlignment="Left" Margin="12 0 0 0" FontSize="{StaticResource TangoDefaultFontSize}" VerticalAlignment="Center">Production Data</TextBlock>
+ </DockPanel>
+ <DockPanel HorizontalAlignment="Stretch" IsEnabled="False" Margin="0 12 0 0">
+ <Image DockPanel.Dock="Left" Source="../Images/Overview Icons/temperature.png" Stretch="UniformToFill" VerticalAlignment="Top" HorizontalAlignment="Left" Width="32" Height="32"/>
+ <TextBlock HorizontalAlignment="Left" Margin="12 0 0 0" FontSize="{StaticResource TangoDefaultFontSize}" VerticalAlignment="Center" Foreground="{StaticResource TangoDisabledForegroundBrush}">Temperature</TextBlock>
+ </DockPanel>
+ <DockPanel HorizontalAlignment="Stretch" IsEnabled="False">
+ <Image DockPanel.Dock="Left" Source="../Images/Overview Icons/pressure.png" Stretch="UniformToFill" VerticalAlignment="Top" HorizontalAlignment="Left" Width="32" Height="32"/>
+ <TextBlock HorizontalAlignment="Left" Margin="12 0 0 0" FontSize="{StaticResource TangoDefaultFontSize}" VerticalAlignment="Center" Foreground="{StaticResource TangoDisabledForegroundBrush}">Pressure</TextBlock>
+ </DockPanel>
+ <DockPanel HorizontalAlignment="Stretch" IsEnabled="False" >
+ <Image DockPanel.Dock="Left" Source="../Images/Overview Icons/motor.png" Stretch="UniformToFill" VerticalAlignment="Top" HorizontalAlignment="Left" Width="32" Height="32"/>
+ <TextBlock HorizontalAlignment="Left" Margin="12 0 0 0" FontSize="{StaticResource TangoDefaultFontSize}" VerticalAlignment="Center" Foreground="{StaticResource TangoDisabledForegroundBrush}">Motor</TextBlock>
+ </DockPanel>
+ <touch:TouchNavigationLinks.Style>
+ <Style TargetType="{x:Type touch:TouchNavigationLinks}">
+ <Setter Property="ItemsPanel">
+ <Setter.Value>
+ <ItemsPanelTemplate>
+ <UniformGrid Rows="4" />
+ </ItemsPanelTemplate>
+ </Setter.Value>
+ </Setter>
+ </Style>
+ </touch:TouchNavigationLinks.Style>
+
+ </touch:TouchNavigationLinks>
+ <Grid Grid.Column="1" Margin="0 40 0 0">
+ <Rectangle Width="20" Height="2" Fill="{StaticResource TangoBlackInkBrush}" VerticalAlignment="Top" Margin="0 0 0 0" ></Rectangle>
+ <!--<Rectangle Width="2" Height="138" Margin="20 0 0 0" Fill="{StaticResource TangoBlackInkBrush}" VerticalAlignment="Top" ></Rectangle>-->
+ <Rectangle Margin="20 0 0 0" VerticalAlignment="Top" Fill="{StaticResource TangoBlackInkBrush}" Height="2" Width="138" HorizontalAlignment="Stretch">
+ <Rectangle.LayoutTransform>
+ <TransformGroup>
+ <RotateTransform Angle="90"/>
+ </TransformGroup>
+ </Rectangle.LayoutTransform>
+ </Rectangle>
+ </Grid>
+ <Grid Grid.Column="2" x:Name="StatGrid" Margin="0,30,0.4,0">
+ <Grid Visibility="{Binding SelectedStatisticTab,Converter={StaticResource StatisticTabToVisibilityConverter},ConverterParameter='Productiondata'}">
+ <graphs:RealTimeGraph Style="{StaticResource PPC_RealTimeGraph_Flat}" Controller="{Binding JobController}" Background="Transparent" StringFormat="0" GridLinesBrush="{StaticResource Tango_RealTimeGraph_ForegroundBrush}" BorderBrush="Transparent"
+ VerticalAxisVisibility="Visible" HorizontalAxisVisibility="Visible" VerticalTicks =" 5" AxisLabelAngle="0.0"/>
+ </Grid>
+ </Grid>
+ </Grid>
+ </Grid>
+ </Grid>
+ </Grid>
+ <Grid VerticalAlignment="Bottom" Grid.ColumnSpan="2" Margin="10 0 10 0">
+ <touch:TouchExpander x:Name="Notifications" Style="{StaticResource TouchRoundedExpander}" IsTabStop="False" KeyboardNavigation.TabNavigation ="None" BorderThickness="0" CornerRadius="20 20 0 0" Margin="0 0 0 -1" IsExpanded="{Binding IsExpandedNotifications, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
+ <touch:TouchExpander.Header>
+ <DockPanel >
+ <touch:TouchButton Margin="0 0 20 0" Content="Clear All" DockPanel.Dock="Right" Width="120" Height="38" HorizontalAlignment="Right" VerticalAlignment="Center" EnableDropShadow="False" Background="Transparent" BorderThickness="1" CornerRadius="19" BorderBrush="{StaticResource TangoPrimaryAccentBrush}" Foreground="{StaticResource TangoPrimaryAccentBrush}" Command="{Binding ClearAllNotificationsCommand}" Visibility="{Binding NotificationProvider.HasNotificationItems, Converter={StaticResource BooleanToVisibilityConverter}}" >
+
+ </touch:TouchButton>
+ <StackPanel DockPanel.Dock="Left" Orientation="Horizontal" VerticalAlignment="Center" >
+ <Image Source="../Images/Job Issues/Events.png" MaxWidth="33" Stretch="Fill" Height="36"/>
+ <TextBlock VerticalAlignment="Center" Margin="20 4 0 0" FontWeight="SemiBold" FontSize="{StaticResource TangoComboBoxItemFontSize}">Notifications</TextBlock>
+ <TextBlock Margin="10 0 0 0" VerticalAlignment="Center" FontWeight="Normal" FontSize="{StaticResource TangoComboBoxItemFontSize}" Visibility="{Binding NotificationProvider.HasNotificationItems, Converter={StaticResource BooleanToVisibilityConverter}}">
+ <Run Text="(" ></Run>
+ <Run Text="{Binding NotificationProvider.NotificationItems, Mode=OneWay, Converter={StaticResource CollectionToCountConverter}}"></Run>
+ <Run Text=" new Events)" ></Run>
+ </TextBlock>
+ </StackPanel>
+ </DockPanel>
+ </touch:TouchExpander.Header>
+ <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
+ <ListBox ClipToBounds="False" ItemsSource="{Binding NotificationProvider.NotificationItems}" HorizontalAlignment="Stretch" MaxHeight="258" >
+ <ListBox.Style>
+ <Style TargetType="{x:Type ListBox}" BasedOn="{StaticResource BlankListBox}">
+ <Setter Property="VirtualizingPanel.ScrollUnit" Value="Pixel"></Setter>
+ <Setter Property="Template">
+ <Setter.Value>
+ <ControlTemplate TargetType="{x:Type ListBox}">
+ <Border BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}" Background="{TemplateBinding Background}">
+ <touch:TouchScrollViewer CanContentScroll="True" Padding="{TemplateBinding Padding}" Focusable="False"
+ Style="{StaticResource TouchVerticalScrollViewer}">
+ <ItemsPresenter />
+ </touch:TouchScrollViewer>
+ </Border>
+ </ControlTemplate>
+ </Setter.Value>
+ </Setter>
+ </Style>
+ </ListBox.Style>
+ <ItemsControl.ItemsPanel>
+ <ItemsPanelTemplate>
+ <VirtualizingStackPanel IsVirtualizing="True" VirtualizationMode="Recycling" VirtualizingPanel.ScrollUnit="Pixel" />
+ </ItemsPanelTemplate>
+ </ItemsControl.ItemsPanel>
+ <ItemsControl.ItemTemplate>
+ <DataTemplate>
+ <Grid HorizontalAlignment="Stretch" Height="60">
+ <Border BorderThickness="1" Margin="-1 0 0 0" BorderBrush="{StaticResource TangoDividerBrush}">
+ <Grid HorizontalAlignment="Stretch" >
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="56"/>
+ <ColumnDefinition Width="1*"/>
+ <ColumnDefinition Width="Auto"/>
+ </Grid.ColumnDefinitions>
+ <touch:TouchIcon Margin="24 0 0 0" DockPanel.Dock="Left" Height="32" Grid.Column="0">
+ <touch:TouchIcon.Style>
+ <Style TargetType="touch:TouchIcon">
+ <Setter Property="Icon" Value="Information"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding MessageType}" Value="Info">
+ <Setter Property="Icon" Value="InformationOutline"></Setter>
+ <Setter Property="Foreground" Value="{StaticResource TangoPrimaryAccentBrush}"/>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding MessageType}" Value="Success">
+ <Setter Property="Icon" Value="Check"/>
+ <Setter Property="Foreground" Value="{StaticResource TangoSuccessBrush}"/>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding MessageType}" Value="Warning">
+ <Setter Property="Icon" Value="AlertCircleOutline"></Setter>
+ <Setter Property="Foreground" Value="{StaticResource TangoWarningBrush}"/>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding MessageType}" Value="Error">
+ <Setter Property="Icon" Value="AlertCircleOutline"></Setter>
+ <Setter Property="Foreground" Value="{StaticResource TangoErrorBrush}"/>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding MessageType}" Value="Critical">
+ <Setter Property="Icon" Value="Alert"></Setter>
+ <Setter Property="Foreground" Value="{StaticResource TangoErrorBrush}"/>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </touch:TouchIcon.Style>
+ </touch:TouchIcon>
+
+ <StackPanel Margin="15 3 10 5" VerticalAlignment="Center" Grid.Column="1">
+ <TextBlock Text="{Binding Message}" TextTrimming="CharacterEllipsis" TextWrapping="Wrap" Foreground="Black" VerticalAlignment="Top" ></TextBlock>
+ <TextBlock Margin="0 3 0 0" Foreground="{StaticResource TangoDarkForegroundBrush}" Text="{Binding ExpandedMessage}" FontSize="{StaticResource TangoSmallFontSize}" TextWrapping="NoWrap" VerticalAlignment="Center" HorizontalAlignment="Left" TextTrimming="CharacterEllipsis"/>
+ </StackPanel>
+
+ <Grid Grid.Column="2" Width="40" HorizontalAlignment="Right" VerticalAlignment="Stretch" Visibility="{Binding CanClose,Converter={StaticResource BooleanToVisibilityConverter}}">
+ <Grid Margin="0 0 20 0" HorizontalAlignment="Right" VerticalAlignment="Center" Width="14" Height="14">
+ <touch:TouchIcon Icon="Close" Foreground="Black" />
+ </Grid>
+ <touch:TouchButton Opacity="0" Background="Transparent" Style="{StaticResource TangoFlatButton}" Command="{Binding CloseCommand}" CommandParameter="{Binding}" Foreground="{StaticResource TangoPrimaryBackgroundBrush}" Padding="5" />
+ </Grid>
+
+ </Grid>
+ </Border>
+ </Grid>
+ </DataTemplate>
+ </ItemsControl.ItemTemplate>
+ </ListBox>
+ </Grid>
+ </touch:TouchExpander>
+ </Grid>
+ </Grid>
+ <Grid Visibility="{Binding IsDisplayJobOutline,Converter={StaticResource BooleanToVisibilityConverter}}" Background="{StaticResource TangoPrimaryBackgroundBrush}" Opacity="0.8"/>
+
+ <Grid Margin="0 -10 0 0" Visibility="{Binding IsDisplayJobOutline,Converter={StaticResource BooleanToVisibilityConverter}}">
+ <Grid>
+ <touch:TouchScrollViewer BorderThickness="0" Padding="10" Margin="0 0 0 100">
+ <locaControls:JobOutlineControl IsHitTestVisible="False" BorderThickness="0" Margin="20" DataContext="{Binding JobOutlineTicket}" HorizontalAlignment="Left" />
+ </touch:TouchScrollViewer>
+ </Grid>
+
+ <touch:TouchButton Background="{StaticResource TangoPrimaryBackgroundBrush}" VerticalAlignment="Bottom" Margin="0 100 0 0" Command="{Binding HideJobOutlineCommand}" Style="{StaticResource TangoLinkButton}" Height="60" FontSize="{StaticResource TangoTitleFontSize}">
+ Hide Job Outline
+ </touch:TouchButton>
+ </Grid>
+ </Grid>
+</UserControl>
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MachineStatusView.xaml.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MachineStatusView.xaml.cs
new file mode 100644
index 000000000..e49e062b7
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MachineStatusView.xaml.cs
@@ -0,0 +1,71 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using Tango.Core.EventArguments;
+using Tango.PPC.UI.ViewModels;
+
+namespace Tango.PPC.UI.Views
+{
+ /// <summary>
+ /// Interaction logic for MachineStatusView.xaml
+ /// </summary>
+ public partial class MachineStatusView : UserControl
+ {
+ private MachineStatusViewVM _vm;
+ private System.Timers.Timer _timer;
+
+ public MachineStatusView()
+ {
+ InitializeComponent();
+
+ techPressElement.RegisterForPreviewMouseOrTouchDown(OnMouseOrTouchDown);
+ techPressElement.RegisterForPreviewMouseOrTouchUp(OnMouseOrTouchUp);
+ _timer = new System.Timers.Timer();
+ _timer.Interval = TimeSpan.FromSeconds(10).TotalMilliseconds;
+ _timer.Elapsed += _timer_Elapsed;
+
+ Loaded += (_, __) => _vm = DataContext as MachineStatusViewVM;
+ }
+
+ private void _timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
+ {
+ _timer.Stop();
+
+ Dispatcher.BeginInvoke(new Action(() =>
+ {
+ _vm.ToggleTechnicianMode();
+ }));
+ }
+
+ private void OnMouseOrTouchDown(object sender, MouseOrTouchEventArgs e)
+ {
+ _timer.Start();
+ }
+
+ private void OnMouseOrTouchUp(object sender, MouseOrTouchEventArgs e)
+ {
+ _timer.Stop();
+ }
+
+ private void NavigationSTLinks_PreviewTouchDown(object sender, TouchEventArgs e)
+ {
+ e.Handled = true;
+ }
+
+ private void NavigationSTLinks_PreviewMouseDown(object sender, MouseButtonEventArgs e)
+ {
+ e.Handled = true;
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MainEurekaView.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MainEurekaView.xaml
new file mode 100644
index 000000000..1646cf6dd
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MainEurekaView.xaml
@@ -0,0 +1,51 @@
+<UserControl x:Class="Tango.PPC.UI.Views.MainEurekaView"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:controls="clr-namespace:Tango.SharedUI.Controls;assembly=Tango.SharedUI"
+ xmlns:commonControls="clr-namespace:Tango.PPC.Common.Controls;assembly=Tango.PPC.Common"
+ xmlns:vm="clr-namespace:Tango.PPC.UI.ViewModels"
+ xmlns:global="clr-namespace:Tango.PPC.UI"
+ xmlns:operations="clr-namespace:Tango.Integration.Operation;assembly=Tango.Integration"
+ xmlns:local="clr-namespace:Tango.PPC.UI.Views"
+ xmlns:notifications="clr-namespace:Tango.PPC.UI.Notifications"
+ xmlns:touch="clr-namespace:Tango.Touch.Controls;assembly=Tango.Touch"
+ xmlns:components="clr-namespace:Tango.Touch.Components;assembly=Tango.Touch"
+ xmlns:localConverters="clr-namespace:Tango.PPC.UI.Converters"
+ xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
+ mc:Ignorable="d"
+ d:DesignHeight="1280" d:DesignWidth="800" d:DataContext="{d:DesignInstance Type=vm:MainViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.MainViewVM}">
+
+ <UserControl.Resources>
+ <localConverters:ItemBaseConverter x:Key="ItemBaseConverter" />
+ </UserControl.Resources>
+
+ <Grid Background="Transparent">
+ <i:Interaction.Triggers>
+ <i:EventTrigger EventName="PreviewMouseUp">
+ <i:InvokeCommandAction Command="{Binding ScreenSaverExitCommand}" />
+ </i:EventTrigger>
+ </i:Interaction.Triggers>
+
+ <Grid>
+ <touch:TouchPanelEurekaNoKeyboard>
+
+ <controls:NavigationControl TransitionAlwaysFades="True" KeepElementsAttached="False" UseDefferedRendering="True" TransitionType="Zoom" x:Name="NavigationControl" x:FieldModifier="public">
+ <local:LoadingView></local:LoadingView>
+ <local:LoadingErrorView></local:LoadingErrorView>
+ <local:NoPermissionsView></local:NoPermissionsView>
+ <local:LoginView></local:LoginView>
+ <local:LayoutEurekaView controls:NavigationControl.NavigationName="LayoutView"></local:LayoutEurekaView>
+ <local:ExternalBridgeView></local:ExternalBridgeView>
+ <local:MachineSetupView></local:MachineSetupView>
+ <local:MachineUpdateView></local:MachineUpdateView>
+ <local:RestartingSystemView></local:RestartingSystemView>
+ <local:EmergencyView></local:EmergencyView>
+ <local:RestartingView></local:RestartingView>
+ </controls:NavigationControl>
+
+ </touch:TouchPanelEurekaNoKeyboard>
+ </Grid>
+ </Grid>
+</UserControl>
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MainEurekaView.xaml.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MainEurekaView.xaml.cs
new file mode 100644
index 000000000..802f69186
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MainEurekaView.xaml.cs
@@ -0,0 +1,38 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using Tango.PPC.UI.ViewsContracts;
+using Tango.SharedUI.Controls;
+
+namespace Tango.PPC.UI.Views
+{
+ /// <summary>
+ /// Interaction logic for MainView.xaml
+ /// </summary>
+ public partial class MainEurekaView : UserControl, IMainView
+ {
+ public static MainEurekaView Instance { get; private set; }
+
+ public MainEurekaView()
+ {
+ InitializeComponent();
+ Instance = this;
+ }
+
+ public NavigationControl GetNavigationControl()
+ {
+ return NavigationControl;
+ }
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MainView.xaml.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MainView.xaml.cs
index cd7562d04..9c796529a 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MainView.xaml.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MainView.xaml.cs
@@ -12,13 +12,15 @@ using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
+using Tango.PPC.UI.ViewsContracts;
+using Tango.SharedUI.Controls;
namespace Tango.PPC.UI.Views
{
/// <summary>
/// Interaction logic for MainView.xaml
/// </summary>
- public partial class MainView : UserControl
+ public partial class MainView : UserControl, IMainView
{
public static MainView Instance { get; private set; }
@@ -27,5 +29,10 @@ namespace Tango.PPC.UI.Views
InitializeComponent();
Instance = this;
}
+
+ public NavigationControl GetNavigationControl()
+ {
+ return NavigationControl;
+ }
}
}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/PowerOffView.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/PowerOffView.xaml
index 22952a827..1e864c7e3 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/PowerOffView.xaml
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/PowerOffView.xaml
@@ -11,7 +11,14 @@
d:DesignHeight="1280" d:DesignWidth="800" Background="{StaticResource TangoPrimaryBackgroundBrush}" d:DataContext="{d:DesignInstance Type=vm:PowerOffViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.PowerOffViewVM}">
<Grid>
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
- <touch:TouchGifAnimation Source="/Images/power_off_2.gif" EnableAnimation="{Binding IsVisible}" HorizontalAlignment="Center" />
+ <TextBlock FontSize="{StaticResource TangoTitleFontSize}" HorizontalAlignment="Center" Margin="0 50 0 0" Text="{Binding Status.Message}" TextTrimming="CharacterEllipsis"/>
+
+ <Grid Margin="0 30 0 0">
+ <touch:TouchGifAnimation Source="/Images/power_off_2.gif" EnableAnimation="{Binding IsVisible}" HorizontalAlignment="Center" />
+ <TextBlock FontSize="{StaticResource TangoHeaderFontSize}" FontWeight="DemiBold" HorizontalAlignment="Center" Margin="0 50 0 0">
+ <Run Text="{Binding Status.ProgressPercentage, TargetNullValue=0, StringFormat=0}"/>%
+ </TextBlock>
+ </Grid>
<TextBlock HorizontalAlignment="Center" Margin="0 60 0 0" FontSize="{StaticResource TangoHeaderFontSize}">Machine is turning Off</TextBlock>
<TextBlock HorizontalAlignment="Center" Margin="0 20 0 0" FontSize="{StaticResource TangoTitleFontSize}" Foreground="{StaticResource TangoGrayTextBrush}">Do not unplug machine while turning off</TextBlock>
<touch:TouchButton Command="{Binding AbortCommand}" Style="{StaticResource TangoHollowButton}" Margin="0 100 0 0" HorizontalAlignment="Center" Width="200" Height="50">ABORT</touch:TouchButton>
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewsContracts/ILayoutView.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewsContracts/ILayoutView.cs
index 72b981193..468d3275f 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewsContracts/ILayoutView.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewsContracts/ILayoutView.cs
@@ -4,6 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.PPC.Common;
+using Tango.SharedUI.Controls;
namespace Tango.PPC.UI.ViewsContracts
{
@@ -13,6 +14,6 @@ namespace Tango.PPC.UI.ViewsContracts
/// <seealso cref="Tango.PPC.Common.IPPCView" />
public interface ILayoutView : IPPCView
{
-
+ NavigationControl GetNavigationControl();
}
}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewsContracts/IMainView.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewsContracts/IMainView.cs
new file mode 100644
index 000000000..2e790b171
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewsContracts/IMainView.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.PPC.Common;
+using Tango.SharedUI.Controls;
+
+namespace Tango.PPC.UI.ViewsContracts
+{
+ public interface IMainView : IPPCView
+ {
+ NavigationControl GetNavigationControl();
+ }
+}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/packages.config b/Software/Visual_Studio/PPC/Tango.PPC.UI/packages.config
index ec7ec1e3a..9e3e48198 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/packages.config
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/packages.config
@@ -11,4 +11,5 @@
<package id="System.Data.SQLite.Core" version="1.0.108.0" targetFramework="net46" />
<package id="System.Data.SQLite.EF6" version="1.0.108.0" targetFramework="net46" />
<package id="System.Data.SQLite.Linq" version="1.0.108.0" targetFramework="net46" />
+ <package id="WPFMediaKit" version="2.2.0" targetFramework="net461" />
</packages> \ No newline at end of file
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Updater/MainWindow.xaml.cs b/Software/Visual_Studio/PPC/Tango.PPC.Updater/MainWindow.xaml.cs
index 8f521c85a..01f96c619 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Updater/MainWindow.xaml.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Updater/MainWindow.xaml.cs
@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
+using System.Runtime.InteropServices;
using System.Security.Principal;
using System.Text;
using System.Threading;
@@ -24,13 +25,23 @@ namespace Tango.PPC.Updater
/// </summary>
public partial class MainWindow : Window
{
+ [DllImport("user32.dll")]
+ private static extern int GetSystemMetrics(int nIndex);
+
private String _sourceFolder = AppDomain.CurrentDomain.BaseDirectory;
private String _msProcessName = "Tango.PPC.UI";
private String _appPath;
private bool EMULATE_EXCEPTION = false;
+ private bool _isEureka;
public MainWindow()
{
+
+
+#if Eureka
+ _isEureka = true;
+#endif
+
//Launch debugger..
#if DEBUG
if (!Debugger.IsAttached)
@@ -44,7 +55,7 @@ namespace Tango.PPC.Updater
WindowStyle = WindowStyle.None;
ResizeMode = ResizeMode.NoResize;
WindowStartupLocation = WindowStartupLocation.Manual;
- Topmost = true; // sure?
+ Topmost = !_isEureka; // sure?
var screens = System.Windows.Forms.Screen.AllScreens;
@@ -64,6 +75,34 @@ namespace Tango.PPC.Updater
Left = 0;
}
+ if (_isEureka)
+ {
+ bool hasTouch = IsTouchEnabled();
+
+ if (!hasTouch)
+ {
+ WindowStyle = WindowStyle.SingleBorderWindow;
+ ResizeMode = ResizeMode.CanResize;
+ Width = 1280;
+ Height = 720;
+ WindowStartupLocation = WindowStartupLocation.CenterScreen;
+ WindowState = WindowState.Normal;
+ Topmost = false; // sure?
+ }
+ else
+ {
+ WindowState = WindowState.Normal;
+ WindowStyle = WindowStyle.None;
+ ResizeMode = ResizeMode.NoResize;
+ Left = screens.Length == 2 ? screens[0].Bounds.Width : 0;
+ Top = 0;
+ Width = 1920;
+ Height = 1080;
+ WindowStartupLocation = WindowStartupLocation.Manual;
+ Topmost = false; // sure?
+ }
+ }
+
ContentRendered += MainWindow_ContentRendered;
btnRetry.Click += BtnRetry_Click;
@@ -344,5 +383,27 @@ namespace Tango.PPC.Updater
{
Update();
}
+
+ /// <summary>
+ /// Determines whether the current machine is touch enabled.
+ /// </summary>
+ public static bool IsTouchEnabled()
+ {
+ const int MAXTOUCHES_INDEX = 95;
+ int maxTouches = GetSystemMetrics(MAXTOUCHES_INDEX);
+
+ if (maxTouches > 0)
+ {
+ return true;
+ }
+
+ foreach (TabletDevice tabletDevice in Tablet.TabletDevices)
+ {
+ if (tabletDevice.Type == TabletDeviceType.Touch && !String.IsNullOrWhiteSpace(tabletDevice.Name))
+ return true;
+ }
+
+ return false;
+ }
}
}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Updater/Tango.PPC.Updater.csproj b/Software/Visual_Studio/PPC/Tango.PPC.Updater/Tango.PPC.Updater.csproj
index 8f8430102..f240ddac0 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Updater/Tango.PPC.Updater.csproj
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Updater/Tango.PPC.Updater.csproj
@@ -33,6 +33,15 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Eureka|AnyCPU' ">
+ <PlatformTarget>AnyCPU</PlatformTarget>
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>..\..\Build\PPC\Eureka\</OutputPath>
+ <DefineConstants>TRACE;Eureka</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
<PropertyGroup>
<ApplicationManifest>app.manifest</ApplicationManifest>
</PropertyGroup>
diff --git a/Software/Visual_Studio/SideChains/RealTimeGraphX-master/RealTimeGraphX.WPF/Themes/Generic.xaml b/Software/Visual_Studio/SideChains/RealTimeGraphX-master/RealTimeGraphX.WPF/Themes/Generic.xaml
index 64145bcfa..88d22f9e2 100644
--- a/Software/Visual_Studio/SideChains/RealTimeGraphX-master/RealTimeGraphX.WPF/Themes/Generic.xaml
+++ b/Software/Visual_Studio/SideChains/RealTimeGraphX-master/RealTimeGraphX.WPF/Themes/Generic.xaml
@@ -85,7 +85,7 @@
</Rectangle>
<TextBlock VerticalAlignment="Bottom" Text="{Binding DisplayText}" RenderTransformOrigin="0.5,0.5">
<TextBlock.RenderTransform>
- <RotateTransform Angle="-30" />
+ <RotateTransform Angle="{Binding RelativeSource={RelativeSource AncestorType=local:WpfGraphAxisControl}, Path=AxisLabelAngle}" />
</TextBlock.RenderTransform>
</TextBlock>
</DockPanel>
diff --git a/Software/Visual_Studio/SideChains/RealTimeGraphX-master/RealTimeGraphX.WPF/WpfGraphAxisControl.cs b/Software/Visual_Studio/SideChains/RealTimeGraphX-master/RealTimeGraphX.WPF/WpfGraphAxisControl.cs
index aa738b203..e445d29b9 100644
--- a/Software/Visual_Studio/SideChains/RealTimeGraphX-master/RealTimeGraphX.WPF/WpfGraphAxisControl.cs
+++ b/Software/Visual_Studio/SideChains/RealTimeGraphX-master/RealTimeGraphX.WPF/WpfGraphAxisControl.cs
@@ -46,6 +46,20 @@ namespace RealTimeGraphX.WPF
public static readonly DependencyProperty OrientationProperty =
DependencyProperty.Register("Orientation", typeof(Orientation), typeof(WpfGraphAxisControl), new PropertyMetadata(Orientation.Vertical));
+
+
+ public double AxisLabelAngle
+ {
+ get { return (double)GetValue(AxisLabelAngleProperty); }
+ set { SetValue(AxisLabelAngleProperty, value); }
+ }
+
+ // Using a DependencyProperty as the backing store for AxisLabelAngle. This enables animation, styling, binding, etc...
+ public static readonly DependencyProperty AxisLabelAngleProperty =
+ DependencyProperty.Register("AxisLabelAngle", typeof(double), typeof(WpfGraphAxisControl), new PropertyMetadata(-30.0));
+
+
+
/// <summary>
/// Gets or sets the tick item template.
/// </summary>
diff --git a/Software/Visual_Studio/Tango.BL/Builders/JobsCollectionBuilder.cs b/Software/Visual_Studio/Tango.BL/Builders/JobsCollectionBuilder.cs
index c155e7020..a2c9c3678 100644
--- a/Software/Visual_Studio/Tango.BL/Builders/JobsCollectionBuilder.cs
+++ b/Software/Visual_Studio/Tango.BL/Builders/JobsCollectionBuilder.cs
@@ -63,5 +63,16 @@ namespace Tango.BL.Builders
}
});
}
+
+ public virtual JobsCollectionBuilder WithRmls()
+ {
+ return AddStep(4, () =>
+ {
+ foreach (var job in Entities.ToList())
+ {
+ Context.Rmls.Where(x => x.Guid == job.RmlGuid).ToList();
+ }
+ });
+ }
}
}
diff --git a/Software/Visual_Studio/Tango.BL/DTO/HardwareVersionDTOBase.cs b/Software/Visual_Studio/Tango.BL/DTO/HardwareVersionDTOBase.cs
index 84f75210e..6ef629488 100644
--- a/Software/Visual_Studio/Tango.BL/DTO/HardwareVersionDTOBase.cs
+++ b/Software/Visual_Studio/Tango.BL/DTO/HardwareVersionDTOBase.cs
@@ -37,5 +37,21 @@ namespace Tango.BL.DTO
get; set;
}
+ /// <summary>
+ /// machine type
+ /// </summary>
+ public Int32 MachineType
+ {
+ get; set;
+ }
+
+ /// <summary>
+ /// user name
+ /// </summary>
+ public String UserName
+ {
+ get; set;
+ }
+
}
}
diff --git a/Software/Visual_Studio/Tango.BL/DTO/JobRunDTOBase.cs b/Software/Visual_Studio/Tango.BL/DTO/JobRunDTOBase.cs
index 3f3efb015..45aa02514 100644
--- a/Software/Visual_Studio/Tango.BL/DTO/JobRunDTOBase.cs
+++ b/Software/Visual_Studio/Tango.BL/DTO/JobRunDTOBase.cs
@@ -333,5 +333,13 @@ namespace Tango.BL.DTO
get; set;
}
+ /// <summary>
+ /// machine type
+ /// </summary>
+ public Int32 MachineType
+ {
+ get; set;
+ }
+
}
}
diff --git a/Software/Visual_Studio/Tango.BL/DTO/MachineDTOBase.cs b/Software/Visual_Studio/Tango.BL/DTO/MachineDTOBase.cs
index f6a97c88e..48974eb96 100644
--- a/Software/Visual_Studio/Tango.BL/DTO/MachineDTOBase.cs
+++ b/Software/Visual_Studio/Tango.BL/DTO/MachineDTOBase.cs
@@ -301,5 +301,13 @@ namespace Tango.BL.DTO
get; set;
}
+ /// <summary>
+ /// machine type
+ /// </summary>
+ public Int32 MachineType
+ {
+ get; set;
+ }
+
}
}
diff --git a/Software/Visual_Studio/Tango.BL/DTO/MachinePrototypeDTOBase.cs b/Software/Visual_Studio/Tango.BL/DTO/MachinePrototypeDTOBase.cs
index 1629bbbd0..ac97ccc50 100644
--- a/Software/Visual_Studio/Tango.BL/DTO/MachinePrototypeDTOBase.cs
+++ b/Software/Visual_Studio/Tango.BL/DTO/MachinePrototypeDTOBase.cs
@@ -22,6 +22,14 @@ namespace Tango.BL.DTO
{
/// <summary>
+ /// machine type
+ /// </summary>
+ public Int32 MachineType
+ {
+ get; set;
+ }
+
+ /// <summary>
/// name
/// </summary>
public String Name
diff --git a/Software/Visual_Studio/Tango.BL/DTO/ProcessParametersTableDTOBase.cs b/Software/Visual_Studio/Tango.BL/DTO/ProcessParametersTableDTOBase.cs
index c9a8ef967..9ee86e42a 100644
--- a/Software/Visual_Studio/Tango.BL/DTO/ProcessParametersTableDTOBase.cs
+++ b/Software/Visual_Studio/Tango.BL/DTO/ProcessParametersTableDTOBase.cs
@@ -309,5 +309,245 @@ namespace Tango.BL.DTO
get; set;
}
+ /// <summary>
+ /// e winder1 tension
+ /// </summary>
+ public Double EWinder1Tension
+ {
+ get; set;
+ }
+
+ /// <summary>
+ /// e winder2 tension
+ /// </summary>
+ public Double EWinder2Tension
+ {
+ get; set;
+ }
+
+ /// <summary>
+ /// e winder3 tension
+ /// </summary>
+ public Double EWinder3Tension
+ {
+ get; set;
+ }
+
+ /// <summary>
+ /// e winder4 tension
+ /// </summary>
+ public Double EWinder4Tension
+ {
+ get; set;
+ }
+
+ /// <summary>
+ /// e btsr1 feeding tension
+ /// </summary>
+ public Double EBtsr1FeedingTension
+ {
+ get; set;
+ }
+
+ /// <summary>
+ /// e btsr2 feeding tension
+ /// </summary>
+ public Double EBtsr2FeedingTension
+ {
+ get; set;
+ }
+
+ /// <summary>
+ /// e btsr3 feeding tension
+ /// </summary>
+ public Double EBtsr3FeedingTension
+ {
+ get; set;
+ }
+
+ /// <summary>
+ /// e btsr4 feeding tension
+ /// </summary>
+ public Double EBtsr4FeedingTension
+ {
+ get; set;
+ }
+
+ /// <summary>
+ /// e mixer temp
+ /// </summary>
+ public Double EMixerTemp
+ {
+ get; set;
+ }
+
+ /// <summary>
+ /// e head zone1 temp
+ /// </summary>
+ public Double EHeadZone1Temp
+ {
+ get; set;
+ }
+
+ /// <summary>
+ /// e head zone2 temp
+ /// </summary>
+ public Double EHeadZone2Temp
+ {
+ get; set;
+ }
+
+ /// <summary>
+ /// e head zone3 temp
+ /// </summary>
+ public Double EHeadZone3Temp
+ {
+ get; set;
+ }
+
+ /// <summary>
+ /// e dryer zone1 temp
+ /// </summary>
+ public Double EDryerZone1Temp
+ {
+ get; set;
+ }
+
+ /// <summary>
+ /// e dryer zone2 temp
+ /// </summary>
+ public Double EDryerZone2Temp
+ {
+ get; set;
+ }
+
+ /// <summary>
+ /// e dryer zone3 temp
+ /// </summary>
+ public Double EDryerZone3Temp
+ {
+ get; set;
+ }
+
+ /// <summary>
+ /// e lubricant temp
+ /// </summary>
+ public Double ELubricantTemp
+ {
+ get; set;
+ }
+
+ /// <summary>
+ /// e dryer incoming air flow
+ /// </summary>
+ public Double EDryerIncomingAirFlow
+ {
+ get; set;
+ }
+
+ /// <summary>
+ /// e dryer outgoing air flow
+ /// </summary>
+ public Double EDryerOutgoingAirFlow
+ {
+ get; set;
+ }
+
+ /// <summary>
+ /// e tunnel incoming air flow
+ /// </summary>
+ public Double ETunnelIncomingAirFlow
+ {
+ get; set;
+ }
+
+ /// <summary>
+ /// e tunnel outgoing air flow
+ /// </summary>
+ public Double ETunnelOutgoingAirFlow
+ {
+ get; set;
+ }
+
+ /// <summary>
+ /// e waste air flow
+ /// </summary>
+ public Double EWasteAirFlow
+ {
+ get; set;
+ }
+
+ /// <summary>
+ /// e waste prepare time
+ /// </summary>
+ public Double EWastePrepareTime
+ {
+ get; set;
+ }
+
+ /// <summary>
+ /// e pump temp
+ /// </summary>
+ public Double EPumpTemp
+ {
+ get; set;
+ }
+
+ /// <summary>
+ /// e pressure build up
+ /// </summary>
+ public Double EPressureBuildUp
+ {
+ get; set;
+ }
+
+ /// <summary>
+ /// e spare1
+ /// </summary>
+ public Double ESpare1
+ {
+ get; set;
+ }
+
+ /// <summary>
+ /// e spare2
+ /// </summary>
+ public Double ESpare2
+ {
+ get; set;
+ }
+
+ /// <summary>
+ /// e spare3
+ /// </summary>
+ public Double ESpare3
+ {
+ get; set;
+ }
+
+ /// <summary>
+ /// e spare4
+ /// </summary>
+ public Double ESpare4
+ {
+ get; set;
+ }
+
+ /// <summary>
+ /// e spare5
+ /// </summary>
+ public Double ESpare5
+ {
+ get; set;
+ }
+
+ /// <summary>
+ /// e tunnel temp
+ /// </summary>
+ public Double ETunnelTemp
+ {
+ get; set;
+ }
+
}
}
diff --git a/Software/Visual_Studio/Tango.BL/Entities/HardwareVersion.cs b/Software/Visual_Studio/Tango.BL/Entities/HardwareVersion.cs
index bc65c33ce..1688e87fc 100644
--- a/Software/Visual_Studio/Tango.BL/Entities/HardwareVersion.cs
+++ b/Software/Visual_Studio/Tango.BL/Entities/HardwareVersion.cs
@@ -5,12 +5,27 @@ using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using Tango.BL.Enumerations;
using Tango.BL.Serialization;
namespace Tango.BL.Entities
{
public partial class HardwareVersion : HardwareVersionBase
{
+ [NotMapped]
+ [JsonIgnore]
+ public MachineTypes ForMachineType
+ {
+ get
+ {
+ return (MachineTypes)MachineType;
+ }
+ set
+ {
+ MachineType = value.ToInt32();
+ }
+ }
+
public override HardwareVersion Clone()
{
var cloned = base.Clone();
@@ -99,7 +114,7 @@ namespace Tango.BL.Entities
[JsonIgnore]
public String FullName
{
- get { return $"{Name} v{Version}"; }
+ get { return $"{Name} v{Version} {ForMachineType}"; }
}
/// <summary>
diff --git a/Software/Visual_Studio/Tango.BL/Entities/HardwareVersionBase.cs b/Software/Visual_Studio/Tango.BL/Entities/HardwareVersionBase.cs
index 3d7d555dc..e30903baa 100644
--- a/Software/Visual_Studio/Tango.BL/Entities/HardwareVersionBase.cs
+++ b/Software/Visual_Studio/Tango.BL/Entities/HardwareVersionBase.cs
@@ -31,6 +31,10 @@ namespace Tango.BL.Entities
public event EventHandler<String> NameChanged;
+ public event EventHandler<Int32> MachineTypeChanged;
+
+ public event EventHandler<String> UserNameChanged;
+
public event EventHandler<SynchronizedObservableCollection<Configuration>> ConfigurationsChanged;
public event EventHandler<SynchronizedObservableCollection<HardwareBlower>> HardwareBlowersChanged;
@@ -101,6 +105,60 @@ namespace Tango.BL.Entities
}
}
+ protected Int32 _machinetype;
+
+ /// <summary>
+ /// Gets or sets the hardwareversionbase machine type.
+ /// </summary>
+
+ [Column("MACHINE_TYPE")]
+
+ public Int32 MachineType
+ {
+ get
+ {
+ return _machinetype;
+ }
+
+ set
+ {
+ if (_machinetype != value)
+ {
+ _machinetype = value;
+
+ OnMachineTypeChanged(value);
+
+ }
+ }
+ }
+
+ protected String _username;
+
+ /// <summary>
+ /// Gets or sets the hardwareversionbase user name.
+ /// </summary>
+
+ [Column("USER_NAME")]
+
+ public String UserName
+ {
+ get
+ {
+ return _username;
+ }
+
+ set
+ {
+ if (_username != value)
+ {
+ _username = value;
+
+ OnUserNameChanged(value);
+
+ }
+ }
+ }
+
protected SynchronizedObservableCollection<Configuration> _configurations;
/// <summary>
@@ -320,6 +378,24 @@ namespace Tango.BL.Entities
}
/// <summary>
+ /// Called when the MachineType has changed.
+ /// </summary>
+ protected virtual void OnMachineTypeChanged(Int32 machinetype)
+ {
+ MachineTypeChanged?.Invoke(this, machinetype);
+ RaisePropertyChanged(nameof(MachineType));
+ }
+
+ /// <summary>
+ /// Called when the UserName has changed.
+ /// </summary>
+ protected virtual void OnUserNameChanged(String username)
+ {
+ UserNameChanged?.Invoke(this, username);
+ RaisePropertyChanged(nameof(UserName));
+ }
+
+ /// <summary>
/// Called when the Configurations has changed.
/// </summary>
protected virtual void OnConfigurationsChanged(SynchronizedObservableCollection<Configuration> configurations)
diff --git a/Software/Visual_Studio/Tango.BL/Entities/Job.cs b/Software/Visual_Studio/Tango.BL/Entities/Job.cs
index c6a6ea226..29f7e1054 100644
--- a/Software/Visual_Studio/Tango.BL/Entities/Job.cs
+++ b/Software/Visual_Studio/Tango.BL/Entities/Job.cs
@@ -93,6 +93,84 @@ namespace Tango.BL.Entities
}
}
+ [NotMapped]
+ [JsonIgnore]
+ public double LengthIncludingNumberOfUnitsAndSpools
+ {
+ get
+ {
+ if (Spools >= 4)
+ {
+ return LengthIncludingNumberOfUnits * Spools;
+ }
+
+ return LengthIncludingNumberOfUnits;
+ }
+ }
+
+ [NotMapped]
+ [JsonIgnore]
+ public double WeightIncludingNumberOfUnits
+ {
+ get
+ {
+ if (Rml == null)
+ return 0;
+
+ var gramPerlength = Rml.GetGramPer1000mLength;
+ var weight = (LengthIncludingNumberOfUnits * gramPerlength) / (1000 );//(g)
+ return weight;
+ }
+ }
+
+ [NotMapped]
+ [JsonIgnore]
+ public double WeightIncludingNumberOfUnitsAndSpools
+ {
+ get
+ {
+ if (Spools >= 4)
+ {
+ return WeightIncludingNumberOfUnits * Spools;
+ }
+
+ return WeightIncludingNumberOfUnits;
+ }
+ }
+
+ [NotMapped]
+ [JsonIgnore]
+ public Int32 NumberOfUnitsMultipliedBySpools
+ {
+ get
+ {
+ if (Spools >= 4)
+ {
+ return NumberOfUnits * Spools;
+ }
+ return NumberOfUnits;
+ }
+ }
+
+ [NotMapped]
+ [JsonIgnore]
+ public double WeightNumberOfUnits
+ {
+ get
+ {
+ _lastLength = GetLength();
+ var l = _lastLength * Math.Max(NumberOfUnits, 1);
+
+ if (EnableInterSegment && NumberOfUnits > 1)
+ {
+ l += ((NumberOfUnits - 1) * InterSegmentLength);
+ }
+
+ return l;
+ }
+ }
+
+
/// <summary>
/// Gets or sets the job <see cref="Status"/> property as <see cref="JobStatus"/> enum instead of int.
/// </summary>
@@ -141,6 +219,13 @@ namespace Tango.BL.Entities
}
}
+ [NotMapped]
+ [JsonIgnore]
+ public int Spools
+ {
+ get { return 4; }//headunits?
+ }
+
/// <summary>
/// Gets or sets the effective segments.
/// </summary>
@@ -318,6 +403,17 @@ namespace Tango.BL.Entities
set { EditingState = value.ToInt32(); RaisePropertyChangedAuto(); }
}
+ [NotMapped]
+ [JsonIgnore]
+ public double GramPerLength { get; set;}
+
+ [NotMapped]
+ [JsonIgnore]
+ public String ThreadName
+ {
+ get { return Rml == null ? "" : Rml.DisplayName;}
+ }
+
#endregion
#region Unmapped Fine Tuning
@@ -381,6 +477,18 @@ namespace Tango.BL.Entities
}
}
+ protected override void OnRmlChanged(Rml rml)
+ {
+ base.OnRmlChanged(rml);
+ if(rml != null)
+ {
+ GramPerLength = Rml.GetGramPer1000mLength;
+ }
+ else
+ GramPerLength = 0;
+ RaisePropertyChanged(nameof(ThreadName));
+ }
+
#endregion
#region Override Methods
@@ -527,14 +635,17 @@ namespace Tango.BL.Entities
}
return length;
- //if (Segments != null)
- //{
- // return Segments.Sum(x => x.LengthWithFactor) + ((EnableInterSegment && IsAllSegmentsPerSpool) ? (InterSegmentLength * (Segments.Count > 0 ? Segments.Count - 1 : Segments.Count)) : 0);
- //}
- //else
- //{
- // return 0;
- //}
+ }
+
+ private double GetWeigth()
+ {
+ if(Rml == null)
+ return 0;
+
+ double length = GetLength();
+
+ var weight = (length * GramPerLength) / (1000 );//length in m, return value in g
+ return weight;
}
#endregion
diff --git a/Software/Visual_Studio/Tango.BL/Entities/JobRunBase.cs b/Software/Visual_Studio/Tango.BL/Entities/JobRunBase.cs
index da3ff6f5b..ddb33e7d2 100644
--- a/Software/Visual_Studio/Tango.BL/Entities/JobRunBase.cs
+++ b/Software/Visual_Studio/Tango.BL/Entities/JobRunBase.cs
@@ -95,6 +95,8 @@ namespace Tango.BL.Entities
public event EventHandler<String> FineTuningStringChanged;
+ public event EventHandler<Int32> MachineTypeChanged;
+
protected String _machineguid;
/// <summary>
@@ -1140,6 +1142,33 @@ namespace Tango.BL.Entities
}
}
+ protected Int32 _machinetype;
+
+ /// <summary>
+ /// Gets or sets the jobrunbase machine type.
+ /// </summary>
+
+ [Column("MACHINE_TYPE")]
+
+ public Int32 MachineType
+ {
+ get
+ {
+ return _machinetype;
+ }
+
+ set
+ {
+ if (_machinetype != value)
+ {
+ _machinetype = value;
+
+ OnMachineTypeChanged(value);
+
+ }
+ }
+ }
+
/// <summary>
/// Called when the JobName has changed.
/// </summary>
@@ -1447,6 +1476,15 @@ namespace Tango.BL.Entities
}
/// <summary>
+ /// Called when the MachineType has changed.
+ /// </summary>
+ protected virtual void OnMachineTypeChanged(Int32 machinetype)
+ {
+ MachineTypeChanged?.Invoke(this, machinetype);
+ RaisePropertyChanged(nameof(MachineType));
+ }
+
+ /// <summary>
/// Initializes a new instance of the <see cref="JobRunBase" /> class.
/// </summary>
public JobRunBase() : base()
diff --git a/Software/Visual_Studio/Tango.BL/Entities/Machine.cs b/Software/Visual_Studio/Tango.BL/Entities/Machine.cs
index b82738db8..01e17cfde 100644
--- a/Software/Visual_Studio/Tango.BL/Entities/Machine.cs
+++ b/Software/Visual_Studio/Tango.BL/Entities/Machine.cs
@@ -3,6 +3,7 @@ using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel.DataAnnotations.Schema;
+using System.Data.Entity;
using System.Linq;
using System.Reflection;
using System.Text;
@@ -90,6 +91,20 @@ namespace Tango.BL.Entities
}
}
+ [NotMapped]
+ [JsonIgnore]
+ public MachineTypes Type
+ {
+ get
+ {
+ return (MachineTypes)MachineType;
+ }
+ set
+ {
+ MachineType = value.ToInt32();
+ }
+ }
+
#endregion
protected override void RaisePropertyChanged(string propName)
@@ -162,5 +177,24 @@ namespace Tango.BL.Entities
{
}
+
+ public async Task<ObservableCollection<SpoolType>> GetSiteSpoolTypes(ObservablesContext db)
+ {
+ ObservableCollection<SpoolType> spoolTypes = new ObservableCollection<SpoolType>();
+
+ spoolTypes = (await db.SitesSpoolTypes.Where(x => x.SiteGuid == SiteGuid).Include(x => x.SpoolType).Select(x => x.SpoolType).ToListAsync()).OrderBy(x => x.LastUpdated).ToObservableCollection();
+
+ if (spoolTypes.Count == 0)
+ {
+ spoolTypes = new ObservableCollection<SpoolType>();
+ var standardSpool = await db.SpoolTypes.FirstOrDefaultAsync(x => x.Code == (int)BL.Enumerations.SpoolTypes.StandardSpool);
+ if (standardSpool != null)
+ {
+ spoolTypes.Add(standardSpool);
+ }
+ }
+
+ return spoolTypes;
+ }
}
}
diff --git a/Software/Visual_Studio/Tango.BL/Entities/MachineBase.cs b/Software/Visual_Studio/Tango.BL/Entities/MachineBase.cs
index b56e59174..dcd84d9eb 100644
--- a/Software/Visual_Studio/Tango.BL/Entities/MachineBase.cs
+++ b/Software/Visual_Studio/Tango.BL/Entities/MachineBase.cs
@@ -81,6 +81,8 @@ namespace Tango.BL.Entities
public event EventHandler<String> VersionTagChanged;
+ public event EventHandler<Int32> MachineTypeChanged;
+
public event EventHandler<SynchronizedObservableCollection<Cat>> CatsChanged;
public event EventHandler<SynchronizedObservableCollection<ColorProcessParameter>> ColorProcessParametersChanged;
@@ -1037,6 +1039,33 @@ namespace Tango.BL.Entities
}
}
+ protected Int32 _machinetype;
+
+ /// <summary>
+ /// Gets or sets the machinebase machine type.
+ /// </summary>
+
+ [Column("MACHINE_TYPE")]
+
+ public Int32 MachineType
+ {
+ get
+ {
+ return _machinetype;
+ }
+
+ set
+ {
+ if (_machinetype != value)
+ {
+ _machinetype = value;
+
+ OnMachineTypeChanged(value);
+
+ }
+ }
+ }
+
protected SynchronizedObservableCollection<Cat> _cats;
/// <summary>
@@ -1602,6 +1631,15 @@ namespace Tango.BL.Entities
}
/// <summary>
+ /// Called when the MachineType has changed.
+ /// </summary>
+ protected virtual void OnMachineTypeChanged(Int32 machinetype)
+ {
+ MachineTypeChanged?.Invoke(this, machinetype);
+ RaisePropertyChanged(nameof(MachineType));
+ }
+
+ /// <summary>
/// Called when the Cats has changed.
/// </summary>
protected virtual void OnCatsChanged(SynchronizedObservableCollection<Cat> cats)
diff --git a/Software/Visual_Studio/Tango.BL/Entities/MachinePrototype.cs b/Software/Visual_Studio/Tango.BL/Entities/MachinePrototype.cs
index a1dee5a5d..d93c80f8c 100644
--- a/Software/Visual_Studio/Tango.BL/Entities/MachinePrototype.cs
+++ b/Software/Visual_Studio/Tango.BL/Entities/MachinePrototype.cs
@@ -129,6 +129,7 @@ namespace Tango.BL.Entities
prototype.Name = name;
prototype.Description = description;
prototype.LastUpdated = DateTime.UtcNow;
+ prototype.MachineType = machine.MachineType;
prototype.SetPrototypeMachine(machine);
return prototype;
diff --git a/Software/Visual_Studio/Tango.BL/Entities/MachinePrototypeBase.cs b/Software/Visual_Studio/Tango.BL/Entities/MachinePrototypeBase.cs
index 2ecaad7e4..863496860 100644
--- a/Software/Visual_Studio/Tango.BL/Entities/MachinePrototypeBase.cs
+++ b/Software/Visual_Studio/Tango.BL/Entities/MachinePrototypeBase.cs
@@ -27,12 +27,41 @@ namespace Tango.BL.Entities
public abstract class MachinePrototypeBase : ObservableEntity<MachinePrototype>
{
+ public event EventHandler<Int32> MachineTypeChanged;
+
public event EventHandler<String> NameChanged;
public event EventHandler<String> DescriptionChanged;
public event EventHandler<String> PrototypeJsonChanged;
+ protected Int32 _machinetype;
+
+ /// <summary>
+ /// Gets or sets the machineprototypebase machine type.
+ /// </summary>
+
+ [Column("MACHINE_TYPE")]
+
+ public Int32 MachineType
+ {
+ get
+ {
+ return _machinetype;
+ }
+
+ set
+ {
+ if (_machinetype != value)
+ {
+ _machinetype = value;
+
+ OnMachineTypeChanged(value);
+
+ }
+ }
+ }
+
protected String _name;
/// <summary>
@@ -115,6 +144,15 @@ namespace Tango.BL.Entities
}
/// <summary>
+ /// Called when the MachineType has changed.
+ /// </summary>
+ protected virtual void OnMachineTypeChanged(Int32 machinetype)
+ {
+ MachineTypeChanged?.Invoke(this, machinetype);
+ RaisePropertyChanged(nameof(MachineType));
+ }
+
+ /// <summary>
/// Called when the Name has changed.
/// </summary>
protected virtual void OnNameChanged(String name)
diff --git a/Software/Visual_Studio/Tango.BL/Entities/MachineVersion.cs b/Software/Visual_Studio/Tango.BL/Entities/MachineVersion.cs
index 5832e8a74..694ee1f37 100644
--- a/Software/Visual_Studio/Tango.BL/Entities/MachineVersion.cs
+++ b/Software/Visual_Studio/Tango.BL/Entities/MachineVersion.cs
@@ -1,10 +1,13 @@
+using Newtonsoft.Json;
using System;
using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.BL.Builders;
+using Tango.BL.Enumerations;
using Tango.BL.Serialization;
namespace Tango.BL.Entities
@@ -18,5 +21,12 @@ namespace Tango.BL.Entities
{
}
+
+ [NotMapped]
+ [JsonIgnore]
+ public MachineTypes MachineType
+ {
+ get { return Version == 1 ? MachineTypes.TS1800 : MachineTypes.Eureka; }
+ }
}
}
diff --git a/Software/Visual_Studio/Tango.BL/Entities/ProcessParametersTable.cs b/Software/Visual_Studio/Tango.BL/Entities/ProcessParametersTable.cs
index 0a78dbc93..1dadd61c8 100644
--- a/Software/Visual_Studio/Tango.BL/Entities/ProcessParametersTable.cs
+++ b/Software/Visual_Studio/Tango.BL/Entities/ProcessParametersTable.cs
@@ -5,6 +5,7 @@ using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using Tango.BL.Enumerations;
using Tango.Core.ExtensionMethods;
namespace Tango.BL.Entities
@@ -13,6 +14,10 @@ namespace Tango.BL.Entities
{
public event EventHandler DyeingSpeedMinInkUptakeChanged;
+ [NotMapped]
+ [JsonIgnore]
+ public static MachineTypes DryerBufferMode { get; set; }
+
public const double DRYER_METERS_PER_CYCLE = 0.76;
public const double DRYER_TO_SPOOL_LENGTH_METERS = 0.9;
@@ -35,7 +40,17 @@ namespace Tango.BL.Entities
[JsonIgnore]
public double DryerBufferLengthMeters
{
- get { return (DryerBufferLength * DRYER_METERS_PER_CYCLE) + DRYER_TO_SPOOL_LENGTH_METERS; }
+ get
+ {
+ if (DryerBufferMode == MachineTypes.TS1800)
+ {
+ return (DryerBufferLength * DRYER_METERS_PER_CYCLE) + DRYER_TO_SPOOL_LENGTH_METERS;
+ }
+ else
+ {
+ return DryerBufferLength;
+ }
+ }
}
/// <summary>
diff --git a/Software/Visual_Studio/Tango.BL/Entities/ProcessParametersTableBase.cs b/Software/Visual_Studio/Tango.BL/Entities/ProcessParametersTableBase.cs
index 702674850..3fe1cacee 100644
--- a/Software/Visual_Studio/Tango.BL/Entities/ProcessParametersTableBase.cs
+++ b/Software/Visual_Studio/Tango.BL/Entities/ProcessParametersTableBase.cs
@@ -97,6 +97,66 @@ namespace Tango.BL.Entities
public event EventHandler<Double> BtsrThreadLengthOffsetChanged;
+ public event EventHandler<Double> EWinder1TensionChanged;
+
+ public event EventHandler<Double> EWinder2TensionChanged;
+
+ public event EventHandler<Double> EWinder3TensionChanged;
+
+ public event EventHandler<Double> EWinder4TensionChanged;
+
+ public event EventHandler<Double> EBtsr1FeedingTensionChanged;
+
+ public event EventHandler<Double> EBtsr2FeedingTensionChanged;
+
+ public event EventHandler<Double> EBtsr3FeedingTensionChanged;
+
+ public event EventHandler<Double> EBtsr4FeedingTensionChanged;
+
+ public event EventHandler<Double> EMixerTempChanged;
+
+ public event EventHandler<Double> EHeadZone1TempChanged;
+
+ public event EventHandler<Double> EHeadZone2TempChanged;
+
+ public event EventHandler<Double> EHeadZone3TempChanged;
+
+ public event EventHandler<Double> EDryerZone1TempChanged;
+
+ public event EventHandler<Double> EDryerZone2TempChanged;
+
+ public event EventHandler<Double> EDryerZone3TempChanged;
+
+ public event EventHandler<Double> ELubricantTempChanged;
+
+ public event EventHandler<Double> EDryerIncomingAirFlowChanged;
+
+ public event EventHandler<Double> EDryerOutgoingAirFlowChanged;
+
+ public event EventHandler<Double> ETunnelIncomingAirFlowChanged;
+
+ public event EventHandler<Double> ETunnelOutgoingAirFlowChanged;
+
+ public event EventHandler<Double> EWasteAirFlowChanged;
+
+ public event EventHandler<Double> EWastePrepareTimeChanged;
+
+ public event EventHandler<Double> EPumpTempChanged;
+
+ public event EventHandler<Double> EPressureBuildUpChanged;
+
+ public event EventHandler<Double> ESpare1Changed;
+
+ public event EventHandler<Double> ESpare2Changed;
+
+ public event EventHandler<Double> ESpare3Changed;
+
+ public event EventHandler<Double> ESpare4Changed;
+
+ public event EventHandler<Double> ESpare5Changed;
+
+ public event EventHandler<Double> ETunnelTempChanged;
+
public event EventHandler<ProcessParametersTablesGroup> ProcessParametersTablesGroupChanged;
protected String _name;
@@ -1206,6 +1266,936 @@ namespace Tango.BL.Entities
}
}
+ protected Double _ewinder1tension;
+
+ /// <summary>
+ /// Gets or sets the processparameterstablebase e winder1 tension.
+ /// </summary>
+
+ [Column("E_WINDER1_TENSION")]
+
+ [StringFormat("0.0")]
+
+ [PropertyIndex(40)]
+
+ public Double EWinder1Tension
+ {
+ get
+ {
+ return _ewinder1tension;
+ }
+
+ set
+ {
+ if (_ewinder1tension != value)
+ {
+ _ewinder1tension = value;
+
+ OnEWinder1TensionChanged(value);
+
+ }
+ }
+ }
+
+ protected Double _ewinder2tension;
+
+ /// <summary>
+ /// Gets or sets the processparameterstablebase e winder2 tension.
+ /// </summary>
+
+ [Column("E_WINDER2_TENSION")]
+
+ [StringFormat("0.0")]
+
+ [PropertyIndex(41)]
+
+ public Double EWinder2Tension
+ {
+ get
+ {
+ return _ewinder2tension;
+ }
+
+ set
+ {
+ if (_ewinder2tension != value)
+ {
+ _ewinder2tension = value;
+
+ OnEWinder2TensionChanged(value);
+
+ }
+ }
+ }
+
+ protected Double _ewinder3tension;
+
+ /// <summary>
+ /// Gets or sets the processparameterstablebase e winder3 tension.
+ /// </summary>
+
+ [Column("E_WINDER3_TENSION")]
+
+ [StringFormat("0.0")]
+
+ [PropertyIndex(42)]
+
+ public Double EWinder3Tension
+ {
+ get
+ {
+ return _ewinder3tension;
+ }
+
+ set
+ {
+ if (_ewinder3tension != value)
+ {
+ _ewinder3tension = value;
+
+ OnEWinder3TensionChanged(value);
+
+ }
+ }
+ }
+
+ protected Double _ewinder4tension;
+
+ /// <summary>
+ /// Gets or sets the processparameterstablebase e winder4 tension.
+ /// </summary>
+
+ [Column("E_WINDER4_TENSION")]
+
+ [StringFormat("0.0")]
+
+ [PropertyIndex(43)]
+
+ public Double EWinder4Tension
+ {
+ get
+ {
+ return _ewinder4tension;
+ }
+
+ set
+ {
+ if (_ewinder4tension != value)
+ {
+ _ewinder4tension = value;
+
+ OnEWinder4TensionChanged(value);
+
+ }
+ }
+ }
+
+ protected Double _ebtsr1feedingtension;
+
+ /// <summary>
+ /// Gets or sets the processparameterstablebase e btsr1 feeding tension.
+ /// </summary>
+
+ [Column("E_BTSR1_FEEDING_TENSION")]
+
+ [StringFormat("0.0")]
+
+ [PropertyIndex(44)]
+
+ public Double EBtsr1FeedingTension
+ {
+ get
+ {
+ return _ebtsr1feedingtension;
+ }
+
+ set
+ {
+ if (_ebtsr1feedingtension != value)
+ {
+ _ebtsr1feedingtension = value;
+
+ OnEBtsr1FeedingTensionChanged(value);
+
+ }
+ }
+ }
+
+ protected Double _ebtsr2feedingtension;
+
+ /// <summary>
+ /// Gets or sets the processparameterstablebase e btsr2 feeding tension.
+ /// </summary>
+
+ [Column("E_BTSR2_FEEDING_TENSION")]
+
+ [StringFormat("0.0")]
+
+ [PropertyIndex(45)]
+
+ public Double EBtsr2FeedingTension
+ {
+ get
+ {
+ return _ebtsr2feedingtension;
+ }
+
+ set
+ {
+ if (_ebtsr2feedingtension != value)
+ {
+ _ebtsr2feedingtension = value;
+
+ OnEBtsr2FeedingTensionChanged(value);
+
+ }
+ }
+ }
+
+ protected Double _ebtsr3feedingtension;
+
+ /// <summary>
+ /// Gets or sets the processparameterstablebase e btsr3 feeding tension.
+ /// </summary>
+
+ [Column("E_BTSR3_FEEDING_TENSION")]
+
+ [StringFormat("0.0")]
+
+ [PropertyIndex(46)]
+
+ public Double EBtsr3FeedingTension
+ {
+ get
+ {
+ return _ebtsr3feedingtension;
+ }
+
+ set
+ {
+ if (_ebtsr3feedingtension != value)
+ {
+ _ebtsr3feedingtension = value;
+
+ OnEBtsr3FeedingTensionChanged(value);
+
+ }
+ }
+ }
+
+ protected Double _ebtsr4feedingtension;
+
+ /// <summary>
+ /// Gets or sets the processparameterstablebase e btsr4 feeding tension.
+ /// </summary>
+
+ [Column("E_BTSR4_FEEDING_TENSION")]
+
+ [StringFormat("0.0")]
+
+ [PropertyIndex(47)]
+
+ public Double EBtsr4FeedingTension
+ {
+ get
+ {
+ return _ebtsr4feedingtension;
+ }
+
+ set
+ {
+ if (_ebtsr4feedingtension != value)
+ {
+ _ebtsr4feedingtension = value;
+
+ OnEBtsr4FeedingTensionChanged(value);
+
+ }
+ }
+ }
+
+ protected Double _emixertemp;
+
+ /// <summary>
+ /// Gets or sets the processparameterstablebase e mixer temp.
+ /// </summary>
+
+ [Column("E_MIXER_TEMP")]
+
+ [StringFormat("0.0")]
+
+ [PropertyIndex(48)]
+
+ public Double EMixerTemp
+ {
+ get
+ {
+ return _emixertemp;
+ }
+
+ set
+ {
+ if (_emixertemp != value)
+ {
+ _emixertemp = value;
+
+ OnEMixerTempChanged(value);
+
+ }
+ }
+ }
+
+ protected Double _eheadzone1temp;
+
+ /// <summary>
+ /// Gets or sets the processparameterstablebase e head zone1 temp.
+ /// </summary>
+
+ [Column("E_HEAD_ZONE1_TEMP")]
+
+ [StringFormat("0.0")]
+
+ [PropertyIndex(49)]
+
+ public Double EHeadZone1Temp
+ {
+ get
+ {
+ return _eheadzone1temp;
+ }
+
+ set
+ {
+ if (_eheadzone1temp != value)
+ {
+ _eheadzone1temp = value;
+
+ OnEHeadZone1TempChanged(value);
+
+ }
+ }
+ }
+
+ protected Double _eheadzone2temp;
+
+ /// <summary>
+ /// Gets or sets the processparameterstablebase e head zone2 temp.
+ /// </summary>
+
+ [Column("E_HEAD_ZONE2_TEMP")]
+
+ [StringFormat("0.0")]
+
+ [PropertyIndex(50)]
+
+ public Double EHeadZone2Temp
+ {
+ get
+ {
+ return _eheadzone2temp;
+ }
+
+ set
+ {
+ if (_eheadzone2temp != value)
+ {
+ _eheadzone2temp = value;
+
+ OnEHeadZone2TempChanged(value);
+
+ }
+ }
+ }
+
+ protected Double _eheadzone3temp;
+
+ /// <summary>
+ /// Gets or sets the processparameterstablebase e head zone3 temp.
+ /// </summary>
+
+ [Column("E_HEAD_ZONE3_TEMP")]
+
+ [StringFormat("0.0")]
+
+ [PropertyIndex(51)]
+
+ public Double EHeadZone3Temp
+ {
+ get
+ {
+ return _eheadzone3temp;
+ }
+
+ set
+ {
+ if (_eheadzone3temp != value)
+ {
+ _eheadzone3temp = value;
+
+ OnEHeadZone3TempChanged(value);
+
+ }
+ }
+ }
+
+ protected Double _edryerzone1temp;
+
+ /// <summary>
+ /// Gets or sets the processparameterstablebase e dryer zone1 temp.
+ /// </summary>
+
+ [Column("E_DRYER_ZONE1_TEMP")]
+
+ [StringFormat("0.0")]
+
+ [PropertyIndex(52)]
+
+ public Double EDryerZone1Temp
+ {
+ get
+ {
+ return _edryerzone1temp;
+ }
+
+ set
+ {
+ if (_edryerzone1temp != value)
+ {
+ _edryerzone1temp = value;
+
+ OnEDryerZone1TempChanged(value);
+
+ }
+ }
+ }
+
+ protected Double _edryerzone2temp;
+
+ /// <summary>
+ /// Gets or sets the processparameterstablebase e dryer zone2 temp.
+ /// </summary>
+
+ [Column("E_DRYER_ZONE2_TEMP")]
+
+ [StringFormat("0.0")]
+
+ [PropertyIndex(53)]
+
+ public Double EDryerZone2Temp
+ {
+ get
+ {
+ return _edryerzone2temp;
+ }
+
+ set
+ {
+ if (_edryerzone2temp != value)
+ {
+ _edryerzone2temp = value;
+
+ OnEDryerZone2TempChanged(value);
+
+ }
+ }
+ }
+
+ protected Double _edryerzone3temp;
+
+ /// <summary>
+ /// Gets or sets the processparameterstablebase e dryer zone3 temp.
+ /// </summary>
+
+ [Column("E_DRYER_ZONE3_TEMP")]
+
+ [StringFormat("0.0")]
+
+ [PropertyIndex(54)]
+
+ public Double EDryerZone3Temp
+ {
+ get
+ {
+ return _edryerzone3temp;
+ }
+
+ set
+ {
+ if (_edryerzone3temp != value)
+ {
+ _edryerzone3temp = value;
+
+ OnEDryerZone3TempChanged(value);
+
+ }
+ }
+ }
+
+ protected Double _elubricanttemp;
+
+ /// <summary>
+ /// Gets or sets the processparameterstablebase e lubricant temp.
+ /// </summary>
+
+ [Column("E_LUBRICANT_TEMP")]
+
+ [StringFormat("0.0")]
+
+ [PropertyIndex(55)]
+
+ public Double ELubricantTemp
+ {
+ get
+ {
+ return _elubricanttemp;
+ }
+
+ set
+ {
+ if (_elubricanttemp != value)
+ {
+ _elubricanttemp = value;
+
+ OnELubricantTempChanged(value);
+
+ }
+ }
+ }
+
+ protected Double _edryerincomingairflow;
+
+ /// <summary>
+ /// Gets or sets the processparameterstablebase e dryer incoming air flow.
+ /// </summary>
+
+ [Column("E_DRYER_INCOMING_AIR_FLOW")]
+
+ [StringFormat("0.0")]
+
+ [PropertyIndex(56)]
+
+ public Double EDryerIncomingAirFlow
+ {
+ get
+ {
+ return _edryerincomingairflow;
+ }
+
+ set
+ {
+ if (_edryerincomingairflow != value)
+ {
+ _edryerincomingairflow = value;
+
+ OnEDryerIncomingAirFlowChanged(value);
+
+ }
+ }
+ }
+
+ protected Double _edryeroutgoingairflow;
+
+ /// <summary>
+ /// Gets or sets the processparameterstablebase e dryer outgoing air flow.
+ /// </summary>
+
+ [Column("E_DRYER_OUTGOING_AIR_FLOW")]
+
+ [StringFormat("0.0")]
+
+ [PropertyIndex(57)]
+
+ public Double EDryerOutgoingAirFlow
+ {
+ get
+ {
+ return _edryeroutgoingairflow;
+ }
+
+ set
+ {
+ if (_edryeroutgoingairflow != value)
+ {
+ _edryeroutgoingairflow = value;
+
+ OnEDryerOutgoingAirFlowChanged(value);
+
+ }
+ }
+ }
+
+ protected Double _etunnelincomingairflow;
+
+ /// <summary>
+ /// Gets or sets the processparameterstablebase e tunnel incoming air flow.
+ /// </summary>
+
+ [Column("E_TUNNEL_INCOMING_AIR_FLOW")]
+
+ [StringFormat("0.0")]
+
+ [PropertyIndex(58)]
+
+ public Double ETunnelIncomingAirFlow
+ {
+ get
+ {
+ return _etunnelincomingairflow;
+ }
+
+ set
+ {
+ if (_etunnelincomingairflow != value)
+ {
+ _etunnelincomingairflow = value;
+
+ OnETunnelIncomingAirFlowChanged(value);
+
+ }
+ }
+ }
+
+ protected Double _etunneloutgoingairflow;
+
+ /// <summary>
+ /// Gets or sets the processparameterstablebase e tunnel outgoing air flow.
+ /// </summary>
+
+ [Column("E_TUNNEL_OUTGOING_AIR_FLOW")]
+
+ [StringFormat("0.0")]
+
+ [PropertyIndex(59)]
+
+ public Double ETunnelOutgoingAirFlow
+ {
+ get
+ {
+ return _etunneloutgoingairflow;
+ }
+
+ set
+ {
+ if (_etunneloutgoingairflow != value)
+ {
+ _etunneloutgoingairflow = value;
+
+ OnETunnelOutgoingAirFlowChanged(value);
+
+ }
+ }
+ }
+
+ protected Double _ewasteairflow;
+
+ /// <summary>
+ /// Gets or sets the processparameterstablebase e waste air flow.
+ /// </summary>
+
+ [Column("E_WASTE_AIR_FLOW")]
+
+ [StringFormat("0.0")]
+
+ [PropertyIndex(60)]
+
+ public Double EWasteAirFlow
+ {
+ get
+ {
+ return _ewasteairflow;
+ }
+
+ set
+ {
+ if (_ewasteairflow != value)
+ {
+ _ewasteairflow = value;
+
+ OnEWasteAirFlowChanged(value);
+
+ }
+ }
+ }
+
+ protected Double _ewastepreparetime;
+
+ /// <summary>
+ /// Gets or sets the processparameterstablebase e waste prepare time.
+ /// </summary>
+
+ [Column("E_WASTE_PREPARE_TIME")]
+
+ [StringFormat("0.0")]
+
+ [PropertyIndex(61)]
+
+ public Double EWastePrepareTime
+ {
+ get
+ {
+ return _ewastepreparetime;
+ }
+
+ set
+ {
+ if (_ewastepreparetime != value)
+ {
+ _ewastepreparetime = value;
+
+ OnEWastePrepareTimeChanged(value);
+
+ }
+ }
+ }
+
+ protected Double _epumptemp;
+
+ /// <summary>
+ /// Gets or sets the processparameterstablebase e pump temp.
+ /// </summary>
+
+ [Column("E_PUMP_TEMP")]
+
+ [StringFormat("0.0")]
+
+ [PropertyIndex(62)]
+
+ public Double EPumpTemp
+ {
+ get
+ {
+ return _epumptemp;
+ }
+
+ set
+ {
+ if (_epumptemp != value)
+ {
+ _epumptemp = value;
+
+ OnEPumpTempChanged(value);
+
+ }
+ }
+ }
+
+ protected Double _epressurebuildup;
+
+ /// <summary>
+ /// Gets or sets the processparameterstablebase e pressure build up.
+ /// </summary>
+
+ [Column("E_PRESSURE_BUILD_UP")]
+
+ [StringFormat("0.0")]
+
+ [PropertyIndex(63)]
+
+ public Double EPressureBuildUp
+ {
+ get
+ {
+ return _epressurebuildup;
+ }
+
+ set
+ {
+ if (_epressurebuildup != value)
+ {
+ _epressurebuildup = value;
+
+ OnEPressureBuildUpChanged(value);
+
+ }
+ }
+ }
+
+ protected Double _espare1;
+
+ /// <summary>
+ /// Gets or sets the processparameterstablebase e spare1.
+ /// </summary>
+
+ [Column("E_SPARE1")]
+
+ [StringFormat("0.0")]
+
+ [PropertyIndex(65)]
+
+ public Double ESpare1
+ {
+ get
+ {
+ return _espare1;
+ }
+
+ set
+ {
+ if (_espare1 != value)
+ {
+ _espare1 = value;
+
+ OnESpare1Changed(value);
+
+ }
+ }
+ }
+
+ protected Double _espare2;
+
+ /// <summary>
+ /// Gets or sets the processparameterstablebase e spare2.
+ /// </summary>
+
+ [Column("E_SPARE2")]
+
+ [StringFormat("0.0")]
+
+ [PropertyIndex(66)]
+
+ public Double ESpare2
+ {
+ get
+ {
+ return _espare2;
+ }
+
+ set
+ {
+ if (_espare2 != value)
+ {
+ _espare2 = value;
+
+ OnESpare2Changed(value);
+
+ }
+ }
+ }
+
+ protected Double _espare3;
+
+ /// <summary>
+ /// Gets or sets the processparameterstablebase e spare3.
+ /// </summary>
+
+ [Column("E_SPARE3")]
+
+ [StringFormat("0.0")]
+
+ [PropertyIndex(67)]
+
+ public Double ESpare3
+ {
+ get
+ {
+ return _espare3;
+ }
+
+ set
+ {
+ if (_espare3 != value)
+ {
+ _espare3 = value;
+
+ OnESpare3Changed(value);
+
+ }
+ }
+ }
+
+ protected Double _espare4;
+
+ /// <summary>
+ /// Gets or sets the processparameterstablebase e spare4.
+ /// </summary>
+
+ [Column("E_SPARE4")]
+
+ [StringFormat("0.0")]
+
+ [PropertyIndex(68)]
+
+ public Double ESpare4
+ {
+ get
+ {
+ return _espare4;
+ }
+
+ set
+ {
+ if (_espare4 != value)
+ {
+ _espare4 = value;
+
+ OnESpare4Changed(value);
+
+ }
+ }
+ }
+
+ protected Double _espare5;
+
+ /// <summary>
+ /// Gets or sets the processparameterstablebase e spare5.
+ /// </summary>
+
+ [Column("E_SPARE5")]
+
+ [StringFormat("0.0")]
+
+ [PropertyIndex(69)]
+
+ public Double ESpare5
+ {
+ get
+ {
+ return _espare5;
+ }
+
+ set
+ {
+ if (_espare5 != value)
+ {
+ _espare5 = value;
+
+ OnESpare5Changed(value);
+
+ }
+ }
+ }
+
+ protected Double _etunneltemp;
+
+ /// <summary>
+ /// Gets or sets the processparameterstablebase e tunnel temp.
+ /// </summary>
+
+ [Column("E_TUNNEL_TEMP")]
+
+ [StringFormat("0.0")]
+
+ [PropertyIndex(64)]
+
+ public Double ETunnelTemp
+ {
+ get
+ {
+ return _etunneltemp;
+ }
+
+ set
+ {
+ if (_etunneltemp != value)
+ {
+ _etunneltemp = value;
+
+ OnETunnelTempChanged(value);
+
+ }
+ }
+ }
+
protected ProcessParametersTablesGroup _processparameterstablesgroup;
/// <summary>
@@ -1554,6 +2544,276 @@ namespace Tango.BL.Entities
}
/// <summary>
+ /// Called when the EWinder1Tension has changed.
+ /// </summary>
+ protected virtual void OnEWinder1TensionChanged(Double ewinder1tension)
+ {
+ EWinder1TensionChanged?.Invoke(this, ewinder1tension);
+ RaisePropertyChanged(nameof(EWinder1Tension));
+ }
+
+ /// <summary>
+ /// Called when the EWinder2Tension has changed.
+ /// </summary>
+ protected virtual void OnEWinder2TensionChanged(Double ewinder2tension)
+ {
+ EWinder2TensionChanged?.Invoke(this, ewinder2tension);
+ RaisePropertyChanged(nameof(EWinder2Tension));
+ }
+
+ /// <summary>
+ /// Called when the EWinder3Tension has changed.
+ /// </summary>
+ protected virtual void OnEWinder3TensionChanged(Double ewinder3tension)
+ {
+ EWinder3TensionChanged?.Invoke(this, ewinder3tension);
+ RaisePropertyChanged(nameof(EWinder3Tension));
+ }
+
+ /// <summary>
+ /// Called when the EWinder4Tension has changed.
+ /// </summary>
+ protected virtual void OnEWinder4TensionChanged(Double ewinder4tension)
+ {
+ EWinder4TensionChanged?.Invoke(this, ewinder4tension);
+ RaisePropertyChanged(nameof(EWinder4Tension));
+ }
+
+ /// <summary>
+ /// Called when the EBtsr1FeedingTension has changed.
+ /// </summary>
+ protected virtual void OnEBtsr1FeedingTensionChanged(Double ebtsr1feedingtension)
+ {
+ EBtsr1FeedingTensionChanged?.Invoke(this, ebtsr1feedingtension);
+ RaisePropertyChanged(nameof(EBtsr1FeedingTension));
+ }
+
+ /// <summary>
+ /// Called when the EBtsr2FeedingTension has changed.
+ /// </summary>
+ protected virtual void OnEBtsr2FeedingTensionChanged(Double ebtsr2feedingtension)
+ {
+ EBtsr2FeedingTensionChanged?.Invoke(this, ebtsr2feedingtension);
+ RaisePropertyChanged(nameof(EBtsr2FeedingTension));
+ }
+
+ /// <summary>
+ /// Called when the EBtsr3FeedingTension has changed.
+ /// </summary>
+ protected virtual void OnEBtsr3FeedingTensionChanged(Double ebtsr3feedingtension)
+ {
+ EBtsr3FeedingTensionChanged?.Invoke(this, ebtsr3feedingtension);
+ RaisePropertyChanged(nameof(EBtsr3FeedingTension));
+ }
+
+ /// <summary>
+ /// Called when the EBtsr4FeedingTension has changed.
+ /// </summary>
+ protected virtual void OnEBtsr4FeedingTensionChanged(Double ebtsr4feedingtension)
+ {
+ EBtsr4FeedingTensionChanged?.Invoke(this, ebtsr4feedingtension);
+ RaisePropertyChanged(nameof(EBtsr4FeedingTension));
+ }
+
+ /// <summary>
+ /// Called when the EMixerTemp has changed.
+ /// </summary>
+ protected virtual void OnEMixerTempChanged(Double emixertemp)
+ {
+ EMixerTempChanged?.Invoke(this, emixertemp);
+ RaisePropertyChanged(nameof(EMixerTemp));
+ }
+
+ /// <summary>
+ /// Called when the EHeadZone1Temp has changed.
+ /// </summary>
+ protected virtual void OnEHeadZone1TempChanged(Double eheadzone1temp)
+ {
+ EHeadZone1TempChanged?.Invoke(this, eheadzone1temp);
+ RaisePropertyChanged(nameof(EHeadZone1Temp));
+ }
+
+ /// <summary>
+ /// Called when the EHeadZone2Temp has changed.
+ /// </summary>
+ protected virtual void OnEHeadZone2TempChanged(Double eheadzone2temp)
+ {
+ EHeadZone2TempChanged?.Invoke(this, eheadzone2temp);
+ RaisePropertyChanged(nameof(EHeadZone2Temp));
+ }
+
+ /// <summary>
+ /// Called when the EHeadZone3Temp has changed.
+ /// </summary>
+ protected virtual void OnEHeadZone3TempChanged(Double eheadzone3temp)
+ {
+ EHeadZone3TempChanged?.Invoke(this, eheadzone3temp);
+ RaisePropertyChanged(nameof(EHeadZone3Temp));
+ }
+
+ /// <summary>
+ /// Called when the EDryerZone1Temp has changed.
+ /// </summary>
+ protected virtual void OnEDryerZone1TempChanged(Double edryerzone1temp)
+ {
+ EDryerZone1TempChanged?.Invoke(this, edryerzone1temp);
+ RaisePropertyChanged(nameof(EDryerZone1Temp));
+ }
+
+ /// <summary>
+ /// Called when the EDryerZone2Temp has changed.
+ /// </summary>
+ protected virtual void OnEDryerZone2TempChanged(Double edryerzone2temp)
+ {
+ EDryerZone2TempChanged?.Invoke(this, edryerzone2temp);
+ RaisePropertyChanged(nameof(EDryerZone2Temp));
+ }
+
+ /// <summary>
+ /// Called when the EDryerZone3Temp has changed.
+ /// </summary>
+ protected virtual void OnEDryerZone3TempChanged(Double edryerzone3temp)
+ {
+ EDryerZone3TempChanged?.Invoke(this, edryerzone3temp);
+ RaisePropertyChanged(nameof(EDryerZone3Temp));
+ }
+
+ /// <summary>
+ /// Called when the ELubricantTemp has changed.
+ /// </summary>
+ protected virtual void OnELubricantTempChanged(Double elubricanttemp)
+ {
+ ELubricantTempChanged?.Invoke(this, elubricanttemp);
+ RaisePropertyChanged(nameof(ELubricantTemp));
+ }
+
+ /// <summary>
+ /// Called when the EDryerIncomingAirFlow has changed.
+ /// </summary>
+ protected virtual void OnEDryerIncomingAirFlowChanged(Double edryerincomingairflow)
+ {
+ EDryerIncomingAirFlowChanged?.Invoke(this, edryerincomingairflow);
+ RaisePropertyChanged(nameof(EDryerIncomingAirFlow));
+ }
+
+ /// <summary>
+ /// Called when the EDryerOutgoingAirFlow has changed.
+ /// </summary>
+ protected virtual void OnEDryerOutgoingAirFlowChanged(Double edryeroutgoingairflow)
+ {
+ EDryerOutgoingAirFlowChanged?.Invoke(this, edryeroutgoingairflow);
+ RaisePropertyChanged(nameof(EDryerOutgoingAirFlow));
+ }
+
+ /// <summary>
+ /// Called when the ETunnelIncomingAirFlow has changed.
+ /// </summary>
+ protected virtual void OnETunnelIncomingAirFlowChanged(Double etunnelincomingairflow)
+ {
+ ETunnelIncomingAirFlowChanged?.Invoke(this, etunnelincomingairflow);
+ RaisePropertyChanged(nameof(ETunnelIncomingAirFlow));
+ }
+
+ /// <summary>
+ /// Called when the ETunnelOutgoingAirFlow has changed.
+ /// </summary>
+ protected virtual void OnETunnelOutgoingAirFlowChanged(Double etunneloutgoingairflow)
+ {
+ ETunnelOutgoingAirFlowChanged?.Invoke(this, etunneloutgoingairflow);
+ RaisePropertyChanged(nameof(ETunnelOutgoingAirFlow));
+ }
+
+ /// <summary>
+ /// Called when the EWasteAirFlow has changed.
+ /// </summary>
+ protected virtual void OnEWasteAirFlowChanged(Double ewasteairflow)
+ {
+ EWasteAirFlowChanged?.Invoke(this, ewasteairflow);
+ RaisePropertyChanged(nameof(EWasteAirFlow));
+ }
+
+ /// <summary>
+ /// Called when the EWastePrepareTime has changed.
+ /// </summary>
+ protected virtual void OnEWastePrepareTimeChanged(Double ewastepreparetime)
+ {
+ EWastePrepareTimeChanged?.Invoke(this, ewastepreparetime);
+ RaisePropertyChanged(nameof(EWastePrepareTime));
+ }
+
+ /// <summary>
+ /// Called when the EPumpTemp has changed.
+ /// </summary>
+ protected virtual void OnEPumpTempChanged(Double epumptemp)
+ {
+ EPumpTempChanged?.Invoke(this, epumptemp);
+ RaisePropertyChanged(nameof(EPumpTemp));
+ }
+
+ /// <summary>
+ /// Called when the EPressureBuildUp has changed.
+ /// </summary>
+ protected virtual void OnEPressureBuildUpChanged(Double epressurebuildup)
+ {
+ EPressureBuildUpChanged?.Invoke(this, epressurebuildup);
+ RaisePropertyChanged(nameof(EPressureBuildUp));
+ }
+
+ /// <summary>
+ /// Called when the ESpare1 has changed.
+ /// </summary>
+ protected virtual void OnESpare1Changed(Double espare1)
+ {
+ ESpare1Changed?.Invoke(this, espare1);
+ RaisePropertyChanged(nameof(ESpare1));
+ }
+
+ /// <summary>
+ /// Called when the ESpare2 has changed.
+ /// </summary>
+ protected virtual void OnESpare2Changed(Double espare2)
+ {
+ ESpare2Changed?.Invoke(this, espare2);
+ RaisePropertyChanged(nameof(ESpare2));
+ }
+
+ /// <summary>
+ /// Called when the ESpare3 has changed.
+ /// </summary>
+ protected virtual void OnESpare3Changed(Double espare3)
+ {
+ ESpare3Changed?.Invoke(this, espare3);
+ RaisePropertyChanged(nameof(ESpare3));
+ }
+
+ /// <summary>
+ /// Called when the ESpare4 has changed.
+ /// </summary>
+ protected virtual void OnESpare4Changed(Double espare4)
+ {
+ ESpare4Changed?.Invoke(this, espare4);
+ RaisePropertyChanged(nameof(ESpare4));
+ }
+
+ /// <summary>
+ /// Called when the ESpare5 has changed.
+ /// </summary>
+ protected virtual void OnESpare5Changed(Double espare5)
+ {
+ ESpare5Changed?.Invoke(this, espare5);
+ RaisePropertyChanged(nameof(ESpare5));
+ }
+
+ /// <summary>
+ /// Called when the ETunnelTemp has changed.
+ /// </summary>
+ protected virtual void OnETunnelTempChanged(Double etunneltemp)
+ {
+ ETunnelTempChanged?.Invoke(this, etunneltemp);
+ RaisePropertyChanged(nameof(ETunnelTemp));
+ }
+
+ /// <summary>
/// Called when the ProcessParametersTablesGroup has changed.
/// </summary>
protected virtual void OnProcessParametersTablesGroupChanged(ProcessParametersTablesGroup processparameterstablesgroup)
diff --git a/Software/Visual_Studio/Tango.BL/Entities/Rml.cs b/Software/Visual_Studio/Tango.BL/Entities/Rml.cs
index a49b3cf84..fdeb8f05e 100644
--- a/Software/Visual_Studio/Tango.BL/Entities/Rml.cs
+++ b/Software/Visual_Studio/Tango.BL/Entities/Rml.cs
@@ -24,6 +24,7 @@ namespace Tango.BL.Entities
WhitePointL = 92.1815;
WhitePointA = 2.2555;
WhitePointB = -10.9325;
+ PliesPerThread = 1;
}
protected override void OnWhitePointLChanged(double whitepointl)
@@ -234,6 +235,15 @@ namespace Tango.BL.Entities
{
base.OnPliesPerFiberChanged(pliesperfiber);
UpdateFiberCount();
+
+ }
+
+ protected override void OnPliesPerThreadChanged(Int32 pliesperthread)
+ {
+ base.OnPliesPerThreadChanged(pliesperthread);
+ UpdateDencityCount();
+ UpdateFiberCount();
+ RaisePropertyChanged(nameof(RMLPlies));
}
private void UpdateDencityCount()
@@ -252,20 +262,21 @@ namespace Tango.BL.Entities
{
get
{
+ var count = 0;
if (LinearMassDensityUnit == null || FiberSize==0)
- return 0;
+ return count;
if (LinearMassDensityUnit.Name== "Tex")
- return Convert.ToInt32(FiberSize) * 9;
+ count = Convert.ToInt32(FiberSize) * 9;
if (LinearMassDensityUnit.Name == "DTEX")
- return (int)(Convert.ToInt32(FiberSize) * 0.9);
+ count = (int)(Convert.ToInt32(FiberSize) * 0.9);
if (LinearMassDensityUnit.Name == "Ne")
- return (int)(5315 / Convert.ToInt32(FiberSize));
+ count = (int)(5315 / Convert.ToInt32(FiberSize));
if (LinearMassDensityUnit.Name == "Nm")
- return (int)(9000 / Convert.ToInt32(FiberSize));
+ count = (int)(9000 / Convert.ToInt32(FiberSize));
if (LinearMassDensityUnit.Name == "Denier")
- return (int)FiberSize;
+ count = (int)FiberSize;
- return 0;
+ return PliesPerThread == 0 ? count : count * PliesPerThread;
}
}
@@ -292,6 +303,29 @@ namespace Tango.BL.Entities
}
}
+ [NotMapped]
+ [JsonIgnore]
+ public double GetGramPer1000mLength
+ {
+
+ get
+ {
+
+ //if (LinearMassDensityUnit.Name == "Tex")
+ // return FiberSize;
+ //if (LinearMassDensityUnit.Name == "DTEX")
+ // return (FiberSize /10);
+ //if (LinearMassDensityUnit.Name == "Ne")
+ // return (590.5 / FiberSize);
+ //if (LinearMassDensityUnit.Name == "Nm")
+ // return (1000 / FiberSize);
+ //if (LinearMassDensityUnit.Name == "Denier")
+ // return FiberSize/9;
+
+ return DencityCount == 0? (1/9 ): (DencityCount / 9);
+ }
+ }
+
[NotMapped]
[JsonIgnore]
@@ -302,6 +336,8 @@ namespace Tango.BL.Entities
{
base.PliesPerThread = value.ToInt32();
RaisePropertyChangedAuto();
+ UpdateDencityCount();
+ UpdateFiberCount();
}
}
diff --git a/Software/Visual_Studio/Tango.BL/Entities/Segment.cs b/Software/Visual_Studio/Tango.BL/Entities/Segment.cs
index be72100a5..5a99442e4 100644
--- a/Software/Visual_Studio/Tango.BL/Entities/Segment.cs
+++ b/Software/Visual_Studio/Tango.BL/Entities/Segment.cs
@@ -271,6 +271,16 @@ namespace Tango.BL.Entities
}
}
+ public BrushStop FirstBrushStop
+ {
+ get { if (BrushStops.Count == 1)//Intersegment?? - null
+ return BrushStops[0];
+ else if(BrushStops.Count >= 5)
+ return BrushStops[1];
+ else
+ return null; }
+ }
+
public static Color GetRelativeRGB(Color first, Color second, double firstOffset, double secondOffset, double offset)
{
var color = new Color();
diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/EventTypeGroups.cs b/Software/Visual_Studio/Tango.BL/Enumerations/EventTypeGroups.cs
index 5ff1766d9..b8c9e677e 100644
--- a/Software/Visual_Studio/Tango.BL/Enumerations/EventTypeGroups.cs
+++ b/Software/Visual_Studio/Tango.BL/Enumerations/EventTypeGroups.cs
@@ -43,6 +43,8 @@ namespace Tango.BL.Enumerations
[Description("Transport")]
Transport = 11,
[Description("Jobs")]
- Jobs = 12
+ Jobs = 12,
+ [Description("Safety")]
+ Safety = 13
}
}
diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/EventTypes.cs b/Software/Visual_Studio/Tango.BL/Enumerations/EventTypes.cs
index 6c57f46c4..93732c9f3 100644
--- a/Software/Visual_Studio/Tango.BL/Enumerations/EventTypes.cs
+++ b/Software/Visual_Studio/Tango.BL/Enumerations/EventTypes.cs
@@ -254,6 +254,24 @@ namespace Tango.BL.Enumerations
RFID_READER_MALFUNCTION_WASTE_SLOT_2 = 2024,
/// <summary>
+ /// (Communication failure. Cannot execute job)
+ /// </summary>
+ [Description("Communication failure. Cannot execute job")]
+ I2C3_COMMUNICATION_FAILURE = 2025,
+
+ /// <summary>
+ /// (Communication failure. Cannot execute job)
+ /// </summary>
+ [Description("Communication failure. Cannot execute job")]
+ I2C4_COMMUNICATION_FAILURE = 2026,
+
+ /// <summary>
+ /// (Communication failure. Cannot execute job)
+ /// </summary>
+ [Description("Communication failure. Cannot execute job")]
+ I2C_COMMUNICATION_FAILURE = 2027,
+
+ /// <summary>
/// (Thread break. Cannot execute job)
/// </summary>
[Description("Thread break. Cannot execute job")]
@@ -1322,6 +1340,42 @@ namespace Tango.BL.Enumerations
DYEING_HEAD_COVER_IS_OPEN = 5099,
/// <summary>
+ /// (Dyeing head voltage is too low. Cannot execute job)
+ /// </summary>
+ [Description("Dyeing head voltage is too low. Cannot execute job")]
+ DYEING_HEAD_VOLTAGE_1_TOO_LOW = 5100,
+
+ /// <summary>
+ /// (Dyeing head voltage is too low. Cannot execute job)
+ /// </summary>
+ [Description("Dyeing head voltage is too low. Cannot execute job")]
+ DYEING_HEAD_VOLTAGE_2_TOO_LOW = 5101,
+
+ /// <summary>
+ /// (Dyeing head voltage is too low. Cannot execute job)
+ /// </summary>
+ [Description("Dyeing head voltage is too low. Cannot execute job")]
+ DYEING_HEAD_VOLTAGE_3_TOO_LOW = 5102,
+
+ /// <summary>
+ /// (Dyeing head voltage break. Cannot execute job)
+ /// </summary>
+ [Description("Dyeing head voltage break. Cannot execute job")]
+ DYEING_HEAD_VOLTAGE_1_BREAK = 5103,
+
+ /// <summary>
+ /// (Dyeing head voltage break. Cannot execute job)
+ /// </summary>
+ [Description("Dyeing head voltage break. Cannot execute job")]
+ DYEING_HEAD_VOLTAGE_2_BREAK = 5104,
+
+ /// <summary>
+ /// (Dyeing head voltage break. Cannot execute job)
+ /// </summary>
+ [Description("Dyeing head voltage break. Cannot execute job")]
+ DYEING_HEAD_VOLTAGE_3_BREAK = 5105,
+
+ /// <summary>
/// (The temperature in the mixer is too high. Cannot execute job)
/// </summary>
[Description("The temperature in the mixer is too high. Cannot execute job")]
@@ -2174,6 +2228,66 @@ namespace Tango.BL.Enumerations
MID_TANK_10_FILL_TIMEOUT = 8039,
/// <summary>
+ /// (Malfunction in @ tank. Cannot fill @ ink)
+ /// </summary>
+ [Description("Malfunction in @ tank. Cannot fill @ ink")]
+ MID_TANK_1_MALFUNCTION = 8040,
+
+ /// <summary>
+ /// (Malfunction in @ tank. Cannot fill @ ink)
+ /// </summary>
+ [Description("Malfunction in @ tank. Cannot fill @ ink")]
+ MID_TANK_2_MALFUNCTION = 8041,
+
+ /// <summary>
+ /// (Malfunction in @ tank. Cannot fill @ ink)
+ /// </summary>
+ [Description("Malfunction in @ tank. Cannot fill @ ink")]
+ MID_TANK_3_MALFUNCTION = 8042,
+
+ /// <summary>
+ /// (Malfunction in @ tank. Cannot fill @ ink)
+ /// </summary>
+ [Description("Malfunction in @ tank. Cannot fill @ ink")]
+ MID_TANK_4_MALFUNCTION = 8043,
+
+ /// <summary>
+ /// (Malfunction in @ tank. Cannot fill @ ink)
+ /// </summary>
+ [Description("Malfunction in @ tank. Cannot fill @ ink")]
+ MID_TANK_5_MALFUNCTION = 8044,
+
+ /// <summary>
+ /// (Malfunction in @ tank. Cannot fill @ ink)
+ /// </summary>
+ [Description("Malfunction in @ tank. Cannot fill @ ink")]
+ MID_TANK_6_MALFUNCTION = 8045,
+
+ /// <summary>
+ /// (Malfunction in @ tank. Cannot fill @ ink)
+ /// </summary>
+ [Description("Malfunction in @ tank. Cannot fill @ ink")]
+ MID_TANK_7_MALFUNCTION = 8046,
+
+ /// <summary>
+ /// (Malfunction in @ tank. Cannot fill @ ink)
+ /// </summary>
+ [Description("Malfunction in @ tank. Cannot fill @ ink")]
+ MID_TANK_8_MALFUNCTION = 8047,
+
+ /// <summary>
+ /// (Malfunction in @ tank. Cannot fill @ ink)
+ /// </summary>
+ [Description("Malfunction in @ tank. Cannot fill @ ink")]
+ MID_TANK_9_MALFUNCTION = 8048,
+
+ /// <summary>
+ /// (Malfunction in @ tank. Cannot fill @ ink)
+ /// </summary>
+ [Description("Malfunction in @ tank. Cannot fill @ ink")]
+ MID_TANK_10_MALFUNCTION = 8049,
+
+ /// <summary>
/// (Cannot detect air filter. Cannot execute job )
/// </summary>
[Description("Cannot detect air filter. Cannot execute job ")]
@@ -2330,16 +2444,16 @@ namespace Tango.BL.Enumerations
NO_WASTE_CARTRIDGE_AVAILABLE = 10002,
/// <summary>
- /// (Both waste cartridges are full. Cannot execute job. Please replace waste cartridges)
+ /// (Waste tank is full. Please perform waste emptying)
/// </summary>
- [Description("Both waste cartridges are full. Cannot execute job. Please replace waste cartridges")]
- ALL_WASTE_CARTRIDGES_FULL = 10003,
+ [Description("Waste tank is full. Please perform waste emptying")]
+ WASTE_TANK_FULL = 10003,
/// <summary>
- /// (Cannot detect waste cartridge. Cannot execute job )
+ /// (Cartridges not inserted properly. Cannot execute job )
/// </summary>
- [Description("Cannot detect waste cartridge. Cannot execute job ")]
- WASTE_CARTRIDGE_PRESENCE_SENSOR_TIMEOUT = 10004,
+ [Description("Cartridges not inserted properly. Cannot execute job ")]
+ CARTRIDGES_NOT_INSERTED_PROPERLY = 10004,
/// <summary>
/// (Cannot identify waste cartridge. Cannot execute job )
@@ -2413,5 +2527,1253 @@ namespace Tango.BL.Enumerations
[Description("Ink in cartridge is expired. Cannot perform ink filling")]
INK_IN_CARTRIDGE_IS_EXPIRED = 10016,
+ /// <summary>
+ /// (Request sent to machine or external bridge service)
+ /// </summary>
+ [Description("Request sent to machine or external bridge service")]
+ E_REQUEST_SENT = 101000,
+
+ /// <summary>
+ /// (Response has been received.)
+ /// </summary>
+ [Description("Response has been received.")]
+ E_RESPONSE_RECEIVED = 101001,
+
+ /// <summary>
+ /// (Request to machine has failed.)
+ /// </summary>
+ [Description("Request to machine has failed.")]
+ E_REQUEST_FAILED = 101002,
+
+ /// <summary>
+ /// (Application has encountered an error)
+ /// </summary>
+ [Description("Application has encountered an error")]
+ E_APPLICATION_EXCEPTION = 101003,
+
+ /// <summary>
+ /// (General application event logs)
+ /// </summary>
+ [Description("General application event logs")]
+ E_APPLICATION_INFORMATION = 101004,
+
+ /// <summary>
+ /// (Application started.)
+ /// </summary>
+ [Description("Application started.")]
+ E_APPLICATION_STARTED = 101005,
+
+ /// <summary>
+ /// (Application terminated.)
+ /// </summary>
+ [Description("Application terminated.")]
+ E_APPLICATION_TERMINATED = 101006,
+
+ /// <summary>
+ /// (Diagnostics recording started.)
+ /// </summary>
+ [Description("Diagnostics recording started.")]
+ E_RECORDING_STARTED = 101007,
+
+ /// <summary>
+ /// (Diagnostics recording stopped.)
+ /// </summary>
+ [Description("Diagnostics recording stopped.")]
+ E_RECORDING_STOPPED = 101008,
+
+ /// <summary>
+ /// (Job status message has been received from embedded device.)
+ /// </summary>
+ [Description("Job status message has been received from embedded device.")]
+ E_JOB_STATUS = 101009,
+
+ /// <summary>
+ /// (A job has been started.)
+ /// </summary>
+ [Description("A job has been started.")]
+ E_JOB_STARTED = 101010,
+
+ /// <summary>
+ /// (A job has been aborted.)
+ /// </summary>
+ [Description("A job has been aborted.")]
+ E_JOB_ABORTED = 101011,
+
+ /// <summary>
+ /// (A job has failed.)
+ /// </summary>
+ [Description("A job has failed.")]
+ E_JOB_FAILED = 101012,
+
+ /// <summary>
+ /// (Job completed successfully.)
+ /// </summary>
+ [Description("Job completed successfully.")]
+ E_JOB_COMPLETED = 101013,
+
+ /// <summary>
+ /// (Machine power up cannot be completed)
+ /// </summary>
+ [Description("Machine power up cannot be completed")]
+ E_POWER_UP_BIT_FAILURE = 102000,
+
+ /// <summary>
+ /// (Machine power up cannot be completed)
+ /// </summary>
+ [Description("Machine power up cannot be completed")]
+ E_MACHINE_STATE_NO_CFG_FILE = 102001,
+
+ /// <summary>
+ /// (Machine power up cannot be completed)
+ /// </summary>
+ [Description("Machine power up cannot be completed")]
+ E_MACHINE_STATE_HW_CONFIG_FAILED = 102002,
+
+ /// <summary>
+ /// (Machine power up cannot be completed)
+ /// </summary>
+ [Description("Machine power up cannot be completed")]
+ E_MACHINE_STATE_NO_FLASH_FILE = 102003,
+
+ /// <summary>
+ /// (Machine power up cannot be completed)
+ /// </summary>
+ [Description("Machine power up cannot be completed")]
+ E_MACHINE_STATE_NO_ALARMS_FILE = 102004,
+
+ /// <summary>
+ /// (The emergency button is pressed)
+ /// </summary>
+ [Description("The emergency button is pressed")]
+ E_EMERGENCY_PUSH_BUTTON_PRESSED = 103001,
+
+ /// <summary>
+ /// (The dryer door is open. Cannot execute job)
+ /// </summary>
+ [Description("The dryer door is open. Cannot execute job")]
+ E_DRYER_DOOR_OPEN = 103002,
+
+ /// <summary>
+ /// (Dryer thermal cutoff activated. Cannot execute job)
+ /// </summary>
+ [Description("Dryer thermal cutoff activated. Cannot execute job")]
+ E_DRYER_THERMAL_CUTOFF = 103003,
+
+ /// <summary>
+ /// (Tunnel thermal cutoff activated. Cannot execute job)
+ /// </summary>
+ [Description("Tunnel thermal cutoff activated. Cannot execute job")]
+ E_TUNNEL_THERMAL_CUTOFF = 103004,
+
+ /// <summary>
+ /// (Dyeing head thermal cutoff activated. Cannot execute job)
+ /// </summary>
+ [Description("Dyeing head thermal cutoff activated. Cannot execute job")]
+ E_DYEING_HEAD_THERMAL_CUTOFF = 103005,
+
+ /// <summary>
+ /// (Mixer thermal cutoff activated. Cannot execute job)
+ /// </summary>
+ [Description("Mixer thermal cutoff activated. Cannot execute job")]
+ E_MIXER_THERMAL_CUTOFF = 103006,
+
+ /// <summary>
+ /// (Lubrication thermal cutoff activated. Cannot execute job)
+ /// </summary>
+ [Description("Lubrication thermal cutoff activated. Cannot execute job")]
+ E_LUBRICATION_THERMAL_CUTOFF = 103007,
+
+ /// <summary>
+ /// (No air flow in tunnel. Cannot execute job)
+ /// </summary>
+ [Description("No air flow in tunnel. Cannot execute job")]
+ E_TUNNEL_AIR_FLOW_SWITCH = 103008,
+
+ /// <summary>
+ /// (No Suction from recycled ink handling system. Cannot execute job)
+ /// </summary>
+ [Description("No Suction from recycled ink handling system. Cannot execute job")]
+ E_WHS_AIR_FLOW_SWITCH = 103009,
+
+ /// <summary>
+ /// (Air filter not present. Cannot execute job)
+ /// </summary>
+ [Description("Air filter not present. Cannot execute job")]
+ E_AIR_FILTER_NOT_PRESENT = 103010,
+
+ /// <summary>
+ /// (Software error has occurred. Cannot execute job )
+ /// </summary>
+ [Description("Software error has occurred. Cannot execute job ")]
+ E_UNINTENDED_RESET = 104000,
+
+ /// <summary>
+ /// (Software error has occurred. Cannot execute job )
+ /// </summary>
+ [Description("Software error has occurred. Cannot execute job ")]
+ E_SD_CARD_NOT_RESPONDING = 104001,
+
+ /// <summary>
+ /// (Communication error. Cannot execute job)
+ /// </summary>
+ [Description("Communication error. Cannot execute job")]
+ E_NO_COMMUNICATION_WITH_BTSR_1 = 105000,
+
+ /// <summary>
+ /// (Communication error. Cannot execute job)
+ /// </summary>
+ [Description("Communication error. Cannot execute job")]
+ E_NO_COMMUNICATION_WITH_BTSR_2 = 105001,
+
+ /// <summary>
+ /// (Communication error. Cannot execute job)
+ /// </summary>
+ [Description("Communication error. Cannot execute job")]
+ E_NO_COMMUNICATION_WITH_BTSR_3 = 105002,
+
+ /// <summary>
+ /// (Communication error. Cannot execute job)
+ /// </summary>
+ [Description("Communication error. Cannot execute job")]
+ E_NO_COMMUNICATION_WITH_BTSR_4 = 105003,
+
+ /// <summary>
+ /// (Communication error. Cannot execute job)
+ /// </summary>
+ [Description("Communication error. Cannot execute job")]
+ E_NO_COMMUNICATION_WITH_DRYER_BOARD = 105004,
+
+ /// <summary>
+ /// (Communication error. Cannot execute job)
+ /// </summary>
+ [Description("Communication error. Cannot execute job")]
+ E_NO_COMMUNICATION_WITH_DYEING_HEAD_BOARD = 105005,
+
+ /// <summary>
+ /// (Communication error. Cannot execute job)
+ /// </summary>
+ [Description("Communication error. Cannot execute job")]
+ E_NO_COMMUNICATION_WITH_WINDER_1_BOARD = 105006,
+
+ /// <summary>
+ /// (Communication error. Cannot execute job)
+ /// </summary>
+ [Description("Communication error. Cannot execute job")]
+ E_NO_COMMUNICATION_WITH_WINDER_2_BOARD = 105007,
+
+ /// <summary>
+ /// (Communication error. Cannot execute job)
+ /// </summary>
+ [Description("Communication error. Cannot execute job")]
+ E_NO_COMMUNICATION_WITH_WINDER_3_BOARD = 105008,
+
+ /// <summary>
+ /// (Communication error. Cannot execute job)
+ /// </summary>
+ [Description("Communication error. Cannot execute job")]
+ E_NO_COMMUNICATION_WITH_WINDER_4_BOARD = 105009,
+
+ /// <summary>
+ /// (Communication error. Cannot execute job)
+ /// </summary>
+ [Description("Communication error. Cannot execute job")]
+ E_NO_COMMUNICATION_WITH_IDS_1_BOARD = 105010,
+
+ /// <summary>
+ /// (Communication error. Cannot execute job)
+ /// </summary>
+ [Description("Communication error. Cannot execute job")]
+ E_NO_COMMUNICATION_WITH_IDS_2_BOARD = 105011,
+
+ /// <summary>
+ /// (Communication error. Cannot execute job)
+ /// </summary>
+ [Description("Communication error. Cannot execute job")]
+ E_NO_COMMUNICATION_WITH_IDS_3_BOARD = 105012,
+
+ /// <summary>
+ /// (Communication error. Cannot execute job)
+ /// </summary>
+ [Description("Communication error. Cannot execute job")]
+ E_NO_COMMUNICATION_WITH_IDS_4_BOARD = 105013,
+
+ /// <summary>
+ /// (Communication error. Cannot execute job)
+ /// </summary>
+ [Description("Communication error. Cannot execute job")]
+ E_NO_COMMUNICATION_WITH_MID_TANK_BOARD = 105014,
+
+ /// <summary>
+ /// (Communication error. Cannot execute job)
+ /// </summary>
+ [Description("Communication error. Cannot execute job")]
+ E_NO_COMMUNICATION_WITH_WHS_BOARD = 105015,
+
+ /// <summary>
+ /// (Communication error. Cannot execute job)
+ /// </summary>
+ [Description("Communication error. Cannot execute job")]
+ E_NO_COMMUNICATION_WITH_LUBRICANT_BOARD = 105016,
+
+ /// <summary>
+ /// (Communication error. Cannot execute job)
+ /// </summary>
+ [Description("Communication error. Cannot execute job")]
+ E_NO_COMMUNICATION_WITH_MAIN_BOARD = 105017,
+
+ /// <summary>
+ /// (Door is open. Cannot execute job)
+ /// </summary>
+ [Description("Door is open. Cannot execute job")]
+ E_LEFT_DOOR_OPEN = 106000,
+
+ /// <summary>
+ /// (Door is open. Cannot execute job)
+ /// </summary>
+ [Description("Door is open. Cannot execute job")]
+ E_RIGHT_DOOR_OPEN = 106001,
+
+ /// <summary>
+ /// (Door is open. Cannot execute job)
+ /// </summary>
+ [Description("Door is open. Cannot execute job")]
+ E_TOP_DOOR_OPEN = 106002,
+
+ /// <summary>
+ /// (Tunnel lid is open. Cannot execute job)
+ /// </summary>
+ [Description("Tunnel lid is open. Cannot execute job")]
+ E_TUNNEL_LID_IS_OPEN = 106003,
+
+ /// <summary>
+ /// (Arc lid is open. Cannot execute job)
+ /// </summary>
+ [Description("Arc lid is open. Cannot execute job")]
+ E_ARC_LID_IS_OPEN = 106004,
+
+ /// <summary>
+ /// (BTSR malfunction. Cannot execute job)
+ /// </summary>
+ [Description("BTSR malfunction. Cannot execute job")]
+ E_BTSR_1_MALFUNCTION = 107000,
+
+ /// <summary>
+ /// (BTSR malfunction. Cannot execute job)
+ /// </summary>
+ [Description("BTSR malfunction. Cannot execute job")]
+ E_BTSR_2_MALFUNCTION = 107001,
+
+ /// <summary>
+ /// (BTSR malfunction. Cannot execute job)
+ /// </summary>
+ [Description("BTSR malfunction. Cannot execute job")]
+ E_BTSR_3_MALFUNCTION = 107002,
+
+ /// <summary>
+ /// (BTSR malfunction. Cannot execute job)
+ /// </summary>
+ [Description("BTSR malfunction. Cannot execute job")]
+ E_BTSR_4_MALFUNCTION = 107003,
+
+ /// <summary>
+ /// (Tension is out of range. Cannot execute job)
+ /// </summary>
+ [Description("Tension is out of range. Cannot execute job")]
+ E_TENSION_IN_BTSR_1_IS_OUT_OF_RANGE = 107004,
+
+ /// <summary>
+ /// (Tension is out of range. Cannot execute job)
+ /// </summary>
+ [Description("Tension is out of range. Cannot execute job")]
+ E_TENSION_IN_BTSR_2_IS_OUT_OF_RANGE = 107005,
+
+ /// <summary>
+ /// (Tension is out of range. Cannot execute job)
+ /// </summary>
+ [Description("Tension is out of range. Cannot execute job")]
+ E_TENSION_IN_BTSR_3_IS_OUT_OF_RANGE = 107006,
+
+ /// <summary>
+ /// (Tension is out of range. Cannot execute job)
+ /// </summary>
+ [Description("Tension is out of range. Cannot execute job")]
+ E_TENSION_IN_BTSR_4_IS_OUT_OF_RANGE = 107007,
+
+ /// <summary>
+ /// (Thread break. Cannot execute job)
+ /// </summary>
+ [Description("Thread break. Cannot execute job")]
+ E_THREAD_BREAK = 107008,
+
+ /// <summary>
+ /// (Thread tension control failure. Cannot execute job)
+ /// </summary>
+ [Description("Thread tension control failure. Cannot execute job")]
+ E_DANCER_1_TENSION_CONTROL_FAILURE = 107009,
+
+ /// <summary>
+ /// (Thread tension control failure. Cannot execute job)
+ /// </summary>
+ [Description("Thread tension control failure. Cannot execute job")]
+ E_DANCER_2_TENSION_CONTROL_FAILURE = 107010,
+
+ /// <summary>
+ /// (Thread tension control failure. Cannot execute job)
+ /// </summary>
+ [Description("Thread tension control failure. Cannot execute job")]
+ E_DANCER_3_TENSION_CONTROL_FAILURE = 107011,
+
+ /// <summary>
+ /// (Thread tension control failure. Cannot execute job)
+ /// </summary>
+ [Description("Thread tension control failure. Cannot execute job")]
+ E_DANCER_4_TENSION_CONTROL_FAILURE = 107012,
+
+ /// <summary>
+ /// (Thread loading error. Cannot execute job)
+ /// </summary>
+ [Description("Thread loading error. Cannot execute job")]
+ E_THREAD_LOADING_ERROR = 107013,
+
+ /// <summary>
+ /// (Gripper malfunction. Cannot execute job)
+ /// </summary>
+ [Description("Gripper malfunction. Cannot execute job")]
+ E_GRIPPER_MALFUNCTION = 107014,
+
+ /// <summary>
+ /// (Thread missing. Cannot execute job)
+ /// </summary>
+ [Description("Thread missing. Cannot execute job")]
+ E_THREAD_MISSING = 107015,
+
+ /// <summary>
+ /// (Temperature in dyeing head is too high. Cannot execute job)
+ /// </summary>
+ [Description("Temperature in dyeing head is too high. Cannot execute job")]
+ E_DYEING_HEAD_ZONE_1_OVERTEMPERATURE = 108000,
+
+ /// <summary>
+ /// (Temperature in dyeing head is too high. Cannot execute job)
+ /// </summary>
+ [Description("Temperature in dyeing head is too high. Cannot execute job")]
+ E_DYEING_HEAD_ZONE_2_OVERTEMPERATURE = 108001,
+
+ /// <summary>
+ /// (Temperature in dyeing head is too high. Cannot execute job)
+ /// </summary>
+ [Description("Temperature in dyeing head is too high. Cannot execute job")]
+ E_DYEING_HEAD_ZONE_3_OVERTEMPERATURE = 108002,
+
+ /// <summary>
+ /// (Temperature in mixer is too high. Cannot execute job)
+ /// </summary>
+ [Description("Temperature in mixer is too high. Cannot execute job")]
+ E_MIXER_1_OVERTEMPERATURE = 108003,
+
+ /// <summary>
+ /// (Temperature in mixer is too high. Cannot execute job)
+ /// </summary>
+ [Description("Temperature in mixer is too high. Cannot execute job")]
+ E_MIXER_2_OVERTEMPERATURE = 108004,
+
+ /// <summary>
+ /// (Temperature in tunnel is too high. Cannot execute job)
+ /// </summary>
+ [Description("Temperature in tunnel is too high. Cannot execute job")]
+ E_TUNNEL_OVERTEMPERATURE = 108005,
+
+ /// <summary>
+ /// (Temperature in dryer is too high. Cannot execute job)
+ /// </summary>
+ [Description("Temperature in dryer is too high. Cannot execute job")]
+ E_DRYER_HEATER_1_OVERTEMPERATURE = 108007,
+
+ /// <summary>
+ /// (Temperature in dryer is too high. Cannot execute job)
+ /// </summary>
+ [Description("Temperature in dryer is too high. Cannot execute job")]
+ E_DRYER_HEATER_2_OVERTEMPERATURE = 108008,
+
+ /// <summary>
+ /// (Temperature in dryer is too high. Cannot execute job)
+ /// </summary>
+ [Description("Temperature in dryer is too high. Cannot execute job")]
+ E_DRYER_HEATER_3_OVERTEMPERATURE = 108009,
+
+ /// <summary>
+ /// (Temperature in lubricant is too high. Cannot execute job)
+ /// </summary>
+ [Description("Temperature in lubricant is too high. Cannot execute job")]
+ E_LUBRICANT_OVERTEMPERATURE = 108010,
+
+ /// <summary>
+ /// (Dyeing head is heating up. Cannot execute job)
+ /// </summary>
+ [Description("Dyeing head is heating up. Cannot execute job")]
+ E_DYEING_HEAD_ZONE_1_UNDERTEMPERATURE_A = 108011,
+
+ /// <summary>
+ /// (Dyeing head is heating up. Cannot execute job)
+ /// </summary>
+ [Description("Dyeing head is heating up. Cannot execute job")]
+ E_DYEING_HEAD_ZONE_2_UNDERTEMPERATURE_A = 108012,
+
+ /// <summary>
+ /// (Dyeing head is heating up. Cannot execute job)
+ /// </summary>
+ [Description("Dyeing head is heating up. Cannot execute job")]
+ E_DYEING_HEAD_ZONE_3_UNDERTEMPERATURE_A = 108013,
+
+ /// <summary>
+ /// (Mixer is heating up. Cannot execute job)
+ /// </summary>
+ [Description("Mixer is heating up. Cannot execute job")]
+ E_MIXER_1_UNDERTEMPERATURE_A = 108014,
+
+ /// <summary>
+ /// (Mixer is heating up. Cannot execute job)
+ /// </summary>
+ [Description("Mixer is heating up. Cannot execute job")]
+ E_MIXER_2_UNDERTEMPERATURE_A = 108015,
+
+ /// <summary>
+ /// (Tunnel is heating up. Cannot execute job)
+ /// </summary>
+ [Description("Tunnel is heating up. Cannot execute job")]
+ E_TUNNEL_UNDERTEMPERATURE_A = 108016,
+
+ /// <summary>
+ /// (Dryer is heating up. Cannot execute job)
+ /// </summary>
+ [Description("Dryer is heating up. Cannot execute job")]
+ E_DRYER_HEATER_1_UNDERTEMPERATURE_A = 108017,
+
+ /// <summary>
+ /// (Dryer is heating up. Cannot execute job)
+ /// </summary>
+ [Description("Dryer is heating up. Cannot execute job")]
+ E_DRYER_HEATER_2_UNDERTEMPERATURE_A = 108018,
+
+ /// <summary>
+ /// (Dryer is heating up. Cannot execute job)
+ /// </summary>
+ [Description("Dryer is heating up. Cannot execute job")]
+ E_DRYER_HEATER_3_UNDERTEMPERATURE_A = 108019,
+
+ /// <summary>
+ /// (Lubricant is heating up. Cannot execute job)
+ /// </summary>
+ [Description("Lubricant is heating up. Cannot execute job")]
+ E_LUBRICANT_UNDERTEMPERATURE_A = 108020,
+
+ /// <summary>
+ /// (Temperature in dyeing head is too low. Cannot execute job)
+ /// </summary>
+ [Description("Temperature in dyeing head is too low. Cannot execute job")]
+ E_DYEING_HEAD_ZONE_1_UNDRTEMPERATURE_B = 108021,
+
+ /// <summary>
+ /// (Temperature in dyeing head is too low. Cannot execute job)
+ /// </summary>
+ [Description("Temperature in dyeing head is too low. Cannot execute job")]
+ E_DYEING_HEAD_ZONE_2_UNDERTEMPERATURE_B = 108022,
+
+ /// <summary>
+ /// (Temperature in dyeing head is too low. Cannot execute job)
+ /// </summary>
+ [Description("Temperature in dyeing head is too low. Cannot execute job")]
+ E_DYEING_HEAD_ZONE_3_UNDERTEMPERATURE_B = 108023,
+
+ /// <summary>
+ /// (Temperature in mixer is too low. Cannot execute job)
+ /// </summary>
+ [Description("Temperature in mixer is too low. Cannot execute job")]
+ E_MIXER_1_UNDERTEMPERATURE_B = 108024,
+
+ /// <summary>
+ /// (Temperature in mixer is too low. Cannot execute job)
+ /// </summary>
+ [Description("Temperature in mixer is too low. Cannot execute job")]
+ E_MIXER_2_UNDERTEMPERATURE_B = 108025,
+
+ /// <summary>
+ /// (Temperature in tunnel is too low. Cannot execute job)
+ /// </summary>
+ [Description("Temperature in tunnel is too low. Cannot execute job")]
+ E_TUNNEL_UNDERTEMPERATURE_B = 108026,
+
+ /// <summary>
+ /// (Temperature in dryer is too low. Cannot execute job)
+ /// </summary>
+ [Description("Temperature in dryer is too low. Cannot execute job")]
+ E_DRYER_HEATER_1_UNDERTEMPERATURE_B = 108027,
+
+ /// <summary>
+ /// (Temperature in dryer is too low. Cannot execute job)
+ /// </summary>
+ [Description("Temperature in dryer is too low. Cannot execute job")]
+ E_DRYER_HEATER_2_UNDERTEMPERATURE_B = 108028,
+
+ /// <summary>
+ /// (Temperature in dryer is too low. Cannot execute job)
+ /// </summary>
+ [Description("Temperature in dryer is too low. Cannot execute job")]
+ E_DRYER_HEATER_3_UNDERTEMPERATURE_B = 108029,
+
+ /// <summary>
+ /// (Temperature in lubricant is too low. Cannot execute job)
+ /// </summary>
+ [Description("Temperature in lubricant is too low. Cannot execute job")]
+ E_LUBRICANT_UNDERTEMPERATURE_B = 108030,
+
+ /// <summary>
+ /// (Cooler temperature is too high. Cannot execute job)
+ /// </summary>
+ [Description("Cooler temperature is too high. Cannot execute job")]
+ E_WHS_1_COOLER_TEMPERATURE_IS_TOO_HIGH = 108031,
+
+ /// <summary>
+ /// (Cooler temperature is too low. Cannot execute job)
+ /// </summary>
+ [Description("Cooler temperature is too low. Cannot execute job")]
+ E_WHS_1_COOLER_TEMPERATURE_IS_TOO_LOW = 108032,
+
+ /// <summary>
+ /// (Cooler temperature is too high. Cannot execute job)
+ /// </summary>
+ [Description("Cooler temperature is too high. Cannot execute job")]
+ E_WHS_2_COOLER_TEMPERATURE_IS_TOO_HIGH = 108033,
+
+ /// <summary>
+ /// (Cooler temperature is too low. Cannot execute job)
+ /// </summary>
+ [Description("Cooler temperature is too low. Cannot execute job")]
+ E_WHS_2_COOLER_TEMPERATURE_IS_TOO_LOW = 108034,
+
+ /// <summary>
+ /// (Temperature measurement error has occurred. Cannot execute job)
+ /// </summary>
+ [Description("Temperature measurement error has occurred. Cannot execute job")]
+ E_TEMPERATURE_MEASUREMENT_ERROR = 108035,
+
+ /// <summary>
+ /// (Dryer internal temperature is too low. Cannot execute job)
+ /// </summary>
+ [Description("Dryer internal temperature is too low. Cannot execute job")]
+ E_DRYER_INTERNAL_TEMPERATURE_TOO_LOW = 108036,
+
+ /// <summary>
+ /// (Dyeing head zone current is out of range. Cannot execute job)
+ /// </summary>
+ [Description("Dyeing head zone current is out of range. Cannot execute job")]
+ E_DYEING_HEAD_ZONE_1_CURRENT_OUT_OF_RANGE = 109000,
+
+ /// <summary>
+ /// (Dyeing head zone current is out of range. Cannot execute job)
+ /// </summary>
+ [Description("Dyeing head zone current is out of range. Cannot execute job")]
+ E_DYEING_HEAD_ZONE_2_CURRENT_OUT_OF_RANGE = 109001,
+
+ /// <summary>
+ /// (Dyeing head zone current is out of range. Cannot execute job)
+ /// </summary>
+ [Description("Dyeing head zone current is out of range. Cannot execute job")]
+ E_DYEING_HEAD_ZONE_3_CURRENT_OUT_OF_RANGE = 109002,
+
+ /// <summary>
+ /// (Mixer heater current is out of range. Cannot execute job)
+ /// </summary>
+ [Description("Mixer heater current is out of range. Cannot execute job")]
+ E_MIXER_1_HEATER_CURRENT_OUT_OF_RANGE = 109003,
+
+ /// <summary>
+ /// (Mixer heater current is out of range. Cannot execute job)
+ /// </summary>
+ [Description("Mixer heater current is out of range. Cannot execute job")]
+ E_MIXER_2_HEATER_CURRENT_OUT_OF_RANGE = 109004,
+
+ /// <summary>
+ /// (Tunnel heater current is out of range. Cannot execute job)
+ /// </summary>
+ [Description("Tunnel heater current is out of range. Cannot execute job")]
+ E_TUNNEL_HEATER_CURRENT_OUT_OF_RANGE = 109005,
+
+ /// <summary>
+ /// (Dryer heater current is out of range. Cannot execute job)
+ /// </summary>
+ [Description("Dryer heater current is out of range. Cannot execute job")]
+ E_DRYER_HEATER_1_CURRENT_OUT_OF_RANGE = 109006,
+
+ /// <summary>
+ /// (Dryer heater current is out of range. Cannot execute job)
+ /// </summary>
+ [Description("Dryer heater current is out of range. Cannot execute job")]
+ E_DRYER_HEATER_2_CURRENT_OUT_OF_RANGE = 109007,
+
+ /// <summary>
+ /// (Dryer heater current is out of range. Cannot execute job)
+ /// </summary>
+ [Description("Dryer heater current is out of range. Cannot execute job")]
+ E_DRYER_HEATER_3_CURRENT_OUT_OF_RANGE = 109008,
+
+ /// <summary>
+ /// (Lubricant heater current is out of range. Cannot execute job)
+ /// </summary>
+ [Description("Lubricant heater current is out of range. Cannot execute job")]
+ E_LUBRICANT_HEATER_CURRENT_OUT_OF_RANGE = 109009,
+
+ /// <summary>
+ /// (Dyeing head zone current loop break. Cannot execute job)
+ /// </summary>
+ [Description("Dyeing head zone current loop break. Cannot execute job")]
+ E_DYEING_HEAD_ZONE_1_CURRENT_LOOP_BREAK = 109010,
+
+ /// <summary>
+ /// (Dyeing head zone current loop break. Cannot execute job)
+ /// </summary>
+ [Description("Dyeing head zone current loop break. Cannot execute job")]
+ E_DYEING_HEAD_ZONE_2_CURRENT_LOOP_BREAK = 109011,
+
+ /// <summary>
+ /// (Dyeing head zone current loop break. Cannot execute job)
+ /// </summary>
+ [Description("Dyeing head zone current loop break. Cannot execute job")]
+ E_DYEING_HEAD_ZONE_3_CURRENT_LOOP_BREAK = 109012,
+
+ /// <summary>
+ /// (Mixer heater current loop break. Cannot execute job)
+ /// </summary>
+ [Description("Mixer heater current loop break. Cannot execute job")]
+ E_MIXER_1_HEATER_CURRENT_LOOP_BREAK = 109013,
+
+ /// <summary>
+ /// (Mixer heater current loop break. Cannot execute job)
+ /// </summary>
+ [Description("Mixer heater current loop break. Cannot execute job")]
+ E_MIXER_2_HEATER_CURRENT_LOOP_BREAK = 109014,
+
+ /// <summary>
+ /// (Tunnel heater current loop break. Cannot execute job)
+ /// </summary>
+ [Description("Tunnel heater current loop break. Cannot execute job")]
+ E_TUNNEL_HEATER_CURRENT_LOOP_BREAK = 109015,
+
+ /// <summary>
+ /// (Dryer heater current loop break. Cannot execute job)
+ /// </summary>
+ [Description("Dryer heater current loop break. Cannot execute job")]
+ E_DRYER_HEATER_1_CURRENT_LOOP_BREAK = 109016,
+
+ /// <summary>
+ /// (Dryer heater current loop break. Cannot execute job)
+ /// </summary>
+ [Description("Dryer heater current loop break. Cannot execute job")]
+ E_DRYER_HEATER_2_CURRENT_LOOP_BREAK = 109017,
+
+ /// <summary>
+ /// (Dryer heater current loop break. Cannot execute job)
+ /// </summary>
+ [Description("Dryer heater current loop break. Cannot execute job")]
+ E_DRYER_HEATER_3_CURRENT_LOOP_BREAK = 109018,
+
+ /// <summary>
+ /// (Lubricant heater current loop break. Cannot execute job)
+ /// </summary>
+ [Description("Lubricant heater current loop break. Cannot execute job")]
+ E_LUBRICANT_HEATER_CURRENT_LOOP_BREAK = 109019,
+
+ /// <summary>
+ /// (Dryer main motor malfuncion. Cannot execute job)
+ /// </summary>
+ [Description("Dryer main motor malfuncion. Cannot execute job")]
+ E_DRYER_MAIN_MOTOR_MALFUNCTION = 110000,
+
+ /// <summary>
+ /// (Dryer thread loading motor malfuncion. Cannot execute job)
+ /// </summary>
+ [Description("Dryer thread loading motor malfuncion. Cannot execute job")]
+ E_DRYER_THREAD_LOADING_MOTOR_MALFUNCTION = 110001,
+
+ /// <summary>
+ /// (Winder 1 motor malfuncion. Cannot execute job)
+ /// </summary>
+ [Description("Winder 1 motor malfuncion. Cannot execute job")]
+ E_WINDER_1_MOTOR_MALFUNCTION = 110002,
+
+ /// <summary>
+ /// (Winder 2 motor malfuncion. Cannot execute job)
+ /// </summary>
+ [Description("Winder 2 motor malfuncion. Cannot execute job")]
+ E_WINDER_2_MOTOR_MALFUNCTION = 110003,
+
+ /// <summary>
+ /// (Winder 3 motor malfuncion. Cannot execute job)
+ /// </summary>
+ [Description("Winder 3 motor malfuncion. Cannot execute job")]
+ E_WINDER_3_MOTOR_MALFUNCTION = 110004,
+
+ /// <summary>
+ /// (Winder 4 motor malfuncion. Cannot execute job)
+ /// </summary>
+ [Description("Winder 4 motor malfuncion. Cannot execute job")]
+ E_WINDER_4_MOTOR_MALFUNCTION = 110005,
+
+ /// <summary>
+ /// (Dancer 1 motor malfuncion. Cannot execute job)
+ /// </summary>
+ [Description("Dancer 1 motor malfuncion. Cannot execute job")]
+ E_DANCER_1_MOTOR_MALFUNCTION = 110006,
+
+ /// <summary>
+ /// (Dancer 2 motor malfuncion. Cannot execute job)
+ /// </summary>
+ [Description("Dancer 2 motor malfuncion. Cannot execute job")]
+ E_DANCER_2_MOTOR_MALFUNCTION = 110007,
+
+ /// <summary>
+ /// (Dancer 3 motor malfuncion. Cannot execute job)
+ /// </summary>
+ [Description("Dancer 3 motor malfuncion. Cannot execute job")]
+ E_DANCER_3_MOTOR_MALFUNCTION = 110008,
+
+ /// <summary>
+ /// (Dancer 4 motor malfuncion. Cannot execute job)
+ /// </summary>
+ [Description("Dancer 4 motor malfuncion. Cannot execute job")]
+ E_DANCER_4_MOTOR_MALFUNCTION = 110009,
+
+ /// <summary>
+ /// (Dyeing head cleaner motor malfuncion. Cannot execute job)
+ /// </summary>
+ [Description("Dyeing head cleaner motor malfuncion. Cannot execute job")]
+ E_DYEING_HEAD_CLEANER_MOTOR_MALFUNCTION = 110010,
+
+ /// <summary>
+ /// (No suction. Cannot execute job.)
+ /// </summary>
+ [Description("No suction. Cannot execute job.")]
+ E_NO_SUCTION = 111000,
+
+ /// <summary>
+ /// (Dryer blower flow is too low. Cannot execute job)
+ /// </summary>
+ [Description("Dryer blower flow is too low. Cannot execute job")]
+ E_DRYER_BLOWER_FLOW_TOO_LOW = 111001,
+
+ /// <summary>
+ /// (Tunnel blower flow is too low. Cannot execute job)
+ /// </summary>
+ [Description("Tunnel blower flow is too low. Cannot execute job")]
+ E_TUNNEL_BLOWER_FLOW_TOO_LOW = 111002,
+
+ /// <summary>
+ /// (Insufficient suction fron WHS. Cannot execute job)
+ /// </summary>
+ [Description("Insufficient suction fron WHS. Cannot execute job")]
+ E_INSUFFICIENT_WHS_SUCTION = 111003,
+
+ /// <summary>
+ /// (Air filter is clogged. Cannot execute job)
+ /// </summary>
+ [Description("Air filter is clogged. Cannot execute job")]
+ E_AIR_FILTER_CLOGGED = 111004,
+
+ /// <summary>
+ /// (No circulation flow in blower. Cannot execute job)
+ /// </summary>
+ [Description("No circulation flow in blower. Cannot execute job")]
+ E_NO_CIRCULATION_FLOW_IN_DRYER = 111005,
+
+ /// <summary>
+ /// (Pressure in @ ink line too high. Cannot execute job)
+ /// </summary>
+ [Description("Pressure in @ ink line too high. Cannot execute job")]
+ E_INK_LINE_1_PRESSURE_TOO_HIGH = 112000,
+
+ /// <summary>
+ /// (Pressure in @ ink line too high. Cannot execute job)
+ /// </summary>
+ [Description("Pressure in @ ink line too high. Cannot execute job")]
+ E_INK_LINE_2_PRESSURE_TOO_HIGH = 112001,
+
+ /// <summary>
+ /// (Pressure in @ ink line too high. Cannot execute job)
+ /// </summary>
+ [Description("Pressure in @ ink line too high. Cannot execute job")]
+ E_INK_LINE_3_PRESSURE_TOO_HIGH = 112002,
+
+ /// <summary>
+ /// (Pressure in @ ink line too high. Cannot execute job)
+ /// </summary>
+ [Description("Pressure in @ ink line too high. Cannot execute job")]
+ E_INK_LINE_4_PRESSURE_TOO_HIGH = 112003,
+
+ /// <summary>
+ /// (Pressure in @ ink line too high. Cannot execute job)
+ /// </summary>
+ [Description("Pressure in @ ink line too high. Cannot execute job")]
+ E_INK_LINE_5_PRESSURE_TOO_HIGH = 112004,
+
+ /// <summary>
+ /// (Pressure in @ ink line too high. Cannot execute job)
+ /// </summary>
+ [Description("Pressure in @ ink line too high. Cannot execute job")]
+ E_INK_LINE_6_PRESSURE_TOO_HIGH = 112005,
+
+ /// <summary>
+ /// (Pressure in @ ink line too high. Cannot execute job)
+ /// </summary>
+ [Description("Pressure in @ ink line too high. Cannot execute job")]
+ E_INK_LINE_7_PRESSURE_TOO_HIGH = 112006,
+
+ /// <summary>
+ /// (Pressure in @ ink line too high. Cannot execute job)
+ /// </summary>
+ [Description("Pressure in @ ink line too high. Cannot execute job")]
+ E_INK_LINE_8_PRESSURE_TOO_HIGH = 112007,
+
+ /// <summary>
+ /// (Pressure in @ ink line too high. Cannot execute job)
+ /// </summary>
+ [Description("Pressure in @ ink line too high. Cannot execute job")]
+ E_INK_LINE_9_PRESSURE_TOO_HIGH = 112008,
+
+ /// <summary>
+ /// (Pressure in @ ink line too high. Cannot execute job)
+ /// </summary>
+ [Description("Pressure in @ ink line too high. Cannot execute job")]
+ E_INK_LINE_10_PRESSURE_TOO_HIGH = 112009,
+
+ /// <summary>
+ /// (Pressure in @ ink line too low. Cannot execute job)
+ /// </summary>
+ [Description("Pressure in @ ink line too low. Cannot execute job")]
+ E_INK_LINE_1_PRESSURE_TOO_LOW = 112010,
+
+ /// <summary>
+ /// (Pressure in @ ink line too low. Cannot execute job)
+ /// </summary>
+ [Description("Pressure in @ ink line too low. Cannot execute job")]
+ E_INK_LINE_2_PRESSURE_TOO_LOW = 112011,
+
+ /// <summary>
+ /// (Pressure in @ ink line too low. Cannot execute job)
+ /// </summary>
+ [Description("Pressure in @ ink line too low. Cannot execute job")]
+ E_INK_LINE_3_PRESSURE_TOO_LOW = 112012,
+
+ /// <summary>
+ /// (Pressure in @ ink line too low. Cannot execute job)
+ /// </summary>
+ [Description("Pressure in @ ink line too low. Cannot execute job")]
+ E_INK_LINE_4_PRESSURE_TOO_LOW = 112013,
+
+ /// <summary>
+ /// (Pressure in @ ink line too low. Cannot execute job)
+ /// </summary>
+ [Description("Pressure in @ ink line too low. Cannot execute job")]
+ E_INK_LINE_5_PRESSURE_TOO_LOW = 112014,
+
+ /// <summary>
+ /// (Pressure in @ ink line too low. Cannot execute job)
+ /// </summary>
+ [Description("Pressure in @ ink line too low. Cannot execute job")]
+ E_INK_LINE_6_PRESSURE_TOO_LOW = 112015,
+
+ /// <summary>
+ /// (Pressure in @ ink line too low. Cannot execute job)
+ /// </summary>
+ [Description("Pressure in @ ink line too low. Cannot execute job")]
+ E_INK_LINE_7_PRESSURE_TOO_LOW = 112016,
+
+ /// <summary>
+ /// (Pressure in @ ink line too low. Cannot execute job)
+ /// </summary>
+ [Description("Pressure in @ ink line too low. Cannot execute job")]
+ E_INK_LINE_8_PRESSURE_TOO_LOW = 112017,
+
+ /// <summary>
+ /// (Pressure in @ ink line too low. Cannot execute job)
+ /// </summary>
+ [Description("Pressure in @ ink line too low. Cannot execute job")]
+ E_INK_LINE_9_PRESSURE_TOO_LOW = 112018,
+
+ /// <summary>
+ /// (Pressure in @ ink line too low. Cannot execute job)
+ /// </summary>
+ [Description("Pressure in @ ink line too low. Cannot execute job")]
+ E_INK_LINE_10_PRESSURE_TOO_LOW = 112019,
+
+ /// <summary>
+ /// (Malfunction in @ ink pump. Cannot execute job)
+ /// </summary>
+ [Description("Malfunction in @ ink pump. Cannot execute job")]
+ E_INK_PUMP_1_MALFUNCTION = 112020,
+
+ /// <summary>
+ /// (Malfunction in @ ink pump. Cannot execute job)
+ /// </summary>
+ [Description("Malfunction in @ ink pump. Cannot execute job")]
+ E_INK_PUMP_2_MALFUNCTION = 112021,
+
+ /// <summary>
+ /// (Malfunction in @ ink pump. Cannot execute job)
+ /// </summary>
+ [Description("Malfunction in @ ink pump. Cannot execute job")]
+ E_INK_PUMP_3_MALFUNCTION = 112022,
+
+ /// <summary>
+ /// (Malfunction in @ ink pump. Cannot execute job)
+ /// </summary>
+ [Description("Malfunction in @ ink pump. Cannot execute job")]
+ E_INK_PUMP_4_MALFUNCTION = 112023,
+
+ /// <summary>
+ /// (Malfunction in @ ink pump. Cannot execute job)
+ /// </summary>
+ [Description("Malfunction in @ ink pump. Cannot execute job")]
+ E_INK_PUMP_5_MALFUNCTION = 112024,
+
+ /// <summary>
+ /// (Malfunction in @ ink pump. Cannot execute job)
+ /// </summary>
+ [Description("Malfunction in @ ink pump. Cannot execute job")]
+ E_INK_PUMP_6_MALFUNCTION = 112025,
+
+ /// <summary>
+ /// (Malfunction in @ ink pump. Cannot execute job)
+ /// </summary>
+ [Description("Malfunction in @ ink pump. Cannot execute job")]
+ E_INK_PUMP_7_MALFUNCTION = 112026,
+
+ /// <summary>
+ /// (Malfunction in @ ink pump. Cannot execute job)
+ /// </summary>
+ [Description("Malfunction in @ ink pump. Cannot execute job")]
+ E_INK_PUMP_8_MALFUNCTION = 112027,
+
+ /// <summary>
+ /// (Malfunction in @ ink pump. Cannot execute job)
+ /// </summary>
+ [Description("Malfunction in @ ink pump. Cannot execute job")]
+ E_INK_PUMP_9_MALFUNCTION = 112028,
+
+ /// <summary>
+ /// (Malfunction in @ ink pump. Cannot execute job)
+ /// </summary>
+ [Description("Malfunction in @ ink pump. Cannot execute job")]
+ E_INK_PUMP_10_MALFUNCTION = 112029,
+
+ /// <summary>
+ /// (Malfunction in @ ink pump. Cannot execute job)
+ /// </summary>
+ [Description("Malfunction in @ ink pump. Cannot execute job")]
+ E_INK_PUMP_11_MALFUNCTION = 112030,
+
+ /// <summary>
+ /// (Malfunction in @ ink pump. Cannot execute job)
+ /// </summary>
+ [Description("Malfunction in @ ink pump. Cannot execute job")]
+ E_INK_PUMP_12_MALFUNCTION = 112031,
+
+ /// <summary>
+ /// (Malfunction in @ ink pump. Cannot execute job)
+ /// </summary>
+ [Description("Malfunction in @ ink pump. Cannot execute job")]
+ E_INK_PUMP_13_MALFUNCTION = 112032,
+
+ /// <summary>
+ /// (Malfunction in @ ink pump. Cannot execute job)
+ /// </summary>
+ [Description("Malfunction in @ ink pump. Cannot execute job")]
+ E_INK_PUMP_14_MALFUNCTION = 112033,
+
+ /// <summary>
+ /// (Malfunction in @ ink pump. Cannot execute job)
+ /// </summary>
+ [Description("Malfunction in @ ink pump. Cannot execute job")]
+ E_INK_PUMP_15_MALFUNCTION = 112034,
+
+ /// <summary>
+ /// (The @ tank level is low)
+ /// </summary>
+ [Description("The @ tank level is low")]
+ E_INK_LINE_1_MID_TANK_LOW_LEVEL = 112035,
+
+ /// <summary>
+ /// (The @ tank level is low)
+ /// </summary>
+ [Description("The @ tank level is low")]
+ E_INK_LINE_2_MID_TANK_LOW_LEVEL = 112036,
+
+ /// <summary>
+ /// (The @ tank level is low)
+ /// </summary>
+ [Description("The @ tank level is low")]
+ E_INK_LINE_3_MID_TANK_LOW_LEVEL = 112037,
+
+ /// <summary>
+ /// (The @ tank level is low)
+ /// </summary>
+ [Description("The @ tank level is low")]
+ E_INK_LINE_4_MID_TANK_LOW_LEVEL = 112038,
+
+ /// <summary>
+ /// (The @ tank level is low)
+ /// </summary>
+ [Description("The @ tank level is low")]
+ E_INK_LINE_5_MID_TANK_LOW_LEVEL = 112039,
+
+ /// <summary>
+ /// (The @ tank level is low)
+ /// </summary>
+ [Description("The @ tank level is low")]
+ E_INK_LINE_6_MID_TANK_LOW_LEVEL = 112040,
+
+ /// <summary>
+ /// (The @ tank level is low)
+ /// </summary>
+ [Description("The @ tank level is low")]
+ E_INK_LINE_7_MID_TANK_LOW_LEVEL = 112041,
+
+ /// <summary>
+ /// (The @ tank level is low)
+ /// </summary>
+ [Description("The @ tank level is low")]
+ E_INK_LINE_8_MID_TANK_LOW_LEVEL = 112042,
+
+ /// <summary>
+ /// (The @ tank level is low)
+ /// </summary>
+ [Description("The @ tank level is low")]
+ E_INK_LINE_9_MID_TANK_LOW_LEVEL = 112043,
+
+ /// <summary>
+ /// (The @ tank level is low)
+ /// </summary>
+ [Description("The @ tank level is low")]
+ E_INK_LINE_10_MID_TANK_LOW_LEVEL = 112044,
+
+ /// <summary>
+ /// (Failed to fill @ tank. Cannot execute job)
+ /// </summary>
+ [Description("Failed to fill @ tank. Cannot execute job")]
+ E_INK_LINE_1_MID_TANK_FILL_TIMEOUT = 112045,
+
+ /// <summary>
+ /// (Failed to fill @ tank. Cannot execute job)
+ /// </summary>
+ [Description("Failed to fill @ tank. Cannot execute job")]
+ E_INK_LINE_2_MID_TANK_FILL_TIMEOUT = 112046,
+
+ /// <summary>
+ /// (Failed to fill @ tank. Cannot execute job)
+ /// </summary>
+ [Description("Failed to fill @ tank. Cannot execute job")]
+ E_INK_LINE_3_MID_TANK_FILL_TIMEOUT = 112047,
+
+ /// <summary>
+ /// (Failed to fill @ tank. Cannot execute job)
+ /// </summary>
+ [Description("Failed to fill @ tank. Cannot execute job")]
+ E_INK_LINE_4_MID_TANK_FILL_TIMEOUT = 112048,
+
+ /// <summary>
+ /// (Failed to fill @ tank. Cannot execute job)
+ /// </summary>
+ [Description("Failed to fill @ tank. Cannot execute job")]
+ E_INK_LINE_5_MID_TANK_FILL_TIMEOUT = 112049,
+
+ /// <summary>
+ /// (Failed to fill @ tank. Cannot execute job)
+ /// </summary>
+ [Description("Failed to fill @ tank. Cannot execute job")]
+ E_INK_LINE_6_MID_TANK_FILL_TIMEOUT = 112050,
+
+ /// <summary>
+ /// (Failed to fill @ tank. Cannot execute job)
+ /// </summary>
+ [Description("Failed to fill @ tank. Cannot execute job")]
+ E_INK_LINE_7_MID_TANK_FILL_TIMEOUT = 112051,
+
+ /// <summary>
+ /// (Failed to fill @ tank. Cannot execute job)
+ /// </summary>
+ [Description("Failed to fill @ tank. Cannot execute job")]
+ E_INK_LINE_8_MID_TANK_FILL_TIMEOUT = 112052,
+
+ /// <summary>
+ /// (Failed to fill @ tank. Cannot execute job)
+ /// </summary>
+ [Description("Failed to fill @ tank. Cannot execute job")]
+ E_INK_LINE_9_MID_TANK_FILL_TIMEOUT = 112053,
+
+ /// <summary>
+ /// (Failed to fill @ tank. Cannot execute job)
+ /// </summary>
+ [Description("Failed to fill @ tank. Cannot execute job")]
+ E_INK_LINE_10_MID_TANK_FILL_TIMEOUT = 112054,
+
+ /// <summary>
+ /// (Malfunction in @ tank. Cannot execute job)
+ /// </summary>
+ [Description("Malfunction in @ tank. Cannot execute job")]
+ E_INK_LINE_1_MID_TANK_MALFUNCTION = 112055,
+
+ /// <summary>
+ /// (Malfunction in @ tank. Cannot execute job)
+ /// </summary>
+ [Description("Malfunction in @ tank. Cannot execute job")]
+ E_INK_LINE_2_MID_TANK_MALFUNCTION = 112056,
+
+ /// <summary>
+ /// (Malfunction in @ tank. Cannot execute job)
+ /// </summary>
+ [Description("Malfunction in @ tank. Cannot execute job")]
+ E_INK_LINE_3_MID_TANK_MALFUNCTION = 112057,
+
+ /// <summary>
+ /// (Malfunction in @ tank. Cannot execute job)
+ /// </summary>
+ [Description("Malfunction in @ tank. Cannot execute job")]
+ E_INK_LINE_4_MID_TANK_MALFUNCTION = 112058,
+
+ /// <summary>
+ /// (Malfunction in @ tank. Cannot execute job)
+ /// </summary>
+ [Description("Malfunction in @ tank. Cannot execute job")]
+ E_INK_LINE_5_MID_TANK_MALFUNCTION = 112059,
+
+ /// <summary>
+ /// (Malfunction in @ tank. Cannot execute job)
+ /// </summary>
+ [Description("Malfunction in @ tank. Cannot execute job")]
+ E_INK_LINE_6_MID_TANK_MALFUNCTION = 112060,
+
+ /// <summary>
+ /// (Malfunction in @ tank. Cannot execute job)
+ /// </summary>
+ [Description("Malfunction in @ tank. Cannot execute job")]
+ E_INK_LINE_7_MID_TANK_MALFUNCTION = 112061,
+
+ /// <summary>
+ /// (Malfunction in @ tank. Cannot execute job)
+ /// </summary>
+ [Description("Malfunction in @ tank. Cannot execute job")]
+ E_INK_LINE_8_MID_TANK_MALFUNCTION = 112062,
+
+ /// <summary>
+ /// (Malfunction in @ tank. Cannot execute job)
+ /// </summary>
+ [Description("Malfunction in @ tank. Cannot execute job")]
+ E_INK_LINE_9_MID_TANK_MALFUNCTION = 112063,
+
+ /// <summary>
+ /// (Malfunction in @ tank. Cannot execute job)
+ /// </summary>
+ [Description("Malfunction in @ tank. Cannot execute job")]
+ E_INK_LINE_10_MID_TANK_MALFUNCTION = 112064,
+
}
}
diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/HardwareMotorTypes.cs b/Software/Visual_Studio/Tango.BL/Enumerations/HardwareMotorTypes.cs
index 3e860036c..c463054e8 100644
--- a/Software/Visual_Studio/Tango.BL/Enumerations/HardwareMotorTypes.cs
+++ b/Software/Visual_Studio/Tango.BL/Enumerations/HardwareMotorTypes.cs
@@ -199,5 +199,107 @@ namespace Tango.BL.Enumerations
[Description("Spare 5 Motor")]
MOTO_SPARE3_1 = 29,
+ /// <summary>
+ /// (Eureka Dryer Main)
+ /// </summary>
+ [Description("Eureka Dryer Main")]
+ E_MOTO_DRYER_DRIVING = 1000,
+
+ /// <summary>
+ /// (Eureka Dryer Loading)
+ /// </summary>
+ [Description("Eureka Dryer Loading")]
+ E_MOTO_DRYER_LOADING = 1001,
+
+ /// <summary>
+ /// (Eureka Winder 1)
+ /// </summary>
+ [Description("Eureka Winder 1")]
+ E_MOTO_WINDER_1 = 1002,
+
+ /// <summary>
+ /// (Eureka Winder 2)
+ /// </summary>
+ [Description("Eureka Winder 2")]
+ E_MOTO_WINDER_2 = 1003,
+
+ /// <summary>
+ /// (Eureka Winder 3)
+ /// </summary>
+ [Description("Eureka Winder 3")]
+ E_MOTO_WINDER_3 = 1004,
+
+ /// <summary>
+ /// (Eureka Winder 4)
+ /// </summary>
+ [Description("Eureka Winder 4")]
+ E_MOTO_WINDER_4 = 1005,
+
+ /// <summary>
+ /// (Eureka Winder Dancer 1)
+ /// </summary>
+ [Description("Eureka Winder Dancer 1")]
+ E_MOTO_DANCER_1 = 1006,
+
+ /// <summary>
+ /// (Eureka Winder Dancer 2)
+ /// </summary>
+ [Description("Eureka Winder Dancer 2")]
+ E_MOTO_DANCER_2 = 1007,
+
+ /// <summary>
+ /// (Eureka Winder Dancer 3)
+ /// </summary>
+ [Description("Eureka Winder Dancer 3")]
+ E_MOTO_DANCER_3 = 1008,
+
+ /// <summary>
+ /// (Eureka Winder Dancer 4)
+ /// </summary>
+ [Description("Eureka Winder Dancer 4")]
+ E_MOTO_DANCER_4 = 1009,
+
+ /// <summary>
+ /// (Eureka Puller)
+ /// </summary>
+ [Description("Eureka Puller")]
+ E_MOTO_PULLER = 1010,
+
+ /// <summary>
+ /// (Eureka Puller Dancer)
+ /// </summary>
+ [Description("Eureka Puller Dancer")]
+ E_MOTO_PULLER_DANCER = 1011,
+
+ /// <summary>
+ /// (Eureka Spare 1)
+ /// </summary>
+ [Description("Eureka Spare 1")]
+ E_MOTO_SPARE_1 = 1012,
+
+ /// <summary>
+ /// (Eureka Spare 2)
+ /// </summary>
+ [Description("Eureka Spare 2")]
+ E_MOTO_SPARE_2 = 1013,
+
+ /// <summary>
+ /// (Eureka Spare 3)
+ /// </summary>
+ [Description("Eureka Spare 3")]
+ E_MOTO_SPARE_3 = 1014,
+
+ /// <summary>
+ /// (Eureka Spare 4)
+ /// </summary>
+ [Description("Eureka Spare 4")]
+ E_MOTO_SPARE_4 = 1015,
+
+ /// <summary>
+ /// (Eureka Spare 5)
+ /// </summary>
+ [Description("Eureka Spare 5")]
+ E_MOTO_SPARE_5 = 1016,
+
}
}
diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/HardwarePidControlTypes.cs b/Software/Visual_Studio/Tango.BL/Enumerations/HardwarePidControlTypes.cs
index 85e302598..17082a4f6 100644
--- a/Software/Visual_Studio/Tango.BL/Enumerations/HardwarePidControlTypes.cs
+++ b/Software/Visual_Studio/Tango.BL/Enumerations/HardwarePidControlTypes.cs
@@ -217,5 +217,131 @@ namespace Tango.BL.Enumerations
[Description("Head Blower 2")]
HeadBlower_2 = 32,
+ /// <summary>
+ /// (Eureka Dyer Heater 1)
+ /// </summary>
+ [Description("Eureka Dyer Heater 1")]
+ E_PID_DRYER_HEATER_1 = 1000,
+
+ /// <summary>
+ /// (Eureka Dyer Heater 2)
+ /// </summary>
+ [Description("Eureka Dyer Heater 2")]
+ E_PID_DRYER_HEATER_2 = 1001,
+
+ /// <summary>
+ /// (Eureka Dyer Heater 3)
+ /// </summary>
+ [Description("Eureka Dyer Heater 3")]
+ E_PID_DRYER_HEATER_3 = 1002,
+
+ /// <summary>
+ /// (Eureka Head Heater 1)
+ /// </summary>
+ [Description("Eureka Head Heater 1")]
+ E_PID_HEAD_HEATER_1 = 1003,
+
+ /// <summary>
+ /// (Eureka Head Heater 2)
+ /// </summary>
+ [Description("Eureka Head Heater 2")]
+ E_PID_HEAD_HEATER_2 = 1004,
+
+ /// <summary>
+ /// (Eureka Head Heater 3)
+ /// </summary>
+ [Description("Eureka Head Heater 3")]
+ E_PID_HEAD_HEATER_3 = 1005,
+
+ /// <summary>
+ /// (Eureka Mixer Heater)
+ /// </summary>
+ [Description("Eureka Mixer Heater")]
+ E_PID_MIXER_HEATER = 1006,
+
+ /// <summary>
+ /// (Eureka Tunnel Heater)
+ /// </summary>
+ [Description("Eureka Tunnel Heater")]
+ E_PID_TUNNEL_HEATER = 1007,
+
+ /// <summary>
+ /// (Eureka Lubricant Heater)
+ /// </summary>
+ [Description("Eureka Lubricant Heater")]
+ E_PID_LUBRICANT_HEATER = 1008,
+
+ /// <summary>
+ /// (Eureka Winder 1)
+ /// </summary>
+ [Description("Eureka Winder 1")]
+ E_WINDER_1 = 1009,
+
+ /// <summary>
+ /// (Eureka Winder 2)
+ /// </summary>
+ [Description("Eureka Winder 2")]
+ E_WINDER_2 = 1010,
+
+ /// <summary>
+ /// (Eureka Winder 3)
+ /// </summary>
+ [Description("Eureka Winder 3")]
+ E_WINDER_3 = 1011,
+
+ /// <summary>
+ /// (Eureka Winder 4)
+ /// </summary>
+ [Description("Eureka Winder 4")]
+ E_WINDER_4 = 1012,
+
+ /// <summary>
+ /// (Eureka Dryer Air Flow)
+ /// </summary>
+ [Description("Eureka Dryer Air Flow")]
+ E_DRYER_AIR_FLOW = 1013,
+
+ /// <summary>
+ /// (Eureka Puller)
+ /// </summary>
+ [Description("Eureka Puller")]
+ E_PULLER = 1014,
+
+ /// <summary>
+ /// (Eureka Tunnel Air Flow Left)
+ /// </summary>
+ [Description("Eureka Tunnel Air Flow Left")]
+ E_TUNNEL_AIR_FLOW_LEFT = 1015,
+
+ /// <summary>
+ /// (Eureka Tunnel Air Flow Right)
+ /// </summary>
+ [Description("Eureka Tunnel Air Flow Right")]
+ E_TUNNEL_AIR_FLOW_RIGHT = 1016,
+
+ /// <summary>
+ /// (Eureka Spare 1)
+ /// </summary>
+ [Description("Eureka Spare 1")]
+ E_PID_SPARE_1 = 1017,
+
+ /// <summary>
+ /// (Eureka Spare 2)
+ /// </summary>
+ [Description("Eureka Spare 2")]
+ E_PID_SPARE_2 = 1018,
+
+ /// <summary>
+ /// (Eureka Spare 3)
+ /// </summary>
+ [Description("Eureka Spare 3")]
+ E_PID_SPARE_3 = 1019,
+
+ /// <summary>
+ /// (Eureka Spare 4)
+ /// </summary>
+ [Description("Eureka Spare 4")]
+ E_PID_SPARE_4 = 1020,
+
}
}
diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/MachineTypes.cs b/Software/Visual_Studio/Tango.BL/Enumerations/MachineTypes.cs
new file mode 100644
index 000000000..381b87cbc
--- /dev/null
+++ b/Software/Visual_Studio/Tango.BL/Enumerations/MachineTypes.cs
@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Tango.BL.Enumerations
+{
+ public enum MachineTypes
+ {
+ [Description("TS-1800")]
+ TS1800 = 0,
+ [Description("Twine X4")]
+ Eureka = 1,
+ }
+}
diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/MidTankTypes.cs b/Software/Visual_Studio/Tango.BL/Enumerations/MidTankTypes.cs
index b1255d8ff..b6a497dee 100644
--- a/Software/Visual_Studio/Tango.BL/Enumerations/MidTankTypes.cs
+++ b/Software/Visual_Studio/Tango.BL/Enumerations/MidTankTypes.cs
@@ -37,5 +37,11 @@ namespace Tango.BL.Enumerations
[Description("No Mid Tank")]
NoMidTank = 3,
+ /// <summary>
+ /// (Eureka 5L Jerrican)
+ /// </summary>
+ [Description("Eureka 5L Jerrican")]
+ Eureka5LJerrican = 4,
+
}
}
diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/TechHeaters.cs b/Software/Visual_Studio/Tango.BL/Enumerations/TechHeaters.cs
index 9731e5b61..b5236577d 100644
--- a/Software/Visual_Studio/Tango.BL/Enumerations/TechHeaters.cs
+++ b/Software/Visual_Studio/Tango.BL/Enumerations/TechHeaters.cs
@@ -127,5 +127,71 @@ namespace Tango.BL.Enumerations
[Description("Head Cover Heater 2")]
HeadCoverHeater2 = 17,
+ /// <summary>
+ /// (Eureka Dryer 1)
+ /// </summary>
+ [Description("Eureka Dryer 1")]
+ E_DRYER_HEATER_1 = 1000,
+
+ /// <summary>
+ /// (Eureka Dryer 2)
+ /// </summary>
+ [Description("Eureka Dryer 2")]
+ E_DRYER_HEATER_2 = 1001,
+
+ /// <summary>
+ /// (Eureka Dryer 3)
+ /// </summary>
+ [Description("Eureka Dryer 3")]
+ E_DRYER_HEATER_3 = 1002,
+
+ /// <summary>
+ /// (Eureka Head 1)
+ /// </summary>
+ [Description("Eureka Head 1")]
+ E_HEAD_HEATER_1 = 1003,
+
+ /// <summary>
+ /// (Eureka Head 2)
+ /// </summary>
+ [Description("Eureka Head 2")]
+ E_HEAD_HEATER_2 = 1004,
+
+ /// <summary>
+ /// (Eureka Head 3)
+ /// </summary>
+ [Description("Eureka Head 3")]
+ E_HEAD_HEATER_3 = 1005,
+
+ /// <summary>
+ /// (Eureka Mixer)
+ /// </summary>
+ [Description("Eureka Mixer")]
+ E_MIXER_HEATER = 1006,
+
+ /// <summary>
+ /// (Eureka Tunnel)
+ /// </summary>
+ [Description("Eureka Tunnel")]
+ E_TUNNEL_HEATER = 1007,
+
+ /// <summary>
+ /// (Eureka Lubricant)
+ /// </summary>
+ [Description("Eureka Lubricant")]
+ E_LUBRICANT_HEATER = 1008,
+
+ /// <summary>
+ /// (Eureka Spare 1)
+ /// </summary>
+ [Description("Eureka Spare 1")]
+ E_SPARE_1 = 1009,
+
+ /// <summary>
+ /// (Eureka Spare 2)
+ /// </summary>
+ [Description("Eureka Spare 2")]
+ E_SPARE_2 = 1010,
+
}
}
diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/TechMonitors.cs b/Software/Visual_Studio/Tango.BL/Enumerations/TechMonitors.cs
index 165fe2bd3..c3c88f409 100644
--- a/Software/Visual_Studio/Tango.BL/Enumerations/TechMonitors.cs
+++ b/Software/Visual_Studio/Tango.BL/Enumerations/TechMonitors.cs
@@ -218,6 +218,624 @@ namespace Tango.BL.Enumerations
DryerZone3Temperature = 18,
/// <summary>
+ /// (Eureka Ambient Temperature)
+ /// </summary>
+ [Description("Eureka Ambient Temperature")]
+ EuAmbientTemperature = 1022,
+
+ /// <summary>
+ /// (Eureka Blower Voltage)
+ /// </summary>
+ [Description("Eureka Blower Voltage")]
+ EuBlowerVoltage = 1097,
+
+ /// <summary>
+ /// (Eureka BTSR 1 Tension)
+ /// </summary>
+ [Description("Eureka BTSR 1 Tension")]
+ EuBtsr1DispAv = 1035,
+
+ /// <summary>
+ /// (Eureka BTSR 1 Peak Max)
+ /// </summary>
+ [Description("Eureka BTSR 1 Peak Max")]
+ EuBtsr1PeakMax = 1037,
+
+ /// <summary>
+ /// (Eureka BTSR 1 Peak Min)
+ /// </summary>
+ [Description("Eureka BTSR 1 Peak Min")]
+ EuBtsr1PeakMin = 1036,
+
+ /// <summary>
+ /// (Eureka BTSR 1 Speed)
+ /// </summary>
+ [Description("Eureka BTSR 1 Speed")]
+ EuBtsr1Speed = 1033,
+
+ /// <summary>
+ /// (Eureka BTSR 1 Speed Average)
+ /// </summary>
+ [Description("Eureka BTSR 1 Speed Average")]
+ EuBtsr1SpeedAv = 1034,
+
+ /// <summary>
+ /// (Eureka BTSR 2 Tension)
+ /// </summary>
+ [Description("Eureka BTSR 2 Tension")]
+ EuBtsr2DispAv = 1040,
+
+ /// <summary>
+ /// (Eureka BTSR 2 Peak Max)
+ /// </summary>
+ [Description("Eureka BTSR 2 Peak Max")]
+ EuBtsr2PeakMax = 1042,
+
+ /// <summary>
+ /// (Eureka BTSR 2 Peak Min)
+ /// </summary>
+ [Description("Eureka BTSR 2 Peak Min")]
+ EuBtsr2PeakMin = 1041,
+
+ /// <summary>
+ /// (Eureka BTSR 2 Speed)
+ /// </summary>
+ [Description("Eureka BTSR 2 Speed")]
+ EuBtsr2Speed = 1038,
+
+ /// <summary>
+ /// (Eureka BTSR 2 Speed Average)
+ /// </summary>
+ [Description("Eureka BTSR 2 Speed Average")]
+ EuBtsr2SpeedAv = 1039,
+
+ /// <summary>
+ /// (Eureka BTSR 3 Tension)
+ /// </summary>
+ [Description("Eureka BTSR 3 Tension")]
+ EuBtsr3DispAv = 1045,
+
+ /// <summary>
+ /// (Eureka BTSR 3 Peak Max)
+ /// </summary>
+ [Description("Eureka BTSR 3 Peak Max")]
+ EuBtsr3PeakMax = 1047,
+
+ /// <summary>
+ /// (Eureka BTSR 3 Peak Min)
+ /// </summary>
+ [Description("Eureka BTSR 3 Peak Min")]
+ EuBtsr3PeakMin = 1046,
+
+ /// <summary>
+ /// (Eureka BTSR 3 Speed)
+ /// </summary>
+ [Description("Eureka BTSR 3 Speed")]
+ EuBtsr3Speed = 1043,
+
+ /// <summary>
+ /// (Eureka BTSR 3 Speed Average)
+ /// </summary>
+ [Description("Eureka BTSR 3 Speed Average")]
+ EuBtsr3SpeedAv = 1044,
+
+ /// <summary>
+ /// (Eureka BTSR 4 Tension)
+ /// </summary>
+ [Description("Eureka BTSR 4 Tension")]
+ EuBtsr4DispAv = 1052,
+
+ /// <summary>
+ /// (Eureka BTSR 4 Peak Max)
+ /// </summary>
+ [Description("Eureka BTSR 4 Peak Max")]
+ EuBtsr4PeakMax = 1051,
+
+ /// <summary>
+ /// (Eureka BTSR 4 Peak Min)
+ /// </summary>
+ [Description("Eureka BTSR 4 Peak Min")]
+ EuBtsr4PeakMin = 1050,
+
+ /// <summary>
+ /// (Eureka BTSR 4 Speed)
+ /// </summary>
+ [Description("Eureka BTSR 4 Speed")]
+ EuBtsr4Speed = 1048,
+
+ /// <summary>
+ /// (Eureka BTSR 4 Speed Average)
+ /// </summary>
+ [Description("Eureka BTSR 4 Speed Average")]
+ EuBtsr4SpeedAv = 1049,
+
+ /// <summary>
+ /// (Eureka Chiller Temperature)
+ /// </summary>
+ [Description("Eureka Chiller Temperature")]
+ EuChillerTemperature = 1091,
+
+ /// <summary>
+ /// (Eureka Dispenser 10 Voltage)
+ /// </summary>
+ [Description("Eureka Dispenser 10 Voltage")]
+ EuDispenser10Voltage = 1066,
+
+ /// <summary>
+ /// (Eureka Dispenser 11 Voltage)
+ /// </summary>
+ [Description("Eureka Dispenser 11 Voltage")]
+ EuDispenser11Voltage = 1067,
+
+ /// <summary>
+ /// (Eureka Dispenser 12 Voltage)
+ /// </summary>
+ [Description("Eureka Dispenser 12 Voltage")]
+ EuDispenser12Voltage = 1068,
+
+ /// <summary>
+ /// (Eureka Dispenser 13 Voltage)
+ /// </summary>
+ [Description("Eureka Dispenser 13 Voltage")]
+ EuDispenser13Voltage = 1069,
+
+ /// <summary>
+ /// (Eureka Dispenser 14 Voltage)
+ /// </summary>
+ [Description("Eureka Dispenser 14 Voltage")]
+ EuDispenser14Voltage = 1070,
+
+ /// <summary>
+ /// (Eureka Dispenser 15 Voltage)
+ /// </summary>
+ [Description("Eureka Dispenser 15 Voltage")]
+ EuDispenser15Voltage = 1071,
+
+ /// <summary>
+ /// (Eureka Dispenser 16 Voltage)
+ /// </summary>
+ [Description("Eureka Dispenser 16 Voltage")]
+ EuDispenser16Voltage = 1072,
+
+ /// <summary>
+ /// (Eureka Dispenser 1 Pressure)
+ /// </summary>
+ [Description("Eureka Dispenser 1 Pressure")]
+ EuDispenser1Pressure = 1074,
+
+ /// <summary>
+ /// (Eureka Dispenser 1 Voltage)
+ /// </summary>
+ [Description("Eureka Dispenser 1 Voltage")]
+ EuDispenser1Voltage = 1057,
+
+ /// <summary>
+ /// (Eureka Dispenser 2 Pressure)
+ /// </summary>
+ [Description("Eureka Dispenser 2 Pressure")]
+ EuDispenser2Pressure = 1075,
+
+ /// <summary>
+ /// (Eureka Dispenser 2 Voltage)
+ /// </summary>
+ [Description("Eureka Dispenser 2 Voltage")]
+ EuDispenser2Voltage = 1058,
+
+ /// <summary>
+ /// (Eureka Dispenser 3 Pressure)
+ /// </summary>
+ [Description("Eureka Dispenser 3 Pressure")]
+ EuDispenser3Pressure = 1076,
+
+ /// <summary>
+ /// (Eureka Dispenser 3 Voltage)
+ /// </summary>
+ [Description("Eureka Dispenser 3 Voltage")]
+ EuDispenser3Voltage = 1059,
+
+ /// <summary>
+ /// (Eureka Dispenser 4 Pressure)
+ /// </summary>
+ [Description("Eureka Dispenser 4 Pressure")]
+ EuDispenser4Pressure = 1077,
+
+ /// <summary>
+ /// (Eureka Dispenser 4 Voltage)
+ /// </summary>
+ [Description("Eureka Dispenser 4 Voltage")]
+ EuDispenser4Voltage = 1060,
+
+ /// <summary>
+ /// (Eureka Dispenser 5 Pressure)
+ /// </summary>
+ [Description("Eureka Dispenser 5 Pressure")]
+ EuDispenser5Pressure = 1078,
+
+ /// <summary>
+ /// (Eureka Dispenser 5 Voltage)
+ /// </summary>
+ [Description("Eureka Dispenser 5 Voltage")]
+ EuDispenser5Voltage = 1061,
+
+ /// <summary>
+ /// (Eureka Dispenser 6 Pressure)
+ /// </summary>
+ [Description("Eureka Dispenser 6 Pressure")]
+ EuDispenser6Pressure = 1079,
+
+ /// <summary>
+ /// (Eureka Dispenser 6 Voltage)
+ /// </summary>
+ [Description("Eureka Dispenser 6 Voltage")]
+ EuDispenser6Voltage = 1062,
+
+ /// <summary>
+ /// (Eureka Dispenser 7 Pressure)
+ /// </summary>
+ [Description("Eureka Dispenser 7 Pressure")]
+ EuDispenser7Pressure = 1080,
+
+ /// <summary>
+ /// (Eureka Dispenser 7 Voltage)
+ /// </summary>
+ [Description("Eureka Dispenser 7 Voltage")]
+ EuDispenser7Voltage = 1063,
+
+ /// <summary>
+ /// (Eureka Dispenser 8 Pressure)
+ /// </summary>
+ [Description("Eureka Dispenser 8 Pressure")]
+ EuDispenser8Pressure = 1081,
+
+ /// <summary>
+ /// (Eureka Dispenser 8 Voltage)
+ /// </summary>
+ [Description("Eureka Dispenser 8 Voltage")]
+ EuDispenser8Voltage = 1064,
+
+ /// <summary>
+ /// (Eureka Dispenser 9 Voltage)
+ /// </summary>
+ [Description("Eureka Dispenser 9 Voltage")]
+ EuDispenser9Voltage = 1065,
+
+ /// <summary>
+ /// (Eureka Dryer Air Flow)
+ /// </summary>
+ [Description("Eureka Dryer Air Flow")]
+ EuDryerAirFlow = 1096,
+
+ /// <summary>
+ /// (Eureka Dryer Motor Current)
+ /// </summary>
+ [Description("Eureka Dryer Motor Current")]
+ EuDryerMotorCurrent = 1010,
+
+ /// <summary>
+ /// (Eureka Dryer Motor Target Velocity)
+ /// </summary>
+ [Description("Eureka Dryer Motor Target Velocity")]
+ EuDryerMotorTargetVelocity = 1009,
+
+ /// <summary>
+ /// (Eureka Dryer Motor Velocity)
+ /// </summary>
+ [Description("Eureka Dryer Motor Velocity")]
+ EuDryerMotorVelocity = 1008,
+
+ /// <summary>
+ /// (Eureka Dryer Zone 1 Current)
+ /// </summary>
+ [Description("Eureka Dryer Zone 1 Current")]
+ EuDryerZone1Current = 1024,
+
+ /// <summary>
+ /// (Eureka Dryer Zone 1 Temperature)
+ /// </summary>
+ [Description("Eureka Dryer Zone 1 Temperature")]
+ EuDryerZone1Temperature = 1013,
+
+ /// <summary>
+ /// (Eureka Dryer Zone 2 Current)
+ /// </summary>
+ [Description("Eureka Dryer Zone 2 Current")]
+ EuDryerZone2Current = 1025,
+
+ /// <summary>
+ /// (Eureka Dryer Zone 2 Temperature)
+ /// </summary>
+ [Description("Eureka Dryer Zone 2 Temperature")]
+ EuDryerZone2Temperature = 1014,
+
+ /// <summary>
+ /// (Eureka Dryer Zone 3 Current)
+ /// </summary>
+ [Description("Eureka Dryer Zone 3 Current")]
+ EuDryerZone3Current = 1026,
+
+ /// <summary>
+ /// (Eureka Dryer Zone 3 Temperature)
+ /// </summary>
+ [Description("Eureka Dryer Zone 3 Temperature")]
+ EuDryerZone3Temperature = 1015,
+
+ /// <summary>
+ /// (Eureka Electrical Cabinet Temperature)
+ /// </summary>
+ [Description("Eureka Electrical Cabinet Temperature")]
+ EuElectricalCabinetTemperature = 1023,
+
+ /// <summary>
+ /// (Eureka Head Left Air Flow)
+ /// </summary>
+ [Description("Eureka Head Left Air Flow")]
+ EuHeadLeftAirFlow = 1093,
+
+ /// <summary>
+ /// (Eureka Head Left Voltage)
+ /// </summary>
+ [Description("Eureka Head Left Voltage")]
+ EuHeadLeftVoltage = 1095,
+
+ /// <summary>
+ /// (Eureka Head Right Air Flow)
+ /// </summary>
+ [Description("Eureka Head Right Air Flow")]
+ EuHeadRightAirFlow = 1092,
+
+ /// <summary>
+ /// (Eureka Head Right Voltage)
+ /// </summary>
+ [Description("Eureka Head Right Voltage")]
+ EuHeadRightVoltage = 1094,
+
+ /// <summary>
+ /// (Eureka Head Zone 1 Current)
+ /// </summary>
+ [Description("Eureka Head Zone 1 Current")]
+ EuHeadZone1Current = 1027,
+
+ /// <summary>
+ /// (Eureka Head Zone 1 Temperature)
+ /// </summary>
+ [Description("Eureka Head Zone 1 Temperature")]
+ EuHeadZone1Temperature = 1016,
+
+ /// <summary>
+ /// (Eureka Head Zone 2 Current)
+ /// </summary>
+ [Description("Eureka Head Zone 2 Current")]
+ EuHeadZone2Current = 1028,
+
+ /// <summary>
+ /// (Eureka Head Zone 2 Temperature)
+ /// </summary>
+ [Description("Eureka Head Zone 2 Temperature")]
+ EuHeadZone2Temperature = 1017,
+
+ /// <summary>
+ /// (Eureka Head Zone 3 Current)
+ /// </summary>
+ [Description("Eureka Head Zone 3 Current")]
+ EuHeadZone3Current = 1029,
+
+ /// <summary>
+ /// (Eureka Head Zone 3 Temperature)
+ /// </summary>
+ [Description("Eureka Head Zone 3 Temperature")]
+ EuHeadZone3Temperature = 1018,
+
+ /// <summary>
+ /// (Eureka Ink Lines Pressure)
+ /// </summary>
+ [Description("Eureka Ink Lines Pressure")]
+ EuInkLinesPressure = 1055,
+
+ /// <summary>
+ /// (Eureka Lubricant Current)
+ /// </summary>
+ [Description("Eureka Lubricant Current")]
+ EuLubricantCurrent = 1032,
+
+ /// <summary>
+ /// (Eureka Lubricant Pressure)
+ /// </summary>
+ [Description("Eureka Lubricant Pressure")]
+ EuLubricantPressure = 1082,
+
+ /// <summary>
+ /// (Eureka Lubricant Pump Voltage)
+ /// </summary>
+ [Description("Eureka Lubricant Pump Voltage")]
+ EuLubricantPumpVoltage = 1073,
+
+ /// <summary>
+ /// (Eureka Lubricant Temperature)
+ /// </summary>
+ [Description("Eureka Lubricant Temperature")]
+ EuLubricantTemperature = 1021,
+
+ /// <summary>
+ /// (Eureka Mid Tank 1 Level)
+ /// </summary>
+ [Description("Eureka Mid Tank 1 Level")]
+ EuMidTank1Level = 1083,
+
+ /// <summary>
+ /// (Eureka Mid Tank 2 Level)
+ /// </summary>
+ [Description("Eureka Mid Tank 2 Level")]
+ EuMidTank2Level = 1084,
+
+ /// <summary>
+ /// (Eureka Mid Tank 3 Level)
+ /// </summary>
+ [Description("Eureka Mid Tank 3 Level")]
+ EuMidTank3Level = 1085,
+
+ /// <summary>
+ /// (Eureka Mid Tank 4 Level)
+ /// </summary>
+ [Description("Eureka Mid Tank 4 Level")]
+ EuMidTank4Level = 1086,
+
+ /// <summary>
+ /// (Eureka Mid Tank 5 Level)
+ /// </summary>
+ [Description("Eureka Mid Tank 5 Level")]
+ EuMidTank5Level = 1087,
+
+ /// <summary>
+ /// (Eureka Mid Tank 6 Level)
+ /// </summary>
+ [Description("Eureka Mid Tank 6 Level")]
+ EuMidTank6Level = 1088,
+
+ /// <summary>
+ /// (Eureka Mid Tank 7 Level)
+ /// </summary>
+ [Description("Eureka Mid Tank 7 Level")]
+ EuMidTank7Level = 1089,
+
+ /// <summary>
+ /// (Eureka Mid Tank 8 Level)
+ /// </summary>
+ [Description("Eureka Mid Tank 8 Level")]
+ EuMidTank8Level = 1090,
+
+ /// <summary>
+ /// (Eureka Mixer Current)
+ /// </summary>
+ [Description("Eureka Mixer Current")]
+ EuMixerCurrent = 1030,
+
+ /// <summary>
+ /// (Eureka Mixer Temperature)
+ /// </summary>
+ [Description("Eureka Mixer Temperature")]
+ EuMixerTemperature = 1019,
+
+ /// <summary>
+ /// (Eureka Puller Dancer)
+ /// </summary>
+ [Description("Eureka Puller Dancer")]
+ EuPullerDancer = 1011,
+
+ /// <summary>
+ /// (Eureka Puller Motor)
+ /// </summary>
+ [Description("Eureka Puller Motor")]
+ EuPullerMotor = 1012,
+
+ /// <summary>
+ /// (Eureka Pump Flows)
+ /// </summary>
+ [Description("Eureka Pump Flows")]
+ EuPumpFlows = 1054,
+
+ /// <summary>
+ /// (Eureka Spare 1)
+ /// </summary>
+ [Description("Eureka Spare 1")]
+ EuSpare1 = 1099,
+
+ /// <summary>
+ /// (Eureka Spare 2)
+ /// </summary>
+ [Description("Eureka Spare 2")]
+ EuSpare2 = 1100,
+
+ /// <summary>
+ /// (Eureka Spare 3)
+ /// </summary>
+ [Description("Eureka Spare 3")]
+ EuSpare3 = 1101,
+
+ /// <summary>
+ /// (Eureka Spare 4)
+ /// </summary>
+ [Description("Eureka Spare 4")]
+ EuSpare4 = 1102,
+
+ /// <summary>
+ /// (Eureka Spare Data Array)
+ /// </summary>
+ [Description("Eureka Spare Data Array")]
+ EuSpareDataArray = 1056,
+
+ /// <summary>
+ /// (Eureka Temperature Loggers)
+ /// </summary>
+ [Description("Eureka Temperature Loggers")]
+ EuTemperatureLoggers = 1053,
+
+ /// <summary>
+ /// (Eureka Tunnel Current)
+ /// </summary>
+ [Description("Eureka Tunnel Current")]
+ EuTunnelCurrent = 1031,
+
+ /// <summary>
+ /// (Eureka Tunnel Temperature)
+ /// </summary>
+ [Description("Eureka Tunnel Temperature")]
+ EuTunnelTemperature = 1020,
+
+ /// <summary>
+ /// (Eureka Waste Level)
+ /// </summary>
+ [Description("Eureka Waste Level")]
+ EuWasteLevel = 1098,
+
+ /// <summary>
+ /// (Eureka Winder Dancer 1)
+ /// </summary>
+ [Description("Eureka Winder Dancer 1")]
+ EuWinder1Dancer = 1000,
+
+ /// <summary>
+ /// (Eureka Winder Motor 1)
+ /// </summary>
+ [Description("Eureka Winder Motor 1")]
+ EuWinder1Motor = 1004,
+
+ /// <summary>
+ /// (Eureka Winder Dancer 2)
+ /// </summary>
+ [Description("Eureka Winder Dancer 2")]
+ EuWinder2Dancer = 1001,
+
+ /// <summary>
+ /// (Eureka Winder Motor 2)
+ /// </summary>
+ [Description("Eureka Winder Motor 2")]
+ EuWinder2Motor = 1005,
+
+ /// <summary>
+ /// (Eureka Winder Dancer 3)
+ /// </summary>
+ [Description("Eureka Winder Dancer 3")]
+ EuWinder3Dancer = 1002,
+
+ /// <summary>
+ /// (Eureka Winder Motor 3)
+ /// </summary>
+ [Description("Eureka Winder Motor 3")]
+ EuWinder3Motor = 1006,
+
+ /// <summary>
+ /// (Eureka Winder Dancer 4)
+ /// </summary>
+ [Description("Eureka Winder Dancer 4")]
+ EuWinder4Dancer = 1003,
+
+ /// <summary>
+ /// (Eureka Winder Motor 4)
+ /// </summary>
+ [Description("Eureka Winder Motor 4")]
+ EuWinder4Motor = 1007,
+
+ /// <summary>
/// (Feeder Motor)
/// </summary>
[Description("Feeder Motor")]
diff --git a/Software/Visual_Studio/Tango.BL/Tango.BL.csproj b/Software/Visual_Studio/Tango.BL/Tango.BL.csproj
index d00304e0e..83e4bf3ea 100644
--- a/Software/Visual_Studio/Tango.BL/Tango.BL.csproj
+++ b/Software/Visual_Studio/Tango.BL/Tango.BL.csproj
@@ -596,6 +596,7 @@
<Compile Include="Enumerations\RmlQualifications.cs" />
<Compile Include="Enumerations\TestResultColors.cs" />
<Compile Include="Enumerations\TwistDirections.cs" />
+ <Compile Include="Enumerations\MachineTypes.cs" />
<Compile Include="Enumerations\YarnUnits.cs" />
<Compile Include="ExtensionMethods\ColorCatalogItemsExtensions.cs" />
<Compile Include="ExtensionMethods\ColorMineExtensions.cs" />
diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/HARDWARE_VERSIONS.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/HARDWARE_VERSIONS.cs
index 190ed45e6..77541c90a 100644
--- a/Software/Visual_Studio/Tango.DAL.Remote/DB/HARDWARE_VERSIONS.cs
+++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/HARDWARE_VERSIONS.cs
@@ -32,6 +32,8 @@ namespace Tango.DAL.Remote.DB
public System.DateTime LAST_UPDATED { get; set; }
public double VERSION { get; set; }
public string NAME { get; set; }
+ public int MACHINE_TYPE { get; set; }
+ public string USER_NAME { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<CONFIGURATION> CONFIGURATIONS { get; set; }
diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/JOB_RUNS.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/JOB_RUNS.cs
index 069498e77..090263ff2 100644
--- a/Software/Visual_Studio/Tango.DAL.Remote/DB/JOB_RUNS.cs
+++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/JOB_RUNS.cs
@@ -56,5 +56,6 @@ namespace Tango.DAL.Remote.DB
public string CE_VERSION { get; set; }
public string PROCESS_PARAMETERS_TABLE_GUID { get; set; }
public string FINE_TUNING_STRING { get; set; }
+ public int MACHINE_TYPE { get; set; }
}
}
diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/MACHINE.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/MACHINE.cs
index 98b65c77c..415ecaf50 100644
--- a/Software/Visual_Studio/Tango.DAL.Remote/DB/MACHINE.cs
+++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/MACHINE.cs
@@ -66,6 +66,7 @@ namespace Tango.DAL.Remote.DB
public bool LIGHT_INKS_INSTALLED { get; set; }
public bool BTSR_INSTALLED { get; set; }
public string VERSION_TAG { get; set; }
+ public int MACHINE_TYPE { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<CAT> CATS { get; set; }
diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/MACHINE_PROTOTYPES.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/MACHINE_PROTOTYPES.cs
index 4fdfe0e0e..63930b0a3 100644
--- a/Software/Visual_Studio/Tango.DAL.Remote/DB/MACHINE_PROTOTYPES.cs
+++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/MACHINE_PROTOTYPES.cs
@@ -17,6 +17,7 @@ namespace Tango.DAL.Remote.DB
public int ID { get; set; }
public string GUID { get; set; }
public System.DateTime LAST_UPDATED { get; set; }
+ public int MACHINE_TYPE { get; set; }
public string NAME { get; set; }
public string DESCRIPTION { get; set; }
public string PROTOTYPE_JSON { get; set; }
diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/PROCESS_PARAMETERS_TABLES.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/PROCESS_PARAMETERS_TABLES.cs
index c9363283b..08830d36d 100644
--- a/Software/Visual_Studio/Tango.DAL.Remote/DB/PROCESS_PARAMETERS_TABLES.cs
+++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/PROCESS_PARAMETERS_TABLES.cs
@@ -53,6 +53,36 @@ namespace Tango.DAL.Remote.DB
public double BTSR_FEEDING_TENSION { get; set; }
public double EXIT_TENSION { get; set; }
public double BTSR_THREAD_LENGTH_OFFSET { get; set; }
+ public double E_WINDER1_TENSION { get; set; }
+ public double E_WINDER2_TENSION { get; set; }
+ public double E_WINDER3_TENSION { get; set; }
+ public double E_WINDER4_TENSION { get; set; }
+ public double E_BTSR1_FEEDING_TENSION { get; set; }
+ public double E_BTSR2_FEEDING_TENSION { get; set; }
+ public double E_BTSR3_FEEDING_TENSION { get; set; }
+ public double E_BTSR4_FEEDING_TENSION { get; set; }
+ public double E_MIXER_TEMP { get; set; }
+ public double E_HEAD_ZONE1_TEMP { get; set; }
+ public double E_HEAD_ZONE2_TEMP { get; set; }
+ public double E_HEAD_ZONE3_TEMP { get; set; }
+ public double E_DRYER_ZONE1_TEMP { get; set; }
+ public double E_DRYER_ZONE2_TEMP { get; set; }
+ public double E_DRYER_ZONE3_TEMP { get; set; }
+ public double E_LUBRICANT_TEMP { get; set; }
+ public double E_DRYER_INCOMING_AIR_FLOW { get; set; }
+ public double E_DRYER_OUTGOING_AIR_FLOW { get; set; }
+ public double E_TUNNEL_INCOMING_AIR_FLOW { get; set; }
+ public double E_TUNNEL_OUTGOING_AIR_FLOW { get; set; }
+ public double E_WASTE_AIR_FLOW { get; set; }
+ public double E_WASTE_PREPARE_TIME { get; set; }
+ public double E_PUMP_TEMP { get; set; }
+ public double E_PRESSURE_BUILD_UP { get; set; }
+ public double E_SPARE1 { get; set; }
+ public double E_SPARE2 { get; set; }
+ public double E_SPARE3 { get; set; }
+ public double E_SPARE4 { get; set; }
+ public double E_SPARE5 { get; set; }
+ public double E_TUNNEL_TEMP { get; set; }
public virtual PROCESS_PARAMETERS_TABLES_GROUPS PROCESS_PARAMETERS_TABLES_GROUPS { get; set; }
}
diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx
index d28d22849..8bed67ce6 100644
--- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx
+++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx
@@ -693,6 +693,8 @@
<Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="VERSION" Type="float" Nullable="false" />
<Property Name="NAME" Type="nvarchar" MaxLength="50" Nullable="false" />
+ <Property Name="MACHINE_TYPE" Type="int" Nullable="false" />
+ <Property Name="USER_NAME" Type="nvarchar" MaxLength="100" />
</EntityType>
<EntityType Name="HARDWARE_WINDER_TYPES">
<Key>
@@ -791,6 +793,7 @@
<Property Name="CE_VERSION" Type="varchar" MaxLength="30" />
<Property Name="PROCESS_PARAMETERS_TABLE_GUID" Type="varchar" MaxLength="36" />
<Property Name="FINE_TUNING_STRING" Type="nvarchar" MaxLength="2000" />
+ <Property Name="MACHINE_TYPE" Type="int" Nullable="false" />
</EntityType>
<EntityType Name="JOBS">
<Key>
@@ -893,6 +896,7 @@
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
<Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
+ <Property Name="MACHINE_TYPE" Type="int" Nullable="false" />
<Property Name="NAME" Type="varchar" MaxLength="100" Nullable="false" />
<Property Name="DESCRIPTION" Type="varchar" MaxLength="100" Nullable="false" />
<Property Name="PROTOTYPE_JSON" Type="varchar(max)" Nullable="false" />
@@ -963,6 +967,7 @@
<Property Name="LIGHT_INKS_INSTALLED" Type="bit" Nullable="false" />
<Property Name="BTSR_INSTALLED" Type="bit" Nullable="false" />
<Property Name="VERSION_TAG" Type="varchar" MaxLength="50" />
+ <Property Name="MACHINE_TYPE" Type="int" Nullable="false" />
</EntityType>
<EntityType Name="MACHINES_EVENTS">
<Key>
@@ -1087,6 +1092,36 @@
<Property Name="BTSR_FEEDING_TENSION" Type="float" Nullable="false" />
<Property Name="EXIT_TENSION" Type="float" Nullable="false" />
<Property Name="BTSR_THREAD_LENGTH_OFFSET" Type="float" Nullable="false" />
+ <Property Name="E_WINDER1_TENSION" Type="float" Nullable="false" />
+ <Property Name="E_WINDER2_TENSION" Type="float" Nullable="false" />
+ <Property Name="E_WINDER3_TENSION" Type="float" Nullable="false" />
+ <Property Name="E_WINDER4_TENSION" Type="float" Nullable="false" />
+ <Property Name="E_BTSR1_FEEDING_TENSION" Type="float" Nullable="false" />
+ <Property Name="E_BTSR2_FEEDING_TENSION" Type="float" Nullable="false" />
+ <Property Name="E_BTSR3_FEEDING_TENSION" Type="float" Nullable="false" />
+ <Property Name="E_BTSR4_FEEDING_TENSION" Type="float" Nullable="false" />
+ <Property Name="E_MIXER_TEMP" Type="float" Nullable="false" />
+ <Property Name="E_HEAD_ZONE1_TEMP" Type="float" Nullable="false" />
+ <Property Name="E_HEAD_ZONE2_TEMP" Type="float" Nullable="false" />
+ <Property Name="E_HEAD_ZONE3_TEMP" Type="float" Nullable="false" />
+ <Property Name="E_DRYER_ZONE1_TEMP" Type="float" Nullable="false" />
+ <Property Name="E_DRYER_ZONE2_TEMP" Type="float" Nullable="false" />
+ <Property Name="E_DRYER_ZONE3_TEMP" Type="float" Nullable="false" />
+ <Property Name="E_LUBRICANT_TEMP" Type="float" Nullable="false" />
+ <Property Name="E_DRYER_INCOMING_AIR_FLOW" Type="float" Nullable="false" />
+ <Property Name="E_DRYER_OUTGOING_AIR_FLOW" Type="float" Nullable="false" />
+ <Property Name="E_TUNNEL_INCOMING_AIR_FLOW" Type="float" Nullable="false" />
+ <Property Name="E_TUNNEL_OUTGOING_AIR_FLOW" Type="float" Nullable="false" />
+ <Property Name="E_WASTE_AIR_FLOW" Type="float" Nullable="false" />
+ <Property Name="E_WASTE_PREPARE_TIME" Type="float" Nullable="false" />
+ <Property Name="E_PUMP_TEMP" Type="float" Nullable="false" />
+ <Property Name="E_PRESSURE_BUILD_UP" Type="float" Nullable="false" />
+ <Property Name="E_SPARE1" Type="float" Nullable="false" />
+ <Property Name="E_SPARE2" Type="float" Nullable="false" />
+ <Property Name="E_SPARE3" Type="float" Nullable="false" />
+ <Property Name="E_SPARE4" Type="float" Nullable="false" />
+ <Property Name="E_SPARE5" Type="float" Nullable="false" />
+ <Property Name="E_TUNNEL_TEMP" Type="float" Nullable="false" />
</EntityType>
<EntityType Name="PROCESS_PARAMETERS_TABLES_GROUPS">
<Key>
@@ -6288,6 +6323,8 @@
<Property Name="LAST_UPDATED" Type="DateTime" Nullable="false" Precision="3" />
<Property Name="VERSION" Type="Double" Nullable="false" />
<Property Name="NAME" Type="String" Nullable="false" MaxLength="50" FixedLength="false" Unicode="true" />
+ <Property Name="MACHINE_TYPE" Type="Int32" Nullable="false" />
+ <Property Name="USER_NAME" Type="String" MaxLength="100" FixedLength="false" Unicode="true" />
<NavigationProperty Name="CONFIGURATIONS" Relationship="RemoteModel.FK_CONFIGURATIONS_HARDWARE_VERSIONS" FromRole="HARDWARE_VERSIONS" ToRole="CONFIGURATION" />
<NavigationProperty Name="HARDWARE_BLOWERS" Relationship="RemoteModel.FK_HARDWARE_BLOWERS_HARDWARE_VERSIONS" FromRole="HARDWARE_VERSIONS" ToRole="HARDWARE_BLOWERS" />
<NavigationProperty Name="HARDWARE_BREAK_SENSORS" Relationship="RemoteModel.FK_HARDWARE_BREAK_SENSORS_HARDWARE_VERSIONS" FromRole="HARDWARE_VERSIONS" ToRole="HARDWARE_BREAK_SENSORS" />
@@ -6404,6 +6441,7 @@
<Property Name="CE_VERSION" Type="String" MaxLength="30" FixedLength="false" Unicode="false" />
<Property Name="PROCESS_PARAMETERS_TABLE_GUID" Type="String" MaxLength="36" FixedLength="false" Unicode="false" />
<Property Name="FINE_TUNING_STRING" Type="String" MaxLength="2000" FixedLength="false" Unicode="true" />
+ <Property Name="MACHINE_TYPE" Type="Int32" Nullable="false" />
</EntityType>
<EntityType Name="JOB">
<Key>
@@ -6524,6 +6562,7 @@
<Property Name="ID" Type="Int32" Nullable="false" annotation:StoreGeneratedPattern="Identity" />
<Property Name="GUID" Type="String" Nullable="false" MaxLength="36" FixedLength="false" Unicode="false" />
<Property Name="LAST_UPDATED" Type="DateTime" Nullable="false" Precision="3" />
+ <Property Name="MACHINE_TYPE" Type="Int32" Nullable="false" />
<Property Name="NAME" Type="String" Nullable="false" MaxLength="100" FixedLength="false" Unicode="false" />
<Property Name="DESCRIPTION" Type="String" Nullable="false" MaxLength="100" FixedLength="false" Unicode="false" />
<Property Name="PROTOTYPE_JSON" Type="String" Nullable="false" MaxLength="Max" FixedLength="false" Unicode="false" />
@@ -6597,6 +6636,7 @@
<Property Name="LIGHT_INKS_INSTALLED" Type="Boolean" Nullable="false" />
<Property Name="BTSR_INSTALLED" Type="Boolean" Nullable="false" />
<Property Name="VERSION_TAG" Type="String" MaxLength="50" FixedLength="false" Unicode="false" />
+ <Property Name="MACHINE_TYPE" Type="Int32" Nullable="false" />
<NavigationProperty Name="CATS" Relationship="RemoteModel.FK_CATS_MACHINES" FromRole="MACHINE" ToRole="CAT" />
<NavigationProperty Name="COLOR_PROCESS_PARAMETERS" Relationship="RemoteModel.FK_COLOR_PROCESS_PARAMETERS_MACHINES" FromRole="MACHINE" ToRole="COLOR_PROCESS_PARAMETERS" />
<NavigationProperty Name="CONFIGURATION" Relationship="RemoteModel.FK_MACHINES_CONFIGURATIONS" FromRole="MACHINE" ToRole="CONFIGURATION" />
@@ -6747,6 +6787,36 @@
<Property Name="BTSR_FEEDING_TENSION" Type="Double" Nullable="false" />
<Property Name="EXIT_TENSION" Type="Double" Nullable="false" />
<Property Name="BTSR_THREAD_LENGTH_OFFSET" Type="Double" Nullable="false" />
+ <Property Name="E_WINDER1_TENSION" Type="Double" Nullable="false" />
+ <Property Name="E_WINDER2_TENSION" Type="Double" Nullable="false" />
+ <Property Name="E_WINDER3_TENSION" Type="Double" Nullable="false" />
+ <Property Name="E_WINDER4_TENSION" Type="Double" Nullable="false" />
+ <Property Name="E_BTSR1_FEEDING_TENSION" Type="Double" Nullable="false" />
+ <Property Name="E_BTSR2_FEEDING_TENSION" Type="Double" Nullable="false" />
+ <Property Name="E_BTSR3_FEEDING_TENSION" Type="Double" Nullable="false" />
+ <Property Name="E_BTSR4_FEEDING_TENSION" Type="Double" Nullable="false" />
+ <Property Name="E_MIXER_TEMP" Type="Double" Nullable="false" />
+ <Property Name="E_HEAD_ZONE1_TEMP" Type="Double" Nullable="false" />
+ <Property Name="E_HEAD_ZONE2_TEMP" Type="Double" Nullable="false" />
+ <Property Name="E_HEAD_ZONE3_TEMP" Type="Double" Nullable="false" />
+ <Property Name="E_DRYER_ZONE1_TEMP" Type="Double" Nullable="false" />
+ <Property Name="E_DRYER_ZONE2_TEMP" Type="Double" Nullable="false" />
+ <Property Name="E_DRYER_ZONE3_TEMP" Type="Double" Nullable="false" />
+ <Property Name="E_LUBRICANT_TEMP" Type="Double" Nullable="false" />
+ <Property Name="E_DRYER_INCOMING_AIR_FLOW" Type="Double" Nullable="false" />
+ <Property Name="E_DRYER_OUTGOING_AIR_FLOW" Type="Double" Nullable="false" />
+ <Property Name="E_TUNNEL_INCOMING_AIR_FLOW" Type="Double" Nullable="false" />
+ <Property Name="E_TUNNEL_OUTGOING_AIR_FLOW" Type="Double" Nullable="false" />
+ <Property Name="E_WASTE_AIR_FLOW" Type="Double" Nullable="false" />
+ <Property Name="E_WASTE_PREPARE_TIME" Type="Double" Nullable="false" />
+ <Property Name="E_PUMP_TEMP" Type="Double" Nullable="false" />
+ <Property Name="E_PRESSURE_BUILD_UP" Type="Double" Nullable="false" />
+ <Property Name="E_SPARE1" Type="Double" Nullable="false" />
+ <Property Name="E_SPARE2" Type="Double" Nullable="false" />
+ <Property Name="E_SPARE3" Type="Double" Nullable="false" />
+ <Property Name="E_SPARE4" Type="Double" Nullable="false" />
+ <Property Name="E_SPARE5" Type="Double" Nullable="false" />
+ <Property Name="E_TUNNEL_TEMP" Type="Double" Nullable="false" />
<NavigationProperty Name="PROCESS_PARAMETERS_TABLES_GROUPS" Relationship="RemoteModel.FK_PROCESS_PARAMETERS_TABLES_PROCESS_PARAMETERS_TABLES_GROUPS" FromRole="PROCESS_PARAMETERS_TABLES" ToRole="PROCESS_PARAMETERS_TABLES_GROUPS" />
</EntityType>
<EntityType Name="PROCESS_PARAMETERS_TABLES_GROUPS">
@@ -9746,6 +9816,8 @@
<EntitySetMapping Name="HARDWARE_VERSIONS">
<EntityTypeMapping TypeName="RemoteModel.HARDWARE_VERSIONS">
<MappingFragment StoreEntitySet="HARDWARE_VERSIONS">
+ <ScalarProperty Name="USER_NAME" ColumnName="USER_NAME" />
+ <ScalarProperty Name="MACHINE_TYPE" ColumnName="MACHINE_TYPE" />
<ScalarProperty Name="NAME" ColumnName="NAME" />
<ScalarProperty Name="VERSION" ColumnName="VERSION" />
<ScalarProperty Name="LAST_UPDATED" ColumnName="LAST_UPDATED" />
@@ -9812,6 +9884,7 @@
<EntitySetMapping Name="JOB_RUNS">
<EntityTypeMapping TypeName="RemoteModel.JOB_RUNS">
<MappingFragment StoreEntitySet="JOB_RUNS">
+ <ScalarProperty Name="MACHINE_TYPE" ColumnName="MACHINE_TYPE" />
<ScalarProperty Name="FINE_TUNING_STRING" ColumnName="FINE_TUNING_STRING" />
<ScalarProperty Name="PROCESS_PARAMETERS_TABLE_GUID" ColumnName="PROCESS_PARAMETERS_TABLE_GUID" />
<ScalarProperty Name="CE_VERSION" ColumnName="CE_VERSION" />
@@ -9962,6 +10035,7 @@
<ScalarProperty Name="PROTOTYPE_JSON" ColumnName="PROTOTYPE_JSON" />
<ScalarProperty Name="DESCRIPTION" ColumnName="DESCRIPTION" />
<ScalarProperty Name="NAME" ColumnName="NAME" />
+ <ScalarProperty Name="MACHINE_TYPE" ColumnName="MACHINE_TYPE" />
<ScalarProperty Name="LAST_UPDATED" ColumnName="LAST_UPDATED" />
<ScalarProperty Name="GUID" ColumnName="GUID" />
<ScalarProperty Name="ID" ColumnName="ID" />
@@ -9997,6 +10071,7 @@
<EntitySetMapping Name="MACHINES">
<EntityTypeMapping TypeName="RemoteModel.MACHINE">
<MappingFragment StoreEntitySet="MACHINES">
+ <ScalarProperty Name="MACHINE_TYPE" ColumnName="MACHINE_TYPE" />
<ScalarProperty Name="VERSION_TAG" ColumnName="VERSION_TAG" />
<ScalarProperty Name="BTSR_INSTALLED" ColumnName="BTSR_INSTALLED" />
<ScalarProperty Name="LIGHT_INKS_INSTALLED" ColumnName="LIGHT_INKS_INSTALLED" />
@@ -10128,6 +10203,36 @@
<EntitySetMapping Name="PROCESS_PARAMETERS_TABLES">
<EntityTypeMapping TypeName="RemoteModel.PROCESS_PARAMETERS_TABLES">
<MappingFragment StoreEntitySet="PROCESS_PARAMETERS_TABLES">
+ <ScalarProperty Name="E_TUNNEL_TEMP" ColumnName="E_TUNNEL_TEMP" />
+ <ScalarProperty Name="E_SPARE5" ColumnName="E_SPARE5" />
+ <ScalarProperty Name="E_SPARE4" ColumnName="E_SPARE4" />
+ <ScalarProperty Name="E_SPARE3" ColumnName="E_SPARE3" />
+ <ScalarProperty Name="E_SPARE2" ColumnName="E_SPARE2" />
+ <ScalarProperty Name="E_SPARE1" ColumnName="E_SPARE1" />
+ <ScalarProperty Name="E_PRESSURE_BUILD_UP" ColumnName="E_PRESSURE_BUILD_UP" />
+ <ScalarProperty Name="E_PUMP_TEMP" ColumnName="E_PUMP_TEMP" />
+ <ScalarProperty Name="E_WASTE_PREPARE_TIME" ColumnName="E_WASTE_PREPARE_TIME" />
+ <ScalarProperty Name="E_WASTE_AIR_FLOW" ColumnName="E_WASTE_AIR_FLOW" />
+ <ScalarProperty Name="E_TUNNEL_OUTGOING_AIR_FLOW" ColumnName="E_TUNNEL_OUTGOING_AIR_FLOW" />
+ <ScalarProperty Name="E_TUNNEL_INCOMING_AIR_FLOW" ColumnName="E_TUNNEL_INCOMING_AIR_FLOW" />
+ <ScalarProperty Name="E_DRYER_OUTGOING_AIR_FLOW" ColumnName="E_DRYER_OUTGOING_AIR_FLOW" />
+ <ScalarProperty Name="E_DRYER_INCOMING_AIR_FLOW" ColumnName="E_DRYER_INCOMING_AIR_FLOW" />
+ <ScalarProperty Name="E_LUBRICANT_TEMP" ColumnName="E_LUBRICANT_TEMP" />
+ <ScalarProperty Name="E_DRYER_ZONE3_TEMP" ColumnName="E_DRYER_ZONE3_TEMP" />
+ <ScalarProperty Name="E_DRYER_ZONE2_TEMP" ColumnName="E_DRYER_ZONE2_TEMP" />
+ <ScalarProperty Name="E_DRYER_ZONE1_TEMP" ColumnName="E_DRYER_ZONE1_TEMP" />
+ <ScalarProperty Name="E_HEAD_ZONE3_TEMP" ColumnName="E_HEAD_ZONE3_TEMP" />
+ <ScalarProperty Name="E_HEAD_ZONE2_TEMP" ColumnName="E_HEAD_ZONE2_TEMP" />
+ <ScalarProperty Name="E_HEAD_ZONE1_TEMP" ColumnName="E_HEAD_ZONE1_TEMP" />
+ <ScalarProperty Name="E_MIXER_TEMP" ColumnName="E_MIXER_TEMP" />
+ <ScalarProperty Name="E_BTSR4_FEEDING_TENSION" ColumnName="E_BTSR4_FEEDING_TENSION" />
+ <ScalarProperty Name="E_BTSR3_FEEDING_TENSION" ColumnName="E_BTSR3_FEEDING_TENSION" />
+ <ScalarProperty Name="E_BTSR2_FEEDING_TENSION" ColumnName="E_BTSR2_FEEDING_TENSION" />
+ <ScalarProperty Name="E_BTSR1_FEEDING_TENSION" ColumnName="E_BTSR1_FEEDING_TENSION" />
+ <ScalarProperty Name="E_WINDER4_TENSION" ColumnName="E_WINDER4_TENSION" />
+ <ScalarProperty Name="E_WINDER3_TENSION" ColumnName="E_WINDER3_TENSION" />
+ <ScalarProperty Name="E_WINDER2_TENSION" ColumnName="E_WINDER2_TENSION" />
+ <ScalarProperty Name="E_WINDER1_TENSION" ColumnName="E_WINDER1_TENSION" />
<ScalarProperty Name="BTSR_THREAD_LENGTH_OFFSET" ColumnName="BTSR_THREAD_LENGTH_OFFSET" />
<ScalarProperty Name="EXIT_TENSION" ColumnName="EXIT_TENSION" />
<ScalarProperty Name="BTSR_FEEDING_TENSION" ColumnName="BTSR_FEEDING_TENSION" />
diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram
index d442411fe..3a81d86f0 100644
--- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram
+++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram
@@ -5,102 +5,102 @@
<!-- Diagram content (shape and connector positions) -->
<edmx:Diagrams>
<Diagram DiagramId="f9ae01d708754bbd997add25a4bacc79" Name="Diagram1" ZoomLevel="87">
- <EntityTypeShape EntityType="RemoteModel.ACTION_LOGS" Width="1.5" PointX="11.25" PointY="52.75" />
- <EntityTypeShape EntityType="RemoteModel.ADDRESS" Width="1.5" PointX="1.5" PointY="54.625" />
- <EntityTypeShape EntityType="RemoteModel.APPLICATION_DISPLAY_PANEL_VERSIONS" Width="1.5" PointX="1.5" PointY="64.5" />
- <EntityTypeShape EntityType="RemoteModel.APPLICATION_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="61.625" />
- <EntityTypeShape EntityType="RemoteModel.APPLICATION_OS_VERSIONS" Width="1.5" PointX="1.5" PointY="67.5" />
- <EntityTypeShape EntityType="RemoteModel.BIT_TYPES" Width="1.5" PointX="5.75" PointY="10.75" />
- <EntityTypeShape EntityType="RemoteModel.BRUSH_STOPS" Width="1.5" PointX="18" PointY="17.125" />
- <EntityTypeShape EntityType="RemoteModel.BTSR_APPLICATION_TYPES" Width="1.5" PointX="0.75" PointY="33.75" />
- <EntityTypeShape EntityType="RemoteModel.BTSR_YARN_TYPES" Width="1.5" PointX="0.75" PointY="39.875" />
- <EntityTypeShape EntityType="RemoteModel.CARTRIDGE_TYPES" Width="1.5" PointX="8" PointY="87.5" />
- <EntityTypeShape EntityType="RemoteModel.CAT" Width="1.5" PointX="8.25" PointY="16.75" />
- <EntityTypeShape EntityType="RemoteModel.CCT" Width="1.5" PointX="0.75" PointY="16.625" />
- <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS" Width="1.5" PointX="1.5" PointY="1.5" />
- <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_GROUPS" Width="1.5" PointX="3.75" PointY="2" />
- <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS" Width="1.5" PointX="6" PointY="0.75" />
- <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS_RECIPES" Width="1.5" PointX="8.25" PointY="20.625" />
- <EntityTypeShape EntityType="RemoteModel.COLOR_PROCESS_INK_UPTAKE" Width="1.5" PointX="13.75" PointY="8.75" />
- <EntityTypeShape EntityType="RemoteModel.COLOR_SPACES" Width="1.5" PointX="9" PointY="25.625" />
- <EntityTypeShape EntityType="RemoteModel.CONFIGURATION" Width="1.5" PointX="3.75" PointY="64.25" />
- <EntityTypeShape EntityType="RemoteModel.CONTACT" Width="1.5" PointX="1.5" PointY="50.75" />
- <EntityTypeShape EntityType="RemoteModel.CUSTOMER" Width="1.5" PointX="9" PointY="12.125" />
- <EntityTypeShape EntityType="RemoteModel.DATA_STORE_ITEMS" Width="1.5" PointX="8.25" PointY="66.5" />
- <EntityTypeShape EntityType="RemoteModel.DISPENSER_TYPES" Width="1.5" PointX="5.75" PointY="83.5" />
- <EntityTypeShape EntityType="RemoteModel.DISPENSER" Width="1.5" PointX="8" PointY="82.875" />
- <EntityTypeShape EntityType="RemoteModel.EMBEDDED_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="58.625" />
- <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES" Width="1.5" PointX="11" PointY="41" />
- <EntityTypeShape EntityType="RemoteModel.FIBER_SHAPES" Width="1.5" PointX="0.75" PointY="24.875" />
- <EntityTypeShape EntityType="RemoteModel.FIBER_SYNTHS" Width="1.5" PointX="0.75" PointY="37" />
- <EntityTypeShape EntityType="RemoteModel.FSE_VERSIONS" Width="1.5" PointX="11.25" PointY="28.5" />
- <EntityTypeShape EntityType="RemoteModel.GBD" Width="1.5" PointX="0.75" PointY="7.125" />
- <EntityTypeShape EntityType="RemoteModel.GLOBAL_DATA_STORE_ITEMS" Width="1.5" PointX="14.75" PointY="4.75" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWER_TYPES" Width="1.5" PointX="1.5" PointY="79" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWERS" Width="1.5" PointX="3.75" PointY="78.5" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSOR_TYPES" Width="1.5" PointX="7.5" PointY="91" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSORS" Width="1.5" PointX="9.75" PointY="70.625" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCER_TYPES" Width="1.5" PointX="4.5" PointY="87" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCERS" Width="1.5" PointX="6.75" PointY="70.875" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTOR_TYPES" Width="1.5" PointX="8.5" PointY="62.875" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTORS" Width="1.5" PointX="10.75" PointY="60.625" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROL_TYPES" Width="1.5" PointX="7.5" PointY="95" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROLS" Width="1.5" PointX="9.75" PointY="75" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSOR_TYPES" Width="1.5" PointX="4.5" PointY="91" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSORS" Width="1.5" PointX="6.75" PointY="76.625" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="70.375" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDER_TYPES" Width="1.5" PointX="1.5" PointY="75" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDERS" Width="1.5" PointX="3.75" PointY="70.75" />
- <EntityTypeShape EntityType="RemoteModel.IDS_PACK_FORMULAS" Width="1.5" PointX="8" PointY="54.125" />
- <EntityTypeShape EntityType="RemoteModel.IDS_PACKS" Width="1.5" PointX="10.25" PointY="47" />
- <EntityTypeShape EntityType="RemoteModel.JOB_RUNS" Width="1.5" PointX="16.75" PointY="4.75" />
- <EntityTypeShape EntityType="RemoteModel.JOB" Width="1.5" PointX="11.25" PointY="17" />
- <EntityTypeShape EntityType="RemoteModel.LINEAR_MASS_DENSITY_UNITS" Width="1.5" PointX="0.75" PointY="30.75" />
- <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES" Width="1.5" PointX="6" PointY="30" />
- <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES_RMLS" Width="1.5" PointX="5.25" PointY="24.875" />
- <EntityTypeShape EntityType="RemoteModel.LUB" Width="1.5" PointX="0.75" PointY="13.25" />
- <EntityTypeShape EntityType="RemoteModel.MACHINE_PROTOTYPES" Width="1.5" PointX="13.75" PointY="16.75" />
- <EntityTypeShape EntityType="RemoteModel.MACHINE_STUDIO_VERSIONS" Width="1.5" PointX="11.25" PointY="32.25" />
- <EntityTypeShape EntityType="RemoteModel.MACHINE_VERSIONS" Width="1.5" PointX="3.75" PointY="74.625" />
- <EntityTypeShape EntityType="RemoteModel.MACHINE" Width="1.5" PointX="6" PointY="58.625" />
- <EntityTypeShape EntityType="RemoteModel.MACHINES_EVENTS" Width="1.5" PointX="13.25" PointY="46.375" />
- <EntityTypeShape EntityType="RemoteModel.MEDIA_CONDITIONS" Width="1.5" PointX="0.75" PointY="27.875" />
- <EntityTypeShape EntityType="RemoteModel.MEDIA_MATERIALS" Width="1.5" PointX="0.75" PointY="21.125" />
- <EntityTypeShape EntityType="RemoteModel.MEDIA_PURPOSES" Width="1.5" PointX="0.75" PointY="10.375" />
- <EntityTypeShape EntityType="RemoteModel.MID_TANK_TYPES" Width="1.5" PointX="8" PointY="50.625" />
- <EntityTypeShape EntityType="RemoteModel.ORGANIZATION" Width="1.5" PointX="3.75" PointY="52.625" />
- <EntityTypeShape EntityType="RemoteModel.PERMISSION" Width="1.5" PointX="12" PointY="5.5" />
- <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES" Width="1.5" PointX="7.5" PointY="40.75" />
- <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES_GROUPS" Width="1.5" PointX="5.25" PointY="43.75" />
- <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS" Width="1.5" PointX="13.75" PointY="1" />
- <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS_VERSIONS" Width="1.5" PointX="16" PointY="1.25" />
- <EntityTypeShape EntityType="RemoteModel.RML_EXTENSION_TEST_WASHING_RESULTS" Width="1.5" PointX="11" PointY="1" />
- <EntityTypeShape EntityType="RemoteModel.RML" Width="1.5" PointX="3" PointY="14.625" />
- <EntityTypeShape EntityType="RemoteModel.RMLS_SPOOLS" Width="1.5" PointX="5.25" PointY="20.375" />
- <EntityTypeShape EntityType="RemoteModel.ROLE" Width="1.5" PointX="12" PointY="13.5" />
- <EntityTypeShape EntityType="RemoteModel.ROLES_PERMISSIONS" Width="1.5" PointX="14.25" PointY="13.5" />
- <EntityTypeShape EntityType="RemoteModel.RUBBING_RESULTS" Width="1.5" PointX="18.75" PointY="0.75" />
- <EntityTypeShape EntityType="RemoteModel.SEGMENT" Width="1.5" PointX="15.75" PointY="20.75" />
- <EntityTypeShape EntityType="RemoteModel.SEGMENTS_GROUPS" Width="1.5" PointX="13.5" PointY="21" />
- <EntityTypeShape EntityType="RemoteModel.SITE" Width="1.5" PointX="3" PointY="10.75" />
- <EntityTypeShape EntityType="RemoteModel.SITES_CATALOGS" Width="1.5" PointX="5.25" PointY="7.5" />
- <EntityTypeShape EntityType="RemoteModel.SITES_RMLS" Width="1.5" PointX="5.25" PointY="17.125" />
- <EntityTypeShape EntityType="RemoteModel.SITES_SPOOL_TYPES" Width="1.5" PointX="11.25" PointY="8.75" />
- <EntityTypeShape EntityType="RemoteModel.SPOOL_TYPES" Width="1.5" PointX="9" PointY="6.25" />
- <EntityTypeShape EntityType="RemoteModel.SPOOL" Width="1.5" PointX="11.25" PointY="36.125" />
- <EntityTypeShape EntityType="RemoteModel.sysdiagram" Width="1.5" PointX="18.75" PointY="4.75" />
- <EntityTypeShape EntityType="RemoteModel.TANGO_UPDATES" Width="1.5" PointX="18.75" PointY="7.75" />
- <EntityTypeShape EntityType="RemoteModel.TANGO_VERSIONS" Width="1.5" PointX="14.25" PointY="51.25" />
- <EntityTypeShape EntityType="RemoteModel.TECH_CONTROLLERS" Width="1.5" PointX="18.75" PointY="12.75" />
- <EntityTypeShape EntityType="RemoteModel.TECH_DISPENSERS" Width="1.5" PointX="20.75" PointY="0.75" />
- <EntityTypeShape EntityType="RemoteModel.TECH_HEATERS" Width="1.5" PointX="20.75" PointY="3.75" />
- <EntityTypeShape EntityType="RemoteModel.TECH_IOS" Width="1.5" PointX="20.75" PointY="6.75" />
- <EntityTypeShape EntityType="RemoteModel.TECH_MONITORS" Width="1.5" PointX="20.75" PointY="11.75" />
- <EntityTypeShape EntityType="RemoteModel.TECH_VALVES" Width="1.5" PointX="20.75" PointY="16.75" />
- <EntityTypeShape EntityType="RemoteModel.USER" Width="1.5" PointX="9" PointY="29.125" />
- <EntityTypeShape EntityType="RemoteModel.USERS_ROLES" Width="1.5" PointX="14.25" PointY="30.5" />
- <EntityTypeShape EntityType="RemoteModel.WASHING_TEST_MATERIALS" Width="1.5" PointX="8.75" PointY="1.5" />
- <EntityTypeShape EntityType="RemoteModel.WINDING_METHODS" Width="1.5" PointX="9" PointY="35.125" />
+ <EntityTypeShape EntityType="RemoteModel.ACTION_LOGS" Width="1.5" PointX="11.25" PointY="12.375" />
+ <EntityTypeShape EntityType="RemoteModel.ADDRESS" Width="1.5" PointX="1.5" PointY="73" />
+ <EntityTypeShape EntityType="RemoteModel.APPLICATION_DISPLAY_PANEL_VERSIONS" Width="1.5" PointX="1.5" PointY="77.125" />
+ <EntityTypeShape EntityType="RemoteModel.APPLICATION_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="98.5" />
+ <EntityTypeShape EntityType="RemoteModel.APPLICATION_OS_VERSIONS" Width="1.5" PointX="1.5" PointY="91" />
+ <EntityTypeShape EntityType="RemoteModel.BIT_TYPES" Width="1.5" PointX="5.75" PointY="10.625" />
+ <EntityTypeShape EntityType="RemoteModel.BRUSH_STOPS" Width="1.5" PointX="18" PointY="22.125" />
+ <EntityTypeShape EntityType="RemoteModel.BTSR_APPLICATION_TYPES" Width="1.5" PointX="0.75" PointY="26" />
+ <EntityTypeShape EntityType="RemoteModel.BTSR_YARN_TYPES" Width="1.5" PointX="0.75" PointY="36.5" />
+ <EntityTypeShape EntityType="RemoteModel.CARTRIDGE_TYPES" Width="1.5" PointX="3" PointY="47.375" />
+ <EntityTypeShape EntityType="RemoteModel.CAT" Width="1.5" PointX="5.25" PointY="21.75" />
+ <EntityTypeShape EntityType="RemoteModel.CCT" Width="1.5" PointX="0.75" PointY="30.25" />
+ <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS" Width="1.5" PointX="1.5" PointY="101.625" />
+ <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_GROUPS" Width="1.5" PointX="0.75" PointY="7.125" />
+ <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS" Width="1.5" PointX="3" PointY="0.75" />
+ <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS_RECIPES" Width="1.5" PointX="5.25" PointY="25.625" />
+ <EntityTypeShape EntityType="RemoteModel.COLOR_PROCESS_INK_UPTAKE" Width="1.5" PointX="7.75" PointY="10.625" />
+ <EntityTypeShape EntityType="RemoteModel.COLOR_SPACES" Width="1.5" PointX="9" PointY="36" />
+ <EntityTypeShape EntityType="RemoteModel.CONFIGURATION" Width="1.5" PointX="0.75" PointY="82.875" />
+ <EntityTypeShape EntityType="RemoteModel.CONTACT" Width="1.5" PointX="1.5" PointY="69.125" />
+ <EntityTypeShape EntityType="RemoteModel.CUSTOMER" Width="1.5" PointX="9" PointY="29.75" />
+ <EntityTypeShape EntityType="RemoteModel.DATA_STORE_ITEMS" Width="1.5" PointX="5.25" PointY="69.375" />
+ <EntityTypeShape EntityType="RemoteModel.DISPENSER_TYPES" Width="1.5" PointX="0.75" PointY="106.875" />
+ <EntityTypeShape EntityType="RemoteModel.DISPENSER" Width="1.5" PointX="3" PointY="106.25" />
+ <EntityTypeShape EntityType="RemoteModel.EMBEDDED_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="88" />
+ <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES" Width="1.5" PointX="9" PointY="66.25" />
+ <EntityTypeShape EntityType="RemoteModel.FIBER_SHAPES" Width="1.5" PointX="0.75" PointY="33.5" />
+ <EntityTypeShape EntityType="RemoteModel.FIBER_SYNTHS" Width="1.5" PointX="0.75" PointY="39.75" />
+ <EntityTypeShape EntityType="RemoteModel.FSE_VERSIONS" Width="1.5" PointX="11.25" PointY="33.625" />
+ <EntityTypeShape EntityType="RemoteModel.GBD" Width="1.5" PointX="0.75" PointY="45.875" />
+ <EntityTypeShape EntityType="RemoteModel.GLOBAL_DATA_STORE_ITEMS" Width="1.5" PointX="2.75" PointY="12.625" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWER_TYPES" Width="1.5" PointX="1.5" PointY="118.625" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWERS" Width="1.5" PointX="3.75" PointY="99.25" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSOR_TYPES" Width="1.5" PointX="7.5" PointY="100.625" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSORS" Width="1.5" PointX="9.75" PointY="94.375" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCER_TYPES" Width="1.5" PointX="1.5" PointY="114.625" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCERS" Width="1.5" PointX="3.75" PointY="93.625" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTOR_TYPES" Width="1.5" PointX="7.5" PointY="84.625" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTORS" Width="1.5" PointX="9.75" PointY="84.25" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROL_TYPES" Width="1.5" PointX="4.5" PointY="81.625" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROLS" Width="1.5" PointX="6.75" PointY="92.75" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSOR_TYPES" Width="1.5" PointX="1.5" PointY="110.625" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSORS" Width="1.5" PointX="3.75" PointY="89.375" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="93.875" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDER_TYPES" Width="1.5" PointX="4.5" PointY="85.625" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDERS" Width="1.5" PointX="6.75" PointY="88.5" />
+ <EntityTypeShape EntityType="RemoteModel.IDS_PACK_FORMULAS" Width="1.5" PointX="3" PointY="40.75" />
+ <EntityTypeShape EntityType="RemoteModel.IDS_PACKS" Width="1.5" PointX="5.25" PointY="45.125" />
+ <EntityTypeShape EntityType="RemoteModel.JOB_RUNS" Width="1.5" PointX="16.75" PointY="2.625" />
+ <EntityTypeShape EntityType="RemoteModel.JOB" Width="1.5" PointX="11.25" PointY="22" />
+ <EntityTypeShape EntityType="RemoteModel.LINEAR_MASS_DENSITY_UNITS" Width="1.5" PointX="0.75" PointY="12.125" />
+ <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES" Width="1.5" PointX="3" PointY="7.5" />
+ <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES_RMLS" Width="1.5" PointX="8.25" PointY="25.875" />
+ <EntityTypeShape EntityType="RemoteModel.LUB" Width="1.5" PointX="0.75" PointY="21" />
+ <EntityTypeShape EntityType="RemoteModel.MACHINE_PROTOTYPES" Width="1.5" PointX="13.75" PointY="11.625" />
+ <EntityTypeShape EntityType="RemoteModel.MACHINE_STUDIO_VERSIONS" Width="1.5" PointX="11.25" PointY="18.125" />
+ <EntityTypeShape EntityType="RemoteModel.MACHINE_VERSIONS" Width="1.5" PointX="0.75" PointY="65.5" />
+ <EntityTypeShape EntityType="RemoteModel.MACHINE" Width="1.5" PointX="3" PointY="57.25" />
+ <EntityTypeShape EntityType="RemoteModel.MACHINES_EVENTS" Width="1.5" PointX="11.25" PointY="39.625" />
+ <EntityTypeShape EntityType="RemoteModel.MEDIA_CONDITIONS" Width="1.5" PointX="0.75" PointY="18" />
+ <EntityTypeShape EntityType="RemoteModel.MEDIA_MATERIALS" Width="1.5" PointX="0.75" PointY="42.75" />
+ <EntityTypeShape EntityType="RemoteModel.MEDIA_PURPOSES" Width="1.5" PointX="0.75" PointY="15.125" />
+ <EntityTypeShape EntityType="RemoteModel.MID_TANK_TYPES" Width="1.5" PointX="3" PointY="44" />
+ <EntityTypeShape EntityType="RemoteModel.ORGANIZATION" Width="1.5" PointX="0.75" PointY="51.125" />
+ <EntityTypeShape EntityType="RemoteModel.PERMISSION" Width="1.5" PointX="12" PointY="4.25" />
+ <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES" Width="1.5" PointX="7.5" PointY="50.25" />
+ <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES_GROUPS" Width="1.5" PointX="5.25" PointY="56.125" />
+ <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS" Width="1.5" PointX="5.75" PointY="6.875" />
+ <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS_VERSIONS" Width="1.5" PointX="8" PointY="7" />
+ <EntityTypeShape EntityType="RemoteModel.RML_EXTENSION_TEST_WASHING_RESULTS" Width="1.5" PointX="8" PointY="2.875" />
+ <EntityTypeShape EntityType="RemoteModel.RML" Width="1.5" PointX="3" PointY="19.625" />
+ <EntityTypeShape EntityType="RemoteModel.RMLS_SPOOLS" Width="1.5" PointX="8.25" PointY="21.375" />
+ <EntityTypeShape EntityType="RemoteModel.ROLE" Width="1.5" PointX="12" PointY="8.125" />
+ <EntityTypeShape EntityType="RemoteModel.ROLES_PERMISSIONS" Width="1.5" PointX="14.25" PointY="8.25" />
+ <EntityTypeShape EntityType="RemoteModel.RUBBING_RESULTS" Width="1.5" PointX="16.75" PointY="13.625" />
+ <EntityTypeShape EntityType="RemoteModel.SEGMENT" Width="1.5" PointX="15.75" PointY="25.75" />
+ <EntityTypeShape EntityType="RemoteModel.SEGMENTS_GROUPS" Width="1.5" PointX="13.5" PointY="26" />
+ <EntityTypeShape EntityType="RemoteModel.SITE" Width="1.5" PointX="3" PointY="35.75" />
+ <EntityTypeShape EntityType="RemoteModel.SITES_CATALOGS" Width="1.5" PointX="5.25" PointY="66.25" />
+ <EntityTypeShape EntityType="RemoteModel.SITES_RMLS" Width="1.5" PointX="5.25" PointY="30.125" />
+ <EntityTypeShape EntityType="RemoteModel.SITES_SPOOL_TYPES" Width="1.5" PointX="14.25" PointY="30.125" />
+ <EntityTypeShape EntityType="RemoteModel.SPOOL_TYPES" Width="1.5" PointX="6" PointY="16" />
+ <EntityTypeShape EntityType="RemoteModel.SPOOL" Width="1.5" PointX="8.25" PointY="40.375" />
+ <EntityTypeShape EntityType="RemoteModel.sysdiagram" Width="1.5" PointX="2.75" PointY="16.625" />
+ <EntityTypeShape EntityType="RemoteModel.TANGO_UPDATES" Width="1.5" PointX="16.75" PointY="17.625" />
+ <EntityTypeShape EntityType="RemoteModel.TANGO_VERSIONS" Width="1.5" PointX="14.25" PointY="39.5" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_CONTROLLERS" Width="1.5" PointX="13.75" PointY="19.625" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_DISPENSERS" Width="1.5" PointX="18.75" PointY="2.625" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_HEATERS" Width="1.5" PointX="18.75" PointY="5.625" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_IOS" Width="1.5" PointX="18.75" PointY="8.625" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_MONITORS" Width="1.5" PointX="18.75" PointY="13.625" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_VALVES" Width="1.5" PointX="18.75" PointY="18.625" />
+ <EntityTypeShape EntityType="RemoteModel.USER" Width="1.5" PointX="9" PointY="14.75" />
+ <EntityTypeShape EntityType="RemoteModel.USERS_ROLES" Width="1.5" PointX="14.25" PointY="16.25" />
+ <EntityTypeShape EntityType="RemoteModel.WASHING_TEST_MATERIALS" Width="1.5" PointX="5.75" PointY="3.375" />
+ <EntityTypeShape EntityType="RemoteModel.WINDING_METHODS" Width="1.5" PointX="9" PointY="32.875" />
<AssociationConnector Association="RemoteModel.FK_ACTION_LOGS_USERS" />
<AssociationConnector Association="RemoteModel.FK_ORGANIZATIONS_ADDRESSES" />
<AssociationConnector Association="RemoteModel.FK_USERS_ADDRESSES" />
diff --git a/Software/Visual_Studio/Tango.Emulations/Emulators/MachineEmulator.cs b/Software/Visual_Studio/Tango.Emulations/Emulators/MachineEmulator.cs
index 5bf3b8a9a..61d069847 100644
--- a/Software/Visual_Studio/Tango.Emulations/Emulators/MachineEmulator.cs
+++ b/Software/Visual_Studio/Tango.Emulations/Emulators/MachineEmulator.cs
@@ -87,6 +87,7 @@ namespace Tango.Emulations.Emulators
private int _jobAbortCounter;
private bool _abortHeadCleaning;
private String _machineStatusRequestToken;
+ private MachineType _machineType;
#region Properties
@@ -166,9 +167,24 @@ namespace Tango.Emulations.Emulators
{
Index = i,
DispenserLevel = 130000000,
- MidTankLevel = 2500,
+ MidTankLevel = 2.5,
});
}
+ for (int i = 0; i < 4; i++)
+ {
+ if (i == 2)
+ {
+ MachineStatus.WindersInError.Add(false);
+ MachineStatus.DancersInError.Add(true);
+ MachineStatus.BtsrsInError.Add(true);
+ }
+ else
+ {
+ MachineStatus.WindersInError.Add(false);
+ MachineStatus.DancersInError.Add(false);
+ MachineStatus.BtsrsInError.Add(false);
+ }
+ }
EventsStates = MachineEventState.GetAllEventsStates();
@@ -212,6 +228,21 @@ namespace Tango.Emulations.Emulators
HeaterType = (HeaterType)item.Code,
});
}
+ var tunnel = _heater_states.FirstOrDefault(x => x.HeaterType == HeaterType.ETunnelHeater);
+ if (tunnel != null)
+ {
+ tunnel.IsRampingUp = true;
+ tunnel.CurrentValue = 108.5;
+ tunnel.SetPoint = 170;
+ }
+ var dryerZone3 = _heater_states.FirstOrDefault(x => x.HeaterType == HeaterType.EDryerHeater3);
+ if (dryerZone3 != null)
+ {
+ dryerZone3.IsRampingUp = false;
+ dryerZone3.CurrentValue = 200.8;
+ dryerZone3.SetPoint = 170;
+ }
+ //DryerZone3
foreach (var item in adapter.HardwareBlowerTypes)
{
@@ -496,6 +527,9 @@ namespace Tango.Emulations.Emulators
case MessageType.InitiateInkFillingRequest:
HandleInitiateInkFillingRequest(MessageFactory.ParseTangoMessageFromContainer<InitiateInkFillingRequest>(container));
break;
+ case MessageType.GetVersionDescriptorsRequest:
+ HandleGetVersionDescriptorsRequest(MessageFactory.ParseTangoMessageFromContainer<GetVersionDescriptorsRequest>(container));
+ break;
}
}
@@ -620,6 +654,19 @@ namespace Tango.Emulations.Emulators
monitors.Dispenser7MotorFrequency.AddRange(dispenserFrequencies[6].Data);
monitors.Dispenser8MotorFrequency.AddRange(dispenserFrequencies[7].Data);
+ monitors.EuDispenser1Pressure.Clear();
+ monitors.EuDispenser1Pressure.Add(5);
+
+ monitors.EuLubricantCurrent.Add(4000.12345);
+
+
+ //res.HeatersStates.Add(new HeaterState()
+ //{
+ // CurrentValue = 50,
+ // IsInSetPoint = false,
+ // SetPoint = 100
+ //});
+
res.DigitalInterfaceStates.AddRange(_digitalOutputPinsStates.Concat(_digitalInputPinsStates));
res.ComponentsStates.AddRange(_componentsStates);
res.HeatersStates.AddRange(_heater_states);
@@ -794,13 +841,21 @@ namespace Tango.Emulations.Emulators
Stopwatch watch = new Stopwatch();
Dictionary<int, IDSPackLevel> dispenserindexToPacklevel = new Dictionary<int, IDSPackLevel>();
+ double dryerLength = _machineType == MachineType.Ts1800 ? (job.ProcessParameters.DryerBufferLength * ProcessParametersTable.DRYER_METERS_PER_CYCLE + ProcessParametersTable.DRYER_TO_SPOOL_LENGTH_METERS) : job.ProcessParameters.DryerBufferLength;
+
+ //TODO Handle First Unit Length Decrease In Emulator!
+ double firstUnitStartPosition = request.Message.FirstUnitStartPosition;
+
+ bool addedResume = firstUnitStartPosition <= 0;
+ bool bIsResumeProcess = firstUnitStartPosition > 0;
+
for (int i = 0; i < units; i++)
{
-
- while (progress < unit_length + (i == units - 1 ? (job.ProcessParameters.DryerBufferLength * ProcessParametersTable.DRYER_METERS_PER_CYCLE + ProcessParametersTable.DRYER_TO_SPOOL_LENGTH_METERS) : 0) && !_cancelJob)
- {
- var status = new PMR.Printing.JobStatus();
- status.Progress = progress;
+ // while (progress < unit_length + (!bIsResumeProcess && i == units - 1 ? dryerLength : 0) && !_cancelJob)
+ while (progress < unit_length + ( i == units - 1 ? dryerLength : 0) && !_cancelJob)
+ {
+ var status = new PMR.Printing.JobStatus();
+ status.Progress = progress;
if (!message_sent)
{
@@ -828,7 +883,16 @@ namespace Tango.Emulations.Emulators
}
}
- progress += Math.Min((centimeter_per_second / 1000d), (unit_length + (i == units - 1 ? (job.ProcessParameters.DryerBufferLength * ProcessParametersTable.DRYER_METERS_PER_CYCLE + ProcessParametersTable.DRYER_TO_SPOOL_LENGTH_METERS) : 0)) - progress);
+ if (addedResume)
+ {
+ progress += Math.Min((centimeter_per_second / 1000d), (unit_length + (i == units - 1 ? dryerLength : 0)) - progress);
+ }
+ else
+ {
+ addedResume = true;
+ progress = firstUnitStartPosition;
+ }
+ //LogManager.Log($" Emulator Progress = {progress}, units = {units}");
double currentPosition = 0;
double nextStopPosition = unit_length;
@@ -928,7 +992,7 @@ namespace Tango.Emulations.Emulators
{
Status = new PMR.Printing.JobStatus()
{
- Progress = unit_length + job.ProcessParameters.DryerBufferLength * ProcessParametersTable.DRYER_METERS_PER_CYCLE + ProcessParametersTable.DRYER_TO_SPOOL_LENGTH_METERS,
+ Progress = unit_length + dryerLength,
}
}, request.Container.Token, new TransportResponseConfig() { Completed = !_cancelJob });
@@ -954,7 +1018,7 @@ namespace Tango.Emulations.Emulators
{
Status = new PMR.Printing.JobStatus()
{
- Progress = unit_length + job.ProcessParameters.DryerBufferLength * ProcessParametersTable.DRYER_METERS_PER_CYCLE + ProcessParametersTable.DRYER_TO_SPOOL_LENGTH_METERS,
+ Progress = unit_length + dryerLength,
}
}, _current_job_resume_token, new TransportResponseConfig() { Completed = !_cancelJob });
@@ -1261,6 +1325,8 @@ namespace Tango.Emulations.Emulators
}, request.Container.Token, new TransportResponseConfig() { ErrorCode = request.Message.Password == "1234" ? ErrorCode.None : ErrorCode.UnauthorizedConnection });
+ _machineType = request.Message.MachineType;
+
_connectionTime = DateTime.Now;
_isAfterReset = false;
@@ -1727,34 +1793,41 @@ namespace Tango.Emulations.Emulators
private async void HandleStartPowerUpRequest(TangoMessage<StartPowerUpRequest> request)
{
- await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Power up started...", ProgressPercentage = 10, State = PowerUpState.BuiltInTest }, request.Container.Token);
- Thread.Sleep(1000);
+ try
+ {
+ await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Power up started...", ProgressPercentage = 10, State = PowerUpState.BuiltInTest }, request.Container.Token);
+ Thread.Sleep(1000);
- await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Testing dispensers...", ProgressPercentage = 20, State = PowerUpState.DispenserPressureBuildupTest }, request.Container.Token);
- Thread.Sleep(1000);
+ await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Testing dispensers...", ProgressPercentage = 20, State = PowerUpState.DispenserPressureBuildupTest }, request.Container.Token);
+ Thread.Sleep(1000);
- await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Heating started...", ProgressPercentage = 30, State = PowerUpState.HeatingStarted }, request.Container.Token);
- Thread.Sleep(1000);
+ await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Heating started...", ProgressPercentage = 30, State = PowerUpState.HeatingStarted }, request.Container.Token);
+ Thread.Sleep(1000);
- await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Heating started...", ProgressPercentage = 40, State = PowerUpState.HwConfig }, request.Container.Token);
- Thread.Sleep(1000);
+ await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Heating started...", ProgressPercentage = 40, State = PowerUpState.HwConfig }, request.Container.Token);
+ Thread.Sleep(1000);
- await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Hardware configuration...", ProgressPercentage = 50, State = PowerUpState.HwConfig }, request.Container.Token);
- Thread.Sleep(1000);
+ await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Hardware configuration...", ProgressPercentage = 50, State = PowerUpState.HwConfig }, request.Container.Token);
+ Thread.Sleep(1000);
- await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Initializing blower...", ProgressPercentage = 60, State = PowerUpState.InitialBlowerActivation }, request.Container.Token);
- Thread.Sleep(1000);
+ await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Initializing blower...", ProgressPercentage = 60, State = PowerUpState.InitialBlowerActivation }, request.Container.Token);
+ Thread.Sleep(1000);
- await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Thread detection...", ProgressPercentage = 70, State = PowerUpState.ThreadDetection }, request.Container.Token);
- Thread.Sleep(1000);
+ await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Thread detection...", ProgressPercentage = 70, State = PowerUpState.ThreadDetection }, request.Container.Token);
+ Thread.Sleep(1000);
- await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Waiting for cooler...", ProgressPercentage = 80, State = PowerUpState.WaitForCooler }, request.Container.Token);
- Thread.Sleep(4000);
+ await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Waiting for cooler...", ProgressPercentage = 80, State = PowerUpState.WaitForCooler }, request.Container.Token);
+ Thread.Sleep(4000);
- await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Ready to dye...", ProgressPercentage = 90, State = PowerUpState.MachineReadyToDye }, request.Container.Token, new TransportResponseConfig()
+ await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Ready to dye...", ProgressPercentage = 90, State = PowerUpState.MachineReadyToDye }, request.Container.Token, new TransportResponseConfig()
+ {
+ Completed = true
+ });
+ }
+ catch (Exception ex)
{
- Completed = true
- });
+ LogManager.Log(ex);
+ }
}
private void HandleStartInkFillingStatusRequest(TangoMessage<StartInkFillingStatusRequest> request)
@@ -1872,6 +1945,22 @@ namespace Tango.Emulations.Emulators
await Transporter.SendResponse<InitiateInkFillingResponse>(new InitiateInkFillingResponse(), request.Container.Token);
}
+ private async void HandleGetVersionDescriptorsRequest(TangoMessage<GetVersionDescriptorsRequest> request)
+ {
+ GetVersionDescriptorsResponse response = new GetVersionDescriptorsResponse();
+
+ foreach (var destination in Enum.GetValues(typeof(PMR.FirmwareUpgrade.VersionFileDestination)).Cast<PMR.FirmwareUpgrade.VersionFileDestination>().ToList())
+ {
+ VersionFileDescriptor result = new VersionFileDescriptor();
+ result.Destination = destination;
+ result.Version = "123456VP";
+
+
+ response.Descriptors.Add(result);
+ }
+ await Transporter.SendResponse<GetVersionDescriptorsResponse>(response, request.Container.Token);
+ }
+
#endregion
#region Public Methods
@@ -1892,11 +1981,11 @@ namespace Tango.Emulations.Emulators
await Transporter.SendResponse<StartThreadLoadingResponse>(new StartThreadLoadingResponse() { State = ThreadLoadingState.Preparing }, _threadLoadingToken);
await Task.Delay(8000);
- if (_rnd.Next(0, 100) > 50)
- {
- await Transporter.SendResponse<StartThreadLoadingResponse>(new StartThreadLoadingResponse() { State = ThreadLoadingState.PreparationError, ErrorReason = "Emulator preparation random error." }, _threadLoadingToken);
- }
- else
+ //if (_rnd.Next(0, 100) > 50)
+ //{
+ // await Transporter.SendResponse<StartThreadLoadingResponse>(new StartThreadLoadingResponse() { State = ThreadLoadingState.PreparationError, ErrorReason = "Emulator preparation random error." }, _threadLoadingToken);
+ //}
+ //else
{
await Transporter.SendResponse<StartThreadLoadingResponse>(new StartThreadLoadingResponse() { State = ThreadLoadingState.ReadyForLoading }, _threadLoadingToken);
}
diff --git a/Software/Visual_Studio/Tango.FileSystem/FileSystemManager.cs b/Software/Visual_Studio/Tango.FileSystem/FileSystemManager.cs
index dc8efa7dd..9c112ae75 100644
--- a/Software/Visual_Studio/Tango.FileSystem/FileSystemManager.cs
+++ b/Software/Visual_Studio/Tango.FileSystem/FileSystemManager.cs
@@ -19,7 +19,7 @@ namespace Tango.FileSystem
folder.Path = "This PC";
folder.IsRoot = true;
folder.Type = FileSystemItemType.Folder;
- folder.Items = DriveInfo.GetDrives().Where(x => x.DriveType == DriveType.Fixed || x.DriveType == DriveType.Removable || x.DriveType == DriveType.Network).Select(x => new FileSystemItemDTO()
+ folder.Items = DriveInfo.GetDrives().Where(x => x.DriveType == DriveType.Fixed || x.DriveType == DriveType.Removable || x.DriveType == DriveType.Network).Where(x => x.IsReady).Select(x => new FileSystemItemDTO()
{
Path = x.RootDirectory.FullName,
DriveType = x.DriveType,
diff --git a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeScanner.cs b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeScanner.cs
index da55a13d3..8ffe2b86c 100644
--- a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeScanner.cs
+++ b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeScanner.cs
@@ -14,6 +14,7 @@ using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Tango.BL.Entities;
+using Tango.BL.Enumerations;
using Tango.Core;
using Tango.Core.Helpers;
using Tango.Integration.ExternalBridge.Web;
@@ -288,6 +289,7 @@ namespace Tango.Integration.ExternalBridge
if (newMachine != null)
{
+ newMachine.MachineType = (MachineTypes)discoveryPacket.MachineType;
LogManager.Log("Found a new machine via TCP " + newMachine.SerialNumber);
ThreadsHelper.InvokeUINow(() =>
@@ -346,6 +348,7 @@ namespace Tango.Integration.ExternalBridge
if (newMachine != null)
{
+ newMachine.MachineType = (MachineTypes)machine.MachineType;
LogManager.Log("Found a new machine via SignalR " + newMachine.SerialNumber);
ThreadsHelper.InvokeUINow(() =>
@@ -429,6 +432,7 @@ namespace Tango.Integration.ExternalBridge
if (newMachine != null)
{
+ newMachine.MachineType = (MachineTypes)info.MachineType;
LogManager.Log("Found a new machine via IP Address" + newMachine.SerialNumber);
ThreadsHelper.InvokeUINow(() =>
diff --git a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeService.cs b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeService.cs
index ae7cace31..ef66275cf 100644
--- a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeService.cs
+++ b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeService.cs
@@ -237,10 +237,11 @@ namespace Tango.Integration.ExternalBridge
{
SerialNumber = Machine.SerialNumber,
Guid = Machine.Guid,
+ MachineType = (PMR.Common.MachineType)Machine.MachineType
})
{
MulticastGroupAddress = _multicastAddress,
- TcpValidationInfo = new TcpValidationInfo() { Guid = Machine.Guid, SerialNumber = Machine.SerialNumber }
+ TcpValidationInfo = new TcpValidationInfo() { Guid = Machine.Guid, SerialNumber = Machine.SerialNumber, MachineType = Machine.MachineType }
};
_discoveryService.BeforeBroadcasting -= _discoverySevice_BeforeBroadcasting;
@@ -642,6 +643,7 @@ namespace Tango.Integration.ExternalBridge
{
SerialNumber = Machine.SerialNumber,
Organization = Machine.Organization.Name,
+ MachineType = Machine.MachineType
});
_isSignalRConnected = true;
diff --git a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeTcpFirmwareClient.cs b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeTcpFirmwareClient.cs
new file mode 100644
index 000000000..e5ae14d0f
--- /dev/null
+++ b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeTcpFirmwareClient.cs
@@ -0,0 +1,79 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.BL;
+using Tango.BL.Entities;
+using Tango.Integration.Operation;
+using Tango.Settings;
+using Tango.Transport.Adapters;
+
+namespace Tango.Integration.ExternalBridge
+{
+ public class ExternalBridgeTcpFirmwareClient : MachineOperator, IExternalBridgeClient
+ {
+ public bool RequiresAuthentication { get; } = false;
+
+ private String _serialNumber;
+ /// <summary>
+ /// Gets the machine serial number.
+ /// </summary>
+ public String SerialNumber
+ {
+ get { return _serialNumber; }
+ set
+ {
+ _serialNumber = value;
+ RaisePropertyChangedAuto();
+ }
+ }
+
+ private String _ipAddress;
+ /// <summary>
+ /// Gets or sets the machine IP address.
+ /// </summary>
+ public String IPAddress
+ {
+ get { return _ipAddress; }
+ private set { _ipAddress = value; RaisePropertyChangedAuto(); }
+ }
+
+ private int _port;
+ /// <summary>
+ /// Gets or sets the machine port.
+ /// </summary>
+ public int Port
+ {
+ get { return _port; }
+ private set { _port = value; RaisePropertyChangedAuto(); }
+ }
+
+ public Machine Machine { get; private set; }
+
+ public ExternalBridgeTcpFirmwareClient()
+ {
+ ComponentName = $"External Bridge TCP Firmware Client {_component_counter++}";
+
+ var settings = SettingsManager.Default.GetOrCreate<IntegrationSettings>();
+
+ IPAddress = settings.FirmwareIPAddress;
+ Port = settings.FirmwarePort;
+ UseKeepAlive = false;
+ EnableDiagnostics = true;
+
+ Adapter = new TcpTransportAdapter(IPAddress, Port);
+ }
+
+ public ExternalBridgeTcpFirmwareClient(Machine machine) : this()
+ {
+ SetMachine(machine);
+ }
+
+ public void SetMachine(Machine machine)
+ {
+ Machine = machine;
+ SerialNumber = Machine.SerialNumber;
+ }
+ }
+}
diff --git a/Software/Visual_Studio/Tango.Integration/ExternalBridge/Web/MachineInfo.cs b/Software/Visual_Studio/Tango.Integration/ExternalBridge/Web/MachineInfo.cs
index cccc24c35..5e70be977 100644
--- a/Software/Visual_Studio/Tango.Integration/ExternalBridge/Web/MachineInfo.cs
+++ b/Software/Visual_Studio/Tango.Integration/ExternalBridge/Web/MachineInfo.cs
@@ -13,6 +13,7 @@ namespace Tango.Integration.ExternalBridge.Web
public String SerialNumber { get; set; }
public String Organization { get; set; }
public String IPAddress { get; set; }
+ public int MachineType { get; set; }
public MachineInfo()
{
diff --git a/Software/Visual_Studio/Tango.Integration/IntegrationSettings.cs b/Software/Visual_Studio/Tango.Integration/IntegrationSettings.cs
index 20d0b76e4..64158651f 100644
--- a/Software/Visual_Studio/Tango.Integration/IntegrationSettings.cs
+++ b/Software/Visual_Studio/Tango.Integration/IntegrationSettings.cs
@@ -47,6 +47,16 @@ namespace Tango.Integration
public UsbSerialBaudRates EmbeddedSerialBaudRate { get; set; }
/// <summary>
+ /// Gets or sets the firmware TCP IP address when using TCP/IP as the communication method with the embedded device.
+ /// </summary>
+ public String FirmwareIPAddress { get; set; }
+
+ /// <summary>
+ /// Gets or sets the firmware TCP IP port when using TCP/IP as the communication method with the embedded device.
+ /// </summary>
+ public int FirmwarePort { get; set; }
+
+ /// <summary>
/// Initializes a new instance of the <see cref="IntegrationSettings"/> class.
/// </summary>
public IntegrationSettings()
@@ -58,6 +68,8 @@ namespace Tango.Integration
EmbeddedDeviceName = "Tango USB Serial Port";
FilterExternalBridgeUsbMachines = false;
EmbeddedSerialBaudRate = UsbSerialBaudRates.BR_115200;
+ FirmwareIPAddress = "10.0.0.3";
+ FirmwarePort = 30000;
}
}
}
diff --git a/Software/Visual_Studio/Tango.Integration/JobRuns/BasicJobRunsLogger.cs b/Software/Visual_Studio/Tango.Integration/JobRuns/BasicJobRunsLogger.cs
index 68565679a..6285bb7b0 100644
--- a/Software/Visual_Studio/Tango.Integration/JobRuns/BasicJobRunsLogger.cs
+++ b/Software/Visual_Studio/Tango.Integration/JobRuns/BasicJobRunsLogger.cs
@@ -158,11 +158,20 @@ namespace Tango.Integration.JobRuns
run.IsGradient = _job.Segments.Any(x => x.BrushStops.Count > 1);
run.GradientResolutionCm = MachineOperator.GradientGenerationConfiguration.ResolutionCM;
+ if (_defaultMachine != null)
+ {
+ run.MachineType = _defaultMachine.MachineType;
+ }
+ else if (_job.Machine != null)
+ {
+ run.MachineType = _job.Machine.MachineType;
+ }
+
var jobFile = e.Job.ToJobFileWhenLoaded();
- try
- {
- if (_job.Designation == JobDesignations.FineTuning)
+ try
+ {
+ if (_job.Designation == JobDesignations.FineTuning)
{
jobFile.Segments.First().BrushStops.First().ColorSpaceGuid = colorSpaces.First(x => x.Code == (int)ColorSpaces.LAB).Guid;
}
diff --git a/Software/Visual_Studio/Tango.Integration/Operation/AdditionalJobConfiguration.cs b/Software/Visual_Studio/Tango.Integration/Operation/AdditionalJobConfiguration.cs
index dc0ecf19e..43beba7f0 100644
--- a/Software/Visual_Studio/Tango.Integration/Operation/AdditionalJobConfiguration.cs
+++ b/Software/Visual_Studio/Tango.Integration/Operation/AdditionalJobConfiguration.cs
@@ -8,10 +8,18 @@ namespace Tango.Integration.Operation
{
public class AdditionalJobConfiguration
{
+ public class ResumeConfiguration
+ {
+ public int RemainingUnits { get; set; }
+ public double GlobalStartPosition { get; set; }
+ public double FirstUnitStartPosition { get; set; }
+ }
+
public double LubricationVolume { get; set; }
public bool UseLubricantVolume { get; set; }
public bool UseColorConversion { get; set; }
public bool UseLightInks { get; set; }
+ public ResumeConfiguration ResumeConfig { get; set; }
public AdditionalJobConfiguration()
{
diff --git a/Software/Visual_Studio/Tango.Integration/Operation/IMachineOperator.cs b/Software/Visual_Studio/Tango.Integration/Operation/IMachineOperator.cs
index ca00f2891..68ed696fa 100644
--- a/Software/Visual_Studio/Tango.Integration/Operation/IMachineOperator.cs
+++ b/Software/Visual_Studio/Tango.Integration/Operation/IMachineOperator.cs
@@ -26,6 +26,7 @@ using Tango.PMR.MachineStatus;
using Tango.PMR.ThreadLoading;
using Tango.PMR.Power;
using Tango.PMR.IFS;
+using Tango.BL.Enumerations;
namespace Tango.Integration.Operation
{
@@ -61,6 +62,11 @@ namespace Tango.Integration.Operation
MachineStatuses Status { get; }
/// <summary>
+ /// Gets or sets the type of the machine.
+ /// </summary>
+ MachineTypes MachineType { get; set; }
+
+ /// <summary>
/// Gets a value indicating whether the machine is connected and status is not disconnected.
/// </summary>
bool IsConnected { get; }
@@ -587,5 +593,18 @@ namespace Tango.Integration.Operation
/// </summary>
/// <param name="approved">Approve or decline the sequence.</param>
Task CompleteWasteReplacement(bool approved);
+
+ /// <summary>
+ /// Gets the list of firmware version descriptors.
+ /// </summary>
+ /// <returns></returns>
+ Task<List<VersionFileDescriptor>> GetFirmwareVersionDescriptors();
+
+ /// <summary>
+ /// Resets the firmware card by the specified card id.
+ /// </summary>
+ /// <param name="cardID">The card identifier.</param>
+ /// <returns></returns>
+ Task ResetCard(int cardID);
}
}
diff --git a/Software/Visual_Studio/Tango.Integration/Operation/JobHandler.cs b/Software/Visual_Studio/Tango.Integration/Operation/JobHandler.cs
index a8208323a..5d62f4269 100644
--- a/Software/Visual_Studio/Tango.Integration/Operation/JobHandler.cs
+++ b/Software/Visual_Studio/Tango.Integration/Operation/JobHandler.cs
@@ -5,9 +5,11 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.BL.Entities;
+using Tango.BL.Enumerations;
using Tango.Core;
using Tango.Logging;
using Tango.PMR.Printing;
+using static Tango.Integration.Operation.AdditionalJobConfiguration;
namespace Tango.Integration.Operation
{
@@ -138,6 +140,8 @@ namespace Tango.Integration.Operation
/// </summary>
public JobTicket JobTicket { get; private set; }
+ public ResumeConfiguration ResumeConfig { get; private set; }
+
#endregion
#region Constructors
@@ -154,13 +158,14 @@ namespace Tango.Integration.Operation
/// Initializes a new instance of the <see cref="JobHandler"/> class.
/// </summary>
/// <param name="cancelAction">The cancel action.</param>
- public JobHandler(Action cancelAction, Job job, JobTicket jobTicket, ProcessParametersTable processParameters, JobHandlerModes mode) : this()
+ public JobHandler(Action cancelAction, Job job, JobTicket jobTicket, ProcessParametersTable processParameters, JobHandlerModes mode, ResumeConfiguration resumeConfig = null) : this()
{
_mode = mode;
ProcessParameters = processParameters;
Job = job;
JobTicket = jobTicket;
+ ResumeConfig = resumeConfig;
foreach (var s in Job.Segments)
{
@@ -175,6 +180,7 @@ namespace Tango.Integration.Operation
Status = new RunningJobStatus();
+
Status.TotalTime = job.GetEstimatedDuration(processParameters);
Status.RemainingUnits = job.NumberOfUnits;
Status.TotalProgress = Job.LengthIncludingNumberOfUnits + processParameters.DryerBufferLengthMeters;
@@ -185,6 +191,11 @@ namespace Tango.Integration.Operation
Status.RemainingProgress = Status.TotalProgress;
Status.CurrentUnitSegments = _effectiveSegments.ToList();
Status.SettingUpTotalProgress = processParameters.DryerBufferLengthMeters;
+ if (resumeConfig != null && resumeConfig.GlobalStartPosition > 0)
+ {
+ Status.SettingUpTotalProgress = resumeConfig.GlobalStartPosition;
+ Status.CurrentUnitProgress = ResumeConfig.FirstUnitStartPosition;
+ }
Status.TotalProgressMinusSettingUp = Job.LengthIncludingNumberOfUnits;
Status.IsSettingUp = true;
@@ -330,7 +341,7 @@ namespace Tango.Integration.Operation
protected virtual void InvalidateJobProgress(JobStatus s)
{
JobStatus = s;
-
+
if (_last_progress != s.Progress)
{
if (s.Progress <= PROGRESS_REPORT_RANGE_METERS || s.Progress >= Status.TotalProgress - PROGRESS_REPORT_RANGE_METERS)
@@ -381,7 +392,16 @@ namespace Tango.Integration.Operation
Status.IsSettingUp = false;
}
- Status.ProgressMinusSettingUp = s.Progress - this.Status.SettingUpTotalProgress;
+ if (ResumeConfig != null && ResumeConfig.GlobalStartPosition > 0)
+ {
+ Status.ProgressMinusSettingUp = s.Progress - ProcessParameters.DryerBufferLengthMeters;
+ //LogManager.Log($" Status.ProgressMinusSettingUp {Status.ProgressMinusSettingUp} progress = {s.Progress}");
+
+ }
+ else
+ {
+ Status.ProgressMinusSettingUp = s.Progress - this.Status.SettingUpTotalProgress;
+ }
}
int units = (int)Math.Max(Job.NumberOfUnits, 1);
@@ -409,6 +429,15 @@ namespace Tango.Integration.Operation
break;
}
}
+ else if(ResumeConfig != null && ResumeConfig.GlobalStartPosition > 0)
+ {
+ if (!Status.IsSettingUp && s.Progress <= previousUnitsLengthWithoutThis + unitLength + ProcessParameters.DryerBufferLengthMeters)
+ {
+ currentUnitProgress = s.Progress - previousUnitsLengthWithoutThis - ProcessParameters.DryerBufferLengthMeters;
+ //LogManager.Log($"currentUnitProgress before ={currentUnitProgress} progress = {s.Progress}");
+ break;
+ }
+ }
else if (s.Progress <= previousUnitsLengthWithoutThis + unitLength + Status.SettingUpProgress)
{
if (!Status.IsSettingUp)
@@ -423,6 +452,7 @@ namespace Tango.Integration.Operation
Status.CurrentUnit = currentUnit;
Status.CurrentUnitProgress = currentUnitProgress;
+ //LogManager.Log($"CurrentUnit {Status.CurrentUnit} currentUnitProgress {Status.CurrentUnitProgress} ");
Status.RemainingUnits = this.Job.NumberOfUnits - this.Status.CurrentUnit;
@@ -438,14 +468,10 @@ namespace Tango.Integration.Operation
Status.CurrentUnitTotalProgress = Status.RemainingUnits > 1 && Job.EnableInterSegment ? Job.Length + (Job.InterSegmentLength) : Job.Length;
- if (s.Message != _lastStatusMessage && s.Message != String.Empty)
+ if (s.Message != _lastStatusMessage )
{
Status.Message = s.Message;
}
- else
- {
- Status.Message = null;
- }
_lastStatusMessage = s.Message;
@@ -518,7 +544,8 @@ namespace Tango.Integration.Operation
TimeSpan segmentsDuration = Job.TranslateProgressToTime(previousSegmentsLengthWithThis, ProcessParameters);
TimeSpan segmentRemainingTime = segmentsDuration - Job.TranslateProgressToTime(Status.Progress, ProcessParameters);
- segment.Progress = Math.Min(Math.Max((previousSegmentsLengthWithThis - segment.Length - Status.Progress) * -1, 0), segment.Length);
+ // segment.Progress = Math.Min(Math.Max((previousSegmentsLengthWithThis - segment.Length - Status.Progress) * -1, 0), segment.Length);
+ segment.Progress = Math.Min(Math.Max((previousSegmentsLengthWithThis - segment.Length - Status.ProgressMinusSettingUp) * -1, 0), segment.Length);
if (i == 0 && Status.Progress > 0)
{
@@ -529,7 +556,8 @@ namespace Tango.Integration.Operation
}
}
- if (Status.Progress >= previousSegmentsLengthWithThis)
+ //if (Status.Progress >= previousSegmentsLengthWithThis)
+ if (Status.ProgressMinusSettingUp >= previousSegmentsLengthWithThis)
{
if (!segment.Completed)
{
diff --git a/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs b/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs
index 005121b88..07d2c9881 100644
--- a/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs
+++ b/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs
@@ -59,6 +59,7 @@ namespace Tango.Integration.Operation
public const String FIRMWARE_UPGRADE_FOLDER_NAME = "UpgradePackage";
public const String FIRMWARE_UPGRADE_CONFIG_FILE_NAME = "package.cfg";
public const String JOB_DESCRIPTION_FILE_NAME = "job_segments.jdf";
+ public const String EUREKA_FIRMWARE_UPGRADE_DRIVE_LABEL = "NOD_H743ZI2";
public const int MAX_DISPENSER_NANOLITER = 130000000;
public const double MAX_MIDTANK_LITERS = 1.8;
@@ -664,6 +665,11 @@ namespace Tango.Integration.Operation
/// </summary>
public bool IsSpoolReplaced { get; private set; }
+ /// <summary>
+ /// Gets or sets the type of the machine.
+ /// </summary>
+ public MachineTypes MachineType { get; set; }
+
#endregion
#region Virtual Methods
@@ -1499,7 +1505,8 @@ namespace Tango.Integration.Operation
{
Password = "1234",
UnixTime = DateTimeOffset.UtcNow.ToUnixTimeSeconds(),
- SpoolType = _currentSpoolType
+ SpoolType = _currentSpoolType,
+ MachineType = (PMR.Common.MachineType)MachineType,
};
try
@@ -2589,6 +2596,8 @@ namespace Tango.Integration.Operation
/// <returns></returns>
public Task<JobHandler> Print(Job job, ProcessParametersTable processParameters, AdditionalJobConfiguration config = null)
{
+ //processParameters.DryerBufferLength = 10; //TODO: REMOVE !!!
+
return Task.Factory.StartNew(() =>
{
if (config == null) config = new AdditionalJobConfiguration();
@@ -2640,7 +2649,7 @@ namespace Tango.Integration.Operation
bool useLightInks = config.UseLightInks;
//Use light inks only if one segment or inter segment is enabled.
- if (job.OrderedSegmentsWithGroups.Count > 1 && !job.EnableInterSegment) useLightInks = false;
+ if (MachineType == MachineTypes.TS1800 && job.OrderedSegmentsWithGroups.Count > 1 && !job.EnableInterSegment) useLightInks = false;
foreach (var segment in jobSegments)
{
@@ -2723,7 +2732,7 @@ namespace Tango.Integration.Operation
List<RequiredLiquid> requiredLiquids = null;
//Validate liquid quantities
- if (EnableJobLiquidQuantityValidation)
+ if (EnableJobLiquidQuantityValidation && MachineType == MachineTypes.TS1800)
{
if (!originalJob.Rml.UseColorLibGradients) //Validate liquid quantities when ColorLib generate gradient is disabled
{
@@ -2878,12 +2887,12 @@ namespace Tango.Integration.Operation
await fileUploadHandler.Cancel();
fileUploadHandler = null;
LogManager.Log("Job upload canceled.");
- OnPrintingAborted(handler, jobForJobRun);
- handler.RaiseCanceled();
if (Status != MachineStatuses.Disconnected)
{
UpdateStatus(MachineStatuses.ReadyToDye);
}
+ OnPrintingAborted(handler, jobForJobRun);
+ handler.RaiseCanceled();
}
else
{
@@ -2893,12 +2902,14 @@ namespace Tango.Integration.Operation
}
SaveLastJobLiquidQuantities(clonedJob, originalJob.Machine.Configuration, processParameters, handler);
- OnPrintingAborted(handler, jobForJobRun);
- handler.RaiseCanceled();
+
if (Status != MachineStatuses.Disconnected)
{
UpdateStatus(MachineStatuses.ReadyToDye);
}
+
+ OnPrintingAborted(handler, jobForJobRun);
+ handler.RaiseCanceled();
}
}
}
@@ -2907,7 +2918,7 @@ namespace Tango.Integration.Operation
handler.CanCancel = true;
LogManager.Log(ex, "Failed to cancel job.");
}
- }, clonedJob, ticket, processParameters, JobHandlingMode);
+ }, clonedJob, ticket, processParameters, JobHandlingMode, config.ResumeConfig);
handler.StatusChanged += (x, s) =>
{
@@ -3239,10 +3250,23 @@ namespace Tango.Integration.Operation
return;
}
+ double resumePreProgress = 0;
+
+ if (config.ResumeConfig != null)
+ {
+ resumePreProgress = config.ResumeConfig.GlobalStartPosition - processParameters.DryerBufferLengthMeters;
+ request.FirstUnitStartPosition = config.ResumeConfig.FirstUnitStartPosition;
+ //LogManager.Log($" resumePreProgress = {resumePreProgress}, GlobalStartPosition {config.ResumeConfig.GlobalStartPosition} FirstUnitStartPosition {request.FirstUnitStartPosition}");
+ request.JobTicket.Length = (request.JobTicket.Length / Math.Max(request.JobTicket.NumberOfUnits, 1)) * (int)Math.Max(config.ResumeConfig.RemainingUnits, 1);
+ request.JobTicket.NumberOfUnits = (uint)Math.Max(config.ResumeConfig.RemainingUnits, 1);
+ }
+
SendContinuousRequest<JobRequest, JobResponse>(request, new TransportContinuousRequestConfig() { Timeout = TimeSpan.FromSeconds(10), ContinuousTimeout = TimeSpan.FromSeconds(10), ShouldLog = true }).Subscribe((response) =>
{
if (!completed)
{
+ response.Message.Status.Progress += resumePreProgress;
+
handler.RaiseStatusReceived(response.Message.Status);
_last_job_status = handler.Status;
@@ -3311,8 +3335,8 @@ namespace Tango.Integration.Operation
finalException = new ContinuousResponseAbortedException($"Job aborted by the embedded device ({continuousException.Container.ErrorMessage}).");
}
- OnPrintingFailed(handler, jobForJobRun, finalException);
handler.RaiseFailed(finalException);
+ OnPrintingFailed(handler, jobForJobRun, finalException);
}
}
}, () =>
@@ -3325,8 +3349,8 @@ namespace Tango.Integration.Operation
UpdateStatus(MachineStatuses.ReadyToDye);
SaveLastJobLiquidQuantities(clonedJob, originalJob.Machine.Configuration, processParameters, handler);
- OnPrintingCompleted(handler, jobForJobRun);
handler.RaiseCompleted();
+ OnPrintingCompleted(handler, jobForJobRun);
}
});
});
@@ -3932,6 +3956,7 @@ namespace Tango.Integration.Operation
Action validate = null;
Action activate = null;
Action postActivation = null;
+ Action upgradeEureka = null;
UpdateStatus(MachineStatuses.Upgrading);
@@ -4056,6 +4081,119 @@ namespace Tango.Integration.Operation
}
});
+ upgradeEureka = new Action(() =>
+ {
+ try
+ {
+ if (FirmwareUpgradeMode.HasFlag(FirmwareUpgradeModes.DFU))
+ {
+ if (package_info.ContainsMcu())
+ {
+ LogManager.Log("Firmware upgrade enabled. Starting upgrade via file system...");
+
+ var upgradeDrive = DriveInfo.GetDrives().SingleOrDefault(x => x.VolumeLabel == EUREKA_FIRMWARE_UPGRADE_DRIVE_LABEL);
+ if (upgradeDrive == null)
+ {
+ throw LogManager.Log(new IOException($"Could not locate firmware upgrade volume labeled '{EUREKA_FIRMWARE_UPGRADE_DRIVE_LABEL}'"));
+ }
+
+ String upgradeFolder = upgradeDrive.RootDirectory.FullName;
+
+ LogManager.Log("Extracting MCU file...");
+ ZipEntry mcuEntry = null;
+ try
+ {
+ mcuEntry = entries.Single(x => x.FileName == package_info.FileDescriptors.Single(y => y.Destination == VersionFileDestination.Mcu).FileName);
+ entries.Remove(mcuEntry);
+ }
+ catch (Exception ex)
+ {
+ LogManager.Log(ex, "Error extracting MCU file from package.");
+ upgradeHandler.RaiseFailed(new IOException("Error retrieving MCU file from package.", ex));
+ return;
+ }
+
+ LogManager.Log("Disconnecting adapter...");
+ Adapter.Disconnect().Wait();
+
+ ResetEvents();
+ ResetInkFllingStatus();
+
+ try
+ {
+ if (!isEmulated)
+ {
+ LogManager.Log("Upgrading...");
+ mcuEntry.Extract(upgradeFolder, ExtractExistingFileAction.OverwriteSilently);
+ }
+ else
+ {
+ LogManager.Log("Upgrading (emulated)...");
+ Thread.Sleep(3000);
+ }
+ }
+ catch (Exception ex)
+ {
+ LogManager.Log(ex, "Firmware upgrade failed while extracting the MCU file to the upgrade location.");
+ UpdateStatus(MachineStatuses.Disconnected);
+ upgradeHandler.RaiseFailed(ex);
+ OnFailed(ex);
+ return;
+ }
+
+ LogManager.Log("Waiting for the device...");
+ upgradeHandler.RaiseProgress(FirmwareUpgradeStatus.Upgrading, "Waiting for the device...");
+ Thread.Sleep(5000);
+
+ LogManager.Log("Reconnecting adapter...");
+ upgradeHandler.RaiseProgress(FirmwareUpgradeStatus.Upgrading, "Connecting...");
+ Adapter.Connect().Wait();
+
+ Connect().Wait();
+
+ LogManager.Log("Connected...");
+ upgradeHandler.RaiseProgress(FirmwareUpgradeStatus.Upgrading, "Connected.");
+ Thread.Sleep(2000);
+
+ LogManager.Log("Waiting...");
+ upgradeHandler.RaiseProgress(FirmwareUpgradeStatus.Upgrading, "Waiting...");
+ Thread.Sleep(2000);
+
+ UpdateStatus(MachineStatuses.Upgrading);
+ }
+ else
+ {
+ LogManager.Log("DFU is enabled but no MCU file was found on the package. Skipping...");
+ }
+ }
+
+ //Upload tfp package only if specified in flag && package info contains more files other than the mcu bin file.
+ if (FirmwareUpgradeMode.HasFlag(FirmwareUpgradeModes.TFP_PACKAGE))
+ {
+ if (package_info.ContainsNoneMcu())
+ {
+ LogManager.Log("TFP package is enabled. Starting upload...");
+ uploadNext();
+ }
+ else
+ {
+ LogManager.Log("TFP package is enabled but no other files other than the MCU file were found on the package. Skipping...");
+ postActivation();
+ }
+ }
+ else
+ {
+ postActivation();
+ }
+ }
+ catch (Exception ex)
+ {
+ UpdateStatus(MachineStatuses.ReadyToDye);
+ upgradeHandler.RaiseFailed(ex);
+ return;
+ }
+ });
+
uploadNext = new Action(() =>
{
if (entries.Count > 0)
@@ -4175,7 +4313,14 @@ namespace Tango.Integration.Operation
ThreadFactory.StartNew(() =>
{
- upgradeDFU();
+ if (MachineType == MachineTypes.TS1800)
+ {
+ upgradeDFU();
+ }
+ else
+ {
+ upgradeEureka();
+ }
});
return upgradeHandler;
@@ -4507,6 +4652,26 @@ namespace Tango.Integration.Operation
}
}
+ /// <summary>
+ /// Gets the list of firmware version descriptors.
+ /// </summary>
+ /// <returns></returns>
+ public async Task<List<VersionFileDescriptor>> GetFirmwareVersionDescriptors()
+ {
+ var response = await SendRequest<GetVersionDescriptorsRequest, GetVersionDescriptorsResponse>(new GetVersionDescriptorsRequest());
+ return response.Message.Descriptors.ToList();
+ }
+
+ /// <summary>
+ /// Resets the firmware card by the specified card id.
+ /// </summary>
+ /// <param name="cardID">The card identifier.</param>
+ /// <returns></returns>
+ public Task ResetCard(int cardID)
+ {
+ return SendRequest<ResetCardRequest, ResetCardResponse>(new ResetCardRequest() { }, new TransportRequestConfig() { Timeout = TimeSpan.FromSeconds(3) });
+ }
+
#endregion
}
}
diff --git a/Software/Visual_Studio/Tango.Integration/Tango.Integration.csproj b/Software/Visual_Studio/Tango.Integration/Tango.Integration.csproj
index 79baefff0..dfddc1b81 100644
--- a/Software/Visual_Studio/Tango.Integration/Tango.Integration.csproj
+++ b/Software/Visual_Studio/Tango.Integration/Tango.Integration.csproj
@@ -103,6 +103,7 @@
<Compile Include="ExternalBridge\ExternalBridgeReceiverLoginRequestEventArgs.cs" />
<Compile Include="ExternalBridge\ExternalBridgeReceiverRequestReceivedEventArgs.cs" />
<Compile Include="ExternalBridge\ExternalBridgeRequestHandlerMethodAttribute.cs" />
+ <Compile Include="ExternalBridge\ExternalBridgeTcpFirmwareClient.cs" />
<Compile Include="ExternalBridge\IExternalBridgeRequestHandler.cs" />
<Compile Include="ExternalBridge\ExternalBridgeSignalRConfiguration.cs" />
<Compile Include="ExternalBridge\ExternalBridgeSignalRClient.cs" />
diff --git a/Software/Visual_Studio/Tango.PMR/Common/MachineType.cs b/Software/Visual_Studio/Tango.PMR/Common/MachineType.cs
new file mode 100644
index 000000000..4ef97d168
--- /dev/null
+++ b/Software/Visual_Studio/Tango.PMR/Common/MachineType.cs
@@ -0,0 +1,45 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: MachineType.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.Protobuf;
+using pbc = global::Google.Protobuf.Collections;
+using pbr = global::Google.Protobuf.Reflection;
+using scg = global::System.Collections.Generic;
+namespace Tango.PMR.Common {
+
+ /// <summary>Holder for reflection information generated from MachineType.proto</summary>
+ public static partial class MachineTypeReflection {
+
+ #region Descriptor
+ /// <summary>File descriptor for MachineType.proto</summary>
+ public static pbr::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbr::FileDescriptor descriptor;
+
+ static MachineTypeReflection() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "ChFNYWNoaW5lVHlwZS5wcm90bxIQVGFuZ28uUE1SLkNvbW1vbiolCgtNYWNo",
+ "aW5lVHlwZRIKCgZUUzE4MDAQABIKCgZFdXJla2EQAUIcChpjb20udHdpbmUu",
+ "dGFuZ28ucG1yLmNvbW1vbmIGcHJvdG8z"));
+ descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
+ new pbr::FileDescriptor[] { },
+ new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Tango.PMR.Common.MachineType), }, null));
+ }
+ #endregion
+
+ }
+ #region Enums
+ public enum MachineType {
+ [pbr::OriginalName("TS1800")] Ts1800 = 0,
+ [pbr::OriginalName("Eureka")] Eureka = 1,
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/Software/Visual_Studio/Tango.PMR/Common/MessageType.cs b/Software/Visual_Studio/Tango.PMR/Common/MessageType.cs
index 8dba8cee4..d106ab382 100644
--- a/Software/Visual_Studio/Tango.PMR/Common/MessageType.cs
+++ b/Software/Visual_Studio/Tango.PMR/Common/MessageType.cs
@@ -22,7 +22,7 @@ namespace Tango.PMR.Common {
static MessageTypeReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
- "ChFNZXNzYWdlVHlwZS5wcm90bxIQVGFuZ28uUE1SLkNvbW1vbirxQQoLTWVz",
+ "ChFNZXNzYWdlVHlwZS5wcm90bxIQVGFuZ28uUE1SLkNvbW1vbirnQgoLTWVz",
"c2FnZVR5cGUSCAoETm9uZRAAEhEKDUVycm9yUmVzcG9uc2UQARIUChBDYWxj",
"dWxhdGVSZXF1ZXN0EAMSFQoRQ2FsY3VsYXRlUmVzcG9uc2UQBBITCg9Qcm9n",
"cmVzc1JlcXVlc3QQBRIUChBQcm9ncmVzc1Jlc3BvbnNlEAYSHAoYU3R1YkNh",
@@ -141,77 +141,79 @@ namespace Tango.PMR.Common {
"dBD2DxIaChVTZXRWYWx2ZVN0YXRlUmVzcG9uc2UQ9w8SHwoaQ2FydHJpZGdl",
"VmFsaWRhdGlvblJlcXVlc3QQ/A8SIAobQ2FydHJpZGdlVmFsaWRhdGlvblJl",
"c3BvbnNlEP0PEhYKEUJpdFJlc3VsdHNSZXF1ZXN0EP4PEhcKEkJpdFJlc3Vs",
- "dHNSZXNwb25zZRD/DxIPCgpKb2JSZXF1ZXN0ELgXEhAKC0pvYlJlc3BvbnNl",
- "ELkXEhQKD0Fib3J0Sm9iUmVxdWVzdBC6FxIVChBBYm9ydEpvYlJlc3BvbnNl",
- "ELsXEiMKHlVwbG9hZFByb2Nlc3NQYXJhbWV0ZXJzUmVxdWVzdBC8FxIkCh9V",
- "cGxvYWRQcm9jZXNzUGFyYW1ldGVyc1Jlc3BvbnNlEL0XEhYKEUN1cnJlbnRK",
- "b2JSZXF1ZXN0EL4XEhcKEkN1cnJlbnRKb2JSZXNwb25zZRC/FxIcChdSZXN1",
- "bWVDdXJyZW50Sm9iUmVxdWVzdBDAFxIdChhSZXN1bWVDdXJyZW50Sm9iUmVz",
- "cG9uc2UQwRcSHQoYU3RhcnRIZWFkQ2xlYW5pbmdSZXF1ZXN0EMIXEh4KGVN0",
- "YXJ0SGVhZENsZWFuaW5nUmVzcG9uc2UQwxcSHQoYQWJvcnRIZWFkQ2xlYW5p",
- "bmdSZXF1ZXN0EMQXEh4KGUFib3J0SGVhZENsZWFuaW5nUmVzcG9uc2UQxRcS",
- "FgoRSm9iUHJlcGFyZVJlcXVlc3QQxhcSFwoSSm9iUHJlcGFyZVJlc3BvbnNl",
- "EMcXEhkKFFN0YXJ0RGVidWdMb2dSZXF1ZXN0EKAfEhoKFVN0YXJ0RGVidWdM",
- "b2dSZXNwb25zZRChHxIYChNTdG9wRGVidWdMb2dSZXF1ZXN0EKIfEhkKFFN0",
- "b3BEZWJ1Z0xvZ1Jlc3BvbnNlEKMfEh8KGlNldERlYnVnTG9nQ2F0ZWdvcnlS",
- "ZXF1ZXN0EKQfEiAKG1NldERlYnVnTG9nQ2F0ZWdvcnlSZXNwb25zZRClHxIh",
- "ChxTZXR1cERlYnVnRGlzcmlidXRvcnNSZXF1ZXN0EKYfEiIKHVNldHVwRGVi",
- "dWdEaXNyaWJ1dG9yc1Jlc3BvbnNlEKcfEicKIlVwbG9hZEhhcmR3YXJlQ29u",
- "ZmlndXJhdGlvblJlcXVlc3QQiCcSKAojVXBsb2FkSGFyZHdhcmVDb25maWd1",
- "cmF0aW9uUmVzcG9uc2UQiScSFwoSU3lzdGVtUmVzZXRSZXF1ZXN0EIonEhgK",
- "E1N5c3RlbVJlc2V0UmVzcG9uc2UQiycSFQoQS2VlcEFsaXZlUmVxdWVzdBDw",
- "LhIWChFLZWVwQWxpdmVSZXNwb25zZRDxLhITCg5Db25uZWN0UmVxdWVzdBDy",
- "LhIUCg9Db25uZWN0UmVzcG9uc2UQ8y4SFgoRRGlzY29ubmVjdFJlcXVlc3QQ",
- "9C4SFwoSRGlzY29ubmVjdFJlc3BvbnNlEPUuEhYKEUZpbGVVcGxvYWRSZXF1",
- "ZXN0ENg2EhcKEkZpbGVVcGxvYWRSZXNwb25zZRDZNhIbChZGaWxlQ2h1bmtV",
- "cGxvYWRSZXF1ZXN0ENo2EhwKF0ZpbGVDaHVua1VwbG9hZFJlc3BvbnNlENs2",
- "EhoKFUV4ZWN1dGVQcm9jZXNzUmVxdWVzdBDcNhIbChZFeGVjdXRlUHJvY2Vz",
- "c1Jlc3BvbnNlEN02EhcKEktpbGxQcm9jZXNzUmVxdWVzdBDeNhIYChNLaWxs",
- "UHJvY2Vzc1Jlc3BvbnNlEN82EhIKDUNyZWF0ZVJlcXVlc3QQ4DYSEwoOQ3Jl",
- "YXRlUmVzcG9uc2UQ4TYSEgoNRGVsZXRlUmVxdWVzdBDiNhITCg5EZWxldGVS",
- "ZXNwb25zZRDjNhIaChVHZXRTdG9yYWdlSW5mb1JlcXVlc3QQ5DYSGwoWR2V0",
- "U3RvcmFnZUluZm9SZXNwb25zZRDlNhIUCg9HZXRGaWxlc1JlcXVlc3QQ5jYS",
- "FQoQR2V0RmlsZXNSZXNwb25zZRDnNhIYChNGaWxlRG93bmxvYWRSZXF1ZXN0",
- "EOg2EhkKFEZpbGVEb3dubG9hZFJlc3BvbnNlEOk2Eh0KGEZpbGVDaHVua0Rv",
- "d25sb2FkUmVxdWVzdBDqNhIeChlGaWxlQ2h1bmtEb3dubG9hZFJlc3BvbnNl",
- "EOs2EhsKFlZhbGlkYXRlVmVyc2lvblJlcXVlc3QQ7DYSHAoXVmFsaWRhdGVW",
- "ZXJzaW9uUmVzcG9uc2UQ7TYSGwoWQWN0aXZhdGVWZXJzaW9uUmVxdWVzdBDu",
- "NhIcChdBY3RpdmF0ZVZlcnNpb25SZXNwb25zZRDvNhIZChREaXNwZW5zZXJE",
- "YXRhUmVxdWVzdBDAPhIaChVEaXNwZW5zZXJEYXRhUmVzcG9uc2UQwT4SHAoX",
- "TWlkVGFua0RhdGFTZXR1cFJlcXVlc3QQwj4SHQoYTWlkVGFua0RhdGFTZXR1",
- "cFJlc3BvbnNlEMM+EiIKHU1hY2hpbmVDYWxpYnJhdGlvbkRhdGFSZXF1ZXN0",
- "EMQ+EiMKHk1hY2hpbmVDYWxpYnJhdGlvbkRhdGFSZXNwb25zZRDFPhIeChlN",
- "YWluQ2FyZFN0b3JlZERhdGFSZXF1ZXN0EMY+Eh8KGk1haW5DYXJkU3RvcmVk",
- "RGF0YVJlc3BvbnNlEMc+EiQKH1N0YXJ0TWFjaGluZVN0YXR1c1VwZGF0ZVJl",
- "cXVlc3QQqEYSJQogU3RhcnRNYWNoaW5lU3RhdHVzVXBkYXRlUmVzcG9uc2UQ",
- "qUYSIwoeU3RvcE1hY2hpbmVTdGF0dXNVcGRhdGVSZXF1ZXN0EKpGEiQKH1N0",
- "b3BNYWNoaW5lU3RhdHVzVXBkYXRlUmVzcG9uc2UQq0YSIQocU2V0SW5rQXV0",
- "b0ZpbGxpbmdNb2RlUmVxdWVzdBCsRhIiCh1TZXRJbmtBdXRvRmlsbGluZ01v",
- "ZGVSZXNwb25zZRCtRhIcChdTcG9vbFR5cGVDaGFuZ2VkUmVxdWVzdBCuRhId",
- "ChhTcG9vbFR5cGVDaGFuZ2VkUmVzcG9uc2UQr0YSGgoVU3RhcnRQb3dlckRv",
- "d25SZXF1ZXN0EJBOEhsKFlN0YXJ0UG93ZXJEb3duUmVzcG9uc2UQkU4SGgoV",
- "QWJvcnRQb3dlckRvd25SZXF1ZXN0EJJOEhsKFkFib3J0UG93ZXJEb3duUmVz",
- "cG9uc2UQk04SGAoTU3RhcnRQb3dlclVwUmVxdWVzdBCUThIZChRTdGFydFBv",
- "d2VyVXBSZXNwb25zZRCVThIYChNBYm9ydFBvd2VyVXBSZXF1ZXN0EJZOEhkK",
- "FEFib3J0UG93ZXJVcFJlc3BvbnNlEJdOEhMKDlN0YW5kQnlSZXF1ZXN0EJhO",
- "EhQKD1N0YW5kQnlSZXNwb25zZRCZThIeChlTdGFydFRocmVhZExvYWRpbmdS",
- "ZXF1ZXN0EPhVEh8KGlN0YXJ0VGhyZWFkTG9hZGluZ1Jlc3BvbnNlEPlVEiEK",
- "HENvbnRpbnVlVGhyZWFkTG9hZGluZ1JlcXVlc3QQ+lUSIgodQ29udGludWVU",
- "aHJlYWRMb2FkaW5nUmVzcG9uc2UQ+1USHQoYU3RvcFRocmVhZExvYWRpbmdS",
- "ZXF1ZXN0EPxVEh4KGVN0b3BUaHJlYWRMb2FkaW5nUmVzcG9uc2UQ/VUSHAoX",
- "VHJ5VGhyZWFkTG9hZGluZ1JlcXVlc3QQ/lUSHQoYVHJ5VGhyZWFkTG9hZGlu",
- "Z1Jlc3BvbnNlEP9VEiAKG0F0dGVtcHRUaHJlYWRKb2dnaW5nUmVxdWVzdBCA",
- "VhIhChxBdHRlbXB0VGhyZWFkSm9nZ2luZ1Jlc3BvbnNlEIFWEiEKHFN0YXJ0",
- "SW5rRmlsbGluZ1N0YXR1c1JlcXVlc3QQ4F0SIgodU3RhcnRJbmtGaWxsaW5n",
- "U3RhdHVzUmVzcG9uc2UQ4V0SHgoZSW5pdGlhdGVJbmtGaWxsaW5nUmVxdWVz",
- "dBDiXRIfChpJbml0aWF0ZUlua0ZpbGxpbmdSZXNwb25zZRDjXRIYChNXYXN0",
- "ZVJlcGxhY2VSZXF1ZXN0EORdEhkKFFdhc3RlUmVwbGFjZVJlc3BvbnNlEOVd",
- "EhwKF1B1dERhdGFTdG9yZUl0ZW1SZXF1ZXN0EMhlEh0KGFB1dERhdGFTdG9y",
- "ZUl0ZW1SZXNwb25zZRDJZRIcChdHZXREYXRhU3RvcmVJdGVtUmVxdWVzdBDK",
- "ZRIdChhHZXREYXRhU3RvcmVJdGVtUmVzcG9uc2UQy2USIQocRGF0YVN0b3Jl",
- "SXRlbU1vZGlmaWVkUmVxdWVzdBDMZRIiCh1EYXRhU3RvcmVJdGVtTW9kaWZp",
- "ZWRSZXNwb25zZRDNZUIcChpjb20udHdpbmUudGFuZ28ucG1yLmNvbW1vbmIG",
- "cHJvdG8z"));
+ "dHNSZXNwb25zZRD/DxIVChBSZXNldENhcmRSZXF1ZXN0EIAQEhYKEVJlc2V0",
+ "Q2FyZFJlc3BvbnNlEIEQEg8KCkpvYlJlcXVlc3QQuBcSEAoLSm9iUmVzcG9u",
+ "c2UQuRcSFAoPQWJvcnRKb2JSZXF1ZXN0ELoXEhUKEEFib3J0Sm9iUmVzcG9u",
+ "c2UQuxcSIwoeVXBsb2FkUHJvY2Vzc1BhcmFtZXRlcnNSZXF1ZXN0ELwXEiQK",
+ "H1VwbG9hZFByb2Nlc3NQYXJhbWV0ZXJzUmVzcG9uc2UQvRcSFgoRQ3VycmVu",
+ "dEpvYlJlcXVlc3QQvhcSFwoSQ3VycmVudEpvYlJlc3BvbnNlEL8XEhwKF1Jl",
+ "c3VtZUN1cnJlbnRKb2JSZXF1ZXN0EMAXEh0KGFJlc3VtZUN1cnJlbnRKb2JS",
+ "ZXNwb25zZRDBFxIdChhTdGFydEhlYWRDbGVhbmluZ1JlcXVlc3QQwhcSHgoZ",
+ "U3RhcnRIZWFkQ2xlYW5pbmdSZXNwb25zZRDDFxIdChhBYm9ydEhlYWRDbGVh",
+ "bmluZ1JlcXVlc3QQxBcSHgoZQWJvcnRIZWFkQ2xlYW5pbmdSZXNwb25zZRDF",
+ "FxIWChFKb2JQcmVwYXJlUmVxdWVzdBDGFxIXChJKb2JQcmVwYXJlUmVzcG9u",
+ "c2UQxxcSGQoUU3RhcnREZWJ1Z0xvZ1JlcXVlc3QQoB8SGgoVU3RhcnREZWJ1",
+ "Z0xvZ1Jlc3BvbnNlEKEfEhgKE1N0b3BEZWJ1Z0xvZ1JlcXVlc3QQoh8SGQoU",
+ "U3RvcERlYnVnTG9nUmVzcG9uc2UQox8SHwoaU2V0RGVidWdMb2dDYXRlZ29y",
+ "eVJlcXVlc3QQpB8SIAobU2V0RGVidWdMb2dDYXRlZ29yeVJlc3BvbnNlEKUf",
+ "EiEKHFNldHVwRGVidWdEaXNyaWJ1dG9yc1JlcXVlc3QQph8SIgodU2V0dXBE",
+ "ZWJ1Z0Rpc3JpYnV0b3JzUmVzcG9uc2UQpx8SJwoiVXBsb2FkSGFyZHdhcmVD",
+ "b25maWd1cmF0aW9uUmVxdWVzdBCIJxIoCiNVcGxvYWRIYXJkd2FyZUNvbmZp",
+ "Z3VyYXRpb25SZXNwb25zZRCJJxIXChJTeXN0ZW1SZXNldFJlcXVlc3QQiicS",
+ "GAoTU3lzdGVtUmVzZXRSZXNwb25zZRCLJxIVChBLZWVwQWxpdmVSZXF1ZXN0",
+ "EPAuEhYKEUtlZXBBbGl2ZVJlc3BvbnNlEPEuEhMKDkNvbm5lY3RSZXF1ZXN0",
+ "EPIuEhQKD0Nvbm5lY3RSZXNwb25zZRDzLhIWChFEaXNjb25uZWN0UmVxdWVz",
+ "dBD0LhIXChJEaXNjb25uZWN0UmVzcG9uc2UQ9S4SFgoRRmlsZVVwbG9hZFJl",
+ "cXVlc3QQ2DYSFwoSRmlsZVVwbG9hZFJlc3BvbnNlENk2EhsKFkZpbGVDaHVu",
+ "a1VwbG9hZFJlcXVlc3QQ2jYSHAoXRmlsZUNodW5rVXBsb2FkUmVzcG9uc2UQ",
+ "2zYSGgoVRXhlY3V0ZVByb2Nlc3NSZXF1ZXN0ENw2EhsKFkV4ZWN1dGVQcm9j",
+ "ZXNzUmVzcG9uc2UQ3TYSFwoSS2lsbFByb2Nlc3NSZXF1ZXN0EN42EhgKE0tp",
+ "bGxQcm9jZXNzUmVzcG9uc2UQ3zYSEgoNQ3JlYXRlUmVxdWVzdBDgNhITCg5D",
+ "cmVhdGVSZXNwb25zZRDhNhISCg1EZWxldGVSZXF1ZXN0EOI2EhMKDkRlbGV0",
+ "ZVJlc3BvbnNlEOM2EhoKFUdldFN0b3JhZ2VJbmZvUmVxdWVzdBDkNhIbChZH",
+ "ZXRTdG9yYWdlSW5mb1Jlc3BvbnNlEOU2EhQKD0dldEZpbGVzUmVxdWVzdBDm",
+ "NhIVChBHZXRGaWxlc1Jlc3BvbnNlEOc2EhgKE0ZpbGVEb3dubG9hZFJlcXVl",
+ "c3QQ6DYSGQoURmlsZURvd25sb2FkUmVzcG9uc2UQ6TYSHQoYRmlsZUNodW5r",
+ "RG93bmxvYWRSZXF1ZXN0EOo2Eh4KGUZpbGVDaHVua0Rvd25sb2FkUmVzcG9u",
+ "c2UQ6zYSGwoWVmFsaWRhdGVWZXJzaW9uUmVxdWVzdBDsNhIcChdWYWxpZGF0",
+ "ZVZlcnNpb25SZXNwb25zZRDtNhIbChZBY3RpdmF0ZVZlcnNpb25SZXF1ZXN0",
+ "EO42EhwKF0FjdGl2YXRlVmVyc2lvblJlc3BvbnNlEO82EiEKHEdldFZlcnNp",
+ "b25EZXNjcmlwdG9yc1JlcXVlc3QQ8DYSIgodR2V0VmVyc2lvbkRlc2NyaXB0",
+ "b3JzUmVzcG9uc2UQ8TYSGQoURGlzcGVuc2VyRGF0YVJlcXVlc3QQwD4SGgoV",
+ "RGlzcGVuc2VyRGF0YVJlc3BvbnNlEME+EhwKF01pZFRhbmtEYXRhU2V0dXBS",
+ "ZXF1ZXN0EMI+Eh0KGE1pZFRhbmtEYXRhU2V0dXBSZXNwb25zZRDDPhIiCh1N",
+ "YWNoaW5lQ2FsaWJyYXRpb25EYXRhUmVxdWVzdBDEPhIjCh5NYWNoaW5lQ2Fs",
+ "aWJyYXRpb25EYXRhUmVzcG9uc2UQxT4SHgoZTWFpbkNhcmRTdG9yZWREYXRh",
+ "UmVxdWVzdBDGPhIfChpNYWluQ2FyZFN0b3JlZERhdGFSZXNwb25zZRDHPhIk",
+ "Ch9TdGFydE1hY2hpbmVTdGF0dXNVcGRhdGVSZXF1ZXN0EKhGEiUKIFN0YXJ0",
+ "TWFjaGluZVN0YXR1c1VwZGF0ZVJlc3BvbnNlEKlGEiMKHlN0b3BNYWNoaW5l",
+ "U3RhdHVzVXBkYXRlUmVxdWVzdBCqRhIkCh9TdG9wTWFjaGluZVN0YXR1c1Vw",
+ "ZGF0ZVJlc3BvbnNlEKtGEiEKHFNldElua0F1dG9GaWxsaW5nTW9kZVJlcXVl",
+ "c3QQrEYSIgodU2V0SW5rQXV0b0ZpbGxpbmdNb2RlUmVzcG9uc2UQrUYSHAoX",
+ "U3Bvb2xUeXBlQ2hhbmdlZFJlcXVlc3QQrkYSHQoYU3Bvb2xUeXBlQ2hhbmdl",
+ "ZFJlc3BvbnNlEK9GEhoKFVN0YXJ0UG93ZXJEb3duUmVxdWVzdBCQThIbChZT",
+ "dGFydFBvd2VyRG93blJlc3BvbnNlEJFOEhoKFUFib3J0UG93ZXJEb3duUmVx",
+ "dWVzdBCSThIbChZBYm9ydFBvd2VyRG93blJlc3BvbnNlEJNOEhgKE1N0YXJ0",
+ "UG93ZXJVcFJlcXVlc3QQlE4SGQoUU3RhcnRQb3dlclVwUmVzcG9uc2UQlU4S",
+ "GAoTQWJvcnRQb3dlclVwUmVxdWVzdBCWThIZChRBYm9ydFBvd2VyVXBSZXNw",
+ "b25zZRCXThITCg5TdGFuZEJ5UmVxdWVzdBCYThIUCg9TdGFuZEJ5UmVzcG9u",
+ "c2UQmU4SHgoZU3RhcnRUaHJlYWRMb2FkaW5nUmVxdWVzdBD4VRIfChpTdGFy",
+ "dFRocmVhZExvYWRpbmdSZXNwb25zZRD5VRIhChxDb250aW51ZVRocmVhZExv",
+ "YWRpbmdSZXF1ZXN0EPpVEiIKHUNvbnRpbnVlVGhyZWFkTG9hZGluZ1Jlc3Bv",
+ "bnNlEPtVEh0KGFN0b3BUaHJlYWRMb2FkaW5nUmVxdWVzdBD8VRIeChlTdG9w",
+ "VGhyZWFkTG9hZGluZ1Jlc3BvbnNlEP1VEhwKF1RyeVRocmVhZExvYWRpbmdS",
+ "ZXF1ZXN0EP5VEh0KGFRyeVRocmVhZExvYWRpbmdSZXNwb25zZRD/VRIgChtB",
+ "dHRlbXB0VGhyZWFkSm9nZ2luZ1JlcXVlc3QQgFYSIQocQXR0ZW1wdFRocmVh",
+ "ZEpvZ2dpbmdSZXNwb25zZRCBVhIhChxTdGFydElua0ZpbGxpbmdTdGF0dXNS",
+ "ZXF1ZXN0EOBdEiIKHVN0YXJ0SW5rRmlsbGluZ1N0YXR1c1Jlc3BvbnNlEOFd",
+ "Eh4KGUluaXRpYXRlSW5rRmlsbGluZ1JlcXVlc3QQ4l0SHwoaSW5pdGlhdGVJ",
+ "bmtGaWxsaW5nUmVzcG9uc2UQ410SGAoTV2FzdGVSZXBsYWNlUmVxdWVzdBDk",
+ "XRIZChRXYXN0ZVJlcGxhY2VSZXNwb25zZRDlXRIcChdQdXREYXRhU3RvcmVJ",
+ "dGVtUmVxdWVzdBDIZRIdChhQdXREYXRhU3RvcmVJdGVtUmVzcG9uc2UQyWUS",
+ "HAoXR2V0RGF0YVN0b3JlSXRlbVJlcXVlc3QQymUSHQoYR2V0RGF0YVN0b3Jl",
+ "SXRlbVJlc3BvbnNlEMtlEiEKHERhdGFTdG9yZUl0ZW1Nb2RpZmllZFJlcXVl",
+ "c3QQzGUSIgodRGF0YVN0b3JlSXRlbU1vZGlmaWVkUmVzcG9uc2UQzWVCHAoa",
+ "Y29tLnR3aW5lLnRhbmdvLnBtci5jb21tb25iBnByb3RvMw=="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Tango.PMR.Common.MessageType), }, null));
@@ -420,6 +422,8 @@ namespace Tango.PMR.Common {
[pbr::OriginalName("CartridgeValidationResponse")] CartridgeValidationResponse = 2045,
[pbr::OriginalName("BitResultsRequest")] BitResultsRequest = 2046,
[pbr::OriginalName("BitResultsResponse")] BitResultsResponse = 2047,
+ [pbr::OriginalName("ResetCardRequest")] ResetCardRequest = 2048,
+ [pbr::OriginalName("ResetCardResponse")] ResetCardResponse = 2049,
/// <summary>
///Printing
/// </summary>
@@ -493,6 +497,8 @@ namespace Tango.PMR.Common {
[pbr::OriginalName("ValidateVersionResponse")] ValidateVersionResponse = 7021,
[pbr::OriginalName("ActivateVersionRequest")] ActivateVersionRequest = 7022,
[pbr::OriginalName("ActivateVersionResponse")] ActivateVersionResponse = 7023,
+ [pbr::OriginalName("GetVersionDescriptorsRequest")] GetVersionDescriptorsRequest = 7024,
+ [pbr::OriginalName("GetVersionDescriptorsResponse")] GetVersionDescriptorsResponse = 7025,
/// <summary>
///EmbeddedParameters
/// </summary>
diff --git a/Software/Visual_Studio/Tango.PMR/Connection/ConnectRequest.cs b/Software/Visual_Studio/Tango.PMR/Connection/ConnectRequest.cs
index 0edef7665..d62d5dbc5 100644
--- a/Software/Visual_Studio/Tango.PMR/Connection/ConnectRequest.cs
+++ b/Software/Visual_Studio/Tango.PMR/Connection/ConnectRequest.cs
@@ -23,14 +23,16 @@ namespace Tango.PMR.Connection {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"ChRDb25uZWN0UmVxdWVzdC5wcm90bxIUVGFuZ28uUE1SLkNvbm5lY3Rpb24a",
- "EkpvYlNwb29sVHlwZS5wcm90byJpCg5Db25uZWN0UmVxdWVzdBIQCghQYXNz",
- "d29yZBgBIAEoCRIQCghVbml4VGltZRgCIAEoAxIzCglTcG9vbFR5cGUYAyAB",
- "KA4yIC5UYW5nby5QTVIuUHJpbnRpbmcuSm9iU3Bvb2xUeXBlQiAKHmNvbS50",
- "d2luZS50YW5nby5wbXIuY29ubmVjdGlvbmIGcHJvdG8z"));
+ "EkpvYlNwb29sVHlwZS5wcm90bxoRTWFjaGluZVR5cGUucHJvdG8inQEKDkNv",
+ "bm5lY3RSZXF1ZXN0EhAKCFBhc3N3b3JkGAEgASgJEhAKCFVuaXhUaW1lGAIg",
+ "ASgDEjMKCVNwb29sVHlwZRgDIAEoDjIgLlRhbmdvLlBNUi5QcmludGluZy5K",
+ "b2JTcG9vbFR5cGUSMgoLTWFjaGluZVR5cGUYBCABKA4yHS5UYW5nby5QTVIu",
+ "Q29tbW9uLk1hY2hpbmVUeXBlQiAKHmNvbS50d2luZS50YW5nby5wbXIuY29u",
+ "bmVjdGlvbmIGcHJvdG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
- new pbr::FileDescriptor[] { global::Tango.PMR.Printing.JobSpoolTypeReflection.Descriptor, },
+ new pbr::FileDescriptor[] { global::Tango.PMR.Printing.JobSpoolTypeReflection.Descriptor, global::Tango.PMR.Common.MachineTypeReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
- new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Connection.ConnectRequest), global::Tango.PMR.Connection.ConnectRequest.Parser, new[]{ "Password", "UnixTime", "SpoolType" }, null, null, null)
+ new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Connection.ConnectRequest), global::Tango.PMR.Connection.ConnectRequest.Parser, new[]{ "Password", "UnixTime", "SpoolType", "MachineType" }, null, null, null)
}));
}
#endregion
@@ -64,6 +66,7 @@ namespace Tango.PMR.Connection {
password_ = other.password_;
unixTime_ = other.unixTime_;
spoolType_ = other.spoolType_;
+ machineType_ = other.machineType_;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -104,6 +107,17 @@ namespace Tango.PMR.Connection {
}
}
+ /// <summary>Field number for the "MachineType" field.</summary>
+ public const int MachineTypeFieldNumber = 4;
+ private global::Tango.PMR.Common.MachineType machineType_ = 0;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public global::Tango.PMR.Common.MachineType MachineType {
+ get { return machineType_; }
+ set {
+ machineType_ = value;
+ }
+ }
+
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as ConnectRequest);
@@ -120,6 +134,7 @@ namespace Tango.PMR.Connection {
if (Password != other.Password) return false;
if (UnixTime != other.UnixTime) return false;
if (SpoolType != other.SpoolType) return false;
+ if (MachineType != other.MachineType) return false;
return true;
}
@@ -129,6 +144,7 @@ namespace Tango.PMR.Connection {
if (Password.Length != 0) hash ^= Password.GetHashCode();
if (UnixTime != 0L) hash ^= UnixTime.GetHashCode();
if (SpoolType != 0) hash ^= SpoolType.GetHashCode();
+ if (MachineType != 0) hash ^= MachineType.GetHashCode();
return hash;
}
@@ -151,6 +167,10 @@ namespace Tango.PMR.Connection {
output.WriteRawTag(24);
output.WriteEnum((int) SpoolType);
}
+ if (MachineType != 0) {
+ output.WriteRawTag(32);
+ output.WriteEnum((int) MachineType);
+ }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -165,6 +185,9 @@ namespace Tango.PMR.Connection {
if (SpoolType != 0) {
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) SpoolType);
}
+ if (MachineType != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) MachineType);
+ }
return size;
}
@@ -182,6 +205,9 @@ namespace Tango.PMR.Connection {
if (other.SpoolType != 0) {
SpoolType = other.SpoolType;
}
+ if (other.MachineType != 0) {
+ MachineType = other.MachineType;
+ }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -204,6 +230,10 @@ namespace Tango.PMR.Connection {
spoolType_ = (global::Tango.PMR.Printing.JobSpoolType) input.ReadEnum();
break;
}
+ case 32: {
+ machineType_ = (global::Tango.PMR.Common.MachineType) input.ReadEnum();
+ break;
+ }
}
}
}
diff --git a/Software/Visual_Studio/Tango.PMR/Diagnostics/DiagnosticsMonitors.cs b/Software/Visual_Studio/Tango.PMR/Diagnostics/DiagnosticsMonitors.cs
index 46d9735bd..06deacb53 100644
--- a/Software/Visual_Studio/Tango.PMR/Diagnostics/DiagnosticsMonitors.cs
+++ b/Software/Visual_Studio/Tango.PMR/Diagnostics/DiagnosticsMonitors.cs
@@ -23,7 +23,7 @@ namespace Tango.PMR.Diagnostics {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"ChlEaWFnbm9zdGljc01vbml0b3JzLnByb3RvEhVUYW5nby5QTVIuRGlhZ25v",
- "c3RpY3MaEURvdWJsZUFycmF5LnByb3RvIrkWChNEaWFnbm9zdGljc01vbml0",
+ "c3RpY3MaEURvdWJsZUFycmF5LnByb3RvIt4tChNEaWFnbm9zdGljc01vbml0",
"b3JzEhQKDERhbmNlcjFBbmdsZRgBIAMoARIUCgxEYW5jZXIyQW5nbGUYAiAD",
"KAESFAoMRGFuY2VyM0FuZ2xlGAMgAygBEhwKFEZlZWRlck1vdG9yRnJlcXVl",
"bmN5GAQgAygBEhIKCkRyeWVyTW90b3IYBSADKAESEwoLUG9sbGVyTW90b3IY",
@@ -87,12 +87,78 @@ namespace Tango.PMR.Diagnostics {
"VyADKAESEgoKV2FzdGVMZXZlbBhYIAMoARIaChJIZWFkQmxvd2VyMUFpckZs",
"b3cYWSADKAESGgoSSGVhZEJsb3dlcjJBaXJGbG93GFogAygBEhYKDlNoaW5r",
"b1NldFZhbHVlGFsgAygBEhoKElNoaW5rb0N1cnJlbnRWYWx1ZRhcIAMoARIU",
- "CgxUb3RhbFdIU0Zsb3cYXSADKAFCIQofY29tLnR3aW5lLnRhbmdvLnBtci5k",
- "aWFnbm9zdGljc2IGcHJvdG8z"));
+ "CgxUb3RhbFdIU0Zsb3cYXSADKAESFwoPRXVXaW5kZXIxRGFuY2VyGF4gAygB",
+ "EhcKD0V1V2luZGVyMkRhbmNlchhfIAMoARIXCg9FdVdpbmRlcjNEYW5jZXIY",
+ "YCADKAESFwoPRXVXaW5kZXI0RGFuY2VyGGEgAygBEhYKDkV1V2luZGVyMU1v",
+ "dG9yGGIgAygBEhYKDkV1V2luZGVyMk1vdG9yGGMgAygBEhYKDkV1V2luZGVy",
+ "M01vdG9yGGQgAygBEhYKDkV1V2luZGVyNE1vdG9yGGUgAygBEhwKFEV1RHJ5",
+ "ZXJNb3RvclZlbG9jaXR5GGYgAygBEiIKGkV1RHJ5ZXJNb3RvclRhcmdldFZl",
+ "bG9jaXR5GGcgAygBEhsKE0V1RHJ5ZXJNb3RvckN1cnJlbnQYaCADKAESFgoO",
+ "RXVQdWxsZXJEYW5jZXIYaSADKAESFQoNRXVQdWxsZXJNb3RvchhqIAMoARIf",
+ "ChdFdURyeWVyWm9uZTFUZW1wZXJhdHVyZRhrIAMoARIfChdFdURyeWVyWm9u",
+ "ZTJUZW1wZXJhdHVyZRhsIAMoARIfChdFdURyeWVyWm9uZTNUZW1wZXJhdHVy",
+ "ZRhtIAMoARIeChZFdUhlYWRab25lMVRlbXBlcmF0dXJlGG4gAygBEh4KFkV1",
+ "SGVhZFpvbmUyVGVtcGVyYXR1cmUYbyADKAESHgoWRXVIZWFkWm9uZTNUZW1w",
+ "ZXJhdHVyZRhwIAMoARIaChJFdU1peGVyVGVtcGVyYXR1cmUYcSADKAESGwoT",
+ "RXVUdW5uZWxUZW1wZXJhdHVyZRhyIAMoARIeChZFdUx1YnJpY2FudFRlbXBl",
+ "cmF0dXJlGHMgAygBEhwKFEV1QW1iaWVudFRlbXBlcmF0dXJlGHQgAygBEiYK",
+ "HkV1RWxlY3RyaWNhbENhYmluZXRUZW1wZXJhdHVyZRh1IAMoARIbChNFdURy",
+ "eWVyWm9uZTFDdXJyZW50GHYgAygBEhsKE0V1RHJ5ZXJab25lMkN1cnJlbnQY",
+ "dyADKAESGwoTRXVEcnllclpvbmUzQ3VycmVudBh4IAMoARIaChJFdUhlYWRa",
+ "b25lMUN1cnJlbnQYeSADKAESGgoSRXVIZWFkWm9uZTJDdXJyZW50GHogAygB",
+ "EhoKEkV1SGVhZFpvbmUzQ3VycmVudBh7IAMoARIWCg5FdU1peGVyQ3VycmVu",
+ "dBh8IAMoARIXCg9FdVR1bm5lbEN1cnJlbnQYfSADKAESGgoSRXVMdWJyaWNh",
+ "bnRDdXJyZW50GH4gAygBEhQKDEV1QnRzcjFTcGVlZBh/IAMoARIXCg5FdUJ0",
+ "c3IxU3BlZWRBdhiAASADKAESFgoNRXVCdHNyMURpc3BBdhiBASADKAESFwoO",
+ "RXVCdHNyMVBlYWtNaW4YggEgAygBEhcKDkV1QnRzcjFQZWFrTWF4GIMBIAMo",
+ "ARIVCgxFdUJ0c3IyU3BlZWQYhAEgAygBEhcKDkV1QnRzcjJTcGVlZEF2GIUB",
+ "IAMoARIWCg1FdUJ0c3IyRGlzcEF2GIYBIAMoARIXCg5FdUJ0c3IyUGVha01p",
+ "bhiHASADKAESFwoORXVCdHNyMlBlYWtNYXgYiAEgAygBEhUKDEV1QnRzcjNT",
+ "cGVlZBiJASADKAESFwoORXVCdHNyM1NwZWVkQXYYigEgAygBEhYKDUV1QnRz",
+ "cjNEaXNwQXYYiwEgAygBEhcKDkV1QnRzcjNQZWFrTWluGIwBIAMoARIXCg5F",
+ "dUJ0c3IzUGVha01heBiNASADKAESFQoMRXVCdHNyNFNwZWVkGI4BIAMoARIX",
+ "Cg5FdUJ0c3I0U3BlZWRBdhiPASADKAESFwoORXVCdHNyNFBlYWtNaW4YkAEg",
+ "AygBEhcKDkV1QnRzcjRQZWFrTWF4GJEBIAMoARIWCg1FdUJ0c3I0RGlzcEF2",
+ "GJIBIAMoARJBChRFdVRlbXBlcmF0dXJlTG9nZ2VycxiTASADKAsyIi5UYW5n",
+ "by5QTVIuRGlhZ25vc3RpY3MuRG91YmxlQXJyYXkSOAoLRXVQdW1wRmxvd3MY",
+ "lAEgAygLMiIuVGFuZ28uUE1SLkRpYWdub3N0aWNzLkRvdWJsZUFycmF5Ej8K",
+ "EkV1SW5rTGluZXNQcmVzc3VyZRiVASADKAsyIi5UYW5nby5QTVIuRGlhZ25v",
+ "c3RpY3MuRG91YmxlQXJyYXkSPQoQRXVTcGFyZURhdGFBcnJheRiWASADKAsy",
+ "Ii5UYW5nby5QTVIuRGlhZ25vc3RpY3MuRG91YmxlQXJyYXkSHAoTRXVEaXNw",
+ "ZW5zZXIxVm9sdGFnZRiXASADKAESHAoTRXVEaXNwZW5zZXIyVm9sdGFnZRiY",
+ "ASADKAESHAoTRXVEaXNwZW5zZXIzVm9sdGFnZRiZASADKAESHAoTRXVEaXNw",
+ "ZW5zZXI0Vm9sdGFnZRiaASADKAESHAoTRXVEaXNwZW5zZXI1Vm9sdGFnZRib",
+ "ASADKAESHAoTRXVEaXNwZW5zZXI2Vm9sdGFnZRicASADKAESHAoTRXVEaXNw",
+ "ZW5zZXI3Vm9sdGFnZRidASADKAESHAoTRXVEaXNwZW5zZXI4Vm9sdGFnZRie",
+ "ASADKAESHAoTRXVEaXNwZW5zZXI5Vm9sdGFnZRifASADKAESHQoURXVEaXNw",
+ "ZW5zZXIxMFZvbHRhZ2UYoAEgAygBEh0KFEV1RGlzcGVuc2VyMTFWb2x0YWdl",
+ "GKEBIAMoARIdChRFdURpc3BlbnNlcjEyVm9sdGFnZRiiASADKAESHQoURXVE",
+ "aXNwZW5zZXIxM1ZvbHRhZ2UYowEgAygBEh0KFEV1RGlzcGVuc2VyMTRWb2x0",
+ "YWdlGKQBIAMoARIdChRFdURpc3BlbnNlcjE1Vm9sdGFnZRilASADKAESHQoU",
+ "RXVEaXNwZW5zZXIxNlZvbHRhZ2UYpgEgAygBEh8KFkV1THVicmljYW50UHVt",
+ "cFZvbHRhZ2UYpwEgAygBEh0KFEV1RGlzcGVuc2VyMVByZXNzdXJlGKgBIAMo",
+ "ARIdChRFdURpc3BlbnNlcjJQcmVzc3VyZRipASADKAESHQoURXVEaXNwZW5z",
+ "ZXIzUHJlc3N1cmUYqgEgAygBEh0KFEV1RGlzcGVuc2VyNFByZXNzdXJlGKsB",
+ "IAMoARIdChRFdURpc3BlbnNlcjVQcmVzc3VyZRisASADKAESHQoURXVEaXNw",
+ "ZW5zZXI2UHJlc3N1cmUYrQEgAygBEh0KFEV1RGlzcGVuc2VyN1ByZXNzdXJl",
+ "GK4BIAMoARIdChRFdURpc3BlbnNlcjhQcmVzc3VyZRivASADKAESHAoTRXVM",
+ "dWJyaWNhbnRQcmVzc3VyZRiwASADKAESGAoPRXVNaWRUYW5rMUxldmVsGLEB",
+ "IAMoARIYCg9FdU1pZFRhbmsyTGV2ZWwYsgEgAygBEhgKD0V1TWlkVGFuazNM",
+ "ZXZlbBizASADKAESGAoPRXVNaWRUYW5rNExldmVsGLQBIAMoARIYCg9FdU1p",
+ "ZFRhbms1TGV2ZWwYtQEgAygBEhgKD0V1TWlkVGFuazZMZXZlbBi2ASADKAES",
+ "GAoPRXVNaWRUYW5rN0xldmVsGLcBIAMoARIYCg9FdU1pZFRhbms4TGV2ZWwY",
+ "uAEgAygBEh0KFEV1Q2hpbGxlclRlbXBlcmF0dXJlGLkBIAMoARIbChJFdUhl",
+ "YWRSaWdodEFpckZsb3cYugEgAygBEhoKEUV1SGVhZExlZnRBaXJGbG93GLsB",
+ "IAMoARIbChJFdUhlYWRSaWdodFZvbHRhZ2UYvAEgAygBEhoKEUV1SGVhZExl",
+ "ZnRWb2x0YWdlGL0BIAMoARIXCg5FdURyeWVyQWlyRmxvdxi+ASADKAESGAoP",
+ "RXVCbG93ZXJWb2x0YWdlGL8BIAMoARIVCgxFdVdhc3RlTGV2ZWwYwAEgAygB",
+ "EhEKCEV1U3BhcmUxGMEBIAMoARIRCghFdVNwYXJlMhjCASADKAESEQoIRXVT",
+ "cGFyZTMYwwEgAygBEhEKCEV1U3BhcmU0GMQBIAMoAUIhCh9jb20udHdpbmUu",
+ "dGFuZ28ucG1yLmRpYWdub3N0aWNzYgZwcm90bzM="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::Tango.PMR.Diagnostics.DoubleArrayReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
- new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Diagnostics.DiagnosticsMonitors), global::Tango.PMR.Diagnostics.DiagnosticsMonitors.Parser, new[]{ "Dancer1Angle", "Dancer2Angle", "Dancer3Angle", "FeederMotorFrequency", "DryerMotor", "PollerMotor", "WinderMotor", "ScrewMotor", "ThreadSpeed", "MixerTemperature", "HeadZone1Temperature", "HeadZone2Temperature", "HeadZone3Temperature", "HeadAirFlow", "FeederTension", "PullerTension", "DryerZone1Temperature", "DryerZone2Temperature", "DryerZone3Temperature", "DryerAirFlow", "WinderTension", "DispensersMotorsFrequency", "DispensersAngularEncoders", "DispensersLinearPositions", "DispensersPressure", "FilterDeltaPressure", "ChillerTemperature", "Dispenser1MotorFrequency", "Dispenser2MotorFrequency", "Dispenser3MotorFrequency", "Dispenser4MotorFrequency", "Dispenser5MotorFrequency", "Dispenser6MotorFrequency", "Dispenser7MotorFrequency", "Dispenser8MotorFrequency", "HeadZone4Temperature", "HeadZone5Temperature", "HeadZone6Temperature", "BlowerVoltage", "Dispenser1Pressure", "Dispenser2Pressure", "Dispenser3Pressure", "Dispenser4Pressure", "Dispenser5Pressure", "Dispenser6Pressure", "Dispenser7Pressure", "Dispenser8Pressure", "MidTank1Level", "MidTank2Level", "MidTank3Level", "MidTank4Level", "MidTank5Level", "MidTank6Level", "MidTank7Level", "MidTank8Level", "DrierZone1HeaterCurrent", "DrierZone2HeaterCurrent", "HeadZone1HeaterCurrent", "HeadZone2HeaterCurrent", "HeadZone3HeaterCurrent", "HeadZone4HeaterCurrent", "HeadZone56HeaterCurrent", "Mixer1HeaterCurrent", "DispensersInkLevel", "MidTanksInkLevel", "OverallTemperature", "HeadZone7HeaterCurrent", "HeadZone7Temperature", "HeadZone8HeaterCurrent", "HeadZone8Temperature", "HeadZone9HeaterCurrent", "HeadZone9Temperature", "HeadZone10HeaterCurrent", "HeadZone10Temperature", "HeadZone11HeaterCurrent", "HeadZone11Temperature", "HeadZone12HeaterCurrent", "HeadZone12Temperature", "HeadBlowerVoltage1", "HeadBlowerVoltage2", "HeadCoverHeater1Current", "HeadCoverHeater1Temperature", "HeadCoverHeater2Current", "HeadCoverHeater2Temperature", "WHSBlower2Voltage", "GasSensor", "IncomingVoltage", "WasteLevel", "HeadBlower1AirFlow", "HeadBlower2AirFlow", "ShinkoSetValue", "ShinkoCurrentValue", "TotalWHSFlow" }, null, null, null)
+ new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Diagnostics.DiagnosticsMonitors), global::Tango.PMR.Diagnostics.DiagnosticsMonitors.Parser, new[]{ "Dancer1Angle", "Dancer2Angle", "Dancer3Angle", "FeederMotorFrequency", "DryerMotor", "PollerMotor", "WinderMotor", "ScrewMotor", "ThreadSpeed", "MixerTemperature", "HeadZone1Temperature", "HeadZone2Temperature", "HeadZone3Temperature", "HeadAirFlow", "FeederTension", "PullerTension", "DryerZone1Temperature", "DryerZone2Temperature", "DryerZone3Temperature", "DryerAirFlow", "WinderTension", "DispensersMotorsFrequency", "DispensersAngularEncoders", "DispensersLinearPositions", "DispensersPressure", "FilterDeltaPressure", "ChillerTemperature", "Dispenser1MotorFrequency", "Dispenser2MotorFrequency", "Dispenser3MotorFrequency", "Dispenser4MotorFrequency", "Dispenser5MotorFrequency", "Dispenser6MotorFrequency", "Dispenser7MotorFrequency", "Dispenser8MotorFrequency", "HeadZone4Temperature", "HeadZone5Temperature", "HeadZone6Temperature", "BlowerVoltage", "Dispenser1Pressure", "Dispenser2Pressure", "Dispenser3Pressure", "Dispenser4Pressure", "Dispenser5Pressure", "Dispenser6Pressure", "Dispenser7Pressure", "Dispenser8Pressure", "MidTank1Level", "MidTank2Level", "MidTank3Level", "MidTank4Level", "MidTank5Level", "MidTank6Level", "MidTank7Level", "MidTank8Level", "DrierZone1HeaterCurrent", "DrierZone2HeaterCurrent", "HeadZone1HeaterCurrent", "HeadZone2HeaterCurrent", "HeadZone3HeaterCurrent", "HeadZone4HeaterCurrent", "HeadZone56HeaterCurrent", "Mixer1HeaterCurrent", "DispensersInkLevel", "MidTanksInkLevel", "OverallTemperature", "HeadZone7HeaterCurrent", "HeadZone7Temperature", "HeadZone8HeaterCurrent", "HeadZone8Temperature", "HeadZone9HeaterCurrent", "HeadZone9Temperature", "HeadZone10HeaterCurrent", "HeadZone10Temperature", "HeadZone11HeaterCurrent", "HeadZone11Temperature", "HeadZone12HeaterCurrent", "HeadZone12Temperature", "HeadBlowerVoltage1", "HeadBlowerVoltage2", "HeadCoverHeater1Current", "HeadCoverHeater1Temperature", "HeadCoverHeater2Current", "HeadCoverHeater2Temperature", "WHSBlower2Voltage", "GasSensor", "IncomingVoltage", "WasteLevel", "HeadBlower1AirFlow", "HeadBlower2AirFlow", "ShinkoSetValue", "ShinkoCurrentValue", "TotalWHSFlow", "EuWinder1Dancer", "EuWinder2Dancer", "EuWinder3Dancer", "EuWinder4Dancer", "EuWinder1Motor", "EuWinder2Motor", "EuWinder3Motor", "EuWinder4Motor", "EuDryerMotorVelocity", "EuDryerMotorTargetVelocity", "EuDryerMotorCurrent", "EuPullerDancer", "EuPullerMotor", "EuDryerZone1Temperature", "EuDryerZone2Temperature", "EuDryerZone3Temperature", "EuHeadZone1Temperature", "EuHeadZone2Temperature", "EuHeadZone3Temperature", "EuMixerTemperature", "EuTunnelTemperature", "EuLubricantTemperature", "EuAmbientTemperature", "EuElectricalCabinetTemperature", "EuDryerZone1Current", "EuDryerZone2Current", "EuDryerZone3Current", "EuHeadZone1Current", "EuHeadZone2Current", "EuHeadZone3Current", "EuMixerCurrent", "EuTunnelCurrent", "EuLubricantCurrent", "EuBtsr1Speed", "EuBtsr1SpeedAv", "EuBtsr1DispAv", "EuBtsr1PeakMin", "EuBtsr1PeakMax", "EuBtsr2Speed", "EuBtsr2SpeedAv", "EuBtsr2DispAv", "EuBtsr2PeakMin", "EuBtsr2PeakMax", "EuBtsr3Speed", "EuBtsr3SpeedAv", "EuBtsr3DispAv", "EuBtsr3PeakMin", "EuBtsr3PeakMax", "EuBtsr4Speed", "EuBtsr4SpeedAv", "EuBtsr4PeakMin", "EuBtsr4PeakMax", "EuBtsr4DispAv", "EuTemperatureLoggers", "EuPumpFlows", "EuInkLinesPressure", "EuSpareDataArray", "EuDispenser1Voltage", "EuDispenser2Voltage", "EuDispenser3Voltage", "EuDispenser4Voltage", "EuDispenser5Voltage", "EuDispenser6Voltage", "EuDispenser7Voltage", "EuDispenser8Voltage", "EuDispenser9Voltage", "EuDispenser10Voltage", "EuDispenser11Voltage", "EuDispenser12Voltage", "EuDispenser13Voltage", "EuDispenser14Voltage", "EuDispenser15Voltage", "EuDispenser16Voltage", "EuLubricantPumpVoltage", "EuDispenser1Pressure", "EuDispenser2Pressure", "EuDispenser3Pressure", "EuDispenser4Pressure", "EuDispenser5Pressure", "EuDispenser6Pressure", "EuDispenser7Pressure", "EuDispenser8Pressure", "EuLubricantPressure", "EuMidTank1Level", "EuMidTank2Level", "EuMidTank3Level", "EuMidTank4Level", "EuMidTank5Level", "EuMidTank6Level", "EuMidTank7Level", "EuMidTank8Level", "EuChillerTemperature", "EuHeadRightAirFlow", "EuHeadLeftAirFlow", "EuHeadRightVoltage", "EuHeadLeftVoltage", "EuDryerAirFlow", "EuBlowerVoltage", "EuWasteLevel", "EuSpare1", "EuSpare2", "EuSpare3", "EuSpare4" }, null, null, null)
}));
}
#endregion
@@ -216,6 +282,109 @@ namespace Tango.PMR.Diagnostics {
shinkoSetValue_ = other.shinkoSetValue_.Clone();
shinkoCurrentValue_ = other.shinkoCurrentValue_.Clone();
totalWHSFlow_ = other.totalWHSFlow_.Clone();
+ euWinder1Dancer_ = other.euWinder1Dancer_.Clone();
+ euWinder2Dancer_ = other.euWinder2Dancer_.Clone();
+ euWinder3Dancer_ = other.euWinder3Dancer_.Clone();
+ euWinder4Dancer_ = other.euWinder4Dancer_.Clone();
+ euWinder1Motor_ = other.euWinder1Motor_.Clone();
+ euWinder2Motor_ = other.euWinder2Motor_.Clone();
+ euWinder3Motor_ = other.euWinder3Motor_.Clone();
+ euWinder4Motor_ = other.euWinder4Motor_.Clone();
+ euDryerMotorVelocity_ = other.euDryerMotorVelocity_.Clone();
+ euDryerMotorTargetVelocity_ = other.euDryerMotorTargetVelocity_.Clone();
+ euDryerMotorCurrent_ = other.euDryerMotorCurrent_.Clone();
+ euPullerDancer_ = other.euPullerDancer_.Clone();
+ euPullerMotor_ = other.euPullerMotor_.Clone();
+ euDryerZone1Temperature_ = other.euDryerZone1Temperature_.Clone();
+ euDryerZone2Temperature_ = other.euDryerZone2Temperature_.Clone();
+ euDryerZone3Temperature_ = other.euDryerZone3Temperature_.Clone();
+ euHeadZone1Temperature_ = other.euHeadZone1Temperature_.Clone();
+ euHeadZone2Temperature_ = other.euHeadZone2Temperature_.Clone();
+ euHeadZone3Temperature_ = other.euHeadZone3Temperature_.Clone();
+ euMixerTemperature_ = other.euMixerTemperature_.Clone();
+ euTunnelTemperature_ = other.euTunnelTemperature_.Clone();
+ euLubricantTemperature_ = other.euLubricantTemperature_.Clone();
+ euAmbientTemperature_ = other.euAmbientTemperature_.Clone();
+ euElectricalCabinetTemperature_ = other.euElectricalCabinetTemperature_.Clone();
+ euDryerZone1Current_ = other.euDryerZone1Current_.Clone();
+ euDryerZone2Current_ = other.euDryerZone2Current_.Clone();
+ euDryerZone3Current_ = other.euDryerZone3Current_.Clone();
+ euHeadZone1Current_ = other.euHeadZone1Current_.Clone();
+ euHeadZone2Current_ = other.euHeadZone2Current_.Clone();
+ euHeadZone3Current_ = other.euHeadZone3Current_.Clone();
+ euMixerCurrent_ = other.euMixerCurrent_.Clone();
+ euTunnelCurrent_ = other.euTunnelCurrent_.Clone();
+ euLubricantCurrent_ = other.euLubricantCurrent_.Clone();
+ euBtsr1Speed_ = other.euBtsr1Speed_.Clone();
+ euBtsr1SpeedAv_ = other.euBtsr1SpeedAv_.Clone();
+ euBtsr1DispAv_ = other.euBtsr1DispAv_.Clone();
+ euBtsr1PeakMin_ = other.euBtsr1PeakMin_.Clone();
+ euBtsr1PeakMax_ = other.euBtsr1PeakMax_.Clone();
+ euBtsr2Speed_ = other.euBtsr2Speed_.Clone();
+ euBtsr2SpeedAv_ = other.euBtsr2SpeedAv_.Clone();
+ euBtsr2DispAv_ = other.euBtsr2DispAv_.Clone();
+ euBtsr2PeakMin_ = other.euBtsr2PeakMin_.Clone();
+ euBtsr2PeakMax_ = other.euBtsr2PeakMax_.Clone();
+ euBtsr3Speed_ = other.euBtsr3Speed_.Clone();
+ euBtsr3SpeedAv_ = other.euBtsr3SpeedAv_.Clone();
+ euBtsr3DispAv_ = other.euBtsr3DispAv_.Clone();
+ euBtsr3PeakMin_ = other.euBtsr3PeakMin_.Clone();
+ euBtsr3PeakMax_ = other.euBtsr3PeakMax_.Clone();
+ euBtsr4Speed_ = other.euBtsr4Speed_.Clone();
+ euBtsr4SpeedAv_ = other.euBtsr4SpeedAv_.Clone();
+ euBtsr4PeakMin_ = other.euBtsr4PeakMin_.Clone();
+ euBtsr4PeakMax_ = other.euBtsr4PeakMax_.Clone();
+ euBtsr4DispAv_ = other.euBtsr4DispAv_.Clone();
+ euTemperatureLoggers_ = other.euTemperatureLoggers_.Clone();
+ euPumpFlows_ = other.euPumpFlows_.Clone();
+ euInkLinesPressure_ = other.euInkLinesPressure_.Clone();
+ euSpareDataArray_ = other.euSpareDataArray_.Clone();
+ euDispenser1Voltage_ = other.euDispenser1Voltage_.Clone();
+ euDispenser2Voltage_ = other.euDispenser2Voltage_.Clone();
+ euDispenser3Voltage_ = other.euDispenser3Voltage_.Clone();
+ euDispenser4Voltage_ = other.euDispenser4Voltage_.Clone();
+ euDispenser5Voltage_ = other.euDispenser5Voltage_.Clone();
+ euDispenser6Voltage_ = other.euDispenser6Voltage_.Clone();
+ euDispenser7Voltage_ = other.euDispenser7Voltage_.Clone();
+ euDispenser8Voltage_ = other.euDispenser8Voltage_.Clone();
+ euDispenser9Voltage_ = other.euDispenser9Voltage_.Clone();
+ euDispenser10Voltage_ = other.euDispenser10Voltage_.Clone();
+ euDispenser11Voltage_ = other.euDispenser11Voltage_.Clone();
+ euDispenser12Voltage_ = other.euDispenser12Voltage_.Clone();
+ euDispenser13Voltage_ = other.euDispenser13Voltage_.Clone();
+ euDispenser14Voltage_ = other.euDispenser14Voltage_.Clone();
+ euDispenser15Voltage_ = other.euDispenser15Voltage_.Clone();
+ euDispenser16Voltage_ = other.euDispenser16Voltage_.Clone();
+ euLubricantPumpVoltage_ = other.euLubricantPumpVoltage_.Clone();
+ euDispenser1Pressure_ = other.euDispenser1Pressure_.Clone();
+ euDispenser2Pressure_ = other.euDispenser2Pressure_.Clone();
+ euDispenser3Pressure_ = other.euDispenser3Pressure_.Clone();
+ euDispenser4Pressure_ = other.euDispenser4Pressure_.Clone();
+ euDispenser5Pressure_ = other.euDispenser5Pressure_.Clone();
+ euDispenser6Pressure_ = other.euDispenser6Pressure_.Clone();
+ euDispenser7Pressure_ = other.euDispenser7Pressure_.Clone();
+ euDispenser8Pressure_ = other.euDispenser8Pressure_.Clone();
+ euLubricantPressure_ = other.euLubricantPressure_.Clone();
+ euMidTank1Level_ = other.euMidTank1Level_.Clone();
+ euMidTank2Level_ = other.euMidTank2Level_.Clone();
+ euMidTank3Level_ = other.euMidTank3Level_.Clone();
+ euMidTank4Level_ = other.euMidTank4Level_.Clone();
+ euMidTank5Level_ = other.euMidTank5Level_.Clone();
+ euMidTank6Level_ = other.euMidTank6Level_.Clone();
+ euMidTank7Level_ = other.euMidTank7Level_.Clone();
+ euMidTank8Level_ = other.euMidTank8Level_.Clone();
+ euChillerTemperature_ = other.euChillerTemperature_.Clone();
+ euHeadRightAirFlow_ = other.euHeadRightAirFlow_.Clone();
+ euHeadLeftAirFlow_ = other.euHeadLeftAirFlow_.Clone();
+ euHeadRightVoltage_ = other.euHeadRightVoltage_.Clone();
+ euHeadLeftVoltage_ = other.euHeadLeftVoltage_.Clone();
+ euDryerAirFlow_ = other.euDryerAirFlow_.Clone();
+ euBlowerVoltage_ = other.euBlowerVoltage_.Clone();
+ euWasteLevel_ = other.euWasteLevel_.Clone();
+ euSpare1_ = other.euSpare1_.Clone();
+ euSpare2_ = other.euSpare2_.Clone();
+ euSpare3_ = other.euSpare3_.Clone();
+ euSpare4_ = other.euSpare4_.Clone();
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -1432,6 +1601,1345 @@ namespace Tango.PMR.Diagnostics {
get { return totalWHSFlow_; }
}
+ /// <summary>Field number for the "EuWinder1Dancer" field.</summary>
+ public const int EuWinder1DancerFieldNumber = 94;
+ private static readonly pb::FieldCodec<double> _repeated_euWinder1Dancer_codec
+ = pb::FieldCodec.ForDouble(754);
+ private readonly pbc::RepeatedField<double> euWinder1Dancer_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Winder Dancer 1 (Min = 0, Max = 16384, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuWinder1Dancer {
+ get { return euWinder1Dancer_; }
+ }
+
+ /// <summary>Field number for the "EuWinder2Dancer" field.</summary>
+ public const int EuWinder2DancerFieldNumber = 95;
+ private static readonly pb::FieldCodec<double> _repeated_euWinder2Dancer_codec
+ = pb::FieldCodec.ForDouble(762);
+ private readonly pbc::RepeatedField<double> euWinder2Dancer_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Winder Dancer 2 (Min = 0, Max = 16384, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuWinder2Dancer {
+ get { return euWinder2Dancer_; }
+ }
+
+ /// <summary>Field number for the "EuWinder3Dancer" field.</summary>
+ public const int EuWinder3DancerFieldNumber = 96;
+ private static readonly pb::FieldCodec<double> _repeated_euWinder3Dancer_codec
+ = pb::FieldCodec.ForDouble(770);
+ private readonly pbc::RepeatedField<double> euWinder3Dancer_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Winder Dancer 3 (Min = 0, Max = 16384, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuWinder3Dancer {
+ get { return euWinder3Dancer_; }
+ }
+
+ /// <summary>Field number for the "EuWinder4Dancer" field.</summary>
+ public const int EuWinder4DancerFieldNumber = 97;
+ private static readonly pb::FieldCodec<double> _repeated_euWinder4Dancer_codec
+ = pb::FieldCodec.ForDouble(778);
+ private readonly pbc::RepeatedField<double> euWinder4Dancer_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Winder Dancer 4 (Min = 0, Max = 16384, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuWinder4Dancer {
+ get { return euWinder4Dancer_; }
+ }
+
+ /// <summary>Field number for the "EuWinder1Motor" field.</summary>
+ public const int EuWinder1MotorFieldNumber = 98;
+ private static readonly pb::FieldCodec<double> _repeated_euWinder1Motor_codec
+ = pb::FieldCodec.ForDouble(786);
+ private readonly pbc::RepeatedField<double> euWinder1Motor_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Winder Motor 1 (Min = 0, Max = 100000, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuWinder1Motor {
+ get { return euWinder1Motor_; }
+ }
+
+ /// <summary>Field number for the "EuWinder2Motor" field.</summary>
+ public const int EuWinder2MotorFieldNumber = 99;
+ private static readonly pb::FieldCodec<double> _repeated_euWinder2Motor_codec
+ = pb::FieldCodec.ForDouble(794);
+ private readonly pbc::RepeatedField<double> euWinder2Motor_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Winder Motor 2 (Min = 0, Max = 100000, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuWinder2Motor {
+ get { return euWinder2Motor_; }
+ }
+
+ /// <summary>Field number for the "EuWinder3Motor" field.</summary>
+ public const int EuWinder3MotorFieldNumber = 100;
+ private static readonly pb::FieldCodec<double> _repeated_euWinder3Motor_codec
+ = pb::FieldCodec.ForDouble(802);
+ private readonly pbc::RepeatedField<double> euWinder3Motor_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Winder Motor 3 (Min = 0, Max = 100000, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuWinder3Motor {
+ get { return euWinder3Motor_; }
+ }
+
+ /// <summary>Field number for the "EuWinder4Motor" field.</summary>
+ public const int EuWinder4MotorFieldNumber = 101;
+ private static readonly pb::FieldCodec<double> _repeated_euWinder4Motor_codec
+ = pb::FieldCodec.ForDouble(810);
+ private readonly pbc::RepeatedField<double> euWinder4Motor_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Winder Motor 4 (Min = 0, Max = 100000, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuWinder4Motor {
+ get { return euWinder4Motor_; }
+ }
+
+ /// <summary>Field number for the "EuDryerMotorVelocity" field.</summary>
+ public const int EuDryerMotorVelocityFieldNumber = 102;
+ private static readonly pb::FieldCodec<double> _repeated_euDryerMotorVelocity_codec
+ = pb::FieldCodec.ForDouble(818);
+ private readonly pbc::RepeatedField<double> euDryerMotorVelocity_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Dryer Motor Velocity (Min = 0, Max = 10000, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuDryerMotorVelocity {
+ get { return euDryerMotorVelocity_; }
+ }
+
+ /// <summary>Field number for the "EuDryerMotorTargetVelocity" field.</summary>
+ public const int EuDryerMotorTargetVelocityFieldNumber = 103;
+ private static readonly pb::FieldCodec<double> _repeated_euDryerMotorTargetVelocity_codec
+ = pb::FieldCodec.ForDouble(826);
+ private readonly pbc::RepeatedField<double> euDryerMotorTargetVelocity_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Dryer Motor Target Velocity (Min = 0, Max = 10000, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuDryerMotorTargetVelocity {
+ get { return euDryerMotorTargetVelocity_; }
+ }
+
+ /// <summary>Field number for the "EuDryerMotorCurrent" field.</summary>
+ public const int EuDryerMotorCurrentFieldNumber = 104;
+ private static readonly pb::FieldCodec<double> _repeated_euDryerMotorCurrent_codec
+ = pb::FieldCodec.ForDouble(834);
+ private readonly pbc::RepeatedField<double> euDryerMotorCurrent_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Dryer Motor Current (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuDryerMotorCurrent {
+ get { return euDryerMotorCurrent_; }
+ }
+
+ /// <summary>Field number for the "EuPullerDancer" field.</summary>
+ public const int EuPullerDancerFieldNumber = 105;
+ private static readonly pb::FieldCodec<double> _repeated_euPullerDancer_codec
+ = pb::FieldCodec.ForDouble(842);
+ private readonly pbc::RepeatedField<double> euPullerDancer_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Puller Dancer (Min = 0, Max = 16384, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuPullerDancer {
+ get { return euPullerDancer_; }
+ }
+
+ /// <summary>Field number for the "EuPullerMotor" field.</summary>
+ public const int EuPullerMotorFieldNumber = 106;
+ private static readonly pb::FieldCodec<double> _repeated_euPullerMotor_codec
+ = pb::FieldCodec.ForDouble(850);
+ private readonly pbc::RepeatedField<double> euPullerMotor_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Puller Motor (Min = 0, Max = 100000, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuPullerMotor {
+ get { return euPullerMotor_; }
+ }
+
+ /// <summary>Field number for the "EuDryerZone1Temperature" field.</summary>
+ public const int EuDryerZone1TemperatureFieldNumber = 107;
+ private static readonly pb::FieldCodec<double> _repeated_euDryerZone1Temperature_codec
+ = pb::FieldCodec.ForDouble(858);
+ private readonly pbc::RepeatedField<double> euDryerZone1Temperature_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Dryer Zone 1 Temperature (Min = 0, Max = 300, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuDryerZone1Temperature {
+ get { return euDryerZone1Temperature_; }
+ }
+
+ /// <summary>Field number for the "EuDryerZone2Temperature" field.</summary>
+ public const int EuDryerZone2TemperatureFieldNumber = 108;
+ private static readonly pb::FieldCodec<double> _repeated_euDryerZone2Temperature_codec
+ = pb::FieldCodec.ForDouble(866);
+ private readonly pbc::RepeatedField<double> euDryerZone2Temperature_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Dryer Zone 2 Temperature (Min = 0, Max = 300, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuDryerZone2Temperature {
+ get { return euDryerZone2Temperature_; }
+ }
+
+ /// <summary>Field number for the "EuDryerZone3Temperature" field.</summary>
+ public const int EuDryerZone3TemperatureFieldNumber = 109;
+ private static readonly pb::FieldCodec<double> _repeated_euDryerZone3Temperature_codec
+ = pb::FieldCodec.ForDouble(874);
+ private readonly pbc::RepeatedField<double> euDryerZone3Temperature_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Dryer Zone 3 Temperature (Min = 0, Max = 300, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuDryerZone3Temperature {
+ get { return euDryerZone3Temperature_; }
+ }
+
+ /// <summary>Field number for the "EuHeadZone1Temperature" field.</summary>
+ public const int EuHeadZone1TemperatureFieldNumber = 110;
+ private static readonly pb::FieldCodec<double> _repeated_euHeadZone1Temperature_codec
+ = pb::FieldCodec.ForDouble(882);
+ private readonly pbc::RepeatedField<double> euHeadZone1Temperature_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Head Zone 1 Temperature (Min = 0, Max = 300, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuHeadZone1Temperature {
+ get { return euHeadZone1Temperature_; }
+ }
+
+ /// <summary>Field number for the "EuHeadZone2Temperature" field.</summary>
+ public const int EuHeadZone2TemperatureFieldNumber = 111;
+ private static readonly pb::FieldCodec<double> _repeated_euHeadZone2Temperature_codec
+ = pb::FieldCodec.ForDouble(890);
+ private readonly pbc::RepeatedField<double> euHeadZone2Temperature_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Head Zone 2 Temperature (Min = 0, Max = 300, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuHeadZone2Temperature {
+ get { return euHeadZone2Temperature_; }
+ }
+
+ /// <summary>Field number for the "EuHeadZone3Temperature" field.</summary>
+ public const int EuHeadZone3TemperatureFieldNumber = 112;
+ private static readonly pb::FieldCodec<double> _repeated_euHeadZone3Temperature_codec
+ = pb::FieldCodec.ForDouble(898);
+ private readonly pbc::RepeatedField<double> euHeadZone3Temperature_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Head Zone 3 Temperature (Min = 0, Max = 300, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuHeadZone3Temperature {
+ get { return euHeadZone3Temperature_; }
+ }
+
+ /// <summary>Field number for the "EuMixerTemperature" field.</summary>
+ public const int EuMixerTemperatureFieldNumber = 113;
+ private static readonly pb::FieldCodec<double> _repeated_euMixerTemperature_codec
+ = pb::FieldCodec.ForDouble(906);
+ private readonly pbc::RepeatedField<double> euMixerTemperature_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Mixer Temperature (Min = 0, Max = 300, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuMixerTemperature {
+ get { return euMixerTemperature_; }
+ }
+
+ /// <summary>Field number for the "EuTunnelTemperature" field.</summary>
+ public const int EuTunnelTemperatureFieldNumber = 114;
+ private static readonly pb::FieldCodec<double> _repeated_euTunnelTemperature_codec
+ = pb::FieldCodec.ForDouble(914);
+ private readonly pbc::RepeatedField<double> euTunnelTemperature_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Tunnel Temperature (Min = 0, Max = 300, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuTunnelTemperature {
+ get { return euTunnelTemperature_; }
+ }
+
+ /// <summary>Field number for the "EuLubricantTemperature" field.</summary>
+ public const int EuLubricantTemperatureFieldNumber = 115;
+ private static readonly pb::FieldCodec<double> _repeated_euLubricantTemperature_codec
+ = pb::FieldCodec.ForDouble(922);
+ private readonly pbc::RepeatedField<double> euLubricantTemperature_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Lubricant Temperature (Min = 0, Max = 300, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuLubricantTemperature {
+ get { return euLubricantTemperature_; }
+ }
+
+ /// <summary>Field number for the "EuAmbientTemperature" field.</summary>
+ public const int EuAmbientTemperatureFieldNumber = 116;
+ private static readonly pb::FieldCodec<double> _repeated_euAmbientTemperature_codec
+ = pb::FieldCodec.ForDouble(930);
+ private readonly pbc::RepeatedField<double> euAmbientTemperature_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Ambient Temperature (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuAmbientTemperature {
+ get { return euAmbientTemperature_; }
+ }
+
+ /// <summary>Field number for the "EuElectricalCabinetTemperature" field.</summary>
+ public const int EuElectricalCabinetTemperatureFieldNumber = 117;
+ private static readonly pb::FieldCodec<double> _repeated_euElectricalCabinetTemperature_codec
+ = pb::FieldCodec.ForDouble(938);
+ private readonly pbc::RepeatedField<double> euElectricalCabinetTemperature_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Electrical Cabinet Temperature (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuElectricalCabinetTemperature {
+ get { return euElectricalCabinetTemperature_; }
+ }
+
+ /// <summary>Field number for the "EuDryerZone1Current" field.</summary>
+ public const int EuDryerZone1CurrentFieldNumber = 118;
+ private static readonly pb::FieldCodec<double> _repeated_euDryerZone1Current_codec
+ = pb::FieldCodec.ForDouble(946);
+ private readonly pbc::RepeatedField<double> euDryerZone1Current_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Dryer Zone 1 Current (Min = 0, Max = 10, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuDryerZone1Current {
+ get { return euDryerZone1Current_; }
+ }
+
+ /// <summary>Field number for the "EuDryerZone2Current" field.</summary>
+ public const int EuDryerZone2CurrentFieldNumber = 119;
+ private static readonly pb::FieldCodec<double> _repeated_euDryerZone2Current_codec
+ = pb::FieldCodec.ForDouble(954);
+ private readonly pbc::RepeatedField<double> euDryerZone2Current_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Dryer Zone 2 Current (Min = 0, Max = 10, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuDryerZone2Current {
+ get { return euDryerZone2Current_; }
+ }
+
+ /// <summary>Field number for the "EuDryerZone3Current" field.</summary>
+ public const int EuDryerZone3CurrentFieldNumber = 120;
+ private static readonly pb::FieldCodec<double> _repeated_euDryerZone3Current_codec
+ = pb::FieldCodec.ForDouble(962);
+ private readonly pbc::RepeatedField<double> euDryerZone3Current_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Dryer Zone 3 Current (Min = 0, Max = 10, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuDryerZone3Current {
+ get { return euDryerZone3Current_; }
+ }
+
+ /// <summary>Field number for the "EuHeadZone1Current" field.</summary>
+ public const int EuHeadZone1CurrentFieldNumber = 121;
+ private static readonly pb::FieldCodec<double> _repeated_euHeadZone1Current_codec
+ = pb::FieldCodec.ForDouble(970);
+ private readonly pbc::RepeatedField<double> euHeadZone1Current_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Head Zone 1 Current (Min = 0, Max = 10, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuHeadZone1Current {
+ get { return euHeadZone1Current_; }
+ }
+
+ /// <summary>Field number for the "EuHeadZone2Current" field.</summary>
+ public const int EuHeadZone2CurrentFieldNumber = 122;
+ private static readonly pb::FieldCodec<double> _repeated_euHeadZone2Current_codec
+ = pb::FieldCodec.ForDouble(978);
+ private readonly pbc::RepeatedField<double> euHeadZone2Current_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Head Zone 2 Current (Min = 0, Max = 10, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuHeadZone2Current {
+ get { return euHeadZone2Current_; }
+ }
+
+ /// <summary>Field number for the "EuHeadZone3Current" field.</summary>
+ public const int EuHeadZone3CurrentFieldNumber = 123;
+ private static readonly pb::FieldCodec<double> _repeated_euHeadZone3Current_codec
+ = pb::FieldCodec.ForDouble(986);
+ private readonly pbc::RepeatedField<double> euHeadZone3Current_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Head Zone 3 Current (Min = 0, Max = 10, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuHeadZone3Current {
+ get { return euHeadZone3Current_; }
+ }
+
+ /// <summary>Field number for the "EuMixerCurrent" field.</summary>
+ public const int EuMixerCurrentFieldNumber = 124;
+ private static readonly pb::FieldCodec<double> _repeated_euMixerCurrent_codec
+ = pb::FieldCodec.ForDouble(994);
+ private readonly pbc::RepeatedField<double> euMixerCurrent_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Mixer Current (Min = 0, Max = 10, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuMixerCurrent {
+ get { return euMixerCurrent_; }
+ }
+
+ /// <summary>Field number for the "EuTunnelCurrent" field.</summary>
+ public const int EuTunnelCurrentFieldNumber = 125;
+ private static readonly pb::FieldCodec<double> _repeated_euTunnelCurrent_codec
+ = pb::FieldCodec.ForDouble(1002);
+ private readonly pbc::RepeatedField<double> euTunnelCurrent_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Tunnel Current (Min = 0, Max = 10, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuTunnelCurrent {
+ get { return euTunnelCurrent_; }
+ }
+
+ /// <summary>Field number for the "EuLubricantCurrent" field.</summary>
+ public const int EuLubricantCurrentFieldNumber = 126;
+ private static readonly pb::FieldCodec<double> _repeated_euLubricantCurrent_codec
+ = pb::FieldCodec.ForDouble(1010);
+ private readonly pbc::RepeatedField<double> euLubricantCurrent_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Lubricant Current (Min = 0, Max = 10, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuLubricantCurrent {
+ get { return euLubricantCurrent_; }
+ }
+
+ /// <summary>Field number for the "EuBtsr1Speed" field.</summary>
+ public const int EuBtsr1SpeedFieldNumber = 127;
+ private static readonly pb::FieldCodec<double> _repeated_euBtsr1Speed_codec
+ = pb::FieldCodec.ForDouble(1018);
+ private readonly pbc::RepeatedField<double> euBtsr1Speed_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka BTSR 1 Speed (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuBtsr1Speed {
+ get { return euBtsr1Speed_; }
+ }
+
+ /// <summary>Field number for the "EuBtsr1SpeedAv" field.</summary>
+ public const int EuBtsr1SpeedAvFieldNumber = 128;
+ private static readonly pb::FieldCodec<double> _repeated_euBtsr1SpeedAv_codec
+ = pb::FieldCodec.ForDouble(1026);
+ private readonly pbc::RepeatedField<double> euBtsr1SpeedAv_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka BTSR 1 Speed Average (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuBtsr1SpeedAv {
+ get { return euBtsr1SpeedAv_; }
+ }
+
+ /// <summary>Field number for the "EuBtsr1DispAv" field.</summary>
+ public const int EuBtsr1DispAvFieldNumber = 129;
+ private static readonly pb::FieldCodec<double> _repeated_euBtsr1DispAv_codec
+ = pb::FieldCodec.ForDouble(1034);
+ private readonly pbc::RepeatedField<double> euBtsr1DispAv_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka BTSR 1 Tension (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuBtsr1DispAv {
+ get { return euBtsr1DispAv_; }
+ }
+
+ /// <summary>Field number for the "EuBtsr1PeakMin" field.</summary>
+ public const int EuBtsr1PeakMinFieldNumber = 130;
+ private static readonly pb::FieldCodec<double> _repeated_euBtsr1PeakMin_codec
+ = pb::FieldCodec.ForDouble(1042);
+ private readonly pbc::RepeatedField<double> euBtsr1PeakMin_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka BTSR 1 Peak Min (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuBtsr1PeakMin {
+ get { return euBtsr1PeakMin_; }
+ }
+
+ /// <summary>Field number for the "EuBtsr1PeakMax" field.</summary>
+ public const int EuBtsr1PeakMaxFieldNumber = 131;
+ private static readonly pb::FieldCodec<double> _repeated_euBtsr1PeakMax_codec
+ = pb::FieldCodec.ForDouble(1050);
+ private readonly pbc::RepeatedField<double> euBtsr1PeakMax_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka BTSR 1 Peak Max (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuBtsr1PeakMax {
+ get { return euBtsr1PeakMax_; }
+ }
+
+ /// <summary>Field number for the "EuBtsr2Speed" field.</summary>
+ public const int EuBtsr2SpeedFieldNumber = 132;
+ private static readonly pb::FieldCodec<double> _repeated_euBtsr2Speed_codec
+ = pb::FieldCodec.ForDouble(1058);
+ private readonly pbc::RepeatedField<double> euBtsr2Speed_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka BTSR 2 Speed (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuBtsr2Speed {
+ get { return euBtsr2Speed_; }
+ }
+
+ /// <summary>Field number for the "EuBtsr2SpeedAv" field.</summary>
+ public const int EuBtsr2SpeedAvFieldNumber = 133;
+ private static readonly pb::FieldCodec<double> _repeated_euBtsr2SpeedAv_codec
+ = pb::FieldCodec.ForDouble(1066);
+ private readonly pbc::RepeatedField<double> euBtsr2SpeedAv_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka BTSR 2 Speed Average (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuBtsr2SpeedAv {
+ get { return euBtsr2SpeedAv_; }
+ }
+
+ /// <summary>Field number for the "EuBtsr2DispAv" field.</summary>
+ public const int EuBtsr2DispAvFieldNumber = 134;
+ private static readonly pb::FieldCodec<double> _repeated_euBtsr2DispAv_codec
+ = pb::FieldCodec.ForDouble(1074);
+ private readonly pbc::RepeatedField<double> euBtsr2DispAv_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka BTSR 2 Tension (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuBtsr2DispAv {
+ get { return euBtsr2DispAv_; }
+ }
+
+ /// <summary>Field number for the "EuBtsr2PeakMin" field.</summary>
+ public const int EuBtsr2PeakMinFieldNumber = 135;
+ private static readonly pb::FieldCodec<double> _repeated_euBtsr2PeakMin_codec
+ = pb::FieldCodec.ForDouble(1082);
+ private readonly pbc::RepeatedField<double> euBtsr2PeakMin_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka BTSR 2 Peak Min (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuBtsr2PeakMin {
+ get { return euBtsr2PeakMin_; }
+ }
+
+ /// <summary>Field number for the "EuBtsr2PeakMax" field.</summary>
+ public const int EuBtsr2PeakMaxFieldNumber = 136;
+ private static readonly pb::FieldCodec<double> _repeated_euBtsr2PeakMax_codec
+ = pb::FieldCodec.ForDouble(1090);
+ private readonly pbc::RepeatedField<double> euBtsr2PeakMax_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka BTSR 2 Peak Max (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuBtsr2PeakMax {
+ get { return euBtsr2PeakMax_; }
+ }
+
+ /// <summary>Field number for the "EuBtsr3Speed" field.</summary>
+ public const int EuBtsr3SpeedFieldNumber = 137;
+ private static readonly pb::FieldCodec<double> _repeated_euBtsr3Speed_codec
+ = pb::FieldCodec.ForDouble(1098);
+ private readonly pbc::RepeatedField<double> euBtsr3Speed_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka BTSR 3 Speed (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuBtsr3Speed {
+ get { return euBtsr3Speed_; }
+ }
+
+ /// <summary>Field number for the "EuBtsr3SpeedAv" field.</summary>
+ public const int EuBtsr3SpeedAvFieldNumber = 138;
+ private static readonly pb::FieldCodec<double> _repeated_euBtsr3SpeedAv_codec
+ = pb::FieldCodec.ForDouble(1106);
+ private readonly pbc::RepeatedField<double> euBtsr3SpeedAv_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka BTSR 3 Speed Average (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuBtsr3SpeedAv {
+ get { return euBtsr3SpeedAv_; }
+ }
+
+ /// <summary>Field number for the "EuBtsr3DispAv" field.</summary>
+ public const int EuBtsr3DispAvFieldNumber = 139;
+ private static readonly pb::FieldCodec<double> _repeated_euBtsr3DispAv_codec
+ = pb::FieldCodec.ForDouble(1114);
+ private readonly pbc::RepeatedField<double> euBtsr3DispAv_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka BTSR 3 Tension (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuBtsr3DispAv {
+ get { return euBtsr3DispAv_; }
+ }
+
+ /// <summary>Field number for the "EuBtsr3PeakMin" field.</summary>
+ public const int EuBtsr3PeakMinFieldNumber = 140;
+ private static readonly pb::FieldCodec<double> _repeated_euBtsr3PeakMin_codec
+ = pb::FieldCodec.ForDouble(1122);
+ private readonly pbc::RepeatedField<double> euBtsr3PeakMin_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka BTSR 3 Peak Min (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuBtsr3PeakMin {
+ get { return euBtsr3PeakMin_; }
+ }
+
+ /// <summary>Field number for the "EuBtsr3PeakMax" field.</summary>
+ public const int EuBtsr3PeakMaxFieldNumber = 141;
+ private static readonly pb::FieldCodec<double> _repeated_euBtsr3PeakMax_codec
+ = pb::FieldCodec.ForDouble(1130);
+ private readonly pbc::RepeatedField<double> euBtsr3PeakMax_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka BTSR 3 Peak Max (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuBtsr3PeakMax {
+ get { return euBtsr3PeakMax_; }
+ }
+
+ /// <summary>Field number for the "EuBtsr4Speed" field.</summary>
+ public const int EuBtsr4SpeedFieldNumber = 142;
+ private static readonly pb::FieldCodec<double> _repeated_euBtsr4Speed_codec
+ = pb::FieldCodec.ForDouble(1138);
+ private readonly pbc::RepeatedField<double> euBtsr4Speed_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka BTSR 4 Speed (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuBtsr4Speed {
+ get { return euBtsr4Speed_; }
+ }
+
+ /// <summary>Field number for the "EuBtsr4SpeedAv" field.</summary>
+ public const int EuBtsr4SpeedAvFieldNumber = 143;
+ private static readonly pb::FieldCodec<double> _repeated_euBtsr4SpeedAv_codec
+ = pb::FieldCodec.ForDouble(1146);
+ private readonly pbc::RepeatedField<double> euBtsr4SpeedAv_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka BTSR 4 Speed Average (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuBtsr4SpeedAv {
+ get { return euBtsr4SpeedAv_; }
+ }
+
+ /// <summary>Field number for the "EuBtsr4PeakMin" field.</summary>
+ public const int EuBtsr4PeakMinFieldNumber = 144;
+ private static readonly pb::FieldCodec<double> _repeated_euBtsr4PeakMin_codec
+ = pb::FieldCodec.ForDouble(1154);
+ private readonly pbc::RepeatedField<double> euBtsr4PeakMin_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka BTSR 4 Peak Min (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuBtsr4PeakMin {
+ get { return euBtsr4PeakMin_; }
+ }
+
+ /// <summary>Field number for the "EuBtsr4PeakMax" field.</summary>
+ public const int EuBtsr4PeakMaxFieldNumber = 145;
+ private static readonly pb::FieldCodec<double> _repeated_euBtsr4PeakMax_codec
+ = pb::FieldCodec.ForDouble(1162);
+ private readonly pbc::RepeatedField<double> euBtsr4PeakMax_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka BTSR 4 Peak Max (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuBtsr4PeakMax {
+ get { return euBtsr4PeakMax_; }
+ }
+
+ /// <summary>Field number for the "EuBtsr4DispAv" field.</summary>
+ public const int EuBtsr4DispAvFieldNumber = 146;
+ private static readonly pb::FieldCodec<double> _repeated_euBtsr4DispAv_codec
+ = pb::FieldCodec.ForDouble(1170);
+ private readonly pbc::RepeatedField<double> euBtsr4DispAv_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka BTSR 4 Tension (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuBtsr4DispAv {
+ get { return euBtsr4DispAv_; }
+ }
+
+ /// <summary>Field number for the "EuTemperatureLoggers" field.</summary>
+ public const int EuTemperatureLoggersFieldNumber = 147;
+ private static readonly pb::FieldCodec<global::Tango.PMR.Diagnostics.DoubleArray> _repeated_euTemperatureLoggers_codec
+ = pb::FieldCodec.ForMessage(1178, global::Tango.PMR.Diagnostics.DoubleArray.Parser);
+ private readonly pbc::RepeatedField<global::Tango.PMR.Diagnostics.DoubleArray> euTemperatureLoggers_ = new pbc::RepeatedField<global::Tango.PMR.Diagnostics.DoubleArray>();
+ /// <summary>
+ ///Eureka Temperature Loggers (Min = 0, Max = 100000, PPF = 10) Channel Count = 36
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<global::Tango.PMR.Diagnostics.DoubleArray> EuTemperatureLoggers {
+ get { return euTemperatureLoggers_; }
+ }
+
+ /// <summary>Field number for the "EuPumpFlows" field.</summary>
+ public const int EuPumpFlowsFieldNumber = 148;
+ private static readonly pb::FieldCodec<global::Tango.PMR.Diagnostics.DoubleArray> _repeated_euPumpFlows_codec
+ = pb::FieldCodec.ForMessage(1186, global::Tango.PMR.Diagnostics.DoubleArray.Parser);
+ private readonly pbc::RepeatedField<global::Tango.PMR.Diagnostics.DoubleArray> euPumpFlows_ = new pbc::RepeatedField<global::Tango.PMR.Diagnostics.DoubleArray>();
+ /// <summary>
+ ///Eureka Pump Flows (Min = 0, Max = 10, PPF = 10) Channel Count = 17
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<global::Tango.PMR.Diagnostics.DoubleArray> EuPumpFlows {
+ get { return euPumpFlows_; }
+ }
+
+ /// <summary>Field number for the "EuInkLinesPressure" field.</summary>
+ public const int EuInkLinesPressureFieldNumber = 149;
+ private static readonly pb::FieldCodec<global::Tango.PMR.Diagnostics.DoubleArray> _repeated_euInkLinesPressure_codec
+ = pb::FieldCodec.ForMessage(1194, global::Tango.PMR.Diagnostics.DoubleArray.Parser);
+ private readonly pbc::RepeatedField<global::Tango.PMR.Diagnostics.DoubleArray> euInkLinesPressure_ = new pbc::RepeatedField<global::Tango.PMR.Diagnostics.DoubleArray>();
+ /// <summary>
+ ///Eureka Ink Lines Pressure (Min = 0, Max = 100, PPF = 10) Channel Count = 8
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<global::Tango.PMR.Diagnostics.DoubleArray> EuInkLinesPressure {
+ get { return euInkLinesPressure_; }
+ }
+
+ /// <summary>Field number for the "EuSpareDataArray" field.</summary>
+ public const int EuSpareDataArrayFieldNumber = 150;
+ private static readonly pb::FieldCodec<global::Tango.PMR.Diagnostics.DoubleArray> _repeated_euSpareDataArray_codec
+ = pb::FieldCodec.ForMessage(1202, global::Tango.PMR.Diagnostics.DoubleArray.Parser);
+ private readonly pbc::RepeatedField<global::Tango.PMR.Diagnostics.DoubleArray> euSpareDataArray_ = new pbc::RepeatedField<global::Tango.PMR.Diagnostics.DoubleArray>();
+ /// <summary>
+ ///Eureka Spare Data Array (Min = 0, Max = 100, PPF = 10) Channel Count = 10
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<global::Tango.PMR.Diagnostics.DoubleArray> EuSpareDataArray {
+ get { return euSpareDataArray_; }
+ }
+
+ /// <summary>Field number for the "EuDispenser1Voltage" field.</summary>
+ public const int EuDispenser1VoltageFieldNumber = 151;
+ private static readonly pb::FieldCodec<double> _repeated_euDispenser1Voltage_codec
+ = pb::FieldCodec.ForDouble(1210);
+ private readonly pbc::RepeatedField<double> euDispenser1Voltage_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Dispenser 1 Voltage (Min = 0, Max = 1000, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuDispenser1Voltage {
+ get { return euDispenser1Voltage_; }
+ }
+
+ /// <summary>Field number for the "EuDispenser2Voltage" field.</summary>
+ public const int EuDispenser2VoltageFieldNumber = 152;
+ private static readonly pb::FieldCodec<double> _repeated_euDispenser2Voltage_codec
+ = pb::FieldCodec.ForDouble(1218);
+ private readonly pbc::RepeatedField<double> euDispenser2Voltage_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Dispenser 2 Voltage (Min = 0, Max = 1000, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuDispenser2Voltage {
+ get { return euDispenser2Voltage_; }
+ }
+
+ /// <summary>Field number for the "EuDispenser3Voltage" field.</summary>
+ public const int EuDispenser3VoltageFieldNumber = 153;
+ private static readonly pb::FieldCodec<double> _repeated_euDispenser3Voltage_codec
+ = pb::FieldCodec.ForDouble(1226);
+ private readonly pbc::RepeatedField<double> euDispenser3Voltage_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Dispenser 3 Voltage (Min = 0, Max = 1000, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuDispenser3Voltage {
+ get { return euDispenser3Voltage_; }
+ }
+
+ /// <summary>Field number for the "EuDispenser4Voltage" field.</summary>
+ public const int EuDispenser4VoltageFieldNumber = 154;
+ private static readonly pb::FieldCodec<double> _repeated_euDispenser4Voltage_codec
+ = pb::FieldCodec.ForDouble(1234);
+ private readonly pbc::RepeatedField<double> euDispenser4Voltage_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Dispenser 4 Voltage (Min = 0, Max = 1000, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuDispenser4Voltage {
+ get { return euDispenser4Voltage_; }
+ }
+
+ /// <summary>Field number for the "EuDispenser5Voltage" field.</summary>
+ public const int EuDispenser5VoltageFieldNumber = 155;
+ private static readonly pb::FieldCodec<double> _repeated_euDispenser5Voltage_codec
+ = pb::FieldCodec.ForDouble(1242);
+ private readonly pbc::RepeatedField<double> euDispenser5Voltage_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Dispenser 5 Voltage (Min = 0, Max = 1000, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuDispenser5Voltage {
+ get { return euDispenser5Voltage_; }
+ }
+
+ /// <summary>Field number for the "EuDispenser6Voltage" field.</summary>
+ public const int EuDispenser6VoltageFieldNumber = 156;
+ private static readonly pb::FieldCodec<double> _repeated_euDispenser6Voltage_codec
+ = pb::FieldCodec.ForDouble(1250);
+ private readonly pbc::RepeatedField<double> euDispenser6Voltage_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Dispenser 6 Voltage (Min = 0, Max = 1000, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuDispenser6Voltage {
+ get { return euDispenser6Voltage_; }
+ }
+
+ /// <summary>Field number for the "EuDispenser7Voltage" field.</summary>
+ public const int EuDispenser7VoltageFieldNumber = 157;
+ private static readonly pb::FieldCodec<double> _repeated_euDispenser7Voltage_codec
+ = pb::FieldCodec.ForDouble(1258);
+ private readonly pbc::RepeatedField<double> euDispenser7Voltage_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Dispenser 7 Voltage (Min = 0, Max = 1000, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuDispenser7Voltage {
+ get { return euDispenser7Voltage_; }
+ }
+
+ /// <summary>Field number for the "EuDispenser8Voltage" field.</summary>
+ public const int EuDispenser8VoltageFieldNumber = 158;
+ private static readonly pb::FieldCodec<double> _repeated_euDispenser8Voltage_codec
+ = pb::FieldCodec.ForDouble(1266);
+ private readonly pbc::RepeatedField<double> euDispenser8Voltage_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Dispenser 8 Voltage (Min = 0, Max = 1000, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuDispenser8Voltage {
+ get { return euDispenser8Voltage_; }
+ }
+
+ /// <summary>Field number for the "EuDispenser9Voltage" field.</summary>
+ public const int EuDispenser9VoltageFieldNumber = 159;
+ private static readonly pb::FieldCodec<double> _repeated_euDispenser9Voltage_codec
+ = pb::FieldCodec.ForDouble(1274);
+ private readonly pbc::RepeatedField<double> euDispenser9Voltage_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Dispenser 9 Voltage (Min = 0, Max = 1000, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuDispenser9Voltage {
+ get { return euDispenser9Voltage_; }
+ }
+
+ /// <summary>Field number for the "EuDispenser10Voltage" field.</summary>
+ public const int EuDispenser10VoltageFieldNumber = 160;
+ private static readonly pb::FieldCodec<double> _repeated_euDispenser10Voltage_codec
+ = pb::FieldCodec.ForDouble(1282);
+ private readonly pbc::RepeatedField<double> euDispenser10Voltage_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Dispenser 10 Voltage (Min = 0, Max = 1000, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuDispenser10Voltage {
+ get { return euDispenser10Voltage_; }
+ }
+
+ /// <summary>Field number for the "EuDispenser11Voltage" field.</summary>
+ public const int EuDispenser11VoltageFieldNumber = 161;
+ private static readonly pb::FieldCodec<double> _repeated_euDispenser11Voltage_codec
+ = pb::FieldCodec.ForDouble(1290);
+ private readonly pbc::RepeatedField<double> euDispenser11Voltage_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Dispenser 11 Voltage (Min = 0, Max = 1000, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuDispenser11Voltage {
+ get { return euDispenser11Voltage_; }
+ }
+
+ /// <summary>Field number for the "EuDispenser12Voltage" field.</summary>
+ public const int EuDispenser12VoltageFieldNumber = 162;
+ private static readonly pb::FieldCodec<double> _repeated_euDispenser12Voltage_codec
+ = pb::FieldCodec.ForDouble(1298);
+ private readonly pbc::RepeatedField<double> euDispenser12Voltage_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Dispenser 12 Voltage (Min = 0, Max = 1000, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuDispenser12Voltage {
+ get { return euDispenser12Voltage_; }
+ }
+
+ /// <summary>Field number for the "EuDispenser13Voltage" field.</summary>
+ public const int EuDispenser13VoltageFieldNumber = 163;
+ private static readonly pb::FieldCodec<double> _repeated_euDispenser13Voltage_codec
+ = pb::FieldCodec.ForDouble(1306);
+ private readonly pbc::RepeatedField<double> euDispenser13Voltage_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Dispenser 13 Voltage (Min = 0, Max = 1000, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuDispenser13Voltage {
+ get { return euDispenser13Voltage_; }
+ }
+
+ /// <summary>Field number for the "EuDispenser14Voltage" field.</summary>
+ public const int EuDispenser14VoltageFieldNumber = 164;
+ private static readonly pb::FieldCodec<double> _repeated_euDispenser14Voltage_codec
+ = pb::FieldCodec.ForDouble(1314);
+ private readonly pbc::RepeatedField<double> euDispenser14Voltage_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Dispenser 14 Voltage (Min = 0, Max = 1000, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuDispenser14Voltage {
+ get { return euDispenser14Voltage_; }
+ }
+
+ /// <summary>Field number for the "EuDispenser15Voltage" field.</summary>
+ public const int EuDispenser15VoltageFieldNumber = 165;
+ private static readonly pb::FieldCodec<double> _repeated_euDispenser15Voltage_codec
+ = pb::FieldCodec.ForDouble(1322);
+ private readonly pbc::RepeatedField<double> euDispenser15Voltage_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Dispenser 15 Voltage (Min = 0, Max = 1000, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuDispenser15Voltage {
+ get { return euDispenser15Voltage_; }
+ }
+
+ /// <summary>Field number for the "EuDispenser16Voltage" field.</summary>
+ public const int EuDispenser16VoltageFieldNumber = 166;
+ private static readonly pb::FieldCodec<double> _repeated_euDispenser16Voltage_codec
+ = pb::FieldCodec.ForDouble(1330);
+ private readonly pbc::RepeatedField<double> euDispenser16Voltage_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Dispenser 16 Voltage (Min = 0, Max = 1000, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuDispenser16Voltage {
+ get { return euDispenser16Voltage_; }
+ }
+
+ /// <summary>Field number for the "EuLubricantPumpVoltage" field.</summary>
+ public const int EuLubricantPumpVoltageFieldNumber = 167;
+ private static readonly pb::FieldCodec<double> _repeated_euLubricantPumpVoltage_codec
+ = pb::FieldCodec.ForDouble(1338);
+ private readonly pbc::RepeatedField<double> euLubricantPumpVoltage_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Lubricant Pump Voltage (Min = 0, Max = 1000, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuLubricantPumpVoltage {
+ get { return euLubricantPumpVoltage_; }
+ }
+
+ /// <summary>Field number for the "EuDispenser1Pressure" field.</summary>
+ public const int EuDispenser1PressureFieldNumber = 168;
+ private static readonly pb::FieldCodec<double> _repeated_euDispenser1Pressure_codec
+ = pb::FieldCodec.ForDouble(1346);
+ private readonly pbc::RepeatedField<double> euDispenser1Pressure_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Dispenser 1 Pressure (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuDispenser1Pressure {
+ get { return euDispenser1Pressure_; }
+ }
+
+ /// <summary>Field number for the "EuDispenser2Pressure" field.</summary>
+ public const int EuDispenser2PressureFieldNumber = 169;
+ private static readonly pb::FieldCodec<double> _repeated_euDispenser2Pressure_codec
+ = pb::FieldCodec.ForDouble(1354);
+ private readonly pbc::RepeatedField<double> euDispenser2Pressure_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Dispenser 2 Pressure (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuDispenser2Pressure {
+ get { return euDispenser2Pressure_; }
+ }
+
+ /// <summary>Field number for the "EuDispenser3Pressure" field.</summary>
+ public const int EuDispenser3PressureFieldNumber = 170;
+ private static readonly pb::FieldCodec<double> _repeated_euDispenser3Pressure_codec
+ = pb::FieldCodec.ForDouble(1362);
+ private readonly pbc::RepeatedField<double> euDispenser3Pressure_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Dispenser 3 Pressure (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuDispenser3Pressure {
+ get { return euDispenser3Pressure_; }
+ }
+
+ /// <summary>Field number for the "EuDispenser4Pressure" field.</summary>
+ public const int EuDispenser4PressureFieldNumber = 171;
+ private static readonly pb::FieldCodec<double> _repeated_euDispenser4Pressure_codec
+ = pb::FieldCodec.ForDouble(1370);
+ private readonly pbc::RepeatedField<double> euDispenser4Pressure_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Dispenser 4 Pressure (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuDispenser4Pressure {
+ get { return euDispenser4Pressure_; }
+ }
+
+ /// <summary>Field number for the "EuDispenser5Pressure" field.</summary>
+ public const int EuDispenser5PressureFieldNumber = 172;
+ private static readonly pb::FieldCodec<double> _repeated_euDispenser5Pressure_codec
+ = pb::FieldCodec.ForDouble(1378);
+ private readonly pbc::RepeatedField<double> euDispenser5Pressure_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Dispenser 5 Pressure (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuDispenser5Pressure {
+ get { return euDispenser5Pressure_; }
+ }
+
+ /// <summary>Field number for the "EuDispenser6Pressure" field.</summary>
+ public const int EuDispenser6PressureFieldNumber = 173;
+ private static readonly pb::FieldCodec<double> _repeated_euDispenser6Pressure_codec
+ = pb::FieldCodec.ForDouble(1386);
+ private readonly pbc::RepeatedField<double> euDispenser6Pressure_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Dispenser 6 Pressure (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuDispenser6Pressure {
+ get { return euDispenser6Pressure_; }
+ }
+
+ /// <summary>Field number for the "EuDispenser7Pressure" field.</summary>
+ public const int EuDispenser7PressureFieldNumber = 174;
+ private static readonly pb::FieldCodec<double> _repeated_euDispenser7Pressure_codec
+ = pb::FieldCodec.ForDouble(1394);
+ private readonly pbc::RepeatedField<double> euDispenser7Pressure_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Dispenser 7 Pressure (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuDispenser7Pressure {
+ get { return euDispenser7Pressure_; }
+ }
+
+ /// <summary>Field number for the "EuDispenser8Pressure" field.</summary>
+ public const int EuDispenser8PressureFieldNumber = 175;
+ private static readonly pb::FieldCodec<double> _repeated_euDispenser8Pressure_codec
+ = pb::FieldCodec.ForDouble(1402);
+ private readonly pbc::RepeatedField<double> euDispenser8Pressure_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Dispenser 8 Pressure (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuDispenser8Pressure {
+ get { return euDispenser8Pressure_; }
+ }
+
+ /// <summary>Field number for the "EuLubricantPressure" field.</summary>
+ public const int EuLubricantPressureFieldNumber = 176;
+ private static readonly pb::FieldCodec<double> _repeated_euLubricantPressure_codec
+ = pb::FieldCodec.ForDouble(1410);
+ private readonly pbc::RepeatedField<double> euLubricantPressure_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Lubricant Pressure (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuLubricantPressure {
+ get { return euLubricantPressure_; }
+ }
+
+ /// <summary>Field number for the "EuMidTank1Level" field.</summary>
+ public const int EuMidTank1LevelFieldNumber = 177;
+ private static readonly pb::FieldCodec<double> _repeated_euMidTank1Level_codec
+ = pb::FieldCodec.ForDouble(1418);
+ private readonly pbc::RepeatedField<double> euMidTank1Level_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Mid Tank 1 Level (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuMidTank1Level {
+ get { return euMidTank1Level_; }
+ }
+
+ /// <summary>Field number for the "EuMidTank2Level" field.</summary>
+ public const int EuMidTank2LevelFieldNumber = 178;
+ private static readonly pb::FieldCodec<double> _repeated_euMidTank2Level_codec
+ = pb::FieldCodec.ForDouble(1426);
+ private readonly pbc::RepeatedField<double> euMidTank2Level_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Mid Tank 2 Level (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuMidTank2Level {
+ get { return euMidTank2Level_; }
+ }
+
+ /// <summary>Field number for the "EuMidTank3Level" field.</summary>
+ public const int EuMidTank3LevelFieldNumber = 179;
+ private static readonly pb::FieldCodec<double> _repeated_euMidTank3Level_codec
+ = pb::FieldCodec.ForDouble(1434);
+ private readonly pbc::RepeatedField<double> euMidTank3Level_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Mid Tank 3 Level (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuMidTank3Level {
+ get { return euMidTank3Level_; }
+ }
+
+ /// <summary>Field number for the "EuMidTank4Level" field.</summary>
+ public const int EuMidTank4LevelFieldNumber = 180;
+ private static readonly pb::FieldCodec<double> _repeated_euMidTank4Level_codec
+ = pb::FieldCodec.ForDouble(1442);
+ private readonly pbc::RepeatedField<double> euMidTank4Level_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Mid Tank 4 Level (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuMidTank4Level {
+ get { return euMidTank4Level_; }
+ }
+
+ /// <summary>Field number for the "EuMidTank5Level" field.</summary>
+ public const int EuMidTank5LevelFieldNumber = 181;
+ private static readonly pb::FieldCodec<double> _repeated_euMidTank5Level_codec
+ = pb::FieldCodec.ForDouble(1450);
+ private readonly pbc::RepeatedField<double> euMidTank5Level_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Mid Tank 5 Level (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuMidTank5Level {
+ get { return euMidTank5Level_; }
+ }
+
+ /// <summary>Field number for the "EuMidTank6Level" field.</summary>
+ public const int EuMidTank6LevelFieldNumber = 182;
+ private static readonly pb::FieldCodec<double> _repeated_euMidTank6Level_codec
+ = pb::FieldCodec.ForDouble(1458);
+ private readonly pbc::RepeatedField<double> euMidTank6Level_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Mid Tank 6 Level (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuMidTank6Level {
+ get { return euMidTank6Level_; }
+ }
+
+ /// <summary>Field number for the "EuMidTank7Level" field.</summary>
+ public const int EuMidTank7LevelFieldNumber = 183;
+ private static readonly pb::FieldCodec<double> _repeated_euMidTank7Level_codec
+ = pb::FieldCodec.ForDouble(1466);
+ private readonly pbc::RepeatedField<double> euMidTank7Level_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Mid Tank 7 Level (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuMidTank7Level {
+ get { return euMidTank7Level_; }
+ }
+
+ /// <summary>Field number for the "EuMidTank8Level" field.</summary>
+ public const int EuMidTank8LevelFieldNumber = 184;
+ private static readonly pb::FieldCodec<double> _repeated_euMidTank8Level_codec
+ = pb::FieldCodec.ForDouble(1474);
+ private readonly pbc::RepeatedField<double> euMidTank8Level_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Mid Tank 8 Level (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuMidTank8Level {
+ get { return euMidTank8Level_; }
+ }
+
+ /// <summary>Field number for the "EuChillerTemperature" field.</summary>
+ public const int EuChillerTemperatureFieldNumber = 185;
+ private static readonly pb::FieldCodec<double> _repeated_euChillerTemperature_codec
+ = pb::FieldCodec.ForDouble(1482);
+ private readonly pbc::RepeatedField<double> euChillerTemperature_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Chiller Temperature (Min = 0, Max = 300, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuChillerTemperature {
+ get { return euChillerTemperature_; }
+ }
+
+ /// <summary>Field number for the "EuHeadRightAirFlow" field.</summary>
+ public const int EuHeadRightAirFlowFieldNumber = 186;
+ private static readonly pb::FieldCodec<double> _repeated_euHeadRightAirFlow_codec
+ = pb::FieldCodec.ForDouble(1490);
+ private readonly pbc::RepeatedField<double> euHeadRightAirFlow_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Head Right Air Flow (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuHeadRightAirFlow {
+ get { return euHeadRightAirFlow_; }
+ }
+
+ /// <summary>Field number for the "EuHeadLeftAirFlow" field.</summary>
+ public const int EuHeadLeftAirFlowFieldNumber = 187;
+ private static readonly pb::FieldCodec<double> _repeated_euHeadLeftAirFlow_codec
+ = pb::FieldCodec.ForDouble(1498);
+ private readonly pbc::RepeatedField<double> euHeadLeftAirFlow_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Head Left Air Flow (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuHeadLeftAirFlow {
+ get { return euHeadLeftAirFlow_; }
+ }
+
+ /// <summary>Field number for the "EuHeadRightVoltage" field.</summary>
+ public const int EuHeadRightVoltageFieldNumber = 188;
+ private static readonly pb::FieldCodec<double> _repeated_euHeadRightVoltage_codec
+ = pb::FieldCodec.ForDouble(1506);
+ private readonly pbc::RepeatedField<double> euHeadRightVoltage_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Head Right Voltage (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuHeadRightVoltage {
+ get { return euHeadRightVoltage_; }
+ }
+
+ /// <summary>Field number for the "EuHeadLeftVoltage" field.</summary>
+ public const int EuHeadLeftVoltageFieldNumber = 189;
+ private static readonly pb::FieldCodec<double> _repeated_euHeadLeftVoltage_codec
+ = pb::FieldCodec.ForDouble(1514);
+ private readonly pbc::RepeatedField<double> euHeadLeftVoltage_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Head Left Voltage (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuHeadLeftVoltage {
+ get { return euHeadLeftVoltage_; }
+ }
+
+ /// <summary>Field number for the "EuDryerAirFlow" field.</summary>
+ public const int EuDryerAirFlowFieldNumber = 190;
+ private static readonly pb::FieldCodec<double> _repeated_euDryerAirFlow_codec
+ = pb::FieldCodec.ForDouble(1522);
+ private readonly pbc::RepeatedField<double> euDryerAirFlow_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Dryer Air Flow (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuDryerAirFlow {
+ get { return euDryerAirFlow_; }
+ }
+
+ /// <summary>Field number for the "EuBlowerVoltage" field.</summary>
+ public const int EuBlowerVoltageFieldNumber = 191;
+ private static readonly pb::FieldCodec<double> _repeated_euBlowerVoltage_codec
+ = pb::FieldCodec.ForDouble(1530);
+ private readonly pbc::RepeatedField<double> euBlowerVoltage_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Blower Voltage (Min = 0, Max = 100, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuBlowerVoltage {
+ get { return euBlowerVoltage_; }
+ }
+
+ /// <summary>Field number for the "EuWasteLevel" field.</summary>
+ public const int EuWasteLevelFieldNumber = 192;
+ private static readonly pb::FieldCodec<double> _repeated_euWasteLevel_codec
+ = pb::FieldCodec.ForDouble(1538);
+ private readonly pbc::RepeatedField<double> euWasteLevel_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Waste Level (Min = 0, Max = 9, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuWasteLevel {
+ get { return euWasteLevel_; }
+ }
+
+ /// <summary>Field number for the "EuSpare1" field.</summary>
+ public const int EuSpare1FieldNumber = 193;
+ private static readonly pb::FieldCodec<double> _repeated_euSpare1_codec
+ = pb::FieldCodec.ForDouble(1546);
+ private readonly pbc::RepeatedField<double> euSpare1_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Spare 1 (Min = 0, Max = 10000, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuSpare1 {
+ get { return euSpare1_; }
+ }
+
+ /// <summary>Field number for the "EuSpare2" field.</summary>
+ public const int EuSpare2FieldNumber = 194;
+ private static readonly pb::FieldCodec<double> _repeated_euSpare2_codec
+ = pb::FieldCodec.ForDouble(1554);
+ private readonly pbc::RepeatedField<double> euSpare2_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Spare 2 (Min = 0, Max = 10000, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuSpare2 {
+ get { return euSpare2_; }
+ }
+
+ /// <summary>Field number for the "EuSpare3" field.</summary>
+ public const int EuSpare3FieldNumber = 195;
+ private static readonly pb::FieldCodec<double> _repeated_euSpare3_codec
+ = pb::FieldCodec.ForDouble(1562);
+ private readonly pbc::RepeatedField<double> euSpare3_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Spare 3 (Min = 0, Max = 10000, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuSpare3 {
+ get { return euSpare3_; }
+ }
+
+ /// <summary>Field number for the "EuSpare4" field.</summary>
+ public const int EuSpare4FieldNumber = 196;
+ private static readonly pb::FieldCodec<double> _repeated_euSpare4_codec
+ = pb::FieldCodec.ForDouble(1570);
+ private readonly pbc::RepeatedField<double> euSpare4_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Spare 4 (Min = 0, Max = 10000, PPF = 10)
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuSpare4 {
+ get { return euSpare4_; }
+ }
+
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as DiagnosticsMonitors);
@@ -1538,6 +3046,109 @@ namespace Tango.PMR.Diagnostics {
if(!shinkoSetValue_.Equals(other.shinkoSetValue_)) return false;
if(!shinkoCurrentValue_.Equals(other.shinkoCurrentValue_)) return false;
if(!totalWHSFlow_.Equals(other.totalWHSFlow_)) return false;
+ if(!euWinder1Dancer_.Equals(other.euWinder1Dancer_)) return false;
+ if(!euWinder2Dancer_.Equals(other.euWinder2Dancer_)) return false;
+ if(!euWinder3Dancer_.Equals(other.euWinder3Dancer_)) return false;
+ if(!euWinder4Dancer_.Equals(other.euWinder4Dancer_)) return false;
+ if(!euWinder1Motor_.Equals(other.euWinder1Motor_)) return false;
+ if(!euWinder2Motor_.Equals(other.euWinder2Motor_)) return false;
+ if(!euWinder3Motor_.Equals(other.euWinder3Motor_)) return false;
+ if(!euWinder4Motor_.Equals(other.euWinder4Motor_)) return false;
+ if(!euDryerMotorVelocity_.Equals(other.euDryerMotorVelocity_)) return false;
+ if(!euDryerMotorTargetVelocity_.Equals(other.euDryerMotorTargetVelocity_)) return false;
+ if(!euDryerMotorCurrent_.Equals(other.euDryerMotorCurrent_)) return false;
+ if(!euPullerDancer_.Equals(other.euPullerDancer_)) return false;
+ if(!euPullerMotor_.Equals(other.euPullerMotor_)) return false;
+ if(!euDryerZone1Temperature_.Equals(other.euDryerZone1Temperature_)) return false;
+ if(!euDryerZone2Temperature_.Equals(other.euDryerZone2Temperature_)) return false;
+ if(!euDryerZone3Temperature_.Equals(other.euDryerZone3Temperature_)) return false;
+ if(!euHeadZone1Temperature_.Equals(other.euHeadZone1Temperature_)) return false;
+ if(!euHeadZone2Temperature_.Equals(other.euHeadZone2Temperature_)) return false;
+ if(!euHeadZone3Temperature_.Equals(other.euHeadZone3Temperature_)) return false;
+ if(!euMixerTemperature_.Equals(other.euMixerTemperature_)) return false;
+ if(!euTunnelTemperature_.Equals(other.euTunnelTemperature_)) return false;
+ if(!euLubricantTemperature_.Equals(other.euLubricantTemperature_)) return false;
+ if(!euAmbientTemperature_.Equals(other.euAmbientTemperature_)) return false;
+ if(!euElectricalCabinetTemperature_.Equals(other.euElectricalCabinetTemperature_)) return false;
+ if(!euDryerZone1Current_.Equals(other.euDryerZone1Current_)) return false;
+ if(!euDryerZone2Current_.Equals(other.euDryerZone2Current_)) return false;
+ if(!euDryerZone3Current_.Equals(other.euDryerZone3Current_)) return false;
+ if(!euHeadZone1Current_.Equals(other.euHeadZone1Current_)) return false;
+ if(!euHeadZone2Current_.Equals(other.euHeadZone2Current_)) return false;
+ if(!euHeadZone3Current_.Equals(other.euHeadZone3Current_)) return false;
+ if(!euMixerCurrent_.Equals(other.euMixerCurrent_)) return false;
+ if(!euTunnelCurrent_.Equals(other.euTunnelCurrent_)) return false;
+ if(!euLubricantCurrent_.Equals(other.euLubricantCurrent_)) return false;
+ if(!euBtsr1Speed_.Equals(other.euBtsr1Speed_)) return false;
+ if(!euBtsr1SpeedAv_.Equals(other.euBtsr1SpeedAv_)) return false;
+ if(!euBtsr1DispAv_.Equals(other.euBtsr1DispAv_)) return false;
+ if(!euBtsr1PeakMin_.Equals(other.euBtsr1PeakMin_)) return false;
+ if(!euBtsr1PeakMax_.Equals(other.euBtsr1PeakMax_)) return false;
+ if(!euBtsr2Speed_.Equals(other.euBtsr2Speed_)) return false;
+ if(!euBtsr2SpeedAv_.Equals(other.euBtsr2SpeedAv_)) return false;
+ if(!euBtsr2DispAv_.Equals(other.euBtsr2DispAv_)) return false;
+ if(!euBtsr2PeakMin_.Equals(other.euBtsr2PeakMin_)) return false;
+ if(!euBtsr2PeakMax_.Equals(other.euBtsr2PeakMax_)) return false;
+ if(!euBtsr3Speed_.Equals(other.euBtsr3Speed_)) return false;
+ if(!euBtsr3SpeedAv_.Equals(other.euBtsr3SpeedAv_)) return false;
+ if(!euBtsr3DispAv_.Equals(other.euBtsr3DispAv_)) return false;
+ if(!euBtsr3PeakMin_.Equals(other.euBtsr3PeakMin_)) return false;
+ if(!euBtsr3PeakMax_.Equals(other.euBtsr3PeakMax_)) return false;
+ if(!euBtsr4Speed_.Equals(other.euBtsr4Speed_)) return false;
+ if(!euBtsr4SpeedAv_.Equals(other.euBtsr4SpeedAv_)) return false;
+ if(!euBtsr4PeakMin_.Equals(other.euBtsr4PeakMin_)) return false;
+ if(!euBtsr4PeakMax_.Equals(other.euBtsr4PeakMax_)) return false;
+ if(!euBtsr4DispAv_.Equals(other.euBtsr4DispAv_)) return false;
+ if(!euTemperatureLoggers_.Equals(other.euTemperatureLoggers_)) return false;
+ if(!euPumpFlows_.Equals(other.euPumpFlows_)) return false;
+ if(!euInkLinesPressure_.Equals(other.euInkLinesPressure_)) return false;
+ if(!euSpareDataArray_.Equals(other.euSpareDataArray_)) return false;
+ if(!euDispenser1Voltage_.Equals(other.euDispenser1Voltage_)) return false;
+ if(!euDispenser2Voltage_.Equals(other.euDispenser2Voltage_)) return false;
+ if(!euDispenser3Voltage_.Equals(other.euDispenser3Voltage_)) return false;
+ if(!euDispenser4Voltage_.Equals(other.euDispenser4Voltage_)) return false;
+ if(!euDispenser5Voltage_.Equals(other.euDispenser5Voltage_)) return false;
+ if(!euDispenser6Voltage_.Equals(other.euDispenser6Voltage_)) return false;
+ if(!euDispenser7Voltage_.Equals(other.euDispenser7Voltage_)) return false;
+ if(!euDispenser8Voltage_.Equals(other.euDispenser8Voltage_)) return false;
+ if(!euDispenser9Voltage_.Equals(other.euDispenser9Voltage_)) return false;
+ if(!euDispenser10Voltage_.Equals(other.euDispenser10Voltage_)) return false;
+ if(!euDispenser11Voltage_.Equals(other.euDispenser11Voltage_)) return false;
+ if(!euDispenser12Voltage_.Equals(other.euDispenser12Voltage_)) return false;
+ if(!euDispenser13Voltage_.Equals(other.euDispenser13Voltage_)) return false;
+ if(!euDispenser14Voltage_.Equals(other.euDispenser14Voltage_)) return false;
+ if(!euDispenser15Voltage_.Equals(other.euDispenser15Voltage_)) return false;
+ if(!euDispenser16Voltage_.Equals(other.euDispenser16Voltage_)) return false;
+ if(!euLubricantPumpVoltage_.Equals(other.euLubricantPumpVoltage_)) return false;
+ if(!euDispenser1Pressure_.Equals(other.euDispenser1Pressure_)) return false;
+ if(!euDispenser2Pressure_.Equals(other.euDispenser2Pressure_)) return false;
+ if(!euDispenser3Pressure_.Equals(other.euDispenser3Pressure_)) return false;
+ if(!euDispenser4Pressure_.Equals(other.euDispenser4Pressure_)) return false;
+ if(!euDispenser5Pressure_.Equals(other.euDispenser5Pressure_)) return false;
+ if(!euDispenser6Pressure_.Equals(other.euDispenser6Pressure_)) return false;
+ if(!euDispenser7Pressure_.Equals(other.euDispenser7Pressure_)) return false;
+ if(!euDispenser8Pressure_.Equals(other.euDispenser8Pressure_)) return false;
+ if(!euLubricantPressure_.Equals(other.euLubricantPressure_)) return false;
+ if(!euMidTank1Level_.Equals(other.euMidTank1Level_)) return false;
+ if(!euMidTank2Level_.Equals(other.euMidTank2Level_)) return false;
+ if(!euMidTank3Level_.Equals(other.euMidTank3Level_)) return false;
+ if(!euMidTank4Level_.Equals(other.euMidTank4Level_)) return false;
+ if(!euMidTank5Level_.Equals(other.euMidTank5Level_)) return false;
+ if(!euMidTank6Level_.Equals(other.euMidTank6Level_)) return false;
+ if(!euMidTank7Level_.Equals(other.euMidTank7Level_)) return false;
+ if(!euMidTank8Level_.Equals(other.euMidTank8Level_)) return false;
+ if(!euChillerTemperature_.Equals(other.euChillerTemperature_)) return false;
+ if(!euHeadRightAirFlow_.Equals(other.euHeadRightAirFlow_)) return false;
+ if(!euHeadLeftAirFlow_.Equals(other.euHeadLeftAirFlow_)) return false;
+ if(!euHeadRightVoltage_.Equals(other.euHeadRightVoltage_)) return false;
+ if(!euHeadLeftVoltage_.Equals(other.euHeadLeftVoltage_)) return false;
+ if(!euDryerAirFlow_.Equals(other.euDryerAirFlow_)) return false;
+ if(!euBlowerVoltage_.Equals(other.euBlowerVoltage_)) return false;
+ if(!euWasteLevel_.Equals(other.euWasteLevel_)) return false;
+ if(!euSpare1_.Equals(other.euSpare1_)) return false;
+ if(!euSpare2_.Equals(other.euSpare2_)) return false;
+ if(!euSpare3_.Equals(other.euSpare3_)) return false;
+ if(!euSpare4_.Equals(other.euSpare4_)) return false;
return true;
}
@@ -1637,6 +3248,109 @@ namespace Tango.PMR.Diagnostics {
hash ^= shinkoSetValue_.GetHashCode();
hash ^= shinkoCurrentValue_.GetHashCode();
hash ^= totalWHSFlow_.GetHashCode();
+ hash ^= euWinder1Dancer_.GetHashCode();
+ hash ^= euWinder2Dancer_.GetHashCode();
+ hash ^= euWinder3Dancer_.GetHashCode();
+ hash ^= euWinder4Dancer_.GetHashCode();
+ hash ^= euWinder1Motor_.GetHashCode();
+ hash ^= euWinder2Motor_.GetHashCode();
+ hash ^= euWinder3Motor_.GetHashCode();
+ hash ^= euWinder4Motor_.GetHashCode();
+ hash ^= euDryerMotorVelocity_.GetHashCode();
+ hash ^= euDryerMotorTargetVelocity_.GetHashCode();
+ hash ^= euDryerMotorCurrent_.GetHashCode();
+ hash ^= euPullerDancer_.GetHashCode();
+ hash ^= euPullerMotor_.GetHashCode();
+ hash ^= euDryerZone1Temperature_.GetHashCode();
+ hash ^= euDryerZone2Temperature_.GetHashCode();
+ hash ^= euDryerZone3Temperature_.GetHashCode();
+ hash ^= euHeadZone1Temperature_.GetHashCode();
+ hash ^= euHeadZone2Temperature_.GetHashCode();
+ hash ^= euHeadZone3Temperature_.GetHashCode();
+ hash ^= euMixerTemperature_.GetHashCode();
+ hash ^= euTunnelTemperature_.GetHashCode();
+ hash ^= euLubricantTemperature_.GetHashCode();
+ hash ^= euAmbientTemperature_.GetHashCode();
+ hash ^= euElectricalCabinetTemperature_.GetHashCode();
+ hash ^= euDryerZone1Current_.GetHashCode();
+ hash ^= euDryerZone2Current_.GetHashCode();
+ hash ^= euDryerZone3Current_.GetHashCode();
+ hash ^= euHeadZone1Current_.GetHashCode();
+ hash ^= euHeadZone2Current_.GetHashCode();
+ hash ^= euHeadZone3Current_.GetHashCode();
+ hash ^= euMixerCurrent_.GetHashCode();
+ hash ^= euTunnelCurrent_.GetHashCode();
+ hash ^= euLubricantCurrent_.GetHashCode();
+ hash ^= euBtsr1Speed_.GetHashCode();
+ hash ^= euBtsr1SpeedAv_.GetHashCode();
+ hash ^= euBtsr1DispAv_.GetHashCode();
+ hash ^= euBtsr1PeakMin_.GetHashCode();
+ hash ^= euBtsr1PeakMax_.GetHashCode();
+ hash ^= euBtsr2Speed_.GetHashCode();
+ hash ^= euBtsr2SpeedAv_.GetHashCode();
+ hash ^= euBtsr2DispAv_.GetHashCode();
+ hash ^= euBtsr2PeakMin_.GetHashCode();
+ hash ^= euBtsr2PeakMax_.GetHashCode();
+ hash ^= euBtsr3Speed_.GetHashCode();
+ hash ^= euBtsr3SpeedAv_.GetHashCode();
+ hash ^= euBtsr3DispAv_.GetHashCode();
+ hash ^= euBtsr3PeakMin_.GetHashCode();
+ hash ^= euBtsr3PeakMax_.GetHashCode();
+ hash ^= euBtsr4Speed_.GetHashCode();
+ hash ^= euBtsr4SpeedAv_.GetHashCode();
+ hash ^= euBtsr4PeakMin_.GetHashCode();
+ hash ^= euBtsr4PeakMax_.GetHashCode();
+ hash ^= euBtsr4DispAv_.GetHashCode();
+ hash ^= euTemperatureLoggers_.GetHashCode();
+ hash ^= euPumpFlows_.GetHashCode();
+ hash ^= euInkLinesPressure_.GetHashCode();
+ hash ^= euSpareDataArray_.GetHashCode();
+ hash ^= euDispenser1Voltage_.GetHashCode();
+ hash ^= euDispenser2Voltage_.GetHashCode();
+ hash ^= euDispenser3Voltage_.GetHashCode();
+ hash ^= euDispenser4Voltage_.GetHashCode();
+ hash ^= euDispenser5Voltage_.GetHashCode();
+ hash ^= euDispenser6Voltage_.GetHashCode();
+ hash ^= euDispenser7Voltage_.GetHashCode();
+ hash ^= euDispenser8Voltage_.GetHashCode();
+ hash ^= euDispenser9Voltage_.GetHashCode();
+ hash ^= euDispenser10Voltage_.GetHashCode();
+ hash ^= euDispenser11Voltage_.GetHashCode();
+ hash ^= euDispenser12Voltage_.GetHashCode();
+ hash ^= euDispenser13Voltage_.GetHashCode();
+ hash ^= euDispenser14Voltage_.GetHashCode();
+ hash ^= euDispenser15Voltage_.GetHashCode();
+ hash ^= euDispenser16Voltage_.GetHashCode();
+ hash ^= euLubricantPumpVoltage_.GetHashCode();
+ hash ^= euDispenser1Pressure_.GetHashCode();
+ hash ^= euDispenser2Pressure_.GetHashCode();
+ hash ^= euDispenser3Pressure_.GetHashCode();
+ hash ^= euDispenser4Pressure_.GetHashCode();
+ hash ^= euDispenser5Pressure_.GetHashCode();
+ hash ^= euDispenser6Pressure_.GetHashCode();
+ hash ^= euDispenser7Pressure_.GetHashCode();
+ hash ^= euDispenser8Pressure_.GetHashCode();
+ hash ^= euLubricantPressure_.GetHashCode();
+ hash ^= euMidTank1Level_.GetHashCode();
+ hash ^= euMidTank2Level_.GetHashCode();
+ hash ^= euMidTank3Level_.GetHashCode();
+ hash ^= euMidTank4Level_.GetHashCode();
+ hash ^= euMidTank5Level_.GetHashCode();
+ hash ^= euMidTank6Level_.GetHashCode();
+ hash ^= euMidTank7Level_.GetHashCode();
+ hash ^= euMidTank8Level_.GetHashCode();
+ hash ^= euChillerTemperature_.GetHashCode();
+ hash ^= euHeadRightAirFlow_.GetHashCode();
+ hash ^= euHeadLeftAirFlow_.GetHashCode();
+ hash ^= euHeadRightVoltage_.GetHashCode();
+ hash ^= euHeadLeftVoltage_.GetHashCode();
+ hash ^= euDryerAirFlow_.GetHashCode();
+ hash ^= euBlowerVoltage_.GetHashCode();
+ hash ^= euWasteLevel_.GetHashCode();
+ hash ^= euSpare1_.GetHashCode();
+ hash ^= euSpare2_.GetHashCode();
+ hash ^= euSpare3_.GetHashCode();
+ hash ^= euSpare4_.GetHashCode();
return hash;
}
@@ -1740,6 +3454,109 @@ namespace Tango.PMR.Diagnostics {
shinkoSetValue_.WriteTo(output, _repeated_shinkoSetValue_codec);
shinkoCurrentValue_.WriteTo(output, _repeated_shinkoCurrentValue_codec);
totalWHSFlow_.WriteTo(output, _repeated_totalWHSFlow_codec);
+ euWinder1Dancer_.WriteTo(output, _repeated_euWinder1Dancer_codec);
+ euWinder2Dancer_.WriteTo(output, _repeated_euWinder2Dancer_codec);
+ euWinder3Dancer_.WriteTo(output, _repeated_euWinder3Dancer_codec);
+ euWinder4Dancer_.WriteTo(output, _repeated_euWinder4Dancer_codec);
+ euWinder1Motor_.WriteTo(output, _repeated_euWinder1Motor_codec);
+ euWinder2Motor_.WriteTo(output, _repeated_euWinder2Motor_codec);
+ euWinder3Motor_.WriteTo(output, _repeated_euWinder3Motor_codec);
+ euWinder4Motor_.WriteTo(output, _repeated_euWinder4Motor_codec);
+ euDryerMotorVelocity_.WriteTo(output, _repeated_euDryerMotorVelocity_codec);
+ euDryerMotorTargetVelocity_.WriteTo(output, _repeated_euDryerMotorTargetVelocity_codec);
+ euDryerMotorCurrent_.WriteTo(output, _repeated_euDryerMotorCurrent_codec);
+ euPullerDancer_.WriteTo(output, _repeated_euPullerDancer_codec);
+ euPullerMotor_.WriteTo(output, _repeated_euPullerMotor_codec);
+ euDryerZone1Temperature_.WriteTo(output, _repeated_euDryerZone1Temperature_codec);
+ euDryerZone2Temperature_.WriteTo(output, _repeated_euDryerZone2Temperature_codec);
+ euDryerZone3Temperature_.WriteTo(output, _repeated_euDryerZone3Temperature_codec);
+ euHeadZone1Temperature_.WriteTo(output, _repeated_euHeadZone1Temperature_codec);
+ euHeadZone2Temperature_.WriteTo(output, _repeated_euHeadZone2Temperature_codec);
+ euHeadZone3Temperature_.WriteTo(output, _repeated_euHeadZone3Temperature_codec);
+ euMixerTemperature_.WriteTo(output, _repeated_euMixerTemperature_codec);
+ euTunnelTemperature_.WriteTo(output, _repeated_euTunnelTemperature_codec);
+ euLubricantTemperature_.WriteTo(output, _repeated_euLubricantTemperature_codec);
+ euAmbientTemperature_.WriteTo(output, _repeated_euAmbientTemperature_codec);
+ euElectricalCabinetTemperature_.WriteTo(output, _repeated_euElectricalCabinetTemperature_codec);
+ euDryerZone1Current_.WriteTo(output, _repeated_euDryerZone1Current_codec);
+ euDryerZone2Current_.WriteTo(output, _repeated_euDryerZone2Current_codec);
+ euDryerZone3Current_.WriteTo(output, _repeated_euDryerZone3Current_codec);
+ euHeadZone1Current_.WriteTo(output, _repeated_euHeadZone1Current_codec);
+ euHeadZone2Current_.WriteTo(output, _repeated_euHeadZone2Current_codec);
+ euHeadZone3Current_.WriteTo(output, _repeated_euHeadZone3Current_codec);
+ euMixerCurrent_.WriteTo(output, _repeated_euMixerCurrent_codec);
+ euTunnelCurrent_.WriteTo(output, _repeated_euTunnelCurrent_codec);
+ euLubricantCurrent_.WriteTo(output, _repeated_euLubricantCurrent_codec);
+ euBtsr1Speed_.WriteTo(output, _repeated_euBtsr1Speed_codec);
+ euBtsr1SpeedAv_.WriteTo(output, _repeated_euBtsr1SpeedAv_codec);
+ euBtsr1DispAv_.WriteTo(output, _repeated_euBtsr1DispAv_codec);
+ euBtsr1PeakMin_.WriteTo(output, _repeated_euBtsr1PeakMin_codec);
+ euBtsr1PeakMax_.WriteTo(output, _repeated_euBtsr1PeakMax_codec);
+ euBtsr2Speed_.WriteTo(output, _repeated_euBtsr2Speed_codec);
+ euBtsr2SpeedAv_.WriteTo(output, _repeated_euBtsr2SpeedAv_codec);
+ euBtsr2DispAv_.WriteTo(output, _repeated_euBtsr2DispAv_codec);
+ euBtsr2PeakMin_.WriteTo(output, _repeated_euBtsr2PeakMin_codec);
+ euBtsr2PeakMax_.WriteTo(output, _repeated_euBtsr2PeakMax_codec);
+ euBtsr3Speed_.WriteTo(output, _repeated_euBtsr3Speed_codec);
+ euBtsr3SpeedAv_.WriteTo(output, _repeated_euBtsr3SpeedAv_codec);
+ euBtsr3DispAv_.WriteTo(output, _repeated_euBtsr3DispAv_codec);
+ euBtsr3PeakMin_.WriteTo(output, _repeated_euBtsr3PeakMin_codec);
+ euBtsr3PeakMax_.WriteTo(output, _repeated_euBtsr3PeakMax_codec);
+ euBtsr4Speed_.WriteTo(output, _repeated_euBtsr4Speed_codec);
+ euBtsr4SpeedAv_.WriteTo(output, _repeated_euBtsr4SpeedAv_codec);
+ euBtsr4PeakMin_.WriteTo(output, _repeated_euBtsr4PeakMin_codec);
+ euBtsr4PeakMax_.WriteTo(output, _repeated_euBtsr4PeakMax_codec);
+ euBtsr4DispAv_.WriteTo(output, _repeated_euBtsr4DispAv_codec);
+ euTemperatureLoggers_.WriteTo(output, _repeated_euTemperatureLoggers_codec);
+ euPumpFlows_.WriteTo(output, _repeated_euPumpFlows_codec);
+ euInkLinesPressure_.WriteTo(output, _repeated_euInkLinesPressure_codec);
+ euSpareDataArray_.WriteTo(output, _repeated_euSpareDataArray_codec);
+ euDispenser1Voltage_.WriteTo(output, _repeated_euDispenser1Voltage_codec);
+ euDispenser2Voltage_.WriteTo(output, _repeated_euDispenser2Voltage_codec);
+ euDispenser3Voltage_.WriteTo(output, _repeated_euDispenser3Voltage_codec);
+ euDispenser4Voltage_.WriteTo(output, _repeated_euDispenser4Voltage_codec);
+ euDispenser5Voltage_.WriteTo(output, _repeated_euDispenser5Voltage_codec);
+ euDispenser6Voltage_.WriteTo(output, _repeated_euDispenser6Voltage_codec);
+ euDispenser7Voltage_.WriteTo(output, _repeated_euDispenser7Voltage_codec);
+ euDispenser8Voltage_.WriteTo(output, _repeated_euDispenser8Voltage_codec);
+ euDispenser9Voltage_.WriteTo(output, _repeated_euDispenser9Voltage_codec);
+ euDispenser10Voltage_.WriteTo(output, _repeated_euDispenser10Voltage_codec);
+ euDispenser11Voltage_.WriteTo(output, _repeated_euDispenser11Voltage_codec);
+ euDispenser12Voltage_.WriteTo(output, _repeated_euDispenser12Voltage_codec);
+ euDispenser13Voltage_.WriteTo(output, _repeated_euDispenser13Voltage_codec);
+ euDispenser14Voltage_.WriteTo(output, _repeated_euDispenser14Voltage_codec);
+ euDispenser15Voltage_.WriteTo(output, _repeated_euDispenser15Voltage_codec);
+ euDispenser16Voltage_.WriteTo(output, _repeated_euDispenser16Voltage_codec);
+ euLubricantPumpVoltage_.WriteTo(output, _repeated_euLubricantPumpVoltage_codec);
+ euDispenser1Pressure_.WriteTo(output, _repeated_euDispenser1Pressure_codec);
+ euDispenser2Pressure_.WriteTo(output, _repeated_euDispenser2Pressure_codec);
+ euDispenser3Pressure_.WriteTo(output, _repeated_euDispenser3Pressure_codec);
+ euDispenser4Pressure_.WriteTo(output, _repeated_euDispenser4Pressure_codec);
+ euDispenser5Pressure_.WriteTo(output, _repeated_euDispenser5Pressure_codec);
+ euDispenser6Pressure_.WriteTo(output, _repeated_euDispenser6Pressure_codec);
+ euDispenser7Pressure_.WriteTo(output, _repeated_euDispenser7Pressure_codec);
+ euDispenser8Pressure_.WriteTo(output, _repeated_euDispenser8Pressure_codec);
+ euLubricantPressure_.WriteTo(output, _repeated_euLubricantPressure_codec);
+ euMidTank1Level_.WriteTo(output, _repeated_euMidTank1Level_codec);
+ euMidTank2Level_.WriteTo(output, _repeated_euMidTank2Level_codec);
+ euMidTank3Level_.WriteTo(output, _repeated_euMidTank3Level_codec);
+ euMidTank4Level_.WriteTo(output, _repeated_euMidTank4Level_codec);
+ euMidTank5Level_.WriteTo(output, _repeated_euMidTank5Level_codec);
+ euMidTank6Level_.WriteTo(output, _repeated_euMidTank6Level_codec);
+ euMidTank7Level_.WriteTo(output, _repeated_euMidTank7Level_codec);
+ euMidTank8Level_.WriteTo(output, _repeated_euMidTank8Level_codec);
+ euChillerTemperature_.WriteTo(output, _repeated_euChillerTemperature_codec);
+ euHeadRightAirFlow_.WriteTo(output, _repeated_euHeadRightAirFlow_codec);
+ euHeadLeftAirFlow_.WriteTo(output, _repeated_euHeadLeftAirFlow_codec);
+ euHeadRightVoltage_.WriteTo(output, _repeated_euHeadRightVoltage_codec);
+ euHeadLeftVoltage_.WriteTo(output, _repeated_euHeadLeftVoltage_codec);
+ euDryerAirFlow_.WriteTo(output, _repeated_euDryerAirFlow_codec);
+ euBlowerVoltage_.WriteTo(output, _repeated_euBlowerVoltage_codec);
+ euWasteLevel_.WriteTo(output, _repeated_euWasteLevel_codec);
+ euSpare1_.WriteTo(output, _repeated_euSpare1_codec);
+ euSpare2_.WriteTo(output, _repeated_euSpare2_codec);
+ euSpare3_.WriteTo(output, _repeated_euSpare3_codec);
+ euSpare4_.WriteTo(output, _repeated_euSpare4_codec);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -1838,6 +3655,109 @@ namespace Tango.PMR.Diagnostics {
size += shinkoSetValue_.CalculateSize(_repeated_shinkoSetValue_codec);
size += shinkoCurrentValue_.CalculateSize(_repeated_shinkoCurrentValue_codec);
size += totalWHSFlow_.CalculateSize(_repeated_totalWHSFlow_codec);
+ size += euWinder1Dancer_.CalculateSize(_repeated_euWinder1Dancer_codec);
+ size += euWinder2Dancer_.CalculateSize(_repeated_euWinder2Dancer_codec);
+ size += euWinder3Dancer_.CalculateSize(_repeated_euWinder3Dancer_codec);
+ size += euWinder4Dancer_.CalculateSize(_repeated_euWinder4Dancer_codec);
+ size += euWinder1Motor_.CalculateSize(_repeated_euWinder1Motor_codec);
+ size += euWinder2Motor_.CalculateSize(_repeated_euWinder2Motor_codec);
+ size += euWinder3Motor_.CalculateSize(_repeated_euWinder3Motor_codec);
+ size += euWinder4Motor_.CalculateSize(_repeated_euWinder4Motor_codec);
+ size += euDryerMotorVelocity_.CalculateSize(_repeated_euDryerMotorVelocity_codec);
+ size += euDryerMotorTargetVelocity_.CalculateSize(_repeated_euDryerMotorTargetVelocity_codec);
+ size += euDryerMotorCurrent_.CalculateSize(_repeated_euDryerMotorCurrent_codec);
+ size += euPullerDancer_.CalculateSize(_repeated_euPullerDancer_codec);
+ size += euPullerMotor_.CalculateSize(_repeated_euPullerMotor_codec);
+ size += euDryerZone1Temperature_.CalculateSize(_repeated_euDryerZone1Temperature_codec);
+ size += euDryerZone2Temperature_.CalculateSize(_repeated_euDryerZone2Temperature_codec);
+ size += euDryerZone3Temperature_.CalculateSize(_repeated_euDryerZone3Temperature_codec);
+ size += euHeadZone1Temperature_.CalculateSize(_repeated_euHeadZone1Temperature_codec);
+ size += euHeadZone2Temperature_.CalculateSize(_repeated_euHeadZone2Temperature_codec);
+ size += euHeadZone3Temperature_.CalculateSize(_repeated_euHeadZone3Temperature_codec);
+ size += euMixerTemperature_.CalculateSize(_repeated_euMixerTemperature_codec);
+ size += euTunnelTemperature_.CalculateSize(_repeated_euTunnelTemperature_codec);
+ size += euLubricantTemperature_.CalculateSize(_repeated_euLubricantTemperature_codec);
+ size += euAmbientTemperature_.CalculateSize(_repeated_euAmbientTemperature_codec);
+ size += euElectricalCabinetTemperature_.CalculateSize(_repeated_euElectricalCabinetTemperature_codec);
+ size += euDryerZone1Current_.CalculateSize(_repeated_euDryerZone1Current_codec);
+ size += euDryerZone2Current_.CalculateSize(_repeated_euDryerZone2Current_codec);
+ size += euDryerZone3Current_.CalculateSize(_repeated_euDryerZone3Current_codec);
+ size += euHeadZone1Current_.CalculateSize(_repeated_euHeadZone1Current_codec);
+ size += euHeadZone2Current_.CalculateSize(_repeated_euHeadZone2Current_codec);
+ size += euHeadZone3Current_.CalculateSize(_repeated_euHeadZone3Current_codec);
+ size += euMixerCurrent_.CalculateSize(_repeated_euMixerCurrent_codec);
+ size += euTunnelCurrent_.CalculateSize(_repeated_euTunnelCurrent_codec);
+ size += euLubricantCurrent_.CalculateSize(_repeated_euLubricantCurrent_codec);
+ size += euBtsr1Speed_.CalculateSize(_repeated_euBtsr1Speed_codec);
+ size += euBtsr1SpeedAv_.CalculateSize(_repeated_euBtsr1SpeedAv_codec);
+ size += euBtsr1DispAv_.CalculateSize(_repeated_euBtsr1DispAv_codec);
+ size += euBtsr1PeakMin_.CalculateSize(_repeated_euBtsr1PeakMin_codec);
+ size += euBtsr1PeakMax_.CalculateSize(_repeated_euBtsr1PeakMax_codec);
+ size += euBtsr2Speed_.CalculateSize(_repeated_euBtsr2Speed_codec);
+ size += euBtsr2SpeedAv_.CalculateSize(_repeated_euBtsr2SpeedAv_codec);
+ size += euBtsr2DispAv_.CalculateSize(_repeated_euBtsr2DispAv_codec);
+ size += euBtsr2PeakMin_.CalculateSize(_repeated_euBtsr2PeakMin_codec);
+ size += euBtsr2PeakMax_.CalculateSize(_repeated_euBtsr2PeakMax_codec);
+ size += euBtsr3Speed_.CalculateSize(_repeated_euBtsr3Speed_codec);
+ size += euBtsr3SpeedAv_.CalculateSize(_repeated_euBtsr3SpeedAv_codec);
+ size += euBtsr3DispAv_.CalculateSize(_repeated_euBtsr3DispAv_codec);
+ size += euBtsr3PeakMin_.CalculateSize(_repeated_euBtsr3PeakMin_codec);
+ size += euBtsr3PeakMax_.CalculateSize(_repeated_euBtsr3PeakMax_codec);
+ size += euBtsr4Speed_.CalculateSize(_repeated_euBtsr4Speed_codec);
+ size += euBtsr4SpeedAv_.CalculateSize(_repeated_euBtsr4SpeedAv_codec);
+ size += euBtsr4PeakMin_.CalculateSize(_repeated_euBtsr4PeakMin_codec);
+ size += euBtsr4PeakMax_.CalculateSize(_repeated_euBtsr4PeakMax_codec);
+ size += euBtsr4DispAv_.CalculateSize(_repeated_euBtsr4DispAv_codec);
+ size += euTemperatureLoggers_.CalculateSize(_repeated_euTemperatureLoggers_codec);
+ size += euPumpFlows_.CalculateSize(_repeated_euPumpFlows_codec);
+ size += euInkLinesPressure_.CalculateSize(_repeated_euInkLinesPressure_codec);
+ size += euSpareDataArray_.CalculateSize(_repeated_euSpareDataArray_codec);
+ size += euDispenser1Voltage_.CalculateSize(_repeated_euDispenser1Voltage_codec);
+ size += euDispenser2Voltage_.CalculateSize(_repeated_euDispenser2Voltage_codec);
+ size += euDispenser3Voltage_.CalculateSize(_repeated_euDispenser3Voltage_codec);
+ size += euDispenser4Voltage_.CalculateSize(_repeated_euDispenser4Voltage_codec);
+ size += euDispenser5Voltage_.CalculateSize(_repeated_euDispenser5Voltage_codec);
+ size += euDispenser6Voltage_.CalculateSize(_repeated_euDispenser6Voltage_codec);
+ size += euDispenser7Voltage_.CalculateSize(_repeated_euDispenser7Voltage_codec);
+ size += euDispenser8Voltage_.CalculateSize(_repeated_euDispenser8Voltage_codec);
+ size += euDispenser9Voltage_.CalculateSize(_repeated_euDispenser9Voltage_codec);
+ size += euDispenser10Voltage_.CalculateSize(_repeated_euDispenser10Voltage_codec);
+ size += euDispenser11Voltage_.CalculateSize(_repeated_euDispenser11Voltage_codec);
+ size += euDispenser12Voltage_.CalculateSize(_repeated_euDispenser12Voltage_codec);
+ size += euDispenser13Voltage_.CalculateSize(_repeated_euDispenser13Voltage_codec);
+ size += euDispenser14Voltage_.CalculateSize(_repeated_euDispenser14Voltage_codec);
+ size += euDispenser15Voltage_.CalculateSize(_repeated_euDispenser15Voltage_codec);
+ size += euDispenser16Voltage_.CalculateSize(_repeated_euDispenser16Voltage_codec);
+ size += euLubricantPumpVoltage_.CalculateSize(_repeated_euLubricantPumpVoltage_codec);
+ size += euDispenser1Pressure_.CalculateSize(_repeated_euDispenser1Pressure_codec);
+ size += euDispenser2Pressure_.CalculateSize(_repeated_euDispenser2Pressure_codec);
+ size += euDispenser3Pressure_.CalculateSize(_repeated_euDispenser3Pressure_codec);
+ size += euDispenser4Pressure_.CalculateSize(_repeated_euDispenser4Pressure_codec);
+ size += euDispenser5Pressure_.CalculateSize(_repeated_euDispenser5Pressure_codec);
+ size += euDispenser6Pressure_.CalculateSize(_repeated_euDispenser6Pressure_codec);
+ size += euDispenser7Pressure_.CalculateSize(_repeated_euDispenser7Pressure_codec);
+ size += euDispenser8Pressure_.CalculateSize(_repeated_euDispenser8Pressure_codec);
+ size += euLubricantPressure_.CalculateSize(_repeated_euLubricantPressure_codec);
+ size += euMidTank1Level_.CalculateSize(_repeated_euMidTank1Level_codec);
+ size += euMidTank2Level_.CalculateSize(_repeated_euMidTank2Level_codec);
+ size += euMidTank3Level_.CalculateSize(_repeated_euMidTank3Level_codec);
+ size += euMidTank4Level_.CalculateSize(_repeated_euMidTank4Level_codec);
+ size += euMidTank5Level_.CalculateSize(_repeated_euMidTank5Level_codec);
+ size += euMidTank6Level_.CalculateSize(_repeated_euMidTank6Level_codec);
+ size += euMidTank7Level_.CalculateSize(_repeated_euMidTank7Level_codec);
+ size += euMidTank8Level_.CalculateSize(_repeated_euMidTank8Level_codec);
+ size += euChillerTemperature_.CalculateSize(_repeated_euChillerTemperature_codec);
+ size += euHeadRightAirFlow_.CalculateSize(_repeated_euHeadRightAirFlow_codec);
+ size += euHeadLeftAirFlow_.CalculateSize(_repeated_euHeadLeftAirFlow_codec);
+ size += euHeadRightVoltage_.CalculateSize(_repeated_euHeadRightVoltage_codec);
+ size += euHeadLeftVoltage_.CalculateSize(_repeated_euHeadLeftVoltage_codec);
+ size += euDryerAirFlow_.CalculateSize(_repeated_euDryerAirFlow_codec);
+ size += euBlowerVoltage_.CalculateSize(_repeated_euBlowerVoltage_codec);
+ size += euWasteLevel_.CalculateSize(_repeated_euWasteLevel_codec);
+ size += euSpare1_.CalculateSize(_repeated_euSpare1_codec);
+ size += euSpare2_.CalculateSize(_repeated_euSpare2_codec);
+ size += euSpare3_.CalculateSize(_repeated_euSpare3_codec);
+ size += euSpare4_.CalculateSize(_repeated_euSpare4_codec);
return size;
}
@@ -1939,6 +3859,109 @@ namespace Tango.PMR.Diagnostics {
shinkoSetValue_.Add(other.shinkoSetValue_);
shinkoCurrentValue_.Add(other.shinkoCurrentValue_);
totalWHSFlow_.Add(other.totalWHSFlow_);
+ euWinder1Dancer_.Add(other.euWinder1Dancer_);
+ euWinder2Dancer_.Add(other.euWinder2Dancer_);
+ euWinder3Dancer_.Add(other.euWinder3Dancer_);
+ euWinder4Dancer_.Add(other.euWinder4Dancer_);
+ euWinder1Motor_.Add(other.euWinder1Motor_);
+ euWinder2Motor_.Add(other.euWinder2Motor_);
+ euWinder3Motor_.Add(other.euWinder3Motor_);
+ euWinder4Motor_.Add(other.euWinder4Motor_);
+ euDryerMotorVelocity_.Add(other.euDryerMotorVelocity_);
+ euDryerMotorTargetVelocity_.Add(other.euDryerMotorTargetVelocity_);
+ euDryerMotorCurrent_.Add(other.euDryerMotorCurrent_);
+ euPullerDancer_.Add(other.euPullerDancer_);
+ euPullerMotor_.Add(other.euPullerMotor_);
+ euDryerZone1Temperature_.Add(other.euDryerZone1Temperature_);
+ euDryerZone2Temperature_.Add(other.euDryerZone2Temperature_);
+ euDryerZone3Temperature_.Add(other.euDryerZone3Temperature_);
+ euHeadZone1Temperature_.Add(other.euHeadZone1Temperature_);
+ euHeadZone2Temperature_.Add(other.euHeadZone2Temperature_);
+ euHeadZone3Temperature_.Add(other.euHeadZone3Temperature_);
+ euMixerTemperature_.Add(other.euMixerTemperature_);
+ euTunnelTemperature_.Add(other.euTunnelTemperature_);
+ euLubricantTemperature_.Add(other.euLubricantTemperature_);
+ euAmbientTemperature_.Add(other.euAmbientTemperature_);
+ euElectricalCabinetTemperature_.Add(other.euElectricalCabinetTemperature_);
+ euDryerZone1Current_.Add(other.euDryerZone1Current_);
+ euDryerZone2Current_.Add(other.euDryerZone2Current_);
+ euDryerZone3Current_.Add(other.euDryerZone3Current_);
+ euHeadZone1Current_.Add(other.euHeadZone1Current_);
+ euHeadZone2Current_.Add(other.euHeadZone2Current_);
+ euHeadZone3Current_.Add(other.euHeadZone3Current_);
+ euMixerCurrent_.Add(other.euMixerCurrent_);
+ euTunnelCurrent_.Add(other.euTunnelCurrent_);
+ euLubricantCurrent_.Add(other.euLubricantCurrent_);
+ euBtsr1Speed_.Add(other.euBtsr1Speed_);
+ euBtsr1SpeedAv_.Add(other.euBtsr1SpeedAv_);
+ euBtsr1DispAv_.Add(other.euBtsr1DispAv_);
+ euBtsr1PeakMin_.Add(other.euBtsr1PeakMin_);
+ euBtsr1PeakMax_.Add(other.euBtsr1PeakMax_);
+ euBtsr2Speed_.Add(other.euBtsr2Speed_);
+ euBtsr2SpeedAv_.Add(other.euBtsr2SpeedAv_);
+ euBtsr2DispAv_.Add(other.euBtsr2DispAv_);
+ euBtsr2PeakMin_.Add(other.euBtsr2PeakMin_);
+ euBtsr2PeakMax_.Add(other.euBtsr2PeakMax_);
+ euBtsr3Speed_.Add(other.euBtsr3Speed_);
+ euBtsr3SpeedAv_.Add(other.euBtsr3SpeedAv_);
+ euBtsr3DispAv_.Add(other.euBtsr3DispAv_);
+ euBtsr3PeakMin_.Add(other.euBtsr3PeakMin_);
+ euBtsr3PeakMax_.Add(other.euBtsr3PeakMax_);
+ euBtsr4Speed_.Add(other.euBtsr4Speed_);
+ euBtsr4SpeedAv_.Add(other.euBtsr4SpeedAv_);
+ euBtsr4PeakMin_.Add(other.euBtsr4PeakMin_);
+ euBtsr4PeakMax_.Add(other.euBtsr4PeakMax_);
+ euBtsr4DispAv_.Add(other.euBtsr4DispAv_);
+ euTemperatureLoggers_.Add(other.euTemperatureLoggers_);
+ euPumpFlows_.Add(other.euPumpFlows_);
+ euInkLinesPressure_.Add(other.euInkLinesPressure_);
+ euSpareDataArray_.Add(other.euSpareDataArray_);
+ euDispenser1Voltage_.Add(other.euDispenser1Voltage_);
+ euDispenser2Voltage_.Add(other.euDispenser2Voltage_);
+ euDispenser3Voltage_.Add(other.euDispenser3Voltage_);
+ euDispenser4Voltage_.Add(other.euDispenser4Voltage_);
+ euDispenser5Voltage_.Add(other.euDispenser5Voltage_);
+ euDispenser6Voltage_.Add(other.euDispenser6Voltage_);
+ euDispenser7Voltage_.Add(other.euDispenser7Voltage_);
+ euDispenser8Voltage_.Add(other.euDispenser8Voltage_);
+ euDispenser9Voltage_.Add(other.euDispenser9Voltage_);
+ euDispenser10Voltage_.Add(other.euDispenser10Voltage_);
+ euDispenser11Voltage_.Add(other.euDispenser11Voltage_);
+ euDispenser12Voltage_.Add(other.euDispenser12Voltage_);
+ euDispenser13Voltage_.Add(other.euDispenser13Voltage_);
+ euDispenser14Voltage_.Add(other.euDispenser14Voltage_);
+ euDispenser15Voltage_.Add(other.euDispenser15Voltage_);
+ euDispenser16Voltage_.Add(other.euDispenser16Voltage_);
+ euLubricantPumpVoltage_.Add(other.euLubricantPumpVoltage_);
+ euDispenser1Pressure_.Add(other.euDispenser1Pressure_);
+ euDispenser2Pressure_.Add(other.euDispenser2Pressure_);
+ euDispenser3Pressure_.Add(other.euDispenser3Pressure_);
+ euDispenser4Pressure_.Add(other.euDispenser4Pressure_);
+ euDispenser5Pressure_.Add(other.euDispenser5Pressure_);
+ euDispenser6Pressure_.Add(other.euDispenser6Pressure_);
+ euDispenser7Pressure_.Add(other.euDispenser7Pressure_);
+ euDispenser8Pressure_.Add(other.euDispenser8Pressure_);
+ euLubricantPressure_.Add(other.euLubricantPressure_);
+ euMidTank1Level_.Add(other.euMidTank1Level_);
+ euMidTank2Level_.Add(other.euMidTank2Level_);
+ euMidTank3Level_.Add(other.euMidTank3Level_);
+ euMidTank4Level_.Add(other.euMidTank4Level_);
+ euMidTank5Level_.Add(other.euMidTank5Level_);
+ euMidTank6Level_.Add(other.euMidTank6Level_);
+ euMidTank7Level_.Add(other.euMidTank7Level_);
+ euMidTank8Level_.Add(other.euMidTank8Level_);
+ euChillerTemperature_.Add(other.euChillerTemperature_);
+ euHeadRightAirFlow_.Add(other.euHeadRightAirFlow_);
+ euHeadLeftAirFlow_.Add(other.euHeadLeftAirFlow_);
+ euHeadRightVoltage_.Add(other.euHeadRightVoltage_);
+ euHeadLeftVoltage_.Add(other.euHeadLeftVoltage_);
+ euDryerAirFlow_.Add(other.euDryerAirFlow_);
+ euBlowerVoltage_.Add(other.euBlowerVoltage_);
+ euWasteLevel_.Add(other.euWasteLevel_);
+ euSpare1_.Add(other.euSpare1_);
+ euSpare2_.Add(other.euSpare2_);
+ euSpare3_.Add(other.euSpare3_);
+ euSpare4_.Add(other.euSpare4_);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -2408,6 +4431,517 @@ namespace Tango.PMR.Diagnostics {
totalWHSFlow_.AddEntriesFrom(input, _repeated_totalWHSFlow_codec);
break;
}
+ case 754:
+ case 753: {
+ euWinder1Dancer_.AddEntriesFrom(input, _repeated_euWinder1Dancer_codec);
+ break;
+ }
+ case 762:
+ case 761: {
+ euWinder2Dancer_.AddEntriesFrom(input, _repeated_euWinder2Dancer_codec);
+ break;
+ }
+ case 770:
+ case 769: {
+ euWinder3Dancer_.AddEntriesFrom(input, _repeated_euWinder3Dancer_codec);
+ break;
+ }
+ case 778:
+ case 777: {
+ euWinder4Dancer_.AddEntriesFrom(input, _repeated_euWinder4Dancer_codec);
+ break;
+ }
+ case 786:
+ case 785: {
+ euWinder1Motor_.AddEntriesFrom(input, _repeated_euWinder1Motor_codec);
+ break;
+ }
+ case 794:
+ case 793: {
+ euWinder2Motor_.AddEntriesFrom(input, _repeated_euWinder2Motor_codec);
+ break;
+ }
+ case 802:
+ case 801: {
+ euWinder3Motor_.AddEntriesFrom(input, _repeated_euWinder3Motor_codec);
+ break;
+ }
+ case 810:
+ case 809: {
+ euWinder4Motor_.AddEntriesFrom(input, _repeated_euWinder4Motor_codec);
+ break;
+ }
+ case 818:
+ case 817: {
+ euDryerMotorVelocity_.AddEntriesFrom(input, _repeated_euDryerMotorVelocity_codec);
+ break;
+ }
+ case 826:
+ case 825: {
+ euDryerMotorTargetVelocity_.AddEntriesFrom(input, _repeated_euDryerMotorTargetVelocity_codec);
+ break;
+ }
+ case 834:
+ case 833: {
+ euDryerMotorCurrent_.AddEntriesFrom(input, _repeated_euDryerMotorCurrent_codec);
+ break;
+ }
+ case 842:
+ case 841: {
+ euPullerDancer_.AddEntriesFrom(input, _repeated_euPullerDancer_codec);
+ break;
+ }
+ case 850:
+ case 849: {
+ euPullerMotor_.AddEntriesFrom(input, _repeated_euPullerMotor_codec);
+ break;
+ }
+ case 858:
+ case 857: {
+ euDryerZone1Temperature_.AddEntriesFrom(input, _repeated_euDryerZone1Temperature_codec);
+ break;
+ }
+ case 866:
+ case 865: {
+ euDryerZone2Temperature_.AddEntriesFrom(input, _repeated_euDryerZone2Temperature_codec);
+ break;
+ }
+ case 874:
+ case 873: {
+ euDryerZone3Temperature_.AddEntriesFrom(input, _repeated_euDryerZone3Temperature_codec);
+ break;
+ }
+ case 882:
+ case 881: {
+ euHeadZone1Temperature_.AddEntriesFrom(input, _repeated_euHeadZone1Temperature_codec);
+ break;
+ }
+ case 890:
+ case 889: {
+ euHeadZone2Temperature_.AddEntriesFrom(input, _repeated_euHeadZone2Temperature_codec);
+ break;
+ }
+ case 898:
+ case 897: {
+ euHeadZone3Temperature_.AddEntriesFrom(input, _repeated_euHeadZone3Temperature_codec);
+ break;
+ }
+ case 906:
+ case 905: {
+ euMixerTemperature_.AddEntriesFrom(input, _repeated_euMixerTemperature_codec);
+ break;
+ }
+ case 914:
+ case 913: {
+ euTunnelTemperature_.AddEntriesFrom(input, _repeated_euTunnelTemperature_codec);
+ break;
+ }
+ case 922:
+ case 921: {
+ euLubricantTemperature_.AddEntriesFrom(input, _repeated_euLubricantTemperature_codec);
+ break;
+ }
+ case 930:
+ case 929: {
+ euAmbientTemperature_.AddEntriesFrom(input, _repeated_euAmbientTemperature_codec);
+ break;
+ }
+ case 938:
+ case 937: {
+ euElectricalCabinetTemperature_.AddEntriesFrom(input, _repeated_euElectricalCabinetTemperature_codec);
+ break;
+ }
+ case 946:
+ case 945: {
+ euDryerZone1Current_.AddEntriesFrom(input, _repeated_euDryerZone1Current_codec);
+ break;
+ }
+ case 954:
+ case 953: {
+ euDryerZone2Current_.AddEntriesFrom(input, _repeated_euDryerZone2Current_codec);
+ break;
+ }
+ case 962:
+ case 961: {
+ euDryerZone3Current_.AddEntriesFrom(input, _repeated_euDryerZone3Current_codec);
+ break;
+ }
+ case 970:
+ case 969: {
+ euHeadZone1Current_.AddEntriesFrom(input, _repeated_euHeadZone1Current_codec);
+ break;
+ }
+ case 978:
+ case 977: {
+ euHeadZone2Current_.AddEntriesFrom(input, _repeated_euHeadZone2Current_codec);
+ break;
+ }
+ case 986:
+ case 985: {
+ euHeadZone3Current_.AddEntriesFrom(input, _repeated_euHeadZone3Current_codec);
+ break;
+ }
+ case 994:
+ case 993: {
+ euMixerCurrent_.AddEntriesFrom(input, _repeated_euMixerCurrent_codec);
+ break;
+ }
+ case 1002:
+ case 1001: {
+ euTunnelCurrent_.AddEntriesFrom(input, _repeated_euTunnelCurrent_codec);
+ break;
+ }
+ case 1010:
+ case 1009: {
+ euLubricantCurrent_.AddEntriesFrom(input, _repeated_euLubricantCurrent_codec);
+ break;
+ }
+ case 1018:
+ case 1017: {
+ euBtsr1Speed_.AddEntriesFrom(input, _repeated_euBtsr1Speed_codec);
+ break;
+ }
+ case 1026:
+ case 1025: {
+ euBtsr1SpeedAv_.AddEntriesFrom(input, _repeated_euBtsr1SpeedAv_codec);
+ break;
+ }
+ case 1034:
+ case 1033: {
+ euBtsr1DispAv_.AddEntriesFrom(input, _repeated_euBtsr1DispAv_codec);
+ break;
+ }
+ case 1042:
+ case 1041: {
+ euBtsr1PeakMin_.AddEntriesFrom(input, _repeated_euBtsr1PeakMin_codec);
+ break;
+ }
+ case 1050:
+ case 1049: {
+ euBtsr1PeakMax_.AddEntriesFrom(input, _repeated_euBtsr1PeakMax_codec);
+ break;
+ }
+ case 1058:
+ case 1057: {
+ euBtsr2Speed_.AddEntriesFrom(input, _repeated_euBtsr2Speed_codec);
+ break;
+ }
+ case 1066:
+ case 1065: {
+ euBtsr2SpeedAv_.AddEntriesFrom(input, _repeated_euBtsr2SpeedAv_codec);
+ break;
+ }
+ case 1074:
+ case 1073: {
+ euBtsr2DispAv_.AddEntriesFrom(input, _repeated_euBtsr2DispAv_codec);
+ break;
+ }
+ case 1082:
+ case 1081: {
+ euBtsr2PeakMin_.AddEntriesFrom(input, _repeated_euBtsr2PeakMin_codec);
+ break;
+ }
+ case 1090:
+ case 1089: {
+ euBtsr2PeakMax_.AddEntriesFrom(input, _repeated_euBtsr2PeakMax_codec);
+ break;
+ }
+ case 1098:
+ case 1097: {
+ euBtsr3Speed_.AddEntriesFrom(input, _repeated_euBtsr3Speed_codec);
+ break;
+ }
+ case 1106:
+ case 1105: {
+ euBtsr3SpeedAv_.AddEntriesFrom(input, _repeated_euBtsr3SpeedAv_codec);
+ break;
+ }
+ case 1114:
+ case 1113: {
+ euBtsr3DispAv_.AddEntriesFrom(input, _repeated_euBtsr3DispAv_codec);
+ break;
+ }
+ case 1122:
+ case 1121: {
+ euBtsr3PeakMin_.AddEntriesFrom(input, _repeated_euBtsr3PeakMin_codec);
+ break;
+ }
+ case 1130:
+ case 1129: {
+ euBtsr3PeakMax_.AddEntriesFrom(input, _repeated_euBtsr3PeakMax_codec);
+ break;
+ }
+ case 1138:
+ case 1137: {
+ euBtsr4Speed_.AddEntriesFrom(input, _repeated_euBtsr4Speed_codec);
+ break;
+ }
+ case 1146:
+ case 1145: {
+ euBtsr4SpeedAv_.AddEntriesFrom(input, _repeated_euBtsr4SpeedAv_codec);
+ break;
+ }
+ case 1154:
+ case 1153: {
+ euBtsr4PeakMin_.AddEntriesFrom(input, _repeated_euBtsr4PeakMin_codec);
+ break;
+ }
+ case 1162:
+ case 1161: {
+ euBtsr4PeakMax_.AddEntriesFrom(input, _repeated_euBtsr4PeakMax_codec);
+ break;
+ }
+ case 1170:
+ case 1169: {
+ euBtsr4DispAv_.AddEntriesFrom(input, _repeated_euBtsr4DispAv_codec);
+ break;
+ }
+ case 1178: {
+ euTemperatureLoggers_.AddEntriesFrom(input, _repeated_euTemperatureLoggers_codec);
+ break;
+ }
+ case 1186: {
+ euPumpFlows_.AddEntriesFrom(input, _repeated_euPumpFlows_codec);
+ break;
+ }
+ case 1194: {
+ euInkLinesPressure_.AddEntriesFrom(input, _repeated_euInkLinesPressure_codec);
+ break;
+ }
+ case 1202: {
+ euSpareDataArray_.AddEntriesFrom(input, _repeated_euSpareDataArray_codec);
+ break;
+ }
+ case 1210:
+ case 1209: {
+ euDispenser1Voltage_.AddEntriesFrom(input, _repeated_euDispenser1Voltage_codec);
+ break;
+ }
+ case 1218:
+ case 1217: {
+ euDispenser2Voltage_.AddEntriesFrom(input, _repeated_euDispenser2Voltage_codec);
+ break;
+ }
+ case 1226:
+ case 1225: {
+ euDispenser3Voltage_.AddEntriesFrom(input, _repeated_euDispenser3Voltage_codec);
+ break;
+ }
+ case 1234:
+ case 1233: {
+ euDispenser4Voltage_.AddEntriesFrom(input, _repeated_euDispenser4Voltage_codec);
+ break;
+ }
+ case 1242:
+ case 1241: {
+ euDispenser5Voltage_.AddEntriesFrom(input, _repeated_euDispenser5Voltage_codec);
+ break;
+ }
+ case 1250:
+ case 1249: {
+ euDispenser6Voltage_.AddEntriesFrom(input, _repeated_euDispenser6Voltage_codec);
+ break;
+ }
+ case 1258:
+ case 1257: {
+ euDispenser7Voltage_.AddEntriesFrom(input, _repeated_euDispenser7Voltage_codec);
+ break;
+ }
+ case 1266:
+ case 1265: {
+ euDispenser8Voltage_.AddEntriesFrom(input, _repeated_euDispenser8Voltage_codec);
+ break;
+ }
+ case 1274:
+ case 1273: {
+ euDispenser9Voltage_.AddEntriesFrom(input, _repeated_euDispenser9Voltage_codec);
+ break;
+ }
+ case 1282:
+ case 1281: {
+ euDispenser10Voltage_.AddEntriesFrom(input, _repeated_euDispenser10Voltage_codec);
+ break;
+ }
+ case 1290:
+ case 1289: {
+ euDispenser11Voltage_.AddEntriesFrom(input, _repeated_euDispenser11Voltage_codec);
+ break;
+ }
+ case 1298:
+ case 1297: {
+ euDispenser12Voltage_.AddEntriesFrom(input, _repeated_euDispenser12Voltage_codec);
+ break;
+ }
+ case 1306:
+ case 1305: {
+ euDispenser13Voltage_.AddEntriesFrom(input, _repeated_euDispenser13Voltage_codec);
+ break;
+ }
+ case 1314:
+ case 1313: {
+ euDispenser14Voltage_.AddEntriesFrom(input, _repeated_euDispenser14Voltage_codec);
+ break;
+ }
+ case 1322:
+ case 1321: {
+ euDispenser15Voltage_.AddEntriesFrom(input, _repeated_euDispenser15Voltage_codec);
+ break;
+ }
+ case 1330:
+ case 1329: {
+ euDispenser16Voltage_.AddEntriesFrom(input, _repeated_euDispenser16Voltage_codec);
+ break;
+ }
+ case 1338:
+ case 1337: {
+ euLubricantPumpVoltage_.AddEntriesFrom(input, _repeated_euLubricantPumpVoltage_codec);
+ break;
+ }
+ case 1346:
+ case 1345: {
+ euDispenser1Pressure_.AddEntriesFrom(input, _repeated_euDispenser1Pressure_codec);
+ break;
+ }
+ case 1354:
+ case 1353: {
+ euDispenser2Pressure_.AddEntriesFrom(input, _repeated_euDispenser2Pressure_codec);
+ break;
+ }
+ case 1362:
+ case 1361: {
+ euDispenser3Pressure_.AddEntriesFrom(input, _repeated_euDispenser3Pressure_codec);
+ break;
+ }
+ case 1370:
+ case 1369: {
+ euDispenser4Pressure_.AddEntriesFrom(input, _repeated_euDispenser4Pressure_codec);
+ break;
+ }
+ case 1378:
+ case 1377: {
+ euDispenser5Pressure_.AddEntriesFrom(input, _repeated_euDispenser5Pressure_codec);
+ break;
+ }
+ case 1386:
+ case 1385: {
+ euDispenser6Pressure_.AddEntriesFrom(input, _repeated_euDispenser6Pressure_codec);
+ break;
+ }
+ case 1394:
+ case 1393: {
+ euDispenser7Pressure_.AddEntriesFrom(input, _repeated_euDispenser7Pressure_codec);
+ break;
+ }
+ case 1402:
+ case 1401: {
+ euDispenser8Pressure_.AddEntriesFrom(input, _repeated_euDispenser8Pressure_codec);
+ break;
+ }
+ case 1410:
+ case 1409: {
+ euLubricantPressure_.AddEntriesFrom(input, _repeated_euLubricantPressure_codec);
+ break;
+ }
+ case 1418:
+ case 1417: {
+ euMidTank1Level_.AddEntriesFrom(input, _repeated_euMidTank1Level_codec);
+ break;
+ }
+ case 1426:
+ case 1425: {
+ euMidTank2Level_.AddEntriesFrom(input, _repeated_euMidTank2Level_codec);
+ break;
+ }
+ case 1434:
+ case 1433: {
+ euMidTank3Level_.AddEntriesFrom(input, _repeated_euMidTank3Level_codec);
+ break;
+ }
+ case 1442:
+ case 1441: {
+ euMidTank4Level_.AddEntriesFrom(input, _repeated_euMidTank4Level_codec);
+ break;
+ }
+ case 1450:
+ case 1449: {
+ euMidTank5Level_.AddEntriesFrom(input, _repeated_euMidTank5Level_codec);
+ break;
+ }
+ case 1458:
+ case 1457: {
+ euMidTank6Level_.AddEntriesFrom(input, _repeated_euMidTank6Level_codec);
+ break;
+ }
+ case 1466:
+ case 1465: {
+ euMidTank7Level_.AddEntriesFrom(input, _repeated_euMidTank7Level_codec);
+ break;
+ }
+ case 1474:
+ case 1473: {
+ euMidTank8Level_.AddEntriesFrom(input, _repeated_euMidTank8Level_codec);
+ break;
+ }
+ case 1482:
+ case 1481: {
+ euChillerTemperature_.AddEntriesFrom(input, _repeated_euChillerTemperature_codec);
+ break;
+ }
+ case 1490:
+ case 1489: {
+ euHeadRightAirFlow_.AddEntriesFrom(input, _repeated_euHeadRightAirFlow_codec);
+ break;
+ }
+ case 1498:
+ case 1497: {
+ euHeadLeftAirFlow_.AddEntriesFrom(input, _repeated_euHeadLeftAirFlow_codec);
+ break;
+ }
+ case 1506:
+ case 1505: {
+ euHeadRightVoltage_.AddEntriesFrom(input, _repeated_euHeadRightVoltage_codec);
+ break;
+ }
+ case 1514:
+ case 1513: {
+ euHeadLeftVoltage_.AddEntriesFrom(input, _repeated_euHeadLeftVoltage_codec);
+ break;
+ }
+ case 1522:
+ case 1521: {
+ euDryerAirFlow_.AddEntriesFrom(input, _repeated_euDryerAirFlow_codec);
+ break;
+ }
+ case 1530:
+ case 1529: {
+ euBlowerVoltage_.AddEntriesFrom(input, _repeated_euBlowerVoltage_codec);
+ break;
+ }
+ case 1538:
+ case 1537: {
+ euWasteLevel_.AddEntriesFrom(input, _repeated_euWasteLevel_codec);
+ break;
+ }
+ case 1546:
+ case 1545: {
+ euSpare1_.AddEntriesFrom(input, _repeated_euSpare1_codec);
+ break;
+ }
+ case 1554:
+ case 1553: {
+ euSpare2_.AddEntriesFrom(input, _repeated_euSpare2_codec);
+ break;
+ }
+ case 1562:
+ case 1561: {
+ euSpare3_.AddEntriesFrom(input, _repeated_euSpare3_codec);
+ break;
+ }
+ case 1570:
+ case 1569: {
+ euSpare4_.AddEntriesFrom(input, _repeated_euSpare4_codec);
+ break;
+ }
}
}
}
diff --git a/Software/Visual_Studio/Tango.PMR/Diagnostics/EventType.cs b/Software/Visual_Studio/Tango.PMR/Diagnostics/EventType.cs
index 0da337cdc..8c490af74 100644
--- a/Software/Visual_Studio/Tango.PMR/Diagnostics/EventType.cs
+++ b/Software/Visual_Studio/Tango.PMR/Diagnostics/EventType.cs
@@ -22,320 +22,507 @@ namespace Tango.PMR.Diagnostics {
static EventTypeReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
- "Cg9FdmVudFR5cGUucHJvdG8SFVRhbmdvLlBNUi5EaWFnbm9zdGljcyrFbQoJ",
- "RXZlbnRUeXBlEggKBE5vbmUQABIRCgxSRVFVRVNUX1NFTlQQ6AcSFgoRUkVT",
- "UE9OU0VfUkVDRUlWRUQQ6QcSEwoOUkVRVUVTVF9GQUlMRUQQ6gcSGgoVQVBQ",
- "TElDQVRJT05fRVhDRVBUSU9OEOsHEhwKF0FQUExJQ0FUSU9OX0lORk9STUFU",
- "SU9OEOwHEhgKE0FQUExJQ0FUSU9OX1NUQVJURUQQ7QcSGwoWQVBQTElDQVRJ",
- "T05fVEVSTUlOQVRFRBDuBxIWChFSRUNPUkRJTkdfU1RBUlRFRBDvBxIWChFS",
- "RUNPUkRJTkdfU1RPUFBFRBDwBxIPCgpKT0JfU1RBVFVTEPEHEhAKC0pPQl9T",
- "VEFSVEVEEPIHEhAKC0pPQl9BQk9SVEVEEPMHEg8KCkpPQl9GQUlMRUQQ9AcS",
- "EgoNSk9CX0NPTVBMRVRFRBD1BxIZChRQT1dFUl9VUF9CSVRfRkFJTFVSRRDQ",
- "DxIiCh1FTUVSR0VOQ1lfUFVTSF9CVVRUT05fUFJFU1NFRBDRDxIXChJGUk9O",
- "VF9DT1ZFUl8xX09QRU4Q0g8SFwoSRlJPTlRfQ09WRVJfMl9PUEVOENMPEhcK",
- "EkZST05UX0NPVkVSXzNfT1BFThDUDxIXChJGUk9OVF9DT1ZFUl80X09QRU4Q",
- "1Q8SGgoVQ0FSVFJJREdFU19DT1ZFUl9PUEVOENYPEhQKD0FSQ0hfQ09WRVJf",
- "T1BFThDXDxIlCiBNQUNISU5FX0lOVEVSTkFMX09WRVJURU1QRVJBVFVSRRDY",
- "DxIdChhNQUNISU5FX0ZBTlNfUlBNX1RPT19MT1cQ2Q8SGQoUTUFDSElORV9G",
- "QU5TX1NUT1BQRUQQ2g8SKAojRUxFQ1RSSUNBTF9DQUJJTkVUX0ZBTlNfUlBN",
- "X1RPT19MT1cQ2w8SJAofRUxFQ1RSSUNBTF9DQUJJTkVUX0ZBTlNfU1RPUFBF",
- "RBDcDxIeChlNQUNISU5FX1NUQVRFX05PX0NGR19GSUxFEN0PEiMKHk1BQ0hJ",
- "TkVfU1RBVEVfSFdfQ09ORklHX0ZBSUxFRBDeDxIoCiNNQUNISU5FX1NUQVRF",
- "X0lOSVRJQUxfQkxPV0VSX0ZBSUxFRBDfDxIQCgtVTlNQRUNJRklFRBDgDxIn",
- "CiJNQUNISU5FX0lOVEVSTkFMX09WRVJURU1QRVJBVFVSRV8yEOEPEicKIkVM",
- "RUNUUklDQUxfQ0FCSU5FVF9PVkVSVEVNUEVSQVRVUkUQ4g8SHAoXRlBHQV9X",
- "QVRDSERPR19BQ1RJVkFURUQQ4w8SFQoQVU5JTlRFTkRFRF9SRVNFVBDkDxIi",
- "Ch1URU1QRVJBVFVSRV9NRUFTVVJFTUVOVF9FUlJPUhDlDxIlCiBSRklEX1JF",
- "QURFUl9NQUxGVU5DVElPTl9JTktfU0xPVBDmDxIpCiRSRklEX1JFQURFUl9N",
- "QUxGVU5DVElPTl9XQVNURV9TTE9UXzEQ5w8SKQokUkZJRF9SRUFERVJfTUFM",
- "RlVOQ1RJT05fV0FTVEVfU0xPVF8yEOgPEhEKDFRIUkVBRF9CUkVBSxC4FxIx",
- "CixUSFJFQURfVEVOU0lPTl9DT05UUk9MX0ZBSUxVUkVfRkVFREVSX0RBTkNF",
- "UhC5FxIfChpXSU5ERVJfQ09ORV9ET0VTX05PVF9FWElTVBC6FxIdChhGRUVE",
- "RVJfTU9UT1JfTUFMRlVOQ1RJT04QuxcSIwoeUklHSFRfTE9BREVSX01PVE9S",
- "X01BTEZVTkNUSU9OELwXEh0KGFBVTExFUl9NT1RPUl9NQUxGVU5DVElPThC9",
- "FxIiCh1MRUZUX0xPQURFUl9NT1RPUl9NQUxGVU5DVElPThC+FxIdChhXSU5E",
- "RVJfTU9UT1JfTUFMRlVOQ1RJT04QvxcSHAoXU0NSRVdfTU9UT1JfTUFMRlVO",
- "Q1RJT04QwBcSIgodTE9BRElOR19BUk1fTU9UT1JfTUFMRlVOQ1RJT04QwRcS",
- "IQocRkVFREVSX01PVE9SX09WRVJURU1QRVJBVFVSRRDCFxInCiJSSUdIVF9M",
- "T0FERVJfTU9UT1JfT1ZFUlRFTVBFUkFUVVJFEMMXEiEKHFBVTExFUl9NT1RP",
- "Ul9PVkVSVEVNUEVSQVRVUkUQxBcSJgohTEVGVF9MT0FERVJfTU9UT1JfT1ZF",
- "UlRFTVBFUkFUVVJFEMUXEiEKHFdJTkRFUl9NT1RPUl9PVkVSVEVNUEVSQVRV",
- "UkUQxhcSIAobU0NSRVdfTU9UT1JfT1ZFUlRFTVBFUkFUVVJFEMcXEiYKIUxP",
- "QURJTkdfQVJNX01PVE9SX09WRVJURU1QRVJBVFVSRRDIFxIXChJGRUVERVJf",
- "TU9UT1JfU1RBTEwQyRcSHQoYUklHSFRfTE9BREVSX01PVE9SX1NUQUxMEMoX",
- "EhcKElBVTExFUl9NT1RPUl9TVEFMTBDLFxIcChdMRUZUX0xPQURFUl9NT1RP",
- "Ul9TVEFMTBDMFxIXChJXSU5ERVJfTU9UT1JfU1RBTEwQzRcSFgoRU0NSRVdf",
- "TU9UT1JfU1RBTEwQzhcSHAoXTE9BRElOR19BUk1fTU9UT1JfU1RBTEwQzxcS",
- "HgoZRkVFREVSX01PVE9SX1VOREVSVk9MVEFHRRDQFxIkCh9SSUdIVF9MT0FE",
- "RVJfTU9UT1JfVU5ERVJWT0xUQUdFENEXEh4KGVBVTExFUl9NT1RPUl9VTkRF",
- "UlZPTFRBR0UQ0hcSIwoeTEVGVF9MT0FERVJfTU9UT1JfVU5ERVJWT0xUQUdF",
- "ENMXEh4KGVdJTkRFUl9NT1RPUl9VTkRFUlZPTFRBR0UQ1BcSHQoYU0NSRVdf",
- "TU9UT1JfVU5ERVJWT0xUQUdFENUXEiMKHkxPQURJTkdfQVJNX01PVE9SX1VO",
- "REVSVk9MVEFHRRDWFxIUCg9MVEZVX1VQX1RJTUVPVVQQ1xcSFgoRTFRGVV9E",
- "T1dOX1RJTUVPVVQQ2BcSFAoPUlRGVV9VUF9USU1FT1VUENkXEhYKEVJURlVf",
- "RE9XTl9USU1FT1VUENoXEh4KGVNDUkVXX01PVE9SX0xJTUlUX1RJTUVPVVQQ",
- "2xcSJAofV0lOREVSX0RBTkNFUl9NT1RPUl9NQUxGVU5DVElPThDcFxIkCh9Q",
- "VUxMRVJfREFOQ0VSX01PVE9SX01BTEZVTkNUSU9OEN0XEiQKH0ZFRURFUl9E",
- "QU5DRVJfTU9UT1JfTUFMRlVOQ1RJT04Q3hcSKAojV0lOREVSX0RBTkNFUl9N",
- "T1RPUl9PVkVSVEVNUEVSQVRVUkUQ3xcSKAojUFVMTEVSX0RBTkNFUl9NT1RP",
- "Ul9PVkVSVEVNUEVSQVRVUkUQ4BcSKAojRkVFREVSX0RBTkNFUl9NT1RPUl9P",
- "VkVSVEVNUEVSQVRVUkUQ4RcSHgoZV0lOREVSX0RBTkNFUl9NT1RPUl9TVEFM",
- "TBDiFxIeChlQVUxMRVJfREFOQ0VSX01PVE9SX1NUQUxMEOMXEh4KGUZFRURF",
- "Ul9EQU5DRVJfTU9UT1JfU1RBTEwQ5BcSJQogV0lOREVSX0RBTkNFUl9NT1RP",
- "Ul9VTkRFUlZPTFRBR0UQ5RcSJQogUFVMTEVSX0RBTkNFUl9NT1RPUl9VTkRF",
- "UlZPTFRBR0UQ5hcSJQogRkVFREVSX0RBTkNFUl9NT1RPUl9VTkRFUlZPTFRB",
- "R0UQ5xcSMQosVEhSRUFEX1RFTlNJT05fQ09OVFJPTF9GQUlMVVJFX1BVTExF",
- "Ul9EQU5DRVIQ6BcSMQosVEhSRUFEX1RFTlNJT05fQ09OVFJPTF9GQUlMVVJF",
- "X1dJTkRFUl9EQU5DRVIQ6RcSJQogTUFDSElORV9TVEFURV9OT19USFJFQURf",
- "REVURUNURUQQ6hcSGQoUVEhSRUFEX0xPQURJTkdfRVJST1IQ6xcSHwoaTk9f",
- "Q09NTVVOSUNBVElPTl9XSVRIX0JUU1IQ7BcSFQoQQlRTUl9NQUxGVU5DVElP",
- "ThDtFxIhChxURU5TSU9OX0lOX0JUU1JfT1VUX09GX1JBTkdFEO4XEhgKE0dS",
- "SVBQRVJfTUFMRlVOQ1RJT04Q7xcSHAoXRFJZRVJfTU9UT1JfTUFMRlVOQ1RJ",
- "T04QoB8SIAobRFJZRVJfTU9UT1JfT1ZFUlRFTVBFUkFUVVJFEKEfEhYKEURS",
- "WUVSX01PVE9SX1NUQUxMEKIfEh0KGERSWUVSX01PVE9SX1VOREVSVk9MVEFH",
- "RRCjHxIUCg9EUllFUl9ET09SX09QRU4QpB8SIQocRFJZRVJfWk9ORV8xX09W",
- "RVJURU1QRVJBVFVSRRClHxIhChxEUllFUl9aT05FXzJfT1ZFUlRFTVBFUkFU",
- "VVJFEKYfEiQKH0RSWUVSX1pPTkVfMV9VTkRFUlRFTVBFUkFUVVJFX0EQpx8S",
- "JAofRFJZRVJfWk9ORV8xX1VOREVSVEVNUEVSQVRVUkVfQhCoHxIkCh9EUllF",
- "Ul9aT05FXzJfVU5ERVJURU1QRVJBVFVSRV9CEKkfEhkKFERSWUVSX1RIRVJN",
- "QUxfQ1VUT0ZGEKofEi4KKURSWUVSX0hFQVRFUlNfWk9ORV8xX0NVUlJFTlRf",
- "T1VUX09GX1JBTkdFEKsfEi4KKURSWUVSX0hFQVRFUlNfWk9ORV8yX0NVUlJF",
- "TlRfT1VUX09GX1JBTkdFEKwfEiwKJ0RSWUVSX0hFQVRFUlNfWk9ORV8xX0NV",
- "UlJFTlRfTE9PUF9CUkVBSxCtHxIsCidEUllFUl9IRUFURVJTX1pPTkVfMl9D",
- "VVJSRU5UX0xPT1BfQlJFQUsQrh8SGgoVRFJZRVJfRkFOX1JQTV9UT09fTE9X",
- "EK8fEhYKEURSWUVSX0ZBTl9TVE9QUEVEELAfEiAKG0RSWUVSX0xJRF9NT1RP",
- "Ul9NQUxGVU5DVElPThCxHxIkCh9EUllFUl9MSURfTU9UT1JfT1ZFUlRFTVBF",
- "UkFUVVJFELIfEhoKFURSWUVSX0xJRF9NT1RPUl9TVEFMTBCzHxIhChxEUllF",
- "Ul9MSURfTU9UT1JfVU5ERVJWT0xUQUdFELQfEiQKH0RSWUVSX1pPTkVfMl9V",
- "TkRFUlRFTVBFUkFUVVJFX0EQtR8SJwoiRFlFSU5HX0hFQURfWk9ORV8xX09W",
- "RVJURU1QRVJBVFVSRRCIJxInCiJEWUVJTkdfSEVBRF9aT05FXzJfT1ZFUlRF",
- "TVBFUkFUVVJFEIknEicKIkRZRUlOR19IRUFEX1pPTkVfM19PVkVSVEVNUEVS",
- "QVRVUkUQiicSJwoiRFlFSU5HX0hFQURfWk9ORV80X09WRVJURU1QRVJBVFVS",
- "RRCLJxInCiJEWUVJTkdfSEVBRF9aT05FXzVfT1ZFUlRFTVBFUkFUVVJFEIwn",
- "EicKIkRZRUlOR19IRUFEX1pPTkVfNl9PVkVSVEVNUEVSQVRVUkUQjScSKgol",
- "RFlFSU5HX0hFQURfWk9ORV8xX1VOREVSVEVNUEVSQVRVUkVfQRCOJxIqCiVE",
- "WUVJTkdfSEVBRF9aT05FXzJfVU5ERVJURU1QRVJBVFVSRV9BEI8nEioKJURZ",
- "RUlOR19IRUFEX1pPTkVfM19VTkRFUlRFTVBFUkFUVVJFX0EQkCcSKgolRFlF",
- "SU5HX0hFQURfWk9ORV80X1VOREVSVEVNUEVSQVRVUkVfQRCRJxIqCiVEWUVJ",
- "TkdfSEVBRF9aT05FXzVfVU5ERVJURU1QRVJBVFVSRV9BEJInEioKJURZRUlO",
- "R19IRUFEX1pPTkVfNl9VTkRFUlRFTVBFUkFUVVJFX0EQkycSKgolRFlFSU5H",
- "X0hFQURfWk9ORV8xX1VOREVSVEVNUEVSQVRVUkVfQhCUJxIqCiVEWUVJTkdf",
- "SEVBRF9aT05FXzJfVU5ERVJURU1QRVJBVFVSRV9CEJUnEioKJURZRUlOR19I",
- "RUFEX1pPTkVfM19VTkRFUlRFTVBFUkFUVVJFX0IQlicSKgolRFlFSU5HX0hF",
- "QURfWk9ORV80X1VOREVSVEVNUEVSQVRVUkVfQhCXJxIqCiVEWUVJTkdfSEVB",
- "RF9aT05FXzVfVU5ERVJURU1QRVJBVFVSRV9CEJgnEioKJURZRUlOR19IRUFE",
- "X1pPTkVfNl9VTkRFUlRFTVBFUkFUVVJFX0IQmScSLAonRFlFSU5HX0hFQURf",
- "Wk9ORV8xX0NVUlJFTlRfT1VUX09GX1JBTkdFEJonEiwKJ0RZRUlOR19IRUFE",
- "X1pPTkVfMl9DVVJSRU5UX09VVF9PRl9SQU5HRRCbJxIsCidEWUVJTkdfSEVB",
- "RF9aT05FXzNfQ1VSUkVOVF9PVVRfT0ZfUkFOR0UQnCcSLAonRFlFSU5HX0hF",
- "QURfWk9ORV80X0NVUlJFTlRfT1VUX09GX1JBTkdFEJ0nEiwKJ0RZRUlOR19I",
- "RUFEX1pPTkVfNV9DVVJSRU5UX09VVF9PRl9SQU5HRRCeJxIqCiVEWUVJTkdf",
- "SEVBRF9aT05FXzFfQ1VSUkVOVF9MT09QX0JSRUFLEJ8nEioKJURZRUlOR19I",
- "RUFEX1pPTkVfMl9DVVJSRU5UX0xPT1BfQlJFQUsQoCcSKgolRFlFSU5HX0hF",
- "QURfWk9ORV8zX0NVUlJFTlRfTE9PUF9CUkVBSxChJxIqCiVEWUVJTkdfSEVB",
- "RF9aT05FXzRfQ1VSUkVOVF9MT09QX0JSRUFLEKInEioKJURZRUlOR19IRUFE",
- "X1pPTkVfNV9DVVJSRU5UX0xPT1BfQlJFQUsQoycSHwoaRFlFSU5HX0hFQURf",
- "VEhFUk1BTF9DVVRPRkYQpCcSIwoeRFlFSU5HX0hFQURfQ09WRVJfT1BFTl9U",
- "SU1FT1VUEKUnEiQKH0RZRUlOR19IRUFEX0NPVkVSX0NMT1NFX1RJTUVPVVQQ",
- "picSKAojRFlFSU5HX0hFQURfQ09WRVJfTU9UT1JfTUFMRlVOQ1RJT04QpycS",
- "LAonRFlFSU5HX0hFQURfQ09WRVJfTU9UT1JfT1ZFUlRFTVBFUkFUVVJFEKgn",
- "EiIKHURZRUlOR19IRUFEX0NPVkVSX01PVE9SX1NUQUxMEKknEikKJERZRUlO",
- "R19IRUFEX0NPVkVSX01PVE9SX1VOREVSVk9MVEFHRRCqJxI1CjBEWUVJTkdf",
- "SEVBRF9DTEVBTklOR19NRUNIQU5JU01fTU9UT1JfTUFMRlVOQ1RJT04QqycS",
- "OQo0RFlFSU5HX0hFQURfQ0xFQU5JTkdfTUVDSEFOSVNNX01PVE9SX09WRVJU",
- "RU1QRVJBVFVSRRCsJxIvCipEWUVJTkdfSEVBRF9DTEVBTklOR19NRUNIQU5J",
- "U01fTU9UT1JfU1RBTEwQrScSNgoxRFlFSU5HX0hFQURfQ0xFQU5JTkdfTUVD",
- "SEFOSVNNX01PVE9SX1VOREVSVk9MVEFHRRCuJxIwCitEWUVJTkdfSEVBRF9D",
- "TEVBTklOR19IRUFEX01PVE9SX01BTEZVTkNUSU9OEK8nEjQKL0RZRUlOR19I",
- "RUFEX0NMRUFOSU5HX0hFQURfTU9UT1JfT1ZFUlRFTVBFUkFUVVJFELAnEioK",
- "JURZRUlOR19IRUFEX0NMRUFOSU5HX0hFQURfTU9UT1JfU1RBTEwQsScSMQos",
- "RFlFSU5HX0hFQURfQ0xFQU5JTkdfSEVBRF9NT1RPUl9VTkRFUlZPTFRBR0UQ",
- "sicSJwoiRFlFSU5HX0hFQURfWk9ORV83X09WRVJURU1QRVJBVFVSRRCzJxIn",
- "CiJEWUVJTkdfSEVBRF9aT05FXzhfT1ZFUlRFTVBFUkFUVVJFELQnEicKIkRZ",
- "RUlOR19IRUFEX1pPTkVfOV9PVkVSVEVNUEVSQVRVUkUQtScSKAojRFlFSU5H",
- "X0hFQURfWk9ORV8xMF9PVkVSVEVNUEVSQVRVUkUQticSKAojRFlFSU5HX0hF",
- "QURfWk9ORV8xMV9PVkVSVEVNUEVSQVRVUkUQtycSKAojRFlFSU5HX0hFQURf",
- "Wk9ORV8xMl9PVkVSVEVNUEVSQVRVUkUQuCcSKgolRFlFSU5HX0hFQURfWk9O",
- "RV83X1VOREVSVEVNUEVSQVRVUkVfQRC5JxIqCiVEWUVJTkdfSEVBRF9aT05F",
- "XzhfVU5ERVJURU1QRVJBVFVSRV9BELonEioKJURZRUlOR19IRUFEX1pPTkVf",
- "OV9VTkRFUlRFTVBFUkFUVVJFX0EQuycSKwomRFlFSU5HX0hFQURfWk9ORV8x",
- "MF9VTkRFUlRFTVBFUkFUVVJFX0EQvCcSKwomRFlFSU5HX0hFQURfWk9ORV8x",
- "MV9VTkRFUlRFTVBFUkFUVVJFX0EQvScSKwomRFlFSU5HX0hFQURfWk9ORV8x",
- "Ml9VTkRFUlRFTVBFUkFUVVJFX0EQvicSKgolRFlFSU5HX0hFQURfWk9ORV83",
- "X1VOREVSVEVNUEVSQVRVUkVfQhC/JxIqCiVEWUVJTkdfSEVBRF9aT05FXzhf",
- "VU5ERVJURU1QRVJBVFVSRV9CEMAnEioKJURZRUlOR19IRUFEX1pPTkVfOV9V",
- "TkRFUlRFTVBFUkFUVVJFX0IQwScSKwomRFlFSU5HX0hFQURfWk9ORV8xMF9V",
- "TkRFUlRFTVBFUkFUVVJFX0IQwicSKwomRFlFSU5HX0hFQURfWk9ORV8xMV9V",
- "TkRFUlRFTVBFUkFUVVJFX0IQwycSKwomRFlFSU5HX0hFQURfWk9ORV8xMl9V",
- "TkRFUlRFTVBFUkFUVVJFX0IQxCcSLAonRFlFSU5HX0hFQURfWk9ORV82X0NV",
- "UlJFTlRfT1VUX09GX1JBTkdFEMUnEiwKJ0RZRUlOR19IRUFEX1pPTkVfN19D",
- "VVJSRU5UX09VVF9PRl9SQU5HRRDGJxIsCidEWUVJTkdfSEVBRF9aT05FXzhf",
- "Q1VSUkVOVF9PVVRfT0ZfUkFOR0UQxycSLAonRFlFSU5HX0hFQURfWk9ORV85",
- "X0NVUlJFTlRfT1VUX09GX1JBTkdFEMgnEi0KKERZRUlOR19IRUFEX1pPTkVf",
- "MTBfQ1VSUkVOVF9PVVRfT0ZfUkFOR0UQyScSLQooRFlFSU5HX0hFQURfWk9O",
- "RV8xMV9DVVJSRU5UX09VVF9PRl9SQU5HRRDKJxItCihEWUVJTkdfSEVBRF9a",
- "T05FXzEyX0NVUlJFTlRfT1VUX09GX1JBTkdFEMsnEioKJURZRUlOR19IRUFE",
- "X1pPTkVfNl9DVVJSRU5UX0xPT1BfQlJFQUsQzCcSKgolRFlFSU5HX0hFQURf",
- "Wk9ORV83X0NVUlJFTlRfTE9PUF9CUkVBSxDNJxIqCiVEWUVJTkdfSEVBRF9a",
- "T05FXzhfQ1VSUkVOVF9MT09QX0JSRUFLEM4nEioKJURZRUlOR19IRUFEX1pP",
- "TkVfOV9DVVJSRU5UX0xPT1BfQlJFQUsQzycSKwomRFlFSU5HX0hFQURfWk9O",
- "RV8xMF9DVVJSRU5UX0xPT1BfQlJFQUsQ0CcSKwomRFlFSU5HX0hFQURfWk9O",
- "RV8xMV9DVVJSRU5UX0xPT1BfQlJFQUsQ0ScSKwomRFlFSU5HX0hFQURfWk9O",
- "RV8xMl9DVVJSRU5UX0xPT1BfQlJFQUsQ0icSKQokRFlFSU5HX0hFQURfQkxP",
- "V0VSXzFfT1ZFUlRFTVBFUkFUVVJFENMnEikKJERZRUlOR19IRUFEX0JMT1dF",
- "Ul8yX09WRVJURU1QRVJBVFVSRRDUJxIsCidEWUVJTkdfSEVBRF9CTE9XRVJf",
- "MV9VTkRFUlRFTVBFUkFUVVJFX0EQ1ScSLAonRFlFSU5HX0hFQURfQkxPV0VS",
- "XzJfVU5ERVJURU1QRVJBVFVSRV9BENYnEiwKJ0RZRUlOR19IRUFEX0JMT1dF",
- "Ul8xX1VOREVSVEVNUEVSQVRVUkVfQhDXJxIsCidEWUVJTkdfSEVBRF9CTE9X",
- "RVJfMl9VTkRFUlRFTVBFUkFUVVJFX0IQ2CcSLgopRFlFSU5HX0hFQURfQkxP",
- "V0VSXzFfQ1VSUkVOVF9PVVRfT0ZfUkFOR0UQ2ScSLgopRFlFSU5HX0hFQURf",
- "QkxPV0VSXzJfQ1VSUkVOVF9PVVRfT0ZfUkFOR0UQ2icSLAonRFlFSU5HX0hF",
- "QURfQkxPV0VSXzFfQ1VSUkVOVF9MT09QX0JSRUFLENsnEiwKJ0RZRUlOR19I",
- "RUFEX0JMT1dFUl8yX0NVUlJFTlRfTE9PUF9CUkVBSxDcJxIlCiBEWUVJTkdf",
- "SEVBRF9CTE9XRVJfMV9GQU5fU1RPUFBFRBDdJxIlCiBEWUVJTkdfSEVBRF9C",
- "TE9XRVJfMl9GQU5fU1RPUFBFRBDeJxIpCiREWUVJTkdfSEVBRF9CTE9XRVJf",
- "MV9GQU5fUlBNX1RPT19MT1cQ3ycSKQokRFlFSU5HX0hFQURfQkxPV0VSXzJf",
- "RkFOX1JQTV9UT09fTE9XEOAnEioKJURZRUlOR19IRUFEX1JJR0hUX0FDVFVB",
- "VE9SX1VQX1RJTUVPVVQQ4ScSKQokRFlFSU5HX0hFQURfTEVGVF9BQ1RVQVRP",
- "Ul9VUF9USU1FT1VUEOInEiwKJ0RZRUlOR19IRUFEX1JJR0hUX0FDVFVBVE9S",
- "X0RPV05fVElNRU9VVBDjJxIrCiZEWUVJTkdfSEVBRF9MRUZUX0FDVFVBVE9S",
- "X0RPV05fVElNRU9VVBDkJxInCiJEWUVJTkdfSEVBRF9CTE9XRVJfMV9GTE9X",
- "X1RPT19ISUdIEOUnEicKIkRZRUlOR19IRUFEX0JMT1dFUl8yX0ZMT1dfVE9P",
- "X0hJR0gQ5icSJgohRFlFSU5HX0hFQURfQkxPV0VSXzFfRkxPV19UT09fTE9X",
- "EOcnEiYKIURZRUlOR19IRUFEX0JMT1dFUl8yX0ZMT1dfVE9PX0xPVxDoJxIg",
- "ChtEWUVJTkdfSEVBRF9BUkNfTElEX0lTX09QRU4Q6ScSIwoeRFlFSU5HX0hF",
- "QURfVFVOTkVMX0xJRF9JU19PUEVOEOonEh4KGURZRUlOR19IRUFEX0NPVkVS",
- "X0lTX09QRU4Q6ycSGgoVTUlYRVJfT1ZFUlRFTVBFUkFUVVJFEPAuEh0KGE1J",
- "WEVSX1VOREVSVEVNUEVSQVRVUkVfQRDxLhIdChhNSVhFUl9VTkRFUlRFTVBF",
- "UkFUVVJFX0IQ8i4SGQoUTUlYRVJfVEhFUk1BTF9DVVRPRkYQ8y4SHwoaTUlY",
- "RVJfQ1VSUkVOVF9PVVRfT0ZfUkFOR0UQ9C4SHQoYTUlYRVJfQ1VSUkVOVF9M",
- "T09QX0JSRUFLEPUuEh0KGERJU1BFTlNFUl8xX09WRVJQUkVTU1VSRRDYNhId",
- "ChhESVNQRU5TRVJfMl9PVkVSUFJFU1NVUkUQ2TYSHQoYRElTUEVOU0VSXzNf",
- "T1ZFUlBSRVNTVVJFENo2Eh0KGERJU1BFTlNFUl80X09WRVJQUkVTU1VSRRDb",
- "NhIdChhESVNQRU5TRVJfNV9PVkVSUFJFU1NVUkUQ3DYSHQoYRElTUEVOU0VS",
- "XzZfT1ZFUlBSRVNTVVJFEN02Eh0KGERJU1BFTlNFUl83X09WRVJQUkVTU1VS",
- "RRDeNhIdChhESVNQRU5TRVJfOF9PVkVSUFJFU1NVUkUQ3zYSHgoZRElTUEVO",
- "U0VSXzFfVU5ERVJQUkVTU1VSRRDgNhIeChlESVNQRU5TRVJfMl9VTkRFUlBS",
- "RVNTVVJFEOE2Eh4KGURJU1BFTlNFUl8zX1VOREVSUFJFU1NVUkUQ4jYSHgoZ",
- "RElTUEVOU0VSXzRfVU5ERVJQUkVTU1VSRRDjNhIeChlESVNQRU5TRVJfNV9V",
- "TkRFUlBSRVNTVVJFEOQ2Eh4KGURJU1BFTlNFUl82X1VOREVSUFJFU1NVUkUQ",
- "5TYSHgoZRElTUEVOU0VSXzdfVU5ERVJQUkVTU1VSRRDmNhIeChlESVNQRU5T",
- "RVJfOF9VTkRFUlBSRVNTVVJFEOc2EhYKEURJU1BFTlNFUl8xX0VNUFRZEOg2",
- "EhYKEURJU1BFTlNFUl8yX0VNUFRZEOk2EhYKEURJU1BFTlNFUl8zX0VNUFRZ",
- "EOo2EhYKEURJU1BFTlNFUl80X0VNUFRZEOs2EhYKEURJU1BFTlNFUl81X0VN",
- "UFRZEOw2EhYKEURJU1BFTlNFUl82X0VNUFRZEO02EhYKEURJU1BFTlNFUl83",
- "X0VNUFRZEO42EhYKEURJU1BFTlNFUl84X0VNUFRZEO82Eh8KGkRJU1BFTlNF",
- "Ul8xX1JFRklMTF9GQUlMVVJFEPA2Eh8KGkRJU1BFTlNFUl8yX1JFRklMTF9G",
- "QUlMVVJFEPE2Eh8KGkRJU1BFTlNFUl8zX1JFRklMTF9GQUlMVVJFEPI2Eh8K",
- "GkRJU1BFTlNFUl80X1JFRklMTF9GQUlMVVJFEPM2Eh8KGkRJU1BFTlNFUl81",
- "X1JFRklMTF9GQUlMVVJFEPQ2Eh8KGkRJU1BFTlNFUl82X1JFRklMTF9GQUlM",
- "VVJFEPU2Eh8KGkRJU1BFTlNFUl83X1JFRklMTF9GQUlMVVJFEPY2Eh8KGkRJ",
- "U1BFTlNFUl84X1JFRklMTF9GQUlMVVJFEPc2EiIKHURJU1BFTlNFUl8xX01P",
- "VE9SX01BTEZVTkNUSU9OEPg2EiIKHURJU1BFTlNFUl8yX01PVE9SX01BTEZV",
- "TkNUSU9OEPk2EiIKHURJU1BFTlNFUl8zX01PVE9SX01BTEZVTkNUSU9OEPo2",
- "EiIKHURJU1BFTlNFUl80X01PVE9SX01BTEZVTkNUSU9OEPs2EiIKHURJU1BF",
- "TlNFUl81X01PVE9SX01BTEZVTkNUSU9OEPw2EiIKHURJU1BFTlNFUl82X01P",
- "VE9SX01BTEZVTkNUSU9OEP02EiIKHURJU1BFTlNFUl83X01PVE9SX01BTEZV",
- "TkNUSU9OEP42EiIKHURJU1BFTlNFUl84X01PVE9SX01BTEZVTkNUSU9OEP82",
- "EiYKIURJU1BFTlNFUl8xX01PVE9SX09WRVJURU1QRVJBVFVSRRCANxImCiFE",
- "SVNQRU5TRVJfMl9NT1RPUl9PVkVSVEVNUEVSQVRVUkUQgTcSJgohRElTUEVO",
- "U0VSXzNfTU9UT1JfT1ZFUlRFTVBFUkFUVVJFEII3EiYKIURJU1BFTlNFUl80",
- "X01PVE9SX09WRVJURU1QRVJBVFVSRRCDNxImCiFESVNQRU5TRVJfNV9NT1RP",
- "Ul9PVkVSVEVNUEVSQVRVUkUQhDcSJgohRElTUEVOU0VSXzZfTU9UT1JfT1ZF",
- "UlRFTVBFUkFUVVJFEIU3EiYKIURJU1BFTlNFUl83X01PVE9SX09WRVJURU1Q",
- "RVJBVFVSRRCGNxImCiFESVNQRU5TRVJfOF9NT1RPUl9PVkVSVEVNUEVSQVRV",
- "UkUQhzcSHAoXRElTUEVOU0VSXzFfTU9UT1JfU1RBTEwQiDcSHAoXRElTUEVO",
- "U0VSXzJfTU9UT1JfU1RBTEwQiTcSHAoXRElTUEVOU0VSXzNfTU9UT1JfU1RB",
- "TEwQijcSHAoXRElTUEVOU0VSXzRfTU9UT1JfU1RBTEwQizcSHAoXRElTUEVO",
- "U0VSXzVfTU9UT1JfU1RBTEwQjDcSHAoXRElTUEVOU0VSXzZfTU9UT1JfU1RB",
- "TEwQjTcSHAoXRElTUEVOU0VSXzdfTU9UT1JfU1RBTEwQjjcSHAoXRElTUEVO",
- "U0VSXzhfTU9UT1JfU1RBTEwQjzcSIwoeRElTUEVOU0VSXzFfTU9UT1JfVU5E",
- "RVJWT0xUQUdFEJA3EiMKHkRJU1BFTlNFUl8yX01PVE9SX1VOREVSVk9MVEFH",
- "RRCRNxIjCh5ESVNQRU5TRVJfM19NT1RPUl9VTkRFUlZPTFRBR0UQkjcSIwoe",
- "RElTUEVOU0VSXzRfTU9UT1JfVU5ERVJWT0xUQUdFEJM3EiMKHkRJU1BFTlNF",
- "Ul81X01PVE9SX1VOREVSVk9MVEFHRRCUNxIjCh5ESVNQRU5TRVJfNl9NT1RP",
- "Ul9VTkRFUlZPTFRBR0UQlTcSIwoeRElTUEVOU0VSXzdfTU9UT1JfVU5ERVJW",
- "T0xUQUdFEJY3EiMKHkRJU1BFTlNFUl84X01PVE9SX1VOREVSVk9MVEFHRRCX",
- "NxIhChxESVNQRU5TRVJfMV9VUFBFUl9IQVJEX0xJTUlUEJg3EiEKHERJU1BF",
- "TlNFUl8yX1VQUEVSX0hBUkRfTElNSVQQmTcSIQocRElTUEVOU0VSXzNfVVBQ",
- "RVJfSEFSRF9MSU1JVBCaNxIhChxESVNQRU5TRVJfNF9VUFBFUl9IQVJEX0xJ",
- "TUlUEJs3EiEKHERJU1BFTlNFUl81X1VQUEVSX0hBUkRfTElNSVQQnDcSIQoc",
- "RElTUEVOU0VSXzZfVVBQRVJfSEFSRF9MSU1JVBCdNxIhChxESVNQRU5TRVJf",
- "N19VUFBFUl9IQVJEX0xJTUlUEJ43EiEKHERJU1BFTlNFUl84X1VQUEVSX0hB",
- "UkRfTElNSVQQnzcSIQocRElTUEVOU0VSXzFfTE9XRVJfSEFSRF9MSU1JVBCg",
- "NxIhChxESVNQRU5TRVJfMl9MT1dFUl9IQVJEX0xJTUlUEKE3EiEKHERJU1BF",
- "TlNFUl8zX0xPV0VSX0hBUkRfTElNSVQQojcSIQocRElTUEVOU0VSXzRfTE9X",
- "RVJfSEFSRF9MSU1JVBCjNxIhChxESVNQRU5TRVJfNV9MT1dFUl9IQVJEX0xJ",
- "TUlUEKQ3EiEKHERJU1BFTlNFUl82X0xPV0VSX0hBUkRfTElNSVQQpTcSIQoc",
- "RElTUEVOU0VSXzdfTE9XRVJfSEFSRF9MSU1JVBCmNxIhChxESVNQRU5TRVJf",
- "OF9MT1dFUl9IQVJEX0xJTUlUEKc3Eh4KGURJU1BFTlNFUl8xX0hJR0hfUFJF",
- "U1NVUkUQqDcSHgoZRElTUEVOU0VSXzJfSElHSF9QUkVTU1VSRRCpNxIeChlE",
- "SVNQRU5TRVJfM19ISUdIX1BSRVNTVVJFEKo3Eh4KGURJU1BFTlNFUl80X0hJ",
- "R0hfUFJFU1NVUkUQqzcSHgoZRElTUEVOU0VSXzVfSElHSF9QUkVTU1VSRRCs",
- "NxIeChlESVNQRU5TRVJfNl9ISUdIX1BSRVNTVVJFEK03Eh4KGURJU1BFTlNF",
- "Ul83X0hJR0hfUFJFU1NVUkUQrjcSHgoZRElTUEVOU0VSXzhfSElHSF9QUkVT",
- "U1VSRRCvNxIdChhESVNQRU5TRVJfOV9PVkVSUFJFU1NVUkUQsDcSHgoZRElT",
- "UEVOU0VSXzlfVU5ERVJQUkVTU1VSRRCxNxIeChlESVNQRU5TRVJfMTBfT1ZF",
- "UlBSRVNTVVJFELI3Eh8KGkRJU1BFTlNFUl8xMF9VTkRFUlBSRVNTVVJFELM3",
- "EiQKH0RJU1BFTlNFUl85X01PVE9SXzFfTUFMRlVOQ1RJT04QtDcSJAofRElT",
- "UEVOU0VSXzlfTU9UT1JfMl9NQUxGVU5DVElPThC1NxIlCiBESVNQRU5TRVJf",
- "MTBfTU9UT1JfMV9NQUxGVU5DVElPThC2NxIlCiBESVNQRU5TRVJfMTBfTU9U",
- "T1JfMl9NQUxGVU5DVElPThC3NxIZChRNSURfVEFOS18xX0xPV19MRVZFTBDA",
- "PhIZChRNSURfVEFOS18yX0xPV19MRVZFTBDBPhIZChRNSURfVEFOS18zX0xP",
- "V19MRVZFTBDCPhIZChRNSURfVEFOS180X0xPV19MRVZFTBDDPhIZChRNSURf",
- "VEFOS181X0xPV19MRVZFTBDEPhIZChRNSURfVEFOS182X0xPV19MRVZFTBDF",
- "PhIZChRNSURfVEFOS183X0xPV19MRVZFTBDGPhIZChRNSURfVEFOS184X0xP",
- "V19MRVZFTBDHPhIVChBNSURfVEFOS18xX0VNUFRZEMg+EhUKEE1JRF9UQU5L",
- "XzJfRU1QVFkQyT4SFQoQTUlEX1RBTktfM19FTVBUWRDKPhIVChBNSURfVEFO",
- "S180X0VNUFRZEMs+EhUKEE1JRF9UQU5LXzVfRU1QVFkQzD4SFQoQTUlEX1RB",
- "TktfNl9FTVBUWRDNPhIVChBNSURfVEFOS183X0VNUFRZEM4+EhUKEE1JRF9U",
- "QU5LXzhfRU1QVFkQzz4SGAoTTUlEX1RBTktfMV9PVkVSRkxPVxDQPhIYChNN",
- "SURfVEFOS18yX09WRVJGTE9XENE+EhgKE01JRF9UQU5LXzNfT1ZFUkZMT1cQ",
- "0j4SGAoTTUlEX1RBTktfNF9PVkVSRkxPVxDTPhIYChNNSURfVEFOS181X09W",
- "RVJGTE9XENQ+EhgKE01JRF9UQU5LXzZfT1ZFUkZMT1cQ1T4SGAoTTUlEX1RB",
- "TktfN19PVkVSRkxPVxDWPhIYChNNSURfVEFOS184X09WRVJGTE9XENc+EhwK",
- "F01JRF9UQU5LXzFfRklMTF9USU1FT1VUENg+EhwKF01JRF9UQU5LXzJfRklM",
- "TF9USU1FT1VUENk+EhwKF01JRF9UQU5LXzNfRklMTF9USU1FT1VUENo+EhwK",
- "F01JRF9UQU5LXzRfRklMTF9USU1FT1VUENs+EhwKF01JRF9UQU5LXzVfRklM",
- "TF9USU1FT1VUENw+EhwKF01JRF9UQU5LXzZfRklMTF9USU1FT1VUEN0+EhwK",
- "F01JRF9UQU5LXzdfRklMTF9USU1FT1VUEN4+EhwKF01JRF9UQU5LXzhfRklM",
- "TF9USU1FT1VUEN8+EhkKFE1JRF9UQU5LXzlfTE9XX0xFVkVMEOA+EhUKEE1J",
- "RF9UQU5LXzlfRU1QVFkQ4T4SGAoTTUlEX1RBTktfOV9PVkVSRkxPVxDiPhIc",
- "ChdNSURfVEFOS185X0ZJTExfVElNRU9VVBDjPhIaChVNSURfVEFOS18xMF9M",
- "T1dfTEVWRUwQ5D4SFgoRTUlEX1RBTktfMTBfRU1QVFkQ5T4SGQoUTUlEX1RB",
- "TktfMTBfT1ZFUkZMT1cQ5j4SHQoYTUlEX1RBTktfMTBfRklMTF9USU1FT1VU",
- "EOc+Eh0KGEFJUl9GSUxURVJfTk9UX0lOU1RBTExFRBCoRhIXChJBSVJfRklM",
- "VEVSX0NMT0dHRUQQqUYSJQogV0FTVEVfQ09OVEFJTkVSX0VNUFRZSU5HX1RJ",
- "TUVPVVQQqkYSFAoPTk9fQUlSX1BSRVNTVVJFEKtGEh0KGFdBU1RFX0NPTlRB",
- "SU5FUl9PVkVSRkxPVxCsRhIaChVWT0NfU0VOU09SX0FMQVJNX1RJTUUQrUYS",
- "GAoTQ0hJTExFUl9EUllfQ09OVEFDVBCuRhIaChVJTlNVRkZJQ0lFTlRfQUlS",
- "X0ZMT1cQr0YSGwoWVk9DX1NFTlNPUl9BTEFSTV9TTE9QRRCwRhIdChhQUkVf",
- "Q09PTEVSX0ZBTl8xX1NUT1BQRUQQsUYSHQoYUFJFX0NPT0xFUl9GQU5fMl9T",
- "VE9QUEVEELJGEhkKFENPT0xFUl9GQU5fMV9TVE9QUEVEELNGEhkKFENPT0xF",
- "Ul9GQU5fMl9TVE9QUEVEELRGEhkKFENPT0xFUl9GQU5fM19TVE9QUEVEELVG",
- "EhkKFENPT0xFUl9GQU5fNF9TVE9QUEVEELZGEiEKHFBSRV9DT09MRVJfRkFO",
- "XzFfUlBNX1RPT19MT1cQt0YSIQocUFJFX0NPT0xFUl9GQU5fMl9SUE1fVE9P",
- "X0xPVxC4RhIdChhDT09MRVJfRkFOXzFfUlBNX1RPT19MT1cQuUYSHQoYQ09P",
- "TEVSX0ZBTl8yX1JQTV9UT09fTE9XELpGEh0KGENPT0xFUl9GQU5fM19SUE1f",
- "VE9PX0xPVxC7RhIdChhDT09MRVJfRkFOXzRfUlBNX1RPT19MT1cQvEYSIAob",
- "Q09PTEVSX1RFTVBFUkFUVVJFX1RPT19ISUdIEL1GEh8KGkNPT0xFUl9URU1Q",
- "RVJBVFVSRV9UT09fTE9XEL5GEioKJUlOS19DQVJUUklER0VfUFJFU0VOQ0Vf",
- "U0VOU09SX1RJTUVPVVQQkE4SHwoaSU5LX0NBUlRSSURHRV9SRklEX1RJTUVP",
- "VVQQkU4SIQocTk9fV0FTVEVfQ0FSVFJJREdFX0FWQUlMQUJMRRCSThIeChlB",
- "TExfV0FTVEVfQ0FSVFJJREdFU19GVUxMEJNOEiwKJ1dBU1RFX0NBUlRSSURH",
- "RV9QUkVTRU5DRV9TRU5TT1JfVElNRU9VVBCUThIhChxXQVNURV9DQVJUUklE",
- "R0VfUkZJRF9USU1FT1VUEJVOEioKJUlOS19DQVJUUklER0VfUkZJRF9UQUdf",
- "Q0FOTk9UX0JFX1JFQUQQlk4SLAonV0FTVEVfQ0FSVFJJREdFX1JGSURfVEFH",
- "X0NBTk5PVF9CRV9SRUFEEJdOEigKI0lOS19DQVJUUklER0VfUkZJRF9UQUdf",
- "SVNfTk9UX1ZBTElEEJhOEioKJVdBU1RFX0NBUlRSSURHRV9SRklEX1RBR19J",
- "U19OT1RfVkFMSUQQmU4SKAojSU5LX0NBUlRSSURHRV9BVVRIRU5USUNBVElP",
- "Tl9GQUlMRUQQmk4SKgolV0FTVEVfQ0FSVFJJREdFX0FVVEhFTlRJQ0FUSU9O",
- "X0ZBSUxFRBCbThIdChhJTktfQ0FSVFJJREdFX0lTX0JMT0NLRUQQnE4SHwoa",
- "V0FTVEVfQ0FSVFJJREdFX0lTX0JMT0NLRUQQnU4SLQooSU5LX0NBUlRSSURH",
- "RV9SRklEX1RBR19DQU5OT1RfQkVfVVBEQVRFRBCeThIvCipXQVNURV9DQVJU",
- "UklER0VfUkZJRF9UQUdfQ0FOTk9UX0JFX1VQREFURUQQn04SIAobSU5LX0lO",
- "X0NBUlRSSURHRV9JU19FWFBJUkVEEKBOQiEKH2NvbS50d2luZS50YW5nby5w",
- "bXIuZGlhZ25vc3RpY3NiBnByb3RvMw=="));
+ "Cg9FdmVudFR5cGUucHJvdG8SFVRhbmdvLlBNUi5EaWFnbm9zdGljcyqirwEK",
+ "CUV2ZW50VHlwZRIICgROb25lEAASEQoMUkVRVUVTVF9TRU5UEOgHEhYKEVJF",
+ "U1BPTlNFX1JFQ0VJVkVEEOkHEhMKDlJFUVVFU1RfRkFJTEVEEOoHEhoKFUFQ",
+ "UExJQ0FUSU9OX0VYQ0VQVElPThDrBxIcChdBUFBMSUNBVElPTl9JTkZPUk1B",
+ "VElPThDsBxIYChNBUFBMSUNBVElPTl9TVEFSVEVEEO0HEhsKFkFQUExJQ0FU",
+ "SU9OX1RFUk1JTkFURUQQ7gcSFgoRUkVDT1JESU5HX1NUQVJURUQQ7wcSFgoR",
+ "UkVDT1JESU5HX1NUT1BQRUQQ8AcSDwoKSk9CX1NUQVRVUxDxBxIQCgtKT0Jf",
+ "U1RBUlRFRBDyBxIQCgtKT0JfQUJPUlRFRBDzBxIPCgpKT0JfRkFJTEVEEPQH",
+ "EhIKDUpPQl9DT01QTEVURUQQ9QcSGQoUUE9XRVJfVVBfQklUX0ZBSUxVUkUQ",
+ "0A8SIgodRU1FUkdFTkNZX1BVU0hfQlVUVE9OX1BSRVNTRUQQ0Q8SFwoSRlJP",
+ "TlRfQ09WRVJfMV9PUEVOENIPEhcKEkZST05UX0NPVkVSXzJfT1BFThDTDxIX",
+ "ChJGUk9OVF9DT1ZFUl8zX09QRU4Q1A8SFwoSRlJPTlRfQ09WRVJfNF9PUEVO",
+ "ENUPEhoKFUNBUlRSSURHRVNfQ09WRVJfT1BFThDWDxIUCg9BUkNIX0NPVkVS",
+ "X09QRU4Q1w8SJQogTUFDSElORV9JTlRFUk5BTF9PVkVSVEVNUEVSQVRVUkUQ",
+ "2A8SHQoYTUFDSElORV9GQU5TX1JQTV9UT09fTE9XENkPEhkKFE1BQ0hJTkVf",
+ "RkFOU19TVE9QUEVEENoPEigKI0VMRUNUUklDQUxfQ0FCSU5FVF9GQU5TX1JQ",
+ "TV9UT09fTE9XENsPEiQKH0VMRUNUUklDQUxfQ0FCSU5FVF9GQU5TX1NUT1BQ",
+ "RUQQ3A8SHgoZTUFDSElORV9TVEFURV9OT19DRkdfRklMRRDdDxIjCh5NQUNI",
+ "SU5FX1NUQVRFX0hXX0NPTkZJR19GQUlMRUQQ3g8SKAojTUFDSElORV9TVEFU",
+ "RV9JTklUSUFMX0JMT1dFUl9GQUlMRUQQ3w8SEAoLVU5TUEVDSUZJRUQQ4A8S",
+ "JwoiTUFDSElORV9JTlRFUk5BTF9PVkVSVEVNUEVSQVRVUkVfMhDhDxInCiJF",
+ "TEVDVFJJQ0FMX0NBQklORVRfT1ZFUlRFTVBFUkFUVVJFEOIPEhwKF0ZQR0Ff",
+ "V0FUQ0hET0dfQUNUSVZBVEVEEOMPEhUKEFVOSU5URU5ERURfUkVTRVQQ5A8S",
+ "IgodVEVNUEVSQVRVUkVfTUVBU1VSRU1FTlRfRVJST1IQ5Q8SJQogUkZJRF9S",
+ "RUFERVJfTUFMRlVOQ1RJT05fSU5LX1NMT1QQ5g8SKQokUkZJRF9SRUFERVJf",
+ "TUFMRlVOQ1RJT05fV0FTVEVfU0xPVF8xEOcPEikKJFJGSURfUkVBREVSX01B",
+ "TEZVTkNUSU9OX1dBU1RFX1NMT1RfMhDoDxIfChpJMkMzX0NPTU1VTklDQVRJ",
+ "T05fRkFJTFVSRRDpDxIfChpJMkM0X0NPTU1VTklDQVRJT05fRkFJTFVSRRDq",
+ "DxIeChlJMkNfQ09NTVVOSUNBVElPTl9GQUlMVVJFEOsPEhEKDFRIUkVBRF9C",
+ "UkVBSxC4FxIxCixUSFJFQURfVEVOU0lPTl9DT05UUk9MX0ZBSUxVUkVfRkVF",
+ "REVSX0RBTkNFUhC5FxIfChpXSU5ERVJfQ09ORV9ET0VTX05PVF9FWElTVBC6",
+ "FxIdChhGRUVERVJfTU9UT1JfTUFMRlVOQ1RJT04QuxcSIwoeUklHSFRfTE9B",
+ "REVSX01PVE9SX01BTEZVTkNUSU9OELwXEh0KGFBVTExFUl9NT1RPUl9NQUxG",
+ "VU5DVElPThC9FxIiCh1MRUZUX0xPQURFUl9NT1RPUl9NQUxGVU5DVElPThC+",
+ "FxIdChhXSU5ERVJfTU9UT1JfTUFMRlVOQ1RJT04QvxcSHAoXU0NSRVdfTU9U",
+ "T1JfTUFMRlVOQ1RJT04QwBcSIgodTE9BRElOR19BUk1fTU9UT1JfTUFMRlVO",
+ "Q1RJT04QwRcSIQocRkVFREVSX01PVE9SX09WRVJURU1QRVJBVFVSRRDCFxIn",
+ "CiJSSUdIVF9MT0FERVJfTU9UT1JfT1ZFUlRFTVBFUkFUVVJFEMMXEiEKHFBV",
+ "TExFUl9NT1RPUl9PVkVSVEVNUEVSQVRVUkUQxBcSJgohTEVGVF9MT0FERVJf",
+ "TU9UT1JfT1ZFUlRFTVBFUkFUVVJFEMUXEiEKHFdJTkRFUl9NT1RPUl9PVkVS",
+ "VEVNUEVSQVRVUkUQxhcSIAobU0NSRVdfTU9UT1JfT1ZFUlRFTVBFUkFUVVJF",
+ "EMcXEiYKIUxPQURJTkdfQVJNX01PVE9SX09WRVJURU1QRVJBVFVSRRDIFxIX",
+ "ChJGRUVERVJfTU9UT1JfU1RBTEwQyRcSHQoYUklHSFRfTE9BREVSX01PVE9S",
+ "X1NUQUxMEMoXEhcKElBVTExFUl9NT1RPUl9TVEFMTBDLFxIcChdMRUZUX0xP",
+ "QURFUl9NT1RPUl9TVEFMTBDMFxIXChJXSU5ERVJfTU9UT1JfU1RBTEwQzRcS",
+ "FgoRU0NSRVdfTU9UT1JfU1RBTEwQzhcSHAoXTE9BRElOR19BUk1fTU9UT1Jf",
+ "U1RBTEwQzxcSHgoZRkVFREVSX01PVE9SX1VOREVSVk9MVEFHRRDQFxIkCh9S",
+ "SUdIVF9MT0FERVJfTU9UT1JfVU5ERVJWT0xUQUdFENEXEh4KGVBVTExFUl9N",
+ "T1RPUl9VTkRFUlZPTFRBR0UQ0hcSIwoeTEVGVF9MT0FERVJfTU9UT1JfVU5E",
+ "RVJWT0xUQUdFENMXEh4KGVdJTkRFUl9NT1RPUl9VTkRFUlZPTFRBR0UQ1BcS",
+ "HQoYU0NSRVdfTU9UT1JfVU5ERVJWT0xUQUdFENUXEiMKHkxPQURJTkdfQVJN",
+ "X01PVE9SX1VOREVSVk9MVEFHRRDWFxIUCg9MVEZVX1VQX1RJTUVPVVQQ1xcS",
+ "FgoRTFRGVV9ET1dOX1RJTUVPVVQQ2BcSFAoPUlRGVV9VUF9USU1FT1VUENkX",
+ "EhYKEVJURlVfRE9XTl9USU1FT1VUENoXEh4KGVNDUkVXX01PVE9SX0xJTUlU",
+ "X1RJTUVPVVQQ2xcSJAofV0lOREVSX0RBTkNFUl9NT1RPUl9NQUxGVU5DVElP",
+ "ThDcFxIkCh9QVUxMRVJfREFOQ0VSX01PVE9SX01BTEZVTkNUSU9OEN0XEiQK",
+ "H0ZFRURFUl9EQU5DRVJfTU9UT1JfTUFMRlVOQ1RJT04Q3hcSKAojV0lOREVS",
+ "X0RBTkNFUl9NT1RPUl9PVkVSVEVNUEVSQVRVUkUQ3xcSKAojUFVMTEVSX0RB",
+ "TkNFUl9NT1RPUl9PVkVSVEVNUEVSQVRVUkUQ4BcSKAojRkVFREVSX0RBTkNF",
+ "Ul9NT1RPUl9PVkVSVEVNUEVSQVRVUkUQ4RcSHgoZV0lOREVSX0RBTkNFUl9N",
+ "T1RPUl9TVEFMTBDiFxIeChlQVUxMRVJfREFOQ0VSX01PVE9SX1NUQUxMEOMX",
+ "Eh4KGUZFRURFUl9EQU5DRVJfTU9UT1JfU1RBTEwQ5BcSJQogV0lOREVSX0RB",
+ "TkNFUl9NT1RPUl9VTkRFUlZPTFRBR0UQ5RcSJQogUFVMTEVSX0RBTkNFUl9N",
+ "T1RPUl9VTkRFUlZPTFRBR0UQ5hcSJQogRkVFREVSX0RBTkNFUl9NT1RPUl9V",
+ "TkRFUlZPTFRBR0UQ5xcSMQosVEhSRUFEX1RFTlNJT05fQ09OVFJPTF9GQUlM",
+ "VVJFX1BVTExFUl9EQU5DRVIQ6BcSMQosVEhSRUFEX1RFTlNJT05fQ09OVFJP",
+ "TF9GQUlMVVJFX1dJTkRFUl9EQU5DRVIQ6RcSJQogTUFDSElORV9TVEFURV9O",
+ "T19USFJFQURfREVURUNURUQQ6hcSGQoUVEhSRUFEX0xPQURJTkdfRVJST1IQ",
+ "6xcSHwoaTk9fQ09NTVVOSUNBVElPTl9XSVRIX0JUU1IQ7BcSFQoQQlRTUl9N",
+ "QUxGVU5DVElPThDtFxIhChxURU5TSU9OX0lOX0JUU1JfT1VUX09GX1JBTkdF",
+ "EO4XEhgKE0dSSVBQRVJfTUFMRlVOQ1RJT04Q7xcSHAoXRFJZRVJfTU9UT1Jf",
+ "TUFMRlVOQ1RJT04QoB8SIAobRFJZRVJfTU9UT1JfT1ZFUlRFTVBFUkFUVVJF",
+ "EKEfEhYKEURSWUVSX01PVE9SX1NUQUxMEKIfEh0KGERSWUVSX01PVE9SX1VO",
+ "REVSVk9MVEFHRRCjHxIUCg9EUllFUl9ET09SX09QRU4QpB8SIQocRFJZRVJf",
+ "Wk9ORV8xX09WRVJURU1QRVJBVFVSRRClHxIhChxEUllFUl9aT05FXzJfT1ZF",
+ "UlRFTVBFUkFUVVJFEKYfEiQKH0RSWUVSX1pPTkVfMV9VTkRFUlRFTVBFUkFU",
+ "VVJFX0EQpx8SJAofRFJZRVJfWk9ORV8xX1VOREVSVEVNUEVSQVRVUkVfQhCo",
+ "HxIkCh9EUllFUl9aT05FXzJfVU5ERVJURU1QRVJBVFVSRV9CEKkfEhkKFERS",
+ "WUVSX1RIRVJNQUxfQ1VUT0ZGEKofEi4KKURSWUVSX0hFQVRFUlNfWk9ORV8x",
+ "X0NVUlJFTlRfT1VUX09GX1JBTkdFEKsfEi4KKURSWUVSX0hFQVRFUlNfWk9O",
+ "RV8yX0NVUlJFTlRfT1VUX09GX1JBTkdFEKwfEiwKJ0RSWUVSX0hFQVRFUlNf",
+ "Wk9ORV8xX0NVUlJFTlRfTE9PUF9CUkVBSxCtHxIsCidEUllFUl9IRUFURVJT",
+ "X1pPTkVfMl9DVVJSRU5UX0xPT1BfQlJFQUsQrh8SGgoVRFJZRVJfRkFOX1JQ",
+ "TV9UT09fTE9XEK8fEhYKEURSWUVSX0ZBTl9TVE9QUEVEELAfEiAKG0RSWUVS",
+ "X0xJRF9NT1RPUl9NQUxGVU5DVElPThCxHxIkCh9EUllFUl9MSURfTU9UT1Jf",
+ "T1ZFUlRFTVBFUkFUVVJFELIfEhoKFURSWUVSX0xJRF9NT1RPUl9TVEFMTBCz",
+ "HxIhChxEUllFUl9MSURfTU9UT1JfVU5ERVJWT0xUQUdFELQfEiQKH0RSWUVS",
+ "X1pPTkVfMl9VTkRFUlRFTVBFUkFUVVJFX0EQtR8SJwoiRFlFSU5HX0hFQURf",
+ "Wk9ORV8xX09WRVJURU1QRVJBVFVSRRCIJxInCiJEWUVJTkdfSEVBRF9aT05F",
+ "XzJfT1ZFUlRFTVBFUkFUVVJFEIknEicKIkRZRUlOR19IRUFEX1pPTkVfM19P",
+ "VkVSVEVNUEVSQVRVUkUQiicSJwoiRFlFSU5HX0hFQURfWk9ORV80X09WRVJU",
+ "RU1QRVJBVFVSRRCLJxInCiJEWUVJTkdfSEVBRF9aT05FXzVfT1ZFUlRFTVBF",
+ "UkFUVVJFEIwnEicKIkRZRUlOR19IRUFEX1pPTkVfNl9PVkVSVEVNUEVSQVRV",
+ "UkUQjScSKgolRFlFSU5HX0hFQURfWk9ORV8xX1VOREVSVEVNUEVSQVRVUkVf",
+ "QRCOJxIqCiVEWUVJTkdfSEVBRF9aT05FXzJfVU5ERVJURU1QRVJBVFVSRV9B",
+ "EI8nEioKJURZRUlOR19IRUFEX1pPTkVfM19VTkRFUlRFTVBFUkFUVVJFX0EQ",
+ "kCcSKgolRFlFSU5HX0hFQURfWk9ORV80X1VOREVSVEVNUEVSQVRVUkVfQRCR",
+ "JxIqCiVEWUVJTkdfSEVBRF9aT05FXzVfVU5ERVJURU1QRVJBVFVSRV9BEJIn",
+ "EioKJURZRUlOR19IRUFEX1pPTkVfNl9VTkRFUlRFTVBFUkFUVVJFX0EQkycS",
+ "KgolRFlFSU5HX0hFQURfWk9ORV8xX1VOREVSVEVNUEVSQVRVUkVfQhCUJxIq",
+ "CiVEWUVJTkdfSEVBRF9aT05FXzJfVU5ERVJURU1QRVJBVFVSRV9CEJUnEioK",
+ "JURZRUlOR19IRUFEX1pPTkVfM19VTkRFUlRFTVBFUkFUVVJFX0IQlicSKgol",
+ "RFlFSU5HX0hFQURfWk9ORV80X1VOREVSVEVNUEVSQVRVUkVfQhCXJxIqCiVE",
+ "WUVJTkdfSEVBRF9aT05FXzVfVU5ERVJURU1QRVJBVFVSRV9CEJgnEioKJURZ",
+ "RUlOR19IRUFEX1pPTkVfNl9VTkRFUlRFTVBFUkFUVVJFX0IQmScSLAonRFlF",
+ "SU5HX0hFQURfWk9ORV8xX0NVUlJFTlRfT1VUX09GX1JBTkdFEJonEiwKJ0RZ",
+ "RUlOR19IRUFEX1pPTkVfMl9DVVJSRU5UX09VVF9PRl9SQU5HRRCbJxIsCidE",
+ "WUVJTkdfSEVBRF9aT05FXzNfQ1VSUkVOVF9PVVRfT0ZfUkFOR0UQnCcSLAon",
+ "RFlFSU5HX0hFQURfWk9ORV80X0NVUlJFTlRfT1VUX09GX1JBTkdFEJ0nEiwK",
+ "J0RZRUlOR19IRUFEX1pPTkVfNV9DVVJSRU5UX09VVF9PRl9SQU5HRRCeJxIq",
+ "CiVEWUVJTkdfSEVBRF9aT05FXzFfQ1VSUkVOVF9MT09QX0JSRUFLEJ8nEioK",
+ "JURZRUlOR19IRUFEX1pPTkVfMl9DVVJSRU5UX0xPT1BfQlJFQUsQoCcSKgol",
+ "RFlFSU5HX0hFQURfWk9ORV8zX0NVUlJFTlRfTE9PUF9CUkVBSxChJxIqCiVE",
+ "WUVJTkdfSEVBRF9aT05FXzRfQ1VSUkVOVF9MT09QX0JSRUFLEKInEioKJURZ",
+ "RUlOR19IRUFEX1pPTkVfNV9DVVJSRU5UX0xPT1BfQlJFQUsQoycSHwoaRFlF",
+ "SU5HX0hFQURfVEhFUk1BTF9DVVRPRkYQpCcSIwoeRFlFSU5HX0hFQURfQ09W",
+ "RVJfT1BFTl9USU1FT1VUEKUnEiQKH0RZRUlOR19IRUFEX0NPVkVSX0NMT1NF",
+ "X1RJTUVPVVQQpicSKAojRFlFSU5HX0hFQURfQ09WRVJfTU9UT1JfTUFMRlVO",
+ "Q1RJT04QpycSLAonRFlFSU5HX0hFQURfQ09WRVJfTU9UT1JfT1ZFUlRFTVBF",
+ "UkFUVVJFEKgnEiIKHURZRUlOR19IRUFEX0NPVkVSX01PVE9SX1NUQUxMEKkn",
+ "EikKJERZRUlOR19IRUFEX0NPVkVSX01PVE9SX1VOREVSVk9MVEFHRRCqJxI1",
+ "CjBEWUVJTkdfSEVBRF9DTEVBTklOR19NRUNIQU5JU01fTU9UT1JfTUFMRlVO",
+ "Q1RJT04QqycSOQo0RFlFSU5HX0hFQURfQ0xFQU5JTkdfTUVDSEFOSVNNX01P",
+ "VE9SX09WRVJURU1QRVJBVFVSRRCsJxIvCipEWUVJTkdfSEVBRF9DTEVBTklO",
+ "R19NRUNIQU5JU01fTU9UT1JfU1RBTEwQrScSNgoxRFlFSU5HX0hFQURfQ0xF",
+ "QU5JTkdfTUVDSEFOSVNNX01PVE9SX1VOREVSVk9MVEFHRRCuJxIwCitEWUVJ",
+ "TkdfSEVBRF9DTEVBTklOR19IRUFEX01PVE9SX01BTEZVTkNUSU9OEK8nEjQK",
+ "L0RZRUlOR19IRUFEX0NMRUFOSU5HX0hFQURfTU9UT1JfT1ZFUlRFTVBFUkFU",
+ "VVJFELAnEioKJURZRUlOR19IRUFEX0NMRUFOSU5HX0hFQURfTU9UT1JfU1RB",
+ "TEwQsScSMQosRFlFSU5HX0hFQURfQ0xFQU5JTkdfSEVBRF9NT1RPUl9VTkRF",
+ "UlZPTFRBR0UQsicSJwoiRFlFSU5HX0hFQURfWk9ORV83X09WRVJURU1QRVJB",
+ "VFVSRRCzJxInCiJEWUVJTkdfSEVBRF9aT05FXzhfT1ZFUlRFTVBFUkFUVVJF",
+ "ELQnEicKIkRZRUlOR19IRUFEX1pPTkVfOV9PVkVSVEVNUEVSQVRVUkUQtScS",
+ "KAojRFlFSU5HX0hFQURfWk9ORV8xMF9PVkVSVEVNUEVSQVRVUkUQticSKAoj",
+ "RFlFSU5HX0hFQURfWk9ORV8xMV9PVkVSVEVNUEVSQVRVUkUQtycSKAojRFlF",
+ "SU5HX0hFQURfWk9ORV8xMl9PVkVSVEVNUEVSQVRVUkUQuCcSKgolRFlFSU5H",
+ "X0hFQURfWk9ORV83X1VOREVSVEVNUEVSQVRVUkVfQRC5JxIqCiVEWUVJTkdf",
+ "SEVBRF9aT05FXzhfVU5ERVJURU1QRVJBVFVSRV9BELonEioKJURZRUlOR19I",
+ "RUFEX1pPTkVfOV9VTkRFUlRFTVBFUkFUVVJFX0EQuycSKwomRFlFSU5HX0hF",
+ "QURfWk9ORV8xMF9VTkRFUlRFTVBFUkFUVVJFX0EQvCcSKwomRFlFSU5HX0hF",
+ "QURfWk9ORV8xMV9VTkRFUlRFTVBFUkFUVVJFX0EQvScSKwomRFlFSU5HX0hF",
+ "QURfWk9ORV8xMl9VTkRFUlRFTVBFUkFUVVJFX0EQvicSKgolRFlFSU5HX0hF",
+ "QURfWk9ORV83X1VOREVSVEVNUEVSQVRVUkVfQhC/JxIqCiVEWUVJTkdfSEVB",
+ "RF9aT05FXzhfVU5ERVJURU1QRVJBVFVSRV9CEMAnEioKJURZRUlOR19IRUFE",
+ "X1pPTkVfOV9VTkRFUlRFTVBFUkFUVVJFX0IQwScSKwomRFlFSU5HX0hFQURf",
+ "Wk9ORV8xMF9VTkRFUlRFTVBFUkFUVVJFX0IQwicSKwomRFlFSU5HX0hFQURf",
+ "Wk9ORV8xMV9VTkRFUlRFTVBFUkFUVVJFX0IQwycSKwomRFlFSU5HX0hFQURf",
+ "Wk9ORV8xMl9VTkRFUlRFTVBFUkFUVVJFX0IQxCcSLAonRFlFSU5HX0hFQURf",
+ "Wk9ORV82X0NVUlJFTlRfT1VUX09GX1JBTkdFEMUnEiwKJ0RZRUlOR19IRUFE",
+ "X1pPTkVfN19DVVJSRU5UX09VVF9PRl9SQU5HRRDGJxIsCidEWUVJTkdfSEVB",
+ "RF9aT05FXzhfQ1VSUkVOVF9PVVRfT0ZfUkFOR0UQxycSLAonRFlFSU5HX0hF",
+ "QURfWk9ORV85X0NVUlJFTlRfT1VUX09GX1JBTkdFEMgnEi0KKERZRUlOR19I",
+ "RUFEX1pPTkVfMTBfQ1VSUkVOVF9PVVRfT0ZfUkFOR0UQyScSLQooRFlFSU5H",
+ "X0hFQURfWk9ORV8xMV9DVVJSRU5UX09VVF9PRl9SQU5HRRDKJxItCihEWUVJ",
+ "TkdfSEVBRF9aT05FXzEyX0NVUlJFTlRfT1VUX09GX1JBTkdFEMsnEioKJURZ",
+ "RUlOR19IRUFEX1pPTkVfNl9DVVJSRU5UX0xPT1BfQlJFQUsQzCcSKgolRFlF",
+ "SU5HX0hFQURfWk9ORV83X0NVUlJFTlRfTE9PUF9CUkVBSxDNJxIqCiVEWUVJ",
+ "TkdfSEVBRF9aT05FXzhfQ1VSUkVOVF9MT09QX0JSRUFLEM4nEioKJURZRUlO",
+ "R19IRUFEX1pPTkVfOV9DVVJSRU5UX0xPT1BfQlJFQUsQzycSKwomRFlFSU5H",
+ "X0hFQURfWk9ORV8xMF9DVVJSRU5UX0xPT1BfQlJFQUsQ0CcSKwomRFlFSU5H",
+ "X0hFQURfWk9ORV8xMV9DVVJSRU5UX0xPT1BfQlJFQUsQ0ScSKwomRFlFSU5H",
+ "X0hFQURfWk9ORV8xMl9DVVJSRU5UX0xPT1BfQlJFQUsQ0icSKQokRFlFSU5H",
+ "X0hFQURfQkxPV0VSXzFfT1ZFUlRFTVBFUkFUVVJFENMnEikKJERZRUlOR19I",
+ "RUFEX0JMT1dFUl8yX09WRVJURU1QRVJBVFVSRRDUJxIsCidEWUVJTkdfSEVB",
+ "RF9CTE9XRVJfMV9VTkRFUlRFTVBFUkFUVVJFX0EQ1ScSLAonRFlFSU5HX0hF",
+ "QURfQkxPV0VSXzJfVU5ERVJURU1QRVJBVFVSRV9BENYnEiwKJ0RZRUlOR19I",
+ "RUFEX0JMT1dFUl8xX1VOREVSVEVNUEVSQVRVUkVfQhDXJxIsCidEWUVJTkdf",
+ "SEVBRF9CTE9XRVJfMl9VTkRFUlRFTVBFUkFUVVJFX0IQ2CcSLgopRFlFSU5H",
+ "X0hFQURfQkxPV0VSXzFfQ1VSUkVOVF9PVVRfT0ZfUkFOR0UQ2ScSLgopRFlF",
+ "SU5HX0hFQURfQkxPV0VSXzJfQ1VSUkVOVF9PVVRfT0ZfUkFOR0UQ2icSLAon",
+ "RFlFSU5HX0hFQURfQkxPV0VSXzFfQ1VSUkVOVF9MT09QX0JSRUFLENsnEiwK",
+ "J0RZRUlOR19IRUFEX0JMT1dFUl8yX0NVUlJFTlRfTE9PUF9CUkVBSxDcJxIl",
+ "CiBEWUVJTkdfSEVBRF9CTE9XRVJfMV9GQU5fU1RPUFBFRBDdJxIlCiBEWUVJ",
+ "TkdfSEVBRF9CTE9XRVJfMl9GQU5fU1RPUFBFRBDeJxIpCiREWUVJTkdfSEVB",
+ "RF9CTE9XRVJfMV9GQU5fUlBNX1RPT19MT1cQ3ycSKQokRFlFSU5HX0hFQURf",
+ "QkxPV0VSXzJfRkFOX1JQTV9UT09fTE9XEOAnEioKJURZRUlOR19IRUFEX1JJ",
+ "R0hUX0FDVFVBVE9SX1VQX1RJTUVPVVQQ4ScSKQokRFlFSU5HX0hFQURfTEVG",
+ "VF9BQ1RVQVRPUl9VUF9USU1FT1VUEOInEiwKJ0RZRUlOR19IRUFEX1JJR0hU",
+ "X0FDVFVBVE9SX0RPV05fVElNRU9VVBDjJxIrCiZEWUVJTkdfSEVBRF9MRUZU",
+ "X0FDVFVBVE9SX0RPV05fVElNRU9VVBDkJxInCiJEWUVJTkdfSEVBRF9CTE9X",
+ "RVJfMV9GTE9XX1RPT19ISUdIEOUnEicKIkRZRUlOR19IRUFEX0JMT1dFUl8y",
+ "X0ZMT1dfVE9PX0hJR0gQ5icSJgohRFlFSU5HX0hFQURfQkxPV0VSXzFfRkxP",
+ "V19UT09fTE9XEOcnEiYKIURZRUlOR19IRUFEX0JMT1dFUl8yX0ZMT1dfVE9P",
+ "X0xPVxDoJxIgChtEWUVJTkdfSEVBRF9BUkNfTElEX0lTX09QRU4Q6ScSIwoe",
+ "RFlFSU5HX0hFQURfVFVOTkVMX0xJRF9JU19PUEVOEOonEh4KGURZRUlOR19I",
+ "RUFEX0NPVkVSX0lTX09QRU4Q6ycSIgodRFlFSU5HX0hFQURfVk9MVEFHRV8x",
+ "X1RPT19MT1cQ7CcSIgodRFlFSU5HX0hFQURfVk9MVEFHRV8yX1RPT19MT1cQ",
+ "7ScSIgodRFlFSU5HX0hFQURfVk9MVEFHRV8zX1RPT19MT1cQ7icSIAobRFlF",
+ "SU5HX0hFQURfVk9MVEFHRV8xX0JSRUFLEO8nEiAKG0RZRUlOR19IRUFEX1ZP",
+ "TFRBR0VfMl9CUkVBSxDwJxIgChtEWUVJTkdfSEVBRF9WT0xUQUdFXzNfQlJF",
+ "QUsQ8ScSGgoVTUlYRVJfT1ZFUlRFTVBFUkFUVVJFEPAuEh0KGE1JWEVSX1VO",
+ "REVSVEVNUEVSQVRVUkVfQRDxLhIdChhNSVhFUl9VTkRFUlRFTVBFUkFUVVJF",
+ "X0IQ8i4SGQoUTUlYRVJfVEhFUk1BTF9DVVRPRkYQ8y4SHwoaTUlYRVJfQ1VS",
+ "UkVOVF9PVVRfT0ZfUkFOR0UQ9C4SHQoYTUlYRVJfQ1VSUkVOVF9MT09QX0JS",
+ "RUFLEPUuEh0KGERJU1BFTlNFUl8xX09WRVJQUkVTU1VSRRDYNhIdChhESVNQ",
+ "RU5TRVJfMl9PVkVSUFJFU1NVUkUQ2TYSHQoYRElTUEVOU0VSXzNfT1ZFUlBS",
+ "RVNTVVJFENo2Eh0KGERJU1BFTlNFUl80X09WRVJQUkVTU1VSRRDbNhIdChhE",
+ "SVNQRU5TRVJfNV9PVkVSUFJFU1NVUkUQ3DYSHQoYRElTUEVOU0VSXzZfT1ZF",
+ "UlBSRVNTVVJFEN02Eh0KGERJU1BFTlNFUl83X09WRVJQUkVTU1VSRRDeNhId",
+ "ChhESVNQRU5TRVJfOF9PVkVSUFJFU1NVUkUQ3zYSHgoZRElTUEVOU0VSXzFf",
+ "VU5ERVJQUkVTU1VSRRDgNhIeChlESVNQRU5TRVJfMl9VTkRFUlBSRVNTVVJF",
+ "EOE2Eh4KGURJU1BFTlNFUl8zX1VOREVSUFJFU1NVUkUQ4jYSHgoZRElTUEVO",
+ "U0VSXzRfVU5ERVJQUkVTU1VSRRDjNhIeChlESVNQRU5TRVJfNV9VTkRFUlBS",
+ "RVNTVVJFEOQ2Eh4KGURJU1BFTlNFUl82X1VOREVSUFJFU1NVUkUQ5TYSHgoZ",
+ "RElTUEVOU0VSXzdfVU5ERVJQUkVTU1VSRRDmNhIeChlESVNQRU5TRVJfOF9V",
+ "TkRFUlBSRVNTVVJFEOc2EhYKEURJU1BFTlNFUl8xX0VNUFRZEOg2EhYKEURJ",
+ "U1BFTlNFUl8yX0VNUFRZEOk2EhYKEURJU1BFTlNFUl8zX0VNUFRZEOo2EhYK",
+ "EURJU1BFTlNFUl80X0VNUFRZEOs2EhYKEURJU1BFTlNFUl81X0VNUFRZEOw2",
+ "EhYKEURJU1BFTlNFUl82X0VNUFRZEO02EhYKEURJU1BFTlNFUl83X0VNUFRZ",
+ "EO42EhYKEURJU1BFTlNFUl84X0VNUFRZEO82Eh8KGkRJU1BFTlNFUl8xX1JF",
+ "RklMTF9GQUlMVVJFEPA2Eh8KGkRJU1BFTlNFUl8yX1JFRklMTF9GQUlMVVJF",
+ "EPE2Eh8KGkRJU1BFTlNFUl8zX1JFRklMTF9GQUlMVVJFEPI2Eh8KGkRJU1BF",
+ "TlNFUl80X1JFRklMTF9GQUlMVVJFEPM2Eh8KGkRJU1BFTlNFUl81X1JFRklM",
+ "TF9GQUlMVVJFEPQ2Eh8KGkRJU1BFTlNFUl82X1JFRklMTF9GQUlMVVJFEPU2",
+ "Eh8KGkRJU1BFTlNFUl83X1JFRklMTF9GQUlMVVJFEPY2Eh8KGkRJU1BFTlNF",
+ "Ul84X1JFRklMTF9GQUlMVVJFEPc2EiIKHURJU1BFTlNFUl8xX01PVE9SX01B",
+ "TEZVTkNUSU9OEPg2EiIKHURJU1BFTlNFUl8yX01PVE9SX01BTEZVTkNUSU9O",
+ "EPk2EiIKHURJU1BFTlNFUl8zX01PVE9SX01BTEZVTkNUSU9OEPo2EiIKHURJ",
+ "U1BFTlNFUl80X01PVE9SX01BTEZVTkNUSU9OEPs2EiIKHURJU1BFTlNFUl81",
+ "X01PVE9SX01BTEZVTkNUSU9OEPw2EiIKHURJU1BFTlNFUl82X01PVE9SX01B",
+ "TEZVTkNUSU9OEP02EiIKHURJU1BFTlNFUl83X01PVE9SX01BTEZVTkNUSU9O",
+ "EP42EiIKHURJU1BFTlNFUl84X01PVE9SX01BTEZVTkNUSU9OEP82EiYKIURJ",
+ "U1BFTlNFUl8xX01PVE9SX09WRVJURU1QRVJBVFVSRRCANxImCiFESVNQRU5T",
+ "RVJfMl9NT1RPUl9PVkVSVEVNUEVSQVRVUkUQgTcSJgohRElTUEVOU0VSXzNf",
+ "TU9UT1JfT1ZFUlRFTVBFUkFUVVJFEII3EiYKIURJU1BFTlNFUl80X01PVE9S",
+ "X09WRVJURU1QRVJBVFVSRRCDNxImCiFESVNQRU5TRVJfNV9NT1RPUl9PVkVS",
+ "VEVNUEVSQVRVUkUQhDcSJgohRElTUEVOU0VSXzZfTU9UT1JfT1ZFUlRFTVBF",
+ "UkFUVVJFEIU3EiYKIURJU1BFTlNFUl83X01PVE9SX09WRVJURU1QRVJBVFVS",
+ "RRCGNxImCiFESVNQRU5TRVJfOF9NT1RPUl9PVkVSVEVNUEVSQVRVUkUQhzcS",
+ "HAoXRElTUEVOU0VSXzFfTU9UT1JfU1RBTEwQiDcSHAoXRElTUEVOU0VSXzJf",
+ "TU9UT1JfU1RBTEwQiTcSHAoXRElTUEVOU0VSXzNfTU9UT1JfU1RBTEwQijcS",
+ "HAoXRElTUEVOU0VSXzRfTU9UT1JfU1RBTEwQizcSHAoXRElTUEVOU0VSXzVf",
+ "TU9UT1JfU1RBTEwQjDcSHAoXRElTUEVOU0VSXzZfTU9UT1JfU1RBTEwQjTcS",
+ "HAoXRElTUEVOU0VSXzdfTU9UT1JfU1RBTEwQjjcSHAoXRElTUEVOU0VSXzhf",
+ "TU9UT1JfU1RBTEwQjzcSIwoeRElTUEVOU0VSXzFfTU9UT1JfVU5ERVJWT0xU",
+ "QUdFEJA3EiMKHkRJU1BFTlNFUl8yX01PVE9SX1VOREVSVk9MVEFHRRCRNxIj",
+ "Ch5ESVNQRU5TRVJfM19NT1RPUl9VTkRFUlZPTFRBR0UQkjcSIwoeRElTUEVO",
+ "U0VSXzRfTU9UT1JfVU5ERVJWT0xUQUdFEJM3EiMKHkRJU1BFTlNFUl81X01P",
+ "VE9SX1VOREVSVk9MVEFHRRCUNxIjCh5ESVNQRU5TRVJfNl9NT1RPUl9VTkRF",
+ "UlZPTFRBR0UQlTcSIwoeRElTUEVOU0VSXzdfTU9UT1JfVU5ERVJWT0xUQUdF",
+ "EJY3EiMKHkRJU1BFTlNFUl84X01PVE9SX1VOREVSVk9MVEFHRRCXNxIhChxE",
+ "SVNQRU5TRVJfMV9VUFBFUl9IQVJEX0xJTUlUEJg3EiEKHERJU1BFTlNFUl8y",
+ "X1VQUEVSX0hBUkRfTElNSVQQmTcSIQocRElTUEVOU0VSXzNfVVBQRVJfSEFS",
+ "RF9MSU1JVBCaNxIhChxESVNQRU5TRVJfNF9VUFBFUl9IQVJEX0xJTUlUEJs3",
+ "EiEKHERJU1BFTlNFUl81X1VQUEVSX0hBUkRfTElNSVQQnDcSIQocRElTUEVO",
+ "U0VSXzZfVVBQRVJfSEFSRF9MSU1JVBCdNxIhChxESVNQRU5TRVJfN19VUFBF",
+ "Ul9IQVJEX0xJTUlUEJ43EiEKHERJU1BFTlNFUl84X1VQUEVSX0hBUkRfTElN",
+ "SVQQnzcSIQocRElTUEVOU0VSXzFfTE9XRVJfSEFSRF9MSU1JVBCgNxIhChxE",
+ "SVNQRU5TRVJfMl9MT1dFUl9IQVJEX0xJTUlUEKE3EiEKHERJU1BFTlNFUl8z",
+ "X0xPV0VSX0hBUkRfTElNSVQQojcSIQocRElTUEVOU0VSXzRfTE9XRVJfSEFS",
+ "RF9MSU1JVBCjNxIhChxESVNQRU5TRVJfNV9MT1dFUl9IQVJEX0xJTUlUEKQ3",
+ "EiEKHERJU1BFTlNFUl82X0xPV0VSX0hBUkRfTElNSVQQpTcSIQocRElTUEVO",
+ "U0VSXzdfTE9XRVJfSEFSRF9MSU1JVBCmNxIhChxESVNQRU5TRVJfOF9MT1dF",
+ "Ul9IQVJEX0xJTUlUEKc3Eh4KGURJU1BFTlNFUl8xX0hJR0hfUFJFU1NVUkUQ",
+ "qDcSHgoZRElTUEVOU0VSXzJfSElHSF9QUkVTU1VSRRCpNxIeChlESVNQRU5T",
+ "RVJfM19ISUdIX1BSRVNTVVJFEKo3Eh4KGURJU1BFTlNFUl80X0hJR0hfUFJF",
+ "U1NVUkUQqzcSHgoZRElTUEVOU0VSXzVfSElHSF9QUkVTU1VSRRCsNxIeChlE",
+ "SVNQRU5TRVJfNl9ISUdIX1BSRVNTVVJFEK03Eh4KGURJU1BFTlNFUl83X0hJ",
+ "R0hfUFJFU1NVUkUQrjcSHgoZRElTUEVOU0VSXzhfSElHSF9QUkVTU1VSRRCv",
+ "NxIdChhESVNQRU5TRVJfOV9PVkVSUFJFU1NVUkUQsDcSHgoZRElTUEVOU0VS",
+ "XzlfVU5ERVJQUkVTU1VSRRCxNxIeChlESVNQRU5TRVJfMTBfT1ZFUlBSRVNT",
+ "VVJFELI3Eh8KGkRJU1BFTlNFUl8xMF9VTkRFUlBSRVNTVVJFELM3EiQKH0RJ",
+ "U1BFTlNFUl85X01PVE9SXzFfTUFMRlVOQ1RJT04QtDcSJAofRElTUEVOU0VS",
+ "XzlfTU9UT1JfMl9NQUxGVU5DVElPThC1NxIlCiBESVNQRU5TRVJfMTBfTU9U",
+ "T1JfMV9NQUxGVU5DVElPThC2NxIlCiBESVNQRU5TRVJfMTBfTU9UT1JfMl9N",
+ "QUxGVU5DVElPThC3NxIZChRNSURfVEFOS18xX0xPV19MRVZFTBDAPhIZChRN",
+ "SURfVEFOS18yX0xPV19MRVZFTBDBPhIZChRNSURfVEFOS18zX0xPV19MRVZF",
+ "TBDCPhIZChRNSURfVEFOS180X0xPV19MRVZFTBDDPhIZChRNSURfVEFOS181",
+ "X0xPV19MRVZFTBDEPhIZChRNSURfVEFOS182X0xPV19MRVZFTBDFPhIZChRN",
+ "SURfVEFOS183X0xPV19MRVZFTBDGPhIZChRNSURfVEFOS184X0xPV19MRVZF",
+ "TBDHPhIVChBNSURfVEFOS18xX0VNUFRZEMg+EhUKEE1JRF9UQU5LXzJfRU1Q",
+ "VFkQyT4SFQoQTUlEX1RBTktfM19FTVBUWRDKPhIVChBNSURfVEFOS180X0VN",
+ "UFRZEMs+EhUKEE1JRF9UQU5LXzVfRU1QVFkQzD4SFQoQTUlEX1RBTktfNl9F",
+ "TVBUWRDNPhIVChBNSURfVEFOS183X0VNUFRZEM4+EhUKEE1JRF9UQU5LXzhf",
+ "RU1QVFkQzz4SGAoTTUlEX1RBTktfMV9PVkVSRkxPVxDQPhIYChNNSURfVEFO",
+ "S18yX09WRVJGTE9XENE+EhgKE01JRF9UQU5LXzNfT1ZFUkZMT1cQ0j4SGAoT",
+ "TUlEX1RBTktfNF9PVkVSRkxPVxDTPhIYChNNSURfVEFOS181X09WRVJGTE9X",
+ "ENQ+EhgKE01JRF9UQU5LXzZfT1ZFUkZMT1cQ1T4SGAoTTUlEX1RBTktfN19P",
+ "VkVSRkxPVxDWPhIYChNNSURfVEFOS184X09WRVJGTE9XENc+EhwKF01JRF9U",
+ "QU5LXzFfRklMTF9USU1FT1VUENg+EhwKF01JRF9UQU5LXzJfRklMTF9USU1F",
+ "T1VUENk+EhwKF01JRF9UQU5LXzNfRklMTF9USU1FT1VUENo+EhwKF01JRF9U",
+ "QU5LXzRfRklMTF9USU1FT1VUENs+EhwKF01JRF9UQU5LXzVfRklMTF9USU1F",
+ "T1VUENw+EhwKF01JRF9UQU5LXzZfRklMTF9USU1FT1VUEN0+EhwKF01JRF9U",
+ "QU5LXzdfRklMTF9USU1FT1VUEN4+EhwKF01JRF9UQU5LXzhfRklMTF9USU1F",
+ "T1VUEN8+EhkKFE1JRF9UQU5LXzlfTE9XX0xFVkVMEOA+EhUKEE1JRF9UQU5L",
+ "XzlfRU1QVFkQ4T4SGAoTTUlEX1RBTktfOV9PVkVSRkxPVxDiPhIcChdNSURf",
+ "VEFOS185X0ZJTExfVElNRU9VVBDjPhIaChVNSURfVEFOS18xMF9MT1dfTEVW",
+ "RUwQ5D4SFgoRTUlEX1RBTktfMTBfRU1QVFkQ5T4SGQoUTUlEX1RBTktfMTBf",
+ "T1ZFUkZMT1cQ5j4SHQoYTUlEX1RBTktfMTBfRklMTF9USU1FT1VUEOc+EhsK",
+ "Fk1JRF9UQU5LXzFfTUFMRlVOQ1RJT04Q6D4SGwoWTUlEX1RBTktfMl9NQUxG",
+ "VU5DVElPThDpPhIbChZNSURfVEFOS18zX01BTEZVTkNUSU9OEOo+EhsKFk1J",
+ "RF9UQU5LXzRfTUFMRlVOQ1RJT04Q6z4SGwoWTUlEX1RBTktfNV9NQUxGVU5D",
+ "VElPThDsPhIbChZNSURfVEFOS182X01BTEZVTkNUSU9OEO0+EhsKFk1JRF9U",
+ "QU5LXzdfTUFMRlVOQ1RJT04Q7j4SGwoWTUlEX1RBTktfOF9NQUxGVU5DVElP",
+ "ThDvPhIbChZNSURfVEFOS185X01BTEZVTkNUSU9OEPA+EhwKF01JRF9UQU5L",
+ "XzEwX01BTEZVTkNUSU9OEPE+Eh0KGEFJUl9GSUxURVJfTk9UX0lOU1RBTExF",
+ "RBCoRhIXChJBSVJfRklMVEVSX0NMT0dHRUQQqUYSJQogV0FTVEVfQ09OVEFJ",
+ "TkVSX0VNUFRZSU5HX1RJTUVPVVQQqkYSFAoPTk9fQUlSX1BSRVNTVVJFEKtG",
+ "Eh0KGFdBU1RFX0NPTlRBSU5FUl9PVkVSRkxPVxCsRhIaChVWT0NfU0VOU09S",
+ "X0FMQVJNX1RJTUUQrUYSGAoTQ0hJTExFUl9EUllfQ09OVEFDVBCuRhIaChVJ",
+ "TlNVRkZJQ0lFTlRfQUlSX0ZMT1cQr0YSGwoWVk9DX1NFTlNPUl9BTEFSTV9T",
+ "TE9QRRCwRhIdChhQUkVfQ09PTEVSX0ZBTl8xX1NUT1BQRUQQsUYSHQoYUFJF",
+ "X0NPT0xFUl9GQU5fMl9TVE9QUEVEELJGEhkKFENPT0xFUl9GQU5fMV9TVE9Q",
+ "UEVEELNGEhkKFENPT0xFUl9GQU5fMl9TVE9QUEVEELRGEhkKFENPT0xFUl9G",
+ "QU5fM19TVE9QUEVEELVGEhkKFENPT0xFUl9GQU5fNF9TVE9QUEVEELZGEiEK",
+ "HFBSRV9DT09MRVJfRkFOXzFfUlBNX1RPT19MT1cQt0YSIQocUFJFX0NPT0xF",
+ "Ul9GQU5fMl9SUE1fVE9PX0xPVxC4RhIdChhDT09MRVJfRkFOXzFfUlBNX1RP",
+ "T19MT1cQuUYSHQoYQ09PTEVSX0ZBTl8yX1JQTV9UT09fTE9XELpGEh0KGENP",
+ "T0xFUl9GQU5fM19SUE1fVE9PX0xPVxC7RhIdChhDT09MRVJfRkFOXzRfUlBN",
+ "X1RPT19MT1cQvEYSIAobQ09PTEVSX1RFTVBFUkFUVVJFX1RPT19ISUdIEL1G",
+ "Eh8KGkNPT0xFUl9URU1QRVJBVFVSRV9UT09fTE9XEL5GEioKJUlOS19DQVJU",
+ "UklER0VfUFJFU0VOQ0VfU0VOU09SX1RJTUVPVVQQkE4SHwoaSU5LX0NBUlRS",
+ "SURHRV9SRklEX1RJTUVPVVQQkU4SIQocTk9fV0FTVEVfQ0FSVFJJREdFX0FW",
+ "QUlMQUJMRRCSThIUCg9XQVNURV9UQU5LX0ZVTEwQk04SJQogQ0FSVFJJREdF",
+ "U19OT1RfSU5TRVJURURfUFJPUEVSTFkQlE4SIQocV0FTVEVfQ0FSVFJJREdF",
+ "X1JGSURfVElNRU9VVBCVThIqCiVJTktfQ0FSVFJJREdFX1JGSURfVEFHX0NB",
+ "Tk5PVF9CRV9SRUFEEJZOEiwKJ1dBU1RFX0NBUlRSSURHRV9SRklEX1RBR19D",
+ "QU5OT1RfQkVfUkVBRBCXThIoCiNJTktfQ0FSVFJJREdFX1JGSURfVEFHX0lT",
+ "X05PVF9WQUxJRBCYThIqCiVXQVNURV9DQVJUUklER0VfUkZJRF9UQUdfSVNf",
+ "Tk9UX1ZBTElEEJlOEigKI0lOS19DQVJUUklER0VfQVVUSEVOVElDQVRJT05f",
+ "RkFJTEVEEJpOEioKJVdBU1RFX0NBUlRSSURHRV9BVVRIRU5USUNBVElPTl9G",
+ "QUlMRUQQm04SHQoYSU5LX0NBUlRSSURHRV9JU19CTE9DS0VEEJxOEh8KGldB",
+ "U1RFX0NBUlRSSURHRV9JU19CTE9DS0VEEJ1OEi0KKElOS19DQVJUUklER0Vf",
+ "UkZJRF9UQUdfQ0FOTk9UX0JFX1VQREFURUQQnk4SLwoqV0FTVEVfQ0FSVFJJ",
+ "REdFX1JGSURfVEFHX0NBTk5PVF9CRV9VUERBVEVEEJ9OEiAKG0lOS19JTl9D",
+ "QVJUUklER0VfSVNfRVhQSVJFRBCgThIUCg5FX1JFUVVFU1RfU0VOVBCIlQYS",
+ "GQoTRV9SRVNQT05TRV9SRUNFSVZFRBCJlQYSFgoQRV9SRVFVRVNUX0ZBSUxF",
+ "RBCKlQYSHQoXRV9BUFBMSUNBVElPTl9FWENFUFRJT04Qi5UGEh8KGUVfQVBQ",
+ "TElDQVRJT05fSU5GT1JNQVRJT04QjJUGEhsKFUVfQVBQTElDQVRJT05fU1RB",
+ "UlRFRBCNlQYSHgoYRV9BUFBMSUNBVElPTl9URVJNSU5BVEVEEI6VBhIZChNF",
+ "X1JFQ09SRElOR19TVEFSVEVEEI+VBhIZChNFX1JFQ09SRElOR19TVE9QUEVE",
+ "EJCVBhISCgxFX0pPQl9TVEFUVVMQkZUGEhMKDUVfSk9CX1NUQVJURUQQkpUG",
+ "EhMKDUVfSk9CX0FCT1JURUQQk5UGEhIKDEVfSk9CX0ZBSUxFRBCUlQYSFQoP",
+ "RV9KT0JfQ09NUExFVEVEEJWVBhIcChZFX1BPV0VSX1VQX0JJVF9GQUlMVVJF",
+ "EPCcBhIhChtFX01BQ0hJTkVfU1RBVEVfTk9fQ0ZHX0ZJTEUQ8ZwGEiYKIEVf",
+ "TUFDSElORV9TVEFURV9IV19DT05GSUdfRkFJTEVEEPKcBhIjCh1FX01BQ0hJ",
+ "TkVfU1RBVEVfTk9fRkxBU0hfRklMRRDznAYSJAoeRV9NQUNISU5FX1NUQVRF",
+ "X05PX0FMQVJNU19GSUxFEPScBhIlCh9FX0VNRVJHRU5DWV9QVVNIX0JVVFRP",
+ "Tl9QUkVTU0VEENmkBhIXChFFX0RSWUVSX0RPT1JfT1BFThDapAYSHAoWRV9E",
+ "UllFUl9USEVSTUFMX0NVVE9GRhDbpAYSHQoXRV9UVU5ORUxfVEhFUk1BTF9D",
+ "VVRPRkYQ3KQGEiIKHEVfRFlFSU5HX0hFQURfVEhFUk1BTF9DVVRPRkYQ3aQG",
+ "EhwKFkVfTUlYRVJfVEhFUk1BTF9DVVRPRkYQ3qQGEiIKHEVfTFVCUklDQVRJ",
+ "T05fVEhFUk1BTF9DVVRPRkYQ36QGEh4KGEVfVFVOTkVMX0FJUl9GTE9XX1NX",
+ "SVRDSBDgpAYSGwoVRV9XSFNfQUlSX0ZMT1dfU1dJVENIEOGkBhIeChhFX0FJ",
+ "Ul9GSUxURVJfTk9UX1BSRVNFTlQQ4qQGEhgKEkVfVU5JTlRFTkRFRF9SRVNF",
+ "VBDArAYSHgoYRV9TRF9DQVJEX05PVF9SRVNQT05ESU5HEMGsBhIkCh5FX05P",
+ "X0NPTU1VTklDQVRJT05fV0lUSF9CVFNSXzEQqLQGEiQKHkVfTk9fQ09NTVVO",
+ "SUNBVElPTl9XSVRIX0JUU1JfMhCptAYSJAoeRV9OT19DT01NVU5JQ0FUSU9O",
+ "X1dJVEhfQlRTUl8zEKq0BhIkCh5FX05PX0NPTU1VTklDQVRJT05fV0lUSF9C",
+ "VFNSXzQQq7QGEikKI0VfTk9fQ09NTVVOSUNBVElPTl9XSVRIX0RSWUVSX0JP",
+ "QVJEEKy0BhIvCilFX05PX0NPTU1VTklDQVRJT05fV0lUSF9EWUVJTkdfSEVB",
+ "RF9CT0FSRBCttAYSLAomRV9OT19DT01NVU5JQ0FUSU9OX1dJVEhfV0lOREVS",
+ "XzFfQk9BUkQQrrQGEiwKJkVfTk9fQ09NTVVOSUNBVElPTl9XSVRIX1dJTkRF",
+ "Ul8yX0JPQVJEEK+0BhIsCiZFX05PX0NPTU1VTklDQVRJT05fV0lUSF9XSU5E",
+ "RVJfM19CT0FSRBCwtAYSLAomRV9OT19DT01NVU5JQ0FUSU9OX1dJVEhfV0lO",
+ "REVSXzRfQk9BUkQQsbQGEikKI0VfTk9fQ09NTVVOSUNBVElPTl9XSVRIX0lE",
+ "U18xX0JPQVJEELK0BhIpCiNFX05PX0NPTU1VTklDQVRJT05fV0lUSF9JRFNf",
+ "Ml9CT0FSRBCztAYSKQojRV9OT19DT01NVU5JQ0FUSU9OX1dJVEhfSURTXzNf",
+ "Qk9BUkQQtLQGEikKI0VfTk9fQ09NTVVOSUNBVElPTl9XSVRIX0lEU180X0JP",
+ "QVJEELW0BhIsCiZFX05PX0NPTU1VTklDQVRJT05fV0lUSF9NSURfVEFOS19C",
+ "T0FSRBC2tAYSJwohRV9OT19DT01NVU5JQ0FUSU9OX1dJVEhfV0hTX0JPQVJE",
+ "ELe0BhItCidFX05PX0NPTU1VTklDQVRJT05fV0lUSF9MVUJSSUNBTlRfQk9B",
+ "UkQQuLQGEigKIkVfTk9fQ09NTVVOSUNBVElPTl9XSVRIX01BSU5fQk9BUkQQ",
+ "ubQGEhYKEEVfTEVGVF9ET09SX09QRU4QkLwGEhcKEUVfUklHSFRfRE9PUl9P",
+ "UEVOEJG8BhIVCg9FX1RPUF9ET09SX09QRU4QkrwGEhoKFEVfVFVOTkVMX0xJ",
+ "RF9JU19PUEVOEJO8BhIXChFFX0FSQ19MSURfSVNfT1BFThCUvAYSGgoURV9C",
+ "VFNSXzFfTUFMRlVOQ1RJT04Q+MMGEhoKFEVfQlRTUl8yX01BTEZVTkNUSU9O",
+ "EPnDBhIaChRFX0JUU1JfM19NQUxGVU5DVElPThD6wwYSGgoURV9CVFNSXzRf",
+ "TUFMRlVOQ1RJT04Q+8MGEikKI0VfVEVOU0lPTl9JTl9CVFNSXzFfSVNfT1VU",
+ "X09GX1JBTkdFEPzDBhIpCiNFX1RFTlNJT05fSU5fQlRTUl8yX0lTX09VVF9P",
+ "Rl9SQU5HRRD9wwYSKQojRV9URU5TSU9OX0lOX0JUU1JfM19JU19PVVRfT0Zf",
+ "UkFOR0UQ/sMGEikKI0VfVEVOU0lPTl9JTl9CVFNSXzRfSVNfT1VUX09GX1JB",
+ "TkdFEP/DBhIUCg5FX1RIUkVBRF9CUkVBSxCAxAYSKAoiRV9EQU5DRVJfMV9U",
+ "RU5TSU9OX0NPTlRST0xfRkFJTFVSRRCBxAYSKAoiRV9EQU5DRVJfMl9URU5T",
+ "SU9OX0NPTlRST0xfRkFJTFVSRRCCxAYSKAoiRV9EQU5DRVJfM19URU5TSU9O",
+ "X0NPTlRST0xfRkFJTFVSRRCDxAYSKAoiRV9EQU5DRVJfNF9URU5TSU9OX0NP",
+ "TlRST0xfRkFJTFVSRRCExAYSHAoWRV9USFJFQURfTE9BRElOR19FUlJPUhCF",
+ "xAYSGwoVRV9HUklQUEVSX01BTEZVTkNUSU9OEIbEBhIWChBFX1RIUkVBRF9N",
+ "SVNTSU5HEIfEBhIqCiRFX0RZRUlOR19IRUFEX1pPTkVfMV9PVkVSVEVNUEVS",
+ "QVRVUkUQ4MsGEioKJEVfRFlFSU5HX0hFQURfWk9ORV8yX09WRVJURU1QRVJB",
+ "VFVSRRDhywYSKgokRV9EWUVJTkdfSEVBRF9aT05FXzNfT1ZFUlRFTVBFUkFU",
+ "VVJFEOLLBhIfChlFX01JWEVSXzFfT1ZFUlRFTVBFUkFUVVJFEOPLBhIfChlF",
+ "X01JWEVSXzJfT1ZFUlRFTVBFUkFUVVJFEOTLBhIeChhFX1RVTk5FTF9PVkVS",
+ "VEVNUEVSQVRVUkUQ5csGEiYKIEVfRFJZRVJfSEVBVEVSXzFfT1ZFUlRFTVBF",
+ "UkFUVVJFEOfLBhImCiBFX0RSWUVSX0hFQVRFUl8yX09WRVJURU1QRVJBVFVS",
+ "RRDoywYSJgogRV9EUllFUl9IRUFURVJfM19PVkVSVEVNUEVSQVRVUkUQ6csG",
+ "EiEKG0VfTFVCUklDQU5UX09WRVJURU1QRVJBVFVSRRDqywYSLQonRV9EWUVJ",
+ "TkdfSEVBRF9aT05FXzFfVU5ERVJURU1QRVJBVFVSRV9BEOvLBhItCidFX0RZ",
+ "RUlOR19IRUFEX1pPTkVfMl9VTkRFUlRFTVBFUkFUVVJFX0EQ7MsGEi0KJ0Vf",
+ "RFlFSU5HX0hFQURfWk9ORV8zX1VOREVSVEVNUEVSQVRVUkVfQRDtywYSIgoc",
+ "RV9NSVhFUl8xX1VOREVSVEVNUEVSQVRVUkVfQRDuywYSIgocRV9NSVhFUl8y",
+ "X1VOREVSVEVNUEVSQVRVUkVfQRDvywYSIQobRV9UVU5ORUxfVU5ERVJURU1Q",
+ "RVJBVFVSRV9BEPDLBhIpCiNFX0RSWUVSX0hFQVRFUl8xX1VOREVSVEVNUEVS",
+ "QVRVUkVfQRDxywYSKQojRV9EUllFUl9IRUFURVJfMl9VTkRFUlRFTVBFUkFU",
+ "VVJFX0EQ8ssGEikKI0VfRFJZRVJfSEVBVEVSXzNfVU5ERVJURU1QRVJBVFVS",
+ "RV9BEPPLBhIkCh5FX0xVQlJJQ0FOVF9VTkRFUlRFTVBFUkFUVVJFX0EQ9MsG",
+ "EiwKJkVfRFlFSU5HX0hFQURfWk9ORV8xX1VORFJURU1QRVJBVFVSRV9CEPXL",
+ "BhItCidFX0RZRUlOR19IRUFEX1pPTkVfMl9VTkRFUlRFTVBFUkFUVVJFX0IQ",
+ "9ssGEi0KJ0VfRFlFSU5HX0hFQURfWk9ORV8zX1VOREVSVEVNUEVSQVRVUkVf",
+ "QhD3ywYSIgocRV9NSVhFUl8xX1VOREVSVEVNUEVSQVRVUkVfQhD4ywYSIgoc",
+ "RV9NSVhFUl8yX1VOREVSVEVNUEVSQVRVUkVfQhD5ywYSIQobRV9UVU5ORUxf",
+ "VU5ERVJURU1QRVJBVFVSRV9CEPrLBhIpCiNFX0RSWUVSX0hFQVRFUl8xX1VO",
+ "REVSVEVNUEVSQVRVUkVfQhD7ywYSKQojRV9EUllFUl9IRUFURVJfMl9VTkRF",
+ "UlRFTVBFUkFUVVJFX0IQ/MsGEikKI0VfRFJZRVJfSEVBVEVSXzNfVU5ERVJU",
+ "RU1QRVJBVFVSRV9CEP3LBhIkCh5FX0xVQlJJQ0FOVF9VTkRFUlRFTVBFUkFU",
+ "VVJFX0IQ/ssGEiwKJkVfV0hTXzFfQ09PTEVSX1RFTVBFUkFUVVJFX0lTX1RP",
+ "T19ISUdIEP/LBhIrCiVFX1dIU18xX0NPT0xFUl9URU1QRVJBVFVSRV9JU19U",
+ "T09fTE9XEIDMBhIsCiZFX1dIU18yX0NPT0xFUl9URU1QRVJBVFVSRV9JU19U",
+ "T09fSElHSBCBzAYSKwolRV9XSFNfMl9DT09MRVJfVEVNUEVSQVRVUkVfSVNf",
+ "VE9PX0xPVxCCzAYSJQofRV9URU1QRVJBVFVSRV9NRUFTVVJFTUVOVF9FUlJP",
+ "UhCDzAYSKgokRV9EUllFUl9JTlRFUk5BTF9URU1QRVJBVFVSRV9UT09fTE9X",
+ "EITMBhIvCilFX0RZRUlOR19IRUFEX1pPTkVfMV9DVVJSRU5UX09VVF9PRl9S",
+ "QU5HRRDI0wYSLwopRV9EWUVJTkdfSEVBRF9aT05FXzJfQ1VSUkVOVF9PVVRf",
+ "T0ZfUkFOR0UQydMGEi8KKUVfRFlFSU5HX0hFQURfWk9ORV8zX0NVUlJFTlRf",
+ "T1VUX09GX1JBTkdFEMrTBhIrCiVFX01JWEVSXzFfSEVBVEVSX0NVUlJFTlRf",
+ "T1VUX09GX1JBTkdFEMvTBhIrCiVFX01JWEVSXzJfSEVBVEVSX0NVUlJFTlRf",
+ "T1VUX09GX1JBTkdFEMzTBhIqCiRFX1RVTk5FTF9IRUFURVJfQ1VSUkVOVF9P",
+ "VVRfT0ZfUkFOR0UQzdMGEisKJUVfRFJZRVJfSEVBVEVSXzFfQ1VSUkVOVF9P",
+ "VVRfT0ZfUkFOR0UQztMGEisKJUVfRFJZRVJfSEVBVEVSXzJfQ1VSUkVOVF9P",
+ "VVRfT0ZfUkFOR0UQz9MGEisKJUVfRFJZRVJfSEVBVEVSXzNfQ1VSUkVOVF9P",
+ "VVRfT0ZfUkFOR0UQ0NMGEi0KJ0VfTFVCUklDQU5UX0hFQVRFUl9DVVJSRU5U",
+ "X09VVF9PRl9SQU5HRRDR0wYSLQonRV9EWUVJTkdfSEVBRF9aT05FXzFfQ1VS",
+ "UkVOVF9MT09QX0JSRUFLENLTBhItCidFX0RZRUlOR19IRUFEX1pPTkVfMl9D",
+ "VVJSRU5UX0xPT1BfQlJFQUsQ09MGEi0KJ0VfRFlFSU5HX0hFQURfWk9ORV8z",
+ "X0NVUlJFTlRfTE9PUF9CUkVBSxDU0wYSKQojRV9NSVhFUl8xX0hFQVRFUl9D",
+ "VVJSRU5UX0xPT1BfQlJFQUsQ1dMGEikKI0VfTUlYRVJfMl9IRUFURVJfQ1VS",
+ "UkVOVF9MT09QX0JSRUFLENbTBhIoCiJFX1RVTk5FTF9IRUFURVJfQ1VSUkVO",
+ "VF9MT09QX0JSRUFLENfTBhIpCiNFX0RSWUVSX0hFQVRFUl8xX0NVUlJFTlRf",
+ "TE9PUF9CUkVBSxDY0wYSKQojRV9EUllFUl9IRUFURVJfMl9DVVJSRU5UX0xP",
+ "T1BfQlJFQUsQ2dMGEikKI0VfRFJZRVJfSEVBVEVSXzNfQ1VSUkVOVF9MT09Q",
+ "X0JSRUFLENrTBhIrCiVFX0xVQlJJQ0FOVF9IRUFURVJfQ1VSUkVOVF9MT09Q",
+ "X0JSRUFLENvTBhIkCh5FX0RSWUVSX01BSU5fTU9UT1JfTUFMRlVOQ1RJT04Q",
+ "sNsGEi4KKEVfRFJZRVJfVEhSRUFEX0xPQURJTkdfTU9UT1JfTUFMRlVOQ1RJ",
+ "T04QsdsGEiIKHEVfV0lOREVSXzFfTU9UT1JfTUFMRlVOQ1RJT04QstsGEiIK",
+ "HEVfV0lOREVSXzJfTU9UT1JfTUFMRlVOQ1RJT04Qs9sGEiIKHEVfV0lOREVS",
+ "XzNfTU9UT1JfTUFMRlVOQ1RJT04QtNsGEiIKHEVfV0lOREVSXzRfTU9UT1Jf",
+ "TUFMRlVOQ1RJT04QtdsGEiIKHEVfREFOQ0VSXzFfTU9UT1JfTUFMRlVOQ1RJ",
+ "T04QttsGEiIKHEVfREFOQ0VSXzJfTU9UT1JfTUFMRlVOQ1RJT04Qt9sGEiIK",
+ "HEVfREFOQ0VSXzNfTU9UT1JfTUFMRlVOQ1RJT04QuNsGEiIKHEVfREFOQ0VS",
+ "XzRfTU9UT1JfTUFMRlVOQ1RJT04QudsGEi0KJ0VfRFlFSU5HX0hFQURfQ0xF",
+ "QU5FUl9NT1RPUl9NQUxGVU5DVElPThC62wYSEgoMRV9OT19TVUNUSU9OEJjj",
+ "BhIhChtFX0RSWUVSX0JMT1dFUl9GTE9XX1RPT19MT1cQmeMGEiIKHEVfVFVO",
+ "TkVMX0JMT1dFUl9GTE9XX1RPT19MT1cQmuMGEiAKGkVfSU5TVUZGSUNJRU5U",
+ "X1dIU19TVUNUSU9OEJvjBhIaChRFX0FJUl9GSUxURVJfQ0xPR0dFRBCc4wYS",
+ "JAoeRV9OT19DSVJDVUxBVElPTl9GTE9XX0lOX0RSWUVSEJ3jBhIkCh5FX0lO",
+ "S19MSU5FXzFfUFJFU1NVUkVfVE9PX0hJR0gQgOsGEiQKHkVfSU5LX0xJTkVf",
+ "Ml9QUkVTU1VSRV9UT09fSElHSBCB6wYSJAoeRV9JTktfTElORV8zX1BSRVNT",
+ "VVJFX1RPT19ISUdIEILrBhIkCh5FX0lOS19MSU5FXzRfUFJFU1NVUkVfVE9P",
+ "X0hJR0gQg+sGEiQKHkVfSU5LX0xJTkVfNV9QUkVTU1VSRV9UT09fSElHSBCE",
+ "6wYSJAoeRV9JTktfTElORV82X1BSRVNTVVJFX1RPT19ISUdIEIXrBhIkCh5F",
+ "X0lOS19MSU5FXzdfUFJFU1NVUkVfVE9PX0hJR0gQhusGEiQKHkVfSU5LX0xJ",
+ "TkVfOF9QUkVTU1VSRV9UT09fSElHSBCH6wYSJAoeRV9JTktfTElORV85X1BS",
+ "RVNTVVJFX1RPT19ISUdIEIjrBhIlCh9FX0lOS19MSU5FXzEwX1BSRVNTVVJF",
+ "X1RPT19ISUdIEInrBhIjCh1FX0lOS19MSU5FXzFfUFJFU1NVUkVfVE9PX0xP",
+ "VxCK6wYSIwodRV9JTktfTElORV8yX1BSRVNTVVJFX1RPT19MT1cQi+sGEiMK",
+ "HUVfSU5LX0xJTkVfM19QUkVTU1VSRV9UT09fTE9XEIzrBhIjCh1FX0lOS19M",
+ "SU5FXzRfUFJFU1NVUkVfVE9PX0xPVxCN6wYSIwodRV9JTktfTElORV81X1BS",
+ "RVNTVVJFX1RPT19MT1cQjusGEiMKHUVfSU5LX0xJTkVfNl9QUkVTU1VSRV9U",
+ "T09fTE9XEI/rBhIjCh1FX0lOS19MSU5FXzdfUFJFU1NVUkVfVE9PX0xPVxCQ",
+ "6wYSIwodRV9JTktfTElORV84X1BSRVNTVVJFX1RPT19MT1cQkesGEiMKHUVf",
+ "SU5LX0xJTkVfOV9QUkVTU1VSRV9UT09fTE9XEJLrBhIkCh5FX0lOS19MSU5F",
+ "XzEwX1BSRVNTVVJFX1RPT19MT1cQk+sGEh4KGEVfSU5LX1BVTVBfMV9NQUxG",
+ "VU5DVElPThCU6wYSHgoYRV9JTktfUFVNUF8yX01BTEZVTkNUSU9OEJXrBhIe",
+ "ChhFX0lOS19QVU1QXzNfTUFMRlVOQ1RJT04QlusGEh4KGEVfSU5LX1BVTVBf",
+ "NF9NQUxGVU5DVElPThCX6wYSHgoYRV9JTktfUFVNUF81X01BTEZVTkNUSU9O",
+ "EJjrBhIeChhFX0lOS19QVU1QXzZfTUFMRlVOQ1RJT04QmesGEh4KGEVfSU5L",
+ "X1BVTVBfN19NQUxGVU5DVElPThCa6wYSHgoYRV9JTktfUFVNUF84X01BTEZV",
+ "TkNUSU9OEJvrBhIeChhFX0lOS19QVU1QXzlfTUFMRlVOQ1RJT04QnOsGEh8K",
+ "GUVfSU5LX1BVTVBfMTBfTUFMRlVOQ1RJT04QnesGEh8KGUVfSU5LX1BVTVBf",
+ "MTFfTUFMRlVOQ1RJT04QnusGEh8KGUVfSU5LX1BVTVBfMTJfTUFMRlVOQ1RJ",
+ "T04Qn+sGEh8KGUVfSU5LX1BVTVBfMTNfTUFMRlVOQ1RJT04QoOsGEh8KGUVf",
+ "SU5LX1BVTVBfMTRfTUFMRlVOQ1RJT04QoesGEh8KGUVfSU5LX1BVTVBfMTVf",
+ "TUFMRlVOQ1RJT04QousGEiUKH0VfSU5LX0xJTkVfMV9NSURfVEFOS19MT1df",
+ "TEVWRUwQo+sGEiUKH0VfSU5LX0xJTkVfMl9NSURfVEFOS19MT1dfTEVWRUwQ",
+ "pOsGEiUKH0VfSU5LX0xJTkVfM19NSURfVEFOS19MT1dfTEVWRUwQpesGEiUK",
+ "H0VfSU5LX0xJTkVfNF9NSURfVEFOS19MT1dfTEVWRUwQpusGEiUKH0VfSU5L",
+ "X0xJTkVfNV9NSURfVEFOS19MT1dfTEVWRUwQp+sGEiUKH0VfSU5LX0xJTkVf",
+ "Nl9NSURfVEFOS19MT1dfTEVWRUwQqOsGEiUKH0VfSU5LX0xJTkVfN19NSURf",
+ "VEFOS19MT1dfTEVWRUwQqesGEiUKH0VfSU5LX0xJTkVfOF9NSURfVEFOS19M",
+ "T1dfTEVWRUwQqusGEiUKH0VfSU5LX0xJTkVfOV9NSURfVEFOS19MT1dfTEVW",
+ "RUwQq+sGEiYKIEVfSU5LX0xJTkVfMTBfTUlEX1RBTktfTE9XX0xFVkVMEKzr",
+ "BhIoCiJFX0lOS19MSU5FXzFfTUlEX1RBTktfRklMTF9USU1FT1VUEK3rBhIo",
+ "CiJFX0lOS19MSU5FXzJfTUlEX1RBTktfRklMTF9USU1FT1VUEK7rBhIoCiJF",
+ "X0lOS19MSU5FXzNfTUlEX1RBTktfRklMTF9USU1FT1VUEK/rBhIoCiJFX0lO",
+ "S19MSU5FXzRfTUlEX1RBTktfRklMTF9USU1FT1VUELDrBhIoCiJFX0lOS19M",
+ "SU5FXzVfTUlEX1RBTktfRklMTF9USU1FT1VUELHrBhIoCiJFX0lOS19MSU5F",
+ "XzZfTUlEX1RBTktfRklMTF9USU1FT1VUELLrBhIoCiJFX0lOS19MSU5FXzdf",
+ "TUlEX1RBTktfRklMTF9USU1FT1VUELPrBhIoCiJFX0lOS19MSU5FXzhfTUlE",
+ "X1RBTktfRklMTF9USU1FT1VUELTrBhIoCiJFX0lOS19MSU5FXzlfTUlEX1RB",
+ "TktfRklMTF9USU1FT1VUELXrBhIpCiNFX0lOS19MSU5FXzEwX01JRF9UQU5L",
+ "X0ZJTExfVElNRU9VVBC26wYSJwohRV9JTktfTElORV8xX01JRF9UQU5LX01B",
+ "TEZVTkNUSU9OELfrBhInCiFFX0lOS19MSU5FXzJfTUlEX1RBTktfTUFMRlVO",
+ "Q1RJT04QuOsGEicKIUVfSU5LX0xJTkVfM19NSURfVEFOS19NQUxGVU5DVElP",
+ "ThC56wYSJwohRV9JTktfTElORV80X01JRF9UQU5LX01BTEZVTkNUSU9OELrr",
+ "BhInCiFFX0lOS19MSU5FXzVfTUlEX1RBTktfTUFMRlVOQ1RJT04Qu+sGEicK",
+ "IUVfSU5LX0xJTkVfNl9NSURfVEFOS19NQUxGVU5DVElPThC86wYSJwohRV9J",
+ "TktfTElORV83X01JRF9UQU5LX01BTEZVTkNUSU9OEL3rBhInCiFFX0lOS19M",
+ "SU5FXzhfTUlEX1RBTktfTUFMRlVOQ1RJT04QvusGEicKIUVfSU5LX0xJTkVf",
+ "OV9NSURfVEFOS19NQUxGVU5DVElPThC/6wYSKAoiRV9JTktfTElORV8xMF9N",
+ "SURfVEFOS19NQUxGVU5DVElPThDA6wZCIQofY29tLnR3aW5lLnRhbmdvLnBt",
+ "ci5kaWFnbm9zdGljc2IGcHJvdG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Tango.PMR.Diagnostics.EventType), }, null));
@@ -506,6 +693,18 @@ namespace Tango.PMR.Diagnostics {
/// </summary>
[pbr::OriginalName("RFID_READER_MALFUNCTION_WASTE_SLOT_2")] RfidReaderMalfunctionWasteSlot2 = 2024,
/// <summary>
+ ///Communication failure. Cannot execute job (Group = GeneralHardware, Category = Critical)
+ /// </summary>
+ [pbr::OriginalName("I2C3_COMMUNICATION_FAILURE")] I2C3CommunicationFailure = 2025,
+ /// <summary>
+ ///Communication failure. Cannot execute job (Group = GeneralHardware, Category = Critical)
+ /// </summary>
+ [pbr::OriginalName("I2C4_COMMUNICATION_FAILURE")] I2C4CommunicationFailure = 2026,
+ /// <summary>
+ ///Communication failure. Cannot execute job (Group = Transport, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("I2C_COMMUNICATION_FAILURE")] I2CCommunicationFailure = 2027,
+ /// <summary>
///Thread break. Cannot execute job (Group = ThreadFeedingSystem, Category = Error)
/// </summary>
[pbr::OriginalName("THREAD_BREAK")] ThreadBreak = 3000,
@@ -1218,6 +1417,30 @@ namespace Tango.PMR.Diagnostics {
/// </summary>
[pbr::OriginalName("DYEING_HEAD_COVER_IS_OPEN")] DyeingHeadCoverIsOpen = 5099,
/// <summary>
+ ///Dyeing head voltage is too low. Cannot execute job (Group = DyeingHead, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("DYEING_HEAD_VOLTAGE_1_TOO_LOW")] DyeingHeadVoltage1TooLow = 5100,
+ /// <summary>
+ ///Dyeing head voltage is too low. Cannot execute job (Group = DyeingHead, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("DYEING_HEAD_VOLTAGE_2_TOO_LOW")] DyeingHeadVoltage2TooLow = 5101,
+ /// <summary>
+ ///Dyeing head voltage is too low. Cannot execute job (Group = DyeingHead, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("DYEING_HEAD_VOLTAGE_3_TOO_LOW")] DyeingHeadVoltage3TooLow = 5102,
+ /// <summary>
+ ///Dyeing head voltage break. Cannot execute job (Group = DyeingHead, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("DYEING_HEAD_VOLTAGE_1_BREAK")] DyeingHeadVoltage1Break = 5103,
+ /// <summary>
+ ///Dyeing head voltage break. Cannot execute job (Group = DyeingHead, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("DYEING_HEAD_VOLTAGE_2_BREAK")] DyeingHeadVoltage2Break = 5104,
+ /// <summary>
+ ///Dyeing head voltage break. Cannot execute job (Group = DyeingHead, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("DYEING_HEAD_VOLTAGE_3_BREAK")] DyeingHeadVoltage3Break = 5105,
+ /// <summary>
///The temperature in the mixer is too high. Cannot execute job (Group = Mixer, Category = Error)
/// </summary>
[pbr::OriginalName("MIXER_OVERTEMPERATURE")] MixerOvertemperature = 6000,
@@ -1786,6 +2009,46 @@ namespace Tango.PMR.Diagnostics {
/// </summary>
[pbr::OriginalName("MID_TANK_10_FILL_TIMEOUT")] MidTank10FillTimeout = 8039,
/// <summary>
+ ///Malfunction in @ tank. Cannot fill @ ink (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("MID_TANK_1_MALFUNCTION")] MidTank1Malfunction = 8040,
+ /// <summary>
+ ///Malfunction in @ tank. Cannot fill @ ink (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("MID_TANK_2_MALFUNCTION")] MidTank2Malfunction = 8041,
+ /// <summary>
+ ///Malfunction in @ tank. Cannot fill @ ink (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("MID_TANK_3_MALFUNCTION")] MidTank3Malfunction = 8042,
+ /// <summary>
+ ///Malfunction in @ tank. Cannot fill @ ink (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("MID_TANK_4_MALFUNCTION")] MidTank4Malfunction = 8043,
+ /// <summary>
+ ///Malfunction in @ tank. Cannot fill @ ink (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("MID_TANK_5_MALFUNCTION")] MidTank5Malfunction = 8044,
+ /// <summary>
+ ///Malfunction in @ tank. Cannot fill @ ink (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("MID_TANK_6_MALFUNCTION")] MidTank6Malfunction = 8045,
+ /// <summary>
+ ///Malfunction in @ tank. Cannot fill @ ink (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("MID_TANK_7_MALFUNCTION")] MidTank7Malfunction = 8046,
+ /// <summary>
+ ///Malfunction in @ tank. Cannot fill @ ink (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("MID_TANK_8_MALFUNCTION")] MidTank8Malfunction = 8047,
+ /// <summary>
+ ///Malfunction in @ tank. Cannot fill @ ink (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("MID_TANK_9_MALFUNCTION")] MidTank9Malfunction = 8048,
+ /// <summary>
+ ///Malfunction in @ tank. Cannot fill @ ink (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("MID_TANK_10_MALFUNCTION")] MidTank10Malfunction = 8049,
+ /// <summary>
///Cannot detect air filter. Cannot execute job (Group = WasteHandlingSystem, Category = Critical)
/// </summary>
[pbr::OriginalName("AIR_FILTER_NOT_INSTALLED")] AirFilterNotInstalled = 9000,
@@ -1886,17 +2149,17 @@ namespace Tango.PMR.Diagnostics {
/// </summary>
[pbr::OriginalName("INK_CARTRIDGE_RFID_TIMEOUT")] InkCartridgeRfidTimeout = 10001,
/// <summary>
- ///No waste cartridge in system. Cannot execute job. Please insert waste cartridge (Group = InkFillingSystem, Category = Error)
+ ///No waste cartridge in system. Cannot execute job. Please insert waste cartridge (Group = InkFillingSystem, Category = Warning)
/// </summary>
[pbr::OriginalName("NO_WASTE_CARTRIDGE_AVAILABLE")] NoWasteCartridgeAvailable = 10002,
/// <summary>
- ///Both waste cartridges are full. Cannot execute job. Please replace waste cartridges (Group = InkFillingSystem, Category = Error)
+ ///Waste tank is full. Please perform waste emptying (Group = InkFillingSystem, Category = Warning)
/// </summary>
- [pbr::OriginalName("ALL_WASTE_CARTRIDGES_FULL")] AllWasteCartridgesFull = 10003,
+ [pbr::OriginalName("WASTE_TANK_FULL")] WasteTankFull = 10003,
/// <summary>
- ///Cannot detect waste cartridge. Cannot execute job (Group = InkFillingSystem, Category = Warning)
+ ///Cartridges not inserted properly. Cannot execute job (Group = InkFillingSystem, Category = Warning)
/// </summary>
- [pbr::OriginalName("WASTE_CARTRIDGE_PRESENCE_SENSOR_TIMEOUT")] WasteCartridgePresenceSensorTimeout = 10004,
+ [pbr::OriginalName("CARTRIDGES_NOT_INSERTED_PROPERLY")] CartridgesNotInsertedProperly = 10004,
/// <summary>
///Cannot identify waste cartridge. Cannot execute job (Group = InkFillingSystem, Category = Warning)
/// </summary>
@@ -1945,6 +2208,838 @@ namespace Tango.PMR.Diagnostics {
///Ink in cartridge is expired. Cannot perform ink filling (Group = InkFillingSystem, Category = Warning)
/// </summary>
[pbr::OriginalName("INK_IN_CARTRIDGE_IS_EXPIRED")] InkInCartridgeIsExpired = 10016,
+ /// <summary>
+ ///Request sent to machine or external bridge service (Group = Transport, Category = Info)
+ /// </summary>
+ [pbr::OriginalName("E_REQUEST_SENT")] ERequestSent = 101000,
+ /// <summary>
+ ///Response has been received. (Group = Transport, Category = Info)
+ /// </summary>
+ [pbr::OriginalName("E_RESPONSE_RECEIVED")] EResponseReceived = 101001,
+ /// <summary>
+ ///Request to machine has failed. (Group = Transport, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_REQUEST_FAILED")] ERequestFailed = 101002,
+ /// <summary>
+ ///Application has encountered an error (Group = Application, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_APPLICATION_EXCEPTION")] EApplicationException = 101003,
+ /// <summary>
+ ///General application event logs (Group = Application, Category = Info)
+ /// </summary>
+ [pbr::OriginalName("E_APPLICATION_INFORMATION")] EApplicationInformation = 101004,
+ /// <summary>
+ ///Application started. (Group = Application, Category = Info)
+ /// </summary>
+ [pbr::OriginalName("E_APPLICATION_STARTED")] EApplicationStarted = 101005,
+ /// <summary>
+ ///Application terminated. (Group = Application, Category = Info)
+ /// </summary>
+ [pbr::OriginalName("E_APPLICATION_TERMINATED")] EApplicationTerminated = 101006,
+ /// <summary>
+ ///Diagnostics recording started. (Group = Application, Category = Info)
+ /// </summary>
+ [pbr::OriginalName("E_RECORDING_STARTED")] ERecordingStarted = 101007,
+ /// <summary>
+ ///Diagnostics recording stopped. (Group = Application, Category = Info)
+ /// </summary>
+ [pbr::OriginalName("E_RECORDING_STOPPED")] ERecordingStopped = 101008,
+ /// <summary>
+ ///Job status message has been received from embedded device. (Group = Application, Category = Info)
+ /// </summary>
+ [pbr::OriginalName("E_JOB_STATUS")] EJobStatus = 101009,
+ /// <summary>
+ ///A job has been started. (Group = Jobs, Category = Info)
+ /// </summary>
+ [pbr::OriginalName("E_JOB_STARTED")] EJobStarted = 101010,
+ /// <summary>
+ ///A job has been aborted. (Group = Jobs, Category = Info)
+ /// </summary>
+ [pbr::OriginalName("E_JOB_ABORTED")] EJobAborted = 101011,
+ /// <summary>
+ ///A job has failed. (Group = Jobs, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_JOB_FAILED")] EJobFailed = 101012,
+ /// <summary>
+ ///Job completed successfully. (Group = Jobs, Category = Info)
+ /// </summary>
+ [pbr::OriginalName("E_JOB_COMPLETED")] EJobCompleted = 101013,
+ /// <summary>
+ ///Machine power up cannot be completed (Group = GeneralHardware, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_POWER_UP_BIT_FAILURE")] EPowerUpBitFailure = 102000,
+ /// <summary>
+ ///Machine power up cannot be completed (Group = GeneralHardware, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_MACHINE_STATE_NO_CFG_FILE")] EMachineStateNoCfgFile = 102001,
+ /// <summary>
+ ///Machine power up cannot be completed (Group = GeneralHardware, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_MACHINE_STATE_HW_CONFIG_FAILED")] EMachineStateHwConfigFailed = 102002,
+ /// <summary>
+ ///Machine power up cannot be completed (Group = GeneralHardware, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_MACHINE_STATE_NO_FLASH_FILE")] EMachineStateNoFlashFile = 102003,
+ /// <summary>
+ ///Machine power up cannot be completed (Group = GeneralHardware, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_MACHINE_STATE_NO_ALARMS_FILE")] EMachineStateNoAlarmsFile = 102004,
+ /// <summary>
+ ///The emergency button is pressed (Group = GeneralHardware, Category = Critical)
+ /// </summary>
+ [pbr::OriginalName("E_EMERGENCY_PUSH_BUTTON_PRESSED")] EEmergencyPushButtonPressed = 103001,
+ /// <summary>
+ ///The dryer door is open. Cannot execute job (Group = Safety, Category = Critical)
+ /// </summary>
+ [pbr::OriginalName("E_DRYER_DOOR_OPEN")] EDryerDoorOpen = 103002,
+ /// <summary>
+ ///Dryer thermal cutoff activated. Cannot execute job (Group = Safety, Category = Critical)
+ /// </summary>
+ [pbr::OriginalName("E_DRYER_THERMAL_CUTOFF")] EDryerThermalCutoff = 103003,
+ /// <summary>
+ ///Tunnel thermal cutoff activated. Cannot execute job (Group = Safety, Category = Critical)
+ /// </summary>
+ [pbr::OriginalName("E_TUNNEL_THERMAL_CUTOFF")] ETunnelThermalCutoff = 103004,
+ /// <summary>
+ ///Dyeing head thermal cutoff activated. Cannot execute job (Group = Safety, Category = Critical)
+ /// </summary>
+ [pbr::OriginalName("E_DYEING_HEAD_THERMAL_CUTOFF")] EDyeingHeadThermalCutoff = 103005,
+ /// <summary>
+ ///Mixer thermal cutoff activated. Cannot execute job (Group = Safety, Category = Critical)
+ /// </summary>
+ [pbr::OriginalName("E_MIXER_THERMAL_CUTOFF")] EMixerThermalCutoff = 103006,
+ /// <summary>
+ ///Lubrication thermal cutoff activated. Cannot execute job (Group = Safety, Category = Critical)
+ /// </summary>
+ [pbr::OriginalName("E_LUBRICATION_THERMAL_CUTOFF")] ELubricationThermalCutoff = 103007,
+ /// <summary>
+ ///No air flow in tunnel. Cannot execute job (Group = Safety, Category = Critical)
+ /// </summary>
+ [pbr::OriginalName("E_TUNNEL_AIR_FLOW_SWITCH")] ETunnelAirFlowSwitch = 103008,
+ /// <summary>
+ ///No Suction from recycled ink handling system. Cannot execute job (Group = Safety, Category = Critical)
+ /// </summary>
+ [pbr::OriginalName("E_WHS_AIR_FLOW_SWITCH")] EWhsAirFlowSwitch = 103009,
+ /// <summary>
+ ///Air filter not present. Cannot execute job (Group = Safety, Category = Critical)
+ /// </summary>
+ [pbr::OriginalName("E_AIR_FILTER_NOT_PRESENT")] EAirFilterNotPresent = 103010,
+ /// <summary>
+ ///Software error has occurred. Cannot execute job (Group = GeneralHardware, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_UNINTENDED_RESET")] EUnintendedReset = 104000,
+ /// <summary>
+ ///Software error has occurred. Cannot execute job (Group = GeneralHardware, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_SD_CARD_NOT_RESPONDING")] ESdCardNotResponding = 104001,
+ /// <summary>
+ ///Communication error. Cannot execute job (Group = Transport, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_NO_COMMUNICATION_WITH_BTSR_1")] ENoCommunicationWithBtsr1 = 105000,
+ /// <summary>
+ ///Communication error. Cannot execute job (Group = Transport, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_NO_COMMUNICATION_WITH_BTSR_2")] ENoCommunicationWithBtsr2 = 105001,
+ /// <summary>
+ ///Communication error. Cannot execute job (Group = Transport, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_NO_COMMUNICATION_WITH_BTSR_3")] ENoCommunicationWithBtsr3 = 105002,
+ /// <summary>
+ ///Communication error. Cannot execute job (Group = Transport, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_NO_COMMUNICATION_WITH_BTSR_4")] ENoCommunicationWithBtsr4 = 105003,
+ /// <summary>
+ ///Communication error. Cannot execute job (Group = Transport, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_NO_COMMUNICATION_WITH_DRYER_BOARD")] ENoCommunicationWithDryerBoard = 105004,
+ /// <summary>
+ ///Communication error. Cannot execute job (Group = Transport, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_NO_COMMUNICATION_WITH_DYEING_HEAD_BOARD")] ENoCommunicationWithDyeingHeadBoard = 105005,
+ /// <summary>
+ ///Communication error. Cannot execute job (Group = Transport, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_NO_COMMUNICATION_WITH_WINDER_1_BOARD")] ENoCommunicationWithWinder1Board = 105006,
+ /// <summary>
+ ///Communication error. Cannot execute job (Group = Transport, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_NO_COMMUNICATION_WITH_WINDER_2_BOARD")] ENoCommunicationWithWinder2Board = 105007,
+ /// <summary>
+ ///Communication error. Cannot execute job (Group = Transport, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_NO_COMMUNICATION_WITH_WINDER_3_BOARD")] ENoCommunicationWithWinder3Board = 105008,
+ /// <summary>
+ ///Communication error. Cannot execute job (Group = Transport, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_NO_COMMUNICATION_WITH_WINDER_4_BOARD")] ENoCommunicationWithWinder4Board = 105009,
+ /// <summary>
+ ///Communication error. Cannot execute job (Group = Transport, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_NO_COMMUNICATION_WITH_IDS_1_BOARD")] ENoCommunicationWithIds1Board = 105010,
+ /// <summary>
+ ///Communication error. Cannot execute job (Group = Transport, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_NO_COMMUNICATION_WITH_IDS_2_BOARD")] ENoCommunicationWithIds2Board = 105011,
+ /// <summary>
+ ///Communication error. Cannot execute job (Group = Transport, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_NO_COMMUNICATION_WITH_IDS_3_BOARD")] ENoCommunicationWithIds3Board = 105012,
+ /// <summary>
+ ///Communication error. Cannot execute job (Group = Transport, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_NO_COMMUNICATION_WITH_IDS_4_BOARD")] ENoCommunicationWithIds4Board = 105013,
+ /// <summary>
+ ///Communication error. Cannot execute job (Group = Transport, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_NO_COMMUNICATION_WITH_MID_TANK_BOARD")] ENoCommunicationWithMidTankBoard = 105014,
+ /// <summary>
+ ///Communication error. Cannot execute job (Group = Transport, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_NO_COMMUNICATION_WITH_WHS_BOARD")] ENoCommunicationWithWhsBoard = 105015,
+ /// <summary>
+ ///Communication error. Cannot execute job (Group = Transport, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_NO_COMMUNICATION_WITH_LUBRICANT_BOARD")] ENoCommunicationWithLubricantBoard = 105016,
+ /// <summary>
+ ///Communication error. Cannot execute job (Group = Transport, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_NO_COMMUNICATION_WITH_MAIN_BOARD")] ENoCommunicationWithMainBoard = 105017,
+ /// <summary>
+ ///Door is open. Cannot execute job (Group = GeneralHardware, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_LEFT_DOOR_OPEN")] ELeftDoorOpen = 106000,
+ /// <summary>
+ ///Door is open. Cannot execute job (Group = GeneralHardware, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_RIGHT_DOOR_OPEN")] ERightDoorOpen = 106001,
+ /// <summary>
+ ///Door is open. Cannot execute job (Group = GeneralHardware, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_TOP_DOOR_OPEN")] ETopDoorOpen = 106002,
+ /// <summary>
+ ///Tunnel lid is open. Cannot execute job (Group = GeneralHardware, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_TUNNEL_LID_IS_OPEN")] ETunnelLidIsOpen = 106003,
+ /// <summary>
+ ///Arc lid is open. Cannot execute job (Group = GeneralHardware, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_ARC_LID_IS_OPEN")] EArcLidIsOpen = 106004,
+ /// <summary>
+ ///BTSR malfunction. Cannot execute job (Group = ThreadFeedingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_BTSR_1_MALFUNCTION")] EBtsr1Malfunction = 107000,
+ /// <summary>
+ ///BTSR malfunction. Cannot execute job (Group = ThreadFeedingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_BTSR_2_MALFUNCTION")] EBtsr2Malfunction = 107001,
+ /// <summary>
+ ///BTSR malfunction. Cannot execute job (Group = ThreadFeedingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_BTSR_3_MALFUNCTION")] EBtsr3Malfunction = 107002,
+ /// <summary>
+ ///BTSR malfunction. Cannot execute job (Group = ThreadFeedingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_BTSR_4_MALFUNCTION")] EBtsr4Malfunction = 107003,
+ /// <summary>
+ ///Tension is out of range. Cannot execute job (Group = ThreadFeedingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_TENSION_IN_BTSR_1_IS_OUT_OF_RANGE")] ETensionInBtsr1IsOutOfRange = 107004,
+ /// <summary>
+ ///Tension is out of range. Cannot execute job (Group = ThreadFeedingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_TENSION_IN_BTSR_2_IS_OUT_OF_RANGE")] ETensionInBtsr2IsOutOfRange = 107005,
+ /// <summary>
+ ///Tension is out of range. Cannot execute job (Group = ThreadFeedingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_TENSION_IN_BTSR_3_IS_OUT_OF_RANGE")] ETensionInBtsr3IsOutOfRange = 107006,
+ /// <summary>
+ ///Tension is out of range. Cannot execute job (Group = ThreadFeedingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_TENSION_IN_BTSR_4_IS_OUT_OF_RANGE")] ETensionInBtsr4IsOutOfRange = 107007,
+ /// <summary>
+ ///Thread break. Cannot execute job (Group = ThreadFeedingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_THREAD_BREAK")] EThreadBreak = 107008,
+ /// <summary>
+ ///Thread tension control failure. Cannot execute job (Group = ThreadFeedingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_DANCER_1_TENSION_CONTROL_FAILURE")] EDancer1TensionControlFailure = 107009,
+ /// <summary>
+ ///Thread tension control failure. Cannot execute job (Group = ThreadFeedingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_DANCER_2_TENSION_CONTROL_FAILURE")] EDancer2TensionControlFailure = 107010,
+ /// <summary>
+ ///Thread tension control failure. Cannot execute job (Group = ThreadFeedingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_DANCER_3_TENSION_CONTROL_FAILURE")] EDancer3TensionControlFailure = 107011,
+ /// <summary>
+ ///Thread tension control failure. Cannot execute job (Group = ThreadFeedingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_DANCER_4_TENSION_CONTROL_FAILURE")] EDancer4TensionControlFailure = 107012,
+ /// <summary>
+ ///Thread loading error. Cannot execute job (Group = ThreadFeedingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_THREAD_LOADING_ERROR")] EThreadLoadingError = 107013,
+ /// <summary>
+ ///Gripper malfunction. Cannot execute job (Group = ThreadFeedingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_GRIPPER_MALFUNCTION")] EGripperMalfunction = 107014,
+ /// <summary>
+ ///Thread missing. Cannot execute job (Group = ThreadFeedingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_THREAD_MISSING")] EThreadMissing = 107015,
+ /// <summary>
+ ///Temperature in dyeing head is too high. Cannot execute job (Group = DyeingHead, Category = Critical)
+ /// </summary>
+ [pbr::OriginalName("E_DYEING_HEAD_ZONE_1_OVERTEMPERATURE")] EDyeingHeadZone1Overtemperature = 108000,
+ /// <summary>
+ ///Temperature in dyeing head is too high. Cannot execute job (Group = DyeingHead, Category = Critical)
+ /// </summary>
+ [pbr::OriginalName("E_DYEING_HEAD_ZONE_2_OVERTEMPERATURE")] EDyeingHeadZone2Overtemperature = 108001,
+ /// <summary>
+ ///Temperature in dyeing head is too high. Cannot execute job (Group = DyeingHead, Category = Critical)
+ /// </summary>
+ [pbr::OriginalName("E_DYEING_HEAD_ZONE_3_OVERTEMPERATURE")] EDyeingHeadZone3Overtemperature = 108002,
+ /// <summary>
+ ///Temperature in mixer is too high. Cannot execute job (Group = Mixer, Category = Critical)
+ /// </summary>
+ [pbr::OriginalName("E_MIXER_1_OVERTEMPERATURE")] EMixer1Overtemperature = 108003,
+ /// <summary>
+ ///Temperature in mixer is too high. Cannot execute job (Group = Mixer, Category = Critical)
+ /// </summary>
+ [pbr::OriginalName("E_MIXER_2_OVERTEMPERATURE")] EMixer2Overtemperature = 108004,
+ /// <summary>
+ ///Temperature in tunnel is too high. Cannot execute job (Group = DyeingHead, Category = Critical)
+ /// </summary>
+ [pbr::OriginalName("E_TUNNEL_OVERTEMPERATURE")] ETunnelOvertemperature = 108005,
+ /// <summary>
+ ///Temperature in dryer is too high. Cannot execute job (Group = Dryer, Category = Critical)
+ /// </summary>
+ [pbr::OriginalName("E_DRYER_HEATER_1_OVERTEMPERATURE")] EDryerHeater1Overtemperature = 108007,
+ /// <summary>
+ ///Temperature in dryer is too high. Cannot execute job (Group = Dryer, Category = Critical)
+ /// </summary>
+ [pbr::OriginalName("E_DRYER_HEATER_2_OVERTEMPERATURE")] EDryerHeater2Overtemperature = 108008,
+ /// <summary>
+ ///Temperature in dryer is too high. Cannot execute job (Group = Dryer, Category = Critical)
+ /// </summary>
+ [pbr::OriginalName("E_DRYER_HEATER_3_OVERTEMPERATURE")] EDryerHeater3Overtemperature = 108009,
+ /// <summary>
+ ///Temperature in lubricant is too high. Cannot execute job (Group = Mixer, Category = Critical)
+ /// </summary>
+ [pbr::OriginalName("E_LUBRICANT_OVERTEMPERATURE")] ELubricantOvertemperature = 108010,
+ /// <summary>
+ ///Dyeing head is heating up. Cannot execute job (Group = DyeingHead, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_DYEING_HEAD_ZONE_1_UNDERTEMPERATURE_A")] EDyeingHeadZone1UndertemperatureA = 108011,
+ /// <summary>
+ ///Dyeing head is heating up. Cannot execute job (Group = DyeingHead, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_DYEING_HEAD_ZONE_2_UNDERTEMPERATURE_A")] EDyeingHeadZone2UndertemperatureA = 108012,
+ /// <summary>
+ ///Dyeing head is heating up. Cannot execute job (Group = DyeingHead, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_DYEING_HEAD_ZONE_3_UNDERTEMPERATURE_A")] EDyeingHeadZone3UndertemperatureA = 108013,
+ /// <summary>
+ ///Mixer is heating up. Cannot execute job (Group = Mixer, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_MIXER_1_UNDERTEMPERATURE_A")] EMixer1UndertemperatureA = 108014,
+ /// <summary>
+ ///Mixer is heating up. Cannot execute job (Group = Mixer, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_MIXER_2_UNDERTEMPERATURE_A")] EMixer2UndertemperatureA = 108015,
+ /// <summary>
+ ///Tunnel is heating up. Cannot execute job (Group = DyeingHead, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_TUNNEL_UNDERTEMPERATURE_A")] ETunnelUndertemperatureA = 108016,
+ /// <summary>
+ ///Dryer is heating up. Cannot execute job (Group = Dryer, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_DRYER_HEATER_1_UNDERTEMPERATURE_A")] EDryerHeater1UndertemperatureA = 108017,
+ /// <summary>
+ ///Dryer is heating up. Cannot execute job (Group = Dryer, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_DRYER_HEATER_2_UNDERTEMPERATURE_A")] EDryerHeater2UndertemperatureA = 108018,
+ /// <summary>
+ ///Dryer is heating up. Cannot execute job (Group = Dryer, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_DRYER_HEATER_3_UNDERTEMPERATURE_A")] EDryerHeater3UndertemperatureA = 108019,
+ /// <summary>
+ ///Lubricant is heating up. Cannot execute job (Group = Mixer, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_LUBRICANT_UNDERTEMPERATURE_A")] ELubricantUndertemperatureA = 108020,
+ /// <summary>
+ ///Temperature in dyeing head is too low. Cannot execute job (Group = DyeingHead, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_DYEING_HEAD_ZONE_1_UNDRTEMPERATURE_B")] EDyeingHeadZone1UndrtemperatureB = 108021,
+ /// <summary>
+ ///Temperature in dyeing head is too low. Cannot execute job (Group = DyeingHead, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_DYEING_HEAD_ZONE_2_UNDERTEMPERATURE_B")] EDyeingHeadZone2UndertemperatureB = 108022,
+ /// <summary>
+ ///Temperature in dyeing head is too low. Cannot execute job (Group = DyeingHead, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_DYEING_HEAD_ZONE_3_UNDERTEMPERATURE_B")] EDyeingHeadZone3UndertemperatureB = 108023,
+ /// <summary>
+ ///Temperature in mixer is too low. Cannot execute job (Group = Mixer, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_MIXER_1_UNDERTEMPERATURE_B")] EMixer1UndertemperatureB = 108024,
+ /// <summary>
+ ///Temperature in mixer is too low. Cannot execute job (Group = Mixer, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_MIXER_2_UNDERTEMPERATURE_B")] EMixer2UndertemperatureB = 108025,
+ /// <summary>
+ ///Temperature in tunnel is too low. Cannot execute job (Group = DyeingHead, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_TUNNEL_UNDERTEMPERATURE_B")] ETunnelUndertemperatureB = 108026,
+ /// <summary>
+ ///Temperature in dryer is too low. Cannot execute job (Group = Dryer, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_DRYER_HEATER_1_UNDERTEMPERATURE_B")] EDryerHeater1UndertemperatureB = 108027,
+ /// <summary>
+ ///Temperature in dryer is too low. Cannot execute job (Group = Dryer, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_DRYER_HEATER_2_UNDERTEMPERATURE_B")] EDryerHeater2UndertemperatureB = 108028,
+ /// <summary>
+ ///Temperature in dryer is too low. Cannot execute job (Group = Dryer, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_DRYER_HEATER_3_UNDERTEMPERATURE_B")] EDryerHeater3UndertemperatureB = 108029,
+ /// <summary>
+ ///Temperature in lubricant is too low. Cannot execute job (Group = Mixer, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_LUBRICANT_UNDERTEMPERATURE_B")] ELubricantUndertemperatureB = 108030,
+ /// <summary>
+ ///Cooler temperature is too high. Cannot execute job (Group = WasteHandlingSystem, Category = Critical)
+ /// </summary>
+ [pbr::OriginalName("E_WHS_1_COOLER_TEMPERATURE_IS_TOO_HIGH")] EWhs1CoolerTemperatureIsTooHigh = 108031,
+ /// <summary>
+ ///Cooler temperature is too low. Cannot execute job (Group = WasteHandlingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_WHS_1_COOLER_TEMPERATURE_IS_TOO_LOW")] EWhs1CoolerTemperatureIsTooLow = 108032,
+ /// <summary>
+ ///Cooler temperature is too high. Cannot execute job (Group = WasteHandlingSystem, Category = Critical)
+ /// </summary>
+ [pbr::OriginalName("E_WHS_2_COOLER_TEMPERATURE_IS_TOO_HIGH")] EWhs2CoolerTemperatureIsTooHigh = 108033,
+ /// <summary>
+ ///Cooler temperature is too low. Cannot execute job (Group = WasteHandlingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_WHS_2_COOLER_TEMPERATURE_IS_TOO_LOW")] EWhs2CoolerTemperatureIsTooLow = 108034,
+ /// <summary>
+ ///Temperature measurement error has occurred. Cannot execute job (Group = GeneralHardware, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_TEMPERATURE_MEASUREMENT_ERROR")] ETemperatureMeasurementError = 108035,
+ /// <summary>
+ ///Dryer internal temperature is too low. Cannot execute job (Group = Dryer, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_DRYER_INTERNAL_TEMPERATURE_TOO_LOW")] EDryerInternalTemperatureTooLow = 108036,
+ /// <summary>
+ ///Dyeing head zone current is out of range. Cannot execute job (Group = DyeingHead, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_DYEING_HEAD_ZONE_1_CURRENT_OUT_OF_RANGE")] EDyeingHeadZone1CurrentOutOfRange = 109000,
+ /// <summary>
+ ///Dyeing head zone current is out of range. Cannot execute job (Group = DyeingHead, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_DYEING_HEAD_ZONE_2_CURRENT_OUT_OF_RANGE")] EDyeingHeadZone2CurrentOutOfRange = 109001,
+ /// <summary>
+ ///Dyeing head zone current is out of range. Cannot execute job (Group = DyeingHead, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_DYEING_HEAD_ZONE_3_CURRENT_OUT_OF_RANGE")] EDyeingHeadZone3CurrentOutOfRange = 109002,
+ /// <summary>
+ ///Mixer heater current is out of range. Cannot execute job (Group = Mixer, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_MIXER_1_HEATER_CURRENT_OUT_OF_RANGE")] EMixer1HeaterCurrentOutOfRange = 109003,
+ /// <summary>
+ ///Mixer heater current is out of range. Cannot execute job (Group = Mixer, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_MIXER_2_HEATER_CURRENT_OUT_OF_RANGE")] EMixer2HeaterCurrentOutOfRange = 109004,
+ /// <summary>
+ ///Tunnel heater current is out of range. Cannot execute job (Group = DyeingHead, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_TUNNEL_HEATER_CURRENT_OUT_OF_RANGE")] ETunnelHeaterCurrentOutOfRange = 109005,
+ /// <summary>
+ ///Dryer heater current is out of range. Cannot execute job (Group = Dryer, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_DRYER_HEATER_1_CURRENT_OUT_OF_RANGE")] EDryerHeater1CurrentOutOfRange = 109006,
+ /// <summary>
+ ///Dryer heater current is out of range. Cannot execute job (Group = Dryer, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_DRYER_HEATER_2_CURRENT_OUT_OF_RANGE")] EDryerHeater2CurrentOutOfRange = 109007,
+ /// <summary>
+ ///Dryer heater current is out of range. Cannot execute job (Group = Dryer, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_DRYER_HEATER_3_CURRENT_OUT_OF_RANGE")] EDryerHeater3CurrentOutOfRange = 109008,
+ /// <summary>
+ ///Lubricant heater current is out of range. Cannot execute job (Group = Mixer, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_LUBRICANT_HEATER_CURRENT_OUT_OF_RANGE")] ELubricantHeaterCurrentOutOfRange = 109009,
+ /// <summary>
+ ///Dyeing head zone current loop break. Cannot execute job (Group = DyeingHead, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_DYEING_HEAD_ZONE_1_CURRENT_LOOP_BREAK")] EDyeingHeadZone1CurrentLoopBreak = 109010,
+ /// <summary>
+ ///Dyeing head zone current loop break. Cannot execute job (Group = DyeingHead, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_DYEING_HEAD_ZONE_2_CURRENT_LOOP_BREAK")] EDyeingHeadZone2CurrentLoopBreak = 109011,
+ /// <summary>
+ ///Dyeing head zone current loop break. Cannot execute job (Group = DyeingHead, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_DYEING_HEAD_ZONE_3_CURRENT_LOOP_BREAK")] EDyeingHeadZone3CurrentLoopBreak = 109012,
+ /// <summary>
+ ///Mixer heater current loop break. Cannot execute job (Group = Mixer, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_MIXER_1_HEATER_CURRENT_LOOP_BREAK")] EMixer1HeaterCurrentLoopBreak = 109013,
+ /// <summary>
+ ///Mixer heater current loop break. Cannot execute job (Group = Mixer, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_MIXER_2_HEATER_CURRENT_LOOP_BREAK")] EMixer2HeaterCurrentLoopBreak = 109014,
+ /// <summary>
+ ///Tunnel heater current loop break. Cannot execute job (Group = DyeingHead, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_TUNNEL_HEATER_CURRENT_LOOP_BREAK")] ETunnelHeaterCurrentLoopBreak = 109015,
+ /// <summary>
+ ///Dryer heater current loop break. Cannot execute job (Group = Dryer, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_DRYER_HEATER_1_CURRENT_LOOP_BREAK")] EDryerHeater1CurrentLoopBreak = 109016,
+ /// <summary>
+ ///Dryer heater current loop break. Cannot execute job (Group = Dryer, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_DRYER_HEATER_2_CURRENT_LOOP_BREAK")] EDryerHeater2CurrentLoopBreak = 109017,
+ /// <summary>
+ ///Dryer heater current loop break. Cannot execute job (Group = Dryer, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_DRYER_HEATER_3_CURRENT_LOOP_BREAK")] EDryerHeater3CurrentLoopBreak = 109018,
+ /// <summary>
+ ///Lubricant heater current loop break. Cannot execute job (Group = Mixer, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_LUBRICANT_HEATER_CURRENT_LOOP_BREAK")] ELubricantHeaterCurrentLoopBreak = 109019,
+ /// <summary>
+ ///Dryer main motor malfuncion. Cannot execute job (Group = ThreadFeedingSystem, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_DRYER_MAIN_MOTOR_MALFUNCTION")] EDryerMainMotorMalfunction = 110000,
+ /// <summary>
+ ///Dryer thread loading motor malfuncion. Cannot execute job (Group = ThreadFeedingSystem, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_DRYER_THREAD_LOADING_MOTOR_MALFUNCTION")] EDryerThreadLoadingMotorMalfunction = 110001,
+ /// <summary>
+ ///Winder 1 motor malfuncion. Cannot execute job (Group = ThreadFeedingSystem, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_WINDER_1_MOTOR_MALFUNCTION")] EWinder1MotorMalfunction = 110002,
+ /// <summary>
+ ///Winder 2 motor malfuncion. Cannot execute job (Group = ThreadFeedingSystem, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_WINDER_2_MOTOR_MALFUNCTION")] EWinder2MotorMalfunction = 110003,
+ /// <summary>
+ ///Winder 3 motor malfuncion. Cannot execute job (Group = ThreadFeedingSystem, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_WINDER_3_MOTOR_MALFUNCTION")] EWinder3MotorMalfunction = 110004,
+ /// <summary>
+ ///Winder 4 motor malfuncion. Cannot execute job (Group = ThreadFeedingSystem, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_WINDER_4_MOTOR_MALFUNCTION")] EWinder4MotorMalfunction = 110005,
+ /// <summary>
+ ///Dancer 1 motor malfuncion. Cannot execute job (Group = ThreadFeedingSystem, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_DANCER_1_MOTOR_MALFUNCTION")] EDancer1MotorMalfunction = 110006,
+ /// <summary>
+ ///Dancer 2 motor malfuncion. Cannot execute job (Group = ThreadFeedingSystem, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_DANCER_2_MOTOR_MALFUNCTION")] EDancer2MotorMalfunction = 110007,
+ /// <summary>
+ ///Dancer 3 motor malfuncion. Cannot execute job (Group = ThreadFeedingSystem, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_DANCER_3_MOTOR_MALFUNCTION")] EDancer3MotorMalfunction = 110008,
+ /// <summary>
+ ///Dancer 4 motor malfuncion. Cannot execute job (Group = ThreadFeedingSystem, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_DANCER_4_MOTOR_MALFUNCTION")] EDancer4MotorMalfunction = 110009,
+ /// <summary>
+ ///Dyeing head cleaner motor malfuncion. Cannot execute job (Group = DyeingHead, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_DYEING_HEAD_CLEANER_MOTOR_MALFUNCTION")] EDyeingHeadCleanerMotorMalfunction = 110010,
+ /// <summary>
+ ///No suction. Cannot execute job. (Group = WasteHandlingSystem, Category = Critical)
+ /// </summary>
+ [pbr::OriginalName("E_NO_SUCTION")] ENoSuction = 111000,
+ /// <summary>
+ ///Dryer blower flow is too low. Cannot execute job (Group = Dryer, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_DRYER_BLOWER_FLOW_TOO_LOW")] EDryerBlowerFlowTooLow = 111001,
+ /// <summary>
+ ///Tunnel blower flow is too low. Cannot execute job (Group = DyeingHead, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_TUNNEL_BLOWER_FLOW_TOO_LOW")] ETunnelBlowerFlowTooLow = 111002,
+ /// <summary>
+ ///Insufficient suction fron WHS. Cannot execute job (Group = WasteHandlingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INSUFFICIENT_WHS_SUCTION")] EInsufficientWhsSuction = 111003,
+ /// <summary>
+ ///Air filter is clogged. Cannot execute job (Group = WasteHandlingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_AIR_FILTER_CLOGGED")] EAirFilterClogged = 111004,
+ /// <summary>
+ ///No circulation flow in blower. Cannot execute job (Group = Dryer, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_NO_CIRCULATION_FLOW_IN_DRYER")] ENoCirculationFlowInDryer = 111005,
+ /// <summary>
+ ///Pressure in @ ink line too high. Cannot execute job (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_1_PRESSURE_TOO_HIGH")] EInkLine1PressureTooHigh = 112000,
+ /// <summary>
+ ///Pressure in @ ink line too high. Cannot execute job (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_2_PRESSURE_TOO_HIGH")] EInkLine2PressureTooHigh = 112001,
+ /// <summary>
+ ///Pressure in @ ink line too high. Cannot execute job (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_3_PRESSURE_TOO_HIGH")] EInkLine3PressureTooHigh = 112002,
+ /// <summary>
+ ///Pressure in @ ink line too high. Cannot execute job (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_4_PRESSURE_TOO_HIGH")] EInkLine4PressureTooHigh = 112003,
+ /// <summary>
+ ///Pressure in @ ink line too high. Cannot execute job (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_5_PRESSURE_TOO_HIGH")] EInkLine5PressureTooHigh = 112004,
+ /// <summary>
+ ///Pressure in @ ink line too high. Cannot execute job (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_6_PRESSURE_TOO_HIGH")] EInkLine6PressureTooHigh = 112005,
+ /// <summary>
+ ///Pressure in @ ink line too high. Cannot execute job (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_7_PRESSURE_TOO_HIGH")] EInkLine7PressureTooHigh = 112006,
+ /// <summary>
+ ///Pressure in @ ink line too high. Cannot execute job (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_8_PRESSURE_TOO_HIGH")] EInkLine8PressureTooHigh = 112007,
+ /// <summary>
+ ///Pressure in @ ink line too high. Cannot execute job (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_9_PRESSURE_TOO_HIGH")] EInkLine9PressureTooHigh = 112008,
+ /// <summary>
+ ///Pressure in @ ink line too high. Cannot execute job (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_10_PRESSURE_TOO_HIGH")] EInkLine10PressureTooHigh = 112009,
+ /// <summary>
+ ///Pressure in @ ink line too low. Cannot execute job (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_1_PRESSURE_TOO_LOW")] EInkLine1PressureTooLow = 112010,
+ /// <summary>
+ ///Pressure in @ ink line too low. Cannot execute job (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_2_PRESSURE_TOO_LOW")] EInkLine2PressureTooLow = 112011,
+ /// <summary>
+ ///Pressure in @ ink line too low. Cannot execute job (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_3_PRESSURE_TOO_LOW")] EInkLine3PressureTooLow = 112012,
+ /// <summary>
+ ///Pressure in @ ink line too low. Cannot execute job (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_4_PRESSURE_TOO_LOW")] EInkLine4PressureTooLow = 112013,
+ /// <summary>
+ ///Pressure in @ ink line too low. Cannot execute job (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_5_PRESSURE_TOO_LOW")] EInkLine5PressureTooLow = 112014,
+ /// <summary>
+ ///Pressure in @ ink line too low. Cannot execute job (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_6_PRESSURE_TOO_LOW")] EInkLine6PressureTooLow = 112015,
+ /// <summary>
+ ///Pressure in @ ink line too low. Cannot execute job (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_7_PRESSURE_TOO_LOW")] EInkLine7PressureTooLow = 112016,
+ /// <summary>
+ ///Pressure in @ ink line too low. Cannot execute job (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_8_PRESSURE_TOO_LOW")] EInkLine8PressureTooLow = 112017,
+ /// <summary>
+ ///Pressure in @ ink line too low. Cannot execute job (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_9_PRESSURE_TOO_LOW")] EInkLine9PressureTooLow = 112018,
+ /// <summary>
+ ///Pressure in @ ink line too low. Cannot execute job (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_10_PRESSURE_TOO_LOW")] EInkLine10PressureTooLow = 112019,
+ /// <summary>
+ ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_PUMP_1_MALFUNCTION")] EInkPump1Malfunction = 112020,
+ /// <summary>
+ ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_PUMP_2_MALFUNCTION")] EInkPump2Malfunction = 112021,
+ /// <summary>
+ ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_PUMP_3_MALFUNCTION")] EInkPump3Malfunction = 112022,
+ /// <summary>
+ ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_PUMP_4_MALFUNCTION")] EInkPump4Malfunction = 112023,
+ /// <summary>
+ ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_PUMP_5_MALFUNCTION")] EInkPump5Malfunction = 112024,
+ /// <summary>
+ ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_PUMP_6_MALFUNCTION")] EInkPump6Malfunction = 112025,
+ /// <summary>
+ ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_PUMP_7_MALFUNCTION")] EInkPump7Malfunction = 112026,
+ /// <summary>
+ ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_PUMP_8_MALFUNCTION")] EInkPump8Malfunction = 112027,
+ /// <summary>
+ ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_PUMP_9_MALFUNCTION")] EInkPump9Malfunction = 112028,
+ /// <summary>
+ ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_PUMP_10_MALFUNCTION")] EInkPump10Malfunction = 112029,
+ /// <summary>
+ ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_PUMP_11_MALFUNCTION")] EInkPump11Malfunction = 112030,
+ /// <summary>
+ ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_PUMP_12_MALFUNCTION")] EInkPump12Malfunction = 112031,
+ /// <summary>
+ ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_PUMP_13_MALFUNCTION")] EInkPump13Malfunction = 112032,
+ /// <summary>
+ ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_PUMP_14_MALFUNCTION")] EInkPump14Malfunction = 112033,
+ /// <summary>
+ ///Malfunction in @ ink pump. Cannot execute job (Group = InkDeliverySystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_PUMP_15_MALFUNCTION")] EInkPump15Malfunction = 112034,
+ /// <summary>
+ ///The @ tank level is low (Group = InkFillingSystem, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_1_MID_TANK_LOW_LEVEL")] EInkLine1MidTankLowLevel = 112035,
+ /// <summary>
+ ///The @ tank level is low (Group = InkFillingSystem, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_2_MID_TANK_LOW_LEVEL")] EInkLine2MidTankLowLevel = 112036,
+ /// <summary>
+ ///The @ tank level is low (Group = InkFillingSystem, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_3_MID_TANK_LOW_LEVEL")] EInkLine3MidTankLowLevel = 112037,
+ /// <summary>
+ ///The @ tank level is low (Group = InkFillingSystem, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_4_MID_TANK_LOW_LEVEL")] EInkLine4MidTankLowLevel = 112038,
+ /// <summary>
+ ///The @ tank level is low (Group = InkFillingSystem, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_5_MID_TANK_LOW_LEVEL")] EInkLine5MidTankLowLevel = 112039,
+ /// <summary>
+ ///The @ tank level is low (Group = InkFillingSystem, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_6_MID_TANK_LOW_LEVEL")] EInkLine6MidTankLowLevel = 112040,
+ /// <summary>
+ ///The @ tank level is low (Group = InkFillingSystem, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_7_MID_TANK_LOW_LEVEL")] EInkLine7MidTankLowLevel = 112041,
+ /// <summary>
+ ///The @ tank level is low (Group = InkFillingSystem, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_8_MID_TANK_LOW_LEVEL")] EInkLine8MidTankLowLevel = 112042,
+ /// <summary>
+ ///The @ tank level is low (Group = InkFillingSystem, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_9_MID_TANK_LOW_LEVEL")] EInkLine9MidTankLowLevel = 112043,
+ /// <summary>
+ ///The @ tank level is low (Group = InkFillingSystem, Category = Warning)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_10_MID_TANK_LOW_LEVEL")] EInkLine10MidTankLowLevel = 112044,
+ /// <summary>
+ ///Failed to fill @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_1_MID_TANK_FILL_TIMEOUT")] EInkLine1MidTankFillTimeout = 112045,
+ /// <summary>
+ ///Failed to fill @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_2_MID_TANK_FILL_TIMEOUT")] EInkLine2MidTankFillTimeout = 112046,
+ /// <summary>
+ ///Failed to fill @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_3_MID_TANK_FILL_TIMEOUT")] EInkLine3MidTankFillTimeout = 112047,
+ /// <summary>
+ ///Failed to fill @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_4_MID_TANK_FILL_TIMEOUT")] EInkLine4MidTankFillTimeout = 112048,
+ /// <summary>
+ ///Failed to fill @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_5_MID_TANK_FILL_TIMEOUT")] EInkLine5MidTankFillTimeout = 112049,
+ /// <summary>
+ ///Failed to fill @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_6_MID_TANK_FILL_TIMEOUT")] EInkLine6MidTankFillTimeout = 112050,
+ /// <summary>
+ ///Failed to fill @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_7_MID_TANK_FILL_TIMEOUT")] EInkLine7MidTankFillTimeout = 112051,
+ /// <summary>
+ ///Failed to fill @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_8_MID_TANK_FILL_TIMEOUT")] EInkLine8MidTankFillTimeout = 112052,
+ /// <summary>
+ ///Failed to fill @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_9_MID_TANK_FILL_TIMEOUT")] EInkLine9MidTankFillTimeout = 112053,
+ /// <summary>
+ ///Failed to fill @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_10_MID_TANK_FILL_TIMEOUT")] EInkLine10MidTankFillTimeout = 112054,
+ /// <summary>
+ ///Malfunction in @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_1_MID_TANK_MALFUNCTION")] EInkLine1MidTankMalfunction = 112055,
+ /// <summary>
+ ///Malfunction in @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_2_MID_TANK_MALFUNCTION")] EInkLine2MidTankMalfunction = 112056,
+ /// <summary>
+ ///Malfunction in @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_3_MID_TANK_MALFUNCTION")] EInkLine3MidTankMalfunction = 112057,
+ /// <summary>
+ ///Malfunction in @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_4_MID_TANK_MALFUNCTION")] EInkLine4MidTankMalfunction = 112058,
+ /// <summary>
+ ///Malfunction in @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_5_MID_TANK_MALFUNCTION")] EInkLine5MidTankMalfunction = 112059,
+ /// <summary>
+ ///Malfunction in @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_6_MID_TANK_MALFUNCTION")] EInkLine6MidTankMalfunction = 112060,
+ /// <summary>
+ ///Malfunction in @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_7_MID_TANK_MALFUNCTION")] EInkLine7MidTankMalfunction = 112061,
+ /// <summary>
+ ///Malfunction in @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_8_MID_TANK_MALFUNCTION")] EInkLine8MidTankMalfunction = 112062,
+ /// <summary>
+ ///Malfunction in @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_9_MID_TANK_MALFUNCTION")] EInkLine9MidTankMalfunction = 112063,
+ /// <summary>
+ ///Malfunction in @ tank. Cannot execute job (Group = InkFillingSystem, Category = Error)
+ /// </summary>
+ [pbr::OriginalName("E_INK_LINE_10_MID_TANK_MALFUNCTION")] EInkLine10MidTankMalfunction = 112064,
}
#endregion
diff --git a/Software/Visual_Studio/Tango.PMR/Diagnostics/HeaterType.cs b/Software/Visual_Studio/Tango.PMR/Diagnostics/HeaterType.cs
index 304e0ebe6..b9da0fdd6 100644
--- a/Software/Visual_Studio/Tango.PMR/Diagnostics/HeaterType.cs
+++ b/Software/Visual_Studio/Tango.PMR/Diagnostics/HeaterType.cs
@@ -22,7 +22,7 @@ namespace Tango.PMR.Diagnostics {
static HeaterTypeReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
- "ChBIZWF0ZXJUeXBlLnByb3RvEhVUYW5nby5QTVIuRGlhZ25vc3RpY3Mq2wIK",
+ "ChBIZWF0ZXJUeXBlLnByb3RvEhVUYW5nby5QTVIuRGlhZ25vc3RpY3MqxgQK",
"CkhlYXRlclR5cGUSEgoORHJ5ZXJBaXJIZWF0ZXIQABITCg9Ecnllck1haW5I",
"ZWF0ZXIQARIYChREcnllclNlY29uZGFyeUhlYXRlchACEg8KC0hlYXRlclpv",
"bmUxEAMSDwoLSGVhdGVyWm9uZTIQBBIPCgtIZWF0ZXJab25lMxAFEg8KC0hl",
@@ -30,8 +30,13 @@ namespace Tango.PMR.Diagnostics {
"Eg8KC01peGVySGVhdGVyEAkSDwoLSGVhdGVyWm9uZTcQChIPCgtIZWF0ZXJa",
"b25lOBALEg8KC0hlYXRlclpvbmU5EAwSEAoMSGVhdGVyWm9uZTEwEA0SEAoM",
"SGVhdGVyWm9uZTExEA4SEAoMSGVhdGVyWm9uZTEyEA8SFAoQSGVhZENvdmVy",
- "SGVhdGVyMRAQEhQKEEhlYWRDb3ZlckhlYXRlcjIQEUIhCh9jb20udHdpbmUu",
- "dGFuZ28ucG1yLmRpYWdub3N0aWNzYgZwcm90bzM="));
+ "SGVhdGVyMRAQEhQKEEhlYWRDb3ZlckhlYXRlcjIQERIVChBFX0RSWUVSX0hF",
+ "QVRFUl8xEOgHEhUKEEVfRFJZRVJfSEVBVEVSXzIQ6QcSFQoQRV9EUllFUl9I",
+ "RUFURVJfMxDqBxIUCg9FX0hFQURfSEVBVEVSXzEQ6wcSFAoPRV9IRUFEX0hF",
+ "QVRFUl8yEOwHEhQKD0VfSEVBRF9IRUFURVJfMxDtBxITCg5FX01JWEVSX0hF",
+ "QVRFUhDuBxIUCg9FX1RVTk5FTF9IRUFURVIQ7wcSFwoSRV9MVUJSSUNBTlRf",
+ "SEVBVEVSEPAHEg4KCUVfU1BBUkVfMRDxBxIOCglFX1NQQVJFXzIQ8gdCIQof",
+ "Y29tLnR3aW5lLnRhbmdvLnBtci5kaWFnbm9zdGljc2IGcHJvdG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Tango.PMR.Diagnostics.HeaterType), }, null));
@@ -59,6 +64,17 @@ namespace Tango.PMR.Diagnostics {
[pbr::OriginalName("HeaterZone12")] HeaterZone12 = 15,
[pbr::OriginalName("HeadCoverHeater1")] HeadCoverHeater1 = 16,
[pbr::OriginalName("HeadCoverHeater2")] HeadCoverHeater2 = 17,
+ [pbr::OriginalName("E_DRYER_HEATER_1")] EDryerHeater1 = 1000,
+ [pbr::OriginalName("E_DRYER_HEATER_2")] EDryerHeater2 = 1001,
+ [pbr::OriginalName("E_DRYER_HEATER_3")] EDryerHeater3 = 1002,
+ [pbr::OriginalName("E_HEAD_HEATER_1")] EHeadHeater1 = 1003,
+ [pbr::OriginalName("E_HEAD_HEATER_2")] EHeadHeater2 = 1004,
+ [pbr::OriginalName("E_HEAD_HEATER_3")] EHeadHeater3 = 1005,
+ [pbr::OriginalName("E_MIXER_HEATER")] EMixerHeater = 1006,
+ [pbr::OriginalName("E_TUNNEL_HEATER")] ETunnelHeater = 1007,
+ [pbr::OriginalName("E_LUBRICANT_HEATER")] ELubricantHeater = 1008,
+ [pbr::OriginalName("E_SPARE_1")] ESpare1 = 1009,
+ [pbr::OriginalName("E_SPARE_2")] ESpare2 = 1010,
}
#endregion
diff --git a/Software/Visual_Studio/Tango.PMR/Diagnostics/ResetCardRequest.cs b/Software/Visual_Studio/Tango.PMR/Diagnostics/ResetCardRequest.cs
new file mode 100644
index 000000000..8c98366a4
--- /dev/null
+++ b/Software/Visual_Studio/Tango.PMR/Diagnostics/ResetCardRequest.cs
@@ -0,0 +1,159 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: ResetCardRequest.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.Protobuf;
+using pbc = global::Google.Protobuf.Collections;
+using pbr = global::Google.Protobuf.Reflection;
+using scg = global::System.Collections.Generic;
+namespace Tango.PMR.Diagnostics {
+
+ /// <summary>Holder for reflection information generated from ResetCardRequest.proto</summary>
+ public static partial class ResetCardRequestReflection {
+
+ #region Descriptor
+ /// <summary>File descriptor for ResetCardRequest.proto</summary>
+ public static pbr::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbr::FileDescriptor descriptor;
+
+ static ResetCardRequestReflection() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "ChZSZXNldENhcmRSZXF1ZXN0LnByb3RvEhVUYW5nby5QTVIuRGlhZ25vc3Rp",
+ "Y3MiIgoQUmVzZXRDYXJkUmVxdWVzdBIOCgZDYXJkSUQYASABKAVCIQofY29t",
+ "LnR3aW5lLnRhbmdvLnBtci5kaWFnbm9zdGljc2IGcHJvdG8z"));
+ descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
+ new pbr::FileDescriptor[] { },
+ new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
+ new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Diagnostics.ResetCardRequest), global::Tango.PMR.Diagnostics.ResetCardRequest.Parser, new[]{ "CardID" }, null, null, null)
+ }));
+ }
+ #endregion
+
+ }
+ #region Messages
+ public sealed partial class ResetCardRequest : pb::IMessage<ResetCardRequest> {
+ private static readonly pb::MessageParser<ResetCardRequest> _parser = new pb::MessageParser<ResetCardRequest>(() => new ResetCardRequest());
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pb::MessageParser<ResetCardRequest> Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::Tango.PMR.Diagnostics.ResetCardRequestReflection.Descriptor.MessageTypes[0]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public ResetCardRequest() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public ResetCardRequest(ResetCardRequest other) : this() {
+ cardID_ = other.cardID_;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public ResetCardRequest Clone() {
+ return new ResetCardRequest(this);
+ }
+
+ /// <summary>Field number for the "CardID" field.</summary>
+ public const int CardIDFieldNumber = 1;
+ private int cardID_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int CardID {
+ get { return cardID_; }
+ set {
+ cardID_ = value;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override bool Equals(object other) {
+ return Equals(other as ResetCardRequest);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool Equals(ResetCardRequest other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (CardID != other.CardID) return false;
+ return true;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (CardID != 0) hash ^= CardID.GetHashCode();
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void WriteTo(pb::CodedOutputStream output) {
+ if (CardID != 0) {
+ output.WriteRawTag(8);
+ output.WriteInt32(CardID);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int CalculateSize() {
+ int size = 0;
+ if (CardID != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeInt32Size(CardID);
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(ResetCardRequest other) {
+ if (other == null) {
+ return;
+ }
+ if (other.CardID != 0) {
+ CardID = other.CardID;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(pb::CodedInputStream input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ input.SkipLastField();
+ break;
+ case 8: {
+ CardID = input.ReadInt32();
+ break;
+ }
+ }
+ }
+ }
+
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/Software/Visual_Studio/Tango.PMR/Diagnostics/ResetCardResponse.cs b/Software/Visual_Studio/Tango.PMR/Diagnostics/ResetCardResponse.cs
new file mode 100644
index 000000000..139427048
--- /dev/null
+++ b/Software/Visual_Studio/Tango.PMR/Diagnostics/ResetCardResponse.cs
@@ -0,0 +1,131 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: ResetCardResponse.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.Protobuf;
+using pbc = global::Google.Protobuf.Collections;
+using pbr = global::Google.Protobuf.Reflection;
+using scg = global::System.Collections.Generic;
+namespace Tango.PMR.Diagnostics {
+
+ /// <summary>Holder for reflection information generated from ResetCardResponse.proto</summary>
+ public static partial class ResetCardResponseReflection {
+
+ #region Descriptor
+ /// <summary>File descriptor for ResetCardResponse.proto</summary>
+ public static pbr::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbr::FileDescriptor descriptor;
+
+ static ResetCardResponseReflection() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "ChdSZXNldENhcmRSZXNwb25zZS5wcm90bxIVVGFuZ28uUE1SLkRpYWdub3N0",
+ "aWNzIhMKEVJlc2V0Q2FyZFJlc3BvbnNlQiEKH2NvbS50d2luZS50YW5nby5w",
+ "bXIuZGlhZ25vc3RpY3NiBnByb3RvMw=="));
+ descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
+ new pbr::FileDescriptor[] { },
+ new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
+ new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Diagnostics.ResetCardResponse), global::Tango.PMR.Diagnostics.ResetCardResponse.Parser, null, null, null, null)
+ }));
+ }
+ #endregion
+
+ }
+ #region Messages
+ public sealed partial class ResetCardResponse : pb::IMessage<ResetCardResponse> {
+ private static readonly pb::MessageParser<ResetCardResponse> _parser = new pb::MessageParser<ResetCardResponse>(() => new ResetCardResponse());
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pb::MessageParser<ResetCardResponse> Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::Tango.PMR.Diagnostics.ResetCardResponseReflection.Descriptor.MessageTypes[0]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public ResetCardResponse() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public ResetCardResponse(ResetCardResponse other) : this() {
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public ResetCardResponse Clone() {
+ return new ResetCardResponse(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override bool Equals(object other) {
+ return Equals(other as ResetCardResponse);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool Equals(ResetCardResponse other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ return true;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override int GetHashCode() {
+ int hash = 1;
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void WriteTo(pb::CodedOutputStream output) {
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int CalculateSize() {
+ int size = 0;
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(ResetCardResponse other) {
+ if (other == null) {
+ return;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(pb::CodedInputStream input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ input.SkipLastField();
+ break;
+ }
+ }
+ }
+
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/Software/Visual_Studio/Tango.PMR/FirmwareUpgrade/GetVersionDescriptorsRequest.cs b/Software/Visual_Studio/Tango.PMR/FirmwareUpgrade/GetVersionDescriptorsRequest.cs
new file mode 100644
index 000000000..fbd200dc3
--- /dev/null
+++ b/Software/Visual_Studio/Tango.PMR/FirmwareUpgrade/GetVersionDescriptorsRequest.cs
@@ -0,0 +1,132 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: GetVersionDescriptorsRequest.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.Protobuf;
+using pbc = global::Google.Protobuf.Collections;
+using pbr = global::Google.Protobuf.Reflection;
+using scg = global::System.Collections.Generic;
+namespace Tango.PMR.FirmwareUpgrade {
+
+ /// <summary>Holder for reflection information generated from GetVersionDescriptorsRequest.proto</summary>
+ public static partial class GetVersionDescriptorsRequestReflection {
+
+ #region Descriptor
+ /// <summary>File descriptor for GetVersionDescriptorsRequest.proto</summary>
+ public static pbr::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbr::FileDescriptor descriptor;
+
+ static GetVersionDescriptorsRequestReflection() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "CiJHZXRWZXJzaW9uRGVzY3JpcHRvcnNSZXF1ZXN0LnByb3RvEhlUYW5nby5Q",
+ "TVIuRmlybXdhcmVVcGdyYWRlIh4KHEdldFZlcnNpb25EZXNjcmlwdG9yc1Jl",
+ "cXVlc3RCJQojY29tLnR3aW5lLnRhbmdvLnBtci5maXJtd2FyZXVwZ3JhZGVi",
+ "BnByb3RvMw=="));
+ descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
+ new pbr::FileDescriptor[] { },
+ new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
+ new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.FirmwareUpgrade.GetVersionDescriptorsRequest), global::Tango.PMR.FirmwareUpgrade.GetVersionDescriptorsRequest.Parser, null, null, null, null)
+ }));
+ }
+ #endregion
+
+ }
+ #region Messages
+ public sealed partial class GetVersionDescriptorsRequest : pb::IMessage<GetVersionDescriptorsRequest> {
+ private static readonly pb::MessageParser<GetVersionDescriptorsRequest> _parser = new pb::MessageParser<GetVersionDescriptorsRequest>(() => new GetVersionDescriptorsRequest());
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pb::MessageParser<GetVersionDescriptorsRequest> Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::Tango.PMR.FirmwareUpgrade.GetVersionDescriptorsRequestReflection.Descriptor.MessageTypes[0]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public GetVersionDescriptorsRequest() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public GetVersionDescriptorsRequest(GetVersionDescriptorsRequest other) : this() {
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public GetVersionDescriptorsRequest Clone() {
+ return new GetVersionDescriptorsRequest(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override bool Equals(object other) {
+ return Equals(other as GetVersionDescriptorsRequest);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool Equals(GetVersionDescriptorsRequest other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ return true;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override int GetHashCode() {
+ int hash = 1;
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void WriteTo(pb::CodedOutputStream output) {
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int CalculateSize() {
+ int size = 0;
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(GetVersionDescriptorsRequest other) {
+ if (other == null) {
+ return;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(pb::CodedInputStream input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ input.SkipLastField();
+ break;
+ }
+ }
+ }
+
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/Software/Visual_Studio/Tango.PMR/FirmwareUpgrade/GetVersionDescriptorsResponse.cs b/Software/Visual_Studio/Tango.PMR/FirmwareUpgrade/GetVersionDescriptorsResponse.cs
new file mode 100644
index 000000000..afbd23340
--- /dev/null
+++ b/Software/Visual_Studio/Tango.PMR/FirmwareUpgrade/GetVersionDescriptorsResponse.cs
@@ -0,0 +1,154 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: GetVersionDescriptorsResponse.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.Protobuf;
+using pbc = global::Google.Protobuf.Collections;
+using pbr = global::Google.Protobuf.Reflection;
+using scg = global::System.Collections.Generic;
+namespace Tango.PMR.FirmwareUpgrade {
+
+ /// <summary>Holder for reflection information generated from GetVersionDescriptorsResponse.proto</summary>
+ public static partial class GetVersionDescriptorsResponseReflection {
+
+ #region Descriptor
+ /// <summary>File descriptor for GetVersionDescriptorsResponse.proto</summary>
+ public static pbr::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbr::FileDescriptor descriptor;
+
+ static GetVersionDescriptorsResponseReflection() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "CiNHZXRWZXJzaW9uRGVzY3JpcHRvcnNSZXNwb25zZS5wcm90bxIZVGFuZ28u",
+ "UE1SLkZpcm13YXJlVXBncmFkZRobVmVyc2lvbkZpbGVEZXNjcmlwdG9yLnBy",
+ "b3RvImYKHUdldFZlcnNpb25EZXNjcmlwdG9yc1Jlc3BvbnNlEkUKC0Rlc2Ny",
+ "aXB0b3JzGAEgAygLMjAuVGFuZ28uUE1SLkZpcm13YXJlVXBncmFkZS5WZXJz",
+ "aW9uRmlsZURlc2NyaXB0b3JCJQojY29tLnR3aW5lLnRhbmdvLnBtci5maXJt",
+ "d2FyZXVwZ3JhZGViBnByb3RvMw=="));
+ descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
+ new pbr::FileDescriptor[] { global::Tango.PMR.FirmwareUpgrade.VersionFileDescriptorReflection.Descriptor, },
+ new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
+ new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.FirmwareUpgrade.GetVersionDescriptorsResponse), global::Tango.PMR.FirmwareUpgrade.GetVersionDescriptorsResponse.Parser, new[]{ "Descriptors" }, null, null, null)
+ }));
+ }
+ #endregion
+
+ }
+ #region Messages
+ public sealed partial class GetVersionDescriptorsResponse : pb::IMessage<GetVersionDescriptorsResponse> {
+ private static readonly pb::MessageParser<GetVersionDescriptorsResponse> _parser = new pb::MessageParser<GetVersionDescriptorsResponse>(() => new GetVersionDescriptorsResponse());
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pb::MessageParser<GetVersionDescriptorsResponse> Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::Tango.PMR.FirmwareUpgrade.GetVersionDescriptorsResponseReflection.Descriptor.MessageTypes[0]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public GetVersionDescriptorsResponse() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public GetVersionDescriptorsResponse(GetVersionDescriptorsResponse other) : this() {
+ descriptors_ = other.descriptors_.Clone();
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public GetVersionDescriptorsResponse Clone() {
+ return new GetVersionDescriptorsResponse(this);
+ }
+
+ /// <summary>Field number for the "Descriptors" field.</summary>
+ public const int DescriptorsFieldNumber = 1;
+ private static readonly pb::FieldCodec<global::Tango.PMR.FirmwareUpgrade.VersionFileDescriptor> _repeated_descriptors_codec
+ = pb::FieldCodec.ForMessage(10, global::Tango.PMR.FirmwareUpgrade.VersionFileDescriptor.Parser);
+ private readonly pbc::RepeatedField<global::Tango.PMR.FirmwareUpgrade.VersionFileDescriptor> descriptors_ = new pbc::RepeatedField<global::Tango.PMR.FirmwareUpgrade.VersionFileDescriptor>();
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<global::Tango.PMR.FirmwareUpgrade.VersionFileDescriptor> Descriptors {
+ get { return descriptors_; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override bool Equals(object other) {
+ return Equals(other as GetVersionDescriptorsResponse);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool Equals(GetVersionDescriptorsResponse other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if(!descriptors_.Equals(other.descriptors_)) return false;
+ return true;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override int GetHashCode() {
+ int hash = 1;
+ hash ^= descriptors_.GetHashCode();
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void WriteTo(pb::CodedOutputStream output) {
+ descriptors_.WriteTo(output, _repeated_descriptors_codec);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int CalculateSize() {
+ int size = 0;
+ size += descriptors_.CalculateSize(_repeated_descriptors_codec);
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(GetVersionDescriptorsResponse other) {
+ if (other == null) {
+ return;
+ }
+ descriptors_.Add(other.descriptors_);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(pb::CodedInputStream input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ input.SkipLastField();
+ break;
+ case 10: {
+ descriptors_.AddEntriesFrom(input, _repeated_descriptors_codec);
+ break;
+ }
+ }
+ }
+ }
+
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/Software/Visual_Studio/Tango.PMR/FirmwareUpgrade/VersionFileDestination.cs b/Software/Visual_Studio/Tango.PMR/FirmwareUpgrade/VersionFileDestination.cs
index e41aa4ebb..c1de2098b 100644
--- a/Software/Visual_Studio/Tango.PMR/FirmwareUpgrade/VersionFileDestination.cs
+++ b/Software/Visual_Studio/Tango.PMR/FirmwareUpgrade/VersionFileDestination.cs
@@ -23,11 +23,15 @@ namespace Tango.PMR.FirmwareUpgrade {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"ChxWZXJzaW9uRmlsZURlc3RpbmF0aW9uLnByb3RvEhlUYW5nby5QTVIuRmly",
- "bXdhcmVVcGdyYWRlKpMBChZWZXJzaW9uRmlsZURlc3RpbmF0aW9uEgcKA01D",
+ "bXdhcmVVcGdyYWRlKsQCChZWZXJzaW9uRmlsZURlc3RpbmF0aW9uEgcKA01D",
"VRAAEgkKBUZQR0ExEAESCQoFRlBHQTIQAhIJCgVGUEdBMxADEhAKDENvbmZp",
"Z1BhcmFtcxAEEhEKDVByb2Nlc3NQYXJhbXMQBRIPCgtBbGFybVBhcmFtcxAG",
- "EhkKFUdlbmVyYWxIV0NvbmZpZ1BhcmFtcxAHQiUKI2NvbS50d2luZS50YW5n",
- "by5wbXIuZmlybXdhcmV1cGdyYWRlYgZwcm90bzM="));
+ "EhkKFUdlbmVyYWxIV0NvbmZpZ1BhcmFtcxAHEhIKDkVtYmVkZGVkUGFyYW1z",
+ "EGQSDQoJQklUUGFyYW1zEGUSEgoOSGFyZHdhcmVQYXJhbXMQZhIOCgpQdW1w",
+ "Q2FyZFNXEGcSEAoMV2luZGVyQ2FyZFNXEGgSDgoKSGVhZENhcmRTVxBpEg8K",
+ "C0RyeWVyQ2FyZFNXEGoSEQoNTWlkVGFua0NhcmRTVxBrEhMKD0x1YnJpY2Fu",
+ "dENhcmRTVxBsEg0KCU5ld0NhcmRTVxBtQiUKI2NvbS50d2luZS50YW5nby5w",
+ "bXIuZmlybXdhcmV1cGdyYWRlYgZwcm90bzM="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Tango.PMR.FirmwareUpgrade.VersionFileDestination), }, null));
@@ -45,6 +49,16 @@ namespace Tango.PMR.FirmwareUpgrade {
[pbr::OriginalName("ProcessParams")] ProcessParams = 5,
[pbr::OriginalName("AlarmParams")] AlarmParams = 6,
[pbr::OriginalName("GeneralHWConfigParams")] GeneralHwconfigParams = 7,
+ [pbr::OriginalName("EmbeddedParams")] EmbeddedParams = 100,
+ [pbr::OriginalName("BITParams")] Bitparams = 101,
+ [pbr::OriginalName("HardwareParams")] HardwareParams = 102,
+ [pbr::OriginalName("PumpCardSW")] PumpCardSw = 103,
+ [pbr::OriginalName("WinderCardSW")] WinderCardSw = 104,
+ [pbr::OriginalName("HeadCardSW")] HeadCardSw = 105,
+ [pbr::OriginalName("DryerCardSW")] DryerCardSw = 106,
+ [pbr::OriginalName("MidTankCardSW")] MidTankCardSw = 107,
+ [pbr::OriginalName("LubricantCardSW")] LubricantCardSw = 108,
+ [pbr::OriginalName("NewCardSW")] NewCardSw = 109,
}
#endregion
diff --git a/Software/Visual_Studio/Tango.PMR/Hardware/HardwareMotorType.cs b/Software/Visual_Studio/Tango.PMR/Hardware/HardwareMotorType.cs
index 501fa1ad0..bc40df4a0 100644
--- a/Software/Visual_Studio/Tango.PMR/Hardware/HardwareMotorType.cs
+++ b/Software/Visual_Studio/Tango.PMR/Hardware/HardwareMotorType.cs
@@ -23,7 +23,7 @@ namespace Tango.PMR.Hardware {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"ChdIYXJkd2FyZU1vdG9yVHlwZS5wcm90bxISVGFuZ28uUE1SLkhhcmR3YXJl",
- "Ku8EChFIYXJkd2FyZU1vdG9yVHlwZRIVChFNT1RPX0RIX0NMRUFOSEVBRBAA",
+ "Ku0HChFIYXJkd2FyZU1vdG9yVHlwZRIVChFNT1RPX0RIX0NMRUFOSEVBRBAA",
"EhUKEU1PVE9fREhfQ0xFQU5NRUNIEAESDwoLTU9UT19ESF9MSUQQAhIWChJN",
"T1RPX0RSWUVSX0RSSVZJTkcQAxISCg5NT1RPX0RSWUVSX0xJRBAEEhYKEk1P",
"VE9fRFJZRVJfTE9BREFSTRAFEhQKEE1PVE9fRElTUEVOU0VSXzEQBhIUChBN",
@@ -36,8 +36,17 @@ namespace Tango.PMR.Hardware {
"Vk9UMRAUEhAKDE1PVE9fUkRBTkNFUhAVEhEKDU1PVE9fUkRSSVZJTkcQFhIR",
"Cg1NT1RPX1JMT0FEQVJNEBcSEQoNTU9UT19STE9BRElORxAYEhEKDU1PVE9f",
"U1BBUkUxXzEQGRIRCg1NT1RPX1NQQVJFMV8yEBoSEQoNTU9UT19TUEFSRTJf",
- "MRAbEhEKDU1PVE9fU1BBUkUyXzIQHBIRCg1NT1RPX1NQQVJFM18xEB1CHgoc",
- "Y29tLnR3aW5lLnRhbmdvLnBtci5oYXJkd2FyZWIGcHJvdG8z"));
+ "MRAbEhEKDU1PVE9fU1BBUkUyXzIQHBIRCg1NT1RPX1NQQVJFM18xEB0SGQoU",
+ "RV9NT1RPX0RSWUVSX0RSSVZJTkcQ6AcSGQoURV9NT1RPX0RSWUVSX0xPQURJ",
+ "TkcQ6QcSFAoPRV9NT1RPX1dJTkRFUl8xEOoHEhQKD0VfTU9UT19XSU5ERVJf",
+ "MhDrBxIUCg9FX01PVE9fV0lOREVSXzMQ7AcSFAoPRV9NT1RPX1dJTkRFUl80",
+ "EO0HEhQKD0VfTU9UT19EQU5DRVJfMRDuBxIUCg9FX01PVE9fREFOQ0VSXzIQ",
+ "7wcSFAoPRV9NT1RPX0RBTkNFUl8zEPAHEhQKD0VfTU9UT19EQU5DRVJfNBDx",
+ "BxISCg1FX01PVE9fUFVMTEVSEPIHEhkKFEVfTU9UT19QVUxMRVJfREFOQ0VS",
+ "EPMHEhMKDkVfTU9UT19TUEFSRV8xEPQHEhMKDkVfTU9UT19TUEFSRV8yEPUH",
+ "EhMKDkVfTU9UT19TUEFSRV8zEPYHEhMKDkVfTU9UT19TUEFSRV80EPcHEhMK",
+ "DkVfTU9UT19TUEFSRV81EPgHQh4KHGNvbS50d2luZS50YW5nby5wbXIuaGFy",
+ "ZHdhcmViBnByb3RvMw=="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Tango.PMR.Hardware.HardwareMotorType), }, null));
@@ -167,6 +176,74 @@ namespace Tango.PMR.Hardware {
///Spare 5 Motor
/// </summary>
[pbr::OriginalName("MOTO_SPARE3_1")] MotoSpare31 = 29,
+ /// <summary>
+ ///Eureka Dryer Main
+ /// </summary>
+ [pbr::OriginalName("E_MOTO_DRYER_DRIVING")] EMotoDryerDriving = 1000,
+ /// <summary>
+ ///Eureka Dryer Loading
+ /// </summary>
+ [pbr::OriginalName("E_MOTO_DRYER_LOADING")] EMotoDryerLoading = 1001,
+ /// <summary>
+ ///Eureka Winder 1
+ /// </summary>
+ [pbr::OriginalName("E_MOTO_WINDER_1")] EMotoWinder1 = 1002,
+ /// <summary>
+ ///Eureka Winder 2
+ /// </summary>
+ [pbr::OriginalName("E_MOTO_WINDER_2")] EMotoWinder2 = 1003,
+ /// <summary>
+ ///Eureka Winder 3
+ /// </summary>
+ [pbr::OriginalName("E_MOTO_WINDER_3")] EMotoWinder3 = 1004,
+ /// <summary>
+ ///Eureka Winder 4
+ /// </summary>
+ [pbr::OriginalName("E_MOTO_WINDER_4")] EMotoWinder4 = 1005,
+ /// <summary>
+ ///Eureka Winder Dancer 1
+ /// </summary>
+ [pbr::OriginalName("E_MOTO_DANCER_1")] EMotoDancer1 = 1006,
+ /// <summary>
+ ///Eureka Winder Dancer 2
+ /// </summary>
+ [pbr::OriginalName("E_MOTO_DANCER_2")] EMotoDancer2 = 1007,
+ /// <summary>
+ ///Eureka Winder Dancer 3
+ /// </summary>
+ [pbr::OriginalName("E_MOTO_DANCER_3")] EMotoDancer3 = 1008,
+ /// <summary>
+ ///Eureka Winder Dancer 4
+ /// </summary>
+ [pbr::OriginalName("E_MOTO_DANCER_4")] EMotoDancer4 = 1009,
+ /// <summary>
+ ///Eureka Puller
+ /// </summary>
+ [pbr::OriginalName("E_MOTO_PULLER")] EMotoPuller = 1010,
+ /// <summary>
+ ///Eureka Puller Dancer
+ /// </summary>
+ [pbr::OriginalName("E_MOTO_PULLER_DANCER")] EMotoPullerDancer = 1011,
+ /// <summary>
+ ///Eureka Spare 1
+ /// </summary>
+ [pbr::OriginalName("E_MOTO_SPARE_1")] EMotoSpare1 = 1012,
+ /// <summary>
+ ///Eureka Spare 2
+ /// </summary>
+ [pbr::OriginalName("E_MOTO_SPARE_2")] EMotoSpare2 = 1013,
+ /// <summary>
+ ///Eureka Spare 3
+ /// </summary>
+ [pbr::OriginalName("E_MOTO_SPARE_3")] EMotoSpare3 = 1014,
+ /// <summary>
+ ///Eureka Spare 4
+ /// </summary>
+ [pbr::OriginalName("E_MOTO_SPARE_4")] EMotoSpare4 = 1015,
+ /// <summary>
+ ///Eureka Spare 5
+ /// </summary>
+ [pbr::OriginalName("E_MOTO_SPARE_5")] EMotoSpare5 = 1016,
}
#endregion
diff --git a/Software/Visual_Studio/Tango.PMR/Hardware/HardwarePidControlType.cs b/Software/Visual_Studio/Tango.PMR/Hardware/HardwarePidControlType.cs
index f2769eb81..6c7c78e2d 100644
--- a/Software/Visual_Studio/Tango.PMR/Hardware/HardwarePidControlType.cs
+++ b/Software/Visual_Studio/Tango.PMR/Hardware/HardwarePidControlType.cs
@@ -23,7 +23,7 @@ namespace Tango.PMR.Hardware {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"ChxIYXJkd2FyZVBpZENvbnRyb2xUeXBlLnByb3RvEhJUYW5nby5QTVIuSGFy",
- "ZHdhcmUq8QQKFkhhcmR3YXJlUGlkQ29udHJvbFR5cGUSFwoTRHJ5ZXJBaXJU",
+ "ZHdhcmUq1QgKFkhhcmR3YXJlUGlkQ29udHJvbFR5cGUSFwoTRHJ5ZXJBaXJU",
"ZW1wZXJhdHVyZRAAEhMKD0RyeWVySGVhdGVyTWFpbhABEhgKFERyeWVySGVh",
"dGVyU2Vjb25kYXJ5EAISEAoMSGVhZEhlYXRlcloxEAMSEAoMSGVhZEhlYXRl",
"cloyEAQSEAoMSGVhZEhlYXRlclozEAUSEAoMSGVhZEhlYXRlclo0EAYSEAoM",
@@ -37,7 +37,18 @@ namespace Tango.PMR.Hardware {
"GRIRCg1IZWFkSGVhdGVyWjEwEBoSEQoNSGVhZEhlYXRlcloxMRAbEhEKDUhl",
"YWRIZWF0ZXJaMTIQHBIUChBIZWFkQ292ZXJIZWF0ZXIxEB0SFAoQSGVhZENv",
"dmVySGVhdGVyMhAeEhAKDEhlYWRCbG93ZXJfMRAfEhAKDEhlYWRCbG93ZXJf",
- "MhAgQh4KHGNvbS50d2luZS50YW5nby5wbXIuaGFyZHdhcmViBnByb3RvMw=="));
+ "MhAgEhkKFEVfUElEX0RSWUVSX0hFQVRFUl8xEOgHEhkKFEVfUElEX0RSWUVS",
+ "X0hFQVRFUl8yEOkHEhkKFEVfUElEX0RSWUVSX0hFQVRFUl8zEOoHEhgKE0Vf",
+ "UElEX0hFQURfSEVBVEVSXzEQ6wcSGAoTRV9QSURfSEVBRF9IRUFURVJfMhDs",
+ "BxIYChNFX1BJRF9IRUFEX0hFQVRFUl8zEO0HEhcKEkVfUElEX01JWEVSX0hF",
+ "QVRFUhDuBxIYChNFX1BJRF9UVU5ORUxfSEVBVEVSEO8HEhsKFkVfUElEX0xV",
+ "QlJJQ0FOVF9IRUFURVIQ8AcSDwoKRV9XSU5ERVJfMRDxBxIPCgpFX1dJTkRF",
+ "Ul8yEPIHEg8KCkVfV0lOREVSXzMQ8wcSDwoKRV9XSU5ERVJfNBD0BxIVChBF",
+ "X0RSWUVSX0FJUl9GTE9XEPUHEg0KCEVfUFVMTEVSEPYHEhsKFkVfVFVOTkVM",
+ "X0FJUl9GTE9XX0xFRlQQ9wcSHAoXRV9UVU5ORUxfQUlSX0ZMT1dfUklHSFQQ",
+ "+AcSEgoNRV9QSURfU1BBUkVfMRD5BxISCg1FX1BJRF9TUEFSRV8yEPoHEhIK",
+ "DUVfUElEX1NQQVJFXzMQ+wcSEgoNRV9QSURfU1BBUkVfNBD8B0IeChxjb20u",
+ "dHdpbmUudGFuZ28ucG1yLmhhcmR3YXJlYgZwcm90bzM="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Tango.PMR.Hardware.HardwarePidControlType), }, null));
@@ -179,6 +190,90 @@ namespace Tango.PMR.Hardware {
///Head Blower 2
/// </summary>
[pbr::OriginalName("HeadBlower_2")] HeadBlower2 = 32,
+ /// <summary>
+ ///Eureka Dyer Heater 1
+ /// </summary>
+ [pbr::OriginalName("E_PID_DRYER_HEATER_1")] EPidDryerHeater1 = 1000,
+ /// <summary>
+ ///Eureka Dyer Heater 2
+ /// </summary>
+ [pbr::OriginalName("E_PID_DRYER_HEATER_2")] EPidDryerHeater2 = 1001,
+ /// <summary>
+ ///Eureka Dyer Heater 3
+ /// </summary>
+ [pbr::OriginalName("E_PID_DRYER_HEATER_3")] EPidDryerHeater3 = 1002,
+ /// <summary>
+ ///Eureka Head Heater 1
+ /// </summary>
+ [pbr::OriginalName("E_PID_HEAD_HEATER_1")] EPidHeadHeater1 = 1003,
+ /// <summary>
+ ///Eureka Head Heater 2
+ /// </summary>
+ [pbr::OriginalName("E_PID_HEAD_HEATER_2")] EPidHeadHeater2 = 1004,
+ /// <summary>
+ ///Eureka Head Heater 3
+ /// </summary>
+ [pbr::OriginalName("E_PID_HEAD_HEATER_3")] EPidHeadHeater3 = 1005,
+ /// <summary>
+ ///Eureka Mixer Heater
+ /// </summary>
+ [pbr::OriginalName("E_PID_MIXER_HEATER")] EPidMixerHeater = 1006,
+ /// <summary>
+ ///Eureka Tunnel Heater
+ /// </summary>
+ [pbr::OriginalName("E_PID_TUNNEL_HEATER")] EPidTunnelHeater = 1007,
+ /// <summary>
+ ///Eureka Lubricant Heater
+ /// </summary>
+ [pbr::OriginalName("E_PID_LUBRICANT_HEATER")] EPidLubricantHeater = 1008,
+ /// <summary>
+ ///Eureka Winder 1
+ /// </summary>
+ [pbr::OriginalName("E_WINDER_1")] EWinder1 = 1009,
+ /// <summary>
+ ///Eureka Winder 2
+ /// </summary>
+ [pbr::OriginalName("E_WINDER_2")] EWinder2 = 1010,
+ /// <summary>
+ ///Eureka Winder 3
+ /// </summary>
+ [pbr::OriginalName("E_WINDER_3")] EWinder3 = 1011,
+ /// <summary>
+ ///Eureka Winder 4
+ /// </summary>
+ [pbr::OriginalName("E_WINDER_4")] EWinder4 = 1012,
+ /// <summary>
+ ///Eureka Dryer Air Flow
+ /// </summary>
+ [pbr::OriginalName("E_DRYER_AIR_FLOW")] EDryerAirFlow = 1013,
+ /// <summary>
+ ///Eureka Puller
+ /// </summary>
+ [pbr::OriginalName("E_PULLER")] EPuller = 1014,
+ /// <summary>
+ ///Eureka Tunnel Air Flow Left
+ /// </summary>
+ [pbr::OriginalName("E_TUNNEL_AIR_FLOW_LEFT")] ETunnelAirFlowLeft = 1015,
+ /// <summary>
+ ///Eureka Tunnel Air Flow Right
+ /// </summary>
+ [pbr::OriginalName("E_TUNNEL_AIR_FLOW_RIGHT")] ETunnelAirFlowRight = 1016,
+ /// <summary>
+ ///Eureka Spare 1
+ /// </summary>
+ [pbr::OriginalName("E_PID_SPARE_1")] EPidSpare1 = 1017,
+ /// <summary>
+ ///Eureka Spare 2
+ /// </summary>
+ [pbr::OriginalName("E_PID_SPARE_2")] EPidSpare2 = 1018,
+ /// <summary>
+ ///Eureka Spare 3
+ /// </summary>
+ [pbr::OriginalName("E_PID_SPARE_3")] EPidSpare3 = 1019,
+ /// <summary>
+ ///Eureka Spare 4
+ /// </summary>
+ [pbr::OriginalName("E_PID_SPARE_4")] EPidSpare4 = 1020,
}
#endregion
diff --git a/Software/Visual_Studio/Tango.PMR/Insights/InsightsMonitors.cs b/Software/Visual_Studio/Tango.PMR/Insights/InsightsMonitors.cs
index 210b45d4c..24a8239af 100644
--- a/Software/Visual_Studio/Tango.PMR/Insights/InsightsMonitors.cs
+++ b/Software/Visual_Studio/Tango.PMR/Insights/InsightsMonitors.cs
@@ -23,7 +23,7 @@ namespace Tango.PMR.Insights {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"ChZJbnNpZ2h0c01vbml0b3JzLnByb3RvEhJUYW5nby5QTVIuSW5zaWdodHMi",
- "3hQKEEluc2lnaHRzTW9uaXRvcnMSFAoMRGFuY2VyMUFuZ2xlGAEgASgBEhQK",
+ "8yoKEEluc2lnaHRzTW9uaXRvcnMSFAoMRGFuY2VyMUFuZ2xlGAEgASgBEhQK",
"DERhbmNlcjJBbmdsZRgCIAEoARIUCgxEYW5jZXIzQW5nbGUYAyABKAESHAoU",
"RmVlZGVyTW90b3JGcmVxdWVuY3kYBCABKAESEgoKRHJ5ZXJNb3RvchgFIAEo",
"ARITCgtQb2xsZXJNb3RvchgGIAEoARITCgtXaW5kZXJNb3RvchgHIAEoARIS",
@@ -82,11 +82,74 @@ namespace Tango.PMR.Insights {
"GFggASgBEhoKEkhlYWRCbG93ZXIxQWlyRmxvdxhZIAEoARIaChJIZWFkQmxv",
"d2VyMkFpckZsb3cYWiABKAESFgoOU2hpbmtvU2V0VmFsdWUYWyABKAESGgoS",
"U2hpbmtvQ3VycmVudFZhbHVlGFwgASgBEhQKDFRvdGFsV0hTRmxvdxhdIAEo",
- "AUIeChxjb20udHdpbmUudGFuZ28ucG1yLmluc2lnaHRzYgZwcm90bzM="));
+ "ARIXCg9FdVdpbmRlcjFEYW5jZXIYXiABKAESFwoPRXVXaW5kZXIyRGFuY2Vy",
+ "GF8gASgBEhcKD0V1V2luZGVyM0RhbmNlchhgIAEoARIXCg9FdVdpbmRlcjRE",
+ "YW5jZXIYYSABKAESFgoORXVXaW5kZXIxTW90b3IYYiABKAESFgoORXVXaW5k",
+ "ZXIyTW90b3IYYyABKAESFgoORXVXaW5kZXIzTW90b3IYZCABKAESFgoORXVX",
+ "aW5kZXI0TW90b3IYZSABKAESHAoURXVEcnllck1vdG9yVmVsb2NpdHkYZiAB",
+ "KAESIgoaRXVEcnllck1vdG9yVGFyZ2V0VmVsb2NpdHkYZyABKAESGwoTRXVE",
+ "cnllck1vdG9yQ3VycmVudBhoIAEoARIWCg5FdVB1bGxlckRhbmNlchhpIAEo",
+ "ARIVCg1FdVB1bGxlck1vdG9yGGogASgBEh8KF0V1RHJ5ZXJab25lMVRlbXBl",
+ "cmF0dXJlGGsgASgBEh8KF0V1RHJ5ZXJab25lMlRlbXBlcmF0dXJlGGwgASgB",
+ "Eh8KF0V1RHJ5ZXJab25lM1RlbXBlcmF0dXJlGG0gASgBEh4KFkV1SGVhZFpv",
+ "bmUxVGVtcGVyYXR1cmUYbiABKAESHgoWRXVIZWFkWm9uZTJUZW1wZXJhdHVy",
+ "ZRhvIAEoARIeChZFdUhlYWRab25lM1RlbXBlcmF0dXJlGHAgASgBEhoKEkV1",
+ "TWl4ZXJUZW1wZXJhdHVyZRhxIAEoARIbChNFdVR1bm5lbFRlbXBlcmF0dXJl",
+ "GHIgASgBEh4KFkV1THVicmljYW50VGVtcGVyYXR1cmUYcyABKAESHAoURXVB",
+ "bWJpZW50VGVtcGVyYXR1cmUYdCABKAESJgoeRXVFbGVjdHJpY2FsQ2FiaW5l",
+ "dFRlbXBlcmF0dXJlGHUgASgBEhsKE0V1RHJ5ZXJab25lMUN1cnJlbnQYdiAB",
+ "KAESGwoTRXVEcnllclpvbmUyQ3VycmVudBh3IAEoARIbChNFdURyeWVyWm9u",
+ "ZTNDdXJyZW50GHggASgBEhoKEkV1SGVhZFpvbmUxQ3VycmVudBh5IAEoARIa",
+ "ChJFdUhlYWRab25lMkN1cnJlbnQYeiABKAESGgoSRXVIZWFkWm9uZTNDdXJy",
+ "ZW50GHsgASgBEhYKDkV1TWl4ZXJDdXJyZW50GHwgASgBEhcKD0V1VHVubmVs",
+ "Q3VycmVudBh9IAEoARIaChJFdUx1YnJpY2FudEN1cnJlbnQYfiABKAESFAoM",
+ "RXVCdHNyMVNwZWVkGH8gASgBEhcKDkV1QnRzcjFTcGVlZEF2GIABIAEoARIW",
+ "Cg1FdUJ0c3IxRGlzcEF2GIEBIAEoARIXCg5FdUJ0c3IxUGVha01pbhiCASAB",
+ "KAESFwoORXVCdHNyMVBlYWtNYXgYgwEgASgBEhUKDEV1QnRzcjJTcGVlZBiE",
+ "ASABKAESFwoORXVCdHNyMlNwZWVkQXYYhQEgASgBEhYKDUV1QnRzcjJEaXNw",
+ "QXYYhgEgASgBEhcKDkV1QnRzcjJQZWFrTWluGIcBIAEoARIXCg5FdUJ0c3Iy",
+ "UGVha01heBiIASABKAESFQoMRXVCdHNyM1NwZWVkGIkBIAEoARIXCg5FdUJ0",
+ "c3IzU3BlZWRBdhiKASABKAESFgoNRXVCdHNyM0Rpc3BBdhiLASABKAESFwoO",
+ "RXVCdHNyM1BlYWtNaW4YjAEgASgBEhcKDkV1QnRzcjNQZWFrTWF4GI0BIAEo",
+ "ARIVCgxFdUJ0c3I0U3BlZWQYjgEgASgBEhcKDkV1QnRzcjRTcGVlZEF2GI8B",
+ "IAEoARIXCg5FdUJ0c3I0UGVha01pbhiQASABKAESFwoORXVCdHNyNFBlYWtN",
+ "YXgYkQEgASgBEhYKDUV1QnRzcjREaXNwQXYYkgEgASgBEh0KFEV1VGVtcGVy",
+ "YXR1cmVMb2dnZXJzGJMBIAMoARIUCgtFdVB1bXBGbG93cxiUASADKAESGwoS",
+ "RXVJbmtMaW5lc1ByZXNzdXJlGJUBIAMoARIZChBFdVNwYXJlRGF0YUFycmF5",
+ "GJYBIAMoARIcChNFdURpc3BlbnNlcjFWb2x0YWdlGJcBIAEoARIcChNFdURp",
+ "c3BlbnNlcjJWb2x0YWdlGJgBIAEoARIcChNFdURpc3BlbnNlcjNWb2x0YWdl",
+ "GJkBIAEoARIcChNFdURpc3BlbnNlcjRWb2x0YWdlGJoBIAEoARIcChNFdURp",
+ "c3BlbnNlcjVWb2x0YWdlGJsBIAEoARIcChNFdURpc3BlbnNlcjZWb2x0YWdl",
+ "GJwBIAEoARIcChNFdURpc3BlbnNlcjdWb2x0YWdlGJ0BIAEoARIcChNFdURp",
+ "c3BlbnNlcjhWb2x0YWdlGJ4BIAEoARIcChNFdURpc3BlbnNlcjlWb2x0YWdl",
+ "GJ8BIAEoARIdChRFdURpc3BlbnNlcjEwVm9sdGFnZRigASABKAESHQoURXVE",
+ "aXNwZW5zZXIxMVZvbHRhZ2UYoQEgASgBEh0KFEV1RGlzcGVuc2VyMTJWb2x0",
+ "YWdlGKIBIAEoARIdChRFdURpc3BlbnNlcjEzVm9sdGFnZRijASABKAESHQoU",
+ "RXVEaXNwZW5zZXIxNFZvbHRhZ2UYpAEgASgBEh0KFEV1RGlzcGVuc2VyMTVW",
+ "b2x0YWdlGKUBIAEoARIdChRFdURpc3BlbnNlcjE2Vm9sdGFnZRimASABKAES",
+ "HwoWRXVMdWJyaWNhbnRQdW1wVm9sdGFnZRinASABKAESHQoURXVEaXNwZW5z",
+ "ZXIxUHJlc3N1cmUYqAEgASgBEh0KFEV1RGlzcGVuc2VyMlByZXNzdXJlGKkB",
+ "IAEoARIdChRFdURpc3BlbnNlcjNQcmVzc3VyZRiqASABKAESHQoURXVEaXNw",
+ "ZW5zZXI0UHJlc3N1cmUYqwEgASgBEh0KFEV1RGlzcGVuc2VyNVByZXNzdXJl",
+ "GKwBIAEoARIdChRFdURpc3BlbnNlcjZQcmVzc3VyZRitASABKAESHQoURXVE",
+ "aXNwZW5zZXI3UHJlc3N1cmUYrgEgASgBEh0KFEV1RGlzcGVuc2VyOFByZXNz",
+ "dXJlGK8BIAEoARIcChNFdUx1YnJpY2FudFByZXNzdXJlGLABIAEoARIYCg9F",
+ "dU1pZFRhbmsxTGV2ZWwYsQEgASgBEhgKD0V1TWlkVGFuazJMZXZlbBiyASAB",
+ "KAESGAoPRXVNaWRUYW5rM0xldmVsGLMBIAEoARIYCg9FdU1pZFRhbms0TGV2",
+ "ZWwYtAEgASgBEhgKD0V1TWlkVGFuazVMZXZlbBi1ASABKAESGAoPRXVNaWRU",
+ "YW5rNkxldmVsGLYBIAEoARIYCg9FdU1pZFRhbms3TGV2ZWwYtwEgASgBEhgK",
+ "D0V1TWlkVGFuazhMZXZlbBi4ASABKAESHQoURXVDaGlsbGVyVGVtcGVyYXR1",
+ "cmUYuQEgASgBEhsKEkV1SGVhZFJpZ2h0QWlyRmxvdxi6ASABKAESGgoRRXVI",
+ "ZWFkTGVmdEFpckZsb3cYuwEgASgBEhsKEkV1SGVhZFJpZ2h0Vm9sdGFnZRi8",
+ "ASABKAESGgoRRXVIZWFkTGVmdFZvbHRhZ2UYvQEgASgBEhcKDkV1RHJ5ZXJB",
+ "aXJGbG93GL4BIAEoARIYCg9FdUJsb3dlclZvbHRhZ2UYvwEgASgBEhUKDEV1",
+ "V2FzdGVMZXZlbBjAASABKAESEQoIRXVTcGFyZTEYwQEgASgBEhEKCEV1U3Bh",
+ "cmUyGMIBIAEoARIRCghFdVNwYXJlMxjDASABKAESEQoIRXVTcGFyZTQYxAEg",
+ "ASgBQh4KHGNvbS50d2luZS50YW5nby5wbXIuaW5zaWdodHNiBnByb3RvMw=="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
- new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Insights.InsightsMonitors), global::Tango.PMR.Insights.InsightsMonitors.Parser, new[]{ "Dancer1Angle", "Dancer2Angle", "Dancer3Angle", "FeederMotorFrequency", "DryerMotor", "PollerMotor", "WinderMotor", "ScrewMotor", "ThreadSpeed", "MixerTemperature", "HeadZone1Temperature", "HeadZone2Temperature", "HeadZone3Temperature", "HeadAirFlow", "FeederTension", "PullerTension", "DryerZone1Temperature", "DryerZone2Temperature", "DryerZone3Temperature", "DryerAirFlow", "WinderTension", "DispensersMotorsFrequency", "DispensersAngularEncoders", "DispensersLinearPositions", "DispensersPressure", "FilterDeltaPressure", "ChillerTemperature", "Dispenser1MotorFrequency", "Dispenser2MotorFrequency", "Dispenser3MotorFrequency", "Dispenser4MotorFrequency", "Dispenser5MotorFrequency", "Dispenser6MotorFrequency", "Dispenser7MotorFrequency", "Dispenser8MotorFrequency", "HeadZone4Temperature", "HeadZone5Temperature", "HeadZone6Temperature", "BlowerVoltage", "Dispenser1Pressure", "Dispenser2Pressure", "Dispenser3Pressure", "Dispenser4Pressure", "Dispenser5Pressure", "Dispenser6Pressure", "Dispenser7Pressure", "Dispenser8Pressure", "MidTank1Level", "MidTank2Level", "MidTank3Level", "MidTank4Level", "MidTank5Level", "MidTank6Level", "MidTank7Level", "MidTank8Level", "DrierZone1HeaterCurrent", "DrierZone2HeaterCurrent", "HeadZone1HeaterCurrent", "HeadZone2HeaterCurrent", "HeadZone3HeaterCurrent", "HeadZone4HeaterCurrent", "HeadZone56HeaterCurrent", "Mixer1HeaterCurrent", "DispensersInkLevel", "MidTanksInkLevel", "OverallTemperature", "HeadZone7HeaterCurrent", "HeadZone7Temperature", "HeadZone8HeaterCurrent", "HeadZone8Temperature", "HeadZone9HeaterCurrent", "HeadZone9Temperature", "HeadZone10HeaterCurrent", "HeadZone10Temperature", "HeadZone11HeaterCurrent", "HeadZone11Temperature", "HeadZone12HeaterCurrent", "HeadZone12Temperature", "HeadBlowerVoltage1", "HeadBlowerVoltage2", "HeadCoverHeater1Current", "HeadCoverHeater1Temperature", "HeadCoverHeater2Current", "HeadCoverHeater2Temperature", "WHSBlower2Voltage", "GasSensor", "IncomingVoltage", "WasteLevel", "HeadBlower1AirFlow", "HeadBlower2AirFlow", "ShinkoSetValue", "ShinkoCurrentValue", "TotalWHSFlow" }, null, null, null)
+ new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Insights.InsightsMonitors), global::Tango.PMR.Insights.InsightsMonitors.Parser, new[]{ "Dancer1Angle", "Dancer2Angle", "Dancer3Angle", "FeederMotorFrequency", "DryerMotor", "PollerMotor", "WinderMotor", "ScrewMotor", "ThreadSpeed", "MixerTemperature", "HeadZone1Temperature", "HeadZone2Temperature", "HeadZone3Temperature", "HeadAirFlow", "FeederTension", "PullerTension", "DryerZone1Temperature", "DryerZone2Temperature", "DryerZone3Temperature", "DryerAirFlow", "WinderTension", "DispensersMotorsFrequency", "DispensersAngularEncoders", "DispensersLinearPositions", "DispensersPressure", "FilterDeltaPressure", "ChillerTemperature", "Dispenser1MotorFrequency", "Dispenser2MotorFrequency", "Dispenser3MotorFrequency", "Dispenser4MotorFrequency", "Dispenser5MotorFrequency", "Dispenser6MotorFrequency", "Dispenser7MotorFrequency", "Dispenser8MotorFrequency", "HeadZone4Temperature", "HeadZone5Temperature", "HeadZone6Temperature", "BlowerVoltage", "Dispenser1Pressure", "Dispenser2Pressure", "Dispenser3Pressure", "Dispenser4Pressure", "Dispenser5Pressure", "Dispenser6Pressure", "Dispenser7Pressure", "Dispenser8Pressure", "MidTank1Level", "MidTank2Level", "MidTank3Level", "MidTank4Level", "MidTank5Level", "MidTank6Level", "MidTank7Level", "MidTank8Level", "DrierZone1HeaterCurrent", "DrierZone2HeaterCurrent", "HeadZone1HeaterCurrent", "HeadZone2HeaterCurrent", "HeadZone3HeaterCurrent", "HeadZone4HeaterCurrent", "HeadZone56HeaterCurrent", "Mixer1HeaterCurrent", "DispensersInkLevel", "MidTanksInkLevel", "OverallTemperature", "HeadZone7HeaterCurrent", "HeadZone7Temperature", "HeadZone8HeaterCurrent", "HeadZone8Temperature", "HeadZone9HeaterCurrent", "HeadZone9Temperature", "HeadZone10HeaterCurrent", "HeadZone10Temperature", "HeadZone11HeaterCurrent", "HeadZone11Temperature", "HeadZone12HeaterCurrent", "HeadZone12Temperature", "HeadBlowerVoltage1", "HeadBlowerVoltage2", "HeadCoverHeater1Current", "HeadCoverHeater1Temperature", "HeadCoverHeater2Current", "HeadCoverHeater2Temperature", "WHSBlower2Voltage", "GasSensor", "IncomingVoltage", "WasteLevel", "HeadBlower1AirFlow", "HeadBlower2AirFlow", "ShinkoSetValue", "ShinkoCurrentValue", "TotalWHSFlow", "EuWinder1Dancer", "EuWinder2Dancer", "EuWinder3Dancer", "EuWinder4Dancer", "EuWinder1Motor", "EuWinder2Motor", "EuWinder3Motor", "EuWinder4Motor", "EuDryerMotorVelocity", "EuDryerMotorTargetVelocity", "EuDryerMotorCurrent", "EuPullerDancer", "EuPullerMotor", "EuDryerZone1Temperature", "EuDryerZone2Temperature", "EuDryerZone3Temperature", "EuHeadZone1Temperature", "EuHeadZone2Temperature", "EuHeadZone3Temperature", "EuMixerTemperature", "EuTunnelTemperature", "EuLubricantTemperature", "EuAmbientTemperature", "EuElectricalCabinetTemperature", "EuDryerZone1Current", "EuDryerZone2Current", "EuDryerZone3Current", "EuHeadZone1Current", "EuHeadZone2Current", "EuHeadZone3Current", "EuMixerCurrent", "EuTunnelCurrent", "EuLubricantCurrent", "EuBtsr1Speed", "EuBtsr1SpeedAv", "EuBtsr1DispAv", "EuBtsr1PeakMin", "EuBtsr1PeakMax", "EuBtsr2Speed", "EuBtsr2SpeedAv", "EuBtsr2DispAv", "EuBtsr2PeakMin", "EuBtsr2PeakMax", "EuBtsr3Speed", "EuBtsr3SpeedAv", "EuBtsr3DispAv", "EuBtsr3PeakMin", "EuBtsr3PeakMax", "EuBtsr4Speed", "EuBtsr4SpeedAv", "EuBtsr4PeakMin", "EuBtsr4PeakMax", "EuBtsr4DispAv", "EuTemperatureLoggers", "EuPumpFlows", "EuInkLinesPressure", "EuSpareDataArray", "EuDispenser1Voltage", "EuDispenser2Voltage", "EuDispenser3Voltage", "EuDispenser4Voltage", "EuDispenser5Voltage", "EuDispenser6Voltage", "EuDispenser7Voltage", "EuDispenser8Voltage", "EuDispenser9Voltage", "EuDispenser10Voltage", "EuDispenser11Voltage", "EuDispenser12Voltage", "EuDispenser13Voltage", "EuDispenser14Voltage", "EuDispenser15Voltage", "EuDispenser16Voltage", "EuLubricantPumpVoltage", "EuDispenser1Pressure", "EuDispenser2Pressure", "EuDispenser3Pressure", "EuDispenser4Pressure", "EuDispenser5Pressure", "EuDispenser6Pressure", "EuDispenser7Pressure", "EuDispenser8Pressure", "EuLubricantPressure", "EuMidTank1Level", "EuMidTank2Level", "EuMidTank3Level", "EuMidTank4Level", "EuMidTank5Level", "EuMidTank6Level", "EuMidTank7Level", "EuMidTank8Level", "EuChillerTemperature", "EuHeadRightAirFlow", "EuHeadLeftAirFlow", "EuHeadRightVoltage", "EuHeadLeftVoltage", "EuDryerAirFlow", "EuBlowerVoltage", "EuWasteLevel", "EuSpare1", "EuSpare2", "EuSpare3", "EuSpare4" }, null, null, null)
}));
}
#endregion
@@ -210,6 +273,109 @@ namespace Tango.PMR.Insights {
shinkoSetValue_ = other.shinkoSetValue_;
shinkoCurrentValue_ = other.shinkoCurrentValue_;
totalWHSFlow_ = other.totalWHSFlow_;
+ euWinder1Dancer_ = other.euWinder1Dancer_;
+ euWinder2Dancer_ = other.euWinder2Dancer_;
+ euWinder3Dancer_ = other.euWinder3Dancer_;
+ euWinder4Dancer_ = other.euWinder4Dancer_;
+ euWinder1Motor_ = other.euWinder1Motor_;
+ euWinder2Motor_ = other.euWinder2Motor_;
+ euWinder3Motor_ = other.euWinder3Motor_;
+ euWinder4Motor_ = other.euWinder4Motor_;
+ euDryerMotorVelocity_ = other.euDryerMotorVelocity_;
+ euDryerMotorTargetVelocity_ = other.euDryerMotorTargetVelocity_;
+ euDryerMotorCurrent_ = other.euDryerMotorCurrent_;
+ euPullerDancer_ = other.euPullerDancer_;
+ euPullerMotor_ = other.euPullerMotor_;
+ euDryerZone1Temperature_ = other.euDryerZone1Temperature_;
+ euDryerZone2Temperature_ = other.euDryerZone2Temperature_;
+ euDryerZone3Temperature_ = other.euDryerZone3Temperature_;
+ euHeadZone1Temperature_ = other.euHeadZone1Temperature_;
+ euHeadZone2Temperature_ = other.euHeadZone2Temperature_;
+ euHeadZone3Temperature_ = other.euHeadZone3Temperature_;
+ euMixerTemperature_ = other.euMixerTemperature_;
+ euTunnelTemperature_ = other.euTunnelTemperature_;
+ euLubricantTemperature_ = other.euLubricantTemperature_;
+ euAmbientTemperature_ = other.euAmbientTemperature_;
+ euElectricalCabinetTemperature_ = other.euElectricalCabinetTemperature_;
+ euDryerZone1Current_ = other.euDryerZone1Current_;
+ euDryerZone2Current_ = other.euDryerZone2Current_;
+ euDryerZone3Current_ = other.euDryerZone3Current_;
+ euHeadZone1Current_ = other.euHeadZone1Current_;
+ euHeadZone2Current_ = other.euHeadZone2Current_;
+ euHeadZone3Current_ = other.euHeadZone3Current_;
+ euMixerCurrent_ = other.euMixerCurrent_;
+ euTunnelCurrent_ = other.euTunnelCurrent_;
+ euLubricantCurrent_ = other.euLubricantCurrent_;
+ euBtsr1Speed_ = other.euBtsr1Speed_;
+ euBtsr1SpeedAv_ = other.euBtsr1SpeedAv_;
+ euBtsr1DispAv_ = other.euBtsr1DispAv_;
+ euBtsr1PeakMin_ = other.euBtsr1PeakMin_;
+ euBtsr1PeakMax_ = other.euBtsr1PeakMax_;
+ euBtsr2Speed_ = other.euBtsr2Speed_;
+ euBtsr2SpeedAv_ = other.euBtsr2SpeedAv_;
+ euBtsr2DispAv_ = other.euBtsr2DispAv_;
+ euBtsr2PeakMin_ = other.euBtsr2PeakMin_;
+ euBtsr2PeakMax_ = other.euBtsr2PeakMax_;
+ euBtsr3Speed_ = other.euBtsr3Speed_;
+ euBtsr3SpeedAv_ = other.euBtsr3SpeedAv_;
+ euBtsr3DispAv_ = other.euBtsr3DispAv_;
+ euBtsr3PeakMin_ = other.euBtsr3PeakMin_;
+ euBtsr3PeakMax_ = other.euBtsr3PeakMax_;
+ euBtsr4Speed_ = other.euBtsr4Speed_;
+ euBtsr4SpeedAv_ = other.euBtsr4SpeedAv_;
+ euBtsr4PeakMin_ = other.euBtsr4PeakMin_;
+ euBtsr4PeakMax_ = other.euBtsr4PeakMax_;
+ euBtsr4DispAv_ = other.euBtsr4DispAv_;
+ euTemperatureLoggers_ = other.euTemperatureLoggers_.Clone();
+ euPumpFlows_ = other.euPumpFlows_.Clone();
+ euInkLinesPressure_ = other.euInkLinesPressure_.Clone();
+ euSpareDataArray_ = other.euSpareDataArray_.Clone();
+ euDispenser1Voltage_ = other.euDispenser1Voltage_;
+ euDispenser2Voltage_ = other.euDispenser2Voltage_;
+ euDispenser3Voltage_ = other.euDispenser3Voltage_;
+ euDispenser4Voltage_ = other.euDispenser4Voltage_;
+ euDispenser5Voltage_ = other.euDispenser5Voltage_;
+ euDispenser6Voltage_ = other.euDispenser6Voltage_;
+ euDispenser7Voltage_ = other.euDispenser7Voltage_;
+ euDispenser8Voltage_ = other.euDispenser8Voltage_;
+ euDispenser9Voltage_ = other.euDispenser9Voltage_;
+ euDispenser10Voltage_ = other.euDispenser10Voltage_;
+ euDispenser11Voltage_ = other.euDispenser11Voltage_;
+ euDispenser12Voltage_ = other.euDispenser12Voltage_;
+ euDispenser13Voltage_ = other.euDispenser13Voltage_;
+ euDispenser14Voltage_ = other.euDispenser14Voltage_;
+ euDispenser15Voltage_ = other.euDispenser15Voltage_;
+ euDispenser16Voltage_ = other.euDispenser16Voltage_;
+ euLubricantPumpVoltage_ = other.euLubricantPumpVoltage_;
+ euDispenser1Pressure_ = other.euDispenser1Pressure_;
+ euDispenser2Pressure_ = other.euDispenser2Pressure_;
+ euDispenser3Pressure_ = other.euDispenser3Pressure_;
+ euDispenser4Pressure_ = other.euDispenser4Pressure_;
+ euDispenser5Pressure_ = other.euDispenser5Pressure_;
+ euDispenser6Pressure_ = other.euDispenser6Pressure_;
+ euDispenser7Pressure_ = other.euDispenser7Pressure_;
+ euDispenser8Pressure_ = other.euDispenser8Pressure_;
+ euLubricantPressure_ = other.euLubricantPressure_;
+ euMidTank1Level_ = other.euMidTank1Level_;
+ euMidTank2Level_ = other.euMidTank2Level_;
+ euMidTank3Level_ = other.euMidTank3Level_;
+ euMidTank4Level_ = other.euMidTank4Level_;
+ euMidTank5Level_ = other.euMidTank5Level_;
+ euMidTank6Level_ = other.euMidTank6Level_;
+ euMidTank7Level_ = other.euMidTank7Level_;
+ euMidTank8Level_ = other.euMidTank8Level_;
+ euChillerTemperature_ = other.euChillerTemperature_;
+ euHeadRightAirFlow_ = other.euHeadRightAirFlow_;
+ euHeadLeftAirFlow_ = other.euHeadLeftAirFlow_;
+ euHeadRightVoltage_ = other.euHeadRightVoltage_;
+ euHeadLeftVoltage_ = other.euHeadLeftVoltage_;
+ euDryerAirFlow_ = other.euDryerAirFlow_;
+ euBlowerVoltage_ = other.euBlowerVoltage_;
+ euWasteLevel_ = other.euWasteLevel_;
+ euSpare1_ = other.euSpare1_;
+ euSpare2_ = other.euSpare2_;
+ euSpare3_ = other.euSpare3_;
+ euSpare4_ = other.euSpare4_;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -1513,6 +1679,1444 @@ namespace Tango.PMR.Insights {
}
}
+ /// <summary>Field number for the "EuWinder1Dancer" field.</summary>
+ public const int EuWinder1DancerFieldNumber = 94;
+ private double euWinder1Dancer_;
+ /// <summary>
+ ///Eureka Winder Dancer 1
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuWinder1Dancer {
+ get { return euWinder1Dancer_; }
+ set {
+ euWinder1Dancer_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuWinder2Dancer" field.</summary>
+ public const int EuWinder2DancerFieldNumber = 95;
+ private double euWinder2Dancer_;
+ /// <summary>
+ ///Eureka Winder Dancer 2
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuWinder2Dancer {
+ get { return euWinder2Dancer_; }
+ set {
+ euWinder2Dancer_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuWinder3Dancer" field.</summary>
+ public const int EuWinder3DancerFieldNumber = 96;
+ private double euWinder3Dancer_;
+ /// <summary>
+ ///Eureka Winder Dancer 3
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuWinder3Dancer {
+ get { return euWinder3Dancer_; }
+ set {
+ euWinder3Dancer_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuWinder4Dancer" field.</summary>
+ public const int EuWinder4DancerFieldNumber = 97;
+ private double euWinder4Dancer_;
+ /// <summary>
+ ///Eureka Winder Dancer 4
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuWinder4Dancer {
+ get { return euWinder4Dancer_; }
+ set {
+ euWinder4Dancer_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuWinder1Motor" field.</summary>
+ public const int EuWinder1MotorFieldNumber = 98;
+ private double euWinder1Motor_;
+ /// <summary>
+ ///Eureka Winder Motor 1
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuWinder1Motor {
+ get { return euWinder1Motor_; }
+ set {
+ euWinder1Motor_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuWinder2Motor" field.</summary>
+ public const int EuWinder2MotorFieldNumber = 99;
+ private double euWinder2Motor_;
+ /// <summary>
+ ///Eureka Winder Motor 2
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuWinder2Motor {
+ get { return euWinder2Motor_; }
+ set {
+ euWinder2Motor_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuWinder3Motor" field.</summary>
+ public const int EuWinder3MotorFieldNumber = 100;
+ private double euWinder3Motor_;
+ /// <summary>
+ ///Eureka Winder Motor 3
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuWinder3Motor {
+ get { return euWinder3Motor_; }
+ set {
+ euWinder3Motor_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuWinder4Motor" field.</summary>
+ public const int EuWinder4MotorFieldNumber = 101;
+ private double euWinder4Motor_;
+ /// <summary>
+ ///Eureka Winder Motor 4
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuWinder4Motor {
+ get { return euWinder4Motor_; }
+ set {
+ euWinder4Motor_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuDryerMotorVelocity" field.</summary>
+ public const int EuDryerMotorVelocityFieldNumber = 102;
+ private double euDryerMotorVelocity_;
+ /// <summary>
+ ///Eureka Dryer Motor Velocity
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuDryerMotorVelocity {
+ get { return euDryerMotorVelocity_; }
+ set {
+ euDryerMotorVelocity_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuDryerMotorTargetVelocity" field.</summary>
+ public const int EuDryerMotorTargetVelocityFieldNumber = 103;
+ private double euDryerMotorTargetVelocity_;
+ /// <summary>
+ ///Eureka Dryer Motor Target Velocity
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuDryerMotorTargetVelocity {
+ get { return euDryerMotorTargetVelocity_; }
+ set {
+ euDryerMotorTargetVelocity_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuDryerMotorCurrent" field.</summary>
+ public const int EuDryerMotorCurrentFieldNumber = 104;
+ private double euDryerMotorCurrent_;
+ /// <summary>
+ ///Eureka Dryer Motor Current
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuDryerMotorCurrent {
+ get { return euDryerMotorCurrent_; }
+ set {
+ euDryerMotorCurrent_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuPullerDancer" field.</summary>
+ public const int EuPullerDancerFieldNumber = 105;
+ private double euPullerDancer_;
+ /// <summary>
+ ///Eureka Puller Dancer
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuPullerDancer {
+ get { return euPullerDancer_; }
+ set {
+ euPullerDancer_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuPullerMotor" field.</summary>
+ public const int EuPullerMotorFieldNumber = 106;
+ private double euPullerMotor_;
+ /// <summary>
+ ///Eureka Puller Motor
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuPullerMotor {
+ get { return euPullerMotor_; }
+ set {
+ euPullerMotor_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuDryerZone1Temperature" field.</summary>
+ public const int EuDryerZone1TemperatureFieldNumber = 107;
+ private double euDryerZone1Temperature_;
+ /// <summary>
+ ///Eureka Dryer Zone 1 Temperature
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuDryerZone1Temperature {
+ get { return euDryerZone1Temperature_; }
+ set {
+ euDryerZone1Temperature_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuDryerZone2Temperature" field.</summary>
+ public const int EuDryerZone2TemperatureFieldNumber = 108;
+ private double euDryerZone2Temperature_;
+ /// <summary>
+ ///Eureka Dryer Zone 2 Temperature
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuDryerZone2Temperature {
+ get { return euDryerZone2Temperature_; }
+ set {
+ euDryerZone2Temperature_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuDryerZone3Temperature" field.</summary>
+ public const int EuDryerZone3TemperatureFieldNumber = 109;
+ private double euDryerZone3Temperature_;
+ /// <summary>
+ ///Eureka Dryer Zone 3 Temperature
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuDryerZone3Temperature {
+ get { return euDryerZone3Temperature_; }
+ set {
+ euDryerZone3Temperature_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuHeadZone1Temperature" field.</summary>
+ public const int EuHeadZone1TemperatureFieldNumber = 110;
+ private double euHeadZone1Temperature_;
+ /// <summary>
+ ///Eureka Head Zone 1 Temperature
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuHeadZone1Temperature {
+ get { return euHeadZone1Temperature_; }
+ set {
+ euHeadZone1Temperature_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuHeadZone2Temperature" field.</summary>
+ public const int EuHeadZone2TemperatureFieldNumber = 111;
+ private double euHeadZone2Temperature_;
+ /// <summary>
+ ///Eureka Head Zone 2 Temperature
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuHeadZone2Temperature {
+ get { return euHeadZone2Temperature_; }
+ set {
+ euHeadZone2Temperature_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuHeadZone3Temperature" field.</summary>
+ public const int EuHeadZone3TemperatureFieldNumber = 112;
+ private double euHeadZone3Temperature_;
+ /// <summary>
+ ///Eureka Head Zone 3 Temperature
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuHeadZone3Temperature {
+ get { return euHeadZone3Temperature_; }
+ set {
+ euHeadZone3Temperature_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuMixerTemperature" field.</summary>
+ public const int EuMixerTemperatureFieldNumber = 113;
+ private double euMixerTemperature_;
+ /// <summary>
+ ///Eureka Mixer Temperature
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuMixerTemperature {
+ get { return euMixerTemperature_; }
+ set {
+ euMixerTemperature_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuTunnelTemperature" field.</summary>
+ public const int EuTunnelTemperatureFieldNumber = 114;
+ private double euTunnelTemperature_;
+ /// <summary>
+ ///Eureka Tunnel Temperature
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuTunnelTemperature {
+ get { return euTunnelTemperature_; }
+ set {
+ euTunnelTemperature_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuLubricantTemperature" field.</summary>
+ public const int EuLubricantTemperatureFieldNumber = 115;
+ private double euLubricantTemperature_;
+ /// <summary>
+ ///Eureka Lubricant Temperature
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuLubricantTemperature {
+ get { return euLubricantTemperature_; }
+ set {
+ euLubricantTemperature_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuAmbientTemperature" field.</summary>
+ public const int EuAmbientTemperatureFieldNumber = 116;
+ private double euAmbientTemperature_;
+ /// <summary>
+ ///Eureka Ambient Temperature
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuAmbientTemperature {
+ get { return euAmbientTemperature_; }
+ set {
+ euAmbientTemperature_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuElectricalCabinetTemperature" field.</summary>
+ public const int EuElectricalCabinetTemperatureFieldNumber = 117;
+ private double euElectricalCabinetTemperature_;
+ /// <summary>
+ ///Eureka Electrical Cabinet Temperature
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuElectricalCabinetTemperature {
+ get { return euElectricalCabinetTemperature_; }
+ set {
+ euElectricalCabinetTemperature_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuDryerZone1Current" field.</summary>
+ public const int EuDryerZone1CurrentFieldNumber = 118;
+ private double euDryerZone1Current_;
+ /// <summary>
+ ///Eureka Dryer Zone 1 Current
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuDryerZone1Current {
+ get { return euDryerZone1Current_; }
+ set {
+ euDryerZone1Current_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuDryerZone2Current" field.</summary>
+ public const int EuDryerZone2CurrentFieldNumber = 119;
+ private double euDryerZone2Current_;
+ /// <summary>
+ ///Eureka Dryer Zone 2 Current
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuDryerZone2Current {
+ get { return euDryerZone2Current_; }
+ set {
+ euDryerZone2Current_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuDryerZone3Current" field.</summary>
+ public const int EuDryerZone3CurrentFieldNumber = 120;
+ private double euDryerZone3Current_;
+ /// <summary>
+ ///Eureka Dryer Zone 3 Current
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuDryerZone3Current {
+ get { return euDryerZone3Current_; }
+ set {
+ euDryerZone3Current_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuHeadZone1Current" field.</summary>
+ public const int EuHeadZone1CurrentFieldNumber = 121;
+ private double euHeadZone1Current_;
+ /// <summary>
+ ///Eureka Head Zone 1 Current
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuHeadZone1Current {
+ get { return euHeadZone1Current_; }
+ set {
+ euHeadZone1Current_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuHeadZone2Current" field.</summary>
+ public const int EuHeadZone2CurrentFieldNumber = 122;
+ private double euHeadZone2Current_;
+ /// <summary>
+ ///Eureka Head Zone 2 Current
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuHeadZone2Current {
+ get { return euHeadZone2Current_; }
+ set {
+ euHeadZone2Current_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuHeadZone3Current" field.</summary>
+ public const int EuHeadZone3CurrentFieldNumber = 123;
+ private double euHeadZone3Current_;
+ /// <summary>
+ ///Eureka Head Zone 3 Current
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuHeadZone3Current {
+ get { return euHeadZone3Current_; }
+ set {
+ euHeadZone3Current_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuMixerCurrent" field.</summary>
+ public const int EuMixerCurrentFieldNumber = 124;
+ private double euMixerCurrent_;
+ /// <summary>
+ ///Eureka Mixer Current
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuMixerCurrent {
+ get { return euMixerCurrent_; }
+ set {
+ euMixerCurrent_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuTunnelCurrent" field.</summary>
+ public const int EuTunnelCurrentFieldNumber = 125;
+ private double euTunnelCurrent_;
+ /// <summary>
+ ///Eureka Tunnel Current
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuTunnelCurrent {
+ get { return euTunnelCurrent_; }
+ set {
+ euTunnelCurrent_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuLubricantCurrent" field.</summary>
+ public const int EuLubricantCurrentFieldNumber = 126;
+ private double euLubricantCurrent_;
+ /// <summary>
+ ///Eureka Lubricant Current
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuLubricantCurrent {
+ get { return euLubricantCurrent_; }
+ set {
+ euLubricantCurrent_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuBtsr1Speed" field.</summary>
+ public const int EuBtsr1SpeedFieldNumber = 127;
+ private double euBtsr1Speed_;
+ /// <summary>
+ ///Eureka BTSR 1 Speed
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuBtsr1Speed {
+ get { return euBtsr1Speed_; }
+ set {
+ euBtsr1Speed_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuBtsr1SpeedAv" field.</summary>
+ public const int EuBtsr1SpeedAvFieldNumber = 128;
+ private double euBtsr1SpeedAv_;
+ /// <summary>
+ ///Eureka BTSR 1 Speed Average
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuBtsr1SpeedAv {
+ get { return euBtsr1SpeedAv_; }
+ set {
+ euBtsr1SpeedAv_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuBtsr1DispAv" field.</summary>
+ public const int EuBtsr1DispAvFieldNumber = 129;
+ private double euBtsr1DispAv_;
+ /// <summary>
+ ///Eureka BTSR 1 Tension
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuBtsr1DispAv {
+ get { return euBtsr1DispAv_; }
+ set {
+ euBtsr1DispAv_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuBtsr1PeakMin" field.</summary>
+ public const int EuBtsr1PeakMinFieldNumber = 130;
+ private double euBtsr1PeakMin_;
+ /// <summary>
+ ///Eureka BTSR 1 Peak Min
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuBtsr1PeakMin {
+ get { return euBtsr1PeakMin_; }
+ set {
+ euBtsr1PeakMin_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuBtsr1PeakMax" field.</summary>
+ public const int EuBtsr1PeakMaxFieldNumber = 131;
+ private double euBtsr1PeakMax_;
+ /// <summary>
+ ///Eureka BTSR 1 Peak Max
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuBtsr1PeakMax {
+ get { return euBtsr1PeakMax_; }
+ set {
+ euBtsr1PeakMax_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuBtsr2Speed" field.</summary>
+ public const int EuBtsr2SpeedFieldNumber = 132;
+ private double euBtsr2Speed_;
+ /// <summary>
+ ///Eureka BTSR 2 Speed
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuBtsr2Speed {
+ get { return euBtsr2Speed_; }
+ set {
+ euBtsr2Speed_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuBtsr2SpeedAv" field.</summary>
+ public const int EuBtsr2SpeedAvFieldNumber = 133;
+ private double euBtsr2SpeedAv_;
+ /// <summary>
+ ///Eureka BTSR 2 Speed Average
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuBtsr2SpeedAv {
+ get { return euBtsr2SpeedAv_; }
+ set {
+ euBtsr2SpeedAv_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuBtsr2DispAv" field.</summary>
+ public const int EuBtsr2DispAvFieldNumber = 134;
+ private double euBtsr2DispAv_;
+ /// <summary>
+ ///Eureka BTSR 2 Tension
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuBtsr2DispAv {
+ get { return euBtsr2DispAv_; }
+ set {
+ euBtsr2DispAv_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuBtsr2PeakMin" field.</summary>
+ public const int EuBtsr2PeakMinFieldNumber = 135;
+ private double euBtsr2PeakMin_;
+ /// <summary>
+ ///Eureka BTSR 2 Peak Min
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuBtsr2PeakMin {
+ get { return euBtsr2PeakMin_; }
+ set {
+ euBtsr2PeakMin_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuBtsr2PeakMax" field.</summary>
+ public const int EuBtsr2PeakMaxFieldNumber = 136;
+ private double euBtsr2PeakMax_;
+ /// <summary>
+ ///Eureka BTSR 2 Peak Max
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuBtsr2PeakMax {
+ get { return euBtsr2PeakMax_; }
+ set {
+ euBtsr2PeakMax_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuBtsr3Speed" field.</summary>
+ public const int EuBtsr3SpeedFieldNumber = 137;
+ private double euBtsr3Speed_;
+ /// <summary>
+ ///Eureka BTSR 3 Speed
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuBtsr3Speed {
+ get { return euBtsr3Speed_; }
+ set {
+ euBtsr3Speed_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuBtsr3SpeedAv" field.</summary>
+ public const int EuBtsr3SpeedAvFieldNumber = 138;
+ private double euBtsr3SpeedAv_;
+ /// <summary>
+ ///Eureka BTSR 3 Speed Average
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuBtsr3SpeedAv {
+ get { return euBtsr3SpeedAv_; }
+ set {
+ euBtsr3SpeedAv_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuBtsr3DispAv" field.</summary>
+ public const int EuBtsr3DispAvFieldNumber = 139;
+ private double euBtsr3DispAv_;
+ /// <summary>
+ ///Eureka BTSR 3 Tension
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuBtsr3DispAv {
+ get { return euBtsr3DispAv_; }
+ set {
+ euBtsr3DispAv_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuBtsr3PeakMin" field.</summary>
+ public const int EuBtsr3PeakMinFieldNumber = 140;
+ private double euBtsr3PeakMin_;
+ /// <summary>
+ ///Eureka BTSR 3 Peak Min
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuBtsr3PeakMin {
+ get { return euBtsr3PeakMin_; }
+ set {
+ euBtsr3PeakMin_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuBtsr3PeakMax" field.</summary>
+ public const int EuBtsr3PeakMaxFieldNumber = 141;
+ private double euBtsr3PeakMax_;
+ /// <summary>
+ ///Eureka BTSR 3 Peak Max
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuBtsr3PeakMax {
+ get { return euBtsr3PeakMax_; }
+ set {
+ euBtsr3PeakMax_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuBtsr4Speed" field.</summary>
+ public const int EuBtsr4SpeedFieldNumber = 142;
+ private double euBtsr4Speed_;
+ /// <summary>
+ ///Eureka BTSR 4 Speed
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuBtsr4Speed {
+ get { return euBtsr4Speed_; }
+ set {
+ euBtsr4Speed_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuBtsr4SpeedAv" field.</summary>
+ public const int EuBtsr4SpeedAvFieldNumber = 143;
+ private double euBtsr4SpeedAv_;
+ /// <summary>
+ ///Eureka BTSR 4 Speed Average
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuBtsr4SpeedAv {
+ get { return euBtsr4SpeedAv_; }
+ set {
+ euBtsr4SpeedAv_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuBtsr4PeakMin" field.</summary>
+ public const int EuBtsr4PeakMinFieldNumber = 144;
+ private double euBtsr4PeakMin_;
+ /// <summary>
+ ///Eureka BTSR 4 Peak Min
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuBtsr4PeakMin {
+ get { return euBtsr4PeakMin_; }
+ set {
+ euBtsr4PeakMin_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuBtsr4PeakMax" field.</summary>
+ public const int EuBtsr4PeakMaxFieldNumber = 145;
+ private double euBtsr4PeakMax_;
+ /// <summary>
+ ///Eureka BTSR 4 Peak Max
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuBtsr4PeakMax {
+ get { return euBtsr4PeakMax_; }
+ set {
+ euBtsr4PeakMax_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuBtsr4DispAv" field.</summary>
+ public const int EuBtsr4DispAvFieldNumber = 146;
+ private double euBtsr4DispAv_;
+ /// <summary>
+ ///Eureka BTSR 4 Tension
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuBtsr4DispAv {
+ get { return euBtsr4DispAv_; }
+ set {
+ euBtsr4DispAv_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuTemperatureLoggers" field.</summary>
+ public const int EuTemperatureLoggersFieldNumber = 147;
+ private static readonly pb::FieldCodec<double> _repeated_euTemperatureLoggers_codec
+ = pb::FieldCodec.ForDouble(1178);
+ private readonly pbc::RepeatedField<double> euTemperatureLoggers_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Temperature Loggers
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuTemperatureLoggers {
+ get { return euTemperatureLoggers_; }
+ }
+
+ /// <summary>Field number for the "EuPumpFlows" field.</summary>
+ public const int EuPumpFlowsFieldNumber = 148;
+ private static readonly pb::FieldCodec<double> _repeated_euPumpFlows_codec
+ = pb::FieldCodec.ForDouble(1186);
+ private readonly pbc::RepeatedField<double> euPumpFlows_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Pump Flows
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuPumpFlows {
+ get { return euPumpFlows_; }
+ }
+
+ /// <summary>Field number for the "EuInkLinesPressure" field.</summary>
+ public const int EuInkLinesPressureFieldNumber = 149;
+ private static readonly pb::FieldCodec<double> _repeated_euInkLinesPressure_codec
+ = pb::FieldCodec.ForDouble(1194);
+ private readonly pbc::RepeatedField<double> euInkLinesPressure_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Ink Lines Pressure
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuInkLinesPressure {
+ get { return euInkLinesPressure_; }
+ }
+
+ /// <summary>Field number for the "EuSpareDataArray" field.</summary>
+ public const int EuSpareDataArrayFieldNumber = 150;
+ private static readonly pb::FieldCodec<double> _repeated_euSpareDataArray_codec
+ = pb::FieldCodec.ForDouble(1202);
+ private readonly pbc::RepeatedField<double> euSpareDataArray_ = new pbc::RepeatedField<double>();
+ /// <summary>
+ ///Eureka Spare Data Array
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<double> EuSpareDataArray {
+ get { return euSpareDataArray_; }
+ }
+
+ /// <summary>Field number for the "EuDispenser1Voltage" field.</summary>
+ public const int EuDispenser1VoltageFieldNumber = 151;
+ private double euDispenser1Voltage_;
+ /// <summary>
+ ///Eureka Dispenser 1 Voltage
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuDispenser1Voltage {
+ get { return euDispenser1Voltage_; }
+ set {
+ euDispenser1Voltage_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuDispenser2Voltage" field.</summary>
+ public const int EuDispenser2VoltageFieldNumber = 152;
+ private double euDispenser2Voltage_;
+ /// <summary>
+ ///Eureka Dispenser 2 Voltage
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuDispenser2Voltage {
+ get { return euDispenser2Voltage_; }
+ set {
+ euDispenser2Voltage_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuDispenser3Voltage" field.</summary>
+ public const int EuDispenser3VoltageFieldNumber = 153;
+ private double euDispenser3Voltage_;
+ /// <summary>
+ ///Eureka Dispenser 3 Voltage
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuDispenser3Voltage {
+ get { return euDispenser3Voltage_; }
+ set {
+ euDispenser3Voltage_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuDispenser4Voltage" field.</summary>
+ public const int EuDispenser4VoltageFieldNumber = 154;
+ private double euDispenser4Voltage_;
+ /// <summary>
+ ///Eureka Dispenser 4 Voltage
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuDispenser4Voltage {
+ get { return euDispenser4Voltage_; }
+ set {
+ euDispenser4Voltage_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuDispenser5Voltage" field.</summary>
+ public const int EuDispenser5VoltageFieldNumber = 155;
+ private double euDispenser5Voltage_;
+ /// <summary>
+ ///Eureka Dispenser 5 Voltage
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuDispenser5Voltage {
+ get { return euDispenser5Voltage_; }
+ set {
+ euDispenser5Voltage_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuDispenser6Voltage" field.</summary>
+ public const int EuDispenser6VoltageFieldNumber = 156;
+ private double euDispenser6Voltage_;
+ /// <summary>
+ ///Eureka Dispenser 6 Voltage
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuDispenser6Voltage {
+ get { return euDispenser6Voltage_; }
+ set {
+ euDispenser6Voltage_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuDispenser7Voltage" field.</summary>
+ public const int EuDispenser7VoltageFieldNumber = 157;
+ private double euDispenser7Voltage_;
+ /// <summary>
+ ///Eureka Dispenser 7 Voltage
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuDispenser7Voltage {
+ get { return euDispenser7Voltage_; }
+ set {
+ euDispenser7Voltage_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuDispenser8Voltage" field.</summary>
+ public const int EuDispenser8VoltageFieldNumber = 158;
+ private double euDispenser8Voltage_;
+ /// <summary>
+ ///Eureka Dispenser 8 Voltage
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuDispenser8Voltage {
+ get { return euDispenser8Voltage_; }
+ set {
+ euDispenser8Voltage_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuDispenser9Voltage" field.</summary>
+ public const int EuDispenser9VoltageFieldNumber = 159;
+ private double euDispenser9Voltage_;
+ /// <summary>
+ ///Eureka Dispenser 9 Voltage
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuDispenser9Voltage {
+ get { return euDispenser9Voltage_; }
+ set {
+ euDispenser9Voltage_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuDispenser10Voltage" field.</summary>
+ public const int EuDispenser10VoltageFieldNumber = 160;
+ private double euDispenser10Voltage_;
+ /// <summary>
+ ///Eureka Dispenser 10 Voltage
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuDispenser10Voltage {
+ get { return euDispenser10Voltage_; }
+ set {
+ euDispenser10Voltage_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuDispenser11Voltage" field.</summary>
+ public const int EuDispenser11VoltageFieldNumber = 161;
+ private double euDispenser11Voltage_;
+ /// <summary>
+ ///Eureka Dispenser 11 Voltage
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuDispenser11Voltage {
+ get { return euDispenser11Voltage_; }
+ set {
+ euDispenser11Voltage_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuDispenser12Voltage" field.</summary>
+ public const int EuDispenser12VoltageFieldNumber = 162;
+ private double euDispenser12Voltage_;
+ /// <summary>
+ ///Eureka Dispenser 12 Voltage
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuDispenser12Voltage {
+ get { return euDispenser12Voltage_; }
+ set {
+ euDispenser12Voltage_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuDispenser13Voltage" field.</summary>
+ public const int EuDispenser13VoltageFieldNumber = 163;
+ private double euDispenser13Voltage_;
+ /// <summary>
+ ///Eureka Dispenser 13 Voltage
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuDispenser13Voltage {
+ get { return euDispenser13Voltage_; }
+ set {
+ euDispenser13Voltage_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuDispenser14Voltage" field.</summary>
+ public const int EuDispenser14VoltageFieldNumber = 164;
+ private double euDispenser14Voltage_;
+ /// <summary>
+ ///Eureka Dispenser 14 Voltage
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuDispenser14Voltage {
+ get { return euDispenser14Voltage_; }
+ set {
+ euDispenser14Voltage_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuDispenser15Voltage" field.</summary>
+ public const int EuDispenser15VoltageFieldNumber = 165;
+ private double euDispenser15Voltage_;
+ /// <summary>
+ ///Eureka Dispenser 15 Voltage
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuDispenser15Voltage {
+ get { return euDispenser15Voltage_; }
+ set {
+ euDispenser15Voltage_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuDispenser16Voltage" field.</summary>
+ public const int EuDispenser16VoltageFieldNumber = 166;
+ private double euDispenser16Voltage_;
+ /// <summary>
+ ///Eureka Dispenser 16 Voltage
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuDispenser16Voltage {
+ get { return euDispenser16Voltage_; }
+ set {
+ euDispenser16Voltage_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuLubricantPumpVoltage" field.</summary>
+ public const int EuLubricantPumpVoltageFieldNumber = 167;
+ private double euLubricantPumpVoltage_;
+ /// <summary>
+ ///Eureka Lubricant Pump Voltage
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuLubricantPumpVoltage {
+ get { return euLubricantPumpVoltage_; }
+ set {
+ euLubricantPumpVoltage_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuDispenser1Pressure" field.</summary>
+ public const int EuDispenser1PressureFieldNumber = 168;
+ private double euDispenser1Pressure_;
+ /// <summary>
+ ///Eureka Dispenser 1 Pressure
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuDispenser1Pressure {
+ get { return euDispenser1Pressure_; }
+ set {
+ euDispenser1Pressure_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuDispenser2Pressure" field.</summary>
+ public const int EuDispenser2PressureFieldNumber = 169;
+ private double euDispenser2Pressure_;
+ /// <summary>
+ ///Eureka Dispenser 2 Pressure
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuDispenser2Pressure {
+ get { return euDispenser2Pressure_; }
+ set {
+ euDispenser2Pressure_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuDispenser3Pressure" field.</summary>
+ public const int EuDispenser3PressureFieldNumber = 170;
+ private double euDispenser3Pressure_;
+ /// <summary>
+ ///Eureka Dispenser 3 Pressure
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuDispenser3Pressure {
+ get { return euDispenser3Pressure_; }
+ set {
+ euDispenser3Pressure_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuDispenser4Pressure" field.</summary>
+ public const int EuDispenser4PressureFieldNumber = 171;
+ private double euDispenser4Pressure_;
+ /// <summary>
+ ///Eureka Dispenser 4 Pressure
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuDispenser4Pressure {
+ get { return euDispenser4Pressure_; }
+ set {
+ euDispenser4Pressure_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuDispenser5Pressure" field.</summary>
+ public const int EuDispenser5PressureFieldNumber = 172;
+ private double euDispenser5Pressure_;
+ /// <summary>
+ ///Eureka Dispenser 5 Pressure
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuDispenser5Pressure {
+ get { return euDispenser5Pressure_; }
+ set {
+ euDispenser5Pressure_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuDispenser6Pressure" field.</summary>
+ public const int EuDispenser6PressureFieldNumber = 173;
+ private double euDispenser6Pressure_;
+ /// <summary>
+ ///Eureka Dispenser 6 Pressure
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuDispenser6Pressure {
+ get { return euDispenser6Pressure_; }
+ set {
+ euDispenser6Pressure_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuDispenser7Pressure" field.</summary>
+ public const int EuDispenser7PressureFieldNumber = 174;
+ private double euDispenser7Pressure_;
+ /// <summary>
+ ///Eureka Dispenser 7 Pressure
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuDispenser7Pressure {
+ get { return euDispenser7Pressure_; }
+ set {
+ euDispenser7Pressure_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuDispenser8Pressure" field.</summary>
+ public const int EuDispenser8PressureFieldNumber = 175;
+ private double euDispenser8Pressure_;
+ /// <summary>
+ ///Eureka Dispenser 8 Pressure
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuDispenser8Pressure {
+ get { return euDispenser8Pressure_; }
+ set {
+ euDispenser8Pressure_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuLubricantPressure" field.</summary>
+ public const int EuLubricantPressureFieldNumber = 176;
+ private double euLubricantPressure_;
+ /// <summary>
+ ///Eureka Lubricant Pressure
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuLubricantPressure {
+ get { return euLubricantPressure_; }
+ set {
+ euLubricantPressure_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuMidTank1Level" field.</summary>
+ public const int EuMidTank1LevelFieldNumber = 177;
+ private double euMidTank1Level_;
+ /// <summary>
+ ///Eureka Mid Tank 1 Level
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuMidTank1Level {
+ get { return euMidTank1Level_; }
+ set {
+ euMidTank1Level_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuMidTank2Level" field.</summary>
+ public const int EuMidTank2LevelFieldNumber = 178;
+ private double euMidTank2Level_;
+ /// <summary>
+ ///Eureka Mid Tank 2 Level
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuMidTank2Level {
+ get { return euMidTank2Level_; }
+ set {
+ euMidTank2Level_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuMidTank3Level" field.</summary>
+ public const int EuMidTank3LevelFieldNumber = 179;
+ private double euMidTank3Level_;
+ /// <summary>
+ ///Eureka Mid Tank 3 Level
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuMidTank3Level {
+ get { return euMidTank3Level_; }
+ set {
+ euMidTank3Level_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuMidTank4Level" field.</summary>
+ public const int EuMidTank4LevelFieldNumber = 180;
+ private double euMidTank4Level_;
+ /// <summary>
+ ///Eureka Mid Tank 4 Level
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuMidTank4Level {
+ get { return euMidTank4Level_; }
+ set {
+ euMidTank4Level_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuMidTank5Level" field.</summary>
+ public const int EuMidTank5LevelFieldNumber = 181;
+ private double euMidTank5Level_;
+ /// <summary>
+ ///Eureka Mid Tank 5 Level
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuMidTank5Level {
+ get { return euMidTank5Level_; }
+ set {
+ euMidTank5Level_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuMidTank6Level" field.</summary>
+ public const int EuMidTank6LevelFieldNumber = 182;
+ private double euMidTank6Level_;
+ /// <summary>
+ ///Eureka Mid Tank 6 Level
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuMidTank6Level {
+ get { return euMidTank6Level_; }
+ set {
+ euMidTank6Level_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuMidTank7Level" field.</summary>
+ public const int EuMidTank7LevelFieldNumber = 183;
+ private double euMidTank7Level_;
+ /// <summary>
+ ///Eureka Mid Tank 7 Level
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuMidTank7Level {
+ get { return euMidTank7Level_; }
+ set {
+ euMidTank7Level_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuMidTank8Level" field.</summary>
+ public const int EuMidTank8LevelFieldNumber = 184;
+ private double euMidTank8Level_;
+ /// <summary>
+ ///Eureka Mid Tank 8 Level
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuMidTank8Level {
+ get { return euMidTank8Level_; }
+ set {
+ euMidTank8Level_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuChillerTemperature" field.</summary>
+ public const int EuChillerTemperatureFieldNumber = 185;
+ private double euChillerTemperature_;
+ /// <summary>
+ ///Eureka Chiller Temperature
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuChillerTemperature {
+ get { return euChillerTemperature_; }
+ set {
+ euChillerTemperature_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuHeadRightAirFlow" field.</summary>
+ public const int EuHeadRightAirFlowFieldNumber = 186;
+ private double euHeadRightAirFlow_;
+ /// <summary>
+ ///Eureka Head Right Air Flow
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuHeadRightAirFlow {
+ get { return euHeadRightAirFlow_; }
+ set {
+ euHeadRightAirFlow_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuHeadLeftAirFlow" field.</summary>
+ public const int EuHeadLeftAirFlowFieldNumber = 187;
+ private double euHeadLeftAirFlow_;
+ /// <summary>
+ ///Eureka Head Left Air Flow
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuHeadLeftAirFlow {
+ get { return euHeadLeftAirFlow_; }
+ set {
+ euHeadLeftAirFlow_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuHeadRightVoltage" field.</summary>
+ public const int EuHeadRightVoltageFieldNumber = 188;
+ private double euHeadRightVoltage_;
+ /// <summary>
+ ///Eureka Head Right Voltage
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuHeadRightVoltage {
+ get { return euHeadRightVoltage_; }
+ set {
+ euHeadRightVoltage_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuHeadLeftVoltage" field.</summary>
+ public const int EuHeadLeftVoltageFieldNumber = 189;
+ private double euHeadLeftVoltage_;
+ /// <summary>
+ ///Eureka Head Left Voltage
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuHeadLeftVoltage {
+ get { return euHeadLeftVoltage_; }
+ set {
+ euHeadLeftVoltage_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuDryerAirFlow" field.</summary>
+ public const int EuDryerAirFlowFieldNumber = 190;
+ private double euDryerAirFlow_;
+ /// <summary>
+ ///Eureka Dryer Air Flow
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuDryerAirFlow {
+ get { return euDryerAirFlow_; }
+ set {
+ euDryerAirFlow_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuBlowerVoltage" field.</summary>
+ public const int EuBlowerVoltageFieldNumber = 191;
+ private double euBlowerVoltage_;
+ /// <summary>
+ ///Eureka Blower Voltage
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuBlowerVoltage {
+ get { return euBlowerVoltage_; }
+ set {
+ euBlowerVoltage_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuWasteLevel" field.</summary>
+ public const int EuWasteLevelFieldNumber = 192;
+ private double euWasteLevel_;
+ /// <summary>
+ ///Eureka Waste Level
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuWasteLevel {
+ get { return euWasteLevel_; }
+ set {
+ euWasteLevel_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuSpare1" field.</summary>
+ public const int EuSpare1FieldNumber = 193;
+ private double euSpare1_;
+ /// <summary>
+ ///Eureka Spare 1
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuSpare1 {
+ get { return euSpare1_; }
+ set {
+ euSpare1_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuSpare2" field.</summary>
+ public const int EuSpare2FieldNumber = 194;
+ private double euSpare2_;
+ /// <summary>
+ ///Eureka Spare 2
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuSpare2 {
+ get { return euSpare2_; }
+ set {
+ euSpare2_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuSpare3" field.</summary>
+ public const int EuSpare3FieldNumber = 195;
+ private double euSpare3_;
+ /// <summary>
+ ///Eureka Spare 3
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuSpare3 {
+ get { return euSpare3_; }
+ set {
+ euSpare3_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EuSpare4" field.</summary>
+ public const int EuSpare4FieldNumber = 196;
+ private double euSpare4_;
+ /// <summary>
+ ///Eureka Spare 4
+ /// </summary>
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EuSpare4 {
+ get { return euSpare4_; }
+ set {
+ euSpare4_ = value;
+ }
+ }
+
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as InsightsMonitors);
@@ -1619,6 +3223,109 @@ namespace Tango.PMR.Insights {
if (ShinkoSetValue != other.ShinkoSetValue) return false;
if (ShinkoCurrentValue != other.ShinkoCurrentValue) return false;
if (TotalWHSFlow != other.TotalWHSFlow) return false;
+ if (EuWinder1Dancer != other.EuWinder1Dancer) return false;
+ if (EuWinder2Dancer != other.EuWinder2Dancer) return false;
+ if (EuWinder3Dancer != other.EuWinder3Dancer) return false;
+ if (EuWinder4Dancer != other.EuWinder4Dancer) return false;
+ if (EuWinder1Motor != other.EuWinder1Motor) return false;
+ if (EuWinder2Motor != other.EuWinder2Motor) return false;
+ if (EuWinder3Motor != other.EuWinder3Motor) return false;
+ if (EuWinder4Motor != other.EuWinder4Motor) return false;
+ if (EuDryerMotorVelocity != other.EuDryerMotorVelocity) return false;
+ if (EuDryerMotorTargetVelocity != other.EuDryerMotorTargetVelocity) return false;
+ if (EuDryerMotorCurrent != other.EuDryerMotorCurrent) return false;
+ if (EuPullerDancer != other.EuPullerDancer) return false;
+ if (EuPullerMotor != other.EuPullerMotor) return false;
+ if (EuDryerZone1Temperature != other.EuDryerZone1Temperature) return false;
+ if (EuDryerZone2Temperature != other.EuDryerZone2Temperature) return false;
+ if (EuDryerZone3Temperature != other.EuDryerZone3Temperature) return false;
+ if (EuHeadZone1Temperature != other.EuHeadZone1Temperature) return false;
+ if (EuHeadZone2Temperature != other.EuHeadZone2Temperature) return false;
+ if (EuHeadZone3Temperature != other.EuHeadZone3Temperature) return false;
+ if (EuMixerTemperature != other.EuMixerTemperature) return false;
+ if (EuTunnelTemperature != other.EuTunnelTemperature) return false;
+ if (EuLubricantTemperature != other.EuLubricantTemperature) return false;
+ if (EuAmbientTemperature != other.EuAmbientTemperature) return false;
+ if (EuElectricalCabinetTemperature != other.EuElectricalCabinetTemperature) return false;
+ if (EuDryerZone1Current != other.EuDryerZone1Current) return false;
+ if (EuDryerZone2Current != other.EuDryerZone2Current) return false;
+ if (EuDryerZone3Current != other.EuDryerZone3Current) return false;
+ if (EuHeadZone1Current != other.EuHeadZone1Current) return false;
+ if (EuHeadZone2Current != other.EuHeadZone2Current) return false;
+ if (EuHeadZone3Current != other.EuHeadZone3Current) return false;
+ if (EuMixerCurrent != other.EuMixerCurrent) return false;
+ if (EuTunnelCurrent != other.EuTunnelCurrent) return false;
+ if (EuLubricantCurrent != other.EuLubricantCurrent) return false;
+ if (EuBtsr1Speed != other.EuBtsr1Speed) return false;
+ if (EuBtsr1SpeedAv != other.EuBtsr1SpeedAv) return false;
+ if (EuBtsr1DispAv != other.EuBtsr1DispAv) return false;
+ if (EuBtsr1PeakMin != other.EuBtsr1PeakMin) return false;
+ if (EuBtsr1PeakMax != other.EuBtsr1PeakMax) return false;
+ if (EuBtsr2Speed != other.EuBtsr2Speed) return false;
+ if (EuBtsr2SpeedAv != other.EuBtsr2SpeedAv) return false;
+ if (EuBtsr2DispAv != other.EuBtsr2DispAv) return false;
+ if (EuBtsr2PeakMin != other.EuBtsr2PeakMin) return false;
+ if (EuBtsr2PeakMax != other.EuBtsr2PeakMax) return false;
+ if (EuBtsr3Speed != other.EuBtsr3Speed) return false;
+ if (EuBtsr3SpeedAv != other.EuBtsr3SpeedAv) return false;
+ if (EuBtsr3DispAv != other.EuBtsr3DispAv) return false;
+ if (EuBtsr3PeakMin != other.EuBtsr3PeakMin) return false;
+ if (EuBtsr3PeakMax != other.EuBtsr3PeakMax) return false;
+ if (EuBtsr4Speed != other.EuBtsr4Speed) return false;
+ if (EuBtsr4SpeedAv != other.EuBtsr4SpeedAv) return false;
+ if (EuBtsr4PeakMin != other.EuBtsr4PeakMin) return false;
+ if (EuBtsr4PeakMax != other.EuBtsr4PeakMax) return false;
+ if (EuBtsr4DispAv != other.EuBtsr4DispAv) return false;
+ if(!euTemperatureLoggers_.Equals(other.euTemperatureLoggers_)) return false;
+ if(!euPumpFlows_.Equals(other.euPumpFlows_)) return false;
+ if(!euInkLinesPressure_.Equals(other.euInkLinesPressure_)) return false;
+ if(!euSpareDataArray_.Equals(other.euSpareDataArray_)) return false;
+ if (EuDispenser1Voltage != other.EuDispenser1Voltage) return false;
+ if (EuDispenser2Voltage != other.EuDispenser2Voltage) return false;
+ if (EuDispenser3Voltage != other.EuDispenser3Voltage) return false;
+ if (EuDispenser4Voltage != other.EuDispenser4Voltage) return false;
+ if (EuDispenser5Voltage != other.EuDispenser5Voltage) return false;
+ if (EuDispenser6Voltage != other.EuDispenser6Voltage) return false;
+ if (EuDispenser7Voltage != other.EuDispenser7Voltage) return false;
+ if (EuDispenser8Voltage != other.EuDispenser8Voltage) return false;
+ if (EuDispenser9Voltage != other.EuDispenser9Voltage) return false;
+ if (EuDispenser10Voltage != other.EuDispenser10Voltage) return false;
+ if (EuDispenser11Voltage != other.EuDispenser11Voltage) return false;
+ if (EuDispenser12Voltage != other.EuDispenser12Voltage) return false;
+ if (EuDispenser13Voltage != other.EuDispenser13Voltage) return false;
+ if (EuDispenser14Voltage != other.EuDispenser14Voltage) return false;
+ if (EuDispenser15Voltage != other.EuDispenser15Voltage) return false;
+ if (EuDispenser16Voltage != other.EuDispenser16Voltage) return false;
+ if (EuLubricantPumpVoltage != other.EuLubricantPumpVoltage) return false;
+ if (EuDispenser1Pressure != other.EuDispenser1Pressure) return false;
+ if (EuDispenser2Pressure != other.EuDispenser2Pressure) return false;
+ if (EuDispenser3Pressure != other.EuDispenser3Pressure) return false;
+ if (EuDispenser4Pressure != other.EuDispenser4Pressure) return false;
+ if (EuDispenser5Pressure != other.EuDispenser5Pressure) return false;
+ if (EuDispenser6Pressure != other.EuDispenser6Pressure) return false;
+ if (EuDispenser7Pressure != other.EuDispenser7Pressure) return false;
+ if (EuDispenser8Pressure != other.EuDispenser8Pressure) return false;
+ if (EuLubricantPressure != other.EuLubricantPressure) return false;
+ if (EuMidTank1Level != other.EuMidTank1Level) return false;
+ if (EuMidTank2Level != other.EuMidTank2Level) return false;
+ if (EuMidTank3Level != other.EuMidTank3Level) return false;
+ if (EuMidTank4Level != other.EuMidTank4Level) return false;
+ if (EuMidTank5Level != other.EuMidTank5Level) return false;
+ if (EuMidTank6Level != other.EuMidTank6Level) return false;
+ if (EuMidTank7Level != other.EuMidTank7Level) return false;
+ if (EuMidTank8Level != other.EuMidTank8Level) return false;
+ if (EuChillerTemperature != other.EuChillerTemperature) return false;
+ if (EuHeadRightAirFlow != other.EuHeadRightAirFlow) return false;
+ if (EuHeadLeftAirFlow != other.EuHeadLeftAirFlow) return false;
+ if (EuHeadRightVoltage != other.EuHeadRightVoltage) return false;
+ if (EuHeadLeftVoltage != other.EuHeadLeftVoltage) return false;
+ if (EuDryerAirFlow != other.EuDryerAirFlow) return false;
+ if (EuBlowerVoltage != other.EuBlowerVoltage) return false;
+ if (EuWasteLevel != other.EuWasteLevel) return false;
+ if (EuSpare1 != other.EuSpare1) return false;
+ if (EuSpare2 != other.EuSpare2) return false;
+ if (EuSpare3 != other.EuSpare3) return false;
+ if (EuSpare4 != other.EuSpare4) return false;
return true;
}
@@ -1718,6 +3425,109 @@ namespace Tango.PMR.Insights {
if (ShinkoSetValue != 0D) hash ^= ShinkoSetValue.GetHashCode();
if (ShinkoCurrentValue != 0D) hash ^= ShinkoCurrentValue.GetHashCode();
if (TotalWHSFlow != 0D) hash ^= TotalWHSFlow.GetHashCode();
+ if (EuWinder1Dancer != 0D) hash ^= EuWinder1Dancer.GetHashCode();
+ if (EuWinder2Dancer != 0D) hash ^= EuWinder2Dancer.GetHashCode();
+ if (EuWinder3Dancer != 0D) hash ^= EuWinder3Dancer.GetHashCode();
+ if (EuWinder4Dancer != 0D) hash ^= EuWinder4Dancer.GetHashCode();
+ if (EuWinder1Motor != 0D) hash ^= EuWinder1Motor.GetHashCode();
+ if (EuWinder2Motor != 0D) hash ^= EuWinder2Motor.GetHashCode();
+ if (EuWinder3Motor != 0D) hash ^= EuWinder3Motor.GetHashCode();
+ if (EuWinder4Motor != 0D) hash ^= EuWinder4Motor.GetHashCode();
+ if (EuDryerMotorVelocity != 0D) hash ^= EuDryerMotorVelocity.GetHashCode();
+ if (EuDryerMotorTargetVelocity != 0D) hash ^= EuDryerMotorTargetVelocity.GetHashCode();
+ if (EuDryerMotorCurrent != 0D) hash ^= EuDryerMotorCurrent.GetHashCode();
+ if (EuPullerDancer != 0D) hash ^= EuPullerDancer.GetHashCode();
+ if (EuPullerMotor != 0D) hash ^= EuPullerMotor.GetHashCode();
+ if (EuDryerZone1Temperature != 0D) hash ^= EuDryerZone1Temperature.GetHashCode();
+ if (EuDryerZone2Temperature != 0D) hash ^= EuDryerZone2Temperature.GetHashCode();
+ if (EuDryerZone3Temperature != 0D) hash ^= EuDryerZone3Temperature.GetHashCode();
+ if (EuHeadZone1Temperature != 0D) hash ^= EuHeadZone1Temperature.GetHashCode();
+ if (EuHeadZone2Temperature != 0D) hash ^= EuHeadZone2Temperature.GetHashCode();
+ if (EuHeadZone3Temperature != 0D) hash ^= EuHeadZone3Temperature.GetHashCode();
+ if (EuMixerTemperature != 0D) hash ^= EuMixerTemperature.GetHashCode();
+ if (EuTunnelTemperature != 0D) hash ^= EuTunnelTemperature.GetHashCode();
+ if (EuLubricantTemperature != 0D) hash ^= EuLubricantTemperature.GetHashCode();
+ if (EuAmbientTemperature != 0D) hash ^= EuAmbientTemperature.GetHashCode();
+ if (EuElectricalCabinetTemperature != 0D) hash ^= EuElectricalCabinetTemperature.GetHashCode();
+ if (EuDryerZone1Current != 0D) hash ^= EuDryerZone1Current.GetHashCode();
+ if (EuDryerZone2Current != 0D) hash ^= EuDryerZone2Current.GetHashCode();
+ if (EuDryerZone3Current != 0D) hash ^= EuDryerZone3Current.GetHashCode();
+ if (EuHeadZone1Current != 0D) hash ^= EuHeadZone1Current.GetHashCode();
+ if (EuHeadZone2Current != 0D) hash ^= EuHeadZone2Current.GetHashCode();
+ if (EuHeadZone3Current != 0D) hash ^= EuHeadZone3Current.GetHashCode();
+ if (EuMixerCurrent != 0D) hash ^= EuMixerCurrent.GetHashCode();
+ if (EuTunnelCurrent != 0D) hash ^= EuTunnelCurrent.GetHashCode();
+ if (EuLubricantCurrent != 0D) hash ^= EuLubricantCurrent.GetHashCode();
+ if (EuBtsr1Speed != 0D) hash ^= EuBtsr1Speed.GetHashCode();
+ if (EuBtsr1SpeedAv != 0D) hash ^= EuBtsr1SpeedAv.GetHashCode();
+ if (EuBtsr1DispAv != 0D) hash ^= EuBtsr1DispAv.GetHashCode();
+ if (EuBtsr1PeakMin != 0D) hash ^= EuBtsr1PeakMin.GetHashCode();
+ if (EuBtsr1PeakMax != 0D) hash ^= EuBtsr1PeakMax.GetHashCode();
+ if (EuBtsr2Speed != 0D) hash ^= EuBtsr2Speed.GetHashCode();
+ if (EuBtsr2SpeedAv != 0D) hash ^= EuBtsr2SpeedAv.GetHashCode();
+ if (EuBtsr2DispAv != 0D) hash ^= EuBtsr2DispAv.GetHashCode();
+ if (EuBtsr2PeakMin != 0D) hash ^= EuBtsr2PeakMin.GetHashCode();
+ if (EuBtsr2PeakMax != 0D) hash ^= EuBtsr2PeakMax.GetHashCode();
+ if (EuBtsr3Speed != 0D) hash ^= EuBtsr3Speed.GetHashCode();
+ if (EuBtsr3SpeedAv != 0D) hash ^= EuBtsr3SpeedAv.GetHashCode();
+ if (EuBtsr3DispAv != 0D) hash ^= EuBtsr3DispAv.GetHashCode();
+ if (EuBtsr3PeakMin != 0D) hash ^= EuBtsr3PeakMin.GetHashCode();
+ if (EuBtsr3PeakMax != 0D) hash ^= EuBtsr3PeakMax.GetHashCode();
+ if (EuBtsr4Speed != 0D) hash ^= EuBtsr4Speed.GetHashCode();
+ if (EuBtsr4SpeedAv != 0D) hash ^= EuBtsr4SpeedAv.GetHashCode();
+ if (EuBtsr4PeakMin != 0D) hash ^= EuBtsr4PeakMin.GetHashCode();
+ if (EuBtsr4PeakMax != 0D) hash ^= EuBtsr4PeakMax.GetHashCode();
+ if (EuBtsr4DispAv != 0D) hash ^= EuBtsr4DispAv.GetHashCode();
+ hash ^= euTemperatureLoggers_.GetHashCode();
+ hash ^= euPumpFlows_.GetHashCode();
+ hash ^= euInkLinesPressure_.GetHashCode();
+ hash ^= euSpareDataArray_.GetHashCode();
+ if (EuDispenser1Voltage != 0D) hash ^= EuDispenser1Voltage.GetHashCode();
+ if (EuDispenser2Voltage != 0D) hash ^= EuDispenser2Voltage.GetHashCode();
+ if (EuDispenser3Voltage != 0D) hash ^= EuDispenser3Voltage.GetHashCode();
+ if (EuDispenser4Voltage != 0D) hash ^= EuDispenser4Voltage.GetHashCode();
+ if (EuDispenser5Voltage != 0D) hash ^= EuDispenser5Voltage.GetHashCode();
+ if (EuDispenser6Voltage != 0D) hash ^= EuDispenser6Voltage.GetHashCode();
+ if (EuDispenser7Voltage != 0D) hash ^= EuDispenser7Voltage.GetHashCode();
+ if (EuDispenser8Voltage != 0D) hash ^= EuDispenser8Voltage.GetHashCode();
+ if (EuDispenser9Voltage != 0D) hash ^= EuDispenser9Voltage.GetHashCode();
+ if (EuDispenser10Voltage != 0D) hash ^= EuDispenser10Voltage.GetHashCode();
+ if (EuDispenser11Voltage != 0D) hash ^= EuDispenser11Voltage.GetHashCode();
+ if (EuDispenser12Voltage != 0D) hash ^= EuDispenser12Voltage.GetHashCode();
+ if (EuDispenser13Voltage != 0D) hash ^= EuDispenser13Voltage.GetHashCode();
+ if (EuDispenser14Voltage != 0D) hash ^= EuDispenser14Voltage.GetHashCode();
+ if (EuDispenser15Voltage != 0D) hash ^= EuDispenser15Voltage.GetHashCode();
+ if (EuDispenser16Voltage != 0D) hash ^= EuDispenser16Voltage.GetHashCode();
+ if (EuLubricantPumpVoltage != 0D) hash ^= EuLubricantPumpVoltage.GetHashCode();
+ if (EuDispenser1Pressure != 0D) hash ^= EuDispenser1Pressure.GetHashCode();
+ if (EuDispenser2Pressure != 0D) hash ^= EuDispenser2Pressure.GetHashCode();
+ if (EuDispenser3Pressure != 0D) hash ^= EuDispenser3Pressure.GetHashCode();
+ if (EuDispenser4Pressure != 0D) hash ^= EuDispenser4Pressure.GetHashCode();
+ if (EuDispenser5Pressure != 0D) hash ^= EuDispenser5Pressure.GetHashCode();
+ if (EuDispenser6Pressure != 0D) hash ^= EuDispenser6Pressure.GetHashCode();
+ if (EuDispenser7Pressure != 0D) hash ^= EuDispenser7Pressure.GetHashCode();
+ if (EuDispenser8Pressure != 0D) hash ^= EuDispenser8Pressure.GetHashCode();
+ if (EuLubricantPressure != 0D) hash ^= EuLubricantPressure.GetHashCode();
+ if (EuMidTank1Level != 0D) hash ^= EuMidTank1Level.GetHashCode();
+ if (EuMidTank2Level != 0D) hash ^= EuMidTank2Level.GetHashCode();
+ if (EuMidTank3Level != 0D) hash ^= EuMidTank3Level.GetHashCode();
+ if (EuMidTank4Level != 0D) hash ^= EuMidTank4Level.GetHashCode();
+ if (EuMidTank5Level != 0D) hash ^= EuMidTank5Level.GetHashCode();
+ if (EuMidTank6Level != 0D) hash ^= EuMidTank6Level.GetHashCode();
+ if (EuMidTank7Level != 0D) hash ^= EuMidTank7Level.GetHashCode();
+ if (EuMidTank8Level != 0D) hash ^= EuMidTank8Level.GetHashCode();
+ if (EuChillerTemperature != 0D) hash ^= EuChillerTemperature.GetHashCode();
+ if (EuHeadRightAirFlow != 0D) hash ^= EuHeadRightAirFlow.GetHashCode();
+ if (EuHeadLeftAirFlow != 0D) hash ^= EuHeadLeftAirFlow.GetHashCode();
+ if (EuHeadRightVoltage != 0D) hash ^= EuHeadRightVoltage.GetHashCode();
+ if (EuHeadLeftVoltage != 0D) hash ^= EuHeadLeftVoltage.GetHashCode();
+ if (EuDryerAirFlow != 0D) hash ^= EuDryerAirFlow.GetHashCode();
+ if (EuBlowerVoltage != 0D) hash ^= EuBlowerVoltage.GetHashCode();
+ if (EuWasteLevel != 0D) hash ^= EuWasteLevel.GetHashCode();
+ if (EuSpare1 != 0D) hash ^= EuSpare1.GetHashCode();
+ if (EuSpare2 != 0D) hash ^= EuSpare2.GetHashCode();
+ if (EuSpare3 != 0D) hash ^= EuSpare3.GetHashCode();
+ if (EuSpare4 != 0D) hash ^= EuSpare4.GetHashCode();
return hash;
}
@@ -2082,6 +3892,406 @@ namespace Tango.PMR.Insights {
output.WriteRawTag(233, 5);
output.WriteDouble(TotalWHSFlow);
}
+ if (EuWinder1Dancer != 0D) {
+ output.WriteRawTag(241, 5);
+ output.WriteDouble(EuWinder1Dancer);
+ }
+ if (EuWinder2Dancer != 0D) {
+ output.WriteRawTag(249, 5);
+ output.WriteDouble(EuWinder2Dancer);
+ }
+ if (EuWinder3Dancer != 0D) {
+ output.WriteRawTag(129, 6);
+ output.WriteDouble(EuWinder3Dancer);
+ }
+ if (EuWinder4Dancer != 0D) {
+ output.WriteRawTag(137, 6);
+ output.WriteDouble(EuWinder4Dancer);
+ }
+ if (EuWinder1Motor != 0D) {
+ output.WriteRawTag(145, 6);
+ output.WriteDouble(EuWinder1Motor);
+ }
+ if (EuWinder2Motor != 0D) {
+ output.WriteRawTag(153, 6);
+ output.WriteDouble(EuWinder2Motor);
+ }
+ if (EuWinder3Motor != 0D) {
+ output.WriteRawTag(161, 6);
+ output.WriteDouble(EuWinder3Motor);
+ }
+ if (EuWinder4Motor != 0D) {
+ output.WriteRawTag(169, 6);
+ output.WriteDouble(EuWinder4Motor);
+ }
+ if (EuDryerMotorVelocity != 0D) {
+ output.WriteRawTag(177, 6);
+ output.WriteDouble(EuDryerMotorVelocity);
+ }
+ if (EuDryerMotorTargetVelocity != 0D) {
+ output.WriteRawTag(185, 6);
+ output.WriteDouble(EuDryerMotorTargetVelocity);
+ }
+ if (EuDryerMotorCurrent != 0D) {
+ output.WriteRawTag(193, 6);
+ output.WriteDouble(EuDryerMotorCurrent);
+ }
+ if (EuPullerDancer != 0D) {
+ output.WriteRawTag(201, 6);
+ output.WriteDouble(EuPullerDancer);
+ }
+ if (EuPullerMotor != 0D) {
+ output.WriteRawTag(209, 6);
+ output.WriteDouble(EuPullerMotor);
+ }
+ if (EuDryerZone1Temperature != 0D) {
+ output.WriteRawTag(217, 6);
+ output.WriteDouble(EuDryerZone1Temperature);
+ }
+ if (EuDryerZone2Temperature != 0D) {
+ output.WriteRawTag(225, 6);
+ output.WriteDouble(EuDryerZone2Temperature);
+ }
+ if (EuDryerZone3Temperature != 0D) {
+ output.WriteRawTag(233, 6);
+ output.WriteDouble(EuDryerZone3Temperature);
+ }
+ if (EuHeadZone1Temperature != 0D) {
+ output.WriteRawTag(241, 6);
+ output.WriteDouble(EuHeadZone1Temperature);
+ }
+ if (EuHeadZone2Temperature != 0D) {
+ output.WriteRawTag(249, 6);
+ output.WriteDouble(EuHeadZone2Temperature);
+ }
+ if (EuHeadZone3Temperature != 0D) {
+ output.WriteRawTag(129, 7);
+ output.WriteDouble(EuHeadZone3Temperature);
+ }
+ if (EuMixerTemperature != 0D) {
+ output.WriteRawTag(137, 7);
+ output.WriteDouble(EuMixerTemperature);
+ }
+ if (EuTunnelTemperature != 0D) {
+ output.WriteRawTag(145, 7);
+ output.WriteDouble(EuTunnelTemperature);
+ }
+ if (EuLubricantTemperature != 0D) {
+ output.WriteRawTag(153, 7);
+ output.WriteDouble(EuLubricantTemperature);
+ }
+ if (EuAmbientTemperature != 0D) {
+ output.WriteRawTag(161, 7);
+ output.WriteDouble(EuAmbientTemperature);
+ }
+ if (EuElectricalCabinetTemperature != 0D) {
+ output.WriteRawTag(169, 7);
+ output.WriteDouble(EuElectricalCabinetTemperature);
+ }
+ if (EuDryerZone1Current != 0D) {
+ output.WriteRawTag(177, 7);
+ output.WriteDouble(EuDryerZone1Current);
+ }
+ if (EuDryerZone2Current != 0D) {
+ output.WriteRawTag(185, 7);
+ output.WriteDouble(EuDryerZone2Current);
+ }
+ if (EuDryerZone3Current != 0D) {
+ output.WriteRawTag(193, 7);
+ output.WriteDouble(EuDryerZone3Current);
+ }
+ if (EuHeadZone1Current != 0D) {
+ output.WriteRawTag(201, 7);
+ output.WriteDouble(EuHeadZone1Current);
+ }
+ if (EuHeadZone2Current != 0D) {
+ output.WriteRawTag(209, 7);
+ output.WriteDouble(EuHeadZone2Current);
+ }
+ if (EuHeadZone3Current != 0D) {
+ output.WriteRawTag(217, 7);
+ output.WriteDouble(EuHeadZone3Current);
+ }
+ if (EuMixerCurrent != 0D) {
+ output.WriteRawTag(225, 7);
+ output.WriteDouble(EuMixerCurrent);
+ }
+ if (EuTunnelCurrent != 0D) {
+ output.WriteRawTag(233, 7);
+ output.WriteDouble(EuTunnelCurrent);
+ }
+ if (EuLubricantCurrent != 0D) {
+ output.WriteRawTag(241, 7);
+ output.WriteDouble(EuLubricantCurrent);
+ }
+ if (EuBtsr1Speed != 0D) {
+ output.WriteRawTag(249, 7);
+ output.WriteDouble(EuBtsr1Speed);
+ }
+ if (EuBtsr1SpeedAv != 0D) {
+ output.WriteRawTag(129, 8);
+ output.WriteDouble(EuBtsr1SpeedAv);
+ }
+ if (EuBtsr1DispAv != 0D) {
+ output.WriteRawTag(137, 8);
+ output.WriteDouble(EuBtsr1DispAv);
+ }
+ if (EuBtsr1PeakMin != 0D) {
+ output.WriteRawTag(145, 8);
+ output.WriteDouble(EuBtsr1PeakMin);
+ }
+ if (EuBtsr1PeakMax != 0D) {
+ output.WriteRawTag(153, 8);
+ output.WriteDouble(EuBtsr1PeakMax);
+ }
+ if (EuBtsr2Speed != 0D) {
+ output.WriteRawTag(161, 8);
+ output.WriteDouble(EuBtsr2Speed);
+ }
+ if (EuBtsr2SpeedAv != 0D) {
+ output.WriteRawTag(169, 8);
+ output.WriteDouble(EuBtsr2SpeedAv);
+ }
+ if (EuBtsr2DispAv != 0D) {
+ output.WriteRawTag(177, 8);
+ output.WriteDouble(EuBtsr2DispAv);
+ }
+ if (EuBtsr2PeakMin != 0D) {
+ output.WriteRawTag(185, 8);
+ output.WriteDouble(EuBtsr2PeakMin);
+ }
+ if (EuBtsr2PeakMax != 0D) {
+ output.WriteRawTag(193, 8);
+ output.WriteDouble(EuBtsr2PeakMax);
+ }
+ if (EuBtsr3Speed != 0D) {
+ output.WriteRawTag(201, 8);
+ output.WriteDouble(EuBtsr3Speed);
+ }
+ if (EuBtsr3SpeedAv != 0D) {
+ output.WriteRawTag(209, 8);
+ output.WriteDouble(EuBtsr3SpeedAv);
+ }
+ if (EuBtsr3DispAv != 0D) {
+ output.WriteRawTag(217, 8);
+ output.WriteDouble(EuBtsr3DispAv);
+ }
+ if (EuBtsr3PeakMin != 0D) {
+ output.WriteRawTag(225, 8);
+ output.WriteDouble(EuBtsr3PeakMin);
+ }
+ if (EuBtsr3PeakMax != 0D) {
+ output.WriteRawTag(233, 8);
+ output.WriteDouble(EuBtsr3PeakMax);
+ }
+ if (EuBtsr4Speed != 0D) {
+ output.WriteRawTag(241, 8);
+ output.WriteDouble(EuBtsr4Speed);
+ }
+ if (EuBtsr4SpeedAv != 0D) {
+ output.WriteRawTag(249, 8);
+ output.WriteDouble(EuBtsr4SpeedAv);
+ }
+ if (EuBtsr4PeakMin != 0D) {
+ output.WriteRawTag(129, 9);
+ output.WriteDouble(EuBtsr4PeakMin);
+ }
+ if (EuBtsr4PeakMax != 0D) {
+ output.WriteRawTag(137, 9);
+ output.WriteDouble(EuBtsr4PeakMax);
+ }
+ if (EuBtsr4DispAv != 0D) {
+ output.WriteRawTag(145, 9);
+ output.WriteDouble(EuBtsr4DispAv);
+ }
+ euTemperatureLoggers_.WriteTo(output, _repeated_euTemperatureLoggers_codec);
+ euPumpFlows_.WriteTo(output, _repeated_euPumpFlows_codec);
+ euInkLinesPressure_.WriteTo(output, _repeated_euInkLinesPressure_codec);
+ euSpareDataArray_.WriteTo(output, _repeated_euSpareDataArray_codec);
+ if (EuDispenser1Voltage != 0D) {
+ output.WriteRawTag(185, 9);
+ output.WriteDouble(EuDispenser1Voltage);
+ }
+ if (EuDispenser2Voltage != 0D) {
+ output.WriteRawTag(193, 9);
+ output.WriteDouble(EuDispenser2Voltage);
+ }
+ if (EuDispenser3Voltage != 0D) {
+ output.WriteRawTag(201, 9);
+ output.WriteDouble(EuDispenser3Voltage);
+ }
+ if (EuDispenser4Voltage != 0D) {
+ output.WriteRawTag(209, 9);
+ output.WriteDouble(EuDispenser4Voltage);
+ }
+ if (EuDispenser5Voltage != 0D) {
+ output.WriteRawTag(217, 9);
+ output.WriteDouble(EuDispenser5Voltage);
+ }
+ if (EuDispenser6Voltage != 0D) {
+ output.WriteRawTag(225, 9);
+ output.WriteDouble(EuDispenser6Voltage);
+ }
+ if (EuDispenser7Voltage != 0D) {
+ output.WriteRawTag(233, 9);
+ output.WriteDouble(EuDispenser7Voltage);
+ }
+ if (EuDispenser8Voltage != 0D) {
+ output.WriteRawTag(241, 9);
+ output.WriteDouble(EuDispenser8Voltage);
+ }
+ if (EuDispenser9Voltage != 0D) {
+ output.WriteRawTag(249, 9);
+ output.WriteDouble(EuDispenser9Voltage);
+ }
+ if (EuDispenser10Voltage != 0D) {
+ output.WriteRawTag(129, 10);
+ output.WriteDouble(EuDispenser10Voltage);
+ }
+ if (EuDispenser11Voltage != 0D) {
+ output.WriteRawTag(137, 10);
+ output.WriteDouble(EuDispenser11Voltage);
+ }
+ if (EuDispenser12Voltage != 0D) {
+ output.WriteRawTag(145, 10);
+ output.WriteDouble(EuDispenser12Voltage);
+ }
+ if (EuDispenser13Voltage != 0D) {
+ output.WriteRawTag(153, 10);
+ output.WriteDouble(EuDispenser13Voltage);
+ }
+ if (EuDispenser14Voltage != 0D) {
+ output.WriteRawTag(161, 10);
+ output.WriteDouble(EuDispenser14Voltage);
+ }
+ if (EuDispenser15Voltage != 0D) {
+ output.WriteRawTag(169, 10);
+ output.WriteDouble(EuDispenser15Voltage);
+ }
+ if (EuDispenser16Voltage != 0D) {
+ output.WriteRawTag(177, 10);
+ output.WriteDouble(EuDispenser16Voltage);
+ }
+ if (EuLubricantPumpVoltage != 0D) {
+ output.WriteRawTag(185, 10);
+ output.WriteDouble(EuLubricantPumpVoltage);
+ }
+ if (EuDispenser1Pressure != 0D) {
+ output.WriteRawTag(193, 10);
+ output.WriteDouble(EuDispenser1Pressure);
+ }
+ if (EuDispenser2Pressure != 0D) {
+ output.WriteRawTag(201, 10);
+ output.WriteDouble(EuDispenser2Pressure);
+ }
+ if (EuDispenser3Pressure != 0D) {
+ output.WriteRawTag(209, 10);
+ output.WriteDouble(EuDispenser3Pressure);
+ }
+ if (EuDispenser4Pressure != 0D) {
+ output.WriteRawTag(217, 10);
+ output.WriteDouble(EuDispenser4Pressure);
+ }
+ if (EuDispenser5Pressure != 0D) {
+ output.WriteRawTag(225, 10);
+ output.WriteDouble(EuDispenser5Pressure);
+ }
+ if (EuDispenser6Pressure != 0D) {
+ output.WriteRawTag(233, 10);
+ output.WriteDouble(EuDispenser6Pressure);
+ }
+ if (EuDispenser7Pressure != 0D) {
+ output.WriteRawTag(241, 10);
+ output.WriteDouble(EuDispenser7Pressure);
+ }
+ if (EuDispenser8Pressure != 0D) {
+ output.WriteRawTag(249, 10);
+ output.WriteDouble(EuDispenser8Pressure);
+ }
+ if (EuLubricantPressure != 0D) {
+ output.WriteRawTag(129, 11);
+ output.WriteDouble(EuLubricantPressure);
+ }
+ if (EuMidTank1Level != 0D) {
+ output.WriteRawTag(137, 11);
+ output.WriteDouble(EuMidTank1Level);
+ }
+ if (EuMidTank2Level != 0D) {
+ output.WriteRawTag(145, 11);
+ output.WriteDouble(EuMidTank2Level);
+ }
+ if (EuMidTank3Level != 0D) {
+ output.WriteRawTag(153, 11);
+ output.WriteDouble(EuMidTank3Level);
+ }
+ if (EuMidTank4Level != 0D) {
+ output.WriteRawTag(161, 11);
+ output.WriteDouble(EuMidTank4Level);
+ }
+ if (EuMidTank5Level != 0D) {
+ output.WriteRawTag(169, 11);
+ output.WriteDouble(EuMidTank5Level);
+ }
+ if (EuMidTank6Level != 0D) {
+ output.WriteRawTag(177, 11);
+ output.WriteDouble(EuMidTank6Level);
+ }
+ if (EuMidTank7Level != 0D) {
+ output.WriteRawTag(185, 11);
+ output.WriteDouble(EuMidTank7Level);
+ }
+ if (EuMidTank8Level != 0D) {
+ output.WriteRawTag(193, 11);
+ output.WriteDouble(EuMidTank8Level);
+ }
+ if (EuChillerTemperature != 0D) {
+ output.WriteRawTag(201, 11);
+ output.WriteDouble(EuChillerTemperature);
+ }
+ if (EuHeadRightAirFlow != 0D) {
+ output.WriteRawTag(209, 11);
+ output.WriteDouble(EuHeadRightAirFlow);
+ }
+ if (EuHeadLeftAirFlow != 0D) {
+ output.WriteRawTag(217, 11);
+ output.WriteDouble(EuHeadLeftAirFlow);
+ }
+ if (EuHeadRightVoltage != 0D) {
+ output.WriteRawTag(225, 11);
+ output.WriteDouble(EuHeadRightVoltage);
+ }
+ if (EuHeadLeftVoltage != 0D) {
+ output.WriteRawTag(233, 11);
+ output.WriteDouble(EuHeadLeftVoltage);
+ }
+ if (EuDryerAirFlow != 0D) {
+ output.WriteRawTag(241, 11);
+ output.WriteDouble(EuDryerAirFlow);
+ }
+ if (EuBlowerVoltage != 0D) {
+ output.WriteRawTag(249, 11);
+ output.WriteDouble(EuBlowerVoltage);
+ }
+ if (EuWasteLevel != 0D) {
+ output.WriteRawTag(129, 12);
+ output.WriteDouble(EuWasteLevel);
+ }
+ if (EuSpare1 != 0D) {
+ output.WriteRawTag(137, 12);
+ output.WriteDouble(EuSpare1);
+ }
+ if (EuSpare2 != 0D) {
+ output.WriteRawTag(145, 12);
+ output.WriteDouble(EuSpare2);
+ }
+ if (EuSpare3 != 0D) {
+ output.WriteRawTag(153, 12);
+ output.WriteDouble(EuSpare3);
+ }
+ if (EuSpare4 != 0D) {
+ output.WriteRawTag(161, 12);
+ output.WriteDouble(EuSpare4);
+ }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -2354,6 +4564,307 @@ namespace Tango.PMR.Insights {
if (TotalWHSFlow != 0D) {
size += 2 + 8;
}
+ if (EuWinder1Dancer != 0D) {
+ size += 2 + 8;
+ }
+ if (EuWinder2Dancer != 0D) {
+ size += 2 + 8;
+ }
+ if (EuWinder3Dancer != 0D) {
+ size += 2 + 8;
+ }
+ if (EuWinder4Dancer != 0D) {
+ size += 2 + 8;
+ }
+ if (EuWinder1Motor != 0D) {
+ size += 2 + 8;
+ }
+ if (EuWinder2Motor != 0D) {
+ size += 2 + 8;
+ }
+ if (EuWinder3Motor != 0D) {
+ size += 2 + 8;
+ }
+ if (EuWinder4Motor != 0D) {
+ size += 2 + 8;
+ }
+ if (EuDryerMotorVelocity != 0D) {
+ size += 2 + 8;
+ }
+ if (EuDryerMotorTargetVelocity != 0D) {
+ size += 2 + 8;
+ }
+ if (EuDryerMotorCurrent != 0D) {
+ size += 2 + 8;
+ }
+ if (EuPullerDancer != 0D) {
+ size += 2 + 8;
+ }
+ if (EuPullerMotor != 0D) {
+ size += 2 + 8;
+ }
+ if (EuDryerZone1Temperature != 0D) {
+ size += 2 + 8;
+ }
+ if (EuDryerZone2Temperature != 0D) {
+ size += 2 + 8;
+ }
+ if (EuDryerZone3Temperature != 0D) {
+ size += 2 + 8;
+ }
+ if (EuHeadZone1Temperature != 0D) {
+ size += 2 + 8;
+ }
+ if (EuHeadZone2Temperature != 0D) {
+ size += 2 + 8;
+ }
+ if (EuHeadZone3Temperature != 0D) {
+ size += 2 + 8;
+ }
+ if (EuMixerTemperature != 0D) {
+ size += 2 + 8;
+ }
+ if (EuTunnelTemperature != 0D) {
+ size += 2 + 8;
+ }
+ if (EuLubricantTemperature != 0D) {
+ size += 2 + 8;
+ }
+ if (EuAmbientTemperature != 0D) {
+ size += 2 + 8;
+ }
+ if (EuElectricalCabinetTemperature != 0D) {
+ size += 2 + 8;
+ }
+ if (EuDryerZone1Current != 0D) {
+ size += 2 + 8;
+ }
+ if (EuDryerZone2Current != 0D) {
+ size += 2 + 8;
+ }
+ if (EuDryerZone3Current != 0D) {
+ size += 2 + 8;
+ }
+ if (EuHeadZone1Current != 0D) {
+ size += 2 + 8;
+ }
+ if (EuHeadZone2Current != 0D) {
+ size += 2 + 8;
+ }
+ if (EuHeadZone3Current != 0D) {
+ size += 2 + 8;
+ }
+ if (EuMixerCurrent != 0D) {
+ size += 2 + 8;
+ }
+ if (EuTunnelCurrent != 0D) {
+ size += 2 + 8;
+ }
+ if (EuLubricantCurrent != 0D) {
+ size += 2 + 8;
+ }
+ if (EuBtsr1Speed != 0D) {
+ size += 2 + 8;
+ }
+ if (EuBtsr1SpeedAv != 0D) {
+ size += 2 + 8;
+ }
+ if (EuBtsr1DispAv != 0D) {
+ size += 2 + 8;
+ }
+ if (EuBtsr1PeakMin != 0D) {
+ size += 2 + 8;
+ }
+ if (EuBtsr1PeakMax != 0D) {
+ size += 2 + 8;
+ }
+ if (EuBtsr2Speed != 0D) {
+ size += 2 + 8;
+ }
+ if (EuBtsr2SpeedAv != 0D) {
+ size += 2 + 8;
+ }
+ if (EuBtsr2DispAv != 0D) {
+ size += 2 + 8;
+ }
+ if (EuBtsr2PeakMin != 0D) {
+ size += 2 + 8;
+ }
+ if (EuBtsr2PeakMax != 0D) {
+ size += 2 + 8;
+ }
+ if (EuBtsr3Speed != 0D) {
+ size += 2 + 8;
+ }
+ if (EuBtsr3SpeedAv != 0D) {
+ size += 2 + 8;
+ }
+ if (EuBtsr3DispAv != 0D) {
+ size += 2 + 8;
+ }
+ if (EuBtsr3PeakMin != 0D) {
+ size += 2 + 8;
+ }
+ if (EuBtsr3PeakMax != 0D) {
+ size += 2 + 8;
+ }
+ if (EuBtsr4Speed != 0D) {
+ size += 2 + 8;
+ }
+ if (EuBtsr4SpeedAv != 0D) {
+ size += 2 + 8;
+ }
+ if (EuBtsr4PeakMin != 0D) {
+ size += 2 + 8;
+ }
+ if (EuBtsr4PeakMax != 0D) {
+ size += 2 + 8;
+ }
+ if (EuBtsr4DispAv != 0D) {
+ size += 2 + 8;
+ }
+ size += euTemperatureLoggers_.CalculateSize(_repeated_euTemperatureLoggers_codec);
+ size += euPumpFlows_.CalculateSize(_repeated_euPumpFlows_codec);
+ size += euInkLinesPressure_.CalculateSize(_repeated_euInkLinesPressure_codec);
+ size += euSpareDataArray_.CalculateSize(_repeated_euSpareDataArray_codec);
+ if (EuDispenser1Voltage != 0D) {
+ size += 2 + 8;
+ }
+ if (EuDispenser2Voltage != 0D) {
+ size += 2 + 8;
+ }
+ if (EuDispenser3Voltage != 0D) {
+ size += 2 + 8;
+ }
+ if (EuDispenser4Voltage != 0D) {
+ size += 2 + 8;
+ }
+ if (EuDispenser5Voltage != 0D) {
+ size += 2 + 8;
+ }
+ if (EuDispenser6Voltage != 0D) {
+ size += 2 + 8;
+ }
+ if (EuDispenser7Voltage != 0D) {
+ size += 2 + 8;
+ }
+ if (EuDispenser8Voltage != 0D) {
+ size += 2 + 8;
+ }
+ if (EuDispenser9Voltage != 0D) {
+ size += 2 + 8;
+ }
+ if (EuDispenser10Voltage != 0D) {
+ size += 2 + 8;
+ }
+ if (EuDispenser11Voltage != 0D) {
+ size += 2 + 8;
+ }
+ if (EuDispenser12Voltage != 0D) {
+ size += 2 + 8;
+ }
+ if (EuDispenser13Voltage != 0D) {
+ size += 2 + 8;
+ }
+ if (EuDispenser14Voltage != 0D) {
+ size += 2 + 8;
+ }
+ if (EuDispenser15Voltage != 0D) {
+ size += 2 + 8;
+ }
+ if (EuDispenser16Voltage != 0D) {
+ size += 2 + 8;
+ }
+ if (EuLubricantPumpVoltage != 0D) {
+ size += 2 + 8;
+ }
+ if (EuDispenser1Pressure != 0D) {
+ size += 2 + 8;
+ }
+ if (EuDispenser2Pressure != 0D) {
+ size += 2 + 8;
+ }
+ if (EuDispenser3Pressure != 0D) {
+ size += 2 + 8;
+ }
+ if (EuDispenser4Pressure != 0D) {
+ size += 2 + 8;
+ }
+ if (EuDispenser5Pressure != 0D) {
+ size += 2 + 8;
+ }
+ if (EuDispenser6Pressure != 0D) {
+ size += 2 + 8;
+ }
+ if (EuDispenser7Pressure != 0D) {
+ size += 2 + 8;
+ }
+ if (EuDispenser8Pressure != 0D) {
+ size += 2 + 8;
+ }
+ if (EuLubricantPressure != 0D) {
+ size += 2 + 8;
+ }
+ if (EuMidTank1Level != 0D) {
+ size += 2 + 8;
+ }
+ if (EuMidTank2Level != 0D) {
+ size += 2 + 8;
+ }
+ if (EuMidTank3Level != 0D) {
+ size += 2 + 8;
+ }
+ if (EuMidTank4Level != 0D) {
+ size += 2 + 8;
+ }
+ if (EuMidTank5Level != 0D) {
+ size += 2 + 8;
+ }
+ if (EuMidTank6Level != 0D) {
+ size += 2 + 8;
+ }
+ if (EuMidTank7Level != 0D) {
+ size += 2 + 8;
+ }
+ if (EuMidTank8Level != 0D) {
+ size += 2 + 8;
+ }
+ if (EuChillerTemperature != 0D) {
+ size += 2 + 8;
+ }
+ if (EuHeadRightAirFlow != 0D) {
+ size += 2 + 8;
+ }
+ if (EuHeadLeftAirFlow != 0D) {
+ size += 2 + 8;
+ }
+ if (EuHeadRightVoltage != 0D) {
+ size += 2 + 8;
+ }
+ if (EuHeadLeftVoltage != 0D) {
+ size += 2 + 8;
+ }
+ if (EuDryerAirFlow != 0D) {
+ size += 2 + 8;
+ }
+ if (EuBlowerVoltage != 0D) {
+ size += 2 + 8;
+ }
+ if (EuWasteLevel != 0D) {
+ size += 2 + 8;
+ }
+ if (EuSpare1 != 0D) {
+ size += 2 + 8;
+ }
+ if (EuSpare2 != 0D) {
+ size += 2 + 8;
+ }
+ if (EuSpare3 != 0D) {
+ size += 2 + 8;
+ }
+ if (EuSpare4 != 0D) {
+ size += 2 + 8;
+ }
return size;
}
@@ -2629,6 +5140,307 @@ namespace Tango.PMR.Insights {
if (other.TotalWHSFlow != 0D) {
TotalWHSFlow = other.TotalWHSFlow;
}
+ if (other.EuWinder1Dancer != 0D) {
+ EuWinder1Dancer = other.EuWinder1Dancer;
+ }
+ if (other.EuWinder2Dancer != 0D) {
+ EuWinder2Dancer = other.EuWinder2Dancer;
+ }
+ if (other.EuWinder3Dancer != 0D) {
+ EuWinder3Dancer = other.EuWinder3Dancer;
+ }
+ if (other.EuWinder4Dancer != 0D) {
+ EuWinder4Dancer = other.EuWinder4Dancer;
+ }
+ if (other.EuWinder1Motor != 0D) {
+ EuWinder1Motor = other.EuWinder1Motor;
+ }
+ if (other.EuWinder2Motor != 0D) {
+ EuWinder2Motor = other.EuWinder2Motor;
+ }
+ if (other.EuWinder3Motor != 0D) {
+ EuWinder3Motor = other.EuWinder3Motor;
+ }
+ if (other.EuWinder4Motor != 0D) {
+ EuWinder4Motor = other.EuWinder4Motor;
+ }
+ if (other.EuDryerMotorVelocity != 0D) {
+ EuDryerMotorVelocity = other.EuDryerMotorVelocity;
+ }
+ if (other.EuDryerMotorTargetVelocity != 0D) {
+ EuDryerMotorTargetVelocity = other.EuDryerMotorTargetVelocity;
+ }
+ if (other.EuDryerMotorCurrent != 0D) {
+ EuDryerMotorCurrent = other.EuDryerMotorCurrent;
+ }
+ if (other.EuPullerDancer != 0D) {
+ EuPullerDancer = other.EuPullerDancer;
+ }
+ if (other.EuPullerMotor != 0D) {
+ EuPullerMotor = other.EuPullerMotor;
+ }
+ if (other.EuDryerZone1Temperature != 0D) {
+ EuDryerZone1Temperature = other.EuDryerZone1Temperature;
+ }
+ if (other.EuDryerZone2Temperature != 0D) {
+ EuDryerZone2Temperature = other.EuDryerZone2Temperature;
+ }
+ if (other.EuDryerZone3Temperature != 0D) {
+ EuDryerZone3Temperature = other.EuDryerZone3Temperature;
+ }
+ if (other.EuHeadZone1Temperature != 0D) {
+ EuHeadZone1Temperature = other.EuHeadZone1Temperature;
+ }
+ if (other.EuHeadZone2Temperature != 0D) {
+ EuHeadZone2Temperature = other.EuHeadZone2Temperature;
+ }
+ if (other.EuHeadZone3Temperature != 0D) {
+ EuHeadZone3Temperature = other.EuHeadZone3Temperature;
+ }
+ if (other.EuMixerTemperature != 0D) {
+ EuMixerTemperature = other.EuMixerTemperature;
+ }
+ if (other.EuTunnelTemperature != 0D) {
+ EuTunnelTemperature = other.EuTunnelTemperature;
+ }
+ if (other.EuLubricantTemperature != 0D) {
+ EuLubricantTemperature = other.EuLubricantTemperature;
+ }
+ if (other.EuAmbientTemperature != 0D) {
+ EuAmbientTemperature = other.EuAmbientTemperature;
+ }
+ if (other.EuElectricalCabinetTemperature != 0D) {
+ EuElectricalCabinetTemperature = other.EuElectricalCabinetTemperature;
+ }
+ if (other.EuDryerZone1Current != 0D) {
+ EuDryerZone1Current = other.EuDryerZone1Current;
+ }
+ if (other.EuDryerZone2Current != 0D) {
+ EuDryerZone2Current = other.EuDryerZone2Current;
+ }
+ if (other.EuDryerZone3Current != 0D) {
+ EuDryerZone3Current = other.EuDryerZone3Current;
+ }
+ if (other.EuHeadZone1Current != 0D) {
+ EuHeadZone1Current = other.EuHeadZone1Current;
+ }
+ if (other.EuHeadZone2Current != 0D) {
+ EuHeadZone2Current = other.EuHeadZone2Current;
+ }
+ if (other.EuHeadZone3Current != 0D) {
+ EuHeadZone3Current = other.EuHeadZone3Current;
+ }
+ if (other.EuMixerCurrent != 0D) {
+ EuMixerCurrent = other.EuMixerCurrent;
+ }
+ if (other.EuTunnelCurrent != 0D) {
+ EuTunnelCurrent = other.EuTunnelCurrent;
+ }
+ if (other.EuLubricantCurrent != 0D) {
+ EuLubricantCurrent = other.EuLubricantCurrent;
+ }
+ if (other.EuBtsr1Speed != 0D) {
+ EuBtsr1Speed = other.EuBtsr1Speed;
+ }
+ if (other.EuBtsr1SpeedAv != 0D) {
+ EuBtsr1SpeedAv = other.EuBtsr1SpeedAv;
+ }
+ if (other.EuBtsr1DispAv != 0D) {
+ EuBtsr1DispAv = other.EuBtsr1DispAv;
+ }
+ if (other.EuBtsr1PeakMin != 0D) {
+ EuBtsr1PeakMin = other.EuBtsr1PeakMin;
+ }
+ if (other.EuBtsr1PeakMax != 0D) {
+ EuBtsr1PeakMax = other.EuBtsr1PeakMax;
+ }
+ if (other.EuBtsr2Speed != 0D) {
+ EuBtsr2Speed = other.EuBtsr2Speed;
+ }
+ if (other.EuBtsr2SpeedAv != 0D) {
+ EuBtsr2SpeedAv = other.EuBtsr2SpeedAv;
+ }
+ if (other.EuBtsr2DispAv != 0D) {
+ EuBtsr2DispAv = other.EuBtsr2DispAv;
+ }
+ if (other.EuBtsr2PeakMin != 0D) {
+ EuBtsr2PeakMin = other.EuBtsr2PeakMin;
+ }
+ if (other.EuBtsr2PeakMax != 0D) {
+ EuBtsr2PeakMax = other.EuBtsr2PeakMax;
+ }
+ if (other.EuBtsr3Speed != 0D) {
+ EuBtsr3Speed = other.EuBtsr3Speed;
+ }
+ if (other.EuBtsr3SpeedAv != 0D) {
+ EuBtsr3SpeedAv = other.EuBtsr3SpeedAv;
+ }
+ if (other.EuBtsr3DispAv != 0D) {
+ EuBtsr3DispAv = other.EuBtsr3DispAv;
+ }
+ if (other.EuBtsr3PeakMin != 0D) {
+ EuBtsr3PeakMin = other.EuBtsr3PeakMin;
+ }
+ if (other.EuBtsr3PeakMax != 0D) {
+ EuBtsr3PeakMax = other.EuBtsr3PeakMax;
+ }
+ if (other.EuBtsr4Speed != 0D) {
+ EuBtsr4Speed = other.EuBtsr4Speed;
+ }
+ if (other.EuBtsr4SpeedAv != 0D) {
+ EuBtsr4SpeedAv = other.EuBtsr4SpeedAv;
+ }
+ if (other.EuBtsr4PeakMin != 0D) {
+ EuBtsr4PeakMin = other.EuBtsr4PeakMin;
+ }
+ if (other.EuBtsr4PeakMax != 0D) {
+ EuBtsr4PeakMax = other.EuBtsr4PeakMax;
+ }
+ if (other.EuBtsr4DispAv != 0D) {
+ EuBtsr4DispAv = other.EuBtsr4DispAv;
+ }
+ euTemperatureLoggers_.Add(other.euTemperatureLoggers_);
+ euPumpFlows_.Add(other.euPumpFlows_);
+ euInkLinesPressure_.Add(other.euInkLinesPressure_);
+ euSpareDataArray_.Add(other.euSpareDataArray_);
+ if (other.EuDispenser1Voltage != 0D) {
+ EuDispenser1Voltage = other.EuDispenser1Voltage;
+ }
+ if (other.EuDispenser2Voltage != 0D) {
+ EuDispenser2Voltage = other.EuDispenser2Voltage;
+ }
+ if (other.EuDispenser3Voltage != 0D) {
+ EuDispenser3Voltage = other.EuDispenser3Voltage;
+ }
+ if (other.EuDispenser4Voltage != 0D) {
+ EuDispenser4Voltage = other.EuDispenser4Voltage;
+ }
+ if (other.EuDispenser5Voltage != 0D) {
+ EuDispenser5Voltage = other.EuDispenser5Voltage;
+ }
+ if (other.EuDispenser6Voltage != 0D) {
+ EuDispenser6Voltage = other.EuDispenser6Voltage;
+ }
+ if (other.EuDispenser7Voltage != 0D) {
+ EuDispenser7Voltage = other.EuDispenser7Voltage;
+ }
+ if (other.EuDispenser8Voltage != 0D) {
+ EuDispenser8Voltage = other.EuDispenser8Voltage;
+ }
+ if (other.EuDispenser9Voltage != 0D) {
+ EuDispenser9Voltage = other.EuDispenser9Voltage;
+ }
+ if (other.EuDispenser10Voltage != 0D) {
+ EuDispenser10Voltage = other.EuDispenser10Voltage;
+ }
+ if (other.EuDispenser11Voltage != 0D) {
+ EuDispenser11Voltage = other.EuDispenser11Voltage;
+ }
+ if (other.EuDispenser12Voltage != 0D) {
+ EuDispenser12Voltage = other.EuDispenser12Voltage;
+ }
+ if (other.EuDispenser13Voltage != 0D) {
+ EuDispenser13Voltage = other.EuDispenser13Voltage;
+ }
+ if (other.EuDispenser14Voltage != 0D) {
+ EuDispenser14Voltage = other.EuDispenser14Voltage;
+ }
+ if (other.EuDispenser15Voltage != 0D) {
+ EuDispenser15Voltage = other.EuDispenser15Voltage;
+ }
+ if (other.EuDispenser16Voltage != 0D) {
+ EuDispenser16Voltage = other.EuDispenser16Voltage;
+ }
+ if (other.EuLubricantPumpVoltage != 0D) {
+ EuLubricantPumpVoltage = other.EuLubricantPumpVoltage;
+ }
+ if (other.EuDispenser1Pressure != 0D) {
+ EuDispenser1Pressure = other.EuDispenser1Pressure;
+ }
+ if (other.EuDispenser2Pressure != 0D) {
+ EuDispenser2Pressure = other.EuDispenser2Pressure;
+ }
+ if (other.EuDispenser3Pressure != 0D) {
+ EuDispenser3Pressure = other.EuDispenser3Pressure;
+ }
+ if (other.EuDispenser4Pressure != 0D) {
+ EuDispenser4Pressure = other.EuDispenser4Pressure;
+ }
+ if (other.EuDispenser5Pressure != 0D) {
+ EuDispenser5Pressure = other.EuDispenser5Pressure;
+ }
+ if (other.EuDispenser6Pressure != 0D) {
+ EuDispenser6Pressure = other.EuDispenser6Pressure;
+ }
+ if (other.EuDispenser7Pressure != 0D) {
+ EuDispenser7Pressure = other.EuDispenser7Pressure;
+ }
+ if (other.EuDispenser8Pressure != 0D) {
+ EuDispenser8Pressure = other.EuDispenser8Pressure;
+ }
+ if (other.EuLubricantPressure != 0D) {
+ EuLubricantPressure = other.EuLubricantPressure;
+ }
+ if (other.EuMidTank1Level != 0D) {
+ EuMidTank1Level = other.EuMidTank1Level;
+ }
+ if (other.EuMidTank2Level != 0D) {
+ EuMidTank2Level = other.EuMidTank2Level;
+ }
+ if (other.EuMidTank3Level != 0D) {
+ EuMidTank3Level = other.EuMidTank3Level;
+ }
+ if (other.EuMidTank4Level != 0D) {
+ EuMidTank4Level = other.EuMidTank4Level;
+ }
+ if (other.EuMidTank5Level != 0D) {
+ EuMidTank5Level = other.EuMidTank5Level;
+ }
+ if (other.EuMidTank6Level != 0D) {
+ EuMidTank6Level = other.EuMidTank6Level;
+ }
+ if (other.EuMidTank7Level != 0D) {
+ EuMidTank7Level = other.EuMidTank7Level;
+ }
+ if (other.EuMidTank8Level != 0D) {
+ EuMidTank8Level = other.EuMidTank8Level;
+ }
+ if (other.EuChillerTemperature != 0D) {
+ EuChillerTemperature = other.EuChillerTemperature;
+ }
+ if (other.EuHeadRightAirFlow != 0D) {
+ EuHeadRightAirFlow = other.EuHeadRightAirFlow;
+ }
+ if (other.EuHeadLeftAirFlow != 0D) {
+ EuHeadLeftAirFlow = other.EuHeadLeftAirFlow;
+ }
+ if (other.EuHeadRightVoltage != 0D) {
+ EuHeadRightVoltage = other.EuHeadRightVoltage;
+ }
+ if (other.EuHeadLeftVoltage != 0D) {
+ EuHeadLeftVoltage = other.EuHeadLeftVoltage;
+ }
+ if (other.EuDryerAirFlow != 0D) {
+ EuDryerAirFlow = other.EuDryerAirFlow;
+ }
+ if (other.EuBlowerVoltage != 0D) {
+ EuBlowerVoltage = other.EuBlowerVoltage;
+ }
+ if (other.EuWasteLevel != 0D) {
+ EuWasteLevel = other.EuWasteLevel;
+ }
+ if (other.EuSpare1 != 0D) {
+ EuSpare1 = other.EuSpare1;
+ }
+ if (other.EuSpare2 != 0D) {
+ EuSpare2 = other.EuSpare2;
+ }
+ if (other.EuSpare3 != 0D) {
+ EuSpare3 = other.EuSpare3;
+ }
+ if (other.EuSpare4 != 0D) {
+ EuSpare4 = other.EuSpare4;
+ }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -3017,6 +5829,422 @@ namespace Tango.PMR.Insights {
TotalWHSFlow = input.ReadDouble();
break;
}
+ case 753: {
+ EuWinder1Dancer = input.ReadDouble();
+ break;
+ }
+ case 761: {
+ EuWinder2Dancer = input.ReadDouble();
+ break;
+ }
+ case 769: {
+ EuWinder3Dancer = input.ReadDouble();
+ break;
+ }
+ case 777: {
+ EuWinder4Dancer = input.ReadDouble();
+ break;
+ }
+ case 785: {
+ EuWinder1Motor = input.ReadDouble();
+ break;
+ }
+ case 793: {
+ EuWinder2Motor = input.ReadDouble();
+ break;
+ }
+ case 801: {
+ EuWinder3Motor = input.ReadDouble();
+ break;
+ }
+ case 809: {
+ EuWinder4Motor = input.ReadDouble();
+ break;
+ }
+ case 817: {
+ EuDryerMotorVelocity = input.ReadDouble();
+ break;
+ }
+ case 825: {
+ EuDryerMotorTargetVelocity = input.ReadDouble();
+ break;
+ }
+ case 833: {
+ EuDryerMotorCurrent = input.ReadDouble();
+ break;
+ }
+ case 841: {
+ EuPullerDancer = input.ReadDouble();
+ break;
+ }
+ case 849: {
+ EuPullerMotor = input.ReadDouble();
+ break;
+ }
+ case 857: {
+ EuDryerZone1Temperature = input.ReadDouble();
+ break;
+ }
+ case 865: {
+ EuDryerZone2Temperature = input.ReadDouble();
+ break;
+ }
+ case 873: {
+ EuDryerZone3Temperature = input.ReadDouble();
+ break;
+ }
+ case 881: {
+ EuHeadZone1Temperature = input.ReadDouble();
+ break;
+ }
+ case 889: {
+ EuHeadZone2Temperature = input.ReadDouble();
+ break;
+ }
+ case 897: {
+ EuHeadZone3Temperature = input.ReadDouble();
+ break;
+ }
+ case 905: {
+ EuMixerTemperature = input.ReadDouble();
+ break;
+ }
+ case 913: {
+ EuTunnelTemperature = input.ReadDouble();
+ break;
+ }
+ case 921: {
+ EuLubricantTemperature = input.ReadDouble();
+ break;
+ }
+ case 929: {
+ EuAmbientTemperature = input.ReadDouble();
+ break;
+ }
+ case 937: {
+ EuElectricalCabinetTemperature = input.ReadDouble();
+ break;
+ }
+ case 945: {
+ EuDryerZone1Current = input.ReadDouble();
+ break;
+ }
+ case 953: {
+ EuDryerZone2Current = input.ReadDouble();
+ break;
+ }
+ case 961: {
+ EuDryerZone3Current = input.ReadDouble();
+ break;
+ }
+ case 969: {
+ EuHeadZone1Current = input.ReadDouble();
+ break;
+ }
+ case 977: {
+ EuHeadZone2Current = input.ReadDouble();
+ break;
+ }
+ case 985: {
+ EuHeadZone3Current = input.ReadDouble();
+ break;
+ }
+ case 993: {
+ EuMixerCurrent = input.ReadDouble();
+ break;
+ }
+ case 1001: {
+ EuTunnelCurrent = input.ReadDouble();
+ break;
+ }
+ case 1009: {
+ EuLubricantCurrent = input.ReadDouble();
+ break;
+ }
+ case 1017: {
+ EuBtsr1Speed = input.ReadDouble();
+ break;
+ }
+ case 1025: {
+ EuBtsr1SpeedAv = input.ReadDouble();
+ break;
+ }
+ case 1033: {
+ EuBtsr1DispAv = input.ReadDouble();
+ break;
+ }
+ case 1041: {
+ EuBtsr1PeakMin = input.ReadDouble();
+ break;
+ }
+ case 1049: {
+ EuBtsr1PeakMax = input.ReadDouble();
+ break;
+ }
+ case 1057: {
+ EuBtsr2Speed = input.ReadDouble();
+ break;
+ }
+ case 1065: {
+ EuBtsr2SpeedAv = input.ReadDouble();
+ break;
+ }
+ case 1073: {
+ EuBtsr2DispAv = input.ReadDouble();
+ break;
+ }
+ case 1081: {
+ EuBtsr2PeakMin = input.ReadDouble();
+ break;
+ }
+ case 1089: {
+ EuBtsr2PeakMax = input.ReadDouble();
+ break;
+ }
+ case 1097: {
+ EuBtsr3Speed = input.ReadDouble();
+ break;
+ }
+ case 1105: {
+ EuBtsr3SpeedAv = input.ReadDouble();
+ break;
+ }
+ case 1113: {
+ EuBtsr3DispAv = input.ReadDouble();
+ break;
+ }
+ case 1121: {
+ EuBtsr3PeakMin = input.ReadDouble();
+ break;
+ }
+ case 1129: {
+ EuBtsr3PeakMax = input.ReadDouble();
+ break;
+ }
+ case 1137: {
+ EuBtsr4Speed = input.ReadDouble();
+ break;
+ }
+ case 1145: {
+ EuBtsr4SpeedAv = input.ReadDouble();
+ break;
+ }
+ case 1153: {
+ EuBtsr4PeakMin = input.ReadDouble();
+ break;
+ }
+ case 1161: {
+ EuBtsr4PeakMax = input.ReadDouble();
+ break;
+ }
+ case 1169: {
+ EuBtsr4DispAv = input.ReadDouble();
+ break;
+ }
+ case 1178:
+ case 1177: {
+ euTemperatureLoggers_.AddEntriesFrom(input, _repeated_euTemperatureLoggers_codec);
+ break;
+ }
+ case 1186:
+ case 1185: {
+ euPumpFlows_.AddEntriesFrom(input, _repeated_euPumpFlows_codec);
+ break;
+ }
+ case 1194:
+ case 1193: {
+ euInkLinesPressure_.AddEntriesFrom(input, _repeated_euInkLinesPressure_codec);
+ break;
+ }
+ case 1202:
+ case 1201: {
+ euSpareDataArray_.AddEntriesFrom(input, _repeated_euSpareDataArray_codec);
+ break;
+ }
+ case 1209: {
+ EuDispenser1Voltage = input.ReadDouble();
+ break;
+ }
+ case 1217: {
+ EuDispenser2Voltage = input.ReadDouble();
+ break;
+ }
+ case 1225: {
+ EuDispenser3Voltage = input.ReadDouble();
+ break;
+ }
+ case 1233: {
+ EuDispenser4Voltage = input.ReadDouble();
+ break;
+ }
+ case 1241: {
+ EuDispenser5Voltage = input.ReadDouble();
+ break;
+ }
+ case 1249: {
+ EuDispenser6Voltage = input.ReadDouble();
+ break;
+ }
+ case 1257: {
+ EuDispenser7Voltage = input.ReadDouble();
+ break;
+ }
+ case 1265: {
+ EuDispenser8Voltage = input.ReadDouble();
+ break;
+ }
+ case 1273: {
+ EuDispenser9Voltage = input.ReadDouble();
+ break;
+ }
+ case 1281: {
+ EuDispenser10Voltage = input.ReadDouble();
+ break;
+ }
+ case 1289: {
+ EuDispenser11Voltage = input.ReadDouble();
+ break;
+ }
+ case 1297: {
+ EuDispenser12Voltage = input.ReadDouble();
+ break;
+ }
+ case 1305: {
+ EuDispenser13Voltage = input.ReadDouble();
+ break;
+ }
+ case 1313: {
+ EuDispenser14Voltage = input.ReadDouble();
+ break;
+ }
+ case 1321: {
+ EuDispenser15Voltage = input.ReadDouble();
+ break;
+ }
+ case 1329: {
+ EuDispenser16Voltage = input.ReadDouble();
+ break;
+ }
+ case 1337: {
+ EuLubricantPumpVoltage = input.ReadDouble();
+ break;
+ }
+ case 1345: {
+ EuDispenser1Pressure = input.ReadDouble();
+ break;
+ }
+ case 1353: {
+ EuDispenser2Pressure = input.ReadDouble();
+ break;
+ }
+ case 1361: {
+ EuDispenser3Pressure = input.ReadDouble();
+ break;
+ }
+ case 1369: {
+ EuDispenser4Pressure = input.ReadDouble();
+ break;
+ }
+ case 1377: {
+ EuDispenser5Pressure = input.ReadDouble();
+ break;
+ }
+ case 1385: {
+ EuDispenser6Pressure = input.ReadDouble();
+ break;
+ }
+ case 1393: {
+ EuDispenser7Pressure = input.ReadDouble();
+ break;
+ }
+ case 1401: {
+ EuDispenser8Pressure = input.ReadDouble();
+ break;
+ }
+ case 1409: {
+ EuLubricantPressure = input.ReadDouble();
+ break;
+ }
+ case 1417: {
+ EuMidTank1Level = input.ReadDouble();
+ break;
+ }
+ case 1425: {
+ EuMidTank2Level = input.ReadDouble();
+ break;
+ }
+ case 1433: {
+ EuMidTank3Level = input.ReadDouble();
+ break;
+ }
+ case 1441: {
+ EuMidTank4Level = input.ReadDouble();
+ break;
+ }
+ case 1449: {
+ EuMidTank5Level = input.ReadDouble();
+ break;
+ }
+ case 1457: {
+ EuMidTank6Level = input.ReadDouble();
+ break;
+ }
+ case 1465: {
+ EuMidTank7Level = input.ReadDouble();
+ break;
+ }
+ case 1473: {
+ EuMidTank8Level = input.ReadDouble();
+ break;
+ }
+ case 1481: {
+ EuChillerTemperature = input.ReadDouble();
+ break;
+ }
+ case 1489: {
+ EuHeadRightAirFlow = input.ReadDouble();
+ break;
+ }
+ case 1497: {
+ EuHeadLeftAirFlow = input.ReadDouble();
+ break;
+ }
+ case 1505: {
+ EuHeadRightVoltage = input.ReadDouble();
+ break;
+ }
+ case 1513: {
+ EuHeadLeftVoltage = input.ReadDouble();
+ break;
+ }
+ case 1521: {
+ EuDryerAirFlow = input.ReadDouble();
+ break;
+ }
+ case 1529: {
+ EuBlowerVoltage = input.ReadDouble();
+ break;
+ }
+ case 1537: {
+ EuWasteLevel = input.ReadDouble();
+ break;
+ }
+ case 1545: {
+ EuSpare1 = input.ReadDouble();
+ break;
+ }
+ case 1553: {
+ EuSpare2 = input.ReadDouble();
+ break;
+ }
+ case 1561: {
+ EuSpare3 = input.ReadDouble();
+ break;
+ }
+ case 1569: {
+ EuSpare4 = input.ReadDouble();
+ break;
+ }
}
}
}
diff --git a/Software/Visual_Studio/Tango.PMR/Integration/ExternalBridgeUdpDiscoveryPacket.cs b/Software/Visual_Studio/Tango.PMR/Integration/ExternalBridgeUdpDiscoveryPacket.cs
index 309f95be3..21563b570 100644
--- a/Software/Visual_Studio/Tango.PMR/Integration/ExternalBridgeUdpDiscoveryPacket.cs
+++ b/Software/Visual_Studio/Tango.PMR/Integration/ExternalBridgeUdpDiscoveryPacket.cs
@@ -23,14 +23,15 @@ namespace Tango.PMR.Integration {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"CiZFeHRlcm5hbEJyaWRnZVVkcERpc2NvdmVyeVBhY2tldC5wcm90bxIVVGFu",
- "Z28uUE1SLkludGVncmF0aW9uIlQKIEV4dGVybmFsQnJpZGdlVWRwRGlzY292",
- "ZXJ5UGFja2V0EgwKBFRpbWUYASABKAkSFAoMU2VyaWFsTnVtYmVyGAIgASgJ",
- "EgwKBEd1aWQYAyABKAlCIQofY29tLnR3aW5lLnRhbmdvLnBtci5pbnRlZ3Jh",
- "dGlvbmIGcHJvdG8z"));
+ "Z28uUE1SLkludGVncmF0aW9uGhFNYWNoaW5lVHlwZS5wcm90byKIAQogRXh0",
+ "ZXJuYWxCcmlkZ2VVZHBEaXNjb3ZlcnlQYWNrZXQSDAoEVGltZRgBIAEoCRIU",
+ "CgxTZXJpYWxOdW1iZXIYAiABKAkSDAoER3VpZBgDIAEoCRIyCgtNYWNoaW5l",
+ "VHlwZRgEIAEoDjIdLlRhbmdvLlBNUi5Db21tb24uTWFjaGluZVR5cGVCIQof",
+ "Y29tLnR3aW5lLnRhbmdvLnBtci5pbnRlZ3JhdGlvbmIGcHJvdG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
- new pbr::FileDescriptor[] { },
+ new pbr::FileDescriptor[] { global::Tango.PMR.Common.MachineTypeReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
- new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Integration.ExternalBridgeUdpDiscoveryPacket), global::Tango.PMR.Integration.ExternalBridgeUdpDiscoveryPacket.Parser, new[]{ "Time", "SerialNumber", "Guid" }, null, null, null)
+ new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Integration.ExternalBridgeUdpDiscoveryPacket), global::Tango.PMR.Integration.ExternalBridgeUdpDiscoveryPacket.Parser, new[]{ "Time", "SerialNumber", "Guid", "MachineType" }, null, null, null)
}));
}
#endregion
@@ -64,6 +65,7 @@ namespace Tango.PMR.Integration {
time_ = other.time_;
serialNumber_ = other.serialNumber_;
guid_ = other.guid_;
+ machineType_ = other.machineType_;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -104,6 +106,17 @@ namespace Tango.PMR.Integration {
}
}
+ /// <summary>Field number for the "MachineType" field.</summary>
+ public const int MachineTypeFieldNumber = 4;
+ private global::Tango.PMR.Common.MachineType machineType_ = 0;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public global::Tango.PMR.Common.MachineType MachineType {
+ get { return machineType_; }
+ set {
+ machineType_ = value;
+ }
+ }
+
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as ExternalBridgeUdpDiscoveryPacket);
@@ -120,6 +133,7 @@ namespace Tango.PMR.Integration {
if (Time != other.Time) return false;
if (SerialNumber != other.SerialNumber) return false;
if (Guid != other.Guid) return false;
+ if (MachineType != other.MachineType) return false;
return true;
}
@@ -129,6 +143,7 @@ namespace Tango.PMR.Integration {
if (Time.Length != 0) hash ^= Time.GetHashCode();
if (SerialNumber.Length != 0) hash ^= SerialNumber.GetHashCode();
if (Guid.Length != 0) hash ^= Guid.GetHashCode();
+ if (MachineType != 0) hash ^= MachineType.GetHashCode();
return hash;
}
@@ -151,6 +166,10 @@ namespace Tango.PMR.Integration {
output.WriteRawTag(26);
output.WriteString(Guid);
}
+ if (MachineType != 0) {
+ output.WriteRawTag(32);
+ output.WriteEnum((int) MachineType);
+ }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -165,6 +184,9 @@ namespace Tango.PMR.Integration {
if (Guid.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(Guid);
}
+ if (MachineType != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) MachineType);
+ }
return size;
}
@@ -182,6 +204,9 @@ namespace Tango.PMR.Integration {
if (other.Guid.Length != 0) {
Guid = other.Guid;
}
+ if (other.MachineType != 0) {
+ MachineType = other.MachineType;
+ }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -204,6 +229,10 @@ namespace Tango.PMR.Integration {
Guid = input.ReadString();
break;
}
+ case 32: {
+ machineType_ = (global::Tango.PMR.Common.MachineType) input.ReadEnum();
+ break;
+ }
}
}
}
diff --git a/Software/Visual_Studio/Tango.PMR/MachineStatus/IDSPackLevel.cs b/Software/Visual_Studio/Tango.PMR/MachineStatus/IDSPackLevel.cs
index 18024c6d7..a11341386 100644
--- a/Software/Visual_Studio/Tango.PMR/MachineStatus/IDSPackLevel.cs
+++ b/Software/Visual_Studio/Tango.PMR/MachineStatus/IDSPackLevel.cs
@@ -23,13 +23,16 @@ namespace Tango.PMR.MachineStatus {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"ChJJRFNQYWNrTGV2ZWwucHJvdG8SF1RhbmdvLlBNUi5NYWNoaW5lU3RhdHVz",
- "IksKDElEU1BhY2tMZXZlbBINCgVJbmRleBgBIAEoBRIWCg5EaXNwZW5zZXJM",
- "ZXZlbBgCIAEoBRIUCgxNaWRUYW5rTGV2ZWwYAyABKAFCIwohY29tLnR3aW5l",
- "LnRhbmdvLnBtci5tYWNoaW5lc3RhdHVzYgZwcm90bzM="));
+ "ItcBCgxJRFNQYWNrTGV2ZWwSDQoFSW5kZXgYASABKAUSFgoORGlzcGVuc2Vy",
+ "TGV2ZWwYAiABKAUSFAoMTWlkVGFua0xldmVsGAMgASgBEhcKD0plcnJpY2Fu",
+ "UHJlc2VudBgEIAEoCBIbChNGaWxsaW5nVGltZW91dEVycm9yGAUgASgIEhQK",
+ "DE1pZFRhbmtFbXB0eRgGIAEoCBIfChdNaWRUYW5rUmVmaWxsUHVtcEFjdGl2",
+ "ZRgHIAEoCBIdChVUaW1lclJlbWFpbmluZ1NlY29uZHMYCCABKAVCIwohY29t",
+ "LnR3aW5lLnRhbmdvLnBtci5tYWNoaW5lc3RhdHVzYgZwcm90bzM="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
- new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.MachineStatus.IDSPackLevel), global::Tango.PMR.MachineStatus.IDSPackLevel.Parser, new[]{ "Index", "DispenserLevel", "MidTankLevel" }, null, null, null)
+ new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.MachineStatus.IDSPackLevel), global::Tango.PMR.MachineStatus.IDSPackLevel.Parser, new[]{ "Index", "DispenserLevel", "MidTankLevel", "JerricanPresent", "FillingTimeoutError", "MidTankEmpty", "MidTankRefillPumpActive", "TimerRemainingSeconds" }, null, null, null)
}));
}
#endregion
@@ -63,6 +66,11 @@ namespace Tango.PMR.MachineStatus {
index_ = other.index_;
dispenserLevel_ = other.dispenserLevel_;
midTankLevel_ = other.midTankLevel_;
+ jerricanPresent_ = other.jerricanPresent_;
+ fillingTimeoutError_ = other.fillingTimeoutError_;
+ midTankEmpty_ = other.midTankEmpty_;
+ midTankRefillPumpActive_ = other.midTankRefillPumpActive_;
+ timerRemainingSeconds_ = other.timerRemainingSeconds_;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -103,6 +111,61 @@ namespace Tango.PMR.MachineStatus {
}
}
+ /// <summary>Field number for the "JerricanPresent" field.</summary>
+ public const int JerricanPresentFieldNumber = 4;
+ private bool jerricanPresent_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool JerricanPresent {
+ get { return jerricanPresent_; }
+ set {
+ jerricanPresent_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "FillingTimeoutError" field.</summary>
+ public const int FillingTimeoutErrorFieldNumber = 5;
+ private bool fillingTimeoutError_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool FillingTimeoutError {
+ get { return fillingTimeoutError_; }
+ set {
+ fillingTimeoutError_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "MidTankEmpty" field.</summary>
+ public const int MidTankEmptyFieldNumber = 6;
+ private bool midTankEmpty_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool MidTankEmpty {
+ get { return midTankEmpty_; }
+ set {
+ midTankEmpty_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "MidTankRefillPumpActive" field.</summary>
+ public const int MidTankRefillPumpActiveFieldNumber = 7;
+ private bool midTankRefillPumpActive_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool MidTankRefillPumpActive {
+ get { return midTankRefillPumpActive_; }
+ set {
+ midTankRefillPumpActive_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "TimerRemainingSeconds" field.</summary>
+ public const int TimerRemainingSecondsFieldNumber = 8;
+ private int timerRemainingSeconds_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int TimerRemainingSeconds {
+ get { return timerRemainingSeconds_; }
+ set {
+ timerRemainingSeconds_ = value;
+ }
+ }
+
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as IDSPackLevel);
@@ -119,6 +182,11 @@ namespace Tango.PMR.MachineStatus {
if (Index != other.Index) return false;
if (DispenserLevel != other.DispenserLevel) return false;
if (MidTankLevel != other.MidTankLevel) return false;
+ if (JerricanPresent != other.JerricanPresent) return false;
+ if (FillingTimeoutError != other.FillingTimeoutError) return false;
+ if (MidTankEmpty != other.MidTankEmpty) return false;
+ if (MidTankRefillPumpActive != other.MidTankRefillPumpActive) return false;
+ if (TimerRemainingSeconds != other.TimerRemainingSeconds) return false;
return true;
}
@@ -128,6 +196,11 @@ namespace Tango.PMR.MachineStatus {
if (Index != 0) hash ^= Index.GetHashCode();
if (DispenserLevel != 0) hash ^= DispenserLevel.GetHashCode();
if (MidTankLevel != 0D) hash ^= MidTankLevel.GetHashCode();
+ if (JerricanPresent != false) hash ^= JerricanPresent.GetHashCode();
+ if (FillingTimeoutError != false) hash ^= FillingTimeoutError.GetHashCode();
+ if (MidTankEmpty != false) hash ^= MidTankEmpty.GetHashCode();
+ if (MidTankRefillPumpActive != false) hash ^= MidTankRefillPumpActive.GetHashCode();
+ if (TimerRemainingSeconds != 0) hash ^= TimerRemainingSeconds.GetHashCode();
return hash;
}
@@ -150,6 +223,26 @@ namespace Tango.PMR.MachineStatus {
output.WriteRawTag(25);
output.WriteDouble(MidTankLevel);
}
+ if (JerricanPresent != false) {
+ output.WriteRawTag(32);
+ output.WriteBool(JerricanPresent);
+ }
+ if (FillingTimeoutError != false) {
+ output.WriteRawTag(40);
+ output.WriteBool(FillingTimeoutError);
+ }
+ if (MidTankEmpty != false) {
+ output.WriteRawTag(48);
+ output.WriteBool(MidTankEmpty);
+ }
+ if (MidTankRefillPumpActive != false) {
+ output.WriteRawTag(56);
+ output.WriteBool(MidTankRefillPumpActive);
+ }
+ if (TimerRemainingSeconds != 0) {
+ output.WriteRawTag(64);
+ output.WriteInt32(TimerRemainingSeconds);
+ }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -164,6 +257,21 @@ namespace Tango.PMR.MachineStatus {
if (MidTankLevel != 0D) {
size += 1 + 8;
}
+ if (JerricanPresent != false) {
+ size += 1 + 1;
+ }
+ if (FillingTimeoutError != false) {
+ size += 1 + 1;
+ }
+ if (MidTankEmpty != false) {
+ size += 1 + 1;
+ }
+ if (MidTankRefillPumpActive != false) {
+ size += 1 + 1;
+ }
+ if (TimerRemainingSeconds != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeInt32Size(TimerRemainingSeconds);
+ }
return size;
}
@@ -181,6 +289,21 @@ namespace Tango.PMR.MachineStatus {
if (other.MidTankLevel != 0D) {
MidTankLevel = other.MidTankLevel;
}
+ if (other.JerricanPresent != false) {
+ JerricanPresent = other.JerricanPresent;
+ }
+ if (other.FillingTimeoutError != false) {
+ FillingTimeoutError = other.FillingTimeoutError;
+ }
+ if (other.MidTankEmpty != false) {
+ MidTankEmpty = other.MidTankEmpty;
+ }
+ if (other.MidTankRefillPumpActive != false) {
+ MidTankRefillPumpActive = other.MidTankRefillPumpActive;
+ }
+ if (other.TimerRemainingSeconds != 0) {
+ TimerRemainingSeconds = other.TimerRemainingSeconds;
+ }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -203,6 +326,26 @@ namespace Tango.PMR.MachineStatus {
MidTankLevel = input.ReadDouble();
break;
}
+ case 32: {
+ JerricanPresent = input.ReadBool();
+ break;
+ }
+ case 40: {
+ FillingTimeoutError = input.ReadBool();
+ break;
+ }
+ case 48: {
+ MidTankEmpty = input.ReadBool();
+ break;
+ }
+ case 56: {
+ MidTankRefillPumpActive = input.ReadBool();
+ break;
+ }
+ case 64: {
+ TimerRemainingSeconds = input.ReadInt32();
+ break;
+ }
}
}
}
diff --git a/Software/Visual_Studio/Tango.PMR/MachineStatus/MachineStatus.cs b/Software/Visual_Studio/Tango.PMR/MachineStatus/MachineStatus.cs
index a50669c26..78301db82 100644
--- a/Software/Visual_Studio/Tango.PMR/MachineStatus/MachineStatus.cs
+++ b/Software/Visual_Studio/Tango.PMR/MachineStatus/MachineStatus.cs
@@ -24,17 +24,19 @@ namespace Tango.PMR.MachineStatus {
string.Concat(
"ChNNYWNoaW5lU3RhdHVzLnByb3RvEhdUYW5nby5QTVIuTWFjaGluZVN0YXR1",
"cxoSTWFjaGluZVN0YXRlLnByb3RvGhJJRFNQYWNrTGV2ZWwucHJvdG8aEFNw",
- "b29sU3RhdGUucHJvdG8i+AEKDU1hY2hpbmVTdGF0dXMSNAoFU3RhdGUYASAB",
+ "b29sU3RhdGUucHJvdG8ivgIKDU1hY2hpbmVTdGF0dXMSNAoFU3RhdGUYASAB",
"KA4yJS5UYW5nby5QTVIuTWFjaGluZVN0YXR1cy5NYWNoaW5lU3RhdGUSPQoO",
"SURTUGFja3NMZXZlbHMYAiADKAsyJS5UYW5nby5QTVIuTWFjaGluZVN0YXR1",
"cy5JRFNQYWNrTGV2ZWwSGgoST3ZlcmFsbFRlbXBlcmF0dXJlGAMgASgBEjcK",
"ClNwb29sU3RhdGUYBCABKA4yIy5UYW5nby5QTVIuTWFjaGluZVN0YXR1cy5T",
- "cG9vbFN0YXRlEh0KFUF1dG9JbmtGaWxsaW5nRW5hYmxlZBgFIAEoCEIjCiFj",
- "b20udHdpbmUudGFuZ28ucG1yLm1hY2hpbmVzdGF0dXNiBnByb3RvMw=="));
+ "cG9vbFN0YXRlEh0KFUF1dG9JbmtGaWxsaW5nRW5hYmxlZBgFIAEoCBIUCgxC",
+ "dHNyc0luRXJyb3IYCiADKAgSFgoORGFuY2Vyc0luRXJyb3IYCyADKAgSFgoO",
+ "V2luZGVyc0luRXJyb3IYDCADKAhCIwohY29tLnR3aW5lLnRhbmdvLnBtci5t",
+ "YWNoaW5lc3RhdHVzYgZwcm90bzM="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::Tango.PMR.MachineStatus.MachineStateReflection.Descriptor, global::Tango.PMR.MachineStatus.IDSPackLevelReflection.Descriptor, global::Tango.PMR.MachineStatus.SpoolStateReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
- new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.MachineStatus.MachineStatus), global::Tango.PMR.MachineStatus.MachineStatus.Parser, new[]{ "State", "IDSPacksLevels", "OverallTemperature", "SpoolState", "AutoInkFillingEnabled" }, null, null, null)
+ new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.MachineStatus.MachineStatus), global::Tango.PMR.MachineStatus.MachineStatus.Parser, new[]{ "State", "IDSPacksLevels", "OverallTemperature", "SpoolState", "AutoInkFillingEnabled", "BtsrsInError", "DancersInError", "WindersInError" }, null, null, null)
}));
}
#endregion
@@ -70,6 +72,9 @@ namespace Tango.PMR.MachineStatus {
overallTemperature_ = other.overallTemperature_;
spoolState_ = other.spoolState_;
autoInkFillingEnabled_ = other.autoInkFillingEnabled_;
+ btsrsInError_ = other.btsrsInError_.Clone();
+ dancersInError_ = other.dancersInError_.Clone();
+ windersInError_ = other.windersInError_.Clone();
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -131,6 +136,36 @@ namespace Tango.PMR.MachineStatus {
}
}
+ /// <summary>Field number for the "BtsrsInError" field.</summary>
+ public const int BtsrsInErrorFieldNumber = 10;
+ private static readonly pb::FieldCodec<bool> _repeated_btsrsInError_codec
+ = pb::FieldCodec.ForBool(82);
+ private readonly pbc::RepeatedField<bool> btsrsInError_ = new pbc::RepeatedField<bool>();
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<bool> BtsrsInError {
+ get { return btsrsInError_; }
+ }
+
+ /// <summary>Field number for the "DancersInError" field.</summary>
+ public const int DancersInErrorFieldNumber = 11;
+ private static readonly pb::FieldCodec<bool> _repeated_dancersInError_codec
+ = pb::FieldCodec.ForBool(90);
+ private readonly pbc::RepeatedField<bool> dancersInError_ = new pbc::RepeatedField<bool>();
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<bool> DancersInError {
+ get { return dancersInError_; }
+ }
+
+ /// <summary>Field number for the "WindersInError" field.</summary>
+ public const int WindersInErrorFieldNumber = 12;
+ private static readonly pb::FieldCodec<bool> _repeated_windersInError_codec
+ = pb::FieldCodec.ForBool(98);
+ private readonly pbc::RepeatedField<bool> windersInError_ = new pbc::RepeatedField<bool>();
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField<bool> WindersInError {
+ get { return windersInError_; }
+ }
+
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as MachineStatus);
@@ -149,6 +184,9 @@ namespace Tango.PMR.MachineStatus {
if (OverallTemperature != other.OverallTemperature) return false;
if (SpoolState != other.SpoolState) return false;
if (AutoInkFillingEnabled != other.AutoInkFillingEnabled) return false;
+ if(!btsrsInError_.Equals(other.btsrsInError_)) return false;
+ if(!dancersInError_.Equals(other.dancersInError_)) return false;
+ if(!windersInError_.Equals(other.windersInError_)) return false;
return true;
}
@@ -160,6 +198,9 @@ namespace Tango.PMR.MachineStatus {
if (OverallTemperature != 0D) hash ^= OverallTemperature.GetHashCode();
if (SpoolState != 0) hash ^= SpoolState.GetHashCode();
if (AutoInkFillingEnabled != false) hash ^= AutoInkFillingEnabled.GetHashCode();
+ hash ^= btsrsInError_.GetHashCode();
+ hash ^= dancersInError_.GetHashCode();
+ hash ^= windersInError_.GetHashCode();
return hash;
}
@@ -187,6 +228,9 @@ namespace Tango.PMR.MachineStatus {
output.WriteRawTag(40);
output.WriteBool(AutoInkFillingEnabled);
}
+ btsrsInError_.WriteTo(output, _repeated_btsrsInError_codec);
+ dancersInError_.WriteTo(output, _repeated_dancersInError_codec);
+ windersInError_.WriteTo(output, _repeated_windersInError_codec);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -205,6 +249,9 @@ namespace Tango.PMR.MachineStatus {
if (AutoInkFillingEnabled != false) {
size += 1 + 1;
}
+ size += btsrsInError_.CalculateSize(_repeated_btsrsInError_codec);
+ size += dancersInError_.CalculateSize(_repeated_dancersInError_codec);
+ size += windersInError_.CalculateSize(_repeated_windersInError_codec);
return size;
}
@@ -226,6 +273,9 @@ namespace Tango.PMR.MachineStatus {
if (other.AutoInkFillingEnabled != false) {
AutoInkFillingEnabled = other.AutoInkFillingEnabled;
}
+ btsrsInError_.Add(other.btsrsInError_);
+ dancersInError_.Add(other.dancersInError_);
+ windersInError_.Add(other.windersInError_);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -256,6 +306,21 @@ namespace Tango.PMR.MachineStatus {
AutoInkFillingEnabled = input.ReadBool();
break;
}
+ case 82:
+ case 80: {
+ btsrsInError_.AddEntriesFrom(input, _repeated_btsrsInError_codec);
+ break;
+ }
+ case 90:
+ case 88: {
+ dancersInError_.AddEntriesFrom(input, _repeated_dancersInError_codec);
+ break;
+ }
+ case 98:
+ case 96: {
+ windersInError_.AddEntriesFrom(input, _repeated_windersInError_codec);
+ break;
+ }
}
}
}
diff --git a/Software/Visual_Studio/Tango.PMR/Printing/JobRequest.cs b/Software/Visual_Studio/Tango.PMR/Printing/JobRequest.cs
index 4f29c71c6..7395544ad 100644
--- a/Software/Visual_Studio/Tango.PMR/Printing/JobRequest.cs
+++ b/Software/Visual_Studio/Tango.PMR/Printing/JobRequest.cs
@@ -23,13 +23,14 @@ namespace Tango.PMR.Printing {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"ChBKb2JSZXF1ZXN0LnByb3RvEhJUYW5nby5QTVIuUHJpbnRpbmcaD0pvYlRp",
- "Y2tldC5wcm90byI+CgpKb2JSZXF1ZXN0EjAKCUpvYlRpY2tldBgBIAEoCzId",
- "LlRhbmdvLlBNUi5QcmludGluZy5Kb2JUaWNrZXRCHgocY29tLnR3aW5lLnRh",
- "bmdvLnBtci5wcmludGluZ2IGcHJvdG8z"));
+ "Y2tldC5wcm90byJeCgpKb2JSZXF1ZXN0EjAKCUpvYlRpY2tldBgBIAEoCzId",
+ "LlRhbmdvLlBNUi5QcmludGluZy5Kb2JUaWNrZXQSHgoWRmlyc3RVbml0U3Rh",
+ "cnRQb3NpdGlvbhgCIAEoAUIeChxjb20udHdpbmUudGFuZ28ucG1yLnByaW50",
+ "aW5nYgZwcm90bzM="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::Tango.PMR.Printing.JobTicketReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
- new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Printing.JobRequest), global::Tango.PMR.Printing.JobRequest.Parser, new[]{ "JobTicket" }, null, null, null)
+ new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Printing.JobRequest), global::Tango.PMR.Printing.JobRequest.Parser, new[]{ "JobTicket", "FirstUnitStartPosition" }, null, null, null)
}));
}
#endregion
@@ -61,6 +62,7 @@ namespace Tango.PMR.Printing {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public JobRequest(JobRequest other) : this() {
JobTicket = other.jobTicket_ != null ? other.JobTicket.Clone() : null;
+ firstUnitStartPosition_ = other.firstUnitStartPosition_;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -79,6 +81,17 @@ namespace Tango.PMR.Printing {
}
}
+ /// <summary>Field number for the "FirstUnitStartPosition" field.</summary>
+ public const int FirstUnitStartPositionFieldNumber = 2;
+ private double firstUnitStartPosition_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double FirstUnitStartPosition {
+ get { return firstUnitStartPosition_; }
+ set {
+ firstUnitStartPosition_ = value;
+ }
+ }
+
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as JobRequest);
@@ -93,6 +106,7 @@ namespace Tango.PMR.Printing {
return true;
}
if (!object.Equals(JobTicket, other.JobTicket)) return false;
+ if (FirstUnitStartPosition != other.FirstUnitStartPosition) return false;
return true;
}
@@ -100,6 +114,7 @@ namespace Tango.PMR.Printing {
public override int GetHashCode() {
int hash = 1;
if (jobTicket_ != null) hash ^= JobTicket.GetHashCode();
+ if (FirstUnitStartPosition != 0D) hash ^= FirstUnitStartPosition.GetHashCode();
return hash;
}
@@ -114,6 +129,10 @@ namespace Tango.PMR.Printing {
output.WriteRawTag(10);
output.WriteMessage(JobTicket);
}
+ if (FirstUnitStartPosition != 0D) {
+ output.WriteRawTag(17);
+ output.WriteDouble(FirstUnitStartPosition);
+ }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -122,6 +141,9 @@ namespace Tango.PMR.Printing {
if (jobTicket_ != null) {
size += 1 + pb::CodedOutputStream.ComputeMessageSize(JobTicket);
}
+ if (FirstUnitStartPosition != 0D) {
+ size += 1 + 8;
+ }
return size;
}
@@ -136,6 +158,9 @@ namespace Tango.PMR.Printing {
}
JobTicket.MergeFrom(other.JobTicket);
}
+ if (other.FirstUnitStartPosition != 0D) {
+ FirstUnitStartPosition = other.FirstUnitStartPosition;
+ }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -153,6 +178,10 @@ namespace Tango.PMR.Printing {
input.ReadMessage(jobTicket_);
break;
}
+ case 17: {
+ FirstUnitStartPosition = input.ReadDouble();
+ break;
+ }
}
}
}
diff --git a/Software/Visual_Studio/Tango.PMR/Printing/ProcessParameters.cs b/Software/Visual_Studio/Tango.PMR/Printing/ProcessParameters.cs
index 0d45ef6bf..746e8da4d 100644
--- a/Software/Visual_Studio/Tango.PMR/Printing/ProcessParameters.cs
+++ b/Software/Visual_Studio/Tango.PMR/Printing/ProcessParameters.cs
@@ -23,7 +23,7 @@ namespace Tango.PMR.Printing {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"ChdQcm9jZXNzUGFyYW1ldGVycy5wcm90bxISVGFuZ28uUE1SLlByaW50aW5n",
- "IqMGChFQcm9jZXNzUGFyYW1ldGVycxITCgtEeWVpbmdTcGVlZBgBIAEoARIU",
+ "IoUMChFQcm9jZXNzUGFyYW1ldGVycxITCgtEeWVpbmdTcGVlZBgBIAEoARIU",
"CgxNaW5JbmtVcHRha2UYAiABKAESFAoMTWF4SW5rVXB0YWtlGAMgASgBEhUK",
"DUZlZWRlclRlbnNpb24YBCABKAESFQoNUHVsbGVyVGVuc2lvbhgFIAEoARIV",
"Cg1XaW5kZXJUZW5zaW9uGAYgASgBEhEKCU1peGVyVGVtcBgHIAEoARIVCg1I",
@@ -40,12 +40,29 @@ namespace Tango.PMR.Printing {
"dxgbIAEoARITCgtSQmxvd2VyVGVtcBgcIAEoARITCgtMQmxvd2VyRmxvdxgd",
"IAEoARITCgtMQmxvd2VyVGVtcBgeIAEoARIXCg9QcmVzc3VyZUJ1aWxkVXAY",
"HyABKAESGgoSQnRzckZlZWRpbmdUZW5zaW9uGCAgASgBEhMKC0V4aXRUZW5z",
- "aW9uGCEgASgBEh4KFkJ0c3JUaHJlYWRMZW5ndGhPZmZzZXQYIiABKAFCHgoc",
- "Y29tLnR3aW5lLnRhbmdvLnBtci5wcmludGluZ2IGcHJvdG8z"));
+ "aW9uGCEgASgBEh4KFkJ0c3JUaHJlYWRMZW5ndGhPZmZzZXQYIiABKAESFwoP",
+ "RVdpbmRlcjFUZW5zaW9uGCMgASgBEhcKD0VXaW5kZXIyVGVuc2lvbhgkIAEo",
+ "ARIXCg9FV2luZGVyM1RlbnNpb24YJSABKAESFwoPRVdpbmRlcjRUZW5zaW9u",
+ "GCYgASgBEhwKFEVCdHNyMUZlZWRpbmdUZW5zaW9uGCcgASgBEhwKFEVCdHNy",
+ "MkZlZWRpbmdUZW5zaW9uGCggASgBEhwKFEVCdHNyM0ZlZWRpbmdUZW5zaW9u",
+ "GCkgASgBEhwKFEVCdHNyNEZlZWRpbmdUZW5zaW9uGCogASgBEhIKCkVNaXhl",
+ "clRlbXAYKyABKAESFgoORUhlYWRab25lMVRlbXAYLCABKAESFgoORUhlYWRa",
+ "b25lMlRlbXAYLSABKAESFgoORUhlYWRab25lM1RlbXAYLiABKAESFwoPRURy",
+ "eWVyWm9uZTFUZW1wGC8gASgBEhcKD0VEcnllclpvbmUyVGVtcBgwIAEoARIX",
+ "Cg9FRHJ5ZXJab25lM1RlbXAYMSABKAESFgoORUx1YnJpY2FudFRlbXAYMiAB",
+ "KAESHQoVRURyeWVySW5jb21pbmdBaXJGbG93GDMgASgBEh0KFUVEcnllck91",
+ "dGdvaW5nQWlyRmxvdxg0IAEoARIeChZFVHVubmVsSW5jb21pbmdBaXJGbG93",
+ "GDUgASgBEh4KFkVUdW5uZWxPdXRnb2luZ0FpckZsb3cYNiABKAESFQoNRVdh",
+ "c3RlQWlyRmxvdxg3IAEoARIZChFFV2FzdGVQcmVwYXJlVGltZRg4IAEoARIR",
+ "CglFUHVtcFRlbXAYOSABKAESGAoQRVByZXNzdXJlQnVpbGRVcBg6IAEoARIP",
+ "CgdFU3BhcmUxGDsgASgBEg8KB0VTcGFyZTIYPCABKAESDwoHRVNwYXJlMxg9",
+ "IAEoARIPCgdFU3BhcmU0GD4gASgBEg8KB0VTcGFyZTUYPyABKAESEwoLRVR1",
+ "bm5lbFRlbXAYQCABKAFCHgocY29tLnR3aW5lLnRhbmdvLnBtci5wcmludGlu",
+ "Z2IGcHJvdG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
- new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Printing.ProcessParameters), global::Tango.PMR.Printing.ProcessParameters.Parser, new[]{ "DyeingSpeed", "MinInkUptake", "MaxInkUptake", "FeederTension", "PullerTension", "WinderTension", "MixerTemp", "HeadZone1Temp", "HeadZone2Temp", "HeadZone3Temp", "HeadZone4Temp", "HeadZone5Temp", "HeadZone6Temp", "DryerAirFlow", "DryerZone1Temp", "DryerZone2Temp", "DryerZone3Temp", "DryerBufferLength", "HeadAirFlow", "TableIndex", "HeadZone7Temp", "HeadZone8Temp", "HeadZone9Temp", "HeadZone10Temp", "HeadZone11Temp", "HeadZone12Temp", "RBlowerFlow", "RBlowerTemp", "LBlowerFlow", "LBlowerTemp", "PressureBuildUp", "BtsrFeedingTension", "ExitTension", "BtsrThreadLengthOffset" }, null, null, null)
+ new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Printing.ProcessParameters), global::Tango.PMR.Printing.ProcessParameters.Parser, new[]{ "DyeingSpeed", "MinInkUptake", "MaxInkUptake", "FeederTension", "PullerTension", "WinderTension", "MixerTemp", "HeadZone1Temp", "HeadZone2Temp", "HeadZone3Temp", "HeadZone4Temp", "HeadZone5Temp", "HeadZone6Temp", "DryerAirFlow", "DryerZone1Temp", "DryerZone2Temp", "DryerZone3Temp", "DryerBufferLength", "HeadAirFlow", "TableIndex", "HeadZone7Temp", "HeadZone8Temp", "HeadZone9Temp", "HeadZone10Temp", "HeadZone11Temp", "HeadZone12Temp", "RBlowerFlow", "RBlowerTemp", "LBlowerFlow", "LBlowerTemp", "PressureBuildUp", "BtsrFeedingTension", "ExitTension", "BtsrThreadLengthOffset", "EWinder1Tension", "EWinder2Tension", "EWinder3Tension", "EWinder4Tension", "EBtsr1FeedingTension", "EBtsr2FeedingTension", "EBtsr3FeedingTension", "EBtsr4FeedingTension", "EMixerTemp", "EHeadZone1Temp", "EHeadZone2Temp", "EHeadZone3Temp", "EDryerZone1Temp", "EDryerZone2Temp", "EDryerZone3Temp", "ELubricantTemp", "EDryerIncomingAirFlow", "EDryerOutgoingAirFlow", "ETunnelIncomingAirFlow", "ETunnelOutgoingAirFlow", "EWasteAirFlow", "EWastePrepareTime", "EPumpTemp", "EPressureBuildUp", "ESpare1", "ESpare2", "ESpare3", "ESpare4", "ESpare5", "ETunnelTemp" }, null, null, null)
}));
}
#endregion
@@ -110,6 +127,36 @@ namespace Tango.PMR.Printing {
btsrFeedingTension_ = other.btsrFeedingTension_;
exitTension_ = other.exitTension_;
btsrThreadLengthOffset_ = other.btsrThreadLengthOffset_;
+ eWinder1Tension_ = other.eWinder1Tension_;
+ eWinder2Tension_ = other.eWinder2Tension_;
+ eWinder3Tension_ = other.eWinder3Tension_;
+ eWinder4Tension_ = other.eWinder4Tension_;
+ eBtsr1FeedingTension_ = other.eBtsr1FeedingTension_;
+ eBtsr2FeedingTension_ = other.eBtsr2FeedingTension_;
+ eBtsr3FeedingTension_ = other.eBtsr3FeedingTension_;
+ eBtsr4FeedingTension_ = other.eBtsr4FeedingTension_;
+ eMixerTemp_ = other.eMixerTemp_;
+ eHeadZone1Temp_ = other.eHeadZone1Temp_;
+ eHeadZone2Temp_ = other.eHeadZone2Temp_;
+ eHeadZone3Temp_ = other.eHeadZone3Temp_;
+ eDryerZone1Temp_ = other.eDryerZone1Temp_;
+ eDryerZone2Temp_ = other.eDryerZone2Temp_;
+ eDryerZone3Temp_ = other.eDryerZone3Temp_;
+ eLubricantTemp_ = other.eLubricantTemp_;
+ eDryerIncomingAirFlow_ = other.eDryerIncomingAirFlow_;
+ eDryerOutgoingAirFlow_ = other.eDryerOutgoingAirFlow_;
+ eTunnelIncomingAirFlow_ = other.eTunnelIncomingAirFlow_;
+ eTunnelOutgoingAirFlow_ = other.eTunnelOutgoingAirFlow_;
+ eWasteAirFlow_ = other.eWasteAirFlow_;
+ eWastePrepareTime_ = other.eWastePrepareTime_;
+ ePumpTemp_ = other.ePumpTemp_;
+ ePressureBuildUp_ = other.ePressureBuildUp_;
+ eSpare1_ = other.eSpare1_;
+ eSpare2_ = other.eSpare2_;
+ eSpare3_ = other.eSpare3_;
+ eSpare4_ = other.eSpare4_;
+ eSpare5_ = other.eSpare5_;
+ eTunnelTemp_ = other.eTunnelTemp_;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -491,6 +538,336 @@ namespace Tango.PMR.Printing {
}
}
+ /// <summary>Field number for the "EWinder1Tension" field.</summary>
+ public const int EWinder1TensionFieldNumber = 35;
+ private double eWinder1Tension_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EWinder1Tension {
+ get { return eWinder1Tension_; }
+ set {
+ eWinder1Tension_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EWinder2Tension" field.</summary>
+ public const int EWinder2TensionFieldNumber = 36;
+ private double eWinder2Tension_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EWinder2Tension {
+ get { return eWinder2Tension_; }
+ set {
+ eWinder2Tension_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EWinder3Tension" field.</summary>
+ public const int EWinder3TensionFieldNumber = 37;
+ private double eWinder3Tension_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EWinder3Tension {
+ get { return eWinder3Tension_; }
+ set {
+ eWinder3Tension_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EWinder4Tension" field.</summary>
+ public const int EWinder4TensionFieldNumber = 38;
+ private double eWinder4Tension_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EWinder4Tension {
+ get { return eWinder4Tension_; }
+ set {
+ eWinder4Tension_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EBtsr1FeedingTension" field.</summary>
+ public const int EBtsr1FeedingTensionFieldNumber = 39;
+ private double eBtsr1FeedingTension_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EBtsr1FeedingTension {
+ get { return eBtsr1FeedingTension_; }
+ set {
+ eBtsr1FeedingTension_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EBtsr2FeedingTension" field.</summary>
+ public const int EBtsr2FeedingTensionFieldNumber = 40;
+ private double eBtsr2FeedingTension_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EBtsr2FeedingTension {
+ get { return eBtsr2FeedingTension_; }
+ set {
+ eBtsr2FeedingTension_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EBtsr3FeedingTension" field.</summary>
+ public const int EBtsr3FeedingTensionFieldNumber = 41;
+ private double eBtsr3FeedingTension_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EBtsr3FeedingTension {
+ get { return eBtsr3FeedingTension_; }
+ set {
+ eBtsr3FeedingTension_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EBtsr4FeedingTension" field.</summary>
+ public const int EBtsr4FeedingTensionFieldNumber = 42;
+ private double eBtsr4FeedingTension_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EBtsr4FeedingTension {
+ get { return eBtsr4FeedingTension_; }
+ set {
+ eBtsr4FeedingTension_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EMixerTemp" field.</summary>
+ public const int EMixerTempFieldNumber = 43;
+ private double eMixerTemp_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EMixerTemp {
+ get { return eMixerTemp_; }
+ set {
+ eMixerTemp_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EHeadZone1Temp" field.</summary>
+ public const int EHeadZone1TempFieldNumber = 44;
+ private double eHeadZone1Temp_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EHeadZone1Temp {
+ get { return eHeadZone1Temp_; }
+ set {
+ eHeadZone1Temp_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EHeadZone2Temp" field.</summary>
+ public const int EHeadZone2TempFieldNumber = 45;
+ private double eHeadZone2Temp_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EHeadZone2Temp {
+ get { return eHeadZone2Temp_; }
+ set {
+ eHeadZone2Temp_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EHeadZone3Temp" field.</summary>
+ public const int EHeadZone3TempFieldNumber = 46;
+ private double eHeadZone3Temp_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EHeadZone3Temp {
+ get { return eHeadZone3Temp_; }
+ set {
+ eHeadZone3Temp_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EDryerZone1Temp" field.</summary>
+ public const int EDryerZone1TempFieldNumber = 47;
+ private double eDryerZone1Temp_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EDryerZone1Temp {
+ get { return eDryerZone1Temp_; }
+ set {
+ eDryerZone1Temp_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EDryerZone2Temp" field.</summary>
+ public const int EDryerZone2TempFieldNumber = 48;
+ private double eDryerZone2Temp_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EDryerZone2Temp {
+ get { return eDryerZone2Temp_; }
+ set {
+ eDryerZone2Temp_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EDryerZone3Temp" field.</summary>
+ public const int EDryerZone3TempFieldNumber = 49;
+ private double eDryerZone3Temp_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EDryerZone3Temp {
+ get { return eDryerZone3Temp_; }
+ set {
+ eDryerZone3Temp_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "ELubricantTemp" field.</summary>
+ public const int ELubricantTempFieldNumber = 50;
+ private double eLubricantTemp_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double ELubricantTemp {
+ get { return eLubricantTemp_; }
+ set {
+ eLubricantTemp_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EDryerIncomingAirFlow" field.</summary>
+ public const int EDryerIncomingAirFlowFieldNumber = 51;
+ private double eDryerIncomingAirFlow_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EDryerIncomingAirFlow {
+ get { return eDryerIncomingAirFlow_; }
+ set {
+ eDryerIncomingAirFlow_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EDryerOutgoingAirFlow" field.</summary>
+ public const int EDryerOutgoingAirFlowFieldNumber = 52;
+ private double eDryerOutgoingAirFlow_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EDryerOutgoingAirFlow {
+ get { return eDryerOutgoingAirFlow_; }
+ set {
+ eDryerOutgoingAirFlow_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "ETunnelIncomingAirFlow" field.</summary>
+ public const int ETunnelIncomingAirFlowFieldNumber = 53;
+ private double eTunnelIncomingAirFlow_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double ETunnelIncomingAirFlow {
+ get { return eTunnelIncomingAirFlow_; }
+ set {
+ eTunnelIncomingAirFlow_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "ETunnelOutgoingAirFlow" field.</summary>
+ public const int ETunnelOutgoingAirFlowFieldNumber = 54;
+ private double eTunnelOutgoingAirFlow_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double ETunnelOutgoingAirFlow {
+ get { return eTunnelOutgoingAirFlow_; }
+ set {
+ eTunnelOutgoingAirFlow_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EWasteAirFlow" field.</summary>
+ public const int EWasteAirFlowFieldNumber = 55;
+ private double eWasteAirFlow_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EWasteAirFlow {
+ get { return eWasteAirFlow_; }
+ set {
+ eWasteAirFlow_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EWastePrepareTime" field.</summary>
+ public const int EWastePrepareTimeFieldNumber = 56;
+ private double eWastePrepareTime_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EWastePrepareTime {
+ get { return eWastePrepareTime_; }
+ set {
+ eWastePrepareTime_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EPumpTemp" field.</summary>
+ public const int EPumpTempFieldNumber = 57;
+ private double ePumpTemp_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EPumpTemp {
+ get { return ePumpTemp_; }
+ set {
+ ePumpTemp_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "EPressureBuildUp" field.</summary>
+ public const int EPressureBuildUpFieldNumber = 58;
+ private double ePressureBuildUp_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double EPressureBuildUp {
+ get { return ePressureBuildUp_; }
+ set {
+ ePressureBuildUp_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "ESpare1" field.</summary>
+ public const int ESpare1FieldNumber = 59;
+ private double eSpare1_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double ESpare1 {
+ get { return eSpare1_; }
+ set {
+ eSpare1_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "ESpare2" field.</summary>
+ public const int ESpare2FieldNumber = 60;
+ private double eSpare2_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double ESpare2 {
+ get { return eSpare2_; }
+ set {
+ eSpare2_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "ESpare3" field.</summary>
+ public const int ESpare3FieldNumber = 61;
+ private double eSpare3_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double ESpare3 {
+ get { return eSpare3_; }
+ set {
+ eSpare3_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "ESpare4" field.</summary>
+ public const int ESpare4FieldNumber = 62;
+ private double eSpare4_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double ESpare4 {
+ get { return eSpare4_; }
+ set {
+ eSpare4_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "ESpare5" field.</summary>
+ public const int ESpare5FieldNumber = 63;
+ private double eSpare5_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double ESpare5 {
+ get { return eSpare5_; }
+ set {
+ eSpare5_ = value;
+ }
+ }
+
+ /// <summary>Field number for the "ETunnelTemp" field.</summary>
+ public const int ETunnelTempFieldNumber = 64;
+ private double eTunnelTemp_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public double ETunnelTemp {
+ get { return eTunnelTemp_; }
+ set {
+ eTunnelTemp_ = value;
+ }
+ }
+
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as ProcessParameters);
@@ -538,6 +915,36 @@ namespace Tango.PMR.Printing {
if (BtsrFeedingTension != other.BtsrFeedingTension) return false;
if (ExitTension != other.ExitTension) return false;
if (BtsrThreadLengthOffset != other.BtsrThreadLengthOffset) return false;
+ if (EWinder1Tension != other.EWinder1Tension) return false;
+ if (EWinder2Tension != other.EWinder2Tension) return false;
+ if (EWinder3Tension != other.EWinder3Tension) return false;
+ if (EWinder4Tension != other.EWinder4Tension) return false;
+ if (EBtsr1FeedingTension != other.EBtsr1FeedingTension) return false;
+ if (EBtsr2FeedingTension != other.EBtsr2FeedingTension) return false;
+ if (EBtsr3FeedingTension != other.EBtsr3FeedingTension) return false;
+ if (EBtsr4FeedingTension != other.EBtsr4FeedingTension) return false;
+ if (EMixerTemp != other.EMixerTemp) return false;
+ if (EHeadZone1Temp != other.EHeadZone1Temp) return false;
+ if (EHeadZone2Temp != other.EHeadZone2Temp) return false;
+ if (EHeadZone3Temp != other.EHeadZone3Temp) return false;
+ if (EDryerZone1Temp != other.EDryerZone1Temp) return false;
+ if (EDryerZone2Temp != other.EDryerZone2Temp) return false;
+ if (EDryerZone3Temp != other.EDryerZone3Temp) return false;
+ if (ELubricantTemp != other.ELubricantTemp) return false;
+ if (EDryerIncomingAirFlow != other.EDryerIncomingAirFlow) return false;
+ if (EDryerOutgoingAirFlow != other.EDryerOutgoingAirFlow) return false;
+ if (ETunnelIncomingAirFlow != other.ETunnelIncomingAirFlow) return false;
+ if (ETunnelOutgoingAirFlow != other.ETunnelOutgoingAirFlow) return false;
+ if (EWasteAirFlow != other.EWasteAirFlow) return false;
+ if (EWastePrepareTime != other.EWastePrepareTime) return false;
+ if (EPumpTemp != other.EPumpTemp) return false;
+ if (EPressureBuildUp != other.EPressureBuildUp) return false;
+ if (ESpare1 != other.ESpare1) return false;
+ if (ESpare2 != other.ESpare2) return false;
+ if (ESpare3 != other.ESpare3) return false;
+ if (ESpare4 != other.ESpare4) return false;
+ if (ESpare5 != other.ESpare5) return false;
+ if (ETunnelTemp != other.ETunnelTemp) return false;
return true;
}
@@ -578,6 +985,36 @@ namespace Tango.PMR.Printing {
if (BtsrFeedingTension != 0D) hash ^= BtsrFeedingTension.GetHashCode();
if (ExitTension != 0D) hash ^= ExitTension.GetHashCode();
if (BtsrThreadLengthOffset != 0D) hash ^= BtsrThreadLengthOffset.GetHashCode();
+ if (EWinder1Tension != 0D) hash ^= EWinder1Tension.GetHashCode();
+ if (EWinder2Tension != 0D) hash ^= EWinder2Tension.GetHashCode();
+ if (EWinder3Tension != 0D) hash ^= EWinder3Tension.GetHashCode();
+ if (EWinder4Tension != 0D) hash ^= EWinder4Tension.GetHashCode();
+ if (EBtsr1FeedingTension != 0D) hash ^= EBtsr1FeedingTension.GetHashCode();
+ if (EBtsr2FeedingTension != 0D) hash ^= EBtsr2FeedingTension.GetHashCode();
+ if (EBtsr3FeedingTension != 0D) hash ^= EBtsr3FeedingTension.GetHashCode();
+ if (EBtsr4FeedingTension != 0D) hash ^= EBtsr4FeedingTension.GetHashCode();
+ if (EMixerTemp != 0D) hash ^= EMixerTemp.GetHashCode();
+ if (EHeadZone1Temp != 0D) hash ^= EHeadZone1Temp.GetHashCode();
+ if (EHeadZone2Temp != 0D) hash ^= EHeadZone2Temp.GetHashCode();
+ if (EHeadZone3Temp != 0D) hash ^= EHeadZone3Temp.GetHashCode();
+ if (EDryerZone1Temp != 0D) hash ^= EDryerZone1Temp.GetHashCode();
+ if (EDryerZone2Temp != 0D) hash ^= EDryerZone2Temp.GetHashCode();
+ if (EDryerZone3Temp != 0D) hash ^= EDryerZone3Temp.GetHashCode();
+ if (ELubricantTemp != 0D) hash ^= ELubricantTemp.GetHashCode();
+ if (EDryerIncomingAirFlow != 0D) hash ^= EDryerIncomingAirFlow.GetHashCode();
+ if (EDryerOutgoingAirFlow != 0D) hash ^= EDryerOutgoingAirFlow.GetHashCode();
+ if (ETunnelIncomingAirFlow != 0D) hash ^= ETunnelIncomingAirFlow.GetHashCode();
+ if (ETunnelOutgoingAirFlow != 0D) hash ^= ETunnelOutgoingAirFlow.GetHashCode();
+ if (EWasteAirFlow != 0D) hash ^= EWasteAirFlow.GetHashCode();
+ if (EWastePrepareTime != 0D) hash ^= EWastePrepareTime.GetHashCode();
+ if (EPumpTemp != 0D) hash ^= EPumpTemp.GetHashCode();
+ if (EPressureBuildUp != 0D) hash ^= EPressureBuildUp.GetHashCode();
+ if (ESpare1 != 0D) hash ^= ESpare1.GetHashCode();
+ if (ESpare2 != 0D) hash ^= ESpare2.GetHashCode();
+ if (ESpare3 != 0D) hash ^= ESpare3.GetHashCode();
+ if (ESpare4 != 0D) hash ^= ESpare4.GetHashCode();
+ if (ESpare5 != 0D) hash ^= ESpare5.GetHashCode();
+ if (ETunnelTemp != 0D) hash ^= ETunnelTemp.GetHashCode();
return hash;
}
@@ -724,6 +1161,126 @@ namespace Tango.PMR.Printing {
output.WriteRawTag(145, 2);
output.WriteDouble(BtsrThreadLengthOffset);
}
+ if (EWinder1Tension != 0D) {
+ output.WriteRawTag(153, 2);
+ output.WriteDouble(EWinder1Tension);
+ }
+ if (EWinder2Tension != 0D) {
+ output.WriteRawTag(161, 2);
+ output.WriteDouble(EWinder2Tension);
+ }
+ if (EWinder3Tension != 0D) {
+ output.WriteRawTag(169, 2);
+ output.WriteDouble(EWinder3Tension);
+ }
+ if (EWinder4Tension != 0D) {
+ output.WriteRawTag(177, 2);
+ output.WriteDouble(EWinder4Tension);
+ }
+ if (EBtsr1FeedingTension != 0D) {
+ output.WriteRawTag(185, 2);
+ output.WriteDouble(EBtsr1FeedingTension);
+ }
+ if (EBtsr2FeedingTension != 0D) {
+ output.WriteRawTag(193, 2);
+ output.WriteDouble(EBtsr2FeedingTension);
+ }
+ if (EBtsr3FeedingTension != 0D) {
+ output.WriteRawTag(201, 2);
+ output.WriteDouble(EBtsr3FeedingTension);
+ }
+ if (EBtsr4FeedingTension != 0D) {
+ output.WriteRawTag(209, 2);
+ output.WriteDouble(EBtsr4FeedingTension);
+ }
+ if (EMixerTemp != 0D) {
+ output.WriteRawTag(217, 2);
+ output.WriteDouble(EMixerTemp);
+ }
+ if (EHeadZone1Temp != 0D) {
+ output.WriteRawTag(225, 2);
+ output.WriteDouble(EHeadZone1Temp);
+ }
+ if (EHeadZone2Temp != 0D) {
+ output.WriteRawTag(233, 2);
+ output.WriteDouble(EHeadZone2Temp);
+ }
+ if (EHeadZone3Temp != 0D) {
+ output.WriteRawTag(241, 2);
+ output.WriteDouble(EHeadZone3Temp);
+ }
+ if (EDryerZone1Temp != 0D) {
+ output.WriteRawTag(249, 2);
+ output.WriteDouble(EDryerZone1Temp);
+ }
+ if (EDryerZone2Temp != 0D) {
+ output.WriteRawTag(129, 3);
+ output.WriteDouble(EDryerZone2Temp);
+ }
+ if (EDryerZone3Temp != 0D) {
+ output.WriteRawTag(137, 3);
+ output.WriteDouble(EDryerZone3Temp);
+ }
+ if (ELubricantTemp != 0D) {
+ output.WriteRawTag(145, 3);
+ output.WriteDouble(ELubricantTemp);
+ }
+ if (EDryerIncomingAirFlow != 0D) {
+ output.WriteRawTag(153, 3);
+ output.WriteDouble(EDryerIncomingAirFlow);
+ }
+ if (EDryerOutgoingAirFlow != 0D) {
+ output.WriteRawTag(161, 3);
+ output.WriteDouble(EDryerOutgoingAirFlow);
+ }
+ if (ETunnelIncomingAirFlow != 0D) {
+ output.WriteRawTag(169, 3);
+ output.WriteDouble(ETunnelIncomingAirFlow);
+ }
+ if (ETunnelOutgoingAirFlow != 0D) {
+ output.WriteRawTag(177, 3);
+ output.WriteDouble(ETunnelOutgoingAirFlow);
+ }
+ if (EWasteAirFlow != 0D) {
+ output.WriteRawTag(185, 3);
+ output.WriteDouble(EWasteAirFlow);
+ }
+ if (EWastePrepareTime != 0D) {
+ output.WriteRawTag(193, 3);
+ output.WriteDouble(EWastePrepareTime);
+ }
+ if (EPumpTemp != 0D) {
+ output.WriteRawTag(201, 3);
+ output.WriteDouble(EPumpTemp);
+ }
+ if (EPressureBuildUp != 0D) {
+ output.WriteRawTag(209, 3);
+ output.WriteDouble(EPressureBuildUp);
+ }
+ if (ESpare1 != 0D) {
+ output.WriteRawTag(217, 3);
+ output.WriteDouble(ESpare1);
+ }
+ if (ESpare2 != 0D) {
+ output.WriteRawTag(225, 3);
+ output.WriteDouble(ESpare2);
+ }
+ if (ESpare3 != 0D) {
+ output.WriteRawTag(233, 3);
+ output.WriteDouble(ESpare3);
+ }
+ if (ESpare4 != 0D) {
+ output.WriteRawTag(241, 3);
+ output.WriteDouble(ESpare4);
+ }
+ if (ESpare5 != 0D) {
+ output.WriteRawTag(249, 3);
+ output.WriteDouble(ESpare5);
+ }
+ if (ETunnelTemp != 0D) {
+ output.WriteRawTag(129, 4);
+ output.WriteDouble(ETunnelTemp);
+ }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -831,6 +1388,96 @@ namespace Tango.PMR.Printing {
if (BtsrThreadLengthOffset != 0D) {
size += 2 + 8;
}
+ if (EWinder1Tension != 0D) {
+ size += 2 + 8;
+ }
+ if (EWinder2Tension != 0D) {
+ size += 2 + 8;
+ }
+ if (EWinder3Tension != 0D) {
+ size += 2 + 8;
+ }
+ if (EWinder4Tension != 0D) {
+ size += 2 + 8;
+ }
+ if (EBtsr1FeedingTension != 0D) {
+ size += 2 + 8;
+ }
+ if (EBtsr2FeedingTension != 0D) {
+ size += 2 + 8;
+ }
+ if (EBtsr3FeedingTension != 0D) {
+ size += 2 + 8;
+ }
+ if (EBtsr4FeedingTension != 0D) {
+ size += 2 + 8;
+ }
+ if (EMixerTemp != 0D) {
+ size += 2 + 8;
+ }
+ if (EHeadZone1Temp != 0D) {
+ size += 2 + 8;
+ }
+ if (EHeadZone2Temp != 0D) {
+ size += 2 + 8;
+ }
+ if (EHeadZone3Temp != 0D) {
+ size += 2 + 8;
+ }
+ if (EDryerZone1Temp != 0D) {
+ size += 2 + 8;
+ }
+ if (EDryerZone2Temp != 0D) {
+ size += 2 + 8;
+ }
+ if (EDryerZone3Temp != 0D) {
+ size += 2 + 8;
+ }
+ if (ELubricantTemp != 0D) {
+ size += 2 + 8;
+ }
+ if (EDryerIncomingAirFlow != 0D) {
+ size += 2 + 8;
+ }
+ if (EDryerOutgoingAirFlow != 0D) {
+ size += 2 + 8;
+ }
+ if (ETunnelIncomingAirFlow != 0D) {
+ size += 2 + 8;
+ }
+ if (ETunnelOutgoingAirFlow != 0D) {
+ size += 2 + 8;
+ }
+ if (EWasteAirFlow != 0D) {
+ size += 2 + 8;
+ }
+ if (EWastePrepareTime != 0D) {
+ size += 2 + 8;
+ }
+ if (EPumpTemp != 0D) {
+ size += 2 + 8;
+ }
+ if (EPressureBuildUp != 0D) {
+ size += 2 + 8;
+ }
+ if (ESpare1 != 0D) {
+ size += 2 + 8;
+ }
+ if (ESpare2 != 0D) {
+ size += 2 + 8;
+ }
+ if (ESpare3 != 0D) {
+ size += 2 + 8;
+ }
+ if (ESpare4 != 0D) {
+ size += 2 + 8;
+ }
+ if (ESpare5 != 0D) {
+ size += 2 + 8;
+ }
+ if (ETunnelTemp != 0D) {
+ size += 2 + 8;
+ }
return size;
}
@@ -941,6 +1588,96 @@ namespace Tango.PMR.Printing {
if (other.BtsrThreadLengthOffset != 0D) {
BtsrThreadLengthOffset = other.BtsrThreadLengthOffset;
}
+ if (other.EWinder1Tension != 0D) {
+ EWinder1Tension = other.EWinder1Tension;
+ }
+ if (other.EWinder2Tension != 0D) {
+ EWinder2Tension = other.EWinder2Tension;
+ }
+ if (other.EWinder3Tension != 0D) {
+ EWinder3Tension = other.EWinder3Tension;
+ }
+ if (other.EWinder4Tension != 0D) {
+ EWinder4Tension = other.EWinder4Tension;
+ }
+ if (other.EBtsr1FeedingTension != 0D) {
+ EBtsr1FeedingTension = other.EBtsr1FeedingTension;
+ }
+ if (other.EBtsr2FeedingTension != 0D) {
+ EBtsr2FeedingTension = other.EBtsr2FeedingTension;
+ }
+ if (other.EBtsr3FeedingTension != 0D) {
+ EBtsr3FeedingTension = other.EBtsr3FeedingTension;
+ }
+ if (other.EBtsr4FeedingTension != 0D) {
+ EBtsr4FeedingTension = other.EBtsr4FeedingTension;
+ }
+ if (other.EMixerTemp != 0D) {
+ EMixerTemp = other.EMixerTemp;
+ }
+ if (other.EHeadZone1Temp != 0D) {
+ EHeadZone1Temp = other.EHeadZone1Temp;
+ }
+ if (other.EHeadZone2Temp != 0D) {
+ EHeadZone2Temp = other.EHeadZone2Temp;
+ }
+ if (other.EHeadZone3Temp != 0D) {
+ EHeadZone3Temp = other.EHeadZone3Temp;
+ }
+ if (other.EDryerZone1Temp != 0D) {
+ EDryerZone1Temp = other.EDryerZone1Temp;
+ }
+ if (other.EDryerZone2Temp != 0D) {
+ EDryerZone2Temp = other.EDryerZone2Temp;
+ }
+ if (other.EDryerZone3Temp != 0D) {
+ EDryerZone3Temp = other.EDryerZone3Temp;
+ }
+ if (other.ELubricantTemp != 0D) {
+ ELubricantTemp = other.ELubricantTemp;
+ }
+ if (other.EDryerIncomingAirFlow != 0D) {
+ EDryerIncomingAirFlow = other.EDryerIncomingAirFlow;
+ }
+ if (other.EDryerOutgoingAirFlow != 0D) {
+ EDryerOutgoingAirFlow = other.EDryerOutgoingAirFlow;
+ }
+ if (other.ETunnelIncomingAirFlow != 0D) {
+ ETunnelIncomingAirFlow = other.ETunnelIncomingAirFlow;
+ }
+ if (other.ETunnelOutgoingAirFlow != 0D) {
+ ETunnelOutgoingAirFlow = other.ETunnelOutgoingAirFlow;
+ }
+ if (other.EWasteAirFlow != 0D) {
+ EWasteAirFlow = other.EWasteAirFlow;
+ }
+ if (other.EWastePrepareTime != 0D) {
+ EWastePrepareTime = other.EWastePrepareTime;
+ }
+ if (other.EPumpTemp != 0D) {
+ EPumpTemp = other.EPumpTemp;
+ }
+ if (other.EPressureBuildUp != 0D) {
+ EPressureBuildUp = other.EPressureBuildUp;
+ }
+ if (other.ESpare1 != 0D) {
+ ESpare1 = other.ESpare1;
+ }
+ if (other.ESpare2 != 0D) {
+ ESpare2 = other.ESpare2;
+ }
+ if (other.ESpare3 != 0D) {
+ ESpare3 = other.ESpare3;
+ }
+ if (other.ESpare4 != 0D) {
+ ESpare4 = other.ESpare4;
+ }
+ if (other.ESpare5 != 0D) {
+ ESpare5 = other.ESpare5;
+ }
+ if (other.ETunnelTemp != 0D) {
+ ETunnelTemp = other.ETunnelTemp;
+ }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -1087,6 +1824,126 @@ namespace Tango.PMR.Printing {
BtsrThreadLengthOffset = input.ReadDouble();
break;
}
+ case 281: {
+ EWinder1Tension = input.ReadDouble();
+ break;
+ }
+ case 289: {
+ EWinder2Tension = input.ReadDouble();
+ break;
+ }
+ case 297: {
+ EWinder3Tension = input.ReadDouble();
+ break;
+ }
+ case 305: {
+ EWinder4Tension = input.ReadDouble();
+ break;
+ }
+ case 313: {
+ EBtsr1FeedingTension = input.ReadDouble();
+ break;
+ }
+ case 321: {
+ EBtsr2FeedingTension = input.ReadDouble();
+ break;
+ }
+ case 329: {
+ EBtsr3FeedingTension = input.ReadDouble();
+ break;
+ }
+ case 337: {
+ EBtsr4FeedingTension = input.ReadDouble();
+ break;
+ }
+ case 345: {
+ EMixerTemp = input.ReadDouble();
+ break;
+ }
+ case 353: {
+ EHeadZone1Temp = input.ReadDouble();
+ break;
+ }
+ case 361: {
+ EHeadZone2Temp = input.ReadDouble();
+ break;
+ }
+ case 369: {
+ EHeadZone3Temp = input.ReadDouble();
+ break;
+ }
+ case 377: {
+ EDryerZone1Temp = input.ReadDouble();
+ break;
+ }
+ case 385: {
+ EDryerZone2Temp = input.ReadDouble();
+ break;
+ }
+ case 393: {
+ EDryerZone3Temp = input.ReadDouble();
+ break;
+ }
+ case 401: {
+ ELubricantTemp = input.ReadDouble();
+ break;
+ }
+ case 409: {
+ EDryerIncomingAirFlow = input.ReadDouble();
+ break;
+ }
+ case 417: {
+ EDryerOutgoingAirFlow = input.ReadDouble();
+ break;
+ }
+ case 425: {
+ ETunnelIncomingAirFlow = input.ReadDouble();
+ break;
+ }
+ case 433: {
+ ETunnelOutgoingAirFlow = input.ReadDouble();
+ break;
+ }
+ case 441: {
+ EWasteAirFlow = input.ReadDouble();
+ break;
+ }
+ case 449: {
+ EWastePrepareTime = input.ReadDouble();
+ break;
+ }
+ case 457: {
+ EPumpTemp = input.ReadDouble();
+ break;
+ }
+ case 465: {
+ EPressureBuildUp = input.ReadDouble();
+ break;
+ }
+ case 473: {
+ ESpare1 = input.ReadDouble();
+ break;
+ }
+ case 481: {
+ ESpare2 = input.ReadDouble();
+ break;
+ }
+ case 489: {
+ ESpare3 = input.ReadDouble();
+ break;
+ }
+ case 497: {
+ ESpare4 = input.ReadDouble();
+ break;
+ }
+ case 505: {
+ ESpare5 = input.ReadDouble();
+ break;
+ }
+ case 513: {
+ ETunnelTemp = input.ReadDouble();
+ break;
+ }
}
}
}
diff --git a/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj b/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj
index 50c0966c3..d7ef29237 100644
--- a/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj
+++ b/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj
@@ -79,6 +79,7 @@
<Compile Include="ColorLab\RecommendedProcessTableInput.cs" />
<Compile Include="ColorLab\RecommendedProcessTableOutput.cs" />
<Compile Include="Common\ErrorResponse.cs" />
+ <Compile Include="Common\MachineType.cs" />
<Compile Include="Connection\ConnectRequest.cs" />
<Compile Include="Connection\ConnectResponse.cs" />
<Compile Include="Connection\DeviceInformation.cs" />
@@ -144,6 +145,8 @@
<Compile Include="Diagnostics\MotorHomingResponse.cs" />
<Compile Include="Diagnostics\MotorJoggingRequest.cs" />
<Compile Include="Diagnostics\MotorJoggingResponse.cs" />
+ <Compile Include="Diagnostics\ResetCardRequest.cs" />
+ <Compile Include="Diagnostics\ResetCardResponse.cs" />
<Compile Include="Diagnostics\ResolveEventRequest.cs" />
<Compile Include="Diagnostics\ResolveEventResponse.cs" />
<Compile Include="Diagnostics\SetBlowerStateRequest.cs" />
@@ -211,6 +214,8 @@
<Compile Include="ExtensionMethods\VersionPackageDescriptorExtensions.cs" />
<Compile Include="FirmwareUpgrade\ActivateVersionRequest.cs" />
<Compile Include="FirmwareUpgrade\ActivateVersionResponse.cs" />
+ <Compile Include="FirmwareUpgrade\GetVersionDescriptorsRequest.cs" />
+ <Compile Include="FirmwareUpgrade\GetVersionDescriptorsResponse.cs" />
<Compile Include="FirmwareUpgrade\ValidateVersionRequest.cs" />
<Compile Include="FirmwareUpgrade\ValidateVersionResponse.cs" />
<Compile Include="FirmwareUpgrade\VersionFileDescriptor.cs" />
diff --git a/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/OverrideData.xml b/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/OverrideData.xml
index 763d6b078..c1cc02432 100644
--- a/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/OverrideData.xml
+++ b/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/OverrideData.xml
Binary files differ
diff --git a/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/ProvisionMachine.xml b/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/ProvisionMachine.xml
index 4ff9dcbd2..f260ea416 100644
--- a/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/ProvisionMachine.xml
+++ b/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/ProvisionMachine.xml
Binary files differ
diff --git a/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/UpdateMachine.xml b/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/UpdateMachine.xml
index b2fe8b33f..fae15d85e 100644
--- a/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/UpdateMachine.xml
+++ b/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/UpdateMachine.xml
Binary files differ
diff --git a/Software/Visual_Studio/Tango.SharedUI/Converters/IsNullToVisibilityInverseConverter.cs b/Software/Visual_Studio/Tango.SharedUI/Converters/IsNullToVisibilityInverseConverter.cs
new file mode 100644
index 000000000..ef284b12c
--- /dev/null
+++ b/Software/Visual_Studio/Tango.SharedUI/Converters/IsNullToVisibilityInverseConverter.cs
@@ -0,0 +1,24 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Data;
+
+namespace Tango.SharedUI.Converters
+{
+ public class IsNullToVisibilityInverseConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ return value == null ? Visibility.Visible : Visibility.Collapsed;
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/Tango.SharedUI/Converters/NullObjectToBooleanInverseConverter.cs b/Software/Visual_Studio/Tango.SharedUI/Converters/NullObjectToBooleanInverseConverter.cs
new file mode 100644
index 000000000..73e41beea
--- /dev/null
+++ b/Software/Visual_Studio/Tango.SharedUI/Converters/NullObjectToBooleanInverseConverter.cs
@@ -0,0 +1,45 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Data;
+
+namespace Tango.SharedUI.Converters
+{
+ /// <summary>
+ /// Represents a binding converter for returning true for valid object instances and false for null object reference.
+ /// </summary>
+ public class NullObjectToBooleanInverseConverter : IValueConverter
+ {
+ /// <summary>
+ /// Converts a value.
+ /// </summary>
+ /// <param name="value">The value produced by the binding source.</param>
+ /// <param name="targetType">The type of the binding target property.</param>
+ /// <param name="parameter">The converter parameter to use.</param>
+ /// <param name="culture">The culture to use in the converter.</param>
+ /// <returns>
+ /// A converted value. If the method returns null, the valid null value is used.
+ /// </returns>
+ public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
+ {
+ return (value == null);
+ }
+
+ /// <summary>
+ /// Converts a value.
+ /// </summary>
+ /// <param name="value">The value that is produced by the binding target.</param>
+ /// <param name="targetType">The type to convert to.</param>
+ /// <param name="parameter">The converter parameter to use.</param>
+ /// <param name="culture">The culture to use in the converter.</param>
+ /// <returns>
+ /// A converted value. If the method returns null, the valid null value is used.
+ /// </returns>
+ public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
+ {
+ return value;
+ }
+ }
+}
diff --git a/Software/Visual_Studio/Tango.SharedUI/Converters/WidthHeightToRectConverter.cs b/Software/Visual_Studio/Tango.SharedUI/Converters/WidthHeightToRectConverter.cs
index 25d7c7579..c7215ad99 100644
--- a/Software/Visual_Studio/Tango.SharedUI/Converters/WidthHeightToRectConverter.cs
+++ b/Software/Visual_Studio/Tango.SharedUI/Converters/WidthHeightToRectConverter.cs
@@ -13,9 +13,16 @@ namespace Tango.SharedUI.Converters
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
- double width = (double)values[0];
- double height = (double)values[1];
- return new Rect(new Size(width, height));
+ try
+ {
+ double width = (double)values[0];
+ double height = (double)values[1];
+ return new Rect(new Size(width, height));
+ }
+ catch( Exception ex)
+ {
+ return null;
+ }
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
diff --git a/Software/Visual_Studio/Tango.SharedUI/Tango.SharedUI.csproj b/Software/Visual_Studio/Tango.SharedUI/Tango.SharedUI.csproj
index c2071d296..c7eccab9f 100644
--- a/Software/Visual_Studio/Tango.SharedUI/Tango.SharedUI.csproj
+++ b/Software/Visual_Studio/Tango.SharedUI/Tango.SharedUI.csproj
@@ -119,12 +119,14 @@
<Compile Include="Converters\IsEqualConverter.cs" />
<Compile Include="Converters\IsEqualToVisibilityConverter.cs" />
<Compile Include="Converters\IsNotConverter.cs" />
+ <Compile Include="Converters\IsNullToVisibilityInverseConverter.cs" />
<Compile Include="Converters\IsNullToVisibilityConverter.cs" />
<Compile Include="Converters\IsSegmentGradientConverter.cs" />
<Compile Include="Converters\IsSegmentGradientToVisibilityConverter.cs" />
<Compile Include="Converters\IsToStringEqualToVisibilityConverter.cs" />
<Compile Include="Converters\LastItemInContainerToBooleanConverter.cs" />
<Compile Include="Converters\MathOperatorConverter.cs" />
+ <Compile Include="Converters\NullObjectToBooleanInverseConverter.cs" />
<Compile Include="Converters\NumberToFileSizeConverter.cs" />
<Compile Include="Converters\ObjectToObjectTypeConverter.cs" />
<Compile Include="Converters\ObservableCollectionToViewSourceConverter.cs" />
@@ -262,7 +264,7 @@
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<ProjectExtensions>
<VisualStudio>
- <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" />
+ <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" />
</VisualStudio>
</ProjectExtensions>
</Project> \ No newline at end of file
diff --git a/Software/Visual_Studio/Tango.TFS/MachineType.cs b/Software/Visual_Studio/Tango.TFS/MachineType.cs
new file mode 100644
index 000000000..044155b2b
--- /dev/null
+++ b/Software/Visual_Studio/Tango.TFS/MachineType.cs
@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Tango.TFS
+{
+ public enum MachineType
+ {
+ [Description("TS 1800")]
+ TS1800 = 0,
+ [Description("Twine X4")]
+ TwineX4 = 1,
+ }
+}
diff --git a/Software/Visual_Studio/Tango.TFS/Tango.TFS.csproj b/Software/Visual_Studio/Tango.TFS/Tango.TFS.csproj
index 3e3e6f6fd..271491a7e 100644
--- a/Software/Visual_Studio/Tango.TFS/Tango.TFS.csproj
+++ b/Software/Visual_Studio/Tango.TFS/Tango.TFS.csproj
@@ -207,6 +207,7 @@
<Compile Include="Email.cs" />
<Compile Include="ITeamFoundationEmailClient.cs" />
<Compile Include="Iteration.cs" />
+ <Compile Include="MachineType.cs" />
<Compile Include="Priority.cs" />
<Compile Include="Project.cs" />
<Compile Include="ResolvedReason.cs" />
@@ -266,7 +267,7 @@
</Target>
<ProjectExtensions>
<VisualStudio>
- <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" />
+ <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" />
</VisualStudio>
</ProjectExtensions>
</Project> \ No newline at end of file
diff --git a/Software/Visual_Studio/Tango.TFS/TeamFoundationServiceClient.cs b/Software/Visual_Studio/Tango.TFS/TeamFoundationServiceClient.cs
index 750c5fa58..379dcac2e 100644
--- a/Software/Visual_Studio/Tango.TFS/TeamFoundationServiceClient.cs
+++ b/Software/Visual_Studio/Tango.TFS/TeamFoundationServiceClient.cs
@@ -40,6 +40,7 @@ namespace Tango.TFS
public const String MACHINE_SN = "Custom.MachineSN";
public const String ENVIRONMENT = "Custom.Environment";
public const String LOGGED_IN_USER = "Custom.LoggedInUser";
+ public const String MACHINE_TYPE = "Custom.MachineType";
}
#endregion
@@ -428,6 +429,13 @@ namespace Tango.TFS
});
}
+ patchDocument.Add(new JsonPatchOperation
+ {
+ Operation = Operation.Add,
+ Path = GetExtensionFieldNameForWrite(ExtensionFields.MACHINE_TYPE),
+ Value = workItem.MachineType.ToDescription(),
+ });
+
var resultWorkItem = witClient.CreateWorkItemAsync(patchDocument, project.Name, workItem.Type.ToString(), bypassRules: true).Result;
workItem.ID = resultWorkItem.Id.Value;
@@ -944,6 +952,11 @@ namespace Tango.TFS
workItem.Environment = TryGetField(item.Fields, ExtensionFields.ENVIRONMENT).ToString();
}
+ if (item.Fields.ContainsKey(ExtensionFields.MACHINE_TYPE))
+ {
+ workItem.MachineType = ParseEnumByDescription<MachineType>(item.Fields[ExtensionFields.MACHINE_TYPE].ToString());
+ }
+
workItem.Comment = TryGetField(item.Fields, GetFieldNameForRead(CoreField.History)).ToString();
return workItem;
diff --git a/Software/Visual_Studio/Tango.TFS/WorkItem.cs b/Software/Visual_Studio/Tango.TFS/WorkItem.cs
index 35c2f8669..552a64161 100644
--- a/Software/Visual_Studio/Tango.TFS/WorkItem.cs
+++ b/Software/Visual_Studio/Tango.TFS/WorkItem.cs
@@ -80,6 +80,13 @@ namespace Tango.TFS
set { _priority = value; RaisePropertyChangedAuto(); }
}
+ private MachineType _machineType;
+ public MachineType MachineType
+ {
+ get { return _machineType; }
+ set { _machineType = value; RaisePropertyChangedAuto(); }
+ }
+
private String _stepsToReproduce;
public String StepsToReproduce
{
diff --git a/Software/Visual_Studio/Tango.Touch/Controls/LightTouchScrollViewer.cs b/Software/Visual_Studio/Tango.Touch/Controls/LightTouchScrollViewer.cs
index a20f52d7b..dff66d821 100644
--- a/Software/Visual_Studio/Tango.Touch/Controls/LightTouchScrollViewer.cs
+++ b/Software/Visual_Studio/Tango.Touch/Controls/LightTouchScrollViewer.cs
@@ -39,6 +39,7 @@ namespace Tango.Touch.Controls
private const double _friction_factor_per_second = 0.9;
private DispatcherTimer _move_timer;
private double _last_scroll_position;
+ private const double SCROLL_DELTA = 30;
#region Events
@@ -688,11 +689,11 @@ namespace Tango.Touch.Controls
var scrollPos = GetScrollPosition();
if (e.Delta > 0)
{
- scrollPos -= 15;
+ scrollPos -= SCROLL_DELTA;
}
else if(e.Delta < 0)
{
- scrollPos += 15;
+ scrollPos += SCROLL_DELTA;
}
ScrollToPosition(scrollPos);
SetThumbPosition();
diff --git a/Software/Visual_Studio/Tango.Touch/Controls/SliderContentControl.cs b/Software/Visual_Studio/Tango.Touch/Controls/SliderContentControl.cs
new file mode 100644
index 000000000..a6b05f472
--- /dev/null
+++ b/Software/Visual_Studio/Tango.Touch/Controls/SliderContentControl.cs
@@ -0,0 +1,122 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Markup;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace Tango.Touch.Controls
+{
+ [ContentProperty(nameof(Content))]
+ public class SliderContentControl : Slider
+ {
+ private bool m_isBlocked;
+
+ #region DependencyProperties
+
+ public UIElement Content
+ {
+ get { return (UIElement)GetValue(ContentProperty); }
+ set { SetValue(ContentProperty, value); }
+ }
+ public static readonly DependencyProperty ContentProperty =
+ DependencyProperty.Register("Content", typeof(UIElement), typeof(SliderContentControl), new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.AffectsRender, (d, e) => (d as SliderContentControl).OnContentChanged()));
+
+ public static readonly DependencyProperty ThumbHeightProperty =
+ DependencyProperty.Register("ThumbHeight", typeof(double), typeof(SliderContentControl), new FrameworkPropertyMetadata((double)32, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault));
+
+ public double ThumbHeight
+ {
+ get { return (double)GetValue(ThumbHeightProperty); }
+ set { SetValue(ThumbHeightProperty, value); }
+ }
+
+ public Color ThumbColor
+ {
+ get { return (Color)GetValue(ThumbColorProperty); }
+ set { SetValue(ThumbColorProperty, value); }
+ }
+
+
+
+ /// <summary>
+ /// The thumb color property
+ /// </summary>
+ public static readonly DependencyProperty ThumbColorProperty =
+ DependencyProperty.Register("ThumbColor", typeof(Color), typeof(SliderContentControl), new UIPropertyMetadata(Colors.LightGray, null));
+
+
+
+ #endregion
+
+ static SliderContentControl()
+ {
+ DefaultStyleKeyProperty.OverrideMetadata(typeof(SliderContentControl), new FrameworkPropertyMetadata(typeof(SliderContentControl)));
+ }
+
+ public override void OnApplyTemplate()
+ {
+ base.OnApplyTemplate();
+
+ TouchDown -= TouchDownSlider;
+ TouchDown += TouchDownSlider;
+ OnValueChanged(Double.NaN, Value);
+ IsMoveToPointEnabled = true;
+ }
+
+ private void TouchDownSlider(object sender, TouchEventArgs e)
+ {
+ e.Handled = true;
+ }
+
+ private double ValidateValue(double value)
+ {
+ if (value >= Minimum && value <= Maximum)
+ return value;
+ if ((value) > Maximum)
+ return Maximum;
+ if ((value) < Minimum)
+ return Minimum;
+ return double.NaN;
+ }
+
+ private void OnContentChanged()
+ {
+ RemoveLogicalChild(Content);
+ AddLogicalChild(Content);
+ }
+
+ protected override void OnValueChanged(double oldValue, double newValue)
+ {
+ if (m_isBlocked) return;
+
+ m_isBlocked = true;
+
+ var validatedValue = ValidateValue(newValue);
+
+ if (!double.IsNaN(validatedValue))
+ {
+ Value = validatedValue;
+
+ }
+
+ m_isBlocked = false;
+
+
+ }
+
+ protected override void OnPreviewMouseLeftButtonDown(MouseButtonEventArgs e)
+ {
+ e.Handled = true;
+ }
+ }
+}
diff --git a/Software/Visual_Studio/Tango.Touch/Controls/SliderContentControl.xaml b/Software/Visual_Studio/Tango.Touch/Controls/SliderContentControl.xaml
new file mode 100644
index 000000000..9e2b85c60
--- /dev/null
+++ b/Software/Visual_Studio/Tango.Touch/Controls/SliderContentControl.xaml
@@ -0,0 +1,92 @@
+<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:local="clr-namespace:Tango.Touch.Controls"
+ >
+
+ <ResourceDictionary.MergedDictionaries>
+ <ResourceDictionary Source="../Resources/Colors.xaml" />
+ </ResourceDictionary.MergedDictionaries>
+
+ <Style x:Key="RepeatButtonTransparent" TargetType="{x:Type RepeatButton}">
+ <Setter Property="OverridesDefaultStyle" Value="true"/>
+ <Setter Property="Background" Value="Transparent"/>
+ <Setter Property="Focusable" Value="false"/>
+ <Setter Property="IsTabStop" Value="false"/>
+ <Setter Property="Template">
+ <Setter.Value>
+ <ControlTemplate TargetType="{x:Type RepeatButton}">
+ <Rectangle Fill="{TemplateBinding Background}" Height="{TemplateBinding Height}" Width="{TemplateBinding Width}"/>
+ </ControlTemplate>
+ </Setter.Value>
+ </Setter>
+ </Style>
+
+ <Style x:Key="ThumbSlider" Style.TargetType="{x:Type Thumb}" >
+ <Setter Setter.Property="SnapsToDevicePixels" Setter.Value="True" />
+ <Setter Setter.Property="OverridesDefaultStyle" Setter.Value="True" />
+ <Setter Setter.Property="Template">
+ <Setter.Value>
+ <ControlTemplate TargetType="{x:Type Thumb}">
+ <Grid x:Name="grip" HorizontalAlignment="Center" UseLayoutRounding="True" VerticalAlignment="Center">
+ <Ellipse HorizontalAlignment="Center" VerticalAlignment="Center"
+ Height="{Binding ActualWidth, RelativeSource={RelativeSource Self}}"
+ Width="{Binding ThumbHeight, RelativeSource={RelativeSource AncestorType=local:SliderContentControl}}" >
+ <Ellipse.Fill>
+ <SolidColorBrush Color="{Binding ThumbColor, RelativeSource={RelativeSource AncestorType=local:SliderContentControl}}"/>
+ </Ellipse.Fill>
+ </Ellipse>
+
+ <!--<Ellipse x:Name="knob" Grid.Column="0" Grid.Row="1" Stroke="{StaticResource TangoGrayBrush}" StrokeThickness="0" Fill="{StaticResource TangoPrimaryAccentBrush}" Opacity="0.5"></Ellipse>-->
+ <Grid.Effect>
+ <DropShadowEffect BlurRadius="10" RenderingBias="Quality" ShadowDepth="1" Color="{StaticResource TangoDropShadowColor}"/>
+ </Grid.Effect>
+ </Grid>
+ </ControlTemplate>
+ </Setter.Value>
+ </Setter>
+ </Style>
+
+ <Style TargetType="{x:Type local:SliderContentControl}">
+ <Setter Property="Background" Value="{StaticResource TangoNotificationBarMaskBrush}"/>
+
+ <Setter Property="Template">
+ <Setter.Value>
+ <ControlTemplate TargetType="{x:Type local:SliderContentControl}">
+ <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" SnapsToDevicePixels="True" CornerRadius="6">
+ <Grid>
+ <!--<ContentPresenter Content="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Content}" />-->
+ <Grid>
+ <Grid.RowDefinitions>
+ <RowDefinition Height="1*" />
+ <RowDefinition Height="Auto" />
+ <RowDefinition Height="1*" />
+ </Grid.RowDefinitions>
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="*"/>
+ </Grid.ColumnDefinitions>
+ <Border x:Name="PART_ColorPickerDisplay" Grid.Row="1" Background="Transparent" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="0"
+ MinHeight="14" Margin="5 0 0 0" VerticalAlignment="center" CornerRadius="6" >
+ <ContentPresenter Panel.ZIndex="1" Content="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Content}" />
+ </Border>
+
+ <Track Track.Name="PART_Track" Grid.Row="0" Margin="0 -2 0 0" VerticalAlignment="Center" Grid.RowSpan="3">
+ <!--<Track.DecreaseRepeatButton>
+ <RepeatButton Style="{StaticResource RepeatButtonTransparent}" />
+ </Track.DecreaseRepeatButton>
+ <Track.IncreaseRepeatButton>
+ <RepeatButton Style="{StaticResource RepeatButtonTransparent}" />
+ </Track.IncreaseRepeatButton>-->
+ <Track.Thumb>
+ <Thumb Thumb.Name="PART_Thumb" UIElement.Focusable="False" Height="Auto" Style="{StaticResource ThumbSlider}" VerticalAlignment="Top" Width="Auto" VerticalContentAlignment="Top"/>
+ </Track.Thumb>
+ </Track>
+ </Grid>
+ </Grid>
+ </Border>
+ </ControlTemplate>
+ </Setter.Value>
+ </Setter>
+ </Style>
+
+
+</ResourceDictionary> \ No newline at end of file
diff --git a/Software/Visual_Studio/Tango.Touch/Controls/TouchArcProgress.cs b/Software/Visual_Studio/Tango.Touch/Controls/TouchArcProgress.cs
new file mode 100644
index 000000000..510fd500d
--- /dev/null
+++ b/Software/Visual_Studio/Tango.Touch/Controls/TouchArcProgress.cs
@@ -0,0 +1,102 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+
+namespace Tango.Touch.Controls
+{
+ public class TouchArcProgress : ProgressBar
+ {
+ private SharedUI.Shapes.Arc _arc;
+ private SharedUI.Shapes.Arc _arc_base;
+
+ public double RingThickness
+ {
+ get { return (double)GetValue(RingThicknessProperty); }
+ set { SetValue(RingThicknessProperty, value); }
+ }
+ public static readonly DependencyProperty RingThicknessProperty =
+ DependencyProperty.Register("RingThickness", typeof(double), typeof(TouchArcProgress), new PropertyMetadata(3.0));
+
+
+
+ public int MinArcAngle
+ {
+ get { return (int)GetValue(MinArcAngleProperty); }
+ set { SetValue(MinArcAngleProperty, value); }
+ }
+
+ // Using a DependencyProperty as the backing store for MinArcAngle. This enables animation, styling, binding, etc...
+ public static readonly DependencyProperty MinArcAngleProperty =
+ DependencyProperty.Register("MinArcAngle", typeof(int), typeof(TouchArcProgress), new PropertyMetadata(40));
+
+
+
+ public int MaxArcAngle
+ {
+ get { return (int)GetValue(MaxArcAngleProperty); }
+ set { SetValue(MaxArcAngleProperty, value); }
+ }
+
+ // Using a DependencyProperty as the backing store for MaxArcAngle. This enables animation, styling, binding, etc...
+ public static readonly DependencyProperty MaxArcAngleProperty =
+ DependencyProperty.Register("MaxArcAngle", typeof(int), typeof(TouchArcProgress), new PropertyMetadata(320));
+
+
+
+ static TouchArcProgress()
+ {
+ DefaultStyleKeyProperty.OverrideMetadata(typeof(TouchArcProgress), new FrameworkPropertyMetadata(typeof(TouchArcProgress)));
+ }
+
+ public override void OnApplyTemplate()
+ {
+ base.OnApplyTemplate();
+ _arc = GetTemplateChild("PART_ArcValue") as SharedUI.Shapes.Arc;
+ _arc_base = GetTemplateChild("PART_ArcBase") as SharedUI.Shapes.Arc;
+ SetArcBase();
+ SetArc();
+ }
+
+ protected override void OnValueChanged(double oldValue, double newValue)
+ {
+ base.OnValueChanged(oldValue, newValue);
+ SetArc();
+ }
+
+ protected override void OnMinimumChanged(double oldMinimum, double newMinimum)
+ {
+ base.OnMinimumChanged(oldMinimum, newMinimum);
+ SetArcBase();
+ SetArc();
+ }
+
+ protected override void OnMaximumChanged(double oldMaximum, double newMaximum)
+ {
+ base.OnMaximumChanged(oldMaximum, newMaximum);
+ SetArcBase();
+ SetArc();
+ }
+
+ private void SetArcBase()
+ {
+ if (_arc_base != null)
+ {
+ _arc_base.StartAngle = ((MaxArcAngle - MinArcAngle) * (Minimum / (Maximum - Minimum))) + MinArcAngle;
+ _arc_base.EndAngle = ((MaxArcAngle - MinArcAngle) * (Maximum / (Maximum - Minimum))) + MinArcAngle;
+ }
+ }
+
+ private void SetArc()
+ {
+ if (_arc != null)
+ {
+ _arc.StartAngle = ((MaxArcAngle - MinArcAngle) * (Minimum / (Maximum - Minimum))) + MinArcAngle;
+ _arc.EndAngle = ((MaxArcAngle - MinArcAngle) * (Value / (Maximum - Minimum))) + MinArcAngle;
+ }
+ }
+ }
+}
diff --git a/Software/Visual_Studio/Tango.Touch/Controls/TouchArcProgress.xaml b/Software/Visual_Studio/Tango.Touch/Controls/TouchArcProgress.xaml
new file mode 100644
index 000000000..518b3632c
--- /dev/null
+++ b/Software/Visual_Studio/Tango.Touch/Controls/TouchArcProgress.xaml
@@ -0,0 +1,24 @@
+<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:shapes="clr-namespace:Tango.SharedUI.Shapes;assembly=Tango.SharedUI"
+ xmlns:local="clr-namespace:Tango.Touch.Controls">
+ <ResourceDictionary.MergedDictionaries>
+ <ResourceDictionary Source="../Resources/Colors.xaml" />
+ </ResourceDictionary.MergedDictionaries>
+
+ <Style TargetType="{x:Type local:TouchArcProgress}">
+ <Setter Property="Background" Value="{StaticResource TangoDividerBrush}"></Setter>
+ <Setter Property="Foreground" Value="{StaticResource TangoPrimaryAccentBrush}"></Setter>
+ <Setter Property="Template">
+ <Setter.Value>
+ <ControlTemplate TargetType="{x:Type local:TouchArcProgress}">
+ <Grid>
+ <shapes:Arc x:Name="PART_ArcBase" Stroke="{TemplateBinding Background}" StrokeThickness="{TemplateBinding RingThickness}" OriginRotationDegrees="90" Direction="Clockwise"/>
+ <shapes:Arc x:Name="PART_ArcValue" Stroke="{TemplateBinding Foreground}" StrokeThickness="{TemplateBinding RingThickness}" OriginRotationDegrees="90" Direction="Clockwise"/>
+ </Grid>
+ </ControlTemplate>
+ </Setter.Value>
+ </Setter>
+ </Style>
+
+</ResourceDictionary> \ No newline at end of file
diff --git a/Software/Visual_Studio/Tango.Touch/Controls/TouchExpander.cs b/Software/Visual_Studio/Tango.Touch/Controls/TouchExpander.cs
index b85be6c49..80974bd4a 100644
--- a/Software/Visual_Studio/Tango.Touch/Controls/TouchExpander.cs
+++ b/Software/Visual_Studio/Tango.Touch/Controls/TouchExpander.cs
@@ -39,7 +39,12 @@ namespace Tango.Touch.Controls
set { SetValue(IsExpandedProperty, value); }
}
public static readonly DependencyProperty IsExpandedProperty =
- DependencyProperty.Register("IsExpanded", typeof(bool), typeof(TouchExpander), new PropertyMetadata(false));
+ DependencyProperty.Register("IsExpanded", typeof(bool), typeof(TouchExpander), new FrameworkPropertyMetadata
+ {
+ DefaultValue = false,
+ BindsTwoWayByDefault = true,
+ DefaultUpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged
+ });
static TouchExpander()
{
diff --git a/Software/Visual_Studio/Tango.Touch/Controls/TouchNavigationLinks.cs b/Software/Visual_Studio/Tango.Touch/Controls/TouchNavigationLinks.cs
index 3a0d3de9e..5fb4496e0 100644
--- a/Software/Visual_Studio/Tango.Touch/Controls/TouchNavigationLinks.cs
+++ b/Software/Visual_Studio/Tango.Touch/Controls/TouchNavigationLinks.cs
@@ -24,7 +24,18 @@ namespace Tango.Touch.Controls
private const string PART_Rectangle = "PART_Rectangle";
private Line _line;
private Object _lastSelectedItem;
+
+ public int LineThickness
+ {
+ get { return (int)GetValue(LineThicknessProperty); }
+ set { SetValue(LineThicknessProperty, value); }
+ }
+
+ // Using a DependencyProperty as the backing store for LineThickness. This enables animation, styling, binding, etc...
+ public static readonly DependencyProperty LineThicknessProperty =
+ DependencyProperty.Register("LineThickness", typeof(int), typeof(TouchNavigationLinks), new PropertyMetadata(3));
+
static TouchNavigationLinks()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(TouchNavigationLinks), new FrameworkPropertyMetadata(typeof(TouchNavigationLinks)));
@@ -48,12 +59,14 @@ namespace Tango.Touch.Controls
private void MoveLineToSelectedItem()
{
- if (SelectedItem != null)
+ if (SelectedItem != null )
{
+ if(SelectedItem is UIElement && ((UIElement)SelectedItem).IsEnabled == false)
+ return;
var container = ItemContainerGenerator.ContainerFromItem(SelectedItem) as FrameworkElement;
-
+
ContentPresenter presenter = container.FindChild<ContentPresenter>().FindChild<ContentPresenter>();
-
+
if (presenter != null)
{
Point relativePoint = presenter.TransformToAncestor(this).Transform(new Point(0, 0));
@@ -87,8 +100,9 @@ namespace Tango.Touch.Controls
_line.BeginAnimation(Line.X2Property, aniX2);
}
}
+ _lastSelectedItem = SelectedItem;
}
-
+
_lastSelectedItem = SelectedItem;
}
}
diff --git a/Software/Visual_Studio/Tango.Touch/Controls/TouchNavigationLinks.xaml b/Software/Visual_Studio/Tango.Touch/Controls/TouchNavigationLinks.xaml
index 599dfdf7c..2b8b4ff03 100644
--- a/Software/Visual_Studio/Tango.Touch/Controls/TouchNavigationLinks.xaml
+++ b/Software/Visual_Studio/Tango.Touch/Controls/TouchNavigationLinks.xaml
@@ -37,10 +37,11 @@
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="MinHeight" Value="40"></Setter>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
+ <Setter Property="IsEnabled" Value="true"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListBoxItem}">
- <Border x:Name="Bd" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="true">
+ <Border x:Name="Bd" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="true" IsEnabled="{TemplateBinding IsEnabled}">
<components:Ripple CornerRadius="5" RippleBrush="{StaticResource TangoRippleDarkBrush}">
<StackPanel Orientation="Horizontal">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
@@ -77,7 +78,7 @@
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="true">
<StackPanel>
<ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" HorizontalAlignment="Stretch"/>
- <Line x:Name="PART_Rectangle" X1="0" X2="0" Y1="0" Y2="0" Margin="0 5 0 -3" Stroke="{StaticResource TangoPrimaryAccentBrush}" StrokeThickness="3" HorizontalAlignment="Stretch"></Line>
+ <Line x:Name="PART_Rectangle" X1="0" X2="0" Y1="0" Y2="0" Margin="0 5 0 -3" Stroke="{StaticResource TangoPrimaryAccentBrush}" StrokeThickness="{Binding RelativeSource={RelativeSource AncestorType=local:TouchNavigationLinks},Path=LineThickness}" HorizontalAlignment="Stretch"></Line>
</StackPanel>
</Border>
</ControlTemplate>
diff --git a/Software/Visual_Studio/Tango.Touch/Controls/TouchNotificationBar.cs b/Software/Visual_Studio/Tango.Touch/Controls/TouchNotificationBar.cs
index 1e5a5c8fe..77d5bbb53 100644
--- a/Software/Visual_Studio/Tango.Touch/Controls/TouchNotificationBar.cs
+++ b/Software/Visual_Studio/Tango.Touch/Controls/TouchNotificationBar.cs
@@ -158,6 +158,7 @@ namespace Tango.Touch.Controls
private FrameworkElement GetLastNotification()
{
+ if (_items_control == null) return null;
return _items_control.ItemContainerGenerator.ContainerFromIndex(0) as FrameworkElement;
}
diff --git a/Software/Visual_Studio/Tango.Touch/Controls/TouchNumericTextBox.cs b/Software/Visual_Studio/Tango.Touch/Controls/TouchNumericTextBox.cs
index 15c516124..6c09cdc59 100644
--- a/Software/Visual_Studio/Tango.Touch/Controls/TouchNumericTextBox.cs
+++ b/Software/Visual_Studio/Tango.Touch/Controls/TouchNumericTextBox.cs
@@ -112,6 +112,17 @@ namespace Tango.Touch.Controls
}
public static readonly DependencyProperty MaximumProperty =
DependencyProperty.Register("Maximum", typeof(double), typeof(TouchNumericTextBox), new PropertyMetadata(null));
+
+ public double Step
+ {
+ get { return (double)GetValue(StepProperty); }
+ set { SetValue(StepProperty, value); }
+ }
+
+ public static readonly DependencyProperty StepProperty =
+ DependencyProperty.Register("Step", typeof(double), typeof(TouchNumericTextBox), new PropertyMetadata(null));
+
+
public double JoggingFactor
{
@@ -198,6 +209,15 @@ namespace Tango.Touch.Controls
{
value = Math.Round(value, 0);
}
+ if (Step > 0)
+ {
+ int coef = (int)((value + Step - 1) / Step);
+ value = coef * Step;
+ }
+ if(Minimum > 0 && value < Minimum)
+ {
+ value = Minimum;
+ }
if (Maximum > Minimum)
{
@@ -209,6 +229,7 @@ namespace Tango.Touch.Controls
{
value = Maximum;
}
+
}
}
diff --git a/Software/Visual_Studio/Tango.Touch/Controls/TouchPanel.cs b/Software/Visual_Studio/Tango.Touch/Controls/TouchPanel.cs
index 137ef6e42..fc929089d 100644
--- a/Software/Visual_Studio/Tango.Touch/Controls/TouchPanel.cs
+++ b/Software/Visual_Studio/Tango.Touch/Controls/TouchPanel.cs
@@ -24,6 +24,7 @@ namespace Tango.Touch.Controls
private TouchCalendar _calendar;
private Grid _calendar_grid;
private bool _isDialogGridMaskMouseDown;
+ protected Border _dialogBorder;
static TouchPanel()
{
@@ -72,6 +73,7 @@ namespace Tango.Touch.Controls
_comboBoxCloseButton = GetTemplateChild("PART_comboboxCloseButton") as TouchIconButton;
_calendar_grid = GetTemplateChild("PART_datepicker_grid") as Grid;
_calendar = GetTemplateChild("PART_calendar") as TouchCalendar;
+ _dialogBorder = GetTemplateChild("PART_dialogBorder") as Border;
var gridDialogsMask = GetTemplateChild("PART_gridDialogsMask") as Grid;
gridDialogsMask.MouseUp += GridDialogsMask_MouseUp;
gridDialogsMask.MouseDown += GridDialogsMask_MouseDown;
@@ -241,7 +243,7 @@ namespace Tango.Touch.Controls
set { SetValue(CurrentDialogProperty, value); }
}
public static readonly DependencyProperty CurrentDialogProperty =
- DependencyProperty.Register("CurrentDialog", typeof(FrameworkElement), typeof(TouchPanel), new PropertyMetadata(null));
+ DependencyProperty.Register("CurrentDialog", typeof(FrameworkElement), typeof(TouchPanel), new PropertyMetadata(null,(d,e) => (d as TouchPanel).OnCurrentDialogChanged(e.NewValue as FrameworkElement)));
public FrameworkElement TaskBarElement
{
@@ -267,6 +269,10 @@ namespace Tango.Touch.Controls
public static readonly DependencyProperty BusyMessageProperty =
DependencyProperty.Register("BusyMessage", typeof(String), typeof(TouchPanel), new PropertyMetadata(null));
+ protected virtual void OnCurrentDialogChanged(FrameworkElement frameworkElement)
+ {
+
+ }
#region Attached Properties
diff --git a/Software/Visual_Studio/Tango.Touch/Controls/TouchPanel.xaml b/Software/Visual_Studio/Tango.Touch/Controls/TouchPanel.xaml
index dd405a6c3..24dbbe268 100644
--- a/Software/Visual_Studio/Tango.Touch/Controls/TouchPanel.xaml
+++ b/Software/Visual_Studio/Tango.Touch/Controls/TouchPanel.xaml
@@ -77,7 +77,7 @@
<DropShadowEffect BlurRadius="10" />
</Border.Effect>
- <ContentPresenter Content="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentDialog}" />
+ <ContentPresenter x:Name="PART_dialogContentPresenter" Content="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentDialog}" />
</Border>
</Grid>
diff --git a/Software/Visual_Studio/Tango.Touch/Controls/TouchPanelEureka.cs b/Software/Visual_Studio/Tango.Touch/Controls/TouchPanelEureka.cs
new file mode 100644
index 000000000..a1c07f306
--- /dev/null
+++ b/Software/Visual_Studio/Tango.Touch/Controls/TouchPanelEureka.cs
@@ -0,0 +1,87 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace Tango.Touch.Controls
+{
+ public class TouchPanelEureka : TouchPanel
+ {
+ #region Prevent Focus Steal
+
+ /// <summary>
+ /// The prevent scroll property
+ /// </summary>
+ public static readonly DependencyProperty MakeEurekaFullScreenProperty =
+ DependencyProperty.RegisterAttached("MakeEurekaFullScreen",
+ typeof(bool), typeof(TouchPanelEureka),
+ new FrameworkPropertyMetadata(false));
+
+ /// <summary>
+ /// Sets the MakeEurekaFullScreen attached property.
+ /// </summary>
+ /// <param name="element">The element.</param>
+ /// <param name="value">if set to <c>true</c> [value].</param>
+ public static void SetMakeEurekaFullScreen(FrameworkElement element, bool value)
+ {
+ element.SetValue(MakeEurekaFullScreenProperty, value);
+ }
+
+ /// <summary>
+ /// Gets the MakeEurekaFullScreen attached property.
+ /// </summary>
+ /// <param name="element">The element.</param>
+ /// <returns></returns>
+ public static bool GetMakeEurekaFullScreen(FrameworkElement element)
+ {
+ if (element != null)
+ {
+ return (bool)element.GetValue(MakeEurekaFullScreenProperty);
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ #endregion
+
+ static TouchPanelEureka()
+ {
+ DefaultStyleKeyProperty.OverrideMetadata(typeof(TouchPanelEureka), new FrameworkPropertyMetadata(typeof(TouchPanelEureka)));
+ }
+
+ protected override void OnCurrentDialogChanged(FrameworkElement dialog)
+ {
+ base.OnCurrentDialogChanged(dialog);
+
+ if (dialog != null)
+ {
+ if (GetMakeEurekaFullScreen(dialog))
+ {
+ _dialogBorder.CornerRadius = new CornerRadius(0);
+ _dialogBorder.Padding = new Thickness(0);
+ _dialogBorder.Margin = new Thickness(0, 125, 0, 0);
+ dialog.Width = this.ActualWidth;
+ dialog.Height = this.ActualHeight - 125;
+ }
+ else
+ {
+ _dialogBorder.CornerRadius = new CornerRadius(5);
+ _dialogBorder.Padding = new Thickness(10);
+ _dialogBorder.Margin = new Thickness(0);
+ }
+ }
+ }
+ }
+}
diff --git a/Software/Visual_Studio/Tango.Touch/Controls/TouchPanelEureka.xaml b/Software/Visual_Studio/Tango.Touch/Controls/TouchPanelEureka.xaml
new file mode 100644
index 000000000..569f1df77
--- /dev/null
+++ b/Software/Visual_Studio/Tango.Touch/Controls/TouchPanelEureka.xaml
@@ -0,0 +1,330 @@
+<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI"
+ xmlns:keyboard="clr-namespace:Tango.Touch.Keyboard"
+ xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
+ xmlns:local="clr-namespace:Tango.Touch.Controls">
+
+ <ResourceDictionary.MergedDictionaries>
+ <ResourceDictionary Source="../Resources/Colors.xaml" />
+ <ResourceDictionary Source="../Resources/Fonts.xaml" />
+ <ResourceDictionary Source="../Styles/TouchButton.xaml" />
+ <ResourceDictionary Source="../Styles/TouchIconButton.xaml" />
+
+ <ResourceDictionary>
+ <BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
+ <converters:NullObjectToBooleanConverter x:Key="NullObjectToBooleanConverter" />
+ </ResourceDictionary>
+ </ResourceDictionary.MergedDictionaries>
+
+ <Style x:Key="TangoMessageBoxTitle" TargetType="TextBlock">
+ <Setter Property="FontSize" Value="{StaticResource TangoMessageBoxTitleFontSize}"></Setter>
+ <Setter Property="Foreground" Value="{StaticResource TangoPrimaryAccentBrush}"></Setter>
+ </Style>
+
+ <Style TargetType="local:TouchPanelEureka">
+ <Setter Property="Template">
+ <Setter.Value>
+ <ControlTemplate TargetType="local:TouchPanelEureka">
+ <Border Background="{TemplateBinding Background}">
+ <Grid>
+ <keyboard:KeyboardView>
+ <Grid>
+
+ <DockPanel>
+ <ContentControl DockPanel.Dock="Top" Content="{TemplateBinding TaskBarElement}"></ContentControl>
+
+ <!--Notification Bar-->
+ <!--<local:TouchNotificationBar NotificationBarVisibility="{TemplateBinding NotificationBarVisibility}" NotificationTemplate="{TemplateBinding NotificationTemplate}" HasNotifications="{TemplateBinding HasNotifications}" Notifications="{TemplateBinding Notifications}" ItemExpandedPropertyPath="{TemplateBinding ItemExpandedPropertyPath}">-->
+ <Grid>
+ <!--Content-->
+ <ContentPresenter Content="{TemplateBinding Content}" />
+ </Grid>
+ <!--</local:TouchNotificationBar>-->
+ </DockPanel>
+
+ <!--Dialogs-->
+ <Grid>
+ <Grid.Style>
+ <Style TargetType="Grid">
+ <!--<Setter Property="Opacity" Value="0"></Setter>-->
+ <Setter Property="Visibility" Value="Hidden"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding RelativeSource={RelativeSource TemplatedParent},Path=HasDialog}" Value="True">
+ <Setter Property="Visibility" Value="Visible"></Setter>
+ <!--<DataTrigger.EnterActions>
+ <BeginStoryboard>
+ <Storyboard>
+ <DoubleAnimation To="1" Storyboard.TargetProperty="Opacity" Duration="00:00:0.2" />
+ </Storyboard>
+ </BeginStoryboard>
+ </DataTrigger.EnterActions>-->
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Grid.Style>
+
+ <Grid Background="{StaticResource TangoPanelMaskBrushLight}" x:Name="PART_gridDialogsMask">
+ <!--<i:Interaction.Triggers>
+ <i:EventTrigger EventName="MouseUp">
+ <i:InvokeCommandAction Command="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentDialog.DataContext.CloseCommand}" />
+ </i:EventTrigger>
+ </i:Interaction.Triggers>-->
+ </Grid>
+
+ <Border x:Name="PART_dialogBorder" Background="{StaticResource TangoPrimaryBackgroundBrush}" CornerRadius="5" Padding="10" HorizontalAlignment="Center" VerticalAlignment="Center">
+ <Border.Effect>
+ <DropShadowEffect Color="Gainsboro" BlurRadius="10" />
+ </Border.Effect>
+
+ <ContentPresenter Content="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentDialog}" />
+ </Border>
+ </Grid>
+
+ <!--Combo Box PopUp-->
+ <Grid Background="{StaticResource TangoPanelMaskBrushLight}" x:Name="PART_combobox_grid">
+ <Grid.Style>
+ <Style TargetType="Grid">
+ <Setter Property="Opacity" Value="0"></Setter>
+ <Setter Property="Visibility" Value="Hidden"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentComboBox,Converter={StaticResource NullObjectToBooleanConverter}}" Value="True">
+ <Setter Property="Visibility" Value="Visible"></Setter>
+ <DataTrigger.EnterActions>
+ <BeginStoryboard>
+ <Storyboard>
+ <DoubleAnimation To="1" Storyboard.TargetProperty="Opacity" Duration="00:00:0.2" />
+ </Storyboard>
+ </BeginStoryboard>
+ </DataTrigger.EnterActions>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Grid.Style>
+
+ <Grid DataContext="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentComboBox}" VerticalAlignment="Center" HorizontalAlignment="Center">
+ <Border Background="{StaticResource TangoPrimaryBackgroundBrush}" CornerRadius="5" Margin="10">
+ <Border.Effect>
+ <DropShadowEffect BlurRadius="10" />
+ </Border.Effect>
+
+ <Grid ClipToBounds="True">
+ <DockPanel>
+ <Grid DockPanel.Dock="Top">
+ <Border CornerRadius="5 5 0 0" Background="{StaticResource TangoPopupTitleBackgroundBrush}" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0 0 0 1" Padding="30">
+ <TextBlock DockPanel.Dock="Top" Text="{Binding Title}" FontSize="{StaticResource TangoComboBoxTitleFontSize}" FontWeight="SemiBold"></TextBlock>
+ </Border>
+ <local:TouchIconButton x:Name="PART_comboboxCloseButton" Background="Transparent" Padding="35" Style="{StaticResource TangoRoundTouchIconButton}" Command="{Binding CloseCommand}" CommandParameter="{Binding}" HorizontalAlignment="Right" MaxHeight="90" Width="{Binding RelativeSource={RelativeSource Self},Path=ActualHeight}" Icon="Close" Foreground="{StaticResource TangoDarkForegroundBrush}" Opacity="0.5" />
+ </Grid>
+ <local:TouchListBox x:Name="PART_ComboBoxList" Width="{Binding MinPopupWidth}" Height="{Binding MinPopupHeight}" ItemSelectedCommand="{Binding RelativeSource={RelativeSource AncestorType=local:TouchPanel},Path=ComboBoxPickedCommand}" ItemsSource="{Binding ItemsSource}" SelectedItem="{Binding SelectedItem,Mode=TwoWay}" SelectionMode="None" ItemTemplate="{Binding ItemTemplate}" ValuePath="{Binding ValuePath}" VerticalAlignment="Top" >
+
+ </local:TouchListBox>
+ </DockPanel>
+ </Grid>
+ </Border>
+ </Grid>
+ </Grid>
+
+ <!--Date Picker-->
+ <Grid Background="{StaticResource TangoPanelMaskBrushLight}" x:Name="PART_datepicker_grid">
+ <Grid.Style>
+ <Style TargetType="Grid">
+ <Setter Property="Opacity" Value="0"></Setter>
+ <Setter Property="Visibility" Value="Hidden"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentDatePicker,Converter={StaticResource NullObjectToBooleanConverter}}" Value="True">
+ <Setter Property="Visibility" Value="Visible"></Setter>
+ <DataTrigger.EnterActions>
+ <BeginStoryboard>
+ <Storyboard>
+ <DoubleAnimation To="1" Storyboard.TargetProperty="Opacity" Duration="00:00:0.2" />
+ </Storyboard>
+ </BeginStoryboard>
+ </DataTrigger.EnterActions>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Grid.Style>
+
+ <Grid DataContext="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentDatePicker}" VerticalAlignment="Center" HorizontalAlignment="Center">
+ <Border Background="{StaticResource TangoPrimaryBackgroundBrush}" CornerRadius="5" Margin="10" HorizontalAlignment="Center" VerticalAlignment="Center">
+ <Border.Effect>
+ <DropShadowEffect BlurRadius="10" />
+ </Border.Effect>
+
+ <DockPanel>
+ <StackPanel Margin="0 40 0 10" DockPanel.Dock="Bottom" HorizontalAlignment="Right" Orientation="Horizontal">
+ <local:TouchButton Command="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CancelDateCommand}" Width="120" Margin="2 0" Style="{StaticResource TangoMessageBoxButton}">CANCEL</local:TouchButton>
+ <local:TouchButton Command="{Binding RelativeSource={RelativeSource TemplatedParent},Path=DateSelectedCommand}" Width="120" Margin="2 0" Style="{StaticResource TangoMessageBoxButton}">OK</local:TouchButton>
+ </StackPanel>
+
+ <Viewbox Width="470" Stretch="Uniform">
+ <local:TouchCalendar Width="370" x:Name="PART_calendar" Focusable="False"
+ SelectedDate="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentDatePicker.SelectedDate,Mode=OneWay}"
+ DisplayDateStart="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentDatePicker.DisplayDateStart,Mode=OneWay}"
+ DisplayDateEnd="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentDatePicker.DisplayDateEnd,Mode=OneWay}"/>
+ </Viewbox>
+ </DockPanel>
+ </Border>
+ </Grid>
+ </Grid>
+
+ <!--Messages-->
+ <Grid Background="{StaticResource TangoPanelMaskBrushLight}">
+ <Grid.Style>
+ <Style TargetType="Grid">
+ <!--<Setter Property="Opacity" Value="0"></Setter>-->
+ <Setter Property="Visibility" Value="Hidden"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding RelativeSource={RelativeSource TemplatedParent},Path=HasMessageBox}" Value="True">
+ <Setter Property="Visibility" Value="Visible"></Setter>
+ <!--<DataTrigger.EnterActions>
+ <BeginStoryboard>
+ <Storyboard>
+ <DoubleAnimation To="1" Storyboard.TargetProperty="Opacity" Duration="00:00:0.2" />
+ </Storyboard>
+ </BeginStoryboard>
+ </DataTrigger.EnterActions>-->
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Grid.Style>
+
+ <Grid Height="400" Margin="20" RenderTransformOrigin="0.5,0.5">
+ <Grid.Style>
+ <Style TargetType="Grid">
+ <Setter Property="RenderTransform">
+ <Setter.Value>
+ <ScaleTransform ScaleX="0" ScaleY="0" />
+ </Setter.Value>
+ </Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding RelativeSource={RelativeSource TemplatedParent},Path=HasMessageBox}" Value="True">
+ <DataTrigger.EnterActions>
+ <BeginStoryboard>
+ <Storyboard>
+ <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX" From="0" To="1" Duration="00:00:0.1" />
+ <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleY" From="0" To="1" Duration="00:00:0.1" />
+ </Storyboard>
+ </BeginStoryboard>
+ </DataTrigger.EnterActions>
+ <DataTrigger.ExitActions>
+ <BeginStoryboard>
+ <Storyboard>
+ <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX" From="1" To="0" Duration="00:00:0.1" />
+ <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleY" From="1" To="0" Duration="00:00:0.1" />
+ </Storyboard>
+ </BeginStoryboard>
+ </DataTrigger.ExitActions>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Grid.Style>
+
+ <Border DataContext="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentMessageBox}" Background="{StaticResource TangoPrimaryBackgroundBrush}" CornerRadius="5" Margin="10">
+ <Border.Effect>
+ <DropShadowEffect BlurRadius="10" />
+ </Border.Effect>
+ <Grid ClipToBounds="True">
+ <DockPanel>
+ <Grid DockPanel.Dock="Top">
+ <Border CornerRadius="5 5 0 0" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0 0 0 1" Padding="30" Background="{Binding HeaderBrush}">
+ <StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
+ <local:TouchIcon Width="24" Height="24" Icon="{Binding Icon}" Margin="0 0 20 0" Foreground="{Binding Brush}" />
+ <TextBlock Text="{Binding Title}" FontSize="{StaticResource TangoMessageBoxTitleFontSize}" FontWeight="Normal"></TextBlock>
+ </StackPanel>
+ </Border>
+ <local:TouchIconButton Background="Transparent" Padding="35" Style="{StaticResource TangoRoundTouchIconButton}" Command="{Binding CloseCommand}" CommandParameter="{Binding}" HorizontalAlignment="Right" MaxHeight="90" Width="{Binding RelativeSource={RelativeSource Self},Path=ActualHeight}" Icon="Close" Foreground="{StaticResource TangoDarkForegroundBrush}" Opacity="0.5" />
+ </Grid>
+
+ <StackPanel Orientation="Horizontal" DockPanel.Dock="Bottom" HorizontalAlignment="Center" Height="50" Margin="0 0 0 40">
+ <local:TouchButton x:Name="btnCancel" FontWeight="Normal" CornerRadius="25" Width="220" FontSize="{StaticResource TangoMessageBoxButtonFontSize}" Margin="0 0 30 0" Style="{StaticResource TangoHollowButton}" Command="{Binding CloseCommand}" Visibility="{Binding HasCancel,Converter={StaticResource BooleanToVisibilityConverter}}">CANCEL</local:TouchButton>
+ <local:TouchButton x:Name="btnOK" FontWeight="Normal" Width="220" CornerRadius="25" FontSize="{StaticResource TangoMessageBoxButtonFontSize}" Margin="30 0 0 0" Style="{StaticResource TangoHollowButton}" Command="{Binding OKCommand}">OK</local:TouchButton>
+ </StackPanel>
+
+ <TextBlock FontSize="{StaticResource TangoMessageBoxMessageFontSize}" Text="{Binding Message}" VerticalAlignment="Center" HorizontalAlignment="Center" TextWrapping="Wrap" Margin="10 0"></TextBlock>
+
+ </DockPanel>
+ </Grid>
+ </Border>
+ </Grid>
+ </Grid>
+
+ <!--Busy-->
+ <Grid Background="{StaticResource TangoPanelMaskBrushLight}">
+ <Grid.Style>
+ <Style TargetType="Grid">
+ <Setter Property="Visibility" Value="Hidden"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding RelativeSource={RelativeSource TemplatedParent},Path=IsBusy}" Value="True">
+ <Setter Property="Visibility" Value="Visible"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Grid.Style>
+
+ <Grid MinHeight="390" Margin="20" RenderTransformOrigin="0.5,0.5" VerticalAlignment="Center">
+ <Grid.Style>
+ <Style TargetType="Grid">
+ <Setter Property="RenderTransform">
+ <Setter.Value>
+ <ScaleTransform ScaleX="0" ScaleY="0" />
+ </Setter.Value>
+ </Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding RelativeSource={RelativeSource TemplatedParent},Path=IsBusy}" Value="True">
+ <DataTrigger.EnterActions>
+ <BeginStoryboard>
+ <Storyboard>
+ <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX" From="0" To="1" Duration="00:00:0.1" />
+ <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleY" From="0" To="1" Duration="00:00:0.1" />
+ </Storyboard>
+ </BeginStoryboard>
+ </DataTrigger.EnterActions>
+ <DataTrigger.ExitActions>
+ <BeginStoryboard>
+ <Storyboard>
+ <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX" From="1" To="0" Duration="00:00:0.1" />
+ <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleY" From="1" To="0" Duration="00:00:0.1" />
+ </Storyboard>
+ </BeginStoryboard>
+ </DataTrigger.ExitActions>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Grid.Style>
+
+ <Border Background="{StaticResource TangoPrimaryBackgroundBrush}" CornerRadius="5" Margin="10">
+ <Border.Effect>
+ <DropShadowEffect BlurRadius="10" />
+ </Border.Effect>
+ <Grid ClipToBounds="True">
+ <DockPanel>
+ <Grid DockPanel.Dock="Top">
+ <Border CornerRadius="5 5 0 0" Background="{StaticResource TangoPopupTitleBackgroundBrush}" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0 0 0 1" Padding="30">
+ <StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
+ <local:TouchIcon Width="24" Height="24" Icon="ProgressClock" Margin="0 0 20 0" Foreground="{StaticResource TangoPrimaryAccentBrush}" />
+ <TextBlock Text="Working" FontSize="{StaticResource TangoMessageBoxTitleFontSize}" FontWeight="Normal"></TextBlock>
+ </StackPanel>
+ </Border>
+ </Grid>
+
+ <local:TouchBusyIndicator DockPanel.Dock="Bottom" Margin="0 0 0 40" IsIndeterminate="{Binding RelativeSource={RelativeSource TemplatedParent},Path=IsBusy}" Width="100" Height="100"></local:TouchBusyIndicator>
+
+ <TextBlock FontSize="{StaticResource TangoMessageBoxMessageFontSize}" Text="{Binding RelativeSource={RelativeSource TemplatedParent},Path=BusyMessage}" VerticalAlignment="Center" HorizontalAlignment="Center" TextWrapping="Wrap"></TextBlock>
+ </DockPanel>
+ </Grid>
+ </Border>
+ </Grid>
+ </Grid>
+ </Grid>
+ </keyboard:KeyboardView>
+ </Grid>
+ </Border>
+ </ControlTemplate>
+ </Setter.Value>
+ </Setter>
+ </Style>
+
+
+</ResourceDictionary> \ No newline at end of file
diff --git a/Software/Visual_Studio/Tango.Touch/Controls/TouchPanelEurekaNoKeyboard.cs b/Software/Visual_Studio/Tango.Touch/Controls/TouchPanelEurekaNoKeyboard.cs
new file mode 100644
index 000000000..75dcba67f
--- /dev/null
+++ b/Software/Visual_Studio/Tango.Touch/Controls/TouchPanelEurekaNoKeyboard.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace Tango.Touch.Controls
+{
+ public class TouchPanelEurekaNoKeyboard : TouchPanelEureka
+ {
+ static TouchPanelEurekaNoKeyboard()
+ {
+ DefaultStyleKeyProperty.OverrideMetadata(typeof(TouchPanelEurekaNoKeyboard), new FrameworkPropertyMetadata(typeof(TouchPanelEurekaNoKeyboard)));
+ }
+ }
+}
diff --git a/Software/Visual_Studio/Tango.Touch/Controls/TouchPanelEurekaNoKeyboard.xaml b/Software/Visual_Studio/Tango.Touch/Controls/TouchPanelEurekaNoKeyboard.xaml
new file mode 100644
index 000000000..e25e96e60
--- /dev/null
+++ b/Software/Visual_Studio/Tango.Touch/Controls/TouchPanelEurekaNoKeyboard.xaml
@@ -0,0 +1,330 @@
+<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI"
+ xmlns:keyboard="clr-namespace:Tango.Touch.Keyboard"
+ xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
+ xmlns:local="clr-namespace:Tango.Touch.Controls">
+
+ <ResourceDictionary.MergedDictionaries>
+ <ResourceDictionary Source="../Resources/Colors.xaml" />
+ <ResourceDictionary Source="../Resources/Fonts.xaml" />
+ <ResourceDictionary Source="../Styles/TouchButton.xaml" />
+ <ResourceDictionary Source="../Styles/TouchIconButton.xaml" />
+
+ <ResourceDictionary>
+ <BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
+ <converters:NullObjectToBooleanConverter x:Key="NullObjectToBooleanConverter" />
+ </ResourceDictionary>
+ </ResourceDictionary.MergedDictionaries>
+
+ <Style x:Key="TangoMessageBoxTitle" TargetType="TextBlock">
+ <Setter Property="FontSize" Value="{StaticResource TangoMessageBoxTitleFontSize}"></Setter>
+ <Setter Property="Foreground" Value="{StaticResource TangoPrimaryAccentBrush}"></Setter>
+ </Style>
+
+ <Style TargetType="local:TouchPanelEurekaNoKeyboard">
+ <Setter Property="Template">
+ <Setter.Value>
+ <ControlTemplate TargetType="local:TouchPanelEurekaNoKeyboard">
+ <Border Background="{TemplateBinding Background}">
+ <Grid>
+ <!--<keyboard:KeyboardView>-->
+ <Grid>
+
+ <DockPanel>
+ <ContentControl DockPanel.Dock="Top" Content="{TemplateBinding TaskBarElement}"></ContentControl>
+
+ <!--Notification Bar-->
+ <!--<local:TouchNotificationBar NotificationBarVisibility="{TemplateBinding NotificationBarVisibility}" NotificationTemplate="{TemplateBinding NotificationTemplate}" HasNotifications="{TemplateBinding HasNotifications}" Notifications="{TemplateBinding Notifications}" ItemExpandedPropertyPath="{TemplateBinding ItemExpandedPropertyPath}">-->
+ <Grid>
+ <!--Content-->
+ <ContentPresenter Content="{TemplateBinding Content}" />
+ </Grid>
+ <!--</local:TouchNotificationBar>-->
+ </DockPanel>
+
+ <!--Dialogs-->
+ <Grid>
+ <Grid.Style>
+ <Style TargetType="Grid">
+ <!--<Setter Property="Opacity" Value="0"></Setter>-->
+ <Setter Property="Visibility" Value="Hidden"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding RelativeSource={RelativeSource TemplatedParent},Path=HasDialog}" Value="True">
+ <Setter Property="Visibility" Value="Visible"></Setter>
+ <!--<DataTrigger.EnterActions>
+ <BeginStoryboard>
+ <Storyboard>
+ <DoubleAnimation To="1" Storyboard.TargetProperty="Opacity" Duration="00:00:0.2" />
+ </Storyboard>
+ </BeginStoryboard>
+ </DataTrigger.EnterActions>-->
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Grid.Style>
+
+ <Grid Background="{StaticResource TangoPanelMaskBrushLight}" x:Name="PART_gridDialogsMask">
+ <!--<i:Interaction.Triggers>
+ <i:EventTrigger EventName="MouseUp">
+ <i:InvokeCommandAction Command="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentDialog.DataContext.CloseCommand}" />
+ </i:EventTrigger>
+ </i:Interaction.Triggers>-->
+ </Grid>
+
+ <Border x:Name="PART_dialogBorder" Background="{StaticResource TangoPrimaryBackgroundBrush}" CornerRadius="5" Padding="10" HorizontalAlignment="Center" VerticalAlignment="Center">
+ <Border.Effect>
+ <DropShadowEffect Color="Gainsboro" BlurRadius="10" />
+ </Border.Effect>
+
+ <ContentPresenter Content="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentDialog}" />
+ </Border>
+ </Grid>
+
+ <!--Combo Box PopUp-->
+ <Grid Background="{StaticResource TangoPanelMaskBrushLight}" x:Name="PART_combobox_grid">
+ <Grid.Style>
+ <Style TargetType="Grid">
+ <Setter Property="Opacity" Value="0"></Setter>
+ <Setter Property="Visibility" Value="Hidden"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentComboBox,Converter={StaticResource NullObjectToBooleanConverter}}" Value="True">
+ <Setter Property="Visibility" Value="Visible"></Setter>
+ <DataTrigger.EnterActions>
+ <BeginStoryboard>
+ <Storyboard>
+ <DoubleAnimation To="1" Storyboard.TargetProperty="Opacity" Duration="00:00:0.2" />
+ </Storyboard>
+ </BeginStoryboard>
+ </DataTrigger.EnterActions>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Grid.Style>
+
+ <Grid DataContext="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentComboBox}" VerticalAlignment="Center" HorizontalAlignment="Center">
+ <Border Background="{StaticResource TangoPrimaryBackgroundBrush}" CornerRadius="5" Margin="10">
+ <Border.Effect>
+ <DropShadowEffect BlurRadius="10" />
+ </Border.Effect>
+
+ <Grid ClipToBounds="True">
+ <DockPanel>
+ <Grid DockPanel.Dock="Top">
+ <Border CornerRadius="5 5 0 0" Background="{StaticResource TangoPopupTitleBackgroundBrush}" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0 0 0 1" Padding="30">
+ <TextBlock DockPanel.Dock="Top" Text="{Binding Title}" FontSize="{StaticResource TangoComboBoxTitleFontSize}" FontWeight="SemiBold"></TextBlock>
+ </Border>
+ <local:TouchIconButton x:Name="PART_comboboxCloseButton" Background="Transparent" Padding="35" Style="{StaticResource TangoRoundTouchIconButton}" Command="{Binding CloseCommand}" CommandParameter="{Binding}" HorizontalAlignment="Right" MaxHeight="90" Width="{Binding RelativeSource={RelativeSource Self},Path=ActualHeight}" Icon="Close" Foreground="{StaticResource TangoDarkForegroundBrush}" Opacity="0.5" />
+ </Grid>
+ <local:TouchListBox x:Name="PART_ComboBoxList" Width="{Binding MinPopupWidth}" Height="{Binding MinPopupHeight}" ItemSelectedCommand="{Binding RelativeSource={RelativeSource AncestorType=local:TouchPanel},Path=ComboBoxPickedCommand}" ItemsSource="{Binding ItemsSource}" SelectedItem="{Binding SelectedItem,Mode=TwoWay}" SelectionMode="None" ItemTemplate="{Binding ItemTemplate}" ValuePath="{Binding ValuePath}" VerticalAlignment="Top" >
+
+ </local:TouchListBox>
+ </DockPanel>
+ </Grid>
+ </Border>
+ </Grid>
+ </Grid>
+
+ <!--Date Picker-->
+ <Grid Background="{StaticResource TangoPanelMaskBrushLight}" x:Name="PART_datepicker_grid">
+ <Grid.Style>
+ <Style TargetType="Grid">
+ <Setter Property="Opacity" Value="0"></Setter>
+ <Setter Property="Visibility" Value="Hidden"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentDatePicker,Converter={StaticResource NullObjectToBooleanConverter}}" Value="True">
+ <Setter Property="Visibility" Value="Visible"></Setter>
+ <DataTrigger.EnterActions>
+ <BeginStoryboard>
+ <Storyboard>
+ <DoubleAnimation To="1" Storyboard.TargetProperty="Opacity" Duration="00:00:0.2" />
+ </Storyboard>
+ </BeginStoryboard>
+ </DataTrigger.EnterActions>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Grid.Style>
+
+ <Grid DataContext="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentDatePicker}" VerticalAlignment="Center" HorizontalAlignment="Center">
+ <Border Background="{StaticResource TangoPrimaryBackgroundBrush}" CornerRadius="5" Margin="10" HorizontalAlignment="Center" VerticalAlignment="Center">
+ <Border.Effect>
+ <DropShadowEffect BlurRadius="10" />
+ </Border.Effect>
+
+ <DockPanel>
+ <StackPanel Margin="0 40 0 10" DockPanel.Dock="Bottom" HorizontalAlignment="Right" Orientation="Horizontal">
+ <local:TouchButton Command="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CancelDateCommand}" Width="120" Margin="2 0" Style="{StaticResource TangoMessageBoxButton}">CANCEL</local:TouchButton>
+ <local:TouchButton Command="{Binding RelativeSource={RelativeSource TemplatedParent},Path=DateSelectedCommand}" Width="120" Margin="2 0" Style="{StaticResource TangoMessageBoxButton}">OK</local:TouchButton>
+ </StackPanel>
+
+ <Viewbox Width="470" Stretch="Uniform">
+ <local:TouchCalendar Width="370" x:Name="PART_calendar" Focusable="False"
+ SelectedDate="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentDatePicker.SelectedDate,Mode=OneWay}"
+ DisplayDateStart="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentDatePicker.DisplayDateStart,Mode=OneWay}"
+ DisplayDateEnd="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentDatePicker.DisplayDateEnd,Mode=OneWay}"/>
+ </Viewbox>
+ </DockPanel>
+ </Border>
+ </Grid>
+ </Grid>
+
+ <!--Messages-->
+ <Grid Background="{StaticResource TangoPanelMaskBrushLight}">
+ <Grid.Style>
+ <Style TargetType="Grid">
+ <!--<Setter Property="Opacity" Value="0"></Setter>-->
+ <Setter Property="Visibility" Value="Hidden"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding RelativeSource={RelativeSource TemplatedParent},Path=HasMessageBox}" Value="True">
+ <Setter Property="Visibility" Value="Visible"></Setter>
+ <!--<DataTrigger.EnterActions>
+ <BeginStoryboard>
+ <Storyboard>
+ <DoubleAnimation To="1" Storyboard.TargetProperty="Opacity" Duration="00:00:0.2" />
+ </Storyboard>
+ </BeginStoryboard>
+ </DataTrigger.EnterActions>-->
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Grid.Style>
+
+ <Grid Height="400" Margin="20" RenderTransformOrigin="0.5,0.5">
+ <Grid.Style>
+ <Style TargetType="Grid">
+ <Setter Property="RenderTransform">
+ <Setter.Value>
+ <ScaleTransform ScaleX="0" ScaleY="0" />
+ </Setter.Value>
+ </Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding RelativeSource={RelativeSource TemplatedParent},Path=HasMessageBox}" Value="True">
+ <DataTrigger.EnterActions>
+ <BeginStoryboard>
+ <Storyboard>
+ <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX" From="0" To="1" Duration="00:00:0.1" />
+ <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleY" From="0" To="1" Duration="00:00:0.1" />
+ </Storyboard>
+ </BeginStoryboard>
+ </DataTrigger.EnterActions>
+ <DataTrigger.ExitActions>
+ <BeginStoryboard>
+ <Storyboard>
+ <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX" From="1" To="0" Duration="00:00:0.1" />
+ <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleY" From="1" To="0" Duration="00:00:0.1" />
+ </Storyboard>
+ </BeginStoryboard>
+ </DataTrigger.ExitActions>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Grid.Style>
+
+ <Border DataContext="{Binding RelativeSource={RelativeSource TemplatedParent},Path=CurrentMessageBox}" Background="{StaticResource TangoPrimaryBackgroundBrush}" CornerRadius="5" Margin="10">
+ <Border.Effect>
+ <DropShadowEffect BlurRadius="10" />
+ </Border.Effect>
+ <Grid ClipToBounds="True">
+ <DockPanel>
+ <Grid DockPanel.Dock="Top">
+ <Border CornerRadius="5 5 0 0" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0 0 0 1" Padding="30" Background="{Binding HeaderBrush}">
+ <StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
+ <local:TouchIcon Width="24" Height="24" Icon="{Binding Icon}" Margin="0 0 20 0" Foreground="{Binding Brush}" />
+ <TextBlock Text="{Binding Title}" FontSize="{StaticResource TangoMessageBoxTitleFontSize}" FontWeight="Normal"></TextBlock>
+ </StackPanel>
+ </Border>
+ <local:TouchIconButton Background="Transparent" Padding="35" Style="{StaticResource TangoRoundTouchIconButton}" Command="{Binding CloseCommand}" CommandParameter="{Binding}" HorizontalAlignment="Right" MaxHeight="90" Width="{Binding RelativeSource={RelativeSource Self},Path=ActualHeight}" Icon="Close" Foreground="{StaticResource TangoDarkForegroundBrush}" Opacity="0.5" />
+ </Grid>
+
+ <StackPanel Orientation="Horizontal" DockPanel.Dock="Bottom" HorizontalAlignment="Center" Height="50" Margin="0 0 0 40">
+ <local:TouchButton x:Name="btnCancel" FontWeight="Normal" CornerRadius="25" Width="220" FontSize="{StaticResource TangoMessageBoxButtonFontSize}" Margin="0 0 30 0" Style="{StaticResource TangoHollowButton}" Command="{Binding CloseCommand}" Visibility="{Binding HasCancel,Converter={StaticResource BooleanToVisibilityConverter}}">CANCEL</local:TouchButton>
+ <local:TouchButton x:Name="btnOK" FontWeight="Normal" Width="220" CornerRadius="25" FontSize="{StaticResource TangoMessageBoxButtonFontSize}" Margin="30 0 0 0" Style="{StaticResource TangoHollowButton}" Command="{Binding OKCommand}">OK</local:TouchButton>
+ </StackPanel>
+
+ <TextBlock FontSize="{StaticResource TangoMessageBoxMessageFontSize}" Text="{Binding Message}" VerticalAlignment="Center" HorizontalAlignment="Center" TextWrapping="Wrap" Margin="10 0"></TextBlock>
+
+ </DockPanel>
+ </Grid>
+ </Border>
+ </Grid>
+ </Grid>
+
+ <!--Busy-->
+ <Grid Background="{StaticResource TangoPanelMaskBrushLight}">
+ <Grid.Style>
+ <Style TargetType="Grid">
+ <Setter Property="Visibility" Value="Hidden"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding RelativeSource={RelativeSource TemplatedParent},Path=IsBusy}" Value="True">
+ <Setter Property="Visibility" Value="Visible"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Grid.Style>
+
+ <Grid MinHeight="390" Margin="20" RenderTransformOrigin="0.5,0.5" VerticalAlignment="Center">
+ <Grid.Style>
+ <Style TargetType="Grid">
+ <Setter Property="RenderTransform">
+ <Setter.Value>
+ <ScaleTransform ScaleX="0" ScaleY="0" />
+ </Setter.Value>
+ </Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding RelativeSource={RelativeSource TemplatedParent},Path=IsBusy}" Value="True">
+ <DataTrigger.EnterActions>
+ <BeginStoryboard>
+ <Storyboard>
+ <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX" From="0" To="1" Duration="00:00:0.1" />
+ <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleY" From="0" To="1" Duration="00:00:0.1" />
+ </Storyboard>
+ </BeginStoryboard>
+ </DataTrigger.EnterActions>
+ <DataTrigger.ExitActions>
+ <BeginStoryboard>
+ <Storyboard>
+ <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX" From="1" To="0" Duration="00:00:0.1" />
+ <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleY" From="1" To="0" Duration="00:00:0.1" />
+ </Storyboard>
+ </BeginStoryboard>
+ </DataTrigger.ExitActions>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Grid.Style>
+
+ <Border Background="{StaticResource TangoPrimaryBackgroundBrush}" CornerRadius="5" Margin="10">
+ <Border.Effect>
+ <DropShadowEffect BlurRadius="10" />
+ </Border.Effect>
+ <Grid ClipToBounds="True">
+ <DockPanel>
+ <Grid DockPanel.Dock="Top">
+ <Border CornerRadius="5 5 0 0" Background="{StaticResource TangoPopupTitleBackgroundBrush}" BorderBrush="{StaticResource TangoGrayBrush}" BorderThickness="0 0 0 1" Padding="30">
+ <StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
+ <local:TouchIcon Width="24" Height="24" Icon="ProgressClock" Margin="0 0 20 0" Foreground="{StaticResource TangoPrimaryAccentBrush}" />
+ <TextBlock Text="Working" FontSize="{StaticResource TangoMessageBoxTitleFontSize}" FontWeight="Normal"></TextBlock>
+ </StackPanel>
+ </Border>
+ </Grid>
+
+ <local:TouchBusyIndicator DockPanel.Dock="Bottom" Margin="0 0 0 40" IsIndeterminate="{Binding RelativeSource={RelativeSource TemplatedParent},Path=IsBusy}" Width="100" Height="100"></local:TouchBusyIndicator>
+
+ <TextBlock FontSize="{StaticResource TangoMessageBoxMessageFontSize}" Text="{Binding RelativeSource={RelativeSource TemplatedParent},Path=BusyMessage}" VerticalAlignment="Center" HorizontalAlignment="Center" TextWrapping="Wrap"></TextBlock>
+ </DockPanel>
+ </Grid>
+ </Border>
+ </Grid>
+ </Grid>
+ </Grid>
+ <!--</keyboard:KeyboardView>-->
+ </Grid>
+ </Border>
+ </ControlTemplate>
+ </Setter.Value>
+ </Setter>
+ </Style>
+
+
+</ResourceDictionary> \ No newline at end of file
diff --git a/Software/Visual_Studio/Tango.Touch/Controls/TouchToggleSlider.cs b/Software/Visual_Studio/Tango.Touch/Controls/TouchToggleSlider.cs
index 79afdfaab..b1e7080fc 100644
--- a/Software/Visual_Studio/Tango.Touch/Controls/TouchToggleSlider.cs
+++ b/Software/Visual_Studio/Tango.Touch/Controls/TouchToggleSlider.cs
@@ -105,6 +105,48 @@ namespace Tango.Touch.Controls
}
public static readonly DependencyProperty CheckedThumbContentTemplateProperty =
DependencyProperty.Register("CheckedThumbContentTemplate", typeof(DataTemplate), typeof(TouchToggleSlider), new PropertyMetadata(null));
+
+ public String LeftText
+ {
+ get { return (String)GetValue(LeftTextProperty); }
+ set { SetValue(LeftTextProperty, value); }
+ }
+
+ public static readonly DependencyProperty LeftTextProperty =
+ DependencyProperty.Register("LeftText", typeof(String), typeof(TouchToggleSlider), new PropertyMetadata(""));
+
+ public CornerRadius ThumbCornerRadius
+ {
+ get { return (CornerRadius)GetValue(ThumbCornerRadiusProperty); }
+ set { SetValue(ThumbCornerRadiusProperty, value); }
+ }
+ public static readonly DependencyProperty ThumbCornerRadiusProperty =
+ DependencyProperty.Register("ThumbCornerRadius", typeof(CornerRadius), typeof(TouchToggleSlider), new PropertyMetadata(default(CornerRadius)));
+
+ public String RightText
+ {
+ get { return (String)GetValue(RightTextProperty); }
+ set { SetValue(RightTextProperty, value); }
+ }
+
+ // Using a DependencyProperty as the backing store for RightText. This enables animation, styling, binding, etc...
+ public static readonly DependencyProperty RightTextProperty =
+ DependencyProperty.Register("RightText", typeof(String), typeof(TouchToggleSlider), new PropertyMetadata(""));
+
+
+
+ public int ThumbWidth
+ {
+ get { return (int)GetValue(ThumbWidthProperty); }
+ set { SetValue(ThumbWidthProperty, value); }
+ }
+
+ // Using a DependencyProperty as the backing store for ThumbWidth. This enables animation, styling, binding, etc...
+ public static readonly DependencyProperty ThumbWidthProperty =
+ DependencyProperty.Register("ThumbWidth", typeof(int), typeof(TouchToggleSlider), new PropertyMetadata(0));
+
+
+
public TouchToggleSlider()
{
@@ -120,6 +162,7 @@ namespace Tango.Touch.Controls
{
base.OnApplyTemplate();
_grid_ellipse = GetTemplateChild("PART_GridEllipse") as Grid;
+ SetThumbPosition();
}
protected override void OnChecked(RoutedEventArgs e)
@@ -143,7 +186,15 @@ namespace Tango.Touch.Controls
if (IsChecked.Value)
{
- ani.To = new Thickness(ActualWidth - _grid_ellipse.ActualWidth - 4, 0, 0, 0);
+ if (ActualWidth != 0 && _grid_ellipse.ActualWidth == 0)
+ {
+ ani.To = new Thickness(ActualWidth - (ActualWidth/2) - 4, 0, 0, 0);
+ }
+ else
+ {
+ ani.To = new Thickness(ActualWidth - _grid_ellipse.ActualWidth - 4, 0, 0, 0);
+ }
+
}
else
{
diff --git a/Software/Visual_Studio/Tango.Touch/Controls/TouchToggleSlider.xaml b/Software/Visual_Studio/Tango.Touch/Controls/TouchToggleSlider.xaml
index 2f758ec8c..66328ea2d 100644
--- a/Software/Visual_Studio/Tango.Touch/Controls/TouchToggleSlider.xaml
+++ b/Software/Visual_Studio/Tango.Touch/Controls/TouchToggleSlider.xaml
@@ -62,7 +62,7 @@
</Grid>
</Grid>
- <Grid HorizontalAlignment="Left" x:Name="PART_GridEllipse">
+ <Grid HorizontalAlignment="Left" x:Name="PART_GridEllipse" Width="{Binding RelativeSource={RelativeSource Self},Path=ActualHeight}">
<Grid Margin="4" x:Name="ellipse" Width="{Binding RelativeSource={RelativeSource Self},Path=ActualHeight}">
<Ellipse Fill="{TemplateBinding ThumbBrush}"></Ellipse>
@@ -132,4 +132,127 @@
</Style.Triggers>
</Style>
+ <Style x:Key="TangoToggleButtonGreenAccent" TargetType="{x:Type local:TouchToggleSlider}" BasedOn="{StaticResource {x:Type local:TouchToggleSlider}}">
+ <Setter Property="CheckedBackground" Value="{StaticResource TangoGreenBrush}"/>
+ <Setter Property="UncheckedBackground" Value="{StaticResource TangoDividerBrush}"/>
+ <Setter Property="CornerRadius" Value="20"></Setter>
+ <Setter Property="BorderThickness" Value="2"></Setter>
+ <Setter Property="BorderBrush" Value="{StaticResource TangoRippleLightBrush}"></Setter>
+ <Setter Property="ThumbBrush" Value="{StaticResource TangoPrimaryBackgroundBrush}"></Setter>
+ <Style.Triggers>
+ <Trigger Property="IsChecked" Value="True">
+ <Trigger.EnterActions>
+ <BeginStoryboard>
+ <Storyboard>
+ <ColorAnimation Storyboard.TargetProperty="BorderBrush.Color" To="{StaticResource RippleLightColor}" Duration="00:00:0.2"></ColorAnimation>
+ <ColorAnimation Storyboard.TargetProperty="ThumbBrush.Color" To="{StaticResource TangoPrimaryBackgroundColor}" Duration="00:00:0.2"></ColorAnimation>
+ </Storyboard>
+ </BeginStoryboard>
+ </Trigger.EnterActions>
+ <Trigger.ExitActions>
+ <BeginStoryboard>
+ <Storyboard>
+ <ColorAnimation Storyboard.TargetProperty="BorderBrush.Color" To="{StaticResource RippleLightColor}" Duration="00:00:0.2"></ColorAnimation>
+ <ColorAnimation Storyboard.TargetProperty="ThumbBrush.Color" To="{StaticResource TangoPrimaryBackgroundColor}" Duration="00:00:0.2"></ColorAnimation>
+ </Storyboard>
+ </BeginStoryboard>
+ </Trigger.ExitActions>
+ </Trigger>
+ </Style.Triggers>
+ </Style>
+
+ <Style x:Key="TouchToggleButtonSlider" TargetType="{x:Type local:TouchToggleSlider}" BasedOn="{StaticResource {x:Type local:TouchToggleSlider}}">
+ <Setter Property="BorderThickness" Value="1"></Setter>
+ <Setter Property="UncheckedBackground" Value="Transparent"></Setter>
+ <Setter Property="CheckedBackground" Value="Transparent"></Setter>
+ <Setter Property="ThumbBrush" Value="{StaticResource TangoPrimaryBackgroundBrush}"></Setter>
+ <Setter Property="BorderBrush" Value="{StaticResource TangoDividerBrush}"/>
+ <Setter Property="Foreground" Value="White"/>
+ <Setter Property="CornerRadius" Value="20"></Setter>
+ <Setter Property="ThumbCornerRadius" Value="18"/>
+ <Setter Property="LeftText" Value="Left"/>
+ <Setter Property="RightText" Value="Right"/>
+ <Setter Property="ThumbWidth" Value="40"/>
+
+ <Setter Property="Template">
+ <Setter.Value>
+ <ControlTemplate TargetType="{x:Type local:TouchToggleSlider}">
+ <Border>
+ <Border.Effect>
+ <DropShadowEffect ShadowDepth="0" BlurRadius="1" Opacity="1"/>
+ </Border.Effect>
+
+ <components:Ripple CornerRadius="{TemplateBinding CornerRadius}" Centered="True" RippleBrush="{StaticResource TangoRippleDarkBrush}">
+ <Border
+ BorderBrush="{TemplateBinding BorderBrush}"
+ BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="{TemplateBinding CornerRadius}">
+
+ <Border.Style>
+ <Style TargetType="Border">
+ <Setter Property="Background" Value="{Binding RelativeSource={RelativeSource AncestorType=local:TouchToggleSlider},Path=UncheckedBackground}"></Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=local:TouchToggleSlider},Path=IsChecked}" Value="True">
+ <Setter Property="Background" Value="{Binding RelativeSource={RelativeSource AncestorType=local:TouchToggleSlider},Path=CheckedBackground}"></Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Border.Style>
+ <Grid>
+ <Grid>
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="1*" />
+ <ColumnDefinition Width="1*" />
+ </Grid.ColumnDefinitions>
+
+ <Grid Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Center" Visibility="{Binding RelativeSource={RelativeSource AncestorType=local:TouchToggleSlider},Path=IsChecked,Converter={StaticResource BooleanToVisibilityInverseConverter}}">
+ <TextBlock Text="{TemplateBinding RightText}" Foreground="{StaticResource TangoDisabledForegroundBrush}"></TextBlock>
+ </Grid>
+
+ <Grid Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Center" Visibility="{Binding RelativeSource={RelativeSource AncestorType=local:TouchToggleSlider},Path=IsChecked,Converter={StaticResource BooleanToVisibilityConverter}}">
+ <TextBlock Text="{TemplateBinding LeftText}" Foreground="{StaticResource TangoDisabledForegroundBrush}"></TextBlock>
+ </Grid>
+ </Grid>
+
+ <Grid HorizontalAlignment="Left" x:Name="PART_GridEllipse">
+ <Grid Margin="4" x:Name="ellipse" Width="{Binding RelativeSource={ RelativeSource AncestorType=local:TouchToggleSlider},Path=ThumbWidth}">
+ <Border Background="{StaticResource TangoMidAccentBrush}" CornerRadius="{TemplateBinding ThumbCornerRadius}" Width="{Binding RelativeSource={ RelativeSource AncestorType=local:TouchToggleSlider},Path=ThumbWidth}"></Border>
+
+ <Grid HorizontalAlignment="Center" VerticalAlignment="Center" Visibility="{Binding RelativeSource={RelativeSource AncestorType=local:TouchToggleSlider},Path=IsChecked,Converter={StaticResource BooleanToVisibilityInverseConverter}}">
+ <TextBlock Text="{TemplateBinding LeftText}"></TextBlock>
+ </Grid>
+
+ <Grid HorizontalAlignment="Center" VerticalAlignment="Center" Visibility="{Binding RelativeSource={RelativeSource AncestorType=local:TouchToggleSlider},Path=IsChecked,Converter={StaticResource BooleanToVisibilityConverter}}">
+ <TextBlock Text="{TemplateBinding RightText}"></TextBlock>
+ </Grid>
+ </Grid>
+ </Grid>
+ </Grid>
+ </Border>
+ </components:Ripple>
+ </Border>
+ </ControlTemplate>
+ </Setter.Value>
+ </Setter>
+ <Style.Triggers>
+ <Trigger Property="IsChecked" Value="True">
+ <Trigger.EnterActions>
+ <BeginStoryboard>
+ <Storyboard>
+ <ColorAnimation Storyboard.TargetProperty="BorderBrush.Color" To="{StaticResource TangoDividerColor}" Duration="00:00:0.2"></ColorAnimation>
+ <ColorAnimation Storyboard.TargetProperty="ThumbBrush.Color" To="{StaticResource TangoPrimaryBackgroundColor}" Duration="00:00:0.2"></ColorAnimation>
+ </Storyboard>
+ </BeginStoryboard>
+ </Trigger.EnterActions>
+ <Trigger.ExitActions>
+ <BeginStoryboard>
+ <Storyboard>
+ <ColorAnimation Storyboard.TargetProperty="BorderBrush.Color" To="{StaticResource TangoDividerColor}" Duration="00:00:0.2"></ColorAnimation>
+ <ColorAnimation Storyboard.TargetProperty="ThumbBrush.Color" To="{StaticResource TangoPrimaryBackgroundColor}" Duration="00:00:0.2"></ColorAnimation>
+ </Storyboard>
+ </BeginStoryboard>
+ </Trigger.ExitActions>
+ </Trigger>
+ </Style.Triggers>
+ </Style>
+
</ResourceDictionary> \ No newline at end of file
diff --git a/Software/Visual_Studio/Tango.Touch/Helpers/TouchHelper.cs b/Software/Visual_Studio/Tango.Touch/Helpers/TouchHelper.cs
index 4247f37e9..e3ad29be4 100644
--- a/Software/Visual_Studio/Tango.Touch/Helpers/TouchHelper.cs
+++ b/Software/Visual_Studio/Tango.Touch/Helpers/TouchHelper.cs
@@ -18,6 +18,14 @@ namespace Tango.Touch.Helpers
/// </summary>
public static bool IsTouchEnabled()
{
+ const int MAXTOUCHES_INDEX = 95;
+ int maxTouches = GetSystemMetrics(MAXTOUCHES_INDEX);
+
+ if (maxTouches > 0)
+ {
+ return true;
+ }
+
foreach (TabletDevice tabletDevice in Tablet.TabletDevices)
{
if (tabletDevice.Type == TabletDeviceType.Touch && !String.IsNullOrWhiteSpace(tabletDevice.Name))
diff --git a/Software/Visual_Studio/Tango.Touch/Resources/Colors.xaml b/Software/Visual_Studio/Tango.Touch/Resources/Colors.xaml
index 2433ca077..1dc2090aa 100644
--- a/Software/Visual_Studio/Tango.Touch/Resources/Colors.xaml
+++ b/Software/Visual_Studio/Tango.Touch/Resources/Colors.xaml
@@ -56,6 +56,21 @@
<Color x:Key="TangoPowerMenuOpenedBackgroundColor">#4E5470</Color>
+ <Color x:Key="TangoPanelMaskColor">#9E000000</Color>
+ <Color x:Key="TangoPanelMaskColorLight">#55FFFFFF</Color>
+ <Color x:Key="TangoMenuPanelDarkColor">#000131</Color>
+
+ <Color x:Key="Tango_RealTimeGraph_White">#18FFFFFF</Color>
+ <Color x:Key="Tango_RealTimeGraph_Red">#B6FF6F6F</Color>
+ <Color x:Key="Tango_RealTimeGraph_Yellow">#BBFFB84B</Color>
+ <Color x:Key="Tango_RealTimeGraph_Green">#B958C13B</Color>
+ <Color x:Key="Tango_RealTimeGraph_Orange">#BBFA9252</Color>
+
+ <Color x:Key="Tango_RealTimeGraph_ForegroundColor">#7C98B3</Color>
+ <Color x:Key="Tango_RealTimeGraph_OuterBorderColor">#202020</Color>
+ <Color x:Key="Tango_RealTimeGraph_InnerBorderColor">#505050</Color>
+ <Color x:Key="Tango_RealTimeGraph_GridLinesColor">#303030</Color>
+
<!--Brushes-->
<SolidColorBrush x:Key="TangoPrimaryBackgroundBrush" Color="{StaticResource TangoPrimaryBackgroundColor}"></SolidColorBrush>
<SolidColorBrush x:Key="TangoMidBackgroundBrush" Color="{StaticResource TangoMidBackgroundColor}"></SolidColorBrush>
@@ -106,6 +121,9 @@
<SolidColorBrush x:Key="TangoNotificationBarBottomBorderBrush" Color="{StaticResource TangoNotificationBarBottomBorderColor}"></SolidColorBrush>
<SolidColorBrush x:Key="TangoNotificationBarBackgroundBrush" Color="{StaticResource TangoNotificationBarBackgroundColor}"></SolidColorBrush>
+ <SolidColorBrush x:Key="TangoPanelMaskBrush" Color="{StaticResource TangoPanelMaskColor}"></SolidColorBrush>
+ <SolidColorBrush x:Key="TangoPanelMaskBrushLight" Color="{StaticResource TangoPanelMaskColorLight}"></SolidColorBrush>
+
<LinearGradientBrush x:Key="TangoNotificationBackgroundBrush" StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Color="White"/>
<GradientStop Color="White" Offset="1"/>
@@ -120,4 +138,22 @@
<SolidColorBrush x:Key="TangoPopupTitleBackgroundBrush" Color="{StaticResource TangoPopupTitleBackgroundColor}"></SolidColorBrush>
<SolidColorBrush x:Key="TangoPowerMenuOpenedBackgroundBrush" Color="{StaticResource TangoPowerMenuOpenedBackgroundColor}"></SolidColorBrush>
+ <SolidColorBrush x:Key="TangoMenuPanelDarkBrush" Color="{StaticResource TangoMenuPanelDarkColor}"></SolidColorBrush>
+
+ <SolidColorBrush x:Key="Tango_RealTimeGraph_ForegroundBrush" Color="{StaticResource Tango_RealTimeGraph_ForegroundColor}" />
+ <SolidColorBrush x:Key="Tango_RealTimeGraph_OuterBorderBrush" Color="{StaticResource Tango_RealTimeGraph_OuterBorderColor}" />
+ <SolidColorBrush x:Key="Tango_RealTimeGraph_InnerBorderBrush" Color="{StaticResource Tango_RealTimeGraph_InnerBorderColor}" />
+ <SolidColorBrush x:Key="Tango_RealTimeGraph_GridLinesBrush" Color="{StaticResource Tango_RealTimeGraph_GridLinesColor}" />
+
+ <LinearGradientBrush x:Key="Tango_RealTimeGraph_BackgroundBrush" EndPoint="0.5,1" StartPoint="0.5,0" >
+ <GradientStop Color="#202020"/>
+ <GradientStop Color="#FF333333" Offset="1"/>
+ </LinearGradientBrush>
+
+ <SolidColorBrush x:Key="Tango_RealTimeGraph_WhiteBrush" Color="{StaticResource Tango_RealTimeGraph_White}"></SolidColorBrush>
+ <SolidColorBrush x:Key="Tango_RealTimeGraph_RedBrush" Color="{StaticResource Tango_RealTimeGraph_Red}"></SolidColorBrush>
+ <SolidColorBrush x:Key="Tango_RealTimeGraph_YellowBrush" Color="{StaticResource Tango_RealTimeGraph_Yellow}"></SolidColorBrush>
+ <SolidColorBrush x:Key="Tango_RealTimeGraph_GreenBrush" Color="{StaticResource Tango_RealTimeGraph_Green}"></SolidColorBrush>
+ <SolidColorBrush x:Key="Tango_RealTimeGraph_OrangeBrush" Color="{StaticResource Tango_RealTimeGraph_Orange}"></SolidColorBrush>
+
</ResourceDictionary> \ No newline at end of file
diff --git a/Software/Visual_Studio/Tango.Touch/Resources/Fonts.xaml b/Software/Visual_Studio/Tango.Touch/Resources/Fonts.xaml
index f8db0094f..d4990ebf9 100644
--- a/Software/Visual_Studio/Tango.Touch/Resources/Fonts.xaml
+++ b/Software/Visual_Studio/Tango.Touch/Resources/Fonts.xaml
@@ -29,4 +29,6 @@
<sys:Double x:Key="TangoMenuItemFontSize">27</sys:Double>
<sys:Double x:Key="TangoLargeFontSize">46</sys:Double>
+ <sys:Double x:Key="TangoLargeHeaderFontSize">42</sys:Double>
+ <sys:Double x:Key="TangoLargeInfoFontSize">36</sys:Double>
</ResourceDictionary> \ No newline at end of file
diff --git a/Software/Visual_Studio/Tango.Touch/Styles/TouchScrollViewer.xaml b/Software/Visual_Studio/Tango.Touch/Styles/TouchScrollViewer.xaml
index 8c112431e..92cbc71f1 100644
--- a/Software/Visual_Studio/Tango.Touch/Styles/TouchScrollViewer.xaml
+++ b/Software/Visual_Studio/Tango.Touch/Styles/TouchScrollViewer.xaml
@@ -87,5 +87,48 @@
</Setter>
</Style>
+ <Style x:Key="TouchScrollViewerListBox" TargetType="{x:Type controls:TouchScrollViewer}" >
+ <Setter Property="Stylus.IsPressAndHoldEnabled" Value="false"/>
+ <Setter Property="Stylus.IsFlicksEnabled" Value="false"/>
+ <Setter Property="Background" Value="#33000000"/>
+ <Setter Property="BorderBrush" Value="#33000000"/>
+ <Setter Property="Foreground" Value="Gray"/>
+ <Setter Property="BorderThickness" Value="0"/>
+ <Setter Property="Width" Value="5"/>
+ <Setter Property="MinWidth" Value="5"/>
+ <Setter Property="Template">
+ <Setter.Value>
+ <ControlTemplate TargetType="{x:Type ScrollViewer}">
+ <Grid>
+ <Grid.RowDefinitions>
+ <RowDefinition Height="Auto"/>
+ <RowDefinition Height="*"/>
+ </Grid.RowDefinitions>
+
+ <DataGridColumnHeadersPresenter x:Name="PART_ColumnHeadersPresenter" Visibility="Collapsed"/>
+ <ScrollContentPresenter x:Name="PART_ScrollContentPresenter" CanContentScroll="{TemplateBinding CanContentScroll}" Grid.Row="1"/>
+ <ScrollBar Opacity="0" Grid.Row="1" x:Name="PART_VerticalScrollBar" Style="{StaticResource TouchScrollBar}" HorizontalAlignment="Right" AutomationProperties.AutomationId="VerticalScrollBar" Cursor="Arrow" Grid.Column="1" Maximum="{TemplateBinding ScrollableHeight}" Minimum="0" Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}" Value="{Binding VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportHeight}"/>
+ </Grid>
+
+ <ControlTemplate.Triggers>
+ <EventTrigger RoutedEvent="ScrollViewer.ScrollChanged">
+ <EventTrigger.Actions>
+ <BeginStoryboard>
+ <Storyboard>
+ <DoubleAnimationUsingKeyFrames Storyboard.TargetName="PART_VerticalScrollBar" Storyboard.TargetProperty="Opacity" Duration="00:00:03" FillBehavior="Stop">
+ <EasingDoubleKeyFrame KeyTime="00:00:0.2" Value="1"></EasingDoubleKeyFrame>
+ <DiscreteDoubleKeyFrame KeyTime="00:00:2.5" Value="1"></DiscreteDoubleKeyFrame>
+ <EasingDoubleKeyFrame KeyTime="00:00:03" Value="0"></EasingDoubleKeyFrame>
+ </DoubleAnimationUsingKeyFrames>
+ </Storyboard>
+ </BeginStoryboard>
+ </EventTrigger.Actions>
+ </EventTrigger>
+ </ControlTemplate.Triggers>
+ </ControlTemplate>
+ </Setter.Value>
+ </Setter>
+ </Style>
+
</ResourceDictionary> \ No newline at end of file
diff --git a/Software/Visual_Studio/Tango.Touch/Tango.Touch.csproj b/Software/Visual_Studio/Tango.Touch/Tango.Touch.csproj
index 58eb68e45..daa7dc228 100644
--- a/Software/Visual_Studio/Tango.Touch/Tango.Touch.csproj
+++ b/Software/Visual_Studio/Tango.Touch/Tango.Touch.csproj
@@ -67,10 +67,14 @@
<Compile Include="Controls\FocusSelectionMode.cs" />
<Compile Include="Controls\IValueControl.cs" />
<Compile Include="Controls\MessageBoxVM.cs" />
+ <Compile Include="Controls\SliderContentControl.cs" />
+ <Compile Include="Controls\TouchArcProgress.cs" />
<Compile Include="Controls\TouchAutoComplete.cs" />
<Compile Include="Controls\TouchCalendar.cs" />
<Compile Include="Controls\TouchCheckBox.cs" />
<Compile Include="Controls\TouchClickableControl.cs" />
+ <Compile Include="Controls\TouchPanelEurekaNoKeyboard.cs" />
+ <Compile Include="Controls\TouchPanelEureka.cs" />
<Compile Include="TouchColorPickerControls\MultiRangeSlider.cs" />
<Compile Include="TouchColorPickerControls\TouchSliderThreeThumbs.cs" />
<Compile Include="TouchColorPickerControls\TouchColorPickerCMYKControl.cs" />
@@ -131,6 +135,14 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
+ <Page Include="Controls\SliderContentControl.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
+ <Page Include="Controls\TouchArcProgress.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
<Page Include="Controls\TouchAutoComplete.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
@@ -143,6 +155,14 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
+ <Page Include="Controls\TouchPanelEurekaNoKeyboard.xaml">
+ <Generator>MSBuild:Compile</Generator>
+ <SubType>Designer</SubType>
+ </Page>
+ <Page Include="Controls\TouchPanelEureka.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
<Page Include="Styles\TouchCheckBox.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
@@ -492,7 +512,7 @@
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<ProjectExtensions>
<VisualStudio>
- <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" />
+ <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" />
</VisualStudio>
</ProjectExtensions>
</Project> \ No newline at end of file
diff --git a/Software/Visual_Studio/Tango.Touch/Themes/Generic.xaml b/Software/Visual_Studio/Tango.Touch/Themes/Generic.xaml
index 0a9ce1282..188fdddd5 100644
--- a/Software/Visual_Studio/Tango.Touch/Themes/Generic.xaml
+++ b/Software/Visual_Studio/Tango.Touch/Themes/Generic.xaml
@@ -39,6 +39,7 @@
<ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Controls/TouchSlider.xaml" />
<ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Controls/TouchStaticListBox.xaml" />
<ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Controls/TouchRingProgress.xaml" />
+ <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Controls/TouchArcProgress.xaml" />
<ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Controls/TouchNativeListBox.xaml" />
<ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Controls/TouchGifAnimation.xaml" />
<ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Controls/TouchFlatListBox.xaml" />
@@ -65,6 +66,10 @@
<ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Styles/TouchScrollViewer.xaml"/>
<ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Controls/TouchPanel.xaml" />
+ <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Controls/TouchPanelEureka.xaml" />
+ <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Controls/TouchPanelEurekaNoKeyboard.xaml" />
+ <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Controls/SliderContentControl.xaml" />
+
<ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/TouchColorPickerControls/TouchColorPickerSlider.xaml"/>
<ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/TouchColorPickerControls/TouchColorPickerControl.xaml"/>
<ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/TouchColorPickerControls/TouchColorPickerHSBControl.xaml"/>
@@ -73,6 +78,7 @@
<ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/TouchColorPickerControls/TouchColorPickerCMYKControl.xaml"/>
<ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/TouchColorPickerControls/MultiRangeSlider.xaml"/>
<ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/TouchColorPickerControls/TouchSliderThreeThumbs.xaml"/>
+
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
diff --git a/Software/Visual_Studio/Tango.Touch/TouchColorPickerControls/MultiRangeSlider.cs b/Software/Visual_Studio/Tango.Touch/TouchColorPickerControls/MultiRangeSlider.cs
index 31342159d..9c33abf59 100644
--- a/Software/Visual_Studio/Tango.Touch/TouchColorPickerControls/MultiRangeSlider.cs
+++ b/Software/Visual_Studio/Tango.Touch/TouchColorPickerControls/MultiRangeSlider.cs
@@ -62,7 +62,7 @@ namespace Tango.Touch.Controls
/// </summary>
public static readonly DependencyProperty MaximumValueProperty =
DependencyProperty.RegisterAttached("MaximumValue", typeof(double), typeof(MultiRangeSlider),
- new FrameworkPropertyMetadata(100.0, MaximumValueChanged));
+ new FrameworkPropertyMetadata(100.0, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, MaximumValueChanged));
public bool IsSelected
{
diff --git a/Software/Visual_Studio/Tango.Transport/Adapters/UsbSerialBaudRates.cs b/Software/Visual_Studio/Tango.Transport/Adapters/UsbSerialBaudRates.cs
index eade1deb6..c92d0f13a 100644
--- a/Software/Visual_Studio/Tango.Transport/Adapters/UsbSerialBaudRates.cs
+++ b/Software/Visual_Studio/Tango.Transport/Adapters/UsbSerialBaudRates.cs
@@ -14,9 +14,23 @@ namespace Tango.Transport.Adapters
{
[Description("9600")]
BR_9600 = 9600,
+
[Description("19200")]
BR_19200 = 19200,
+
[Description("115200")]
BR_115200 = 115200,
+
+ [Description("1000000")]
+ BR_1000000 = 1000000,
+
+ [Description("2500000")]
+ BR_2500000 = 2500000,
+
+ [Description("4000000")]
+ BR_4000000 = 4000000,
+
+ [Description("5000000")]
+ BR_5000000 = 5000000,
}
}
diff --git a/Software/Visual_Studio/Tango.Transport/Discovery/TcpValidationInfo.cs b/Software/Visual_Studio/Tango.Transport/Discovery/TcpValidationInfo.cs
index 8dd3aedf0..70559ebd4 100644
--- a/Software/Visual_Studio/Tango.Transport/Discovery/TcpValidationInfo.cs
+++ b/Software/Visual_Studio/Tango.Transport/Discovery/TcpValidationInfo.cs
@@ -10,5 +10,6 @@ namespace Tango.Transport.Discovery
{
public String SerialNumber { get; set; }
public String Guid { get; set; }
+ public int MachineType { get; set; }
}
}
diff --git a/Software/Visual_Studio/Tango.Transport/Discovery/UdpDiscoveryService.cs b/Software/Visual_Studio/Tango.Transport/Discovery/UdpDiscoveryService.cs
index 3e714325b..f593a6ea6 100644
--- a/Software/Visual_Studio/Tango.Transport/Discovery/UdpDiscoveryService.cs
+++ b/Software/Visual_Studio/Tango.Transport/Discovery/UdpDiscoveryService.cs
@@ -10,6 +10,7 @@ using System.Threading.Tasks;
using System.Timers;
using Tango.Core;
using Tango.Core.ExtensionMethods;
+using Tango.Logging;
using Tango.PMR.Discovery;
using Tango.PMR.Integration;
using Tango.Transport.Helpers;
@@ -190,7 +191,7 @@ namespace Tango.Transport.Discovery
}
catch (Exception ex)
{
- LogManager.Log(ex, "Error multicasting discovery packet.");
+ LogManager.Log(ex, LogCategory.Debug, "Error multicasting discovery packet.");
}
}
}
diff --git a/Software/Visual_Studio/Tango.Transport/Tango.Transport.csproj b/Software/Visual_Studio/Tango.Transport/Tango.Transport.csproj
index b45138dff..34e276017 100644
--- a/Software/Visual_Studio/Tango.Transport/Tango.Transport.csproj
+++ b/Software/Visual_Studio/Tango.Transport/Tango.Transport.csproj
@@ -193,7 +193,7 @@
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<ProjectExtensions>
<VisualStudio>
- <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" />
+ <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" />
</VisualStudio>
</ProjectExtensions>
</Project> \ No newline at end of file
diff --git a/Software/Visual_Studio/Tango.Web/DeploymentSlot.cs b/Software/Visual_Studio/Tango.Web/DeploymentSlot.cs
index 0e470a735..d8c64363c 100644
--- a/Software/Visual_Studio/Tango.Web/DeploymentSlot.cs
+++ b/Software/Visual_Studio/Tango.Web/DeploymentSlot.cs
@@ -29,6 +29,9 @@ namespace Tango.Web
STAGE,
[Description("Production")]
[DeploymentSlotAddress("https://machineservice.twine-srv.com")]
- PROD
+ PROD,
+ [Description("BB")]
+ [DeploymentSlotAddress("https://machineservice-machineservice-bb.azurewebsites.net")]
+ BB
}
}
diff --git a/Software/Visual_Studio/Tango.sln b/Software/Visual_Studio/Tango.sln
index c0da46b64..674867a7c 100644
--- a/Software/Visual_Studio/Tango.sln
+++ b/Software/Visual_Studio/Tango.sln
@@ -497,6 +497,16 @@ Global
Debug|ARM64 = Debug|ARM64
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
+ Eureka_Debug|Any CPU = Eureka_Debug|Any CPU
+ Eureka_Debug|ARM = Eureka_Debug|ARM
+ Eureka_Debug|ARM64 = Eureka_Debug|ARM64
+ Eureka_Debug|x64 = Eureka_Debug|x64
+ Eureka_Debug|x86 = Eureka_Debug|x86
+ Eureka|Any CPU = Eureka|Any CPU
+ Eureka|ARM = Eureka|ARM
+ Eureka|ARM64 = Eureka|ARM64
+ Eureka|x64 = Eureka|x64
+ Eureka|x86 = Eureka|x86
Release 4.0|Any CPU = Release 4.0|Any CPU
Release 4.0|ARM = Release 4.0|ARM
Release 4.0|ARM64 = Release 4.0|ARM64
@@ -549,6 +559,26 @@ Global
{40073806-914E-4E78-97AB-FA9639308EBE}.Debug|x64.Build.0 = Debug|Any CPU
{40073806-914E-4E78-97AB-FA9639308EBE}.Debug|x86.ActiveCfg = Debug|Any CPU
{40073806-914E-4E78-97AB-FA9639308EBE}.Debug|x86.Build.0 = Debug|Any CPU
+ {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka|ARM.Build.0 = Release|Any CPU
+ {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka|x64.Build.0 = Release|Any CPU
+ {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {40073806-914E-4E78-97AB-FA9639308EBE}.Eureka|x86.Build.0 = Release|Any CPU
{40073806-914E-4E78-97AB-FA9639308EBE}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{40073806-914E-4E78-97AB-FA9639308EBE}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{40073806-914E-4E78-97AB-FA9639308EBE}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -629,6 +659,26 @@ Global
{A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Debug|x64.Build.0 = Debug|Any CPU
{A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Debug|x86.ActiveCfg = Debug|Any CPU
{A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Debug|x86.Build.0 = Debug|Any CPU
+ {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka|ARM.Build.0 = Release|Any CPU
+ {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka|x64.Build.0 = Release|Any CPU
+ {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Eureka|x86.Build.0 = Release|Any CPU
{A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -709,6 +759,26 @@ Global
{37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Debug|x64.Build.0 = Debug|Any CPU
{37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Debug|x86.ActiveCfg = Debug|Any CPU
{37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Debug|x86.Build.0 = Debug|Any CPU
+ {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka|ARM.Build.0 = Release|Any CPU
+ {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka|x64.Build.0 = Release|Any CPU
+ {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Eureka|x86.Build.0 = Release|Any CPU
{37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -789,6 +859,26 @@ Global
{DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Debug|x64.Build.0 = Debug|Any CPU
{DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Debug|x86.ActiveCfg = Debug|Any CPU
{DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Debug|x86.Build.0 = Debug|Any CPU
+ {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka|Any CPU.ActiveCfg = Debug|Any CPU
+ {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka|Any CPU.Build.0 = Debug|Any CPU
+ {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka|ARM.Build.0 = Release|Any CPU
+ {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka|x64.Build.0 = Release|Any CPU
+ {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Eureka|x86.Build.0 = Release|Any CPU
{DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -869,6 +959,26 @@ Global
{BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Debug|x64.Build.0 = Debug|Any CPU
{BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Debug|x86.ActiveCfg = Debug|Any CPU
{BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Debug|x86.Build.0 = Debug|Any CPU
+ {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka|ARM.Build.0 = Release|Any CPU
+ {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka|x64.Build.0 = Release|Any CPU
+ {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Eureka|x86.Build.0 = Release|Any CPU
{BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -949,6 +1059,25 @@ Global
{FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Debug|x64.Build.0 = Debug|Any CPU
{FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Debug|x86.ActiveCfg = Debug|Any CPU
{FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Debug|x86.Build.0 = Debug|Any CPU
+ {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Eureka|ARM.Build.0 = Release|Any CPU
+ {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Eureka|x64.Build.0 = Release|Any CPU
+ {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Eureka|x86.Build.0 = Release|Any CPU
{FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -1028,6 +1157,26 @@ Global
{E4927038-348D-4295-AAF4-861C58CB3943}.Debug|x64.Build.0 = Debug|Any CPU
{E4927038-348D-4295-AAF4-861C58CB3943}.Debug|x86.ActiveCfg = Debug|Any CPU
{E4927038-348D-4295-AAF4-861C58CB3943}.Debug|x86.Build.0 = Debug|Any CPU
+ {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka|ARM.Build.0 = Release|Any CPU
+ {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka|x64.Build.0 = Release|Any CPU
+ {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {E4927038-348D-4295-AAF4-861C58CB3943}.Eureka|x86.Build.0 = Release|Any CPU
{E4927038-348D-4295-AAF4-861C58CB3943}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{E4927038-348D-4295-AAF4-861C58CB3943}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{E4927038-348D-4295-AAF4-861C58CB3943}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -1108,6 +1257,26 @@ Global
{74E700B0-1156-4126-BE40-EE450D3C3026}.Debug|x64.Build.0 = Debug|Any CPU
{74E700B0-1156-4126-BE40-EE450D3C3026}.Debug|x86.ActiveCfg = Debug|Any CPU
{74E700B0-1156-4126-BE40-EE450D3C3026}.Debug|x86.Build.0 = Debug|Any CPU
+ {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka|ARM.Build.0 = Release|Any CPU
+ {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka|x64.Build.0 = Release|Any CPU
+ {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {74E700B0-1156-4126-BE40-EE450D3C3026}.Eureka|x86.Build.0 = Release|Any CPU
{74E700B0-1156-4126-BE40-EE450D3C3026}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{74E700B0-1156-4126-BE40-EE450D3C3026}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{74E700B0-1156-4126-BE40-EE450D3C3026}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -1188,6 +1357,26 @@ Global
{63561E19-FF5A-414B-A5EF-E30711543E1D}.Debug|x64.Build.0 = Debug|Any CPU
{63561E19-FF5A-414B-A5EF-E30711543E1D}.Debug|x86.ActiveCfg = Debug|Any CPU
{63561E19-FF5A-414B-A5EF-E30711543E1D}.Debug|x86.Build.0 = Debug|Any CPU
+ {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka|ARM.Build.0 = Release|Any CPU
+ {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka|x64.Build.0 = Release|Any CPU
+ {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {63561E19-FF5A-414B-A5EF-E30711543E1D}.Eureka|x86.Build.0 = Release|Any CPU
{63561E19-FF5A-414B-A5EF-E30711543E1D}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{63561E19-FF5A-414B-A5EF-E30711543E1D}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{63561E19-FF5A-414B-A5EF-E30711543E1D}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -1268,6 +1457,26 @@ Global
{1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Debug|x64.Build.0 = Debug|Any CPU
{1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Debug|x86.ActiveCfg = Debug|Any CPU
{1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Debug|x86.Build.0 = Debug|Any CPU
+ {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka|ARM.Build.0 = Release|Any CPU
+ {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka|x64.Build.0 = Release|Any CPU
+ {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Eureka|x86.Build.0 = Release|Any CPU
{1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -1348,6 +1557,26 @@ Global
{1981B537-39E9-4E7D-8430-27466481AEEE}.Debug|x64.Build.0 = Debug|Any CPU
{1981B537-39E9-4E7D-8430-27466481AEEE}.Debug|x86.ActiveCfg = Debug|Any CPU
{1981B537-39E9-4E7D-8430-27466481AEEE}.Debug|x86.Build.0 = Debug|Any CPU
+ {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka|ARM.Build.0 = Release|Any CPU
+ {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka|x64.Build.0 = Release|Any CPU
+ {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {1981B537-39E9-4E7D-8430-27466481AEEE}.Eureka|x86.Build.0 = Release|Any CPU
{1981B537-39E9-4E7D-8430-27466481AEEE}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{1981B537-39E9-4E7D-8430-27466481AEEE}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{1981B537-39E9-4E7D-8430-27466481AEEE}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -1424,6 +1653,19 @@ Global
{35397DDA-DDC7-46BE-A802-3B722B6858E9}.Debug|x64.ActiveCfg = Debug|x64
{35397DDA-DDC7-46BE-A802-3B722B6858E9}.Debug|x64.Build.0 = Debug|x64
{35397DDA-DDC7-46BE-A802-3B722B6858E9}.Debug|x86.ActiveCfg = Debug|Win32
+ {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Win32
+ {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Eureka_Debug|ARM.ActiveCfg = Debug|Win32
+ {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Eureka_Debug|ARM64.ActiveCfg = Debug|Win32
+ {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Eureka_Debug|x64.ActiveCfg = Debug|x64
+ {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Eureka_Debug|x64.Build.0 = Debug|x64
+ {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Eureka_Debug|x86.ActiveCfg = Debug|Win32
+ {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Eureka|Any CPU.ActiveCfg = Release|Win32
+ {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Eureka|ARM.ActiveCfg = Release|Win32
+ {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Eureka|ARM64.ActiveCfg = Release|Win32
+ {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Eureka|x64.ActiveCfg = Release|x64
+ {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Eureka|x64.Build.0 = Release|x64
+ {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Eureka|x86.ActiveCfg = Release|Win32
+ {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Eureka|x86.Build.0 = Release|Win32
{35397DDA-DDC7-46BE-A802-3B722B6858E9}.Release 4.0|Any CPU.ActiveCfg = Release|x64
{35397DDA-DDC7-46BE-A802-3B722B6858E9}.Release 4.0|Any CPU.Build.0 = Release|x64
{35397DDA-DDC7-46BE-A802-3B722B6858E9}.Release 4.0|ARM.ActiveCfg = Release|x64
@@ -1500,6 +1742,26 @@ Global
{37EE62DF-A988-45AF-BB30-DD3245164188}.Debug|x64.Build.0 = Debug|Any CPU
{37EE62DF-A988-45AF-BB30-DD3245164188}.Debug|x86.ActiveCfg = Debug|Any CPU
{37EE62DF-A988-45AF-BB30-DD3245164188}.Debug|x86.Build.0 = Debug|Any CPU
+ {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka|ARM.Build.0 = Release|Any CPU
+ {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka|x64.Build.0 = Release|Any CPU
+ {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {37EE62DF-A988-45AF-BB30-DD3245164188}.Eureka|x86.Build.0 = Release|Any CPU
{37EE62DF-A988-45AF-BB30-DD3245164188}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{37EE62DF-A988-45AF-BB30-DD3245164188}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{37EE62DF-A988-45AF-BB30-DD3245164188}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -1580,6 +1842,26 @@ Global
{3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Debug|x64.Build.0 = Debug|Any CPU
{3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Debug|x86.ActiveCfg = Debug|Any CPU
{3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Debug|x86.Build.0 = Debug|Any CPU
+ {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka|ARM.Build.0 = Release|Any CPU
+ {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka|x64.Build.0 = Release|Any CPU
+ {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Eureka|x86.Build.0 = Release|Any CPU
{3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -1660,6 +1942,26 @@ Global
{7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Debug|x64.Build.0 = Debug|Any CPU
{7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Debug|x86.ActiveCfg = Debug|Any CPU
{7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Debug|x86.Build.0 = Debug|Any CPU
+ {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka|ARM.Build.0 = Release|Any CPU
+ {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka|x64.Build.0 = Release|Any CPU
+ {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Eureka|x86.Build.0 = Release|Any CPU
{7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -1740,6 +2042,26 @@ Global
{ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Debug|x64.Build.0 = Debug|Any CPU
{ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Debug|x86.ActiveCfg = Debug|Any CPU
{ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Debug|x86.Build.0 = Debug|Any CPU
+ {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka|ARM.Build.0 = Release|Any CPU
+ {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka|x64.Build.0 = Release|Any CPU
+ {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Eureka|x86.Build.0 = Release|Any CPU
{ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -1820,6 +2142,26 @@ Global
{38197109-8610-4D3F-92B9-16D48DF94D7C}.Debug|x64.Build.0 = Debug|Any CPU
{38197109-8610-4D3F-92B9-16D48DF94D7C}.Debug|x86.ActiveCfg = Debug|Any CPU
{38197109-8610-4D3F-92B9-16D48DF94D7C}.Debug|x86.Build.0 = Debug|Any CPU
+ {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka|ARM.Build.0 = Release|Any CPU
+ {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka|x64.Build.0 = Release|Any CPU
+ {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {38197109-8610-4D3F-92B9-16D48DF94D7C}.Eureka|x86.Build.0 = Release|Any CPU
{38197109-8610-4D3F-92B9-16D48DF94D7C}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{38197109-8610-4D3F-92B9-16D48DF94D7C}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{38197109-8610-4D3F-92B9-16D48DF94D7C}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -1900,6 +2242,26 @@ Global
{0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Debug|x64.Build.0 = Debug|Any CPU
{0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Debug|x86.ActiveCfg = Debug|Any CPU
{0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Debug|x86.Build.0 = Debug|Any CPU
+ {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka|ARM.Build.0 = Release|Any CPU
+ {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka|x64.Build.0 = Release|Any CPU
+ {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Eureka|x86.Build.0 = Release|Any CPU
{0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -1980,6 +2342,26 @@ Global
{D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Debug|x64.Build.0 = Debug|Any CPU
{D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Debug|x86.ActiveCfg = Debug|Any CPU
{D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Debug|x86.Build.0 = Debug|Any CPU
+ {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka|ARM.Build.0 = Release|Any CPU
+ {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka|x64.Build.0 = Release|Any CPU
+ {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Eureka|x86.Build.0 = Release|Any CPU
{D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -2060,6 +2442,26 @@ Global
{22F87980-E990-4686-BE81-BE63D562C4D5}.Debug|x64.Build.0 = Debug|Any CPU
{22F87980-E990-4686-BE81-BE63D562C4D5}.Debug|x86.ActiveCfg = Debug|Any CPU
{22F87980-E990-4686-BE81-BE63D562C4D5}.Debug|x86.Build.0 = Debug|Any CPU
+ {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka|ARM.Build.0 = Release|Any CPU
+ {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka|x64.Build.0 = Release|Any CPU
+ {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {22F87980-E990-4686-BE81-BE63D562C4D5}.Eureka|x86.Build.0 = Release|Any CPU
{22F87980-E990-4686-BE81-BE63D562C4D5}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{22F87980-E990-4686-BE81-BE63D562C4D5}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{22F87980-E990-4686-BE81-BE63D562C4D5}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -2140,6 +2542,26 @@ Global
{CAEDAE94-11ED-473C-888A-268A6D38CD20}.Debug|x64.Build.0 = Debug|Any CPU
{CAEDAE94-11ED-473C-888A-268A6D38CD20}.Debug|x86.ActiveCfg = Debug|Any CPU
{CAEDAE94-11ED-473C-888A-268A6D38CD20}.Debug|x86.Build.0 = Debug|Any CPU
+ {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka|ARM.Build.0 = Release|Any CPU
+ {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka|x64.Build.0 = Release|Any CPU
+ {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Eureka|x86.Build.0 = Release|Any CPU
{CAEDAE94-11ED-473C-888A-268A6D38CD20}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{CAEDAE94-11ED-473C-888A-268A6D38CD20}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{CAEDAE94-11ED-473C-888A-268A6D38CD20}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -2220,6 +2642,26 @@ Global
{BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Debug|x64.Build.0 = Debug|Any CPU
{BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Debug|x86.ActiveCfg = Debug|Any CPU
{BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Debug|x86.Build.0 = Debug|Any CPU
+ {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka|ARM.Build.0 = Release|Any CPU
+ {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka|x64.Build.0 = Release|Any CPU
+ {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Eureka|x86.Build.0 = Release|Any CPU
{BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -2300,6 +2742,26 @@ Global
{FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Debug|x64.Build.0 = Debug|Any CPU
{FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Debug|x86.ActiveCfg = Debug|Any CPU
{FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Debug|x86.Build.0 = Debug|Any CPU
+ {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka|ARM.Build.0 = Release|Any CPU
+ {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka|x64.Build.0 = Release|Any CPU
+ {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Eureka|x86.Build.0 = Release|Any CPU
{FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -2380,6 +2842,26 @@ Global
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|x64.Build.0 = Debug|Any CPU
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|x86.ActiveCfg = Debug|Any CPU
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|x86.Build.0 = Debug|Any CPU
+ {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka_Debug|Any CPU.ActiveCfg = Release|Any CPU
+ {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka_Debug|Any CPU.Build.0 = Release|Any CPU
+ {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka|ARM.Build.0 = Release|Any CPU
+ {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka|x64.Build.0 = Release|Any CPU
+ {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Eureka|x86.Build.0 = Release|Any CPU
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -2460,6 +2942,26 @@ Global
{401989E7-AE1E-4002-B0EE-9A9F63740B97}.Debug|x64.Build.0 = Debug|Any CPU
{401989E7-AE1E-4002-B0EE-9A9F63740B97}.Debug|x86.ActiveCfg = Debug|Any CPU
{401989E7-AE1E-4002-B0EE-9A9F63740B97}.Debug|x86.Build.0 = Debug|Any CPU
+ {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka|ARM.Build.0 = Release|Any CPU
+ {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka|x64.Build.0 = Release|Any CPU
+ {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Eureka|x86.Build.0 = Release|Any CPU
{401989E7-AE1E-4002-B0EE-9A9F63740B97}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{401989E7-AE1E-4002-B0EE-9A9F63740B97}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{401989E7-AE1E-4002-B0EE-9A9F63740B97}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -2540,6 +3042,26 @@ Global
{8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Debug|x64.Build.0 = Debug|Any CPU
{8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Debug|x86.ActiveCfg = Debug|Any CPU
{8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Debug|x86.Build.0 = Debug|Any CPU
+ {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka|ARM.Build.0 = Release|Any CPU
+ {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka|x64.Build.0 = Release|Any CPU
+ {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Eureka|x86.Build.0 = Release|Any CPU
{8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -2620,6 +3142,25 @@ Global
{EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Debug|x64.Build.0 = Debug|Any CPU
{EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Debug|x86.ActiveCfg = Debug|Any CPU
{EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Debug|x86.Build.0 = Debug|Any CPU
+ {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Eureka|ARM.Build.0 = Release|Any CPU
+ {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Eureka|x64.Build.0 = Release|Any CPU
+ {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Eureka|x86.Build.0 = Release|Any CPU
{EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -2698,6 +3239,26 @@ Global
{116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Debug|x64.Build.0 = Debug|Any CPU
{116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Debug|x86.ActiveCfg = Debug|Any CPU
{116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Debug|x86.Build.0 = Debug|Any CPU
+ {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka|ARM.Build.0 = Release|Any CPU
+ {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka|x64.Build.0 = Release|Any CPU
+ {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Eureka|x86.Build.0 = Release|Any CPU
{116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -2778,6 +3339,26 @@ Global
{CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Debug|x64.Build.0 = Debug|Any CPU
{CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Debug|x86.ActiveCfg = Debug|Any CPU
{CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Debug|x86.Build.0 = Debug|Any CPU
+ {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka|ARM.Build.0 = Release|Any CPU
+ {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka|x64.Build.0 = Release|Any CPU
+ {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Eureka|x86.Build.0 = Release|Any CPU
{CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -2858,6 +3439,26 @@ Global
{CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Debug|x64.Build.0 = Debug|Any CPU
{CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Debug|x86.ActiveCfg = Debug|Any CPU
{CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Debug|x86.Build.0 = Debug|Any CPU
+ {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka|ARM.Build.0 = Release|Any CPU
+ {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka|x64.Build.0 = Release|Any CPU
+ {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Eureka|x86.Build.0 = Release|Any CPU
{CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -2938,6 +3539,26 @@ Global
{A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Debug|x64.Build.0 = Debug|Any CPU
{A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Debug|x86.ActiveCfg = Debug|Any CPU
{A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Debug|x86.Build.0 = Debug|Any CPU
+ {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka|ARM.Build.0 = Release|Any CPU
+ {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka|x64.Build.0 = Release|Any CPU
+ {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Eureka|x86.Build.0 = Release|Any CPU
{A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -3018,6 +3639,26 @@ Global
{BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Debug|x64.Build.0 = Debug|Any CPU
{BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Debug|x86.ActiveCfg = Debug|Any CPU
{BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Debug|x86.Build.0 = Debug|Any CPU
+ {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka|ARM.Build.0 = Release|Any CPU
+ {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka|x64.Build.0 = Release|Any CPU
+ {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Eureka|x86.Build.0 = Release|Any CPU
{BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -3098,6 +3739,26 @@ Global
{4206AC58-3B57-4699-8835-90BF6DB01A61}.Debug|x64.Build.0 = Debug|Any CPU
{4206AC58-3B57-4699-8835-90BF6DB01A61}.Debug|x86.ActiveCfg = Debug|Any CPU
{4206AC58-3B57-4699-8835-90BF6DB01A61}.Debug|x86.Build.0 = Debug|Any CPU
+ {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka|ARM.Build.0 = Release|Any CPU
+ {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka|x64.Build.0 = Release|Any CPU
+ {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {4206AC58-3B57-4699-8835-90BF6DB01A61}.Eureka|x86.Build.0 = Release|Any CPU
{4206AC58-3B57-4699-8835-90BF6DB01A61}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{4206AC58-3B57-4699-8835-90BF6DB01A61}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{4206AC58-3B57-4699-8835-90BF6DB01A61}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -3178,6 +3839,26 @@ Global
{22C2AA72-9493-4D0D-B421-8EF9789FB192}.Debug|x64.Build.0 = Debug|Any CPU
{22C2AA72-9493-4D0D-B421-8EF9789FB192}.Debug|x86.ActiveCfg = Debug|Any CPU
{22C2AA72-9493-4D0D-B421-8EF9789FB192}.Debug|x86.Build.0 = Debug|Any CPU
+ {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka|ARM.Build.0 = Release|Any CPU
+ {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka|x64.Build.0 = Release|Any CPU
+ {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Eureka|x86.Build.0 = Release|Any CPU
{22C2AA72-9493-4D0D-B421-8EF9789FB192}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{22C2AA72-9493-4D0D-B421-8EF9789FB192}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{22C2AA72-9493-4D0D-B421-8EF9789FB192}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -3258,6 +3939,26 @@ Global
{D0CE8122-077D-42A2-9490-028AE4769B52}.Debug|x64.Build.0 = Debug|Any CPU
{D0CE8122-077D-42A2-9490-028AE4769B52}.Debug|x86.ActiveCfg = Debug|Any CPU
{D0CE8122-077D-42A2-9490-028AE4769B52}.Debug|x86.Build.0 = Debug|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka|ARM.Build.0 = Release|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka|x64.Build.0 = Release|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Eureka|x86.Build.0 = Release|Any CPU
{D0CE8122-077D-42A2-9490-028AE4769B52}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{D0CE8122-077D-42A2-9490-028AE4769B52}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{D0CE8122-077D-42A2-9490-028AE4769B52}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -3338,6 +4039,26 @@ Global
{B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Debug|x64.Build.0 = Debug|Any CPU
{B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Debug|x86.ActiveCfg = Debug|Any CPU
{B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Debug|x86.Build.0 = Debug|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka|ARM.Build.0 = Release|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka|x64.Build.0 = Release|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Eureka|x86.Build.0 = Release|Any CPU
{B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -3418,6 +4139,26 @@ Global
{5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Debug|x64.Build.0 = Debug|Any CPU
{5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Debug|x86.ActiveCfg = Debug|Any CPU
{5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Debug|x86.Build.0 = Debug|Any CPU
+ {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka|ARM.Build.0 = Release|Any CPU
+ {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka|x64.Build.0 = Release|Any CPU
+ {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Eureka|x86.Build.0 = Release|Any CPU
{5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -3497,6 +4238,24 @@ Global
{8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Debug|x64.Build.0 = Debug|Any CPU
{8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Debug|x86.ActiveCfg = Debug|Any CPU
{8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Debug|x86.Build.0 = Debug|Any CPU
+ {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Eureka|ARM.Build.0 = Release|Any CPU
+ {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Eureka|x64.Build.0 = Release|Any CPU
+ {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Eureka|x86.Build.0 = Release|Any CPU
{8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -3576,6 +4335,26 @@ Global
{37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Debug|x64.Build.0 = Debug|Any CPU
{37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Debug|x86.ActiveCfg = Debug|Any CPU
{37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Debug|x86.Build.0 = Debug|Any CPU
+ {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka|ARM.Build.0 = Release|Any CPU
+ {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka|x64.Build.0 = Release|Any CPU
+ {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Eureka|x86.Build.0 = Release|Any CPU
{37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -3656,6 +4435,26 @@ Global
{9652F972-2BD1-4283-99CB-FC6240434C17}.Debug|x64.Build.0 = Debug|Any CPU
{9652F972-2BD1-4283-99CB-FC6240434C17}.Debug|x86.ActiveCfg = Debug|Any CPU
{9652F972-2BD1-4283-99CB-FC6240434C17}.Debug|x86.Build.0 = Debug|Any CPU
+ {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka|ARM.Build.0 = Release|Any CPU
+ {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka|x64.Build.0 = Release|Any CPU
+ {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {9652F972-2BD1-4283-99CB-FC6240434C17}.Eureka|x86.Build.0 = Release|Any CPU
{9652F972-2BD1-4283-99CB-FC6240434C17}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{9652F972-2BD1-4283-99CB-FC6240434C17}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{9652F972-2BD1-4283-99CB-FC6240434C17}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -3736,6 +4535,25 @@ Global
{5B954D98-4020-4AC6-939F-C52B5646E8E6}.Debug|x64.Build.0 = Debug|Any CPU
{5B954D98-4020-4AC6-939F-C52B5646E8E6}.Debug|x86.ActiveCfg = Debug|Any CPU
{5B954D98-4020-4AC6-939F-C52B5646E8E6}.Debug|x86.Build.0 = Debug|Any CPU
+ {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Eureka|ARM.Build.0 = Release|Any CPU
+ {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Eureka|x64.Build.0 = Release|Any CPU
+ {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Eureka|x86.Build.0 = Release|Any CPU
{5B954D98-4020-4AC6-939F-C52B5646E8E6}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{5B954D98-4020-4AC6-939F-C52B5646E8E6}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{5B954D98-4020-4AC6-939F-C52B5646E8E6}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -3815,6 +4633,26 @@ Global
{DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Debug|x64.Build.0 = Debug|Any CPU
{DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Debug|x86.ActiveCfg = Debug|Any CPU
{DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Debug|x86.Build.0 = Debug|Any CPU
+ {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka|ARM.Build.0 = Release|Any CPU
+ {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka|x64.Build.0 = Release|Any CPU
+ {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Eureka|x86.Build.0 = Release|Any CPU
{DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -3895,6 +4733,26 @@ Global
{CF7C0FF4-9440-42CF-83B8-C060772792D4}.Debug|x64.Build.0 = Debug|Any CPU
{CF7C0FF4-9440-42CF-83B8-C060772792D4}.Debug|x86.ActiveCfg = Debug|Any CPU
{CF7C0FF4-9440-42CF-83B8-C060772792D4}.Debug|x86.Build.0 = Debug|Any CPU
+ {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka|ARM.Build.0 = Release|Any CPU
+ {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka|x64.Build.0 = Release|Any CPU
+ {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Eureka|x86.Build.0 = Release|Any CPU
{CF7C0FF4-9440-42CF-83B8-C060772792D4}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{CF7C0FF4-9440-42CF-83B8-C060772792D4}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{CF7C0FF4-9440-42CF-83B8-C060772792D4}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -3975,6 +4833,26 @@ Global
{FC337A7F-1214-41D8-9992-78092A3B961E}.Debug|x64.Build.0 = Debug|Any CPU
{FC337A7F-1214-41D8-9992-78092A3B961E}.Debug|x86.ActiveCfg = Debug|Any CPU
{FC337A7F-1214-41D8-9992-78092A3B961E}.Debug|x86.Build.0 = Debug|Any CPU
+ {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka|ARM.Build.0 = Release|Any CPU
+ {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka|x64.Build.0 = Release|Any CPU
+ {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {FC337A7F-1214-41D8-9992-78092A3B961E}.Eureka|x86.Build.0 = Release|Any CPU
{FC337A7F-1214-41D8-9992-78092A3B961E}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{FC337A7F-1214-41D8-9992-78092A3B961E}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{FC337A7F-1214-41D8-9992-78092A3B961E}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -4055,6 +4933,26 @@ Global
{844787CE-F409-4F18-BCCC-F3809ECB86F3}.Debug|x64.Build.0 = Debug|Any CPU
{844787CE-F409-4F18-BCCC-F3809ECB86F3}.Debug|x86.ActiveCfg = Debug|Any CPU
{844787CE-F409-4F18-BCCC-F3809ECB86F3}.Debug|x86.Build.0 = Debug|Any CPU
+ {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka|ARM.Build.0 = Release|Any CPU
+ {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka|x64.Build.0 = Release|Any CPU
+ {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Eureka|x86.Build.0 = Release|Any CPU
{844787CE-F409-4F18-BCCC-F3809ECB86F3}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{844787CE-F409-4F18-BCCC-F3809ECB86F3}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{844787CE-F409-4F18-BCCC-F3809ECB86F3}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -4135,6 +5033,26 @@ Global
{9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Debug|x64.Build.0 = Debug|Any CPU
{9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Debug|x86.ActiveCfg = Debug|Any CPU
{9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Debug|x86.Build.0 = Debug|Any CPU
+ {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka|ARM.Build.0 = Release|Any CPU
+ {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka|x64.Build.0 = Release|Any CPU
+ {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Eureka|x86.Build.0 = Release|Any CPU
{9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -4211,6 +5129,19 @@ Global
{BD30C7BD-9230-4ED7-B581-11F14041909D}.Debug|x64.ActiveCfg = Debug|Win32
{BD30C7BD-9230-4ED7-B581-11F14041909D}.Debug|x86.ActiveCfg = Debug|Win32
{BD30C7BD-9230-4ED7-B581-11F14041909D}.Debug|x86.Build.0 = Debug|Win32
+ {BD30C7BD-9230-4ED7-B581-11F14041909D}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Win32
+ {BD30C7BD-9230-4ED7-B581-11F14041909D}.Eureka_Debug|ARM.ActiveCfg = Debug|Win32
+ {BD30C7BD-9230-4ED7-B581-11F14041909D}.Eureka_Debug|ARM64.ActiveCfg = Debug|Win32
+ {BD30C7BD-9230-4ED7-B581-11F14041909D}.Eureka_Debug|x64.ActiveCfg = Debug|Win32
+ {BD30C7BD-9230-4ED7-B581-11F14041909D}.Eureka_Debug|x86.ActiveCfg = Debug|Win32
+ {BD30C7BD-9230-4ED7-B581-11F14041909D}.Eureka_Debug|x86.Build.0 = Debug|Win32
+ {BD30C7BD-9230-4ED7-B581-11F14041909D}.Eureka|Any CPU.ActiveCfg = Release|Win32
+ {BD30C7BD-9230-4ED7-B581-11F14041909D}.Eureka|Any CPU.Build.0 = Release|Win32
+ {BD30C7BD-9230-4ED7-B581-11F14041909D}.Eureka|ARM.ActiveCfg = Release|Win32
+ {BD30C7BD-9230-4ED7-B581-11F14041909D}.Eureka|ARM64.ActiveCfg = Release|Win32
+ {BD30C7BD-9230-4ED7-B581-11F14041909D}.Eureka|x64.ActiveCfg = Release|Win32
+ {BD30C7BD-9230-4ED7-B581-11F14041909D}.Eureka|x86.ActiveCfg = Release|Win32
+ {BD30C7BD-9230-4ED7-B581-11F14041909D}.Eureka|x86.Build.0 = Release|Win32
{BD30C7BD-9230-4ED7-B581-11F14041909D}.Release 4.0|Any CPU.ActiveCfg = Release|Win32
{BD30C7BD-9230-4ED7-B581-11F14041909D}.Release 4.0|Any CPU.Build.0 = Release|Win32
{BD30C7BD-9230-4ED7-B581-11F14041909D}.Release 4.0|ARM.ActiveCfg = Release|Win32
@@ -4284,6 +5215,20 @@ Global
{0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Debug|x64.Build.0 = Debug|x64
{0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Debug|x86.ActiveCfg = Debug|Win32
{0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Debug|x86.Build.0 = Debug|Win32
+ {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Win32
+ {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Eureka_Debug|ARM.ActiveCfg = Debug|Win32
+ {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Eureka_Debug|ARM64.ActiveCfg = Debug|Win32
+ {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Eureka_Debug|x64.ActiveCfg = Debug|x64
+ {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Eureka_Debug|x64.Build.0 = Debug|x64
+ {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Eureka_Debug|x86.ActiveCfg = Debug|Win32
+ {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Eureka_Debug|x86.Build.0 = Debug|Win32
+ {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Eureka|Any CPU.ActiveCfg = Release|Win32
+ {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Eureka|ARM.ActiveCfg = Release|Win32
+ {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Eureka|ARM64.ActiveCfg = Release|Win32
+ {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Eureka|x64.ActiveCfg = Release|x64
+ {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Eureka|x64.Build.0 = Release|x64
+ {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Eureka|x86.ActiveCfg = Release|Win32
+ {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Eureka|x86.Build.0 = Release|Win32
{0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Release 4.0|Any CPU.ActiveCfg = Release|x64
{0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Release 4.0|Any CPU.Build.0 = Release|x64
{0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Release 4.0|ARM.ActiveCfg = Release|x64
@@ -4360,6 +5305,26 @@ Global
{69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Debug|x64.Build.0 = Debug|Any CPU
{69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Debug|x86.ActiveCfg = Debug|Any CPU
{69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Debug|x86.Build.0 = Debug|Any CPU
+ {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka|ARM.Build.0 = Release|Any CPU
+ {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka|x64.Build.0 = Release|Any CPU
+ {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Eureka|x86.Build.0 = Release|Any CPU
{69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -4440,6 +5405,26 @@ Global
{5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Debug|x64.Build.0 = Debug|Any CPU
{5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Debug|x86.ActiveCfg = Debug|Any CPU
{5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Debug|x86.Build.0 = Debug|Any CPU
+ {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka|ARM.Build.0 = Release|Any CPU
+ {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka|x64.Build.0 = Release|Any CPU
+ {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Eureka|x86.Build.0 = Release|Any CPU
{5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -4520,6 +5505,26 @@ Global
{F441FEEE-322A-4943-B566-110E12FD3B72}.Debug|x64.Build.0 = Debug|Any CPU
{F441FEEE-322A-4943-B566-110E12FD3B72}.Debug|x86.ActiveCfg = Debug|Any CPU
{F441FEEE-322A-4943-B566-110E12FD3B72}.Debug|x86.Build.0 = Debug|Any CPU
+ {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka|ARM.Build.0 = Release|Any CPU
+ {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka|x64.Build.0 = Release|Any CPU
+ {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {F441FEEE-322A-4943-B566-110E12FD3B72}.Eureka|x86.Build.0 = Release|Any CPU
{F441FEEE-322A-4943-B566-110E12FD3B72}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{F441FEEE-322A-4943-B566-110E12FD3B72}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{F441FEEE-322A-4943-B566-110E12FD3B72}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -4597,6 +5602,21 @@ Global
{A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Debug|x64.Build.0 = Debug|x64
{A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Debug|x86.ActiveCfg = Debug|Win32
{A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Debug|x86.Build.0 = Debug|Win32
+ {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Win32
+ {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Eureka_Debug|ARM.ActiveCfg = Debug|Win32
+ {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Eureka_Debug|ARM64.ActiveCfg = Debug|Win32
+ {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Eureka_Debug|x64.ActiveCfg = Debug|x64
+ {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Eureka_Debug|x64.Build.0 = Debug|x64
+ {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Eureka_Debug|x86.ActiveCfg = Debug|Win32
+ {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Eureka_Debug|x86.Build.0 = Debug|Win32
+ {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Eureka|Any CPU.ActiveCfg = Release|Win32
+ {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Eureka|Any CPU.Build.0 = Release|Win32
+ {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Eureka|ARM.ActiveCfg = Release|Win32
+ {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Eureka|ARM64.ActiveCfg = Release|Win32
+ {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Eureka|x64.ActiveCfg = Release|x64
+ {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Eureka|x64.Build.0 = Release|x64
+ {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Eureka|x86.ActiveCfg = Release|Win32
+ {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Eureka|x86.Build.0 = Release|Win32
{A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Release 4.0|Any CPU.ActiveCfg = Release|x64
{A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Release 4.0|Any CPU.Build.0 = Release|x64
{A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Release 4.0|ARM.ActiveCfg = Release|x64
@@ -4675,6 +5695,26 @@ Global
{793FBFC1-549E-458B-A52F-784BD4F28586}.Debug|x64.Build.0 = Debug|Any CPU
{793FBFC1-549E-458B-A52F-784BD4F28586}.Debug|x86.ActiveCfg = Debug|Any CPU
{793FBFC1-549E-458B-A52F-784BD4F28586}.Debug|x86.Build.0 = Debug|Any CPU
+ {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka|ARM.Build.0 = Release|Any CPU
+ {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka|x64.Build.0 = Release|Any CPU
+ {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {793FBFC1-549E-458B-A52F-784BD4F28586}.Eureka|x86.Build.0 = Release|Any CPU
{793FBFC1-549E-458B-A52F-784BD4F28586}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{793FBFC1-549E-458B-A52F-784BD4F28586}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{793FBFC1-549E-458B-A52F-784BD4F28586}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -4755,6 +5795,26 @@ Global
{40085232-ACED-4CBE-945B-90BA8153C151}.Debug|x64.Build.0 = Debug|Any CPU
{40085232-ACED-4CBE-945B-90BA8153C151}.Debug|x86.ActiveCfg = Debug|Any CPU
{40085232-ACED-4CBE-945B-90BA8153C151}.Debug|x86.Build.0 = Debug|Any CPU
+ {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka|ARM.Build.0 = Release|Any CPU
+ {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka|x64.Build.0 = Release|Any CPU
+ {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {40085232-ACED-4CBE-945B-90BA8153C151}.Eureka|x86.Build.0 = Release|Any CPU
{40085232-ACED-4CBE-945B-90BA8153C151}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{40085232-ACED-4CBE-945B-90BA8153C151}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{40085232-ACED-4CBE-945B-90BA8153C151}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -4835,6 +5895,26 @@ Global
{88028F14-0028-4DED-B119-19B8EE23CF32}.Debug|x64.Build.0 = Debug|Any CPU
{88028F14-0028-4DED-B119-19B8EE23CF32}.Debug|x86.ActiveCfg = Debug|Any CPU
{88028F14-0028-4DED-B119-19B8EE23CF32}.Debug|x86.Build.0 = Debug|Any CPU
+ {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka|ARM.Build.0 = Release|Any CPU
+ {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka|x64.Build.0 = Release|Any CPU
+ {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {88028F14-0028-4DED-B119-19B8EE23CF32}.Eureka|x86.Build.0 = Release|Any CPU
{88028F14-0028-4DED-B119-19B8EE23CF32}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{88028F14-0028-4DED-B119-19B8EE23CF32}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{88028F14-0028-4DED-B119-19B8EE23CF32}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -4915,6 +5995,26 @@ Global
{6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Debug|x64.Build.0 = Debug|Any CPU
{6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Debug|x86.ActiveCfg = Debug|Any CPU
{6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Debug|x86.Build.0 = Debug|Any CPU
+ {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka|ARM.Build.0 = Release|Any CPU
+ {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka|x64.Build.0 = Release|Any CPU
+ {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Eureka|x86.Build.0 = Release|Any CPU
{6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -4995,6 +6095,26 @@ Global
{1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Debug|x64.Build.0 = Debug|Any CPU
{1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Debug|x86.ActiveCfg = Debug|Any CPU
{1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Debug|x86.Build.0 = Debug|Any CPU
+ {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka|ARM.Build.0 = Release|Any CPU
+ {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka|x64.Build.0 = Release|Any CPU
+ {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Eureka|x86.Build.0 = Release|Any CPU
{1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{1674F726-0E66-414F-B9FD-C6F20D7F07C7}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -5075,6 +6195,26 @@ Global
{12CC222B-D0F5-4048-B790-D283235F540D}.Debug|x64.Build.0 = Debug|Any CPU
{12CC222B-D0F5-4048-B790-D283235F540D}.Debug|x86.ActiveCfg = Debug|Any CPU
{12CC222B-D0F5-4048-B790-D283235F540D}.Debug|x86.Build.0 = Debug|Any CPU
+ {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka|ARM.Build.0 = Release|Any CPU
+ {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka|x64.Build.0 = Release|Any CPU
+ {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {12CC222B-D0F5-4048-B790-D283235F540D}.Eureka|x86.Build.0 = Release|Any CPU
{12CC222B-D0F5-4048-B790-D283235F540D}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{12CC222B-D0F5-4048-B790-D283235F540D}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{12CC222B-D0F5-4048-B790-D283235F540D}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -5155,6 +6295,26 @@ Global
{CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Debug|x64.Build.0 = Debug|Any CPU
{CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Debug|x86.ActiveCfg = Debug|Any CPU
{CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Debug|x86.Build.0 = Debug|Any CPU
+ {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka|ARM.Build.0 = Release|Any CPU
+ {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka|x64.Build.0 = Release|Any CPU
+ {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Eureka|x86.Build.0 = Release|Any CPU
{CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{CA87A608-7B17-4C98-88F2-42ABEE10F4C1}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -5235,6 +6395,26 @@ Global
{998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Debug|x64.Build.0 = Debug|Any CPU
{998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Debug|x86.ActiveCfg = Debug|Any CPU
{998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Debug|x86.Build.0 = Debug|Any CPU
+ {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka|ARM.Build.0 = Release|Any CPU
+ {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka|x64.Build.0 = Release|Any CPU
+ {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Eureka|x86.Build.0 = Release|Any CPU
{998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{998F8471-DC1B-41B6-9D96-354E1B4E7A32}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -5315,6 +6495,26 @@ Global
{C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Debug|x64.Build.0 = Debug|Any CPU
{C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Debug|x86.ActiveCfg = Debug|Any CPU
{C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Debug|x86.Build.0 = Debug|Any CPU
+ {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka|ARM.Build.0 = Release|Any CPU
+ {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka|x64.Build.0 = Release|Any CPU
+ {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Eureka|x86.Build.0 = Release|Any CPU
{C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{C8F14D59-B18D-469C-8B1B-2D23072ED16A}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -5394,6 +6594,25 @@ Global
{43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Debug|x64.Build.0 = Debug|Any CPU
{43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Debug|x86.ActiveCfg = Debug|Any CPU
{43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Debug|x86.Build.0 = Debug|Any CPU
+ {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Eureka|ARM.Build.0 = Release|Any CPU
+ {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Eureka|x64.Build.0 = Release|Any CPU
+ {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Eureka|x86.Build.0 = Release|Any CPU
{43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{43A25F41-EE8C-4A29-94D2-4CBC603E6B29}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -5473,6 +6692,25 @@ Global
{90B53209-C60C-4655-B28D-A1B3E1044BA3}.Debug|x64.Build.0 = Debug|Any CPU
{90B53209-C60C-4655-B28D-A1B3E1044BA3}.Debug|x86.ActiveCfg = Debug|Any CPU
{90B53209-C60C-4655-B28D-A1B3E1044BA3}.Debug|x86.Build.0 = Debug|Any CPU
+ {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Eureka|ARM.Build.0 = Release|Any CPU
+ {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Eureka|x64.Build.0 = Release|Any CPU
+ {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {90B53209-C60C-4655-B28D-A1B3E1044BA3}.Eureka|x86.Build.0 = Release|Any CPU
{90B53209-C60C-4655-B28D-A1B3E1044BA3}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{90B53209-C60C-4655-B28D-A1B3E1044BA3}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{90B53209-C60C-4655-B28D-A1B3E1044BA3}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -5552,6 +6790,25 @@ Global
{F079FB0A-A8ED-4216-B6A5-345756751A04}.Debug|x64.Build.0 = Debug|Any CPU
{F079FB0A-A8ED-4216-B6A5-345756751A04}.Debug|x86.ActiveCfg = Debug|Any CPU
{F079FB0A-A8ED-4216-B6A5-345756751A04}.Debug|x86.Build.0 = Debug|Any CPU
+ {F079FB0A-A8ED-4216-B6A5-345756751A04}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F079FB0A-A8ED-4216-B6A5-345756751A04}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {F079FB0A-A8ED-4216-B6A5-345756751A04}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {F079FB0A-A8ED-4216-B6A5-345756751A04}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {F079FB0A-A8ED-4216-B6A5-345756751A04}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {F079FB0A-A8ED-4216-B6A5-345756751A04}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {F079FB0A-A8ED-4216-B6A5-345756751A04}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {F079FB0A-A8ED-4216-B6A5-345756751A04}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {F079FB0A-A8ED-4216-B6A5-345756751A04}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {F079FB0A-A8ED-4216-B6A5-345756751A04}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {F079FB0A-A8ED-4216-B6A5-345756751A04}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {F079FB0A-A8ED-4216-B6A5-345756751A04}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {F079FB0A-A8ED-4216-B6A5-345756751A04}.Eureka|ARM.Build.0 = Release|Any CPU
+ {F079FB0A-A8ED-4216-B6A5-345756751A04}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {F079FB0A-A8ED-4216-B6A5-345756751A04}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {F079FB0A-A8ED-4216-B6A5-345756751A04}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {F079FB0A-A8ED-4216-B6A5-345756751A04}.Eureka|x64.Build.0 = Release|Any CPU
+ {F079FB0A-A8ED-4216-B6A5-345756751A04}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {F079FB0A-A8ED-4216-B6A5-345756751A04}.Eureka|x86.Build.0 = Release|Any CPU
{F079FB0A-A8ED-4216-B6A5-345756751A04}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{F079FB0A-A8ED-4216-B6A5-345756751A04}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{F079FB0A-A8ED-4216-B6A5-345756751A04}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -5629,6 +6886,20 @@ Global
{43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Debug|x64.Build.0 = Debug|x64
{43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Debug|x86.ActiveCfg = Debug|Win32
{43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Debug|x86.Build.0 = Debug|Win32
+ {43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Win32
+ {43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Eureka_Debug|ARM.ActiveCfg = Debug|Win32
+ {43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Eureka_Debug|ARM64.ActiveCfg = Debug|Win32
+ {43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Eureka_Debug|x64.ActiveCfg = Debug|x64
+ {43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Eureka_Debug|x64.Build.0 = Debug|x64
+ {43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Eureka_Debug|x86.ActiveCfg = Debug|Win32
+ {43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Eureka_Debug|x86.Build.0 = Debug|Win32
+ {43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Eureka|Any CPU.ActiveCfg = Release|Win32
+ {43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Eureka|ARM.ActiveCfg = Release|Win32
+ {43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Eureka|ARM64.ActiveCfg = Release|Win32
+ {43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Eureka|x64.ActiveCfg = Release|x64
+ {43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Eureka|x64.Build.0 = Release|x64
+ {43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Eureka|x86.ActiveCfg = Release|Win32
+ {43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Eureka|x86.Build.0 = Release|Win32
{43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Release 4.0|Any CPU.ActiveCfg = Release|x64
{43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Release 4.0|Any CPU.Build.0 = Release|x64
{43ECCD8D-EE54-44EF-A51A-D77E3DF7263F}.Release 4.0|ARM.ActiveCfg = Release|x64
@@ -5706,6 +6977,26 @@ Global
{FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Debug|x64.Build.0 = Debug|Any CPU
{FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Debug|x86.ActiveCfg = Debug|Any CPU
{FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Debug|x86.Build.0 = Debug|Any CPU
+ {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka|ARM.Build.0 = Release|Any CPU
+ {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka|x64.Build.0 = Release|Any CPU
+ {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Eureka|x86.Build.0 = Release|Any CPU
{FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{FD86424C-6E84-491B-8DF9-3D0F5C236A2A}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -5785,6 +7076,25 @@ Global
{09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Debug|x64.Build.0 = Debug|Any CPU
{09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Debug|x86.ActiveCfg = Debug|Any CPU
{09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Debug|x86.Build.0 = Debug|Any CPU
+ {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Eureka|ARM.Build.0 = Release|Any CPU
+ {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Eureka|x64.Build.0 = Release|Any CPU
+ {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Eureka|x86.Build.0 = Release|Any CPU
{09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{09EE4BC6-F1C6-46DD-B4FE-918377A4EF02}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -5865,6 +7175,26 @@ Global
{0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Debug|x64.Build.0 = Debug|Any CPU
{0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Debug|x86.ActiveCfg = Debug|Any CPU
{0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Debug|x86.Build.0 = Debug|Any CPU
+ {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka_Debug|Any CPU.ActiveCfg = Eureka_Debug|Any CPU
+ {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka_Debug|Any CPU.Build.0 = Eureka_Debug|Any CPU
+ {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka|Any CPU.ActiveCfg = Eureka|Any CPU
+ {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka|Any CPU.Build.0 = Eureka|Any CPU
+ {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka|ARM.Build.0 = Release|Any CPU
+ {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka|x64.Build.0 = Release|Any CPU
+ {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Eureka|x86.Build.0 = Release|Any CPU
{0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -5945,6 +7275,26 @@ Global
{654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Debug|x64.Build.0 = Debug|Any CPU
{654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Debug|x86.ActiveCfg = Debug|Any CPU
{654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Debug|x86.Build.0 = Debug|Any CPU
+ {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka_Debug|Any CPU.ActiveCfg = Eureka_Debug|Any CPU
+ {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka_Debug|Any CPU.Build.0 = Eureka_Debug|Any CPU
+ {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka|Any CPU.ActiveCfg = Eureka|Any CPU
+ {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka|Any CPU.Build.0 = Eureka|Any CPU
+ {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka|ARM.Build.0 = Release|Any CPU
+ {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka|x64.Build.0 = Release|Any CPU
+ {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Eureka|x86.Build.0 = Release|Any CPU
{654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{654BEDA3-16FB-44FF-ADE7-B52E50B02E63}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -6025,6 +7375,26 @@ Global
{4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Debug|x64.Build.0 = Debug|Any CPU
{4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Debug|x86.ActiveCfg = Debug|Any CPU
{4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Debug|x86.Build.0 = Debug|Any CPU
+ {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka|ARM.Build.0 = Release|Any CPU
+ {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka|x64.Build.0 = Release|Any CPU
+ {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Eureka|x86.Build.0 = Release|Any CPU
{4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{4FD16878-1A44-4CCE-9589-5FC630FACDE9}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -6105,6 +7475,24 @@ Global
{096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Debug|x64.Build.0 = Debug|Any CPU
{096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Debug|x86.ActiveCfg = Debug|Any CPU
{096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Debug|x86.Build.0 = Debug|Any CPU
+ {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Eureka|ARM.Build.0 = Release|Any CPU
+ {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Eureka|x64.Build.0 = Release|Any CPU
+ {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Eureka|x86.Build.0 = Release|Any CPU
{096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{096F16C8-6D06-4B5F-9496-B9D2DF2D94A3}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -6184,6 +7572,25 @@ Global
{0440A135-0DF0-4232-AB3C-98B9283123B3}.Debug|x64.Build.0 = Debug|Any CPU
{0440A135-0DF0-4232-AB3C-98B9283123B3}.Debug|x86.ActiveCfg = Debug|Any CPU
{0440A135-0DF0-4232-AB3C-98B9283123B3}.Debug|x86.Build.0 = Debug|Any CPU
+ {0440A135-0DF0-4232-AB3C-98B9283123B3}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0440A135-0DF0-4232-AB3C-98B9283123B3}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {0440A135-0DF0-4232-AB3C-98B9283123B3}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {0440A135-0DF0-4232-AB3C-98B9283123B3}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {0440A135-0DF0-4232-AB3C-98B9283123B3}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {0440A135-0DF0-4232-AB3C-98B9283123B3}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {0440A135-0DF0-4232-AB3C-98B9283123B3}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {0440A135-0DF0-4232-AB3C-98B9283123B3}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {0440A135-0DF0-4232-AB3C-98B9283123B3}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {0440A135-0DF0-4232-AB3C-98B9283123B3}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {0440A135-0DF0-4232-AB3C-98B9283123B3}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {0440A135-0DF0-4232-AB3C-98B9283123B3}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {0440A135-0DF0-4232-AB3C-98B9283123B3}.Eureka|ARM.Build.0 = Release|Any CPU
+ {0440A135-0DF0-4232-AB3C-98B9283123B3}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {0440A135-0DF0-4232-AB3C-98B9283123B3}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {0440A135-0DF0-4232-AB3C-98B9283123B3}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {0440A135-0DF0-4232-AB3C-98B9283123B3}.Eureka|x64.Build.0 = Release|Any CPU
+ {0440A135-0DF0-4232-AB3C-98B9283123B3}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {0440A135-0DF0-4232-AB3C-98B9283123B3}.Eureka|x86.Build.0 = Release|Any CPU
{0440A135-0DF0-4232-AB3C-98B9283123B3}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{0440A135-0DF0-4232-AB3C-98B9283123B3}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{0440A135-0DF0-4232-AB3C-98B9283123B3}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -6264,6 +7671,26 @@ Global
{942134AC-6EA2-4500-8F22-0F739B70A05F}.Debug|x64.Build.0 = Debug|Any CPU
{942134AC-6EA2-4500-8F22-0F739B70A05F}.Debug|x86.ActiveCfg = Debug|Any CPU
{942134AC-6EA2-4500-8F22-0F739B70A05F}.Debug|x86.Build.0 = Debug|Any CPU
+ {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka|ARM.Build.0 = Release|Any CPU
+ {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka|x64.Build.0 = Release|Any CPU
+ {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {942134AC-6EA2-4500-8F22-0F739B70A05F}.Eureka|x86.Build.0 = Release|Any CPU
{942134AC-6EA2-4500-8F22-0F739B70A05F}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{942134AC-6EA2-4500-8F22-0F739B70A05F}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{942134AC-6EA2-4500-8F22-0F739B70A05F}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -6343,6 +7770,25 @@ Global
{808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Debug|x64.Build.0 = Debug|Any CPU
{808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Debug|x86.ActiveCfg = Debug|Any CPU
{808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Debug|x86.Build.0 = Debug|Any CPU
+ {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Eureka|ARM.Build.0 = Release|Any CPU
+ {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Eureka|x64.Build.0 = Release|Any CPU
+ {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Eureka|x86.Build.0 = Release|Any CPU
{808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{808E47B6-BAA7-4D23-83CB-40C53DC4B38A}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -6423,6 +7869,26 @@ Global
{D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Debug|x64.Build.0 = Debug|Any CPU
{D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Debug|x86.ActiveCfg = Debug|Any CPU
{D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Debug|x86.Build.0 = Debug|Any CPU
+ {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka|ARM.Build.0 = Release|Any CPU
+ {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka|x64.Build.0 = Release|Any CPU
+ {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Eureka|x86.Build.0 = Release|Any CPU
{D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -6503,6 +7969,26 @@ Global
{91B70E9B-66A7-4873-AE10-400E71CF404F}.Debug|x64.Build.0 = Debug|Any CPU
{91B70E9B-66A7-4873-AE10-400E71CF404F}.Debug|x86.ActiveCfg = Debug|Any CPU
{91B70E9B-66A7-4873-AE10-400E71CF404F}.Debug|x86.Build.0 = Debug|Any CPU
+ {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka|ARM.Build.0 = Release|Any CPU
+ {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka|x64.Build.0 = Release|Any CPU
+ {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {91B70E9B-66A7-4873-AE10-400E71CF404F}.Eureka|x86.Build.0 = Release|Any CPU
{91B70E9B-66A7-4873-AE10-400E71CF404F}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{91B70E9B-66A7-4873-AE10-400E71CF404F}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{91B70E9B-66A7-4873-AE10-400E71CF404F}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -6583,6 +8069,26 @@ Global
{58E8825F-0C96-449C-B320-1E82B0AA876B}.Debug|x64.Build.0 = Debug|x64
{58E8825F-0C96-449C-B320-1E82B0AA876B}.Debug|x86.ActiveCfg = Debug|x86
{58E8825F-0C96-449C-B320-1E82B0AA876B}.Debug|x86.Build.0 = Debug|x86
+ {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka_Debug|x64.ActiveCfg = Debug|x64
+ {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka_Debug|x64.Build.0 = Debug|x64
+ {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka_Debug|x86.ActiveCfg = Debug|x86
+ {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka_Debug|x86.Build.0 = Debug|x86
+ {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka|ARM.Build.0 = Release|Any CPU
+ {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka|x64.ActiveCfg = Release|x64
+ {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka|x64.Build.0 = Release|x64
+ {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka|x86.ActiveCfg = Release|x86
+ {58E8825F-0C96-449C-B320-1E82B0AA876B}.Eureka|x86.Build.0 = Release|x86
{58E8825F-0C96-449C-B320-1E82B0AA876B}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{58E8825F-0C96-449C-B320-1E82B0AA876B}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{58E8825F-0C96-449C-B320-1E82B0AA876B}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -6663,6 +8169,26 @@ Global
{E1E66ED9-597D-45FA-8048-DE90A6930484}.Debug|x64.Build.0 = Debug|Any CPU
{E1E66ED9-597D-45FA-8048-DE90A6930484}.Debug|x86.ActiveCfg = Debug|Any CPU
{E1E66ED9-597D-45FA-8048-DE90A6930484}.Debug|x86.Build.0 = Debug|Any CPU
+ {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka|ARM.Build.0 = Release|Any CPU
+ {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka|x64.Build.0 = Release|Any CPU
+ {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {E1E66ED9-597D-45FA-8048-DE90A6930484}.Eureka|x86.Build.0 = Release|Any CPU
{E1E66ED9-597D-45FA-8048-DE90A6930484}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{E1E66ED9-597D-45FA-8048-DE90A6930484}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{E1E66ED9-597D-45FA-8048-DE90A6930484}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -6743,6 +8269,26 @@ Global
{D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Debug|x64.Build.0 = Debug|Any CPU
{D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Debug|x86.ActiveCfg = Debug|Any CPU
{D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Debug|x86.Build.0 = Debug|Any CPU
+ {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka|Any CPU.ActiveCfg = Eureka|Any CPU
+ {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka|Any CPU.Build.0 = Eureka|Any CPU
+ {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka|ARM.Build.0 = Release|Any CPU
+ {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka|x64.Build.0 = Release|Any CPU
+ {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Eureka|x86.Build.0 = Release|Any CPU
{D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{D0E71A4D-9EEA-4F07-983F-EEB4416C587F}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -6823,6 +8369,26 @@ Global
{0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Debug|x64.Build.0 = Debug|Any CPU
{0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Debug|x86.ActiveCfg = Debug|Any CPU
{0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Debug|x86.Build.0 = Debug|Any CPU
+ {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka|ARM.Build.0 = Release|Any CPU
+ {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka|x64.Build.0 = Release|Any CPU
+ {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Eureka|x86.Build.0 = Release|Any CPU
{0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{0BDA9B52-9879-4C5E-84E3-81D00B75DACC}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -6903,6 +8469,26 @@ Global
{BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Debug|x64.Build.0 = Debug|Any CPU
{BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Debug|x86.ActiveCfg = Debug|Any CPU
{BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Debug|x86.Build.0 = Debug|Any CPU
+ {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka|ARM.Build.0 = Release|Any CPU
+ {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka|x64.Build.0 = Release|Any CPU
+ {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Eureka|x86.Build.0 = Release|Any CPU
{BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -6983,6 +8569,26 @@ Global
{6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Debug|x64.Build.0 = Debug|Any CPU
{6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Debug|x86.ActiveCfg = Debug|Any CPU
{6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Debug|x86.Build.0 = Debug|Any CPU
+ {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka|ARM.Build.0 = Release|Any CPU
+ {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka|x64.Build.0 = Release|Any CPU
+ {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Eureka|x86.Build.0 = Release|Any CPU
{6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{6AA425C9-EA6A-4B01-AAED-5FF122E8B663}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -7063,6 +8669,26 @@ Global
{D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Debug|x64.Build.0 = Debug|Any CPU
{D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Debug|x86.ActiveCfg = Debug|Any CPU
{D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Debug|x86.Build.0 = Debug|Any CPU
+ {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka|ARM.Build.0 = Release|Any CPU
+ {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka|x64.Build.0 = Release|Any CPU
+ {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Eureka|x86.Build.0 = Release|Any CPU
{D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{D0186AC0-0FCF-4D3B-9619-54812B6E524B}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -7142,6 +8768,25 @@ Global
{72E591D6-8F83-4D8C-8F67-9C325E623234}.Debug|x64.Build.0 = Debug|Any CPU
{72E591D6-8F83-4D8C-8F67-9C325E623234}.Debug|x86.ActiveCfg = Debug|Any CPU
{72E591D6-8F83-4D8C-8F67-9C325E623234}.Debug|x86.Build.0 = Debug|Any CPU
+ {72E591D6-8F83-4D8C-8F67-9C325E623234}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {72E591D6-8F83-4D8C-8F67-9C325E623234}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {72E591D6-8F83-4D8C-8F67-9C325E623234}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {72E591D6-8F83-4D8C-8F67-9C325E623234}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {72E591D6-8F83-4D8C-8F67-9C325E623234}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {72E591D6-8F83-4D8C-8F67-9C325E623234}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {72E591D6-8F83-4D8C-8F67-9C325E623234}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {72E591D6-8F83-4D8C-8F67-9C325E623234}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {72E591D6-8F83-4D8C-8F67-9C325E623234}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {72E591D6-8F83-4D8C-8F67-9C325E623234}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {72E591D6-8F83-4D8C-8F67-9C325E623234}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {72E591D6-8F83-4D8C-8F67-9C325E623234}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {72E591D6-8F83-4D8C-8F67-9C325E623234}.Eureka|ARM.Build.0 = Release|Any CPU
+ {72E591D6-8F83-4D8C-8F67-9C325E623234}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {72E591D6-8F83-4D8C-8F67-9C325E623234}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {72E591D6-8F83-4D8C-8F67-9C325E623234}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {72E591D6-8F83-4D8C-8F67-9C325E623234}.Eureka|x64.Build.0 = Release|Any CPU
+ {72E591D6-8F83-4D8C-8F67-9C325E623234}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {72E591D6-8F83-4D8C-8F67-9C325E623234}.Eureka|x86.Build.0 = Release|Any CPU
{72E591D6-8F83-4D8C-8F67-9C325E623234}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{72E591D6-8F83-4D8C-8F67-9C325E623234}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{72E591D6-8F83-4D8C-8F67-9C325E623234}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -7222,6 +8867,26 @@ Global
{8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Debug|x64.Build.0 = Debug|Any CPU
{8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Debug|x86.ActiveCfg = Debug|Any CPU
{8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Debug|x86.Build.0 = Debug|Any CPU
+ {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka|ARM.Build.0 = Release|Any CPU
+ {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka|x64.Build.0 = Release|Any CPU
+ {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Eureka|x86.Build.0 = Release|Any CPU
{8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{8A65AD6A-A9B4-48C0-9301-4B7434B712F8}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -7302,6 +8967,26 @@ Global
{4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Debug|x64.Build.0 = Debug|Any CPU
{4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Debug|x86.ActiveCfg = Debug|Any CPU
{4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Debug|x86.Build.0 = Debug|Any CPU
+ {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka|ARM.Build.0 = Release|Any CPU
+ {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka|x64.Build.0 = Release|Any CPU
+ {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Eureka|x86.Build.0 = Release|Any CPU
{4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{4399AF76-DB52-4CFB-8020-6F85BDB29FD5}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -7382,6 +9067,26 @@ Global
{4EDCF067-E377-42CB-A18C-8368CF484577}.Debug|x64.Build.0 = Debug|Any CPU
{4EDCF067-E377-42CB-A18C-8368CF484577}.Debug|x86.ActiveCfg = Debug|Any CPU
{4EDCF067-E377-42CB-A18C-8368CF484577}.Debug|x86.Build.0 = Debug|Any CPU
+ {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka|ARM.Build.0 = Release|Any CPU
+ {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka|x64.Build.0 = Release|Any CPU
+ {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {4EDCF067-E377-42CB-A18C-8368CF484577}.Eureka|x86.Build.0 = Release|Any CPU
{4EDCF067-E377-42CB-A18C-8368CF484577}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{4EDCF067-E377-42CB-A18C-8368CF484577}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{4EDCF067-E377-42CB-A18C-8368CF484577}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -7462,6 +9167,26 @@ Global
{04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Debug|x64.Build.0 = Debug|Any CPU
{04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Debug|x86.ActiveCfg = Debug|Any CPU
{04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Debug|x86.Build.0 = Debug|Any CPU
+ {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka|ARM.Build.0 = Release|Any CPU
+ {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka|x64.Build.0 = Release|Any CPU
+ {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Eureka|x86.Build.0 = Release|Any CPU
{04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{04FEBB02-F782-4B96-B47D-F6902AFA43BE}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -7542,6 +9267,26 @@ Global
{A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Debug|x64.Build.0 = Debug|Any CPU
{A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Debug|x86.ActiveCfg = Debug|Any CPU
{A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Debug|x86.Build.0 = Debug|Any CPU
+ {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka|ARM.Build.0 = Release|Any CPU
+ {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka|x64.Build.0 = Release|Any CPU
+ {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Eureka|x86.Build.0 = Release|Any CPU
{A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{A8077B3E-8DD6-4572-8EC4-A27BDC91B70A}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -7622,6 +9367,26 @@ Global
{5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Debug|x64.Build.0 = Debug|Any CPU
{5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Debug|x86.ActiveCfg = Debug|Any CPU
{5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Debug|x86.Build.0 = Debug|Any CPU
+ {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka|ARM.Build.0 = Release|Any CPU
+ {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka|x64.Build.0 = Release|Any CPU
+ {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Eureka|x86.Build.0 = Release|Any CPU
{5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{5991F6B5-EA4E-41E9-A4F6-7D3A50010FD6}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -7702,6 +9467,26 @@ Global
{43135FB9-41DB-4F87-9771-CF2C762027C0}.Debug|x64.Build.0 = Debug|Any CPU
{43135FB9-41DB-4F87-9771-CF2C762027C0}.Debug|x86.ActiveCfg = Debug|Any CPU
{43135FB9-41DB-4F87-9771-CF2C762027C0}.Debug|x86.Build.0 = Debug|Any CPU
+ {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka|ARM.Build.0 = Release|Any CPU
+ {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka|x64.Build.0 = Release|Any CPU
+ {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {43135FB9-41DB-4F87-9771-CF2C762027C0}.Eureka|x86.Build.0 = Release|Any CPU
{43135FB9-41DB-4F87-9771-CF2C762027C0}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{43135FB9-41DB-4F87-9771-CF2C762027C0}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{43135FB9-41DB-4F87-9771-CF2C762027C0}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -7782,6 +9567,24 @@ Global
{7E5E4BED-538C-4566-A005-DCC070AF8715}.Debug|x64.Build.0 = Debug|Any CPU
{7E5E4BED-538C-4566-A005-DCC070AF8715}.Debug|x86.ActiveCfg = Debug|Any CPU
{7E5E4BED-538C-4566-A005-DCC070AF8715}.Debug|x86.Build.0 = Debug|Any CPU
+ {7E5E4BED-538C-4566-A005-DCC070AF8715}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7E5E4BED-538C-4566-A005-DCC070AF8715}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {7E5E4BED-538C-4566-A005-DCC070AF8715}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {7E5E4BED-538C-4566-A005-DCC070AF8715}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {7E5E4BED-538C-4566-A005-DCC070AF8715}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {7E5E4BED-538C-4566-A005-DCC070AF8715}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {7E5E4BED-538C-4566-A005-DCC070AF8715}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {7E5E4BED-538C-4566-A005-DCC070AF8715}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {7E5E4BED-538C-4566-A005-DCC070AF8715}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {7E5E4BED-538C-4566-A005-DCC070AF8715}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {7E5E4BED-538C-4566-A005-DCC070AF8715}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {7E5E4BED-538C-4566-A005-DCC070AF8715}.Eureka|ARM.Build.0 = Release|Any CPU
+ {7E5E4BED-538C-4566-A005-DCC070AF8715}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {7E5E4BED-538C-4566-A005-DCC070AF8715}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {7E5E4BED-538C-4566-A005-DCC070AF8715}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {7E5E4BED-538C-4566-A005-DCC070AF8715}.Eureka|x64.Build.0 = Release|Any CPU
+ {7E5E4BED-538C-4566-A005-DCC070AF8715}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {7E5E4BED-538C-4566-A005-DCC070AF8715}.Eureka|x86.Build.0 = Release|Any CPU
{7E5E4BED-538C-4566-A005-DCC070AF8715}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{7E5E4BED-538C-4566-A005-DCC070AF8715}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{7E5E4BED-538C-4566-A005-DCC070AF8715}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -7862,6 +9665,26 @@ Global
{5001990F-977B-48FF-B217-0236A5022AD8}.Debug|x64.Build.0 = Debug|Any CPU
{5001990F-977B-48FF-B217-0236A5022AD8}.Debug|x86.ActiveCfg = Debug|Any CPU
{5001990F-977B-48FF-B217-0236A5022AD8}.Debug|x86.Build.0 = Debug|Any CPU
+ {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka|ARM.Build.0 = Release|Any CPU
+ {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka|x64.Build.0 = Release|Any CPU
+ {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {5001990F-977B-48FF-B217-0236A5022AD8}.Eureka|x86.Build.0 = Release|Any CPU
{5001990F-977B-48FF-B217-0236A5022AD8}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{5001990F-977B-48FF-B217-0236A5022AD8}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{5001990F-977B-48FF-B217-0236A5022AD8}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -7942,6 +9765,26 @@ Global
{F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Debug|x64.Build.0 = Debug|Any CPU
{F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Debug|x86.ActiveCfg = Debug|Any CPU
{F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Debug|x86.Build.0 = Debug|Any CPU
+ {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka|ARM.Build.0 = Release|Any CPU
+ {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka|x64.Build.0 = Release|Any CPU
+ {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Eureka|x86.Build.0 = Release|Any CPU
{F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -8019,6 +9862,21 @@ Global
{DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Debug|x64.Build.0 = Debug|x64
{DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Debug|x86.ActiveCfg = Debug|Win32
{DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Debug|x86.Build.0 = Debug|Win32
+ {DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Win32
+ {DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Eureka_Debug|ARM.ActiveCfg = Debug|Win32
+ {DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Eureka_Debug|ARM64.ActiveCfg = Debug|Win32
+ {DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Eureka_Debug|x64.ActiveCfg = Debug|x64
+ {DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Eureka_Debug|x64.Build.0 = Debug|x64
+ {DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Eureka_Debug|x86.ActiveCfg = Debug|Win32
+ {DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Eureka_Debug|x86.Build.0 = Debug|Win32
+ {DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Eureka|Any CPU.ActiveCfg = Debug|Win32
+ {DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Eureka|Any CPU.Build.0 = Debug|Win32
+ {DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Eureka|ARM.ActiveCfg = Release|Win32
+ {DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Eureka|ARM64.ActiveCfg = Release|Win32
+ {DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Eureka|x64.ActiveCfg = Release|x64
+ {DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Eureka|x64.Build.0 = Release|x64
+ {DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Eureka|x86.ActiveCfg = Release|Win32
+ {DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Eureka|x86.Build.0 = Release|Win32
{DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Release 4.0|Any CPU.ActiveCfg = Release|x64
{DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Release 4.0|Any CPU.Build.0 = Release|x64
{DB79FB33-CE7A-49CF-AA89-F697E5CDB0F6}.Release 4.0|ARM.ActiveCfg = Release|x64
@@ -8097,6 +9955,24 @@ Global
{280267F5-A19E-4B96-999D-C13D293ECA45}.Debug|x64.Build.0 = Debug|Any CPU
{280267F5-A19E-4B96-999D-C13D293ECA45}.Debug|x86.ActiveCfg = Debug|Any CPU
{280267F5-A19E-4B96-999D-C13D293ECA45}.Debug|x86.Build.0 = Debug|Any CPU
+ {280267F5-A19E-4B96-999D-C13D293ECA45}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {280267F5-A19E-4B96-999D-C13D293ECA45}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {280267F5-A19E-4B96-999D-C13D293ECA45}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {280267F5-A19E-4B96-999D-C13D293ECA45}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {280267F5-A19E-4B96-999D-C13D293ECA45}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {280267F5-A19E-4B96-999D-C13D293ECA45}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {280267F5-A19E-4B96-999D-C13D293ECA45}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {280267F5-A19E-4B96-999D-C13D293ECA45}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {280267F5-A19E-4B96-999D-C13D293ECA45}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {280267F5-A19E-4B96-999D-C13D293ECA45}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {280267F5-A19E-4B96-999D-C13D293ECA45}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {280267F5-A19E-4B96-999D-C13D293ECA45}.Eureka|ARM.Build.0 = Release|Any CPU
+ {280267F5-A19E-4B96-999D-C13D293ECA45}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {280267F5-A19E-4B96-999D-C13D293ECA45}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {280267F5-A19E-4B96-999D-C13D293ECA45}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {280267F5-A19E-4B96-999D-C13D293ECA45}.Eureka|x64.Build.0 = Release|Any CPU
+ {280267F5-A19E-4B96-999D-C13D293ECA45}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {280267F5-A19E-4B96-999D-C13D293ECA45}.Eureka|x86.Build.0 = Release|Any CPU
{280267F5-A19E-4B96-999D-C13D293ECA45}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{280267F5-A19E-4B96-999D-C13D293ECA45}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{280267F5-A19E-4B96-999D-C13D293ECA45}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -8177,6 +10053,26 @@ Global
{25D7CC4D-A11C-4065-A797-4A1944F636C0}.Debug|x64.Build.0 = Debug|Any CPU
{25D7CC4D-A11C-4065-A797-4A1944F636C0}.Debug|x86.ActiveCfg = Debug|Any CPU
{25D7CC4D-A11C-4065-A797-4A1944F636C0}.Debug|x86.Build.0 = Debug|Any CPU
+ {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka|ARM.Build.0 = Release|Any CPU
+ {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka|x64.Build.0 = Release|Any CPU
+ {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {25D7CC4D-A11C-4065-A797-4A1944F636C0}.Eureka|x86.Build.0 = Release|Any CPU
{25D7CC4D-A11C-4065-A797-4A1944F636C0}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{25D7CC4D-A11C-4065-A797-4A1944F636C0}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{25D7CC4D-A11C-4065-A797-4A1944F636C0}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -8257,6 +10153,26 @@ Global
{6F924F92-611B-41CF-A6E6-443E69D4CA83}.Debug|x64.Build.0 = Debug|Any CPU
{6F924F92-611B-41CF-A6E6-443E69D4CA83}.Debug|x86.ActiveCfg = Debug|Any CPU
{6F924F92-611B-41CF-A6E6-443E69D4CA83}.Debug|x86.Build.0 = Debug|Any CPU
+ {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka|ARM.Build.0 = Release|Any CPU
+ {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka|x64.Build.0 = Release|Any CPU
+ {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {6F924F92-611B-41CF-A6E6-443E69D4CA83}.Eureka|x86.Build.0 = Release|Any CPU
{6F924F92-611B-41CF-A6E6-443E69D4CA83}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{6F924F92-611B-41CF-A6E6-443E69D4CA83}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{6F924F92-611B-41CF-A6E6-443E69D4CA83}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -8337,6 +10253,26 @@ Global
{E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Debug|x64.Build.0 = Debug|Any CPU
{E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Debug|x86.ActiveCfg = Debug|Any CPU
{E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Debug|x86.Build.0 = Debug|Any CPU
+ {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka|ARM.Build.0 = Release|Any CPU
+ {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka|x64.Build.0 = Release|Any CPU
+ {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Eureka|x86.Build.0 = Release|Any CPU
{E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -8417,6 +10353,26 @@ Global
{FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Debug|x64.Build.0 = Debug|Any CPU
{FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Debug|x86.ActiveCfg = Debug|Any CPU
{FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Debug|x86.Build.0 = Debug|Any CPU
+ {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka|Any CPU.ActiveCfg = Eureka|Any CPU
+ {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka|Any CPU.Build.0 = Eureka|Any CPU
+ {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka|ARM.Build.0 = Release|Any CPU
+ {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka|x64.Build.0 = Release|Any CPU
+ {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Eureka|x86.Build.0 = Release|Any CPU
{FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{FABA6A2B-C7EA-4C58-A125-150FA5B4C72F}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -8497,6 +10453,26 @@ Global
{E470673E-AEC8-4555-9136-D2F66B02DBFB}.Debug|x64.Build.0 = Debug|Any CPU
{E470673E-AEC8-4555-9136-D2F66B02DBFB}.Debug|x86.ActiveCfg = Debug|Any CPU
{E470673E-AEC8-4555-9136-D2F66B02DBFB}.Debug|x86.Build.0 = Debug|Any CPU
+ {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka|ARM.Build.0 = Release|Any CPU
+ {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka|x64.Build.0 = Release|Any CPU
+ {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {E470673E-AEC8-4555-9136-D2F66B02DBFB}.Eureka|x86.Build.0 = Release|Any CPU
{E470673E-AEC8-4555-9136-D2F66B02DBFB}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{E470673E-AEC8-4555-9136-D2F66B02DBFB}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{E470673E-AEC8-4555-9136-D2F66B02DBFB}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -8577,6 +10553,26 @@ Global
{C5DF1816-34E5-4700-824C-29623A1BAA22}.Debug|x64.Build.0 = Debug|Any CPU
{C5DF1816-34E5-4700-824C-29623A1BAA22}.Debug|x86.ActiveCfg = Debug|Any CPU
{C5DF1816-34E5-4700-824C-29623A1BAA22}.Debug|x86.Build.0 = Debug|Any CPU
+ {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka|ARM.Build.0 = Release|Any CPU
+ {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka|x64.Build.0 = Release|Any CPU
+ {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {C5DF1816-34E5-4700-824C-29623A1BAA22}.Eureka|x86.Build.0 = Release|Any CPU
{C5DF1816-34E5-4700-824C-29623A1BAA22}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{C5DF1816-34E5-4700-824C-29623A1BAA22}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{C5DF1816-34E5-4700-824C-29623A1BAA22}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -8657,6 +10653,26 @@ Global
{8435223D-DB6B-45E3-A08B-45B7416F8481}.Debug|x64.Build.0 = Debug|Any CPU
{8435223D-DB6B-45E3-A08B-45B7416F8481}.Debug|x86.ActiveCfg = Debug|Any CPU
{8435223D-DB6B-45E3-A08B-45B7416F8481}.Debug|x86.Build.0 = Debug|Any CPU
+ {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka|ARM.Build.0 = Release|Any CPU
+ {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka|x64.Build.0 = Release|Any CPU
+ {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {8435223D-DB6B-45E3-A08B-45B7416F8481}.Eureka|x86.Build.0 = Release|Any CPU
{8435223D-DB6B-45E3-A08B-45B7416F8481}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{8435223D-DB6B-45E3-A08B-45B7416F8481}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{8435223D-DB6B-45E3-A08B-45B7416F8481}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -8737,6 +10753,26 @@ Global
{D2EE865B-B006-487A-9487-60A663636AC3}.Debug|x64.Build.0 = Debug|Any CPU
{D2EE865B-B006-487A-9487-60A663636AC3}.Debug|x86.ActiveCfg = Debug|Any CPU
{D2EE865B-B006-487A-9487-60A663636AC3}.Debug|x86.Build.0 = Debug|Any CPU
+ {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka|ARM.Build.0 = Release|Any CPU
+ {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka|x64.Build.0 = Release|Any CPU
+ {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {D2EE865B-B006-487A-9487-60A663636AC3}.Eureka|x86.Build.0 = Release|Any CPU
{D2EE865B-B006-487A-9487-60A663636AC3}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{D2EE865B-B006-487A-9487-60A663636AC3}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{D2EE865B-B006-487A-9487-60A663636AC3}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -8817,6 +10853,26 @@ Global
{F209FAE8-73F9-441B-97F4-0844A0279390}.Debug|x64.Build.0 = Debug|Any CPU
{F209FAE8-73F9-441B-97F4-0844A0279390}.Debug|x86.ActiveCfg = Debug|Any CPU
{F209FAE8-73F9-441B-97F4-0844A0279390}.Debug|x86.Build.0 = Debug|Any CPU
+ {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka|ARM.Build.0 = Release|Any CPU
+ {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka|x64.Build.0 = Release|Any CPU
+ {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {F209FAE8-73F9-441B-97F4-0844A0279390}.Eureka|x86.Build.0 = Release|Any CPU
{F209FAE8-73F9-441B-97F4-0844A0279390}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{F209FAE8-73F9-441B-97F4-0844A0279390}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{F209FAE8-73F9-441B-97F4-0844A0279390}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -8892,6 +10948,20 @@ Global
{862328A4-8632-43AF-B466-55825C7962FE}.Debug|x64.Build.0 = Debug|x64
{862328A4-8632-43AF-B466-55825C7962FE}.Debug|x86.ActiveCfg = Debug|Win32
{862328A4-8632-43AF-B466-55825C7962FE}.Debug|x86.Build.0 = Debug|Win32
+ {862328A4-8632-43AF-B466-55825C7962FE}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Win32
+ {862328A4-8632-43AF-B466-55825C7962FE}.Eureka_Debug|ARM.ActiveCfg = Debug|Win32
+ {862328A4-8632-43AF-B466-55825C7962FE}.Eureka_Debug|ARM64.ActiveCfg = Debug|Win32
+ {862328A4-8632-43AF-B466-55825C7962FE}.Eureka_Debug|x64.ActiveCfg = Debug|x64
+ {862328A4-8632-43AF-B466-55825C7962FE}.Eureka_Debug|x64.Build.0 = Debug|x64
+ {862328A4-8632-43AF-B466-55825C7962FE}.Eureka_Debug|x86.ActiveCfg = Debug|Win32
+ {862328A4-8632-43AF-B466-55825C7962FE}.Eureka_Debug|x86.Build.0 = Debug|Win32
+ {862328A4-8632-43AF-B466-55825C7962FE}.Eureka|Any CPU.ActiveCfg = Debug|Win32
+ {862328A4-8632-43AF-B466-55825C7962FE}.Eureka|ARM.ActiveCfg = Release|Win32
+ {862328A4-8632-43AF-B466-55825C7962FE}.Eureka|ARM64.ActiveCfg = Release|Win32
+ {862328A4-8632-43AF-B466-55825C7962FE}.Eureka|x64.ActiveCfg = Release|x64
+ {862328A4-8632-43AF-B466-55825C7962FE}.Eureka|x64.Build.0 = Release|x64
+ {862328A4-8632-43AF-B466-55825C7962FE}.Eureka|x86.ActiveCfg = Release|Win32
+ {862328A4-8632-43AF-B466-55825C7962FE}.Eureka|x86.Build.0 = Release|Win32
{862328A4-8632-43AF-B466-55825C7962FE}.Release 4.0|Any CPU.ActiveCfg = Release|x64
{862328A4-8632-43AF-B466-55825C7962FE}.Release 4.0|Any CPU.Build.0 = Release|x64
{862328A4-8632-43AF-B466-55825C7962FE}.Release 4.0|ARM.ActiveCfg = Release|x64
@@ -8967,6 +11037,26 @@ Global
{BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Debug|x64.Build.0 = Debug|Any CPU
{BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Debug|x86.ActiveCfg = Debug|Any CPU
{BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Debug|x86.Build.0 = Debug|Any CPU
+ {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka|ARM.Build.0 = Release|Any CPU
+ {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka|x64.Build.0 = Release|Any CPU
+ {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Eureka|x86.Build.0 = Release|Any CPU
{BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{BA9D572D-FFBF-480A-921F-9E4B00D22D41}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -9042,6 +11132,20 @@ Global
{401FB878-646C-4230-821E-16DCAE6D56F5}.Debug|x64.Build.0 = Debug|x64
{401FB878-646C-4230-821E-16DCAE6D56F5}.Debug|x86.ActiveCfg = Debug|Win32
{401FB878-646C-4230-821E-16DCAE6D56F5}.Debug|x86.Build.0 = Debug|Win32
+ {401FB878-646C-4230-821E-16DCAE6D56F5}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Win32
+ {401FB878-646C-4230-821E-16DCAE6D56F5}.Eureka_Debug|ARM.ActiveCfg = Debug|Win32
+ {401FB878-646C-4230-821E-16DCAE6D56F5}.Eureka_Debug|ARM64.ActiveCfg = Debug|Win32
+ {401FB878-646C-4230-821E-16DCAE6D56F5}.Eureka_Debug|x64.ActiveCfg = Debug|x64
+ {401FB878-646C-4230-821E-16DCAE6D56F5}.Eureka_Debug|x64.Build.0 = Debug|x64
+ {401FB878-646C-4230-821E-16DCAE6D56F5}.Eureka_Debug|x86.ActiveCfg = Debug|Win32
+ {401FB878-646C-4230-821E-16DCAE6D56F5}.Eureka_Debug|x86.Build.0 = Debug|Win32
+ {401FB878-646C-4230-821E-16DCAE6D56F5}.Eureka|Any CPU.ActiveCfg = Release|Win32
+ {401FB878-646C-4230-821E-16DCAE6D56F5}.Eureka|ARM.ActiveCfg = Release|Win32
+ {401FB878-646C-4230-821E-16DCAE6D56F5}.Eureka|ARM64.ActiveCfg = Release|Win32
+ {401FB878-646C-4230-821E-16DCAE6D56F5}.Eureka|x64.ActiveCfg = Release|x64
+ {401FB878-646C-4230-821E-16DCAE6D56F5}.Eureka|x64.Build.0 = Release|x64
+ {401FB878-646C-4230-821E-16DCAE6D56F5}.Eureka|x86.ActiveCfg = Release|Win32
+ {401FB878-646C-4230-821E-16DCAE6D56F5}.Eureka|x86.Build.0 = Release|Win32
{401FB878-646C-4230-821E-16DCAE6D56F5}.Release 4.0|Any CPU.ActiveCfg = Release|x64
{401FB878-646C-4230-821E-16DCAE6D56F5}.Release 4.0|Any CPU.Build.0 = Release|x64
{401FB878-646C-4230-821E-16DCAE6D56F5}.Release 4.0|ARM.ActiveCfg = Release|x64
@@ -9114,6 +11218,20 @@ Global
{09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Debug|x64.Build.0 = Debug|x64
{09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Debug|x86.ActiveCfg = Debug|Win32
{09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Debug|x86.Build.0 = Debug|Win32
+ {09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Win32
+ {09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Eureka_Debug|ARM.ActiveCfg = Debug|Win32
+ {09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Eureka_Debug|ARM64.ActiveCfg = Debug|Win32
+ {09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Eureka_Debug|x64.ActiveCfg = Debug|x64
+ {09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Eureka_Debug|x64.Build.0 = Debug|x64
+ {09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Eureka_Debug|x86.ActiveCfg = Debug|Win32
+ {09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Eureka_Debug|x86.Build.0 = Debug|Win32
+ {09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Eureka|Any CPU.ActiveCfg = Debug|Win32
+ {09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Eureka|ARM.ActiveCfg = Release|Win32
+ {09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Eureka|ARM64.ActiveCfg = Release|Win32
+ {09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Eureka|x64.ActiveCfg = Release|x64
+ {09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Eureka|x64.Build.0 = Release|x64
+ {09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Eureka|x86.ActiveCfg = Release|Win32
+ {09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Eureka|x86.Build.0 = Release|Win32
{09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Release 4.0|Any CPU.ActiveCfg = Release|x64
{09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Release 4.0|Any CPU.Build.0 = Release|x64
{09B2CCD8-9EEE-4837-A6BC-B5AF3DF0557E}.Release 4.0|ARM.ActiveCfg = Release|x64
@@ -9189,6 +11307,26 @@ Global
{5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Debug|x64.Build.0 = Debug|Any CPU
{5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Debug|x86.ActiveCfg = Debug|Any CPU
{5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Debug|x86.Build.0 = Debug|Any CPU
+ {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka|ARM.Build.0 = Release|Any CPU
+ {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka|x64.Build.0 = Release|Any CPU
+ {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Eureka|x86.Build.0 = Release|Any CPU
{5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{5D0D4053-CAB3-4A4A-929E-37A76483BC22}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -9264,6 +11402,20 @@ Global
{DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Debug|x64.Build.0 = Debug|x64
{DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Debug|x86.ActiveCfg = Debug|Win32
{DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Debug|x86.Build.0 = Debug|Win32
+ {DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Win32
+ {DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Eureka_Debug|ARM.ActiveCfg = Debug|Win32
+ {DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Eureka_Debug|ARM64.ActiveCfg = Debug|Win32
+ {DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Eureka_Debug|x64.ActiveCfg = Debug|x64
+ {DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Eureka_Debug|x64.Build.0 = Debug|x64
+ {DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Eureka_Debug|x86.ActiveCfg = Debug|Win32
+ {DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Eureka_Debug|x86.Build.0 = Debug|Win32
+ {DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Eureka|Any CPU.ActiveCfg = Debug|Win32
+ {DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Eureka|ARM.ActiveCfg = Release|Win32
+ {DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Eureka|ARM64.ActiveCfg = Release|Win32
+ {DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Eureka|x64.ActiveCfg = Release|x64
+ {DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Eureka|x64.Build.0 = Release|x64
+ {DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Eureka|x86.ActiveCfg = Release|Win32
+ {DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Eureka|x86.Build.0 = Release|Win32
{DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Release 4.0|Any CPU.ActiveCfg = Release|x64
{DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Release 4.0|Any CPU.Build.0 = Release|x64
{DD19A7B3-E4B0-444E-98D4-D1C346442E63}.Release 4.0|ARM.ActiveCfg = Release|x64
@@ -9339,6 +11491,26 @@ Global
{1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Debug|x64.Build.0 = Debug|Any CPU
{1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Debug|x86.ActiveCfg = Debug|Any CPU
{1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Debug|x86.Build.0 = Debug|Any CPU
+ {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka|ARM.Build.0 = Release|Any CPU
+ {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka|x64.Build.0 = Release|Any CPU
+ {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Eureka|x86.Build.0 = Release|Any CPU
{1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{1B87CA53-50BD-4C48-A8C7-FBB9F1419AFF}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -9416,6 +11588,20 @@ Global
{BB268536-9E03-46A4-9B11-6025211D87F0}.Debug|x64.Build.0 = Debug|x64
{BB268536-9E03-46A4-9B11-6025211D87F0}.Debug|x86.ActiveCfg = Debug|Win32
{BB268536-9E03-46A4-9B11-6025211D87F0}.Debug|x86.Build.0 = Debug|Win32
+ {BB268536-9E03-46A4-9B11-6025211D87F0}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Win32
+ {BB268536-9E03-46A4-9B11-6025211D87F0}.Eureka_Debug|ARM.ActiveCfg = Debug|Win32
+ {BB268536-9E03-46A4-9B11-6025211D87F0}.Eureka_Debug|ARM64.ActiveCfg = Debug|Win32
+ {BB268536-9E03-46A4-9B11-6025211D87F0}.Eureka_Debug|x64.ActiveCfg = Debug|x64
+ {BB268536-9E03-46A4-9B11-6025211D87F0}.Eureka_Debug|x64.Build.0 = Debug|x64
+ {BB268536-9E03-46A4-9B11-6025211D87F0}.Eureka_Debug|x86.ActiveCfg = Debug|Win32
+ {BB268536-9E03-46A4-9B11-6025211D87F0}.Eureka_Debug|x86.Build.0 = Debug|Win32
+ {BB268536-9E03-46A4-9B11-6025211D87F0}.Eureka|Any CPU.ActiveCfg = Debug|Win32
+ {BB268536-9E03-46A4-9B11-6025211D87F0}.Eureka|ARM.ActiveCfg = Release|Win32
+ {BB268536-9E03-46A4-9B11-6025211D87F0}.Eureka|ARM64.ActiveCfg = Release|Win32
+ {BB268536-9E03-46A4-9B11-6025211D87F0}.Eureka|x64.ActiveCfg = Release|x64
+ {BB268536-9E03-46A4-9B11-6025211D87F0}.Eureka|x64.Build.0 = Release|x64
+ {BB268536-9E03-46A4-9B11-6025211D87F0}.Eureka|x86.ActiveCfg = Release|Win32
+ {BB268536-9E03-46A4-9B11-6025211D87F0}.Eureka|x86.Build.0 = Release|Win32
{BB268536-9E03-46A4-9B11-6025211D87F0}.Release 4.0|Any CPU.ActiveCfg = Release|x64
{BB268536-9E03-46A4-9B11-6025211D87F0}.Release 4.0|Any CPU.Build.0 = Release|x64
{BB268536-9E03-46A4-9B11-6025211D87F0}.Release 4.0|ARM.ActiveCfg = Release|x64
@@ -9491,6 +11677,26 @@ Global
{1E938FD2-C669-4738-98C9-77F96CE4D451}.Debug|x64.Build.0 = Debug|Any CPU
{1E938FD2-C669-4738-98C9-77F96CE4D451}.Debug|x86.ActiveCfg = Debug|Any CPU
{1E938FD2-C669-4738-98C9-77F96CE4D451}.Debug|x86.Build.0 = Debug|Any CPU
+ {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka|ARM.Build.0 = Release|Any CPU
+ {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka|x64.Build.0 = Release|Any CPU
+ {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {1E938FD2-C669-4738-98C9-77F96CE4D451}.Eureka|x86.Build.0 = Release|Any CPU
{1E938FD2-C669-4738-98C9-77F96CE4D451}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{1E938FD2-C669-4738-98C9-77F96CE4D451}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{1E938FD2-C669-4738-98C9-77F96CE4D451}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -9571,6 +11777,26 @@ Global
{DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Debug|x64.Build.0 = Debug|Any CPU
{DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Debug|x86.ActiveCfg = Debug|Any CPU
{DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Debug|x86.Build.0 = Debug|Any CPU
+ {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka|ARM.Build.0 = Release|Any CPU
+ {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka|x64.Build.0 = Release|Any CPU
+ {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Eureka|x86.Build.0 = Release|Any CPU
{DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{DA62FA39-668B-47A6-B0F2-D2C1DAF777B0}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -9651,6 +11877,26 @@ Global
{C9F60285-91FB-4293-BCF5-164D76755CDD}.Debug|x64.Build.0 = Debug|Any CPU
{C9F60285-91FB-4293-BCF5-164D76755CDD}.Debug|x86.ActiveCfg = Debug|Any CPU
{C9F60285-91FB-4293-BCF5-164D76755CDD}.Debug|x86.Build.0 = Debug|Any CPU
+ {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka|ARM.Build.0 = Release|Any CPU
+ {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka|x64.Build.0 = Release|Any CPU
+ {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {C9F60285-91FB-4293-BCF5-164D76755CDD}.Eureka|x86.Build.0 = Release|Any CPU
{C9F60285-91FB-4293-BCF5-164D76755CDD}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{C9F60285-91FB-4293-BCF5-164D76755CDD}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{C9F60285-91FB-4293-BCF5-164D76755CDD}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -9731,6 +11977,26 @@ Global
{B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Debug|x64.Build.0 = Debug|Any CPU
{B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Debug|x86.ActiveCfg = Debug|Any CPU
{B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Debug|x86.Build.0 = Debug|Any CPU
+ {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka|ARM.Build.0 = Release|Any CPU
+ {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka|x64.Build.0 = Release|Any CPU
+ {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Eureka|x86.Build.0 = Release|Any CPU
{B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{B0EFE7A0-7039-4DC4-8B39-465E521299F6}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -9811,6 +12077,26 @@ Global
{1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Debug|x64.Build.0 = Debug|Any CPU
{1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Debug|x86.ActiveCfg = Debug|Any CPU
{1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Debug|x86.Build.0 = Debug|Any CPU
+ {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka|ARM.Build.0 = Release|Any CPU
+ {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka|x64.Build.0 = Release|Any CPU
+ {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Eureka|x86.Build.0 = Release|Any CPU
{1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{1066BC62-F167-4FC3-8F8B-982A9F632B4A}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -9891,6 +12177,26 @@ Global
{F13A489C-80EE-4CD0-BDD4-92D959215646}.Debug|x64.Build.0 = Debug|Any CPU
{F13A489C-80EE-4CD0-BDD4-92D959215646}.Debug|x86.ActiveCfg = Debug|Any CPU
{F13A489C-80EE-4CD0-BDD4-92D959215646}.Debug|x86.Build.0 = Debug|Any CPU
+ {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka|ARM.Build.0 = Release|Any CPU
+ {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka|x64.Build.0 = Release|Any CPU
+ {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {F13A489C-80EE-4CD0-BDD4-92D959215646}.Eureka|x86.Build.0 = Release|Any CPU
{F13A489C-80EE-4CD0-BDD4-92D959215646}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{F13A489C-80EE-4CD0-BDD4-92D959215646}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{F13A489C-80EE-4CD0-BDD4-92D959215646}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -9971,6 +12277,26 @@ Global
{6B9774F7-960D-438E-AD81-C6B9BE328D50}.Debug|x64.Build.0 = Debug|Any CPU
{6B9774F7-960D-438E-AD81-C6B9BE328D50}.Debug|x86.ActiveCfg = Debug|Any CPU
{6B9774F7-960D-438E-AD81-C6B9BE328D50}.Debug|x86.Build.0 = Debug|Any CPU
+ {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka|ARM.Build.0 = Release|Any CPU
+ {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka|x64.Build.0 = Release|Any CPU
+ {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {6B9774F7-960D-438E-AD81-C6B9BE328D50}.Eureka|x86.Build.0 = Release|Any CPU
{6B9774F7-960D-438E-AD81-C6B9BE328D50}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{6B9774F7-960D-438E-AD81-C6B9BE328D50}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{6B9774F7-960D-438E-AD81-C6B9BE328D50}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -10051,6 +12377,26 @@ Global
{B822CBD9-1113-4668-85C9-22AA9C24CE60}.Debug|x64.Build.0 = Debug|Any CPU
{B822CBD9-1113-4668-85C9-22AA9C24CE60}.Debug|x86.ActiveCfg = Debug|Any CPU
{B822CBD9-1113-4668-85C9-22AA9C24CE60}.Debug|x86.Build.0 = Debug|Any CPU
+ {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka|ARM.Build.0 = Release|Any CPU
+ {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka|x64.Build.0 = Release|Any CPU
+ {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {B822CBD9-1113-4668-85C9-22AA9C24CE60}.Eureka|x86.Build.0 = Release|Any CPU
{B822CBD9-1113-4668-85C9-22AA9C24CE60}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{B822CBD9-1113-4668-85C9-22AA9C24CE60}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{B822CBD9-1113-4668-85C9-22AA9C24CE60}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -10131,6 +12477,26 @@ Global
{0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Debug|x64.Build.0 = Debug|Any CPU
{0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Debug|x86.ActiveCfg = Debug|Any CPU
{0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Debug|x86.Build.0 = Debug|Any CPU
+ {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka|ARM.Build.0 = Release|Any CPU
+ {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka|x64.Build.0 = Release|Any CPU
+ {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Eureka|x86.Build.0 = Release|Any CPU
{0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{0C596287-D63B-4BB7-A3D7-B682DD9EC60B}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -10211,6 +12577,26 @@ Global
{CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Debug|x64.Build.0 = Debug|Any CPU
{CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Debug|x86.ActiveCfg = Debug|Any CPU
{CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Debug|x86.Build.0 = Debug|Any CPU
+ {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka|ARM.Build.0 = Release|Any CPU
+ {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka|x64.Build.0 = Release|Any CPU
+ {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Eureka|x86.Build.0 = Release|Any CPU
{CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{CC6D5193-434D-410F-B0F3-BE2017D86FCE}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -10291,6 +12677,26 @@ Global
{B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Debug|x64.Build.0 = Debug|Any CPU
{B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Debug|x86.ActiveCfg = Debug|Any CPU
{B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Debug|x86.Build.0 = Debug|Any CPU
+ {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka|ARM.Build.0 = Release|Any CPU
+ {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka|x64.Build.0 = Release|Any CPU
+ {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Eureka|x86.Build.0 = Release|Any CPU
{B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{B4FE6485-4161-4B36-BC08-67E0B53D01B7}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -10371,6 +12777,26 @@ Global
{7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Debug|x64.Build.0 = Debug|Any CPU
{7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Debug|x86.ActiveCfg = Debug|Any CPU
{7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Debug|x86.Build.0 = Debug|Any CPU
+ {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka|ARM.Build.0 = Release|Any CPU
+ {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka|x64.Build.0 = Release|Any CPU
+ {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Eureka|x86.Build.0 = Release|Any CPU
{7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{7D0FCE3C-9A37-439C-9F9F-B26CFD6A8A33}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -10451,6 +12877,26 @@ Global
{8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Debug|x64.Build.0 = Debug|Any CPU
{8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Debug|x86.ActiveCfg = Debug|Any CPU
{8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Debug|x86.Build.0 = Debug|Any CPU
+ {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka|ARM.Build.0 = Release|Any CPU
+ {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka|x64.Build.0 = Release|Any CPU
+ {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Eureka|x86.Build.0 = Release|Any CPU
{8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{8146FA0A-0725-4A1A-82E6-696C58F33A2B}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -10531,6 +12977,26 @@ Global
{C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Debug|x64.Build.0 = Debug|Any CPU
{C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Debug|x86.ActiveCfg = Debug|Any CPU
{C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Debug|x86.Build.0 = Debug|Any CPU
+ {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka|ARM.Build.0 = Release|Any CPU
+ {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka|x64.Build.0 = Release|Any CPU
+ {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Eureka|x86.Build.0 = Release|Any CPU
{C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{C421E1D8-9B67-4A87-8E9F-8214721FA9AD}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -10611,6 +13077,26 @@ Global
{50119E79-5012-4B36-8438-953DD5FC06E6}.Debug|x64.Build.0 = Debug|Any CPU
{50119E79-5012-4B36-8438-953DD5FC06E6}.Debug|x86.ActiveCfg = Debug|Any CPU
{50119E79-5012-4B36-8438-953DD5FC06E6}.Debug|x86.Build.0 = Debug|Any CPU
+ {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka|ARM.Build.0 = Release|Any CPU
+ {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka|x64.Build.0 = Release|Any CPU
+ {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {50119E79-5012-4B36-8438-953DD5FC06E6}.Eureka|x86.Build.0 = Release|Any CPU
{50119E79-5012-4B36-8438-953DD5FC06E6}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{50119E79-5012-4B36-8438-953DD5FC06E6}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{50119E79-5012-4B36-8438-953DD5FC06E6}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -10689,6 +13175,22 @@ Global
{CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Debug|x64.Build.0 = Debug|x64
{CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Debug|x86.ActiveCfg = Debug|Win32
{CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Debug|x86.Build.0 = Debug|Win32
+ {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Win32
+ {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Eureka_Debug|Any CPU.Build.0 = Debug|Win32
+ {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Eureka_Debug|ARM.ActiveCfg = Debug|Win32
+ {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Eureka_Debug|ARM64.ActiveCfg = Debug|Win32
+ {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Eureka_Debug|x64.ActiveCfg = Debug|x64
+ {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Eureka_Debug|x64.Build.0 = Debug|x64
+ {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Eureka_Debug|x86.ActiveCfg = Debug|Win32
+ {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Eureka_Debug|x86.Build.0 = Debug|Win32
+ {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Eureka|Any CPU.ActiveCfg = Debug|Win32
+ {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Eureka|Any CPU.Build.0 = Debug|Win32
+ {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Eureka|ARM.ActiveCfg = Release|Win32
+ {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Eureka|ARM64.ActiveCfg = Release|Win32
+ {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Eureka|x64.ActiveCfg = Release|x64
+ {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Eureka|x64.Build.0 = Release|x64
+ {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Eureka|x86.ActiveCfg = Release|Win32
+ {CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Eureka|x86.Build.0 = Release|Win32
{CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Release 4.0|Any CPU.ActiveCfg = Release|x64
{CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Release 4.0|Any CPU.Build.0 = Release|x64
{CF4C66B0-CD13-4D31-8133-339A01E7E6F2}.Release 4.0|ARM.ActiveCfg = Release|x64
@@ -10765,6 +13267,22 @@ Global
{1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Debug|x64.Build.0 = Debug|x64
{1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Debug|x86.ActiveCfg = Debug|Win32
{1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Debug|x86.Build.0 = Debug|Win32
+ {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Win32
+ {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Eureka_Debug|Any CPU.Build.0 = Debug|Win32
+ {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Eureka_Debug|ARM.ActiveCfg = Debug|Win32
+ {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Eureka_Debug|ARM64.ActiveCfg = Debug|Win32
+ {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Eureka_Debug|x64.ActiveCfg = Debug|x64
+ {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Eureka_Debug|x64.Build.0 = Debug|x64
+ {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Eureka_Debug|x86.ActiveCfg = Debug|Win32
+ {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Eureka_Debug|x86.Build.0 = Debug|Win32
+ {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Eureka|Any CPU.ActiveCfg = Debug|Win32
+ {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Eureka|Any CPU.Build.0 = Debug|Win32
+ {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Eureka|ARM.ActiveCfg = Release|Win32
+ {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Eureka|ARM64.ActiveCfg = Release|Win32
+ {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Eureka|x64.ActiveCfg = Release|x64
+ {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Eureka|x64.Build.0 = Release|x64
+ {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Eureka|x86.ActiveCfg = Release|Win32
+ {1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Eureka|x86.Build.0 = Release|Win32
{1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Release 4.0|Any CPU.ActiveCfg = Release|x64
{1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Release 4.0|Any CPU.Build.0 = Release|x64
{1A3FC7FB-403C-4B3D-B705-28FCE11317DD}.Release 4.0|ARM.ActiveCfg = Release|x64
@@ -10841,6 +13359,22 @@ Global
{A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Debug|x64.Build.0 = Debug|x64
{A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Debug|x86.ActiveCfg = Debug|Win32
{A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Debug|x86.Build.0 = Debug|Win32
+ {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Win32
+ {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Eureka_Debug|Any CPU.Build.0 = Debug|Win32
+ {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Eureka_Debug|ARM.ActiveCfg = Debug|Win32
+ {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Eureka_Debug|ARM64.ActiveCfg = Debug|Win32
+ {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Eureka_Debug|x64.ActiveCfg = Debug|x64
+ {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Eureka_Debug|x64.Build.0 = Debug|x64
+ {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Eureka_Debug|x86.ActiveCfg = Debug|Win32
+ {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Eureka_Debug|x86.Build.0 = Debug|Win32
+ {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Eureka|Any CPU.ActiveCfg = Debug|Win32
+ {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Eureka|Any CPU.Build.0 = Debug|Win32
+ {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Eureka|ARM.ActiveCfg = Release|Win32
+ {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Eureka|ARM64.ActiveCfg = Release|Win32
+ {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Eureka|x64.ActiveCfg = Release|x64
+ {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Eureka|x64.Build.0 = Release|x64
+ {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Eureka|x86.ActiveCfg = Release|Win32
+ {A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Eureka|x86.Build.0 = Release|Win32
{A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Release 4.0|Any CPU.ActiveCfg = Release|x64
{A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Release 4.0|Any CPU.Build.0 = Release|x64
{A3A8ADA0-C150-4E30-A60D-11F291FDBF7A}.Release 4.0|ARM.ActiveCfg = Release|x64
@@ -10919,6 +13453,26 @@ Global
{011470AC-6BD6-4366-B5F2-C82C065D4A84}.Debug|x64.Build.0 = Debug|Any CPU
{011470AC-6BD6-4366-B5F2-C82C065D4A84}.Debug|x86.ActiveCfg = Debug|Any CPU
{011470AC-6BD6-4366-B5F2-C82C065D4A84}.Debug|x86.Build.0 = Debug|Any CPU
+ {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka|ARM.Build.0 = Release|Any CPU
+ {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka|x64.Build.0 = Release|Any CPU
+ {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {011470AC-6BD6-4366-B5F2-C82C065D4A84}.Eureka|x86.Build.0 = Release|Any CPU
{011470AC-6BD6-4366-B5F2-C82C065D4A84}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{011470AC-6BD6-4366-B5F2-C82C065D4A84}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{011470AC-6BD6-4366-B5F2-C82C065D4A84}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -10999,6 +13553,26 @@ Global
{BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Debug|x64.Build.0 = Debug|Any CPU
{BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Debug|x86.ActiveCfg = Debug|Any CPU
{BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Debug|x86.Build.0 = Debug|Any CPU
+ {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka|ARM.Build.0 = Release|Any CPU
+ {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka|x64.Build.0 = Release|Any CPU
+ {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Eureka|x86.Build.0 = Release|Any CPU
{BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -11079,6 +13653,26 @@ Global
{D74893F2-9E39-4C72-BDD4-937404E1FC37}.Debug|x64.Build.0 = Debug|Any CPU
{D74893F2-9E39-4C72-BDD4-937404E1FC37}.Debug|x86.ActiveCfg = Debug|Any CPU
{D74893F2-9E39-4C72-BDD4-937404E1FC37}.Debug|x86.Build.0 = Debug|Any CPU
+ {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka|ARM.Build.0 = Release|Any CPU
+ {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka|x64.Build.0 = Release|Any CPU
+ {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Eureka|x86.Build.0 = Release|Any CPU
{D74893F2-9E39-4C72-BDD4-937404E1FC37}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{D74893F2-9E39-4C72-BDD4-937404E1FC37}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{D74893F2-9E39-4C72-BDD4-937404E1FC37}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -11159,6 +13753,24 @@ Global
{2CD12594-3522-4658-A65F-190EE58B6AFA}.Debug|x64.Build.0 = Debug|Any CPU
{2CD12594-3522-4658-A65F-190EE58B6AFA}.Debug|x86.ActiveCfg = Debug|Any CPU
{2CD12594-3522-4658-A65F-190EE58B6AFA}.Debug|x86.Build.0 = Debug|Any CPU
+ {2CD12594-3522-4658-A65F-190EE58B6AFA}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2CD12594-3522-4658-A65F-190EE58B6AFA}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {2CD12594-3522-4658-A65F-190EE58B6AFA}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {2CD12594-3522-4658-A65F-190EE58B6AFA}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {2CD12594-3522-4658-A65F-190EE58B6AFA}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {2CD12594-3522-4658-A65F-190EE58B6AFA}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {2CD12594-3522-4658-A65F-190EE58B6AFA}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {2CD12594-3522-4658-A65F-190EE58B6AFA}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {2CD12594-3522-4658-A65F-190EE58B6AFA}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {2CD12594-3522-4658-A65F-190EE58B6AFA}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {2CD12594-3522-4658-A65F-190EE58B6AFA}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {2CD12594-3522-4658-A65F-190EE58B6AFA}.Eureka|ARM.Build.0 = Release|Any CPU
+ {2CD12594-3522-4658-A65F-190EE58B6AFA}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {2CD12594-3522-4658-A65F-190EE58B6AFA}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {2CD12594-3522-4658-A65F-190EE58B6AFA}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {2CD12594-3522-4658-A65F-190EE58B6AFA}.Eureka|x64.Build.0 = Release|Any CPU
+ {2CD12594-3522-4658-A65F-190EE58B6AFA}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {2CD12594-3522-4658-A65F-190EE58B6AFA}.Eureka|x86.Build.0 = Release|Any CPU
{2CD12594-3522-4658-A65F-190EE58B6AFA}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{2CD12594-3522-4658-A65F-190EE58B6AFA}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{2CD12594-3522-4658-A65F-190EE58B6AFA}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -11239,6 +13851,24 @@ Global
{DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Debug|x64.Build.0 = Debug|Any CPU
{DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Debug|x86.ActiveCfg = Debug|Any CPU
{DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Debug|x86.Build.0 = Debug|Any CPU
+ {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Eureka|ARM.Build.0 = Release|Any CPU
+ {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Eureka|x64.Build.0 = Release|Any CPU
+ {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Eureka|x86.Build.0 = Release|Any CPU
{DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -11319,6 +13949,26 @@ Global
{F3746F2B-E4AE-498B-9D42-74F95D992460}.Debug|x64.Build.0 = Debug|Any CPU
{F3746F2B-E4AE-498B-9D42-74F95D992460}.Debug|x86.ActiveCfg = Debug|Any CPU
{F3746F2B-E4AE-498B-9D42-74F95D992460}.Debug|x86.Build.0 = Debug|Any CPU
+ {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka|ARM.Build.0 = Release|Any CPU
+ {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka|x64.Build.0 = Release|Any CPU
+ {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {F3746F2B-E4AE-498B-9D42-74F95D992460}.Eureka|x86.Build.0 = Release|Any CPU
{F3746F2B-E4AE-498B-9D42-74F95D992460}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{F3746F2B-E4AE-498B-9D42-74F95D992460}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{F3746F2B-E4AE-498B-9D42-74F95D992460}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -11399,6 +14049,26 @@ Global
{18A27902-9881-4556-8163-F6DF2236A14D}.Debug|x64.Build.0 = Debug|Any CPU
{18A27902-9881-4556-8163-F6DF2236A14D}.Debug|x86.ActiveCfg = Debug|Any CPU
{18A27902-9881-4556-8163-F6DF2236A14D}.Debug|x86.Build.0 = Debug|Any CPU
+ {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka|ARM.Build.0 = Release|Any CPU
+ {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka|x64.Build.0 = Release|Any CPU
+ {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {18A27902-9881-4556-8163-F6DF2236A14D}.Eureka|x86.Build.0 = Release|Any CPU
{18A27902-9881-4556-8163-F6DF2236A14D}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{18A27902-9881-4556-8163-F6DF2236A14D}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{18A27902-9881-4556-8163-F6DF2236A14D}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -11479,6 +14149,26 @@ Global
{447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Debug|x64.Build.0 = Debug|Any CPU
{447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Debug|x86.ActiveCfg = Debug|Any CPU
{447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Debug|x86.Build.0 = Debug|Any CPU
+ {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka|ARM.Build.0 = Release|Any CPU
+ {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka|x64.Build.0 = Release|Any CPU
+ {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Eureka|x86.Build.0 = Release|Any CPU
{447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{447ECB9F-F730-47D6-8DF8-D232BF4A0315}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -11559,6 +14249,26 @@ Global
{511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Debug|x64.Build.0 = Debug|Any CPU
{511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Debug|x86.ActiveCfg = Debug|Any CPU
{511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Debug|x86.Build.0 = Debug|Any CPU
+ {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka|ARM.Build.0 = Release|Any CPU
+ {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka|x64.Build.0 = Release|Any CPU
+ {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Eureka|x86.Build.0 = Release|Any CPU
{511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{511A8AD7-6BA2-4BB5-A20A-1454196C5503}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -11639,6 +14349,26 @@ Global
{4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Debug|x64.Build.0 = Debug|Any CPU
{4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Debug|x86.ActiveCfg = Debug|Any CPU
{4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Debug|x86.Build.0 = Debug|Any CPU
+ {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka|ARM.Build.0 = Release|Any CPU
+ {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka|x64.Build.0 = Release|Any CPU
+ {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Eureka|x86.Build.0 = Release|Any CPU
{4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{4A6B97E5-5EBA-4702-A016-6F4004F14B08}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -11719,6 +14449,26 @@ Global
{DF378E50-F0F8-46BF-A410-36DB02F2A742}.Debug|x64.Build.0 = Debug|Any CPU
{DF378E50-F0F8-46BF-A410-36DB02F2A742}.Debug|x86.ActiveCfg = Debug|Any CPU
{DF378E50-F0F8-46BF-A410-36DB02F2A742}.Debug|x86.Build.0 = Debug|Any CPU
+ {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka|ARM.Build.0 = Release|Any CPU
+ {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka|x64.Build.0 = Release|Any CPU
+ {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {DF378E50-F0F8-46BF-A410-36DB02F2A742}.Eureka|x86.Build.0 = Release|Any CPU
{DF378E50-F0F8-46BF-A410-36DB02F2A742}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{DF378E50-F0F8-46BF-A410-36DB02F2A742}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{DF378E50-F0F8-46BF-A410-36DB02F2A742}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -11799,6 +14549,26 @@ Global
{0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Debug|x64.Build.0 = Debug|Any CPU
{0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Debug|x86.ActiveCfg = Debug|Any CPU
{0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Debug|x86.Build.0 = Debug|Any CPU
+ {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka|ARM.Build.0 = Release|Any CPU
+ {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka|x64.Build.0 = Release|Any CPU
+ {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Eureka|x86.Build.0 = Release|Any CPU
{0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{0F5F28AD-81B9-43A0-9BA7-CFB74F37202C}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -11879,6 +14649,26 @@ Global
{26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Debug|x64.Build.0 = Debug|Any CPU
{26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Debug|x86.ActiveCfg = Debug|Any CPU
{26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Debug|x86.Build.0 = Debug|Any CPU
+ {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka|ARM.Build.0 = Release|Any CPU
+ {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka|x64.Build.0 = Release|Any CPU
+ {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Eureka|x86.Build.0 = Release|Any CPU
{26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{26C54A4F-315D-4B79-B163-EDDDE8F93A86}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -11959,6 +14749,26 @@ Global
{BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Debug|x64.Build.0 = Debug|Any CPU
{BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Debug|x86.ActiveCfg = Debug|Any CPU
{BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Debug|x86.Build.0 = Debug|Any CPU
+ {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka|ARM.Build.0 = Release|Any CPU
+ {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka|x64.Build.0 = Release|Any CPU
+ {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Eureka|x86.Build.0 = Release|Any CPU
{BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{BC37CCCB-7392-4F78-8D1C-E9629E6E046E}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -12039,6 +14849,26 @@ Global
{8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Debug|x64.Build.0 = Debug|Any CPU
{8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Debug|x86.ActiveCfg = Debug|Any CPU
{8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Debug|x86.Build.0 = Debug|Any CPU
+ {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka|ARM.Build.0 = Release|Any CPU
+ {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka|x64.Build.0 = Release|Any CPU
+ {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Eureka|x86.Build.0 = Release|Any CPU
{8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{8CFFA4FC-F46F-475D-A270-DAFBFB532BC8}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -12119,6 +14949,26 @@ Global
{D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Debug|x64.Build.0 = Debug|Any CPU
{D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Debug|x86.ActiveCfg = Debug|Any CPU
{D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Debug|x86.Build.0 = Debug|Any CPU
+ {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka|ARM.Build.0 = Release|Any CPU
+ {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka|x64.Build.0 = Release|Any CPU
+ {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Eureka|x86.Build.0 = Release|Any CPU
{D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{D6F7D31D-7F8C-45E2-AE0A-FBBD1F5F9D5F}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -12199,6 +15049,26 @@ Global
{834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Debug|x64.Build.0 = Debug|Any CPU
{834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Debug|x86.ActiveCfg = Debug|Any CPU
{834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Debug|x86.Build.0 = Debug|Any CPU
+ {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka|ARM.Build.0 = Release|Any CPU
+ {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka|x64.Build.0 = Release|Any CPU
+ {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Eureka|x86.Build.0 = Release|Any CPU
{834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{834C81C3-09B5-45D7-BE12-E7D1E6655A7C}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -12279,6 +15149,26 @@ Global
{866B916A-207C-43F0-B403-7C4A820C2E11}.Debug|x64.Build.0 = Debug|Any CPU
{866B916A-207C-43F0-B403-7C4A820C2E11}.Debug|x86.ActiveCfg = Debug|Any CPU
{866B916A-207C-43F0-B403-7C4A820C2E11}.Debug|x86.Build.0 = Debug|Any CPU
+ {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka|ARM.Build.0 = Release|Any CPU
+ {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka|x64.Build.0 = Release|Any CPU
+ {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {866B916A-207C-43F0-B403-7C4A820C2E11}.Eureka|x86.Build.0 = Release|Any CPU
{866B916A-207C-43F0-B403-7C4A820C2E11}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{866B916A-207C-43F0-B403-7C4A820C2E11}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{866B916A-207C-43F0-B403-7C4A820C2E11}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -12359,6 +15249,26 @@ Global
{199E8359-CAD3-433D-9EED-2027652B24A4}.Debug|x64.Build.0 = Debug|Any CPU
{199E8359-CAD3-433D-9EED-2027652B24A4}.Debug|x86.ActiveCfg = Debug|Any CPU
{199E8359-CAD3-433D-9EED-2027652B24A4}.Debug|x86.Build.0 = Debug|Any CPU
+ {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka|ARM.Build.0 = Release|Any CPU
+ {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka|x64.Build.0 = Release|Any CPU
+ {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {199E8359-CAD3-433D-9EED-2027652B24A4}.Eureka|x86.Build.0 = Release|Any CPU
{199E8359-CAD3-433D-9EED-2027652B24A4}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{199E8359-CAD3-433D-9EED-2027652B24A4}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{199E8359-CAD3-433D-9EED-2027652B24A4}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -12439,6 +15349,26 @@ Global
{A78068D4-2061-4376-8EDE-583D8D880DEC}.Debug|x64.Build.0 = Debug|Any CPU
{A78068D4-2061-4376-8EDE-583D8D880DEC}.Debug|x86.ActiveCfg = Debug|Any CPU
{A78068D4-2061-4376-8EDE-583D8D880DEC}.Debug|x86.Build.0 = Debug|Any CPU
+ {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka|ARM.Build.0 = Release|Any CPU
+ {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka|x64.Build.0 = Release|Any CPU
+ {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {A78068D4-2061-4376-8EDE-583D8D880DEC}.Eureka|x86.Build.0 = Release|Any CPU
{A78068D4-2061-4376-8EDE-583D8D880DEC}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{A78068D4-2061-4376-8EDE-583D8D880DEC}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{A78068D4-2061-4376-8EDE-583D8D880DEC}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -12517,6 +15447,22 @@ Global
{A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Debug|x64.Build.0 = Debug|x64
{A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Debug|x86.ActiveCfg = Debug|Win32
{A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Debug|x86.Build.0 = Debug|Win32
+ {A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Win32
+ {A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Eureka_Debug|Any CPU.Build.0 = Debug|Win32
+ {A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Eureka_Debug|ARM.ActiveCfg = Debug|Win32
+ {A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Eureka_Debug|ARM64.ActiveCfg = Debug|Win32
+ {A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Eureka_Debug|x64.ActiveCfg = Debug|x64
+ {A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Eureka_Debug|x64.Build.0 = Debug|x64
+ {A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Eureka_Debug|x86.ActiveCfg = Debug|Win32
+ {A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Eureka_Debug|x86.Build.0 = Debug|Win32
+ {A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Eureka|Any CPU.ActiveCfg = Debug|Win32
+ {A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Eureka|Any CPU.Build.0 = Debug|Win32
+ {A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Eureka|ARM.ActiveCfg = Release|Win32
+ {A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Eureka|ARM64.ActiveCfg = Release|Win32
+ {A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Eureka|x64.ActiveCfg = Release|x64
+ {A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Eureka|x64.Build.0 = Release|x64
+ {A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Eureka|x86.ActiveCfg = Release|Win32
+ {A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Eureka|x86.Build.0 = Release|Win32
{A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Release 4.0|Any CPU.ActiveCfg = Release|x64
{A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Release 4.0|Any CPU.Build.0 = Release|x64
{A07E6CB4-0132-4EB1-9A38-C8C057884DC2}.Release 4.0|ARM.ActiveCfg = Release|x64
@@ -12595,6 +15541,26 @@ Global
{09F81A12-0F77-4336-854D-9E0A74A17F9E}.Debug|x64.Build.0 = Debug|Any CPU
{09F81A12-0F77-4336-854D-9E0A74A17F9E}.Debug|x86.ActiveCfg = Debug|Any CPU
{09F81A12-0F77-4336-854D-9E0A74A17F9E}.Debug|x86.Build.0 = Debug|Any CPU
+ {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka|ARM.Build.0 = Release|Any CPU
+ {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka|x64.Build.0 = Release|Any CPU
+ {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {09F81A12-0F77-4336-854D-9E0A74A17F9E}.Eureka|x86.Build.0 = Release|Any CPU
{09F81A12-0F77-4336-854D-9E0A74A17F9E}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{09F81A12-0F77-4336-854D-9E0A74A17F9E}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{09F81A12-0F77-4336-854D-9E0A74A17F9E}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -12675,6 +15641,26 @@ Global
{997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Debug|x64.Build.0 = Debug|Any CPU
{997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Debug|x86.ActiveCfg = Debug|Any CPU
{997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Debug|x86.Build.0 = Debug|Any CPU
+ {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka|ARM.Build.0 = Release|Any CPU
+ {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka|x64.Build.0 = Release|Any CPU
+ {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Eureka|x86.Build.0 = Release|Any CPU
{997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{997A961C-BEDA-4B56-AA0F-C39E532F7FFA}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -12755,6 +15741,26 @@ Global
{C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Debug|x64.Build.0 = Debug|Any CPU
{C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Debug|x86.ActiveCfg = Debug|Any CPU
{C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Debug|x86.Build.0 = Debug|Any CPU
+ {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka|ARM.Build.0 = Release|Any CPU
+ {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka|x64.Build.0 = Release|Any CPU
+ {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Eureka|x86.Build.0 = Release|Any CPU
{C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -12835,6 +15841,26 @@ Global
{208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Debug|x64.Build.0 = Debug|Any CPU
{208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Debug|x86.ActiveCfg = Debug|Any CPU
{208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Debug|x86.Build.0 = Debug|Any CPU
+ {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka|ARM.Build.0 = Release|Any CPU
+ {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka|x64.Build.0 = Release|Any CPU
+ {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Eureka|x86.Build.0 = Release|Any CPU
{208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -12915,6 +15941,26 @@ Global
{0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Debug|x64.Build.0 = Debug|Any CPU
{0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Debug|x86.ActiveCfg = Debug|Any CPU
{0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Debug|x86.Build.0 = Debug|Any CPU
+ {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka|ARM.Build.0 = Release|Any CPU
+ {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka|x64.Build.0 = Release|Any CPU
+ {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Eureka|x86.Build.0 = Release|Any CPU
{0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{0C0B24CB-79AF-4253-AAC3-B2BADF034675}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -12995,6 +16041,26 @@ Global
{7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Debug|x64.Build.0 = Debug|Any CPU
{7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Debug|x86.ActiveCfg = Debug|Any CPU
{7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Debug|x86.Build.0 = Debug|Any CPU
+ {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka|ARM.Build.0 = Release|Any CPU
+ {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka|x64.Build.0 = Release|Any CPU
+ {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Eureka|x86.Build.0 = Release|Any CPU
{7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{7CB96D74-8B71-4A81-B4E1-6DE7BFCA6174}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -13075,6 +16141,26 @@ Global
{564A30E2-E681-422A-9528-3E8CE301B837}.Debug|x64.Build.0 = Debug|Any CPU
{564A30E2-E681-422A-9528-3E8CE301B837}.Debug|x86.ActiveCfg = Debug|Any CPU
{564A30E2-E681-422A-9528-3E8CE301B837}.Debug|x86.Build.0 = Debug|Any CPU
+ {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka|ARM.Build.0 = Release|Any CPU
+ {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka|x64.Build.0 = Release|Any CPU
+ {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {564A30E2-E681-422A-9528-3E8CE301B837}.Eureka|x86.Build.0 = Release|Any CPU
{564A30E2-E681-422A-9528-3E8CE301B837}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{564A30E2-E681-422A-9528-3E8CE301B837}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{564A30E2-E681-422A-9528-3E8CE301B837}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -13155,6 +16241,26 @@ Global
{2B29A699-1D65-463A-8250-A2CE81D019C9}.Debug|x64.Build.0 = Debug|Any CPU
{2B29A699-1D65-463A-8250-A2CE81D019C9}.Debug|x86.ActiveCfg = Debug|Any CPU
{2B29A699-1D65-463A-8250-A2CE81D019C9}.Debug|x86.Build.0 = Debug|Any CPU
+ {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka|ARM.Build.0 = Release|Any CPU
+ {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka|x64.Build.0 = Release|Any CPU
+ {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {2B29A699-1D65-463A-8250-A2CE81D019C9}.Eureka|x86.Build.0 = Release|Any CPU
{2B29A699-1D65-463A-8250-A2CE81D019C9}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{2B29A699-1D65-463A-8250-A2CE81D019C9}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{2B29A699-1D65-463A-8250-A2CE81D019C9}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -13235,6 +16341,26 @@ Global
{5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Debug|x64.Build.0 = Debug|Any CPU
{5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Debug|x86.ActiveCfg = Debug|Any CPU
{5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Debug|x86.Build.0 = Debug|Any CPU
+ {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka|ARM.Build.0 = Release|Any CPU
+ {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka|x64.Build.0 = Release|Any CPU
+ {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Eureka|x86.Build.0 = Release|Any CPU
{5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{5812E1C6-ABAA-4066-94AC-971C27B4F46A}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -13315,6 +16441,26 @@ Global
{8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Debug|x64.Build.0 = Debug|Any CPU
{8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Debug|x86.ActiveCfg = Debug|Any CPU
{8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Debug|x86.Build.0 = Debug|Any CPU
+ {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka|ARM.Build.0 = Release|Any CPU
+ {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka|x64.Build.0 = Release|Any CPU
+ {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Eureka|x86.Build.0 = Release|Any CPU
{8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{8D8F06ED-7F75-4933-B0C5-829B0FF654D0}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -13395,6 +16541,26 @@ Global
{F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Debug|x64.Build.0 = Debug|Any CPU
{F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Debug|x86.ActiveCfg = Debug|Any CPU
{F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Debug|x86.Build.0 = Debug|Any CPU
+ {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka|ARM.Build.0 = Release|Any CPU
+ {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka|x64.Build.0 = Release|Any CPU
+ {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Eureka|x86.Build.0 = Release|Any CPU
{F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{F9DF9435-A4F3-43C5-A6CD-AAD6689B42AE}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -13475,6 +16641,26 @@ Global
{D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Debug|x64.Build.0 = Debug|Any CPU
{D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Debug|x86.ActiveCfg = Debug|Any CPU
{D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Debug|x86.Build.0 = Debug|Any CPU
+ {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka|ARM.Build.0 = Release|Any CPU
+ {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka|x64.Build.0 = Release|Any CPU
+ {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Eureka|x86.Build.0 = Release|Any CPU
{D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{D509DDAA-AA70-4B2A-8D6A-8C94F057A9C1}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -13555,6 +16741,26 @@ Global
{A248FF61-94E5-428C-B30C-25CB433C5F53}.Debug|x64.Build.0 = Debug|Any CPU
{A248FF61-94E5-428C-B30C-25CB433C5F53}.Debug|x86.ActiveCfg = Debug|Any CPU
{A248FF61-94E5-428C-B30C-25CB433C5F53}.Debug|x86.Build.0 = Debug|Any CPU
+ {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka|ARM.Build.0 = Release|Any CPU
+ {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka|x64.Build.0 = Release|Any CPU
+ {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {A248FF61-94E5-428C-B30C-25CB433C5F53}.Eureka|x86.Build.0 = Release|Any CPU
{A248FF61-94E5-428C-B30C-25CB433C5F53}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{A248FF61-94E5-428C-B30C-25CB433C5F53}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{A248FF61-94E5-428C-B30C-25CB433C5F53}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -13635,6 +16841,26 @@ Global
{F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Debug|x64.Build.0 = Debug|Any CPU
{F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Debug|x86.ActiveCfg = Debug|Any CPU
{F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Debug|x86.Build.0 = Debug|Any CPU
+ {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka|ARM.Build.0 = Release|Any CPU
+ {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka|x64.Build.0 = Release|Any CPU
+ {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Eureka|x86.Build.0 = Release|Any CPU
{F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{F15985C7-DF60-41CF-9333-D98BB8B43E6C}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -13713,6 +16939,22 @@ Global
{E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Debug|x64.Build.0 = Debug|x64
{E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Debug|x86.ActiveCfg = Debug|Win32
{E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Debug|x86.Build.0 = Debug|Win32
+ {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Win32
+ {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Eureka_Debug|Any CPU.Build.0 = Debug|Win32
+ {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Eureka_Debug|ARM.ActiveCfg = Debug|Win32
+ {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Eureka_Debug|ARM64.ActiveCfg = Debug|Win32
+ {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Eureka_Debug|x64.ActiveCfg = Debug|x64
+ {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Eureka_Debug|x64.Build.0 = Debug|x64
+ {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Eureka_Debug|x86.ActiveCfg = Debug|Win32
+ {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Eureka_Debug|x86.Build.0 = Debug|Win32
+ {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Eureka|Any CPU.ActiveCfg = Debug|Win32
+ {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Eureka|Any CPU.Build.0 = Debug|Win32
+ {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Eureka|ARM.ActiveCfg = Release|Win32
+ {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Eureka|ARM64.ActiveCfg = Release|Win32
+ {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Eureka|x64.ActiveCfg = Release|x64
+ {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Eureka|x64.Build.0 = Release|x64
+ {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Eureka|x86.ActiveCfg = Release|Win32
+ {E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Eureka|x86.Build.0 = Release|Win32
{E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Release 4.0|Any CPU.ActiveCfg = Release|x64
{E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Release 4.0|Any CPU.Build.0 = Release|x64
{E9528353-7D41-4AA8-BBAC-D65B7FE3A0D6}.Release 4.0|ARM.ActiveCfg = Release|x64
@@ -13791,6 +17033,26 @@ Global
{B60C695C-61E8-4091-B506-4C45349C04AA}.Debug|x64.Build.0 = Debug|Any CPU
{B60C695C-61E8-4091-B506-4C45349C04AA}.Debug|x86.ActiveCfg = Debug|Any CPU
{B60C695C-61E8-4091-B506-4C45349C04AA}.Debug|x86.Build.0 = Debug|Any CPU
+ {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka|ARM.Build.0 = Release|Any CPU
+ {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka|x64.Build.0 = Release|Any CPU
+ {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {B60C695C-61E8-4091-B506-4C45349C04AA}.Eureka|x86.Build.0 = Release|Any CPU
{B60C695C-61E8-4091-B506-4C45349C04AA}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{B60C695C-61E8-4091-B506-4C45349C04AA}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{B60C695C-61E8-4091-B506-4C45349C04AA}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -13871,6 +17133,26 @@ Global
{982C6FAC-2864-484E-82AE-5A36658C4DB1}.Debug|x64.Build.0 = Debug|Any CPU
{982C6FAC-2864-484E-82AE-5A36658C4DB1}.Debug|x86.ActiveCfg = Debug|Any CPU
{982C6FAC-2864-484E-82AE-5A36658C4DB1}.Debug|x86.Build.0 = Debug|Any CPU
+ {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka|ARM.Build.0 = Release|Any CPU
+ {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka|x64.Build.0 = Release|Any CPU
+ {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {982C6FAC-2864-484E-82AE-5A36658C4DB1}.Eureka|x86.Build.0 = Release|Any CPU
{982C6FAC-2864-484E-82AE-5A36658C4DB1}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{982C6FAC-2864-484E-82AE-5A36658C4DB1}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{982C6FAC-2864-484E-82AE-5A36658C4DB1}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -13951,6 +17233,26 @@ Global
{1754F846-4763-4000-807F-C7BFAA145DB2}.Debug|x64.Build.0 = Debug|Any CPU
{1754F846-4763-4000-807F-C7BFAA145DB2}.Debug|x86.ActiveCfg = Debug|Any CPU
{1754F846-4763-4000-807F-C7BFAA145DB2}.Debug|x86.Build.0 = Debug|Any CPU
+ {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka|ARM.Build.0 = Release|Any CPU
+ {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka|x64.Build.0 = Release|Any CPU
+ {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {1754F846-4763-4000-807F-C7BFAA145DB2}.Eureka|x86.Build.0 = Release|Any CPU
{1754F846-4763-4000-807F-C7BFAA145DB2}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{1754F846-4763-4000-807F-C7BFAA145DB2}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{1754F846-4763-4000-807F-C7BFAA145DB2}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -14031,6 +17333,26 @@ Global
{4C045668-9E5A-447A-A3B8-106C872C1039}.Debug|x64.Build.0 = Debug|Any CPU
{4C045668-9E5A-447A-A3B8-106C872C1039}.Debug|x86.ActiveCfg = Debug|Any CPU
{4C045668-9E5A-447A-A3B8-106C872C1039}.Debug|x86.Build.0 = Debug|Any CPU
+ {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka|ARM.Build.0 = Release|Any CPU
+ {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka|x64.Build.0 = Release|Any CPU
+ {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {4C045668-9E5A-447A-A3B8-106C872C1039}.Eureka|x86.Build.0 = Release|Any CPU
{4C045668-9E5A-447A-A3B8-106C872C1039}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{4C045668-9E5A-447A-A3B8-106C872C1039}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{4C045668-9E5A-447A-A3B8-106C872C1039}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -14110,6 +17432,25 @@ Global
{12EC97A5-C3C2-40CB-B658-EC4018B89269}.Debug|x64.Build.0 = Debug|Any CPU
{12EC97A5-C3C2-40CB-B658-EC4018B89269}.Debug|x86.ActiveCfg = Debug|Any CPU
{12EC97A5-C3C2-40CB-B658-EC4018B89269}.Debug|x86.Build.0 = Debug|Any CPU
+ {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Eureka|ARM.Build.0 = Release|Any CPU
+ {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Eureka|x64.Build.0 = Release|Any CPU
+ {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {12EC97A5-C3C2-40CB-B658-EC4018B89269}.Eureka|x86.Build.0 = Release|Any CPU
{12EC97A5-C3C2-40CB-B658-EC4018B89269}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{12EC97A5-C3C2-40CB-B658-EC4018B89269}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{12EC97A5-C3C2-40CB-B658-EC4018B89269}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -14190,6 +17531,26 @@ Global
{4A55C185-3F8D-41B0-8815-C15F6213A14A}.Debug|x64.Build.0 = Debug|Any CPU
{4A55C185-3F8D-41B0-8815-C15F6213A14A}.Debug|x86.ActiveCfg = Debug|Any CPU
{4A55C185-3F8D-41B0-8815-C15F6213A14A}.Debug|x86.Build.0 = Debug|Any CPU
+ {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka|ARM.Build.0 = Release|Any CPU
+ {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka|x64.Build.0 = Release|Any CPU
+ {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {4A55C185-3F8D-41B0-8815-C15F6213A14A}.Eureka|x86.Build.0 = Release|Any CPU
{4A55C185-3F8D-41B0-8815-C15F6213A14A}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{4A55C185-3F8D-41B0-8815-C15F6213A14A}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{4A55C185-3F8D-41B0-8815-C15F6213A14A}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -14270,6 +17631,26 @@ Global
{AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Debug|x64.Build.0 = Debug|Any CPU
{AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Debug|x86.ActiveCfg = Debug|Any CPU
{AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Debug|x86.Build.0 = Debug|Any CPU
+ {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka|ARM.Build.0 = Release|Any CPU
+ {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka|x64.Build.0 = Release|Any CPU
+ {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Eureka|x86.Build.0 = Release|Any CPU
{AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{AC5B4BE7-D607-4A38-98F8-B87ACA468313}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -14350,6 +17731,26 @@ Global
{44908607-2E91-4713-821E-C35E25430BA0}.Debug|x64.Build.0 = Debug|Any CPU
{44908607-2E91-4713-821E-C35E25430BA0}.Debug|x86.ActiveCfg = Debug|Any CPU
{44908607-2E91-4713-821E-C35E25430BA0}.Debug|x86.Build.0 = Debug|Any CPU
+ {44908607-2E91-4713-821E-C35E25430BA0}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {44908607-2E91-4713-821E-C35E25430BA0}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {44908607-2E91-4713-821E-C35E25430BA0}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {44908607-2E91-4713-821E-C35E25430BA0}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {44908607-2E91-4713-821E-C35E25430BA0}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {44908607-2E91-4713-821E-C35E25430BA0}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {44908607-2E91-4713-821E-C35E25430BA0}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {44908607-2E91-4713-821E-C35E25430BA0}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {44908607-2E91-4713-821E-C35E25430BA0}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {44908607-2E91-4713-821E-C35E25430BA0}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {44908607-2E91-4713-821E-C35E25430BA0}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {44908607-2E91-4713-821E-C35E25430BA0}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {44908607-2E91-4713-821E-C35E25430BA0}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {44908607-2E91-4713-821E-C35E25430BA0}.Eureka|ARM.Build.0 = Release|Any CPU
+ {44908607-2E91-4713-821E-C35E25430BA0}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {44908607-2E91-4713-821E-C35E25430BA0}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {44908607-2E91-4713-821E-C35E25430BA0}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {44908607-2E91-4713-821E-C35E25430BA0}.Eureka|x64.Build.0 = Release|Any CPU
+ {44908607-2E91-4713-821E-C35E25430BA0}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {44908607-2E91-4713-821E-C35E25430BA0}.Eureka|x86.Build.0 = Release|Any CPU
{44908607-2E91-4713-821E-C35E25430BA0}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{44908607-2E91-4713-821E-C35E25430BA0}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{44908607-2E91-4713-821E-C35E25430BA0}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -14429,6 +17830,24 @@ Global
{59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Debug|x64.Build.0 = Debug|Any CPU
{59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Debug|x86.ActiveCfg = Debug|Any CPU
{59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Debug|x86.Build.0 = Debug|Any CPU
+ {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Eureka|ARM.Build.0 = Release|Any CPU
+ {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Eureka|x64.Build.0 = Release|Any CPU
+ {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Eureka|x86.Build.0 = Release|Any CPU
{59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{59643ABC-DF9A-497F-8A7C-4A131C7CF438}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -14509,6 +17928,26 @@ Global
{69168924-9AA8-447D-AD64-F07DBF4F0909}.Debug|x64.Build.0 = Debug|Any CPU
{69168924-9AA8-447D-AD64-F07DBF4F0909}.Debug|x86.ActiveCfg = Debug|Any CPU
{69168924-9AA8-447D-AD64-F07DBF4F0909}.Debug|x86.Build.0 = Debug|Any CPU
+ {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka|ARM.Build.0 = Release|Any CPU
+ {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka|x64.Build.0 = Release|Any CPU
+ {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {69168924-9AA8-447D-AD64-F07DBF4F0909}.Eureka|x86.Build.0 = Release|Any CPU
{69168924-9AA8-447D-AD64-F07DBF4F0909}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{69168924-9AA8-447D-AD64-F07DBF4F0909}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{69168924-9AA8-447D-AD64-F07DBF4F0909}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -14589,6 +18028,26 @@ Global
{99081C0E-065C-4D68-BF60-F82330CCA02D}.Debug|x64.Build.0 = Debug|Any CPU
{99081C0E-065C-4D68-BF60-F82330CCA02D}.Debug|x86.ActiveCfg = Debug|Any CPU
{99081C0E-065C-4D68-BF60-F82330CCA02D}.Debug|x86.Build.0 = Debug|Any CPU
+ {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka|ARM.Build.0 = Release|Any CPU
+ {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka|x64.Build.0 = Release|Any CPU
+ {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {99081C0E-065C-4D68-BF60-F82330CCA02D}.Eureka|x86.Build.0 = Release|Any CPU
{99081C0E-065C-4D68-BF60-F82330CCA02D}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{99081C0E-065C-4D68-BF60-F82330CCA02D}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{99081C0E-065C-4D68-BF60-F82330CCA02D}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -14669,6 +18128,24 @@ Global
{EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Debug|x64.Build.0 = Debug|Any CPU
{EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Debug|x86.ActiveCfg = Debug|Any CPU
{EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Debug|x86.Build.0 = Debug|Any CPU
+ {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Eureka|ARM.Build.0 = Release|Any CPU
+ {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Eureka|x64.Build.0 = Release|Any CPU
+ {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Eureka|x86.Build.0 = Release|Any CPU
{EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{EA4233F1-4B7B-4CCF-A6DE-2D17612EBA90}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -14749,6 +18226,26 @@ Global
{15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Debug|x64.Build.0 = Debug|Any CPU
{15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Debug|x86.ActiveCfg = Debug|Any CPU
{15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Debug|x86.Build.0 = Debug|Any CPU
+ {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka|ARM.Build.0 = Release|Any CPU
+ {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka|x64.Build.0 = Release|Any CPU
+ {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Eureka|x86.Build.0 = Release|Any CPU
{15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{15BCB5BB-731E-4E2D-AA28-75485050A8DC}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -14829,6 +18326,26 @@ Global
{E0364DFA-0721-4637-9D32-9D22AAC109D6}.Debug|x64.Build.0 = Debug|Any CPU
{E0364DFA-0721-4637-9D32-9D22AAC109D6}.Debug|x86.ActiveCfg = Debug|Any CPU
{E0364DFA-0721-4637-9D32-9D22AAC109D6}.Debug|x86.Build.0 = Debug|Any CPU
+ {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka|ARM.Build.0 = Release|Any CPU
+ {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka|x64.Build.0 = Release|Any CPU
+ {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {E0364DFA-0721-4637-9D32-9D22AAC109D6}.Eureka|x86.Build.0 = Release|Any CPU
{E0364DFA-0721-4637-9D32-9D22AAC109D6}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{E0364DFA-0721-4637-9D32-9D22AAC109D6}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{E0364DFA-0721-4637-9D32-9D22AAC109D6}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -14909,6 +18426,26 @@ Global
{FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Debug|x64.Build.0 = Debug|Any CPU
{FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Debug|x86.ActiveCfg = Debug|Any CPU
{FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Debug|x86.Build.0 = Debug|Any CPU
+ {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka|ARM.Build.0 = Release|Any CPU
+ {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka|x64.Build.0 = Release|Any CPU
+ {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Eureka|x86.Build.0 = Release|Any CPU
{FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{FA96BC0C-4055-475C-9DCC-70A5A9436B10}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -14989,6 +18526,26 @@ Global
{88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Debug|x64.Build.0 = Debug|Any CPU
{88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Debug|x86.ActiveCfg = Debug|Any CPU
{88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Debug|x86.Build.0 = Debug|Any CPU
+ {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka|ARM.Build.0 = Release|Any CPU
+ {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka|x64.Build.0 = Release|Any CPU
+ {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Eureka|x86.Build.0 = Release|Any CPU
{88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{88D9906B-8FC4-4FE0-B7EB-127A0A8FCEE4}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -15069,6 +18626,26 @@ Global
{29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Debug|x64.Build.0 = Debug|Any CPU
{29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Debug|x86.ActiveCfg = Debug|Any CPU
{29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Debug|x86.Build.0 = Debug|Any CPU
+ {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka|ARM.Build.0 = Release|Any CPU
+ {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka|x64.Build.0 = Release|Any CPU
+ {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Eureka|x86.Build.0 = Release|Any CPU
{29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{29448F3C-9B3E-4DA6-8555-46A8B9A6B3AA}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -15149,6 +18726,26 @@ Global
{EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Debug|x64.Build.0 = Debug|Any CPU
{EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Debug|x86.ActiveCfg = Debug|Any CPU
{EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Debug|x86.Build.0 = Debug|Any CPU
+ {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka|ARM.Build.0 = Release|Any CPU
+ {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka|x64.Build.0 = Release|Any CPU
+ {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Eureka|x86.Build.0 = Release|Any CPU
{EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{EE088FF7-04D1-41FB-9D6A-CEDEEE7A7B9C}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -15229,6 +18826,26 @@ Global
{6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Debug|x64.Build.0 = Debug|Any CPU
{6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Debug|x86.ActiveCfg = Debug|Any CPU
{6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Debug|x86.Build.0 = Debug|Any CPU
+ {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka|ARM.Build.0 = Release|Any CPU
+ {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka|x64.Build.0 = Release|Any CPU
+ {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Eureka|x86.Build.0 = Release|Any CPU
{6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{6189B8C3-7AF9-43DD-8A61-A8A05F526F62}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -15309,6 +18926,26 @@ Global
{A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Debug|x64.Build.0 = Debug|Any CPU
{A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Debug|x86.ActiveCfg = Debug|Any CPU
{A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Debug|x86.Build.0 = Debug|Any CPU
+ {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka|ARM.Build.0 = Release|Any CPU
+ {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka|x64.Build.0 = Release|Any CPU
+ {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Eureka|x86.Build.0 = Release|Any CPU
{A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{A9828548-AF43-4CE4-8B13-50E99F9C9CF7}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -15389,6 +19026,26 @@ Global
{C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Debug|x64.Build.0 = Debug|Any CPU
{C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Debug|x86.ActiveCfg = Debug|Any CPU
{C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Debug|x86.Build.0 = Debug|Any CPU
+ {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka|ARM.Build.0 = Release|Any CPU
+ {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka|x64.Build.0 = Release|Any CPU
+ {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Eureka|x86.Build.0 = Release|Any CPU
{C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{C57D9D68-336C-4665-9EF4-EC1BDBB84885}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -15469,6 +19126,26 @@ Global
{949857A0-777D-4A32-8668-7163E404D800}.Debug|x64.Build.0 = Debug|Any CPU
{949857A0-777D-4A32-8668-7163E404D800}.Debug|x86.ActiveCfg = Debug|Any CPU
{949857A0-777D-4A32-8668-7163E404D800}.Debug|x86.Build.0 = Debug|Any CPU
+ {949857A0-777D-4A32-8668-7163E404D800}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {949857A0-777D-4A32-8668-7163E404D800}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {949857A0-777D-4A32-8668-7163E404D800}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {949857A0-777D-4A32-8668-7163E404D800}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {949857A0-777D-4A32-8668-7163E404D800}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {949857A0-777D-4A32-8668-7163E404D800}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {949857A0-777D-4A32-8668-7163E404D800}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {949857A0-777D-4A32-8668-7163E404D800}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {949857A0-777D-4A32-8668-7163E404D800}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {949857A0-777D-4A32-8668-7163E404D800}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {949857A0-777D-4A32-8668-7163E404D800}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {949857A0-777D-4A32-8668-7163E404D800}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {949857A0-777D-4A32-8668-7163E404D800}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {949857A0-777D-4A32-8668-7163E404D800}.Eureka|ARM.Build.0 = Release|Any CPU
+ {949857A0-777D-4A32-8668-7163E404D800}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {949857A0-777D-4A32-8668-7163E404D800}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {949857A0-777D-4A32-8668-7163E404D800}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {949857A0-777D-4A32-8668-7163E404D800}.Eureka|x64.Build.0 = Release|Any CPU
+ {949857A0-777D-4A32-8668-7163E404D800}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {949857A0-777D-4A32-8668-7163E404D800}.Eureka|x86.Build.0 = Release|Any CPU
{949857A0-777D-4A32-8668-7163E404D800}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{949857A0-777D-4A32-8668-7163E404D800}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{949857A0-777D-4A32-8668-7163E404D800}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -15549,6 +19226,26 @@ Global
{3E07ED4E-A755-443F-B18C-3775555A2DD7}.Debug|x64.Build.0 = Debug|Any CPU
{3E07ED4E-A755-443F-B18C-3775555A2DD7}.Debug|x86.ActiveCfg = Debug|Any CPU
{3E07ED4E-A755-443F-B18C-3775555A2DD7}.Debug|x86.Build.0 = Debug|Any CPU
+ {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka|ARM.Build.0 = Release|Any CPU
+ {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka|x64.Build.0 = Release|Any CPU
+ {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {3E07ED4E-A755-443F-B18C-3775555A2DD7}.Eureka|x86.Build.0 = Release|Any CPU
{3E07ED4E-A755-443F-B18C-3775555A2DD7}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{3E07ED4E-A755-443F-B18C-3775555A2DD7}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{3E07ED4E-A755-443F-B18C-3775555A2DD7}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -15629,6 +19326,26 @@ Global
{F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Debug|x64.Build.0 = Debug|Any CPU
{F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Debug|x86.ActiveCfg = Debug|Any CPU
{F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Debug|x86.Build.0 = Debug|Any CPU
+ {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka|ARM.Build.0 = Release|Any CPU
+ {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka|x64.Build.0 = Release|Any CPU
+ {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Eureka|x86.Build.0 = Release|Any CPU
{F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{F1DC98EF-C50A-4E84-9A39-211A68626FBA}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -15709,6 +19426,26 @@ Global
{20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Debug|x64.Build.0 = Debug|Any CPU
{20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Debug|x86.ActiveCfg = Debug|Any CPU
{20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Debug|x86.Build.0 = Debug|Any CPU
+ {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka|ARM.Build.0 = Release|Any CPU
+ {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka|x64.Build.0 = Release|Any CPU
+ {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Eureka|x86.Build.0 = Release|Any CPU
{20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{20AF2BAF-85CD-4437-BC6F-6BA030F984EA}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -15789,6 +19526,26 @@ Global
{2ED5D897-DF22-491E-8410-D01383B3DAD2}.Debug|x64.Build.0 = Debug|Any CPU
{2ED5D897-DF22-491E-8410-D01383B3DAD2}.Debug|x86.ActiveCfg = Debug|Any CPU
{2ED5D897-DF22-491E-8410-D01383B3DAD2}.Debug|x86.Build.0 = Debug|Any CPU
+ {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka|ARM.Build.0 = Release|Any CPU
+ {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka|x64.Build.0 = Release|Any CPU
+ {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {2ED5D897-DF22-491E-8410-D01383B3DAD2}.Eureka|x86.Build.0 = Release|Any CPU
{2ED5D897-DF22-491E-8410-D01383B3DAD2}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{2ED5D897-DF22-491E-8410-D01383B3DAD2}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{2ED5D897-DF22-491E-8410-D01383B3DAD2}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -15869,6 +19626,26 @@ Global
{452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Debug|x64.Build.0 = Debug|Any CPU
{452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Debug|x86.ActiveCfg = Debug|Any CPU
{452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Debug|x86.Build.0 = Debug|Any CPU
+ {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka|ARM.Build.0 = Release|Any CPU
+ {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka|x64.Build.0 = Release|Any CPU
+ {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Eureka|x86.Build.0 = Release|Any CPU
{452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{452DF7F4-BFBF-45B1-9A27-D6B1888AC10B}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -15949,6 +19726,26 @@ Global
{DAE96F06-72CD-411D-90A3-9456AE79F699}.Debug|x64.Build.0 = Debug|Any CPU
{DAE96F06-72CD-411D-90A3-9456AE79F699}.Debug|x86.ActiveCfg = Debug|Any CPU
{DAE96F06-72CD-411D-90A3-9456AE79F699}.Debug|x86.Build.0 = Debug|Any CPU
+ {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka|ARM.Build.0 = Release|Any CPU
+ {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka|x64.Build.0 = Release|Any CPU
+ {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {DAE96F06-72CD-411D-90A3-9456AE79F699}.Eureka|x86.Build.0 = Release|Any CPU
{DAE96F06-72CD-411D-90A3-9456AE79F699}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{DAE96F06-72CD-411D-90A3-9456AE79F699}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{DAE96F06-72CD-411D-90A3-9456AE79F699}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -16029,6 +19826,26 @@ Global
{F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Debug|x64.Build.0 = Debug|Any CPU
{F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Debug|x86.ActiveCfg = Debug|Any CPU
{F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Debug|x86.Build.0 = Debug|Any CPU
+ {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka|ARM.Build.0 = Release|Any CPU
+ {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka|x64.Build.0 = Release|Any CPU
+ {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Eureka|x86.Build.0 = Release|Any CPU
{F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{F423324C-7D0A-4512-BEBA-DF3A931A09F6}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -16109,6 +19926,26 @@ Global
{F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Debug|x64.Build.0 = Debug|Any CPU
{F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Debug|x86.ActiveCfg = Debug|Any CPU
{F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Debug|x86.Build.0 = Debug|Any CPU
+ {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka|ARM.Build.0 = Release|Any CPU
+ {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka|x64.Build.0 = Release|Any CPU
+ {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Eureka|x86.Build.0 = Release|Any CPU
{F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{F1B727F5-ADF5-4A81-A740-7E64E48B29D4}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -16189,6 +20026,26 @@ Global
{5C9A4F46-263D-4C23-B361-F09E14BB109E}.Debug|x64.Build.0 = Debug|Any CPU
{5C9A4F46-263D-4C23-B361-F09E14BB109E}.Debug|x86.ActiveCfg = Debug|Any CPU
{5C9A4F46-263D-4C23-B361-F09E14BB109E}.Debug|x86.Build.0 = Debug|Any CPU
+ {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka|Any CPU.ActiveCfg = Release 4.6.1|Any CPU
+ {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka|Any CPU.Build.0 = Release 4.6.1|Any CPU
+ {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka|ARM.ActiveCfg = Release 4.6.1|Any CPU
+ {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka|ARM.Build.0 = Release 4.6.1|Any CPU
+ {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka|ARM64.ActiveCfg = Release 4.6.1|Any CPU
+ {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka|ARM64.Build.0 = Release 4.6.1|Any CPU
+ {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka|x64.ActiveCfg = Release 4.6.1|Any CPU
+ {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka|x64.Build.0 = Release 4.6.1|Any CPU
+ {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka|x86.ActiveCfg = Release 4.6.1|Any CPU
+ {5C9A4F46-263D-4C23-B361-F09E14BB109E}.Eureka|x86.Build.0 = Release 4.6.1|Any CPU
{5C9A4F46-263D-4C23-B361-F09E14BB109E}.Release 4.0|Any CPU.ActiveCfg = Release 4.0|Any CPU
{5C9A4F46-263D-4C23-B361-F09E14BB109E}.Release 4.0|Any CPU.Build.0 = Release 4.0|Any CPU
{5C9A4F46-263D-4C23-B361-F09E14BB109E}.Release 4.0|ARM.ActiveCfg = Release 4.0|Any CPU
@@ -16269,6 +20126,26 @@ Global
{8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Debug|x64.Build.0 = Debug|Any CPU
{8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Debug|x86.ActiveCfg = Debug|Any CPU
{8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Debug|x86.Build.0 = Debug|Any CPU
+ {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka|ARM.Build.0 = Release|Any CPU
+ {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka|x64.Build.0 = Release|Any CPU
+ {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Eureka|x86.Build.0 = Release|Any CPU
{8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{8F0BCFC8-AF0F-40D3-882A-902CD221A6DE}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -16349,6 +20226,26 @@ Global
{4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Debug|x64.Build.0 = Debug|Any CPU
{4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Debug|x86.ActiveCfg = Debug|Any CPU
{4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Debug|x86.Build.0 = Debug|Any CPU
+ {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka|ARM.Build.0 = Release|Any CPU
+ {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka|x64.Build.0 = Release|Any CPU
+ {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Eureka|x86.Build.0 = Release|Any CPU
{4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{4747A2DE-F419-41B1-95A7-E9FBB4EA0B3B}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -16429,6 +20326,26 @@ Global
{70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Debug|x64.Build.0 = Debug|Any CPU
{70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Debug|x86.ActiveCfg = Debug|Any CPU
{70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Debug|x86.Build.0 = Debug|Any CPU
+ {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka|ARM.Build.0 = Release|Any CPU
+ {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka|x64.Build.0 = Release|Any CPU
+ {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Eureka|x86.Build.0 = Release|Any CPU
{70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{70DD08CA-3BD1-43D6-84FF-2DB8A192C315}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -16509,6 +20426,26 @@ Global
{6B13E186-ADE2-4D97-9643-8132E00FC207}.Debug|x64.Build.0 = Debug|Any CPU
{6B13E186-ADE2-4D97-9643-8132E00FC207}.Debug|x86.ActiveCfg = Debug|Any CPU
{6B13E186-ADE2-4D97-9643-8132E00FC207}.Debug|x86.Build.0 = Debug|Any CPU
+ {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka|ARM.Build.0 = Release|Any CPU
+ {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka|x64.Build.0 = Release|Any CPU
+ {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {6B13E186-ADE2-4D97-9643-8132E00FC207}.Eureka|x86.Build.0 = Release|Any CPU
{6B13E186-ADE2-4D97-9643-8132E00FC207}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{6B13E186-ADE2-4D97-9643-8132E00FC207}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{6B13E186-ADE2-4D97-9643-8132E00FC207}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -16589,6 +20526,26 @@ Global
{B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Debug|x64.Build.0 = Debug|Any CPU
{B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Debug|x86.ActiveCfg = Debug|Any CPU
{B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Debug|x86.Build.0 = Debug|Any CPU
+ {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka|ARM.Build.0 = Release|Any CPU
+ {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka|x64.Build.0 = Release|Any CPU
+ {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Eureka|x86.Build.0 = Release|Any CPU
{B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{B356201F-F958-4AC9-BBEB-E4EAE9DA9EC6}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -16669,6 +20626,26 @@ Global
{6C784296-CCF9-469C-A7C1-4C13305E1203}.Debug|x64.Build.0 = Debug|Any CPU
{6C784296-CCF9-469C-A7C1-4C13305E1203}.Debug|x86.ActiveCfg = Debug|Any CPU
{6C784296-CCF9-469C-A7C1-4C13305E1203}.Debug|x86.Build.0 = Debug|Any CPU
+ {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka|ARM.Build.0 = Release|Any CPU
+ {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka|x64.Build.0 = Release|Any CPU
+ {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {6C784296-CCF9-469C-A7C1-4C13305E1203}.Eureka|x86.Build.0 = Release|Any CPU
{6C784296-CCF9-469C-A7C1-4C13305E1203}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{6C784296-CCF9-469C-A7C1-4C13305E1203}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{6C784296-CCF9-469C-A7C1-4C13305E1203}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -16749,6 +20726,26 @@ Global
{C89C1866-C76B-401F-A232-40FC58065CBF}.Debug|x64.Build.0 = Debug|Any CPU
{C89C1866-C76B-401F-A232-40FC58065CBF}.Debug|x86.ActiveCfg = Debug|Any CPU
{C89C1866-C76B-401F-A232-40FC58065CBF}.Debug|x86.Build.0 = Debug|Any CPU
+ {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka|ARM.Build.0 = Release|Any CPU
+ {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka|x64.Build.0 = Release|Any CPU
+ {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {C89C1866-C76B-401F-A232-40FC58065CBF}.Eureka|x86.Build.0 = Release|Any CPU
{C89C1866-C76B-401F-A232-40FC58065CBF}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{C89C1866-C76B-401F-A232-40FC58065CBF}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{C89C1866-C76B-401F-A232-40FC58065CBF}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -16829,6 +20826,26 @@ Global
{859A766B-78AD-484E-9BF2-2CE0FE288894}.Debug|x64.Build.0 = Debug|Any CPU
{859A766B-78AD-484E-9BF2-2CE0FE288894}.Debug|x86.ActiveCfg = Debug|Any CPU
{859A766B-78AD-484E-9BF2-2CE0FE288894}.Debug|x86.Build.0 = Debug|Any CPU
+ {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka|ARM.Build.0 = Release|Any CPU
+ {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka|x64.Build.0 = Release|Any CPU
+ {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {859A766B-78AD-484E-9BF2-2CE0FE288894}.Eureka|x86.Build.0 = Release|Any CPU
{859A766B-78AD-484E-9BF2-2CE0FE288894}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{859A766B-78AD-484E-9BF2-2CE0FE288894}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{859A766B-78AD-484E-9BF2-2CE0FE288894}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -16909,6 +20926,26 @@ Global
{DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Debug|x64.Build.0 = Debug|Any CPU
{DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Debug|x86.ActiveCfg = Debug|Any CPU
{DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Debug|x86.Build.0 = Debug|Any CPU
+ {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka|ARM.Build.0 = Release|Any CPU
+ {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka|x64.Build.0 = Release|Any CPU
+ {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Eureka|x86.Build.0 = Release|Any CPU
{DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{DBBD90F4-4135-475D-A8F8-6795D3A8F697}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -16987,6 +21024,22 @@ Global
{0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Debug|x64.Build.0 = Debug|x64
{0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Debug|x86.ActiveCfg = Debug|Win32
{0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Debug|x86.Build.0 = Debug|Win32
+ {0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Win32
+ {0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Eureka_Debug|Any CPU.Build.0 = Debug|Win32
+ {0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Eureka_Debug|ARM.ActiveCfg = Debug|Win32
+ {0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Eureka_Debug|ARM64.ActiveCfg = Debug|Win32
+ {0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Eureka_Debug|x64.ActiveCfg = Debug|x64
+ {0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Eureka_Debug|x64.Build.0 = Debug|x64
+ {0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Eureka_Debug|x86.ActiveCfg = Debug|Win32
+ {0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Eureka_Debug|x86.Build.0 = Debug|Win32
+ {0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Eureka|Any CPU.ActiveCfg = Debug|Win32
+ {0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Eureka|Any CPU.Build.0 = Debug|Win32
+ {0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Eureka|ARM.ActiveCfg = Release|Win32
+ {0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Eureka|ARM64.ActiveCfg = Release|Win32
+ {0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Eureka|x64.ActiveCfg = Release|x64
+ {0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Eureka|x64.Build.0 = Release|x64
+ {0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Eureka|x86.ActiveCfg = Release|Win32
+ {0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Eureka|x86.Build.0 = Release|Win32
{0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Release 4.0|Any CPU.ActiveCfg = Release|x64
{0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Release 4.0|Any CPU.Build.0 = Release|x64
{0F87D32E-B65F-4AE8-862C-29F4CCC38240}.Release 4.0|ARM.ActiveCfg = Release|x64
@@ -17065,6 +21118,26 @@ Global
{84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Debug|x64.Build.0 = Debug|Any CPU
{84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Debug|x86.ActiveCfg = Debug|Any CPU
{84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Debug|x86.Build.0 = Debug|Any CPU
+ {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka|ARM.Build.0 = Release|Any CPU
+ {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka|x64.Build.0 = Release|Any CPU
+ {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Eureka|x86.Build.0 = Release|Any CPU
{84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{84FB2B51-213E-4602-A5DB-FA97D8AE907A}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -17145,6 +21218,26 @@ Global
{DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Debug|x64.Build.0 = Debug|Any CPU
{DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Debug|x86.ActiveCfg = Debug|Any CPU
{DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Debug|x86.Build.0 = Debug|Any CPU
+ {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka|ARM.Build.0 = Release|Any CPU
+ {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka|x64.Build.0 = Release|Any CPU
+ {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Eureka|x86.Build.0 = Release|Any CPU
{DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{DA4FCA0B-E0EA-431F-B0CC-AA9B0A4C73C2}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -17223,6 +21316,22 @@ Global
{D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Debug|x64.Build.0 = Debug|x64
{D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Debug|x86.ActiveCfg = Debug|Win32
{D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Debug|x86.Build.0 = Debug|Win32
+ {D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Win32
+ {D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Eureka_Debug|Any CPU.Build.0 = Debug|Win32
+ {D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Eureka_Debug|ARM.ActiveCfg = Debug|Win32
+ {D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Eureka_Debug|ARM64.ActiveCfg = Debug|Win32
+ {D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Eureka_Debug|x64.ActiveCfg = Debug|x64
+ {D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Eureka_Debug|x64.Build.0 = Debug|x64
+ {D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Eureka_Debug|x86.ActiveCfg = Debug|Win32
+ {D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Eureka_Debug|x86.Build.0 = Debug|Win32
+ {D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Eureka|Any CPU.ActiveCfg = Debug|Win32
+ {D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Eureka|Any CPU.Build.0 = Debug|Win32
+ {D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Eureka|ARM.ActiveCfg = Release|Win32
+ {D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Eureka|ARM64.ActiveCfg = Release|Win32
+ {D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Eureka|x64.ActiveCfg = Release|x64
+ {D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Eureka|x64.Build.0 = Release|x64
+ {D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Eureka|x86.ActiveCfg = Release|Win32
+ {D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Eureka|x86.Build.0 = Release|Win32
{D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Release 4.0|Any CPU.ActiveCfg = Release|x64
{D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Release 4.0|Any CPU.Build.0 = Release|x64
{D74E49AA-4C6B-4427-BEFF-D7CE2690D059}.Release 4.0|ARM.ActiveCfg = Release|x64
@@ -17301,6 +21410,26 @@ Global
{7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Debug|x64.Build.0 = Debug|Any CPU
{7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Debug|x86.ActiveCfg = Debug|Any CPU
{7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Debug|x86.Build.0 = Debug|Any CPU
+ {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka_Debug|ARM.ActiveCfg = Debug|Any CPU
+ {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka_Debug|ARM.Build.0 = Debug|Any CPU
+ {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka_Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka_Debug|ARM64.Build.0 = Debug|Any CPU
+ {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka_Debug|x64.ActiveCfg = Debug|Any CPU
+ {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka_Debug|x64.Build.0 = Debug|Any CPU
+ {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka_Debug|x86.ActiveCfg = Debug|Any CPU
+ {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka_Debug|x86.Build.0 = Debug|Any CPU
+ {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka|Any CPU.ActiveCfg = Release|Any CPU
+ {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka|Any CPU.Build.0 = Release|Any CPU
+ {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka|ARM.ActiveCfg = Release|Any CPU
+ {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka|ARM.Build.0 = Release|Any CPU
+ {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka|ARM64.ActiveCfg = Release|Any CPU
+ {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka|ARM64.Build.0 = Release|Any CPU
+ {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka|x64.ActiveCfg = Release|Any CPU
+ {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka|x64.Build.0 = Release|Any CPU
+ {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka|x86.ActiveCfg = Release|Any CPU
+ {7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Eureka|x86.Build.0 = Release|Any CPU
{7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Release 4.0|Any CPU.ActiveCfg = Release|Any CPU
{7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Release 4.0|Any CPU.Build.0 = Release|Any CPU
{7A30B35F-94DC-4A9C-B9D2-CB5CAA735788}.Release 4.0|ARM.ActiveCfg = Release|Any CPU
@@ -17536,12 +21665,12 @@ Global
{7A30B35F-94DC-4A9C-B9D2-CB5CAA735788} = {4EE6DBA1-71BC-49E2-8DC7-266487E61050}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {7986F7F4-A86A-4994-B1B6-0988D7F057B6}
- BuildVersion_BuildVersioningStyle = None.None.Increment.DeltaBaseYearDayOfYear
- BuildVersion_UpdateAssemblyVersion = True
- BuildVersion_UpdateFileVersion = False
- BuildVersion_StartDate = 2000/1/1
- BuildVersion_AssemblyInfoFilename = Properties\AssemblyInfo.cs
BuildVersion_UseGlobalSettings = False
+ BuildVersion_AssemblyInfoFilename = Properties\AssemblyInfo.cs
+ BuildVersion_StartDate = 2000/1/1
+ BuildVersion_UpdateFileVersion = False
+ BuildVersion_UpdateAssemblyVersion = True
+ BuildVersion_BuildVersioningStyle = None.None.Increment.DeltaBaseYearDayOfYear
+ SolutionGuid = {7986F7F4-A86A-4994-B1B6-0988D7F057B6}
EndGlobalSection
EndGlobal
diff --git a/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev4.xlsx b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev4.xlsx
new file mode 100644
index 000000000..7f9b01b2c
--- /dev/null
+++ b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev4.xlsx
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev4_groups.xlsx b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev4_groups.xlsx
new file mode 100644
index 000000000..8814872ef
--- /dev/null
+++ b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev4_groups.xlsx
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev5.xlsx b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev5.xlsx
new file mode 100644
index 000000000..8814872ef
--- /dev/null
+++ b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev5.xlsx
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev7.xlsx b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev7.xlsx
new file mode 100644
index 000000000..f7574efc4
--- /dev/null
+++ b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev7.xlsx
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev8.xlsx b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev8.xlsx
new file mode 100644
index 000000000..f7574efc4
--- /dev/null
+++ b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Eureka BB alarm events handling chart_TS_and_X4_Rev8.xlsx
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Program.cs b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Program.cs
index 8735634ef..84a6c4094 100644
--- a/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Program.cs
+++ b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Program.cs
@@ -16,7 +16,7 @@ namespace Tango.EventsTypesGenerator
{
class Program
{
- private static string EVENTS_FILE = "Tango alarm events handling chart_Rev31.xlsx";
+ private static string EVENTS_FILE = "Eureka BB alarm events handling chart_TS_and_X4_Rev8.xlsx";
private class ExcelEventType
{
diff --git a/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Tango.EventsTypesGenerator.csproj b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Tango.EventsTypesGenerator.csproj
index 5881b521f..188794a23 100644
--- a/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Tango.EventsTypesGenerator.csproj
+++ b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Tango.EventsTypesGenerator.csproj
@@ -61,6 +61,21 @@
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="App.config" />
+ <None Include="Eureka BB alarm events handling chart_TS_and_X4_Rev4.xlsx">
+ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+ </None>
+ <None Include="Eureka BB alarm events handling chart_TS_and_X4_Rev4_groups.xlsx">
+ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+ </None>
+ <None Include="Eureka BB alarm events handling chart_TS_and_X4_Rev5.xlsx">
+ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+ </None>
+ <None Include="Eureka BB alarm events handling chart_TS_and_X4_Rev7.xlsx">
+ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+ </None>
+ <None Include="Eureka BB alarm events handling chart_TS_and_X4_Rev8.xlsx">
+ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+ </None>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
diff --git a/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/JobHandler2.cs b/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/JobHandler2.cs
index b4fc23c8e..608b015d8 100644
--- a/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/JobHandler2.cs
+++ b/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/JobHandler2.cs
@@ -13,7 +13,7 @@ namespace Tango.JobProgressTester.UI
public class JobHandler2 : JobHandler
{
public JobHandler2(Action cancelAction, Job job, JobTicket jobTicket, ProcessParametersTable processParameters, JobHandlerModes mode)
- : base(cancelAction, job, jobTicket, processParameters, mode)
+ : base(cancelAction, job, jobTicket, processParameters, mode, BL.Enumerations.MachineTypes.TS1800)
{
}
diff --git a/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/MainWindow.xaml b/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/MainWindow.xaml
index 8f066800e..875072faa 100644
--- a/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/MainWindow.xaml
+++ b/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/MainWindow.xaml
@@ -9,7 +9,7 @@
xmlns:local="clr-namespace:Tango.MachineEM.UI"
xmlns:views="clr-namespace:Tango.MachineEM.UI.Views"
mc:Ignorable="d"
- Title="Tango Embedded Emulator" Height="820" Width="1300" TitleCaps="False" BorderBrush="Gray" BorderThickness="1" WindowStartupLocation="CenterScreen" Background="#202020" Foreground="Gainsboro" DataContext="{Binding RelativeSource={RelativeSource Self}}">
+ Title="Firmware Emulator" Height="820" Width="1300" TitleCaps="False" BorderBrush="Gray" BorderThickness="1" WindowStartupLocation="CenterScreen" Background="#202020" Foreground="Gainsboro" DataContext="{Binding RelativeSource={RelativeSource Self}}">
<Grid>
<views:MainView DataContext="{StaticResource MainViewVM}"></views:MainView>
</Grid>
diff --git a/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/ViewModels/MainViewVM.cs b/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/ViewModels/MainViewVM.cs
index c993be2d7..be77ee217 100644
--- a/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/ViewModels/MainViewVM.cs
+++ b/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/ViewModels/MainViewVM.cs
@@ -210,9 +210,12 @@ namespace Tango.MachineEM.UI.ViewModels
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="ClientConnectedEventArgs"/> instance containing the event data.</param>
- private void TcpServer_ClientConnected(object sender, ClientConnectedEventArgs e)
+ private async void TcpServer_ClientConnected(object sender, ClientConnectedEventArgs e)
{
- Emulator.Transporter.Adapter = new TcpTransportAdapter(e.Socket);
+ Emulator.Transporter = new BasicTransporter(new TcpTransportAdapter(e.Socket));
+ await Emulator.Transporter.Connect();
+
+ InvalidateRelayCommands();
}
#endregion
@@ -224,17 +227,21 @@ namespace Tango.MachineEM.UI.ViewModels
/// </summary>
private async void Start()
{
+ var settings = SettingsManager.Default.GetOrCreate<Integration.IntegrationSettings>();
+
if (SelectedPort == Ports.First())
{
- TcpServer = new TcpServer(9999);
+ TcpServer = new TcpServer(settings.FirmwarePort);
TcpServer.ClientConnected += TcpServer_ClientConnected;
TcpServer.Start();
+ await Emulator.Start();
}
else
{
Emulator.Transporter.Adapter = new UsbTransportAdapter(SelectedPort);
+ await Emulator.Start();
}
- await Emulator.Start();
+
InvalidateRelayCommands();
}
diff --git a/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/Views/MainView.xaml b/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/Views/MainView.xaml
index c0c4b7b97..c3c086065 100644
--- a/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/Views/MainView.xaml
+++ b/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/Views/MainView.xaml
@@ -40,7 +40,7 @@
</Grid.Background>
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" Margin="20 15">
<Image Source="/Images/embedded-device.png" RenderOptions.BitmapScalingMode="Fant"></Image>
- <TextBlock Text="Tango Embedded Emulator" VerticalAlignment="Center" Margin="20 0 0 0" FontSize="36" Foreground="Red">
+ <TextBlock Text="Firmware Emulator" VerticalAlignment="Center" Margin="20 0 0 0" FontSize="36" Foreground="Red">
<TextBlock.Effect>
<DropShadowEffect/>
</TextBlock.Effect>
diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Controllers/DownloadsController.cs b/Software/Visual_Studio/Web/Tango.MachineService/Controllers/DownloadsController.cs
index 1be5b7bdf..e65a8ebbc 100644
--- a/Software/Visual_Studio/Web/Tango.MachineService/Controllers/DownloadsController.cs
+++ b/Software/Visual_Studio/Web/Tango.MachineService/Controllers/DownloadsController.cs
@@ -42,7 +42,7 @@ namespace Tango.MachineService.Controllers
downloads.Add(download);
}
- foreach (var item in db.TangoVersions.Where(x => x.InstallerBlobName != null).Include(x => x.User).Include(x => x.User.Contact).ToList())
+ foreach (var item in db.TangoVersions.Where(x => x.InstallerBlobName != null).Include(x => x.User).Include(x => x.User.Contact).Include(x => x.MachineVersion).Where(x => x.MachineVersion.Version == 1).ToList())
{
DownloadModel download = new DownloadModel();
download.App = DownloadModel.DownloadApp.PPC;
@@ -55,6 +55,20 @@ namespace Tango.MachineService.Controllers
downloads.Add(download);
}
+
+ foreach (var item in db.TangoVersions.Where(x => x.InstallerBlobName != null).Include(x => x.User).Include(x => x.User.Contact).Include(x => x.MachineVersion).Where(x => x.MachineVersion.Version == 2).ToList())
+ {
+ DownloadModel download = new DownloadModel();
+ download.App = DownloadModel.DownloadApp.Eureka;
+ download.ID = item.InstallerBlobName;
+ download.Name = $"Twine4X v{item.VersionAndTag}.exe";
+ download.Version = item.Version;
+ download.User = item.User.Contact.FullName;
+ download.Date = item.LastUpdated;
+ download.Comments = item.Comments;
+
+ downloads.Add(download);
+ }
}
downloads = downloads.OrderByDescending(x => x.Date).ToList();
diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Controllers/PPCController.cs b/Software/Visual_Studio/Web/Tango.MachineService/Controllers/PPCController.cs
index c08aa7a00..9cbc17abf 100644
--- a/Software/Visual_Studio/Web/Tango.MachineService/Controllers/PPCController.cs
+++ b/Software/Visual_Studio/Web/Tango.MachineService/Controllers/PPCController.cs
@@ -919,7 +919,7 @@ namespace Tango.MachineService.Controllers
if (local_version > Version.Parse(latestVersion.Version))
{
- String newVersionFileName = $"{machine_version.Name} - Tango Version {local_version.ToString() + (request.Tag.IsNotNullOrEmpty() ? $" [{request.Tag}]" : String.Empty)}.tup";
+ String newVersionFileName = $"{machine_version.Name} v{local_version.ToString(3) + (request.Tag.IsNotNullOrEmpty() ? $" [{request.Tag}]" : String.Empty)}.tup";
var manager = new BlobStorageManager();
var container = manager.GetContainer(MachineServiceConfig.TANGO_VERSIONS_CONTAINER);
diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Images/eureka.png b/Software/Visual_Studio/Web/Tango.MachineService/Images/eureka.png
new file mode 100644
index 000000000..c03daaded
--- /dev/null
+++ b/Software/Visual_Studio/Web/Tango.MachineService/Images/eureka.png
Binary files differ
diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Models/DownloadModel.cs b/Software/Visual_Studio/Web/Tango.MachineService/Models/DownloadModel.cs
index b13f5c66f..cfd2e02cd 100644
--- a/Software/Visual_Studio/Web/Tango.MachineService/Models/DownloadModel.cs
+++ b/Software/Visual_Studio/Web/Tango.MachineService/Models/DownloadModel.cs
@@ -19,6 +19,7 @@ namespace Tango.MachineService.Models
{
MachineStudio,
PPC,
+ Eureka
}
}
} \ No newline at end of file
diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Web/Tango.MachineService/Properties/AssemblyInfo.cs
index 1b038f94b..7b9a55380 100644
--- a/Software/Visual_Studio/Web/Tango.MachineService/Properties/AssemblyInfo.cs
+++ b/Software/Visual_Studio/Web/Tango.MachineService/Properties/AssemblyInfo.cs
@@ -24,4 +24,4 @@ using System.Runtime.InteropServices;
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
-[assembly: AssemblyVersion("3.0.17.0")]
+[assembly: AssemblyVersion("3.0.19.0")]
diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Properties/PublishProfiles/Beta.pubxml b/Software/Visual_Studio/Web/Tango.MachineService/Properties/PublishProfiles/Beta.pubxml
index e02abdacc..385d3cfd7 100644
--- a/Software/Visual_Studio/Web/Tango.MachineService/Properties/PublishProfiles/Beta.pubxml
+++ b/Software/Visual_Studio/Web/Tango.MachineService/Properties/PublishProfiles/Beta.pubxml
@@ -24,5 +24,21 @@ by editing this MSBuild file. In order to learn more about this please visit htt
<UserName>$machineservice-alpha-beta__MachineService-BETA</UserName>
<_SavePWD>True</_SavePWD>
<_DestinationType>AzureWebSite</_DestinationType>
+ <PublishDatabaseSettings>
+ <Objects xmlns="">
+ <ObjectGroup Name="Tango.BL.ObservablesContext" Order="1" Enabled="False">
+ <Destination Path="" />
+ <Object Type="DbCodeFirst">
+ <Source Path="DBContext" DbContext="Tango.BL.ObservablesContext, Tango.BL" Origin="Convention" />
+ </Object>
+ </ObjectGroup>
+ </Objects>
+ </PublishDatabaseSettings>
</PropertyGroup>
+ <ItemGroup>
+ <MSDeployParameterValue Include="$(DeployParameterPrefix)Tango.BL.ObservablesContext-Web.config Connection String" />
+ </ItemGroup>
+ <ItemGroup>
+ <_ConnectionStringsToInsert Include="Tango.BL.ObservablesContext" />
+ </ItemGroup>
</Project> \ No newline at end of file
diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Properties/PublishProfiles/Staging.pubxml b/Software/Visual_Studio/Web/Tango.MachineService/Properties/PublishProfiles/Staging.pubxml
new file mode 100644
index 000000000..3ea713203
--- /dev/null
+++ b/Software/Visual_Studio/Web/Tango.MachineService/Properties/PublishProfiles/Staging.pubxml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+This file is used by the publish/package process of your Web project. You can customize the behavior of this process
+by editing this MSBuild file. In order to learn more about this please visit https://go.microsoft.com/fwlink/?LinkID=208121.
+-->
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <WebPublishMethod>MSDeploy</WebPublishMethod>
+ <ResourceId>/subscriptions/10c8aa60-3b15-4e0d-b412-6aeef90e5e91/resourceGroups/Tango/providers/Microsoft.Web/sites/machineservice/slots/MachineService-TEST</ResourceId>
+ <ResourceGroup>Tango</ResourceGroup>
+ <PublishProvider>AzureWebSite</PublishProvider>
+ <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
+ <LastUsedPlatform>Any CPU</LastUsedPlatform>
+ <SiteUrlToLaunchAfterPublish>http://machineservice-machineservice-stage.azurewebsites.net</SiteUrlToLaunchAfterPublish>
+ <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
+ <ExcludeApp_Data>False</ExcludeApp_Data>
+ <MSDeployServiceURL>machineservice-machineservice-stage.scm.azurewebsites.net:443</MSDeployServiceURL>
+ <DeployIisAppPath>machineservice__MachineService-STAGE</DeployIisAppPath>
+ <RemoteSitePhysicalPath />
+ <SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
+ <InstallAspNetCoreSiteExtension>False</InstallAspNetCoreSiteExtension>
+ <MSDeployPublishMethod>WMSVC</MSDeployPublishMethod>
+ <EnableMSDeployBackup>True</EnableMSDeployBackup>
+ <UserName>$machineservice__MachineService-STAGE</UserName>
+ <_SavePWD>True</_SavePWD>
+ <_DestinationType>AzureWebSite</_DestinationType>
+ <PublishDatabaseSettings>
+ <Objects xmlns="">
+ <ObjectGroup Name="Tango.BL.ObservablesContext" Order="1" Enabled="False">
+ <Destination Path="" />
+ <Object Type="DbCodeFirst">
+ <Source Path="DBContext" DbContext="Tango.BL.ObservablesContext, Tango.BL" Origin="Convention" />
+ </Object>
+ </ObjectGroup>
+ </Objects>
+ </PublishDatabaseSettings>
+ </PropertyGroup>
+ <ItemGroup>
+ <MSDeployParameterValue Include="$(DeployParameterPrefix)Tango.BL.ObservablesContext-Web.config Connection String" />
+ </ItemGroup>
+ <ItemGroup>
+ <_ConnectionStringsToInsert Include="Tango.BL.ObservablesContext" />
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Tango.MachineService.csproj b/Software/Visual_Studio/Web/Tango.MachineService/Tango.MachineService.csproj
index 2e05ad690..3cb22c5b1 100644
--- a/Software/Visual_Studio/Web/Tango.MachineService/Tango.MachineService.csproj
+++ b/Software/Visual_Studio/Web/Tango.MachineService/Tango.MachineService.csproj
@@ -343,7 +343,9 @@
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Views\FSEAccount\ResetPasswordVM.cs" />
<Compile Include="Views\FSEDownloads\IndexViewModel.cs" />
+ <Content Include="Images\eureka.png" />
<Content Include="Nswag\DataStoreClient.nswag" />
+ <None Include="Properties\PublishProfiles\Staging.pubxml" />
<None Include="Security\RefreshTokenEncoder.cs" />
<None Include="Security\RefreshTokenEntity.cs" />
<None Include="Security\RefreshTokensManager.cs" />
diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Views/Downloads/Index.cshtml b/Software/Visual_Studio/Web/Tango.MachineService/Views/Downloads/Index.cshtml
index 044daaaa2..805c2cc55 100644
--- a/Software/Visual_Studio/Web/Tango.MachineService/Views/Downloads/Index.cshtml
+++ b/Software/Visual_Studio/Web/Tango.MachineService/Views/Downloads/Index.cshtml
@@ -24,10 +24,14 @@
{
<img src="~/Images/machine-studio.png" width="50" />
}
- else
+ else if (item.App == Tango.MachineService.Models.DownloadModel.DownloadApp.PPC)
{
<img src="~/Images/ppc.png" width="50" />
}
+ else
+ {
+ <img src="~/Images/eureka.png" width="50" />
+ }
</td>
<td>
<a style="display:inline" href="/Downloads/Download?blobName=@item.ID&downloadApp=@item.App">@item.Name</a>