www.gusucode.com > private工具箱matlab源码程序 > private/initialize_data_information.m
function initialize_data_information(dataList,dataNumbers,~) % INITIALIZE_DATA_INFORMATION(DATALIST,DATANUMBERS) % Copyright 1995-2003 The MathWorks, Inc. global gDataInfo %%%% WISH: revamp the data and event numbering scheme such that we dont have to hard code %%%% the maximum number of machine parented data and events. machine parented data and %%%% events can have negative numbers. dataCount = length(dataList); gDataInfo.dataList(dataNumbers+1) = dataList; for i = 1:dataCount dataNumber = dataNumbers(i); data = dataList(i); dataParsedInfo = sf('DataParsedInfo', data); dataSizeArray = dataParsedInfo.size; gDataInfo.dataSizeArrays{dataNumber+1} = dataSizeArray; [gDataInfo.dataTypes{dataNumber+1}... ,gDataInfo.sfDataTypes{dataNumber+1}... ,gDataInfo.slDataTypes{dataNumber+1}] = data_type_conversion(data); end return; function [cDataType,... sfDataType,... slDataType] = data_type_conversion( data) coderDataType = sf('CoderDataType',data); %%TODO: This should be fixed. The container type must match the %%generated C type. The code below does not work for multi-word. if strcmp(coderDataType,'fixpt') [~,~,~,nBits,isSigned] = sf('FixPtProps',data); containerSizes = [8,16,32]; containerBits = min(containerSizes(nBits <= containerSizes)); if isempty(containerBits) containerBits = 0; end if isSigned switch containerBits case 8, coderDataType = 'int8'; case 16, coderDataType = 'int16'; case 32, coderDataType = 'int32'; otherwise, coderDataType = 'double'; end else switch containerBits case 8, coderDataType = 'uint8'; case 16, coderDataType = 'uint16'; case 32, coderDataType = 'uint32'; otherwise, coderDataType = 'double'; end end end cDataType = c_type_from_sf_type(coderDataType,data); sfDataType= sf_type_enum_from_name(coderDataType); slDataType= sl_type_enum_from_name(coderDataType);