Experimental Physics and
| |||||||||||||||||
|
Hi Steven,
On Fri, May 12, 2017 at 1:44 PM, Hartman, Steven M. <[email protected]> wrote: PyEpics needs to load the CA library (ca.dll) for all CA communication. It does this using the ctypes library, which is (mostly) cross-platform. My understanding is that it is available for IronPython, and the message implies it is partially working. In follow up to http://www.aps.anl.gov/epics/ I think the answer to the question in the subject line is: no one is working on this. But that's not a deliberate lack of support, and it doesn't mean it can't be done. I think it's just that no one has needed to do this, yet. The error message from the function `initialize_libca` in ca.py means that this initial connection to ca.dll is where the problem is. It looks like the DLL is found and loaded, and that at least some interaction with the DLL works, but that it fails doing: dbr.value_offset = (39*ctypes.c_short).in_dll(libca, 'dbr_value_offset') which is a ctypes Array trying to look inside the DLL (held in `libca`) for a particular value that's needed to unpack some of the CA data structures. The message looks like it's saying that ctypes Arrays don't have an `in_dll` method. I don't know why *that* is. From the perspective of "could pyepics ever work in IronPython", I'd say this is a pretty encouraging report -- it definitely didn't fail loading ca.dll! If the error with `in_dll` is the only problem, the solution is probably pretty easy. But, there might be other challenges with ctypes too, and it might take some work to get it to work fully. --Matt Newville
| ||||||||||||||||
ANJ, 21 Dec 2017 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing · |