Shuxia Ning
2025-01-14 0f99d4d12f2eae29bbe343f4b3131f2faeccda5d
WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/05-extensions/HydroMonitorExtensions.cs
@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Yw.WinFrmUI
namespace Yw.WinFrmUI
{
    /// <summary>
    /// 监测点拓展
@@ -25,8 +19,73 @@
            return monitorList.Find(x => x.Flags.ContainsC(flags));
        }
        /// <summary>
        /// 获取属性值
        /// </summary>
        public static double GetPropValue(this HydroMonitorVmo monitor, double propValue)
        {
            if (monitor == null)
            {
                return default;
            }
            double pv = 0;
            switch (monitor.PropName)
            {
                case Yw.Hydro.MonitorProp.CalcuQ:
                    {
                        pv = Math.Round(propValue, 1);
                    }
                    break;
                case Yw.Hydro.MonitorProp.CalcuP:
                    {
                        pv = Math.Round(propValue, 1);
                    }
                    break;
                case Yw.Hydro.MonitorProp.CalcuE:
                    {
                        pv = Math.Round(propValue, 1);
                    }
                    break;
                case Yw.Hydro.MonitorProp.CalcuPr:
                    {
                        pv = Math.Round(propValue, 2);
                    }
                    break;
                case Yw.Hydro.MonitorProp.CalcuO:
                    {
                        pv = Math.Round(propValue, 0);
                    }
                    break;
                case Yw.Hydro.MonitorProp.CalcuO1:
                    {
                        pv = Math.Round(propValue, 0);
                    }
                    break;
                case Yw.Hydro.MonitorProp.CalcuO2:
                    {
                        pv = Math.Round(propValue, 0);
                    }
                    break;
                default: pv = Math.Round(propValue, 2); break;
            }
            return pv;
        }
        /// <summary>
        /// 获取属性值
        /// </summary>
        public static double? GetPropValue(this HydroMonitorVmo monitor, double? propValue)
        {
            if (monitor == null)
            {
                return default;
            }
            if (propValue == null)
            {
                return default;
            }
            return monitor.GetPropValue(propValue.Value);
        }
    }