コード例 #1
0
//
// Shift new data values into the real time data series
//
void RealtimeChart::getData()
{
    // The current time
    QDateTime now = QDateTime::currentDateTime();

    // This is our formula for the random number generator
    do
    {
        // We need the currentTime in millisecond resolution
        double currentTime = Chart::chartTime2(m_nextDataTime.toTime_t())
                             + m_nextDataTime.time().msec() / 1000.0;

        // Get a data sample
        double p = currentTime * 4;
        double dataA = 20 + cos(p * 129241) * 10 + 1 / (cos(p) * cos(p) + 0.01);
        double dataB = 150 + 100 * sin(p / 27.7) * sin(p / 10.1);
        double dataC = 150 + 100 * cos(p / 6.7) * cos(p / 11.9);

        // Shift the values into the arrays
        shiftData(m_dataSeriesA, sampleSize, dataA);
        shiftData(m_dataSeriesB, sampleSize, dataB);
        shiftData(m_dataSeriesC, sampleSize, dataC);
        shiftData(m_timeStamps, sampleSize, currentTime);

        m_nextDataTime = m_nextDataTime.addMSecs(DataInterval);
    }
    while (m_nextDataTime < now);
}
コード例 #2
0
ファイル: MBF.cpp プロジェクト: estuans/PultorakAGC
void regG::execWP()		
{	
	if(SEQ::isAsserted(CLG))	write(0); 

	if(SEQ::isAsserted(RP2))	writeField(15, 15, PAR::register_P2.read());
	if(SEQ::isAsserted(GP))		writeField(15, 15, PAR::gen1_15Parity(PAR::register_P.read()));
	if(SEQ::isAsserted(WGn))	writeShift(BUS::glbl_RWBUS, MBF::conv_WGn);

							// This is only used in PINC, MINC, and SHINC. Does not clear G
							// register; writes (ORs) into G from RWBus and writes into parity
							// from 1-15 generator. All done in one operation, although I show
							// it in two steps here. The sequence calls CLG in a previous TP.
	if(SEQ::isAsserted(WGx))
	{
		write(read() | shiftData(read(), BUS::glbl_RWBUS, MBF::conv_WGn));
		writeField(15, 15, PAR::gen1_15Parity(PAR::register_P.read()));
	}

	if(SEQ::isAsserted(W20))	writeShift(BUS::glbl_RWBUS, MBF::conv_W20);
	if(SEQ::isAsserted(W21))	writeShift(BUS::glbl_RWBUS, MBF::conv_W21);
	if(SEQ::isAsserted(W22))	writeShift(BUS::glbl_RWBUS, MBF::conv_W22);
	if(SEQ::isAsserted(W23))	writeShift(BUS::glbl_RWBUS, MBF::conv_W23);
	if(SEQ::isAsserted(SBEWG))	writeShift(MBF::readMemory(), MBF::conv_SBEWG);
	if(SEQ::isAsserted(SBFWG))	writeShift(MBF::readMemory(), MBF::conv_SBFWG);
	if(SEQ::isAsserted(WE))		MBF::writeMemory(shiftData(0, MBF::register_G.read(), MBF::conv_WE));
}
コード例 #3
0
void shapeAlign::printShifts(void){
	int mult;

	int lastidx = nameFile.find_last_of(".");
	string shiftOutFile = nameFile.substr(0,lastidx) + ".shift.stats.txt";
	ofstream shiftData (shiftOutFile.c_str());

	if (shiftData.is_open()){
		// Loop over all sites and output data from shape alignment
		for (size_t i = 0; i < nSites; i++){

			// Adjust the output for reversed sequences -- note that this
			// adjustment is only necessary in the summary output but not in
			// the actual shifted output!
			gsl_matrix_get(R,i,cIdx) ? mult = 1 : mult = -1;

			shiftData << names[i] << "\t" << gsl_matrix_get(D,i,cIdx)
		    	 << "\t" << mult*gsl_matrix_get(S,i,cIdx) << "\t"
		      	 << gsl_matrix_get(R,i,cIdx) << "\t"
		      	 << endl;
		}
	} else {
		cerr << "Error: Could not open output file ("
			 << shiftOutFile << "). Exiting." << endl;
		exit(1);
	}

	shiftData.close();

	return;
}
コード例 #4
0
ファイル: parserhost.cpp プロジェクト: Seliverstoff/cgru
void ParserHost::read( const std::string & i_mode, std::string & output)
{
	parse( i_mode, output);
	const char * out_data = output.data();
	int          out_size = output.size();

#ifdef AFOUTPUT
printf("\"");for(int c=0;c<out_size;c++)if(out_data[c]>=32)printf("%c", out_data[c]);printf("\":\n");
#endif

	// writing output in buffer
	//
//printf("\nParser::read: size = %d ( datasize = %d )\n", size, datasize);
	const char * copy_data = out_data;
	int          copy_size = out_size;
	if( (m_datasize+output.size()) > ms_DataSizeMax )
	{
//printf("(datasize+size) > DataSizeMax : (%d+%d)>%d\n", datasize, size, DataSizeMax);
		if( m_datasize < ms_DataSizeHalf )
		{
			memcpy( m_data+m_datasize, out_data, ms_DataSizeHalf-m_datasize);
			copy_data = out_data + ms_DataSizeHalf - m_datasize ;
			copy_size = out_size - ( ms_DataSizeHalf - m_datasize);
			m_datasize = ms_DataSizeHalf;
		}

		int sizeShift = ms_DataSizeShift;
		if( m_datasize+copy_size-sizeShift > ms_DataSizeMax ) sizeShift = m_datasize + copy_size - ms_DataSizeMax;
//printf("sizeShift=%d\n", sizeShift);
		if( sizeShift < m_datasize-ms_DataSizeHalf ) shiftData( sizeShift);
		else
		{
			copy_data = out_data + copy_size - ms_DataSizeHalf;
			copy_size = ms_DataSizeHalf;
			m_datasize  = ms_DataSizeHalf;
//printf("sizeShift >= datasize-DataSizeHalf ( %d >= %d-%d )\n", sizeShift, datasize, DataSizeHalf);
		}
		if( m_overload == false ) setOverload();
	}

//printf("memcpy: datasize=%d, copysize=%d, size=%d\n", datasize, copy_size, size);

	memcpy( m_data+m_datasize, copy_data, copy_size);
	m_datasize += copy_size;

/*#ifdef AFOUTPUT
fflush( stdout);
printf("\n##############################   ParserHost::read: ##############################\n");
fflush( stdout);
::write( 1, data, datasize);
fflush( stdout);
printf("\n#############################################################################\n", datasize);
fflush( stdout);
#endif*/

//printf("end: datasize = %d\n", datasize);
}
コード例 #5
0
ファイル: MBF.cpp プロジェクト: estuans/PultorakAGC
void regG::execRP()		
{	if(SEQ::isAsserted(RG))		
		if(ADR::register_S.read() >= 020) 
			BUS::glbl_RWBUS|=shiftData(BUS::glbl_RWBUS, read(), MBF::conv_RG); 
}