|
Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://www.atnf.csiro.au/vlbi/dokuwiki/doku.php/difx/difx_call_sequence
Дата изменения: Unknown Дата индексирования: Mon Apr 11 01:28:47 2016 Кодировка: IBM-866 Поисковые слова: asteroid |
The following are essential тАЬprivateтАЭ notes to sort out the call sequence used as data flows through DataStream processes and Core processes.
DataStream::executeDataStream::initialiseMemoryBufferDataStream::launchNewFileReadThread or DataStream::launchNewNetworkReadThreadDataStream::loopfileread or DataStream::loopnetworkreadloopfileread loops overDataStream::openfileinitialiseFile (Overloaded in mk5.cpp)DataStream::diskToMemory read (System call)testForSync (Overloaded in mk5.cpp)Core::CoreCore::executepthread_create calling launchNewProcessThreadloopprocessprocessdata for sub integration Mode::process тАЬNUM BUFFERED FFTSтАЭ times for each FFTprocessdata looping over each baselineCore::receivedataMPI_Irecv and locks/unlocks mutexesMode::process does the main station based processing - fringe rotation, FFT, fractional delay correction etc. It is called once for each FFT time slice. After initial loop initialisation steps, it then loops over each recorded frequency. For each freq it setups up fringe rotation and post-F corrections (fractional delay correction etc). Then it loops over the actual recorded bands
for(int j=0;j<numrecordedbands;j++)
looking for matches to the current frequency and does the FFT, applies the fringe rotation etc.