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() ...@@ -48,6 +48,18 @@ void usage()
cerr << endl; cerr << endl;
cerr << "-h Show this help." << endl; cerr << "-h Show this help." << endl;
cerr << "-p parset Read configuration from given (augmented) parset." << 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 ) int main( int argc, char **argv )
...@@ -55,13 +67,15 @@ int main( int argc, char **argv ) ...@@ -55,13 +67,15 @@ int main( int argc, char **argv )
INIT_LOGGER( "generator" ); INIT_LOGGER( "generator" );
int opt; int opt;
string parsetFilename; Parset ps;
populateParsetSkeleton(ps);
// parse all command-line options // parse all command-line options
while ((opt = getopt(argc, argv, "hp:")) != -1) { while ((opt = getopt(argc, argv, "hp:")) != -1) {
switch (opt) { switch (opt) {
case 'p': case 'p':
parsetFilename = optarg; ps.adoptFile(optarg);
break; break;
case 'h': case 'h':
...@@ -80,11 +94,8 @@ int main( int argc, char **argv ) ...@@ -80,11 +94,8 @@ int main( int argc, char **argv )
exit(1); exit(1);
} }
// check for mandatory parameters // regenerate ps.settings
if (parsetFilename == "") { ps.updateSettings();
usage();
exit(1);
}
LOFAR::Cobalt::MPI mpi; LOFAR::Cobalt::MPI mpi;
mpi.init(argc, argv); mpi.init(argc, argv);
...@@ -93,10 +104,7 @@ int main( int argc, char **argv ) ...@@ -93,10 +104,7 @@ int main( int argc, char **argv )
omp_set_nested(true); omp_set_nested(true);
omp_set_num_threads(16); omp_set_num_threads(16);
Parset ps(parsetFilename);
struct BoardMode mode(ps.settings.nrBitsPerSample, ps.settings.clockMHz); struct BoardMode mode(ps.settings.nrBitsPerSample, ps.settings.clockMHz);
const TimeStamp from(time(0), 3, mode.clockHz()); const TimeStamp from(time(0), 3, mode.clockHz());
const TimeStamp to(0); const TimeStamp to(0);
...@@ -108,14 +116,20 @@ int main( int argc, char **argv ) ...@@ -108,14 +116,20 @@ int main( int argc, char **argv )
if (static_cast<int>(f) % mpi.size() != mpi.rank()) if (static_cast<int>(f) % mpi.size() != mpi.rank())
continue; 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; vector< SmartPtr<Stream> > outputStreams;
for (size_t s = 0; s < field.inputStreams.size(); ++s) { for (size_t s = 0; s < field.inputStreams.size(); ++s) {
const string& desc = field.inputStreams[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)); 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); 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