Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
H
hydraulicModel
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
刘乐
hydraulicModel
Commits
e7a421fe
Commit
e7a421fe
authored
Jun 22, 2020
by
刘乐
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1, 代码改造
parent
15675189
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
685 additions
and
101 deletions
+685
-101
CivAssembly.cpp
pandaAnalysis/CivAssembly.cpp
+42
-0
CivAssembly.h
pandaAnalysis/CivAssembly.h
+105
-0
CivComponent.cpp
pandaAnalysis/CivComponent.cpp
+0
-12
CivComponent.h
pandaAnalysis/CivComponent.h
+0
-30
CivHydrCalc.cpp
pandaAnalysis/CivHydrCalc.cpp
+8
-9
CivHydrCalc.h
pandaAnalysis/CivHydrCalc.h
+0
-6
CivInpBuilder.cpp
pandaAnalysis/CivInpBuilder.cpp
+427
-0
CivInpBuilder.h
pandaAnalysis/CivInpBuilder.h
+62
-0
CivInpExporter.cpp
pandaAnalysis/CivInpExporter.cpp
+0
-12
CivInpExporter.h
pandaAnalysis/CivInpExporter.h
+0
-19
CivNewInp.h
pandaAnalysis/CivNewInp.h
+22
-0
pandaAnalysis.vcxproj
pandaAnalysis/pandaAnalysis.vcxproj
+5
-4
pandaAnalysis.vcxproj.filters
pandaAnalysis/pandaAnalysis.vcxproj.filters
+10
-7
CivPgConn.h
pandaDbManager/CivPgConn.h
+2
-1
pandaDbManager.vcxproj
pandaDbManager/pandaDbManager.vcxproj
+2
-1
No files found.
pandaAnalysis/CivAssembly.cpp
0 → 100644
View file @
e7a421fe
#include "CivAssembly.h"
CivAssembly
::
CivAssembly
()
{
}
CivNode
::
CivNode
()
{
}
CivPipe
::
CivPipe
()
{
}
CivTank
::
CivTank
()
{
}
CivValve
::
CivValve
()
{
}
CivPumps
::
CivPumps
()
{
}
CivReservoirs
::
CivReservoirs
()
{
}
CivEmitters
::
CivEmitters
()
{
}
\ No newline at end of file
pandaAnalysis/CivAssembly.h
0 → 100644
View file @
e7a421fe
#ifndef CIVASSEMBLY_H
#define CIVASSEMBLY_H
#include "CivTypes.h"
class
CivAssembly
;
class
CivNode
;
class
CivPipe
;
class
CivTank
;
class
CivValve
;
class
CivPumps
;
class
CivEmitters
;
/**
管网基本组件
*/
class
CivAssembly
{
public
:
CivAssembly
();
protected
:
};
/**
节点类型
*/
class
CivNode
:
public
CivAssembly
{
public
:
CivNode
();
private
:
};
/**
* 管线类型
*/
class
CivPipe
:
public
CivAssembly
{
public
:
CivPipe
();
private
:
Str
mID
;
// id号
CivNode
*
mStartNode
=
nullptr
;
// 上点号
CivNode
*
mStopNode
=
nullptr
;
// 本点号
};
/*
水池类型
*/
class
CivTank
:
public
CivAssembly
{
public
:
CivTank
();
};
/*
阀门
*/
class
CivValve
:
public
CivAssembly
{
public
:
CivValve
();
};
/**
水泵
*/
class
CivPumps
:
public
CivAssembly
{
public
:
CivPumps
();
};
/*
水源
*/
class
CivReservoirs
:
public
CivAssembly
{
public
:
CivReservoirs
();
};
/**
EMITTERS将模拟节点定义为扩散器(喷嘴或者孔口)。
*/
class
CivEmitters
:
public
CivAssembly
{
public
:
CivEmitters
();
};
#endif // !CIVASSEMBLY_H
pandaAnalysis/CivComponent.cpp
deleted
100644 → 0
View file @
15675189
#include "CivComponent.h"
CivNode
::
CivNode
()
{
}
CivPipe
::
CivPipe
()
{
}
\ No newline at end of file
pandaAnalysis/CivComponent.h
deleted
100644 → 0
View file @
15675189
#pragma once
#include "CivTypes.h"
class
CivNode
;
class
CivPipe
;
/**
* 节点类型
*/
class
CivNode
{
public
:
CivNode
();
private
:
};
/**
* 管线类型
*/
class
CivPipe
{
public
:
CivPipe
();
private
:
Str
mID
;
// id号
CivNode
*
mStartNode
=
nullptr
;
// 上点号
CivNode
*
mStopNode
=
nullptr
;
// 本点号
};
pandaAnalysis/CivHydrCalc.cpp
View file @
e7a421fe
...
...
@@ -95,22 +95,22 @@ bool CivHydrCalc::hydrSimulation(char* fileName, char* rptFile, char* binOutFile
bool
CivHydrCalc
::
qualitySimulation
(
char
*
inpFile
,
char
*
rptFile
,
char
*
binOutFile
)
{
if
(
!
hydrSimulation
(
inpFile
,
rptFile
,
binOutFile
))
{
return
false
;
}
// 运行水质运算需要先进行水力运算
,没有直接采用ENSolveH 是为了考虑减压阀的压力曲线设置
// 运行水质运算需要先进行水力运算
int
errcode
=
0
;
// 进行水质分析
ENopenQ
();
ENinitQ
(
1
);
t
=
0
;
tstep
=
0
;
iTime
=
0
;
long
t
(
0
),
tstep
(
0
);
int
iTime
(
0
);
int
errcode
=
0
;
do
{
errcode
=
ENrunQ
(
&
t
);
// errcode > 100 是错误
...
...
@@ -121,8 +121,7 @@ bool CivHydrCalc::qualitySimulation(char* inpFile, char* rptFile, char* binOutFi
return
;
}
HydResultCache
::
GetInstance
()
->
SetHydNodQualityResultTblAi
(
iTime
);
HydResultCache
::
GetInstance
()
->
SetHydLinQualityResultTblAi
(
iTime
);
// 存储水质计算结果
ENstepQ
(
&
tstep
);
...
...
@@ -180,8 +179,8 @@ bool CivHydrCalc::exportInp(char* fileName)
if
(
!
mDbConn
->
open
())
return
false
;
bool
pattern
=
mDbConn
->
createTable
(
PATTERNTABLE
,
"public"
,
Civ
DbConnection
::
PATTERN_TABLE
);
bool
cii
=
mDbConn
->
createTable
(
OPTIONTTABLE
,
"public"
,
Civ
DbConnection
::
PARAMETER_TABLE
);
bool
pattern
=
mDbConn
->
createTable
(
PATTERNTABLE
,
"public"
,
Civ
TableTemp
::
PATTERN_TABLE
);
bool
cii
=
mDbConn
->
createTable
(
OPTIONTTABLE
,
"public"
,
Civ
TableTemp
::
PARAMETER_TABLE
);
// 获取表格
Tables
tables
=
mDbConn
->
getTables
(
mNetname
);
...
...
pandaAnalysis/CivHydrCalc.h
View file @
e7a421fe
...
...
@@ -58,15 +58,9 @@ private:
*/
void
getLinkResult
(
short
time
);
/**
*@brief 获取运行过程产生的错误
*/
std
::
string
getLastError
()
{
return
mLastError
;
}
private
:
CivDbConnection
*
mDbConn
;
std
::
string
mNetname
;
std
::
string
mLastError
;
};
pandaAnalysis/CivInpBuilder.cpp
0 → 100644
View file @
e7a421fe
#include "CivInpBuilder.h"
#include "CivTypes.h"
CivInpBuilder
::
CivInpBuilder
()
:
mDbConn
(
nullptr
)
{
}
CivInpBuilder
::
CivInpBuilder
(
CivDbConn
*
dbConn
)
:
mDbConn
(
dbConn
)
{
}
CivInpBuilder
::~
CivInpBuilder
()
{
delete
mDbConn
;
}
void
CivInpBuilder
::
registDb
(
CivDbConn
*
dbConn
)
{
if
(
mDbConn
!=
nullptr
)
{
delete
mDbConn
;
mDbConn
=
nullptr
;
}
mDbConn
=
dbConn
;
}
bool
CivInpBuilder
::
exportInp
(
char
*
fileName
)
{
//1 ,获取管网组件
if
(
!
mDbConn
)
return
false
;
if
(
!
mDbConn
->
open
())
return
false
;
bool
pattern
=
mDbConn
->
createTable
(
PATTERNTABLE
,
"public"
,
CivTableTemp
::
PATTERN_TABLE
);
bool
cii
=
mDbConn
->
createTable
(
OPTIONTTABLE
,
"public"
,
CivTableTemp
::
PARAMETER_TABLE
);
// 获取表格
Tables
tables
=
mDbConn
->
getTables
(
""
);
//2,解析管网组件
// 解析管网组件顺序: 管线放最后
CivInp
civInp
(
CivInp
::
HOURS
);
int
total
=
tables
.
size
();
for
(
int
i
=
0
;
i
<
total
;
i
++
)
{
std
::
string
table
=
tables
[
i
];
if
(
PIPELINE
==
table
)
continue
;
assemble
(
table
,
civInp
);
}
assemble
(
PIPELINE
,
civInp
);
// 设置曲线
// Componets curves = mDbConn->getComponets(CURVETABLE);
// 初始化参数
Options
options
;
options
.
units
=
Options
::
UNITS
::
LPS
;
options
.
TRIALS
=
"40"
;
options
.
ACCURACY
=
"0.001 "
;
options
.
EMITTEREXPONENT
=
"0.5"
;
options
.
SpecificGravity
=
"0.998"
;
options
.
headLoss
=
Options
::
HEADLOSS
::
HW
;
options
.
TOLERANCE
=
"0.0166666666666667 "
;
options
.
quality
=
Options
::
QUALITY
::
AGE
;
std
::
map
<
std
::
string
,
std
::
string
>
optMap
;
optMap
.
insert
(
std
::
pair
<
std
::
string
,
std
::
string
>
(
"DAMPLIMIT"
,
"0"
));
optMap
.
insert
(
std
::
pair
<
std
::
string
,
std
::
string
>
(
"CHECKFREQ"
,
"2"
));
optMap
.
insert
(
std
::
pair
<
std
::
string
,
std
::
string
>
(
"MAXCHECK"
,
"10"
));
civInp
.
setOption
(
options
,
optMap
);
// 设置
civInp
.
setDuration
(
24
);
civInp
.
setTimestep
(
"PATTERN"
,
1
);
civInp
.
setTimestep
(
"HYDRAULIC"
,
1
);
civInp
.
setTimestep
(
"QUALITY"
,
1
);
civInp
.
setTimeStart
(
"REPORT"
,
1
);
civInp
.
writeToFile
(
fileName
);
return
true
;
}
void
CivInpBuilder
::
assemble
(
StrQuote
table
,
CivInp
&
inp
)
{
// 根据组建类型解析字段
if
(
PIPELINE
==
table
)
{
// 管线
//;ID Node1 Node2 Length Diameter Roughness MinorLoss Status
// 必备参数
Componets
comps
=
mDbConn
->
getComponets
(
table
);
PipeFields
pipes
;
Civitems
items
;
int
total
=
comps
.
size
();
for
(
int
i
=
0
;
i
<
total
;
i
++
)
{
Componet
comp
=
comps
[
i
];
// 过滤掉与阀门和水泵连接的管线
Str
number
=
comp
.
find
(
"id"
)
->
second
;
FiledFilter
filter
=
mDbConn
->
getFilter
();
auto
iter
=
filter
.
find
(
PIPELINE
);
if
(
iter
!=
filter
.
end
())
{
auto
lineFilter
=
iter
->
second
;
if
(
lineFilter
.
count
(
number
)
>
0
)
continue
;
}
Str
id
=
comp
.
find
(
pipes
.
ID
)
->
second
;
Str
startNode
=
comp
.
find
(
pipes
.
Node1
)
->
second
;
Str
endNode
=
comp
.
find
(
pipes
.
Node2
)
->
second
;
Str
length
=
comp
.
find
(
pipes
.
Length
)
->
second
;
Str
diameter
=
comp
.
find
(
pipes
.
Diameter
)
->
second
;
Str
roughness
=
comp
.
find
(
pipes
.
Roughness
)
->
second
;
Str
minorLoss
=
comp
.
find
(
pipes
.
MinorLoss
)
->
second
;
Str
status
=
comp
.
find
(
pipes
.
Status
)
->
second
;
// 注意顺序
CivItem
civItem
;
if
(
id
==
""
||
id
.
empty
())
id
=
"GD"
+
comp
.
find
(
"id"
)
->
second
;
civItem
.
push_back
(
id
);
civItem
.
push_back
(
startNode
);
civItem
.
push_back
(
endNode
);
civItem
.
push_back
(
length
);
civItem
.
push_back
(
diameter
);
civItem
.
push_back
(
roughness
);
civItem
.
push_back
(
minorLoss
);
civItem
.
push_back
(
status
);
items
.
push_back
(
civItem
);
}
inp
.
writeComponet
(
items
,
_PIPES
);
}
else
if
(
PIPENODE
==
table
)
{
Componets
comps
=
mDbConn
->
getComponets
(
table
);
// 节点参数
// ;ID Elev Demand Pattern
// 坐标
//;Node X-Coord Y-Coord
JunctionsFields
jontionFields
;
Civitems
jounItems
;
Civitems
nodeCoordItems
;
Civitems
patternItems
;
int
total
=
comps
.
size
();
std
::
set
<
Str
>
patterNams
;
for
(
int
i
=
0
;
i
<
total
;
i
++
)
{
Componet
comp
=
comps
[
i
];
Str
id
=
comp
.
find
(
jontionFields
.
ID
)
->
second
;
Str
elevation
=
comp
.
find
(
jontionFields
.
Elev
)
->
second
;
Str
demand
=
comp
.
find
(
jontionFields
.
Demand
)
->
second
;
Str
pattern
=
comp
.
find
(
jontionFields
.
Pattern
)
->
second
;
Str
x_coord
=
comp
.
find
(
jontionFields
.
X_Coord
)
->
second
;
Str
y_coord
=
comp
.
find
(
jontionFields
.
Y_Coord
)
->
second
;
// 注意顺序
//1, 节点
CivItem
civItem
;
civItem
.
push_back
(
id
);
civItem
.
push_back
(
elevation
);
civItem
.
push_back
(
demand
);
civItem
.
push_back
(
pattern
);
jounItems
.
push_back
(
civItem
);
// 2, 节点坐标
CivItem
nodeCoordItem
;
nodeCoordItem
.
push_back
(
id
);
nodeCoordItem
.
push_back
(
x_coord
);
nodeCoordItem
.
push_back
(
y_coord
);
nodeCoordItems
.
push_back
(
nodeCoordItem
);
if
(
!
pattern
.
empty
())
{
patterNams
.
insert
(
pattern
);
}
}
Componets
patterns
=
mDbConn
->
getComponets
(
PATTERNTABLE
);
PatternFields
fileds
;
size_t
patternSize
=
patterns
.
size
();
for
(
int
i
=
0
;
i
<
patternSize
;
i
++
)
{
Componet
pattern
=
patterns
[
i
];
Str
paternName
=
pattern
.
find
(
fileds
.
Name
)
->
second
;
Str
paternValue
=
pattern
.
find
(
fileds
.
Value
)
->
second
;
CivItem
item
;
item
.
push_back
(
paternName
);
item
.
push_back
(
paternValue
);
patternItems
.
push_back
(
item
);
}
inp
.
writeComponet
(
jounItems
,
_JUNCTIONS
);
inp
.
writeComponet
(
nodeCoordItems
,
_COORDS
);
inp
.
writeComponet
(
patternItems
,
_PATTERNS
);
}
else
if
(
RESIVOIR
==
table
)
// 水源
{
Componets
comps
=
mDbConn
->
getComponets
(
table
);
//;ID Head Pattern
Civitems
coordItems
;
Civitems
resirvoirItems
;
ResivoirFields
fields
;
int
total
=
comps
.
size
();
for
(
int
i
=
0
;
i
<
total
;
i
++
)
{
Componet
comp
=
comps
[
i
];
Str
id
=
comp
.
find
(
fields
.
ID
)
->
second
;
Str
elevation
=
comp
.
find
(
fields
.
Elev
)
->
second
;
Str
flow
=
comp
.
find
(
fields
.
Flow
)
->
second
;
Str
head
=
comp
.
find
(
fields
.
Head
)
->
second
;
Str
pattern
=
comp
.
find
(
fields
.
Pattern
)
->
second
;
Str
x_coord
=
comp
.
find
(
fields
.
X_Coord
)
->
second
;
Str
y_coord
=
comp
.
find
(
fields
.
Y_Coord
)
->
second
;
// 注意顺序
//1, coord
CivItem
civItem
;
civItem
.
push_back
(
id
);
civItem
.
push_back
(
head
);
civItem
.
push_back
(
pattern
);
resirvoirItems
.
push_back
(
civItem
);
// 2, 节点坐标
CivItem
nodeCoordItem
;
nodeCoordItem
.
push_back
(
id
);
nodeCoordItem
.
push_back
(
x_coord
);
nodeCoordItem
.
push_back
(
y_coord
);
coordItems
.
push_back
(
nodeCoordItem
);
}
inp
.
writeComponet
(
coordItems
,
_COORDS
);
inp
.
writeComponet
(
resirvoirItems
,
_RESERVOIRS
);
}
else
if
(
PUMP
==
table
)
// 水泵
{
//;ID Node1 Node2 Parameters
Componets
comps
=
mDbConn
->
getLikelyPipes
(
table
);
PumpFields
fields
;
Civitems
pumpItems
;
int
total
=
comps
.
size
();
for
(
int
i
=
0
;
i
<
total
;
i
++
)
{
Componet
comp
=
comps
[
i
];
Str
id
=
comp
.
find
(
fields
.
ID
)
->
second
;
Str
node1
=
comp
.
find
(
fields
.
node1
)
->
second
;
Str
node2
=
comp
.
find
(
fields
.
node2
)
->
second
;
std
::
vector
<
Str
>
vec
;
Str
head
=
comp
.
find
(
fields
.
head
)
->
second
;
if
(
!
head
.
empty
())
vec
.
push_back
(
"HEAD "
+
head
);
Str
power
=
comp
.
find
(
fields
.
power
)
->
second
;
if
(
!
power
.
empty
())
vec
.
push_back
(
"POWER "
+
power
);
Str
pattern
=
comp
.
find
(
fields
.
pattern
)
->
second
;
if
(
!
pattern
.
empty
())
vec
.
push_back
(
"PATTERN "
+
pattern
);
Str
speed
=
comp
.
find
(
fields
.
speed
)
->
second
;
if
(
!
speed
.
empty
())
vec
.
push_back
(
"SPEED "
+
speed
);
// 水池数据
CivItem
tankNode
;
tankNode
.
push_back
(
id
);
tankNode
.
push_back
(
node1
);
tankNode
.
push_back
(
node2
);
// 构建参数
char
param
[
128
]
=
" "
;
int
total
=
vec
.
size
();
for
(
int
i
=
0
;
i
<
total
;
i
++
)
{
strcat_s
(
param
,
vec
[
i
].
c_str
());
}
tankNode
.
push_back
(
param
);
pumpItems
.
push_back
(
tankNode
);
}
inp
.
writeComponet
(
pumpItems
,
_PUMPS
);
}
else
if
(
TANK
==
table
)
// 水池
{
Componets
comps
=
mDbConn
->
getComponets
(
table
);
// ; ID Elevation InitLevel MinLevel MaxLevel Diameter MinVol VolCurve
TanksFields
tkfFileds
;
Civitems
nodeCoordItems
;
Civitems
tankItems
;
int
total
=
comps
.
size
();
for
(
int
i
=
0
;
i
<
total
;
i
++
)
{
Componet
comp
=
comps
[
i
];
Str
id
=
comp
.
find
(
tkfFileds
.
ID
)
->
second
;
Str
elevation
=
comp
.
find
(
tkfFileds
.
Elev
)
->
second
;
Str
initLevel
=
comp
.
find
(
tkfFileds
.
InitLevel
)
->
second
;
Str
minLevel
=
comp
.
find
(
tkfFileds
.
MinLevel
)
->
second
;
Str
maxLevel
=
comp
.
find
(
tkfFileds
.
MaxLevel
)
->
second
;
Str
diametor
=
comp
.
find
(
tkfFileds
.
Diameter
)
->
second
;
Str
minVol
=
comp
.
find
(
tkfFileds
.
MinVol
)
->
second
;
Str
x_coord
=
comp
.
find
(
tkfFileds
.
X_Coord
)
->
second
;
Str
y_coord
=
comp
.
find
(
tkfFileds
.
Y_Coord
)
->
second
;
// 水池数据
CivItem
tankNode
;
tankNode
.
push_back
(
id
);
tankNode
.
push_back
(
elevation
);
tankNode
.
push_back
(
initLevel
);
tankNode
.
push_back
(
minLevel
);
tankNode
.
push_back
(
maxLevel
);
tankNode
.
push_back
(
diametor
);
tankNode
.
push_back
(
minVol
);
tankItems
.
push_back
(
tankNode
);
// 2, 节点坐标
CivItem
nodeCoordItem
;
nodeCoordItem
.
push_back
(
id
);
nodeCoordItem
.
push_back
(
x_coord
);
nodeCoordItem
.
push_back
(
y_coord
);
nodeCoordItems
.
push_back
(
nodeCoordItem
);
}
inp
.
writeComponet
(
nodeCoordItems
,
_COORDS
);
inp
.
writeComponet
(
tankItems
,
_TANKS
);
}
else
{
// 阀门
//;ID Node1 Node2 Diameter Type Setting MinorLoss
Componets
comps
=
mDbConn
->
getLikelyPipes
(
table
);
ValvesFields
fields
;
Civitems
vavleItems
;
int
total
=
comps
.
size
();
for
(
int
i
=
0
;
i
<
total
;
i
++
)
{
Componet
comp
=
comps
[
i
];
Str
id
=
comp
.
find
(
fields
.
ID
)
->
second
;
Str
node1
=
comp
.
find
(
fields
.
node1
)
->
second
;
Str
node2
=
comp
.
find
(
fields
.
node2
)
->
second
;
Str
diametor
=
comp
.
find
(
fields
.
Diameter
)
->
second
;
Str
label
=
comp
.
find
(
fields
.
type
)
->
second
;
Str
typeSeting
=
comp
.
find
(
fields
.
setting
)
->
second
;
Str
minorLoss
=
comp
.
find
(
fields
.
minorLoss
)
->
second
;
// 阀门数据
CivItem
vavleNode
;
vavleNode
.
push_back
(
id
);
vavleNode
.
push_back
(
node1
);
vavleNode
.
push_back
(
node2
);
vavleNode
.
push_back
(
diametor
);
vavleNode
.
push_back
(
label
);
vavleNode
.
push_back
(
typeSeting
);
vavleNode
.
push_back
(
minorLoss
);
vavleItems
.
push_back
(
vavleNode
);
}
inp
.
writeComponet
(
vavleItems
,
_VALVES
);
}
}
void
CivInpBuilder
::
buildNode
()
{
}
void
CivInpBuilder
::
buildPipe
()
{
}
void
CivInpBuilder
::
buildTank
()
{
}
void
CivInpBuilder
::
buildVavle
()
{
}
void
CivInpBuilder
::
buildPump
()
{
}
void
CivInpBuilder
::
buildReservoir
()
{
}
void
CivInpBuilder
::
buildEmitter
()
{
}
CivNewInp
*
CivInpBuilder
::
getNewInp
()
{
}
\ No newline at end of file
pandaAnalysis/CivInpBuilder.h
0 → 100644
View file @
e7a421fe
#ifndef _CIVINPEXPOTER_H
#define _CIVINPEXPOTER_H
#include "CivPgConn.h"
#include "CivInp.h"
#include "CivNewInp.h"
/**
* 抽象建造者
*/
class
CivAbsBuilder
{
public
:
virtual
void
buildNode
()
=
0
;
virtual
void
buildPipe
()
=
0
;
virtual
void
buildTank
()
=
0
;
virtual
void
buildVavle
()
=
0
;
virtual
void
buildPump
()
=
0
;
virtual
void
buildReservoir
()
=
0
;
virtual
void
buildEmitter
()
=
0
;
virtual
CivNewInp
*
getNewInp
()
=
0
;
};
/**
* 导出inp文件类
*/
class
CivInpBuilder
:
public
CivAbsBuilder
{
public
:
CivInpBuilder
();
CivInpBuilder
(
CivDbConn
*
dbConn
);
~
CivInpBuilder
();
// 注册数据库连接
void
registDb
(
CivDbConn
*
dbConn
);
/**
*@brief 导出inp文件
*/
bool
exportInp
(
char
*
fileName
);
/**
*@brief 解析表字段名,按顺序写入
*@table:表
*@inp: inp文件对象
*/
void
assemble
(
StrQuote
table
,
CivInp
&
inp
);
virtual
void
buildNode
();
virtual
void
buildPipe
();
virtual
void
buildTank
()
;
virtual
void
buildVavle
();
virtual
void
buildPump
();
virtual
void
buildReservoir
()
;
virtual
void
buildEmitter
();
virtual
CivNewInp
*
getNewInp
();
private
:
CivDbConn
*
mDbConn
;
};
#endif // !_CIVINPEXPOTER_H
pandaAnalysis/CivInpExporter.cpp
deleted
100644 → 0
View file @
15675189
#include "CivInpExporter.h"
CivInpExporter
::
CivInpExporter
()
{
}
CivInpExporter
::~
CivInpExporter
()
{
}
\ No newline at end of file
pandaAnalysis/CivInpExporter.h
deleted
100644 → 0
View file @
15675189
#ifndef _CIVINPEXPOTER_H
#define _CIVINPEXPOTER_H
/**
* inpļ
*/
class
CivInpExporter
{
public
:
CivInpExporter
();
~
CivInpExporter
();
private
:
};
#endif // !_CIVINPEXPOTER_H
pandaAnalysis/CivNewInp.h
0 → 100644
View file @
e7a421fe
#ifndef CIVNEWINP_H
#define CIVNEWINP_H
#include "CivAssembly.h"
class
CivNewInp
{
public
:
CivNewInp
();
~
CivNewInp
();
private
:
//
CivNode
mNode
;
// 节点
CivPipe
mPipes
;
// 管线
CivTank
mTanks
;
// 水池
CivValve
mValves
;
// 阀门
CivPumps
mPumps
;
// 水泵
CivEmitters
mEmitters
;
// 喷嘴
};
#endif // !CIVNEWINP_H
pandaAnalysis/pandaAnalysis.vcxproj
View file @
e7a421fe
...
...
@@ -153,18 +153,19 @@
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile
Include=
"..\pandaDbManager\CivCommonUtils.cpp"
/>
<ClCompile
Include=
"Civ
Component
.cpp"
/>
<ClCompile
Include=
"Civ
Assembly
.cpp"
/>
<ClCompile
Include=
"CivHydrCalc.cpp"
/>
<ClCompile
Include=
"CivHydrFuncInter.cpp"
/>
<ClCompile
Include=
"CivInp.cpp"
/>
<ClCompile
Include=
"CivInp
Export
er.cpp"
/>
<ClCompile
Include=
"CivInp
Build
er.cpp"
/>
</ItemGroup>
<ItemGroup>
<ClInclude
Include=
"Civ
Component
.h"
/>
<ClInclude
Include=
"Civ
Assembly
.h"
/>
<ClInclude
Include=
"CivHydrCalc.h"
/>
<ClInclude
Include=
"CivHydrFuncInter.h"
/>
<ClInclude
Include=
"CivInp.h"
/>
<ClInclude
Include=
"CivInpExporter.h"
/>
<ClInclude
Include=
"CivInpBuilder.h"
/>
<ClInclude
Include=
"CivNewInp.h"
/>
</ItemGroup>
<Import
Project=
"$(VCTargetsPath)\Microsoft.Cpp.targets"
/>
<ImportGroup
Label=
"ExtensionTargets"
>
...
...
pandaAnalysis/pandaAnalysis.vcxproj.filters
View file @
e7a421fe
...
...
@@ -21,16 +21,16 @@
<ClCompile
Include=
"CivInp.cpp"
>
<Filter>
源文件
</Filter>
</ClCompile>
<ClCompile
Include=
"CivComponent.cpp"
>
<Filter>
源文件
</Filter>
</ClCompile>
<ClCompile
Include=
"CivHydrFuncInter.cpp"
>
<Filter>
源文件
</Filter>
</ClCompile>
<ClCompile
Include=
"..\pandaDbManager\CivCommonUtils.cpp"
>
<Filter>
源文件
</Filter>
</ClCompile>
<ClCompile
Include=
"CivInpExporter.cpp"
>
<ClCompile
Include=
"CivAssembly.cpp"
>
<Filter>
源文件
</Filter>
</ClCompile>
<ClCompile
Include=
"CivInpBuilder.cpp"
>
<Filter>
源文件
</Filter>
</ClCompile>
</ItemGroup>
...
...
@@ -41,13 +41,16 @@
<ClInclude
Include=
"CivInp.h"
>
<Filter>
头文件
</Filter>
</ClInclude>
<ClInclude
Include=
"Civ
Component
.h"
>
<ClInclude
Include=
"Civ
HydrFuncInter
.h"
>
<Filter>
头文件
</Filter>
</ClInclude>
<ClInclude
Include=
"CivHydrFuncInter.h"
>
<ClInclude
Include=
"CivAssembly.h"
>
<Filter>
头文件
</Filter>
</ClInclude>
<ClInclude
Include=
"CivInpBuilder.h"
>
<Filter>
头文件
</Filter>
</ClInclude>
<ClInclude
Include=
"Civ
InpExporter
.h"
>
<ClInclude
Include=
"Civ
NewInp
.h"
>
<Filter>
头文件
</Filter>
</ClInclude>
</ItemGroup>
...
...
pandaDbManager/CivPgConn.h
View file @
e7a421fe
...
...
@@ -4,10 +4,11 @@
#include "CivDbConn.h"
#include <libpq-fe.h>
#define DBEXPORT __declspec(dllexport)
/**
postgress 数据库
*/
class
CivPgConn
:
public
CivDbConn
class
DBEXPORT
CivPgConn
:
public
CivDbConn
{
public
:
CivPgConn
(
char
*
uri
);
...
...
pandaDbManager/pandaDbManager.vcxproj
View file @
e7a421fe
...
...
@@ -151,7 +151,8 @@
<PostBuildEvent>
<Command>
copy CivDbConnection.h $(OutDir)..\include /y
copy CivTypes.h $(OutDir)..\include /y
</Command>
copy CivPgConn.h $(OutDir)..\include /y
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment