Compare commits
3 Commits
cafe-1.12.
...
cafe-1.13.
| Author | SHA1 | Date | |
|---|---|---|---|
| 56fe465ee4 | |||
| 03c8a5294e | |||
| 662a7257e8 |
13
.gitignore
vendored
13
.gitignore
vendored
@@ -1,5 +1,10 @@
|
||||
build
|
||||
python-3.5/*.cpp
|
||||
python-3.5/*.so
|
||||
python-3.5/*.*~
|
||||
python-3.5/SL6-x86_64
|
||||
*.*~
|
||||
*.*-*
|
||||
python3.5
|
||||
python3.5-sf
|
||||
python3.7
|
||||
python3.7-sf
|
||||
python3.7-sls2
|
||||
z_python-3.5-old
|
||||
z_python-3.7-old
|
||||
File diff suppressed because it is too large
Load Diff
52330
PyCafe.html
Normal file
52330
PyCafe.html
Normal file
File diff suppressed because it is too large
Load Diff
1447
PyCafe.pxd
1447
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
|
||||
327
PyCafe.pyx
327
PyCafe.pyx
@@ -182,14 +182,7 @@ cdef class CyCafe:
|
||||
|
||||
ChannelRegalia channelInfo
|
||||
# PyGILState_STATE gstate
|
||||
|
||||
DBPMKeeper dbpm
|
||||
|
||||
bint dbpmInitialized
|
||||
bint BSInitialized
|
||||
bint isBSinCAOnly
|
||||
BSDataHolder bsd
|
||||
|
||||
|
||||
|
||||
###########################################################################
|
||||
def __cinit__(self):
|
||||
@@ -223,10 +216,7 @@ cdef class CyCafe:
|
||||
raise _cafeException
|
||||
raise Exception("{} {} \n{}".format(self._exception_text, _METHOD, e))
|
||||
|
||||
self.dbpmInitialized = False
|
||||
self.BSInitialized = False
|
||||
self.isBSinCAOnly = False
|
||||
|
||||
|
||||
print("PY_VERSION_HEX is ", hex(PY_VERSION_HEX))
|
||||
|
||||
IF PY_EXT_C:
|
||||
@@ -7379,316 +7369,3 @@ Lengths of first (handlePVSet) and third (handlePVMatch) input lists must match!
|
||||
return
|
||||
################################################################################
|
||||
|
||||
|
||||
# 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###################################################################
|
||||
##################################################################################
|
||||
|
||||
17857
PyCafeDefs.html
Normal file
17857
PyCafeDefs.html
Normal file
File diff suppressed because it is too large
Load Diff
484
PyCafeDefs.pxi
484
PyCafeDefs.pxi
@@ -1373,487 +1373,3 @@ cdef channelInfo channelRegaliaToStruct(ChannelRegalia cr):
|
||||
ci.cafeConnectionStateAsString = cr.getCafeConnectionStateAsString()
|
||||
return ci
|
||||
#################################################################################
|
||||
|
||||
|
||||
cdef class bschannel:
|
||||
cdef readonly string name
|
||||
cdef readonly string type
|
||||
cdef readonly int modulo
|
||||
cdef readonly int offset
|
||||
cdef readonly unsigned int nelem
|
||||
cdef readonly bint BSEnabled
|
||||
|
||||
def __cinit__(self):
|
||||
self.name = (< bytes > ("")).encode('UTF-8')
|
||||
self.type = (< bytes > ("")).encode('UTF-8')
|
||||
self.modulo = 1
|
||||
self.offset = 0
|
||||
self.nelem = 1
|
||||
self.BSEnabled = False
|
||||
|
||||
cdef class BSData:
|
||||
cdef readonly string htype
|
||||
cdef readonly unsigned long long pulse_id
|
||||
cdef readonly list BSChannel
|
||||
cdef readonly list pv
|
||||
cdef readonly dict pvIdx
|
||||
cdef readonly list handle
|
||||
cdef readonly list global_timestamp
|
||||
cdef readonly list gtsDate
|
||||
cdef readonly bint isBS
|
||||
cdef readonly unsigned int nPV
|
||||
cdef readonly unsigned int nBSEnabled
|
||||
cdef readonly unsigned short nhwm
|
||||
cdef readonly int timeoutMS
|
||||
cdef readonly unsigned int nChannels
|
||||
cdef readonly unsigned int nNullData
|
||||
cdef readonly float pGoodData
|
||||
cdef readonly int status
|
||||
cdef readonly statusAsString
|
||||
cdef public bint daqStop
|
||||
|
||||
cdef readonly list hasNewData
|
||||
cdef readonly list pvdata
|
||||
|
||||
def __cinit__(self):
|
||||
self.pulse_id = 0
|
||||
self.htype = (< bytes > ("")).encode('UTF-8')
|
||||
self.BSChannel = []
|
||||
self.pv = []
|
||||
self.handle = []
|
||||
self.global_timestamp = []
|
||||
self.gtsDate = []
|
||||
self.isBS = False
|
||||
self.nPV = 0
|
||||
self.nBSEnabled = 0
|
||||
self.nhwm = BSREAD_ZEROMQ_HIGH_WATER_MARK
|
||||
self.timeoutMS = BSREAD_ZEROMQ_TIMEOUT_MS
|
||||
self.nChannels = 0 # Diagnostics
|
||||
self.nNullData = 0
|
||||
self.pGoodData = 0
|
||||
self.status = ICAFE_NORMAL
|
||||
self.statusAsString = 'ICAFE_NORMAL'
|
||||
self.daqStop = False
|
||||
self.hasNewData = []
|
||||
|
||||
def __copy__(self):
|
||||
return self
|
||||
|
||||
def __deepcopy__(self, memo):
|
||||
cdef BSData res = BSData()
|
||||
cpdef p1List = []
|
||||
cpdef bscList = []
|
||||
|
||||
res.htype = self.htype
|
||||
res.pulse_id = self.pulse_id
|
||||
res.pv = deepcopy(self.pv)
|
||||
res.handle = deepcopy(self.handle)
|
||||
res.isBS = self.isBS
|
||||
|
||||
#res.pvIdx = dict([(self.pv[i], i) for i in range(0,len(self.pv))] )
|
||||
|
||||
res.pvIdx = deepcopy(self.pvIdx)
|
||||
|
||||
# print(res.pvIdx.items())
|
||||
|
||||
res.global_timestamp = deepcopy(self.global_timestamp)
|
||||
res.gtsDate = deepcopy(self.gtsDate)
|
||||
|
||||
res.hasNewData = deepcopy(self.hasNewData)
|
||||
|
||||
res.nPV = self.nPV
|
||||
res.timeoutMS = self.timeoutMS
|
||||
res.nhwm = self.nhwm
|
||||
res.status = self.status
|
||||
res.statusAsString = self.statusAsString
|
||||
|
||||
res.nChannels = self.nChannels
|
||||
res.nNullData = self.nNullData
|
||||
res.pGoodData = self.pGoodData
|
||||
|
||||
res.daqStop = self.daqStop
|
||||
|
||||
lenPV = len(self.pvdata)
|
||||
|
||||
# Should never happen
|
||||
if lenPV != len(self.BSChannel):
|
||||
print("Anomoly in BSData deepcopy. Unequal lengths. Take minimum value")
|
||||
if lenPV > len(self.BSChannel):
|
||||
lenPV = len(self.BSChannel)
|
||||
|
||||
for i in range(0, lenPV):
|
||||
|
||||
# for i in range(0,len(self.BSChannel)):
|
||||
bsc = bschannel()
|
||||
bsc.name = self.BSChannel[i].name
|
||||
bsc.type = self.BSChannel[i].type
|
||||
bsc.modulo = self.BSChannel[i].modulo
|
||||
bsc.offset = self.BSChannel[i].offset
|
||||
bsc.nelem = self.BSChannel[i].nelem
|
||||
bsc.BSEnabled = self.BSChannel[i].BSEnabled
|
||||
|
||||
bscList.append(bsc)
|
||||
|
||||
# res.BSChannel=bscList
|
||||
|
||||
# for i in range(0,len(self.pvdata)):
|
||||
|
||||
p1 = pvdata()
|
||||
# value=[]
|
||||
# value.append(self.pvdata[i].value[0])
|
||||
# p1.value.append(value)
|
||||
p1.value = deepcopy(self.pvdata[i].value)
|
||||
p1.status = self.pvdata[i].status
|
||||
p1.statusAsString = self.pvdata[i].statusAsString
|
||||
p1.nelem = self.pvdata[i].nelem
|
||||
p1.alarmStatus = self.pvdata[i].alarmStatus
|
||||
p1.alarmSeverity = self.pvdata[i].alarmSeverity
|
||||
p1.alarmStatusAsString = self.pvdata[i].alarmStatusAsString
|
||||
p1.alarmSeverityAsString = self.pvdata[i].alarmSeverityAsString
|
||||
p1.pulseID = self.pvdata[i].pulseID
|
||||
p1.dataType = self.pvdata[i].dataType
|
||||
p1.dataTypeAsString = self.pvdata[i].dataTypeAsString
|
||||
p1.tsDateAsString = self.pvdata[i].tsDateAsString
|
||||
p1.bsDateAsString = self.pvdata[i].bsDateAsString
|
||||
p1.ts = deepcopy(self.pvdata[i].ts)
|
||||
p1.tsDate = deepcopy(self.pvdata[i].tsDate)
|
||||
|
||||
p1List.append(p1)
|
||||
|
||||
res.pvdata = p1List
|
||||
res.BSChannel = bscList
|
||||
|
||||
# for i in range(0,len(res.pvdata)):
|
||||
# res.pvdata[i].show()
|
||||
|
||||
return res
|
||||
|
||||
def compare(self, list _pvdata):
|
||||
self.hasNewData = [0]*len(self.pv)
|
||||
cdef unsigned short newDataFlag = 0
|
||||
|
||||
for i in range(0, len(self.pv)):
|
||||
if self.pvdata[i].ts[1] != _pvdata[i].ts[1]:
|
||||
self.hasNewData[i] = 1
|
||||
newDataFlag = 1
|
||||
elif self.pvdata[i].ts[0] != _pvdata[i].ts[0]:
|
||||
self.hasNewData[i] = 1
|
||||
newDataFlag = 1
|
||||
# Catch disconnect events(!!) and set newDataFlag only
|
||||
elif self.pvdata[i].status != _pvdata[i].status:
|
||||
newDataFlag = 1
|
||||
return newDataFlag
|
||||
|
||||
def getIdxFromPVName(self, str _name):
|
||||
for i in range(0, len(self.pv)):
|
||||
if _name == self.pv[i]:
|
||||
return i
|
||||
return -1
|
||||
|
||||
def getDaqStop(self):
|
||||
return self.daqStop
|
||||
|
||||
def setDaqStop(self, bint ds):
|
||||
self.daqStop = ds
|
||||
|
||||
def getVal(self, iElem=None):
|
||||
|
||||
cdef int idx = -1
|
||||
|
||||
if isinstance(iElem, (str)):
|
||||
# iElem=self.getIdxFromPVName(iElem)
|
||||
iElem = self.pvIdx.get(iElem)
|
||||
if iElem is None:
|
||||
return None
|
||||
idx = iElem
|
||||
elif isinstance(iElem, (int, long)):
|
||||
if iElem < 0:
|
||||
print("Invalid input:", iElem, "Idx must be non-negative!")
|
||||
return None
|
||||
idx = iElem
|
||||
|
||||
if iElem is not None:
|
||||
if len(self.pvdata[idx].value) == 1:
|
||||
return self.pvdata[idx].value[0]
|
||||
else:
|
||||
return self.pvdata[idx].value
|
||||
vall = []
|
||||
for i in range(0, self.nPV):
|
||||
if len(self.pvdata[i].value) == 1:
|
||||
vall.append(self.pvdata[i].value[0])
|
||||
else:
|
||||
vall.append(self.pvdata[i].value)
|
||||
return vall
|
||||
|
||||
def getPV(self, iElem=None):
|
||||
|
||||
cdef int idx = -1
|
||||
|
||||
if isinstance(iElem, (str)):
|
||||
iElem = self.pvIdx.get(iElem)
|
||||
if iElem is None:
|
||||
return None
|
||||
idx = iElem
|
||||
elif isinstance(iElem, (int, long)):
|
||||
if iElem < 0:
|
||||
print("Invalid input:", iElem, " Idx must be non-negative!")
|
||||
return None
|
||||
idx = iElem
|
||||
|
||||
if iElem is not None:
|
||||
return self.pvdata[idx]
|
||||
vall = []
|
||||
for i in range(0, self.nPV):
|
||||
vall.append(self.pvdata[i])
|
||||
return vall
|
||||
|
||||
def show(self, str BSCA=None, int wf=1):
|
||||
|
||||
for i in range(0, self.nPV):
|
||||
|
||||
if self.BSChannel[i].BSEnabled and self.isBS:
|
||||
if BSCA in (None, 'BS'):
|
||||
print("---------------------------------")
|
||||
print("pv= %s [%d] BS" % (self.pv[i], i))
|
||||
if wf > 1:
|
||||
self.pvdata[i].showMax(wf)
|
||||
else:
|
||||
self.pvdata[i].show()
|
||||
else:
|
||||
if BSCA in (None, 'CA'):
|
||||
print("---------------------------------")
|
||||
print("pv= %s [%d] CA" % (self.pv[i], i))
|
||||
if wf > 1:
|
||||
self.pvdata[i].showMax(wf)
|
||||
else:
|
||||
self.pvdata[i].show()
|
||||
print("---------------------------------")
|
||||
|
||||
print("overallStatus = %d (%s)" %
|
||||
(self.status, self.statusAsString))
|
||||
if self.pulse_id > 0:
|
||||
print("pulse_id = %d" % self.pulse_id)
|
||||
print("global_timestamp = %d sec. %d nsec" %
|
||||
(self.global_timestamp[0], self.global_timestamp[1]))
|
||||
print("gtsDate = %d %d %d %d %d %d %d" % (self.gtsDate[0], \
|
||||
self.gtsDate[1], self.gtsDate[2], self.gtsDate[3], self.gtsDate[4], \
|
||||
self.gtsDate[5], self.gtsDate[6]))
|
||||
print("nPV = %d" % self.nPV)
|
||||
if self.isBS:
|
||||
print("of which BS = %d (Percentage with data = %f)" %
|
||||
(self.nChannels, float(self.pGoodData)))
|
||||
print("of which CA = %d" % (self.nPV - self.nChannels))
|
||||
else:
|
||||
print("of which CA = %d (i.e., all)" % (self.nPV) )
|
||||
print("---------------------------------")
|
||||
return
|
||||
|
||||
def showAll(self, int wf=1):
|
||||
|
||||
for i in range(0, self.nPV):
|
||||
print("---------------------------------")
|
||||
if self.BSChannel[i].BSEnabled and self.isBS:
|
||||
print("pv= %s [%d] BS" % (self.pv[i], i))
|
||||
else:
|
||||
print("pv= %s [%d] CA" % (self.pv[i], i))
|
||||
if wf > 1:
|
||||
self.pvdata[i].showMax(wf)
|
||||
else:
|
||||
self.pvdata[i].show()
|
||||
print("---------------------------------")
|
||||
print("overallStatus = %d (%s)" %
|
||||
(self.status, self.statusAsString))
|
||||
print("pulse_id = %d" % self.pulse_id)
|
||||
print("global_timestamp = %d sec. %d nsec" %
|
||||
(self.global_timestamp[0], self.global_timestamp[1]))
|
||||
print("gtsDate = %d %d %d %d %d %d %d" % (self.gtsDate[0], self.gtsDate[1], self.gtsDate[2], self.gtsDate[3], self.gtsDate[4], self.gtsDate[5],
|
||||
self.gtsDate[6]))
|
||||
print("nPV = %d" % self.nPV)
|
||||
if self.isBS:
|
||||
print("of which BS = %d (Percentage with data = %f)" %
|
||||
(self.nChannels, float(self.pGoodData)))
|
||||
print("of which CA = %d" % (self.nPV-self.nChannels))
|
||||
else:
|
||||
print("of which CA = %d (i.e., all)" % (self.nPV) )
|
||||
print("pvIdx = ", self.pvIdx)
|
||||
print("pv = ", self.pv)
|
||||
print("handle = ", self.handle)
|
||||
print("isBS = %d" % self.isBS)
|
||||
#print ("nBSEnabled = %d" % self.nBSEnabled)
|
||||
print("nhwm = %d" % self.nhwm)
|
||||
print("timeoutMS = %d" % self.timeoutMS)
|
||||
print("nChannels = %d" % self.nChannels)
|
||||
print("nNullData = %d" % self.nNullData)
|
||||
print("pGoodData = %f" % float(self.pGoodData))
|
||||
print("---------------------------------")
|
||||
return
|
||||
|
||||
|
||||
cdef class SFDBPMData:
|
||||
cdef readonly list x
|
||||
cdef readonly list y
|
||||
cdef readonly list q
|
||||
cdef readonly list Energy
|
||||
cdef readonly list xStatus
|
||||
cdef readonly list yStatus
|
||||
cdef readonly list qStatus
|
||||
cdef readonly list EnergyStatus
|
||||
|
||||
# cdef readonly list offs_x
|
||||
# cdef readonly list offs_y
|
||||
|
||||
cdef readonly bint isAllXOK
|
||||
cdef readonly bint isAllYOK
|
||||
cdef readonly bint isAllQOK
|
||||
cdef readonly bint isAllOK
|
||||
cdef readonly list device
|
||||
cdef readonly int status
|
||||
|
||||
def __cinit__(self):
|
||||
self.isAllOK = False
|
||||
self.isAllXOK = False
|
||||
self.isAllYOK = False
|
||||
self.isAllQOK = False
|
||||
self.x = []
|
||||
self.y = []
|
||||
self.q = []
|
||||
self.Energy = []
|
||||
self.xStatus = []
|
||||
self.yStatus = []
|
||||
self.qStatus = []
|
||||
self.EnergyStatus = []
|
||||
self.device = []
|
||||
|
||||
# self.offs_x=[]
|
||||
# self.offs_y=[]
|
||||
|
||||
|
||||
#################################################################################
|
||||
|
||||
cdef SFDBPMData dbpmHolderToStruct(DBPMKeeper d):
|
||||
cdef SFDBPMData dbpm = SFDBPMData()
|
||||
|
||||
cdef unsigned int i
|
||||
|
||||
# double [::1] mvDouble
|
||||
#mvDouble = np.empty(d.getX().size(), dtype=np.float64)
|
||||
# for ij in range(0, d.getX().size()):
|
||||
# mvDouble[ij]=<double>d.getX()[i]
|
||||
# dbpm.x=np.array(mvDouble)
|
||||
|
||||
for i in range(0, d.getX().size()):
|
||||
|
||||
dbpm.x.append(d.getX()[i].getValue())
|
||||
dbpm.y.append(d.getY()[i].getValue())
|
||||
dbpm.q.append(d.getQ()[i].getValue())
|
||||
dbpm.Energy.append(d.getEnergy()[i].getValue())
|
||||
dbpm.xStatus.append(d.getX()[i].getStatus())
|
||||
dbpm.yStatus.append(d.getY()[i].getStatus())
|
||||
dbpm.qStatus.append(d.getQ()[i].getStatus())
|
||||
dbpm.EnergyStatus.append(d.getEnergy()[i].getStatus())
|
||||
|
||||
dbpm.isAllXOK = d.getIsAllXOK()
|
||||
dbpm.isAllYOK = d.getIsAllYOK()
|
||||
dbpm.isAllQOK = d.getIsAllQOK()
|
||||
dbpm.isAllOK = d.getIsAllOK()
|
||||
dbpm.status = d.getStatus()
|
||||
return dbpm
|
||||
|
||||
#################################################################################
|
||||
|
||||
|
||||
#################################################################################
|
||||
|
||||
cdef BSDataHolderToStruct(BSDataHolder b):
|
||||
|
||||
cdef BSData bsd = BSData()
|
||||
cdef vector[PVDataHolder] pvd
|
||||
cdef unsigned int i
|
||||
cdef etsNorm _etsNorm
|
||||
cdef etsDate _etsDate
|
||||
cdef HandleHelper hh
|
||||
cdef CAFEStatusCode csc
|
||||
localListToStruct = []
|
||||
localBSCToStruct = []
|
||||
|
||||
bsd.pulse_id = b.getPulse_id()
|
||||
bsd.pv = b.getPV()
|
||||
bsd.handle = b.getHandles()
|
||||
bsd.isBS = b.getIsBS()
|
||||
|
||||
bsd.pvIdx = dict([(bsd.pv[i], i) for i in range(0, len(bsd.pv))])
|
||||
|
||||
# print(bsd.pvIdx.items())
|
||||
|
||||
_etsNorm = b.getGlobal_timestamp()
|
||||
|
||||
#print ("pulse_id " , b.getPulse_id())
|
||||
#print ("gto ", b.getGlobal_timestamp())
|
||||
|
||||
cpdef ll = []
|
||||
ll.append(_etsNorm.secPastEpoch)
|
||||
ll.append(_etsNorm.nsec)
|
||||
bsd.global_timestamp = ll
|
||||
|
||||
_etsDate = hh.unixTimeToDate(_etsNorm)
|
||||
cpdef ld = []
|
||||
ld.append(_etsDate.year)
|
||||
ld.append(_etsDate.mon)
|
||||
ld.append(_etsDate.day)
|
||||
ld.append(_etsDate.hour)
|
||||
ld.append(_etsDate.min)
|
||||
ld.append(_etsDate.sec)
|
||||
ld.append(_etsDate.nsec)
|
||||
|
||||
bsd.gtsDate = ld
|
||||
|
||||
#bsd.isBS = b.getIsBS()
|
||||
bsd.nPV = b.getNPV()
|
||||
bsd.timeoutMS = b.getTimeout()
|
||||
bsd.nhwm = b.getHWM()
|
||||
|
||||
bsd.status = b.getStatus()
|
||||
bsd.statusAsString = csc.msgIDAsString(bsd.status)
|
||||
|
||||
pvd = b.getPVDataV()
|
||||
cpdef lt = []
|
||||
cpdef bscList = []
|
||||
|
||||
# Would be quicker to have p1 = pvdata() outside loop - check this
|
||||
for i in range(0, pvd.size()):
|
||||
p1 = pvdata()
|
||||
p1 = PVDataHolderToStruct(pvd[i], dt='native')
|
||||
|
||||
#print ("a: ", p1.tsDate)
|
||||
lt = []
|
||||
bsc = bschannel()
|
||||
|
||||
if b.getBSChannel(i).isBSEnabled() and bsd.isBS:
|
||||
bsc.BSEnabled = True
|
||||
_etsNorm = pvd[i].getEpicsTimeStampAsUInt32()
|
||||
_etsDate = pvd[i].getUnixTimeAsDate(_etsNorm)
|
||||
else:
|
||||
_etsDate = pvd[i].getEpicsTimeStampAsDate()
|
||||
lt.append(_etsDate.year)
|
||||
lt.append(_etsDate.mon)
|
||||
lt.append(_etsDate.day)
|
||||
lt.append(_etsDate.hour)
|
||||
lt.append(_etsDate.min)
|
||||
lt.append(_etsDate.sec)
|
||||
lt.append(_etsDate.nsec)
|
||||
p1.tsDate = lt
|
||||
#print ("b: ", p1.tsDate)
|
||||
localListToStruct.append(p1)
|
||||
localBSCToStruct.append(bsc)
|
||||
|
||||
bsd.pvdata = localListToStruct
|
||||
bsd.BSChannel = localBSCToStruct
|
||||
|
||||
bsd.nChannels = b.getNChannels()
|
||||
bsd.nNullData = b.getNNullData()
|
||||
bsd.pGoodData = b.getPGoodData()
|
||||
|
||||
bsd.daqStop = False
|
||||
return bsd
|
||||
|
||||
#################################################################################
|
||||
|
||||
1845
PyCafeDefs_pub.html
Normal file
1845
PyCafeDefs_pub.html
Normal file
File diff suppressed because it is too large
Load Diff
23201
PyCafeDefs_sf.html
Normal file
23201
PyCafeDefs_sf.html
Normal file
File diff suppressed because it is too large
Load Diff
1859
PyCafeDefs_sf.pxi
Normal file
1859
PyCafeDefs_sf.pxi
Normal file
File diff suppressed because it is too large
Load Diff
166071
PyCafe_sf.cpp
Normal file
166071
PyCafe_sf.cpp
Normal file
File diff suppressed because it is too large
Load Diff
42
PyCafe_sf.h
Normal file
42
PyCafe_sf.h
Normal file
@@ -0,0 +1,42 @@
|
||||
/* Generated by Cython 0.23.4 */
|
||||
|
||||
#ifndef __PYX_HAVE__PyCafe_sf
|
||||
#define __PYX_HAVE__PyCafe_sf
|
||||
|
||||
|
||||
#ifndef __PYX_HAVE_API__PyCafe_sf
|
||||
|
||||
#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 DL_IMPORT(void) cy_data_event_handler_wrapper(void *, unsigned int, std::string, PVDataHolder);
|
||||
__PYX_EXTERN_C DL_IMPORT(void) cy_ctrl_event_handler_wrapper(void *, unsigned int, std::string, PVCtrlHolder);
|
||||
__PYX_EXTERN_C DL_IMPORT(void) cy_event_handler_wrapper(void *, unsigned int, std::string);
|
||||
__PYX_EXTERN_C DL_IMPORT(void) cy_connect_handler_wrapper(void *, unsigned int, std::string, int);
|
||||
__PYX_EXTERN_C DL_IMPORT(void) py_cb_wrapper(PVDataHolder, unsigned int, std::string);
|
||||
__PYX_EXTERN_C DL_IMPORT(void) py_cb_ctrl_wrapper(PVCtrlHolder, unsigned int, std::string);
|
||||
__PYX_EXTERN_C DL_IMPORT(void) py_cb_handle_wrapper(unsigned int);
|
||||
__PYX_EXTERN_C DL_IMPORT(void) py_cb_handle_monid_wrapper(unsigned int, unsigned long);
|
||||
__PYX_EXTERN_C DL_IMPORT(void) py_cb_handle_get_wrapper(unsigned int);
|
||||
__PYX_EXTERN_C DL_IMPORT(void) py_cb_handle_put_wrapper(unsigned int);
|
||||
__PYX_EXTERN_C DL_IMPORT(void) py_cb_handle_open_wrapper(unsigned int, int);
|
||||
__PYX_EXTERN_C DL_IMPORT(void) py_cb_handle_connect_wrapper(unsigned int, std::string, int);
|
||||
|
||||
#endif /* !__PYX_HAVE_API__PyCafe_sf */
|
||||
|
||||
#if PY_MAJOR_VERSION < 3
|
||||
PyMODINIT_FUNC initPyCafe_sf(void);
|
||||
#else
|
||||
PyMODINIT_FUNC PyInit_PyCafe_sf(void);
|
||||
#endif
|
||||
|
||||
#endif /* !__PYX_HAVE__PyCafe_sf */
|
||||
54836
PyCafe_sf.html
Normal file
54836
PyCafe_sf.html
Normal file
File diff suppressed because it is too large
Load Diff
1447
PyCafe_sf.pxd
Normal file
1447
PyCafe_sf.pxd
Normal file
File diff suppressed because it is too large
Load Diff
7695
PyCafe_sf.pyx
Normal file
7695
PyCafe_sf.pyx
Normal file
File diff suppressed because it is too large
Load Diff
1361
PyCafe_sls.pxd
Normal file
1361
PyCafe_sls.pxd
Normal file
File diff suppressed because it is too large
Load Diff
22
README
Normal file
22
README
Normal file
@@ -0,0 +1,22 @@
|
||||
######
|
||||
# Build for python 3.7:
|
||||
# source build_py37.sh
|
||||
#
|
||||
# Special build for swissfel - with zmq libraries:
|
||||
# source build_py37_sf.sh
|
||||
#
|
||||
# Special build for sls2 - links to epics7:
|
||||
# source build_py37_sls2.sh
|
||||
|
||||
# Build for python 3.5:
|
||||
# source build_py35.sh
|
||||
#
|
||||
# Special build for swissfel - with zmq libraries:
|
||||
# source build_py35_sf.sh
|
||||
#
|
||||
|
||||
###
|
||||
### Install directory:
|
||||
# ./python<version>/lib/${EPICS_HOST_ARCH}
|
||||
# where <version> is 3.7, 3.7-sf, 3.7-sls2
|
||||
# 3.5, 3.5-sf
|
||||
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}
|
||||
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}
|
||||
9
build_py37_sf.sh
Normal file
9
build_py37_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.7
|
||||
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}
|
||||
9
build_py37_sls2.sh
Normal file
9
build_py37_sls2.sh
Normal file
@@ -0,0 +1,9 @@
|
||||
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_sls2.py build_ext -b ./python3.7-sls2/lib/${EPICS_HOST_ARCH}
|
||||
cp examples.py ./python3.7-sls2/lib/${EPICS_HOST_ARCH}
|
||||
12
examples.py
12
examples.py
@@ -1369,14 +1369,16 @@ print("END cafe.gameSetAndMatch-------------------------------------------------
|
||||
|
||||
|
||||
# Test with attaching context (would do this from another thread)
|
||||
print(cafe.getStatusCodeAsText(cafe.attachContext(1)))
|
||||
print(cafe.getStatusCodeAsText(cafe.attachContext(999999)))
|
||||
#print(cafe.getStatusCodeAsText(cafe.attachContext(1)))
|
||||
#print(cafe.getStatusCodeAsText(cafe.attachContext(999)))
|
||||
|
||||
if (cafe.attachContext(1) == cyca.CY_ECA_ISATTACHED):
|
||||
print(cafe.getStatusCodeAsText(cafe.attachContext(1)))
|
||||
print("TEST: Should be attached",
|
||||
cafe.getStatusCodeAsText(cyca.CY_ECA_ISATTACHED))
|
||||
|
||||
if (cafe.attachContext(99999) == cyca.ECAFE_NULLCONTEXT):
|
||||
print(cafe.getStatusCodeAsText(cafe.attachContext(999)))
|
||||
if (cafe.attachContext(999) == cyca.ECAFE_NULLCONTEXT):
|
||||
print("TEST: Should not be attached",
|
||||
cafe.getStatusCodeAsText(cyca.ECAFE_NULLCONTEXT))
|
||||
|
||||
|
||||
##############################################################
|
||||
|
||||
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
|
||||
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_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)
|
||||
|
||||
|
||||
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 +0,0 @@
|
||||
../PyCafeDefs_api.pxi
|
||||
@@ -1 +0,0 @@
|
||||
../PyCafeDefs_pub.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/pyzcafe-1.12.5-gcc-7.3.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.12.5-gcc-7.3.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 +0,0 @@
|
||||
../python35_header.pxi
|
||||
@@ -1,47 +0,0 @@
|
||||
import sys
|
||||
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/pyzcafe-1.12.5-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=[ '/usr/local/epics/base/lib/SL6-x86_64',
|
||||
'/opt/gfa/cafe/python/python-3.5/pyzcafe-1.12.5-gcc-7.3.0/lib',
|
||||
'/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',
|
||||
'/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib64',
|
||||
'/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib'
|
||||
],
|
||||
runtime_library_dirs=[ '/usr/local/epics/base/lib/SL6-x86_64',
|
||||
'/opt/gfa/cafe/python/python-3.5/pyzcafe-1.12.5-gcc-7.3.0/lib',
|
||||
'/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',
|
||||
'/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib64',
|
||||
'/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/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},
|
||||
compile_time_env={'PY_VERSION_HEX':sys.hexversion, 'PY_EXT_C': True}
|
||||
)
|
||||
)
|
||||
Binary file not shown.
@@ -1,45 +0,0 @@
|
||||
/* 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_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_connect_handler_wrapper(void *, unsigned int, std::string, int);
|
||||
__PYX_EXTERN_C void py_cb_wrapper(PVDataHolder, unsigned int, std::string);
|
||||
__PYX_EXTERN_C void py_cb_ctrl_wrapper(PVCtrlHolder, unsigned int, std::string);
|
||||
__PYX_EXTERN_C void py_cb_handle_wrapper(unsigned int);
|
||||
__PYX_EXTERN_C void py_cb_handle_monid_wrapper(unsigned int, unsigned long);
|
||||
__PYX_EXTERN_C void py_cb_handle_get_wrapper(unsigned int);
|
||||
__PYX_EXTERN_C void py_cb_handle_put_wrapper(unsigned int);
|
||||
__PYX_EXTERN_C void py_cb_handle_open_wrapper(unsigned int, int);
|
||||
__PYX_EXTERN_C void py_cb_handle_connect_wrapper(unsigned int, std::string, 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 */
|
||||
@@ -1 +0,0 @@
|
||||
../PyCafe.pxd
|
||||
@@ -1 +0,0 @@
|
||||
../PyCafe.pyx
|
||||
@@ -1 +0,0 @@
|
||||
../PyCafeDefs.pxi
|
||||
@@ -1 +0,0 @@
|
||||
../PyCafeDefs_api.pxi
|
||||
@@ -1 +0,0 @@
|
||||
../PyCafeDefs_pub.pxi
|
||||
@@ -1,4 +0,0 @@
|
||||
source /opt/gfa/python 3.7
|
||||
python setup3.7_release.py build_ext -i
|
||||
export PYTHONPATH=.:/opt/gfa/cafe/python/python-3.7/pyzcafe-1.12.5-gcc-7.3.0/lib
|
||||
export LD_LIBRARY_PATH=./
|
||||
@@ -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/pyzcafe-1.12.5-gcc-7.3.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 @@
|
||||
../gDBPM.xml
|
||||
@@ -1,36 +0,0 @@
|
||||
#
|
||||
# Jan Chrin
|
||||
# July 2015
|
||||
#
|
||||
|
||||
##### CHANGE AS APPROPRIATE #################
|
||||
#Cython Version to install
|
||||
CYCAFE_VERSION=pycafe-1.12.5-gcc-7.3.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 +0,0 @@
|
||||
../python35_header.pxi
|
||||
@@ -1,47 +0,0 @@
|
||||
import sys
|
||||
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/pyzcafe-1.12.5-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=[ '/usr/local/epics/base/lib/SL6-x86_64',
|
||||
'/opt/gfa/cafe/python/python-3.5/pyzcafe-1.12.5-gcc-7.3.0/lib',
|
||||
'/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',
|
||||
'/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib64',
|
||||
'/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib'
|
||||
],
|
||||
runtime_library_dirs=[ '/usr/local/epics/base/lib/SL6-x86_64',
|
||||
'/opt/gfa/cafe/python/python-3.5/pyzcafe-1.12.5-gcc-7.3.0/lib',
|
||||
'/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',
|
||||
'/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib64',
|
||||
'/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/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},
|
||||
compile_time_env={'PY_VERSION_HEX':sys.hexversion, 'PY_EXT_C': True}
|
||||
)
|
||||
)
|
||||
@@ -1,47 +0,0 @@
|
||||
import sys
|
||||
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.7/latest/include/python3.7m',
|
||||
'/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.7/pyzcafe-1.12.5-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=[ '/usr/local/epics/base/lib/SL6-x86_64',
|
||||
'/opt/gfa/cafe/python/python-3.7/pyzcafe-1.12.5-gcc-7.3.0/lib',
|
||||
'/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',
|
||||
'/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib64',
|
||||
'/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib'
|
||||
],
|
||||
runtime_library_dirs=[ '/usr/local/epics/base/lib/SL6-x86_64',
|
||||
'/opt/gfa/cafe/python/python-3.7/pyzcafe-1.12.5-gcc-7.3.0/lib',
|
||||
'/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',
|
||||
'/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib64',
|
||||
'/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib'
|
||||
],
|
||||
libraries=['ca','Com','dl','cafe'])
|
||||
], annotate=False,
|
||||
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}
|
||||
)
|
||||
)
|
||||
@@ -1,47 +0,0 @@
|
||||
import sys
|
||||
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.7/latest/include/python3.7m',
|
||||
'/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.7/pyzcafe-1.12.5-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=[ '/usr/local/epics/base/lib/SL6-x86_64',
|
||||
'/opt/gfa/cafe/python/python-3.7/pyzcafe-1.12.5-gcc-7.3.0/lib',
|
||||
'/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',
|
||||
'/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib64',
|
||||
'/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib'
|
||||
],
|
||||
runtime_library_dirs=[ '/usr/local/epics/base/lib/SL6-x86_64',
|
||||
'/opt/gfa/cafe/python/python-3.7/pyzcafe-1.12.5-gcc-7.3.0/lib',
|
||||
'/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',
|
||||
'/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib64',
|
||||
'/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/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},
|
||||
compile_time_env={'PY_VERSION_HEX':sys.hexversion, 'PY_EXT_C': True}
|
||||
)
|
||||
)
|
||||
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>
|
||||
43
setup_py35.py
Normal file
43
setup_py35.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.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.13.0-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.13.0-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.13.0-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}
|
||||
)
|
||||
)
|
||||
51
setup_py35_sf.py
Normal file
51
setup_py35_sf.py
Normal file
@@ -0,0 +1,51 @@
|
||||
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_sf.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.13.0-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-1.13.0-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-1.13.0-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 }
|
||||
)
|
||||
)
|
||||
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}
|
||||
)
|
||||
)
|
||||
51
setup_py37_sf.py
Normal file
51
setup_py37_sf.py
Normal file
@@ -0,0 +1,51 @@
|
||||
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_sf.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-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-1.13.0-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-1.13.0-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 }
|
||||
)
|
||||
)
|
||||
43
setup_py37_sls2.py
Normal file
43
setup_py37_sls2.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
|
||||
|
||||
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-7.0.4.1/include',
|
||||
os.environ['EPICS'] + '/base-7.0.4.1/include/os/Linux',
|
||||
os.environ['EPICS'] + '/base-7.0.4.1/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-1.13.0-sls2-py37-gcc-7.3.0/include',
|
||||
'.', get_include()],
|
||||
library_dirs=[ os.environ['EPICS'] + '/base-7.0.4.1/lib/' + os.environ['EPICS_HOST_ARCH'],
|
||||
'/opt/gfa/cafe/cpp/cafe-1.13.0-sls2-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-7.0.4.1/lib/' + os.environ['EPICS_HOST_ARCH'],
|
||||
'/opt/gfa/cafe/cpp/cafe-1.13.0-sls2-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, 'BS_CAFE': False }
|
||||
)
|
||||
)
|
||||
Reference in New Issue
Block a user