Version 2.0.0¶
Pre-release Disclaimer
This is a pre-release and release notes is incomplete and work-in-progress.
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.
Primary data sources in the order user specified to
StartDaq()
.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¶
Added daqDpmMerge application.
Added daqDpmServer application.
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¶
New applications daqOcmServer and daqOcmCtl 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()
andAbortDaq()
.Modify Data Acquisition primary keywords with
UpdateKeywords()
.Synchronize with Data Acquisition state for higher level coordination activities with
AwaitDaqState()
andGetDaqStatus()
.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()
andUpdateKeywords()
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.