aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Statistics/Converters/MidTankLevelToElementHeightConverter.cs
blob: de002046eb8558228d69e1070a3cb4cbbadbdf0a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
using System;
using System.Globalization;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;

namespace Tango.MachineStudio.Statistics.Converters
{
    public class MidTankLevelToElementHeightConverter : IMultiValueConverter
    {
        public const double MAX_QUANTITY = 130000000;
        public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
        {
            try
            {
                double parentActualHeight;
                Double.TryParse(values[0].ToString(), out parentActualHeight);
                double quantity;
                Double.TryParse(values[1].ToString(), out quantity);
                
                double  midTankLevel = (double)Math.Min(quantity, MAX_QUANTITY);
                double delta = ((midTankLevel / MAX_QUANTITY) * parentActualHeight);
                if (quantity > 0 && midTankLevel < (MAX_QUANTITY/10))// if quantity < 10|% set 2 pixel 
                    delta = 2.0;
                var test = delta;
                return parentActualHeight - delta;
            }
            catch
            {
                return 0d;
            }
        }

        public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }
}
s="w"> null; ItemGuid = value != null ? value.Guid : null; if (_techController != null && !IsSetToDefault) { OptimalRangeMinimum = _techController.Min; OptimalRangeMaximum = _techController.Min + ((_techController.Max - _techController.Min) * 0.7d); IsSetToDefault = true; } } } private double _value; /// <summary> /// Gets or sets the component value. /// </summary> [XmlIgnore] public double Value { get { return _value; } set { _value = value; RaisePropertyChangedAuto(); } } private int _updateInterval; /// <summary> /// Gets or sets the update interval. /// </summary> public int UpdateInterval { get { return _updateInterval; } set { _updateInterval = value; RaisePropertyChangedAuto(); } } /// <summary> /// Gets or sets the last update time. /// </summary> [XmlIgnore] public DateTime LastUpdateTime { get; set; } private double _effectiveValue; /// <summary> /// Gets or sets the effective value received from the embedded device. /// </summary> [XmlIgnore] public double EffectiveValue { get { return _effectiveValue; } set { LastUpdateTime = DateTime.Now; if (_effectiveValue != value) { _effectiveValue = value; RaisePropertyChangedAuto(); } } } private double _optimalRangeMinimum; /// <summary> /// Gets or sets the optimal range. /// </summary> public double OptimalRangeMinimum { get { return _optimalRangeMinimum; } set { _optimalRangeMinimum = value; RaisePropertyChangedAuto(); } } private double _optimalRangeMaximum; public double OptimalRangeMaximum { get { return _optimalRangeMaximum; } set { _optimalRangeMaximum = value; RaisePropertyChangedAuto(); } } public bool IsSetToDefault { get; set; } /// <summary> /// Gets or sets the set command. /// </summary> [XmlIgnore] public RelayCommand SetCommand { get; set; } /// <summary> /// Initializes a new instance of the <see cref="ControllerItem"/> class. /// </summary> public ControllerItem() : base() { Name = "Value Controller"; Description = "Single component value controller"; Image = ResourceHelper.GetImageFromResources("Images/controller.png"); Color = Colors.DodgerBlue; LastUpdateTime = DateTime.Now; UpdateInterval = 10; SetCommand = new RelayCommand(() => { SetCommandClicked?.Invoke(this, new EventArgs()); }); } /// <summary> /// Initializes a new instance of the <see cref="ControllerItem"/> class. /// </summary> /// <param name="techController">The db tech controller.</param> public ControllerItem(TechController techController) : this() { TechController = techController; } /// <summary> /// Clones this instance. /// </summary> /// <returns></returns> public override TechItem Clone() { ControllerItem cloned = base.Clone() as ControllerItem; cloned.TechController = TechController; cloned.OptimalRangeMinimum = OptimalRangeMinimum; cloned.OptimalRangeMaximum = OptimalRangeMaximum; cloned.IsSetToDefault = IsSetToDefault; return cloned; } } }