CAEN device driver out of date

Issue #12 resolved
Katie Wildflower created an issue

Hi all,

So, lately I was trying to compile a frontend using the dd_sy2527.c device driver, which uses the API provided by CAEN's wrappers. I had this working long ago with 32 bit architecture, but when compiling in 64 bit mode, the function to connect to the crate would always die with a 'connection failed' error; this was nothing to do with MIDAS, since I could get the same behaviour in a stand-alone toy program.

Turns out that there is a cryptic note in the CAEN wrapper changelog indicating a bugfix for something in its 64 bit object files, and when I updated the version of my CAEN wrapper (3.10 to 5.22), the connection problem went away. However, two problems arise:

-When trying to use the CAEN API, compiling a frontend throws several complaints like /home/griffin/Linux/include/CAENHVWrapper.h:230: error: expected identifier before numeric constant

Peeking in the CAEN header reveals that there are now namespace collisions between constants getting declared in midas.h and stuff in CAENHVWrapper.h; specifically, ALARM, SYNC and ASYNC make complaints like the one above. I changed the names in the CAEN header to force a compile, but of course this is terrible and will die as soon as CAEN tries to call on those now mis-named variables. Should we namespace everything in MIDAS more strictly? Or is there a better solution?

The other problem is more straightforward: all the functions used in the version of dd_sy2527.c that ships with MIDAS are now deprecated in CAEN 5.22.

So, things are nominally working but are really fragile.

Comments (3)

  1. Stefan Ritt

    Any progress on that? We should not keep issues open too long. Either fix it or declare it "resolved because not too important".

  2. Log in to comment