I succeeded in creating a new channel access server hosted on domenica ( R Pi) for continuous data acquisition from the FC into accessible channels. For this I have written a ctypes interface between EPICS and the C interface code to write data into the channels. The channels which I created are:
The scripts I have written for this can be found in:
db script in: /users/akhil/fcreadoutIoc/fcreadoutApp/Db/fcreadout.db
Python code: /users/akhil/fcreadoutIoc/pycall
C code: /users/akhil/fcreadoutIoc/FCinterfaceCcode.c
I will give the standard channel names(similar to the names on the channel root)once the testing is completed and confirm that data from FC is consistent with the C code readout. Once ready I will run the code forever so that both the server and data acquisition are in process always.
Yesterday, when I set out to test the channel, I faced few serious issues in booting the raspberry pi. However, I have backed up the files on the Pi and will try to debug the issue very soon( I will test with Eric Q's R Pi).
To run these codes one must be root ( sudo python pycall, sudo ./FCinterfaceCcode) because the HID- devices can be written to only by the root(should look into solving this issue).
Instructions for Installation of EPICS, and how to create channel server on Pi will be described in detail in 40m Wiki ( FOLL page).
controls@rossa|~ 2> ls /users/akhil/fcreadoutIoc
ls: cannot access /users/akhil/fcreadoutIoc: No such file or directory
This code should be in the 40m SVN somewhere, not just stored on the RPi.
I'm still confused why python is in the mix here at all. It doesn't make any sense at all that a C program (EPICS IOC) would be calling out to a python program (pycall) that then calls out to a C program (FCinterfaceCcode). That's bad programming. Streamline the program and get rid of python.
You also definitely need to fix whatever the issue is that requires running the program as root. We can't have programs like this run as root.
I tried making these changes but there was a problem with R pi boot again.I now know how to bypass the python code using IOC.I will make these changes once the problem with the Pi is fixed.