diff --git a/tangostationcontrol/tangostationcontrol/toolkit/archiver_util.py b/tangostationcontrol/tangostationcontrol/toolkit/archiver_util.py index 2929dca36608552955953f2947c36c137948b7c9..0d5e8f4d992170016bae7405c204b785c8cb8573 100644 --- a/tangostationcontrol/tangostationcontrol/toolkit/archiver_util.py +++ b/tangostationcontrol/tangostationcontrol/toolkit/archiver_util.py @@ -7,6 +7,20 @@ from tango import DeviceProxy, CmdArgType import re +""" +A dictionary whose keys are the Tango datatypes mapping, and the values are the relative byte size +See reference https://tango-controls.readthedocs.io/en/latest/development/advanced/reference.html#tango-data-type +and https://www.tutorialspoint.com/cplusplus/cpp_data_types.htm +TODO: manage String attributes +""" +DATATYPES_SIZE_DICT = {CmdArgType.DevBoolean:1, CmdArgType.DevShort:2, CmdArgType.DevLong:8, CmdArgType.DevFloat:4, CmdArgType.DevDouble:8, + CmdArgType.DevUShort:2, CmdArgType.DevULong:8, CmdArgType.DevString:20, CmdArgType.DevVarCharArray:None, CmdArgType.DevVarShortArray:None, + CmdArgType.DevVarLongArray: None,CmdArgType.DevVarFloatArray:None, CmdArgType.DevVarDoubleArray:None, CmdArgType.DevVarUShortArray:None, + CmdArgType.DevVarULongArray: None, CmdArgType.DevVarStringArray: None, CmdArgType.DevVarLongStringArray: None, CmdArgType.DevVarDoubleStringArray:None, + CmdArgType.DevState:3, CmdArgType.ConstDevString:None, CmdArgType.DevVarBooleanArray:None, CmdArgType.DevUChar:1, CmdArgType.DevLong64:8, + CmdArgType.DevULong64:8,CmdArgType.DevVarLong64Array:None,CmdArgType.DevVarULong64Array:None, CmdArgType.DevInt:4,CmdArgType.DevEncoded:None, + CmdArgType.DevEnum:None, CmdArgType.DevPipeBlob:None} + def get_db_config(device_name:str) -> dict: """ Retrieve the DB credentials from the Tango properties of Configuration Manager or EventSubscribers @@ -105,28 +119,11 @@ def retrieve_attributes_from_wildcards(device_name: str, matching_list: list): matched_list.append(a) return matched_list -def DATATYPES_SIZE_DICT() -> dict: - """ - Return a dictionary whose keys are the Tango datatypes mapping, and the values are the relative byte size - See reference https://tango-controls.readthedocs.io/en/latest/development/advanced/reference.html#tango-data-type - and https://www.tutorialspoint.com/cplusplus/cpp_data_types.htm - TODO: manage String attributes - """ - datatypes_dict = {CmdArgType.DevBoolean:1, CmdArgType.DevShort:2, CmdArgType.DevLong:8, CmdArgType.DevFloat:4, CmdArgType.DevDouble:8, - CmdArgType.DevUShort:2, CmdArgType.DevULong:8, CmdArgType.DevString:20, CmdArgType.DevVarCharArray:None, CmdArgType.DevVarShortArray:None, - CmdArgType.DevVarLongArray: None,CmdArgType.DevVarFloatArray:None, CmdArgType.DevVarDoubleArray:None, CmdArgType.DevVarUShortArray:None, - CmdArgType.DevVarULongArray: None, CmdArgType.DevVarStringArray: None, CmdArgType.DevVarLongStringArray: None, CmdArgType.DevVarDoubleStringArray:None, - CmdArgType.DevState:3, CmdArgType.ConstDevString:None, CmdArgType.DevVarBooleanArray:None, CmdArgType.DevUChar:1, CmdArgType.DevLong64:8, - CmdArgType.DevULong64:8,CmdArgType.DevVarLong64Array:None,CmdArgType.DevVarULong64Array:None, CmdArgType.DevInt:4,CmdArgType.DevEncoded:None, - CmdArgType.DevEnum:None, CmdArgType.DevPipeBlob:None} - return datatypes_dict - def get_size_from_datatype(datatype:int) -> int: """ Return the number of bytes for a given Tango datatype """ - datatypes_dict = DATATYPES_SIZE_DICT() try : - return datatypes_dict[datatype] + return DATATYPES_SIZE_DICT[datatype] except IndexError: return 1