GigE Camera Python Software Ported from LLO
This documents usage of Joe Betzweiser's SnapPy code for programatically controlling the GigE cameras (digital feeds, ability to save videos). The original code has been modified by Jon Richardson to use the "official" Python wrapping of the Basler Pylon5 C++ API, PyPylon.
The code is currently running only on rossa, but will eventually be implemented on every controls machine. It uses a client/server model in which the "server" Python process hosts a UDP video stream accessible to "client" Python processes via gstreamer.
Usage
1. Start the server:
$cd /opt/rtcds/caltech/c1/scripts/GigE/SnapPy_pypylon
$python camera_server.py -c C1-CAM-ETMX.ini [--gst-debug-level=3]
- where the -c flag specifies which camera to load. There is currently only one camera installed, at ETMX, but more config. files will be added as new cameras become available. Optionally add the last flag to print a LOT of gstreamer logger messages (set this only for debugging purposes).
2. Start the video stream client:
$cd /opt/rtcds/caltech/c1/scripts/GigE/SnapPy_pypylon
$python camera_client.py -c C1-CAM-ETMX.ini
to launch a live window of the feed.
OR
Start the movie-writing client:
$cd /opt/rtcds/caltech/c1/scripts/GigE/SnapPy_pypylon
$python camera_client_movie.py -c C1-CAM-ETMX.ini
Source Code
The source code can be cloned from: https://git.ligo.org/40m/GigE
Please push any new development back to this repo.
