Using IPbus: Difference between revisions

From pCT
No edit summary
No edit summary
Line 26: Line 26:
To be able to read values from registers, a custom DummyHardwareUdp.exe can be built from this repository:
To be able to read values from registers, a custom DummyHardwareUdp.exe can be built from this repository:
[https://github.com/norscope/ipbus-software/tree/smartdummy IPbus Custom Repo]
[https://github.com/norscope/ipbus-software/tree/smartdummy IPbus Custom Repo]
NOTE: Remember to switch to the smartdummy branch.


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: [[:Media:register-values.txt | Example file]]
 
 
=== How to Build on Ubuntu 20.04 LTS ===
==== REQUIRED PACKAGES ====
<syntaxhighlight lang="bash">
$ sudo apt update
$ sudo apt install git g++ make erlang python3 python-is-python3 libboost1.71-all-dev libpugixml-dev
</syntaxhighlight>
 
==== BUILDING ====
In the directory where the repository have been downloaded:
 
<syntaxhighlight lang="bash">
$ make
$ sudo make install prefix=/home/user/ipbus-install
</syntaxhighlight>
 
==== ADDING PATHS TO ENVIRORMENT ====
<syntaxhighlight lang="bash">
$ export LD_LIBRARY_PATH=/home/user/ipbus-install/lib:$LD_LIBRARY_PATH
$ export PYTHONPATH=/home/user/software-dev/ipbus-install/lib/python3.8/site-packages:$PYTHONPATH
</syntaxhighlight>
 
==== RUNNING THE EMULATOR ====
Change directory to ipbus-install/bin/uhal/tests
NOTE: Make sure the register-values.txt file is present in this folder.


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: [[:Media:register-values.txt | Example file]]
<syntaxhighlight lang="bash">
./DummyHardwareUdp.exe -p 50001 -v 2 -V
</syntaxhighlight>






== Additonal information ==
== Additonal information ==
For more information, please consult the IPbus wiki at: [https://ipbus.web.cern.ch/ipbus/doc/user/html/software/uhalQuickTutorial.html IPbus wiki]
For more information, please consult the IPbus wiki at: [https://ipbus.web.cern.ch/ipbus/doc/user/html/software/uhalQuickTutorial.html IPbus wiki]

Revision as of 13:55, 9 September 2020

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. Ipbus-conect6.png


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 NOTE: Remember to switch to the smartdummy branch.

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


How to Build on Ubuntu 20.04 LTS

REQUIRED PACKAGES

$ sudo apt update
$ sudo apt install git g++ make erlang python3 python-is-python3 libboost1.71-all-dev libpugixml-dev

BUILDING

In the directory where the repository have been downloaded:

$ make
$ sudo make install prefix=/home/user/ipbus-install

ADDING PATHS TO ENVIRORMENT

$ export LD_LIBRARY_PATH=/home/user/ipbus-install/lib:$LD_LIBRARY_PATH
$ export PYTHONPATH=/home/user/software-dev/ipbus-install/lib/python3.8/site-packages:$PYTHONPATH

RUNNING THE EMULATOR

Change directory to ipbus-install/bin/uhal/tests NOTE: Make sure the register-values.txt file is present in this folder.

./DummyHardwareUdp.exe -p 50001 -v 2 -V


Additonal information

For more information, please consult the IPbus wiki at: IPbus wiki