diff --git a/api/__init__.py b/api/__init__.py index 357b078..02f4cc8 100644 --- a/api/__init__.py +++ b/api/__init__.py @@ -121,12 +121,12 @@ from .s26_labels import get_label_schema, get_label, set_label, add_label, delet from .s27_backdrop import get_backdrop_schema, get_backdrop, set_backdrop from .s29_scada_device import SCADA_DEVICE_TYPE_PRESSURE, SCADA_DEVICE_TYPE_DEMAND, SCADA_DEVICE_TYPE_QUALITY, SCADA_DEVICE_TYPE_LEVEL, SCADA_DEVICE_TYPE_FLOW -from .s29_scada_device import get_scada_device_schema, get_scada_device, set_scada_device, add_scada_device, delete_scada_device +from .s29_scada_device import get_scada_device_schema, get_scada_devices, get_scada_device, set_scada_device, add_scada_device, delete_scada_device from .del_cmd import clean_scada_device from .s30_scada_device_data import get_scada_device_data_schema, get_scada_device_data, set_scada_device_data, add_scada_device_data, delete_scada_device_data from .del_cmd import clean_scada_device_data from .s31_scada_element import SCADA_ELEMENT_STATUS_OFFLINE, SCADA_ELEMENT_STATUS_ONLINE -from .s31_scada_element import get_scada_element_schema, get_scada_element, set_scada_element, add_scada_element, delete_scada_element, get_scada_elements +from .s31_scada_element import get_scada_element_schema, get_scada_elements, get_scada_element, set_scada_element, add_scada_element, delete_scada_element from .del_cmd import clean_scada_element diff --git a/api/s29_scada_device.py b/api/s29_scada_device.py index 6dd1dd8..7d48978 100644 --- a/api/s29_scada_device.py +++ b/api/s29_scada_device.py @@ -15,6 +15,14 @@ def get_scada_device_schema(name: str) -> dict[str, dict[str, Any]]: 'sd_type': {'type': 'str', 'optional': True , 'readonly': False}} +def get_scada_devices(name: str) -> list[str]: + result : list[str] = [] + rows = read_all(name, 'select id from scada_device order by id') + for row in rows: + result.append(str(row['id'])) + return result + + def get_scada_device(name: str, id: str) -> dict[str, Any]: sm = try_read(name, f"select * from scada_device where id = '{id}'") if sm == None: diff --git a/api/s31_scada_element.py b/api/s31_scada_element.py index 40e2fda..f9a6e89 100644 --- a/api/s31_scada_element.py +++ b/api/s31_scada_element.py @@ -22,14 +22,6 @@ def _check_model_id(name: str, cs: ChangeSet) -> bool: return is_node(name, model_id) or is_link(name, model_id) -def get_scada_elements(name: str) -> list[str]: - result : list[str] = [] - rows = read_all(name, 'select id from scada_element order by id') - for row in rows: - result.append(str(row['id'])) - return result - - def get_scada_element_schema(name: str) -> dict[str, dict[str, Any]]: return { 'id' : {'type': 'str' , 'optional': False , 'readonly': True }, 'x' : {'type': 'float' , 'optional': False , 'readonly': False}, @@ -39,6 +31,14 @@ def get_scada_element_schema(name: str) -> dict[str, dict[str, Any]]: 'status' : {'type': 'str' , 'optional': True , 'readonly': False} } +def get_scada_elements(name: str) -> list[str]: + result : list[str] = [] + rows = read_all(name, 'select id from scada_element order by id') + for row in rows: + result.append(str(row['id'])) + return result + + def get_scada_element(name: str, id: str) -> dict[str, Any]: sm = try_read(name, f"select * from scada_element where id = '{id}'") if sm == None: diff --git a/test_tjnetwork.py b/test_tjnetwork.py index 9e58d02..7f80fbe 100644 --- a/test_tjnetwork.py +++ b/test_tjnetwork.py @@ -4294,6 +4294,8 @@ class TestApi: p = 'test_scada_device' self.enter(p) + assert get_scada_devices(p) == [] + d = get_scada_device(p, 'd0') assert d == {} @@ -4318,6 +4320,11 @@ class TestApi: assert d['address'] == 'x' assert d['sd_type'] == SCADA_DEVICE_TYPE_PRESSURE + devices = get_scada_devices(p) + assert len(devices) == 2 + assert devices[0] == 'sm0' + assert devices[1] == 'sm1' + delete_scada_device(p, ChangeSet({'id': 'd0'})) d = get_scada_device(p, 'd0') assert d == {} diff --git a/tjnetwork.py b/tjnetwork.py index 0bc9ada..d291b6e 100644 --- a/tjnetwork.py +++ b/tjnetwork.py @@ -851,6 +851,9 @@ def set_backdrop(name: str, cs: ChangeSet) -> ChangeSet: def get_scada_device_schema(name: str) -> dict[str, dict[str, Any]]: return api.get_scada_device_schema(name) +def get_scada_devices(name: str) -> list[str]: + return api.get_scada_devices(name) + def get_scada_device(name: str, id: str) -> dict[str, Any]: return api.get_scada_device(name, id)