get_device_properties(self, dev, class_prop, dev_prop) -> None

                    Returns the device properties

                Parameters :
                    - dev : (DeviceImpl) the device object
                    - class_prop : (dict<str, obj>) the class properties
                    - dev_prop : [in,out] (dict<str, None>) the device property names

                Return     : None

def get_device_properties(self, dev, class_prop, dev_prop):
        """
            get_device_properties(self, dev, class_prop, dev_prop) -> None

                    Returns the device properties

                Parameters :
                    - dev : (DeviceImpl) the device object
                    - class_prop : (dict<str, obj>) the class properties
                    - dev_prop : [in,out] (dict<str, None>) the device property names

                Return     : None"""
        #    initialize default properties
        if dev_prop == {} or not Util._UseDb:
            return

        # Call database to get properties
        props = self.db.get_device_property(dev.get_name(), list(dev_prop.keys()))
        #    if value defined in database, store it
        for name in dev_prop:
            prop_value = props[name]
            if len(prop_value):
                data_type = self.get_property_type(name, dev_prop)
                values = self.stringArray2values(prop_value, data_type)
                if not self.is_empty_seq(values):
                    self.set_property_values(name, dev_prop, values)
                else:
                    #    Try to get it from class property
                    values = self.get_property_values(name, class_prop)
                    if not self.is_empty_seq(values):
                        if not self.is_seq(values):
                            values = [values]
                        data_type = self.get_property_type(name, class_prop)
                        values = self.stringArray2values(values, data_type)
                        if not self.is_empty_seq(values):
                            self.set_property_values(name, dev_prop, values)
            else:
                #    Try to get it from class property
                values = self.get_property_values(name, class_prop)
                if not self.is_empty_seq(values):
                    if not self.is_seq(values):
                        values = [values]
                    data_type = self.get_property_type(name, class_prop)
                    values = self.stringArray2values(values, data_type)
                    if not self.is_empty_seq(values):
                        self.set_property_values(name, dev_prop, values)