| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 | using System;using System.Threading;using MECF.Framework.Simulator.Core.Driver;using PunkHPX8_Simulator.Instances;using Aitex.Core.RT.SCCore;using MECF.Framework.Common.SCCore;using MECF.Framework.Common.DataCenter;using Aitex.Core.Util;using System.IO;namespace PunkHPX8_Simulator.Devices{    class SMCChillerMock : SerialPortDeviceSimulator    {        public enum SMCChillerStatus        {            Open,            Close,        }        public static SMCChillerStatus _simPumpStatus;        private const string EOF = "\r\n";        private const char MSG_DELIMITER = ' ';        //private const string MOCKUP_PORT = "COM43";        public SMCChillerMock(string port) : base(port, -1, EOF, MSG_DELIMITER)        {            _simPumpStatus = SMCChillerStatus.Close;        }        protected override void ProcessUnsplitMessage(string message)        {            //if (string.IsNullOrEmpty(message))            //    throw new ArgumentException("Hardware command message is invalid");            //string[] separatingStrings = { EOF };            //string[] msgs = message.Trim().Split(separatingStrings, System.StringSplitOptions.RemoveEmptyEntries);            //foreach (var msg in msgs)            //{            //    if(msg.StartsWith(":0106000B"))            //    {            //        int temp = Convert.ToInt32(msg.Substring(9, 8), 16);            //        Console.WriteLine($"Chiller Set Temp: {temp}");            //        SetTemp(temp);            //    }            //    else if(msg.StartsWith(":0106000C0001"))            //    {            //        _simPumpStatus = SMCChillerStatus.Open;            //    }            //    else if(msg.StartsWith(":0106000C0000"))            //    {            //        _simPumpStatus = SMCChillerStatus.Close;            //    }            //}                    }        void SetTemp(int temp)        {            string module;//= PortName == "COM43" ? "PMA" : "PMB";            switch (PortName)            {                case "COM43":                case "COM53":                    module = "PMA";                    break;                case "COM45":                    module = "PMB";                     break;                case "COM86":                    module = "PMC";                    break;                case "COM28":                    module = "PMD";                    break;                default:                    module = "PMB";                    break;            }                           double _OffsetTemp = SystemConfig.Instance.GetValue<double>($"{module}.Chiller.ChillerTemperatureOffset");            SimulatorSystem.Instance.SetCoolantOutletTemp(module, temp / 10 + (int)_OffsetTemp);        }    }}
 |