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

    function curve = getCurve(obj, identifier)
%GETCURVE  Get curve from calibration.
%
%  CURVE = GETCURVE(CAL,IDENTIFIER) gets the curve with identifier
%  IDENTIFIER from the calibration CAL.
%
%  See also GETAXIS, GETVALUE, GETMAP, GETITEM.

%  Copyright 2000-2010 The MathWorks, Inc.


% Get matching interface(s)
iCurve = obj.pGetICurve(identifier);

% Construct object(s)
nCurves = numel(iCurve);
curve = mbcutils.handleArray(nCurves, 1); % preallocate
for i = 1:nCurves,
    try
        curve(i) = iCurve2Curve(iCurve(i), obj);
    catch ME
        error(message('mbc:calibrationdata:visionv2interface:FileReadError1', phGetShortIdentifier( obj, iCurve( i ).FullDataItemName ), ME.message));
    end
end

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

function curve = iCurve2Curve(iCurve, obj)

% Construct curve object
curve = calibrationdata.curve;
curve.Identifier = phGetShortIdentifier(obj, iCurve.FullDataItemName);
curve.Units = iCurve.YAxisEngineeringUnits;
curve.Format = sprintf('%%.%df', iCurve.YAxisDecimalPlaces');
curve.UpperLimit = iCurve.YAxisMaximumLimit;
curve.LowerLimit = iCurve.YAxisMinimumLimit;
curve.Value = transpose(iCurve.YAxisProposedValues);
curve.CalibrationInterface = obj;
curve.XAxisIdentifier = obj.phGetIdentifierWithAddress(iCurve.XAxisName, iCurve.XAxisBaseAddress);

% The following properties are not fully supported: Description, DataType