gusucode.com > target工具箱matlab源码程序 > target/foundation/blks/masks/byteunpack_callback.m

    function [dimensionsout, datatypesout]= byteunpack_callback(dimensions, datatypes)

% MXPCREADM - Mask Initialization function for Broadcast Memory ReadM driver block
% Copyright 1996-2011 The MathWorks, Inc.

if ~isa(dimensions,'cell')
  DAStudio.error('TARGETFOUNDATION:blocks:byteunpackCallbackPortDimensionsNotCell');
end

if ~isa(datatypes,'cell')
  DAStudio.error('TARGETFOUNDATION:blocks:byteunpackCallbackDataTypesNotCell');
end

if length(dimensions)~=length(datatypes)
  DAStudio.error('TARGETFOUNDATION:blocks:byteunpackCallbackDimensionMismatch');
end

dimensionsout=[];
datatypesout=[];
for i=1:length(dimensions)
  dimension=dimensions{i};
  if ~isa(dimension,'double')
    DAStudio.error('TARGETFOUNDATION:blocks:byteunpackCallbackDimensionsNotDouble');
  end
  if ((size(dimension, 1) > 1) || (size(dimension, 2) > 2))
    DAStudio.error('TARGETFOUNDATION:blocks:byteunpackCallbackDimensionsNotRight');
  end
  if length(dimension)==1
    dimensionsout=[dimensionsout,dimension,0];
  else
    dimensionsout=[dimensionsout,dimension];
  end
  datatype=datatypes{i};
  if ~isa(datatype,'char')
    DAStudio.error('TARGETFOUNDATION:blocks:byteunpackCallbackDataTypeNotChar');
  end
  if strcmp(datatype,'double')
     dtypeout=0;
  elseif strcmp(datatype,'single')
    dtypeout=1;
  elseif strcmp(datatype,'int8')
    dtypeout=2;
  elseif strcmp(datatype,'uint8')
    dtypeout=3;
  elseif strcmp(datatype,'int16')
    dtypeout=4;
  elseif strcmp(datatype,'uint16')
    dtypeout=5;
  elseif strcmp(datatype,'int32')
    dtypeout=6;
  elseif strcmp(datatype,'uint32')
    dtypeout=7;
  elseif strcmp(datatype,'boolean')
    dtypeout=8;
  else
    DAStudio.error('TARGETFOUNDATION:blocks:byteunpackCallbackUnsupportedDataType');
  end
  datatypesout=[datatypesout,dtypeout];
end