ningshuxia
昨天 71c12ff40d58c3dbdde6867396dd99224e57fc32
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
#ifdef _WIN32
#ifndef VARS_H
#define VARS_H
 
#include "structs.h"
 
#define      NodeObjCnt  4
#define      ValveObjCnt 7
#define MAXERRS 10000000      // Max. input errors reported
 
 
//全局变量(epa项目)
EXTERN Project __defaultProject;
// EXTERN int        addcurve(Network* network, char* id);
EXTERN void    inperrmsg(Project* pr, int err, int sect, char* line);
EXTERN int unlinked(Project* pr);
EXTERN int getpumpparams(Project* pr);
EXTERN char     Msg[MAXMSG + 1],         /* Text of output message       */
InpFname[MAXFNAME + 1],  /* Input file name              */
Rpt1Fname[MAXFNAME + 1], /* Primary report file name     */
Rpt2Fname[MAXFNAME + 1], /* Secondary report file name   */
HydFname[MAXFNAME + 1],  /* Hydraulics file name         */
OutFname[MAXFNAME + 1],  /* Binary output file name      */
MapFname[MAXFNAME + 1],  /* Map file name                */
TmpFname[MAXFNAME + 1],  /* Temporary file name          */      //(2.00.12 - LR)
TmpDir[MAXFNAME + 1],    /* Temporary directory name     */      //(2.00.12 - LR)
Title[MAXTITLE][MAXMSG + 1], /* Problem title            */
ChemName[MAXID + 1],     /* Name of chemical             */
ChemUnits[MAXID + 1],    /* Units of chemical            */
DefPatID[MAXID + 1],     /* Default demand pattern ID    */
Atime[13];             /* Clock time (hrs:min:sec)     */
EXTERN long        Step;                   /* 计算步长(s)  */
EXTERN int        CalcType;               /* 计算类型       */
 
EXTERN int        G_ClearType;               /* 数据输出类型  */
 
EXTERN bool        IsPatternEmpty,           /* 标志模式是否为空 */
IsStatusEmpty,           /* 标志开关状态是否为空 */
IsQualEmpty;           /* 标志水质模式是否为空 */
EXTERN float    DefaultPattern,           /* 默认模式值为1 */
DefaultStatus;           /* 默认开关状态为1 */
 
EXTERN char* NodeFile[NodeObjCnt],
* ValveFile[ValveObjCnt];
 
EXTERN SLayout    Layout[256];
/* 输入参数 */
EXTERN    int        FormulaType;           /* 计算公式类型  */
EXTERN char        Duration[100];            //epa动态平差计算持续的时间
EXTERN char        HydStep[100];            //设置水力计算时间
EXTERN char        QualStep[100];            //设置水质计算时间
EXTERN char        ReportStart[100];        //设置report的开始时间
EXTERN char        ReportStep[100];        //设置report的时间间隔
EXTERN float    Accuracy;                //设计计算精度
 
/* 水质计算输入参数 */
EXTERN int        G_QualType;                //水质计算类型
EXTERN float    Diffusivity;            //相对扩散系数
EXTERN int        OrderBulk;                //水体反应级数
EXTERN int        OrderTank;                //水池反应级数
EXTERN int        OrderWall;                //管壁反应级数
EXTERN bool        UseDefaultGlobalBulk;    //是否使用默认水体反应系数
EXTERN bool        UseDefaultGlobalWall;    //是否使用默认管壁反应系数
EXTERN float    GlobalBulk;                //默认水体反应系数
EXTERN float    GlobalWall;                //默认管壁反应系数
EXTERN float    LimitingPotential;        //上下限浓度
EXTERN float    RoughnessCorrelation;    //与各种水力计算公式的相关系数
 
/* 输入数据 */
 
 
/* 输入数据 */
EXTERN SInNode** InNodeList;
EXTERN SInValve** InValveList;
EXTERN SInTank* InTank;               /* 水池节点   */
EXTERN SInReser* InReser;               /* 水库节点   */
EXTERN SInReser* InPress;               /* 已知压力点 */
EXTERN SInValve* InCV;                   /* 止回阀     */
EXTERN SInPump* InCSP,                   /* 定速泵     */
* InRSP;                   /* 变速泵     */
EXTERN SInPipe* InPipe;               /* 管线         */
EXTERN SObjPat* InObjPat;               /* 对象模式对应关系 */
EXTERN SObjPatHead* InObjPatHead;
EXTERN SCurveValue* InCurve1;           /* 曲线数据     */
EXTERN SCurveHead* InCurveHead;
 
EXTERN __int64    TotalCalcTime,        /* 总计算时间         */
TotalHydrCalcTime,    /* 水力计算总时间 */
TotalQualCalcTime,    /* 水质总计算时间 */
PureHydrCalcTime,    /* 纯水力计算时间 */
PureQualCalcTime,    /* 纯水质计算时间 */
DataLoadTime,        /* 第一次加载计算数据 */
TotalSaveTime,        /* 数据保存时间     */
TotalModifyTime;    /* 装载下一次计算数据时间     */
 
 
/*
------------------------------------------------------
   用于取得设备类型编号
   设备类型编号 = 设备编号 / 2^24
------------------------------------------------------
*/
#define  GET_LAYOUT_ID(x)        ((BYTE)((x) >> 24))
 
/*
------------------------------------------------------
   用于取得结构中的某个字段在结构中的偏移量
   s    结构名称
   f    字段名称
------------------------------------------------------
*/
#define STRUCT_OFFSET(s,f)    ((int)(&(((s*)0)->f)))
/*
------------------------------------------------------
定义计算类型
------------------------------------------------------
*/
 
#define StaticCalc    0        // 静态计算
#define DynamicCalc    1        // 动态计算
#define OfflineScadaSimulate 2 // 离线SCADA模拟
#define OnlineScadaSimulate  3 // 在线SCADA模拟
#define ModelAttemp    4        // 调度
 
/*
------------------------------------------------------
    定义数据输出方式
------------------------------------------------------
*/
#define ByClear        0        // 清除全部数据
#define ByReplace    1        // 更新指定时间的数据
#define    ByUpdate    2        // 更新指定字段数据
 
/*
------------------------------------------------------
    定义水质计算类型
------------------------------------------------------
*/
#define None        0        // 不进行水质计算
#define Age            1        // 水龄计算
#define Chlorine    2        // 余氯计算
#define THMs        3        // 三卤甲烷计算
#define Trace        4        // 物质追踪
 
 
 
 
/* 输入数据数量 */
EXTERN long* NodeCountList,
* ValveCountList;
 
EXTERN long     TankCount,               /* 水池节点数量     */
                ReserCount,               /* 水库节点数量     */
                PressCount,               /* 已知压力点数量     */
                RealCVCount,           /* 没有被删除的止回阀数量     */    
                CVCount,               /* 止回阀数量     */
                CSPCount,               /* 定速泵数量     */
                RSPCount,               /* 变速泵数量     */
                PipeCount,               /* 管线数量         */
                PressureCount,           /* 压力监测点数量 */
                QualityCount,           /* 水质监测点数量 */
                FlowMeterCount,           /* 流量监测点数量 */
                ObjPatCount,           /* 对象模式对应关系数量     */
                CurveCount1;           /* 曲线数量         */
EXTERN int        InCurveHeadCount;
EXTERN int        InObjPatHeadCount;
/* SCADA模拟数据 */
EXTERN float    TotalSimuDemand;        /* 模拟总流量 */
EXTERN float    TotalScadaDemand;        /* 实际总流量 */
EXTERN float    DemandMult;                /* 模拟总流量和实际总流量比例系数 */
 
/* 输出数据 */
EXTERN SOutNode** OutNodeList;
EXTERN SOutValve** OutValveList;
EXTERN SOutTank* OutTank;               /* 水池节点   */
EXTERN SOutReser* OutReser;               /* 水库节点   */
EXTERN SOutReser* OutPress;               /* 已知压力点 */
EXTERN SOutPump* OutCSP,               /* 定速泵     */
* OutRSP;               /* 变速泵     */
EXTERN SOutPipe* OutPipe;               /* 管线         */
 
 
typedef struct HTentry *HTtable;
/* Array pointers not allocated and freed in same routine */
//EXTERN char     *S,                    /* Link status                  */
//                *OldStat;              /* Previous link/tank status    */
// EXTERN double   *D,                    /* Node actual demand           */
//                 *C,                    /* Node actual quality          */
//                 *E,                    /* Emitter flows                */
//                 *K,                    /* Link settings                */
//                 *Q,                    /* Link flows                   */
//                 *R,                    /* Pipe reaction rate           */
//                 *X;                    /* General purpose array        */
EXTERN double   *H;                    /* Node heads                   */
//EXTERN Snode    *Node;                 /* Node data                    */
//EXTERN HashTable  *Nht, *Lht;            /* Hash tables for ID labels    */
#define   FLAG                151200769    // 数据版本DWORD
                                        // 0x09 03 24 01
#define   LAYOUT_BASE        65536        // 层基数
#define      DEF_GPV_X_0    0
#define      DEF_GPV_Y_0    0
#define      DEF_GPV_X_1    10000
#define      DEF_GPV_Y_1    0
 
/* ------------ 输入输出文件名 ---------- */
#define      L_GeneralNode        "65542"
#define      L_TransportNode    "65543"
#define      L_FireplugNode    "65545"
#define      L_MeterNode        "65544"
#define      L_Tank            "65538"
#define      L_Reser            "65539"
#define      L_Press            "65540"
#define      L_FCV                "65546"
#define      L_PRV                "65550"
#define      L_PBV                "65551"
#define      L_PSV                "65547"
#define      L_TCV                "65549"
#define      L_GPV                "65548"
#define      L_CV                "65552"
#define   L_CSP                "65554"
#define   L_RSP                "65555"
#define   L_Pipe            "65556"
 
#define      L_CurveValue        "1"
#define      L_Status            "2"
#define   L_PatternValue    "3"
#define   L_ObjectPattern    "4"
#define      L_QualPattern        "5"
 
//以下仅为输入文件
#define   f_PatternValue    "PatternValue"
#define      f_Status            "Status"
#define   f_ObjectPattern    "ObjectPattern"
#define      f_CurveValue        "CurveValue"
 
#define      w_DEFAULT_GPV        "GPVDefault"
#define      Water_R      1000
 
 
//EXTERN int      MaxNodes,              /* Node count from input file   */
//                MaxLinks,              /* Link count from input file   */
//
//EXTERN int      MaxJuncs,              /* Junction count               */
//                MaxJuncsA,               /* Actual Junction Count           */
//                MaxJuncsV,               /* Virtual Junction Count       */
//                MaxPipes,              /* Pipe count                   */
//                MaxTanks,              /* Tank count                   */
//                MaxPumps,              /* Pump count                   */
//                MaxValves,             /* Valve count                  */
//                MaxControls,           /* Control count                */
//                MaxRules,              /* Rule count                   */
//                MaxPats,               /* Pattern count                */
//                MaxCurves,             /* Curve count                  */
//                Nnodes,                /* Number of network nodes      */
//                Ntanks,                /* Number of tanks              */
//                Njuncs,                /* Number of junction nodes     */
//                Nlinks,                /* Number of network links      */
//                Npipes,                /* Number of pipes              */
//                Npumps,                /* Number of pumps              */
//                Nvalves,               /* Number of valves             */
//                Ncontrols,             /* Number of simple controls    */
//                Nrules,                /* Number of control rules      */
//                Npats,                 /* Number of time patterns      */
//                Ncurves,               /* Number of data curves        */
//                Nperiods,              /* Number of reporting periods  */
//                Ncoeffs,               /* Number of non-0 matrix coeffs*/
//                DefPat,                /* Default demand pattern       */
//                Epat,                  /* Energy cost time pattern     */
//                MaxIter,               /* Max. hydraulic trials        */
//                ExtraIter,             /* Extra hydraulic trials       */
//                TraceNode,             /* Source node for flow tracing */
//                PageSize,              /* Lines/page in output report  */
//                CheckFreq,             /* Hydraulics solver parameter  */
//                MaxCheck;              /* Hydraulics solver parameter  */
//
EXTERN STmplist *Patlist;              /* Temporary time pattern list  */ 
 EXTERN STmplist *Curvelist;            /* Temporary list of curves     */
//EXTERN Spattern *Pattern;              /* Time patterns                */
//EXTERN Scurve   *Curve;                /* Curve data                   */
 
 
#endif
#endif