diff --git a/api/s38_scada_info.py b/api/s38_scada_info.py new file mode 100644 index 0000000..a225f9a --- /dev/null +++ b/api/s38_scada_info.py @@ -0,0 +1,37 @@ +from .database import * +from .s0_base import * +from .s24_coordinates import * + + +def get_scada_info_schema(name: str) -> dict[str, dict[str, Any]]: + return { 'id' : {'type': 'str' , 'optional': False , 'readonly': True }, + 'x' : {'type': 'float' , 'optional': False , 'readonly': False}, + 'y' : {'type': 'float' , 'optional': False , 'readonly': False}, + 'elevation' : {'type': 'float' , 'optional': False , 'readonly': False}, + 'links' : {'type': 'str_list' , 'optional': False , 'readonly': True } } + + +def get_scada_info(name: str, id: str) -> dict[str, Any]: + si = try_read(name, f"select * from scada_info where id = '{id}'") + if si is None: + return {} + + d = {} + d['id'] = str(si['id']) + d['type'] = str(si['type']) + d['x'] = float(si['x']) + d['y'] = float(si['y']) + d['api_query_id'] = str(si['api_query_id']) + + return d + +def get_all_scada_info(name: str) -> list[dict[str, Any]]: + sis = try_read(name, f"select * from scada_info") + if sis is None: + return [] + + d = [] + for si in sis: + d.append({ 'id': str(si['id']), 'type': str(si['type']), 'x': float(si['x']), 'y': float(si['y']), 'api_query_id': str(si['api_query_id']) }) + + return d \ No newline at end of file