gusucode.com > wlan工具箱matlab源码程序 > wlan/wlan/+wlan/+internal/validateParam.m

    function validateParam(prmName, prmValue, varargin)
%validateParam Validate WLAN parameters
%
%   Note: This is an internal undocumented function and its API and/or
%   functionality may change in subsequent releases.
%
%   wlan.internal.validateParam(PRMNAME, PRMVALUE, CALLER) validates a
%   parameter value, PRMVALUE, for the parameter name, PRMNAME from the
%   calling fcn, CALLER. For shared messages, the CALLER input can be
%   avoided.
%
%   wlan.internal.validateParam(..., ERRID) validates using the specified
%   error message ID. Only the last part of the full mnemonic needs to be
%   specified to form the "wlan:CALLER:ERRID" ID.
%
%   Examples:
%       wlan.internal.validateParam('NumSTS', numSTSVec, ...
%           'wlanVHTLTFDemodulate')
%
%       wlan.internal.validateParam('chanBW', chanBW, ...
%           'wlanVHTLTFDemodulate', 'myErrID')
%
%   Only supports parameter self validation. No cross-parameter validity as
%   yet.

%   Copyright 2016 The MathWorks, Inc.

%#codegen

narginchk(2,4);
if nargin==2
    caller = 'shared';      % Use the shared catalog, by default
elseif nargin==3
    caller = varargin{1};    
else    % Override the default ID
    caller = varargin{1};    
    errID = varargin{2};
end

switch prmName
    case 'NUMSTS'
        % VHT Number of Space-time streams
        validateattributes(prmValue, {'numeric'}, ...
            {'real','integer','row','>=',1,'<=',8}, caller, prmName);

        if nargin<4    % Default ID
            errID = 'InvalidMUSTS';
        end
        coder.internal.errorIf(~isscalar(prmValue) && ...
            ((length(prmValue) > 4) || any(prmValue > 4) || ...
            sum(prmValue) > 8), ['wlan:shared:' errID], 4, 4, 8);
        
    case 'CHANBW'
        % HT/VHT Channel Bandwidth
        if nargin<4    % Default ID
            errID = 'InvalidChanBW';
        end
        coder.internal.errorIf( ~any(strcmp(prmValue, {'CBW20', ...
            'CBW40', 'CBW80', 'CBW160'})),  ['wlan:shared:' errID]);

    case 'NONHTCHANBW'
        % NonHT/HT/VHT Channel Bandwidth
        if nargin<4    % Default ID
            errID = 'InvalidNonHTChanBW';
        end
        coder.internal.errorIf( ~any(strcmp(prmValue, {'CBW5', 'CBW10', ...
            'CBW20', 'CBW40', 'CBW80', 'CBW160'})), ['wlan:shared:' errID]);        
        
    % Add more parameters
    
    otherwise
        % Do nothing
end
    
end

% [EOF]