Skip to content
Snippets Groups Projects
Commit 1c8db9d1 authored by Jan David Mol's avatar Jan David Mol
Browse files

bug 1362: defining parset values and some code for checking fake input data

parent f13b0af5
No related branches found
No related tags found
No related merge requests found
......@@ -19,6 +19,8 @@ class FakeData {
void check( const FilteredData *data ) const;
void check( const FinalBeamFormedData *data, unsigned pol ) const;
void check( const StreamableData *data, OutputType outputType, unsigned streamNr ) const;
private:
const Parset &itsParset;
static const double TOLERANCE = 1e-6;
......@@ -38,7 +40,8 @@ template<> bool FakeData::equal( const fcomplex a, const fcomplex b ) const {
return equal(real(a), real(b)) && equal(imag(a), imag(b));
}
void FakeData::fill( FilteredData *data ) const {
void FakeData::fill( FilteredData *data ) const
{
for (unsigned s = 0; s < itsParset.nrStations(); s++) {
for (unsigned c = 0; c < itsParset.nrChannelsPerSubband(); c++)
for (unsigned t = 0; t < itsParset.CNintegrationSteps(); t++) {
......@@ -50,7 +53,8 @@ void FakeData::fill( FilteredData *data ) const {
}
}
void FakeData::check( const FilteredData *data ) const {
void FakeData::check( const FilteredData *data ) const
{
for (unsigned s = 0; s < itsParset.nrStations(); s++) {
for (unsigned c = 0; c < itsParset.nrChannelsPerSubband(); c++)
for (unsigned t = 0; t < itsParset.CNintegrationSteps(); t++) {
......@@ -62,7 +66,8 @@ void FakeData::check( const FilteredData *data ) const {
}
}
void FakeData::check( const FinalBeamFormedData *data, unsigned pol ) const {
void FakeData::check( const FinalBeamFormedData *data, unsigned pol ) const
{
// TODO: support other configurations than just 1 station equal to reference phase center
for (unsigned t = 0; t < itsParset.CNintegrationSteps(); t++) {
......@@ -76,6 +81,22 @@ void FakeData::check( const FinalBeamFormedData *data, unsigned pol ) const {
}
}
void FakeData::check( const StreamableData *data, OutputType outputType, unsigned streamNr ) const
{
switch (outputType) {
case FILTERED_DATA:
check( static_cast<const FilteredData *>(data) );
break;
case BEAM_FORMED_DATA:
check( static_cast<const FinalBeamFormedData *>(data), streamNr % NR_POLARIZATIONS );
break;
default:
return;
}
}
} // namespace RTCP
} // namespace LOFAR
......
......@@ -145,6 +145,7 @@ class Parset: public ParameterSet
std::string getDirectoryName(OutputType, unsigned streamNr) const;
bool fakeInputData() const;
bool checkFakeInputData() const;
unsigned nrCoherentStokes() const;
unsigned nrIncoherentStokes() const;
......@@ -395,6 +396,11 @@ inline bool Parset::fakeInputData() const
return getBool("OLAP.CNProc.fakeInputData", false);
}
inline bool Parset::checkFakeInputData() const
{
return getBool("OLAP.CNProc.checkFakeInputData", false);
}
inline double Parset::CNintegrationTime() const
{
return nrSubbandSamples() / sampleRate();
......
......@@ -110,6 +110,7 @@ OLAP.OLAP_Conn.IONProc_CNProc_Transport = FCNP
# generate fake station input, overriding any real data
OLAP.CNProc.fakeInputData = F
OLAP.CNProc.checkFakeInputData = F
OLAP.CNProc.nrPPFTaps = 16
......
......@@ -61,6 +61,7 @@ class OutputThread
const unsigned itsStreamNr;
const bool itsIsBigEndian;
const std::string itsLogPrefix;
const bool itsCheckFakeData;
Queue<SmartPtr<StreamableData> > &itsFreeQueue, &itsReceiveQueue;
......
......@@ -99,6 +99,7 @@ OutputThread::OutputThread(const Parset &parset, OutputType outputType, unsigned
itsStreamNr(streamNr),
itsIsBigEndian(isBigEndian),
itsLogPrefix(logPrefix + "[OutputThread] "),
itsCheckFakeData(parset.checkFakeInputData()),
itsFreeQueue(freeQueue),
itsReceiveQueue(receiveQueue),
itsBlocksWritten(0),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment