using RealTimeGraphX.DataPoints; using RealTimeGraphX.WPF; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Media; using Tango.FSE.Common; using Tango.FSE.Common.Graphs; using Tango.FSE.Common.Helpers; using Tango.Integration.Operation; namespace Tango.FSE.UI.Tiles.OverallTemperature { public class OverallTemperatureTile : DashboardTile { public WpfGraphController OverallTemperatureController { get; set; } public OverallTemperatureTile() { Name = "Overall Temperature"; Column = 4; Row = 3; ColumnSpan = 4; RowSpan = 3; OverallTemperatureController = new WpfGraphController(); OverallTemperatureController.Range.MaximumY = 60; OverallTemperatureController.Range.MaximumX = new DateTime(0).AddMinutes(1); OverallTemperatureController.DataSeriesCollection.Add(new WpfGraphDataSeries() { Stroke = GraphHelper.GetGraphStrokeColor(), Fill = GraphHelper.GetGraphBrush(GraphHelper.GraphColor.White), }); OverallTemperatureController.PushData(DateTime.Now, 1); } public override FrameworkElement GetView() { return new OverallTemperatureTileView(); } public override void OnApplicationStarted() { base.OnApplicationStarted(); MachineProvider.MachineOperator.MachineStatusChanged += MachineOperator_MachineStatusChanged; } private void MachineOperator_MachineStatusChanged(object sender, PMR.MachineStatus.MachineStatus status) { if (status.OverallTemperature <= MachineOperator.OVERALL_TEMPERATURE_OK) { OverallTemperatureController.DataSeriesCollection[0].Fill = GraphHelper.GetGraphBrush(GraphHelper.GraphColor.White); } else if (status.OverallTemperature > MachineOperator.OVERALL_TEMPERATURE_WARNING && status.OverallTemperature < MachineOperator.OVERALL_TEMPERATURE_ERROR) { OverallTemperatureController.DataSeriesCollection[0].Fill = GraphHelper.GetGraphBrush(GraphHelper.GraphColor.Orange); } else { OverallTemperatureController.DataSeriesCollection[0].Fill = GraphHelper.GetGraphBrush(GraphHelper.GraphColor.Red); } OverallTemperatureController.PushData(DateTime.Now, status.OverallTemperature); } } }