Add API to get all valve and pumps

This commit is contained in:
DingZQ
2025-03-29 17:02:30 +08:00
parent 6e3d149503
commit d1687b8464
5 changed files with 62 additions and 2 deletions

View File

@@ -51,11 +51,11 @@ from .s5_pipes import PIPE_STATUS_OPEN, PIPE_STATUS_CLOSED, PIPE_STATUS_CV
from .s5_pipes import get_pipe_schema, add_pipe, get_pipe, set_pipe, get_all_pipes
from .batch_api import delete_pipe_cascade
from .s6_pumps import get_pump_schema, add_pump, get_pump, set_pump
from .s6_pumps import get_pump_schema, add_pump, get_pump, set_pump, get_all_pumps
from .batch_api import delete_pump_cascade
from .s7_valves import VALVES_TYPE_PRV, VALVES_TYPE_PSV, VALVES_TYPE_PBV, VALVES_TYPE_FCV, VALVES_TYPE_TCV, VALVES_TYPE_GPV
from .s7_valves import get_valve_schema, add_valve, get_valve, set_valve
from .s7_valves import get_valve_schema, add_valve, get_valve, set_valve, get_all_valves
from .batch_api import delete_valve_cascade
from .s8_tags import TAG_TYPE_NODE, TAG_TYPE_LINK

View File

@@ -26,6 +26,27 @@ def get_pump(name: str, id: str) -> dict[str, Any]:
d['pattern'] = str(p['pattern']) if p['pattern'] != None else None
return d
# DingZQ, 2025-03-29
def get_all_pumps(name: str) -> list[dict[str, Any]]:
rows = read_all(name, f"select * from pumps")
if rows == None:
return []
result = []
for row in rows:
d = {}
d['id'] = str(row['id'])
d['node1'] = str(row['node1'])
d['node2'] = str(row['node2'])
d['power'] = float(row['power']) if row['power'] != None else None
d['head'] = str(row['head']) if row['head'] != None else None
d['speed'] = float(p['speed']) if p['speed'] != None else None
d['pattern'] = str(p['pattern']) if p['pattern'] != None else None
result.append(d)
return result
class Pump(object):
def __init__(self, input: dict[str, Any]) -> None:

View File

@@ -34,6 +34,27 @@ def get_valve(name: str, id: str) -> dict[str, Any]:
d['minor_loss'] = float(p['minor_loss'])
return d
def get_all_valves(name: str) -> list[dict[str, Any]]:
rows = read_all(name, f"select * from valves")
if rows == None:
return []
result = []
for row in rows:
d = {}
d['id'] = str(row['id'])
d['node1'] = str(row['node1'])
d['node2'] = str(row['node2'])
d['diameter'] = float(row['diameter'])
d['v_type'] = str(row['v_type'])
d['setting'] = str(row['setting'])
d['minor_loss'] = float(row['minor_loss'])
result.append(d)
return result
class Valve(object):
def __init__(self, input: dict[str, Any]) -> None:

10
main.py
View File

@@ -1077,6 +1077,11 @@ async def fastapi_set_pump_node2(network: str, pump: str, node2: str) -> ChangeS
async def fastapi_get_pump_properties(network: str, pump: str) -> dict[str, Any]:
return get_pump(network, pump)
# DingZQ, 2025-03-29
@app.get('/getallpumpproperties/')
async def fastapi_get_all_pump_properties(network: str) -> list[dict[str, Any]]:
return get_all_pumps(network)
@app.post("/setpumpproperties/",response_model=None)
async def fastapi_set_pump_properties(network: str, pump: str, req: Request) -> ChangeSet:
props = await req.json()
@@ -1172,6 +1177,11 @@ async def fastapi_set_valve_setting(network: str, valve: str, setting: float) ->
async def fastapi_get_valve_properties(network: str, valve: str) -> dict[str, Any]:
return get_valve(network, valve)
# DingZQ, 2025-03-29
@app.get('/getallvalveproperties/')
async def fastapi_get_all_valve_properties(network: str) -> list[dict[str, Any]]:
return get_all_valves(network)
@app.post("/setvalveproperties/",response_model=None)
async def fastapi_set_valve_properties(network: str, valve: str, req: Request) -> ChangeSet:
props = await req.json()

View File

@@ -556,6 +556,10 @@ def get_pump_schema(name: str) -> dict[str, dict[str, Any]]:
def get_pump(name: str, id: str) -> dict[str, Any]:
return api.get_pump(name, id)
# DingZQ, 2025-03-29
def get_all_pumps(name: str) -> list[dict[str, Any]]:
return api.get_all_pumps(name)
def set_pump(name: str, cs: ChangeSet) -> ChangeSet:
return api.set_pump(name, cs)
@@ -577,6 +581,10 @@ def get_valve_schema(name: str) -> dict[str, dict[str, Any]]:
def get_valve(name: str, id: str) -> dict[str, Any]:
return api.get_valve(name, id)
# DingZQ, 2025-03-29
def get_all_valves(name: str) -> list[dict[str, Any]]:
return api.get_all_valves(name)
def set_valve(name: str, cs: ChangeSet) -> ChangeSet:
return api.set_valve(name, cs)