qin
2025-03-19 28a7344a9f352624c9f44cc3fcb38d7226d5a754
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/05-working/SimulationWorkingHelper.cs
@@ -10,10 +10,30 @@
        /// <summary>
        /// 
        /// </summary>
        public SimulationWorkingHelper()
        {
        public SimulationWorkingHelper() { }
        /// <summary>
        /// 初始化事件
        /// </summary>
        public event Action InitialEvent;
        /// <summary>
        /// 是否初始化
        /// </summary>
        public bool Initialized
        {
            get { return this.Working != null; }
        }
        /// <summary>
        /// 水力信息
        /// </summary>
        public Yw.Model.HydroModelInfo HydroInfo
        {
            get { return _hydroInfo; }
            private set { _hydroInfo = value; }
        }
        private Yw.Model.HydroModelInfo _hydroInfo = null;
        /// <summary>
        /// 工况
@@ -46,14 +66,62 @@
        private HydroCalcuResult _calcuResult = null;
        /// <summary>
        /// 是否是绝对压力
        /// </summary>
        public bool IsHead
        {
            get { return _isHead; }
            private set { _isHead = value; }
        }
        private bool _isHead = false;
        /// <summary>
        /// 初始化数据
        /// </summary>
        public void InitialData(HydroWorkingVmo working, HydroCheckResult checkResult, HydroCalcuResult calcuResult)
        public void InitialData
            (
                Yw.Model.HydroModelInfo hydroInfo,
                HydroWorkingVmo working,
                HydroCheckResult checkResult,
                HydroCalcuResult calcuResult,
                bool isHead = false
            )
        {
            this.HydroInfo = hydroInfo;
            this.Working = working;
            this.CheckResult = checkResult;
            this.CalcuResult = calcuResult;
            this.IsHead = isHead;
            this.InitialEvent?.Invoke();
        }
        /// <summary>
        /// 重置工况
        /// </summary>
        public void ResetWorking(HydroWorkingVmo working)
        {
            this.Working = working;
        }
        /// <summary>
        /// 重置结果
        /// </summary>
        public void ResetResult(bool isHead = false)
        {
            if (!Initialized)
            {
                return;
            }
            if (this.IsHead == isHead)
            {
                return;
            }
            this.IsHead = isHead;
            var calcuResult = this.HydroInfo.Calcu(Yw.EPAnet.CalcuMode.MinorLoss, isHead);
            this.CalcuResult = calcuResult;
            this.InitialEvent?.Invoke();
        }
    }
}