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

    function setCurve(obj, curve)
%SETCURVE  Set curve in calibration.
%
%  SETCURVE(CAL,CURVE) sets the curve CURVE in the calibration CAL.
%
%  See also SETAXIS, SETVALUE, SETMAP, SETITEM.

%  Copyright 2004-2005 The MathWorks, Inc.


% Get matching interface
iCurve = obj.pGetICurve(curve.Identifier);

% Check that curve properties match
if ~strcmp(curve.Units, iCurve.YAxisEngineeringUnits)
    error(message('mbc:calibrationdata:visionv2interface:InvalidPropertyValue'))
elseif curve.UpperLimit ~= iCurve.YAxisMaximumLimit
    error(message('mbc:calibrationdata:visionv2interface:InvalidPropertyValue5'))
elseif curve.LowerLimit ~= iCurve.YAxisMinimumLimit
    error(message('mbc:calibrationdata:visionv2interface:InvalidPropertyValue6'))
elseif ~strcmp(curve.XAxisIdentifier, obj.phGetIdentifierWithAddress(iCurve.XAxisName, iCurve.XAxisBaseAddress))
    error(message('mbc:calibrationdata:visionv2interface:InvalidPropertyValue7'))
elseif ~isequal(size(curve.Value), size(iCurve.YAxisProposedValues))
    error(message('mbc:calibrationdata:visionv2interface:InvalidPropertyValue8'))
end

% Assign in value (interface requires double precision)
iCurve.YAxisProposedValues = transpose(double(curve.Value));

% Fire 'CalibrationChanged' event
send(obj, 'CalibrationChanged', handle.EventData(obj, 'CalibrationChanged'));