www.gusucode.com > private工具箱matlab源码程序 > private/code_machine_debug_initialization.m

    function code_machine_debug_initialization(file)

		global gMachineInfo gDataInfo gTargetInfo
      
      v1=gMachineInfo.machineName;
      v2 = gMachineInfo.targetName;
      v3 = gTargetInfo.codingLibrary;
      v4 = length(gMachineInfo.charts);
      v5 = length(gMachineInfo.machineData);
      v6 = length(gMachineInfo.machineEvents);
      v7 = length(gMachineInfo.machineDataWithChangeEvent);
fprintf(file,'	%s = sf_debug_initialize_machine(debugInstance,"%s","%s",%.17g,%.17g,%.17g,%.17g,%.17g);\n',gMachineInfo.machineNumberVariableName,v1,v2,v3,v4,v5,v6,v7);
		index = 0;
		for data = gMachineInfo.machineDataWithChangeEvent
		   v1 = gMachineInfo.machineNumberVariableName;
		   v2 = index;
		   v3 = sf('get',data,'data.number');
fprintf(file,'	sf_debug_set_number_of_data_with_change_event_for_machine(%s,%.17g,%.17g);\n',v1,v2,v3);
			index = index+1;
		end
		v1 = gMachineInfo.machineNumberVariableName;
		v2 = gMachineInfo.machineEventThreshold;
		v3 = gMachineInfo.machineDataChangeEventThreshold;
fprintf(file,'	sf_debug_set_machine_event_thresholds(debugInstance,%s,%.17g,%.17g);\n',v1,v2,v3);
      v1 = gMachineInfo.machineNumberVariableName;
      v2 = gMachineInfo.machineDataThreshold;
fprintf(file,'	sf_debug_set_machine_data_thresholds(debugInstance,%s,%.17g);\n',v1,v2);
		for dataNumber = [gMachineInfo.localDataNumbers,gMachineInfo.exportedDataNumbers,gMachineInfo.importedDataNumbers,gMachineInfo.constantDataNumbers,gMachineInfo.parameterDataNumbers]
			data = gDataInfo.dataList(dataNumber+1);
			dataSizeArray = gDataInfo.dataSizeArrays{dataNumber+1};
			v1 = gMachineInfo.machineNumberVariableName;
			v2 = dataNumber;
			v3 = sf('get',data,'data.scope');
fprintf(file,'	sf_debug_set_machine_data_scope(debugInstance,%s,%.17g,%.17g);\n',v1,v2,v3);
         v1 = gMachineInfo.machineNumberVariableName;
			v2 = dataNumber;
			v3 = sf('get',data,'data.name');
fprintf(file,'   sf_debug_set_machine_data_name(debugInstance,%s,%.17g,"%s");\n',v1,v2,v3);
			coderDataType = sf('CoderDataType',data);
			if(strcmp(coderDataType,'fixpt'))
				[fixptExponent,fixptSlope,fixptBias,~,~] =...
					sf('FixPtProps',data);
				isFixedPoint = '1';
				biasStr = sprintf('%.17g',fixptBias);
				slopeStr = sprintf('%.17g',fixptSlope);
				exponentStr = sprintf('%d',fixptExponent);
			else
				isFixedPoint = '0';
				biasStr = '0.0';
				slopeStr = '1.0';
				exponentStr = '0';
			end				
			v1 = gMachineInfo.machineNumberVariableName;
			v2 = dataNumber;
			v3 = gDataInfo.sfDataTypes{dataNumber+1};
            dataParsedInfo = sf('DataParsedInfo', data);
			v4 = dataParsedInfo.complexity;
			v5 = isFixedPoint;
			v6 = biasStr;
			v7 = slopeStr;
			v8 = exponentStr;
fprintf(file,'	sf_debug_set_machine_data_type(debugInstance,%s,%.17g,%s,%.17g,%s,%s,%s,%s);\n',v1,v2,v3,v4,v5,v6,v7,v8);
			if isempty(dataSizeArray)
fprintf(file,'	sf_debug_set_machine_data_size(debugInstance,%s,%.17g,0,NULL);\n',gMachineInfo.machineNumberVariableName,dataNumber);
fprintf(file,'	sf_debug_set_machine_data_value_ptr(debugInstance,%s,%.17g,NULL);\n',gMachineInfo.machineNumberVariableName,dataNumber);
			else
fprintf(file,'	{\n');
fprintf(file,'		unsigned int dimVector[%.17g];\n',length(dataSizeArray));
				zeroIndexString = '';
				for i=0:length(dataSizeArray)-1
					zeroIndexString = ['[0]',zeroIndexString]; %#ok<AGROW>
fprintf(file,'		dimVector[%.17g]= %.17g;\n',i,dataSizeArray(i+1));
				end
fprintf(file,'		sf_debug_set_machine_data_size(debugInstance,%s,%.17g,%.17g,&(dimVector[0]));\n',gMachineInfo.machineNumberVariableName,dataNumber,length(dataSizeArray));
fprintf(file,'		sf_debug_set_machine_data_value_ptr(debugInstance,%s,%.17g,NULL);\n',gMachineInfo.machineNumberVariableName,dataNumber);
fprintf(file,'	}\n');
			end
		end
		for event = [gMachineInfo.localEvents,gMachineInfo.exportedEvents]
			[eventNumber,eventScope] = sf('get',event,'event.number','event.scope');
fprintf(file,'	sf_debug_set_machine_event_scope(%s,%.17g,%.17g);\n',gMachineInfo.machineNumberVariableName,eventNumber,eventScope);
		end