the Autonomous Bariloche Central DAQ, a centralized DAQ system for scientific experiments
pip install libABCD==0.2.0
The main concept for the DAQ is that it orbits around a central server. Control and information run through this server allowing a permanent follow-up of what is happening. The raw data is handled by the clients themselves and is not seen by the DAQ. The server broadcasts its location by UDP to allow clients to connect. It keeps a list of clients and redirects messages as they are sent to the intendend client. All messages are JSON formatted. A ping-pong system ensure clients are up and running. Any connection not answering a ping within 30 seconds is closed. The server itself is watchdogged so it is restarted if no proper action (touching a pid file) is done for 30 seconds.
All the code is in the libABCD directory. Exemple applications are in the examples directory. They include:
running the exemples can be done by running in two windows abcdServer.py and run.py damicm, using send.py in a third to see what happens. Running S.py manually can also be interesting to see all messages going through.