Add SCADA API

This commit is contained in:
DingZQ
2023-03-21 19:55:30 +08:00
parent 5eb414d5e7
commit da4afe4a92

95
main.py
View File

@@ -1372,6 +1372,101 @@ async def fastapi_set_backdrop_properties(network: str, req: Request) -> ChangeS
props = await req.json()
return set_backdrop(network, ChangeSet(props))
############################################################
# scada_device 29
############################################################
@app.get('/getscadadeviceschema/')
async def fastapi_get_scada_device_schema(network: str) -> dict[str, dict[str, Any]]:
return get_scada_device_schema(network)
@app.get('/getscadadevice/')
async def fastapi_get_scada_device(network: str, id: str) -> dict[str, Any]:
return get_scada_device(network, id)
@app.post('/setscadadevice/')
async def fastapi_set_scada_device(network: str, req: Request) -> ChangeSet:
props = await req.json()
return set_scada_device(network, ChangeSet(props))
@app.post('/addscadadevice/')
async def fastapi_add_scada_device(network: str, req: Request) -> ChangeSet:
props = await req.json()
return add_scada_device(network, ChangeSet(props))
@app.post('/deletescadadevice/')
async def fastapi_delete_scada_device(network: str, req: Request) -> ChangeSet:
props = await req.json()
return delete_scada_device(network, ChangeSet(props))
@app.post('/cleanscadadevice/')
async def fastapi_clean_scada_device(network: str) -> ChangeSet:
return clean_scada_device(network)
############################################################
# scada_device_data 30
############################################################
@app.get('/getscadadevicedataschema/')
async def fastapi_get_scada_device_data_schema(network: str) -> dict[str, dict[str, Any]]:
return get_scada_device_data_schema(network)
@app.get('/getscadadevicedata/')
async def fastapi_get_scada_device_data(network: str, device_id: str) -> dict[str, Any]:
return get_scada_device_data(network, device_id)
# example: set_scada_device_data(p, ChangeSet({'device_id': 'sm_device', 'data': [{ 'time': '2023-02-10 00:02:22', 'value': 100.0 }, { 'time': '2023-02-10 00:03:22', 'value': 200.0 }]}))
# time format must be 'YYYY-MM-DD HH:MM:SS'
@app.post('/setscadadevicedata/')
async def fastapi_set_scada_device_data(network: str, req: Request) -> ChangeSet:
props = await req.json()
return set_scada_device_data(network, ChangeSet(props))
# example: add_scada_device_data(p, ChangeSet({'device_id': 'sm_device', 'time': '2023-02-10 00:02:22', 'value': 100.0}))
@app.post('/addscadadevicedata/')
async def fastapi_add_scada_device_data(network: str, req: Request) -> ChangeSet:
props = await req.json()
return add_scada_device_data(network, ChangeSet(props))
# example: delete_scada_device_data(p, ChangeSet({'device_id': 'sm_device', 'time': '2023-02-12 00:02:22'}))
@app.post('/deletescadadevicedata/')
async def fastapi_delete_scada_device_data(network: str, req: Request) -> ChangeSet:
props = await req.json()
return delete_scada_device_data(network, ChangeSet(props))
@app.post('/cleanscadadevicedata/')
async def fastapi_clean_scada_device_data(network: str) -> ChangeSet:
return clean_scada_device_data(network)
############################################################
# scada_element 31
############################################################
@app.get('/getscadadevicedataschema/')
async def fastapi_get_scada_element_schema(network: str) -> dict[str, dict[str, Any]]:
return get_scada_element_schema(network)
@app.get('/getscadaelement/')
async def fastapi_get_scada_element(network: str, id: str) -> dict[str, Any]:
return get_scada_element(network, id)
@app.post('/setscadaelement/')
async def fastapi_set_scada_element(network: str, req: Request) -> ChangeSet:
props = await req.json()
return set_scada_element(network, ChangeSet(props))
@app.post('/addscadaelement/')
async def fastapi_add_scada_element(network: str, req: Request) -> ChangeSet:
props = await req.json()
return add_scada_element(network, ChangeSet(props))
@app.post('/deletescadaelement/')
async def fastapi_delete_scada_element(network: str, req: Request) -> ChangeSet:
props = await req.json()
return delete_scada_element(network, ChangeSet(props))
@app.post('/cleanscadaelement/')
async def fastapi_clean_scada_element(network: str) -> ChangeSet:
return clean_scada_element(network)
# inp file
@app.post("/uploadinp/", status_code=status.HTTP_200_OK)