Add pipe api to tjnetwork

This commit is contained in:
wqy
2022-09-17 10:45:35 +08:00
parent 01225c309c
commit 311f067c22
3 changed files with 80 additions and 4 deletions

View File

@@ -31,4 +31,9 @@ from .s4_tanks import add_tank, delete_tank
from .s4_tanks import get_tank_elevation, get_tank_init_level, get_tank_min_level, get_tank_max_level, get_tank_diameter, get_tank_min_vol, get_tank_vol_curve, get_tank_overflow, get_tank_coord
from .s4_tanks import set_tank_elevation, set_tank_init_level, set_tank_min_level, set_tank_max_level, set_tank_diameter, set_tank_min_vol, set_tank_vol_curve, set_tank_overflow, set_tank_coord
from .s5_pipes import PIPE_STATUS_OPEN, PIPE_STATUS_CLOSED, PIPE_STATUS_CV
from .s5_pipes import add_pipe, delete_pipe
from .s5_pipes import get_pipe_node1, get_pipe_node2, get_pipe_length, get_pipe_diameter, get_pipe_roughness, get_pipe_minor_loss, get_pipe_status
from .s5_pipes import set_pipe_node1, set_pipe_node2, set_pipe_length, set_pipe_diameter, set_pipe_roughness, set_pipe_minor_loss, set_pipe_status
from .s24_coordinates import get_node_coord, set_node_coord

View File

@@ -40,12 +40,12 @@ def delete_pipe(name: str, id: str) -> ChangeSet:
return delete_link(name, PIPE, id, sql, undo_sql)
def get_pipe_ndoe1(name: str, id: str) -> str | None:
def get_pipe_node1(name: str, id: str) -> str | None:
row = _get_pipe(name, id)
return float(row['node1']) if row != None else None
def get_pipe_ndoe2(name: str, id: str) -> str | None:
def get_pipe_node2(name: str, id: str) -> str | None:
row = _get_pipe(name, id)
return float(row['node2']) if row != None else None
@@ -86,6 +86,20 @@ def _set_pipe(name: str, id: str, key: str, key_type: str, value: str, optional:
return utility.update(name, PIPE, 'pipes', 'id', id, key, key_type, row[key], value, optional)
def set_pipe_node1(name: str, id: str, node1: str) -> ChangeSet:
if not is_node(name, node1):
return
return _set_pipe(name, id, 'node1', 'str', str(node1))
def set_pipe_node2(name: str, id: str, node2: str) -> ChangeSet:
if not is_node(name, node2):
return
return _set_pipe(name, id, 'node2', 'str', str(node2))
def set_pipe_length(name: str, id: str, length: float) -> ChangeSet:
return _set_pipe(name, id, 'length', 'float', str(length))

View File

@@ -22,6 +22,10 @@ VALVE = api.VALVE
OVERFLOW_YES = api.OVERFLOW_YES
OVERFLOW_NO = api.OVERFLOW_NO
PIPE_STATUS_OPEN = api.PIPE_STATUS_OPEN
PIPE_STATUS_CLOSED = api.PIPE_STATUS_CLOSED
PIPE_STATUS_CV = api.PIPE_STATUS_CV
############################################################
# project
@@ -207,8 +211,8 @@ def set_reservoir_coord(name: str, reservoir_id: str, x: float, y: float) -> Cha
# tank 4.[TANKS]
############################################################
def add_tank(name: str, tank_id: str, x: float, y: float, elevation: float) -> ChangeSet:
return api.add_tank(name, tank_id, x, y, elevation)
def add_tank(name: str, tank_id: str, x: float, y: float, elevation: float, init_level: float = 0, min_level: float = 0, max_level: float = 0, diameter: float = 0, min_vol: float = 0) -> ChangeSet:
return api.add_tank(name, tank_id, x, y, elevation, init_level, min_level, max_level, diameter, min_vol)
def delete_tank(name: str, tank_id: str) -> ChangeSet:
return api.delete_tank(name, tank_id)
@@ -268,6 +272,59 @@ def set_tank_coord(name: str, tank_id: str, x: float, y: float) -> ChangeSet:
return api.set_tank_coord(name, tank_id, x, y)
############################################################
# pipe 4.[PIPES]
############################################################
def add_pipe(name: str, pipe_id: str, node1: str, node2: str, length: float = 0, diameter: float = 0, roughness: float = 0, minor_loss: float = 0, status: str = PIPE_STATUS_OPEN) -> ChangeSet:
return api.add_pipe(name, pipe_id, node1, node2, length, diameter, roughness, minor_loss, status)
def delete_pipe(name: str, id: str) -> ChangeSet:
return api.delete_pipe(name, id)
def get_pipe_node1(name: str, id: str) -> str | None:
return api.get_pipe_node1(name, id)
def get_pipe_node2(name: str, id: str) -> str | None:
return api.get_pipe_node2(name, id)
def get_pipe_length(name: str, id: str) -> float | None:
return api.get_pipe_length(name, id)
def get_pipe_diameter(name: str, id: str) -> float | None:
return api.get_pipe_diameter(name, id)
def get_pipe_roughness(name: str, id: str) -> float | None:
return api.get_pipe_roughness(name, id)
def get_pipe_minor_loss(name: str, id: str) -> float | None:
return api.get_pipe_minor_loss(name, id)
def get_pipe_status(name: str, id: str) -> str | None:
return api.get_pipe_status(name, id)
def set_pipe_node1(name: str, id: str, node1: str) -> ChangeSet:
return api.set_pipe_node1(name, id, node1)
def set_pipe_node2(name: str, id: str, node2: str) -> ChangeSet:
return api.set_pipe_node2(name, id, node2)
def set_pipe_length(name: str, id: str, length: float) -> ChangeSet:
return api.set_pipe_length(name, id, length)
def set_pipe_diameter(name: str, id: str, diameter: float) -> ChangeSet:
return api.set_pipe_diameter(name, id, diameter)
def set_pipe_roughness(name: str, id: str, roughness: float) -> ChangeSet:
return api.set_pipe_roughness(name, id, roughness)
def set_pipe_minor_loss(name: str, id: str, minor_loss: float) -> ChangeSet:
return api.set_pipe_minor_loss(name, id, minor_loss)
def set_pipe_status(name: str, id: str, status: float) -> ChangeSet:
return api.set_pipe_status(name, id, status)
############################################################
# coordinates 24.[COORDINATES]
############################################################