在前一系统中介绍了text.h,回顾下,该文件包含了EPANET中所有字符串常量的定义,而ENUMSTXT.H文件则是以text.h中定义的字符串常量为基础,来对这些字符串常量进行合理的分组,形成字符串数组,这里的字符串用指针的形式来表示,也即用指针数组来进行分组。下面简单介绍下各个分组:

ENUMSTXT.H for assignment of string constants to enumerated types

以下部分是整个ENUMSTXT.H的原文,以及红色部分是我增加的注释

/*
***********************************************************************
                                                                    
ENUMSTXT.H -- Text strings for enumerated data types in EPANET 
                                                                    
VERSION:    2.00                                              
DATE:       5/8/00
AUTHOR:     L. Rossman                                        
            US EPA - NRMRL
                                                                    
**********************************************************************
*/

//描述节点的三种可能类型
char *NodeTxt[]         = {t_JUNCTION,           
                           t_RESERVOIR,
                           t_TANK};

//描述管线的9种可能类型,主要是各种类型的阀门以及水泵、管段,一般的计算中可能只包含Pipe
char *LinkTxt[]         = {w_CV,
                           w_PIPE,
                           w_PUMP,
                           w_PRV,
                           w_PSV,
                           w_PBV,
                           w_FCV,
                           w_TCV,
                           w_GPV};

//水力计算结果的一些统计信息
char *StatTxt[]         = {t_XHEAD,
                           t_TEMPCLOSED,
                           t_CLOSED,
                           t_OPEN,
                           t_ACTIVE,
                           t_XFLOW,
                           t_XFCV,
                           t_XPRESSURE,
                           t_FILLING,
                           t_EMPTYING};

//三种粗糙系数的计算公式
char *FormTxt[]         = {w_HW,
                           w_DW,
                           w_CM};

//用于报告中的三种粗糙系数的计算公式
char *RptFormTxt[]      = {t_HW,
                           t_DW,
                           t_CM};

//用于报告中的流量单位
char *RptFlowUnitsTxt[] = {u_CFS,
                           u_GPM,
                           u_MGD,
                           u_IMGD,
                           u_AFD,
                           u_LPS,
                           u_LPM,
                           u_MLD,
                           u_CMH,
                           u_CMD};

//流量单位
char *FlowUnitsTxt[]    = {w_CFS,
                           w_GPM,
                           w_MGD,
                           w_IMGD,
                           w_AFD,
                           w_LPS,
                           w_LPM,
                           w_MLD,
                           w_CMH,
                           w_CMD};

//3类压力单位
char *PressUnitsTxt[]   = {w_PSI,
                           w_KPA,
                           w_METERS};

//水质解算时的类型,INPUT中的Option选项中对应Quality这项
char *QualTxt[]         = {w_NONE,
                           w_CHEM,
                           w_AGE,
                           w_TRACE};

char *SourceTxt[]       = {w_CONCEN,
                           w_MASS,
                           w_SETPOINT,
                           w_FLOWPACED};

//常用控制规则关键词
char *ControlTxt[]      = {w_BELOW,
                           w_ABOVE,
                           w_TIME,
                           w_CLOCKTIME};

//统计词汇
char *TstatTxt[]        = {w_NONE,
                           w_AVG,
                           w_MIN,
                           w_MAX,
                           w_RANGE};

char *MixTxt[]          = {w_MIXED,
                           w_2COMP,
                           w_FIFO,
                           w_LIFO,
                           NULL};

//报告标记
char *RptFlagTxt[]      = {w_NO,
                           w_YES,
                           w_FULL};

//*.inp文件中的各段落标识
char *SectTxt[]         = {s_TITLE,     s_JUNCTIONS, s_RESERVOIRS,
                           s_TANKS,     s_PIPES,     s_PUMPS,
                           s_VALVES,    s_CONTROLS,  s_RULES,
                           s_DEMANDS,   s_SOURCES,   s_EMITTERS,
                           s_PATTERNS,  s_CURVES,    s_QUALITY,
                           s_STATUS,    s_ROUGHNESS, s_ENERGY,
                           s_REACTIONS, s_MIXING,    s_REPORT,
                           s_TIMES,     s_OPTIONS,   s_COORDS,
                           s_VERTICES,  s_LABELS,    s_BACKDROP,
                           s_TAGS,      s_END,
                           NULL};

//报告文件中的各段落标识
char *RptSectTxt[]      = {NULL,       t_JUNCTION, t_RESERVOIR,
                           t_TANK,     t_PIPE,     t_PUMP,
                           t_VALVE,    t_CONTROL,  t_RULE,
                           t_DEMANDFOR,t_SOURCE,   t_EMITTER,
                           t_PATTERN,  t_CURVE,    t_QUALITY,
                           t_STATUS,   t_ROUGHNESS,t_ENERGY,
                           t_REACTION, t_MIXING,   t_REPORT,
                           t_TIME,     t_OPTION};

//字段名称
char *Fldname[]         = {t_ELEV,      t_DEMAND,    t_HEAD,
                           t_PRESSURE,  t_QUALITY,   t_LENGTH,
                           t_DIAM,      t_FLOW,      t_VELOCITY,
                           t_HEADLOSS,  t_LINKQUAL,  t_LINKSTATUS,
                           t_SETTING,   t_REACTRATE, t_FRICTION,
                           "", "", "", "", "", "", NULL};

//控制台方式解算时显示的logo
char *LogoTxt[]         = {LOGO1,LOGO2,LOGO3,LOGO4,LOGO5,LOGO6,NULL};

EPANET头文件解读系列2——ENUMSTXT.H的更多相关文章

  1. EPANET头文件解读系列7——MEMPOOL.H

    //EPANET应用程序使用了大量的节点与管段数据,而且每个对象数据又有不同时段的数据,这些数据占用了大量内存,而mempool.h就是一个简单快速的内存分配相关的头文件/***  mempool.h ...

  2. EPANET头文件解读系列6——HASH.H

    该文件是EPANET中HASH.C的头文件,下面列出了该文件的源码以及我的中文注释 /* HASH.H**** Header file for Hash Table module HASH.C***/ ...

  3. EPANET头文件解读系列4——EPANET2.H

    该头文件的功能与系列3中的TOOLKIT.H类似,而且内容也几乎一致,所以也就不再详细介绍.

  4. EPANET头文件解读系列3——TOOLKIT.H

    /******************************************************************** TOOLKIT.H - Prototypes for EPA ...

  5. EPANET头文件解读系列5——TYPES.H

    /************************************************************************                            ...

  6. EPANET头文件解读系列1——TEXT.H

    定义在TEXT.H文件中的字符常量都以小写开头,然后紧跟一个下划线,再接着就全是大写字母 /***************************************************** ...

  7. EPANET头文件解读系列9——VARS.H

    /*************************************************************************            Global Variabl ...

  8. EPANET头文件解读系列8——FUNCS.H

    /***************************************************************************                         ...

  9. 头文件带和不带.h的区别

    所有C++标准库的头文件都是没有.h结尾的.这么做是为了区分,C标准库的头文件和C++标准库的头文件.比如最具代表性的: #include <string.h> // C 标准库头文件,包 ...

随机推荐

  1. BBS - 表、登录、文件上传、注册

    一.博客系统得表关系 models.py from django.db import models from django.contrib.auth.models import AbstractUse ...

  2. 设置UCHome注册登陆退出的跳转页自定义

    UCHome 默认注册.登录成功后跳转到 http://www.xxx.com/home/space.php?do=home 退出后会跳转到站点的首页,即 http://www.xxx.com/hom ...

  3. python 面向对象 __dict__

    打印 类或对象中的所有成员 类的构造函数属性 属于对象:类中的公有属性和方法等属于类 打印信息 class schoolMember(object): '''学校成员分类''' member = 0 ...

  4. 解读webpack的bundle.js

    可能就是好奇心略重了,读了一下webpack打包后的bundle.js的代码,复杂的模块可能读不懂,但简单的hello world模块我还是能看懂的.没什么目的,就是想通过几个简单的模块,一条简单的w ...

  5. (转) SpringBoot非官方教程 | 第二十四篇: springboot整合docker

    这篇文篇介绍,怎么为 springboot程序构建一个Docker镜像.docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源.Docker 可以让开发者打包他们的 ...

  6. POJ1175:Starry Night(bfs)

    http://poj.org/problem?id=1175 题目解析: 这个题因为数据的原因可以很水的过,但我因为把1e-8写成了1e-9WA了N遍,一直WA,题目意思很简单就是相似图形(就是求旋转 ...

  7. cocos代码研究(14)Widget子类Button学习笔记

    理论基础 表示一个按钮组件. 按钮可以被按下,或者点击, 并且在按下或者点击之后,可以由用户指定一个动作来执行,继承自 Widget. 代码部分 static Button * create ()创建 ...

  8. 2018-2019 ACM-ICPC, Asia Xuzhou Regional Contest Solution

    A. Rikka with Minimum Spanning Trees 题意: 给出一个图,求最小生成树的个数和权值 思路: 因为数据随机,只有一个MST #include <bits/std ...

  9. python使用zipfile解压中文乱码问题

    在zipfile.ZipFile中获得的filename有中日文则很大可能是乱码,这是因为 在zip标准中,对文件名的 encoding 用的不是 unicode,而可能是各种软件根据系统的默认字符集 ...

  10. Java的初始化与清理

    大家都知道,Java是站在巨人的肩上成功的,它是在C&C++的基础上进一步的开发,投入面向对象开发的怀抱.Java吸取了很多以前的教训,加入自己很多独创的方式.在程序语言发展初期,许多C程序员 ...