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]
Ejemplo n.º 2
0
    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