Using IPbus
Main Page -> Control & Readout Software Documentation and Howto's -> Using IPbus
Use case
IPbus is a control protocol that uses UDP/IP to send values into the registers on the readout unit (RU). The software on the host computer uses the Hardware Access Library (uHAL) to send the commands to the RU.
Configuration files
There is a main connection file (pRU-connections.xml), this file contains the address and port of the RU, for information on the content of the connection file please see the pRU Ethernet Configurations document.
Following there is a Module registers file (module-address.xml), this file contains a table with all the registers present in the RU.
Finally, there are files for each register
- global_regs.xml
- trigger_manager.xml
- offload.xml
- alpide_control.xml
- alpide_data.xml
As of the writing of this page, these files can be found on the production_test repository in the ipbus branch under the BSP folder.
WARNING: To prevent undefined behavior the register files MUST match the firmware version!
Smart Dummy Hardware
To be able to read values from registers, a custom DummyHardwareUdp.exe can be built from this repository: IPbus Custom Repo
NB! If IPBus is built inside the repo folder. It is important to add LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path-to-folder/ipbus-software/uhal/tests/lib/:/path-to-folder/ipbus-software/uhal/log/lib/:/path-to-folder/ipbus-software/uhal/uhal/lib/:/path-to-folder/ipbus-software/uhal/grammars/lib/ This adds a file reader in the DummyHardware.cpp that reads a file in the directory of the executable, the file is called register-values.txt, an example file can be found here: Example file
Additonal information
For more information, please consult the IPbus wiki at: IPbus wiki