CAEN device driver out of date
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)
-
-
reporter - changed status to resolved
Okay - 'resolved' by way of no bandwidth to address right now.
-
Hi Bill,
can you please make issue
#4as resolved?https://bitbucket.org/tmidas/midas/issue/4
Thanks, Stefan
- Log in to comment
Any progress on that? We should not keep issues open too long. Either fix it or declare it "resolved because not too important".