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

    function setMap(obj, map)
%SETMAP  Set map in calibration.
%
%  SETMAP(CAL,MAP) sets the map MAP in the calibration CAL.
%
%  See also SETAXIS, SETVALUE, SETCURVE, SETITEM.

%  Copyright 2004-2005 The MathWorks, Inc.


% Get matching interface
iMap = obj.pGetIMap(map.Identifier);

% Check that map properties match
if ~strcmp(map.Units, iMap.ZAxisEngineeringUnits)
    error(message('mbc:calibrationdata:visionv2interface:InvalidPropertyValue'))
elseif map.UpperLimit ~= iMap.ZAxisMaximumLimit
    error(message('mbc:calibrationdata:visionv2interface:InvalidPropertyValue10'))
elseif map.LowerLimit ~= iMap.ZAxisMinimumLimit
    error(message('mbc:calibrationdata:visionv2interface:InvalidPropertyValue11'))
elseif ~strcmp(map.XAxisIdentifier, obj.phGetIdentifierWithAddress(iMap.XAxisName, iMap.XAxisBaseAddress))
    error(message('mbc:calibrationdata:visionv2interface:InvalidPropertyValue12'))
elseif ~strcmp(map.YAxisIdentifier, obj.phGetIdentifierWithAddress(iMap.YAxisName, iMap.YAxisBaseAddress))
    error(message('mbc:calibrationdata:visionv2interface:InvalidPropertyValue13'))
elseif ~isequal(size(map.Value), size(transpose(iMap.ZAxisProposedValues)))
    error(message('mbc:calibrationdata:visionv2interface:InvalidPropertyValue14'))
end

% Assign in value (interface requires double precision)
iMap.ZAxisProposedValues = transpose(double(map.Value));

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