示例#1
0
/// ------------------------------------------------------------------------------------------------
/// Method which is called once at the beginning of the job
void 
info::beginJob(Event& evt, Env& env)
{
	MsgLog(name(), debug, "beginJob()" );
	
	p_pvs[pvDetPos].name = "CXI:DS1:MMS:06";
	p_pvs[pvDetPos].desc = "detector position";

	p_pvs[pvLambda].name = "SIOC:SYS0:ML00:AO192";
	p_pvs[pvLambda].desc = "wavelength [nm]";
		
	p_pvs[pvElEnergy].name = "BEND:DMP1:400:BDES";
	p_pvs[pvElEnergy].desc = "electron beam energy";
	
	p_pvs[pvNElectrons].name = "BPMS:DMP1:199:TMIT1H";
	p_pvs[pvNElectrons].desc = "particle N_electrons";

	p_pvs[pvRepRate].name = "EVNT:SYS0:1:LCLSBEAMRATE";
	p_pvs[pvRepRate].desc = "LCLS repetition rate [Hz]";
		
	p_pvs[pvPeakCurrent].name = "SIOC:SYS0:ML00:AO195";
	p_pvs[pvPeakCurrent].desc = "peak current after second bunch compressor";
	
	p_pvs[pvPulseLength].name = "SIOC:SYS0:ML00:AO820";
	p_pvs[pvPulseLength].desc = "pulse length";
	
	p_pvs[pvEbeamLoss].name = "SIOC:SYS0:ML00:AO569";
	p_pvs[pvEbeamLoss].desc = "ebeam energy loss converted to photon mJ";
	
	p_pvs[pvNumPhotons].name = "SIOC:SYS0:ML00:AO580";
	p_pvs[pvNumPhotons].desc = "calculated number of photons";
	
	p_pvs[pvPhotonEnergy].name = "SIOC:SYS0:ML00:AO541";
	p_pvs[pvPhotonEnergy].desc = "photon beam energy [eV]";

	//initialize the value and valid fields of the pv structs in the map
	for (map<string,pv>::iterator it = p_pvs.begin(); it != p_pvs.end(); it++){
		it->second.value = 0.;
		it->second.valid = false;
		it->second.changed = false;
	} 

	ostringstream header;
	header << "run ";
	map<string,pv>::iterator it;
	for(it = p_pvs.begin(); it != p_pvs.end(); it++){
		header << it->second.name << " ";
	}
	header << endl;
	header << "run ";
	for(it = p_pvs.begin(); it != p_pvs.end(); it++){
		header << it->second.desc << " ";
	}
	header << endl;
			
	std::ofstream headerfile("header.txt");
	headerfile << header.str() << endl;
}
示例#2
0
文件: Header.cpp 项目: hdt/hdt-c
void 
Header::write(string path)
{
	string output = path;
	
#if BINARY_HEADER
	FILE *header = fopen((output.append(".hdt.header")).c_str(), "w+");
	
	// Graph parsing
	fwrite(&parsing,INT32,1,header);
	// Dictionary mapping
	fwrite(&mapping,INT32,1,header);
	// Dictionary separator
	fwrite(&d_separator,INT32,1,header);
	// Triples encoding
	fwrite(&t_encoding,INT32,1,header);
	
	// Statistics from the Dictionary
	fwrite(&nsubjects,INT32,1,header);
	fwrite(&npredicates,INT32,1,header);
	fwrite(&nobjects,INT32,1,header);
	fwrite(&ssubobj,INT32,1,header);
	
	// Triples in the dataset
	fwrite(&ntriples,INT32,1,header);
	
	fclose(header);
#else
	ofstream headerfile( (output.append(".hdt.header")).c_str());
	
	headerfile
	<< "Parsing: " << parsing << endl
	<< "Mapping: " << mapping << endl
	<< "Separator: " << d_separator << endl
	<< "Encoding: " << t_encoding << endl
	<< "NSubjects: " << nsubjects << endl
	<< "NPredicates: " << npredicates << endl
	<< "NObjects: " << nobjects << endl
	<< "NShared: " << ssubobj << endl
	<< "Triples: " << ntriples << endl
	<< "NLiterals: " << nliterals << endl
	<< "Nentries: " << nentries << endl;
	
	headerfile.close();
#endif
}
示例#3
0
void acquire_scans (void)
{
	int color;
	int Nleft=0;
	char file [ FILENAME_MAX ];

	SetCtrlAttribute (Main_pnl_handle, ERG_panel_acquire, ATTR_DIMMED, 1);
	SetCtrlAttribute (Main_pnl_handle, ERG_panel_abortscan, ATTR_DIMMED, 1);
	if (experiment==1){
		GetCtrlVal (Sequence_pnl_handle, Seq_panel_seq_number, &seq_num);
		Nscans=	seq_num*m;
	}
	else {
		GetCtrlVal (Main_pnl_handle, ERG_panel_nscans, &Nscans);
	}

	DirSelectPopup ("d:\\data\\test", "Select Directory", 1, 1, pathname);

	i=0;
	SetCtrlAttribute (Main_pnl_handle, ERG_panel_pause, ATTR_DIMMED, 0);
	SetCtrlAttribute (Main_pnl_handle, ERG_panel_abortscan, ATTR_DIMMED, 0);
	
// start trigger 
	SRS_flag=2;
	SRS_onoff();
	DeleteGraphPlot (Main_pnl_handle, ERG_panel_mask_display, -1, VAL_IMMEDIATE_DRAW);
	
	if (experiment==1){			 // mode sequence
		for (i=0;i<seq_num;i++) {
			for (h=0;h<m;h++){
				SetCtrlIndex (Sequence_pnl_handle, Seq_panel_mask_list, h);
				for (k=0;k<Npixel;k++){
					drive_level[k]=mask[h].voltages[k];
				}				
				display_masks();
				
				ProcessSystemEvents();
				GetLabelFromIndex (Sequence_pnl_handle, Seq_panel_mask_list, h, &mask_filename);
				strcpy(filename, pathname);
				
				//prepare file to write
				sprintf(file, "\\sequence%d_%s.txt", i, mask_filename);
				strcat(filename, file);
				data_file = OpenFile (filename, VAL_WRITE_ONLY, VAL_TRUNCATE, VAL_ASCII);
				
				//enable oscillo then wait for trigger and get ERG trace
				color=floor(256/Nscans)*(i*m+h);
				waveform(color, data_file);	
				get_intensity();
				
				//write header file
				headerfile();
				
				//write ERG trace 
				ArrayToFile (filename, data2fit, VAL_DOUBLE, 10000, 1, VAL_GROUPS_TOGETHER, VAL_GROUPS_AS_ROWS, VAL_SEP_BY_TAB, 100, VAL_ASCII, VAL_APPEND);
				nmeasure[0]=i*m+h+1;
				displaychannel();
				
				Nleft=Nscans-(i*m+h);
				SetCtrlVal (Main_pnl_handle, ERG_panel_nremain, Nleft);
				ProcessSystemEvents();
				if (pause_flag)
				{
					while (pause_flag)
						ProcessSystemEvents();
				}
			}
		}
	}
	
	else{				  // mode normal
	//prepare file name for acquiring data
		while ( i < Nscans )
		{
			strcpy(filename, pathname);
			sprintf(file, "\\scope_data%d.txt", i);
			strcat(filename, file);
			data_file = OpenFile (filename, VAL_WRITE_ONLY, VAL_TRUNCATE, VAL_ASCII);
			color=floor(256/Nscans)*i;
			waveform(color, data_file);
			get_intensity();
			
			headerfile();
			ArrayToFile (filename, data2fit, VAL_DOUBLE, 10000, 1, VAL_GROUPS_TOGETHER, VAL_GROUPS_AS_ROWS, VAL_SEP_BY_TAB, 100, VAL_ASCII, VAL_APPEND);
			
			i++;
			Nleft=Nscans-i+1;
			SetCtrlVal (Main_pnl_handle, ERG_panel_nremain, Nleft);
			ProcessSystemEvents();
			if (pause_flag)
			{
				while (pause_flag)
					ProcessSystemEvents();
			}
			CloseFile (data_file);
		}
	}
	
	SetCtrlVal (Main_pnl_handle, ERG_panel_nremain, 0);
	SetCtrlAttribute (Main_pnl_handle, ERG_panel_pause, ATTR_DIMMED, 1);
	SetCtrlAttribute (Main_pnl_handle, ERG_panel_abortscan, ATTR_DIMMED, 1);
	SetCtrlAttribute (Main_pnl_handle, ERG_panel_acquire, ATTR_DIMMED, 0);
	
// stop trigger 	
	SRS_flag=0;
	SRS_onoff();
	
	ibsic(device); 
	return;
}
示例#4
0
文件: Header.cpp 项目: hdt/hdt-c
void 
Header::read(string path)
{
	string output = path;
	
#if BINARY_HEADER
	FILE *header = fopen((output.append(".hdt.header")).c_str(), "r");
	
	if (header==NULL) {
      cout << "Exception while reading Header in "<<output<<".\n";
      exit(1);
	}
	size_t t = 0;

	// Graph parsing
	t += fread(&parsing,INT32,1,header);
	// Dictionary mapping
	t += fread(&mapping,INT32,1,header);
	// Dictionary separator
	t += fread(&d_separator,INT32,1,header);
	// Triples encoding
	t += fread(&t_encoding,INT32,1,header);
	
	// Dictionary stats
	t += fread(&nsubjects,INT32,1,header);
	// Dictionary mapping
	t += fread(&npredicates,INT32,1,header);
	// Dictionary separator
	t += fread(&nobjects,INT32,1,header);
	// Triples encoding
	t += fread(&ssubobj,INT32,1,header);
	
	 // Triples in the dataset
	t += fread(&ntriples,INT32,1,header);
	
	if (t != 9)
	{
		cout << "   <ERROR> Errors in Header" << endl;
		exit(1);
	}
	
	fclose(header);
#else
	try
	{
		ifstream headerfile( (output.append(".hdt.header")).c_str());
		
		if(headerfile.good()) {
			string line;
			
			getline(headerfile, line, ' ');
			headerfile >> parsing;
			
			getline(headerfile, line, ' ');
			headerfile >> mapping;
			
			getline(headerfile, line, ' ');
			headerfile >> d_separator;
			
			getline(headerfile, line, ' ');
			headerfile >> t_encoding;
			
			getline(headerfile, line, ' ');
			headerfile >> nsubjects;
			
			getline(headerfile, line, ' ');
			headerfile >> npredicates;
			
			getline(headerfile, line, ' ');
			headerfile >> nobjects;
			
			getline(headerfile, line, ' ');
			headerfile >> ssubobj;
			
			getline(headerfile, line, ' ');
			headerfile >> ntriples;
			
			getline(headerfile, line, ' ');
			headerfile >> nliterals;
			
			getline(headerfile, line, ' ');
			headerfile >> nentries;
		}
		
		headerfile.close();
	}
示例#5
0
int CGenerator::Generate()
{
  // init file pointers for output files
  for (int n=0; n<eFileCount; ++n)
  {
    if (!mFileNames[n].empty())
    {
      mOutputFiles[n] = fopen(mFileNames[n].c_str(), "w");
    }
  }

  // write header
  header();

  // write per file headers
  {for (lstSourceFilesCtrType ctr=mlstSourceFiles.begin(); ctr!=mlstSourceFiles.end(); ctr++)
  {
    SetVariable(VAR_HEADERFILE, ctr->c_str());
    headerfile();
  }}
  ClearVariable(VAR_HEADERFILE);

  // :TODO: parser internal, put this into the parser
  // init this to the default, if no alias is set
  SetVariable(CGenerator::VAR_ITEM, mpszItem);
  SetVariable(CGenerator::VAR_ID,   mpszId);
  // :TODO: pass this as param to yyparse
  spGenerator = this;

  int nRetVal = 0;

  // parse files and create the main work
  {for (lstSourceFilesCtrType ctr=mlstSourceFiles.begin(); nRetVal==0 && ctr!=mlstSourceFiles.end(); ctr++)
  {
    SetVariable(VAR_HEADERFILE, ctr->c_str());
    #if YYDEBUG
      yydebug   = 1;
    #endif

    FILE * fParse = fopen(ctr->c_str(), "r");
    if (fParse)
    {
      yyrestart(fParse);
      nRetVal = yyparse();
      fclose(fParse);
    }
    else
    {
      printf("error: could not open file %s\n", ctr->c_str());
      nRetVal = -1;
    }
  }}
  ClearVariable(VAR_HEADERFILE);

  // remove the parsers pointer to the generator
  spGenerator = NULL;

  // write per file footers
  {for (lstSourceFilesCtrType ctr=mlstSourceFiles.begin(); ctr!=mlstSourceFiles.end(); ctr++)
  {
    SetVariable(VAR_HEADERFILE, ctr->c_str());
    footerfile();
  }}
  ClearVariable(VAR_HEADERFILE);

  // write footer
  footer();

  // close files
  for (int n=0; n<eFileCount; ++n)
  {
    if (mOutputFiles[n] != 0)
    {
      fclose(mOutputFiles[n]);
      mOutputFiles[n] = 0;
    }
  }

  return nRetVal;
}
static void DumpLoadersCode()
{
	std::vector<codeentry> entries;
	for (VertexLoaderMap::const_iterator iter = s_vertex_loader_map.begin(); iter != s_vertex_loader_map.end(); ++iter)
	{
		if (!iter->second->IsPrecompiled())
		{
			codeentry e;
			e.conf.append(To_HexString(iter->first.GetElement(0)));
			e.conf.append(", ");
			e.conf.append(To_HexString(iter->first.GetElement(1)));
			e.conf.append(", ");
			e.conf.append(To_HexString(iter->first.GetElement(2)));
			e.conf.append(", ");
			e.conf.append(To_HexString(iter->first.GetElement(3)));				
			e.name = iter->second->GetName();
			e.num_verts = iter->second->m_numLoadedVertices;
			e.hash = std::to_string(iter->first.GetHash());
			entries.push_back(e);
		}
	}
	if (entries.size() == 0)
	{
		return;
	}		
	std::string filename = StringFromFormat("%sG_%s_pvt.h", File::GetUserPath(D_DUMP_IDX).c_str(), last_game_code.c_str());		
	std::string header;
	header.append("// Copyright 2013 Dolphin Emulator Project\n");
	header.append("// Licensed under GPLv2+\n");
	header.append("// Refer to the license.txt file included.\n");
	header.append("// Added for Ishiiruka by Tino\n");
	header.append("#pragma once\n");
	header.append("#include <map>\n");
	header.append("#include \"VideoCommon/NativeVertexFormat.h\"\n");
	header.append("class G_");
	header.append(last_game_code);
	header.append("_pvt\n{\npublic:\n");
	header.append("static void Initialize(std::map<u64, TCompiledLoaderFunction> &pvlmap);\n");
	header.append("};\n");
	std::ofstream headerfile(filename);
	headerfile << header;
	headerfile.close();
	filename = StringFromFormat("%sG_%s_pvt.cpp", File::GetUserPath(D_DUMP_IDX).c_str(), last_game_code.c_str());		
	sort(entries.begin(), entries.end());
	std::string sourcecode;
	sourcecode.append("#include \"VideoCommon/G_");
	sourcecode.append(last_game_code);
	sourcecode.append("_pvt.h\"\n");
	sourcecode.append("#include \"VideoCommon/VertexLoader_Template.h\"\n\n");
	sourcecode.append("\n\nvoid G_");
	sourcecode.append(last_game_code);
	sourcecode.append("_pvt::Initialize(std::map<u64, TCompiledLoaderFunction> &pvlmap)\n{\n");
	for (std::vector<codeentry>::const_iterator iter = entries.begin(); iter != entries.end(); ++iter)
	{
		sourcecode.append("\t// ");
		sourcecode.append(iter->name);
		sourcecode.append("\n// num_verts= ");
		sourcecode.append(std::to_string(iter->num_verts));			
		sourcecode.append("#if _M_SSE >= 0x301\n");
		sourcecode.append("\tif (cpu_info.bSSSE3)\n");
		sourcecode.append("\t{\n");
		sourcecode.append("\t\tpvlmap[");
		sourcecode.append(iter->hash);
		sourcecode.append("] = ");
		sourcecode.append("TemplatedLoader");
		sourcecode.append("<0x301, ");
		sourcecode.append(iter->conf);
		sourcecode.append(">;\n");
		sourcecode.append("\t}\n\telse\n");
		sourcecode.append("#endif\n");
		sourcecode.append("\t{\n");
		sourcecode.append("\t\tpvlmap[");
		sourcecode.append(iter->hash);
		sourcecode.append("] = ");
		sourcecode.append("TemplatedLoader");
		sourcecode.append("<0, ");
		sourcecode.append(iter->conf);
		sourcecode.append(">;\n");
		sourcecode.append("\t}\n");
	}
	sourcecode.append("}\n");
	std::ofstream out(filename);
	out << sourcecode;
	out.close();
}