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