From 839b52f073ae0da152d5942564d28889cc576fff Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Tue, 19 Nov 2019 13:33:59 +0200 Subject: Implemented midtank level status to maintenance screen. --- .../ViewModels/MaintenanceViewVM.cs | 44 ++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'Software/Visual_Studio/PPC/Modules/Tango.PPC.Maintenance/ViewModels/MaintenanceViewVM.cs') 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 ffd388093..39932888e 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 @@ -5,8 +5,11 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using Tango.Core.Commands; +using Tango.Integration.Operation; +using Tango.PMR.MachineStatus; using Tango.PPC.Common; using Tango.PPC.Maintenance.Helpers; +using Tango.PPC.Maintenance.Models; using Tango.PPC.Maintenance.Views; namespace Tango.PPC.Maintenance.ViewModels @@ -17,6 +20,13 @@ namespace Tango.PPC.Maintenance.ViewModels public RelayCommand OpenGuideCommand { get; set; } + private List _midTankLevels; + public List MidTankLevels + { + get { return _midTankLevels; } + set { _midTankLevels = value; RaisePropertyChangedAuto(); } + } + public MaintenanceViewVM() { Guides = new ObservableCollection(GuideHelper.CreateAllGuides()); @@ -29,9 +39,43 @@ namespace Tango.PPC.Maintenance.ViewModels } + public override void OnApplicationReady() + { + base.OnApplicationReady(); + + MidTankLevels = MachineProvider.Machine.Configuration.NoneEmptyIdsPacks.OrderBy(x => x.PackIndex).Select(x => new MidTankLevelModel() + { + Max = MachineOperator.MAX_MIDTANK_LITERS, + IDSPack = x, + }).ToList(); + + MachineProvider.MachineOperator.MachineStatusChanged += MachineOperator_MachineStatusChanged; + } + + private void MachineOperator_MachineStatusChanged(object sender, MachineStatus status) + { + UpdateMidTankLevels(status); + } + public async void OpenGuide(GuideBase guide) { await NavigationManager.NavigateWithObject(guide); } + + private void UpdateMidTankLevels(MachineStatus status) + { + if (IsVisible) + { + foreach (var item in status.IDSPacksLevels) + { + var model = MidTankLevels.SingleOrDefault(x => x.IDSPack.PackIndex == item.Index); + + if (model != null) + { + model.Level = item.MidTankLevel; + } + } + } + } } } -- cgit v1.3.1