Develop infrastructure for sending ZeroMQ messages from the DFO to the InhibitMaster at protoDUNE
Recall that the initial version of the DFO at protoDUNE is an instance of an artdaq EventBuilder, so adding the sending of InhibitMaster messages will need to include support for sending ZeroMQ messages within artdaq.
The usual way that we do this is by creating an interface that defines the methods that are needed, and then creating different plugin packages that provide concrete implementations of that interface. I propose to follow that same pattern here.
I don't believe that we already have an interface that makes sense for the InhibitMaster messages (it's not metrics nor commander nor data transfer), so I'm going to propose a new interface called General Purpose Messaging. We can and should discuss this proposal and what GPM (general purpose message) might eventually include (along with its name).
To avoid locking us into a lot of code that we may not want, my thought is to initially create just a GPM Publisher interface that supports connecting to an underlying messaging provider and supports the sending of free-form text messages. I believe that this is all that we need right now for the InhibitMaster messages. I propose to create the C++ files for this interface in the artdaq-utilities repository.
With this interface, I next propose to create a ZeroMQ plugin package. Initially, this package/repository would only include the ZMQ GPM Publisher class, but my sense is that it would make sense for this package to include all of the ZMQ plugins that we may eventually choose to implement (e.g. data transfer, commander, etc.) Again, we should discuss this now, and we should plan on revisiting this choice as we learn more.
I'm going to attach some slides to this Issue that provide a little more detail.
#1 Updated by Kurt Biery about 1 month ago
- Subject changed from Develop infrastructure for sending ZeroMQ messages from the DFO to the InhibiitMaster at protoDUNE to Develop infrastructure for sending ZeroMQ messages from the DFO to the InhibitMaster at protoDUNE
I've committed the current state of the work in the artdaq-utilities repository to the feature/23067_Publish_Inhibit_Messages branch. This branch was based on the latest code on the develop branch as of this afternoon.
There is related work to create the artdaq_zmq_plugin package, but I don't have any notes on that yet.
#2 Updated by Kurt Biery 16 days ago
There is a "working/22535_protoDFO_testing" branch in the artdaq_zmq_plugin repo that has the appropriate dependencies in the product_deps file for testing at protoDUNE.
This branch in the artdaq_zmq_plugin repo was taken from the "develop" branch, so it should be up-to-date with all of the current artdaq_zmq_plugin code.