diff --git a/csaxs_bec/device_configs/allied_vision_test.yaml b/csaxs_bec/device_configs/allied_vision_test.yaml index ac6c38b..d9f7a40 100644 --- a/csaxs_bec/device_configs/allied_vision_test.yaml +++ b/csaxs_bec/device_configs/allied_vision_test.yaml @@ -37,8 +37,8 @@ allied_vision_cam: description: AlliedVision Alvium G1-507m camera for live image acquisition (native Aravis/GigE Vision, no EPICS IOC) deviceClass: csaxs_bec.devices.allied_vision_cameras.AlliedVisionAravisCamera deviceConfig: - camera_id: "Allied Vision Technologies-50-0536885929" # Aravis device ID; resolved via discovery, independent of current IP - live_mode: True + camera_id: "Allied Vision-Alvium G1-507m-06J41" # Aravis device ID; resolved via discovery, independent of current IP + live_mode: False onFailure: raise enabled: true readoutPriority: async diff --git a/csaxs_bec/device_configs/bl_detectors.yaml b/csaxs_bec/device_configs/bl_detectors.yaml index 1d15c3a..9983d8a 100644 --- a/csaxs_bec/device_configs/bl_detectors.yaml +++ b/csaxs_bec/device_configs/bl_detectors.yaml @@ -37,7 +37,7 @@ eiger_1_5: # description: AlliedVision Alvium G1-507m camera for live image acquisition (native Aravis/GigE Vision, no EPICS IOC) # deviceClass: csaxs_bec.devices.allied_vision_cameras.AlliedVisionAravisCamera # deviceConfig: -# camera_id: "Allied Vision Technologies-50-0536885929" # Aravis device ID; resolved via discovery, independent of current IP +# camera_id: "Allied Vision-Alvium G1-507m-06J41" # Aravis device ID; resolved via discovery, independent of current IP # live_mode: True # onFailure: raise # enabled: true diff --git a/csaxs_bec/devices/allied_vision_cameras/README.md b/csaxs_bec/devices/allied_vision_cameras/README.md index fde5c5d..e0d1b43 100644 --- a/csaxs_bec/devices/allied_vision_cameras/README.md +++ b/csaxs_bec/devices/allied_vision_cameras/README.md @@ -29,8 +29,13 @@ needed). environment, same as the IDS camera tests run without `pyueye`. - **Talking to real hardware** — two things, both local to the machine running the device server (or wherever you instantiate `AlliedVisionAravisCamera`/`Camera` directly): - 1. **PyGObject** (`pygobject`, the `gi` module) — already listed in `pyproject.toml`. - It's the GObject Introspection bridge, not Aravis itself. + 1. **PyGObject** (`pygobject`, the `gi` module) — already listed in `pyproject.toml`, + pinned to `<3.52`. It's the GObject Introspection bridge, not Aravis itself. The pin + matters: PyGObject 3.52+ requires `girepository-2.0` (GLib >=2.80 / + gobject-introspection >=1.80), which RHEL9's system packages don't provide (only the + older `girepository-1.0` via `gobject-introspection` 1.68) — `pip install pygobject` + unpinned fails at build time with `Dependency 'girepository-2.0' is required but not + found`. Unpin once deployment hosts move to a newer GLib/gobject-introspection. 2. **Aravis** — a native C library with a GObject Introspection typelib. It is *not* a pip package; it comes from the system package manager (or building from source), same class of local, non-pip dependency as the Vimba X SDK would have been, or the DLLs diff --git a/pyproject.toml b/pyproject.toml index 8c0d472..3adeeaa 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -22,7 +22,12 @@ dependencies = [ "rich", "pyepics", "pyueye", # for the IDS uEye camera - "pygobject", # for the AlliedVision Alvium camera (native Aravis/GenICam, no EPICS IOC) + "pygobject<3.52", # for the AlliedVision Alvium camera (native Aravis/GenICam, no EPICS IOC) + # pinned below 3.52: that version switched to requiring + # girepository-2.0 (GLib >=2.80/gobject-introspection >=1.80), + # which RHEL9's system packages don't provide (only the older + # girepository-1.0 via gobject-introspection 1.68) -- unpin once + # deployment hosts are upgraded past that. "bec_widgets", "zmq", "opencv-python",