Skip to content

ICSHWI-13836: Fix usb functionality + cleanup

Carlos Neto requested to merge carlos into master

The usb communication on the current version of the wrapper is broken, this MR aims to fix it.

The main issue is a couple of missing vendor libraies which are loaded dynamically:

  • libandor, libd2xx_table and libUSBI2C are dynamically loaded by libshamrockcif
  • libusb (0.1) is dynamically loaded by libandor.

We want the wrapper to be as standalone as possible:

  1. Since a source code for libd2xx_table is available on the community module we add it directly.
  2. We are stuck with the vendor libraries provided; we copy them to e3 share and link against libadandor (not to be confused: libadandor and libandor).
  3. libusb (0.1) is host dependent, leave ld to to find it at runtime (most probably libusb package will need to be in ioc.yml)

Currently e3 environment dynamic library loading is broken, this prevents libusb from being loaded and consequently prevents the camera from being detected (running under vanilla EPICS we do not run into the issue - check ICS-776 for details).

I also added my finding on the shared libraries in the README file.

Edited by Carlos Neto

Merge request reports