Compare commits
15 Commits
cafe-1.8.0
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 372b09651a | |||
| 7b2a786739 | |||
| 9b455dfefb | |||
| a2d636e215 | |||
| e50115776d | |||
| fdd124905b | |||
| 5c7be056d6 | |||
| aded1d5ed7 | |||
| 8cf1e68db0 | |||
| 22f3cfa655 | |||
| eaf1167a81 | |||
| 56fe465ee4 | |||
| 03c8a5294e | |||
| 662a7257e8 | |||
| 39607b33e2 |
8038
#PyCafe.pyx#
Normal file
8038
#PyCafe.pyx#
Normal file
File diff suppressed because it is too large
Load Diff
18
.gitignore
vendored
18
.gitignore
vendored
@@ -1,5 +1,15 @@
|
||||
build
|
||||
python-3.5/*.cpp
|
||||
python-3.5/*.so
|
||||
python-3.5/*.*~
|
||||
python-3.5/SL6-x86_64
|
||||
#*#
|
||||
.#.#
|
||||
*.*~
|
||||
*.*-*
|
||||
*.*+*
|
||||
python3.5
|
||||
python3.5-sf
|
||||
python3.5-sls2
|
||||
python3.7
|
||||
python3.7-sf
|
||||
python3.7-sls2
|
||||
python3.10
|
||||
python3.10-sf
|
||||
python3.10-sls2
|
||||
|
||||
168618
PyCafe.cpp
Normal file
168618
PyCafe.cpp
Normal file
File diff suppressed because it is too large
Load Diff
41
PyCafe.h
Normal file
41
PyCafe.h
Normal file
@@ -0,0 +1,41 @@
|
||||
/* Generated by Cython 0.29.2 */
|
||||
|
||||
#ifndef __PYX_HAVE__PyCafe
|
||||
#define __PYX_HAVE__PyCafe
|
||||
|
||||
|
||||
#ifndef __PYX_HAVE_API__PyCafe
|
||||
|
||||
#ifndef __PYX_EXTERN_C
|
||||
#ifdef __cplusplus
|
||||
#define __PYX_EXTERN_C extern "C"
|
||||
#else
|
||||
#define __PYX_EXTERN_C extern
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef DL_IMPORT
|
||||
#define DL_IMPORT(_T) _T
|
||||
#endif
|
||||
|
||||
__PYX_EXTERN_C void cy_monitor_handler_wrapper(void *);
|
||||
__PYX_EXTERN_C void cy_data_event_handler_wrapper(void *, unsigned int, std::string, PVDataHolder);
|
||||
__PYX_EXTERN_C void cy_ctrl_event_handler_wrapper(void *, unsigned int, std::string, PVCtrlHolder);
|
||||
__PYX_EXTERN_C void cy_event_handler_wrapper(void *, unsigned int, std::string);
|
||||
__PYX_EXTERN_C void cy_handle_handler_wrapper(void *, unsigned int);
|
||||
__PYX_EXTERN_C void cy_connect_handler_wrapper(void *, unsigned int, std::string, int);
|
||||
__PYX_EXTERN_C void cy_cb_handle_get_wrapper(void *, unsigned int);
|
||||
__PYX_EXTERN_C void cy_cb_handle_put_wrapper(void *, unsigned int);
|
||||
|
||||
#endif /* !__PYX_HAVE_API__PyCafe */
|
||||
|
||||
/* WARNING: the interface of the module init function changed in CPython 3.5. */
|
||||
/* It now returns a PyModuleDef instance instead of a PyModule instance. */
|
||||
|
||||
#if PY_MAJOR_VERSION < 3
|
||||
PyMODINIT_FUNC initPyCafe(void);
|
||||
#else
|
||||
PyMODINIT_FUNC PyInit_PyCafe(void);
|
||||
#endif
|
||||
|
||||
#endif /* !__PYX_HAVE__PyCafe */
|
||||
59358
PyCafe.html
Normal file
59358
PyCafe.html
Normal file
File diff suppressed because it is too large
Load Diff
1280
PyCafe.pxd
1280
PyCafe.pxd
File diff suppressed because it is too large
Load Diff
1
PyCafe.pxd
Symbolic link
1
PyCafe.pxd
Symbolic link
@@ -0,0 +1 @@
|
||||
PyCafe_sls.pxd
|
||||
6542
PyCafe.pyx
6542
PyCafe.pyx
File diff suppressed because it is too large
Load Diff
1
PyCafe.pyx
Symbolic link
1
PyCafe.pyx
Symbolic link
@@ -0,0 +1 @@
|
||||
PyCafe_sls.pyx
|
||||
18559
PyCafeDefs.html
Normal file
18559
PyCafeDefs.html
Normal file
File diff suppressed because it is too large
Load Diff
1513
PyCafeDefs.pxi
1513
PyCafeDefs.pxi
File diff suppressed because it is too large
Load Diff
1
PyCafeDefs.pxi
Symbolic link
1
PyCafeDefs.pxi
Symbolic link
@@ -0,0 +1 @@
|
||||
PyCafeDefs_py37.pxi
|
||||
1456
PyCafeDefs.pxi++++
Normal file
1456
PyCafeDefs.pxi++++
Normal file
File diff suppressed because it is too large
Load Diff
1456
PyCafeDefs_all.pxi
Normal file
1456
PyCafeDefs_all.pxi
Normal file
File diff suppressed because it is too large
Load Diff
94
PyCafeDefs_api.pxi
Normal file
94
PyCafeDefs_api.pxi
Normal file
@@ -0,0 +1,94 @@
|
||||
|
||||
cdef object py_cb_handle = None
|
||||
cdef object py_cb_handle_open = None
|
||||
|
||||
# ***********public or api***************
|
||||
|
||||
cdef api void py_cb_wrapper(PVDataHolder pvd, unsigned int handle, string pvname) with gil:
|
||||
#print(" py_cb_wrapper ====================================================+++++++++++++++PVDATA++++++= Handle/PVNAME :", handle, pvname)
|
||||
cdef pvdata pv1 = PVDataHolderToStruct(pvd)
|
||||
|
||||
for cbobjt, v in handleMonDictGlobal.items():
|
||||
if v == handle:
|
||||
cbobjt(pv1, handle, pvname)
|
||||
with nogil:
|
||||
return
|
||||
|
||||
cdef api void py_cb_ctrl_wrapper(PVCtrlHolder pvc, unsigned int handle, string pvname) with gil:
|
||||
#print(" py_cb_ctrl_wrapper ====================================================+++++++++++++++++CTRL+++++= Handle/PVNAME :", handle, pvname)
|
||||
cdef pvctrl c1 = PVCtrlHolderToStruct(pvc)
|
||||
|
||||
for cbobjt, v in handleMonDictGlobal.items():
|
||||
if v == handle:
|
||||
cbobjt(c1, handle, pvname)
|
||||
|
||||
with nogil:
|
||||
return
|
||||
|
||||
cdef api void py_cb_handle_wrapper(unsigned int handle) with gil:
|
||||
#print(" py_cb_handle_wrapper ====================================================+++++++++++++++++HANDLE+++++= Handle :", handle)
|
||||
py_cb_handle(handle)
|
||||
with nogil:
|
||||
return
|
||||
|
||||
|
||||
# Default
|
||||
cdef api void py_cb_handle_monid_wrapper(unsigned int handle, unsigned long monid) with gil:
|
||||
#print(" py_cb_handle_monid_wrapper ====================================================+++++++++++++MONID++++++++++= Handle:", handle)
|
||||
# if monDictGlobal.has_key(monid):
|
||||
if monid in monDictGlobal.keys():
|
||||
cbobjt = monDictGlobal[monid]
|
||||
cbobjt(handle)
|
||||
else:
|
||||
print("CALLBACK NOT FOUND FOR handle/monid", handle, monid)
|
||||
with nogil:
|
||||
return
|
||||
|
||||
|
||||
cdef api void py_cb_handle_get_wrapper(unsigned int handle) with gil:
|
||||
#print(" py_cb_handle_get_wrapper ====================================================+++++++++++++GET++++++++++= Handle:", handle)
|
||||
# py_cb_handle_get(handle)
|
||||
if handle in getDictGlobal.keys():
|
||||
cbobjt = getDictGlobal[handle]
|
||||
cbobjt(handle)
|
||||
else:
|
||||
print("GET CALLBACK NOT FOUND FOR handle", handle)
|
||||
|
||||
with nogil:
|
||||
return
|
||||
|
||||
cdef api void py_cb_handle_put_wrapper(unsigned int handle) with gil:
|
||||
#print(" py_cb_handle_put_wrapper ====================================================+++++++++++++PUT++++++++++= Handle:", handle)
|
||||
# py_cb_handle_put(handle)
|
||||
if handle in putDictGlobal.keys():
|
||||
cbobjt = putDictGlobal[handle]
|
||||
cbobjt(handle)
|
||||
else:
|
||||
print("PUT CALLBACK NOT FOUND FOR handle", handle)
|
||||
|
||||
with nogil:
|
||||
return
|
||||
|
||||
|
||||
cdef api void py_cb_handle_open_wrapper(unsigned int handle, int status) with gil:
|
||||
# status reports ICAFE_CS_CONN (602) or ICAFE_CS_DISCONN (604)
|
||||
#print(" py_cb_handle_open_wrapper ====================================================+++++++++++++OPEN++++++++++= Handle/Status:", handle, status)
|
||||
py_cb_handle_open(handle, status)
|
||||
with nogil:
|
||||
return
|
||||
|
||||
cdef api void py_cb_handle_connect_wrapper(unsigned int handle, string pvname, int status) with gil:
|
||||
print(" py_cb_handle_connect_wrapper ===========================+++CONNECT++++++++++= Handle/PV/Status:", handle, pvname, status)
|
||||
#py_cb_handle_connect(handle, pvname, status)
|
||||
|
||||
for k, y in openDictGlobal.items():
|
||||
print(k, y)
|
||||
# if openDictGlobal.has_key(pvname):
|
||||
if str(pvname) in openDictGlobal.keys():
|
||||
cbobjt = openDictGlobal[pvname]
|
||||
cbobjt(handle, pvname, status)
|
||||
with nogil:
|
||||
return
|
||||
|
||||
|
||||
# ***********api***************
|
||||
2119
PyCafeDefs_api_full.pxi
Normal file
2119
PyCafeDefs_api_full.pxi
Normal file
File diff suppressed because it is too large
Load Diff
1323
PyCafeDefs_pub.html
Normal file
1323
PyCafeDefs_pub.html
Normal file
File diff suppressed because it is too large
Load Diff
113
PyCafeDefs_pub.pxi
Normal file
113
PyCafeDefs_pub.pxi
Normal file
@@ -0,0 +1,113 @@
|
||||
|
||||
cdef object py_cb_handle = None
|
||||
cdef object py_cb_handle_open = None
|
||||
|
||||
cdef object cbobjt = None
|
||||
|
||||
# ***********public or api***************
|
||||
# For when with pvdata
|
||||
|
||||
|
||||
cdef public void cy_monitor_handler_wrapper(void * callback) with gil:
|
||||
cbobjt=<object> (<void *> callback)
|
||||
cbobjt()
|
||||
with nogil:
|
||||
return
|
||||
|
||||
|
||||
cdef public void cy_data_event_handler_wrapper(void * callback,
|
||||
unsigned int handle,
|
||||
string pvname,
|
||||
PVDataHolder pvd) with gil:
|
||||
|
||||
global py_cb
|
||||
|
||||
#print(" cy_data_event_handler_wrapper=====+++++++++++++++PVDATA++++++(1)= Handle/PVNAME :", handle, pvname)
|
||||
cdef pvdata data = PVDataHolderToStruct(pvd)
|
||||
try:
|
||||
#data.show()
|
||||
py_cb = <object>(<void *> callback)
|
||||
#print(" cy_data_event_handler_wrapper=====+++++++++++++++PVDATA++++++(2)= Handle/PVNAME :", handle, pvname)
|
||||
##cdef HandleHelper hh
|
||||
## mpid = hh.getUsrArgsAsUInt(handle)
|
||||
#print("monitorId", mpid)
|
||||
#monDictGlobal[mpid](handle, pvname, data)
|
||||
<object>py_cb(handle, pvname, data)
|
||||
|
||||
#if monDictGlobal[mpid] != <object>py_cb:
|
||||
# print( monDictGlobal[mpid])
|
||||
# print( <object>py_cb)
|
||||
except TypeError:
|
||||
pass
|
||||
|
||||
with nogil:
|
||||
return
|
||||
|
||||
|
||||
cdef public void cy_ctrl_event_handler_wrapper(void * callback,
|
||||
unsigned int handle,
|
||||
string pvname,
|
||||
PVCtrlHolder pvc) with gil:
|
||||
|
||||
#print(" cy_data_event_handler_wrapper=====+++++++++++++++PVCTRL++++++= Handle/PVNAME :", handle, pvname)
|
||||
cdef pvctrl data = PVCtrlHolderToStruct(pvc)
|
||||
cbobjt=<object> (<void *> callback)
|
||||
cbobjt(handle, pvname, data)
|
||||
with nogil:
|
||||
return
|
||||
|
||||
|
||||
cdef public void cy_event_handler_wrapper(void * callback,
|
||||
unsigned int handle,
|
||||
string pvname) with gil:
|
||||
#print(" cy_event_handler_wrapper=====+++++++++++++++HANDLEPV++++++= Handle/PVNAME :", handle, pvname)
|
||||
#(<object>args[0])(<int>args[1], <string>args[2])
|
||||
cbobjt=<object> callback
|
||||
#cbobjt=<object>args[0]
|
||||
cbobjt(handle, pvname)
|
||||
#cbobjt=<object>(<int>args[0], pvname)
|
||||
|
||||
with nogil:
|
||||
return
|
||||
|
||||
cdef public void cy_handle_handler_wrapper(void * callback,
|
||||
unsigned int handle) with gil:
|
||||
#print(" cy_handle_handler_wrapper=====+++++++++++++++HANDLEPV++++++= Handle:", handle)
|
||||
|
||||
cbobjt=<object> callback
|
||||
cbobjt(handle)
|
||||
with nogil:
|
||||
return
|
||||
|
||||
cdef public void cy_connect_handler_wrapper(void * callback,
|
||||
unsigned int handle,
|
||||
string pvname,
|
||||
int status) with gil:
|
||||
#print(" cy_connect_handler_wrapper ====+++CONNECT++++++++++= Handle/PV/Status:", handle, pvname, status)
|
||||
#print(" callback is ", <object> callback)
|
||||
|
||||
if callback:
|
||||
cbobjt=<object> callback
|
||||
cbobjt(handle, pvname, status)
|
||||
|
||||
with nogil:
|
||||
return
|
||||
|
||||
|
||||
cdef public void cy_cb_handle_get_wrapper(void * callback, unsigned int handle) with gil:
|
||||
print(" py_cb_handle_get_wrapper+++++++++++++GET++++++++++= Handle:", handle)
|
||||
cbobjt=<object> (<void *> callback)
|
||||
cbobjt(handle)
|
||||
with nogil:
|
||||
return
|
||||
|
||||
|
||||
cdef public void cy_cb_handle_put_wrapper(void * callback, unsigned int handle) with gil:
|
||||
#print(" py_cb_handle_put_wrapper+++++++++++++PUT++++++++++= Handle:", handle)
|
||||
cbobjt=<object> (<void *> callback)
|
||||
cbobjt(handle)
|
||||
with nogil:
|
||||
return
|
||||
|
||||
|
||||
# ***********public***************
|
||||
110
PyCafeDefs_pub.pxi+
Normal file
110
PyCafeDefs_pub.pxi+
Normal file
@@ -0,0 +1,110 @@
|
||||
|
||||
cdef object py_cb_handle = None
|
||||
cdef object py_cb_handle_open = None
|
||||
|
||||
cdef object cbobjt = None
|
||||
|
||||
# ***********public or api***************
|
||||
# For when with pvdata
|
||||
|
||||
|
||||
cdef public void cy_monitor_handler_wrapper(void * callback) with gil:
|
||||
cbobjt=<object> (<void *> callback)
|
||||
print("CALLED")
|
||||
cbobjt()
|
||||
with nogil:
|
||||
return
|
||||
|
||||
|
||||
cdef public void cy_data_event_handler_wrapper(void * callback,
|
||||
unsigned int handle,
|
||||
string pvname,
|
||||
PVDataHolder pvd) with gil:
|
||||
|
||||
global py_cb
|
||||
#print(" cy_data_event_handler_wrapper=====+++++++++++++++PVDATA++++++(1)= Handle/PVNAME :", handle, pvname)
|
||||
cdef pvdata data = PVDataHolderToStruct(pvd)
|
||||
#data.show()
|
||||
py_cb = <object>(<void *> callback)
|
||||
#print(" cy_data_event_handler_wrapper=====+++++++++++++++PVDATA++++++(2)= Handle/PVNAME :", handle, pvname)
|
||||
cdef HandleHelper hh
|
||||
mpid = hh.getUsrArgsAsUInt(handle)
|
||||
#print("monitorId", mpid)
|
||||
#monDictGlobal[mpid](handle, pvname, data)
|
||||
<object>py_cb(handle, pvname, data)
|
||||
|
||||
#if monDictGlobal[mpid] != <object>py_cb:
|
||||
# print( monDictGlobal[mpid])
|
||||
# print( <object>py_cb)
|
||||
|
||||
with nogil:
|
||||
return
|
||||
|
||||
|
||||
cdef public void cy_ctrl_event_handler_wrapper(void * callback,
|
||||
unsigned int handle,
|
||||
string pvname,
|
||||
PVCtrlHolder pvc) with gil:
|
||||
|
||||
#print(" cy_data_event_handler_wrapper=====+++++++++++++++PVCTRL++++++= Handle/PVNAME :", handle, pvname)
|
||||
cdef pvctrl data = PVCtrlHolderToStruct(pvc)
|
||||
cbobjt=<object> (<void *> callback)
|
||||
cbobjt(handle, pvname, data)
|
||||
with nogil:
|
||||
return
|
||||
|
||||
|
||||
cdef public void cy_event_handler_wrapper(void * callback,
|
||||
unsigned int handle,
|
||||
string pvname) with gil:
|
||||
#print(" cy_event_handler_wrapper=====+++++++++++++++HANDLEPV++++++= Handle/PVNAME :", handle, pvname)
|
||||
#(<object>args[0])(<int>args[1], <string>args[2])
|
||||
cbobjt=<object> callback
|
||||
#cbobjt=<object>args[0]
|
||||
cbobjt(handle, pvname)
|
||||
#cbobjt=<object>(<int>args[0], pvname)
|
||||
|
||||
with nogil:
|
||||
return
|
||||
|
||||
cdef public void cy_handle_handler_wrapper(void * callback,
|
||||
unsigned int handle) with gil:
|
||||
#print(" cy_handle_handler_wrapper=====+++++++++++++++HANDLEPV++++++= Handle:", handle)
|
||||
|
||||
cbobjt=<object> callback
|
||||
cbobjt(handle)
|
||||
with nogil:
|
||||
return
|
||||
|
||||
cdef public void cy_connect_handler_wrapper(void * callback,
|
||||
unsigned int handle,
|
||||
string pvname,
|
||||
int status) with gil:
|
||||
#print(" cy_connect_handler_wrapper ====+++CONNECT++++++++++= Handle/PV/Status:", handle, pvname, status)
|
||||
#print(" callback is ", <object> callback)
|
||||
|
||||
if callback:
|
||||
cbobjt=<object> callback
|
||||
cbobjt(handle, pvname, status)
|
||||
|
||||
with nogil:
|
||||
return
|
||||
|
||||
|
||||
cdef public void cy_cb_handle_get_wrapper(void * callback, unsigned int handle) with gil:
|
||||
print(" py_cb_handle_get_wrapper+++++++++++++GET++++++++++= Handle:", handle)
|
||||
cbobjt=<object> (<void *> callback)
|
||||
cbobjt(handle)
|
||||
with nogil:
|
||||
return
|
||||
|
||||
|
||||
cdef public void cy_cb_handle_put_wrapper(void * callback, unsigned int handle) with gil:
|
||||
#print(" py_cb_handle_put_wrapper+++++++++++++PUT++++++++++= Handle:", handle)
|
||||
cbobjt=<object> (<void *> callback)
|
||||
cbobjt(handle)
|
||||
with nogil:
|
||||
return
|
||||
|
||||
|
||||
# ***********public***************
|
||||
109
PyCafeDefs_pub.pxi_06March2024
Normal file
109
PyCafeDefs_pub.pxi_06March2024
Normal file
@@ -0,0 +1,109 @@
|
||||
|
||||
cdef object py_cb_handle = None
|
||||
cdef object py_cb_handle_open = None
|
||||
|
||||
cdef object cbobjt = None
|
||||
|
||||
# ***********public or api***************
|
||||
# For when with pvdata
|
||||
|
||||
|
||||
cdef public void cy_monitor_handler_wrapper(void * callback) with gil:
|
||||
cbobjt=<object> (<void *> callback)
|
||||
cbobjt()
|
||||
with nogil:
|
||||
return
|
||||
|
||||
|
||||
cdef public void cy_data_event_handler_wrapper(void * callback,
|
||||
unsigned int handle,
|
||||
string pvname,
|
||||
PVDataHolder pvd) with gil:
|
||||
|
||||
global py_cb
|
||||
#print(" cy_data_event_handler_wrapper=====+++++++++++++++PVDATA++++++(1)= Handle/PVNAME :", handle, pvname)
|
||||
cdef pvdata data = PVDataHolderToStruct(pvd)
|
||||
#data.show()
|
||||
py_cb = <object>(<void *> callback)
|
||||
#print(" cy_data_event_handler_wrapper=====+++++++++++++++PVDATA++++++(2)= Handle/PVNAME :", handle, pvname)
|
||||
cdef HandleHelper hh
|
||||
mpid = hh.getUsrArgsAsUInt(handle)
|
||||
#print("monitorId", mpid)
|
||||
#monDictGlobal[mpid](handle, pvname, data)
|
||||
<object>py_cb(handle, pvname, data)
|
||||
|
||||
#if monDictGlobal[mpid] != <object>py_cb:
|
||||
# print( monDictGlobal[mpid])
|
||||
# print( <object>py_cb)
|
||||
|
||||
with nogil:
|
||||
return
|
||||
|
||||
|
||||
cdef public void cy_ctrl_event_handler_wrapper(void * callback,
|
||||
unsigned int handle,
|
||||
string pvname,
|
||||
PVCtrlHolder pvc) with gil:
|
||||
|
||||
#print(" cy_data_event_handler_wrapper=====+++++++++++++++PVCTRL++++++= Handle/PVNAME :", handle, pvname)
|
||||
cdef pvctrl data = PVCtrlHolderToStruct(pvc)
|
||||
cbobjt=<object> (<void *> callback)
|
||||
cbobjt(handle, pvname, data)
|
||||
with nogil:
|
||||
return
|
||||
|
||||
|
||||
cdef public void cy_event_handler_wrapper(void * callback,
|
||||
unsigned int handle,
|
||||
string pvname) with gil:
|
||||
#print(" cy_event_handler_wrapper=====+++++++++++++++HANDLEPV++++++= Handle/PVNAME :", handle, pvname)
|
||||
#(<object>args[0])(<int>args[1], <string>args[2])
|
||||
cbobjt=<object> callback
|
||||
#cbobjt=<object>args[0]
|
||||
cbobjt(handle, pvname)
|
||||
#cbobjt=<object>(<int>args[0], pvname)
|
||||
|
||||
with nogil:
|
||||
return
|
||||
|
||||
cdef public void cy_handle_handler_wrapper(void * callback,
|
||||
unsigned int handle) with gil:
|
||||
#print(" cy_handle_handler_wrapper=====+++++++++++++++HANDLEPV++++++= Handle:", handle)
|
||||
|
||||
cbobjt=<object> callback
|
||||
cbobjt(handle)
|
||||
with nogil:
|
||||
return
|
||||
|
||||
cdef public void cy_connect_handler_wrapper(void * callback,
|
||||
unsigned int handle,
|
||||
string pvname,
|
||||
int status) with gil:
|
||||
#print(" cy_connect_handler_wrapper ====+++CONNECT++++++++++= Handle/PV/Status:", handle, pvname, status)
|
||||
#print(" callback is ", <object> callback)
|
||||
|
||||
if callback:
|
||||
cbobjt=<object> callback
|
||||
cbobjt(handle, pvname, status)
|
||||
|
||||
with nogil:
|
||||
return
|
||||
|
||||
|
||||
cdef public void cy_cb_handle_get_wrapper(void * callback, unsigned int handle) with gil:
|
||||
print(" py_cb_handle_get_wrapper+++++++++++++GET++++++++++= Handle:", handle)
|
||||
cbobjt=<object> (<void *> callback)
|
||||
cbobjt(handle)
|
||||
with nogil:
|
||||
return
|
||||
|
||||
|
||||
cdef public void cy_cb_handle_put_wrapper(void * callback, unsigned int handle) with gil:
|
||||
#print(" py_cb_handle_put_wrapper+++++++++++++PUT++++++++++= Handle:", handle)
|
||||
cbobjt=<object> (<void *> callback)
|
||||
cbobjt(handle)
|
||||
with nogil:
|
||||
return
|
||||
|
||||
|
||||
# ***********public***************
|
||||
1456
PyCafeDefs_py35.pxi
Normal file
1456
PyCafeDefs_py35.pxi
Normal file
File diff suppressed because it is too large
Load Diff
1456
PyCafeDefs_py37.pxi
Normal file
1456
PyCafeDefs_py37.pxi
Normal file
File diff suppressed because it is too large
Load Diff
23379
PyCafeDefs_sf.html
Normal file
23379
PyCafeDefs_sf.html
Normal file
File diff suppressed because it is too large
Load Diff
1857
PyCafeDefs_sf.pxi
Normal file
1857
PyCafeDefs_sf.pxi
Normal file
File diff suppressed because it is too large
Load Diff
0
PyCafe_sf.html
Normal file
0
PyCafe_sf.html
Normal file
1455
PyCafe_sf.pxd
Normal file
1455
PyCafe_sf.pxd
Normal file
File diff suppressed because it is too large
Load Diff
8081
PyCafe_sf.pyx
Normal file
8081
PyCafe_sf.pyx
Normal file
File diff suppressed because it is too large
Load Diff
7708
PyCafe_sf.pyx+
Normal file
7708
PyCafe_sf.pyx+
Normal file
File diff suppressed because it is too large
Load Diff
7679
PyCafe_sf.pyx+++
Normal file
7679
PyCafe_sf.pyx+++
Normal file
File diff suppressed because it is too large
Load Diff
1393
PyCafe_sls.pxd
Normal file
1393
PyCafe_sls.pxd
Normal file
File diff suppressed because it is too large
Load Diff
8084
PyCafe_sls.pyx
Normal file
8084
PyCafe_sls.pyx
Normal file
File diff suppressed because it is too large
Load Diff
8037
PyCafe_sls.pyx++++
Normal file
8037
PyCafe_sls.pyx++++
Normal file
File diff suppressed because it is too large
Load Diff
7953
PyCafe_sls.pyx++++WithPrint
Normal file
7953
PyCafe_sls.pyx++++WithPrint
Normal file
File diff suppressed because it is too large
Load Diff
7953
PyCafe_sls.pyx_buff
Normal file
7953
PyCafe_sls.pyx_buff
Normal file
File diff suppressed because it is too large
Load Diff
8044
PyCafe_sls_py35.pyx
Normal file
8044
PyCafe_sls_py35.pyx
Normal file
File diff suppressed because it is too large
Load Diff
25
README
Normal file
25
README
Normal file
@@ -0,0 +1,25 @@
|
||||
######
|
||||
# Build for python 3.10:
|
||||
# source build_py310_sls2.sh - links to epics7 gcc 7.5.0
|
||||
|
||||
# Build for python 3.8:
|
||||
# source build_py38_sls2.sh - links to epics7 gcc 7.5.0
|
||||
|
||||
# Build for python 3.7:
|
||||
# source build_py37_sls2.sh - links to epics7 gcc 7.3.0
|
||||
#
|
||||
# Build for python 3.5:
|
||||
# source build_py35_sls2.sh - links to epics7 gcc 7.3.0
|
||||
#
|
||||
# Special build for swissfel - with zmq libraries:
|
||||
# source build_py37_sf.sh - links to epics7 gcc 7.3.0
|
||||
#
|
||||
### Edit makefile to change INSTALL_PATH
|
||||
### Install directory:
|
||||
# ./python<version>/lib/${EPICS_HOST_ARCH}
|
||||
# where <version> is 3.10-sls2, 3.9-sls2 3.8-sls2, 3.7-sls2
|
||||
# 3.5-sls2, 3.7-sf
|
||||
|
||||
|
||||
# make install_py37_sls
|
||||
#
|
||||
378
array-
Normal file
378
array-
Normal file
@@ -0,0 +1,378 @@
|
||||
// <array> -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2007-2017 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 3, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// Under Section 7 of GPL version 3, you are granted additional
|
||||
// permissions described in the GCC Runtime Library Exception, version
|
||||
// 3.1, as published by the Free Software Foundation.
|
||||
|
||||
// You should have received a copy of the GNU General Public License and
|
||||
// a copy of the GCC Runtime Library Exception along with this program;
|
||||
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
// <http://www.gnu.org/licenses/>.
|
||||
|
||||
/** @file include/array
|
||||
* This is a Standard C++ Library header.
|
||||
*/
|
||||
|
||||
#ifndef _GLIBCXX_ARRAY
|
||||
#define _GLIBCXX_ARRAY 1
|
||||
|
||||
#pragma GCC system_header
|
||||
|
||||
#if __cplusplus < 201103L
|
||||
# include <bits/c++0x_warning.h>
|
||||
#else
|
||||
|
||||
#include <utility>
|
||||
#include <stdexcept>
|
||||
#include <bits/stl_algobase.h>
|
||||
#include <bits/range_access.h>
|
||||
|
||||
namespace std _GLIBCXX_VISIBILITY(default)
|
||||
{
|
||||
_GLIBCXX_BEGIN_NAMESPACE_CONTAINER
|
||||
|
||||
template<typename _Tp, std::size_t _Nm>
|
||||
struct __array_traits
|
||||
{
|
||||
typedef _Tp _Type[_Nm];
|
||||
typedef __is_swappable<_Tp> _Is_swappable;
|
||||
typedef __is_nothrow_swappable<_Tp> _Is_nothrow_swappable;
|
||||
|
||||
static constexpr _Tp&
|
||||
_S_ref(const _Type& __t, std::size_t __n) noexcept
|
||||
{ return const_cast<_Tp&>(__t[__n]); }
|
||||
|
||||
static constexpr _Tp*
|
||||
_S_ptr(const _Type& __t) noexcept
|
||||
{ return const_cast<_Tp*>(__t); }
|
||||
};
|
||||
|
||||
template<typename _Tp>
|
||||
struct __array_traits<_Tp, 0>
|
||||
{
|
||||
struct _Type { };
|
||||
typedef true_type _Is_swappable;
|
||||
typedef true_type _Is_nothrow_swappable;
|
||||
|
||||
static constexpr _Tp&
|
||||
_S_ref(const _Type&, std::size_t) noexcept
|
||||
{ return *static_cast<_Tp*>(nullptr); }
|
||||
|
||||
static constexpr _Tp*
|
||||
_S_ptr(const _Type&) noexcept
|
||||
{ return nullptr; }
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief A standard container for storing a fixed size sequence of elements.
|
||||
*
|
||||
* @ingroup sequences
|
||||
*
|
||||
* Meets the requirements of a <a href="tables.html#65">container</a>, a
|
||||
* <a href="tables.html#66">reversible container</a>, and a
|
||||
* <a href="tables.html#67">sequence</a>.
|
||||
*
|
||||
* Sets support random access iterators.
|
||||
*
|
||||
* @tparam Tp Type of element. Required to be a complete type.
|
||||
* @tparam N Number of elements.
|
||||
*/
|
||||
template<typename _Tp, std::size_t _Nm>
|
||||
struct array
|
||||
{
|
||||
typedef _Tp value_type;
|
||||
typedef value_type* pointer;
|
||||
typedef const value_type* const_pointer;
|
||||
typedef value_type& reference;
|
||||
typedef const value_type& const_reference;
|
||||
typedef value_type* iterator;
|
||||
typedef const value_type* const_iterator;
|
||||
typedef std::size_t size_type;
|
||||
typedef std::ptrdiff_t difference_type;
|
||||
typedef std::reverse_iterator<iterator> reverse_iterator;
|
||||
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
|
||||
|
||||
// Support for zero-sized arrays mandatory.
|
||||
typedef _GLIBCXX_STD_C::__array_traits<_Tp, _Nm> _AT_Type;
|
||||
typename _AT_Type::_Type _M_elems;
|
||||
|
||||
// No explicit construct/copy/destroy for aggregate type.
|
||||
|
||||
// DR 776.
|
||||
void
|
||||
fill(const value_type& __u)
|
||||
{ std::fill_n(begin(), size(), __u); }
|
||||
|
||||
void
|
||||
swap(array& __other)
|
||||
noexcept(_AT_Type::_Is_nothrow_swappable::value)
|
||||
{ std::swap_ranges(begin(), end(), __other.begin()); }
|
||||
|
||||
// Iterators.
|
||||
_GLIBCXX17_CONSTEXPR iterator
|
||||
begin() noexcept
|
||||
{ return iterator(data()); }
|
||||
|
||||
_GLIBCXX17_CONSTEXPR const_iterator
|
||||
begin() const noexcept
|
||||
{ return const_iterator(data()); }
|
||||
|
||||
_GLIBCXX17_CONSTEXPR iterator
|
||||
end() noexcept
|
||||
{ return iterator(data() + _Nm); }
|
||||
|
||||
_GLIBCXX17_CONSTEXPR const_iterator
|
||||
end() const noexcept
|
||||
{ return const_iterator(data() + _Nm); }
|
||||
|
||||
_GLIBCXX17_CONSTEXPR reverse_iterator
|
||||
rbegin() noexcept
|
||||
{ return reverse_iterator(end()); }
|
||||
|
||||
_GLIBCXX17_CONSTEXPR const_reverse_iterator
|
||||
rbegin() const noexcept
|
||||
{ return const_reverse_iterator(end()); }
|
||||
|
||||
_GLIBCXX17_CONSTEXPR reverse_iterator
|
||||
rend() noexcept
|
||||
{ return reverse_iterator(begin()); }
|
||||
|
||||
_GLIBCXX17_CONSTEXPR const_reverse_iterator
|
||||
rend() const noexcept
|
||||
{ return const_reverse_iterator(begin()); }
|
||||
|
||||
_GLIBCXX17_CONSTEXPR const_iterator
|
||||
cbegin() const noexcept
|
||||
{ return const_iterator(data()); }
|
||||
|
||||
_GLIBCXX17_CONSTEXPR const_iterator
|
||||
cend() const noexcept
|
||||
{ return const_iterator(data() + _Nm); }
|
||||
|
||||
_GLIBCXX17_CONSTEXPR const_reverse_iterator
|
||||
crbegin() const noexcept
|
||||
{ return const_reverse_iterator(end()); }
|
||||
|
||||
_GLIBCXX17_CONSTEXPR const_reverse_iterator
|
||||
crend() const noexcept
|
||||
{ return const_reverse_iterator(begin()); }
|
||||
|
||||
// Capacity.
|
||||
constexpr size_type
|
||||
size() const noexcept { return _Nm; }
|
||||
|
||||
constexpr size_type
|
||||
max_size() const noexcept { return _Nm; }
|
||||
|
||||
constexpr bool
|
||||
empty() const noexcept { return size() == 0; }
|
||||
|
||||
// Element access.
|
||||
_GLIBCXX17_CONSTEXPR reference
|
||||
operator[](size_type __n) noexcept
|
||||
{ return _AT_Type::_S_ref(_M_elems, __n); }
|
||||
|
||||
constexpr const_reference
|
||||
operator[](size_type __n) const noexcept
|
||||
{ return _AT_Type::_S_ref(_M_elems, __n); }
|
||||
|
||||
_GLIBCXX17_CONSTEXPR reference
|
||||
at(size_type __n)
|
||||
{
|
||||
if (__n >= _Nm)
|
||||
std::__throw_out_of_range_fmt(__N("array::at: __n (which is %zu) "
|
||||
">= _Nm (which is %zu)"),
|
||||
__n, _Nm);
|
||||
return _AT_Type::_S_ref(_M_elems, __n);
|
||||
}
|
||||
|
||||
constexpr const_reference
|
||||
at(size_type __n) const
|
||||
{
|
||||
// Result of conditional expression must be an lvalue so use
|
||||
// boolean ? lvalue : (throw-expr, lvalue)
|
||||
return __n < _Nm ? _AT_Type::_S_ref(_M_elems, __n)
|
||||
: (std::__throw_out_of_range_fmt(__N("array::at: __n (which is %zu) "
|
||||
">= _Nm (which is %zu)"),
|
||||
__n, _Nm),
|
||||
_AT_Type::_S_ref(_M_elems, 0));
|
||||
}
|
||||
|
||||
_GLIBCXX17_CONSTEXPR reference
|
||||
front() noexcept
|
||||
{ return *begin(); }
|
||||
|
||||
constexpr const_reference
|
||||
front() const noexcept
|
||||
{ return _AT_Type::_S_ref(_M_elems, 0); }
|
||||
|
||||
_GLIBCXX17_CONSTEXPR reference
|
||||
back() noexcept
|
||||
{ return _Nm ? *(end() - 1) : *end(); }
|
||||
|
||||
constexpr const_reference
|
||||
back() const noexcept
|
||||
{
|
||||
return _Nm ? _AT_Type::_S_ref(_M_elems, _Nm - 1)
|
||||
: _AT_Type::_S_ref(_M_elems, 0);
|
||||
}
|
||||
|
||||
_GLIBCXX17_CONSTEXPR pointer
|
||||
data() noexcept
|
||||
{ return _AT_Type::_S_ptr(_M_elems); }
|
||||
|
||||
_GLIBCXX17_CONSTEXPR const_pointer
|
||||
data() const noexcept
|
||||
{ return _AT_Type::_S_ptr(_M_elems); }
|
||||
};
|
||||
|
||||
#if __cpp_deduction_guides >= 201606
|
||||
template<typename _Tp, typename... _Up>
|
||||
array(_Tp, _Up...)
|
||||
-> array<enable_if_t<(is_same_v<_Tp, _Up> && ...), _Tp>,
|
||||
1 + sizeof...(_Up)>;
|
||||
#endif
|
||||
|
||||
// Array comparisons.
|
||||
template<typename _Tp, std::size_t _Nm>
|
||||
inline bool
|
||||
operator==(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two)
|
||||
{ return std::equal(__one.begin(), __one.end(), __two.begin()); }
|
||||
|
||||
template<typename _Tp, std::size_t _Nm>
|
||||
inline bool
|
||||
operator!=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two)
|
||||
{ return !(__one == __two); }
|
||||
|
||||
template<typename _Tp, std::size_t _Nm>
|
||||
inline bool
|
||||
operator<(const array<_Tp, _Nm>& __a, const array<_Tp, _Nm>& __b)
|
||||
{
|
||||
return std::lexicographical_compare(__a.begin(), __a.end(),
|
||||
__b.begin(), __b.end());
|
||||
}
|
||||
|
||||
template<typename _Tp, std::size_t _Nm>
|
||||
inline bool
|
||||
operator>(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two)
|
||||
{ return __two < __one; }
|
||||
|
||||
template<typename _Tp, std::size_t _Nm>
|
||||
inline bool
|
||||
operator<=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two)
|
||||
{ return !(__one > __two); }
|
||||
|
||||
template<typename _Tp, std::size_t _Nm>
|
||||
inline bool
|
||||
operator>=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two)
|
||||
{ return !(__one < __two); }
|
||||
|
||||
// Specialized algorithms.
|
||||
template<typename _Tp, std::size_t _Nm>
|
||||
inline
|
||||
#if __cplusplus > 201402L || !defined(__STRICT_ANSI__) // c++1z or gnu++11
|
||||
// Constrained free swap overload, see p0185r1
|
||||
typename enable_if<
|
||||
_GLIBCXX_STD_C::__array_traits<_Tp, _Nm>::_Is_swappable::value
|
||||
>::type
|
||||
#else
|
||||
void
|
||||
#endif
|
||||
swap(array<_Tp, _Nm>& __one, array<_Tp, _Nm>& __two)
|
||||
noexcept(noexcept(__one.swap(__two)))
|
||||
{ __one.swap(__two); }
|
||||
|
||||
#if __cplusplus > 201402L || !defined(__STRICT_ANSI__) // c++1z or gnu++11
|
||||
template<typename _Tp, std::size_t _Nm>
|
||||
typename enable_if<
|
||||
!_GLIBCXX_STD_C::__array_traits<_Tp, _Nm>::_Is_swappable::value>::type
|
||||
swap(array<_Tp, _Nm>&, array<_Tp, _Nm>&) = delete;
|
||||
#endif
|
||||
|
||||
template<std::size_t _Int, typename _Tp, std::size_t _Nm>
|
||||
constexpr _Tp&
|
||||
get(array<_Tp, _Nm>& __arr) noexcept
|
||||
{
|
||||
static_assert(_Int < _Nm, "array index is within bounds");
|
||||
return _GLIBCXX_STD_C::__array_traits<_Tp, _Nm>::
|
||||
_S_ref(__arr._M_elems, _Int);
|
||||
}
|
||||
|
||||
template<std::size_t _Int, typename _Tp, std::size_t _Nm>
|
||||
constexpr _Tp&&
|
||||
get(array<_Tp, _Nm>&& __arr) noexcept
|
||||
{
|
||||
static_assert(_Int < _Nm, "array index is within bounds");
|
||||
return std::move(_GLIBCXX_STD_C::get<_Int>(__arr));
|
||||
}
|
||||
|
||||
template<std::size_t _Int, typename _Tp, std::size_t _Nm>
|
||||
constexpr const _Tp&
|
||||
get(const array<_Tp, _Nm>& __arr) noexcept
|
||||
{
|
||||
static_assert(_Int < _Nm, "array index is within bounds");
|
||||
return _GLIBCXX_STD_C::__array_traits<_Tp, _Nm>::
|
||||
_S_ref(__arr._M_elems, _Int);
|
||||
}
|
||||
|
||||
_GLIBCXX_END_NAMESPACE_CONTAINER
|
||||
} // namespace std
|
||||
|
||||
namespace std _GLIBCXX_VISIBILITY(default)
|
||||
{
|
||||
_GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||
|
||||
// Tuple interface to class template array.
|
||||
|
||||
/// tuple_size
|
||||
template<typename _Tp>
|
||||
class tuple_size;
|
||||
|
||||
/// Partial specialization for std::array
|
||||
template<typename _Tp, std::size_t _Nm>
|
||||
struct tuple_size<_GLIBCXX_STD_C::array<_Tp, _Nm>>
|
||||
: public integral_constant<std::size_t, _Nm> { };
|
||||
|
||||
/// tuple_element
|
||||
template<std::size_t _Int, typename _Tp>
|
||||
class tuple_element;
|
||||
|
||||
/// Partial specialization for std::array
|
||||
template<std::size_t _Int, typename _Tp, std::size_t _Nm>
|
||||
struct tuple_element<_Int, _GLIBCXX_STD_C::array<_Tp, _Nm>>
|
||||
{
|
||||
static_assert(_Int < _Nm, "index is out of bounds");
|
||||
typedef _Tp type;
|
||||
};
|
||||
|
||||
template<typename _Tp, std::size_t _Nm>
|
||||
struct __is_tuple_like_impl<_GLIBCXX_STD_C::array<_Tp, _Nm>> : true_type
|
||||
{ };
|
||||
|
||||
_GLIBCXX_END_NAMESPACE_VERSION
|
||||
} // namespace std
|
||||
|
||||
#ifdef _GLIBCXX_DEBUG
|
||||
# include <debug/array>
|
||||
#endif
|
||||
|
||||
#ifdef _GLIBCXX_PROFILE
|
||||
# include <profile/array>
|
||||
#endif
|
||||
|
||||
#endif // C++11
|
||||
|
||||
#endif // _GLIBCXX_ARRAY
|
||||
12
build_py310.sh
Normal file
12
build_py310.sh
Normal file
@@ -0,0 +1,12 @@
|
||||
module unload gcc
|
||||
module load gcc/9.3.0
|
||||
rm -f PyCafe.cpp
|
||||
rm -f PyCafe.h
|
||||
rm -f PyCafe.pxd
|
||||
ln -s PyCafe_sls.pxd PyCafe.pxd
|
||||
rm -f PyCafe.pyx
|
||||
ln -s PyCafe_sls.pyx PyCafe.pyx
|
||||
|
||||
source /opt/gfa/python 3.8
|
||||
/ioc/python/latest/bin/python setup_py310.py build_ext -b ./python3.10/lib/${EPICS_HOST_ARCH}
|
||||
cp examples.py ./python3.10/lib/${EPICS_HOST_ARCH}
|
||||
21
build_py310_sls2.sh
Normal file
21
build_py310_sls2.sh
Normal file
@@ -0,0 +1,21 @@
|
||||
module unload gcc
|
||||
module load gcc/7.5.0
|
||||
#module load gcc/10.4.0
|
||||
rm -f PyCafeDefs.pxi
|
||||
ln -s PyCafeDefs_py37.pxi PyCafeDefs.pxi
|
||||
rm -f PyCafe.cpp
|
||||
rm -f PyCafe.h
|
||||
rm -f PyCafe.pxd
|
||||
ln -s PyCafe_sls.pxd PyCafe.pxd
|
||||
rm -f PyCafe.pyx
|
||||
ln -s PyCafe_sls.pyx PyCafe.pyx
|
||||
|
||||
_EPICS_HOST_ARCH=${RHREL}-x86_64
|
||||
_EPICS_BASE=base-7.0.9
|
||||
source /opt/gfa/python 3.10
|
||||
export LD_PRELOAD=/usr/local/epics/${_EPICS_BASE}/lib/${_EPICS_HOST_ARCH}/libca.so:/usr/local/epics/${_EPICS_BASE}/lib/${_EPICS_HOST_ARCH}/libCom.so
|
||||
echo ${LD_PRELOAD}
|
||||
|
||||
python setup_py310_sls2.py build_ext -b ./python3.10-sls2/lib/${_EPICS_HOST_ARCH}
|
||||
cp examples.py ./python3.10-sls2/lib/${_EPICS_HOST_ARCH}
|
||||
unset LD_PRELOAD
|
||||
18
build_py34_sls2.sh
Normal file
18
build_py34_sls2.sh
Normal file
@@ -0,0 +1,18 @@
|
||||
module unload gcc
|
||||
module load gcc/7.3.0
|
||||
#rm -f PyCafe.cpp
|
||||
#rm -f PyCafe.h
|
||||
#rm -f PyCafe.pxd
|
||||
#ln -s PyCafe_sls.pxd PyCafe.pxd
|
||||
#rm -f PyCafe.pyx
|
||||
#ln -s PyCafe_sls.pyx PyCafe.pyx
|
||||
module unload psi-python34
|
||||
module unload psi-python36
|
||||
module unload Python
|
||||
module load psi-python34/2.1.0
|
||||
|
||||
python setup_py34_sls2.py build_ext -b ./python3.4-sls2/lib/${EPICS_HOST_ARCH}
|
||||
cp examples.py ./python3.4-sls2/lib/${EPICS_HOST_ARCH}
|
||||
|
||||
|
||||
#/opt/psi/Programming/psi-python34/2.1.0/bin/python
|
||||
10
build_py35.sh
Normal file
10
build_py35.sh
Normal file
@@ -0,0 +1,10 @@
|
||||
module unload gcc
|
||||
module load gcc/7.3.0
|
||||
#rm -f PyCafe.cpp
|
||||
#rm -f PyCafe.h
|
||||
#rm -f PyCafe.pxd
|
||||
#ln -s PyCafe_sls.pxd PyCafe.pxd
|
||||
|
||||
source /opt/gfa/python 3.5
|
||||
python setup_py35.py build_ext -b ./python3.5/lib/${EPICS_HOST_ARCH}
|
||||
cp examples.py ./python3.5/lib/${EPICS_HOST_ARCH}
|
||||
9
build_py35_sf.sh
Normal file
9
build_py35_sf.sh
Normal file
@@ -0,0 +1,9 @@
|
||||
module unload gcc
|
||||
module load gcc/7.3.0
|
||||
rm -f PyCafe_sf.cpp
|
||||
rm -f PyCafe_sf.h
|
||||
rm -f PyCafe.pxd
|
||||
ln -s PyCafe_sf.pxd PyCafe.pxd
|
||||
source /opt/gfa/python 3.5
|
||||
python setup_py35_sf.py build_ext -b ./python3.5-sf/lib/${EPICS_HOST_ARCH}
|
||||
cp examples.py ./python3.5-sf/lib/${EPICS_HOST_ARCH}
|
||||
11
build_py35_sls.sh
Normal file
11
build_py35_sls.sh
Normal file
@@ -0,0 +1,11 @@
|
||||
module unload gcc
|
||||
module load gcc/6.3.0
|
||||
#rm -f PyCafe.cpp
|
||||
#rm -f PyCafe.h
|
||||
#rm -f PyCafe.pxd
|
||||
#ln -s PyCafe_sls.pxd PyCafe.pxd
|
||||
#rm -f PyCafe.pyx
|
||||
#ln -s PyCafe_sls.pyx PyCafe.pyx
|
||||
source /opt/gfa/python 3.5
|
||||
python setup_py35_sls.py build_ext -b ./python3.5-sls/lib/${EPICS_HOST_ARCH}
|
||||
cp examples.py ./python3.5-sls/lib/${EPICS_HOST_ARCH}
|
||||
30
build_py35_sls2.sh
Normal file
30
build_py35_sls2.sh
Normal file
@@ -0,0 +1,30 @@
|
||||
module unload gcc
|
||||
module load gcc/7.3.0
|
||||
#SOURCE build_py37_sls2.sh first
|
||||
#rm -f PyCafeDefs.pxi
|
||||
#ln -s PyCafeDefs_py35.pxi PyCafeDefs.pxi
|
||||
#rm -f PyCafe.cpp
|
||||
#rm -f PyCafe.h
|
||||
#rm -f PyCafe.pxd
|
||||
#ln -s PyCafe_sls.pxd PyCafe.pxd
|
||||
#rm -f PyCafe.pyx
|
||||
#ln -s PyCafe_sls_py35.pyx PyCafe.pyx
|
||||
#rm -f PyCafeDefs.pxi
|
||||
#ln -s PyCafeDefs_py35.pxi PyCafeDefs.pxi
|
||||
#rm -f PyCafe.cpp
|
||||
#rm -f PyCafe.h
|
||||
#rm -f PyCafe.pxd
|
||||
#ln -s PyCafe_sls.pxd PyCafe.pxd
|
||||
#rm -f PyCafe.pyx
|
||||
#ln -s PyCafe_sls.pyx PyCafe.pyx
|
||||
|
||||
_EPICS_HOST_ARCH=${RHREL}-x86_64
|
||||
_EPICS_BASE=base-7.0.9
|
||||
source /opt/gfa/python 3.5
|
||||
export LD_PRELOAD=/usr/local/epics/${_EPICS_BASE}/lib/${_EPICS_HOST_ARCH}/libca.so:/usr/local/epics/${_EPICS_BASE}/lib/${_EPICS_HOST_ARCH}/libCom.so
|
||||
echo ${LD_PRELOAD}
|
||||
|
||||
python setup_py35_sls2.py build_ext -b ./python3.5-sls2/lib/${_EPICS_HOST_ARCH}
|
||||
cp examples.py ./python3.5-sls2/lib/${_EPICS_HOST_ARCH}
|
||||
|
||||
unset LD_PRELOAD
|
||||
10
build_py37.sh
Normal file
10
build_py37.sh
Normal file
@@ -0,0 +1,10 @@
|
||||
module unload gcc
|
||||
module load gcc/7.3.0
|
||||
rm -f PyCafe.cpp
|
||||
rm -f PyCafe.h
|
||||
rm -f PyCafe.pxd
|
||||
ln -s PyCafe_sls.pxd PyCafe.pxd
|
||||
|
||||
source /opt/gfa/python 3.7
|
||||
python setup_py37.py build_ext -b ./python3.7/lib/${EPICS_HOST_ARCH}
|
||||
cp examples.py ./python3.7/lib/${EPICS_HOST_ARCH}
|
||||
16
build_py37_sf.sh
Normal file
16
build_py37_sf.sh
Normal file
@@ -0,0 +1,16 @@
|
||||
module unload gcc
|
||||
module load gcc/7.3.0
|
||||
rm -f PyCafe.cpp
|
||||
rm -f PyCafe.h
|
||||
rm -f PyCafe.pxd
|
||||
ln -s PyCafe_sf.pxd PyCafe.pxd
|
||||
rm -f PyCafe.pyx
|
||||
ln -s PyCafe_sf.pyx PyCafe.pyx
|
||||
_EPICS_HOST_ARCH=${RHREL}-x86_64
|
||||
_EPICS_BASE=base-7.0.9
|
||||
source /opt/gfa/python 3.7
|
||||
export LD_PRELOAD=/usr/local/epics/${_EPICS_BASE}/lib/${_EPICS_HOST_ARCH}/libca.so:/usr/local/epics/${_EPICS_BASE}/lib/${_EPICS_HOST_ARCH}/libCom.so
|
||||
echo ${LD_PRELOAD}
|
||||
python setup_py37_sf.py build_ext -b ./python3.7-sf/lib/${_EPICS_HOST_ARCH}
|
||||
cp examples.py ./python3.7-sf/lib/${_EPICS_HOST_ARCH}
|
||||
unset LD_PRELOAD
|
||||
9
build_py37_sf_local.sh
Normal file
9
build_py37_sf_local.sh
Normal file
@@ -0,0 +1,9 @@
|
||||
module unload gcc
|
||||
module load gcc/7.3.0
|
||||
rm -f PyCafe_sf.cpp
|
||||
rm -f PyCafe_sf.h
|
||||
rm -f PyCafe.pxd
|
||||
ln -s PyCafe_sf.pxd PyCafe.pxd
|
||||
source /opt/gfa/python 3.7
|
||||
python setup_py37_sf_local.py build_ext -b ./python3.7-sf/lib/${EPICS_HOST_ARCH}
|
||||
cp examples.py ./python3.7-sf/lib/${EPICS_HOST_ARCH}
|
||||
20
build_py37_sls2.sh
Normal file
20
build_py37_sls2.sh
Normal file
@@ -0,0 +1,20 @@
|
||||
module unload gcc
|
||||
module load gcc/7.3.0
|
||||
rm -f PyCafeDefs.pxi
|
||||
ln -s PyCafeDefs_py37.pxi PyCafeDefs.pxi
|
||||
rm -f PyCafe.cpp
|
||||
rm -f PyCafe.h
|
||||
rm -f PyCafe.pxd
|
||||
ln -s PyCafe_sls.pxd PyCafe.pxd
|
||||
rm -f PyCafe.pyx
|
||||
ln -s PyCafe_sls.pyx PyCafe.pyx
|
||||
|
||||
_EPICS_HOST_ARCH=${RHREL}-x86_64 #os.environ['EPICS_HOST_ARCH']
|
||||
_EPICS_BASE=base-7.0.9
|
||||
source /opt/gfa/python 3.7
|
||||
export LD_PRELOAD=/usr/local/epics/${_EPICS_BASE}/lib/${_EPICS_HOST_ARCH}/libca.so:/usr/local/epics/${_EPICS_BASE}/lib/${_EPICS_HOST_ARCH}/libCom.so
|
||||
echo ${LD_PRELOAD}
|
||||
|
||||
python setup_py37_sls2.py build_ext -b ./python3.7-sls2/lib/${_EPICS_HOST_ARCH}
|
||||
cp examples.py ./python3.7-sls2/lib/${_EPICS_HOST_ARCH}
|
||||
unset LD_PRELOAD
|
||||
11
build_py38_sf.sh
Normal file
11
build_py38_sf.sh
Normal file
@@ -0,0 +1,11 @@
|
||||
module unload gcc
|
||||
module load gcc/7.3.0
|
||||
rm -f PyCafe.cpp
|
||||
rm -f PyCafe.h
|
||||
rm -f PyCafe.pxd
|
||||
ln -s PyCafe_sf.pxd PyCafe.pxd
|
||||
rm -f PyCafe.pyx
|
||||
ln -s PyCafe_sf.pyx PyCafe.pyx
|
||||
source /opt/gfa/python 3.8
|
||||
python setup_py38_sf.py build_ext -b ./python3.8-sf/lib/${EPICS_HOST_ARCH}
|
||||
cp examples.py ./python3.8-sf/lib/${EPICS_HOST_ARCH}
|
||||
20
build_py38_sls2.sh
Normal file
20
build_py38_sls2.sh
Normal file
@@ -0,0 +1,20 @@
|
||||
module unload gcc
|
||||
module load gcc/7.5.0
|
||||
rm -f PyCafeDefs.pxi
|
||||
ln -s PyCafeDefs_py37.pxi PyCafeDefs.pxi
|
||||
rm -f PyCafe.cpp
|
||||
rm -f PyCafe.h
|
||||
rm -f PyCafe.pxd
|
||||
ln -s PyCafe_sls.pxd PyCafe.pxd
|
||||
rm -f PyCafe.pyx
|
||||
ln -s PyCafe_sls.pyx PyCafe.pyx
|
||||
|
||||
_EPICS_HOST_ARCH=${RHREL}-x86_64
|
||||
_EPICS_BASE=base-7.0.9
|
||||
export LD_PRELOAD=/usr/local/epics/${_EPICS_BASE}/lib/${_EPICS_HOST_ARCH}/libca.so:/usr/local/epics/${_EPICS_BASE}/lib/${_EPICS_HOST_ARCH}/libCom.so
|
||||
echo ${LD_PRELOAD}
|
||||
|
||||
source /opt/gfa/python 3.8
|
||||
python setup_py38_sls2.py build_ext -b ./python3.8-sls2/lib/${_EPICS_HOST_ARCH}
|
||||
cp examples.py ./python3.8-sls2/lib/${_EPICS_HOST_ARCH}
|
||||
unset LD_PRELOAD
|
||||
119
diff_pxd_sf_sls
Normal file
119
diff_pxd_sf_sls
Normal file
@@ -0,0 +1,119 @@
|
||||
639d638
|
||||
< void setNoCyCallbackParameters(unsigned short)
|
||||
645d643
|
||||
< void setPyCyHandlerHandle(void *)
|
||||
686,687c684,685
|
||||
< void setPyHandlerGet(void *)
|
||||
< void setPyHandlerPut(void *)
|
||||
---
|
||||
> void setPyHandlerGet()
|
||||
> void setPyHandlerPut()
|
||||
956,1041d953
|
||||
< cdef extern from "zbsDataHolders.h":
|
||||
<
|
||||
< cdef cppclass BSChannel:
|
||||
< BSChannel(string) except +
|
||||
< void setType()
|
||||
< void setOffset()
|
||||
< void setModulo()
|
||||
< void setBSEnabled()
|
||||
< string getName()
|
||||
< string getType()
|
||||
< int getModulo()
|
||||
< int getOffset()
|
||||
< unsigned int getNelem()
|
||||
< bint isBSEnabled()
|
||||
<
|
||||
< cdef cppclass BSDataHolder:
|
||||
< BSDataHolder() except +
|
||||
< BSDataHolder(vector[string]) except +
|
||||
< void init(vector[string])
|
||||
< BSChannel getBSChannel(unsigned int)
|
||||
< int getIdxFromName(string)
|
||||
< etsNorm getGlobal_timestamp()
|
||||
< unsigned long long getPulse_id()
|
||||
< vector[unsigned int] getHandles()
|
||||
< vector[string] getPV()
|
||||
< vector[PVDataHolder] getPVDataV()
|
||||
< vector[string] getAsStringV()
|
||||
< vector[double] getAsDoubleV()
|
||||
< vector[float] getAsFloatV()
|
||||
< vector[int] getAsIntV()
|
||||
< int reconnect()
|
||||
< void closeBS()
|
||||
< int resetBS()
|
||||
< int setBS(bint)
|
||||
< int setCA(bint)
|
||||
< void setTimeout(int)
|
||||
< void setHWM(int)
|
||||
< bint getIsBS()
|
||||
< void setBSModulo(string, int)
|
||||
< void setBSOffset(string, int)
|
||||
< void setBSModuloOffset(string, int, int)
|
||||
< void printHeader()
|
||||
< unsigned int getNPV()
|
||||
< unsigned int getHWM()
|
||||
< int getTimeout()
|
||||
< unsigned int getNChannels()
|
||||
< unsigned int getNNullData()
|
||||
< float getPGoodData()
|
||||
< void zero()
|
||||
< int getStatus()
|
||||
<
|
||||
< cdef cppclass DBPMData:
|
||||
< double getValue()
|
||||
< epicsTimeStamp getEpicsTimeStamp()
|
||||
< int getStatus()
|
||||
<
|
||||
< cdef cppclass DBPMKeeper:
|
||||
< DBPMKeeper() except +
|
||||
< # DBPMKeeper(vector[string], vector[unsigned int], multimap[float, string])
|
||||
< DBPMKeeper(vector[string], vector[unsigned int], vector[string], vector[float]) except +
|
||||
< vector[unsigned int] getHandle()
|
||||
< vector[string] getPV()
|
||||
< vector[string] getDevice()
|
||||
<
|
||||
< vector[double] getS()
|
||||
< vector[DBPMData] getX()
|
||||
< vector[DBPMData] getY()
|
||||
< vector[DBPMData] getQ()
|
||||
< vector[DBPMData] getEnergy()
|
||||
<
|
||||
< vector[double] getOffsetX()
|
||||
< vector[double] getOffsetY()
|
||||
<
|
||||
< bint getIsAllXOK()
|
||||
< bint getIsAllYOK()
|
||||
< bint getIsAllQOK()
|
||||
< bint getIsAllEnergyOK()
|
||||
< bint getIsAllOK()
|
||||
< bint setBS(bint)
|
||||
< bint resetBS()
|
||||
< void closeBS()
|
||||
< int getStatus()
|
||||
< PVDataHolder * pvd
|
||||
< int getNPV()
|
||||
<
|
||||
<
|
||||
1432,1433c1344,1345
|
||||
< int readDBPMOffsets(DBPMKeeper &)
|
||||
< int getDBPM(DBPMKeeper &) nogil
|
||||
---
|
||||
> #int readDBPMOffsets(DBPMKeeper &)
|
||||
> #int getDBPM(DBPMKeeper &) nogil
|
||||
1435c1347
|
||||
< int prepareDBPM(vector[string] & , vector[unsigned int] & , vector[string] & , vector[float] & ) nogil
|
||||
---
|
||||
> #int prepareDBPM(vector[string] & , vector[unsigned int] & , vector[string] & , vector[float] & ) nogil
|
||||
1445,1449c1357,1361
|
||||
< int initBSwithCA(BSDataHolder &) nogil
|
||||
< int setBS(BSDataHolder &) nogil
|
||||
< int setBS2CAGroup(BSDataHolder &) nogil
|
||||
< int getBS(BSDataHolder &) nogil
|
||||
< int closeBS(BSDataHolder &) nogil
|
||||
---
|
||||
> #int initBSwithCA(BSDataHolder &) nogil
|
||||
> #int setBS(BSDataHolder &) nogil
|
||||
> #int setBS2CAGroup(BSDataHolder &) nogil
|
||||
> #int getBS(BSDataHolder &) nogil
|
||||
> #int closeBS(BSDataHolder &) nogil
|
||||
717
diff_pyx_sf_sls
Normal file
717
diff_pyx_sf_sls
Normal file
@@ -0,0 +1,717 @@
|
||||
44c44
|
||||
< _pymodule = "PyCafe.pyx"
|
||||
---
|
||||
> _pymodule = "PyCafe.pyx" # os.path.basename(__file__)
|
||||
49a50,52
|
||||
> cdef object py_cb
|
||||
>
|
||||
> cdef dict openCallbackDictGlobal = {}
|
||||
50a54,59
|
||||
> cdef dict handleMonDictGlobal = {}
|
||||
> cdef dict monDictGlobal = {}
|
||||
> cdef dict openDictGlobal = {}
|
||||
>
|
||||
> cdef dict getDictGlobal = {}
|
||||
> cdef dict putDictGlobal = {}
|
||||
52c61,64
|
||||
< include "PyCafeDefs_sf.pxi"
|
||||
---
|
||||
> #cdef ccafe.CAFE * _c_cafe
|
||||
> #_c_cafe = new ccafe.CAFE()
|
||||
>
|
||||
> include "PyCafeDefs.pxi"
|
||||
83a96
|
||||
>
|
||||
172,179c185
|
||||
<
|
||||
< DBPMKeeper dbpm
|
||||
<
|
||||
< bint dbpmInitialized
|
||||
< bint BSInitialized
|
||||
< bint isBSinCAOnly
|
||||
< BSDataHolder bsd
|
||||
<
|
||||
---
|
||||
>
|
||||
213,216c219
|
||||
< self.dbpmInitialized = False
|
||||
< self.BSInitialized = False
|
||||
< self.isBSinCAOnly = False
|
||||
<
|
||||
---
|
||||
>
|
||||
235,240c238
|
||||
< def CAFE_version(self):
|
||||
< return CAFE_VERSION
|
||||
<
|
||||
< def EPICS_version(self):
|
||||
< return EPICS_VERSION
|
||||
<
|
||||
---
|
||||
>
|
||||
245c243,250
|
||||
< pv_name = handlePV
|
||||
---
|
||||
> pv_name = handlePV
|
||||
> #global openCallbackDictGlobal
|
||||
> #openCallbackDictGlobal[cb] = handlePV
|
||||
> #september 21 2021
|
||||
> global openDictGlobal
|
||||
> openDictGlobal[pv_name] = cb
|
||||
>
|
||||
> #handle = self.hh.getHandleFromPV(pv_name)
|
||||
247a253,264
|
||||
> #self._c_cafe.channelCreatePolicy.setPyCallbackFlag(True)
|
||||
> #self._c_cafe.channelCreatePolicy.setPyConnectHandler(<void *>cb)
|
||||
> #open
|
||||
> #false
|
||||
>
|
||||
> def setPyCallbackConnect(self, pv: str = None, cb: object = None):
|
||||
> if None in (pv, cb):
|
||||
> return
|
||||
> global openDictGlobal
|
||||
> openDictGlobal[pv] = cb
|
||||
>
|
||||
> ##self.hh.setPyConnectCallbackFn(handle, <void *>cb)
|
||||
274c291,299
|
||||
< self.cs.info(ECA_ALLOCMEM)))
|
||||
---
|
||||
> self.cs.info(ECA_ALLOCMEM)))
|
||||
> '''
|
||||
> _cafeException = CafeException(
|
||||
> _type='CafeError', _source=_METHOD,
|
||||
> _error_code=ECA_ALLOCMEM,
|
||||
> _error_text=self.cs.code(ECA_ALLOCMEM),
|
||||
> _error_info=self.cs.info(ECA_ALLOCMEM))
|
||||
> raise _cafeException
|
||||
> '''
|
||||
422,424c447,448
|
||||
< ##for i in range(0, len(pvV)):
|
||||
< ##self.setPyCallbackConnect(pvV[i], cb)
|
||||
< #self.setPyConnectCallbackFn(pvV[i], cb)
|
||||
---
|
||||
> for i in range(0, len(pvV)):
|
||||
> self.setPyCallbackConnect(pvV[i], cb)
|
||||
473c497
|
||||
< ####self.setPyCallbackConnect(pv, cb)
|
||||
---
|
||||
> self.setPyCallbackConnect(pv, cb)
|
||||
481c505
|
||||
< #print("OPEN WITH NO GIL//==>", pvStr, handle)
|
||||
---
|
||||
> #print("OPEN WITH NO GIL//==>", pvStr)
|
||||
486c510
|
||||
< except RuntimeError as e:
|
||||
---
|
||||
> except RuntimeError as e:
|
||||
501c525
|
||||
< raise Exception("{} {} \n{}".format(self._exception_text, _METHOD, e))
|
||||
---
|
||||
> raise Exception("{} {} \n{}".format(self._exception_text, _METHOD, e))
|
||||
791c815,816
|
||||
<
|
||||
---
|
||||
> global getDictGlobal
|
||||
>
|
||||
800,801c825,827
|
||||
< if cb is not None:
|
||||
< crp.setPyHandlerGet(<void *> cb) # forces when=WITH_CALLBACK_USER_SUPPLIED
|
||||
---
|
||||
> if cb is not None:
|
||||
> getDictGlobal[handle] = cb
|
||||
> crp.setPyHandlerGet() # forces when=WITH_CALLBACK_USER_SUPPLIED
|
||||
859,861c885,888
|
||||
<
|
||||
< if cb is not None:
|
||||
< crp.setPyHandlerGet(<void *>cb) # forces when=WITH_CALLBACK_USER_SUPPLIED
|
||||
---
|
||||
> global getDictGlobal
|
||||
> if cb is not None:
|
||||
> getDictGlobal[handle] = cb
|
||||
> crp.setPyHandlerGet() # forces when=WITH_CALLBACK_USER_SUPPLIED
|
||||
886,888c913,917
|
||||
<
|
||||
< if cb is not None:
|
||||
< crp.setPyHandlerPut(<void *>cb) # forces when=WITH_CALLBACK_USER_SUPPLIED
|
||||
---
|
||||
>
|
||||
> global putDictGlobal
|
||||
> if cb is not None:
|
||||
> putDictGlobal[handle] = cb
|
||||
> crp.setPyHandlerPut() # forces when=WITH_CALLBACK_USER_SUPPLIED
|
||||
1402c1431
|
||||
< #decorator casts handlePV to int
|
||||
---
|
||||
> #decorator casts to handlePV to int
|
||||
4021c4050
|
||||
< return pvdict, statusOverall, status
|
||||
---
|
||||
> return pvdict
|
||||
5148a5178,5180
|
||||
> global monDictGlobal
|
||||
> global handleMonDictGlobal
|
||||
>
|
||||
5158c5190
|
||||
<
|
||||
---
|
||||
> #global py_cb
|
||||
5185,5189d5216
|
||||
< mp.setUserArgs(< void * > mpid)
|
||||
< mp.setNoCyCallbackParameters(len(sig.parameters))
|
||||
< mp.setPyCyHandler(<void *> cb)
|
||||
<
|
||||
<
|
||||
5198c5225,5245
|
||||
<
|
||||
---
|
||||
>
|
||||
> mp[i].setUserArgs( < void*> mpid)
|
||||
>
|
||||
> if len(sig.parameters) == 1:
|
||||
> monDictGlobal[mpid] = cb
|
||||
> mp[i].setPyHandler()
|
||||
>
|
||||
> elif len(sig.parameters) == 2:
|
||||
> mp[i].setPyCyHandler(<void *> cb)
|
||||
>
|
||||
> elif len(sig.parameters) == 3:
|
||||
> handleMonDictGlobal[cb] = handleList[i]
|
||||
> mp[i].setPyCyHandlerData(<void *> cb)
|
||||
>
|
||||
> else:
|
||||
> _cafeException = CafeException(_type='CafeError', _source=_METHOD,
|
||||
> _error_info="The signature of the monitor callback function is not supported. \
|
||||
> Supported fns are: \
|
||||
> 1) callback(handle) or 2) callback(pvdata, handle, pv_name) ")
|
||||
> raise _cafeException
|
||||
>
|
||||
5236a5284,5285
|
||||
> global monDictGlobal
|
||||
> global handleMonDictGlobal
|
||||
5251c5300,5301
|
||||
<
|
||||
---
|
||||
> # April 2020 Legacy
|
||||
> #global py_cb
|
||||
5286,5290c5336
|
||||
< sig = inspect.signature(cb[i])
|
||||
<
|
||||
< mp[i].setUserArgs(< void * > mpid) # (<unsigned long *> ptr_mpid)[0])
|
||||
< mp[i].setNoCyCallbackParameters(len(sig.parameters))
|
||||
< mp[i].setPyCyHandler(<void *> cb[i])
|
||||
---
|
||||
> sig = inspect.signature(cb[i])
|
||||
5301c5347,5366
|
||||
<
|
||||
---
|
||||
> mp[i].setUserArgs( < void * > mpid) # (<unsigned long *> ptr_mpid)[0])
|
||||
>
|
||||
> if len(sig.parameters) == 1:
|
||||
> monDictGlobal[mpid] = cb[i]
|
||||
> mp[i].setPyHandler()
|
||||
>
|
||||
> elif len(sig.parameters) == 2:
|
||||
> mp[i].setPyCyHandler(<void *> cb[i])
|
||||
>
|
||||
> elif len(sig.parameters) == 3:
|
||||
> handleMonDictGlobal[cb[i]] = handleList[i]
|
||||
> mp[i].setPyCyHandlerData(<void *> cb[i])
|
||||
>
|
||||
> else:
|
||||
> _cafeException = CafeException(_type='CafeError', _source=_METHOD,
|
||||
> _error_info="The signature of the monitor callback function is not supported. \
|
||||
> Supported fns are: \
|
||||
> 1) callback(handle) or 2) callback(pvdata, handle, pv_name) ")
|
||||
> raise _cafeException
|
||||
>
|
||||
5940a6006
|
||||
>
|
||||
5948c6014
|
||||
<
|
||||
---
|
||||
>
|
||||
5969c6035,6036
|
||||
<
|
||||
---
|
||||
>
|
||||
>
|
||||
6044a6112,6114
|
||||
> global monDictGlobal
|
||||
> global handleMonDictGlobal
|
||||
> global py_cb
|
||||
6046c6116,6117
|
||||
<
|
||||
---
|
||||
>
|
||||
> py_cb = cb
|
||||
6049,6050c6120,6121
|
||||
< hmd[cb] = mpid ##otherwise cb gets ovewritten when casting to an object
|
||||
<
|
||||
---
|
||||
> hmd[cb] = handle ##otherwise cb gets ovewritten when casting to an object
|
||||
> #print(hmd)
|
||||
6052c6123,6133
|
||||
<
|
||||
---
|
||||
> '''
|
||||
> print('SIGNATURE//3//:')
|
||||
> print(str(sig))
|
||||
> for param in sig.parameters.values():
|
||||
> print('Parameter:', param, type(param))
|
||||
> print('len1', len(sig.parameters.values()))
|
||||
> print('len2', len(sig.parameters))
|
||||
>
|
||||
> print('monitorid', mpid)
|
||||
> '''
|
||||
>
|
||||
6056,6057c6137,6165
|
||||
< mp.setNoCyCallbackParameters(len(sig.parameters))
|
||||
< mp.setPyCyHandler(<void *> cb)
|
||||
---
|
||||
>
|
||||
>
|
||||
> if len(sig.parameters) == 1:
|
||||
> ###monDictGlobal[mpid] = cb
|
||||
>
|
||||
> mp.setPyHandler()
|
||||
> # print (<long>mp.getUserArgs())
|
||||
>
|
||||
> elif len(sig.parameters) == 2:
|
||||
> mp.setPyCyHandler(<void *> cb)
|
||||
> #mp.setPyHandler()
|
||||
> #mp.setCyCallback(<void *> cb)
|
||||
>
|
||||
> elif len(sig.parameters) == 3:
|
||||
> #py_cb=cb
|
||||
> #self.hh.addWidget(handle, <void *> cb)
|
||||
>
|
||||
> mp.setPyCyHandlerData(<void *> ( py_cb))
|
||||
> #handleMonDictGlobal[cb] = handle
|
||||
>
|
||||
> #mp.setPyHandlerData()
|
||||
> #mp.setCyCallback(<void *> cb)
|
||||
> else:
|
||||
> _cafeException = CafeException(
|
||||
> _type='CafeError', _source=_METHOD,
|
||||
> _error_info="The signature of the monitor callback function \
|
||||
> given by the user is not supported. Valid fns are: \
|
||||
> 1) callback(handle) or 2) callback(pvdata, handle, pv_name) ")
|
||||
> raise _cafeException
|
||||
6096c6204
|
||||
< cdef unsigned int mpid_no_coercion
|
||||
---
|
||||
> cdef unsigned int mpidUI
|
||||
6097a6206,6207
|
||||
> global monDictGlobal
|
||||
> #global handleMonDictGlobal
|
||||
6099c6209,6210
|
||||
<
|
||||
---
|
||||
>
|
||||
>
|
||||
6101d6211
|
||||
< mpid_no_coercion = mpid
|
||||
6103c6213
|
||||
< mpid_no_coercion = mpid
|
||||
---
|
||||
> mpidUI = mpid
|
||||
6105,6113c6215,6226
|
||||
< status = self._c_cafe.monitorStopWithID(handle, mpid_no_coercion)
|
||||
< time.sleep(0.001)
|
||||
< l = None
|
||||
< if mpid not in list(hmd.values()):
|
||||
< pass #happens when is direct mode in table widget
|
||||
< else:
|
||||
< l = list(hmd.keys())[list(hmd.values()).index(mpid)]
|
||||
< if l is not None:
|
||||
< del hmd[l]
|
||||
---
|
||||
> status = self._c_cafe.monitorStopWithID(handle, mpidUI)
|
||||
> time.sleep(0.01)
|
||||
>
|
||||
> if (status == ICAFE_NORMAL):
|
||||
> #pass
|
||||
> #print (monDictGlobal)
|
||||
> # DELETE ENTRY ONLY IF IT EXISTS!
|
||||
> # if monDictGlobal.has_key(mpidUI):
|
||||
> # Sep 2020 - try without del for testing!
|
||||
> if mpidUI in monDictGlobal.keys():
|
||||
> del monDictGlobal[mpidUI]
|
||||
>
|
||||
6118d6230
|
||||
< mids = self.hh.getMonitorIDs(handle)
|
||||
6121,6129c6233,6265
|
||||
< time.sleep(0.001)
|
||||
<
|
||||
< for monid in mids:
|
||||
< if monid not in list(hmd.values()):
|
||||
< continue
|
||||
< l = list(hmd.keys())[list(hmd.values()).index(monid)]
|
||||
< if l is not None:
|
||||
< del hmd[l]
|
||||
<
|
||||
---
|
||||
> time.sleep(0.01)
|
||||
>
|
||||
> _ncount = 0
|
||||
> for key, value in hmd.items():
|
||||
> if value == handle:
|
||||
> _ncount += 1
|
||||
>
|
||||
> for i in range (0, _ncount):
|
||||
> try:
|
||||
> l = list(hmd.keys())[list(hmd.values()).index(handle)]
|
||||
> #print (l)
|
||||
> if l is not None:
|
||||
> del hmd[l]
|
||||
> except ValueError:
|
||||
> print("List does not contain handle {0}".format(handle))
|
||||
> #{k:v for k,v in hmd.items() if v != handle}
|
||||
> ##for a, v in hmd.items():
|
||||
> ##print(a, v)
|
||||
> ##print ("DEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEELLLLLLLETE")
|
||||
> # Find handle with monitor ID and STOP thst one monitor!
|
||||
>
|
||||
> if (status == ICAFE_NORMAL):
|
||||
>
|
||||
> # print "size", self.hh.getNmonitor(handle)
|
||||
> mpidUIV = self.hh.getMonitorIDs(handle)
|
||||
> # print "size", mpidUIV.size()
|
||||
>
|
||||
> for i in range(0, mpidUIV.size()):
|
||||
>
|
||||
> # if monDictGlobal.has_key(mpidUIV[i]):
|
||||
> if mpidUIV[i] in monDictGlobal.keys():
|
||||
> del monDictGlobal[mpidUIV[i]]
|
||||
>
|
||||
6137a6274
|
||||
> # 3
|
||||
6143d6279
|
||||
< cdef int status
|
||||
6144a6281,6282
|
||||
> global monDictGlobal
|
||||
> global handleMonDictGlobal
|
||||
6145a6284
|
||||
> cdef int status
|
||||
6152c6291,6292
|
||||
< hmd.clear()
|
||||
---
|
||||
> monDictGlobal.clear()
|
||||
> handleMonDictGlobal.clear()
|
||||
6181a6322
|
||||
>
|
||||
7232,7545d7372
|
||||
<
|
||||
< #if HAVE_BSREAD==1:
|
||||
<
|
||||
< ################################################################################
|
||||
<
|
||||
< def prepareSFdbpm(self):
|
||||
< cdef:
|
||||
< vector[string] bpmList
|
||||
< vector[unsigned int] bpmHandles
|
||||
< vector[string] bpmDev
|
||||
< vector[float] bpmPos
|
||||
<
|
||||
< self._c_cafe.prepareDBPM(bpmList, bpmHandles, bpmDev, bpmPos)
|
||||
<
|
||||
< # for i in range(0, self.bpmDev.size()):
|
||||
< #print (bpmPos[i], bpmDev[i] )
|
||||
<
|
||||
< if not self.dbpmInitialized:
|
||||
< self.dbpm = DBPMKeeper(
|
||||
< bpmList, bpmHandles, bpmDev, bpmPos)
|
||||
< self.dbpmInitialized = True
|
||||
< return
|
||||
<
|
||||
< ##################################################################################
|
||||
< # END def prepareSFdbpm(self)
|
||||
< ##################################################################################
|
||||
<
|
||||
< def setSFdbpmBS(self, bint bsFlag=True):
|
||||
< return self.dbpm.setBS(bsFlag)
|
||||
<
|
||||
< def resetSFdbpmBS(self):
|
||||
< return self.dbpm.resetBS()
|
||||
<
|
||||
< def closeSFdbpmBS(self):
|
||||
< return self.dbpm.closeBS()
|
||||
<
|
||||
< def readSFdbpmOffsets(self):
|
||||
< return self._c_cafe.readDBPMOffsets(self.dbpm)
|
||||
<
|
||||
< def getSFdbpm(self):
|
||||
<
|
||||
< cdef str _METHOD = "getSFdbpm"
|
||||
<
|
||||
< cdef int status
|
||||
< cdef vector[unsigned int] handleV
|
||||
< with nogil:
|
||||
< status = self._c_cafe.getDBPM(self.dbpm)
|
||||
<
|
||||
< if status >= ICAFE_ERRNO_BASE:
|
||||
< self._c_cafe.printStatusMessage(status)
|
||||
< elif status != ICAFE_NORMAL:
|
||||
< if PYCAFE_PRINT_LEVEL >= PYCAFE_PRINT_LOW:
|
||||
< # self._c_cafe.printStatusMessage(status)
|
||||
<
|
||||
< handleV = self.dbpm.getHandle()
|
||||
< # for i in range(0, self.dbpm.getNDBPM()):
|
||||
< # if x[i].getStatus !=
|
||||
< #print (self.bpmPos[i], self.bpmDev[i] )
|
||||
< for i in range(0, self.dbpm.getNPV()):
|
||||
< if (self.dbpm.pvd[i].getStatus() != ICAFE_NORMAL):
|
||||
< self._c_cafe.printStatus(handleV[i], status)
|
||||
<
|
||||
< return dbpmHolderToStruct(self.dbpm)
|
||||
<
|
||||
< ##################################################################################
|
||||
< # END def getSFdbpm(self):
|
||||
< ##################################################################################
|
||||
<
|
||||
<
|
||||
< def getSFdbpmOffs_x(self):
|
||||
< return self.dbpm.getOffsetX()
|
||||
<
|
||||
< def getSFdbpmOffs_y(self):
|
||||
< return self.dbpm.getOffsetY()
|
||||
<
|
||||
< ################################################################################
|
||||
<
|
||||
< def setBS(self, list pv=None, modulo=None, offset=None, int timeoutMS=0):
|
||||
<
|
||||
< cdef str _METHOD = "setBS"
|
||||
< cdef int status = ICAFE_NORMAL
|
||||
< cdef unsigned int i
|
||||
< cdef bint pFlag = False
|
||||
<
|
||||
< if isinstance(modulo, numbers.Number):
|
||||
< if int(modulo) <= 0:
|
||||
< raise ValueError("{} {} \n{}".format(
|
||||
< self._exception_text, _METHOD,
|
||||
< "modulo input argument must be positive!"))
|
||||
< elif not TypeError(modulo, dict):
|
||||
< raise Exception("{} {} \n{}".format(
|
||||
< self._exception_text, _METHOD,
|
||||
< ("modulo input arg, should be of type <class 'numbers.Number'>, "
|
||||
< "else <class 'dict'> {pv_name : modulo}")))
|
||||
<
|
||||
< if isinstance(offset, (numbers.Number)):
|
||||
< if int(offset) < 0:
|
||||
< raise ValueError("{} {} \n{}".format(
|
||||
< self._exception_text, _METHOD,
|
||||
< "offset input argument cannot be negative!"))
|
||||
< elif not isinstance(offset, (dict)):
|
||||
< raise TypeError("{} {} \n{}".format(
|
||||
< self._exception_text, _METHOD,
|
||||
< ("offset input arg, should be of type <class 'numbers.Number'>, "
|
||||
< "else <class 'dict'> {pv_name : offset} ")))
|
||||
<
|
||||
< if self.BSInitialized == True:
|
||||
< print("Message from setBS: ONLY A SINGLE STREAM IS ALLOWED")
|
||||
< return status
|
||||
<
|
||||
< cdef vector[string] v
|
||||
<
|
||||
< if timeoutMS > 0:
|
||||
< self.bsd.setTimeout(timeoutMS)
|
||||
<
|
||||
< if pv is not None:
|
||||
< # do this to avoid compiler warning messages
|
||||
< for i in range(0, len(pv)):
|
||||
< v.push_back(pv[i])
|
||||
< self.bsd.init(v)
|
||||
<
|
||||
< if isinstance(modulo, (numbers.Number)):
|
||||
< modulo = dict([(pv[i], int(modulo))
|
||||
< for i in range(0, len(pv))])
|
||||
<
|
||||
< if isinstance(offset, (numbers.Number)):
|
||||
< offset = dict([(pv[i], int(offset))
|
||||
< for i in range(0, len(pv))])
|
||||
<
|
||||
< if modulo is not None:
|
||||
< for eachKey in modulo:
|
||||
< self.bsd.setBSModulo(eachKey, modulo[eachKey])
|
||||
< if offset is not None:
|
||||
< for eachKey in offset:
|
||||
< self.bsd.setBSOffset(eachKey, offset[eachKey])
|
||||
<
|
||||
< # self.initBSwithCA()
|
||||
< with nogil:
|
||||
< self._c_cafe.initBSwithCA(self.bsd)
|
||||
<
|
||||
< with nogil:
|
||||
< self._c_cafe.getBS(self.bsd)
|
||||
<
|
||||
< with nogil:
|
||||
< # status=self._c_cafe.setBS_Step1(self.bsd)
|
||||
< status = self._c_cafe.setBS(self.bsd)
|
||||
<
|
||||
< if status == ICAFE_NORMAL:
|
||||
< self.BSInitialized = True
|
||||
< self.isBSinCAOnly = False
|
||||
<
|
||||
< return status
|
||||
<
|
||||
< ################################################################################
|
||||
<
|
||||
< def initBSwithCA(self):
|
||||
<
|
||||
< # self.openPrepare()
|
||||
< with nogil:
|
||||
< self._c_cafe.initBSwithCA(self.bsd)
|
||||
<
|
||||
< # self.openNowAndWait(0.4)
|
||||
<
|
||||
<
|
||||
< ################################################################################
|
||||
< def setBS2CA(self, list pv=None):
|
||||
<
|
||||
< cdef vector[string] v
|
||||
< if pv is not None:
|
||||
< # do this to avoid compiler warning messages
|
||||
< for i in range(0, len(pv)):
|
||||
< v.push_back(pv[i])
|
||||
< self.bsd.init(v)
|
||||
<
|
||||
< with nogil:
|
||||
< self._c_cafe.setBS2CAGroup(self.bsd)
|
||||
< self.isBSinCAOnly = True
|
||||
<
|
||||
<
|
||||
< def getBSSlim(self):
|
||||
< if self.BSInitialized == False:
|
||||
< if self.isBSinCAOnly == False:
|
||||
< print(("Message from getBS: BS stream not initialized;"
|
||||
< "cafe.setBS(pvList) has first to be called."))
|
||||
< return None
|
||||
<
|
||||
< with nogil:
|
||||
< self._c_cafe.getBS(self.bsd)
|
||||
<
|
||||
<
|
||||
< t1= time.time()
|
||||
< PVDataV = self.bsd.getPVDataV()
|
||||
<
|
||||
< pvlist = [None] * <int>self.bsd.getNPV()
|
||||
< #cdef pvdata p1
|
||||
<
|
||||
< for i in range (0, self.bsd.getNPV()):
|
||||
< #p1 = pvdata()
|
||||
< #p1 = PVDataHolderToStruct(self.bsd.pvdata[i])
|
||||
< pvlist[i]=PVDataHolderToStruct(PVDataV[i])
|
||||
<
|
||||
<
|
||||
< bs_slim = {}
|
||||
<
|
||||
< for data, handle in zip(pvlist, self.bsd.getHandles()): # self.bsd.getIsBS()):
|
||||
< bs_slim[handle] = data
|
||||
<
|
||||
< t2= time.time()
|
||||
< print("diff in reading BSDataHolderToStruc", t2 - t1)
|
||||
<
|
||||
<
|
||||
< return bs_slim
|
||||
<
|
||||
< ################################################################################
|
||||
< def getBS(self):
|
||||
<
|
||||
< if self.BSInitialized == False:
|
||||
< if self.isBSinCAOnly == False:
|
||||
< print(("Message from getBS: BS stream not initialized;"
|
||||
< "cafe.setBS(pvList) has first to be called."))
|
||||
<
|
||||
< return None
|
||||
< # CHECK STATUS!!!!
|
||||
< #print("getBS in cycafe"
|
||||
< #start = time.time()
|
||||
<
|
||||
< with nogil:
|
||||
< self._c_cafe.getBS(self.bsd)
|
||||
<
|
||||
< _bsd = BSDataHolderToStruct(self.bsd)
|
||||
< #_bsd.show()
|
||||
< return _bsd #BSDataHolderToStruct(self.bsd)
|
||||
<
|
||||
< '''
|
||||
< cdef double _pid = 0
|
||||
< _handle = self._c_cafe.getHandleFromPV(str('SIN-TIMAST-EVG0:TX-PULSEID'))
|
||||
< _stat = self._c_cafe.getCacheDouble(_handle, _pid)
|
||||
< print("cython/cafe/diff in cython ", self.bsd.getPulse_id(), _pid, _pid - self.bsd.getPulse_id())
|
||||
< t1= time.time()
|
||||
< print("diff in cython", t1 - start)
|
||||
< #print("pulse_id in cycafe", self.bsd.getPulse_id())
|
||||
<
|
||||
< BSd = BSDataHolderToStruct(self.bsd)
|
||||
< t2= time.time()
|
||||
< print("diff totol in reading BSDataHolderToStruc", t2 - start)
|
||||
<
|
||||
< return BSd
|
||||
< '''
|
||||
<
|
||||
< ################################################################################
|
||||
<
|
||||
< def closeBS(self):
|
||||
< with nogil:
|
||||
< self._c_cafe.closeBS(self.bsd)
|
||||
< self.BSInitialized = False
|
||||
< self.isBSinCAOnly = False
|
||||
<
|
||||
<
|
||||
< def getTimeoutMSBS(self):
|
||||
< return self.bsd.getTimeout()
|
||||
<
|
||||
< def setTimeoutMSBS(self, int timeoutMS):
|
||||
< self.bsd.setTimeout(timeoutMS)
|
||||
<
|
||||
<
|
||||
< def reconnectBS(self):
|
||||
< self.bsd.reconnect()
|
||||
<
|
||||
<
|
||||
< def flushBS(self):
|
||||
< self.bsd.reconnect()
|
||||
<
|
||||
<
|
||||
< def monitorPulseID(self):
|
||||
< with nogil:
|
||||
< self._c_cafe.monitorPulseID()
|
||||
<
|
||||
<
|
||||
< def monitorStopPulseID(self):
|
||||
< with nogil:
|
||||
< self._c_cafe.monitorStopPulseID()
|
||||
<
|
||||
<
|
||||
< def setPulseIDBufferSize(self, handlePV, int bufferSize = 10):
|
||||
< cdef str _METHOD = "setPulseIDBufferSize"
|
||||
<
|
||||
< cdef unsigned int handle = 0
|
||||
< if isinstance(handlePV, (int, long)):
|
||||
< handle = handlePV
|
||||
< elif isinstance(handlePV, (str)):
|
||||
< handle = self.checkForHandle(handlePV)
|
||||
< else:
|
||||
< raise Exception("{} {} \n{}".format(
|
||||
< self._exception_text, _METHOD,
|
||||
< ("First Input argument should be of type <class 'int'> if handle "
|
||||
< "else <class 'str'> if PV.")))
|
||||
<
|
||||
< self._c_cafe.setPulseIDBufferSize(handle, bufferSize)
|
||||
<
|
||||
<
|
||||
< def setPulseIDBufferSizeAll(self, int bufferSize = 10):
|
||||
< self._c_cafe.setPulseIDBufferSizeAll(bufferSize)
|
||||
<
|
||||
<
|
||||
< ###################################################################################
|
||||
<
|
||||
< def setBSInit(self, list pv):
|
||||
< self.bsd.init(pv)
|
||||
<
|
||||
<
|
||||
<
|
||||
< ##################################################################################
|
||||
< #END: cdef CAFE###################################################################
|
||||
< ##################################################################################
|
||||
1946
examples.py
1946
examples.py
File diff suppressed because it is too large
Load Diff
47
examples.sh
Normal file
47
examples.sh
Normal file
@@ -0,0 +1,47 @@
|
||||
#!/usr/bin/env bash
|
||||
module unload gcc
|
||||
module load gcc/7.3.0
|
||||
|
||||
|
||||
|
||||
if [ -z "$PS1" ]; then
|
||||
echo "This shell is not interactive"
|
||||
appName=$0
|
||||
else
|
||||
echo "This shell is interactive"
|
||||
appName=$BASH_SOURCE
|
||||
fi
|
||||
|
||||
|
||||
|
||||
# Select default Python Version here. Currently only 3.7 is supported
|
||||
PYTHON_VERSION=3.7
|
||||
|
||||
if [ "$1" ]; then
|
||||
if [ "$1" == "3.8" -o "$1" == "38" ]; then
|
||||
echo "User requested python version $1 is not yet supported"
|
||||
echo "Using default version $PYTHON_VERSION"
|
||||
elif [ "$1" == "3.7" -o "$1" == "37" ]; then
|
||||
PYTHON_VERSION=3.7
|
||||
else
|
||||
echo "User requested python version $1 is not supported"
|
||||
echo "Using default version $PYTHON_VERSION"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "PYTHON_VERSION $PYTHON_VERSION"
|
||||
|
||||
|
||||
# For use if script is sourced rather than executed
|
||||
appNameDefault="examples.sh"
|
||||
|
||||
_EPICS_HOST_ARCH=${RHREL}-x86_64
|
||||
_EPICS_BASE=base-7.0.9
|
||||
|
||||
. /opt/gfa/python $PYTHON_VERSION
|
||||
|
||||
export PYTHONPATH=.:
|
||||
|
||||
export LD_PRELOAD=/usr/local/epics/${_EPICS_BASE}/lib/${_EPICS_HOST_ARCH}/libca.so:/usr/local/epics/${_EPICS_BASE}/lib/${_EPICS_HOST_ARCH}/libCom.so
|
||||
python examples.py
|
||||
unset LD_PRELOAD
|
||||
12
julia/README
Normal file
12
julia/README
Normal file
@@ -0,0 +1,12 @@
|
||||
source /opt/gfa/python 3.7
|
||||
export PYTHONPATH=/opt/gfa/cafe/python/pycafe/cafe-1.13.0-sls2-gcc-7.3.0/lib/${EPICS_HOST_ARCH}
|
||||
|
||||
|
||||
using PyCall
|
||||
@pyimport PyCafe
|
||||
cafe=PyCafe.CyCafe()
|
||||
cyca=PyCafe.CyCa() #To examine error codes
|
||||
pvdata=cafe.getPV("SATCL01-MQUA120:I-SET")
|
||||
pvdata.show()
|
||||
pvdata.value[1] #Note the indexing in julia starts at 1, as I daresay you will already know
|
||||
pvdata.status # should equal cyca.ICAFE_NORMAL
|
||||
62
julia/cafe.jl
Normal file
62
julia/cafe.jl
Normal file
@@ -0,0 +1,62 @@
|
||||
module MyModule
|
||||
|
||||
#First execute the following commands in your console window
|
||||
#export PYTHONPATH=/opt/gfa/cafe/python/pycafe/pyzcafe-1.12.2-gcc-7.3.0
|
||||
|
||||
#Start Julia and change the python version from the default
|
||||
#to Python 3.7.5 as follows:
|
||||
#ENV["PYTHON"] = "/opt/gfa/python-3.7/latest/bin/python"
|
||||
#using Pkg
|
||||
#Pkg.build("PyCall")
|
||||
#You may need to restart Julia
|
||||
|
||||
using PyCall
|
||||
py"""
|
||||
import sys
|
||||
import time
|
||||
import PyCafe
|
||||
cafe = PyCafe.CyCafe()
|
||||
cyca = PyCafe.CyCa()
|
||||
|
||||
print(sys.version) #Should see 3.7.5
|
||||
pvlist = ["SARFE10-PSSS059:SPECTRUM_X", "SATCL01-MQUA120:I-SET","SATCL01-MQUA120:I-READ", "PV-DOES-NOT:EXIST"]
|
||||
|
||||
#Quicker to open all channels with one call
|
||||
cafe.openPrepare()
|
||||
handle=cafe.open(pvlist)
|
||||
cafe.openNowAndWait(0.4)
|
||||
|
||||
|
||||
cafe.setNelem(handle[0], 10) #just read out 10 elements of wf
|
||||
|
||||
pvdata=cafe.getPV(handle[0])
|
||||
print(pvlist[0])
|
||||
pvdata.show() #shows struct
|
||||
if pvdata.status == cyca.ICAFE_NORMAL:
|
||||
print("Value =", pvdata.value)
|
||||
print("TimeStamp =", pvdata.tsDate)
|
||||
|
||||
print(pvlist[1])
|
||||
pvdata=cafe.getPV(handle[1])
|
||||
pvdata.show()
|
||||
pvctrl=cafe.getCtrl(handle[1])
|
||||
pvctrl.show()
|
||||
|
||||
cafe.monitor(handle[2])
|
||||
for i in range (0, 10):
|
||||
val = cafe.getCache(handle[2])
|
||||
print (val)
|
||||
time.sleep(0.25)
|
||||
|
||||
value=cafe.get(handle[3])
|
||||
print(pvlist[3])
|
||||
if value is None:
|
||||
status=cafe.getStatus(handle[3])
|
||||
print("Status =", status, cafe.getStatusCodeAsText(status))
|
||||
|
||||
|
||||
|
||||
"""
|
||||
|
||||
|
||||
end
|
||||
64
makefile
Normal file
64
makefile
Normal file
@@ -0,0 +1,64 @@
|
||||
#
|
||||
# Jan Chrin
|
||||
#
|
||||
#
|
||||
##### CHANGE AS APPROPRIATE #################
|
||||
#
|
||||
|
||||
_EPICS_HOST_ARCH=${RHREL}-x86_64
|
||||
CAFE_CYCAFE_BASE=/opt/gfa/cafe/python/pycafe
|
||||
INSTALL_PATH_PY= $(CAFE_CYCAFE_BASE)/cafe-1.22.0-gcc-7.3.0/lib/${_EPICS_HOST_ARCH}
|
||||
INSTALL_PATH_SF= $(CAFE_CYCAFE_BASE)/cafe-1.22.0-sf-gcc-7.3.0/lib/${_EPICS_HOST_ARCH}
|
||||
INSTALL_PATH_SLS2_PY35= $(CAFE_CYCAFE_BASE)/cafe-1.22.0-gcc-7.3.0/lib/${_EPICS_HOST_ARCH}
|
||||
INSTALL_PATH_SLS2_PY37= $(CAFE_CYCAFE_BASE)/cafe-1.22.0-gcc-7.3.0/lib/${_EPICS_HOST_ARCH}
|
||||
INSTALL_PATH_SLS2_PY38= $(CAFE_CYCAFE_BASE)/cafe-1.22.0-gcc-7.5.0/lib/${_EPICS_HOST_ARCH}
|
||||
INSTALL_PATH_SLS2_PY310= $(CAFE_CYCAFE_BASE)/cafe-1.22.0-gcc-7.5.0/lib/${_EPICS_HOST_ARCH}
|
||||
#############################################
|
||||
|
||||
.DEFAULT_GOAL := help
|
||||
.PHONY: clean
|
||||
|
||||
help:
|
||||
@echo "Options for make: install_py37 install_py37_sf install_py37_sls2 install_py35 install_py35_sf"
|
||||
|
||||
install_py37: python3.7-sls2/lib/${_EPICS_HOST_ARCH}/PyCafe.cpython-37m-x86_64-linux-gnu.so
|
||||
mkdir -p $(INSTALL_PATH_PY)
|
||||
cp python3.7-sls2/lib/${_EPICS_HOST_ARCH}/PyCafe.cpython-37m-x86_64-linux-gnu.so $(INSTALL_PATH_PY)
|
||||
cp python3.7-sls2/lib/${_EPICS_HOST_ARCH}/examples.py $(INSTALL_PATH_PY)
|
||||
|
||||
install_py35: python3.5-sls2/lib/${_EPICS_HOST_ARCH}/PyCafe.cpython-35m-x86_64-linux-gnu.so
|
||||
mkdir -p $(INSTALL_PATH_PY)
|
||||
cp python3.5-sls2/lib/${_EPICS_HOST_ARCH}/PyCafe.cpython-35m-x86_64-linux-gnu.so $(INSTALL_PATH_PY)
|
||||
|
||||
install_py37_sf: python3.7-sf/lib/${_EPICS_HOST_ARCH}/PyCafe.cpython-37m-x86_64-linux-gnu.so
|
||||
mkdir -p $(INSTALL_PATH_SF)
|
||||
cp python3.7-sf/lib/${_EPICS_HOST_ARCH}/PyCafe.cpython-37m-x86_64-linux-gnu.so $(INSTALL_PATH_SF)
|
||||
cp python3.7-sf/lib/${_EPICS_HOST_ARCH}/examples.py $(INSTALL_PATH_SF)
|
||||
|
||||
install_py35_sf: python3.5-sf/lib/${_EPICS_HOST_ARCH}/PyCafe.cpython-35m-x86_64-linux-gnu.so
|
||||
mkdir -p $(INSTALL_PATH_SF)
|
||||
cp python3.5-sf/lib/${_EPICS_HOST_ARCH}/PyCafe.cpython-35m-x86_64-linux-gnu.so $(INSTALL_PATH_SF)
|
||||
|
||||
|
||||
install_py310_sls2: python3.10-sls2/lib/${_EPICS_HOST_ARCH}/PyCafe.cpython-310-x86_64-linux-gnu.so
|
||||
mkdir -p $(INSTALL_PATH_SLS2_PY310)
|
||||
cp python3.10-sls2/lib/${_EPICS_HOST_ARCH}/PyCafe.cpython-310-x86_64-linux-gnu.so $(INSTALL_PATH_SLS2_PY310)
|
||||
cp python3.10-sls2/lib/${_EPICS_HOST_ARCH}/examples.py $(INSTALL_PATH_SLS2_PY310)
|
||||
|
||||
install_py38_sls2: python3.8-sls2/lib/${_EPICS_HOST_ARCH}/PyCafe.cpython-38-x86_64-linux-gnu.so
|
||||
mkdir -p $(INSTALL_PATH_SLS2_PY38)
|
||||
cp python3.8-sls2/lib/${_EPICS_HOST_ARCH}/PyCafe.cpython-38-x86_64-linux-gnu.so $(INSTALL_PATH_SLS2_PY38)
|
||||
cp python3.8-sls2/lib/${_EPICS_HOST_ARCH}/examples.py $(INSTALL_PATH_SLS2_PY38)
|
||||
|
||||
install_py37_sls2: python3.7-sls2/lib/${_EPICS_HOST_ARCH}/PyCafe.cpython-37m-x86_64-linux-gnu.so
|
||||
mkdir -p $(INSTALL_PATH_SLS2_PY37)
|
||||
cp python3.7-sls2/lib/${_EPICS_HOST_ARCH}/PyCafe.cpython-37m-x86_64-linux-gnu.so $(INSTALL_PATH_SLS2_PY37)
|
||||
cp python3.7-sls2/lib/${_EPICS_HOST_ARCH}/examples.py $(INSTALL_PATH_SLS_PY37)
|
||||
|
||||
install_py35_sls2: python3.5-sls2/lib/${_EPICS_HOST_ARCH}/PyCafe.cpython-35m-x86_64-linux-gnu.so
|
||||
mkdir -p $(INSTALL_PATH_SLS2_PY35)
|
||||
cp python3.5-sls2/lib/${_EPICS_HOST_ARCH}/PyCafe.cpython-35m-x86_64-linux-gnu.so $(INSTALL_PATH_SLS2_PY35)
|
||||
cp python3.5-sls2/lib/${_EPICS_HOST_ARCH}/examples.py $(INSTALL_PATH_SLS2_PY35)
|
||||
clean:
|
||||
rm -f *.o
|
||||
|
||||
63
makefile-
Normal file
63
makefile-
Normal file
@@ -0,0 +1,63 @@
|
||||
#
|
||||
# Jan Chrin
|
||||
#
|
||||
#
|
||||
##### CHANGE AS APPROPRIATE #################
|
||||
#
|
||||
|
||||
_EPICS_HOST_ARCH=${RHREL}-x86_64
|
||||
CAFE_CYCAFE_BASE=/opt/gfa/cafe/python/pycafe
|
||||
INSTALL_PATH_PY= $(CAFE_CYCAFE_BASE)/cafe-1.21.0-1-gcc-7.3.0/lib/${_EPICS_HOST_ARCH}
|
||||
INSTALL_PATH_SF= $(CAFE_CYCAFE_BASE)/cafe-1.21.0-1-sf-gcc-7.3.0/lib/${_EPICS_HOST_ARCH}
|
||||
INSTALL_PATH_SLS2= $(CAFE_CYCAFE_BASE)/cafe-1.21.0-1-gcc-7.3.0/lib/${_EPICS_HOST_ARCH}
|
||||
INSTALL_PATH_SLS2_PY38= $(CAFE_CYCAFE_BASE)/cafe-1.21.0-1-gcc-7.5.0/lib/${_EPICS_HOST_ARCH}
|
||||
INSTALL_PATH_SLS2_PY310= $(CAFE_CYCAFE_BASE)/cafe-1.21.0-1-gcc-7.5.0/lib/${_EPICS_HOST_ARCH}
|
||||
#############################################
|
||||
|
||||
.DEFAULT_GOAL := help
|
||||
.PHONY: clean
|
||||
|
||||
help:
|
||||
@echo "Options for make: install_py37 install_py37_sf install_py37_sls2 install_py35 install_py35_sf"
|
||||
|
||||
install_py37: python3.7/lib/${_EPICS_HOST_ARCH}/PyCafe.cpython-37m-x86_64-linux-gnu.so
|
||||
mkdir -p $(INSTALL_PATH_PY)
|
||||
cp python3.7/lib/${_EPICS_HOST_ARCH}/PyCafe.cpython-37m-x86_64-linux-gnu.so $(INSTALL_PATH_PY)
|
||||
cp python3.7/lib/${_EPICS_HOST_ARCH}/examples.py $(INSTALL_PATH_PY)
|
||||
|
||||
install_py35: python3.5/lib/${_EPICS_HOST_ARCH}/PyCafe.cpython-35m-x86_64-linux-gnu.so
|
||||
mkdir -p $(INSTALL_PATH_PY)
|
||||
cp python3.5/lib/${_EPICS_HOST_ARCH}/PyCafe.cpython-35m-x86_64-linux-gnu.so $(INSTALL_PATH_PY)
|
||||
|
||||
install_py37_sf: python3.7-sf/lib/${_EPICS_HOST_ARCH}/PyCafe.cpython-37m-x86_64-linux-gnu.so
|
||||
mkdir -p $(INSTALL_PATH_SF)
|
||||
cp python3.7-sf/lib/${_EPICS_HOST_ARCH}/PyCafe.cpython-37m-x86_64-linux-gnu.so $(INSTALL_PATH_SF)
|
||||
cp python3.7-sf/lib/${_EPICS_HOST_ARCH}/examples.py $(INSTALL_PATH_SF)
|
||||
|
||||
install_py35_sf: python3.5-sf/lib/${_EPICS_HOST_ARCH}/PyCafe.cpython-35m-x86_64-linux-gnu.so
|
||||
mkdir -p $(INSTALL_PATH_SF)
|
||||
cp python3.5-sf/lib/${_EPICS_HOST_ARCH}/PyCafe.cpython-35m-x86_64-linux-gnu.so $(INSTALL_PATH_SF)
|
||||
|
||||
|
||||
install_py310_sls2: python3.10-sls2/lib/${_EPICS_HOST_ARCH}/PyCafe.cpython-310-x86_64-linux-gnu.so
|
||||
mkdir -p $(INSTALL_PATH_SLS2_PY310)
|
||||
cp python3.10-sls2/lib/${_EPICS_HOST_ARCH}/PyCafe.cpython-310-x86_64-linux-gnu.so $(INSTALL_PATH_SLS2_PY310)
|
||||
cp python3.10-sls2/lib/${_EPICS_HOST_ARCH}/examples.py $(INSTALL_PATH_SLS2_PY310)
|
||||
|
||||
install_py38_sls2: python3.8-sls2/lib/${_EPICS_HOST_ARCH}/PyCafe.cpython-38-x86_64-linux-gnu.so
|
||||
mkdir -p $(INSTALL_PATH_SLS2_PY38)
|
||||
cp python3.8-sls2/lib/${_EPICS_HOST_ARCH}/PyCafe.cpython-38-x86_64-linux-gnu.so $(INSTALL_PATH_SLS2_PY38)
|
||||
cp python3.8-sls2/lib/${_EPICS_HOST_ARCH}/examples.py $(INSTALL_PATH_SLS2_PY38)
|
||||
|
||||
install_py37_sls2: python3.7-sls2/lib/${_EPICS_HOST_ARCH}/PyCafe.cpython-37m-x86_64-linux-gnu.so
|
||||
mkdir -p $(INSTALL_PATH_SLS2)
|
||||
cp python3.7-sls2/lib/${_EPICS_HOST_ARCH}/PyCafe.cpython-37m-x86_64-linux-gnu.so $(INSTALL_PATH_SLS2)
|
||||
cp python3.7-sls2/lib/${_EPICS_HOST_ARCH}/examples.py $(INSTALL_PATH_SLS2)
|
||||
|
||||
install_py35_sls2: python3.5-sls2/lib/${_EPICS_HOST_ARCH}/PyCafe.cpython-35m-x86_64-linux-gnu.so
|
||||
mkdir -p $(INSTALL_PATH_SLS2)
|
||||
cp python3.5-sls2/lib/${_EPICS_HOST_ARCH}/PyCafe.cpython-35m-x86_64-linux-gnu.so $(INSTALL_PATH_SLS2)
|
||||
cp python3.5-sls2/lib/${_EPICS_HOST_ARCH}/examples.py $(INSTALL_PATH_SLS2)
|
||||
clean:
|
||||
rm -f *.o
|
||||
|
||||
61
makefile_gcc_7.5.0
Normal file
61
makefile_gcc_7.5.0
Normal file
@@ -0,0 +1,61 @@
|
||||
#
|
||||
# Jan Chrin
|
||||
#
|
||||
#
|
||||
##### CHANGE AS APPROPRIATE #################
|
||||
#
|
||||
|
||||
|
||||
CAFE_CYCAFE_BASE=/opt/gfa/cafe/python/pycafe
|
||||
INSTALL_PATH_PY= $(CAFE_CYCAFE_BASE)/cafe-1.21.0-gcc-7.5.0/lib/${EPICS_HOST_ARCH}
|
||||
INSTALL_PATH_SF= $(CAFE_CYCAFE_BASE)/cafe-1.21.0-sf-gcc-7.5.0/lib/${EPICS_HOST_ARCH}
|
||||
INSTALL_PATH_SLS2= $(CAFE_CYCAFE_BASE)/cafe-1.21.0-gcc-10.4.0/lib/${EPICS_HOST_ARCH}
|
||||
#############################################
|
||||
|
||||
.DEFAULT_GOAL := help
|
||||
.PHONY: clean
|
||||
|
||||
help:
|
||||
@echo "Options for make: install_py37 install_py37_sf install_py37_sls2 install_py35 install_py35_sf"
|
||||
|
||||
install_py37: python3.7/lib/${EPICS_HOST_ARCH}/PyCafe.cpython-37m-x86_64-linux-gnu.so
|
||||
mkdir -p $(INSTALL_PATH_PY)
|
||||
cp python3.7/lib/${EPICS_HOST_ARCH}/PyCafe.cpython-37m-x86_64-linux-gnu.so $(INSTALL_PATH_PY)
|
||||
cp python3.7/lib/${EPICS_HOST_ARCH}/examples.py $(INSTALL_PATH_PY)
|
||||
|
||||
install_py35: python3.5/lib/${EPICS_HOST_ARCH}/PyCafe.cpython-35m-x86_64-linux-gnu.so
|
||||
mkdir -p $(INSTALL_PATH_PY)
|
||||
cp python3.5/lib/${EPICS_HOST_ARCH}/PyCafe.cpython-35m-x86_64-linux-gnu.so $(INSTALL_PATH_PY)
|
||||
|
||||
install_py37_sf: python3.7-sf/lib/${EPICS_HOST_ARCH}/PyCafe.cpython-37m-x86_64-linux-gnu.so
|
||||
mkdir -p $(INSTALL_PATH_SF)
|
||||
cp python3.7-sf/lib/${EPICS_HOST_ARCH}/PyCafe.cpython-37m-x86_64-linux-gnu.so $(INSTALL_PATH_SF)
|
||||
cp python3.7-sf/lib/${EPICS_HOST_ARCH}/examples.py $(INSTALL_PATH_SF)
|
||||
|
||||
install_py35_sf: python3.5-sf/lib/${EPICS_HOST_ARCH}/PyCafe.cpython-35m-x86_64-linux-gnu.so
|
||||
mkdir -p $(INSTALL_PATH_SF)
|
||||
cp python3.5-sf/lib/${EPICS_HOST_ARCH}/PyCafe.cpython-35m-x86_64-linux-gnu.so $(INSTALL_PATH_SF)
|
||||
|
||||
install_py37_sls2: python3.7-sls2/lib/${EPICS_HOST_ARCH}/PyCafe.cpython-37m-x86_64-linux-gnu.so
|
||||
mkdir -p $(INSTALL_PATH_SLS2)
|
||||
cp python3.7-sls2/lib/${EPICS_HOST_ARCH}/PyCafe.cpython-37m-x86_64-linux-gnu.so $(INSTALL_PATH_SLS2)
|
||||
cp python3.7-sls2/lib/${EPICS_HOST_ARCH}/examples.py $(INSTALL_PATH_SLS2)
|
||||
|
||||
install_py35_sls2: python3.5-sls2/lib/${EPICS_HOST_ARCH}/PyCafe.cpython-35m-x86_64-linux-gnu.so
|
||||
mkdir -p $(INSTALL_PATH_SLS2)
|
||||
cp python3.5-sls2/lib/${EPICS_HOST_ARCH}/PyCafe.cpython-35m-x86_64-linux-gnu.so $(INSTALL_PATH_SLS2)
|
||||
cp python3.5-sls2/lib/${EPICS_HOST_ARCH}/examples.py $(INSTALL_PATH_SLS2)
|
||||
|
||||
install_py38_sls2: python3.8-sls2/lib/${EPICS_HOST_ARCH}/PyCafe.cpython-38-x86_64-linux-gnu.so
|
||||
mkdir -p $(INSTALL_PATH_SLS2)
|
||||
cp python3.8-sls2/lib/${EPICS_HOST_ARCH}/PyCafe.cpython-38-x86_64-linux-gnu.so $(INSTALL_PATH_SLS2)
|
||||
cp python3.8-sls2/lib/${EPICS_HOST_ARCH}/examples.py $(INSTALL_PATH_SLS2)
|
||||
|
||||
install_py310_sls2: python3.10-sls2/lib/${EPICS_HOST_ARCH}/PyCafe.cpython-310-x86_64-linux-gnu.so
|
||||
mkdir -p $(INSTALL_PATH_SLS2)
|
||||
cp python3.10-sls2/lib/${EPICS_HOST_ARCH}/PyCafe.cpython-310-x86_64-linux-gnu.so $(INSTALL_PATH_SLS2)
|
||||
cp python3.10-sls2/lib/${EPICS_HOST_ARCH}/examples.py $(INSTALL_PATH_SLS2)
|
||||
|
||||
clean:
|
||||
rm -f *.o
|
||||
|
||||
47
makefile~
Normal file
47
makefile~
Normal file
@@ -0,0 +1,47 @@
|
||||
#
|
||||
# Jan Chrin
|
||||
#
|
||||
#
|
||||
##### CHANGE AS APPROPRIATE #################
|
||||
#
|
||||
|
||||
|
||||
CAFE_CYCAFE_BASE=/opt/gfa/cafe/python/pycafe
|
||||
INSTALL_PATH_PY= $(CAFE_CYCAFE_BASE)/cafe-1.13.0-gcc-7.3.0/lib/${EPICS_HOST_ARCH}
|
||||
INSTALL_PATH_SF= $(CAFE_CYCAFE_BASE)/cafe-1.13.0-sf-gcc-7.3.0/lib/${EPICS_HOST_ARCH}
|
||||
INSTALL_PATH_SLS2= $(CAFE_CYCAFE_BASE)/cafe-1.13.0-sls2-gcc-7.3.0/lib/${EPICS_HOST_ARCH}
|
||||
#############################################
|
||||
|
||||
.DEFAULT_GOAL := help
|
||||
.PHONY: clean
|
||||
|
||||
help:
|
||||
@echo "Options for make: install_py37"
|
||||
|
||||
install_py37: python3.7/lib/${EPICS_HOST_ARCH}/PyCafe.cpython-37m-x86_64-linux-gnu.so
|
||||
mkdir -p $(INSTALL_PATH_PY)
|
||||
cp python3.7/lib/${EPICS_HOST_ARCH}/PyCafe.cpython-37m-x86_64-linux-gnu.so $(INSTALL_PATH_PY)
|
||||
cp python3.7/lib/${EPICS_HOST_ARCH}/examples.py $(INSTALL_PATH_PY)
|
||||
|
||||
install_py35: python3.5/lib/${EPICS_HOST_ARCH}/PyCafe.cpython-35m-x86_64-linux-gnu.so
|
||||
mkdir -p $(INSTALL_PATH_PY)
|
||||
cp python3.5/lib/${EPICS_HOST_ARCH}/PyCafe.cpython-35m-x86_64-linux-gnu.so $(INSTALL_PATH_PY)
|
||||
|
||||
install_py37_sf: python3.7-sf/lib/${EPICS_HOST_ARCH}/PyCafe.cpython-37m-x86_64-linux-gnu.so
|
||||
mkdir -p $(INSTALL_PATH_SF)
|
||||
cp python3.7-sf/lib/${EPICS_HOST_ARCH}/PyCafe.cpython-37m-x86_64-linux-gnu.so $(INSTALL_PATH_SF)
|
||||
cp python3.7-sf/lib/${EPICS_HOST_ARCH}/examples.py $(INSTALL_PATH_SF)
|
||||
|
||||
install_py35_sf: python3.5-sf/lib/${EPICS_HOST_ARCH}/PyCafe.cpython-35m-x86_64-linux-gnu.so
|
||||
mkdir -p $(INSTALL_PATH_SF)
|
||||
cp python3.5-sf/lib/${EPICS_HOST_ARCH}/PyCafe.cpython-35m-x86_64-linux-gnu.so $(INSTALL_PATH_SF)
|
||||
|
||||
install_py37_sls2: python3.7-sls2/lib/${EPICS_HOST_ARCH}/PyCafe.cpython-37m-x86_64-linux-gnu.so
|
||||
mkdir -p $(INSTALL_PATH_SLS2)
|
||||
cp python3.7-sls2/lib/${EPICS_HOST_ARCH}/PyCafe.cpython-37m-x86_64-linux-gnu.so $(INSTALL_PATH_SLS2)
|
||||
cp python3.7-sls2/lib/${EPICS_HOST_ARCH}/examples.py $(INSTALL_PATH_SLS2)
|
||||
|
||||
|
||||
clean:
|
||||
rm -f *.o
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
../PyCafe.pxd
|
||||
@@ -1 +0,0 @@
|
||||
../PyCafe.pyx
|
||||
@@ -1 +0,0 @@
|
||||
../PyCafeDefs.pxi
|
||||
@@ -1,115 +0,0 @@
|
||||
/* Generated by Cython 0.23.4 */
|
||||
|
||||
#ifndef __PYX_HAVE_API__PyCafe
|
||||
#define __PYX_HAVE_API__PyCafe
|
||||
#include "Python.h"
|
||||
|
||||
static void (*__pyx_api_f_6PyCafe_py_cb_wrapper)(PVDataHolder, unsigned int, std::string) = 0;
|
||||
#define py_cb_wrapper __pyx_api_f_6PyCafe_py_cb_wrapper
|
||||
static void (*__pyx_api_f_6PyCafe_py_cb_ctrl_wrapper)(PVCtrlHolder, unsigned int, std::string) = 0;
|
||||
#define py_cb_ctrl_wrapper __pyx_api_f_6PyCafe_py_cb_ctrl_wrapper
|
||||
static void (*__pyx_api_f_6PyCafe_py_cb_handle_wrapper)(unsigned int) = 0;
|
||||
#define py_cb_handle_wrapper __pyx_api_f_6PyCafe_py_cb_handle_wrapper
|
||||
static void (*__pyx_api_f_6PyCafe_py_cb_handle_monid_wrapper)(unsigned int, unsigned long) = 0;
|
||||
#define py_cb_handle_monid_wrapper __pyx_api_f_6PyCafe_py_cb_handle_monid_wrapper
|
||||
static void (*__pyx_api_f_6PyCafe_py_cb_handle_get_wrapper)(unsigned int) = 0;
|
||||
#define py_cb_handle_get_wrapper __pyx_api_f_6PyCafe_py_cb_handle_get_wrapper
|
||||
static void (*__pyx_api_f_6PyCafe_py_cb_handle_put_wrapper)(unsigned int) = 0;
|
||||
#define py_cb_handle_put_wrapper __pyx_api_f_6PyCafe_py_cb_handle_put_wrapper
|
||||
#if !defined(__Pyx_PyIdentifier_FromString)
|
||||
#if PY_MAJOR_VERSION < 3
|
||||
#define __Pyx_PyIdentifier_FromString(s) PyString_FromString(s)
|
||||
#else
|
||||
#define __Pyx_PyIdentifier_FromString(s) PyUnicode_FromString(s)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef __PYX_HAVE_RT_ImportModule
|
||||
#define __PYX_HAVE_RT_ImportModule
|
||||
static PyObject *__Pyx_ImportModule(const char *name) {
|
||||
PyObject *py_name = 0;
|
||||
PyObject *py_module = 0;
|
||||
py_name = __Pyx_PyIdentifier_FromString(name);
|
||||
if (!py_name)
|
||||
goto bad;
|
||||
py_module = PyImport_Import(py_name);
|
||||
Py_DECREF(py_name);
|
||||
return py_module;
|
||||
bad:
|
||||
Py_XDECREF(py_name);
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef __PYX_HAVE_RT_ImportFunction
|
||||
#define __PYX_HAVE_RT_ImportFunction
|
||||
static int __Pyx_ImportFunction(PyObject *module, const char *funcname, void (**f)(void), const char *sig) {
|
||||
PyObject *d = 0;
|
||||
PyObject *cobj = 0;
|
||||
union {
|
||||
void (*fp)(void);
|
||||
void *p;
|
||||
} tmp;
|
||||
d = PyObject_GetAttrString(module, (char *)"__pyx_capi__");
|
||||
if (!d)
|
||||
goto bad;
|
||||
cobj = PyDict_GetItemString(d, funcname);
|
||||
if (!cobj) {
|
||||
PyErr_Format(PyExc_ImportError,
|
||||
"%.200s does not export expected C function %.200s",
|
||||
PyModule_GetName(module), funcname);
|
||||
goto bad;
|
||||
}
|
||||
#if PY_VERSION_HEX >= 0x02070000
|
||||
if (!PyCapsule_IsValid(cobj, sig)) {
|
||||
PyErr_Format(PyExc_TypeError,
|
||||
"C function %.200s.%.200s has wrong signature (expected %.500s, got %.500s)",
|
||||
PyModule_GetName(module), funcname, sig, PyCapsule_GetName(cobj));
|
||||
goto bad;
|
||||
}
|
||||
tmp.p = PyCapsule_GetPointer(cobj, sig);
|
||||
#else
|
||||
{const char *desc, *s1, *s2;
|
||||
desc = (const char *)PyCObject_GetDesc(cobj);
|
||||
if (!desc)
|
||||
goto bad;
|
||||
s1 = desc; s2 = sig;
|
||||
while (*s1 != '\0' && *s1 == *s2) { s1++; s2++; }
|
||||
if (*s1 != *s2) {
|
||||
PyErr_Format(PyExc_TypeError,
|
||||
"C function %.200s.%.200s has wrong signature (expected %.500s, got %.500s)",
|
||||
PyModule_GetName(module), funcname, sig, desc);
|
||||
goto bad;
|
||||
}
|
||||
tmp.p = PyCObject_AsVoidPtr(cobj);}
|
||||
#endif
|
||||
*f = tmp.fp;
|
||||
if (!(*f))
|
||||
goto bad;
|
||||
Py_DECREF(d);
|
||||
return 0;
|
||||
bad:
|
||||
Py_XDECREF(d);
|
||||
return -1;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
static int import_PyCafe(void) {
|
||||
PyObject *module = 0;
|
||||
module = __Pyx_ImportModule("PyCafe");
|
||||
if (!module) goto bad;
|
||||
if (__Pyx_ImportFunction(module, "py_cb_wrapper", (void (**)(void))&__pyx_api_f_6PyCafe_py_cb_wrapper, "void (PVDataHolder, unsigned int, std::string)") < 0) goto bad;
|
||||
if (__Pyx_ImportFunction(module, "py_cb_ctrl_wrapper", (void (**)(void))&__pyx_api_f_6PyCafe_py_cb_ctrl_wrapper, "void (PVCtrlHolder, unsigned int, std::string)") < 0) goto bad;
|
||||
if (__Pyx_ImportFunction(module, "py_cb_handle_wrapper", (void (**)(void))&__pyx_api_f_6PyCafe_py_cb_handle_wrapper, "void (unsigned int)") < 0) goto bad;
|
||||
if (__Pyx_ImportFunction(module, "py_cb_handle_monid_wrapper", (void (**)(void))&__pyx_api_f_6PyCafe_py_cb_handle_monid_wrapper, "void (unsigned int, unsigned long)") < 0) goto bad;
|
||||
if (__Pyx_ImportFunction(module, "py_cb_handle_get_wrapper", (void (**)(void))&__pyx_api_f_6PyCafe_py_cb_handle_get_wrapper, "void (unsigned int)") < 0) goto bad;
|
||||
if (__Pyx_ImportFunction(module, "py_cb_handle_put_wrapper", (void (**)(void))&__pyx_api_f_6PyCafe_py_cb_handle_put_wrapper, "void (unsigned int)") < 0) goto bad;
|
||||
Py_DECREF(module); module = 0;
|
||||
return 0;
|
||||
bad:
|
||||
Py_XDECREF(module);
|
||||
return -1;
|
||||
}
|
||||
|
||||
#endif /* !__PYX_HAVE_API__PyCafe */
|
||||
@@ -1,4 +0,0 @@
|
||||
source /opt/gfa/python 3.5
|
||||
python setup3.5_release.py build_ext -i
|
||||
export PYTHONPATH=.:/opt/gfa/cafe/python/python-3.5/pycafe-1.8.0/lib
|
||||
export LD_LIBRARY_PATH=./
|
||||
@@ -1 +0,0 @@
|
||||
../sf_ar_cNodes.xml
|
||||
@@ -1 +0,0 @@
|
||||
../examples.py
|
||||
@@ -1,7 +0,0 @@
|
||||
source /opt/gfa/python 3.5
|
||||
export SFEL_OMC_PYTHONPATH=/afs/psi.ch/intranet/SF/Applications/on-line_model/default/PythonModule
|
||||
export SFEL_LAYOUT_PYTHONPATH=/afs/psi.ch/intranet/SF/Applications/on-line_model/default/scripts/VA
|
||||
export PYTHONPATH=.:$SFEL_LAYOUT_PYTHONPATH:$SFEL_OMC_PYTHONPATH:/opt/gfa/cafe/python/python-3.5/latest/lib
|
||||
export LD_LIBRARY_PATH=/opt/gfa/cafe/python/python-3.5/latest/lib
|
||||
python examples.py
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
../examplesTest.py
|
||||
@@ -1 +0,0 @@
|
||||
../gDBPM.xml
|
||||
@@ -1,36 +0,0 @@
|
||||
#
|
||||
# Jan Chrin
|
||||
# July 2015
|
||||
#
|
||||
|
||||
##### CHANGE AS APPROPRIATE #################
|
||||
#Cython Version to install
|
||||
CYCAFE_VERSION=pycafe-1.8.0
|
||||
|
||||
#CAFE project base
|
||||
#CAFE_BASE=${EPICS_EXTENSIONS}/CAFE
|
||||
CAFE_BASE=/opt/gfa/cafe/python/python-3.5
|
||||
|
||||
CAFE_CYCAFE_BASE=${CAFE_BASE}/${CYCAFE_VERSION}
|
||||
|
||||
INSTALL_PATH_AFS=/afs/psi.ch/intranet/Controls/cafe/CAFE/cycafe/$(CYCAFE_VERSION)/lib/${EPICS_HOST_ARCH}
|
||||
|
||||
INSTALL_PATH= $(CAFE_CYCAFE_BASE)/lib
|
||||
EXAMPLES_INSTALL_PATH= $(CAFE_CYCAFE_BASE)/examples
|
||||
#############################################
|
||||
|
||||
|
||||
install_local: PyCafe.cpython-35m-x86_64-linux-gnu.so
|
||||
mkdir -p ${EPICS_HOST_ARCH}
|
||||
cp PyCafe.cpython-35m-x86_64-linux-gnu.so ${EPICS_HOST_ARCH}
|
||||
mkdir -p ${INSTALL_PATH_AFS}
|
||||
cp PyCafe.cpython-35m-x86_64-linux-gnu.so ${INSTALL_PATH_AFS}
|
||||
|
||||
|
||||
install_rel: PyCafe.cpython-35m-x86_64-linux-gnu.so
|
||||
mkdir -p $(INSTALL_PATH)
|
||||
cp PyCafe.cpython-35m-x86_64-linux-gnu.so $(INSTALL_PATH)
|
||||
mkdir -p $(EXAMPLES_INSTALL_PATH)
|
||||
cp examples.py $(EXAMPLES_INSTALL_PATH)
|
||||
cp examples.sh $(EXAMPLES_INSTALL_PATH)
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
from distutils.core import setup
|
||||
from distutils.extension import Extension
|
||||
from Cython.Build import cythonize
|
||||
from numpy import get_include
|
||||
|
||||
#runtime_library_dirs do not override LD_LIBRARY_PATH!
|
||||
|
||||
setup(
|
||||
ext_modules = cythonize([Extension('PyCafe',['PyCafe.pyx'],
|
||||
language="c++",
|
||||
include_dirs=[ '/opt/gfa/python-3.5/latest/include/python3.5m',
|
||||
'/usr/local/epics/base/include',
|
||||
'/usr/local/epics/base/include/os/Linux',
|
||||
'/opt/gfa/cafe/boost/boost_1_61_0/include',
|
||||
'/opt/gfa/cafe/boost/boost_1_61_0/include/boost',
|
||||
'/opt/gfa/cafe/python/python-3.5/pycafe-1.8.0/include',
|
||||
'.', get_include()],
|
||||
library_dirs=[ '/usr/local/epics/base/lib/SL6-x86_64',
|
||||
'/opt/gfa/cafe/python/python-3.5/pycafe-1.8.0/lib',
|
||||
'/opt/gfa/python-3.5/latest/lib'
|
||||
],
|
||||
runtime_library_dirs=['/usr/local/epics/base/lib/SL6-x86_64',
|
||||
'/opt/gfa/cafe/python/python-3.5/pycafe-1.8.0/lib',
|
||||
'/opt/gfa/python-3.5/latest/lib'
|
||||
],
|
||||
libraries=['ca','Com','dl','cafe'])
|
||||
], annotate=False,
|
||||
compiler_directives={'embedsignature': False, 'language_level': 3, 'c_string_type': 'str',
|
||||
'c_string_encoding' : 'ascii', 'warning_errors' : False, 'py2_import': False, 'warn.unreachable': False,
|
||||
'remove_unreachable': False})
|
||||
)
|
||||
371
python35_header.html
Normal file
371
python35_header.html
Normal file
@@ -0,0 +1,371 @@
|
||||
<!DOCTYPE html>
|
||||
<!-- Generated by Cython 0.23.4 -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>Cython: python35_header.pxi</title>
|
||||
<style type="text/css">
|
||||
|
||||
body.cython { font-family: courier; font-size: 12; }
|
||||
|
||||
.cython.tag { }
|
||||
.cython.line { margin: 0em }
|
||||
.cython.code { font-size: 9; color: #444444; display: none; margin: 0px 0px 0px 8px; border-left: 8px none; }
|
||||
|
||||
.cython.line .run { background-color: #B0FFB0; }
|
||||
.cython.line .mis { background-color: #FFB0B0; }
|
||||
.cython.code.run { border-left: 8px solid #B0FFB0; }
|
||||
.cython.code.mis { border-left: 8px solid #FFB0B0; }
|
||||
|
||||
.cython.code .py_c_api { color: red; }
|
||||
.cython.code .py_macro_api { color: #FF7000; }
|
||||
.cython.code .pyx_c_api { color: #FF3000; }
|
||||
.cython.code .pyx_macro_api { color: #FF7000; }
|
||||
.cython.code .refnanny { color: #FFA000; }
|
||||
.cython.code .trace { color: #FFA000; }
|
||||
.cython.code .error_goto { color: #FFA000; }
|
||||
|
||||
.cython.code .coerce { color: #008000; border: 1px dotted #008000 }
|
||||
.cython.code .py_attr { color: #FF0000; font-weight: bold; }
|
||||
.cython.code .c_attr { color: #0000FF; }
|
||||
.cython.code .py_call { color: #FF0000; font-weight: bold; }
|
||||
.cython.code .c_call { color: #0000FF; }
|
||||
|
||||
.cython.score-0 {background-color: #FFFFff;}
|
||||
.cython.score-1 {background-color: #FFFFe7;}
|
||||
.cython.score-2 {background-color: #FFFFd4;}
|
||||
.cython.score-3 {background-color: #FFFFc4;}
|
||||
.cython.score-4 {background-color: #FFFFb6;}
|
||||
.cython.score-5 {background-color: #FFFFaa;}
|
||||
.cython.score-6 {background-color: #FFFF9f;}
|
||||
.cython.score-7 {background-color: #FFFF96;}
|
||||
.cython.score-8 {background-color: #FFFF8d;}
|
||||
.cython.score-9 {background-color: #FFFF86;}
|
||||
.cython.score-10 {background-color: #FFFF7f;}
|
||||
.cython.score-11 {background-color: #FFFF79;}
|
||||
.cython.score-12 {background-color: #FFFF73;}
|
||||
.cython.score-13 {background-color: #FFFF6e;}
|
||||
.cython.score-14 {background-color: #FFFF6a;}
|
||||
.cython.score-15 {background-color: #FFFF66;}
|
||||
.cython.score-16 {background-color: #FFFF62;}
|
||||
.cython.score-17 {background-color: #FFFF5e;}
|
||||
.cython.score-18 {background-color: #FFFF5b;}
|
||||
.cython.score-19 {background-color: #FFFF57;}
|
||||
.cython.score-20 {background-color: #FFFF55;}
|
||||
.cython.score-21 {background-color: #FFFF52;}
|
||||
.cython.score-22 {background-color: #FFFF4f;}
|
||||
.cython.score-23 {background-color: #FFFF4d;}
|
||||
.cython.score-24 {background-color: #FFFF4b;}
|
||||
.cython.score-25 {background-color: #FFFF48;}
|
||||
.cython.score-26 {background-color: #FFFF46;}
|
||||
.cython.score-27 {background-color: #FFFF44;}
|
||||
.cython.score-28 {background-color: #FFFF43;}
|
||||
.cython.score-29 {background-color: #FFFF41;}
|
||||
.cython.score-30 {background-color: #FFFF3f;}
|
||||
.cython.score-31 {background-color: #FFFF3e;}
|
||||
.cython.score-32 {background-color: #FFFF3c;}
|
||||
.cython.score-33 {background-color: #FFFF3b;}
|
||||
.cython.score-34 {background-color: #FFFF39;}
|
||||
.cython.score-35 {background-color: #FFFF38;}
|
||||
.cython.score-36 {background-color: #FFFF37;}
|
||||
.cython.score-37 {background-color: #FFFF36;}
|
||||
.cython.score-38 {background-color: #FFFF35;}
|
||||
.cython.score-39 {background-color: #FFFF34;}
|
||||
.cython.score-40 {background-color: #FFFF33;}
|
||||
.cython.score-41 {background-color: #FFFF32;}
|
||||
.cython.score-42 {background-color: #FFFF31;}
|
||||
.cython.score-43 {background-color: #FFFF30;}
|
||||
.cython.score-44 {background-color: #FFFF2f;}
|
||||
.cython.score-45 {background-color: #FFFF2e;}
|
||||
.cython.score-46 {background-color: #FFFF2d;}
|
||||
.cython.score-47 {background-color: #FFFF2c;}
|
||||
.cython.score-48 {background-color: #FFFF2b;}
|
||||
.cython.score-49 {background-color: #FFFF2b;}
|
||||
.cython.score-50 {background-color: #FFFF2a;}
|
||||
.cython.score-51 {background-color: #FFFF29;}
|
||||
.cython.score-52 {background-color: #FFFF29;}
|
||||
.cython.score-53 {background-color: #FFFF28;}
|
||||
.cython.score-54 {background-color: #FFFF27;}
|
||||
.cython.score-55 {background-color: #FFFF27;}
|
||||
.cython.score-56 {background-color: #FFFF26;}
|
||||
.cython.score-57 {background-color: #FFFF26;}
|
||||
.cython.score-58 {background-color: #FFFF25;}
|
||||
.cython.score-59 {background-color: #FFFF24;}
|
||||
.cython.score-60 {background-color: #FFFF24;}
|
||||
.cython.score-61 {background-color: #FFFF23;}
|
||||
.cython.score-62 {background-color: #FFFF23;}
|
||||
.cython.score-63 {background-color: #FFFF22;}
|
||||
.cython.score-64 {background-color: #FFFF22;}
|
||||
.cython.score-65 {background-color: #FFFF22;}
|
||||
.cython.score-66 {background-color: #FFFF21;}
|
||||
.cython.score-67 {background-color: #FFFF21;}
|
||||
.cython.score-68 {background-color: #FFFF20;}
|
||||
.cython.score-69 {background-color: #FFFF20;}
|
||||
.cython.score-70 {background-color: #FFFF1f;}
|
||||
.cython.score-71 {background-color: #FFFF1f;}
|
||||
.cython.score-72 {background-color: #FFFF1f;}
|
||||
.cython.score-73 {background-color: #FFFF1e;}
|
||||
.cython.score-74 {background-color: #FFFF1e;}
|
||||
.cython.score-75 {background-color: #FFFF1e;}
|
||||
.cython.score-76 {background-color: #FFFF1d;}
|
||||
.cython.score-77 {background-color: #FFFF1d;}
|
||||
.cython.score-78 {background-color: #FFFF1c;}
|
||||
.cython.score-79 {background-color: #FFFF1c;}
|
||||
.cython.score-80 {background-color: #FFFF1c;}
|
||||
.cython.score-81 {background-color: #FFFF1c;}
|
||||
.cython.score-82 {background-color: #FFFF1b;}
|
||||
.cython.score-83 {background-color: #FFFF1b;}
|
||||
.cython.score-84 {background-color: #FFFF1b;}
|
||||
.cython.score-85 {background-color: #FFFF1a;}
|
||||
.cython.score-86 {background-color: #FFFF1a;}
|
||||
.cython.score-87 {background-color: #FFFF1a;}
|
||||
.cython.score-88 {background-color: #FFFF1a;}
|
||||
.cython.score-89 {background-color: #FFFF19;}
|
||||
.cython.score-90 {background-color: #FFFF19;}
|
||||
.cython.score-91 {background-color: #FFFF19;}
|
||||
.cython.score-92 {background-color: #FFFF19;}
|
||||
.cython.score-93 {background-color: #FFFF18;}
|
||||
.cython.score-94 {background-color: #FFFF18;}
|
||||
.cython.score-95 {background-color: #FFFF18;}
|
||||
.cython.score-96 {background-color: #FFFF18;}
|
||||
.cython.score-97 {background-color: #FFFF17;}
|
||||
.cython.score-98 {background-color: #FFFF17;}
|
||||
.cython.score-99 {background-color: #FFFF17;}
|
||||
.cython.score-100 {background-color: #FFFF17;}
|
||||
.cython.score-101 {background-color: #FFFF16;}
|
||||
.cython.score-102 {background-color: #FFFF16;}
|
||||
.cython.score-103 {background-color: #FFFF16;}
|
||||
.cython.score-104 {background-color: #FFFF16;}
|
||||
.cython.score-105 {background-color: #FFFF16;}
|
||||
.cython.score-106 {background-color: #FFFF15;}
|
||||
.cython.score-107 {background-color: #FFFF15;}
|
||||
.cython.score-108 {background-color: #FFFF15;}
|
||||
.cython.score-109 {background-color: #FFFF15;}
|
||||
.cython.score-110 {background-color: #FFFF15;}
|
||||
.cython.score-111 {background-color: #FFFF15;}
|
||||
.cython.score-112 {background-color: #FFFF14;}
|
||||
.cython.score-113 {background-color: #FFFF14;}
|
||||
.cython.score-114 {background-color: #FFFF14;}
|
||||
.cython.score-115 {background-color: #FFFF14;}
|
||||
.cython.score-116 {background-color: #FFFF14;}
|
||||
.cython.score-117 {background-color: #FFFF14;}
|
||||
.cython.score-118 {background-color: #FFFF13;}
|
||||
.cython.score-119 {background-color: #FFFF13;}
|
||||
.cython.score-120 {background-color: #FFFF13;}
|
||||
.cython.score-121 {background-color: #FFFF13;}
|
||||
.cython.score-122 {background-color: #FFFF13;}
|
||||
.cython.score-123 {background-color: #FFFF13;}
|
||||
.cython.score-124 {background-color: #FFFF13;}
|
||||
.cython.score-125 {background-color: #FFFF12;}
|
||||
.cython.score-126 {background-color: #FFFF12;}
|
||||
.cython.score-127 {background-color: #FFFF12;}
|
||||
.cython.score-128 {background-color: #FFFF12;}
|
||||
.cython.score-129 {background-color: #FFFF12;}
|
||||
.cython.score-130 {background-color: #FFFF12;}
|
||||
.cython.score-131 {background-color: #FFFF12;}
|
||||
.cython.score-132 {background-color: #FFFF11;}
|
||||
.cython.score-133 {background-color: #FFFF11;}
|
||||
.cython.score-134 {background-color: #FFFF11;}
|
||||
.cython.score-135 {background-color: #FFFF11;}
|
||||
.cython.score-136 {background-color: #FFFF11;}
|
||||
.cython.score-137 {background-color: #FFFF11;}
|
||||
.cython.score-138 {background-color: #FFFF11;}
|
||||
.cython.score-139 {background-color: #FFFF11;}
|
||||
.cython.score-140 {background-color: #FFFF11;}
|
||||
.cython.score-141 {background-color: #FFFF10;}
|
||||
.cython.score-142 {background-color: #FFFF10;}
|
||||
.cython.score-143 {background-color: #FFFF10;}
|
||||
.cython.score-144 {background-color: #FFFF10;}
|
||||
.cython.score-145 {background-color: #FFFF10;}
|
||||
.cython.score-146 {background-color: #FFFF10;}
|
||||
.cython.score-147 {background-color: #FFFF10;}
|
||||
.cython.score-148 {background-color: #FFFF10;}
|
||||
.cython.score-149 {background-color: #FFFF10;}
|
||||
.cython.score-150 {background-color: #FFFF0f;}
|
||||
.cython.score-151 {background-color: #FFFF0f;}
|
||||
.cython.score-152 {background-color: #FFFF0f;}
|
||||
.cython.score-153 {background-color: #FFFF0f;}
|
||||
.cython.score-154 {background-color: #FFFF0f;}
|
||||
.cython.score-155 {background-color: #FFFF0f;}
|
||||
.cython.score-156 {background-color: #FFFF0f;}
|
||||
.cython.score-157 {background-color: #FFFF0f;}
|
||||
.cython.score-158 {background-color: #FFFF0f;}
|
||||
.cython.score-159 {background-color: #FFFF0f;}
|
||||
.cython.score-160 {background-color: #FFFF0f;}
|
||||
.cython.score-161 {background-color: #FFFF0e;}
|
||||
.cython.score-162 {background-color: #FFFF0e;}
|
||||
.cython.score-163 {background-color: #FFFF0e;}
|
||||
.cython.score-164 {background-color: #FFFF0e;}
|
||||
.cython.score-165 {background-color: #FFFF0e;}
|
||||
.cython.score-166 {background-color: #FFFF0e;}
|
||||
.cython.score-167 {background-color: #FFFF0e;}
|
||||
.cython.score-168 {background-color: #FFFF0e;}
|
||||
.cython.score-169 {background-color: #FFFF0e;}
|
||||
.cython.score-170 {background-color: #FFFF0e;}
|
||||
.cython.score-171 {background-color: #FFFF0e;}
|
||||
.cython.score-172 {background-color: #FFFF0e;}
|
||||
.cython.score-173 {background-color: #FFFF0d;}
|
||||
.cython.score-174 {background-color: #FFFF0d;}
|
||||
.cython.score-175 {background-color: #FFFF0d;}
|
||||
.cython.score-176 {background-color: #FFFF0d;}
|
||||
.cython.score-177 {background-color: #FFFF0d;}
|
||||
.cython.score-178 {background-color: #FFFF0d;}
|
||||
.cython.score-179 {background-color: #FFFF0d;}
|
||||
.cython.score-180 {background-color: #FFFF0d;}
|
||||
.cython.score-181 {background-color: #FFFF0d;}
|
||||
.cython.score-182 {background-color: #FFFF0d;}
|
||||
.cython.score-183 {background-color: #FFFF0d;}
|
||||
.cython.score-184 {background-color: #FFFF0d;}
|
||||
.cython.score-185 {background-color: #FFFF0d;}
|
||||
.cython.score-186 {background-color: #FFFF0d;}
|
||||
.cython.score-187 {background-color: #FFFF0c;}
|
||||
.cython.score-188 {background-color: #FFFF0c;}
|
||||
.cython.score-189 {background-color: #FFFF0c;}
|
||||
.cython.score-190 {background-color: #FFFF0c;}
|
||||
.cython.score-191 {background-color: #FFFF0c;}
|
||||
.cython.score-192 {background-color: #FFFF0c;}
|
||||
.cython.score-193 {background-color: #FFFF0c;}
|
||||
.cython.score-194 {background-color: #FFFF0c;}
|
||||
.cython.score-195 {background-color: #FFFF0c;}
|
||||
.cython.score-196 {background-color: #FFFF0c;}
|
||||
.cython.score-197 {background-color: #FFFF0c;}
|
||||
.cython.score-198 {background-color: #FFFF0c;}
|
||||
.cython.score-199 {background-color: #FFFF0c;}
|
||||
.cython.score-200 {background-color: #FFFF0c;}
|
||||
.cython.score-201 {background-color: #FFFF0c;}
|
||||
.cython.score-202 {background-color: #FFFF0c;}
|
||||
.cython.score-203 {background-color: #FFFF0b;}
|
||||
.cython.score-204 {background-color: #FFFF0b;}
|
||||
.cython.score-205 {background-color: #FFFF0b;}
|
||||
.cython.score-206 {background-color: #FFFF0b;}
|
||||
.cython.score-207 {background-color: #FFFF0b;}
|
||||
.cython.score-208 {background-color: #FFFF0b;}
|
||||
.cython.score-209 {background-color: #FFFF0b;}
|
||||
.cython.score-210 {background-color: #FFFF0b;}
|
||||
.cython.score-211 {background-color: #FFFF0b;}
|
||||
.cython.score-212 {background-color: #FFFF0b;}
|
||||
.cython.score-213 {background-color: #FFFF0b;}
|
||||
.cython.score-214 {background-color: #FFFF0b;}
|
||||
.cython.score-215 {background-color: #FFFF0b;}
|
||||
.cython.score-216 {background-color: #FFFF0b;}
|
||||
.cython.score-217 {background-color: #FFFF0b;}
|
||||
.cython.score-218 {background-color: #FFFF0b;}
|
||||
.cython.score-219 {background-color: #FFFF0b;}
|
||||
.cython.score-220 {background-color: #FFFF0b;}
|
||||
.cython.score-221 {background-color: #FFFF0b;}
|
||||
.cython.score-222 {background-color: #FFFF0a;}
|
||||
.cython.score-223 {background-color: #FFFF0a;}
|
||||
.cython.score-224 {background-color: #FFFF0a;}
|
||||
.cython.score-225 {background-color: #FFFF0a;}
|
||||
.cython.score-226 {background-color: #FFFF0a;}
|
||||
.cython.score-227 {background-color: #FFFF0a;}
|
||||
.cython.score-228 {background-color: #FFFF0a;}
|
||||
.cython.score-229 {background-color: #FFFF0a;}
|
||||
.cython.score-230 {background-color: #FFFF0a;}
|
||||
.cython.score-231 {background-color: #FFFF0a;}
|
||||
.cython.score-232 {background-color: #FFFF0a;}
|
||||
.cython.score-233 {background-color: #FFFF0a;}
|
||||
.cython.score-234 {background-color: #FFFF0a;}
|
||||
.cython.score-235 {background-color: #FFFF0a;}
|
||||
.cython.score-236 {background-color: #FFFF0a;}
|
||||
.cython.score-237 {background-color: #FFFF0a;}
|
||||
.cython.score-238 {background-color: #FFFF0a;}
|
||||
.cython.score-239 {background-color: #FFFF0a;}
|
||||
.cython.score-240 {background-color: #FFFF0a;}
|
||||
.cython.score-241 {background-color: #FFFF0a;}
|
||||
.cython.score-242 {background-color: #FFFF0a;}
|
||||
.cython.score-243 {background-color: #FFFF0a;}
|
||||
.cython.score-244 {background-color: #FFFF0a;}
|
||||
.cython.score-245 {background-color: #FFFF0a;}
|
||||
.cython.score-246 {background-color: #FFFF09;}
|
||||
.cython.score-247 {background-color: #FFFF09;}
|
||||
.cython.score-248 {background-color: #FFFF09;}
|
||||
.cython.score-249 {background-color: #FFFF09;}
|
||||
.cython.score-250 {background-color: #FFFF09;}
|
||||
.cython.score-251 {background-color: #FFFF09;}
|
||||
.cython.score-252 {background-color: #FFFF09;}
|
||||
.cython.score-253 {background-color: #FFFF09;}
|
||||
.cython.score-254 {background-color: #FFFF09;}
|
||||
.cython .hll { background-color: #ffffcc }
|
||||
.cython { background: #f8f8f8; }
|
||||
.cython .c { color: #408080; font-style: italic } /* Comment */
|
||||
.cython .err { border: 1px solid #FF0000 } /* Error */
|
||||
.cython .k { color: #008000; font-weight: bold } /* Keyword */
|
||||
.cython .o { color: #666666 } /* Operator */
|
||||
.cython .cm { color: #408080; font-style: italic } /* Comment.Multiline */
|
||||
.cython .cp { color: #BC7A00 } /* Comment.Preproc */
|
||||
.cython .c1 { color: #408080; font-style: italic } /* Comment.Single */
|
||||
.cython .cs { color: #408080; font-style: italic } /* Comment.Special */
|
||||
.cython .gd { color: #A00000 } /* Generic.Deleted */
|
||||
.cython .ge { font-style: italic } /* Generic.Emph */
|
||||
.cython .gr { color: #FF0000 } /* Generic.Error */
|
||||
.cython .gh { color: #000080; font-weight: bold } /* Generic.Heading */
|
||||
.cython .gi { color: #00A000 } /* Generic.Inserted */
|
||||
.cython .go { color: #888888 } /* Generic.Output */
|
||||
.cython .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
|
||||
.cython .gs { font-weight: bold } /* Generic.Strong */
|
||||
.cython .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
|
||||
.cython .gt { color: #0044DD } /* Generic.Traceback */
|
||||
.cython .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
|
||||
.cython .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
|
||||
.cython .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
|
||||
.cython .kp { color: #008000 } /* Keyword.Pseudo */
|
||||
.cython .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
|
||||
.cython .kt { color: #B00040 } /* Keyword.Type */
|
||||
.cython .m { color: #666666 } /* Literal.Number */
|
||||
.cython .s { color: #BA2121 } /* Literal.String */
|
||||
.cython .na { color: #7D9029 } /* Name.Attribute */
|
||||
.cython .nb { color: #008000 } /* Name.Builtin */
|
||||
.cython .nc { color: #0000FF; font-weight: bold } /* Name.Class */
|
||||
.cython .no { color: #880000 } /* Name.Constant */
|
||||
.cython .nd { color: #AA22FF } /* Name.Decorator */
|
||||
.cython .ni { color: #999999; font-weight: bold } /* Name.Entity */
|
||||
.cython .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
|
||||
.cython .nf { color: #0000FF } /* Name.Function */
|
||||
.cython .nl { color: #A0A000 } /* Name.Label */
|
||||
.cython .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
|
||||
.cython .nt { color: #008000; font-weight: bold } /* Name.Tag */
|
||||
.cython .nv { color: #19177C } /* Name.Variable */
|
||||
.cython .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
|
||||
.cython .w { color: #bbbbbb } /* Text.Whitespace */
|
||||
.cython .mb { color: #666666 } /* Literal.Number.Bin */
|
||||
.cython .mf { color: #666666 } /* Literal.Number.Float */
|
||||
.cython .mh { color: #666666 } /* Literal.Number.Hex */
|
||||
.cython .mi { color: #666666 } /* Literal.Number.Integer */
|
||||
.cython .mo { color: #666666 } /* Literal.Number.Oct */
|
||||
.cython .sb { color: #BA2121 } /* Literal.String.Backtick */
|
||||
.cython .sc { color: #BA2121 } /* Literal.String.Char */
|
||||
.cython .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
|
||||
.cython .s2 { color: #BA2121 } /* Literal.String.Double */
|
||||
.cython .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
|
||||
.cython .sh { color: #BA2121 } /* Literal.String.Heredoc */
|
||||
.cython .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
|
||||
.cython .sx { color: #008000 } /* Literal.String.Other */
|
||||
.cython .sr { color: #BB6688 } /* Literal.String.Regex */
|
||||
.cython .s1 { color: #BA2121 } /* Literal.String.Single */
|
||||
.cython .ss { color: #19177C } /* Literal.String.Symbol */
|
||||
.cython .bp { color: #008000 } /* Name.Builtin.Pseudo */
|
||||
.cython .vc { color: #19177C } /* Name.Variable.Class */
|
||||
.cython .vg { color: #19177C } /* Name.Variable.Global */
|
||||
.cython .vi { color: #19177C } /* Name.Variable.Instance */
|
||||
.cython .il { color: #666666 } /* Literal.Number.Integer.Long */
|
||||
</style>
|
||||
<script>
|
||||
function toggleDiv(id) {
|
||||
theDiv = id.nextElementSibling
|
||||
if (theDiv.style.display != 'block') theDiv.style.display = 'block';
|
||||
else theDiv.style.display = 'none';
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body class="cython">
|
||||
<p><span style="border-bottom: solid 1px grey;">Generated by Cython 0.23.4</span></p>
|
||||
<p>
|
||||
<span style="background-color: #FFFF00">Yellow lines</span> hint at Python interaction.<br />
|
||||
Click on a line that starts with a "<code>+</code>" to see the C code that Cython generated for it.
|
||||
</p>
|
||||
<p>Raw output: <a href="python35_header.pxi">python35_header.pxi</a></p>
|
||||
<div class="cython"><pre class="cython line score-0"> <span class="">1</span>: <span class="k">cdef</span> <span class="kr">extern</span> <span class="k">from</span> <span class="s">"Python.h"</span><span class="p">:</span></pre>
|
||||
<pre class="cython line score-0"> <span class="">2</span>: <span class="k">ctypedef</span> <span class="n">extern</span> <span class="k">class</span> <span class="nc">builtins</span><span class="o">.</span><span class="n">Exception</span><span class="p">[</span><span class="nb">object</span> <span class="n">PyBaseExceptionObject</span><span class="p">]:</span></pre>
|
||||
<pre class="cython line score-0"> <span class="">3</span>: <span class="k">pass</span></pre>
|
||||
</div></body></html>
|
||||
3
python35_header.pxi
Normal file
3
python35_header.pxi
Normal file
@@ -0,0 +1,3 @@
|
||||
cdef extern from "Python.h":
|
||||
ctypedef extern class builtins.Exception[object PyBaseExceptionObject]:
|
||||
pass
|
||||
13
python3z_header.pxi
Normal file
13
python3z_header.pxi
Normal file
@@ -0,0 +1,13 @@
|
||||
cdef extern from "Python.h":
|
||||
ctypedef enum PyGILState_STATE:
|
||||
PyGILState_LOCKED = 0
|
||||
PyGILState_UNLOCKED = 1
|
||||
|
||||
void PyEval_InitThreads()
|
||||
void Py_Initialize()
|
||||
PyGILState_STATE PyGILState_Ensure()
|
||||
void PyGILState_Release(PyGILState_STATE)
|
||||
char* __FILE__
|
||||
int __LINE__
|
||||
|
||||
|
||||
46
setup_py310.py
Normal file
46
setup_py310.py
Normal file
@@ -0,0 +1,46 @@
|
||||
import os
|
||||
import sys
|
||||
from distutils.core import setup
|
||||
from distutils.extension import Extension
|
||||
from Cython.Compiler.Main import default_options
|
||||
default_options['emit_linenums'] = True
|
||||
from Cython.Build import cythonize
|
||||
from numpy import get_include
|
||||
|
||||
#runtime_library_dirs do not override LD_LIBRARY_PATH!
|
||||
_CAFE_VERSION='1.14.4'
|
||||
_EPICS_VERSION='3.12.8'
|
||||
|
||||
setup(
|
||||
ext_modules = cythonize([Extension('PyCafe',['PyCafe.pyx'],
|
||||
language="c++",
|
||||
include_dirs=[ '/ioc/python/latest/include/python3.10',
|
||||
os.environ['EPICS'] + '/base/include',
|
||||
os.environ['EPICS'] + '/base/include/os/Linux',
|
||||
'/opt/gfa/cafe/boost/boost_1_61_0/include',
|
||||
'/opt/gfa/cafe/boost/boost_1_61_0/include/boost',
|
||||
'/opt/gfa/cafe/cpp/cafe-1.14.4-py310-gcc-9.3.0/include',
|
||||
'.', get_include()],
|
||||
library_dirs=[ os.environ['EPICS'] + '/base/lib/' + os.environ['EPICS_HOST_ARCH'],
|
||||
'/opt/gfa/cafe/cpp/cafe-1.14.4-py310-gcc-9.3.0/lib/' + os.environ['EPICS_HOST_ARCH'],
|
||||
'/ioc/python/latest/lib',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/9.3.0/lib64',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/9.3.0/lib'
|
||||
],
|
||||
runtime_library_dirs=[os.environ['EPICS'] + '/base/lib/' + os.environ['EPICS_HOST_ARCH'],
|
||||
'/opt/gfa/cafe/cpp/cafe-1.14.4-py310-gcc-9.3.0/lib/' + os.environ['EPICS_HOST_ARCH'],
|
||||
'/ioc/python/latest/lib',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/9.3.0/lib64',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/9.3.0/lib'
|
||||
],
|
||||
libraries=['ca','Com','dl','cafe'])
|
||||
], annotate=True,
|
||||
compiler_directives={'embedsignature': False, 'language_level': 3,
|
||||
'c_string_type': 'str', 'c_string_encoding' : 'ascii',
|
||||
'py2_import': False, 'warn.unreachable': False,
|
||||
'remove_unreachable': False},
|
||||
compile_time_env={'PY_VERSION_HEX':sys.hexversion,
|
||||
'PY_EXT_C': True, 'BS_CAFE': False,
|
||||
'CAFE_VERSION': _CAFE_VERSION, 'EPICS_VERSION': _EPICS_VERSION }
|
||||
)
|
||||
)
|
||||
64
setup_py310_sls2.py
Normal file
64
setup_py310_sls2.py
Normal file
@@ -0,0 +1,64 @@
|
||||
import os
|
||||
import sys
|
||||
from distutils.core import setup
|
||||
from distutils.extension import Extension
|
||||
from Cython.Compiler.Main import default_options
|
||||
default_options['emit_linenums'] = True
|
||||
from Cython.Build import cythonize
|
||||
from numpy import get_include
|
||||
|
||||
#_GCC_VERSION='10.4.0'
|
||||
#_CAFE_VERSION='1.20.1-py310-gcc-' + _GCC_VERSION
|
||||
#_EPICS_VERSION='7.0.7'
|
||||
|
||||
_GCC_VERSION='7.5.0'
|
||||
#_GCC_VERSION='10.4.0'
|
||||
_CAFE_VERSION='1.22.0-py310-gcc-' + _GCC_VERSION
|
||||
_EPICS_VERSION='7.0.9'
|
||||
|
||||
_EPICS_HOST_ARCH =os.environ['RHREL'] + '-x86_64'
|
||||
|
||||
setup(
|
||||
ext_modules = cythonize([Extension('PyCafe',['PyCafe.pyx'],
|
||||
language="c++",
|
||||
extra_objects = [ os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/lib/' +
|
||||
_EPICS_HOST_ARCH + '/libca.so',
|
||||
os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/lib/' +
|
||||
_EPICS_HOST_ARCH + '/libCom.so',
|
||||
],
|
||||
include_dirs=[ '/opt/gfa/python-3.10/latest/include/python3.10',
|
||||
os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/include',
|
||||
os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/include/os/Linux',
|
||||
os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/include/compiler/gcc',
|
||||
'/opt/gfa/cafe/boost/boost_1_61_0/include',
|
||||
'/opt/gfa/cafe/boost/boost_1_61_0/include/boost',
|
||||
'/opt/gfa/cafe/cpp/cafe-' + _CAFE_VERSION +
|
||||
'/include',
|
||||
'.', get_include()],
|
||||
library_dirs=[ os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/lib/' +
|
||||
_EPICS_HOST_ARCH,
|
||||
'/opt/gfa/cafe/cpp/cafe-' + _CAFE_VERSION +
|
||||
'/lib/' + _EPICS_HOST_ARCH,
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/' + _GCC_VERSION + '/lib64',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/' + _GCC_VERSION + '/lib',
|
||||
# '/opt/gfa/python-3.10/latest/lib'
|
||||
],
|
||||
runtime_library_dirs=[
|
||||
os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/lib/' +
|
||||
_EPICS_HOST_ARCH,
|
||||
'/opt/gfa/cafe/cpp/cafe-' + _CAFE_VERSION +
|
||||
'/lib/' + _EPICS_HOST_ARCH,
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/' + _GCC_VERSION + '/lib64',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/' + _GCC_VERSION + '/lib'
|
||||
],
|
||||
libraries=['dl','cafe','Qt5Xml'])
|
||||
], annotate=True,
|
||||
compiler_directives={'embedsignature': False, 'language_level': 3,
|
||||
'c_string_type': 'str', 'c_string_encoding' : 'ascii',
|
||||
'py2_import': False, 'warn.unreachable': False,
|
||||
'remove_unreachable': False},
|
||||
compile_time_env={'PY_VERSION_HEX':sys.hexversion,
|
||||
'PY_EXT_C': True, 'BS_CAFE': False,
|
||||
'CAFE_VERSION': _CAFE_VERSION, 'EPICS_VERSION': _EPICS_VERSION }
|
||||
)
|
||||
)
|
||||
52
setup_py34_sls2.py
Normal file
52
setup_py34_sls2.py
Normal file
@@ -0,0 +1,52 @@
|
||||
import os
|
||||
import sys
|
||||
from distutils.core import setup
|
||||
from distutils.extension import Extension
|
||||
from Cython.Compiler.Main import default_options
|
||||
default_options['emit_linenums'] = True
|
||||
from Cython.Build import cythonize
|
||||
from numpy import get_include
|
||||
|
||||
_GCC_VERSION='7.3.0'
|
||||
_CAFE_VERSION='1.15.0-py34-gcc-' + _GCC_VERSION
|
||||
_EPICS_VERSION='7.0.6'
|
||||
|
||||
|
||||
setup(
|
||||
ext_modules = cythonize([Extension('PyCafe',['PyCafe.pyx'],
|
||||
language="c++",
|
||||
include_dirs=[ '/opt/psi/Programming/psi-python34/2.1.0/include/python3.4m',
|
||||
os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/include',
|
||||
os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/include/os/Linux',
|
||||
os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/include/compiler/gcc',
|
||||
'/opt/gfa/cafe/boost/boost_1_61_0/include',
|
||||
'/opt/gfa/cafe/boost/boost_1_61_0/include/boost',
|
||||
'/opt/gfa/cafe/cpp/cafe-' + _CAFE_VERSION +
|
||||
'/include',
|
||||
'.', get_include()],
|
||||
library_dirs=[ os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/lib/' +
|
||||
os.environ['EPICS_HOST_ARCH'],
|
||||
'/opt/gfa/cafe/cpp/cafe-' + _CAFE_VERSION +
|
||||
'/lib/' + os.environ['EPICS_HOST_ARCH'],
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/' + _GCC_VERSION + '/lib64',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/' + _GCC_VERSION + '/lib',
|
||||
'/opt/psi/Programming/psi-python34/2.1.0/lib'
|
||||
],
|
||||
runtime_library_dirs=[
|
||||
os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/lib/' +
|
||||
os.environ['EPICS_HOST_ARCH'],
|
||||
'/opt/gfa/cafe/cpp/cafe-' + _CAFE_VERSION +
|
||||
'/lib/' + os.environ['EPICS_HOST_ARCH'],
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/' + _GCC_VERSION + '/lib64',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/' + _GCC_VERSION + '/lib',
|
||||
'/opt/psi/Programming/psi-python34/2.1.0/lib'
|
||||
],
|
||||
libraries=['ca','Com','dl','cafe', 'xml2'])
|
||||
], annotate=True,
|
||||
compile_time_env={'PY_VERSION_HEX': sys.hexversion, 'PY_EXT_C': True, 'BS_CAFE': False,
|
||||
'CAFE_VERSION': _CAFE_VERSION, 'EPICS_VERSION': _EPICS_VERSION },
|
||||
compiler_directives={'embedsignature': False, 'language_level': 3,
|
||||
'c_string_type': 'str', 'c_string_encoding' : 'ascii',
|
||||
'py2_import': False, 'warn.unreachable': False, 'remove_unreachable': False}
|
||||
)
|
||||
)
|
||||
42
setup_py35.py
Normal file
42
setup_py35.py
Normal file
@@ -0,0 +1,42 @@
|
||||
import os
|
||||
import sys
|
||||
from distutils.core import setup
|
||||
from distutils.extension import Extension
|
||||
from Cython.Compiler.Main import default_options
|
||||
default_options['emit_linenums'] = True
|
||||
from Cython.Build import cythonize
|
||||
from numpy import get_include
|
||||
|
||||
|
||||
setup(
|
||||
ext_modules = cythonize([Extension('PyCafe',['PyCafe.pyx'],
|
||||
language="c++",
|
||||
include_dirs=[ '/opt/gfa/python-3.5/latest/include/python3.5m',
|
||||
os.environ['EPICS'] + '/base/include',
|
||||
os.environ['EPICS'] + '/base/include/os/Linux',
|
||||
'/opt/gfa/cafe/boost/boost_1_61_0/include',
|
||||
'/opt/gfa/cafe/boost/boost_1_61_0/include/boost',
|
||||
'/opt/gfa/cafe/cpp/cafe-1.15.0-epics3-py35-gcc-7.3.0/include',
|
||||
'.', get_include()],
|
||||
library_dirs=[ os.environ['EPICS'] + '/base/lib/' + os.environ['EPICS_HOST_ARCH'],
|
||||
'/opt/gfa/cafe/cpp/cafe-1.15.0-epics3-py35-gcc-7.3.0/lib/' + os.environ['EPICS_HOST_ARCH'],
|
||||
'/opt/gfa/python-3.5/latest/lib',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/7.3.0/lib64',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/7.3.0/lib'
|
||||
],
|
||||
runtime_library_dirs=[os.environ['EPICS'] + '/base/lib/' + os.environ['EPICS_HOST_ARCH'],
|
||||
'/opt/gfa/cafe/cpp/cafe-1.15.0-epics3-py35-gcc-7.3.0/lib/' + os.environ['EPICS_HOST_ARCH'],
|
||||
'/opt/gfa/python-3.5/latest/lib',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/7.3.0/lib64',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/7.3.0/lib'
|
||||
],
|
||||
libraries=['ca','Com','dl','cafe'])
|
||||
], annotate=True,
|
||||
compiler_directives={'embedsignature': False, 'language_level': 3,
|
||||
'c_string_type': 'str', 'c_string_encoding' : 'ascii',
|
||||
'py2_import': False, 'warn.unreachable': False,
|
||||
'remove_unreachable': False},
|
||||
compile_time_env={'PY_VERSION_HEX':sys.hexversion,
|
||||
'PY_EXT_C': True}
|
||||
)
|
||||
)
|
||||
56
setup_py35_sf.py
Normal file
56
setup_py35_sf.py
Normal file
@@ -0,0 +1,56 @@
|
||||
import os
|
||||
import sys
|
||||
from distutils.core import setup
|
||||
from distutils.extension import Extension
|
||||
from Cython.Compiler.Main import default_options
|
||||
default_options['emit_linenums'] = True
|
||||
from Cython.Build import cythonize
|
||||
from numpy import get_include
|
||||
|
||||
_CAFE_VERSION='1.14.4'
|
||||
_EPICS_VERSION='3.14.12'
|
||||
|
||||
setup(
|
||||
ext_modules = cythonize([Extension('PyCafe',['PyCafe.pyx'],
|
||||
language="c++",
|
||||
include_dirs=[ '/opt/gfa/python-3.5/latest/include/python3.5m',
|
||||
os.environ['EPICS'] + '/base/include',
|
||||
os.environ['EPICS'] + '/base/include/os/Linux',
|
||||
'/opt/gfa/cafe/boost/boost_1_61_0/include',
|
||||
'/opt/gfa/cafe/boost/boost_1_61_0/include/boost',
|
||||
'/opt/gfa/cafe/cpp/cafe-' + _CAFE_VERSION + '-sf-py35-gcc-7.3.0/include',
|
||||
'/opt/gfa/zmq/zeromq-4.2.3-gcc-6.3.0/include',
|
||||
'/opt/gfa/zmq/curl-7.54.1/include',
|
||||
'/opt/gfa/zmsglog/json/jsoncpp-src-0.6.0-rc2/include',
|
||||
'.', get_include()],
|
||||
library_dirs=[ os.environ['EPICS'] + '/base/lib/' + os.environ['EPICS_HOST_ARCH'],
|
||||
'/opt/gfa/cafe/cpp/cafe-' + _CAFE_VERSION + '-sf-py35-gcc-7.3.0/lib/' + os.environ['EPICS_HOST_ARCH'],
|
||||
'/opt/gfa/zmq/zeromq-4.2.3-gcc-6.3.0/lib',
|
||||
'/opt/gfa/zmsglog/json/jsoncpp-src-0.6.0-rc2/libs/linux-gcc-6.3.0',
|
||||
'/opt/gfa/zmq/curl-7.54.1/lib',
|
||||
'/opt/gfa/python-3.5/latest/lib',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/7.3.0/lib64',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/7.3.0/lib'
|
||||
],
|
||||
runtime_library_dirs=[
|
||||
os.environ['EPICS'] + '/base/lib/' + os.environ['EPICS_HOST_ARCH'],
|
||||
'/opt/gfa/cafe/cpp/cafe-' + _CAFE_VERSION + '-sf-py35-gcc-7.3.0/lib/' + os.environ['EPICS_HOST_ARCH'],
|
||||
'/opt/gfa/zmq/zeromq-4.2.3-gcc-6.3.0/lib',
|
||||
'/opt/gfa/zmsglog/json/jsoncpp-src-0.6.0-rc2/libs/linux-gcc-6.3.0',
|
||||
'/opt/gfa/zmq/curl-7.54.1/lib',
|
||||
'/opt/gfa/python-3.5/latest/lib',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/7.3.0/lib64',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/7.3.0/lib'
|
||||
],
|
||||
libraries=['ca','Com','dl','cafe'])
|
||||
], annotate=True,
|
||||
compiler_directives={'embedsignature': False, 'language_level': 3,
|
||||
'c_string_type': 'str', 'c_string_encoding' : 'ascii',
|
||||
'py2_import': False, 'warn.unreachable': False,
|
||||
'remove_unreachable': False},
|
||||
compile_time_env={'PY_VERSION_HEX':sys.hexversion,
|
||||
'PY_EXT_C': True, 'BS_CAFE': True,
|
||||
'CAFE_VERSION': _CAFE_VERSION,
|
||||
'EPICS_VERSION': _EPICS_VERSION }
|
||||
)
|
||||
)
|
||||
52
setup_py35_sls.py
Normal file
52
setup_py35_sls.py
Normal file
@@ -0,0 +1,52 @@
|
||||
import os
|
||||
import sys
|
||||
from distutils.core import setup
|
||||
from distutils.extension import Extension
|
||||
from Cython.Compiler.Main import default_options
|
||||
default_options['emit_linenums'] = True
|
||||
from Cython.Build import cythonize
|
||||
from numpy import get_include
|
||||
|
||||
_GCC_VERSION='7.3.0'
|
||||
_CAFE_VERSION='1.16.0-epics3-py35-gcc-' + _GCC_VERSION
|
||||
_EPICS_VERSION='3.14.12'
|
||||
_EPICS_HOST_ARCH=os.environ['RHREL'] +'-x86_64' #os.environ['EPICS_HOST_ARCH'] #'SL6-x86_64'
|
||||
|
||||
setup(
|
||||
ext_modules = cythonize([Extension('PyCafe',['PyCafe.pyx'],
|
||||
language="c++",
|
||||
include_dirs=[ '/opt/gfa/python-3.5/latest/include/python3.5m',
|
||||
os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/include',
|
||||
os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/include/os/Linux',
|
||||
'/opt/gfa/cafe/boost/boost_1_61_0/include',
|
||||
'/opt/gfa/cafe/boost/boost_1_61_0/include/boost',
|
||||
'/opt/gfa/cafe/cpp/cafe-' + _CAFE_VERSION +
|
||||
'/include',
|
||||
'.', get_include()],
|
||||
library_dirs=[ os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/lib/'
|
||||
+ _EPICS_HOST_ARCH,
|
||||
'/opt/gfa/cafe/cpp/cafe-' + _CAFE_VERSION +
|
||||
'/lib/' + _EPICS_HOST_ARCH,
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/' + _GCC_VERSION + '/lib64',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/' + _GCC_VERSION + '/lib',
|
||||
'/opt/gfa/python-3.5/latest/lib'
|
||||
],
|
||||
runtime_library_dirs=[
|
||||
os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/lib/'
|
||||
+ _EPICS_HOST_ARCH,
|
||||
'/opt/gfa/cafe/cpp/cafe-' + _CAFE_VERSION +
|
||||
'/lib/' + _EPICS_HOST_ARCH,
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/' + _GCC_VERSION + '/lib64',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/' + _GCC_VERSION + '/lib'
|
||||
],
|
||||
libraries=['ca','Com','dl','cafe'])
|
||||
], annotate=True,
|
||||
compiler_directives={'embedsignature': False, 'language_level': 3,
|
||||
'c_string_type': 'str', 'c_string_encoding' : 'ascii',
|
||||
'py2_import': False, 'warn.unreachable': False,
|
||||
'remove_unreachable': False},
|
||||
compile_time_env={'PY_VERSION_HEX':sys.hexversion,
|
||||
'PY_EXT_C': True, 'BS_CAFE': False,
|
||||
'CAFE_VERSION': _CAFE_VERSION, 'EPICS_VERSION': _EPICS_VERSION }
|
||||
)
|
||||
)
|
||||
57
setup_py35_sls2.py
Normal file
57
setup_py35_sls2.py
Normal file
@@ -0,0 +1,57 @@
|
||||
import os
|
||||
import sys
|
||||
from distutils.core import setup
|
||||
from distutils.extension import Extension
|
||||
from Cython.Compiler.Main import default_options
|
||||
default_options['emit_linenums'] = True
|
||||
from Cython.Build import cythonize
|
||||
from numpy import get_include
|
||||
|
||||
_GCC_VERSION='7.3.0'
|
||||
_CAFE_VERSION='1.22.0-py35-gcc-' + _GCC_VERSION
|
||||
_EPICS_VERSION='7.0.9'
|
||||
_EPICS_HOST_ARCH=os.environ['RHREL'] +'-x86_64' #os.environ['EPICS_HOST_ARCH']
|
||||
|
||||
setup(
|
||||
ext_modules = cythonize([Extension('PyCafe',['PyCafe.pyx'],
|
||||
language="c++",
|
||||
extra_objects = [ os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/lib/' +
|
||||
_EPICS_HOST_ARCH + '/libca.so',
|
||||
os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/lib/' +
|
||||
_EPICS_HOST_ARCH + '/libCom.so',
|
||||
],
|
||||
include_dirs=[ '/opt/gfa/python-3.5/latest/include/python3.5m',
|
||||
os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/include',
|
||||
os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/include/os/Linux',
|
||||
os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/include/compiler/gcc',
|
||||
'/opt/gfa/cafe/boost/boost_1_61_0/include',
|
||||
'/opt/gfa/cafe/boost/boost_1_61_0/include/boost',
|
||||
'/opt/gfa/cafe/cpp/cafe-' + _CAFE_VERSION +
|
||||
'/include',
|
||||
'.', get_include()],
|
||||
library_dirs=[ os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/lib/'
|
||||
+ _EPICS_HOST_ARCH,
|
||||
'/opt/gfa/cafe/cpp/cafe-' + _CAFE_VERSION +
|
||||
'/lib/' + _EPICS_HOST_ARCH,
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/' + _GCC_VERSION + '/lib64',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/' + _GCC_VERSION + '/lib'
|
||||
],
|
||||
runtime_library_dirs=[
|
||||
os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/lib/'
|
||||
+ _EPICS_HOST_ARCH,
|
||||
'/opt/gfa/cafe/cpp/cafe-' + _CAFE_VERSION +
|
||||
'/lib/' + _EPICS_HOST_ARCH,
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/' + _GCC_VERSION + '/lib64',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/' + _GCC_VERSION + '/lib'
|
||||
],
|
||||
libraries=['dl','cafe'])
|
||||
], annotate=True,
|
||||
compiler_directives={'embedsignature': False, 'language_level': 3,
|
||||
'c_string_type': 'str', 'c_string_encoding' : 'ascii',
|
||||
'py2_import': False, 'warn.unreachable': False,
|
||||
'remove_unreachable': False},
|
||||
compile_time_env={'PY_VERSION_HEX':sys.hexversion,
|
||||
'PY_EXT_C': True, 'BS_CAFE': False,
|
||||
'CAFE_VERSION': _CAFE_VERSION, 'EPICS_VERSION': _EPICS_VERSION }
|
||||
)
|
||||
)
|
||||
43
setup_py37.py
Normal file
43
setup_py37.py
Normal file
@@ -0,0 +1,43 @@
|
||||
import os
|
||||
import sys
|
||||
from distutils.core import setup
|
||||
from distutils.extension import Extension
|
||||
from Cython.Compiler.Main import default_options
|
||||
default_options['emit_linenums'] = True
|
||||
from Cython.Build import cythonize
|
||||
from numpy import get_include
|
||||
|
||||
#runtime_library_dirs do not override LD_LIBRARY_PATH!
|
||||
|
||||
setup(
|
||||
ext_modules = cythonize([Extension('PyCafe',['PyCafe.pyx'],
|
||||
language="c++",
|
||||
include_dirs=[ '/opt/gfa/python-3.7/latest/include/python3.7m',
|
||||
os.environ['EPICS'] + '/base/include',
|
||||
os.environ['EPICS'] + '/base/include/os/Linux',
|
||||
'/opt/gfa/cafe/boost/boost_1_61_0/include',
|
||||
'/opt/gfa/cafe/boost/boost_1_61_0/include/boost',
|
||||
'/opt/gfa/cafe/cpp/cafe-1.13.0-py37-gcc-7.3.0/include',
|
||||
'.', get_include()],
|
||||
library_dirs=[ os.environ['EPICS'] + '/base/lib/' + os.environ['EPICS_HOST_ARCH'],
|
||||
'/opt/gfa/cafe/cpp/cafe-1.13.0-py37-gcc-7.3.0/lib/' + os.environ['EPICS_HOST_ARCH'],
|
||||
'/opt/gfa/python-3.7/latest/lib',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/7.3.0/lib64',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/7.3.0/lib'
|
||||
],
|
||||
runtime_library_dirs=[os.environ['EPICS'] + '/base/lib/' + os.environ['EPICS_HOST_ARCH'],
|
||||
'/opt/gfa/cafe/cpp/cafe-1.13.0-py37-gcc-7.3.0/lib/' + os.environ['EPICS_HOST_ARCH'],
|
||||
'/opt/gfa/python-3.7/latest/lib',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/7.3.0/lib64',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/7.3.0/lib'
|
||||
],
|
||||
libraries=['ca','Com','dl','cafe'])
|
||||
], annotate=True,
|
||||
compiler_directives={'embedsignature': False, 'language_level': 3,
|
||||
'c_string_type': 'str', 'c_string_encoding' : 'ascii',
|
||||
'py2_import': False, 'warn.unreachable': False,
|
||||
'remove_unreachable': False},
|
||||
compile_time_env={'PY_VERSION_HEX':sys.hexversion,
|
||||
'PY_EXT_C': True}
|
||||
)
|
||||
)
|
||||
70
setup_py37_sf.py
Normal file
70
setup_py37_sf.py
Normal file
@@ -0,0 +1,70 @@
|
||||
import os
|
||||
import sys
|
||||
from distutils.core import setup
|
||||
from distutils.extension import Extension
|
||||
from Cython.Compiler.Main import default_options
|
||||
default_options['emit_linenums'] = True
|
||||
from Cython.Build import cythonize
|
||||
from numpy import get_include
|
||||
|
||||
_GCC_VERSION='7.3.0'
|
||||
_CAFE_VERSION='1.22.0-sf-py37-gcc-' + _GCC_VERSION
|
||||
_EPICS_VERSION='7.0.9'
|
||||
_EPICS_HOST_ARCH =os.environ['RHREL'] + '-x86_64'
|
||||
|
||||
setup(
|
||||
ext_modules = cythonize([Extension('PyCafe',['PyCafe.pyx'],
|
||||
language="c++",
|
||||
extra_objects = [ os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/lib/' +
|
||||
_EPICS_HOST_ARCH + '/libca.so',
|
||||
os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/lib/' +
|
||||
_EPICS_HOST_ARCH + '/libCom.so',
|
||||
],
|
||||
include_dirs=[ '/opt/gfa/python-3.7/latest/include/python3.7m',
|
||||
os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/include',
|
||||
os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/include/os/Linux',
|
||||
os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/include/compiler/gcc',
|
||||
'/opt/gfa/cafe/boost/boost_1_61_0/include',
|
||||
'/opt/gfa/cafe/boost/boost_1_61_0/include/boost',
|
||||
'/opt/gfa/cafe/cpp/cafe-' + _CAFE_VERSION +
|
||||
'/include',
|
||||
'/opt/gfa/zmq/zeromq-4.2.3-gcc-6.3.0/include',
|
||||
'/opt/gfa/zmq/curl-7.54.1/include',
|
||||
'/opt/gfa/zmsglog/json/jsoncpp-src-0.6.0-rc2/include',
|
||||
'.', get_include()],
|
||||
library_dirs=[ os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/lib/' +
|
||||
_EPICS_HOST_ARCH,
|
||||
'/opt/gfa/cafe/cpp/cafe-' + _CAFE_VERSION +
|
||||
'/lib/' + _EPICS_HOST_ARCH,
|
||||
'/opt/gfa/zmq/zeromq-4.2.3-gcc-6.3.0/lib',
|
||||
'/opt/gfa/zmsglog/json/jsoncpp-src-0.6.0-rc2/libs/linux-gcc-6.3.0',
|
||||
'/opt/gfa/zmq/curl-7.54.1/lib',
|
||||
'/opt/gfa/python-3.7/latest/lib',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/7.3.0/lib64',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/7.3.0/lib',
|
||||
'/opt/gfa/python-3.7/latest/lib'
|
||||
],
|
||||
runtime_library_dirs=[
|
||||
os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/lib/' +
|
||||
_EPICS_HOST_ARCH,
|
||||
'/opt/gfa/cafe/cpp/cafe-' + _CAFE_VERSION +
|
||||
'/lib/' + _EPICS_HOST_ARCH,
|
||||
'/opt/gfa/zmq/zeromq-4.2.3-gcc-6.3.0/lib',
|
||||
'/opt/gfa/zmsglog/json/jsoncpp-src-0.6.0-rc2/libs/linux-gcc-6.3.0',
|
||||
'/opt/gfa/zmq/curl-7.54.1/lib',
|
||||
'/opt/gfa/python-3.7/latest/lib',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/7.3.0/lib64',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/7.3.0/lib'
|
||||
],
|
||||
libraries=['dl','cafe','Qt5Xml'])
|
||||
], annotate=True,
|
||||
compiler_directives={'embedsignature': False, 'language_level': 3,
|
||||
'c_string_type': 'str', 'c_string_encoding' : 'ascii',
|
||||
'py2_import': False, 'warn.unreachable': False,
|
||||
'remove_unreachable': False},
|
||||
compile_time_env={'PY_VERSION_HEX':sys.hexversion,
|
||||
'PY_EXT_C': True, 'BS_CAFE': True,
|
||||
'CAFE_VERSION': _CAFE_VERSION,
|
||||
'EPICS_VERSION': _EPICS_VERSION}
|
||||
)
|
||||
)
|
||||
60
setup_py37_sf_epics3.py
Normal file
60
setup_py37_sf_epics3.py
Normal file
@@ -0,0 +1,60 @@
|
||||
import os
|
||||
import sys
|
||||
from distutils.core import setup
|
||||
from distutils.extension import Extension
|
||||
from Cython.Compiler.Main import default_options
|
||||
default_options['emit_linenums'] = True
|
||||
from Cython.Build import cythonize
|
||||
from numpy import get_include
|
||||
|
||||
|
||||
_CAFE_VERSION='1.14.5'
|
||||
_EPICS_VERSION='3.14.12'
|
||||
|
||||
setup(
|
||||
ext_modules = cythonize([Extension('PyCafe',['PyCafe.pyx'],
|
||||
language="c++",
|
||||
include_dirs=[ '/opt/gfa/python-3.7/latest/include/python3.7m',
|
||||
os.environ['EPICS'] + '/base/include',
|
||||
os.environ['EPICS'] + '/base/include/os/Linux',
|
||||
'/opt/gfa/cafe/boost/boost_1_61_0/include',
|
||||
'/opt/gfa/cafe/boost/boost_1_61_0/include/boost',
|
||||
'/opt/gfa/cafe/cpp/cafe-' + _CAFE_VERSION +
|
||||
'-sf-py37-gcc-7.3.0/include',
|
||||
'/opt/gfa/zmq/zeromq-4.2.3-gcc-6.3.0/include',
|
||||
'/opt/gfa/zmq/curl-7.54.1/include',
|
||||
'/opt/gfa/zmsglog/json/jsoncpp-src-0.6.0-rc2/include',
|
||||
'.', get_include()],
|
||||
library_dirs=[ os.environ['EPICS'] + '/base/lib/' + os.environ['EPICS_HOST_ARCH'],
|
||||
'/opt/gfa/cafe/cpp/cafe-' + _CAFE_VERSION +
|
||||
'-sf-py37-gcc-7.3.0/lib/' + os.environ['EPICS_HOST_ARCH'],
|
||||
'/opt/gfa/zmq/zeromq-4.2.3-gcc-6.3.0/lib',
|
||||
'/opt/gfa/zmsglog/json/jsoncpp-src-0.6.0-rc2/libs/linux-gcc-6.3.0',
|
||||
'/opt/gfa/zmq/curl-7.54.1/lib',
|
||||
'/opt/gfa/python-3.7/latest/lib',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/7.3.0/lib64',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/7.3.0/lib'
|
||||
],
|
||||
runtime_library_dirs=[
|
||||
os.environ['EPICS'] + '/base/lib/' + os.environ['EPICS_HOST_ARCH'],
|
||||
'/opt/gfa/cafe/cpp/cafe-' + _CAFE_VERSION +
|
||||
'-sf-py37-gcc-7.3.0/lib/' + os.environ['EPICS_HOST_ARCH'],
|
||||
'/opt/gfa/zmq/zeromq-4.2.3-gcc-6.3.0/lib',
|
||||
'/opt/gfa/zmsglog/json/jsoncpp-src-0.6.0-rc2/libs/linux-gcc-6.3.0',
|
||||
'/opt/gfa/zmq/curl-7.54.1/lib',
|
||||
'/opt/gfa/python-3.7/latest/lib',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/7.3.0/lib64',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/7.3.0/lib'
|
||||
],
|
||||
libraries=['ca','Com','dl','cafe'])
|
||||
], annotate=True,
|
||||
compiler_directives={'embedsignature': False, 'language_level': 3,
|
||||
'c_string_type': 'str', 'c_string_encoding' : 'ascii',
|
||||
'py2_import': False, 'warn.unreachable': False,
|
||||
'remove_unreachable': False},
|
||||
compile_time_env={'PY_VERSION_HEX':sys.hexversion,
|
||||
'PY_EXT_C': True, 'BS_CAFE': True,
|
||||
'CAFE_VERSION': _CAFE_VERSION,
|
||||
'EPICS_VERSION': _EPICS_VERSION}
|
||||
)
|
||||
)
|
||||
59
setup_py37_sf_local.py
Normal file
59
setup_py37_sf_local.py
Normal file
@@ -0,0 +1,59 @@
|
||||
import os
|
||||
import sys
|
||||
from distutils.core import setup
|
||||
from distutils.extension import Extension
|
||||
from Cython.Compiler.Main import default_options
|
||||
default_options['emit_linenums'] = True
|
||||
from Cython.Build import cythonize
|
||||
from numpy import get_include
|
||||
|
||||
_CAFE_VERSION='1.14.1'
|
||||
_EPICS_VERSION='3.14.12'
|
||||
|
||||
setup(
|
||||
ext_modules = cythonize([Extension('PyCafe',['PyCafe.pyx'],
|
||||
language="c++",
|
||||
include_dirs=[ '/opt/gfa/python-3.7/latest/include/python3.7m',
|
||||
os.environ['EPICS'] + '/base/include',
|
||||
os.environ['EPICS'] + '/base/include/os/Linux',
|
||||
'/opt/gfa/cafe/boost/boost_1_61_0/include',
|
||||
'/opt/gfa/cafe/boost/boost_1_61_0/include/boost',
|
||||
'/opt/gfa/cafe/cpp/cafe-' + _CAFE_VERSION +
|
||||
'-sf-py37-gcc-7.3.0/include',
|
||||
'/opt/gfa/zmq/zeromq-4.2.3-gcc-6.3.0/include',
|
||||
'/opt/gfa/zmq/curl-7.54.1/include',
|
||||
'/opt/gfa/zmsglog/json/jsoncpp-src-0.6.0-rc2/include',
|
||||
'.', get_include()],
|
||||
library_dirs=[ os.environ['EPICS'] + '/base/lib/' + os.environ['EPICS_HOST_ARCH'],
|
||||
'/opt/gfa/cafe/cpp/cafe-' + _CAFE_VERSION +
|
||||
'-sf-py37-gcc-7.3.0/lib/' + os.environ['EPICS_HOST_ARCH'],
|
||||
'/opt/gfa/zmq/zeromq-4.2.3-gcc-6.3.0/lib',
|
||||
'/opt/gfa/zmsglog/json/jsoncpp-src-0.6.0-rc2/libs/linux-gcc-6.3.0',
|
||||
'/opt/gfa/zmq/curl-7.54.1/lib',
|
||||
'/opt/gfa/python-3.7/latest/lib',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/7.3.0/lib64',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/7.3.0/lib'
|
||||
],
|
||||
runtime_library_dirs=[
|
||||
os.environ['EPICS'] + '/base/lib/' + os.environ['EPICS_HOST_ARCH'],
|
||||
'/opt/gfa/cafe/cpp/cafe-' + _CAFE_VERSION +
|
||||
'-sf-py37-gcc-7.3.0/lib/' + os.environ['EPICS_HOST_ARCH'],
|
||||
'/opt/gfa/zmq/zeromq-4.2.3-gcc-6.3.0/lib',
|
||||
'/opt/gfa/zmsglog/json/jsoncpp-src-0.6.0-rc2/libs/linux-gcc-6.3.0',
|
||||
'/opt/gfa/zmq/curl-7.54.1/lib',
|
||||
'/opt/gfa/python-3.7/latest/lib',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/7.3.0/lib64',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/7.3.0/lib'
|
||||
],
|
||||
libraries=['Qt5Core', 'Qt5Xml', 'ca','Com','dl','cafe'])
|
||||
], annotate=True,
|
||||
compiler_directives={'embedsignature': False, 'language_level': 3,
|
||||
'c_string_type': 'str', 'c_string_encoding' : 'ascii',
|
||||
'py2_import': False, 'warn.unreachable': False,
|
||||
'remove_unreachable': False},
|
||||
compile_time_env={'PY_VERSION_HEX':sys.hexversion,
|
||||
'PY_EXT_C': True, 'BS_CAFE': True ,
|
||||
'CAFE_VERSION': _CAFE_VERSION,
|
||||
'EPICS_VERSION': _EPICS_VERSION}
|
||||
)
|
||||
)
|
||||
53
setup_py37_sls.py
Normal file
53
setup_py37_sls.py
Normal file
@@ -0,0 +1,53 @@
|
||||
import os
|
||||
import sys
|
||||
from distutils.core import setup
|
||||
from distutils.extension import Extension
|
||||
from Cython.Compiler.Main import default_options
|
||||
default_options['emit_linenums'] = True
|
||||
from Cython.Build import cythonize
|
||||
from numpy import get_include
|
||||
|
||||
_GCC_VERSION='7.3.0'
|
||||
_CAFE_VERSION='1.15.1-py35-gcc-' + _GCC_VERSION
|
||||
_EPICS_VERSION='3.14.12'
|
||||
_EPICS_HOST_ARCH ='RHEL7-x86_64' #os.environ['EPICS_HOST_ARCH']
|
||||
|
||||
setup(
|
||||
ext_modules = cythonize([Extension('PyCafe',['PyCafe.pyx'],
|
||||
language="c++",
|
||||
include_dirs=[ '/opt/gfa/python-3.5/latest/include/python3.5m',
|
||||
os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/include',
|
||||
os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/include/os/Linux',
|
||||
os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/include/compiler/gcc',
|
||||
'/opt/gfa/cafe/boost/boost_1_61_0/include',
|
||||
'/opt/gfa/cafe/boost/boost_1_61_0/include/boost',
|
||||
'/opt/gfa/cafe/cpp/cafe-' + _CAFE_VERSION +
|
||||
'/include',
|
||||
'.', get_include()],
|
||||
library_dirs=[ os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/lib/'
|
||||
+ _EPICS_HOST_ARCH,
|
||||
'/opt/gfa/cafe/cpp/cafe-' + _CAFE_VERSION +
|
||||
'/lib/' + _EPICS_HOST_ARCH,
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/' + _GCC_VERSION + '/lib64',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/' + _GCC_VERSION + '/lib',
|
||||
'/opt/gfa/python-3.5/latest/lib'
|
||||
],
|
||||
runtime_library_dirs=[
|
||||
os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/lib/'
|
||||
+ _EPICS_HOST_ARCH,
|
||||
'/opt/gfa/cafe/cpp/cafe-' + _CAFE_VERSION +
|
||||
'/lib/' + _EPICS_HOST_ARCH,
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/' + _GCC_VERSION + '/lib64',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/' + _GCC_VERSION + '/lib'
|
||||
],
|
||||
libraries=['ca','Com','dl','cafe'])
|
||||
], annotate=True,
|
||||
compiler_directives={'embedsignature': False, 'language_level': 3,
|
||||
'c_string_type': 'str', 'c_string_encoding' : 'ascii',
|
||||
'py2_import': False, 'warn.unreachable': False,
|
||||
'remove_unreachable': False},
|
||||
compile_time_env={'PY_VERSION_HEX':sys.hexversion,
|
||||
'PY_EXT_C': True, 'BS_CAFE': False,
|
||||
'CAFE_VERSION': _CAFE_VERSION, 'EPICS_VERSION': _EPICS_VERSION }
|
||||
)
|
||||
)
|
||||
61
setup_py37_sls2.py
Normal file
61
setup_py37_sls2.py
Normal file
@@ -0,0 +1,61 @@
|
||||
import os
|
||||
import sys
|
||||
from distutils.core import setup
|
||||
from distutils.extension import Extension
|
||||
from Cython.Compiler.Main import default_options
|
||||
default_options['emit_linenums'] = True
|
||||
from Cython.Build import cythonize
|
||||
from numpy import get_include
|
||||
|
||||
_GCC_VERSION='7.3.0'
|
||||
_CAFE_VERSION='1.22.0-py37-gcc-' + _GCC_VERSION
|
||||
_EPICS_VERSION='7.0.9'
|
||||
_EPICS_HOST_ARCH=os.environ['RHREL'] + '-x86_64' #os.environ['EPICS_HOST_ARCH']
|
||||
|
||||
setup(
|
||||
ext_modules = cythonize([Extension('PyCafe',['PyCafe.pyx'],
|
||||
language="c++",
|
||||
#extra_compile_args=['-fPIC'],
|
||||
#extra_link_args=['-static'],
|
||||
extra_objects = [ os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/lib/' +
|
||||
_EPICS_HOST_ARCH + '/libca.so',
|
||||
os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/lib/' +
|
||||
_EPICS_HOST_ARCH + '/libCom.so',
|
||||
],
|
||||
include_dirs=[ '/opt/gfa/python-3.7/latest/include/python3.7m',
|
||||
os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/include',
|
||||
os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/include/os/Linux',
|
||||
os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/include/compiler/gcc',
|
||||
'/opt/gfa/cafe/boost/boost_1_61_0/include',
|
||||
'/opt/gfa/cafe/boost/boost_1_61_0/include/boost',
|
||||
'/opt/gfa/cafe/cpp/cafe-' + _CAFE_VERSION +
|
||||
'/include',
|
||||
'.', get_include()],
|
||||
library_dirs=[ os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/lib/' +
|
||||
_EPICS_HOST_ARCH,
|
||||
'/opt/gfa/cafe/cpp/cafe-' + _CAFE_VERSION +
|
||||
'/lib/' + _EPICS_HOST_ARCH,
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/' + _GCC_VERSION + '/lib64',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/' + _GCC_VERSION + '/lib',
|
||||
#'/opt/gfa/python-3.7/latest/lib',
|
||||
],
|
||||
runtime_library_dirs=[
|
||||
os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/lib/' +
|
||||
_EPICS_HOST_ARCH,
|
||||
'/opt/gfa/cafe/cpp/cafe-' + _CAFE_VERSION +
|
||||
'/lib/' + _EPICS_HOST_ARCH,
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/' + _GCC_VERSION + '/lib64',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/' + _GCC_VERSION + '/lib',
|
||||
#'/opt/gfa/python-3.7/latest/lib'
|
||||
],
|
||||
libraries=['dl','cafe', 'Qt5Xml'])
|
||||
], annotate=True,
|
||||
compiler_directives={'embedsignature': False, 'language_level': 3,
|
||||
'c_string_type': 'str', 'c_string_encoding' : 'ascii',
|
||||
'py2_import': False, 'warn.unreachable': False,
|
||||
'remove_unreachable': False},
|
||||
compile_time_env={'PY_VERSION_HEX':sys.hexversion,
|
||||
'PY_EXT_C': True, 'BS_CAFE': False,
|
||||
'CAFE_VERSION': _CAFE_VERSION, 'EPICS_VERSION': _EPICS_VERSION }
|
||||
)
|
||||
)
|
||||
60
setup_py38_sf.py
Normal file
60
setup_py38_sf.py
Normal file
@@ -0,0 +1,60 @@
|
||||
import os
|
||||
import sys
|
||||
from distutils.core import setup
|
||||
from distutils.extension import Extension
|
||||
from Cython.Compiler.Main import default_options
|
||||
default_options['emit_linenums'] = True
|
||||
from Cython.Build import cythonize
|
||||
from numpy import get_include
|
||||
|
||||
|
||||
_CAFE_VERSION='1.14.4'
|
||||
_EPICS_VERSION='3.14.12'
|
||||
|
||||
setup(
|
||||
ext_modules = cythonize([Extension('PyCafe',['PyCafe.pyx'],
|
||||
language="c++",
|
||||
include_dirs=[ '/opt/gfa/python-3.8/latest/include/python3.8',
|
||||
os.environ['EPICS'] + '/base/include',
|
||||
os.environ['EPICS'] + '/base/include/os/Linux',
|
||||
'/opt/gfa/cafe/boost/boost_1_61_0/include',
|
||||
'/opt/gfa/cafe/boost/boost_1_61_0/include/boost',
|
||||
'/opt/gfa/cafe/cpp/cafe-' + _CAFE_VERSION +
|
||||
'-sf-py38-gcc-7.3.0/include',
|
||||
'/opt/gfa/zmq/zeromq-4.2.3-gcc-6.3.0/include',
|
||||
'/opt/gfa/zmq/curl-7.54.1/include',
|
||||
'/opt/gfa/zmsglog/json/jsoncpp-src-0.6.0-rc2/include',
|
||||
'.', get_include()],
|
||||
library_dirs=[ os.environ['EPICS'] + '/base/lib/' + os.environ['EPICS_HOST_ARCH'],
|
||||
'/opt/gfa/cafe/cpp/cafe-' + _CAFE_VERSION +
|
||||
'-sf-py38-gcc-7.3.0/lib/' + os.environ['EPICS_HOST_ARCH'],
|
||||
'/opt/gfa/zmq/zeromq-4.2.3-gcc-6.3.0/lib',
|
||||
'/opt/gfa/zmsglog/json/jsoncpp-src-0.6.0-rc2/libs/linux-gcc-6.3.0',
|
||||
'/opt/gfa/zmq/curl-7.54.1/lib',
|
||||
'/opt/gfa/python-3.8/latest/lib',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/7.3.0/lib64',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/7.3.0/lib'
|
||||
],
|
||||
runtime_library_dirs=[
|
||||
os.environ['EPICS'] + '/base/lib/' + os.environ['EPICS_HOST_ARCH'],
|
||||
'/opt/gfa/cafe/cpp/cafe-' + _CAFE_VERSION +
|
||||
'-sf-py38-gcc-7.3.0/lib/' + os.environ['EPICS_HOST_ARCH'],
|
||||
'/opt/gfa/zmq/zeromq-4.2.3-gcc-6.3.0/lib',
|
||||
'/opt/gfa/zmsglog/json/jsoncpp-src-0.6.0-rc2/libs/linux-gcc-6.3.0',
|
||||
'/opt/gfa/zmq/curl-7.54.1/lib',
|
||||
'/opt/gfa/python-3.8/latest/lib',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/7.3.0/lib64',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/7.3.0/lib'
|
||||
],
|
||||
libraries=['ca','Com','dl','cafe'])
|
||||
], annotate=True,
|
||||
compiler_directives={'embedsignature': False, 'language_level': 3,
|
||||
'c_string_type': 'str', 'c_string_encoding' : 'ascii',
|
||||
'py2_import': False, 'warn.unreachable': False,
|
||||
'remove_unreachable': False},
|
||||
compile_time_env={'PY_VERSION_HEX':sys.hexversion,
|
||||
'PY_EXT_C': True, 'BS_CAFE': True,
|
||||
'CAFE_VERSION': _CAFE_VERSION,
|
||||
'EPICS_VERSION': _EPICS_VERSION}
|
||||
)
|
||||
)
|
||||
58
setup_py38_sls2.py
Normal file
58
setup_py38_sls2.py
Normal file
@@ -0,0 +1,58 @@
|
||||
import os
|
||||
import sys
|
||||
from distutils.core import setup
|
||||
from distutils.extension import Extension
|
||||
from Cython.Compiler.Main import default_options
|
||||
default_options['emit_linenums'] = True
|
||||
from Cython.Build import cythonize
|
||||
from numpy import get_include
|
||||
|
||||
_GCC_VERSION='7.5.0'
|
||||
_CAFE_VERSION='1.22.0-py38-gcc-' + _GCC_VERSION
|
||||
_EPICS_VERSION='7.0.9'
|
||||
_EPICS_HOST_ARCH =os.environ['RHREL'] + '-x86_64'
|
||||
|
||||
setup(
|
||||
ext_modules = cythonize([Extension('PyCafe',['PyCafe.pyx'],
|
||||
language="c++",
|
||||
extra_objects = [ os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/lib/' +
|
||||
_EPICS_HOST_ARCH + '/libca.so',
|
||||
os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/lib/' +
|
||||
_EPICS_HOST_ARCH + '/libCom.so',
|
||||
],
|
||||
include_dirs=[ '/opt/gfa/python-3.8/latest/include/python3.8m',
|
||||
os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/include',
|
||||
os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/include/os/Linux',
|
||||
os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/include/compiler/gcc',
|
||||
'/opt/gfa/cafe/boost/boost_1_61_0/include',
|
||||
'/opt/gfa/cafe/boost/boost_1_61_0/include/boost',
|
||||
'/opt/gfa/cafe/cpp/cafe-' + _CAFE_VERSION +
|
||||
'/include',
|
||||
'.', get_include()],
|
||||
library_dirs=[ os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/lib/' +
|
||||
_EPICS_HOST_ARCH,
|
||||
'/opt/gfa/cafe/cpp/cafe-' + _CAFE_VERSION +
|
||||
'/lib/' + _EPICS_HOST_ARCH,
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/' + _GCC_VERSION + '/lib64',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/' + _GCC_VERSION + '/lib',
|
||||
#'/opt/gfa/python-3.8/latest/lib'
|
||||
],
|
||||
runtime_library_dirs=[
|
||||
os.environ['EPICS'] + '/base-' + _EPICS_VERSION + '/lib/' +
|
||||
_EPICS_HOST_ARCH,
|
||||
'/opt/gfa/cafe/cpp/cafe-' + _CAFE_VERSION +
|
||||
'/lib/' + _EPICS_HOST_ARCH,
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/' + _GCC_VERSION + '/lib64',
|
||||
os.environ['PSI_PREFIX'] + '/Programming/gcc/' + _GCC_VERSION + '/lib'
|
||||
],
|
||||
libraries=['dl','cafe','Qt5Xml'])
|
||||
], annotate=True,
|
||||
compiler_directives={'embedsignature': False, 'language_level': 3,
|
||||
'c_string_type': 'str', 'c_string_encoding' : 'ascii',
|
||||
'py2_import': False, 'warn.unreachable': False,
|
||||
'remove_unreachable': False},
|
||||
compile_time_env={'PY_VERSION_HEX':sys.hexversion,
|
||||
'PY_EXT_C': True, 'BS_CAFE': False,
|
||||
'CAFE_VERSION': _CAFE_VERSION, 'EPICS_VERSION': _EPICS_VERSION }
|
||||
)
|
||||
)
|
||||
45
test.py
Normal file
45
test.py
Normal file
@@ -0,0 +1,45 @@
|
||||
import time
|
||||
import PyCafe
|
||||
cafe = PyCafe.CyCafe()
|
||||
cyca = PyCafe.CyCa()
|
||||
|
||||
PV1 = "ARIDI-BPM-01LE:X-AVG"
|
||||
PV2 = "ARIDI-BPM-01LE:Y-AVG"
|
||||
PV3 = "ARIDI-BPM-01SB:X-AVG"
|
||||
|
||||
def py_cb_single(handle, pv, pvdata):
|
||||
print(handle, pv, pvdata.value[0])
|
||||
|
||||
def py_cb_group(handle, pv, pvdata):
|
||||
print(handle, pv, pvdata.value[0])
|
||||
#pvdata.show()
|
||||
val, s, sl = cafe.getGroupCache('grp1')
|
||||
print(val, s, sl)
|
||||
|
||||
|
||||
GROUP_MONITOR_ALL = False
|
||||
|
||||
#Note that in this example PV1 is connected
|
||||
#twice, once outside the group and once within
|
||||
#the group
|
||||
h1 = cafe.open(PV1)
|
||||
monid = cafe.monitorStart(h1, py_cb_single)
|
||||
|
||||
cafe.defineGroup('grp1', [PV1, PV2, PV3])
|
||||
gh1 = cafe.groupOpen('grp1')
|
||||
|
||||
if GROUP_MONITOR_ALL:
|
||||
cafe.groupMonitorStart('grp1', py_cb_group)
|
||||
else:
|
||||
#Indices match [P1, PV2, PV3]
|
||||
#So cbs provided for PV2 and PV3 only
|
||||
cbList = [None, py_cb_group, py_cb_group]
|
||||
s, sl = cafe.groupMonitorStartWithCBList('grp1', cbList)
|
||||
print("status", s, sl)
|
||||
|
||||
for i in range(0, 5):
|
||||
time.sleep(0.2)
|
||||
|
||||
cafe.printHandles()
|
||||
cafe.terminate()
|
||||
|
||||
Reference in New Issue
Block a user