www.gusucode.com > mbcdata 工具箱 matlab 源码程序 > mbcdata/@calibrationdata/@visionv2interface/pGetIDevices.m

    function value = pGetIDevices(obj, value)
%PGETIDEVICES  Private get method.

%  Copyright 2004-2005 The MathWorks, Inc.


if isempty(obj.Filename)
    % No devices
    value = [];
else
    % Try to use cache
    if obj.UseCache
        cIDevices = obj.cIDevices;
        if isempty(cIDevices)
            % No information in cache
        elseif any(~ishandle(cIDevices))
            % Stale interfaces
        else
            % Cache looks OK
            value = cIDevices;
            return
        end
    end
    % Look for devices (with strategies)
    iDevices = iGetIDevices(obj.IProject.RootDevice, []);
    obj.cIDevices = iDevices;
    value = iDevices;
end

% -------------------------------------------------------------------------

function devices = iGetIDevices(root, devices)
%IGETIDEVICES  Recursively get names of devices with strategies.

for i = 1:root.Devices.Count,
    thisDevice = root.Devices.Item(i);
    % Only devices with strategies are useful from the calibration
    % perspective.
    if thisDevice.Strategies.Count > 0,
        devices = [devices thisDevice];
    end
    devices = iGetIDevices(thisDevice, devices);
end