using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace IStation { public class ModelInput { public ModelInput() { } public ModelInput(string objectId, int type, double value) { this.ObjectID = objectId; this.Type = (eType)type; this.Value = (float)value; } public enum eType { /// /// 入站压力,单位米水柱 /// press_in = 0, //入站压力 /// /// 出站压力,单位米水柱 /// press_out = 1,// 出站压力 /// /// 水泵转速比,一般是频率/50 /// pump_run = 12,// 0 水泵状态0/1还是水泵频率0~1 频率/50 转速/额定转速 /// /// 水泵类型 /// pump_isFrequece = 13,//0 工频 1 变频 -1 关闭 9必须开 /// /// 水池水位,单位是米 /// level = 23,// 水池液位 /// /// 流量,单位是立方米每小时 /// flow = 24,// 流量 /// /// 阀门状态,0是关,1是开 /// valve_initstatus =25 //阀门状态 } /// /// 结合INP文件,输入要设置的对象的编号 /// public string ObjectID; /// /// 结合INP文件,输入要设置的对象类型,类型包括: /// public eType Type; /// /// 输入参数的数值 /// public float Value { get; set; } } public class ModelOutput { public enum eType { /// /// 节点 /// EN_JUNCTION = 0, /// /// 水库节点 /// EN_RESERVOIR = 1, /// /// 水池节点 /// EN_TANK = 2, /// /// 具有止回阀的管道 /// EN_CVPIPE = 10, /// /// 管道 /// EN_PIPE = 11, /// /// 水泵 /// EN_PUMP = 12, /// /// 减压阀 /// EN_PRV = 13, /// /// 稳压阀 /// EN_PSV = 14, /// /// 压力制动阀 /// EN_PBV = 15, /// /// 流量控制阀 /// EN_FCV = 16, /// /// 节流控制阀 /// EN_TCV = 17, /// /// 常规阀门 /// EN_GPV = 18, } public string ObjectID; public eType Type; } public class ModelOutputNode : ModelOutput { public class Result { /// /// 标高 /// public double EN_ELEVATION { get; set; } /// /// 基本需水量 /// public double EN_BASEDEMAND { get; set; } /// /// 实际需水量 /// public double EN_DEMAND { get; set; } /// /// 绝对压力(计算结果,单位米水柱) /// public double EN_HEAD { get; set; } /// /// 自由压力(计算结果,单位米水柱) /// public double EN_PRESSURE { get; set; } } public int[] Get_list_ValueIndex() { return new int[] { 0, 1, 9, 10, 11 }; } public void SetValue(int i, float value) { switch (i) { case 0: result.EN_ELEVATION = value; break; case 1: result.EN_BASEDEMAND = value; break; case 2: result.EN_DEMAND = value; break; case 3: result.EN_HEAD = value; break; case 4: result.EN_PRESSURE = value; break; } } public Result result = new Result(); } public class ModelOutputLink : ModelOutput { public class Result { /// /// 直径 /// public double EN_DIAMETER { get; set; } /// /// 长度 /// public double EN_LENGTH { get; set; } /// /// 流量(计算结果,单位立方米每小时,从开始节点流向结束节点为正) /// public double EN_FLOW { get; set; } /// /// 流速(计算结果,单位米每秒) /// public double EN_VELOCITY { get; set; } /// /// 水头损失(计算结果,如果是水泵,则表示提升水头,值为负) /// public double EN_HEADLOSS { get; set; } /// /// 实际管段状态(0关1开) /// public double EN_STATUS { get; set; } /// /// 实际水泵转速比(计算结果,转换为Hz一般乘以50) /// public double EN_SETTING { get; set; } /// /// 消耗能量(计算结果,千瓦) /// public double EN_ENERGY { get; set; } } public int[] Get_list_ValueIndex() { return new int[] { 0, 1, 8, 9, 10, 11, 12, 13 }; } public void SetValue(int i, float value) { switch (i) { case 0: result.EN_DIAMETER = value; break; case 1: result.EN_LENGTH = value; break; case 2: result.EN_FLOW = value; break; case 3: result.EN_VELOCITY = value; break; case 4: result.EN_HEADLOSS = value; break; case 5: result.EN_STATUS = value; break; case 6: result.EN_SETTING = value; break; case 7: result.EN_ENERGY = value; break; } } public Result result = new Result(); } }