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();
}
}