dspsafe_set_param.m
上传用户:loeagle
上传日期:2013-03-02
资源大小:1236k
文件大小:2k
源码类别:

通讯编程文档

开发平台:

Matlab

  1. function dspsafe_set_param(varargin)
  2. % DSPSAFE_SET_PARAM DSP Blockset "Safe" set_param function
  3. % Copyright 1995-2000 The MathWorks, Inc.
  4. % $Revision: 1.4 $ $Date: 2001/04/24 17:00:47 $
  5. if nargin < 3
  6.     error('Invalid number of arguments to dspsafe_set_param');
  7. end
  8. % The following try-catch statement will catch all errors except those
  9. % caused by invalid initialization commands in the set_param.  So, if
  10. % an error is caused by an 'Undefined function or variable' in a sub-
  11. % block, this function will pass that error.  Be very careful when
  12. % you use this function.  It is primarily intended to pass a Simulink
  13. % error: Simulink does an eval_params immediately after a set_param, and
  14. % if the eval_params fails on some other parameter, even if the set_param
  15. % went through okay the Simulink process throws an error and reports it
  16. % as a set_param error.  This function is *only* a *temporary*
  17. % work-around until R12FCS, by which time Simulink has promised to fix
  18. % the way they handle set_param.
  19. %
  20. % For further info, see:
  21. %   Geck number G82015 (DSP Blockset geck about using work-around)
  22. %   Geck number G81872 (Simulink geck about mask initialization error)
  23. %
  24. % 04/05/01 - added 'S-function' option for the Random Source block mask
  25. % helper function.  Since the error is in the S-function, if it is a real
  26. % problem, it will be caught again at a later point (e.g, in
  27. % mdlCheckParameters).
  28. try 
  29.     set_param(varargin{1}, varargin{2:length(varargin)});
  30. catch
  31.     ret_err = lasterr;
  32.     if isempty(findstr(ret_err, xlate('Undefined function or variable'))) & ...
  33.           isempty(findstr(ret_err, xlate('S-function')))
  34.         error(ret_err);
  35.     end
  36. end
  37. % [EOF] dspsafe_set_param.m