Version 3.0.0

Pre-release Disclaimer

This is a pre-release and release notes is incomplete and work-in-progress.

Added

Changed

  • Configuration changed from using yaml-cpp to CII.

  • Online database changed from using redis to CII.

  • daqOcmServer and daqDpmServer configuration was refactored to use CII and aligned to common schema defined in RAD. The following tables summarize old and new values in shorthand form using map/value where value is a configuration value in YAML map map.

    Table 10 daqOcmServer

    Old

    New

    cfg.instrument_id

    cfg/instrument_id

    cfg.dataroot

    cfg/dataroot

    cfg.workspace

    cfg/daq/workspace

    cfg.daq.stale.acquiring_hours

    cfg/daq/stale_acquiring_hours

    cfg.daq.stale.merging_hours

    cfg/daq/stale_merging_hours

    cfg.log.properties

    cfg/log_properties

    cfg.sm.scxml

    cfg/sm_scxml

    cfg.req.endpoint

    cfg/req_endpoint

    cfg.pub.endpoint

    cfg/pub_endpoint

    cfg.db.endpoint

    removed (CII OLDB is not configurable)

    cfg.db.prefix

    cfg/oldb_uri_prefix

    cfg.db.timeout_sec

    cfg/oldb_conn_timeout

    cfg.dpm.req.endpoint

    cfg/dpm/req_endpoint

    cfg.dpm.pub.endpoint

    cfg/dpm/pub_endpoint

    cfg.dpm.timeout_sec

    cfg/dpm/timeout_sec

    Table 11 daqDpmServer

    Old

    New

    cfg.dataroot

    cfg/dataroot

    cfg.workspace

    cfg/daq/workspace

    cfg.log.properties

    cfg/log_properties

    cfg.req.endpoint

    cfg/req_endpoint

    cfg.pub.endpoint

    cfg/pub_endpoint

    cfg.limit.daq

    cfg/limits/daq

    cfg.limit.merge

    cfg/limits/merge

    cfg.limit.net.receive

    cfg/limits/net_receive

    cfg.limit.net.send

    cfg/limits/net_send

    cfg.bin.merge

    cfg/bin_merge

    cfg.bin.rsync

    cfg/bin_rsync

Version 2.1.0

Added

Changed

Version 2.0.0

This version adds daqDpmServer application together with daqDpmMerge that executes the merge and basic integration with daqOcmServer.

There are open questions regarding Data Product control requirements which will determine the client interface to daqOcmServer. This includes aspects like controlling HDU and keyword order, how to optionally specify the in-place merge target and selecting/transforming keywords, without relying on heuristics. Until those requirements are clarified daqOcmServer makes the following assumptions which has some limitations:

  • If a single primary data source produce a single FITS file this will selected as the in-place merge target.

  • Otherwise data sources produce multi-extension FITS files with no data in primary HDU.

  • Data sources have the following relative priority:

    Note

    Order determines merge order of keywords and extensions.

    1. Primary data sources in the order user specified to StartDaq().

    2. Metadata sources in the order user specified to StartDaq().

  • Each data source produce keywords that will be merged to Data Product primary HDU returned via metadaqif or with FITS file primary HDU.

  • There is currently no way to provide keyword rules that select and transforms keywords. All keywords in user class will be merged.

Added

Changed

  • Application names changed to abide to new naming standards:

    • ocmServer -> daqOcmServer

    • ocmServerCtl -> daqOcmCtl

    • daq-fits-test -> daqFitsTest

  • New mandatory daqOcmServer configuration (see Configuration File).

    • cfg.dpm.req.endpoint

    • cfg.dpm.pub.endpoint

  • New optional daqOcmServer configuration (see Configuration File).

    • cfg.db.prefix

  • OCM MAL ICD changes due to scope changed to include DPM as well.

    • ICD name renamed from ocmif -> daqif.

    • OCM Data Acquisition interface renamed from ocmif.OcmDaq -> OcmDaqControl.

  • Renamed default OCM scxml model config/ocmServer/sm.xml -> config/daqOcmServer/sm.xml.

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

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.