def parse(self, device_url): device = DeviceProxy(device_url) result = Documentation() result.name = device.info().dev_class result.description = device.description() # FIXME: perhaps need to query the database about the propertiess propertyNames = device.get_property_list('*') for propertyName in propertyNames: result.addproperty(propertyName, 'TODO description', 'TODO type name', 'TODO default') attributeInfos = device.attribute_list_query() for attributeInfo in attributeInfos: result.addattribute(attributeInfo.name, attributeInfo.description, self.translate(attributeInfo.data_type, attributeInfo.data_format)) commandInfos = device.command_list_query() for commandInfo in commandInfos: result.addcommand( commandInfo.cmd_name, 'TODO command description', self.translate_command_argument(commandInfo.in_type), commandInfo.in_type_desc, self.translate_command_argument(commandInfo.out_type), commandInfo.out_type_desc) return [result]
def get_device_properties(self, device_pattern): """ Function retrieves properties of devices consistent with device_pattern :param device_pattern: server name pattern (* available) :type device_pattern: string :return: dictionary with devices as keys and lists of properties as values :rtype: dict """ device_properties = {} device_list = self.get_device_list(device_pattern) for device in device_list: device_proxy = DeviceProxy(device) properties_list = [] for d in device_proxy.get_property_list('*'): x = device_proxy.get_property(d) properties_list.extend(x.items()) if device not in device_properties: device_properties[device] = properties_list return device_properties