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

COB-57: Do not start generators for stations without streams, and allow easier...

COB-57: Do not start generators for stations without streams, and allow easier extension of parset settings.
parent 6c159ad1
No related branches found
No related tags found
1 merge request!6Import cobalt2 into lofar4
......@@ -48,6 +48,18 @@ void usage()
cerr << endl;
cerr << "-h Show this help." << endl;
cerr << "-p parset Read configuration from given (augmented) parset." << endl;
cerr << "-s stations Override station list (comma-separated)." << endl;
}
// Create a skeleton parset
void populateParsetSkeleton(Parset &ps)
{
// Add one beam
ps.add("Observation.nrBeams", "1");
ps.add("Observation.Beam[0].subbandList", "[0]");
// Add at least one station
ps.add("Observation.VirtualInstrument.stationList", "[CS001]");
}
int main( int argc, char **argv )
......@@ -55,13 +67,15 @@ int main( int argc, char **argv )
INIT_LOGGER( "generator" );
int opt;
string parsetFilename;
Parset ps;
populateParsetSkeleton(ps);
// parse all command-line options
while ((opt = getopt(argc, argv, "hp:")) != -1) {
switch (opt) {
case 'p':
parsetFilename = optarg;
ps.adoptFile(optarg);
break;
case 'h':
......@@ -80,11 +94,8 @@ int main( int argc, char **argv )
exit(1);
}
// check for mandatory parameters
if (parsetFilename == "") {
usage();
exit(1);
}
// regenerate ps.settings
ps.updateSettings();
LOFAR::Cobalt::MPI mpi;
mpi.init(argc, argv);
......@@ -93,10 +104,7 @@ int main( int argc, char **argv )
omp_set_nested(true);
omp_set_num_threads(16);
Parset ps(parsetFilename);
struct BoardMode mode(ps.settings.nrBitsPerSample, ps.settings.clockMHz);
const TimeStamp from(time(0), 3, mode.clockHz());
const TimeStamp to(0);
......@@ -108,14 +116,20 @@ int main( int argc, char **argv )
if (static_cast<int>(f) % mpi.size() != mpi.rank())
continue;
// Skip stations without any boards defined
if (field.inputStreams.size() == 0) {
LOG_WARN_STR("[" << field.name << "] No streams defined. Ignoring.");
continue;
}
vector< SmartPtr<Stream> > outputStreams;
for (size_t s = 0; s < field.inputStreams.size(); ++s) {
const string& desc = field.inputStreams[s];
LOG_INFO_STR("Setting up stream to " << desc);
LOG_INFO_STR("[" << field.name << "] Creating stream to " << desc);
outputStreams.push_back(createStream(desc, false));
LOG_INFO_STR("Stream created to " << desc);
LOG_INFO_STR("[" << field.name << "] Created stream to " << desc);
}
struct StationID stationID(field.name);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment