Developer information

Installation

A bash script exists in order to automate the installation under debian OS. It is available in the internal esrf project: https://gitlab.esrf.fr/payno/install_tomwer

Unit tests

A set of unit test have been developed in order to maintain the application.

You can run then by calling pytest

pytest tomwer orangecontrib

Documentation

Documentation

In order to generate the full documentation (html + htmlhelp) you can go for:

python setup.py build build_sphinx -b htmlhelp,html

or

python -m build build_sphinx -b htmlhelp,html

Settings

Environment variable

Web

Workflow

Architecture

The idea is to decorelate the Graphical part of the processing part. So the project is containing the core package which should be able to process all the action without any call to qt.GUI infine.

Communication between bliss and tomwer

The communication between tomwer and bliss is insure via remote procedure call using json-rpc. Bliss is the client notifying about the advancement of the acquisition and tomwer is the server, able to launch some processing when an acquisition is finished.

This architecture avoid us the dependency to bliss and should insure an easier communication through version of both software with time.

API

None graphical workflow

we can launch orange workflows from command line by using the interpreter

But you should follow the structure :

orangecontrib.esrf.core.xxx orangecontrib.esrf.widgets.xxxWidgets

orangecontrib.esrf.core should be Qt free.

Release

To create a release we simply run :

python setup.py bdist_wheel --universal

As we don’t have any compile code we can create a universal wheel installable every where.

Just make sure you have wheel installed :

pip install wheel

Videos

Several demo videos have been created for tomwer. They are all available from https://www.youtube.com/@tomotools To simply add the logo to a video you can use ffmpeg:

ffmpeg -i input.mp4 -i tomwer/resources/gui/icons/tomwer.png -filter_complex "[0:v][1:v] overlay=1700:900:enable='between(t,0,20)'" -pix_fmt yuv420p -c:a copy output.mp4

Orange Settings

Orange settings are stored under .local for example:

rm /users/opid19/.local/share/Orange/3.5.0.dev/widgets/[WidgetPath].pickle

This is where the widgets settings are stored. In the case of the Ftseries, if the structure of the FastSetupDefaultGlobal is evolving you will have to remove this file in order to reset the new parameters set.