diff --git a/main.py b/main.py index 40b44a8..2fd0f9a 100644 --- a/main.py +++ b/main.py @@ -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)