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

    function value = pSetFilename(obj, value)
%PSETFILENAME  Private set method.

%  Filename should be the name of a writable file.  Filename can be an
%  absolute path, a relative path or a MATLABPATH relative path.  Path
%  resolution uses FOPEN rules.  Filename can also be empty ('').
%
%  The interface obtains a lock to the referenced file.  See PRELEASELOCKS
%  for more information.

%  Copyright 2000-2008 The MathWorks, Inc.


% Check proposed value
[ok, msg] = pIsValidFilename(obj, value);
if ~ok
    error('mbc:calibrationdata:fileinterface:FileReadError', msg)
end

if isempty(value)
    % Calibration is empty
    obj.Calibration = feval(obj.CalibrationType);
elseif exist(value) == 2
    % File exists, try to read
    calibration = feval(obj.CalibrationType);
    try
        pm = obj.ProgressManager;
        pm.Job = 'Load calibration file';
        pm.start;
        calibration = obj.pRead(calibration, value);
        obj.Calibration = calibration;
        pm.stop;
    catch ME
        pm.stop;
        rethrow(ME);
    end
else
    % File does not exist, create
    calibration = feval(obj.CalibrationType);
    try
        pm = obj.ProgressManager;
        pm.Job = 'Create calibration file';
        pm.start;
        obj.pWrite(calibration, value);
        pm.stop;
    catch ME
        pm.stop;
        rethrow(ME);
    end
end