async def new_enum(server: Union["Server", "Client"], idx: Union[int, ua.NodeId], name: Union[int, ua.QualifiedName], values: List[str]) -> Node: edef = ua.EnumDefinition() counter = 0 for val_name in values: field = ua.EnumField() field.DisplayName = ua.LocalizedText(text=val_name) field.Name = val_name field.Value = counter counter += 1 edef.Fields.append(field) dtype = await server.nodes.enum_data_type.add_data_type(idx, name) await dtype.write_data_type_definition(edef) return dtype
def _get_edef(self, obj): if not obj.definitions: return None edef = ua.EnumDefinition() for field in obj.definitions: f = ua.EnumField() f.Name = field.name if field.dname: f.DisplayName = ua.LocalizedText(Text=field.dname) else: f.DisplayName = ua.LocalizedText(Text=field.name) f.Value = field.value f.Description = ua.LocalizedText(Text=field.desc) edef.Fields.append(f) return edef
async def new_enum(server, idx, name, values): edef = ua.EnumDefinition() edef.Name = name counter = 0 for val_name in values: field = ua.EnumField() field.DisplayName = ua.LocalizedText(text=val_name) field.Name = val_name field.Value = counter counter += 1 edef.Fields.append(field) dtype = await server.nodes.enum_data_type.add_data_type(idx, name) await dtype.write_data_type_definition(edef) return dtype