Version 1.0.0

First release of OCM comes with basic support for performing Data Acquisitions from standard compliant sources (sources implementing metadaqif or recif).

New Features

  • New applications ocmServer and ocmServerCtl that implements the server and client/controller for the Acquisition part of the Data Acquisition life-cycle.

  • Create serial or concurrent Data Acquisitions with any number of primary or metadata sources with StartDaq().

  • OCM creates a FITS file for each Data Acquisition containing user provided and data source provided FITS keywords.

  • Control active Data Acquisition with StopDaq() and AbortDaq().

  • Modify Data Acquisition primary keywords with UpdateKeywords().

  • Synchronize with Data Acquisition state for higher level coordination activities with AwaitDaqState() and GetDaqStatus().

  • Observe active Data Acquisitions with GetActiveList().

Known Issues and Limitations

  • Keyword formatting is not configurable and no dictionary validation is performed on FITS keywords (provided with commands StartDaq() and UpdateKeywords() or part of reply from metadaqif).

  • Standard keywords that OCM should provide, are not yet included in the created FITS file from OCM.

  • Data Acquisition state persistence is not implemented yet. If ocmServer is restarted all state is lost.

  • An assertion in the CII Middleware Abstraction Layer used by ocmServerCtl has been observed from time to time. It is easily identified by the following output on stdout:

    ocmServerCtl: ../mal-zpb/cpp/mal-zpb/src/include/Zmq.hpp:453: void zmq::context_t::close():
    Assertion `rc == 0' failed.
    
  • MAL does not handle timeouts correctly. If an endpoint does not reply to a command OCM will wait indefinitely.