Esempio n. 1
0
void Pulsar::WAPPArchive::load_extensions()
{

  // Telescope extension
  Telescope *t = getadd<Telescope>();
  Telescopes::Arecibo(t);

  // Backend extension
  Backend *b = getadd<Backend>();
  b->set_name("WAPP");

  // ObsExtension
  ObsExtension *o = getadd<ObsExtension>();
  o->observer = hdr->observers;
  o->project_ID = hdr->project_id;

  // Receiver
  Receiver *r = getadd<Receiver>();
  // Use codes to init recvr
  string rcode = hdr->frontend;
  if (rcode=="lbw") Arecibo::L_wide(r);
  else if (rcode=="sbw") Arecibo::S_wide(r);
  else if (rcode=="430") Arecibo::Greg_430(r);
  else if (rcode=="327") Arecibo::Greg_327(r);
  else if (rcode=="cb") Arecibo::C_band(r);
  else r->set_name(rcode);
  // TODO : figure out hybrid field in hdr

  // FITSUBHdr
  FITSSUBHdrExtension *fs = getadd<FITSSUBHdrExtension>();
  fs->set_tsamp(hdr->samp_time*1e-6);

}
void Pulsar::TimerArchive::unpack_extensions () try
{
  if (verbose == 3)
    cerr << "Pulsar::TimerArchive::unpack_extensions" << endl;

  Receiver* receiver = getadd<Receiver>();
  unpack (receiver);

  Telescope* telescope = getadd<Telescope>();

  try
  {
    telescope->set_coordinates (get_telescope());
    Telescopes::set_telescope_info (telescope, this);
  }
  catch (Error& error)
  {
    if (verbose > 2)
      warning << "Pulsar::TimerArchive::unpack_extensions " 
              << error.get_message().c_str() << endl;
  }
  
  TapeInfo* tape = getadd<TapeInfo>();
  unpack (tape);

  if (verbose == 3)
    cerr << "Pulsar::TimerArchive::unpack_extensions set Backend" << endl;

  Backend* backend = get<Backend>();

  if (!backend)
  {
    Backend* ben = getadd<Backend>();
    ben->set_name (hdr.machine_id);

    ben->set_corrected (hdr.corrected & BE_PHS_CORRECTED);
    ben->set_downconversion_corrected (hdr.corrected & BE_DCC_CORRECTED);

    backend = ben;
  }

  if (verbose == 3)
    cerr << "Pulsar::TimerArchive::unpack_extensions " 
	 << backend->get_extension_name() << " name="
	 << backend->get_name() << endl;

}
catch (Error& error)
{
  throw error += "Pulsar::TimerArchive::unpack_extensions";
}