From 2bfc805907a53408215753091294aa5de0c825c8 Mon Sep 17 00:00:00 2001 From: chrin Date: Tue, 19 Sep 2017 11:59:20 +0200 Subject: [PATCH] Initial commit --- .gitignore | 5 + PyCafe.pxd | 1141 ++++++ PyCafe.pyd | Bin 0 -> 3100160 bytes PyCafe.pyx | 6045 ++++++++++++++++++++++++++++++++ PyCafeDefs.pxi | 1 + PyCafeDefs_api.pxi | 1336 +++++++ PyCafeDefs_pub.pxi | 848 +++++ cNodes.xml | 3230 +++++++++++++++++ examples.py | 1099 ++++++ gDBPM.xml | 39 + python-3.5/PyCafe.pxd | 1 + python-3.5/PyCafe.pyx | 1 + python-3.5/PyCafeDefs.pxi | 1 + python-3.5/PyCafe_api.h | 115 + python-3.5/README_Py3_release | 4 + python-3.5/cNodes.xml | 1 + python-3.5/examples.py | 1 + python-3.5/examples.sh | 7 + python-3.5/examplesTest.py | 1 + python-3.5/gDBPM.xml | 1 + python-3.5/makefile | 36 + python-3.5/setup3.5_release.py | 31 + setup3.5_win.py | 48 + sf_ar_cNodes.xml | 2804 +++++++++++++++ 24 files changed, 16796 insertions(+) create mode 100644 .gitignore create mode 100644 PyCafe.pxd create mode 100644 PyCafe.pyd create mode 100644 PyCafe.pyx create mode 120000 PyCafeDefs.pxi create mode 100644 PyCafeDefs_api.pxi create mode 100644 PyCafeDefs_pub.pxi create mode 100644 cNodes.xml create mode 100644 examples.py create mode 100644 gDBPM.xml create mode 120000 python-3.5/PyCafe.pxd create mode 120000 python-3.5/PyCafe.pyx create mode 120000 python-3.5/PyCafeDefs.pxi create mode 100644 python-3.5/PyCafe_api.h create mode 100644 python-3.5/README_Py3_release create mode 120000 python-3.5/cNodes.xml create mode 120000 python-3.5/examples.py create mode 100755 python-3.5/examples.sh create mode 120000 python-3.5/examplesTest.py create mode 120000 python-3.5/gDBPM.xml create mode 100644 python-3.5/makefile create mode 100644 python-3.5/setup3.5_release.py create mode 100644 setup3.5_win.py create mode 100644 sf_ar_cNodes.xml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..13478ba --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +build +python-3.5/*.cpp +python-3.5/*.so +python-3.5/*.*~ +python-3.5/SL6-x86_64 diff --git a/PyCafe.pxd b/PyCafe.pxd new file mode 100644 index 0000000..67452ad --- /dev/null +++ b/PyCafe.pxd @@ -0,0 +1,1141 @@ +# file: PyCafe.pxd + +#from cpython.ref cimport PyObject +from libcpp.string cimport string +from libcpp.vector cimport vector +from libcpp.map cimport map +from libcpp.pair cimport pair + +cimport cython + +#import numpy as np + +cimport numpy as cnp + +cdef extern from "Python.h": + ctypedef enum PyGILState_STATE: + PyGILState_LOCKED=0 + PyGILState_UNLOCKED=1 + + void PyEval_InitThreads() + void Py_Initialize() + PyGILState_STATE PyGILState_Ensure() + void PyGILState_Release(PyGILState_STATE) + +cdef extern from "boost/multi_index_container.hpp" namespace "boost": + cdef cppclass multi_index_container: + pass + +cdef extern from "boost/smart_ptr/shared_ptr.hpp" namespace "boost": + cdef cppclass shared_ptr[T]: + shared_ptr() + shared_ptr(T *p) + shared_ptr(const shared_ptr&) + long use_count() + T operator*() + + +cdef extern from "" namespace "std": + cdef cppclass multimap[T, U]: + cppclass iterator: + pair[T, U]& operator*() nogil + iterator operator++() nogil + iterator operator--() nogil + bint operator==(iterator) nogil + bint operator!=(iterator) nogil + multimap() nogil except + + U& operator[](T&) nogil + iterator begin() nogil + iterator end() nogil + pair[iterator, bint] insert(pair[T, U]) nogil + iterator find(T&) nogil + + +cdef extern from "cadef.h": + + ctypedef long chtype + ctypedef oldSubscription * evid + + cdef struct oldSubscription: + pass + + cdef struct oldChannelNotify: + pass + + cdef struct event_handler_args: + oldChannelNotify chid + long type + int count + const void *dbr + int status + void * usr + pass + + + cdef: + int ca_flush_io() + int ca_poll() + + +cdef extern from "caeventmask.h": + #ctypedef enum DBE_TYPE: + # DBE_VALUE=1 + # DBE_LOG=2 + # DBE_ARCHIVE=DBE_LOG + # DBE_ALARM=4 + # DBE_PROPERTY=8 + unsigned int DBE_VALUE + unsigned int DBE_LOG + unsigned int DBE_ARCHIVE + unsigned int DBE_ALARM + unsigned int DBE_PROPERTY + + + +cdef extern from "time.h": + cdef struct tm: + int tm_sec #seconds after the minute 0-61* + int tm_min #minutes after the hour 0-59 + int tm_hour #hours since midnight 0-23 + int tm_mday #day of the month 1-31 + int tm_mon #months since January 0-11 + int tm_year #years since 1900 + int tm_wday #days since Sunday 0-6 + int tm_yday #days since January 1 0-365 + int tm_isdst #Daylight Saving Time flag + +cdef extern from "epicsTime.h": + cdef struct epicsTimeStamp: + unsigned int secPastEpoch # seconds since 0000 Jan 1, 1990 + unsigned int nsec + cdef cppclass epicsTime: + epicsTime (const epicsTimeStamp &) + cdef struct local_tm_nano_sec: + tm ansi_tm + unsigned long nSec + +cdef extern from "db_access.h": + unsigned int DBR_STRING #returns a NULL terminated string + unsigned int DBR_SHORT #returns an unsigned short + unsigned int DBR_INT #returns an unsigned short + unsigned int DBR_FLOAT #returns an IEEE floating point value + unsigned int DBR_ENUM #returns an unsigned short which is the enum item + unsigned int DBR_CHAR #returns an unsigned char + unsigned int DBR_LONG #returns an unsigned long + unsigned int DBR_DOUBLE #returns a double precision floating point number + unsigned int DBR_STS_STRING #returns a string status structure (dbr_sts_string) + unsigned int DBR_STS_SHORT #returns a short status structure (dbr_sts_short) + unsigned int DBR_STS_INT #returns a short status structure (dbr_sts_int) + unsigned int DBR_STS_FLOAT #returns a float status structure (dbr_sts_float) + unsigned int DBR_STS_ENUM #returns an enum status structure (dbr_sts_enum) + unsigned int DBR_STS_CHAR #returns a char status structure (dbr_sts_char) + unsigned int DBR_STS_LONG #returns a long status structure (dbr_sts_long) + unsigned int DBR_STS_DOUBLE #returns a double status structure (dbr_sts_double) + unsigned int DBR_TIME_STRING #returns a string time structure (dbr_time_string) + unsigned int DBR_TIME_SHORT #returns a short time structure (dbr_time_short) + unsigned int DBR_TIME_INT #returns a short time structure (dbr_time_short) + unsigned int DBR_TIME_FLOAT #returns a float time structure (dbr_time_float) + unsigned int DBR_TIME_ENUM #returns an enum time structure (dbr_time_enum) + unsigned int DBR_TIME_CHAR #returns a char time structure (dbr_time_char) + unsigned int DBR_TIME_LONG #returns a long time structure (dbr_time_long) + unsigned int DBR_TIME_DOUBLE #returns a double time structure (dbr_time_double) + unsigned int DBR_GR_STRING #returns a graphic string structure (dbr_gr_string) + unsigned int DBR_GR_SHORT #returns a graphic short structure (dbr_gr_short) + unsigned int DBR_GR_INT #returns a graphic short structure (dbr_gr_int) + unsigned int DBR_GR_FLOAT #returns a graphic float structure (dbr_gr_float) + unsigned int DBR_GR_ENUM #returns a graphic enum structure (dbr_gr_enum) + unsigned int DBR_GR_CHAR #returns a graphic char structure (dbr_gr_char) + unsigned int DBR_GR_LONG #returns a graphic long structure (dbr_gr_long) + unsigned int DBR_GR_DOUBLE #returns a graphic double structure (dbr_gr_double) + unsigned int DBR_CTRL_STRING #returns a control string structure (dbr_ctrl_int) + unsigned int DBR_CTRL_SHORT #returns a control short structure (dbr_ctrl_short) + unsigned int DBR_CTRL_INT #returns a control short structure (dbr_ctrl_int) + unsigned int DBR_CTRL_FLOAT #returns a control float structure (dbr_ctrl_float) + unsigned int DBR_CTRL_ENUM #returns a control enum structure (dbr_ctrl_enum) + unsigned int DBR_CTRL_CHAR #returns a control char structure (dbr_ctrl_char) + unsigned int DBR_CTRL_LONG #returns a control long structure (dbr_ctrl_long) + unsigned int DBR_CTRL_DOUBLE #returns a control double structure (dbr_ctrl_double) + + ctypedef char[40] dbr_string_t + ctypedef short dbr_short_t + ctypedef float dbr_float_t + ctypedef unsigned short dbr_enum_t + ctypedef unsigned char dbr_char_t + ctypedef int dbr_long_t + ctypedef double dbr_double_t + + cdef struct dbr_sts_string: + pass + cdef struct dbr_sts_short: + pass + cdef struct dbr_sts_int: + pass + cdef struct dbr_sts_float: + dbr_float_t value + dbr_short_t status + pass + cdef struct dbr_sts_enum: + pass + cdef struct dbr_sts_char: + pass + cdef struct dbr_sts_long: + pass + cdef struct dbr_sts_double: + pass + + cdef struct dbr_time_string: + pass + cdef struct dbr_time_short: + pass + cdef struct dbr_time_int: + pass + cdef struct dbr_time_float: + dbr_float_t value + dbr_short_t status + dbr_short_t severity + epicsTimeStamp stamp + pass + cdef struct dbr_time_enum: + pass + cdef struct dbr_time_char: + pass + cdef struct dbr_time_long: + pass + cdef struct dbr_time_double: + pass + + cdef struct dbr_gr_string: + pass + cdef struct dbr_gr_short: + pass + cdef struct dbr_gr_int: + pass + cdef struct dbr_gr_float: + dbr_float_t value + dbr_short_t status + pass + cdef struct dbr_gr_enum: + pass + cdef struct dbr_gr_char: + pass + cdef struct dbr_gr_long: + pass + cdef struct dbr_gr_double: + pass + + cdef struct dbr_ctrl_string: + pass + cdef struct dbr_ctrl_short: + pass + cdef struct dbr_ctrl_int: + pass + cdef struct dbr_ctrl_float: + dbr_float_t value + dbr_short_t status + pass + cdef struct dbr_ctrl_enum: + pass + cdef struct dbr_ctrl_char: + pass + cdef struct dbr_ctrl_long: + pass + cdef struct dbr_ctrl_double: + pass + +cdef extern from "caerr.h": + unsigned int ECA_NORMAL + unsigned int ECA_ALLOCMEM + unsigned int ECA_TOLARGE + unsigned int ECA_TIMEOUT + unsigned int ECA_BADTYPE + unsigned int ECA_INTERNAL + unsigned int ECA_GETFAIL + unsigned int ECA_PUTFAIL + unsigned int ECA_BADCOUNT + unsigned int ECA_BADSTR + unsigned int ECA_DISCONN + unsigned int ECA_DBLCHNL + unsigned int ECA_EVDISALLOW + unsigned int ECA_BADMONID + unsigned int ECA_BADMASK + unsigned int ECA_IODONE + unsigned int ECA_IOINPROGRESS + unsigned int ECA_BADSYNCGRP + unsigned int ECA_PUTCBINPROG + unsigned int ECA_NORDACCESS + unsigned int ECA_NOWTACCESS + unsigned int ECA_ANACHRONISM + unsigned int ECA_NOSEARCHADDR + unsigned int ECA_NOCONVERT + unsigned int ECA_BADCHID + unsigned int ECA_BADFUNCPTR + unsigned int ECA_ISATTACHED + unsigned int ECA_UNAVAILINSERV + unsigned int ECA_CHANDESTROY + unsigned int ECA_BADPRIORITY + unsigned int ECA_NOTTHREADED + unsigned int ECA_16KARRAYCLIENT + unsigned int ECA_CONNSEQTMO + unsigned int ECA_UNRESPTMO + +cdef extern from "caopCodes.h": + cdef cppclass CAOPCodes: + pass + string message(int) + int enumIs(string) + show() + + +cdef extern from "defines.h": + const short PVNAME_SIZE + + +cdef extern from "cafeDataType.h": + ctypedef enum CAFE_DATATYPE: + CAFE_TYPENOTCONN =-1 + CAFE_STRING = 0 + CAFE_SHORT = 1 + CAFE_INT = CAFE_SHORT + CAFE_FLOAT = 2 + CAFE_ENUM = 3 + CAFE_USHORT = CAFE_ENUM + CAFE_CHAR = 4 + CAFE_LONG = 5 + CAFE_DOUBLE = 6 + CAFE_NO_ACCESS = 7 + CAFE_INVALID_DATATYPE = 8 + CAFE_NOT_REQUESTED = 100 + CAFE_NOT_SHOWN = 101 + + ctypedef union CAFE_DATATYPE_UNION: + dbr_string_t str + dbr_short_t s + dbr_float_t f + dbr_enum_t us #unsigned short us; + dbr_char_t ch #unsigned char ch; + dbr_long_t l #int l; + dbr_double_t d + + ctypedef CAFE_DATATYPE_UNION * CAFE_DATATYPE_UNION_SEQ + + cdef cppclass CAFEDataTypeCode: + pass + string message(int) + int enumIs(string) + show() + +cdef extern from "cafeEnum.h": + ctypedef enum DBR_TYPE: + DBR_PRIMITIVE + DBR_PLAIN=DBR_PRIMITIVE + DBR_STS + DBR_TIME + DBR_GR + DBR_CTRL + DBR_PUT # DBR_PUT_ACKT and DBR_PUT_ACKS Write only - used from global alarm acknowledge. + DBR_STSACK # is DBR_STSACK_STRING + DBR_CLASS # is DBR_CLASS_NAME, + DBR_NONE # should not occur, but used internally within cafeVectors.h + + ctypedef enum ChannelFlushSendBufferPolicyKind: + WITH_FLUSH_IO + WITH_PEND_IO + WITH_PEND_EVENT + WITH_POLL + + ctypedef enum ChannelWhenToFlushSendBufferPolicyKind: + FLUSH_AUTOMATIC=0 + FLUSH_NOW=FLUSH_AUTOMATIC + FLUSH_AFTER_EACH_CHANNEL_CREATION=FLUSH_NOW + FLUSH_AFTER_EACH_CHANNEL_SUBSCRIPTION=FLUSH_NOW + FLUSH_AFTER_EACH_MESSAGE=FLUSH_NOW + FLUSH_AFTER_EACH_GROUP_CREATION=FLUSH_NOW + FLUSH_DESIGNATED_TO_CLIENT + + ctypedef enum ChannelGetCacheWaitPolicyKind: + GET_CACHE_NO_CHECK=0 + GET_CACHE_NO_WAIT + GET_CACHE_NOW =GET_CACHE_NO_WAIT + GET_CACHE_WAIT + + ctypedef enum ChannelGetActionWhenMonitorPolicyKind: + GET_FROM_CACHE + GET_FROM_IOC + + ctypedef enum ChannelRequestPolicyKind: + WITHOUT_CALLBACK + WITH_CALLBACK_DEFAULT + WITH_CALLBACK_USER_SUPPLIED + + ctypedef enum ChannelRequestDataTypePolicyKind: + NATIVE_DATATYPE + LOWEST_DATATYPE # The smaller in byte size of type requested and native datatype + + ctypedef enum ChannelWaitForResponsePolicyKind: + BLOCKING=0 + WAIT=BLOCKING + NON_BLOCKING=1 + NO_WAIT=NON_BLOCKING + + ctypedef enum StatusMessageKind: + NO_MESSAGE + PRE_REQUEST + FROM_REQUEST + FROM_PEND + FROM_CALLBACK + FROM_MESSAGE + + ctypedef enum CallbackProgressKind: + NOT_INITIATED + PENDING + COMPLETE + + + +cdef extern from "exceptions.h": + ctypedef struct CAFEException_pv: + char pv [60] #PVNAME_SIZE + char pvAlias[60] #PVNAME_SIZE + unsigned int handle + CAFE_DATATYPE dataTypeNative + const char * dataTypeNativeText + int statusCode + const char * statusCodeText + const char * statusMessage + const char * source + unsigned int ln + pass + + ctypedef struct CAFEException_group: + char groupName [60] #[PVNAME_SIZE]; + unsigned int groupHandle + int statusCode + const char * statusCodeText + const char * statusMessage + const char * source + unsigned int ln + pass + + cdef cppclass CAFEException_open: + CAFEException_pv pvEx + pass + const char* what() + + cdef cppclass CAFEException_groupOpen: + CAFEException_group groupEx + pass + const char* what() + +cdef extern from "channelRegalia.h": + cdef cppclass ChannelRegalia: + pass + oldChannelNotify * getChannelID() + bint getConnectFlag() + const char * getHostName() + string getHostNameAsString() + int getDataType() + const char * getClassName() + string getClassNameAsString() + unsigned short getAccessRead() + unsigned short getAccessWrite() + unsigned short getReadAccess() + unsigned short getWriteAccess() + unsigned int getNelem() + int getConnectionState() + int getCafeConnectionState() + string getConnectionStateAsString() + string getCafeConnectionStateAsString() + +cdef extern from "handleHelper.h": + ctypedef struct etsDate: + int year + int mon + int day + int hour + int min + int sec + unsigned long nsec + pass + + ctypedef struct etsNorm: + unsigned int secPastEpoch + unsigned int nsec + pass + + cdef cppclass HandleHelper: + etsDate _etsDate + etsNorm _etsNorm + + HandleHolder() + + int checkConsistency(unsigned int) + + string getStringFromEnum(unsigned int, unsigned short) + short getEnumFromString(unsigned int, string) + + const char * getPVFromHandle (unsigned int) + unsigned int getHandleFromPV(const char *) + unsigned int getGroupHandleFromGroupName(const char *) + unsigned int getHandleFromPVWithinGroup(const char *, unsigned int) + vector[unsigned int] getHandlesFromWithinGroupV(unsigned int) + int getChannelRegalia(unsigned int, ChannelRegalia) + + unsigned int getUsrArgsAsUInt(unsigned int) + chtype getDataTypeCB(unsigned int) + chtype getDbrDataTypeCB(unsigned int) + DBR_TYPE getCafeDbrTypeCB(unsigned int) + + int getStatus (unsigned int) + int getAlarmStatusSeverity(unsigned int, short[2]) + int [] getTimeStamp(unsigned int, epicsTimeStamp &ts) + + unsigned int setCafeDbrTypeV(vector[unsigned int], DBR_TYPE) + unsigned int setCafeDbrType(unsigned int, DBR_TYPE) + unsigned int getCafeDbrType(unsigned int, DBR_TYPE &) + unsigned int setNelem(unsigned int, unsigned int) + unsigned int setNelemToNative(unsigned int) + unsigned int setNelemToRetrieveFromCache (unsigned int, unsigned int) + unsigned int setNelemToRetrieveFromCtrlCache (unsigned int, unsigned int) + unsigned int getNelemToRetrieveFromCache (unsigned int) + unsigned int getNelemToRetrieveFromCtrlCache (unsigned int) + + unsigned int setNelemCtrl (unsigned int, unsigned int); + unsigned int getNelemRequestCtrl (unsigned); + unsigned int getNelemClientCtrl (unsigned); + + unsigned int getNelemClient (unsigned int) + unsigned int getNelemNative (unsigned int) + unsigned int getNelemRequest (unsigned int) + + unsigned int getNmonitor (unsigned int) + vector[unsigned int] getMonitorIDs(unsigned int) + + int getDataTypeNative (unsigned int, long) + int getDataTypeRequest(unsigned int, long) + + etsNorm getEpicsTimeStampAsUInt32(unsigned int) + etsDate getEpicsTimeStampAsDate(unsigned int) + + int printHandlesV(vector[unsigned int]) + + unsigned int getDisconnectedHandles (vector[unsigned int] &, vector[string] &) + unsigned int getHandles (vector[unsigned int] &, vector[string] &) + unsigned int getHandleStates (vector[unsigned int] &, vector[string] &, vector[unsigned short] &) + + int getMonitorPolicyVector(unsigned int, vector[MonitorPolicy] &); + + +cdef extern from "policies.h": + + ctypedef void (*pCallback) (event_handler_args) + + cdef cppclass MonitorPolicy: + + MonitorPolicy() + unsigned int getMonitorID() + void setMask(unsigned int) + void setDataType(chtype) + void setCafeDbrType(DBR_TYPE) + void setHandler(pCallback) + void setDefaultHandler() + void setPyHandler() + void setPyHandlerData() + void setUserArgs(void *) + unsigned int getMask() + unsigned int getNelem() + unsigned int getUserArgs() + DBR_TYPE getCafeDbrType() + unsigned int getDataType() + unsigned int getDbrDataType() + bint maskHasDBE_PROPERTY() + bint maskHasDBE_VALUE() + bint maskHasDBE_LOG() + bint maskHasDBE_ALARM() + + cdef cppclass ChannelOpenPolicy: + ChannelOpenPolicy() + void setWhenToFlushSendBuffer(ChannelWhenToFlushSendBufferPolicyKind) + ChannelWhenToFlushSendBufferPolicyKind getWhenToFlushSendBuffer() + void setFlushSendBufferKind(ChannelFlushSendBufferPolicyKind) + void flushSendBufferNow() + double setTimeout(double) + double getTimeout() + double setDefaultTimeout(double) + double getDefaultTimeout() + double setTimeoutToDefault() + + cdef cppclass ChannelRequestPolicy: + ChannelRequestPolicy() + ChannelWhenToFlushSendBufferPolicyKind getWhenToFlushSendBuffer() + ChannelWaitForResponsePolicyKind getWaitKind() + ChannelRequestPolicyKind getMethodKind() + pCallback getHandler() + int getCallbackStatus() + void setHandler(pCallback h) + void setPyHandlerGet() + void setPyHandlerPut() + void setMethodKind(ChannelRequestPolicyKind) + void setWhenToFlushSendBuffer(ChannelWhenToFlushSendBufferPolicyKind) + void setWaitKind(ChannelWaitForResponsePolicyKind) + void setCallbackStatus (int) + void setPolicy(ChannelWhenToFlushSendBufferPolicyKind,ChannelWaitForResponsePolicyKind,ChannelRequestPolicyKind) + + cdef cppclass ChannelRequestDataTypePolicy: + ChannelRequestDataTypePolicy() + ChannelRequestDataTypePolicy(ChannelRequestDataTypePolicyKind) + ChannelRequestDataTypePolicyKind requestKind + void setRequestKind(ChannelRequestDataTypePolicyKind) + ChannelRequestDataTypePolicyKind getRequestKind() + + + cdef cppclass ChannelTimeoutPolicy: + ChannelTimeoutPolicy() + bint getSelfGoverningTimeout() + void setSelfGoverningTimeout(bool) + double getTimeout() + double getDeltaTimeout() + unsigned short getNtries() + double setTimeout(double) + double setDeltaTimeout(double) + unsigned short setNtries(unsigned short) + + + cdef cppclass ChannelGetCacheWaitPolicy: + ChannelGetCacheWaitPolicy() + ChannelGetCacheWaitPolicy(ChannelGetCacheWaitPolicyKind) + ChannelGetCacheWaitPolicyKind whenKind + void setWaitKind(ChannelGetCacheWaitPolicyKind) + ChannelGetCacheWaitPolicyKind getWhenKind() + + cdef cppclass ChannelGetActionWhenMonitorPolicy: + ChannelGetActionWhenMonitorPolicy() + ChannelGetActionWhenMonitorPolicy(ChannelGetActionWhenMonitorPolicyKind) + ChannelGetActionWhenMonitorPolicyKind actionKind + void setActionKind(ChannelGetActionWhenMonitorPolicyKind) + ChannelGetActionWhenMonitorPolicyKind getActionKind() + + +cdef extern from "policyHelper.h": + cdef cppclass PolicyHelper: + + int getChannelGetCacheWaitPolicy (unsigned int, ChannelGetCacheWaitPolicy &) + int setChannelGetCacheWaitPolicy (unsigned int, ChannelGetCacheWaitPolicy) + int setChannelGetCacheWaitPolicyAllHandles (ChannelGetCacheWaitPolicy) + int getChannelGetActionWhenMonitorPolicy(unsigned int, ChannelGetActionWhenMonitorPolicy &) + int setChannelGetActionWhenMonitorPolicy(unsigned int, ChannelGetActionWhenMonitorPolicy ) + int setChannelGetActionWhenMonitorPolicyAllHandles (ChannelGetActionWhenMonitorPolicy) + + int getChannelRequestDataTypePolicy(unsigned int, ChannelRequestDataTypePolicy &) + int setChannelRequestDataTypePolicy(unsigned int, ChannelRequestDataTypePolicy) + int setChannelRequestDataTypePolicyAllHandles(ChannelRequestDataTypePolicy) + + int getChannelRequestPolicyGet (unsigned int , ChannelRequestPolicy &) + int setChannelRequestPolicyGet (unsigned int , ChannelRequestPolicy) + int setChannelRequestPolicyGetAllHandles (ChannelRequestPolicy) + + int getChannelRequestPolicyPut (unsigned int, ChannelRequestPolicy &) + int setChannelRequestPolicyPut (unsigned int , ChannelRequestPolicy) + int setChannelRequestPolicyPutAllHandles (ChannelRequestPolicy) + + int getChannelTimeoutPolicyGet (unsigned int, ChannelTimeoutPolicy &) + int setChannelTimeoutPolicyGet (unsigned int, ChannelTimeoutPolicy) + + int getChannelTimeoutPolicyPut (unsigned int, ChannelTimeoutPolicy &) + int setChannelTimeoutPolicyPut (unsigned int, ChannelTimeoutPolicy) + + int getTimeout(unsigned int, double &) + int getTimeout(unsigned int, double &, double &) + int getTimeoutMin(double &, double &) + int getTimeoutMax(double &, double &) + int setTimeout(unsigned int, double) + int setTimeout(unsigned int, double, double) + int setTimeout(double) + int setTimeout(double, double) + int setSelfGoverningTimeout(bint) + int getSGTimeout (unsigned int, double &, double &) + int getSGTimeout (unsigned int, double &) + int getSGTimeoutMin (double, double &) + int getSGTimeoutMax (double, double &) + int setSGTimeout (unsigned int, double, double) + int setSGTimeout (unsigned int, double) + int setSGTimeout (double, double) + int setSGTimeout (double) + int setSGSelfGoverningTimeout(bint) + +#cdef extern from "hashConduit.h": +# ctypedef multi_index_container<> cafeConduit_set +# ctypedef cafeConduit_set cafeConduit_set_by_handle +# ctypedef multi_index_container.iterator it_handle + + +cdef extern from "statusCodes.h": + cdef int ICAFE_STATUS_BASE = 600 + cdef int ICAFE_STATUS_CS = ICAFE_STATUS_BASE + cdef int ICAFE_STATUS_CFT = 700 + cdef int ICAFE_STATUS_CA_OP = 800 + cdef int ICAFE_STATUS_ERROR = 1000 + cdef int ICAFE_FILE_ERROR = 1100 + cdef int ICAFE_SUCCESS = ECA_NORMAL + cdef int ICAFE_NORMAL = ECA_NORMAL + + ctypedef enum CAFE_CS_STATE: + ICAFE_CS_NEVER_CONN=600 + ICAFE_CS_PREV_CONN + ICAFE_CS_CONN + ICAFE_CS_CLOSED + ICAFE_CS_DISCONN + ICAFE_CS_UNKNOWN + + ctypedef enum CAFE_CFT_STATE: + ICAFE_TYPENOTCONN=700 + ICAFE_RULE_FALSE + ICAFE_BADCOUNT + ICAFE_CALLBACK_NOT_YET_INVOKED + ICAFE_WAITING_FOR_PREV_CALLBACK + ICAFE_CACHE_EMPTY + ICAFE_CHANNEL_BLOCKING_POLICY_CONFLICT + ICAFE_MONITOR_DELAYED_AS_CONN_DOWN + ICAFE_HAS_MONITOR_GET_DONE_FROM_CACHE + ICAFE_SET_AND_GET_MISMATCH + + ctypedef enum CAFE_CC_STATE: + ICAFE_CA_OP_GET=800 + ICAFE_CA_OP_PUT + ICAFE_CA_OP_CREATE_CHANNEL + ICAFE_CA_OP_ADD_EVENT + ICAFE_CA_OP_CLEAR_EVENT + ICAFE_CA_OP_OTHER + ICAFE_CA_OP_CONN_UP + ICAFE_CA_OP_CONN_DOWN + + ctypedef enum CAFE_FILE_ERROR: + ECAFE_LOAD_COLLECTION=1100 + ECAFE_LOAD_GROUP + + ctypedef enum CAFE_ERROR_STATE: + ECAFE_NODATA=1000 + ECAFE_INVALID_TYPE + ECAFE_BADCOUNT + ECAFE_BADSTR + ECAFE_BADTYPE + ECAFE_NO_CONVERT + ECAFE_NULLCONTEXT + ECAFE_NULLCHID + ECAFE_NULLEVID + ECAFE_UNKNOWN_COLLECTION + ECAFE_EMPTY_COLLECTION + ECAFE_COLLECTION_PREV_DEF + ECAFE_COLLECTION_INVALID_MEMBER + ECAFE_RULE_FALSE + ECAFE_UNKNOWN_GROUP + ECAFE_EMPTY_GROUP + ECAFE_GROUP_PREV_DEF + ECAFE_INVALID_HANDLE + ECAFE_INVALID_GROUP_HANDLE + ECAFE_NORDACCESS + ECAFE_NOWTACCESS + ECAFE_TIMEOUT + ECAFE_CANNOT_OPEN_FILE + ECAFE_INVALID_SWITCH_CASE + ECAFE_PVALIAS_PREV_DEF + ECAFE_PVALIAS_INVALID + ECAFE_PVNAME_PREV_DEF_AS_PVALIAS + ECAFE_DEVICE_ATTRIB_NOT_FOUND + ECAFE_HASH_UNIQUEID_EXISTS + ECAFE_WRONG_CA_CONTEXT + ECAFE_INVALID_CAFENUM_POLICY_TYPE + ECAFE_MAX_MONITORS_PER_CHAN_EXCEEDED + ECAFE_INVALID_ENUM_INDEX + ECAFE_PVGROUP_GROUPHANDLE_MISMATCH + ECAFE_TIMEOUT_SET_AND_MATCH + ECAFE_HANDLE_MISMATCH_SET_AND_MATCH + + cdef cppclass CAFEStatusSeverity: + CAFEStatusSeverity() + string message (int) + + cdef cppclass CAFEStatusInfo: + CAFEStatusInfo() + string message (int) + + cdef cppclass CAFEStatusCode: + CAFEStatusCode() + string message (int) + int enumIs(string) + + cdef cppclass CAFEStatus: + CAFEStatus() + string code(int) + string info(int) + string message(int) + void report(int) + +''' +cdef extern from "cafeService.h": + + cdef cppclass DBPMData: + double getValue() + epicsTimeStamp getEpicsTimeStamp() + int getStatus() + + cdef cppclass DBPMKeeper: + DBPMKeeper() + #DBPMKeeper(vector[string], vector[unsigned int], multimap[float, string]) + DBPMKeeper(vector[string], vector[unsigned int], vector[string], vector[float]) + vector[unsigned int] getHandle() + vector[string] getPV() + vector[string] getDevice() + + vector[double] getS() + vector[DBPMData] getX() + vector[DBPMData] getY() + vector[DBPMData] getQ() + vector[DBPMData] getEnergy() + + + vector[double] getOffsetX() + vector[double] getOffsetY() + + bint getIsAllXOK() + bint getIsAllYOK() + bint getIsAllQOK() + bint getIsAllEnergyOK() + bint getIsAllOK () + bint setBS(bint) + bint resetBS() + void closeBS() + int getStatus() +''' + +cdef extern from "PVDataHolder.h": + + cdef cppclass PVDataHolder: + etsDate _etsDate + etsNorm _etsNorm + + PVDataHolder() + PVDataHolder(unsigned int) + #shared_ptr [CAFE_DATATYPE_UNION []] val; + #shared_ptr[double []] getDouble() + #shared_ptr[float []] getFloat() + #shared_ptr[int []] getInt() + #shared_ptr[string []] getString() + + #shared_ptr[vector [double]] getAsVDouble() + #shared_ptr[vector [float]] getAsVFloat() + #shared_ptr[vector [int]] getAsVInt() + #shared_ptr[vector [string]] getAsVString() + + char * getAsDbr_string_t() + char * getAsDbr_string_t(unsigned int) + string getAsString() + string getAsString(unsigned int) + double getAsDouble() + double getAsDouble(unsigned int) + float getAsFloat() + float getAsFloat(unsigned int) + short getAsShort() + short getAsShort(unsigned int) + unsigned short getAsUShort() + unsigned short getAsUShort(unsigned int) + unsigned char getAsChar() + unsigned char getAsChar(unsigned int) + int getAsLong() + int getAsLong(unsigned int) + int getAsLongLong() + int getAsLongLong(unsigned int) + + string getWFAsString() + string concatToString() + + + unsigned int getUserNo() + + unsigned int getNelem() + int setNelem(unsigned int) + void setRule(bint) + bint getRule() + void setHasAlarm(bint) + void setHasTS(bint) + bint getHasAlarm() + bint getHasTS() + + int setString(string) + int setDouble(double) + int setInt(int) + int setVString(vector[string]) + int setVDouble(vector[double]) + int setVInt(vector[int]) + + int getAlarmStatus() + int getAlarmSeverity() + int getStatus() + + etsNorm getEpicsTimeStampAsUInt32() + etsDate getEpicsTimeStampAsDate() + + unsigned int getDataType() + char * getPV() + char * getPVName() + void valReset() + + +cdef extern from "PVCtrlHolder.h": + + cdef cppclass PVCtrlHolder: + + PVCtrlHolder() + PVCtrlHolder(unsigned int) + + short getPrecision() + const char * getUnits() + string getUnitsAsString() + short getNoEnumStrings() + vector[string] getEnumStrings() + double getUpperDispLimit_AsDouble() + double getLowerDispLimit_AsDouble() + double getUpperAlarmLimit_AsDouble() + double getUpperWarningLimit_AsDouble() + double getLowerWarningLimit_AsDouble() + double getLowerAlarmLimit_AsDouble() + double getUpperCtrlLimit_AsDouble() + double getLowerCtrlLimit_AsDouble() + + float getFloat(unsigned int) + + string getAsString() + string getAsString(unsigned int) + + char* getAsDbr_string_t() + char* getAsDbr_string_t(unsigned int) + double getAsDouble() + double getAsDouble(unsigned int) + float getAsFloat() + float getAsFloat(unsigned int) + short getAsShort() + short getAsShort(unsigned int) + unsigned short getAsUShort() + unsigned short getAsUShort(unsigned int) + unsigned char getAsChar() + unsigned char getAsChar(unsigned int) + int getAsLong() + int getAsLong(unsigned int) + int getAsLongLong() + int getAsLongLong(unsigned int) + + unsigned int getNelem() + int setNelem(unsigned int) + + int getAlarmStatus() + int getAlarmSeverity() + int getStatus() + + unsigned int getDataType() + + +cdef extern from "PVGroup.h": + + cdef cppclass PVGroup: + PVGroup() + PVDataHolder * getPVData() + unsigned int getNPV() + string getNameAsString() + unsigned int getGroupHandle() + int getStatusGroup() + void setPVData(PVDataHolder *) + void show() + void showMax(unsigned int) + void showMaxMax(unsigned int, unsigned int) + pass + + +cdef extern from "cafe.h": + + cdef cppclass CAFE: + + ChannelOpenPolicy channelOpenPolicy + ChannelOpenPolicy channelOpenGroupPolicy + ChannelOpenPolicy channelMonitorPolicy + #ChannelRequestPolicy channelRequestPolicyGet + #ChannelRequestPolicy channelRequestPolicyPut + + PolicyHelper getPolicyHelper() + HandleHelper getHandleHelper() + + int _ca_pend_io(double) nogil + int _ca_pend_event(double) nogil + int _ca_flush_io() nogil + int _ca_poll() nogil + + int init() + int open(char *, unsigned int &) except + + int openV(vector[string], vector[unsigned int] &) except + + int closeHandlesV(vector[unsigned int]) nogil + int close(unsigned int) nogil + int closeChannels() nogil + + bint allChannelsConnected() + bint isChannelConnected(unsigned int) + int printDisconnectedHandles() + int printHandle(unsigned int) + int printHandles() + + bint isEnum(unsigned int) + bint isValid(unsigned int) + + void printStatusMessage(int) + void printStatus(unsigned int, int) + + int attachContextByPVName(const char *) + int attachContextByHandle(unsigned int) + + unsigned int getNelemClient (unsigned int) + unsigned int getNelemNative (unsigned int) + unsigned int getNelemRequest(unsigned int) + + const char * getPVFromHandle (unsigned int) + unsigned int getHandleFromPV (const char *) + + void loadSFGroups(string) + + int getChannelInfo(unsigned int, ChannelRegalia) + + CAFEStatus getCafeStatus() + CAFEStatusSeverity getCafeStatusSeverity() + + PVDataHolder * getPVData(vector[unsigned int]) + + vector[string] getFromGlobalChannelList(vector[string]) + + string getChannelIDAsString(chid) + + int getWFAsString(unsigned int, string &) nogil + int getWFAsStringCache(unsigned int, string &) + + int getNonBlocking(unsigned int) nogil + int getCacheFloatArray(unsigned int, float *) + int getCacheDoubleArray(unsigned int, double *) + int getCacheShortArray(unsigned int, short *) + int getCacheLongArray(unsigned int, int *) + int getCacheStringArray(unsigned int, string *) + int getCacheDbrStringArray(unsigned int, dbr_string_t[]) + int getCacheDouble(unsigned int, double &) + int getCacheLong(unsigned int, int &) + int getCacheString(unsigned int, string &) + + int getDouble(unsigned int, double &) nogil + int getLong(unsigned int, int &) nogil + int getString(unsigned int, string &) nogil + int getStringTS(unsigned int, string &, short &, short&, epicsTimeStamp&) nogil + + int getCharArray(unsigned int, char []) nogil + int getShortArray(unsigned int, short []) nogil + int getUShortArray(unsigned int, unsigned short[]) nogil + int getDoubleArray(unsigned int, double []) nogil + int getFloatArray(unsigned int, float []) nogil + int getLongArray(unsigned int, int[]) nogil + int getStringArray(unsigned int, string[]) nogil + int getDbrStringArray(unsigned int, dbr_string_t[]) nogil + + int get(unsigned int, PVDataHolder &) nogil + int getCtrl(unsigned int, PVCtrlHolder &) nogil + int getCtrlCache(unsigned int, PVCtrlHolder &) nogil + + int getPVArray(vector[unsigned int], PVDataHolder *) nogil + int getCachePVArray(vector[unsigned int], PVDataHolder *) + int getCachePVArrayNoWait(vector[unsigned int], PVDataHolder *) + + int getV(vector[unsigned int], vector[int]) nogil + int getCacheVStr(vector[unsigned int], vector[string], vector[int]) nogil + int getCacheVLong(vector[unsigned int], vector[dbr_long_t], vector[int]) nogil + int getCacheVDouble(vector[unsigned int], vector[double], vector[int]) nogil + + int waitForBundledEvents(vector[unsigned int], vector[int]) nogil + int waitForGetEvent(unsigned int) nogil + + int monitorStart(unsigned int, MonitorPolicy &) nogil + int monitorStopAll() nogil + int monitorStop(unsigned int) nogil + int monitorStopWithID(unsigned int, unsigned int) nogil + int getCache(unsigned int, PVDataHolder &) + + + + MonitorPolicy * createMonitorPolicyArray(const unsigned int) + int groupMonitorStart(unsigned int, vector[int]&, vector[MonitorPolicy] & ) nogil + int groupMonitorStop (unsigned int, vector[int]&) nogil + int groupDefine(char *, vector[const char *]) + int groupOpen(char *, unsigned int &) nogil except + + int groupClose(unsigned int &) nogil except + + int groupAttach(unsigned int, PVGroup &) nogil + int groupGet(unsigned int, PVGroup &) nogil + int groupGetCache(unsigned int, PVGroup &) nogil + int groupSet(unsigned int, PVGroup &) nogil + + int groupMemberList(const char *, vector[string] &) + + int loadCollectionsFromXML(const char *) nogil + int loadGroupsFromXML(const char *) nogil + int devicePositionMap(const char *, map[float, string]&) + int devicePositionV(const char *, vector[string]& , vector[float] &) + + int restoreFromXML(const char * snapshotFile) nogil; + int snapshot2XML (PVGroup pg) nogil; + void openGroupXMLFile(string fileName) nogil; + void closeGroupXMLFile(string fileName) nogil; + int group2XML (const char * grpName, string fileName) nogil; + + int groupList (vector[string] &) + + int printStatusIfError(vector[unsigned int], vector[int]) + + int setStringArray(unsigned int, char **) nogil + int setCharArray(unsigned int, unsigned char *) nogil + int setLongArray(unsigned int, int *) nogil + int setDoubleArray(unsigned int, double *) nogil + + int setPVArray(vector[unsigned int], PVDataHolder *) nogil + + int setVString(unsigned int, vector[string]) nogil + int setVChar(unsigned int, vector[unsigned char]) nogil + int setVShort(unsigned int, vector[short]) nogil + int setVUShort(unsigned int, vector[unsigned short]) nogil + int setVLong(unsigned int, vector[dbr_long_t]) nogil + int setVFloat (unsigned int, vector[float]) nogil + int setVDouble(unsigned int, vector[double]) nogil + + int setVVString(vector[unsigned int], vector[string], vector[int]&) nogil + int setVVChar(vector[unsigned int], vector[unsigned char], vector[int]&) nogil + int setVVLong(vector[unsigned int], vector[int], vector[int]&) nogil + int setVVDouble(vector[unsigned int], vector[double], vector[int]&) nogil + + int setString(unsigned int, string) nogil + int setChar(unsigned int, unsigned char) nogil + int setShort(unsigned int, short) nogil + int setUShort(unsigned int, unsigned short) nogil + int setLong(unsigned int, int) nogil + int setLongLong(unsigned int, long long) nogil + int setFloat (unsigned int, float) nogil + int setDouble(unsigned int, double) nogil + + int setAndMatch(const unsigned int, double, const unsigned int, double tolerance, double timeout, bint printFlag) nogil + int setAndMatchMany(vector[unsigned int], vector[double], vector[unsigned int], double tolerance, double timeout, bint printFlag) nogil + + int match(double, const unsigned int, double tolerance, double timeout, bint printFlag) nogil + int matchMany(vector[double], vector[unsigned int], double tolerance, double timeout, bint printFlag) nogil + + + #int readDBPMOffsets(DBPMKeeper) + #int getDBPM(DBPMKeeper &) nogil + #int prepareDBPM(vector[string] &, vector[unsigned int] &, vector[string] &, vector[float] &) nogil + + + + int setNelemToOne(const unsigned int) + int setNelemToPrevious(const unsigned int, const unsigned int) + int setNelemToRetrieveFromCacheToOne(const unsigned int) + int setNelemToRetrieveFromCacheToPrevious(const unsigned int, const unsigned int) + int getNelemToRetrieveFromCache(const unsigned int) + int terminate() nogil + + pass diff --git a/PyCafe.pyd b/PyCafe.pyd new file mode 100644 index 0000000000000000000000000000000000000000..95b451fa24998c259f3f4bba6e93fa0e4bc6fcbc GIT binary patch literal 3100160 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

CCNMOJp`Erx3e#zBiSJ{_ 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

R?8WgP#{FPK>;DTeo9f;9s;~o$=0nf{4CXO; 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 z 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

l-vP~xr9N9llv+3o%oSc8GW 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¨m7g)w$Ma zQLGV7$Zr%rJm}R!XqR|@s)KK8MfN1ye=-=0Au;1CLa7?Np)qr#84L)C^R;~gD!dbc z7LWEFpbmQ3%Tg>L1Ugfywe49O$=I?K4Ng^vgAAgdLY%1(YY1_eLTqcMIF3<>K??B# zA?ho{T7%e|5DAjm6OK;@&Y}ij|Ju5gt(Uw+@WgEJ`}M;4kPEaU_X|*bP^mhT4WsVR zOH*fqGp)V>>Os1NlHR6)`mZG*9R^lVW{pOU>y&Di^&|{^N;bGdt_seGvQbA-ay%!tZw42#VYnIZQ!e*aUX*Z=xsjc9nNa!IVM?cn5MhSBJs1Kjv{`G;78#<9o!~sio z&l^CbT+u6ljMnGBmO2|8XHA+I&OBvy4`uehuY=j6jajKuW)Dzif7@G`Ju(HeM-Z`> z4W97p{~#M&Kx*iASh}6KU1!-~gG)gcKt5OND(EjguQ%2ayA%-Uk9_nqF??&Hu(O#w~J8^l=;T$P|;&(icNJ1g(8s0+4A@2QHA&mN&L>q~+}ZGQ0M$kV1M#ra}T& zMtFaLOiH#uwt+yAv|qQ!8p{g_XFsA`D6C#CbI@IW_J(&iff!+pzlQ1ocr582-re(D zyEY;SbOV9X^whDO)xyzX%qJMt63`VIy4+E$TOE${#*1(-eJGLHK6owNZ!u7eleMn^ zw0eJ}YQ8XUq!Co&Y98w8q&d)2dGI6V-g+cgU46wsLD?uH-lTo@S4=D-(;H>-A~Ib> z5MQQJGC|xa6SK4j0*ytc+aDq`_Nu96#Bbi=%k)LrM2>$O^7I~T5_RvN9FQsQfXuEZ zYm%SIY3hvsRKaw!5a8j^_4{j#`TA)oRuKXSexWoYp_Z(TWDIA6*A!xgL9AAY_6l(} zA?{O%kp}UkLiALKJVM;45Pc0|lISeH3lmNSWxN@|Nm_Sp`rC_WTEM1MO>8yt%Fl$! zac6564iboXY{wHD`t#6vl7F5}s|m_}f2$vddJr87qTih_eJ&%>mGj}jy>o_Yl>F;c zp?7CvmC@S}wq%|+^Fbt|4_mw_8i*(IJS?0{M6Sm#sNjXh&=jSzKidof6?U!EmI%*b zITAX`=nPJQa)6=SP(-UT#|qer>t+D^ktQn2>H$!@vHrPO&KZ=&p4Q|}!%0^I8#|a? zL^6gh1g9@OrP!oOvCZKleE&RMh4P{ZG@<{euvOG$K*%yC2`@3jcGC@@-5>>+p_K1a z%D*oFTozYw_&v zX58G?)pH`AQtnMMk&J({)pKlx{Lk>d0l`U1QLHeh5@xc({M%q26ye4bx({ATzK#VU zSzxj_wFo_MKkX;;P{yfmX#iYW!mB&f$P=2meDMOv904+jKw;GA3#0hhFib2Q9?1W} zGG<8|qPbt}$X;s2T2g_+c(F1Q(vcKoJn`=JiF9%MnJV1ZpOE4`yQw7KhlpyXf|cWy zm4C6x{R(rP!8`?+O2kItCtKrj7pzlMZ`*>=Ut$t{JWny~MGO}xhGPxGl~e@Q2NmMS z=K*oNLhNG@rz^w-3bBe1EfnHso|lGfk07VAAEPjj5oXgoLA=Uf(iF>hg}8+f?$Jz!+Z(L%{G~tc#w?j=_(B9g63a12$pb7RYrg?ga)_X|}ufc7L>Z z7+|`BDl$M!Y+&Z`cuf_ZHj^fyMJOLBrb#Z#f5x{+SElL;m;Cn$a%-q!FQa z&S`EyGSJZmB>o5Xd%Ft()SEB%`G`&j47m8?F`tXE==P3KM{prGcCttE7GxxJ8MEI= z#^z@sms1`W`MWdJ8jnG->QZ|Z>6Q=-jQGznFs5VZ&TD{%@jMK)?kx!*INrsF ze821rq?m++0eCR^KrCmneG3|YO3Z=+mUH_|FyvXzfQWB7hp+=;j^Ce10mvn8QTJ6B z@?Vkj6=_EhXN0lM;mYUa(TjQLz^{)mwiXBi#2tZLsAI>^9sn?h-C@&7+d$I@QR!XM z9CgRxwm9<#V?eZ%X$;64O<-VXi~&CK@OxMzIB}{B&>_Q>K?X|QL(_r`5F)_9^Jk0I zc6-#f+LfDVwRcp&cRc*UwH-2>gZA!Vyu?od{Um(ZFUp&R3oNtAa}gLH8NYHIMQVJf z={LYuBn54Ye&pU0mG%YME{uRg=TcT6!igE7y(d$Pl1ny#0HOG zmA=8z{ym|7sFC|-wiI95K{%ZMJpnU=G27&J^gN1B#AaSM5-SuCtvtgA?|?G#JLlf{ z$M`@m;Xu}!?%qLBYDIgYbVMdgI2j!uYw6UGIaPef)#;HGodM+%k4|xtdlkGXA zJ=R$n5Et&>F@8q`o8cUYWXZ zjO(BaUr-3XARq}b=$rhaEG`Xx11`)*0dLY8-_dde7m#Dot5P^&{QLLff3yo^6&-#6wb2;C z13tGM_~>&K7k$Kh?p(Q50V+wIa23hOVLsP(yzg`6f`umk!g1_{`P_NOkfz?I5{@vn zQ&lpy2kd>dwMOQ*P*{!|ufpz^Nk9YR5V$mj!2SJse2UlH(0XG1M6F(=vy(@W0=i!w zBu}C1PE}Q{L$T^h)9P_6rS24~Tdtt1Z6>f#i&M6cRMf423wv56Gj8E@(Q0QUc07sQ zj3&^k$Q4aqcuVkqX9zD-gawAMln7O;>{gssYuD$1jiB>{3;=%id=$c43Vq&k{7z%& zgemNp>9c=D3Vp7p3O#*J?0~}mU7v?ml4_zpdmqK8wdu1p1sKWrcn-RLD0WJr&yP=0 zeeQ!|)ppb8U>uS}-NRP*#{*KF)ki^{78h?ODcl!%Y=S=BRMBUBB{qb_o=1~_KG(k~ z2%j>9cPYZ5hHwrM)=8h?MswZ7ai-DXC(`|5-(i_gTo`1Bx))BvUr^};Jn0Rc@RxI#Tvq3~%dm=3 z(;otD%??L0&P7`29=cydA`C%_@2ki^usKNuYSG}rKUBtdz<@A%mwF$$AZeFZB62FN z*$-8t5aU4;8$_%MY1OEtTa$D>5}&O=6JF2;cG8NfV{4G$IO_h8`HJ+dP!=Hf;*~9h z-ZE^9M$~WGA%SL?9YtN)ZDf|0cG=S7nPWZ49Uq6_(?q!KFcEvg;$AJAWZFZyLSi)~#FjJVf` z)sWFVRH1nDZ=@4-uOJr4$yV3#kc<>|U!=XcUv3VFNu^jHKPp3q1-Ki=_yG=w z-i1`QOXDyCJlJHw{qH^T7~T+NHM~K7QD(3YBMQi`aQJFJTUjr0r(j|Yn=Ay3&SLGF zI59jlmZ3lzRg3lL?1cxMa9c?1%SW_+HqmgL=Qawk%xziani_9kp+HaNZ(z0I3`~`3 z#?@Q|6>Z=w1NVO*|8u|36kio-p@WAn6D7{DdB_^nqQTR@;s>?WkOj2Fp-9&ysEbSQ zlNkUX)*OJ^m+^E0^3_-3(8eD`u=+yVg(&Eh^>fX)0vEC|0GcF%KBk0h2tGm&~hVWzGlvV_R0t` zza;I&ol4wQuw4~$JF@we&*senWo(wvtvnODu_w+Z?#3O+NX7%aYGMOIxwsluTi%`S zPu2Q=!>L-UYn#?vR*_Q;#3Bg(K_(r3-K>+jY|G)yOrWw5VqrehT9>cJ#n3esbgy26 znct|tNZd9a^3iv9SE0OKLO0UyRP!%Y#uYPUE1x~T1b>ngn;^>3595869-FWp8VGnp z#aR(ofLoAbJRWGCTHqeR`!G!ttJ zV5$H)YVaaIOHpI_8~1ELuP{b0D@O0zK{0yfgV%x{;0w?f{=!tuD7%YMb_dPwG|D1n zqa&CiqeV2zBUtHKbuX!jx?q&dU`!KoD>w>j=JRhL2`iGfw@P2afei}lhxb!^ ze{x+xvB{6|Q~Q$(`B{G+(tc#KACxFbSb$GDy0;@bmDjP{>Z9lPQ8UQ(|kkkd=zrykXp7f6EY_0iLiRvw*Eibhg$*c#M zY=ZH};qeJoJ{6Jc3fuUT%WU+Rqbw}Q-*-C;vm-zBH9Nvr zbS0hQ|L_-tDw4It>W-6a>lgV1x>a)?=`s5R6w*73g=dy?;ub0^kW}m48R*FYSc9#M zjml@dM5>{q2m!j=IS3Y=>* zCybw;m$EvNHa5@-%w?lrklOh33`1tiVt(4~Wlwj9H9Wj^TZDsL3I-;#tB)?D^4$01h@J(mQz>l3FILg2{fFu#y>I z=C6zFkDv5^H*@DSuqVf%uTUUxP)3L(?VRdVz^xxi0T{Hm^Fn?|?6G`V_P_a7KbOpeMs|cg zxlA`cghX)fvKS5Bz)on*euy~i7iF%qbAmoO#xfrT_8_#zyHL_pG#xoFvLKv0Ch~rr zg{5C6`Yet5m@FLyma3l=xrX*XLA-M7G+0lMO3E+P_Gop(PAFDQOxNz+`kd7Lag^4z zRM2@{wAfUO->##8aQ+7t;J?evj=Mc>k{Gaw@c8~2sjazHVt`mB+BAMa2s~sMt56GG zrWwYSP%R{{!k#3rZu8_|qcS<+nGX_i>(?pv0|_G&SV+d4Xc-dqcqgj(5RAQpaVg1( zPD7V!b)x$YtFseLy@4XaM8<4(z?Hrey-Qtt&o>;%{+kp1^?DtgD7>#Yk^0GWxs`#~ zSa$O`1jYP?E>?Y-xER0GjsHM+x_q^pO(Q!^G!=IMArB=64LBGyd(8shm?kfri_lH6e z@h&#!263??lv*278-X?$W<3|1{frR!*f5@}81oEc2{5K`u?I(`aIw1i*Wf9M{*}Xf zEUspbh8UL)GmEqLTK(%pxzRwhNMqgEAl2bI$|vSu4ThxluUj$X`2Ka@YjyB1w@>Z< z)f;J3z**>D6S3j|Mr-x2&ak6E6Z5ZM_aj>||C$D;7FqpW|5`|&4(w&x5Ox^G?3jNM z2=<{-74Pq2wGPW6ub2DA+#8oa>xvY#K3l_~dTH^{&ncj& zJ0JED?_c5T#J{dlYHv;gwGi3_{Hw=PLf~M-_(!=ESAV7$(}6LCe|5Y5AN$vCwxeX218^2C`xeop{A**)(+K72+ zz**>DM|20yNa*!UD&NMeH-cb0bH0}`@eANH=Ns9aJja}`-_dH>9LfIH;MRhYNOr#2 zSI`o?!Hqxx=X>lZalTW_eCK-y_h#$}-F;!u`4n@^`3^hsf9iajyvq*7vzw#;hzHM% z@mV@SSo-0DnDY(kNcm^HgdEfDHkR@WZEd9<^+y?8XphDeMbw=(SLzDsQVm>h3KWwvVtKKm^r}sH;%Ei#V|Kjep}ifPFys3lACn~BHxC7r zDa-uZc}sC5bhT0|Bej)i17(UB(PrCYg5p5K_=I8{Zx~-~24GzfU{B&Qe_e4)slP{8 zfY2|Ju=;CI!@yh${khiY9P1^q5h zi(R$Y;vOMI{HSxTHZnp{fY%PxY06x>)a8kP#ZJ-zt4B9-b zn%`s?`zppG4dWnSG{wvSzSusK?@uZ8QOMge?rA~!_-=IoG@L>oBjhT9TJsa*d)>4t&We2MkZ$z=`F4N-M4@zA}tGif1=O3w{g<3q~ zUGg7wm%z+?ElL`6=H;TrdP?nGBxvpcw1HQN%+TfxHIpX|-p8vIV%&W zq{oV}b``!-au2F6=4d*6VLt$wLDHr`l#+p_%kXQOZU~z)O)q3^BxCXG;IAo$wIog7 z0zPD{6F_g;XDf$mmI!3jB-~7WnvhBt}->c0Ossg4xc-r_^?42o`Kz@)uZV zNg2C4Y~IPRIu!KdTzT%-PMkFuuj2(J-hYu+nExVP5X&4X+b_!VrHnIz_;q_3)}K&N zUfJBeS&Zny)7^02*6qYDAH4~h_+-%t$<*CyIf6@3$S?))b*5FXHu&`8`$L}nXV1ID;hbkM*; zwuEs$K17U@7MEn4!TdPIcu>GQDk?Dm1jd7=2-hjbgF$k!K&|7!U_@+xJm_5H#Sd8q zPwIMET}VO4vo*xMn-;&snFSX2g?afJn+3*P8jcS@V;?ECTS$%bX=uzFpBt)4R2atR zP>Ti;!}tcAX_w;xM{YUlWBJm2TxQ_5GMR~u&!fOv3VnRo6#UhmFMWiWim#8y`X%Ti ze|Pd~`nWN>4*FPDFQ|_R7sm9liR(9!j6pYo_4(I|3=Z61h5R6jRX>|PHr*q2)%$7P z%?f&xt^SPE;+ZSScGTShgNfJ22<*2*yl*SDKW+fElhG!ik726tQHC)`G5+!Uqj02aJ$6R#2Px;PV~ep2v$6QrmyS<6if&Ij&cdfW9T-rhK#5{%>D^!4L- z-1^OsG{8ZdvWYi(u7=yq5?5;3#EWkKlS6ebVZdOqESlK_LaM7(i0>M(U zjM!rb$YROOSNV%2nJ;tw=9ANd>ozxm}# zpQTYRk)@-+k{9{bwiZv@dL0a}$JLZysNufqO`TAzYT1OMh`L*6NZnJ-wXUUtKF8Lm zZK}m@ms3F4|AX=Po~HYM1H{v|DYXcxt+`4(&D)%4JW~kFHH=lL1uxSK<4UMDkVA>P zaR2Yp)ay5O^S@=KiT+o?TO!_J3Ij_{7fUwVIt^W_)&K63y9fN_36@K%;J;WZWO>$9 zOlyMvH{dMa|KvG>v-(N^Wy)PW}9mO2;ox@xFPkpDT zb2rtFt=mWI zzC;~BH`~h0YArstlmf#2T2Ms1@4R!7_)d{hJB!rrMH|S^^PN?93dY@RJ?Ce7Gld}HV z$4ex<^-l~Wej@SBHnqb!LZD9TXNeZb#hA9|kfOJKrVvqg^JWZLf%VTLsgg*>57(lj zorj1_KiXTB)&|9@b4{V6r%By7tJ_mSU$YgR9h?bc{quE_#QG<)9ABZj{&|5Yba$mz zMrte31_~81qRqDHg5r6@_=I8{Zx~;NZ(7>15MrtG`sZ^X^b01`0sRdFb1C%qR)d}D zZ`FD1n(1#=?*#oF{Z~ML?``?p`eUDh5k%HM|3!+P{uCnW-uOLUf8TT64EO(EgN|Nb zA|f2Wm+Ef_idEN|{$80Pbsem(kAjY|RkyBMY_XUmvHl5jjMv{u{Y8JvmD-}Aptc9v z1oU@;8psI4_&q1jk(ca|TzBoXMz}

vUI=`lM$B|IVY@+h_1- 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[i]).encode('UTF-8') + pvV.push_back( py_string ) + elif isinstance(pv[i], bytes): + pvV.push_back( (pv[i]).encode('utf8') ) + else: + print ("Unknown type in {}".format(_METHOD_)) + try: + status=self._c_cafe.openV(pvV, handleV) + except RuntimeError as e: + if isinstance (e.args, tuple): + if 'CAFEException' in (e.args[0]): + _cyCafeException = CyCafeException(_type='cafe', _source=_METHOD_, \ + _ec=ECA_ALLOCMEM, _et=self.cs.code(ECA_ALLOCMEM), _ei=self.cs.info(ECA_ALLOCMEM)) + raise Exception(_cyCafeException) + else: + raise Exception("{} {} {}".format(self.exString, _METHOD_, e.what())) + + return handleV + + elif not isinstance(pv, (bytes,str)): + + raise Exception("{} {} {}".format(self.exString, _METHOD_, \ + "Input argument, pv, should be ")) + + cdef unsigned int handle=0 + + try: + status=self._c_cafe.open(pv, handle) + except RuntimeError as e: + if isinstance (e.args, tuple): + if 'CAFEException' in (e.args[0]): + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_, _handle=handle, _pv=pv, \ + _ec=ECA_ALLOCMEM, _et=self.cs.code(ECA_ALLOCMEM), _ei=self.cs.info(ECA_ALLOCMEM)) + raise Exception(_cyCafeException) + else: + raise Exception("{} {} {}".format(self.exString, _METHOD_, e.what())) + + #print ("******************** HANDLE *******", handle); + + return handle + + ################################################################################## + def openNoWait(self): + self._c_cafe.channelOpenPolicy.setFlushSendBufferKind(WITH_PEND_EVENT) + self._c_cafe.channelOpenPolicy.setWhenToFlushSendBuffer(FLUSH_DESIGNATED_TO_CLIENT) + return + + def openPrepare(self): + self._c_cafe.channelOpenPolicy.setFlushSendBufferKind(WITH_PEND_EVENT) + self._c_cafe.channelOpenPolicy.setWhenToFlushSendBuffer(FLUSH_DESIGNATED_TO_CLIENT) + return + + def openGroupPrepare(self): + self._c_cafe.channelOpenGroupPolicy.setFlushSendBufferKind(WITH_PEND_EVENT) + self._c_cafe.channelOpenGroupPolicy.setWhenToFlushSendBuffer(FLUSH_DESIGNATED_TO_CLIENT) + return + + def setOpenDefaultPendTime(self, double timeout): + return self._c_cafe.channelOpenPolicy.setDefaultTimeout(timeout) + + def getOpenDefaultPendTime(self): + return self._c_cafe.channelOpenPolicy.getDefaultTimeout() + + + ################################################################################## + def openNow(self): + self._c_cafe.channelOpenPolicy.flushSendBufferNow() + self._c_cafe.channelOpenPolicy.setWhenToFlushSendBuffer(FLUSH_NOW) + self._c_cafe.channelOpenPolicy.setFlushSendBufferKind(WITH_PEND_EVENT) + return + + ################################################################################## + def openNowAndWait(self, double timeout): + self._c_cafe.channelOpenPolicy.setTimeout(timeout) + self._c_cafe.channelOpenPolicy.flushSendBufferNow() + #reset + self._c_cafe.channelOpenPolicy.setWhenToFlushSendBuffer(FLUSH_NOW) + self._c_cafe.channelOpenPolicy.setFlushSendBufferKind(WITH_PEND_EVENT) + self._c_cafe.channelOpenPolicy.setTimeoutToDefault() + return + + ################################################################################## + + ################################################################################## + def openGroupNowAndWait(self, double timeout): + self._c_cafe.channelOpenGroupPolicy.setTimeout(timeout) + self._c_cafe.channelOpenGroupPolicy.flushSendBufferNow() + #reset + self._c_cafe.channelOpenGroupPolicy.setWhenToFlushSendBuffer(FLUSH_NOW) + self._c_cafe.channelOpenGroupPolicy.setFlushSendBufferKind(WITH_PEND_EVENT) + self._c_cafe.channelOpenGroupPolicy.setTimeoutToDefault() + return + + ################################################################################## + + def openMonitorPrepare(self): + self._c_cafe.channelMonitorPolicy.setFlushSendBufferKind(WITH_FLUSH_IO) + self._c_cafe.channelMonitorPolicy.setWhenToFlushSendBuffer(FLUSH_DESIGNATED_TO_CLIENT) + return + + + ################################################################################## + def openMonitorNow(self): + self._c_cafe.channelMonitorPolicy.flushSendBufferNow() + #reset + self._c_cafe.channelMonitorPolicy.setWhenToFlushSendBuffer(FLUSH_NOW) + self._c_cafe.channelMonitorPolicy.setFlushSendBufferKind(WITH_FLUSH_IO) + time.sleep(0.1) + return + + ################################################################################## + + + ################################################################################## + def getMonitorWhenToFlushSendBuffer(self): + return self._c_cafe.channelMonitorPolicy.getWhenToFlushSendBuffer() + + + ################################################################################## + + + ################################################################################## + def openMonitorNowAndWait(self, double timeout): + self._c_cafe.channelMonitorPolicy.setTimeout(timeout) + self._c_cafe.channelMonitorPolicy.flushSendBufferNow() + time.sleep(timeout) + #reset + self._c_cafe.channelMonitorPolicy.setWhenToFlushSendBuffer(FLUSH_NOW) + self._c_cafe.channelMonitorPolicy.setFlushSendBufferKind(WITH_FLUSH_IO) + return + + ################################################################################## + + def ca_pend_event(self, double timeout): + self._c_cafe._ca_pend_event(timeout) + return + + def ca_pend_io(self, timeout): + self._c_cafe._ca_pend_io(timeout) + return + + def ca_poll(self): + self._c_cafe._ca_poll() + return + + def ca_flush_io(self): + self._c_cafe._ca_flush_io() + return + + ################################################################################## + def setChannelRequestPolicyGet(self, handlePV, ChannelWhenToFlushSendBufferPolicyKind when, \ + ChannelWaitForResponsePolicyKind wait, ChannelRequestPolicyKind method, \ + object cb=None): + cdef str _METHOD_="setChannelRequestPolicyGet" + + if isinstance(handlePV, (int,long)) == 1: + handle=handlePV + elif isinstance(handlePV, (str)) == 1: + handle=self.checkForHandle(handlePV) + else: + raise Exception("{} {} {}".format(self.exString, _METHOD_, \ + "First Input argument should be if handle, else if PV")) + + global py_cb_handle_get + + cdef ChannelRequestPolicy cp + self.ph.getChannelRequestPolicyGet(handlePV, cp) + if when: + cp.setWhenToFlushSendBuffer(when) + if wait: + cp.setWaitKind(wait) + if method: + cp.setMethodKind(method) + if cb: + py_cb_handle_get=cb + cp.setPyHandlerGet() #forces when=WITH_CALLBACK_USER_SUPPLIED + + self.ph.setChannelRequestPolicyGet(handlePV, cp) + return + ################################################################################## + + ################################################################################## + def setCallbackGet(self, handlePV, object cb=None): + + cdef str _METHOD_="setCallbackGet" + + cdef ChannelRequestPolicy cp + self.ph.getChannelRequestPolicyGet(handlePV, cp) + + if isinstance(handlePV, (int,long)) == 1: + handle=handlePV + elif isinstance(handlePV, (str)) == 1: + handle=self.checkForHandle(handlePV) + else: + raise Exception("{} {} {}".format(self.exString, _METHOD_, \ + "First input argument should be if handle, else if PV")) + + global py_cb_handle_get + if cb: + py_cb_handle_get=cb + cp.setPyHandlerGet() #forces when=WITH_CALLBACK_USER_SUPPLIED + else: + cp.setMethodKind(WITH_CALLBACK_DEFAULT) + + self.ph.setChannelRequestPolicyGet(handlePV, cp) + return + ################################################################################## + + + ################################################################################## + def setCallbackPut(self, handlePV, object cb=None): + + cdef str _METHOD_="setCallbackPut" + + cdef ChannelRequestPolicy cp + self.ph.getChannelRequestPolicyPut(handlePV, cp) + + if isinstance(handlePV, (int,long)) == 1: + handle=handlePV + elif isinstance(handlePV, (str)) == 1: + handle=self.checkForHandle(handlePV) + else: + raise Exception("{} {} {}".format(self.exString, _METHOD_, \ + "First input argument, should be if handle, else if PV")) + + global py_cb_handle_put + if cb: + py_cb_handle_put=cb + cp.setPyHandlerPut() #forces when=WITH_CALLBACK_USER_SUPPLIED + else: + cp.setMethodKind(WITH_CALLBACK_DEFAULT) + + self.ph.setChannelRequestPolicyPut(handlePV, cp) + return + ################################################################################## + + ################################################################################## + def setTimeout(self, timeout): + return self.ph.setTimeout(timeout) + ################################################################################## + + ################################################################################## + def getTimeoutGet(self): + cdef double minValue,p,g + minValue=0 + p=0 + g=0 + self.ph.getTimeoutMin(p,g) + minValue=g + self.ph.getTimeoutMax(p,g) + if (g < minValue): + minValue=g + return minValue + ################################################################################## + + + ################################################################################## + def getTimeoutPut(self): + cdef double minValue,p,g + minValue=0 + p=0 + g=0 + self.ph.getTimeoutMin(p,g) + minValue=p + self.ph.getTimeoutMax(p,g) + if (p < minValue): + minValue=g + return minValue + ################################################################################## + + + ################################################################################## + def setSelfGoverningTimeout(self, bint b): + return self.ph.setSelfGoverningTimeout(b) + ################################################################################## + + ################################################################################## + # Synchronous Groups + ################################################################################## + def setSGTimeout(self, double timeout): + return self.ph.setSGTimeout(timeout) + ################################################################################## + + ################################################################################## + def getSGTimeoutGet(self): + cdef double minValue,p,g + minValue=0 + p=0 + g=0 + self.ph.getSGTimeoutMin(p,g) + minValue=g + self.ph.getSGTimeoutMax(p,g) + if (g < minValue): + minValue=g + + return minValue + ################################################################################## + + ################################################################################## + def getSGTimeoutPut(self): + cdef double minValue,p,g + minValue=0 + p=0 + g=0 + self.ph.getSGTimeoutMin(p,g) + minValue=p + self.ph.getSGTimeoutMax(p,g) + if (p < minValue): + minValue=p + + return minValue + ################################################################################## + + ################################################################################## + def setSGSelfGoverningTimeout(self, bint b): + cdef PolicyHelper ph + return ph.setSGSelfGoverningTimeout(b) + ################################################################################## + + ################################################################################## + def attachContext(self, handlePV): + cdef str _METHOD_="attachContext" + + cdef unsigned int handle=0 + if isinstance(handlePV, (int,long)) == 1: + return self._c_cafe.attachContextByHandle(handlePV) + elif isinstance(handlePV, (str)) == 1: + return self._c_cafe.attachContextByPVName(handlePV) + else: + raise Exception("{} {} {}".format(self.exString, _METHOD_, \ + "First input argument, should be if handle, else if PV")) + + + ################################################################################## + + ################################################################################## + def loadCollectionsFromXML(self, const char * fileName): + with nogil: + self._c_cafe.loadCollectionsFromXML(fileName) + return + ################################################################################## + ################################################################################## + def loadGroupsFromXML(self, const char * fileName): + with nogil: + self._c_cafe.loadGroupsFromXML(fileName) + return + ################################################################################## + + def devicePositionMap(self, const char * collectionName): + + p=[] + d=[] + cdef map[float, string] mmfs + cdef map[float, string].iterator it + self._c_cafe.devicePositionMap(collectionName, mmfs) + it= mmfs.begin() + tup=() #tuple + while it != mmfs.end(): + tup=deref(it) + + p.append(tup[0]) + d.append(tup[1]) + inc(it) + return d,p + + + def devicePositionV(self, const char * collectionName): + cdef str _METHOD_="devicePositionV(self, const char * collectionName)" + #p=[] + #d=[] + cdef vector[string] dev + cdef vector[float] pos + status=self._c_cafe.devicePositionV(collectionName, dev, pos) + + if status != ICAFE_NORMAL: + raise Exception("{} {} {} {} {} {}".format(self.exString, _METHOD_, \ + "status=", status, self.cs.code(status), self.cs.code(status) )) + + + #for i in range (0, dev.size()): + #d.append(dev[i]) + #p.append(pos[i]) + return dev, pos + + + + ################################################################################## + def groupList(self): + cdef vector[string] gList + #conservative guess + gList.reserve(36) + + self._c_cafe.groupList(gList) + + #Place in list to avoid this warning: + # warning: comparison between signed and unsigned integer expressions + #gl=[] + #for i in range (0, len(gList)): + # gl.append(gList[i]) + return gList + ################################################################################## + + + def getMonitorIDInCallback(self, handle): + return self.hh.getUsrArgsAsUInt(handle) + + def getDataTypeInCallback(self, handle): + return self.hh.getDataTypeCB(handle) + + def getDbrDataTypeInCallback(self, handle): + return self.hh.getDbrDataTypeCB(handle) + + def getDbrBaseInCallback(self, handle): + return self.hh.getCafeDbrTypeCB(handle) + + ################################################################################## + def getHandlesFromWithinGroup(self, gHandleName): + + cdef str _METHOD_="getHandlesFromWithinGroup(gHandleName)" + + cdef unsigned int groupHandle=0 + if isinstance(gHandleName, (int,long)) == 1: + groupHandle=gHandleName + elif isinstance(gHandleName, (str)) == 1: + groupHandle=self.hh.getGroupHandleFromGroupName(gHandleName) + else: + raise Exception("{} {} {}".format(self.exString, _METHOD_, \ + "First input argument, should be if group handle, else if group name")) + + cdef vector[unsigned int] hList + hList=self.hh.getHandlesFromWithinGroupV(groupHandle) + return hList + ################################################################################## + + + + ################################################################################## + def close(self, handlePV): + cdef str _METHOD_="close" + cdef unsigned int handle=0 + if isinstance(handlePV, (int,long)) == 1: + handle=handlePV + elif isinstance(handlePV, (str)) == 1: + handle=self.checkForHandle(handlePV) + else: + raise Exception("{} {} {}".format(self.exString, _METHOD_, \ + "First input argument, should be if handle, else if PV")) + + cdef int stat + with nogil: + stat=self._c_cafe.close(handle) + + return stat + + ################################################################################## + def closeChannels(self): + cdef int stat + with nogil: + stat=self._c_cafe.closeChannels() + return stat + + + ################################################################################## + def closeHandles(self, list handleList): + cdef str _METHOD_="closeHandlesV" + if isinstance(handleList[0], (str)): + handleList=self.checkForHandleList(handleList) + elif not isinstance(handleList[0], (int, long)): + raise Exception("{} {} {}".format(self.exString, _METHOD_, \ + "First input argument, should be a 'list' of if handles or if PVs")) + + #Do this only to avoid compiler warnings + cdef vector[unsigned int] v + for i in range(0, len(handleList)): + v.push_back(handleList[i]) + cdef int stat + with nogil: + stat=self._c_cafe.closeHandlesV(v) + return stat + + ################################################################################## + def allConnected(self): + return self._c_cafe.allChannelsConnected() + + ################################################################################## + def isConnected(self, handlePV): + cdef str _METHOD_="isConnected" + + cdef unsigned int handle=0 + if isinstance(handlePV, (int,long)) == 1: + handle=handlePV + elif isinstance(handlePV, (str)) == 1: + handle=self.checkForHandle(handlePV) + else: + raise Exception("{} {} {}".format(self.exString, _METHOD_, \ + "First input argument, should be if handle, else if PV")) + return self._c_cafe.isChannelConnected(handle) + + ################################################################################## + def printDisconnected(self): + return self._c_cafe.printDisconnectedHandles() + + def printDisconnectedHandles(self): + return self._c_cafe.printDisconnectedHandles() + + ################################################################################## + def printHandles(self): + return self._c_cafe.printHandles() + + ################################################################################## + def printHandle(self, handlePV): + cdef str _METHOD_="printHandle" + cdef unsigned int handle=0 + if isinstance(handlePV, (int,long)) == 1: + handle=handlePV + elif isinstance(handlePV, (str)) == 1: + handle=self.checkForHandle(handlePV) + else: + raise Exception("{} {} {}".format(self.exString, _METHOD_, \ + "First input argument, should be if handle, else if PV")) + return self._c_cafe.printHandle(handle) + ################################################################################## + + ################################################################################## + def printHandlesV(self, list handleList): + cdef str _METHOD_="printHandlesV" + if isinstance(handleList[0], (str)): + handleList=self.checkForHandleList(handleList) + elif not isinstance(handleList[0], (int, long)): + raise Exception("{} {} {}".format(self.exString, _METHOD_, \ + "First input argument, should be a 'list' of if handles or if PVs")) + + #Do this only to avoid compiler warnings + cdef vector[unsigned int] v + for i in range(0, len(handleList)): + v.push_back(handleList[i]) + return self.hh.printHandlesV(v) + ################################################################################## + + ################################################################################## + def getDisconnectedHandles(self): + cdef vector[unsigned int] dhV + cdef vector[string] pvV + self.hh.getDisconnectedHandles(dhV,pvV) + return dhV,pvV + ################################################################################## + + + ################################################################################## + def getHandles(self): + cdef vector[unsigned int] dhV + cdef vector[string] pvV + self.hh.getHandles(dhV,pvV) + return dhV,pvV + ################################################################################## + + + ################################################################################## + def getHandleStates(self): + cdef vector[unsigned int] dhV + cdef vector[string] pvV + cdef vector[unsigned short] stateV + self.hh.getHandleStates(dhV,pvV, stateV) + return dhV,pvV,stateV + ################################################################################## + + + ################################################################################## + def getStatusSeverity(self, int statusCode): + return self._c_cafe.getCafeStatusSeverity().message(statusCode) + + ################################################################################## + def getStatusCodeAsText(self, int statusCode): + return self.cs.code(statusCode) + + ################################################################################## + def getStatusCodeAsString(self, int statusCode): + return self.cs.code(statusCode) + + ################################################################################## + def getStatusInfo(self, int statusCode): + return self.cs.info(statusCode) + + ################################################################################## + def getStatusMsg(self, int statusCode): + return self.cs.message(statusCode) + + ################################################################################## + def getStatus(self, handlePV): + cdef str _METHOD_="getStatus" + + cdef unsigned int handle=0 + if isinstance(handlePV, (int,long)) == 1: + handle=handlePV + elif isinstance(handlePV, (str)) == 1: + handle=self.checkForHandle(handlePV) + else: + raise Exception("{} {} {}".format(self.exString, _METHOD_, \ + "First input argument, should be if handle, else if PV")) + return self.hh.getStatus(handle) + + ################################################################################## + def getAlarmStatusSeverity(self,handlePV): + cdef str _METHOD_="getAlarmStatusSeverity" + cdef unsigned int handle=0 + if isinstance(handlePV, (int,long)) == 1: + handle=handlePV + elif isinstance(handlePV, (str)) == 1: + handle=self.checkForHandle(handlePV) + else: + raise Exception("{} {} {}".format(self.exString, _METHOD_, \ + "First input argument, should be if handle, else if PV")) + + cdef short aStatSev[2] + status=self.hh.getAlarmStatusSeverity(handle,aStatSev) + return aStatSev[0], aStatSev[1] + + ################################################################################## + def getTimeStamp(self,handlePV): + cdef str _METHOD_="getTimeStamp" + cdef unsigned int handle=0 + if isinstance(handlePV, (int,long)) == 1: + handle=handlePV + elif isinstance(handlePV, (str)) == 1: + handle=self.checkForHandle(handlePV) + else: + raise Exception("{} {} {}".format(self.exString, _METHOD_, \ + "First input argument, should be if handle, else if PV")) + + cdef HandleHelper hh + + hh._etsNorm=self.hh.getEpicsTimeStampAsUInt32(handle) + + cpdef ll=[] + ll.append(hh._etsNorm.secPastEpoch) + ll.append(hh._etsNorm.nsec) + #print ("TimeStamp ", ll) + return ll + + ################################################################################## + def getTimeStampAsDate(self,handlePV): + cdef str _METHOD_="getimeStampAsDate" + cdef unsigned int handle=0 + if isinstance(handlePV, (int,long)) == 1: + handle=handlePV + elif isinstance(handlePV, (str)) == 1: + handle=self.checkForHandle(handlePV) + else: + raise Exception("{} {} {}".format(self.exString, _METHOD_, \ + "First input argument, should be if handle, else if PV")) + + cdef HandleHelper hh + cpdef ld=[] + + hh._etsDate =self.hh.getEpicsTimeStampAsDate(handle) + ld.append(hh._etsDate.year ) + ld.append(hh._etsDate.mon ) + ld.append(hh._etsDate.day ) + ld.append(hh._etsDate.hour ) + ld.append(hh._etsDate.min ) + ld.append(hh._etsDate.sec ) + ld.append(hh._etsDate.nsec ) + #print ("TimeStampAsDate ", ld) + return ld + + ################################################################################## + ### Allow user to choose whether or not to open ##### + cpdef checkForHandle(self, str pv, bint force=True): + cdef unsigned int _handle=0; + _handle=self.hh.getHandleFromPV(pv) + if _handle == 0: + if (force): + return self.open(pv) + else: + return 0 + else: + return _handle + ################################################################################## + + + ################################################################################## + cpdef checkForHandleList(self, list pvList, bint force=True): + + cdef unsigned int nToOpen=0 + + handleList=[] + cdef unsigned int _handle=0 + for i in range(0, len(pvList)): + _handle=self.hh.getHandleFromPV(pvList[i]) + if _handle == 0: + if (force): + nToOpen=nToOpen+1; + self.openNoWait() + _handle=self.open(pvList[i]) + handleList.append(_handle) + else: + handleList.append(_handle) + if nToOpen > 0: + self.openNowAndWait(2.0+nToOpen*0.001) + return handleList + ################################################################################## + + + ################################################################################## + cpdef checkForGroupHandle(self, str gName, bint force=True): + cdef unsigned int _ghandle=0; + _ghandle=self.hh.getGroupHandleFromGroupName(gName) + if _ghandle == 0: + if (force): + return self.groupOpen(gName) + else: + return 0 + else: + return _ghandle + ################################################################################## + + + ################################################################################## + def getPVNameFromHandle(self, int h): + return self._c_cafe.getPVFromHandle(h) + ################################################################################## + + ################################################################################## + def getHandleFromPVName(self, str name): + #if type(name) is unicode: + # py_string = (name).encode('UTF-8') + # return self._c_cafe.getHandleFromPV(py_string) + return self._c_cafe.getHandleFromPV(name) + ################################################################################## + + ################################################################################## + def getChannelInfo(self, handlePV): + cdef str _METHOD_="getChannelInfo" + cdef unsigned int handle=0 + if isinstance(handlePV, (int,long)): + handle=handlePV + elif isinstance(handlePV, (str)): + handle=self.checkForHandle(handlePV, force=True) + else: + raise Exception("{} {} {}".format(self.exString, _METHOD_, \ + "First input argument should be if handle, else if PV")) + + if handle == 0: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + self._c_cafe.printStatusMessage(ECAFE_INVALID_HANDLE) + raise Exception("EXCEPTION RAISED in PyCafe def getChannelInfo") + + cdef ChannelRegalia cr + status=self._c_cafe.getChannelInfo(handle,cr) + + if status !=ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + self._c_cafe.printStatusMessage(status) + raise Exception("EXCEPTION RAISED in PyCafe def getChannelInfo. Status = %d" %status) + + #cdef channelInfo ci=channelRegaliaToStruct(cr) + #ci.channelID=self._c_cafe.getChannelIDAsString(cr.getChannelID()) + #do hex(cr.getChannelID()) to get channelId in hex form + + return channelRegaliaToStruct(cr) + ################################################################################## + + def getChannelList(self, list listStrings): + return self._c_cafe.getFromGlobalChannelList(listStrings) + + ################################################################################## + + + + + ################################################################################## + def getWFAsString(self, handlePV, bint cache=False): + cdef str _METHOD_="getWFAsString" + cdef unsigned int handle=0 + if isinstance(handlePV, (int,long)) == 1: + handle=handlePV + elif isinstance(handlePV, (str)) == 1: + handle=self.checkForHandle(handlePV) + else: + raise Exception("{} {} {}".format(self.exString, _METHOD_, \ + "First input argument should be if handle, else if PV")) + + cdef string strWF + if (cache == True): + status=self._c_cafe.getWFAsStringCache(handle, strWF) + else: + with nogil: + status=self._c_cafe.getWFAsString(handle, strWF) + + if status !=ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + self._c_cafe.printStatusMessage(status) + raise Exception("EXCEPTION RAISED in PyCafe def %s. Status = %d" %_METHOD_,status) + + return strWF + + ################################################################################## + + + ################################################################################## + def getWFAsStringCache(self, handlePV): + return self.getWFAsString(handlePV, cache=True) + + ################################################################################## + + + + + ################################################################################## + + def getEnumFromString(self, handlePV, str enumString): + cdef str _METHOD_="getEnumFromString" + cdef unsigned int handle=0 + if isinstance(handlePV, (int,long)) == 1: + handle=handlePV + elif isinstance(handlePV, (str)) == 1: + handle=self.checkForHandle(handlePV) + else: + raise Exception("{} {} {}".format(self.exString, _METHOD_, \ + "First input argument should be if handle, else if PV")) + enumValue=self.hh.getEnumFromString(handle, enumString) + if enumValue == -1: + raise Exception("{} {} {} {} {}".format(self.exString, _METHOD_, \ + ": ENUM string value:", enumString, "not recognized! ")) + return enumValue + + ################################################################################## + + def getStringFromEnum(self, handlePV, int enumValue): + cdef str _METHOD_="getStringFromEnum" + cdef unsigned int handle=0 + if isinstance(handlePV, (int,long)) == 1: + handle=handlePV + elif isinstance(handlePV, (str)) == 1: + handle=self.checkForHandle(handlePV) + else: + raise Exception("{} {} {}".format(self.exString, _METHOD_, \ + "First input argument should be if handle, else if PV")) + return self.hh.getStringFromEnum(handle, enumValue) + + ################################################################################## + + def loadSFGroups(self): + cdef bytes py_string + py_string = ('VA').encode('UTF-8') + #cdef vector[string] gnV + #gnV.push_back(py_string) + #return self._c_cafe.loadSFGroups(gnV[0]) + return self._c_cafe.loadSFGroups(py_string) + + def loadSFGroupsWithBase(self, str VA): + cdef bytes py_string + py_string = (VA).encode('UTF-8') + return self._c_cafe.loadSFGroups(py_string) + #return self._c_cafe.loadSFGroups(VA) + + + + + ################################################################################## + def setDbrBase(self, handlePV, DBR_TYPE dbrBase): + cdef str _METHOD_="setDbrBase" + cdef unsigned int handle=0 + if isinstance(handlePV, (int,long)) == 1: + handle=handlePV + elif isinstance(handlePV, (str)) == 1: + handle=self.checkForHandle(handlePV) + else: + raise Exception("{} {} {}".format(self.exString, _METHOD_, \ + "First input argument should be if handle, else if PV")) + + #Print Warning Message + if dbrBase > DBR_TIME: + print ("WARNING: PyCafe def setDbrBase(handle/PV, DBR_TYPE)") + print ("Allowed DBR_TYPEs are DBR_PLAIN (0), DBR_STS(1), DBR_TIME(2)") + print ("The value entered was", dbrBase, "hence assuming DBR_TIME" ) + dbrBase=DBR_TIME + + return self.hh.setCafeDbrType(handle, dbrBase) + ################################################################################## + + + ################################################################################## + def getDbrBase(self, handlePV): + cdef str _METHOD_="getDbrBase" + cdef unsigned int handle=0 + if isinstance(handlePV, (int,long)) == 1: + handle=handlePV + elif isinstance(handlePV, (str)) == 1: + handle=self.checkForHandle(handlePV) + else: + raise Exception("{} {} {}".format(self.exString, _METHOD_, \ + "First input argument, should be if handle, else if PV")) + + cdef DBR_TYPE _cafeDbrType=DBR_PLAIN + cdef int status=self.hh.getCafeDbrType(handle,_cafeDbrType) + + return _cafeDbrType + + ################################################################################## + + + ################################################################################## + def setGetCacheWaitPolicy(self, handlePV, ChannelGetCacheWaitPolicyKind wpk): + cdef str _METHOD_="setGetCacheWaitPolicy" + cdef unsigned int handle=0 + if isinstance(handlePV, (int,long)) == 1: + handle=handlePV + elif isinstance(handlePV, (str)) == 1: + handle=self.checkForHandle(handlePV) + else: + raise Exception("{} {} {}".format(self.exString, _METHOD_, \ + "First input argument should be if handle, else if PV")) + + #Print Warning Message + if wpk > GET_CACHE_WAIT: + print ("WARNING: PyCafe def setGetCacheWaitPolicy(handle/PV, ChannelGetCacheWaitPolicyKind)") + print ("Allowed ChannelGetCacheWaitPolicyKind are GET_CACHE_NO_CHECK (0), GET_CACHE_NO_WAIT (1), GET_CACHE_WAIT (2)") + print ("The value entered was", wpk, "hence assuming default value GET_CACHE_WAIT" ) + wpk=GET_CACHE_WAIT + + cdef ChannelGetCacheWaitPolicy channelGetCacheWaitPolicy + channelGetCacheWaitPolicy.setWaitKind(wpk) + + return self.ph.setChannelGetCacheWaitPolicy(handle,channelGetCacheWaitPolicy) + ################################################################################## + + ################################################################################## + def setGetCacheWaitPolicyAllHandles(self, ChannelGetCacheWaitPolicyKind wpk): + + #Print Warning Message + if wpk > GET_CACHE_WAIT: + print ("WARNING: PyCafe def setGetCacheWaitPolicyAllHandles(ChannelGetCacheWaitPolicyKind)") + print ("Allowed ChannelGetCacheWaitPolicyKind are GET_CACHE_NO_CHECK (0), GET_CACHE_NO_WAIT (1), GET_CACHE_WAIT (2)") + print ("The value entered was", wpk, "hence assuming default value GET_CACHE_WAIT" ) + wpk=GET_CACHE_WAIT + + cdef ChannelGetCacheWaitPolicy channelGetCacheWaitPolicy + channelGetCacheWaitPolicy.setWaitKind(wpk) + + return self.ph.setChannelGetCacheWaitPolicyAllHandles(channelGetCacheWaitPolicy) + ################################################################################## + + ################################################################################## + def setGetActionWhenMonitorPolicy(self, handlePV, ChannelGetActionWhenMonitorPolicyKind wmpk): + cdef str _METHOD_="setGetActionWhenMonitorPolicy" + cdef unsigned int handle=0 + if isinstance(handlePV, (int,long)) == 1: + handle=handlePV + elif isinstance(handlePV, (str)) == 1: + handle=self.checkForHandle(handlePV) + else: + raise Exception("{} {} {}".format(self.exString, _METHOD_, \ + "First input argument should be if handle, else if PV")) + + #Print Warning Message + if wmpk > GET_FROM_IOC: + print ("WARNING: PyCafe def setGetActionWhenMonitorPolicy(handle/PV, ChannelGetActionWhenMonitorPolicyKind)") + print ("Allowed ChannelGetActionWhenMonitorPolicyKind are GET_FROM_CACHE (0), GET_FROM_IOC (1)") + print ("The value entered was", wmpk, "hence assuming default value GET_FROM_IOC" ) + wmpk=GET_FROM_IOC + + cdef ChannelGetActionWhenMonitorPolicy channelGetActionWhenMonitorPolicy + channelGetActionWhenMonitorPolicy.setActionKind(wmpk) + + return self.ph.setChannelGetActionWhenMonitorPolicy(handle,channelGetActionWhenMonitorPolicy) + ################################################################################## + + + ################################################################################## + def setGetActionWhenMonitorPolicyAllHandles(self, ChannelGetActionWhenMonitorPolicyKind wmpk): + + #Print Warning Message + if wmpk > GET_FROM_IOC: + print ("WARNING: PyCafe def setGetActionWhenMonitorPolicyAllHandles(ChannelGetActionWhenMonitorPolicyKind)") + print ("Allowed ChannelGetActionWhenMonitorPolicyKind are GET_FROM_CACHE (0), GET_FROM_IOC (1)") + print ("The value entered was", wmpk, "hence assuming default value GET_FROM_IOC" ) + wmpk=GET_FROM_IOC + + cdef ChannelGetActionWhenMonitorPolicy channelGetActionWhenMonitorPolicy + channelGetActionWhenMonitorPolicy.setActionKind(wmpk) + + return self.ph.setChannelGetActionWhenMonitorPolicyAllHandles(channelGetActionWhenMonitorPolicy) + ################################################################################## + + ################################################################################## + def getNonBlocking(self, handlePV): + ################################################################################## + cdef str _METHOD_="getNonBlocking" + cdef unsigned int handle=0 + cdef int status + + if isinstance(handlePV, (int,long)) == 1: + handle=handlePV + elif isinstance(handlePV, (str)) == 1: + handle=self.checkForHandle(handlePV) + else: + raise Exception("{} {} {}".format(self.exString, _METHOD_, \ + "First input argument should be if handle, else if PV")) + with nogil: + status=self._c_cafe.getNonBlocking(handle) + + if status != ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + if handle == 0: + self._c_cafe.printStatusMessage(status) + else: + self._c_cafe.printStatus(handle, status) + if self.haveExceptions: + raise Exception("EXCEPTION RAISED in PyCafe def getNonBlocking. Status = %d" %status) + + return status + ################################################################################## + + ################################################################################## + def getStr(self, handlePV, object cb=None): + return self.get(handlePV,dt='str') + ################################################################################## + + ################################################################################## + def getInt(self, handlePV, object cb=None): + return self.get(handlePV, dt='int') + ################################################################################## + + ################################################################################## + def getFloat(self, handlePV, object cb=None): + return self.get(handlePV, dt='float') + ################################################################################## + + ################################################################################## + def get(self, handlePV, str dt='native'): + ################################################################################## + cdef str _METHOD_ = "get" + cdef unsigned int handle=0 + + if isinstance(handlePV, (int,long)) == 1: + handle=handlePV + elif isinstance(handlePV, (str)) == 1: + handle=self.checkForHandle(handlePV) + else: + raise Exception("{} {} {}".format(self.exString, _METHOD_, \ + "First input argument should be if handle, else if PV")) + + cdef int status + cdef long dtr=0 + status=self.hh.getDataTypeNative(handle, dtr) + + if status != ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + if handle == 0: + self._c_cafe.printStatusMessage(status) + else: + self._c_cafe.printStatus(handle, status) + if self.haveExceptions: + _cyCafeException = CyCafeException(_type='cafe', _source=_METHOD_,_handle=handle, _pv=self._c_cafe.getPVFromHandle(handle), \ + _ec=status, _et=self.cs.code(status), _ei=self.cs.info(status)) + raise Exception(_cyCafeException) + return None + + elif dtr in [CAFE_NO_ACCESS, CAFE_TYPENOTCONN]: + if self._c_cafe.isChannelConnected(handle) is False: + self._c_cafe.getChannelInfo(handle,self.channelInfo) + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + self._c_cafe.printStatus(handle,self.channelInfo.getCafeConnectionState() ) + if self.haveExceptions: + #raise Exception("EXCEPTION RAISED in PyCafe def get. \ +#Channel Not Connected, status = %d" %self.channelInfo.getCafeConnectionState()) + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_,_handle=handle, _pv=self._c_cafe.getPVFromHandle(handle), \ + _ec=self.channelInfo.getCafeConnectionState(), \ + _et=self.cs.code(self.channelInfo.getCafeConnectionState()), \ + _ei=self.cs.info(self.channelInfo.getCafeConnectionState())) + raise Exception(_cyCafeException) + + + return None + + #Likely to be superfluous + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + self._c_cafe.printStatus(handle,ICAFE_TYPENOTCONN) + if self.haveExceptions: + _cyCafeException = CyCafeException(type='cafe', _source=_METHOD_,_handle=handle, _pv=self._c_cafe.getPVFromHandle(handle), \ + _ec=ICAFE_TYPENOTCONN, _et=self.cs.code(ICAFE_TYPENOTCONN), _ei=self.cs.info(ICAFE_TYPENOTCONN)) + raise Exception(_cyCafeException) + return None + + #global py_cb_handle_get + #if cb: + #py_cb_handle_get=cb + #self.setChannelRequestPolicyGet(handle, wait=WAIT, when=FLUSH_NOW, method=WITH_CALLBACK_USER_SUPPLIED, pcb=True) + + cdef unsigned int dtcheck = dtr + dtcheck=getMatchedDataType(dt, dtr) + + + + if dtcheck in [CAFE_STRING]: + with nogil: + status=self._c_cafe.getString(handle, self.valStr) + if status==ICAFE_NORMAL: + return self.valStr + elif dtcheck in [CAFE_SHORT, CAFE_CHAR, CAFE_LONG]: + with nogil: + status=self._c_cafe.getLong(handle, self.valInt) + if status==ICAFE_NORMAL: + return self.valInt + elif dtcheck in [CAFE_FLOAT, CAFE_DOUBLE]: + with nogil: + status=self._c_cafe.getDouble(handle, self.valFloat) + + if status==ICAFE_NORMAL: + return self.valFloat + elif dtcheck==CAFE_ENUM: + #if enum, string taken as native + if self._c_cafe.isEnum(handle): + with nogil: + status=self._c_cafe.getString(handle, self.valStr) + if status==ICAFE_NORMAL: + return self.valStr + else: + with nogil: + status=self._c_cafe.getLong(handle, self.valInt) + if status ==ICAFE_NORMAL: + return self.valInt + else: + print ("This line in PyCafe def get should never appear!") + return None + + if status !=ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + if handle == 0: + self._c_cafe.printStatusMessage(status) + else: + self._c_cafe.printStatus(handle, status) + if self.haveExceptions: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_,_handle=handle, _pv=self._c_cafe.getPVFromHandle(handle), \ + _ec=status, _et=self.cs.code(status), _ei=self.cs.info(status)) + raise Exception(_cyCafeException) + return None + + + ################################################################################## + #END: def get(self, handlePV, dt) + ################################################################################## + + + ################################################################################## + def getIntList(self, handlePV): + return self.getList(handlePV, 'int') + + ################################################################################## + def getFloatList(self, handlePV): + return self.getList(handlePV, 'float') + + ################################################################################## + def getStrList(self, handlePV): + return self.getList(handlePV, 'str') + + ################################################################################## + def getList(self, handlePV, str dt='native'): + cdef str _METHOD_="getList(handlePV, str dt='native')" + + cdef unsigned int handle=0 + if isinstance(handlePV, (int,long)) == 1: + handle=handlePV + elif isinstance(handlePV, (str)) == 1: + handle=self.checkForHandle(handlePV) + else: + raise Exception("{} {} {}".format(self.exString, _METHOD_, \ + "First input argument should be if handle, else if PV")) + + + cdef int status + cdef long dtr=0 + + status=self.hh.getDataTypeNative(handle, dtr) + + if status != ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + if handle == 0: + self._c_cafe.printStatusMessage(status) + else: + self._c_cafe.printStatus(handle, status) + if self.haveExceptions: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_,_handle=handle, _pv=self._c_cafe.getPVFromHandle(handle), \ + _ec=status, _et=self.cs.code(status), _ei=self.cs.info(status)) + raise Exception(_cyCafeException) + + return [None] + + elif dtr in [CAFE_NO_ACCESS, CAFE_TYPENOTCONN]: + if self._c_cafe.isChannelConnected(handle) is False: + self._c_cafe.getChannelInfo(handle,self.channelInfo) + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + self._c_cafe.printStatus(handle,self.channelInfo.getCafeConnectionState() ) + if self.haveExceptions: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_,_handle=handle, _pv=self._c_cafe.getPVFromHandle(handle), \ + _ec=self.channelInfo.getCafeConnectionState(), _et=self.cs.code(self.channelInfo.getCafeConnectionState()),\ + _ei=self.cs.info(self.channelInfo.getCafeConnectionState())) + raise Exception(_cyCafeException) + return [None] + + #This paragraph should be superfluous + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + self._c_cafe.printStatus(handle,ICAFE_TYPENOTCONN) + if self.haveExceptions: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_,_handle=handle, _pv=self._c_cafe.getPVFromHandle(handle), \ + _ec=ICAFE_TYPENOTCONN, _et=self.cs.code(ICAFE_TYPENOTCONN), _ei=self.cs.info(ICAFE_TYPENOTCONN)) + raise Exception(_cyCafeException) + return [None] + + cdef unsigned int dtcheck = dtr + dtcheck=getMatchedDataType(dt, dtr) + + #print ("dtcheck", dtcheck) + + cdef unsigned int nelemNative =self.hh.getNelemNative (handle) + cdef unsigned int nelemClient =self.hh.getNelemClient (handle) + cdef unsigned int nelemRequest=self.hh.getNelemRequest(handle) + + + cdef unsigned int nelemMethod = nelemClient + + cdef dbr_string_t * valStringArray + cdef int * valIntArray + cdef double * valDoubleArray + + if dtcheck in [CAFE_STRING]: + + valStringArray = malloc( nelemMethod * sizeof(dbr_string_t)) + + with nogil: + status=self._c_cafe.getDbrStringArray(handle, valStringArray) + + ll=[] + for i in range(0,nelemMethod): + ll.append(valStringArray[i]) + free(valStringArray) + if status == ICAFE_NORMAL: + return ll + + elif dtcheck in [CAFE_SHORT, CAFE_CHAR, CAFE_LONG]: + + valIntArray = malloc( nelemMethod * sizeof(int)) + + with nogil: + status=self._c_cafe.getLongArray(handle, valIntArray) + + ll=[] + for i in range(0, nelemMethod): + ll.append(valIntArray[i]) + free(valIntArray) + if status == ICAFE_NORMAL: + return ll + + elif dtcheck in [CAFE_FLOAT, CAFE_DOUBLE]: + + valDoubleArray = malloc( nelemMethod * sizeof(double)) + + with nogil: + status=self._c_cafe.getDoubleArray(handle, valDoubleArray) + + ll=[] + for i in range(0, nelemMethod): + ll.append(valDoubleArray[i]) + free(valDoubleArray) + if status == ICAFE_NORMAL: + return ll + + elif dtcheck==CAFE_ENUM: + + #if enum, string taken as native + if self._c_cafe.isEnum(handle): + valStringArray = malloc( nelemMethod * sizeof(dbr_string_t)) + + with nogil: + status=self._c_cafe.getDbrStringArray(handle, valStringArray) + + ll=[] + for i in range(0,nelemMethod): + ll.append(valStringArray[i]) + free(valStringArray) + if status ==ICAFE_NORMAL: + return ll + else: + valIntArray = malloc( nelemMethod * sizeof(int)) + with nogil: + status=self._c_cafe.getLongArray(handle, valIntArray) + + ll=[] + for i in range(0,nelemMethod): + ll.append(valIntArray[i]) + free(valIntArray) + if status ==ICAFE_NORMAL: + return ll + #Will not happen; already covered above + elif dtcheck in [CAFE_NO_ACCESS,CAFE_TYPENOTCONN]: + print ("Channel", self._c_cafe.getPVFromHandle(handle), " not connected") + return None + else: + print ("This line in PyCafe def getAsList should never appear!") + return None + + + if status !=ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + if handle == 0: + self._c_cafe.printStatusMessage(status) + else: + self._c_cafe.printStatus(handle, status) + if self.withExceptions is False: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_,_handle=handle, _pv=self._c_cafe.getPVFromHandle(handle), \ + _ec=status, _et=self.cs.code(status), _ei=self.cs.info(status)) + raise Exception(_cyCafeException) + + return None + + + ################################################################################## + def getStrArray(self, handlePV, str art='memoryview'): + return self.getArray(handlePV, dt='str', art=art) + ################################################################################## + + ################################################################################## + def getIntArray(self, handlePV, str art='memoryview' ): + return self.getArray(handlePV, dt='int', art=art) + ################################################################################## + + ################################################################################## + def getFloatArray(self, handlePV, str art='memoryview'): + return self.getArray(handlePV, dt='float', art=art ) + ################################################################################## + + ################################################################################## + def getArray(self, handlePV, str dt='native', str art='memoryview'): + ################################################################################## + #Typed Memoryviews from K.W. Smith + #Cython has a C-level type the typed memoryview, that conceptually overlaps + #with the Python memoryiew and expands on it. A typed memory view is used to + #view (share) data from a buffer-producing object. + #A typed memoryview has a memory-view like interface and is easier to use than + #working with C-level buffers directly. And because a typed memoryview is designed + #to work with the buffer protocol it supports any buffer-producing object efficiently + #allowing sharing of data buffers without copying + #If we declare a typed memoryview with a single colon in each dimension's slot, + #the typed mv can acquire a buffer from an object if the same dimensionality and with + #either strided or contiguous packing. + #Declaring a C-contiguous typed memoryview: all dimensions except the last is specified + #with two colons followed by a literal 1. The mnemonic is that the last dimension has + #a unitary stride, i.e., is contiguous in memory, hence C contiguous + + cdef str _METHOD_="getArray" + + cdef unsigned int handle=0 + if isinstance(handlePV, (int,long)) == 1: + handle=handlePV + elif isinstance(handlePV, (str)) == 1: + handle=self.checkForHandle(handlePV) + else: + raise Exception("{} {} {}".format(self.exString, _METHOD_, \ + "First input argument should be if handle, else if PV")) + + cdef: + short * i16val + + int * ival + double * dval + float * fval + dbr_string_t * sval + cnp.int16_t [::1] mvShort #C-contiguous + int [::1] mvInt #C-contiguous + double [::1] mvDouble #C-contiguous + float [::1] mvFloat #C-contiguous + #str [:,::1] mvStr + cnp.ndarray arr + long dtr=0 + int status + #cvarray mvDoubleArray + + unsigned int i + unsigned int ij + array.array a + + cnp.uint8_t [::1] mvUInt8 #C-contiguous + cnp.int8_t [::1] mvInt8 #C-contiguous + cnp.uint16_t [::1] mvUInt16 #C-contiguous + cnp.int16_t [::1] mvInt16 #C-contiguous + cnp.uint32_t [::1] mvUInt32 #C-contiguous + cnp.int32_t [::1] mvInt32 #C-contiguous + cnp.uint64_t [::1] mvUInt64 #C-contiguous + cnp.int64_t [::1] mvInt64 #C-contiguous + #cnp.float16_t [::1] mvFloat16 #C-contiguous + cnp.float32_t [::1] mvFloat32 #C-contiguous + cnp.float64_t [::1] mvFloat64 #C-contiguous + + + + #cdef PVDataHolder pvd + + status=self.hh.getDataTypeNative(handle, dtr) + + if status != ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + if handle == 0: + self._c_cafe.printStatusMessage(status) + else: + self._c_cafe.printStatus(handle, status) + if self.haveExceptions: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_,_handle=handle, _pv=self._c_cafe.getPVFromHandle(handle), \ + _ec=status, _et=self.cs.code(status), _ei=self.cs.info(status)) + raise Exception(_cyCafeException) + + return [None] + + elif dtr in [CAFE_NO_ACCESS, CAFE_TYPENOTCONN]: + if self._c_cafe.isChannelConnected(handle) is False: + self._c_cafe.getChannelInfo(handle,self.channelInfo) + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + self._c_cafe.printStatus(handle,self.channelInfo.getCafeConnectionState() ) + if self.haveExceptions: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_,_handle=handle, _pv=self._c_cafe.getPVFromHandle(handle), \ + _ec=self.channelInfo.getCafeConnectionState(), _et=self.cs.code(self.channelInfo.getCafeConnectionState()),\ + _ei=self.cs.info(self.channelInfo.getCafeConnectionState())) + raise Exception(_cyCafeException) + return [None] + + #Likely to be superfluous + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + self._c_cafe.printStatus(handle,ICAFE_TYPENOTCONN) + if self.haveExceptions: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_,_handle=handle, _pv=self._c_cafe.getPVFromHandle(handle), \ + _ec=ICAFE_TYPENOTCONN, _et=self.cs.code(ICAFE_TYPENOTCONN), _ei=self.cs.info(ICAFE_TYPENOTCONN)) + raise Exception(_cyCafeException) + return [None] + + cdef unsigned int dtcheck = dtr + + dtcheck=getMatchedDataType(dt, dtr) + + cdef unsigned int nelemNative = self.hh.getNelemNative (handle) + cdef unsigned int nelemClient = self.hh.getNelemClient (handle) + cdef unsigned int nelemRequest = self.hh.getNelemRequest(handle) + + cdef unsigned int nelemMethod = nelemClient + cdef unsigned int nelemMemory = nelemClient #previously nelemNative - has to be at least size of nelemClient + + #print('native', self.hh.getNelemNative(handle)) + #print('client', self.hh.getNelemClient(handle)) + #print('request',self.hh.getNelemRequest(handle)) + + #print ('dtcheck', dtcheck) + + #cdef double [::1] cyarr_view + #The element type of a typed memoryview may be a numeric scalar type (int, float) + #It may be a ctypedef alias, or it may be a structured type declared with e.g. cdef struct + + if dtcheck in [CAFE_STRING, CAFE_ENUM]: + sval = malloc( nelemMemory * sizeof(dbr_string_t)) + with nogil: + status=self._c_cafe.getDbrStringArray(handle, sval) + + #http://cython.readthedocs.org/en/latest/src/tutorial/numpy.html + #Some data types are not yet supported, like boolean arrays and string arrays. + + locallist=[] + + if status==ICAFE_NORMAL: + + if art in ['numpy','ndarray','numpy.ndarray']: + + ###elif dt in ['np.string','np.str','np.unicode','np.string_','np.str_','np.unicode_']: + + mvStr = np.empty(nelemMethod, dtype=(np.str_,40)) + #mvStr=np.array(self.hh.getNelemRequest(handle), dtype='S40') + + for i in range(0, nelemMethod): + #print sval[i].decode('utf8'), i + mvStr[i]=str(sval[i]) #.decode('utf8') + #locallist.append(sval[i]) + + free(sval) + + return np.array(mvStr) + + elif art in ['memoryview','mv','memoryviewslice']: + mvStr = np.empty(nelemMethod, dtype=(np.str_,40), order='C') + + for ij in range(0, nelemMethod): + mvStr[ij]=str(sval[ij]) + free(sval) + + return memoryview(mvStr) + + elif art in ['array','array.array']: + print ("PyCafe.pyx getArray, 'array' type does not support array of strings; returning list") + #RETURNING LIST - DOES NOT SUPPORT array of strings; + #arrayArray=array.array('u', 'hello \u2641') + arrayArray=[] + for ij in range(0, nelemMethod): + arrayArray.append(str(sval[ij])) + free(sval) + return arrayArray + + elif art in ['ctypes', 'ctype']: + ctypesArray=(ctypes.c_char_p*nelemMethod)() #c_wchar_p is unicode! + for ij in range(0, nelemMethod): + ctypesArray[ij]=(sval[ij]).encode('utf-8') + free(sval) + return ctypesArray + + else: + print("Unknown array type in user request for art='",art,"'. Possible types are:") + print("memoryview, numpy, array, ctypes") + print("Returning memoryview") + mvStr = np.empty(nelemMethod, dtype=(np.str_,40), order='C') + for ij in range(0, nelemMethod): + mvStr[ij]=sval[ij] + free(sval) + + return mvStr + + + elif dtcheck in [CAFE_SHORT, CAFE_CHAR]: + + + i16val = malloc(nelemMemory * sizeof(np.int16)) + with nogil: + status=self._c_cafe.getShortArray(handle, i16val) + + if status==ICAFE_NORMAL: + #np.empty preferred, else mvInt does not get correct value for first couple of array elements + + if art in ['numpy','ndarray','numpy.ndarray']: + + # ##mvInt=ival + # ##arr = np.ascontiguousarray(mvInt) + # ##set_base(arr, ival) + + if dt in ['np.short','np.int16','short','int16']: + mvShort = np.empty(nelemMethod, dtype=np.int16, order='C') + for ij in range(0, nelemMethod): + mvShort[ij]=i16val[ij] + free(i16val) + return np.array(mvShort) + + elif dt in ['np.int8','np.bool_','np.byte','bool','byte']: + mvInt8 = np.empty(nelemMethod, dtype=np.int8, order='C') + for ij in range(0, nelemMethod): + mvInt8[ij]=i16val[ij] + free(i16val) + return np.array(mvInt8) + + + elif dt in ['uchar','np.uint8']: + mvUInt8 = np.empty(nelemMethod, dtype=np.uint8, order='C') + for ij in range(0, nelemMethod): + mvUInt8[ij]=i16val[ij] + free(i16val) + return np.array(mvUInt8) + + else: + + mvShort = np.empty(nelemMethod, dtype=np.int16, order='C') + #mvShortNP = np.ndarray(buffer=np.array(i16val), dtype=np.int16, order='C') + for ij in range(0, nelemMethod): + mvShort[ij]=i16val[ij] + #mvShortNP=cnp.asarray(i16val) + + #aaa=np.full(nelemMethod,i16val[ij] + free(i16val) + + return memoryview(mvShort) + + elif art in ['array','array.array']: + + a=array.array('h') + for ij in range(0, nelemMethod): + a.append(i16val[ij]) + free(i16val) + return a + + elif art in ['ctypes', 'ctype']: + + ctypesArray16=(ctypes.c_int16*nelemMethod)() + for ij in range(0, nelemMethod): + ctypesArray16[ij]=i16val[ij] + free(i16val) + return ctypesArray16 + + else: + print("Unknow array type in user request for art='",art,"'. Possible types are:") + print("memoryview, numpy, array, ctypes") + print("Returning memoryview") + mvShort = np.empty(nelemMethod, dtype=np.int16, order='C') + for ij in range(0, nelemMethod): + mvShort[ij]=i16val[ij] + free(i16val) + + return mvShort + + + elif dtcheck in [CAFE_LONG]: + + ival = malloc( nelemMemory * sizeof(np.int32)) + with nogil: + status=self._c_cafe.getLongArray(handle, ival) + + if status==ICAFE_NORMAL: + #np.empty preferred, else mvInt does not get correct value for first couple of array elements + + #nelemMethod=self.hh.getnelemMethod(handle) + + if art in ['numpy','ndarray','numpy.ndarray']: + + +##elif dt in ['np.intc','np.int_','np.long','np.ulong','np.ushort','np.int32','np.int64','np.uint32','np.uint64']: + + + if dt in ['np.int32','int32']: + mvInt32 = np.empty(nelemMethod, dtype=np.int32, order='C') + for ij in range(0, nelemMethod): + mvInt32[ij]=ival[ij] + free(ival) + return np.array(mvInt32) # + elif dt in ['np.uint32','uint32']: + mvUInt32 = np.empty(nelemMethod, dtype=np.uint32, order='C') + for ij in range(0, nelemMethod): + mvUInt32[ij]=ival[ij] + free(ival) + return np.array(mvUInt32) + + + #elif dt in ['np.int64','int64']: + # mvInt64 = np.empty(nelemMethod, dtype=np.int64, order='C') + # for ij in range(0, nelemMethod): + # mvInt64[ij]=ival[ij] + # free(ival) + # return np.array(mvInt64) # + #elif dt in ['np.uint64','uint64']: + # mvUInt64 = np.empty(nelemMethod, dtype=np.uint64, order='C') + # for ij in range(0, nelemMethod): + # mvUInt64[ij]=ival[ij] + # free(ival) + # return np.array(mvUInt64) + + + else: + mvInt = np.empty(nelemMethod, dtype=np.int32, order='C') + for ij in range(0, nelemMethod): + mvInt[ij]=ival[ij] + free(ival) + return np.array(mvInt) #arr + + elif art in ['memoryview','mv','memoryviewslice']: + mvInt = np.empty(nelemMethod, dtype=np.int32, order='C') + for ij in range(0, nelemMethod): + mvInt[ij]=ival[ij] + free(ival) + return memoryview(mvInt) + + elif art in ['array','array.array']: + a=array.array('h') + for ij in range(0, nelemMethod): + a.append(ival[ij]) + free(ival) + return a + + elif art in ['ctypes', 'ctype']: + ctypesArray=(ctypes.c_int32*nelemMethod)() + for ij in range(0, nelemMethod): + ctypesArray[ij]=ival[ij] + free(ival) + return ctypesArray + + else: + print("Unknow array type in user request for art='",art,"'. Possible types are:") + print("memoryview, numpy, array, ctypes") + print("Returning memoryview") + mvInt = np.empty(nelemMethod, dtype=np.int32, order='C') + for ij in range(0, nelemMethod): + mvInt[ij]=ival[ij] + free(ival) + return mvInt + + + elif dtcheck in [CAFE_FLOAT]: + + fval = malloc( nelemMemory * sizeof(float)) + start=time.time() + with nogil: + status=self._c_cafe.getFloatArray(handle, fval) + + +# pvd.setNelem(self.hh.getnelemMethod(handle)) +# with nogil: +# status=self._c_cafe.get(handle, pvd) + + if status==ICAFE_NORMAL: + #nelemMethod=self.hh.getnelemMethod(handle) + + if art in ['numpy','ndarray','numpy.ndarray']: + + ##elif dt in ['np.float16','np.float32']: + + mvFloat = np.empty(nelemMethod, dtype=np.float32) + for ij in range(0, nelemMethod): + mvFloat[ij]=fval[ij] # pvd.getAsFloat(ij) + #arr=np.asarray(mvFloat) + + free(fval) + +#arr = np.ascontiguousarray(mvDouble) +#set_base(arr, dval) + + return np.array(mvFloat) #arr + + elif art in ['memoryview','mv','memoryviewslice']: + + + #Method A to return memory view + mvFloat = np.empty(nelemMethod, dtype=np.float32) + for ij in range(0, nelemMethod): + mvFloat[ij]=fval[ij] + + free(fval) + #memoryview(mvFloat).tolist() #tolist() only supports byte views + + return memoryview(mvFloat) + + + #Method B to return memory view + ''' + mvDoubleArray=cvarray(shape=(nelemMethod,), itemsize=sizeof(double), format="d") + cyarr_view=mvDoubleArray + for i in range(0, nelemMethod): + #mvDoubleArray AVOID COPY TO mvDoubel Array!! + cyarr_view[i]=dval[i] + + free(dval) + return cyarr_view + ''' + + elif art in ['array','array.array']: + + a=array.array('f') + + for ij in range(0, nelemMethod): + a.append(fval[ij]) + free(fval) + + return a + ''' + arrayArray=array.array('f') + for ij in range(0, nelemMethod): + arrayArray.append(fval[ij]) + free(fval) + return arrayArray + ''' + + ''' + cvFloatArray=cvarray(shape=(nelemMethod,), itemsize=sizeof(float), format="f") + cyarr_view=cvFloatArray + for i in range(0, nelemMethod): + #mvDoubleArray AVOID COPY TO mvDoubel Array!! + cyarr_view[i]=fval[i] + + free(fval) + return cyarr_view + ''' + + elif art in ['ctypes', 'ctype']: + ctypesArray=(ctypes.c_float*nelemMethod)() + for ij in range(0, nelemMethod): + ctypesArray[ij]=fval[ij] + free(fval) + return ctypesArray + + else: + print("Unknow array type in user request for art='",art,"'. Possible types are:") + print("memoryview, numpy, array, ctypes") + print("Returning memoryview") + mvFloat = np.empty(nelemMethod, dtype=np.float32) + for ij in range(0, nelemMethod): + mvFloat[ij]=fval[ij] + free(fval) + return mvFloat + + + elif dtcheck in [CAFE_DOUBLE]: + + #start=time.time() + dval = malloc( nelemMemory * sizeof(double)) + + with nogil: + #for ij in range(0, 10000): + status=self._c_cafe.getDoubleArray(handle, dval) + + if status==ICAFE_NORMAL: + #nelemMethod=self.hh.getnelemMethod(handle) + + if art in ['numpy','ndarray','numpy.ndarray']: + + + #elif dt in ['double', 'np.float_','np.float64']: + + #mvDouble=dval + mvDouble = np.empty(nelemMethod, dtype=np.float64) + for ij in range(0, nelemMethod): + mvDouble[ij]=dval[ij] + #arr=np.asarray(mvDouble) + free(dval) + #end=time.time() + #print (end - start) + return np.array(mvDouble) #arr + + elif art in ['memoryview','mv','memoryviewslice']: + + #Method A to return memory view + mvDouble = np.empty(nelemMethod, dtype=np.float64) + for ij in range(0, nelemMethod): + mvDouble[ij]=dval[ij] + free(dval) + #end=time.time() + #print (end - start) + return memoryview(mvDouble) + + elif art in ['array','array.array']: + a=array.array('d') + for ij in range(0, nelemMethod): + a.append(dval[ij]) + free(dval) + #end=time.time() + #print (end - start) + return a + + elif art in ['ctypes', "ctype"]: + ctypesArray=(ctypes.c_double*nelemMethod)() + for ij in range(0, nelemMethod): + ctypesArray[ij]=dval[ij] + free(dval) + return ctypesArray + + else: + print("Unknow array type in user request for art='",art,"'. Possible types are:") + print("memoryview, numpy, array, ctypes") + print("Returning memoryview") + mvDouble = np.empty(nelemMethod, dtype=np.float64) + for ij in range(0, nelemMethod): + mvDouble[ij]=dval[ij] + free(dval) + return mvDouble + + if status !=ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + if handle == 0: + self._c_cafe.printStatusMessage(status) + else: + self._c_cafe.printStatus(handle, status) + if self.haveExceptions: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_,_handle=handle, _pv=self._c_cafe.getPVFromHandle(handle), \ + _ec=status, _et=self.cs.code(status), _ei=self.cs.info(status)) + raise Exception(_cyCafeException) + + return [None] + + ################################################################################## + #END: def getArray(self, handlePV, dt): + ################################################################################## + + + ################################################################################## + def getPVInt(self, handlePV): + return self.getPV(handlePV,'int') + ################################################################################## + + ################################################################################## + def getPVFloat(self, handlePV): + return self.getPV(handlePV,'float') + ################################################################################## + + ################################################################################## + def getPVStr(self, handlePV): + return self.getPV(handlePV,'str') + ################################################################################## + + ################################################################################## + def getPV(self, handlePV, str dt='native'): + ################################################################################## + cdef str _METHOD_="getPV" + + cdef unsigned int handle=0 + + if isinstance(handlePV, (int,long)) == 1: + handle=handlePV + elif isinstance(handlePV, (str)) == 1: + handle=self.checkForHandle(handlePV) + else: + raise Exception("{} {} {}".format(self.exString, _METHOD_, \ + "First input argument should be if handle, else if PV")) + + cdef int status + cdef PVDataHolder pvd = PVDataHolder(self.hh.getNelemNative(handle)) + + with nogil: + status=self._c_cafe.get(handle, pvd) + + if status !=ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + if handle == 0: + self._c_cafe.printStatusMessage(status) + else: + self._c_cafe.printStatus(handle, status) + if self.haveExceptions: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_,_handle=handle, _pv=self._c_cafe.getPVFromHandle(handle), \ + _ec=status, _et=self.cs.code(status), _ei=self.cs.info(status)) + raise Exception(_cyCafeException) + + + pvd_valnone=PVDataHolderToStruct(pvd, dt) + pvd_valnone.value[0]=None + return pvd_valnone + + return PVDataHolderToStruct(pvd, dt) + + ################################################################################## + #END def getPV(self, handlePV): + ################################################################################## + + + ################################################################################## + def getPVStrList(self, handleList): + return self.getPVList(handleList, dt='str') + ################################################################################## + + ################################################################################## + def getPVIntList(self, handleList): + return self.getPVList(handleList, dt='int') + ################################################################################## + + ################################################################################## + def getPVFloatList(self, handleList): + return self.getPVList(handleList, dt='float') + ################################################################################## + + ################################################################################## + def getPVList(self, handleList, str dt='native', cacheFlag=False): + ################################################################################## + cdef str _METHOD_="getPVList" + + if isinstance(handleList, (str,int,long)): + hl=[] + hl.append(handleList) + handleList=[] + handleList=hl + + if isinstance(handleList[0], (str)): + handleList=self.checkForHandleList(handleList) + elif not isinstance(handleList[0], (int, long)): + raise Exception("{} {} {}".format(self.exString, _METHOD_, \ + "First input argument should be a 'list' of if handles, else if PVs")) + +#cdef unsigned int nelemTotal=0 +#for i in range(0, len(handleList)): +# nelemTotal+=self.hh.getNelemNative(handleList[i]) + +# cdef int size_cdu = sizeof(CAFE_DATATYPE_UNION) #16 is size of boost_shared_ptr (size 40) + +# cdef PVDataHolder * pvd = \ +# malloc( 100000000 + \ +# len(handleList) * sizeof(PVDataHolder) + nelemTotal*size_cdu) + + cdef vector[unsigned int] v + + #do this to avoid compiler warning messages + + for i in range(0, len(handleList)): + v.push_back(handleList[i]) + + cdef PVDataHolder * pvd = self._c_cafe.getPVData(v) + + for i in range(0, len(handleList)): + pvd[i].setNelem(self.hh.getNelemNative(handleList[i])) + #print " ", pvd[i].getNelem(), self.hh.getNelemNative(handleList[i]), i + + cdef int status + + if(cacheFlag): + status=self._c_cafe.getCachePVArray(v, pvd) + else: + with nogil: + status=self._c_cafe.getPVArray(v, pvd) + + if status !=ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + self._c_cafe.printStatusMessage(status) + for i in range(0, len(handleList)): + if (pvd[i].getStatus() != ICAFE_NORMAL): + print ("Handle=", handleList[i], "PV=", self.hh.getPVFromHandle(handleList[i]) ) + print ("with error status=", pvd[i].getStatus() ) + self._c_cafe.printStatusMessage(status) + print ("") + #raise Exception("EXCEPTION RAISED in PyCafe def getPVList. Status = %d" %status) + + + cdef unsigned int dtn + cdef unsigned int dtcheck + + pvdList=[] + cpdef pvdata p1 + + for i in range(0, len(handleList)): + dtn = pvd[i].getDataType(); + + dtcheck=getMatchedDataType(dt, dtn) + localList=[] + + if pvd[i].getNelem() == 1: + if dtcheck==CAFE_STRING: + localList.append(pvd[i].getAsString()) + elif dtcheck==CAFE_SHORT: + localList.append(pvd[i].getAsLong()) + elif dtcheck==CAFE_FLOAT: + localList.append(pvd[i].getAsDouble()) + elif dtcheck==CAFE_ENUM: + #if enum, string taken as native + if self._c_cafe.isEnum(handleList[i]): + localList.append(pvd[i].getAsString()) + else: + localList.append(pvd[i].getAsLong()) + elif dtcheck==CAFE_CHAR: + localList.append(pvd[i].getAsLong()) #( pvd[i].getAsChar()) + elif dtcheck==CAFE_LONG: + localList.append(pvd[i].getAsLong()) + elif dtcheck==CAFE_DOUBLE: + localList.append(pvd[i].getAsDouble()) + else: + localList.append(0) #no data + + else: + localListInner=[] + if dtcheck==CAFE_STRING: + for j in range(0, pvd[i].getNelem()): + localListInner.append(pvd[i].getAsString(j)) + elif dtcheck==CAFE_SHORT: + for j in range(0, pvd[i].getNelem()): + localListInner.append(pvd[i].getAsLong(j)) + elif dtcheck==CAFE_FLOAT: + for j in range(0, pvd[i].getNelem()): + localListInner.append(pvd[i].getAsDouble(j)) + elif dtcheck==CAFE_ENUM: + for j in range(0, pvd[i].getNelem()): + #if enum, string taken as native + if self._c_cafe.isEnum(handleList[i]): + localListInner.append(pvd[i].getAsString(j)) + else: + localListInner.append(pvd[i].getAsLong(j)) + elif dtcheck==CAFE_CHAR: + for j in range(0, pvd[i].getNelem()): + localListInner.append(pvd[i].getAsLong(j))#( pvd[i].getAsChar(j)) + elif dtcheck==CAFE_LONG: + for j in range(0, pvd[i].getNelem()): + localListInner.append(pvd[i].getAsLong(j)) + elif dtcheck==CAFE_DOUBLE: + for j in range(0, pvd[i].getNelem()): + localListInner.append(pvd[i].getAsDouble(j)) + else: + for j in range(0, pvd[i].getNelem()): + localListInner.append(0) #no data + localList.append(localListInner) + + p1 = pvdata() + p1.value=localList + p1.status=pvd[i].getStatus() + p1.nelem=pvd[i].getNelem() + p1.alarmStatus=pvd[i].getAlarmStatus() + p1.alarmSeverity=pvd[i].getAlarmSeverity() + + pvd._etsNorm=pvd[i].getEpicsTimeStampAsUInt32() + + ll=[] + ll.append((pvd[i]._etsNorm).secPastEpoch) + ll.append((pvd[i]._etsNorm).nsec) + p1.ts=ll + + pvd._etsDate=pvd[i].getEpicsTimeStampAsDate() + + ld=[] + ld.append( (pvd[i]._etsDate).year ) + ld.append( (pvd[i]._etsDate).mon ) + ld.append( (pvd[i]._etsDate).day ) + ld.append( (pvd[i]._etsDate).hour ) + ld.append( (pvd[i]._etsDate).min ) + ld.append( (pvd[i]._etsDate).sec ) + ld.append( (pvd[i]._etsDate).nsec ) + p1.tsDate=ld + + pvdList.append(p1) + + #free(pvd) + + + return pvdList, status + + + ################################################################################## + #END: def getPVList(self, handlePV, dt): + ################################################################################## + + ################################################################################## + def printStatusIfError(self, handleList, statusList): + ################################################################################## + cdef str _METHOD_="printStatusIfError" + + if isinstance(handleList,(str,int,long)): + handleListB=[] + handleListB.append(handleList) + handleList=[] + handleList=handleListB + + if isinstance(handleList[0], (str)): + handleList=self.checkForHandleList(handleList) + elif not isinstance(handleList[0], (int, long)): + raise Exception("{} {} {}".format(self.exString, _METHOD_, \ + "First input argument should be a 'list' of if handles or if PVs")) + + if isinstance(statusList, (int,long)): + statusListB=[] + statusListB.append(statusList) + statusList=[] + statusList=statusListB + + if not isinstance(statusList, (list)): + raise Exception("{} {} {}".format(self.exString, _METHOD_, \ + "Second input argument should be of ")) + + if not isinstance(statusList[0], (int, long, float)): + raise Exception("{} {} {}".format(self.exString, _METHOD_, \ + "Second input argument should be a of ")) + + cdef vector[unsigned int] v + #do next step to avoid: + #warning: comparison between signed and unsigned integer expressions + for i in range(0, len(handleList)): + v.push_back(handleList[i]) #do this copy to avoid compiler warning messages + + return self._c_cafe.printStatusIfError(v, statusList) + + ################################################################################## + + ################################################################################## + def getAsyn(self, handleList): + ################################################################################## + cdef str _METHOD_="getAsyn" + + if isinstance(handleList, (str,int,long)): + handleListB=[] + handleListB.append(handleList) + handleList=[] + handleList=handleListB + + if isinstance(handleList[0], (str)): + handleList=self.checkForHandleList(handleList) + elif not isinstance(handleList[0], (int, long)): + raise Exception("{} {} {}".format(self.exString, _METHOD_, \ + "First input argument should be a 'list' of if handles or if PVs")) + + cdef vector[unsigned int] v + cdef vector[int] vStatus + v.reserve (len(handleList)) + vStatus.reserve(len(handleList)) + + #do next step to avoid: + #warning: comparison between signed and unsigned integer expressions + for i in range(0, len(handleList)): + v.push_back(handleList[i]) #do this copy to avoid compiler warning messages + + #Need to copy to a vector since + #Coercion from Python not allowed without the GIL + with nogil: + status=self._c_cafe.getV(v, vStatus) + + if (status!=ICAFE_NORMAL): + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + print ("Error/Warning from def getAsyn: ") + self._c_cafe.printStatusMessage(status) + + return status, vStatus + + + ################################################################################## + #END: def getAsyn(self, handleList): + ################################################################################## + + + + ################################################################################## + def waitForGetEvent(self,handlePV): + ################################################################################## + cdef str _METHOD_="waitForGetEvent(handlePV)" + + cdef unsigned int handle=0 + if isinstance(handlePV, (int,long)) == 1: + handle=handlePV + elif isinstance(handlePV, (str)) == 1: + handle=self.checkForHandle(handlePV) + else: + raise Exception("{} {} {}".format(self.exString, _METHOD_, \ + "First input argument, should be if handle, else if PV")) + with nogil: + status=self._c_cafe.waitForGetEvent(handle) + return status + ################################################################################## + #END: def waitForGetEvent(self, handlePV) + ################################################################################## + + + ################################################################################## + def waitForBundledEvents(self, handleList): + ################################################################################## + cdef str _METHOD_="waitForBundledEvents(self, handleList)" + + if isinstance(handleList, (str,int,long)): + handleListB=[] + handleListB.append(handleList) + handleList=[] + handleList=handleListB + + if not isinstance(handleList, (list)): + raise Exception ("EXCEPTION RAISED IN PyCafe def waitForBundledEvents. \n\ +First input argument, should be of handles or PVs") + + if isinstance(handleList[0], (str)): + handleList=self.checkForHandleList(handleList) + elif not isinstance(handleList[0], (int, long)): + raise Exception ("EXCEPTION RAISED IN PyCafe def waitForBundledEvents. \n\ +First input argument, should be a 'list' of if handles or if PVs") + + cdef vector[unsigned int] v + cdef vector[int] vRB + + v.reserve (len(handleList)) + vRB.reserve(len(handleList)) + for i in range(0, len(handleList)): + v.push_back(handleList[i]) #do this copy to avoid compiler warning messages + + + #Wait for bundle + with nogil: + status=self._c_cafe.waitForBundledEvents(v, vRB) + if (status!=ICAFE_NORMAL): + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + print ("Error in def waitForBundledEvents: ") + self._c_cafe.printStatusMessage(status) + return status + return status, vRB + ################################################################################## + #END: def waitForBundledEvents(self, handleList): + ################################################################################## + + + + ################################################################################## + def getScalarArray(self, handleList, str dt='native', bint cacheFlag=False): + ################################################################################## + cdef str _METHOD_="getScalarArray(handleList, str dt='native')" + + #cdef float [::1] mvFloat #C-contiguous + + if not isinstance(handleList, (list)): + raise Exception ("EXCEPTION RAISED IN PyCafe def getScalarList. \n\ +First input argument, should be of handles or PVs") + + if isinstance(handleList[0], (str)): + handleList=self.checkForHandleList(handleList) + elif not isinstance(handleList[0], (int, long)): + raise Exception ("EXCEPTION RAISED IN PyCafe def getScalarList. \n\ +First input argument, should be a 'list' of if handles or if PVs") + + nelemPrevious= [] + + for i in range(0, len(handleList)): + nelemPrevious.append(self._c_cafe.setNelemToOne(handleList[i])) + + + #pack into numpy + cdef vector[unsigned int] v + cdef vector[int] vStatus + + v.reserve (len(handleList)) + vStatus.reserve(len(handleList)) + + for i in range(0, len(handleList)): + v.push_back(handleList[i]) #do this copy to avoid compiler warning messages + + cdef vector[int] vRB + status=ICAFE_NORMAL + + if (cacheFlag == False): + #Need to copy to a vector since + #Coercion from Python not allowed without the GIL + with nogil: + status=self._c_cafe.getV(v, vStatus) + + #Check for error code 704: ICAFE_WAITING_FOR_PREV_CALLBACK + #as this may mean we have a double handle instance. + #This is not a problem as such but if this is the case let's + #remove the error if the first getAsyn call for the handle in question was OK + #Functionality not yet moved to CAFE:: + #Required for when dt='native' + if (status != ICAFE_NORMAL): + for i in range(0,len(vStatus)): + if (vStatus[i]==ICAFE_WAITING_FOR_PREV_CALLBACK): + #getHandle + for j in range(0,(i-1)): + if(v[j]==v[i]): + if (vStatus[j]==ICAFE_NORMAL): + vStatus[i]=vStatus[j] + + #ca_poll() Not required as above will flush! + + #Wait for bundle + + with nogil: + statusBundle=self._c_cafe.waitForBundledEvents(v, vRB) + if (statusBundle!=ICAFE_NORMAL): + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + print ("Error in def getScalarList: ") + self._c_cafe.printStatusMessage(statusBundle) + + cdef unsigned int dtcheck=CAFE_NOT_REQUESTED #native type not yet know + dtcheck=getMatchedDataType(dt, dtcheck) + + #print ("dt=", dt, "dtcheck=", dtcheck) + + if dtcheck in [CAFE_STRING]: + + self.vStr.clear() + self.vStr.reserve(len(handleList)) + + with nogil: + status=self._c_cafe.getCacheVStr(v, self.vStr, vStatus) + + for i in range(0, len(handleList)): + self._c_cafe.setNelemToPrevious(handleList[i],nelemPrevious[i]) + + ##localList=[] + ##statusList=[] + + #for i in range(0, len(self.vStr)): + #localList.append( self.vStr[i]) + return self.vStr, status, vStatus + + elif dtcheck in [CAFE_SHORT, CAFE_CHAR, CAFE_LONG]: + + self.vInt.clear() + self.vInt.reserve(len(handleList)) + + with nogil: + status=self._c_cafe.getCacheVLong(v, self.vInt, vStatus) + + #for i in range(0, len(vStatus)): + #print ("status " , vStatus[i], " i", i, self._c_cafe.getPVFromHandle(handleList[i])) + + for i in range(0, len(handleList)): + self._c_cafe.setNelemToPrevious(handleList[i],nelemPrevious[i]) + + ##localList=[] + ##statusList=[] + + #for i in range(0, len(self.vInt)): + return self.vInt, status, vStatus + + elif dtcheck in [CAFE_FLOAT, CAFE_DOUBLE]: + + self.vFloat.clear() + self.vFloat.reserve(len(handleList)) + + with nogil: + status=self._c_cafe.getCacheVDouble(v, self.vFloat, vStatus) + + for i in range(0, len(handleList)): + self._c_cafe.setNelemToPrevious(handleList[i],nelemPrevious[i]) + + #for i in range(0, len(vStatus)): + # print ("status/// " , vStatus[i], " i", i, self._c_cafe.getPVFromHandle(handleList[i])) + #print ("overall status", status) + + ##localList=[] + ##statusList=[] + #Method A to return memory view + #mvFloat = np.empty(len(handleList), dtype=np.float32) + #for ij in range(0, len(handleList)): + # mvFloat[ij]=self.vFloat[ij] + #return mvFloat, status, vStatus + + + #for i in range(0, len(self.vFloat)): + return self.vFloat, status, vStatus + + #Native + + +#cdef unsigned int nelemTotal=0 +# for i in range(0, len(handleList)): +# nelemTotal+=self.hh.getNelemNative(handleList[i]) + + #cdef int size_cdu = sizeof(CAFE_DATATYPE_UNION) #16 is size of boost_shared_ptr (size 40) + + #Create temporary group from handleList + #Does group exist? + cdef PVDataHolder * pvd = self._c_cafe.getPVData(v) + + +#for i in range (0, len(handleList)): +# print pvd[i].getPVName(), pvd[i].getAsString(), " [",i,"]" +# print "" + + #print ("-----------------------------------------------------------------") + + #cdef PVDataHolder * pvd = \ + #malloc( 100000000 + \ + # len(handleList) * sizeof(PVDataHolder) + nelemTotal*size_cdu) + #print "size_pvd=", sizeof(PVDataHolder) + #print "sizeoverall", len(handleList) * sizeof(PVDataHolder)*10000 + + #Required to allocate memory for shared pointer + for i in range(0, len(handleList)): + pvd[i].setNelem(1) + + + statusNoWait=self._c_cafe.getCachePVArrayNoWait(v, pvd) + + for i in range(0, len(handleList)): + self._c_cafe.setNelemToPrevious(handleList[i],nelemPrevious[i]) + + statusList=[] + statusFlag=True + statusLocal=ICAFE_NORMAL + if (cacheFlag==True): + + #if status !=ICAFE_NORMAL: + # if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + # self._c_cafe.printStatusMessage(status) + #status=ICAFE_NORMAL + for i in range(0, len(handleList)): + statusList.append(pvd[i].getStatus()) + if pvd[i].getStatus() != ICAFE_NORMAL: + print ("Error in Element ", i, " from ", len(handleList), " in PyCafe def getScalarList") + print ("Handle= ", handleList[i], " PV=", self.hh.getPVFromHandle(handleList[i])) + print ("with error status=", pvd[i].getStatus()) + self._c_cafe.printStatusMessage(pvd[i].getStatus()) + if statusFlag: + statusLocal =pvd[i].getStatus() + statusFlag=False + + + # + #else: + # statusList.append(status) + + + #Wht not as a memoryView? + + cdef unsigned int dtn + + localList=[] + + for i in range(0, len(handleList)): + + dtn = pvd[i].getDataType(); + dtcheck = getMatchedDataType(dt, dtn) + + #print ("dt=", dt, "dtn=", dtn, "dtcheck=", dtcheck) + #print (pvd[i].getAsString()) + #print (pvd[i].getAsDouble()) + + if dtcheck==CAFE_STRING: + localList.append(pvd[i].getAsString()) + elif dtcheck==CAFE_SHORT: + localList.append(pvd[i].getAsLong()) + elif dtcheck==CAFE_FLOAT: + localList.append(pvd[i].getAsDouble()) + elif dtcheck==CAFE_ENUM: + #if enum, string taken as native + + if self._c_cafe.isEnum(self.hh.getHandleFromPV(pvd[i].getPVName()))==1: + localList.append(pvd[i].getAsString()) + else: + localList.append(pvd[i].getAsLong()) + + elif dtcheck==CAFE_CHAR: + localList.append( pvd[i].getAsLong()) # pvd[i].getAsChar() + elif dtcheck==CAFE_LONG: + localList.append(pvd[i].getAsLong()) + elif dtcheck==CAFE_DOUBLE: + localList.append(pvd[i].getAsDouble()) + else: + localList.append(0) + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_HIGH: + print ("def getScalarList:") + print ("Entering 0 for element", i, "as channel is not connected!") + + #print (" vstatus = ", vStatus[i] , " pvd[i].status ", pvd[i].getStatus() ) + + #free(pvd) + if (cacheFlag==True): + return localList, statusLocal, statusList + + return localList, status, vStatus # use vstatus instead of statusList (as cache is NoWait) + + ################################################################################## + #END: def getScalarList(self, handleList, dt): + ################################################################################## + + + + + + + + + + + + + + + + ################################################################################## + def getStrScalarList(self, handleList): + ################################################################################## + return self.getScalarList(handleList, dt='str') + + ################################################################################## + def getIntScalarList(self, handleList): + ################################################################################## + return self.getScalarList(handleList, dt='int') + + ################################################################################## + def getFloatScalarList(self, handleList): + ################################################################################## + return self.getScalarList(handleList, dt='float') + + + ################################################################################## + def getScalarList(self, handleList, str dt='native', bint cacheFlag=False): + ################################################################################## + cdef str _METHOD_="getScalarList(handleList, str dt='native')" + + #cdef float [::1] mvFloat #C-contiguous + + if not isinstance(handleList, (list)): + raise Exception ("EXCEPTION RAISED IN PyCafe def getScalarList. \n\ +First input argument, should be of handles or PVs") + + if isinstance(handleList[0], (str)): + handleList=self.checkForHandleList(handleList) + elif not isinstance(handleList[0], (int, long)): + raise Exception ("EXCEPTION RAISED IN PyCafe def getScalarList. \n\ +First input argument, should be a 'list' of if handles or if PVs") + + nelemPrevious= [] + + for i in range(0, len(handleList)): + nelemPrevious.append(self._c_cafe.setNelemToOne(handleList[i])) + + #c=self.hh.getNelemClient(handleList[i]) + #n=self.hh.getNelemNative(handleList[i]) + #r=self.hh.getNelemRequest(handleList[i]) + #print "c,n,r", c,n,r, "[",i,"]" + #c=self.hh.getNelemToRetrieveFromCache(handleList[i]) + #print "cache", c, "[",i,"]" + + #pack into vectors + cdef vector[unsigned int] v + cdef vector[int] vStatus + + v.reserve (len(handleList)) + vStatus.reserve(len(handleList)) + + for i in range(0, len(handleList)): + v.push_back(handleList[i]) #do this copy to avoid compiler warning messages + + cdef vector[int] vRB + status=ICAFE_NORMAL + + if (cacheFlag == False): + #Need to copy to a vector since + #Coercion from Python not allowed without the GIL + with nogil: + status=self._c_cafe.getV(v, vStatus) + + #Check for error code 704: ICAFE_WAITING_FOR_PREV_CALLBACK + #as this may mean we have a double handle instance. + #This is not a problem as such but if this is the case let's + #remove the error if the first getAsyn call for the handle in question was OK + #Functionality not yet moved to CAFE:: + #Required for when dt='native' + if (status != ICAFE_NORMAL): + for i in range(0,len(vStatus)): + if (vStatus[i]==ICAFE_WAITING_FOR_PREV_CALLBACK): + #getHandle + for j in range(0,(i-1)): + if(v[j]==v[i]): + if (vStatus[j]==ICAFE_NORMAL): + vStatus[i]=vStatus[j] + + #ca_poll() Not required as above will flush! + + #Wait for bundle + + with nogil: + statusBundle=self._c_cafe.waitForBundledEvents(v, vRB) + if (statusBundle!=ICAFE_NORMAL): + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + print ("Error in def getScalarList: ") + self._c_cafe.printStatusMessage(statusBundle) + + cdef unsigned int dtcheck=CAFE_NOT_REQUESTED #native type not yet know + dtcheck=getMatchedDataType(dt, dtcheck) + + #print ("dt=", dt, "dtcheck=", dtcheck) + + if dtcheck in [CAFE_STRING]: + + self.vStr.clear() + self.vStr.reserve(len(handleList)) + + with nogil: + status=self._c_cafe.getCacheVStr(v, self.vStr, vStatus) + + for i in range(0, len(handleList)): + self._c_cafe.setNelemToPrevious(handleList[i],nelemPrevious[i]) + + ##localList=[] + ##statusList=[] + + #for i in range(0, len(self.vStr)): + #localList.append( self.vStr[i]) + return self.vStr, status, vStatus + + elif dtcheck in [CAFE_SHORT, CAFE_CHAR, CAFE_LONG]: + + self.vInt.clear() + self.vInt.reserve(len(handleList)) + + with nogil: + status=self._c_cafe.getCacheVLong(v, self.vInt, vStatus) + + #for i in range(0, len(vStatus)): + #print ("status " , vStatus[i], " i", i, self._c_cafe.getPVFromHandle(handleList[i])) + + for i in range(0, len(handleList)): + self._c_cafe.setNelemToPrevious(handleList[i],nelemPrevious[i]) + + ##localList=[] + ##statusList=[] + + #for i in range(0, len(self.vInt)): + return self.vInt, status, vStatus + + elif dtcheck in [CAFE_FLOAT, CAFE_DOUBLE]: + + self.vFloat.clear() + self.vFloat.reserve(len(handleList)) + + with nogil: + status=self._c_cafe.getCacheVDouble(v, self.vFloat, vStatus) + + for i in range(0, len(handleList)): + self._c_cafe.setNelemToPrevious(handleList[i],nelemPrevious[i]) + + #for i in range(0, len(vStatus)): + # print ("status/// " , vStatus[i], " i", i, self._c_cafe.getPVFromHandle(handleList[i])) + #print ("overall status", status) + + ##localList=[] + ##statusList=[] + #Method A to return memory view + #mvFloat = np.empty(len(handleList), dtype=np.float32) + #for ij in range(0, len(handleList)): + # mvFloat[ij]=self.vFloat[ij] + #return mvFloat, status, vStatus + + + #for i in range(0, len(self.vFloat)): + return self.vFloat, status, vStatus + + #Native + + +#cdef unsigned int nelemTotal=0 +# for i in range(0, len(handleList)): +# nelemTotal+=self.hh.getNelemNative(handleList[i]) + + #cdef int size_cdu = sizeof(CAFE_DATATYPE_UNION) #16 is size of boost_shared_ptr (size 40) + + #Create temporary group from handleList + #Does group exist? + cdef PVDataHolder * pvd = self._c_cafe.getPVData(v) + + +#for i in range (0, len(handleList)): +# print pvd[i].getPVName(), pvd[i].getAsString(), " [",i,"]" +# print "" + + #print ("-----------------------------------------------------------------") + + #cdef PVDataHolder * pvd = \ + #malloc( 100000000 + \ + # len(handleList) * sizeof(PVDataHolder) + nelemTotal*size_cdu) + #print "size_pvd=", sizeof(PVDataHolder) + #print "sizeoverall", len(handleList) * sizeof(PVDataHolder)*10000 + + #Required to allocate memory for shared pointer + for i in range(0, len(handleList)): + pvd[i].setNelem(1) + + + statusNoWait=self._c_cafe.getCachePVArrayNoWait(v, pvd) + + for i in range(0, len(handleList)): + self._c_cafe.setNelemToPrevious(handleList[i],nelemPrevious[i]) + + statusList=[] + statusFlag=True + statusLocal=ICAFE_NORMAL + if (cacheFlag==True): + + #if status !=ICAFE_NORMAL: + # if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + # self._c_cafe.printStatusMessage(status) + #status=ICAFE_NORMAL + for i in range(0, len(handleList)): + statusList.append(pvd[i].getStatus()) + if pvd[i].getStatus() != ICAFE_NORMAL: + print ("Error in Element ", i, " from ", len(handleList), " in PyCafe def getScalarList") + print ("Handle= ", handleList[i], " PV=", self.hh.getPVFromHandle(handleList[i])) + print ("with error status=", pvd[i].getStatus()) + self._c_cafe.printStatusMessage(pvd[i].getStatus()) + if statusFlag: + statusLocal =pvd[i].getStatus() + statusFlag=False + + + # + #else: + # statusList.append(status) + + + #Wht not as a memoryView? + + cdef unsigned int dtn + + localList=[] + + for i in range(0, len(handleList)): + + dtn = pvd[i].getDataType(); + dtcheck = getMatchedDataType(dt, dtn) + + #print ("dt=", dt, "dtn=", dtn, "dtcheck=", dtcheck) + #print (pvd[i].getAsString()) + #print (pvd[i].getAsDouble()) + + if dtcheck==CAFE_STRING: + localList.append(pvd[i].getAsString()) + elif dtcheck==CAFE_SHORT: + localList.append(pvd[i].getAsLong()) + elif dtcheck==CAFE_FLOAT: + localList.append(pvd[i].getAsDouble()) + elif dtcheck==CAFE_ENUM: + #if enum, string taken as native + + if self._c_cafe.isEnum(self.hh.getHandleFromPV(pvd[i].getPVName()))==1: + localList.append(pvd[i].getAsString()) + else: + localList.append(pvd[i].getAsLong()) + + elif dtcheck==CAFE_CHAR: + localList.append( pvd[i].getAsLong()) # pvd[i].getAsChar() + elif dtcheck==CAFE_LONG: + localList.append(pvd[i].getAsLong()) + elif dtcheck==CAFE_DOUBLE: + localList.append(pvd[i].getAsDouble()) + else: + localList.append(0) + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_HIGH: + print ("def getScalarList:") + print ("Entering 0 for element", i, "as channel is not connected!") + + #print (" vstatus = ", vStatus[i] , " pvd[i].status ", pvd[i].getStatus() ) + + #free(pvd) + if (cacheFlag==True): + return localList, statusLocal, statusList + + return localList, status, vStatus # use vstatus instead of statusList (as cache is NoWait) + + ################################################################################## + #END: def getScalarList(self, handleList, dt): + ################################################################################## + + + ### # int alarmStatus=None, int alarmSev=None): + ################################################################################## + def getCompoundList(self, handleList, str dt='native', bint cacheFlag=False): + ################################################################################## + cdef str _METHOD_="getCompoundList(handleList, str dt='native')" + + if isinstance(handleList, (str)): + handleList=self.getHandlesFromWithinGroup(handleList) + else: + if not isinstance(handleList, (list)): + raise Exception ("EXCEPTION RAISED IN PyCafe def getCompoundList. \n\ +First input argument, should be of handles or PVs") + + if isinstance(handleList[0], (str)): + handleList=self.checkForHandleList(handleList) + elif not isinstance(handleList[0], (int, long)): + raise Exception ("EXCEPTION RAISED IN PyCafe def getCompoundList. \n\ +First input argument, should be a 'list' of if handles or if PVs") + + #pack into vectors + cdef vector[unsigned int] v + cdef vector[int] vStatus + + cdef vector[int] vRB + + v.reserve (len(handleList)) + vStatus.reserve(len(handleList)) + + cdef bint flagCompound=False + + cdef unsigned int nelemLocal=1 + + for i in range(0, len(handleList)): + v.push_back(handleList[i]) #do this copy to avoid compiler warning messages + + + if (nelemLocal==1): + nelemLocal=self.hh.getNelemNative(handleList[i]) + if nelemLocal > 1: + flagCompound=True + + + if (cacheFlag == False): + + #Need to copy to a vector since + #Coercion from Python not allowed without the GIL + with nogil: + status=self._c_cafe.getV(v, vStatus) + + #ca_poll() Not required as above will flush! + + #Wait for bundle + + with nogil: + statusBundle=self._c_cafe.waitForBundledEvents(v, vRB) + if (statusBundle!=ICAFE_NORMAL): + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + print ("Error in def getCompoundList: ") + self._c_cafe.printStatusMessage(statusBundle) + + cdef unsigned int dtcheck=CAFE_NOT_REQUESTED #native type not yet know + dtcheck=getMatchedDataType(dt, dtcheck) + + #Use Scalar + if flagCompound == False: + + if dtcheck in [CAFE_STRING]: + + self.vStr.clear() + self.vStr.reserve(len(handleList)) + + with nogil: + status=self._c_cafe.getCacheVStr(v, self.vStr, vStatus) + + #localList=[] + #statusList=[] + + #for i in range(0, len(self.vStr)): + #localList.append( self.vStr[i]) + return self.vStr, status, vStatus + + elif dtcheck in [CAFE_SHORT, CAFE_CHAR, CAFE_LONG]: + + self.vInt.clear() + self.vInt.reserve(len(handleList)) + + with nogil: + status=self._c_cafe.getCacheVLong(v, self.vInt, vStatus) + + #localList=[] + #statusList=[] + + return self.vInt, status, vStatus + + elif dtcheck in [CAFE_FLOAT, CAFE_DOUBLE]: + + self.vFloat.clear() + self.vFloat.reserve(len(handleList)) + + with nogil: + status=self._c_cafe.getCacheVDouble(v, self.vFloat, vStatus) + + #localList=[] + #statusList=[] + + return self.vFloat, status, vStatus + + + #continue Can be a compound or native + #Native + #Create temporary group from handleList + #Does group exist? + cdef PVDataHolder * pvd = self._c_cafe.getPVData(v) + + + #Required to allocate memory for shared pointer + for i in range(0, len(handleList)): + pvd[i].setNelem(self.hh.getNelemClient(handleList[i])) + + statusNoWait=self._c_cafe.getCachePVArrayNoWait(v, pvd) + + + statusList=[] + statusFlag=True + statusLocal=ICAFE_NORMAL + if (cacheFlag==True): + + for i in range(0, len(handleList)): + statusList.append(pvd[i].getStatus()) + if pvd[i].getStatus() != ICAFE_NORMAL: + print ("Error in Element ", i, " from ", len(handleList), " in PyCafe def getCompundList") + print ("Handle= ", handleList[i], " PV=", self.hh.getPVFromHandle(handleList[i])) + print ("with error status=", pvd[i].getStatus()) + self._c_cafe.printStatusMessage(pvd[i].getStatus()) + if statusFlag: + statusLocal =pvd[i].getStatus() + statusFlag=False + + + + cdef unsigned int dtn + + localList=[] + + for i in range(0, len(handleList)): + + dtn = pvd[i].getDataType(); + dtcheck = getMatchedDataType(dt, dtn) + + if pvd[i].getNelem() == 1: + if dtcheck==CAFE_STRING: + localList.append(pvd[i].getAsString()) + elif dtcheck==CAFE_SHORT: + localList.append(pvd[i].getAsLong()) + elif dtcheck==CAFE_FLOAT: + localList.append(pvd[i].getAsDouble()) + elif dtcheck==CAFE_ENUM: + #if enum, string taken as native + if self._c_cafe.isEnum(handleList[i])==1: + localList.append(pvd[i].getAsString()) + else: + localList.append(pvd[i].getAsLong()) + + elif dtcheck==CAFE_CHAR: + localList.append( pvd[i].getAsChar()) + elif dtcheck==CAFE_LONG: + localList.append(pvd[i].getAsLong()) + elif dtcheck==CAFE_DOUBLE: + localList.append(pvd[i].getAsDouble()) + else: + localList.append(0) #no data + else: + localListInner=[] + if dtcheck==CAFE_STRING: + for j in range(0, pvd[i].getNelem()): + localListInner.append(pvd[i].getAsString(j)) + elif dtcheck==CAFE_SHORT: + for j in range(0, pvd[i].getNelem()): + localListInner.append(pvd[i].getAsLong(j)) + elif dtcheck==CAFE_FLOAT: + for j in range(0, pvd[i].getNelem()): + localListInner.append(pvd[i].getAsDouble(j)) + elif dtcheck==CAFE_ENUM: + + for j in range(0, pvd[i].getNelem()): + #if enum, string taken as native + if self._c_cafe.isEnum(handleList[i])==1: + localListInner.append(pvd[i].getAsString(j)) + else: + localListInner.append(pvd[i].getAsLong(j)) + + elif dtcheck==CAFE_CHAR: + for j in range(0, pvd[i].getNelem()): + localListInner.append(pvd[i].getAsLong(j)) # pvd[i].getAsChar(j)) + elif dtcheck==CAFE_LONG: + for j in range(0, pvd[i].getNelem()): + localListInner.append(pvd[i].getAsLong(j)) + elif dtcheck==CAFE_DOUBLE: + for j in range(0, pvd[i].getNelem()): + localListInner.append(pvd[i].getAsDouble(j)) + else: + for j in range(0, pvd[i].getNelem()): + localListInner.append(0) #no data + localList.append(localListInner) + + + #free(pvd) + if (cacheFlag==True): + return localList, statusLocal, statusList + return localList, status, vStatus # use vstatus instead of statusList (as cache is NoWait) + + ################################################################################## + #END: def getCompoundList(self, handleList, dt): + ################################################################################## + + + + ################################################################################## + def getCompoundPVGroup(self, ghandleName, str dt='native'): + ################################################################################## + cdef str _METHOD_="getCompoundPVGroup(ghandleName, str dt='native')" + + cdef unsigned int ghandle=0 + if isinstance(ghandleName, (int,long)) == 1: + ghandle=ghandleName + elif isinstance(ghandleName, (str)) == 1: + ghandle=self.checkForGroupHandle(ghandleName) + else: + + raise Exception ("EXCEPTION RAISED IN PyCafe def getCompoundPVGroup. \n\ +First input argument, should be if group handle, else if group name") + + handleList=[] + handleList=self.getHandlesFromWithinGroup(ghandle) + + localList=[] + statusList=[] + + cdef vector[unsigned int] hV + + for i in range(0, len(handleList)): + hV.push_back(handleList[i]) + + self.hh.setCafeDbrTypeV(hV, DBR_TIME) + + localList, status, statusList=self.getCompoundList(handleList, dt) + + cdef PVGroup pvg + + with nogil: + self._c_cafe.groupAttach(ghandle, pvg) + + cdef PVDataHolder * pvd + pvd=pvg.getPVData() + + cdef pvdata p1 + + localListToStruct=[] + + cdef int groupStatus=ICAFE_NORMAL + + for i in range(0, pvg.getNPV()): + p1 = pvdata() + + #pvd[i].setDouble(localList[i]) + p1=PVDataHolderToStruct(pvd[i], dt) + + if not isinstance(localList[i],(list)): + ll=[] + ll.append(localList[i]) + p1.value=ll + else: + p1.value=localList[i] #put into List! + + p1.status=statusList[i] + + if groupStatus == ICAFE_NORMAL: + groupStatus=statusList[i] + + aStatSev=[] + aStatSev=self.getAlarmStatusSeverity(handleList[i]) + p1.alarmStatus=aStatSev[0] + p1.alarmSeverity=aStatSev[1] + + p1.ts=self.getTimeStamp(handleList[i]) + p1.tsDate=self.getTimeStampAsDate(handleList[i]) + + #p1.showMax(10) + localListToStruct.append(p1) + + #for j in range (0, len(localListToStruct)): + #localListToStruct[j].showMax(10) + + + + cpdef pvgroup pg + + pg = pvgroup() + + pg.pvdata=localListToStruct + #pg.pvdata[0].showMax(10) + + pg.npv=pvg.getNPV() + pg.name=pvg.getNameAsString() + pg.groupStatus=groupStatus #pvg.getStatusGroup() + pg.groupHandle=pvg.getGroupHandle() + + #pg.showMax(1) + + return pg + + ################################################################################## + #END: def getCompoundPVGroup(self, handleList, dt): + ################################################################################## + + + + ################################################################################## + def getStrCache(self, handlePV): + return self.getCache(handlePV,'str') + ################################################################################## + + ################################################################################## + def getIntCache(self, handlePV): + return self.getCache(handlePV,'int') + ################################################################################## + + ################################################################################## + def getFloatCache(self, handlePV): + return self.getCache(handlePV,'float') + ################################################################################## + + ################################################################################## + def getCache(self, handlePV, str dt='native'): + cdef str _METHOD_="getCache(handlePV, str dt='native')" + + cdef unsigned int handle=0 + + if isinstance(handlePV, (int,long)) == 1: + handle=handlePV + elif isinstance(handlePV, (str)) == 1: + handle=self.checkForHandle(handlePV) + else: + raise Exception ("EXCEPTION RAISED IN PyCafe def getCache. \n\ +First input argument, should be if handle, else if PV") + + cdef long dtr=0 + status=self.hh.getDataTypeNative(handle, dtr) + + if status != ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + if handle == 0: + self._c_cafe.printStatusMessage(status) + else: + self._c_cafe.printStatus(handle, status) + if self.haveExceptions: + raise Exception("EXCEPTION RAISED in PyCafe def getCache. Status = %d" %status) + return None + + elif dtr in [CAFE_NO_ACCESS, CAFE_TYPENOTCONN]: + if self._c_cafe.isChannelConnected(handle) is False: + self._c_cafe.getChannelInfo(handle,self.channelInfo) + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + self._c_cafe.printStatus(handle,self.channelInfo.getCafeConnectionState() ) + if self.haveExceptions: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_,_handle=handle, _pv=self._c_cafe.getPVFromHandle(handle), \ + _ec=self.channelInfo.getCafeConnectionState(), _et=self.cs.code(self.channelInfo.getCafeConnectionState()),\ + _ei=self.cs.info(self.channelInfo.getCafeConnectionState())) + raise Exception(_cyCafeException) + return [None] + + #Likely to be superfluous + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + self._c_cafe.printStatus(handle,ICAFE_TYPENOTCONN) + if self.haveExceptions: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_,_handle=handle, _pv=self._c_cafe.getPVFromHandle(handle), \ + _ec=ICAFE_TYPENOTCONN, _et=self.cs.code(ICAFE_TYPENOTCONN), _ei=self.cs.info(ICAFE_TYPENOTCONN)) + raise Exception(_cyCafeException) + return [None] + + + cdef unsigned int dtcheck = dtr + dtcheck=getMatchedDataType(dt, dtr) + + if dtcheck in [CAFE_STRING]: + status=self._c_cafe.getCacheString(handle, self.valStr) + if status==ICAFE_NORMAL: + return self.valStr + + elif dtcheck in [CAFE_SHORT, CAFE_CHAR, CAFE_LONG]: + status=self._c_cafe.getCacheLong(handle, self.valInt) + if status==ICAFE_NORMAL: + return self.valInt + + elif dtcheck in [CAFE_FLOAT, CAFE_DOUBLE]: + status=self._c_cafe.getCacheDouble(handle, self.valFloat) + if status==ICAFE_NORMAL: + return self.valFloat + + elif dtcheck==CAFE_ENUM: + #if enum, string taken as native + if self._c_cafe.isEnum(handle): + status=self._c_cafe.getCacheString(handle, self.valStr) + if status==ICAFE_NORMAL: + return self.valStr + else: + status=self._c_cafe.getCacheLong(handle, self.valInt) + if status ==ICAFE_NORMAL: + return self.valInt + + else: + status=self.hh.getStatus(handle) + if status == ICAFE_NORMAL: + print ("This line in PyCafe def getCache should never appear!") + print ("Datatype unknown, returning value 0") + return 0 + + if status !=ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + if handle == 0: + self._c_cafe.printStatusMessage(status) + else: + self._c_cafe.printStatus(handle, status) + + if self.haveExceptions: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_,_handle=handle, _pv=self._c_cafe.getPVFromHandle(handle), \ + _ec=status, _et=self.cs.code(status), _ei=self.cs.info(status)) + raise Exception(_cyCafeException) + + + + ################################################################################## + + + + ################################################################################## + def getStrArrayCache(self, handlePV, str art='memoryview'): + return self.getArrayCache(handlePV, dt='str', art=art) + ################################################################################## + + ################################################################################## + def getIntArrayCache(self, handlePV, str art='memoryview'): + return self.getArrayCache(handlePV, dt='int', art=art) + ################################################################################## + + ################################################################################## + def getFloatArrayCache(self, handlePV, str art='memoryview'): + return self.getArrayCache(handlePV, dt='float', art=art) + ################################################################################## + + + ################################################################################## + def getArrayCache(self, handlePV, str dt='native', str art='memoryview'): + ################################################################################## + #Typed Memoryviews from K.W. Smith + #Cython has a C-level type the typed memoryview, that conceptually overlaps + #with the Python memoryiew and expands on it. A typed memory view is used to + #view (share) data from a buffer-producing object. + #A typed memoryview has a memory-view like interface and is easier to use than + #workingwith C-lvevel buffers directly. And because a typed memoryview is designed + #to work with the buffer protocol it supports any buffer-producing object efficiently + #allowing sharing of data buffers without copying + + cdef str _METHOD_="getArrayCache" + + cdef unsigned int handle=0 + + if isinstance(handlePV, (int,long)) == 1: + handle=handlePV + elif isinstance(handlePV, (str)) == 1: + handle=self.checkForHandle(handlePV) + else: + raise Exception("{} {} {}".format(self.exString, _METHOD_, \ + "First input argument should be if handle, else if PV")) + + cdef: + short * i16val + int * ival + double * dval + float * fval + dbr_string_t * sval + cnp.int16_t [::1] mvShort #C-contiguous + int [::1] mvInt #C-contiguous + double [::1] mvDouble #C-contiguous + float [::1] mvFloat #C-contiguous + #str [:,::1] mvStr + cnp.ndarray arr + long dtr=0 + int status + unsigned int i + unsigned int ij + + + status=self.hh.getDataTypeNative(handle, dtr) + + if status != ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + if handle == 0: + self._c_cafe.printStatusMessage(status) + else: + self._c_cafe.printStatus(handle, status) + if self.haveExceptions: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_,_handle=handle, _pv=self._c_cafe.getPVFromHandle(handle), \ + _ec=status, _et=self.cs.code(status), _ei=self.cs.info(status)) + raise Exception(_cyCafeException) + + return [None] + + + + elif dtr in [CAFE_NO_ACCESS, CAFE_TYPENOTCONN]: + if self._c_cafe.isChannelConnected(handle) is False: + self._c_cafe.getChannelInfo(handle,self.channelInfo) + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + self._c_cafe.printStatus(handle,self.channelInfo.getCafeConnectionState() ) + if self.haveExceptions: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_,_handle=handle, _pv=self._c_cafe.getPVFromHandle(handle), \ + _ec=self.channelInfo.getCafeConnectionState(), _et=self.cs.code(self.channelInfo.getCafeConnectionState()),\ + _ei=self.cs.info(self.channelInfo.getCafeConnectionState())) + raise Exception(_cyCafeException) + return [None] + + #Likely to be superfluous + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + self._c_cafe.printStatus(handle,ICAFE_TYPENOTCONN) + if self.haveExceptions: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_,_handle=handle, _pv=self._c_cafe.getPVFromHandle(handle), \ + _ec=ICAFE_TYPENOTCONN, _et=self.cs.code(ICAFE_TYPENOTCONN), _ei=self.cs.info(ICAFE_TYPENOTCONN)) + raise Exception(_cyCafeException) + return [None] + + + cdef unsigned int nelemToRetrieveFromCache=self.hh.getNelemToRetrieveFromCache(handle) + + cdef unsigned int dtcheck = dtr + dtcheck=getMatchedDataType(dt, dtr) + + + #The elemnt type of a typed memoryview may be a numeric scalar type (int, float) + #It may be a ctypedef alias, or it may be a structured type declared with e.g. cdef struct + + if dtcheck in [CAFE_STRING, CAFE_ENUM]: + sval = malloc( nelemToRetrieveFromCache * sizeof(dbr_string_t)) + + status=self._c_cafe.getCacheDbrStringArray(handle, sval) + + locallist=[] + + if status==ICAFE_NORMAL: + + for i in range(0,nelemToRetrieveFromCache): + locallist.append(sval[i]) + + free(sval) + return locallist + + if status==ICAFE_NORMAL: + + if art in ['numpy','ndarray','numpy.ndarray']: + mvStr = np.empty(nelemToRetrieveFromCache, dtype=(np.str_,40)) + for i in range(0, nelemToRetrieveFromCache): + mvStr[i]=str(sval[i]) + free(sval) + + return mvStr + + elif art in ['memoryview','mv','memoryviewslice']: + mvStr = np.empty(nelemToRetrieveFromCache, dtype=(np.str_,40), order='C') + + for ij in range(0, nelemToRetrieveFromCache): + mvStr[ij]=str(sval[ij]) + free(sval) + + return mvStr + + elif art in ['array','array.array']: + print ("PyCafe.pyx getArray, 'array' type does not support array of strings; returning list") + #RETURNING LIST - DOES NOT SUPPORT array of strings; + + arrayArray=[] + for ij in range(0, nelemToRetrieveFromCache): + arrayArray.append(str(sval[ij])) + free(sval) + return arrayArray + + elif art in ['ctypes', 'ctype']: + ctypesArray=(ctypes.c_char_p*nelemToRetrieveFromCache)() #c_wchar_p is unicode! + for ij in range(0, nelemToRetrieveFromCache): + ctypesArray[ij]=(sval[ij]).encode('utf-8') + free(sval) + return ctypesArray + + else: + print("Unknow array type in user request for art='",art,"'. Possible types are:") + print("memoryview, numpy, array, ctypes") + print("Returning memoryview") + mvStr = np.empty(nelemToRetrieveFromCache, dtype=(np.str_,40), order='C') + for ij in range(0, nelemToRetrieveFromCache): + mvStr[ij]=sval[ij] + free(sval) + + return mvStr + + elif dtcheck in [CAFE_SHORT, CAFE_CHAR]: + + i16val = malloc( nelemToRetrieveFromCache * sizeof(np.int16)) + + status=self._c_cafe.getCacheShortArray(handle, i16val) + + if status==ICAFE_NORMAL: + #np.empty preferred, else mvInt does not get correct value for first couple of array elements + + if art in ['numpy','ndarray','numpy.ndarray']: + + mvShortNP = np.empty(nelemToRetrieveFromCache, dtype=np.int16, order='C') + + for ij in range(0, nelemToRetrieveFromCache): + mvShortNP[ij]=i16val[ij] + #arr=np.asarray(mvShort) + + free(i16val) + + return mvShortNP #arr + + elif art in ['memoryview','mv','memoryviewslice']: + mvShort = np.empty(nelemToRetrieveFromCache, dtype=np.int16, order='C') + + for ij in range(0, nelemToRetrieveFromCache): + mvShort[ij]=i16val[ij] + free(i16val) + + return mvShort + + elif art in ['array','array.array']: + arrayArray=array.array('h') + for ij in range(0, nelemToRetrieveFromCache): + arrayArray.append(i16val[ij]) + free(i16val) + return arrayArray + + elif art in ['ctypes', 'ctype']: + ctypesArray=(ctypes.c_int16*nelemToRetrieveFromCache)() + for ij in range(0, nelemToRetrieveFromCache): + ctypesArray[ij]=i16val[ij] + free(i16val) + return ctypesArray + + else: + print("Unknow array type in user request for art='",art,"'. Possible types are:") + print("memoryview, numpy, array, ctypes") + print("Returning memoryview") + mvShort = np.empty(nelemToRetrieveFromCache, dtype=np.int16, order='C') + for ij in range(0, nelemToRetrieveFromCache): + mvShort[ij]=i16val[ij] + free(i16val) + + return mvShort + + + elif dtcheck in [CAFE_LONG]: + + ival = malloc( nelemToRetrieveFromCache * sizeof(np.int32)) + + status=self._c_cafe.getCacheLongArray(handle, ival) + + if status==ICAFE_NORMAL: + + if art in ['numpy','ndarray','numpy.ndarray']: + + mvIntNP = np.empty(nelemToRetrieveFromCache, dtype=np.int32, order='C') + for ij in range(0, nelemToRetrieveFromCache): + mvIntNP[ij]=ival[ij] + free(ival) + return mvIntNP #arr + + elif art in ['memoryview','mv','memoryviewslice']: + mvInt = np.empty(nelemToRetrieveFromCache, dtype=np.int32, order='C') + for ij in range(0, nelemToRetrieveFromCache): + mvInt[ij]=ival[ij] + free(ival) + return mvInt + + elif art in ['array','array.array']: + arrayArray=array.array('h') + for ij in range(0, nelemToRetrieveFromCache): + arrayArray.append(ival[ij]) + free(ival) + return arrayArray + + elif art in ['ctypes', 'ctype']: + ctypesArray=(ctypes.c_int32*nelemToRetrieveFromCache)() + for ij in range(0, nelemToRetrieveFromCache): + ctypesArray[ij]=ival[ij] + free(ival) + return ctypesArray + + else: + print("Unknow array type in user request for art='",art,"'. Possible types are:") + print("memoryview, numpy, array, ctypes") + print("Returning memoryview") + mvInt = np.empty(nelemToRetrieveFromCache, dtype=np.int32, order='C') + for ij in range(0, nelemToRetrieveFromCache): + mvInt[ij]=ival[ij] + free(ival) + return mvInt + + + elif dtcheck in [CAFE_FLOAT]: + + fval = malloc( nelemToRetrieveFromCache * sizeof(float)) + + status=self._c_cafe.getCacheFloatArray(handle, fval) + + if status==ICAFE_NORMAL: + + if art in ['numpy','ndarray','numpy.ndarray']: + + mvFloatNP = np.empty(nelemToRetrieveFromCache, dtype=np.float32) + for ij in range(0, nelemToRetrieveFromCache): + mvFloatNP[ij]=fval[ij] # pvd.getAsFloat(ij) + + free(fval) + + return mvFloatNP #arr + + elif art in ['memoryview','mv','memoryviewslice']: + + + #Method A to return memory view + mvFloat = np.empty(nelemToRetrieveFromCache, dtype=np.float32) + for ij in range(0, nelemToRetrieveFromCache): + mvFloat[ij]=fval[ij] + + free(fval) + return mvFloat + + + #Method B to return memory view + ''' + mvDoubleArray=cvarray(shape=(nelemToRetrieveFromCache,), itemsize=sizeof(double), format="d") + cyarr_view=mvDoubleArray + for i in range(0, nelemToRetrieveFromCache): + #mvDoubleArray AVOID COPY TO mvDoubel Array!! + cyarr_view[i]=dval[i] + + free(dval) + return cyarr_view + ''' + + + elif art in ['array','array.array']: + arrayArray=array.array('f') + for ij in range(0, nelemToRetrieveFromCache): + arrayArray.append(fval[ij]) + free(fval) + return arrayArray + + elif art in ['ctypes', "ctype"]: + ctypesArray=(ctypes.c_float*nelemToRetrieveFromCache)() + for ij in range(0, nelemToRetrieveFromCache): + ctypesArray[ij]=fval[ij] + free(fval) + return ctypesArray + + else: + print("Unknow array type in user request for art='",art,"'. Possible types are:") + print("memoryview, numpy, array, ctypes") + print("Returning memoryview") + mvFloat = np.empty(nelemToRetrieveFromCache, dtype=np.float32) + for ij in range(0, nelemToRetrieveFromCache): + mvFloat[ij]=fval[ij] + free(fval) + return mvFloat + + + + elif dtcheck in [CAFE_DOUBLE]: + + dval = malloc( nelemToRetrieveFromCache * sizeof(double)) + + status=self._c_cafe.getDoubleArray(handle, dval) + + if status==ICAFE_NORMAL: + + if art in ['numpy','ndarray','numpy.ndarray']: + + + mvDoubleNP = np.empty(nelemToRetrieveFromCache, dtype=np.float64) + for ij in range(0, nelemToRetrieveFromCache): + mvDoubleNP[ij]=dval[ij] + + free(dval) + return mvDoubleNP #arr + + elif art in ['memoryview','mv','memoryviewslice']: + + #Method A to return memory view + mvDouble = np.empty(nelemToRetrieveFromCache, dtype=np.float64) + for ij in range(0, nelemToRetrieveFromCache): + mvDouble[ij]=dval[ij] + free(dval) + return mvDouble + + elif art in ['array','array.array']: + arrayArray=array.array('d') + for ij in range(0, nelemToRetrieveFromCache): + arrayArray.append(dval[ij]) + free(dval) + return arrayArray + + elif art in ['ctypes', "ctype"]: + ctypesArray=(ctypes.c_double*nelemToRetrieveFromCache)() + for ij in range(0, nelemToRetrieveFromCache): + ctypesArray[ij]=dval[ij] + free(dval) + return ctypesArray + + else: + print("Unknow array type in user request for art='",art,"'. Possible types are:") + print("memoryview, numpy, array, ctypes") + print("Returning memoryview") + mvDouble = np.empty(nelemToRetrieveFromCache, dtype=np.float64) + for ij in range(0, nelemToRetrieveFromCache): + mvDouble[ij]=dval[ij] + free(dval) + return mvDouble + + if status !=ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + if handle == 0: + self._c_cafe.printStatusMessage(status) + else: + self._c_cafe.printStatus(handle, status) + if self.haveExceptions: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_,_handle=handle, _pv=self._c_cafe.getPVFromHandle(handle), \ + _ec=status, _et=self.cs.code(status), _ei=self.cs.info(status)) + raise Exception(_cyCafeException) + return [None] + + ################################################################################## + #END: def getArrayCache(self, handlePV, dt): + ################################################################################## + + + + ################################################################################## + def getPVStrCache(self, handlePV): + return self.getPVCache(handlePV,'str') + ################################################################################## + + ################################################################################## + def getPVIntCache(self, handlePV): + return self.getPVCache(handlePV,'int') + ################################################################################## + + ################################################################################## + def getPVFloatCache(self, handlePV): + return self.getPVCache(handlePV,'float') + ################################################################################## + + ################################################################################## + def getPVCache(self, handlePV, str dt='native'): + ################################################################################## + + cdef str _METHOD_="getPVCache(handlePV, str dt='native'" + + cdef unsigned int handle=0 + + if isinstance(handlePV, (int,long)) == 1: + handle=handlePV + elif isinstance(handlePV, (str)) == 1: + handle=self.checkForHandle(handlePV) + else: + raise Exception ("EXCEPTION RAISED IN PyCafe def getPVCache. \n \ + First input argument, should be if handle, else if PV") + + cdef PVDataHolder pvd + + pvd.setNelem(self.hh.getNelemToRetrieveFromCache(handle)) + + status=self._c_cafe.getCache(handle, pvd) + + if status !=ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + if handle == 0: + self._c_cafe.printStatusMessage(status) + else: + self._c_cafe.printStatus(handle, status) + if self.haveExceptions: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_,_handle=handle, _pv=self._c_cafe.getPVFromHandle(handle), \ + _ec=status, _et=self.cs.code(status), _ei=self.cs.info(status)) + raise Exception(_cyCafeException) + + pvd_valnone=PVDataHolderToStruct(pvd, dt) + pvd_valnone.value[0]=None + return pvd_valnone + + return PVDataHolderToStruct(pvd, dt) + + + ################################################################################## + #END def getPVCache(self, handlePV): + ################################################################################## + + + ################################################################################## + def getCtrl(self, handlePV, str dt='native'): + ################################################################################## + + cdef str _METHOD_="getCtrl(handlePV, str dt='native')" + + cdef unsigned int handle=0 + + if isinstance(handlePV, (int,long)) == 1: + handle=handlePV + elif isinstance(handlePV, (str)) == 1: + handle=self.checkForHandle(handlePV) + else: + raise Exception ("EXCEPTION RAISED IN PyCafe def getCtrl. \n\ +First input argument, should be if handle, else if PV") + + + cdef PVCtrlHolder pvc + + pvc.setNelem(self.hh.getNelemClientCtrl(handle)) #do this dynamically + + cdef int status + with nogil: + status=self._c_cafe.getCtrl(handle, pvc) + + if status !=ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + if handle == 0: + self._c_cafe.printStatusMessage(status) + else: + self._c_cafe.printStatus(handle, status) + if self.haveExceptions: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_,_handle=handle, _pv=self._c_cafe.getPVFromHandle(handle), \ + _ec=status, _et=self.cs.code(status), _ei=self.cs.info(status)) + raise Exception(_cyCafeException) + + pvc_valnone=PVCtrlHolderToStruct(pvc, dt) + pvc_valnone.value[0]=None + return pvc_valnone + return PVCtrlHolderToStruct(pvc, dt) + + ################################################################################## + #END: def getCtrl(self, handlePV, dt='native'): + ################################################################################## + + + + ################################################################################## + def getCtrlCache(self, handlePV, str dt='native'): + ################################################################################## + cdef str _METHOD_="getCtrlCache(handlePV, str dt='native')" + cdef unsigned int handle=0 + + if isinstance(handlePV, (int,long)) == 1: + handle=handlePV + elif isinstance(handlePV, (str)) == 1: + handle=self.checkForHandle(handlePV) + else: + raise Exception ("EXCEPTION RAISED IN PyCafe def getCtrlCache. \n\ +First input argument, should be if handle, else if PV") + + cdef PVCtrlHolder pvc + + pvc.setNelem(self.hh.getNelemToRetrieveFromCtrlCache(handle)) + + status=self._c_cafe.getCtrlCache(handle, pvc) + + if status !=ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + if handle == 0: + self._c_cafe.printStatusMessage(status) + else: + self._c_cafe.printStatus(handle, status) + if self.haveExceptions: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_,_handle=handle, _pv=self._c_cafe.getPVFromHandle(handle), \ + _ec=status, _et=self.cs.code(status), _ei=self.cs.info(status)) + raise Exception(_cyCafeException) + + pvc_valnone=PVCtrlHolderToStruct(pvc, dt) + pvc_valnone.value[0]=None + return pvc_valnone + + return PVCtrlHolderToStruct(pvc, dt) + + ################################################################################## + #END: def getCtrlCache(self, handlePV, dt='native'): + ################################################################################## + + + + ################################################################################## + def groupMonitorStop(self, ghandleName): + ################################################################################## + cdef str _METHOD_="groupMonitorStop(ghandleName)" + + cdef unsigned int ghandle=0 + if isinstance(ghandleName, (int,long)) == 1: + ghandle=ghandleName + elif isinstance(ghandleName, (str)) == 1: + ghandle=self.checkForGroupHandle(ghandleName) + else: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_, \ + _ei="First input argument, should be if group handle, else if group name") + raise Exception(_cyCafeException) + + cdef PVGroup pvg + + with nogil: + self._c_cafe.groupAttach(ghandle, pvg) + + cdef vector[int] vStatus + vStatus.reserve(pvg.getNPV()) + + with nogil: + status=self._c_cafe.groupMonitorStop(ghandle, vStatus) + + if status !=ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + self._c_cafe.printStatusMessage(status) + + return status, vStatus + + + ################################################################################## + #END: def groupMonitorStop(self, ghandleName): + ################################################################################## + + def getMonitorPolicyVector(self, handlePV, _monid): + + + cdef unsigned int handle=0 + if isinstance(handlePV, (int,long)): + handle=handlePV + elif isinstance(handlePV, (str)): + handle=self.checkForHandle(handlePV, force=True) + else: + raise Exception ("EXCEPTION RAISED IN PyCafe def getMonitorPolicyVector \n\ +First input argument, should be if handle, else if PV") + + + cdef vector[MonitorPolicy] mpV + + self.hh.getMonitorPolicyVector(handle, mpV) + + + cdef monitorpolicy mp + + mp = monitorpolicy() + + cdef unsigned int i + + + + for i in range (0, mpV.size()): + + if mpV[i].getMonitorID()== _monid: + + + mp.monid=mpV[i].getMonitorID() + + mp.nelem=mpV[i].getNelem() + + mp.dataType=mpV[i].getDataType() + mp.userArgs=mpV[i].getUserArgs() + mp.dbrDataType=mpV[i].getDbrDataType() + mp.cafeDbrType=mpV[i].getCafeDbrType() + mp.mask=mpV[i].getMask() + mp.maskHasDBE_PROPERTY=mpV[i].maskHasDBE_PROPERTY() + mp.maskHasDBE_VALUE=mpV[i].maskHasDBE_VALUE() + mp.maskHasDBE_LOG=mpV[i].maskHasDBE_LOG() + mp.maskHasDBE_ALARM=mpV[i].maskHasDBE_ALARM() + break + + return mp + + + ################################################################################## + def groupMonitorStart(self, ghandleName, object cb=None, DBR_TYPE dbr=DBR_TIME, unsigned int mask=DBE_VALUE|DBE_LOG|DBE_ALARM): + ########################################################################################## + cdef str _METHOD_="groupMonitorStart(ghandleName, object cb=None, DBR_TYPE dbr=DBR_TIME, unsigned int mask=DBE_VALUE|DBE_LOG|DBE_ALARM)" + + cdef unsigned int ghandle=0 + if isinstance(ghandleName, (int,long)) == 1: + ghandle=ghandleName + elif isinstance(ghandleName, (str)) == 1: + ghandle=self.checkForGroupHandle(ghandleName) + else: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_, \ + _ei="First input argument, should be if group handle, else if group name") + raise Exception(_cyCafeException) + + + global monDictGlobal + + if dbr: + if dbr not in [DBR_PLAIN, DBR_STS, DBR_TIME, DBR_GR, DBR_CTRL]: + print ("***Warning*** from groupMonitorStart for handle(orPV)=", ghandleName) + print ("dbr base type should be one of DBR_PLAIN, DBR_STS, DBR_TIME, DBR_GR, DBR_CTRL") + print ("Assuming DBR_TIME") + dbr=DBR_TIME + + global py_cb + + cdef vector[MonitorPolicy] mpV + cdef unsigned int mpid + + cdef PVGroup pvg + + with nogil: + self._c_cafe.groupAttach(ghandle, pvg) + + cdef MonitorPolicy * mp + mp=self._c_cafe.createMonitorPolicyArray(pvg.getNPV()) + + for i in range(0, pvg.getNPV()): + + mp[i].setMask(mask) + mp[i].setCafeDbrType(dbr) + + mpid=mp[i].getMonitorID() + + if cb: + a=inspect.getargspec(cb) + monDictGlobal[mpid]=cb + + if (len(a[0])==1): + mp[i].setUserArgs( mpid) + mp[i].setPyHandler() + else: + mp[i].setPyHandlerData() + + mpV.push_back(mp[i]) + + + cdef vector[int] vStatus + vStatus.reserve(pvg.getNPV()) + + with nogil: + status=self._c_cafe.groupMonitorStart(ghandle, vStatus, mpV) + + if status !=ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + self._c_cafe.printStatusMessage(status) + + return status, vStatus + + ################################################################################## + + + ################################################################################## + def groupMonitorStartWithCBList(self, ghandleName, list cb=None, DBR_TYPE dbr=DBR_TIME, unsigned int mask=DBE_VALUE|DBE_LOG|DBE_ALARM): + ########################################################################################## + cdef str _METHOD_="groupMonitorStartWithCBList(ghandleName, list cb=None, DBR_TYPE dbr=DBR_TIME, unsigned int mask=DBE_VALUE|DBE_LOG|DBE_ALARM)" + + cdef unsigned int ghandle=0 + if isinstance(ghandleName, (int,long)) == 1: + ghandle=ghandleName + elif isinstance(ghandleName, (str)) == 1: + ghandle=self.checkForGroupHandle(ghandleName) + else: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_, \ + _ei="First input argument, should be if group handle, else if group name") + raise Exception(_cyCafeException) + + + global monDictGlobal + + if dbr: + if dbr not in [DBR_PLAIN, DBR_STS, DBR_TIME, DBR_GR, DBR_CTRL]: + print ("***Warning*** from groupMonitorStartWithCBList for handle(orPV)=", ghandleName) + print ("dbr base type should be one of DBR_PLAIN, DBR_STS, DBR_TIME, DBR_GR, DBR_CTRL") + print ("Assuming DBR_TIME") + dbr=DBR_TIME + + if not isinstance(cb,(list)): + raise Exception ("EXCEPTION RAISED IN PyCafe def groupMonitorStartWithCBList. \n\ +Input cb should be of type and give the list of cb objects") + + global py_cb + + cdef vector[MonitorPolicy] mpV + cdef unsigned int mpid + + cdef PVGroup pvg + + with nogil: + self._c_cafe.groupAttach(ghandle, pvg) + + if (len(cb) != pvg.getNPV() ): + print("No of group members is ", pvg.getNPV(), " while list of callback objects is", len(cb)) + raise Exception ("EXCEPTION RAISED IN PyCafe def groupMonitorStartWithCBList. \n\ +No of group members doe not match the length of callback object list") + + cdef MonitorPolicy * mp + mp=self._c_cafe.createMonitorPolicyArray(pvg.getNPV()) + + for i in range(0, pvg.getNPV()): + + mp[i].setMask(mask) + mp[i].setCafeDbrType(dbr) + + mpid=mp[i].getMonitorID() + + if cb[i]: + a=inspect.getargspec(cb[i]) + monDictGlobal[mpid]=cb[i] + + if (len(a[0])==1): + mp[i].setUserArgs( mpid) + mp[i].setPyHandler() + else: + mp[i].setPyHandlerData() + + mpV.push_back(mp[i]) + + cdef vector[int] vStatus + vStatus.reserve(pvg.getNPV()) + + with nogil: + status=self._c_cafe.groupMonitorStart(ghandle, vStatus, mpV) + + if status !=ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + self._c_cafe.printStatusMessage(status) + + return status, vStatus + + ################################################################################## + + def getGroupStr(self, ghandleName): + return self.getGroup(ghandleName, 'str') + + def getGroupInt(self, ghandleName): + return self.getGroup(ghandleName, 'int') + + def getGroupFloat(self, ghandleName): + return self.getGroup(ghandleName, 'float') + + ################################################################################## + def getGroup(self, ghandleName, str dt='native'): + cdef str _METHOD_="getGroup(ghandleName, str dt='native')" + cdef unsigned int ghandle=0 + if isinstance(ghandleName, (int,long)) == 1: + ghandle=ghandleName + elif isinstance(ghandleName, (str)) == 1: + ghandle=self.checkForGroupHandle(ghandleName) + else: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_, \ + _ei="First input argument, should be if group handle, else if group name") + raise Exception(_cyCafeException) + + cdef PVGroup pvg + + with nogil: + self._c_cafe.groupAttach(ghandle, pvg) + + cdef PVDataHolder * pvd + pvd=pvg.getPVData(); + for i in range (0, pvg.getNPV()): + pvd[i].setHasAlarm(False) + pvd[i].setHasTS(False) + #pvd[i].setRule(False) + + pvg.setPVData(pvd) + ##pvd=pvg.getPVData(); + #print "get rule 0p", pvd[0].getRule() + #print "get rule 1p", pvd[1].getRule() + #print "get rule 2p", pvd[2].getRule() + ## + + with nogil: + status=self._c_cafe.groupGet(ghandle, pvg) + + if status == ECA_TIMEOUT : + print ("======================================================") + self._c_cafe.printStatusMessage(status) + print ("TIMEOUT in getGroup; swithing to getCompoundList") + print ("======================================================") + return self.getCompoundList(pvg.getNameAsString(), dt) + + if status !=ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + self._c_cafe.printStatusMessage(status) + + #do not raise exception + #raise Exception("EXCEPTION RAISED in PyCafe def getGroup. Status = %d" %status) + #pvg.showMaxMax(5,10) + + pvd=pvg.getPVData() + + localList=[] + statusList=[] + cdef unsigned int dtn, dtcheck + + for i in range(0, pvg.getNPV()): + dtn = pvd[i].getDataType(); + + dtcheck=getMatchedDataType(dt, dtn) + + statusList.append(pvd[i].getStatus()) + + if pvd[i].getNelem() == 1: + if dtcheck==CAFE_STRING: + localList.append(pvd[i].getAsString()) + elif dtcheck==CAFE_SHORT: + localList.append(pvd[i].getAsLong()) + elif dtcheck==CAFE_FLOAT: + localList.append(pvd[i].getAsDouble()) + elif dtcheck==CAFE_ENUM: + #if enum, string taken as native + + if self._c_cafe.isEnum(self.hh.getHandleFromPVWithinGroup(pvd[i].getPVName(),ghandle))==1: + localList.append(pvd[i].getAsString()) + else: + localList.append(pvd[i].getAsLong()) + + elif dtcheck==CAFE_CHAR: + localList.append( pvd[i].getAsChar()) + elif dtcheck==CAFE_LONG: + localList.append(pvd[i].getAsLong()) + elif dtcheck==CAFE_DOUBLE: + localList.append(pvd[i].getAsDouble()) + else: + localList.append(0) #no data + else: + localListInner=[] + if dtcheck==CAFE_STRING: + for j in range(0, pvd[i].getNelem()): + localListInner.append(pvd[i].getAsString(j)) + elif dtcheck==CAFE_SHORT: + for j in range(0, pvd[i].getNelem()): + localListInner.append(pvd[i].getAsLong(j)) + elif dtcheck==CAFE_FLOAT: + for j in range(0, pvd[i].getNelem()): + localListInner.append(pvd[i].getAsDouble(j)) + elif dtcheck==CAFE_ENUM: + + for j in range(0, pvd[i].getNelem()): + #if enum, string taken as native + if self._c_cafe.isEnum(self.hh.getHandleFromPVWithinGroup(pvd[i].getPVName(),ghandle))==1: + localListInner.append(pvd[i].getAsString(j)) + else: + localListInner.append(pvd[i].getAsLong(j)) + + elif dtcheck==CAFE_CHAR: + for j in range(0, pvd[i].getNelem()): + localListInner.append(pvd[i].getAsLong(j)) # pvd[i].getAsChar(j)) + elif dtcheck==CAFE_LONG: + for j in range(0, pvd[i].getNelem()): + localListInner.append(pvd[i].getAsLong(j)) + elif dtcheck==CAFE_DOUBLE: + for j in range(0, pvd[i].getNelem()): + localListInner.append(pvd[i].getAsDouble(j)) + else: + for j in range(0, pvd[i].getNelem()): + localListInner.append(0) #no data + localList.append(localListInner) + + + return localList, status, statusList + + ################################################################################## + #END: def getGroup(self, ghandleName, dt='native'): + ################################################################################## + + + + ################################################################################## + def getGroupCache(self, ghandleName, str dt='native'): + cdef str _METHOD_="getGroupCache(self, ghandleName, str dt='native')" + cdef unsigned int ghandle=0 + if isinstance(ghandleName, (int,long)) == 1: + ghandle=ghandleName + elif isinstance(ghandleName, (str)) == 1: + ghandle=self.checkForGroupHandle(ghandleName) + else: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_, \ + _ei="First input argument, should be if group handle, else if group name") + raise Exception(_cyCafeException) + + + cdef PVGroup pvg + + with nogil: + self._c_cafe.groupAttach(ghandle, pvg) + + cdef PVDataHolder * pvd + + with nogil: + status=self._c_cafe.groupGetCache(ghandle, pvg) + + if status !=ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + self._c_cafe.printStatusMessage(status) + + #do not raise exception + #raise Exception("EXCEPTION RAISED in PyCafe def getGroup. Status = %d" %status) + + pvd=pvg.getPVData() + + localList=[] + statusList=[] + cdef unsigned int dtn, dtcheck + + for i in range(0, pvg.getNPV()): + dtn = pvd[i].getDataType(); + + dtcheck=getMatchedDataType(dt, dtn) + + statusList.append(pvd[i].getStatus()) + + if pvd[i].getNelem() == 1: + if dtcheck==CAFE_STRING: + localList.append(pvd[i].getAsString()) + elif dtcheck==CAFE_SHORT: + localList.append(pvd[i].getAsLong()) + elif dtcheck==CAFE_FLOAT: + localList.append(pvd[i].getAsDouble()) + elif dtcheck==CAFE_ENUM: + #if enum, string taken as native + + if self._c_cafe.isEnum(self.hh.getHandleFromPVWithinGroup(pvd[i].getPVName(),ghandle))==1: + localList.append(pvd[i].getAsString()) + else: + localList.append(pvd[i].getAsLong()) + + elif dtcheck==CAFE_CHAR: + localList.append( pvd[i].getAsChar()) + elif dtcheck==CAFE_LONG: + localList.append(pvd[i].getAsLong()) + elif dtcheck==CAFE_DOUBLE: + localList.append(pvd[i].getAsDouble()) + else: + localList.append(0) #no data + else: + localListInner=[] + if dtcheck==CAFE_STRING: + for j in range(0, pvd[i].getNelem()): + localListInner.append(pvd[i].getAsString(j)) + elif dtcheck==CAFE_SHORT: + for j in range(0, pvd[i].getNelem()): + localListInner.append(pvd[i].getAsLong(j)) + elif dtcheck==CAFE_FLOAT: + for j in range(0, pvd[i].getNelem()): + localListInner.append(pvd[i].getAsDouble(j)) + elif dtcheck==CAFE_ENUM: + + for j in range(0, pvd[i].getNelem()): + #if enum, string taken as native + if self._c_cafe.isEnum(self.hh.getHandleFromPVWithinGroup(pvd[i].getPVName(),ghandle))==1: + localListInner.append(pvd[i].getAsString(j)) + else: + localListInner.append(pvd[i].getAsLong(j)) + + elif dtcheck==CAFE_CHAR: + for j in range(0, pvd[i].getNelem()): + localListInner.append(pvd[i].getAsLong(j)) # pvd[i].getAsChar(j)) + elif dtcheck==CAFE_LONG: + for j in range(0, pvd[i].getNelem()): + localListInner.append(pvd[i].getAsLong(j)) + elif dtcheck==CAFE_DOUBLE: + for j in range(0, pvd[i].getNelem()): + localListInner.append(pvd[i].getAsDouble(j)) + else: + for j in range(0, pvd[i].getNelem()): + localListInner.append(0) #no data + localList.append(localListInner) + + + return localList, status, statusList + + ################################################################################## + #END: def getGroup(self, ghandleName, dt='native'): + ################################################################################## + + + ################################################################################## + + def getPVGroupStr(self, ghandleName): + return self.getPVGroup(ghandleName, dt='str') + + def getPVGroupInt(self, ghandleName): + return self.getPVGroup(ghandleName, dt='int') + + def getPVGroupFloat(self, ghandleName): + return self.getPVGroup(ghandleName, dt='float') + + ################################################################################## + def getPVGroup(self, ghandleName, str dt='native'): + cdef str _METHOD_="getPVGroup(ghandleName, str dt='native')" + + cdef unsigned int ghandle=0 + if isinstance(ghandleName, (int,long)) == 1: + ghandle=ghandleName + elif isinstance(ghandleName, (str)) == 1: + ghandle=self.checkForGroupHandle(ghandleName) + #elif isinstance(ghandleName, (pvgroup)) == 1: + # print ("We have a PV Group ", type(ghandleName) ) + else: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_, \ + _ei="First input argument, should be if group handle, else if group name") + raise Exception(_cyCafeException) + + cdef PVGroup pvg + cdef PVDataHolder * pvd + cdef int status + + with nogil: + self._c_cafe.groupAttach(ghandle, pvg) + + pvd=pvg.getPVData() + + ''' + for i in range (0, pvg.getNPV()): + pvd[i].setHasAlarm(True) + pvd[i].setHasTS(True) + #pvd[i].setRule(True) + + pvg.setPVData(pvd) + ''' + + + with nogil: + status=self._c_cafe.groupGet(ghandle, pvg) + + + if status !=ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + print("Error in PyCafe def getPVGroup. Status = %d" %status) + self._c_cafe.printStatusMessage(status) + #do not raise exception + #raise Exception("EXCEPTION RAISED in PyCafe def getPVGroup. Status = %d" %status) + + + if status == ECA_TIMEOUT: + print ("======================================================") + print ("TIMEOUT in getGroup; swithing to getCompoundPVGroup") + print ("======================================================") + return self.getCompoundPVGroup(ghandle,dt) + + pvd=pvg.getPVData() + + localList=[] + + for i in range(0, pvg.getNPV()): + #print(pvd[i].getAsString(0), " " , pvd[i].getStatus()) + #print(pvd[i].getEpicsTimeStampAsUInt32().secPastEpoch, " ", pvd[i].getEpicsTimeStampAsUInt32().nsec) + localList.append(PVDataHolderToStruct(pvd[i], dt)) + cpdef pvgroup pg + + pg = pvgroup() + + pg.pvdata=localList + + pg.npv=pvg.getNPV() + pg.name=pvg.getNameAsString() + pg.groupStatus=pvg.getStatusGroup() + pg.groupHandle=pvg.getGroupHandle() + + #pg.showMax(1) + + + return pg #localList, status + ################################################################################## + #END: def getPVGroup(self, ghandleName, str dt='native') + ################################################################################## + + + + ################################################################################## + def getPVGroupCache(self, ghandleName, str dt='native'): + cdef str _METHOD_="getPVGroupCache" + + cdef unsigned int ghandle=0 + if isinstance(ghandleName, (int,long)) == 1: + ghandle=ghandleName + elif isinstance(ghandleName, (str)) == 1: + ghandle=self.checkForGroupHandle(ghandleName) + #elif isinstance(ghandleName, (pvgroup)) == 1: + # print ("We have a PV Group ", type(ghandleName) ) + else: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_, \ + _ei="First input argument, should be if group handle, else if group name") + raise Exception(_cyCafeException) + + cdef PVGroup pvg + cdef PVDataHolder * pvd + cdef int status + + + with nogil: + self._c_cafe.groupAttach(ghandle, pvg) + print ("==============" ) + print (_METHOD_) + pvg.showMax(1) + + pvd=pvg.getPVData() + + status=self._c_cafe.groupGetCache(ghandle, pvg) + pvg.showMax(1) + print ("==============" ) + print(status, pvg.getStatusGroup() ) + print ("==============" ) + if status !=ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + print("Error in PyCafe def getPVGroupCache. Status = %d" %status) + self._c_cafe.printStatusMessage(status) + #do not raise exception + #raise Exception("EXCEPTION RAISED in PyCafe def getPVGroup. Status = %d" %status) + + + pvd=pvg.getPVData() + + localList=[] + + for i in range(0, pvg.getNPV()): + #print(pvd[i].getAsString(0), " " , pvd[i].getStatus()) + #print(pvd[i].getEpicsTimeStampAsUInt32().secPastEpoch, " ", pvd[i].getEpicsTimeStampAsUInt32().nsec) + localList.append(PVDataHolderToStruct(pvd[i], dt)) + cpdef pvgroup pg + + pg = pvgroup() + + pg.pvdata=localList + + pg.npv=pvg.getNPV() + pg.name=pvg.getNameAsString() + pg.groupStatus= pvg.getStatusGroup() + pg.groupHandle=pvg.getGroupHandle() + + return pg + ################################################################################## + #END: def getPVGroup(self, ghandleName, str dt='native') + ################################################################################## + + + + + + + + + + + ################################################################################## + def PVGroupValuesToList(self, pvgroup pg): + glist=[] + for i in range(0,pg.npv): + if len(pg.pvdata[i].value)==1: + glist.append(pg.pvdata[i].value[0]) + else: + iL=[] + for j in range(0, len(pg.pvdata[i].value)): + iL.append(pg.pvdata[i].value[j]) + glist.append(iL) + return glist + ################################################################################## + + + ################################################################################## + def groupMemberList(self, str gname): + cdef str _METHOD_="groupMemberList(self, str gname)" + cdef vector[string] pvlist + status=self._c_cafe.groupMemberList(gname, pvlist) + if status !=ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + self._c_cafe.printStatusMessage(status) + +#for i in range(0, len(pvlist)): +# memberList.append(pvlist[i]) + return pvlist + + + ################################################################################## + + def grouping(self, char * gname, list _pvlist): + cdef str _METHOD_="grouping(char * gname, list _pvlist)" + + cdef int status + status=self._c_cafe.groupDefine(gname, _pvlist) + if status !=ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + self._c_cafe.printStatusMessage(status) + + cdef unsigned int ghandle=0 + cdef char * _gname=gname + + #try: + # self._c_cafe.groupOpen(_gname, ghandle) + #except: + # raise Exception("EXCEPTION RAISED in PyCafe def grouping. ERROR OPENING PVGROUP= %s" %_gname) + + + try: + status=self._c_cafe.groupOpen(_gname, ghandle) + except: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_,_handle=ghandle, _pv=_gname, \ + _ec=ECA_ALLOCMEM, _et=self.cs.code(ECA_ALLOCMEM), _ei=self.cs.info(ECA_ALLOCMEM)) + raise Exception(_cyCafeException) + + if status != ICAFE_NORMAL: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_,_handle=ghandle, _pv=_gname, \ + _ec=status, _et=self.cs.code(status), _ei=self.cs.info(status)) + raise Exception(_cyCafeException) + + #cdef PVGroup pvg + #self._c_cafe.groupAttach(ghandle, pvg); + + cdef: + list localList + list statusList + + + if self._c_cafe.channelOpenGroupPolicy.getWhenToFlushSendBuffer()==FLUSH_NOW: + + localList,status,statusList= self.getGroup(ghandle) + + if status !=ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + print ("") + print ("Error in def grouping for group named", _gname) + self._c_cafe.printStatusMessage(status) + print ("Analysing statusList[]...") + for i in range(0, len(statusList)): + if statusList[i] !=ICAFE_NORMAL: + print ("PV", _pvlist[i], "[",i,"]", " has error: ") + self._c_cafe.printStatusMessage(statusList[i]) + print ("") + return ghandle + + ################################################################################## + def defineGroup(self, char * gname, list _pvlist): + #cdef vector[const char *] pvlist + #for i in range(0, len(_pvlist)): + # pvlist.push_back(_pvlist[i]) + status=self._c_cafe.groupDefine(gname, _pvlist) + if status !=ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + self._c_cafe.printStatusMessage(status) + return status + ################################################################################## + + ################################################################################## + def groupOpen(self, char * gname): + cdef str _METHOD_="groupOpen(char * gname)" + + if isinstance(gname, (str)) == 0: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_, \ + _ei="First input argument should be for group name") + raise Exception(_cyCafeException) + + cdef unsigned int ghandle=0 + cdef char * _gname=gname + + try: + status=self._c_cafe.groupOpen(_gname, ghandle) + except: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_,_handle=ghandle, _pv=_gname, \ + _ec=ECA_ALLOCMEM, _et=self.cs.code(ECA_ALLOCMEM), _ei=self.cs.info(ECA_ALLOCMEM)) + raise Exception(_cyCafeException) + + if status != ICAFE_NORMAL: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_,_handle=ghandle, _pv=_gname, \ + _ec=status, _et=self.cs.code(status), _ei=self.cs.info(status)) + raise Exception(_cyCafeException) + + return ghandle + ################################################################################## + + + ################################################################################## + def groupClose(self, gHandleName): + cdef str _METHOD_="groupClose(gHandleName)" + + cdef unsigned int gHandle=0 + cdef str _gname=None + status=ICAFE_NORMAL + + if isinstance(gHandleName, (int,long)): + gHandle=gHandleName + elif isinstance(gHandleName, (str)): + _gname=gHandleName + gHandle=self.checkForGroupHandle(gHandleName) + else: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_, \ + _ei="First input argument, should be if group handle, else if group name") + raise Exception(_cyCafeException) + + if gHandle == 0: + status=ECAFE_INVALID_GROUP_HANDLE + + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + self._c_cafe.printStatusMessage(status) + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_,_handle=gHandle, _pv=_gname, \ + _ec=status, _et=self.cs.code(status), _ei=self.cs.info(status)) + raise Exception(_cyCafeException) + + + status=self._c_cafe.groupClose(gHandle) + + + if status != ICAFE_NORMAL: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_,_handle=gHandle, _pv=_gname, \ + _ec=status, _et=self.cs.code(status), _ei=self.cs.info(status)) + raise Exception(_cyCafeException) + + return status + ################################################################################## + + def getNoMonitors(self, handlePV): + cdef str _METHOD_="getNoMonitors(handlePV)" + + cdef unsigned int handle=0 + if isinstance(handlePV, (int,long)) == 1: + handle=handlePV + elif isinstance(handlePV, (str)) == 1: + handle=self.checkForHandle(handlePV) + else: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_, \ + _ei="First input argument, should be if handle, else if PV") + raise Exception(_cyCafeException) + return self.hh.getNmonitor(handle) + ################################################################################## + + ################################################################################## + def getMonitorIDs(self, handlePV): + cdef str _METHOD_="getMonitorIDs(handlePV)" + cdef unsigned int handle=0 + if isinstance(handlePV, (int,long)) == 1: + handle=handlePV + elif isinstance(handlePV, (str)) == 1: + handle=self.checkForHandle(handlePV) + else: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_, \ + _ei="First input argument, should be if handle, else if PV") + raise Exception(_cyCafeException) + + return self.hh.getMonitorIDs(handle); + ################################################################################## + + ########################################################################################## + def monitorStart(self, handlePV, object cb=None, DBR_TYPE dbr=DBR_TIME, unsigned int mask=DBE_VALUE|DBE_LOG|DBE_ALARM): + cdef str _METHOD_="monitorStart(handlePV, object cb=None, DBR_TYPE dbr=DBR_TIME, unsigned int mask=DBE_VALUE|DBE_LOG|DBE_ALARM)" + + pv=None + cdef int status=ICAFE_NORMAL + + #cdef pCallback my_callback + #my_callback=callbackHandlerMonitor + + cdef unsigned int handle=0 + if isinstance(handlePV, (int,long)) == 1: + handle=handlePV + elif isinstance(handlePV, (str)) == 1: + pv=handlePV + handle=self.checkForHandle(handlePV) + else: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_, \ + _ei="First input argument, should be if handle, else if PV") + raise Exception(_cyCafeException) + + #py_cb_handle phase out; us fn in dictionary! + #global py_cb_handle + global py_cb + + #if cb: + # py_cb=cb + + #Does channel Exist? + if self._c_cafe.isValid(handle) == 0: + status=ECAFE_INVALID_HANDLE + if self.haveExceptions: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_,_handle=handle, _pv=pv, \ + _ec=status, _et=self.cs.code(status), _ei=self.cs.info(status)) + raise Exception(_cyCafeException) + return status; + + + cdef MonitorPolicy mp + cdef unsigned int mpid=mp.getMonitorID() + + mp.setMask(mask) + + + #print ("dbr=", dbr) + self._c_cafe.getChannelInfo(handle,self.channelInfo) + #print ("nativeDataType=", self.channelInfo.getDataType()) + + + if dbr in [DBR_PLAIN, DBR_STS, DBR_TIME, DBR_GR, DBR_CTRL]: + #set Native Datatype first + mp.setDataType(self.channelInfo.getDataType()); + mp.setCafeDbrType(dbr) + #print ("def monitorStart ", mp.getCafeDbrType()) + #print ("def monitorStart ", mp.getDbrDataType()) + else: + print ("***Warning*** from monitorStart for handle=",handlePV) + print ("dbr base type should be one of DBR_PLAIN, DBR_STS, DBR_TIME, DBR_GR, DBR_CTRL") + print ("Assuming DBR_TIME") + mp.setDataType(self.channelInfo.getDataType()); + mp.setCafeDbrType(DBR_TIME) + + #if cb: + # + # print "py_cb_handle", len(a[0]) + + global monDictGlobal + #print ("MONITOR START (self, handlePV, object cb=None, DBR_TYPE dbr=DBR_TIME, unsigned int mask) ") + #print (monDictGlobal) + + if cb: + a=inspect.getargspec(cb) + #print (a) + if(len(a[0])==1): + ##py_cb_handle=cb + #self.monidList.append(mpid) + #self.moncbList.append(cb) + ##self.monDict[mpid]=cb + + monDictGlobal[mpid]=cb + #print (monDictGlobal) + #print self.monidList + #print self.moncbList + #print self.monDict + # + #print "mpid = ", mpid + mp.setUserArgs( mpid) + mp.setPyHandler() + #print (mp.getUserArgs()) + else: + py_cb=cb + mp.setPyHandlerData() + #else: + # mp.setHandler(callbackHandlerMonitor_wrapper) + + + with nogil: + status=self._c_cafe.monitorStart(handle,mp) + + + #Need this to allow a fraction of a second for the callback fn to be called + #if setPyHandler is used + if (self.getMonitorWhenToFlushSendBuffer == FLUSH_NOW): + time.sleep(0.01); + if status !=ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + if handle == 0: + self._c_cafe.printStatusMessage(status) + else: + self._c_cafe.printStatus(handle, status) + #do not raise an exception + #raise Exception("EXCEPTION RAISED in PyCafe def monitorStart. Status = %d" %status) + + return mpid + ################################################################################## + + + ################################################################################## + def monitorStop(self, handlePV, mpid=None): + cdef str _METHOD_="monitorStop(handlePV, mpid=None)" + + cdef unsigned int handle=0 + if isinstance(handlePV, (int,long)) == 1: + handle=handlePV + elif isinstance(handlePV, (str)) == 1: + handle=self.checkForHandle(handlePV) + else: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_, \ + _ei="First input argument, should be if handle, else if PV") + raise Exception(_cyCafeException) + + cdef int status + cdef unsigned int mpidUI + + global monDictGlobal + + if mpid: + if isinstance(mpid, (int,long)): + mpidUI=mpid + with nogil: + status=self._c_cafe.monitorStopWithID(handle, mpidUI) + time.sleep(0.01) + + if (status==ICAFE_NORMAL): + #index=self.monidList.index(mpidUI) + #self.monidList.remove(mpidUI) + #self.moncbList.remove(self.moncbList[index]) + #del self.monDict[mpidUI] + + #print (monDictGlobal) + #DELETE ENTRY ONLY IF IT EXISTS! + if monDictGlobal.has_key(mpidUI): + del monDictGlobal[mpidUI] + + else: + raise Exception ("EXCEPTION RAISED IN PyCafe def monitorStop. \n\ +monitorPolicy ID (mpid) should be ") + else: + with nogil: + status=self._c_cafe.monitorStop(handle) + time.sleep(0.01) + + if (status==ICAFE_NORMAL): + + #print "size", self.hh.getNmonitor(handle) + mpidUIV=self.hh.getMonitorIDs(handle) + #print "size", mpidUIV.size() + + for i in range(0, mpidUIV.size()): + #index=self.monidList.index(mpidUIV[i]) + #self.monidList.remove(mpidUIV[i]) + #self.moncbList.remove(self.moncbList[index]) + #del self.monDict[mpidUIV[i]] + if monDictGlobal.has_key(mpidUIV[i]): + del monDictGlobal[mpidUIV[i]] + #monDictGlobal.remove(mpidUIV[i]) + + if status !=ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + if handle == 0: + self._c_cafe.printStatusMessage(status) + else: + self._c_cafe.printStatus(handle, status) + #do not raise an exception + #raise Exception("EXCEPTION RAISED in PyCafe def monitorStop. Status = %d" %status) + + return status + ################################################################################## + + + ################################################################################## + def monitorStopAll(self): + + cdef str _METHOD_="monitorStopAll()" + + global monDictGlobal + + cdef int status + with nogil: + status=self._c_cafe.monitorStopAll() + + #give plenty of time for monitors to stop! + + #print ("-----------------------------------------------------------------") + #print self.monidList + #print self.moncbList + #print self.monDict + #print (monDictGlobal) + #print ("------------------------------------------------------------------") + #del self.monidList[:] + #del self.moncbList[:] + #self.monDict.clear() + time.sleep(0.5) + monDictGlobal.clear() + + #print self.monDict + #print monDictGlobal + + if status !=ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + self._c_cafe.printStatusMessage(status) + raise Exception("EXCEPTION RAISED in PyCafe def monitorStopAll. Status = %d" %status) + + return status + ################################################################################## + + + ################################################################################## + def set(self, handlePV, valSet): + cdef str _METHOD_="set(handlePV, valSet)" + + cdef unsigned int handle=0 + + if isinstance(handlePV, (int,long)): + handle=handlePV + elif isinstance(handlePV, (str)): + handle=self.checkForHandle(handlePV) + else: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_, \ + _ei="First input argument, should be if handle, else if PV") + raise Exception(_cyCafeException) + + + #CHECK FOR ALL DATA TYPES! + + cdef unsigned short valType=CAFE_STRING + cdef int status=ICAFE_NORMAL + cdef float valSetF + cdef double valSetD + cdef int valSetI + cdef long long valSetLL + cdef short valSetShort + cdef unsigned short valSetUShort + cdef unsigned char valSetChar + cdef string valSetS + cdef vector[double] vecD + cdef vector[float] vecF + cdef vector[short] vecShort + cdef vector[unsigned short] vecUShort + cdef vector[dbr_char_t] vecChar + cdef vector[dbr_long_t] vecI + cdef vector[string] vecS + + cdef unsigned int nLA=0 + + cdef tuple ctypesString = (ctypes.c_wchar, ctypes.c_char_p, ctypes.c_wchar_p) + cdef tuple ctypesUChar = (ctypes.c_char, ctypes.c_ubyte, ctypes.c_bool, ctypes.c_uint8, ) + cdef tuple ctypesShort = (ctypes.c_int16, ctypes.c_int8, ctypes.c_short, ctypes.c_byte) + cdef tuple ctypesUShort = (ctypes.c_uint16,ctypes.c_ushort) + cdef tuple ctypesInt = (ctypes.c_int, ctypes.c_int32, \ + ctypes.c_long, ctypes.c_size_t) + cdef tuple ctypesLongLong=(ctypes.c_uint, ctypes.c_uint32, ctypes.c_int64, ctypes.c_uint64, \ + ctypes.c_ulong,ctypes.c_ulonglong, ctypes.c_longdouble, \ + ctypes.c_longlong, ctypes.c_ssize_t, \ + ctypes.c_void_p, ctypes.c_voidp) + +# ctypes.c_char, ctypes.c_float, ctypes.c_double are separate + + + cdef tuple dtypesString = (np.str_, np.unicode_) + cdef tuple dtypesUChar = (np.ubyte, np.bool8, np.bool_, np.uint8) + cdef tuple dtypesShort = (np.byte, np.short, np.int8, np.int16) + cdef tuple dtypesUShort = (np.uint16,np.ushort) + cdef tuple dtypesInt = (np.int_, np.intc, np.int32, np.uintp) + cdef tuple dtypesLongLong= (np.uint, np.uintc, np.uint32, np.int64, np.uint64, \ + np.ulonglong, np.longlong, np.intp, np.uintp) + + cdef tuple dtypesFloat = (np.single, np.float16, np.float32) + cdef tuple dtypesDouble = (np.double, np.float_, np.float64) + + + #List: Major[0] Minor[1] Patch[2] 'final'[3] 0 [4] + #print "type= // ", type(valSet) + + cdef bint isGoodType=False + cdef bint isBytesType=False + +# print('set method', type(valSet)) + +# print("is instance array.array", isinstance(valSet, array.array)) +# print("is instance np.ndarray", isinstance(valSet, np.ndarray)) +# print("is instance memoryview", isinstance(valSet, memoryview)) +# print("is instance ctypes float", isinstance(valSet, ctypes.c_float)) +# print("is instance ctypes long ", isinstance(valSet, ctypes.c_long )) +# print("is instance ctypes int ", isinstance(valSet, ctypes.c_int )) +# print("is instance int ", isinstance(valSet, int )) +# print("is instance ctypes char_p ", isinstance(valSet, ctypes.c_char_p )) +# print("is instance ctypes Array ", isinstance(valSet, ctypes.Array )) +# print("is instance bytes ", isinstance(valSet, bytes )) +# print("is instance bytearrays ", isinstance(valSet, bytearray )) + # ctypes.c_buffer is of class function + # crtpes.c_buffer(b'abc') is of rtype ctypes.Array (!)) +#print("is instance ctypes buffer ", isinstance(valSet, ctypes.c_buffer )) # no such type! + +# dir(ctypes) +# print(type(valSet)) +# print (valSet.__class__) + cdef str classType = (valSet.__class__).__name__ + cdef str substringmv = "_memoryviewslice" + + + #print ("python Version", self.pythonVersion[0]) + + #Cython does not know about PyCafe._memoryviewslice + #if (isinstance(valSet,PyCafe._memoryviewslice)): + # print('OK for memoryview') + + if ( (self.pythonVersion[0] > 2 ) or (self.pythonVersion[0] == 2 and self.pythonVersion[1]>6) ) : + + if isinstance(valSet,(list, array.array, np.ndarray, cython.view.memoryview, memoryview, ctypes.Array)): + isGoodType=True + else: + if isinstance(valSet,(list, array.array, np.ndarray, ctypes.Array)): + isGoodType=True + + if (isGoodType==False): + if (substringmv in classType): + isGoodType=True + + #This is to cater for ctypes.c_buffer which is an instance of ctypes.Array + #where the element of the array is of type bytes - there need to match to cafe.setString + if isinstance(valSet,ctypes.Array): + if isinstance(valSet[0],bytes): + isGoodType=False + isBytesType=True + + #where the element of the array is of type bytes - there need to match to cafe.setSrting + + #if isinstance(valSet,np.ndarray): + #print ("np.ndarray is true") + #print (type(valSet[0])) + #if isinstance(valSet[0],bytes): + #isGoodType=False + #isBytesType=True + + #print("isGoodType ", isGoodType) + #print("isBytesType ", isBytesType) + + if isGoodType: + + #print('set method', type(valSet[0])) + + nLA=len(valSet) + + #Just check on first element if array.array etc.. + if not isinstance(valSet, (list)): + #if isinstance(valSet, (array.array, np.ndarray, cython.view.memoryview, memoryview)): + nLA=1 + + for i in range(0, nLA): + if isinstance(valSet[i],(str, bytes)): + valType=CAFE_STRING + break + elif isinstance(valSet[i],dtypesString): + valType=CAFE_STRING + break + elif isinstance(valSet[i],(float)): + valType=CAFE_DOUBLE + elif isinstance(valSet[i],(dtypesDouble)): + valType=CAFE_DOUBLE + elif isinstance(valSet[i],(dtypesFloat)): + valType=CAFE_FLOAT + elif isinstance(valSet[i],(long, int)): + valType=CAFE_LONG + elif isinstance(valSet[i], dtypesInt+dtypesLongLong+dtypesUChar): + valType=CAFE_LONG + elif isinstance(valSet[i], dtypesShort): + valType=CAFE_SHORT + elif isinstance(valSet[i], dtypesUShort): + valType=CAFE_USHORT + else: + + print("PyCafe.pyx: We do not cater for type ", type(valSet[i]), " and thus assume a string" ) + valType=CAFE_STRING + break + + # valSet to vector since + # coercion from Python not allowed without the GIL + if valType==CAFE_DOUBLE: + + vecD.reserve(len(valSet)) + for i in range(0, len(valSet)): + vecD.push_back(valSet[i]) + with nogil: + status=self._c_cafe.setVDouble(handle, vecD) + + elif valType==CAFE_FLOAT: + + vecF.reserve(len(valSet)) + for i in range(0, len(valSet)): + vecF.push_back(valSet[i]) + with nogil: + status=self._c_cafe.setVFloat(handle, vecF) + + elif valType==CAFE_LONG: + + vecI.reserve(len(valSet)) + for i in range(0, len(valSet)): + vecI.push_back(valSet[i]) + + with nogil: + status=self._c_cafe.setVLong(handle, vecI) + + elif valType==CAFE_SHORT: + + vecShort.reserve(len(valSet)) + for i in range(0, len(valSet)): + vecShort.push_back(valSet[i]) + + with nogil: + status=self._c_cafe.setVShort(handle, vecShort) + + elif valType==CAFE_USHORT: + + vecUShort.reserve(len(valSet)) + for i in range(0, len(valSet)): + vecUShort.push_back(valSet[i]) + + with nogil: + status=self._c_cafe.setVUShort(handle, vecUShort) + + elif valType==CAFE_CHAR: + + vecChar.reserve(len(valSet)) + for i in range(0, len(valSet)): + vecChar.push_back(valSet[i]) + + with nogil: + status=self._c_cafe.setVChar(handle, vecChar) + + elif valType==CAFE_STRING: + vecS.reserve(len(valSet)) + for i in range(0, len(valSet)): + vecS.push_back(str(valSet[i])) + with nogil: + status=self._c_cafe.setVString(handle, vecS) + + elif isBytesType: + #print("isBytesType") + valSetS=valSet.value + with nogil: + status=self._c_cafe.setString(handle, valSetS) + elif isinstance(valSet, (ctypes.c_char)): + #print("is ctypes.c_char") + #print(valSet.value) + #print(valSet.value.decode()) + valSetS=valSet.value.decode() + with nogil: + status=self._c_cafe.setString(handle, valSetS) + elif isinstance(valSet, (ctypes.c_float)): + valSetF=valSet.value + with nogil: + status=self._c_cafe.setFloat(handle, valSetF) + elif isinstance(valSet, (ctypes.c_double)): + valSetD=valSet.value + with nogil: + status=self._c_cafe.setDouble(handle, valSetD) + elif isinstance(valSet, ctypesInt): + #print("ctypesInt") + valSetI= valSet.value + with nogil: + status=self._c_cafe.setLong(handle, valSetI) + elif isinstance(valSet, ctypesLongLong): + #print("ctypesLongLong") + valSetLL=valSet.value + with nogil: + status=self._c_cafe.setLong(handle, valSetLL) + elif isinstance(valSet, ctypesShort): + #print("ctypesShort") + valSetShort=valSet.value + with nogil: + status=self._c_cafe.setShort(handle, valSetShort) + elif isinstance(valSet, ctypesUShort): + #print("ctypesUShort") + valSetUShort=valSet.value + with nogil: + status=self._c_cafe.setUShort(handle, valSetUShort) + elif isinstance(valSet, (ctypesString) ): + #print("ctypesString") + valSetS=valSet.value + with nogil: + status=self._c_cafe.setString(handle, valSetS) + elif isinstance(valSet, ctypesUChar): + #print("ctypesUChar") + valSetUChar=valSet.value + with nogil: + status=self._c_cafe.setChar(handle, valSetUChar) + elif isinstance(valSet, (float)): +#print("float type") + valSetD= valSet + with nogil: + status=self._c_cafe.setDouble(handle, valSetD) + elif isinstance(valSet, (int, long)): + #print("int/long type") + valSetI= valSet + with nogil: + status=self._c_cafe.setLong(handle, valSetI) + elif isinstance(valSet, (str)): +# print("str type") + valSetS=valSet + with nogil: + status=self._c_cafe.setString(handle, valSetS) + elif isinstance(valSet, (bytes,bytearray)): + #print("bytes,bytearray") + valSetS=valSet.decode('utf8') + with nogil: + status=self._c_cafe.setString(handle, valSetS) + elif isinstance(valSet, (unicode)): + #print("unicode") + valSetS=valSet + with nogil: + status=self._c_cafe.setString(handle, valSetS) + else: + print("PyCafe def set WARNING: DATA TYPE NOT SUPPORTED") + print("Input data (whether within a 'list','array.array','cython.view.memoryview','memoryview' \n\ +or not) should be of , or ") + type(valSet) + + + if status !=ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + if handle == 0: + self._c_cafe.printStatusMessage(status) + else: + self._c_cafe.printStatus(handle, status) + if self.haveExceptions: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_,_handle=handle, _pv=self._c_cafe.getPVFromHandle(handle), \ + _ec=status, _et=self.cs.code(status), _ei=self.cs.info(status)) + raise Exception(_cyCafeException) + + return status + ################################################################################## + #END def set(self, handlePV, valSet): + ################################################################################## + + + + ################################################################################## + def setScalarList(self, handleList, list valList): + cdef str _METHOD_="setScalarList(handleList, list valList)" + + if not isinstance(handleList, (list)): + raise Exception ("EXCEPTION RAISED IN PyCafe def setScalarList. \n\ +First input argument, should be of handles or PVs") + + if isinstance(handleList[0], (str)): + handleList=self.checkForHandleList(handleList) + elif not isinstance(handleList[0], (int, long)): + raise Exception ("EXCEPTION RAISED IN PyCafe def setScalarList. \n\ +First input argument, should be a 'list' of if handles or if PVs") + + if len(handleList) != len(valList): + raise Exception ("EXCEPTION RAISED IN PyCafe def setScalarList. \ +Length of handle list ", len(handleList), " does not match the length of data list ", len(valList)) + + nelemPrevious = [] + + #Better with PVDataHolder + cdef unsigned int nelemTotal=0 + for i in range(0, len(handleList)): + #nelemTotal+=self.hh.getNelemNative(handleList[i]) + nelemPrevious.append(self.hh.getNelemClient(handleList[i])) + + #cdef int size_cdu = sizeof(CAFE_DATATYPE_UNION) + + + #do this to avoid compiler warning messages + cdef vector[unsigned int] v + for i in range(0, len(handleList)): + v.push_back(handleList[i]) + + #Create temporary group from handleList + #Does group exist? + cdef PVDataHolder * pvd = self._c_cafe.getPVData(v) + + #cdef PVDataHolder * pvd = malloc( 100000000 + \ + # len(handleList) * sizeof(PVDataHolder) + nelemTotal*size_cdu) + + + for i in range(0, len(handleList)): + #pvd[i].val =malloc(sizeof(CAFE_DATATYPE_UNION)) + #pvd[i]= PVDataHolder(1); + pvd[i].setNelem(1) + + cdef unsigned short valType=CAFE_STRING + + for i in range(0, len(handleList)): + if isinstance(valList[i],(str)): + pvd[i].setString(valList[i]) + elif isinstance(valList[i],(float)): + pvd[i].setDouble(valList[i]) + elif isinstance(valList[i],(long, int)): + pvd[i].setInt(valList[i]) + else: + print ("This line in PyCafe def setScalarList should never appear!") + + cdef int status=ICAFE_NORMAL + with nogil: + status=self._c_cafe.setPVArray(v, pvd) + + for i in range(0, len(handleList)): + if (nelemPrevious[i] != 1): + self._c_cafe.setNelemToPrevious(handleList[i],nelemPrevious[i]) + + #return status for individual channels + statusList=[] + + if status !=ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + self._c_cafe.printStatusMessage(status) + + for i in range(0, len(handleList)): + if (pvd[i].getStatus() != ICAFE_NORMAL): + print ("Handle=", handleList[i], "PV=", self.hh.getPVFromHandle(handleList[i]) ) + print ("with error status=", pvd[i].getStatus()) + self._c_cafe.printStatusMessage(pvd[i].getStatus()) + print ("") + statusList.append(pvd[i].getStatus()) + + #free(pvd) + + return status, statusList + + ################################################################################## + + + + + ################################################################################## + def setCompoundList(self, handleList, list vectorList): + + cdef str _METHOD_="setCompoundList(handleList, list vectorList)" + + if isinstance(handleList, (str)): + handleList=self.getHandlesFromWithinGroup(handleList) + else: + if not isinstance(handleList, (list)): + raise Exception ("EXCEPTION RAISED IN PyCafe def setCompoundList. \n\ +First input argument, should be of handles or PVs") + + if isinstance(handleList[0], (str)): + handleList=self.checkForHandleList(handleList) + elif not isinstance(handleList[0], (int, long)): + raise Exception ("EXCEPTION RAISED IN PyCafe def setCompoundList. \n\ +First input argument, should be a 'list' of if handles or if PVs") + + if len(handleList) != len(vectorList): + raise Exception ("EXCEPTION RAISED IN PyCafe def setCompoundList. \ +Length of handle list ", len(handleList), " does not match the length of data list ", len(vectorList)) + + + #do this to avoid compiler warning messages + cdef vector[unsigned int] v + cdef int i + + for i in range(0, len(handleList)): + v.push_back(handleList[i]) + + #Create temporary group from handleList + #Does group exist? + cdef PVDataHolder * pvdata = self._c_cafe.getPVData(v) + + + for i in range(0, len(vectorList)): + + #if not list + if isinstance(vectorList[i],(str)): + pvdata[i].setString(vectorList[i]) + + elif isinstance(vectorList[i],(float)): + pvdata[i].setDouble(vectorList[i]) + + elif isinstance(vectorList[i],(long, int)): + pvdata[i].setInt(vectorList[i]) + + elif isinstance(vectorList[i], (list)): + + #if list + valType=CAFE_INVALID_DATATYPE + pvdata[i].setNelem(len(vectorList[i])) + #for k in range(0, len(vectorList[i])): + #Just check on first element + for k in range(0,1): # can expand this to all elemnts or reduce to 1 + if isinstance(vectorList[i][k],(str)): + valType=CAFE_STRING + break + elif isinstance(vectorList[i][k],(float)): + valType=CAFE_DOUBLE + elif isinstance(vectorList[i][k],(long, int)): + if valType != CAFE_DOUBLE: + valType=CAFE_LONG + else: + valType=CAFE_STRING + break + + #check dt of first element + if valType==CAFE_DOUBLE: + pvdata[i].setVDouble(vectorList[i]) + elif valType==CAFE_LONG: + pvdata[i].setVInt (vectorList[i]) + elif valType==CAFE_STRING: + pvdata[i].setVString(vectorList[i]) + + else: + print ("This line in PyCafe def setCompoundList should never appear!") + raise Exception ("EXCEPTION RAISED IN PyCafe def setCompoundList. \n\ +Unknown data input; should be one of , , , ") + + #endForLoop + + cdef int status=ICAFE_NORMAL + with nogil: + status=self._c_cafe.setPVArray(v, pvdata) + + #return status for individual channels + statusList=[] + + if status !=ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + self._c_cafe.printStatusMessage(status) + + for i in range(0, len(handleList)): + if (pvdata[i].getStatus() != ICAFE_NORMAL): + print ("Handle=", handleList[i], "PV=", self.hh.getPVFromHandle(handleList[i]) ) + print ("with error status=", pvdata[i].getStatus()) + self._c_cafe.printStatusMessage(pvdata[i].getStatus()) + print ("") + #raise Exception("EXCEPTION RAISED in PyCafe def setCompoundList. Status = %d" %status) + statusList.append(pvdata[i].getStatus()) + + return status, statusList + + ################################################################################## + + + + + ################################################################################## + def setGroup(self, ghandleName, list vectorList): + + cdef str _METHOD_="setGroup(self, ghandleName, list vectorList)" + + cdef unsigned int ghandle=0 + if isinstance(ghandleName, (int,long)) == 1: + ghandle=ghandleName + elif isinstance(ghandleName, (str)) == 1: + ghandle=self.checkForGroupHandle(ghandleName) + else: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_, \ + _ei="First input argument should be if group handle, else if group name") + raise Exception(_cyCafeException) + + cdef PVGroup pvg + + with nogil: + self._c_cafe.groupAttach(ghandle, pvg) + ### + #print ("len V", len(vectorList), " npv=", pvg.getNPV()) + + cdef PVDataHolder * pvdata = pvg.getPVData(); + + + for i in range(0, len(vectorList)): + + #if not list + if isinstance(vectorList[i],(str)): + pvdata[i].setString(vectorList[i]) + + elif isinstance(vectorList[i],(float)): + pvdata[i].setDouble(vectorList[i]) + + elif isinstance(vectorList[i],(long, int)): + pvdata[i].setInt(vectorList[i]) + + elif isinstance(vectorList[i], (list)): + + #if list + valType=CAFE_INVALID_DATATYPE + pvdata[i].setNelem(len(vectorList[i])) + #for k in range(0, len(vectorList[i])): + #Just check on first element + for k in range(0,1): # can expand this to all elemnts or reduce to 1 + if isinstance(vectorList[i][k],(str)): + valType=CAFE_STRING + break + elif isinstance(vectorList[i][k],(float)): + valType=CAFE_DOUBLE + elif isinstance(vectorList[i][k],(long, int)): + if valType != CAFE_DOUBLE: + valType=CAFE_LONG + else: + valType=CAFE_STRING + break + + #check dt of first element + if valType==CAFE_DOUBLE: + pvdata[i].setVDouble(vectorList[i]) + elif valType==CAFE_LONG: + pvdata[i].setVInt (vectorList[i]) + elif valType==CAFE_STRING: + pvdata[i].setVString(vectorList[i]) + + else: + + print ("PyCafe def setGroup: Unusual data type for element", i, " : ", type(vectorList[i])) + raise Exception ("EXCEPTION RAISED IN PyCafe def setGroup. \n\ +Unknown data input; should be one of , , , ") + + #endForLoop + + cdef int status=ICAFE_NORMAL + statusList=[] + pvg.setPVData(pvdata) + + + with nogil: + status=self._c_cafe.groupSet(ghandle, pvg) + + cdef PVDataHolder * pvd + + if status !=ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + self._c_cafe.printStatusMessage(status) + #do not raise exception + #raise Exception("EXCEPTION RAISED in PyCafe def setGroup. Status = %d" %status) + + pvd=pvg.getPVData() + + for i in range(0, pvg.getNPV()): + statusList.append(pvd[i].getStatus()) + else: + statusList.append(status) + + return status, statusList + + ################################################################################## + #END: def setGroup(self, ghandleName, dt='native') + ################################################################################## + + + ################################################################################## + def setAndMatchMany(self, list handlePVSet, list valSet, list handlePVMatch, double tolerance, double timeout, bint printFlag): + cdef str _METHOD_="setAndMatchMany(list handlePVSet, list valSet, list handlePVMatch, double tolerance, double timeout, bint printFlag)" + + if not isinstance(handlePVSet, (list)): + raise Exception ("EXCEPTION RAISED IN PyCafe def setAndMatchMany. \n\ +First input argument, should be of handles or PVs") + + if not isinstance(valSet, (list)): + raise Exception ("EXCEPTION RAISED IN PyCafe def setAndMatchMany. \n\ +Second input argument, should be of scalar values") + + if not isinstance(handlePVMatch, (list)): + raise Exception ("EXCEPTION RAISED IN PyCafe def setAndMatchMany. \n\ +Third input argument, should be of handles or PVs") + + if (len(handlePVSet) != len(valSet)): + raise Exception ("EXCEPTION RAISED IN PyCafe def setAndMatchMany. \n\ +Lengths of first (handlePVSet) and second (valSet) input lists must match!") + + if (len(handlePVSet) != len(handlePVMatch)): + raise Exception ("EXCEPTION RAISED IN PyCafe def setAndMatchMany. \n\ +Lengths of first (handlePVSet) and third (handlePVMatch) input lists must match!") + + + cdef vector[unsigned int] handleSet + handleSet.reserve(len(handlePVSet)) + + cdef vector[unsigned int] handleMatch + handleMatch.reserve(len(handlePVMatch)) + + cdef vector[double] valSetV + valSetV.reserve(len(valSet)) + + for i in range(0, len(handlePVSet)): + if isinstance(handlePVSet[i], (int,long)) == 1: + handleSet.push_back(handlePVSet[i]) + elif isinstance(handlePVSet[i], (str)) == 1: + handleSet.push_back(self.checkForHandle(handlePVSet)) + else: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_, \ + _ei="ThandlePVSet list member should be if handle, else if PV") + raise Exception(_cyCafeException) + + for i in range(0, len(handlePVMatch)): + if isinstance(handlePVMatch[i], (int,long)) == 1: + handleMatch.push_back(handlePVMatch[i]) + elif isinstance(handlePVMatch[i], (str)) == 1: + handleMatch.push_back(self.checkForHandle(handlePVMatch)) + else: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_, \ + _ei="handleMatch list member should be if handle, else if PV") + raise Exception(_cyCafeException) + + for i in range(0, len(valSet)): + valSetV.push_back(valSet[i]) + + cdef int status + + with nogil: + status=self._c_cafe.setAndMatchMany(handleSet, valSetV, handleMatch, tolerance, timeout, printFlag) + + if status !=ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + self._c_cafe.printStatusMessage(status) + raise Exception("EXCEPTION RAISED in PyCafe def setAndMatchMany. Status = %d" %status) + + return status + ################################################################################## + + + ################################################################################## + def setAndMatch(self, handlePVSet, double valSet, handlePVMatch, double tolerance, double timeout, bint printFlag): + cdef str _METHOD_="setAndMatch(handlePVSet, double valSet, handlePVMatch, double tolerance, double timeout, bint printFlag)" + + cdef unsigned int handleSet=0 + if isinstance(handlePVSet, (int,long)) == 1: + handleSet=handlePVSet + elif isinstance(handlePVSet, (str)) == 1: + handleSet=self.checkForHandle(handlePVSet) + else: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_, \ + _ei="First input argument, should be if handle, else if PV") + raise Exception(_cyCafeException) + + cdef unsigned int handleMatch=0 + if isinstance(handlePVMatch, (int,long)) == 1: + handleMatch=handlePVMatch + elif isinstance(handlePVMatch, (str)) == 1: + handleMatch=self.checkForHandle(handlePVMatch) + else: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_, \ + _ei="Third input argument, should be if handle, else if PV") + raise Exception(_cyCafeException) + + cdef int status + + with nogil: + status=self._c_cafe.setAndMatch(handleSet, valSet, handleMatch, tolerance, timeout, printFlag) + + if status !=ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + self._c_cafe.printStatusMessage(status) + raise Exception("EXCEPTION RAISED in PyCafe def setAndMatch. Status = %d" %status) + + return status + ################################################################################## + + + + + ################################################################################## + def matchMany(self, list valSet, list handlePVMatch, double tolerance, double timeout, bint printFlag): + cdef str _METHOD_="matchMany(self, list valSet, list handlePVMatch, double tolerance, double timeout, bint printFlag)" + + if not isinstance(valSet, (list)): + raise Exception ("EXCEPTION RAISED IN PyCafe def matchMany. \n\ +Second input argument, should be of scalar values") + + if not isinstance(handlePVMatch, (list)): + raise Exception ("EXCEPTION RAISED IN PyCafe def matchMany. \n\ +Third input argument, should be of handles or PVs") + + if (len(valSet) != len(handlePVMatch)): + raise Exception ("EXCEPTION RAISED IN PyCafe def matchMany. \n\ +Lengths of first (handlePVSet) and third (handlePVMatch) input lists must match!") + + + cdef vector[unsigned int] handleMatch + handleMatch.reserve(len(handlePVMatch)) + + cdef vector[double] valSetV + valSetV.reserve(len(valSet)) + + for i in range(0, len(handlePVMatch)): + if isinstance(handlePVMatch[i], (int,long)) == 1: + handleMatch.push_back(handlePVMatch[i]) + elif isinstance(handlePVMatch[i], (str)) == 1: + handleMatch.push_back(self.checkForHandle(handlePVMatch)) + else: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_, \ + _ei="First input argument, should be if handle, else if PV") + raise Exception(_cyCafeException) + + + for i in range(0, len(valSet)): + valSetV.push_back(valSet[i]) + + cdef int status + + with nogil: + status=self._c_cafe.matchMany( valSetV, handleMatch, tolerance, timeout, printFlag) + + if status !=ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + self._c_cafe.printStatusMessage(status) + raise Exception("EXCEPTION RAISED in PyCafe def matchMany. Status = %d" %status) + + return status + ################################################################################## + + + ################################################################################## + def match(self, double valSet, handlePVMatch, double tolerance, double timeout, bint printFlag): + cdef str _METHOD_="match(double valSet, handlePVMatch, double tolerance, double timeout, bint printFlag)" + + cdef unsigned int handleMatch=0 + if isinstance(handlePVMatch, (int,long)) == 1: + handleMatch=handlePVMatch + elif isinstance(handlePVMatch, (str)) == 1: + handleMatch=self.checkForHandle(handlePVMatch) + else: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_, \ + _ei="First input argument, should be if handle, else if PV") + raise Exception(_cyCafeException) + + cdef int status + + with nogil: + status=self._c_cafe.match(valSet, handleMatch, tolerance, timeout, printFlag) + + if status !=ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + self._c_cafe.printStatusMessage(status) + raise Exception("EXCEPTION RAISED in PyCafe def match. Status = %d" %status) + + return status + ################################################################################## + + + ################################################################################## + def setNelemCtrl(self, handlePV, unsigned int nelem): + cdef str _METHOD_="setNelemCtrl(self, handlePV, unsigned int nelem)" + + cdef unsigned int handle=0 + if isinstance(handlePV, (int,long)): + handle=handlePV + elif isinstance(handlePV, (str)): + handle=self.checkForHandle(handlePV) + else: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_, \ + _ei="First input argument, should be if handle, else if PV") + raise Exception(_cyCafeException) + + if handle == 0: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + self._c_cafe.printStatusMessage(ECAFE_INVALID_HANDLE) + raise Exception("EXCEPTION RAISED in PyCafe def setNelemToRetrieveFromCacheToOne") + + #returns nelem + return self.hh.setNelemCtrl(handle, nelem) + + + + + ################################################################################## + def setNelem(self, handlePV, unsigned int nelem): + cdef str _METHOD_="setNelem(self, handlePV, unsigned int nelem)" + + cdef unsigned int handle=0 + if isinstance(handlePV, (int,long)): + handle=handlePV + elif isinstance(handlePV, (str)): + handle=self.checkForHandle(handlePV) + else: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_, \ + _ei="First input argument, should be if handle, else if PV") + raise Exception(_cyCafeException) + + if handle == 0: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + self._c_cafe.printStatusMessage(ECAFE_INVALID_HANDLE) + raise Exception("EXCEPTION RAISED in PyCafe def setNelemToRetrieveFromCacheToOne") + + #returns nelem + return self.hh.setNelem(handle, nelem) + + ################################################################################## + def setNelemToNative(self, handlePV): + cdef str _METHOD_="setNelemToNative(self, handlePV)" + + cdef unsigned int handle=0 + if isinstance(handlePV, (int,long)): + handle=handlePV + elif isinstance(handlePV, (str)): + handle=self.checkForHandle(handlePV) + else: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_, \ + _ei="First input argument, should be if handle, else if PV") + raise Exception(_cyCafeException) + + if handle == 0: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + self._c_cafe.printStatusMessage(ECAFE_INVALID_HANDLE) + raise Exception("EXCEPTION RAISED in PyCafe def setNelemToRetrieveFromCacheToOne") + + #returns nelem + return self.hh.setNelemToNative(handle) + + ################################################################################## + + def setNelemToRetrieveFromCacheToOne(self, handlePV): + cdef str _METHOD_="setNelemToRetrieveFromCacheToOne(self, handlePV)" + + cdef unsigned int handle=0 + if isinstance(handlePV, (int,long)): + handle=handlePV + elif isinstance(handlePV, (str)): + handle=self.checkForHandle(handlePV) + else: + _cyCafeException = CyCafeException(_type='cafe',_source=_METHOD_, \ + _ei="First input argument, should be if handle, else if PV") + raise Exception(_cyCafeException) + + if handle == 0: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + self._c_cafe.printStatusMessage(ECAFE_INVALID_HANDLE) + raise Exception("EXCEPTION RAISED in PyCafe def setNelemToRetrieveFromCacheToOne") + + #returns previous nelem + return self._c_cafe.setNelemToRetrieveFromCacheToOne(handle) + + ################################################################################## + def setNelemToRetrieveFromCache(self, handlePV, netrfc): + cdef unsigned int handle=0 + if isinstance(handlePV, (int,long)): + handle=handlePV + elif isinstance(handlePV, (str)): + handle=self.checkForHandle(handlePV) + else: + raise Exception ("EXCEPTION RAISED IN PyCafe def set. \n\ +First input argument, should be if handle, else if PV") + + + if handle == 0: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + self._c_cafe.printStatusMessage(ECAFE_INVALID_HANDLE) + raise Exception("EXCEPTION RAISED in PyCafe def setNelemToRetrieveFromCacheToOne") + + #returns new nelem + return self._c_cafe.setNelemToRetrieveFromCacheToPrevious(handle, netrfc) + + + ################################################################################## + def terminate(self): + with nogil: + self._c_cafe.terminate() + return + ################################################################################## + + +''' +################################################################################## + def prepareSFdbpm(self): +################################################################################## + self._c_cafe.prepareDBPM(self.bpmList, self.bpmHandles, self.bpmDev, self.bpmPos) #self.bpmPosDev) + + #for i in range(0, self.bpmDev.size()): + #print (self.bpmPos[i], self.bpmDev[i] ) + + if not self.dbpmInitialized: + self.dbpm= DBPMKeeper(self.bpmList,self.bpmHandles, self.bpmDev, self.bpmPos) #self.bpmPosDev) + 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 + + with nogil: + status=self._c_cafe.getDBPM(self.dbpm) + + if status !=ICAFE_NORMAL: + if PYCAFE_PRINT_LEVEL>=PYCAFE_PRINT_LOW: + self._c_cafe.printStatusMessage(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() + + +################################################################################### +################################################################################## +#END: cdef CAFE################################################################### +################################################################################## +''' diff --git a/PyCafeDefs.pxi b/PyCafeDefs.pxi new file mode 120000 index 0000000..3854182 --- /dev/null +++ b/PyCafeDefs.pxi @@ -0,0 +1 @@ +PyCafeDefs_api.pxi \ No newline at end of file diff --git a/PyCafeDefs_api.pxi b/PyCafeDefs_api.pxi new file mode 100644 index 0000000..7881944 --- /dev/null +++ b/PyCafeDefs_api.pxi @@ -0,0 +1,1336 @@ + + +#define threshold +cdef int PYCAFE_PRINT_HIGH=9 +cdef int PYCAFE_PRINT_MED=5 +cdef int PYCAFE_PRINT_LOW=1 + +cdef int PYCAFE_PRINT_LEVEL=PYCAFE_PRINT_MED + +ctypedef shared_ptr[vector [double]] vdouble_ptr +ctypedef shared_ptr[vector [float]] vfloat_ptr + +cdef object py_cb = None +cdef object py_cb_handle = None +cdef object py_cb_ctrl = None + + +''' +def py_cb(pvdata pv1, unsigned int handle, str pvname): + print ("PV:", pvname, " Handle:", handle + pv1.showMax(10) + return + +def py_cb_handle(unsigned int handle): + print (" Handle:", handle + return + +#Add control callback! + +def py_cb_ctrl(pvctrl c1, unsigned int handle, str pvname): + print ("PV:", pvname, " Handle:", handle + c1.showMax(10) + return +''' + +#***********api*************** + +cdef api void py_cb_wrapper(PVDataHolder pvd, unsigned int handle, string pvname) with gil: + cdef pvdata pv1 = PVDataHolderToStruct(pvd) + py_cb(pv1, handle, pvname) + with nogil: + return + +cdef api void py_cb_ctrl_wrapper(PVCtrlHolder pvc, unsigned int handle, string pvname) with gil: + cdef pvctrl c1 = PVCtrlHolderToStruct(pvc) + py_cb_ctrl(c1, handle, pvname) + with nogil: + return + +cdef api void py_cb_handle_wrapper(unsigned int handle) with gil: + + py_cb_handle(handle) + + with nogil: + return + +cdef api void py_cb_handle_monid_wrapper(unsigned int handle, unsigned long monid) with gil: + + if monDictGlobal.has_key(monid): + cbobjt=monDictGlobal[monid] + cbobjt(handle) + + with nogil: + return + + +cdef api void py_cb_handle_get_wrapper(unsigned int handle) with gil: + py_cb_handle_get(handle) + with nogil: + return + +cdef api void py_cb_handle_put_wrapper(unsigned int handle) with gil: + py_cb_handle_put(handle) + with nogil: + return + + +#***********api*************** +''' +cdef object callbackHandlerMonitor = None + + +cdef void callbackHandlerMonitor_wrapper(event_handler_args args) with gil: + handle= args.usr + py_cb_handle(handle) + with nogil: + return +''' +#Correct memory management a la KWSmith p.190 +cdef class _finalizer: + cdef void *_data + def __dealloc__(self): + if self._data is not NULL: + free(self._data) + return + +cdef void set_base(cnp.ndarray arr, void * carr): + cdef _finalizer fin = _finalizer() + fin._data = carr + cnp.set_array_base(arr, fin) + return + +cdef class CyCa: + cpdef readonly unsigned int CY_DBE_VALUE + cpdef readonly unsigned int CY_DBE_LOG + cpdef readonly unsigned int CY_DBE_ARCHIVE + cpdef readonly unsigned int CY_DBE_ALARM + cpdef readonly unsigned int CY_DBE_PROPERTY + cpdef readonly unsigned int CY_DBR_PRIMITIVE + cpdef readonly unsigned int CY_DBR_PLAIN + cpdef readonly unsigned int CY_DBR_STS + cpdef readonly unsigned int CY_DBR_TIME + cpdef readonly unsigned int CY_DBR_GR + cpdef readonly unsigned int CY_DBR_CTRL + cpdef readonly unsigned int CY_DBR_PUT + cpdef readonly unsigned int CY_DBR_STSACK + cpdef readonly unsigned int CY_DBR_CLASS + cpdef readonly unsigned int CY_DBR_NONE + cpdef readonly unsigned int CY_DBR_STRING #returns a NULL terminated string + cpdef readonly unsigned int CY_DBR_SHORT #returns an unsigned short + cpdef readonly unsigned int CY_DBR_INT #returns an unsigned short + cpdef readonly unsigned int CY_DBR_FLOAT #returns an IEEE floating point value + cpdef readonly unsigned int CY_DBR_ENUM #returns an unsigned short which is the enum item + cpdef readonly unsigned int CY_DBR_CHAR #returns an unsigned char + cpdef readonly unsigned int CY_DBR_LONG #returns an unsigned long + cpdef readonly unsigned int CY_DBR_DOUBLE #returns a double precision floating point number + cpdef readonly unsigned int CY_DBR_STS_STRING #returns a string status structure (dbr_sts_string) + cpdef readonly unsigned int CY_DBR_STS_SHORT #returns a short status structure (dbr_sts_short) + cpdef readonly unsigned int CY_DBR_STS_INT #returns a short status structure (dbr_sts_int) + cpdef readonly unsigned int CY_DBR_STS_FLOAT #returns a float status structure (dbr_sts_float) + cpdef readonly unsigned int CY_DBR_STS_ENUM #returns an enum status structure (dbr_sts_enum) + cpdef readonly unsigned int CY_DBR_STS_CHAR #returns a char status structure (dbr_sts_char) + cpdef readonly unsigned int CY_DBR_STS_LONG #returns a long status structure (dbr_sts_long) + cpdef readonly unsigned int CY_DBR_STS_DOUBLE #returns a double status structure (dbr_sts_double) + cpdef readonly unsigned int CY_DBR_TIME_STRING #returns a string time structure (dbr_time_string) + cpdef readonly unsigned int CY_DBR_TIME_SHORT #returns a short time structure (dbr_time_short) + cpdef readonly unsigned int CY_DBR_TIME_INT #returns a short time structure (dbr_time_short) + cpdef readonly unsigned int CY_DBR_TIME_FLOAT #returns a float time structure (dbr_time_float) + cpdef readonly unsigned int CY_DBR_TIME_ENUM #returns an enum time structure (dbr_time_enum) + cpdef readonly unsigned int CY_DBR_TIME_CHAR #returns a char time structure (dbr_time_char) + cpdef readonly unsigned int CY_DBR_TIME_LONG #returns a long time structure (dbr_time_long) + cpdef readonly unsigned int CY_DBR_TIME_DOUBLE #returns a double time structure (dbr_time_double) + cpdef readonly unsigned int CY_DBR_GR_STRING #returns a graphic string structure (dbr_gr_string) + cpdef readonly unsigned int CY_DBR_GR_SHORT #returns a graphic short structure (dbr_gr_short) + cpdef readonly unsigned int CY_DBR_GR_INT #returns a graphic short structure (dbr_gr_int) + cpdef readonly unsigned int CY_DBR_GR_FLOAT #returns a graphic float structure (dbr_gr_float) + cpdef readonly unsigned int CY_DBR_GR_ENUM #returns a graphic enum structure (dbr_gr_enum) + cpdef readonly unsigned int CY_DBR_GR_CHAR #returns a graphic char structure (dbr_gr_char) + cpdef readonly unsigned int CY_DBR_GR_LONG #returns a graphic long structure (dbr_gr_long) + cpdef readonly unsigned int CY_DBR_GR_DOUBLE #returns a graphic double structure (dbr_gr_double) + cpdef readonly unsigned int CY_DBR_CTRL_STRING #returns a control string structure (dbr_ctrl_int) + cpdef readonly unsigned int CY_DBR_CTRL_SHORT #returns a control short structure (dbr_ctrl_short) + cpdef readonly unsigned int CY_DBR_CTRL_INT #returns a control short structure (dbr_ctrl_int) + cpdef readonly unsigned int CY_DBR_CTRL_FLOAT #returns a control float structure (dbr_ctrl_float) + cpdef readonly unsigned int CY_DBR_CTRL_ENUM #returns a control enum structure (dbr_ctrl_enum) + cpdef readonly unsigned int CY_DBR_CTRL_CHAR #returns a control char structure (dbr_ctrl_char) + cpdef readonly unsigned int CY_DBR_CTRL_LONG #returns a control long structure (dbr_ctrl_long) + cpdef readonly unsigned int CY_DBR_CTRL_DOUBLE #returns a control double structure (dbr_ctrl_double) + + #cpdef readonly int CY_ECA_TIMEOUT + + + cpdef readonly int CY_ECA_NORMAL # 1 + cpdef readonly int CY_ECA_ALLOCMEM # 48 + cpdef readonly int CY_ECA_TOLARGE # 72 + cpdef readonly int CY_ECA_TIMEOUT # 80 + cpdef readonly int CY_ECA_BADTYPE # 114 + cpdef readonly int CY_ECA_INTERNAL # 142 + cpdef readonly int CY_ECA_GETFAIL # 152 + cpdef readonly int CY_ECA_PUTFAIL # 160 + cpdef readonly int CY_ECA_BADCOUNT # 176 + cpdef readonly int CY_ECA_BADSTR # 186 + cpdef readonly int CY_ECA_DISCONN # 192 + cpdef readonly int CY_ECA_DBLCHNL # 200 + cpdef readonly int CY_ECA_EVDISALLOW # 210 + cpdef readonly int CY_ECA_BADMONID # 242 + cpdef readonly int CY_ECA_BADMASK # 330 + cpdef readonly int CY_ECA_IODONE # 339 + cpdef readonly int CY_ECA_IOINPROGRESS # 347 + cpdef readonly int CY_ECA_BADSYNCGRP # 354 + cpdef readonly int CY_ECA_PUTCBINPROG # 362 + cpdef readonly int CY_ECA_NORDACCESS # 368 + cpdef readonly int CY_ECA_NOWTACCESS # 376 + cpdef readonly int CY_ECA_ANACHRONISM # 386 + cpdef readonly int CY_ECA_NOSEARCHADDR # 392 + cpdef readonly int CY_ECA_NOCONVERT # 400 + cpdef readonly int CY_ECA_BADCHID # 410 + cpdef readonly int CY_ECA_BADFUNCPTR # 418 + cpdef readonly int CY_ECA_ISATTACHED # 424 + cpdef readonly int CY_ECA_UNAVAILINSERV # 432 + cpdef readonly int CY_ECA_CHANDESTROY # 440 + cpdef readonly int CY_ECA_BADPRIORITY # 450 + cpdef readonly int CY_ECA_NOTTHREADED # 458 + cpdef readonly int CY_ECA_16KARRAYCLIENT # 464 + cpdef readonly int CY_ECA_CONNSEQTMO # 472 + cpdef readonly int CY_ECA_UNRESPTMO # 480 + + + cpdef readonly int ICAFE_CS_NEVER_CONN + cpdef readonly int ICAFE_CS_PREV_CONN + cpdef readonly int ICAFE_CS_CONN + cpdef readonly int ICAFE_CS_CLOSED + cpdef readonly int ICAFE_CS_DISCONN + cpdef readonly int ICAFE_CS_UNKNOWN + + cpdef readonly int ICAFE_TYPENOTCONN + cpdef readonly int ICAFE_RULE_FALSE + cpdef readonly int ICAFE_BADCOUNT + cpdef readonly int ICAFE_CALLBACK_NOT_YET_INVOKED + cpdef readonly int ICAFE_WAITING_FOR_PREV_CALLBACK + cpdef readonly int ICAFE_CACHE_EMPTY + cpdef readonly int ICAFE_CHANNEL_BLOCKING_POLICY_CONFLICT + cpdef readonly int ICAFE_MONITOR_DELAYED_AS_CONN_DOWN + cpdef readonly int ICAFE_HAS_MONITOR_GET_DONE_FROM_CACHE + cpdef readonly int ICAFE_SET_AND_GET_MISMATCH + + cpdef readonly int ICAFE_CA_OP_GET + cpdef readonly int ICAFE_CA_OP_PUT + cpdef readonly int ICAFE_CA_OP_CREATE_CHANNEL + cpdef readonly int ICAFE_CA_OP_ADD_EVENT + cpdef readonly int ICAFE_CA_OP_CLEAR_EVENT + cpdef readonly int ICAFE_CA_OP_OTHER + cpdef readonly int ICAFE_CA_OP_CONN_DOWN + cpdef readonly int ICAFE_CA_OP_CONN_UP + + cpdef readonly int ECAFE_LOAD_COLLECTION + cpdef readonly int ECAFE_LOAD_GROUP + + cpdef readonly int ICAFE_NORMAL + cpdef readonly int ICAFE_SUCCESS + + cpdef readonly int ECAFE_NODATA + cpdef readonly int ECAFE_INVALID_TYPE + cpdef readonly int ECAFE_BADCOUNT + cpdef readonly int ECAFE_BADSTR + cpdef readonly int ECAFE_BADTYPE + cpdef readonly int ECAFE_NO_CONVERT + cpdef readonly int ECAFE_NULLCONTEXT + cpdef readonly int ECAFE_NULLCHID + cpdef readonly int ECAFE_NULLEVID + cpdef readonly int ECAFE_UNKNOWN_COLLECTION + cpdef readonly int ECAFE_EMPTY_COLLECTION + cpdef readonly int ECAFE_COLLECTION_PREV_DEF + cpdef readonly int ECAFE_COLLECTION_INVALID_MEMBER + cpdef readonly int ECAFE_RULE_FALSE + cpdef readonly int ECAFE_UNKNOWN_GROUP + cpdef readonly int ECAFE_EMPTY_GROUP + cpdef readonly int ECAFE_GROUP_PREV_DEF + cpdef readonly int ECAFE_INVALID_HANDLE + cpdef readonly int ECAFE_INVALID_GROUP_HANDLE + cpdef readonly int ECAFE_NORDACCESS + cpdef readonly int ECAFE_NOWTACCESS + cpdef readonly int ECAFE_TIMEOUT + cpdef readonly int ECAFE_CANNOT_OPEN_FILE + cpdef readonly int ECAFE_INVALID_SWITCH_CASE + cpdef readonly int ECAFE_PVALIAS_PREV_DEF + cpdef readonly int ECAFE_PVALIAS_INVALID + cpdef readonly int ECAFE_PVNAME_PREV_DEF_AS_PVALIAS + cpdef readonly int ECAFE_DEVICE_ATTRIB_NOT_FOUND + cpdef readonly int ECAFE_HASH_UNIQUEID_EXISTS + cpdef readonly int ECAFE_WRONG_CA_CONTEXT + cpdef readonly int ECAFE_INVALID_CAFENUM_POLICY_TYPE + cpdef readonly int ECAFE_MAX_MONITORS_PER_CHAN_EXCEEDED + cpdef readonly int ECAFE_INVALID_ENUM_INDEX + cpdef readonly int ECAFE_PVGROUP_GROUPHANDLE_MISMATCH + cpdef readonly int ECAFE_TIMEOUT_SET_AND_MATCH + cpdef readonly int ECAFE_HANDLE_MISMATCH_SET_AND_MATCH + + #ctypedef enum ChannelRequestPolicyKind: + cpdef readonly unsigned int WITHOUT_CALLBACK + cpdef readonly unsigned int WITH_CALLBACK_DEFAULT + cpdef readonly unsigned int WITH_CALLBACK_USER_SUPPLIED + + #ChannelFlushSendBufferPolicyKind: + cpdef readonly unsigned int WITH_FLUSH_IO + cpdef readonly unsigned int WITH_PEND_IO + cpdef readonly unsigned int WITH_PEND_EVENT + cpdef readonly unsigned int WITH_POLL + + #ChannelWhenToFlushSendBufferPolicyKind: + cpdef readonly unsigned int FLUSH_AUTOMATIC + cpdef readonly unsigned int FLUSH_NOW + cpdef readonly unsigned int FLUSH_AFTER_EACH_CHANNEL_CREATION + cpdef readonly unsigned int FLUSH_AFTER_EACH_CHANNEL_SUBSCRIPTION + cpdef readonly unsigned int FLUSH_AFTER_EACH_MESSAGE + cpdef readonly unsigned int FLUSH_AFTER_EACH_GROUP_CREATION + cpdef readonly unsigned int FLUSH_DESIGNATED_TO_CLIENT + + + #ChannelGetCacheWaitPolicyKind: + cpdef readonly unsigned int GET_CACHE_NO_CHECK + cpdef readonly unsigned int GET_CACHE_NO_WAIT + cpdef readonly unsigned int GET_CACHE_NOW + cpdef readonly unsigned int GET_CACHE_WAIT + + #ChannelGetActionWhenMonitorPolicyKind: + cpdef readonly unsigned int GET_FROM_CACHE + cpdef readonly unsigned int GET_FROM_IOC + + + + #ChannelRequestDataTypePolicyKind: + cpdef readonly unsigned int NATIVE_DATATYPE + cpdef readonly unsigned int LOWEST_DATATYPE # The smaller in byte size of type requested and native datatype + + #ChannelWaitForResponsePolicyKind: + cpdef readonly unsigned int BLOCKING + cpdef readonly unsigned int WAIT + cpdef readonly unsigned int NON_BLOCKING + cpdef readonly unsigned int NO_WAIT + + #StatusMessageKind: + cpdef readonly unsigned int NO_MESSAGE + cpdef readonly unsigned int PRE_REQUEST + cpdef readonly unsigned int FROM_REQUEST + cpdef readonly unsigned int FROM_PEND + cpdef readonly unsigned int FROM_CALLBACK + cpdef readonly unsigned int FROM_MESSAGE + + #CallbackProgressKind: + cpdef readonly unsigned int NOT_INITIATED + cpdef readonly unsigned int PENDING + cpdef readonly unsigned int COMPLETE + + + + def __cinit__(self): + + #self.CY_ECA_TIMEOUT =ECA_TIMEOUT + + self.CY_ECA_NORMAL =ECA_NORMAL + self.CY_ECA_ALLOCMEM =ECA_ALLOCMEM + self.CY_ECA_TOLARGE =ECA_TOLARGE + self.CY_ECA_TIMEOUT =ECA_TIMEOUT + self.CY_ECA_BADTYPE =ECA_BADTYPE + self.CY_ECA_INTERNAL =ECA_INTERNAL + self.CY_ECA_GETFAIL =ECA_GETFAIL + self.CY_ECA_PUTFAIL =ECA_PUTFAIL + self.CY_ECA_BADCOUNT =ECA_BADCOUNT + self.CY_ECA_BADSTR =ECA_BADSTR + self.CY_ECA_DISCONN =ECA_DISCONN + self.CY_ECA_DBLCHNL =ECA_DBLCHNL + self.CY_ECA_EVDISALLOW =ECA_EVDISALLOW + self.CY_ECA_BADMONID =ECA_BADMONID + self.CY_ECA_BADMASK =ECA_BADMASK + self.CY_ECA_IODONE =ECA_IODONE + self.CY_ECA_IOINPROGRESS =ECA_IOINPROGRESS + self.CY_ECA_BADSYNCGRP =ECA_BADSYNCGRP + self.CY_ECA_PUTCBINPROG =ECA_PUTCBINPROG + self.CY_ECA_NORDACCESS =ECA_NORDACCESS + self.CY_ECA_NOWTACCESS =ECA_NOWTACCESS + self.CY_ECA_ANACHRONISM =ECA_ANACHRONISM + self.CY_ECA_NOSEARCHADDR =ECA_NOSEARCHADDR + self.CY_ECA_NOCONVERT =ECA_NOCONVERT + self.CY_ECA_BADCHID =ECA_BADCHID + self.CY_ECA_BADFUNCPTR =ECA_BADFUNCPTR + self.CY_ECA_ISATTACHED =ECA_ISATTACHED + self.CY_ECA_UNAVAILINSERV =ECA_UNAVAILINSERV + self.CY_ECA_CHANDESTROY =ECA_CHANDESTROY + self.CY_ECA_BADPRIORITY =ECA_BADPRIORITY + self.CY_ECA_NOTTHREADED =ECA_NOTTHREADED + self.CY_ECA_16KARRAYCLIENT=ECA_16KARRAYCLIENT + self.CY_ECA_CONNSEQTMO =ECA_CONNSEQTMO + self.CY_ECA_UNRESPTMO =ECA_UNRESPTMO + + + + self.ICAFE_NORMAL =ICAFE_NORMAL + self.ICAFE_SUCCESS =ICAFE_SUCCESS + + self.ICAFE_CS_NEVER_CONN =ICAFE_CS_NEVER_CONN + self.ICAFE_CS_PREV_CONN =ICAFE_CS_PREV_CONN + self.ICAFE_CS_CONN =ICAFE_CS_CONN + self.ICAFE_CS_CLOSED =ICAFE_CS_CLOSED + self.ICAFE_CS_DISCONN =ICAFE_CS_DISCONN + self.ICAFE_CS_UNKNOWN =ICAFE_CS_UNKNOWN + + self.ICAFE_TYPENOTCONN =ICAFE_TYPENOTCONN + self.ICAFE_RULE_FALSE =ICAFE_RULE_FALSE + self.ICAFE_BADCOUNT =ICAFE_BADCOUNT + self.ICAFE_CALLBACK_NOT_YET_INVOKED =ICAFE_CALLBACK_NOT_YET_INVOKED + self.ICAFE_WAITING_FOR_PREV_CALLBACK =ICAFE_WAITING_FOR_PREV_CALLBACK + self.ICAFE_CACHE_EMPTY =ICAFE_CACHE_EMPTY + self.ICAFE_CHANNEL_BLOCKING_POLICY_CONFLICT=ICAFE_CHANNEL_BLOCKING_POLICY_CONFLICT + self.ICAFE_MONITOR_DELAYED_AS_CONN_DOWN =ICAFE_MONITOR_DELAYED_AS_CONN_DOWN + self.ICAFE_HAS_MONITOR_GET_DONE_FROM_CACHE =ICAFE_HAS_MONITOR_GET_DONE_FROM_CACHE + self.ICAFE_SET_AND_GET_MISMATCH =ICAFE_SET_AND_GET_MISMATCH + + + self.ICAFE_CA_OP_GET =ICAFE_CA_OP_GET + self.ICAFE_CA_OP_PUT =ICAFE_CA_OP_PUT + self.ICAFE_CA_OP_CREATE_CHANNEL =ICAFE_CA_OP_CREATE_CHANNEL + self.ICAFE_CA_OP_ADD_EVENT =ICAFE_CA_OP_ADD_EVENT + self.ICAFE_CA_OP_CLEAR_EVENT =ICAFE_CA_OP_CLEAR_EVENT + self.ICAFE_CA_OP_OTHER =ICAFE_CA_OP_OTHER + self.ICAFE_CA_OP_CONN_DOWN =ICAFE_CA_OP_CONN_DOWN + self.ICAFE_CA_OP_CONN_UP =ICAFE_CA_OP_CONN_UP + + self.ECAFE_LOAD_COLLECTION =ECAFE_LOAD_COLLECTION + self.ECAFE_LOAD_GROUP =ECAFE_LOAD_GROUP + + self.ECAFE_NODATA =ECAFE_NODATA + self.ECAFE_INVALID_TYPE =ECAFE_INVALID_TYPE + self.ECAFE_BADCOUNT =ECAFE_BADCOUNT + self.ECAFE_BADSTR =ECAFE_BADSTR + self.ECAFE_BADTYPE =ECAFE_BADTYPE + self.ECAFE_NO_CONVERT =ECAFE_NO_CONVERT + self.ECAFE_NULLCONTEXT =ECAFE_NULLCONTEXT + self.ECAFE_NULLCHID =ECAFE_NULLCHID + self.ECAFE_NULLEVID =ECAFE_NULLEVID + self.ECAFE_UNKNOWN_COLLECTION =ECAFE_UNKNOWN_COLLECTION + self.ECAFE_EMPTY_COLLECTION =ECAFE_EMPTY_COLLECTION + self.ECAFE_COLLECTION_PREV_DEF =ECAFE_COLLECTION_PREV_DEF + self.ECAFE_COLLECTION_INVALID_MEMBER =ECAFE_COLLECTION_INVALID_MEMBER + self.ECAFE_RULE_FALSE =ECAFE_RULE_FALSE + self.ECAFE_UNKNOWN_GROUP =ECAFE_UNKNOWN_GROUP + self.ECAFE_EMPTY_GROUP =ECAFE_EMPTY_GROUP + self.ECAFE_GROUP_PREV_DEF =ECAFE_GROUP_PREV_DEF + self.ECAFE_INVALID_HANDLE =ECAFE_INVALID_HANDLE + self.ECAFE_INVALID_GROUP_HANDLE =ECAFE_INVALID_GROUP_HANDLE + self.ECAFE_NORDACCESS =ECAFE_NORDACCESS + self.ECAFE_NOWTACCESS =ECAFE_NOWTACCESS + self.ECAFE_TIMEOUT =ECAFE_TIMEOUT + self.ECAFE_CANNOT_OPEN_FILE =ECAFE_CANNOT_OPEN_FILE + self.ECAFE_INVALID_SWITCH_CASE =ECAFE_INVALID_SWITCH_CASE + self.ECAFE_PVALIAS_PREV_DEF =ECAFE_PVALIAS_PREV_DEF + self.ECAFE_PVALIAS_INVALID =ECAFE_PVALIAS_INVALID + self.ECAFE_PVNAME_PREV_DEF_AS_PVALIAS =ECAFE_PVNAME_PREV_DEF_AS_PVALIAS + self.ECAFE_DEVICE_ATTRIB_NOT_FOUND =ECAFE_DEVICE_ATTRIB_NOT_FOUND + self.ECAFE_HASH_UNIQUEID_EXISTS =ECAFE_HASH_UNIQUEID_EXISTS + self.ECAFE_WRONG_CA_CONTEXT =ECAFE_WRONG_CA_CONTEXT + self.ECAFE_INVALID_CAFENUM_POLICY_TYPE =ECAFE_INVALID_CAFENUM_POLICY_TYPE + self.ECAFE_MAX_MONITORS_PER_CHAN_EXCEEDED =ECAFE_MAX_MONITORS_PER_CHAN_EXCEEDED + self.ECAFE_INVALID_ENUM_INDEX =ECAFE_INVALID_ENUM_INDEX + self.ECAFE_PVGROUP_GROUPHANDLE_MISMATCH =ECAFE_PVGROUP_GROUPHANDLE_MISMATCH + self.ECAFE_TIMEOUT_SET_AND_MATCH =ECAFE_TIMEOUT_SET_AND_MATCH + self.ECAFE_HANDLE_MISMATCH_SET_AND_MATCH =ECAFE_HANDLE_MISMATCH_SET_AND_MATCH + + + self.CY_DBE_VALUE =DBE_VALUE + self.CY_DBE_LOG =DBE_LOG + self.CY_DBE_ARCHIVE =DBE_ARCHIVE + self.CY_DBE_ALARM =DBE_ALARM + self.CY_DBE_PROPERTY =DBE_PROPERTY + self.CY_DBR_PRIMITIVE =DBR_PRIMITIVE + self.CY_DBR_PLAIN =DBR_PLAIN + self.CY_DBR_STS =DBR_STS + self.CY_DBR_TIME =DBR_TIME + self.CY_DBR_GR =DBR_GR + self.CY_DBR_CTRL =DBR_CTRL + self.CY_DBR_PUT =DBR_PUT # DBR_PUT_ACKT and DBR_PUT_ACKS Write only - used from global alarm acknowledge. + self.CY_DBR_STSACK =DBR_STSACK # is DBR_STSACK_STRING + self.CY_DBR_CLASS =DBR_CLASS # is DBR_CLASS_NAME, + self.CY_DBR_NONE =DBR_NONE + self.CY_DBR_STRING =DBR_STRING + self.CY_DBR_SHORT =DBR_SHORT #returns an unsigned short + self.CY_DBR_INT =DBR_INT #returns an unsigned short + self.CY_DBR_FLOAT =DBR_FLOAT #returns an IEEE floating point value + self.CY_DBR_ENUM =DBR_ENUM #returns an unsigned short which is the enum item + self.CY_DBR_CHAR =DBR_CHAR #returns an unsigned char + self.CY_DBR_LONG =DBR_LONG #returns an unsigned long + self.CY_DBR_DOUBLE =DBR_DOUBLE #returns a double precision floating point number + self.CY_DBR_STS_STRING=DBR_STS_STRING #returns a string status structure (dbr_sts_string) + self.CY_DBR_STS_SHORT =DBR_STS_SHORT #returns a short status structure (dbr_sts_short) + self.CY_DBR_STS_INT =DBR_STS_INT #returns a short status structure (dbr_sts_int) + self.CY_DBR_STS_FLOAT =DBR_STS_FLOAT #returns a float status structure (dbr_sts_float) + self.CY_DBR_STS_ENUM =DBR_STS_ENUM #returns an enum status structure (dbr_sts_enum) + self.CY_DBR_STS_CHAR =DBR_STS_CHAR #returns a char status structure (dbr_sts_char) + self.CY_DBR_STS_LONG =DBR_STS_LONG #returns a long status structure (dbr_sts_long) + self.CY_DBR_STS_DOUBLE=DBR_STS_DOUBLE #returns a double status structure (dbr_sts_double) + self.CY_DBR_TIME_STRING=DBR_TIME_STRING #returns a string time structure (dbr_time_string) + self.CY_DBR_TIME_SHORT =DBR_TIME_SHORT #returns a short time structure (dbr_time_short) + self.CY_DBR_TIME_INT =DBR_TIME_INT #returns a short time structure (dbr_time_short) + self.CY_DBR_TIME_FLOAT =DBR_TIME_FLOAT #returns a float time structure (dbr_time_float) + self.CY_DBR_TIME_ENUM =DBR_TIME_ENUM #returns an enum time structure (dbr_time_enum) + self.CY_DBR_TIME_CHAR =DBR_TIME_CHAR #returns a char time structure (dbr_time_char) + self.CY_DBR_TIME_LONG =DBR_TIME_LONG #returns a long time structure (dbr_time_long) + self.CY_DBR_TIME_DOUBLE=DBR_TIME_DOUBLE #returns a double time structure (dbr_time_double) + self.CY_DBR_GR_STRING =DBR_GR_STRING #returns a graphic string structure (dbr_gr_string) + self.CY_DBR_GR_SHORT =DBR_GR_SHORT #returns a graphic short structure (dbr_gr_short) + self.CY_DBR_GR_INT =DBR_GR_INT #returns a graphic short structure (dbr_gr_int) + self.CY_DBR_GR_FLOAT =DBR_GR_FLOAT #returns a graphic float structure (dbr_gr_float) + self.CY_DBR_GR_ENUM =DBR_GR_ENUM #returns a graphic enum structure (dbr_gr_enum) + self.CY_DBR_GR_CHAR =DBR_GR_CHAR #returns a graphic char structure (dbr_gr_char) + self.CY_DBR_GR_LONG =DBR_GR_LONG #returns a graphic long structure (dbr_gr_long) + self.CY_DBR_GR_DOUBLE =DBR_GR_DOUBLE #returns a graphic double structure (dbr_gr_double) + self.CY_DBR_CTRL_STRING=DBR_CTRL_STRING #returns a control string structure (dbr_ctrl_int) + self.CY_DBR_CTRL_SHORT =DBR_CTRL_SHORT #returns a control short structure (dbr_ctrl_short) + self.CY_DBR_CTRL_INT =DBR_CTRL_INT #returns a control short structure (dbr_ctrl_int) + self.CY_DBR_CTRL_FLOAT =DBR_CTRL_FLOAT #returns a control float structure (dbr_ctrl_float) + self.CY_DBR_CTRL_ENUM =DBR_CTRL_ENUM #returns a control enum structure (dbr_ctrl_enum) + self.CY_DBR_CTRL_CHAR =DBR_CTRL_CHAR #returns a control char structure (dbr_ctrl_char) + self.CY_DBR_CTRL_LONG =DBR_CTRL_LONG #returns a control long structure (dbr_ctrl_long) + self.CY_DBR_CTRL_DOUBLE=DBR_CTRL_DOUBLE #returns a control double structure (dbr_ctrl_double) + + #ctypedef enum ChannelRequestPolicyKind: + self.WITHOUT_CALLBACK = WITHOUT_CALLBACK + self.WITH_CALLBACK_DEFAULT = WITH_CALLBACK_DEFAULT + self.WITH_CALLBACK_USER_SUPPLIED = WITH_CALLBACK_USER_SUPPLIED + + #ChannelFlushSendBufferPolicyKind: + self.WITH_FLUSH_IO = WITH_FLUSH_IO + self.WITH_PEND_IO = WITH_PEND_IO + self.WITH_PEND_EVENT = WITH_PEND_EVENT + self.WITH_POLL = WITH_POLL + + #ChannelWhenToFlushSendBufferPolicyKind: + self.FLUSH_AUTOMATIC =FLUSH_AUTOMATIC + self.FLUSH_NOW =FLUSH_NOW + self.FLUSH_AFTER_EACH_CHANNEL_CREATION =FLUSH_AFTER_EACH_CHANNEL_CREATION + self.FLUSH_AFTER_EACH_CHANNEL_SUBSCRIPTION=FLUSH_AFTER_EACH_CHANNEL_SUBSCRIPTION + self.FLUSH_AFTER_EACH_MESSAGE =FLUSH_AFTER_EACH_MESSAGE + self.FLUSH_AFTER_EACH_GROUP_CREATION =FLUSH_AFTER_EACH_GROUP_CREATION + self.FLUSH_DESIGNATED_TO_CLIENT =FLUSH_DESIGNATED_TO_CLIENT + + #ChannelGetCacheWaitPolicyKind: + self.GET_CACHE_NO_CHECK = GET_CACHE_NO_CHECK + self.GET_CACHE_NO_WAIT = GET_CACHE_NO_WAIT + self.GET_CACHE_NOW = GET_CACHE_NOW + self.GET_CACHE_WAIT = GET_CACHE_WAIT + + #ChannelGetActionWhenMonitorPolicyKind: + self.GET_FROM_CACHE = GET_FROM_CACHE + self.GET_FROM_IOC = GET_FROM_IOC + + + #ChannelRequestDataTypePolicyKind: + self.NATIVE_DATATYPE = NATIVE_DATATYPE + self.LOWEST_DATATYPE = LOWEST_DATATYPE # The smaller in byte size of type requested and native datatype + + #ChannelWaitForResponsePolicyKind: + self.BLOCKING =BLOCKING + self.WAIT =WAIT + self.NON_BLOCKING =NON_BLOCKING + self.NO_WAIT =NO_WAIT + + #StatusMessageKind: + self.NO_MESSAGE =NO_MESSAGE + self.PRE_REQUEST =PRE_REQUEST + self.FROM_REQUEST =FROM_REQUEST + self.FROM_PEND =FROM_PEND + self.FROM_CALLBACK=FROM_CALLBACK + self.FROM_MESSAGE =FROM_MESSAGE + + #CallbackProgressKind: + self.NOT_INITIATED=NOT_INITIATED + self.PENDING =PENDING + self.COMPLETE =COMPLETE + 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 class channelInfo: + cdef readonly long channelID + cdef readonly bint connectFlag + cdef readonly string hostName + cdef readonly unsigned int nelem #native + cdef readonly int dataType #native + cdef readonly unsigned short accessRead #0 or 1 + cdef readonly unsigned short accessWrite #0 or 1 + cdef readonly string className #dbr_class_name_t + cdef readonly int connectionState #as given by CA_OP_ + cdef readonly int cafeConnectionState #as given by cafe_cs_state + cdef readonly string connectionStateAsString #as given by CA_OP_ + cdef readonly string cafeConnectionStateAsString #as given by cafe_cs_state + cdef CAFEDataTypeCode cdt + cdef CAFEStatusCode csc + cdef CAOPCodes caop + + def __cinit__(self): + self.channelID=0 + self.connectFlag=False + self.hostName=(("")).encode('UTF-8') + self.nelem=0 + self.dataType=ICAFE_TYPENOTCONN + self.accessRead=0 + self.accessWrite=0 + self.className=(("")).encode('UTF-8') + self.connectionState=ICAFE_CA_OP_CONN_DOWN + self.cafeConnectionState=ICAFE_CS_NEVER_CONN + self.connectionStateAsString=(('ICAFE_CA_OP_CONN_DOWN')).encode('UTF-8') + self.cafeConnectionStateAsString=(('ICAFE_CS_NEVER_CONN')).encode('UTF-8') + + def show(self): + print ("channelID = %s" % hex(self.channelID)) + print ("connectFlag = %d" % self.connectFlag) + print ("hostName = %s" % self.hostName) + print ("nelem = %d" % self.nelem) + print ("dataType = %s (%d)" % (self.cdt.message(self.dataType), self.dataType)) + print ("accessRead = %d" % self.accessRead) + print ("accessWrite = %d" % self.accessWrite) + print ("className = %s" % self.className) + #print ("connectionState = %s (%d)" % (self.connectionStateAsString, self.connectionState)) + #print ("cafeConnectionState = %s (%d)" % (self.cafeConnectionStateAsString,self.cafeConnectionState)) + print ("connectionState = %s (%d)" % (self.caop.message(self.connectionState),self.connectionState)) + print ("cafeConnectionState = %s (%d)" % (self.csc.message(self.cafeConnectionState),self.cafeConnectionState)) + return + + + +################################################################################## +cdef class _epicsTimeStampAsDate: + cdef epicsTime *_time + cdef local_tm_nano_sec local + cdef list etsDate + def __cinit__(self, epicsTimeStamp ts): + self._time = new epicsTime(ts) + #This gives warning: dereferencing type-punned pointer will break strict-aliasing rules + self.local = (self._time) + + #print ("ts====== ", ts.secPastEpoch, ts.nsec) + #print ("year=== ", ( ( (&(&self.local).ansi_tm).tm_year) + 1900)) + + self.etsDate=[] + self.etsDate.append( (self.local.ansi_tm.tm_year + 1900)) + self.etsDate.append( (self.local.ansi_tm.tm_mon + 1)) + self.etsDate.append( self.local.ansi_tm.tm_mday) + self.etsDate.append( self.local.ansi_tm.tm_hour) + self.etsDate.append( self.local.ansi_tm.tm_min) + self.etsDate.append( self.local.ansi_tm.tm_sec) + self.etsDate.append( ts.nsec) + self.etsDate.append( self.local.nSec) + def get(self): + return self.etsDate + + +################################################################################## + +################################################################################## +cdef class pvctrl: + cdef readonly unsigned int nelem + cdef readonly int alarmStatus + cdef readonly int alarmSeverity + cdef readonly unsigned short precision + cdef readonly string units + cdef readonly unsigned short noEnumStrings + cdef readonly list enumStrings + cdef readonly upperDisplayLimit + cdef readonly lowerDisplayLimit + cdef readonly upperAlarmLimit + cdef readonly upperWarningLimit + cdef readonly lowerWarningLimit + cdef readonly lowerAlarmLimit + cdef readonly upperControlLimit + cdef readonly lowerControlLimit + cdef readonly list value + cdef readonly int status + cdef readonly tuple pythonVersion + + + def __cinit__(self): + self.nelem= 1 + self.alarmStatus=-1 + self.alarmSeverity=-1 + self.precision=0 + self.units=(("")).encode('UTF-8') + self.noEnumStrings=0 + self.enumStrings=[] + self.upperDisplayLimit=0 + self.lowerDisplayLimit=0 + self.upperAlarmLimit=0 + self.lowerAlarmLimit=0 + self.upperControlLimit=0 + self.lowerControlLimit=0 + self.value=[] + self.status=1 + self.pythonVersion=sys.version_info[0:4] + + def show(self): + self.showPrint(self.nelem) + return + + def showMax(self, nelem): + if nelem > self.nelem: + #print ("----------------------" + #print ("Note: Max. Nelem =", self.nelem + #print ("----------------------" + nelem=self.nelem + self.showPrint(nelem) + return + + + cdef showPrint(self, nelem): + cdef unsigned int i + #is self.value[0] a list + if nelem==1: + if isinstance (self.value[0], list): + if self.pythonVersion[0] < 3: + print ("value =", self.value[0][0] ) + + else: + print ("value = ", self.value[0][0], end="" ) + else: + if self.pythonVersion[0] < 3: + print ("value =", self.value[0] ) + + else: + print ("value =", self.value[0] , end="" ) + else: + print ("value = ", end="") + if self.pythonVersion[0] < 3: + if isinstance (self.value[0], list): + for i in range(0, nelem): + print (self.value[0][i],"[%d]" %i ) + else: + for i in range(0, nelem): + print (self.value[i],"[%d]" %i ) + + else: + if isinstance (self.value[0], list): + for i in range(0, nelem): + print (self.value[0][i],"[%d]" %i, end=" ") + else: + for i in range(0, nelem): + print (self.value[i],"[%d]" %i, end=" ") + + print ("") + print ("status = %d" % self.status) + print ("alarmStatus = %d" % self.alarmStatus) + print ("alarmSeverity = %d" % self.alarmSeverity) + print ("precision = %d" % self.precision) + print ("units = %s" % self.units) + print ("noEnumStrings = %d" % self.noEnumStrings) + + if self.noEnumStrings > 0: + print ("enumStrings =",) + for i in range(0, self.noEnumStrings): + print (self.enumStrings[i],"[%s]" %i,) + print ("") + + print ("upperDisplayLimit = %f" % self.upperDisplayLimit) + print ("lowerDisplayLimit = %f" % self.lowerDisplayLimit) + print ("upperAlarmLimit = %f" % self.upperAlarmLimit) + print ("lowerAlarmLimit = %f" % self.lowerAlarmLimit) + print ("upperWarningLimit = %f" % self.upperWarningLimit) + print ("lowerWarningLimit = %f" % self.lowerWarningLimit) + print ("upperControlLimit = %f" % self.upperControlLimit) + print ("lowerControlLimit = %f" % self.lowerControlLimit) + + return +################################################################################## + +cdef class CyCafeException: + cdef readonly str type + cdef readonly str source + cdef readonly int handle + cdef readonly str pv + cdef readonly int errorCode + cdef readonly str errorText + cdef readonly str errorInfo + + def __cinit__(self, _type='cycafe', _source=None, _handle=-1, _pv=None, _ec=-1, _et=None, _ei=None): + self.type =_type + self.source=_source + self.handle=_handle + self.pv =_pv + self.errorCode =_ec + self.errorText =_et + self.errorInfo =_ei + + def show(self): + print ("------CyCafeException-----------------------------------------------------") + print ("raised from CyCafe method:",self.source) + if (self.handle!=-1): + print ("name=",self.pv,"(handle=",self.handle,") reports the following error:") + print ("errorCode:",self.errorCode,"errorText:",self.errorText,"\nerrorInfo:",self.errorInfo) + elif self.type=='cafe': + print ("name=",self.pv,"(handle=",self.handle,") reports the following error:") + print ("errorCode:",self.errorCode,"errorText:",self.errorText,"\nerrorInfo:",self.errorInfo) + else: + print ("errorInfo:",self.errorInfo) + print ("------------------------------------------------------------------------") + return + + def reveal(self): + print ("------CyCafeException-----------------------------------------------------") + if(self.type): + print (".type =",self.type) + print (".source =",self.source) + if (self.handle!=-1): + print (".handle =",self.handle) + if (self.pv): + print (".pv =",self.pv) + if (self.errorCode != -1): + print (".errorCode=",self.errorCode) + if (self.errorText): + print (".errorText=",self.errorText) + print (".errorInfo=",self.errorInfo) + print ("------------------------------------------------------------------------") + return + + +cdef class monitorpolicy: + cdef readonly chtype dataType + cdef readonly chtype dbrDataType + cdef readonly DBR_TYPE cafeDbrType + cdef readonly unsigned int nelem + cdef readonly unsigned int mask + #cdef readonly pCallback handler + cdef readonly unsigned int userArgs + #cdef readonly evid eventID + cdef readonly int status + cdef readonly unsigned int monid + cdef readonly bint maskHasDBE_PROPERTY + cdef readonly bint maskHasDBE_VALUE + cdef readonly bint maskHasDBE_LOG + cdef readonly bint maskHasDBE_ALARM + + def __cinit__(self): + self.monid=0 + #self.dataType=None + #self.dbrDataType=None + #self.cafeDbrType=None + self.nelem=1 + #self.mask=None + #self.userArgs=None + self.status=ICAFE_NORMAL + self.maskHasDBE_PROPERTY=False + self.maskHasDBE_VALUE =False + self.maskHasDBE_LOG =False + self.maskHasDBE_ALARM =False + + def show(self): + print("monid =", self.monid) + print("datatype =", self.dataType) + print("dbrDataType=", self.dbrDataType) + print("cafeDbrType=", self.cafeDbrType) + print("nelem =", self.nelem) + print("mask =", self.mask) + print("userArgs =", self.userArgs) + print("status =", self.status) + print("maskHasDBE_PROPERTY=", self.maskHasDBE_PROPERTY) + print("maskHasDBE_VALUE =", self.maskHasDBE_VALUE) + print("maskHasDBE_LOG =", self.maskHasDBE_LOG) + print("maskHasDBE_ALARM =", self.maskHasDBE_ALARM) + return + + + +################################################################################## +cdef class pvdata: + cdef readonly unsigned int nelem + cdef readonly int alarmStatus + cdef readonly int alarmSeverity + cdef readonly list ts + cdef readonly list tsDate + cdef readonly list value + cdef readonly int status + + cdef readonly tuple pythonVersion + + def __cinit__(self): + self.nelem= 1 + self.alarmStatus=-1 + self.alarmSeverity=-1 + self.ts=[] + self.tsDate=[] + self.value=[] + self.status=1 + self.pythonVersion=sys.version_info[0:4] + + def show(self): + self.showPrint(self.nelem) + return + + def showMax(self, nelem): + if nelem > self.nelem: + #print ("----------------------" + #print ("Note: Max. Nelem =", self.nelem + #print ("----------------------" + nelem=self.nelem + self.showPrint(nelem) + return + + cdef showPrint(self, nelem): + cdef unsigned int i + #is self.value[0] a list + + if self.pythonVersion[0] < 3: + + if nelem==1: + if isinstance (self.value[0], list): + print ("value =", self.value[0][0] ) + else: + print ("value =", self.value[0] ) + else: + print ("value = "), + if isinstance (self.value[0], list): + for i in range(0, nelem): + print (self.value[0][i],"[%d]" %i ) + else: + for i in range(0, nelem): + print (self.value[i],"[%d]" %i ) + + else: + + if nelem==1: + if isinstance (self.value[0], list): + print ("value =", self.value[0][0], end="") + else: + print ("value =", self.value[0], end="") + else: + print ("value = ", end="") + if isinstance (self.value[0], list): + for i in range(0, nelem): + print (self.value[0][i],"[%d]" %i , end=" ") + else: + for i in range(0, nelem): + print (self.value[i],"[%d]" %i , end=" ") + + + print ("") + print ("status = %d" % self.status) + #if self.alarmStatus != -1: + print ("alarmStatus = %d" % self.alarmStatus) + print ("alarmSeverity = %d" % self.alarmSeverity) + #if self.ts[0] != 0: + print ("ts =", self.ts[0], self.ts[1]) + print ("tsDate =", self.tsDate[0], self.tsDate[1], \ + self.tsDate[2], self.tsDate[3],\ + self.tsDate[4], self.tsDate[5], self.tsDate[6]) + return + +################################################################################## + + + + +################################################################################## +cdef class pvgroup: + cdef public list pvdata + cdef public unsigned int npv + cdef public string name + cdef readonly int groupStatus + cdef public unsigned int groupHandle + cpdef public bint rule + cpdef public bint hasAlarm + cpdef public bint hasTS + + cdef tuple pythonVersion + + def __cinit__(self): + self.groupStatus=ICAFE_NORMAL + self.rule=True + self.hasAlarm=True + self.hasTS=True + self.pythonVersion=sys.version_info[0:4] + return + + def show(self): + self.showPrint(npv=self.npv, grouplist=None) + return + + def showWithPV(self,glist): + if len(glist) != self.npv: + print ("ERROR: GROUP MEMBER MISMATCH!!") + print (glist, "has", len(glist), "members while group has", self.npv,"!!") + return + self.showPrint(self.npv, grouplist=glist) + return + + def showMax(self, _npv): + if _npv > self.npv: + #print ("----------------------" + #print ("Note: Max. Npv =", self.npv + #print ("----------------------" + _npv=self.npv + self.showPrint(npv=_npv, grouplist=None) + return + + cdef showPrint(self, npv, grouplist): + print ("GROUP NAME = ", self.name) + print ("GROUP HANDLE = ", self.groupHandle) + print ("GROUP STATUS = ", self.groupStatus) + cdef unsigned int i,j + #if nelem==1: + # print "value =", self.value[0], + #else: + + for i in range(0, npv): + print ("Member: ", i, "---------------------------------") + if grouplist: + print ("PV =", grouplist[i]) + + if self.pythonVersion[0] < 3: + + print ("value = " ) + for j in range(0, len(self.pvdata[i].value)): + print (self.pvdata[i].value[j],"[%d]"%j ) + + else: + + print ("value = " ,end="") + for j in range(0, len(self.pvdata[i].value)): + print (self.pvdata[i].value[j],"[%d]"%j, end=" ") + + print ("") + print ("status = %d" % self.pvdata[i].status) + print ("alarmStatus = %d" % self.pvdata[i].alarmStatus) + print ("alarmSeverity = %d" % self.pvdata[i].alarmSeverity) + print ("ts =", self.pvdata[i].ts[0], self.pvdata[i].ts[1]) + print ("tsDate =", self.pvdata[i].tsDate[0], self.pvdata[i].tsDate[1], \ + self.pvdata[i].tsDate[2], self.pvdata[i].tsDate[3],\ + self.pvdata[i].tsDate[4], self.pvdata[i].tsDate[5], self.pvdata[i].tsDate[6]) + print ("--------------------------------------------") + return + + + ''' + cdef showPrintWithPVName(self, npv, pvlist): + print ("GROUP NAME = ", self.name) + print ("GROUP HANDLE = ", self.groupHandle) + print ("GROUP STATUS = ", self.groupStatus) + cdef unsigned int i,j + + for i in range(0, npv): + print ("pv =", pvlist[i]) + for j in range(0, len(self.pvdata[i].value)): + print (self.pvdata[i].value[j],"[%d]" %j,) + print ("") + print ("status = %d" % self.pvdata[i].status) + print ("alarmStatus = %d" % self.pvdata[i].alarmStatus) + print ("alarmSeverity = %d" % self.pvdata[i].alarmSeverity) + print ("ts =", self.pvdata[i].ts[0], self.pvdata[i].tsDate[1]) + print ("tsDate =", self.pvdata[i].tsDate[0], self.pvdata[i].tsDate[1], \ + self.pvdata[i].tsDate[2], self.pvdata[i].tsDate[3],\ + self.pvdata[i].tsDate[4], self.pvdata[i].tsDate[5], self.pvdata[i].tsDate[6]) + return + ''' +################################################################################## + + + +################################################################################## +cdef getMatchedDataType(dt, dtn): + #dt: input from user + #dtn: native type + #dtcheck: matching data type for pvd convert method + + cdef unsigned int dtcheck=dtn; + + if dt in ['uchar','uint8']: + dtcheck=CAFE_CHAR + elif dt in ['np.uint8']: + dtcheck=CAFE_CHAR + elif dt in ['ushort','uint16']: + dtcheck=CAFE_USHORT + elif dt in ['np.ushort','np.uint16']: + dtcheck=CAFE_USHORT + elif dt in ['short','int16','int8','bool','byte']: + dtcheck=CAFE_SHORT + elif dt in ['np.short','np.int16','np.int8','np.bool_', 'np.byte']: + dtcheck=CAFE_SHORT + elif dt in ['int','int_','uint','ushort','int32','uint32']: + dtcheck=CAFE_LONG + elif dt in ['np.intc','np.int_','np.long','np.ushort','np.int32','np.uint32']: + dtcheck=CAFE_LONG + elif dt in ['double', 'float', 'float_','float64', 'int64', 'uint64']: + dtcheck=CAFE_DOUBLE + elif dt in ['np.float_','np.float64', 'np.long', 'np.ulong','np.int64','np.uint64']: + dtcheck=CAFE_DOUBLE + elif dt in ['float16','float32']: + dtcheck=CAFE_FLOAT + elif dt in ['np.float16','np.float32']: + dtcheck=CAFE_FLOAT + elif dt in ['string','str','unicode','string_','str_','unicode_']: + dtcheck=CAFE_STRING + elif dt in ['np.string','np.str','np.unicode','np.string_','np.str_','np.unicode_']: + dtcheck=CAFE_STRING + elif dt in ['native','']: + dtcheck=dtn #need a line here + else: + print ("Valid input parameters for data type are variations of: 'int', 'float', 'str', or 'native'") + print ("Data to be presented in native data type") + + return dtcheck +################################################################################## + + + +################################################################################# + +#cdef pvdata p1 = pvdata() +#cdef pvctrl c1 = pvctrl() + + +################################################################################# + +cdef pvdata PVDataHolderToStruct(PVDataHolder pvd, dt=None): + + #global p1 + cdef pvdata p1 = pvdata() + + cdef unsigned int dtn = pvd.getDataType(); + cdef unsigned int dtcheck=dtn + cdef localList=[] + + if dt: + dtcheck=getMatchedDataType(dt, dtn) + + if dtcheck==CAFE_STRING: + for i in range(0, pvd.getNelem()): + localList.append(pvd.getAsString(i)) + elif dtcheck==CAFE_SHORT: + for i in range(0, pvd.getNelem()): + localList.append(pvd.getAsLong(i)) #getAsShort(i) + elif dtcheck==CAFE_FLOAT: + for i in range(0, pvd.getNelem()): + localList.append(pvd.getAsDouble(i)) #getAsFloat(i) + elif dtcheck==CAFE_ENUM: + #if enum, string taken as native + #if self._c_cafe.isEnum(handle)==1: + for i in range(0, pvd.getNelem()): + localList.append(pvd.getAsString(i)) + #else: + # for i in range(0, pvd.getNelem()): + # localList.append(pvd.getAsLong(i)) #getAsUShort(i) + elif dtcheck==CAFE_CHAR: + for i in range(0, pvd.getNelem()): + localList.append(pvd.getAsLong(i)) # pvd.getAsChar(i) + elif dtcheck==CAFE_LONG: + for i in range(0, pvd.getNelem()): + localList.append(pvd.getAsLong(i)) + elif dtcheck==CAFE_DOUBLE: + for i in range(0, pvd.getNelem()): + localList.append(pvd.getAsDouble(i)) + else: + localList.append(0) + #print ("This line in PyCafe def getDataHolderToStruct should never appear!" + #print ("No Data! Error. Is channel connected?" + + + + p1.value=localList + p1.status=pvd.getStatus() + p1.nelem=pvd.getNelem() + p1.alarmStatus=pvd.getAlarmStatus() + p1.alarmSeverity=pvd.getAlarmSeverity() + + pvd._etsNorm=pvd.getEpicsTimeStampAsUInt32() + + cpdef ll=[] + ll.append((pvd._etsNorm).secPastEpoch) + ll.append((pvd._etsNorm).nsec) + p1.ts=ll + + pvd._etsDate=pvd.getEpicsTimeStampAsDate() + + cpdef ld=[] + ld.append( (pvd._etsDate).year ) + ld.append( (pvd._etsDate).mon ) + ld.append( (pvd._etsDate).day ) + ld.append( (pvd._etsDate).hour ) + ld.append( (pvd._etsDate).min ) + ld.append( (pvd._etsDate).sec ) + ld.append( (pvd._etsDate).nsec ) + p1.tsDate=ld + + + + return p1 +################################################################################## + + + +################################################################################# + +cdef pvctrl PVCtrlHolderToStruct(PVCtrlHolder pvc, dt=None): + + #global c1 + cdef pvctrl c1 = pvctrl() + + cdef unsigned int dtn = pvc.getDataType(); + + cdef unsigned int dtcheck=dtn + + cdef localList=[] + + if dt: + dtcheck=getMatchedDataType(dt, dtn) + + if dtcheck==CAFE_STRING: + for i in range(0, pvc.getNelem()): + localList.append(pvc.getAsString(i)) + elif dtcheck==CAFE_SHORT: + for i in range(0, pvc.getNelem()): + localList.append(pvc.getAsLong(i)) #getAsShort(i) + elif dtcheck==CAFE_FLOAT: + for i in range(0, pvc.getNelem()): + localList.append(pvc.getAsDouble(i)) #getAsFloat(i) + elif dtcheck==CAFE_ENUM: + #if enum, string taken as native + #if self._c_cafe.isEnum(handle)==1: + for i in range(0, pvc.getNelem()): + localList.append(pvc.getAsString(i)) + #else: + # for i in range(0, pvd.getNelem()): + # localList.append(pvd.getAsLong(i)) #getAsUShort(i) + elif dtcheck==CAFE_CHAR: + for i in range(0, pvc.getNelem()): + localList.append(pvc.getAsLong(i)) # pvd.getAsChar(i) + elif dtcheck==CAFE_LONG: + for i in range(0, pvc.getNelem()): + localList.append(pvc.getAsLong(i)) + elif dtcheck==CAFE_DOUBLE: + for i in range(0, pvc.getNelem()): + localList.append(pvc.getAsDouble(i)) + else: + localList.append(0) + #print ("This line in PyCafe def getDataHolderToStruct should never appear!" + #print ("No Data! Error. Is channel connected?" + c1.value=localList + c1.status=pvc.getStatus() + c1.nelem=pvc.getNelem() + c1.alarmStatus=pvc.getAlarmStatus() + c1.alarmSeverity=pvc.getAlarmSeverity() + + c1.precision=pvc.getPrecision() + c1.noEnumStrings=pvc.getNoEnumStrings() + + enumList=[] + for i in range(0, pvc.getNoEnumStrings()): + enumList.append(pvc.getEnumStrings()[i]) + + c1.enumStrings=enumList + + c1.units=pvc.getUnitsAsString() + + c1.upperDisplayLimit=pvc.getUpperDispLimit_AsDouble() + c1.lowerDisplayLimit=pvc.getLowerDispLimit_AsDouble() + c1.upperAlarmLimit =pvc.getUpperAlarmLimit_AsDouble() + c1.upperWarningLimit=pvc.getUpperWarningLimit_AsDouble() + c1.lowerWarningLimit=pvc.getLowerWarningLimit_AsDouble() + c1.lowerAlarmLimit =pvc.getLowerAlarmLimit_AsDouble() + c1.upperControlLimit=pvc.getUpperCtrlLimit_AsDouble() + c1.lowerControlLimit=pvc.getLowerCtrlLimit_AsDouble() + + return c1 +################################################################################## + + +################################################################################# + +cdef channelInfo channelRegaliaToStruct(ChannelRegalia cr): + + cdef channelInfo ci = channelInfo() + + + ci.channelID = ( cr.getChannelID()) + ci.connectFlag=cr.getConnectFlag() + ci.hostName =cr.getHostNameAsString() + ci.dataType =cr.getDataType() + ci.className =cr.getClassNameAsString() + ci.accessRead =cr.getAccessRead() + ci.accessWrite=cr.getAccessWrite() + ci.nelem =cr.getNelem() + ci.connectionState =cr.getConnectionState() + ci.cafeConnectionState=cr.getCafeConnectionState() + ci.connectionStateAsString =cr.getConnectionStateAsString() + ci.cafeConnectionStateAsString =cr.getCafeConnectionStateAsString() + return ci +################################################################################# + + +################################################################################# +''' +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]=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 +''' +################################################################################# diff --git a/PyCafeDefs_pub.pxi b/PyCafeDefs_pub.pxi new file mode 100644 index 0000000..6b829c6 --- /dev/null +++ b/PyCafeDefs_pub.pxi @@ -0,0 +1,848 @@ + +def show(): + print "cafe=PyCafe.CyCafe()" + print "cyca=PyCafe.CyCa()" + print "cafe.init()" + print "cafe.openNoWait()" + print "=cafe.open()" + print "cafe.openNowAndWait(timeout)" + print "cafe.openNow()" + print "cafe.close(handlePV=)" + print "cafe.closeChannels()" + print "cafe.allConnected()" + print "cafe.isConnected(handlePV=)" + print "cafe.printDisconnected()" + print "cafe.printHandles()" + print "cafe.printHandle(handlePV=)" + + print "cafe.getStatus(handlePV=)" + print "cafe.getAlarmStatusSeverity(handlePV=)" + print "cafe.getTimeStamp(handlePV=)" + print "cafe.getTimeStampDate(handlePV=)" + print "cafe.checkForHandle()" + print "cafe.checkForHandleList()" + print "cafe.checkForGroupHandle()" + print "cafe.getPVNameFromHandle(int)" + print "cafe.getHandleFromPVName(str)" + print "cafe.getChannelInfo(handlePV=)" + print "cafe.setDbrBase(handlePV=, unsigned int) #dbrBase.DBR_XXX" + print "cafe.getDbrBase(handlePV=)" + + print "cafe.getNonBlocking(handlePV=)" #followed by getCache + print "cafe.get(handlePV=)" # return in native type + print "cafe.get(handlePV=, dt='native' (default) else <'int','float','str'>)" + print "cafe.getInt(handlePV=)" + print "cafe.getFloathandlePV=)" + print "cafe.getStr(handlePV=)" + + print "cafe.getList(handlePV=)" # return List in native type + print "cafe.getList(handlePV=, dt='native' (default) else <'int','float','str'>)" + print "cafe.getIntList(handlePV=)" + print "cafe.getFloatList(handlePV=)" + print "cafe.getStrList(handlePV=)" + + # returns Memoryview in native type, except for when dt='str' which returns a List + # returns np.array if asnumpy=True + print "cafe.getArray(handlePV=)" + print "cafe.getArray(handlePV=, dt=<'int','float','str','native'(default)>)" + print "cafe.getIntArray(handlePV=,asnumpy=)" + print "cafe.getFloatArray(handlePV=,asnumpy=)" + + + print "cafe.getPV(handlePV=)" # return PVData in native type + print "cafe.getPV(handlePV=, dt='native' (default) else <'int','float','str'>)" + print "cafe.getPVInt(handlePV=)" + print "cafe.getPVFloat(handlePV=)" + print "cafe.getPVStr(handlePV=)" + + print "cafe.getPVList(handleList=)" # return Array of PVData in native type + print "cafe.getPVList(handleList=, dt='native' (default) else <'int','float','str'>)" + print "cafe.getPVIntList(handleList=)" + print "cafe.getPVFloatList(handleList=)" + print "cafe.getPVStrList(handleList=)" + + print "cafe.getScalarList(handleList=)" # return List in native type + print "cafe.getScalarList(handleList=, dt='native' (default) else <'int','float','str'>)" + print "cafe.getIntScalarList(handleList=)" + print "cafe.getFloatScalarList(handleList=)" + print "cafe.getStrScalarList(handleList=)" + + print "cafe.getPVCache(handlePV=)" # return PVData in native type + print "cafe.getPVCache(handlePV=, dt='native' (default) else <'int','float','str'>)" + print "cafe.getPVIntCache(handlePV=)" + print "cafe.getPVFloatCache(handlePV=)" + print "cafe.getPVStrCache(handlePV=)" + + + # returns Memoryview in native type, except for when dt='str' which returns a List + # returns np.array if asnumpy=True + print "cafe.getArrayCache(handlePV=)" + print "cafe.getArrayCache(handlePV=, dt=<'int','float','str','native'(default)>)" + print "cafe.getIntArrayCache(handlePV=,asnumpy=)" + print "cafe.getFloatArrayCache(handlePV=,asnumpy=)" + + print "cafe.getCtrl(handlePV=)" + print "cafe.getCtrl(handlePV=, dt='native' (default) else <'int','float','str'>)" + print "cafe.getCtrlCache(handlePV=)" + print "cafe.getCtrlCache(handlePV=, dt='native' (default) else <'int','float','str'>)" + + print "mpid=cafe.monitorStart(handlePV=), cb=None, dbr=None, mask=DBE_VALUE|DBE_LOG|DBE_ALARM)" + print "cafe.monitorStop(handlePV=, mpID=None)" + print "cafe.monitorStopAll(handlePV=)" + + print "cafe.getNoMonitors(handlePV=)" + + print "cafe.set(handlePV=, valSet)" + print "cafe.setScalarList(handleList=, valList)" + print "cafe.setAndMatch(handlePVSet=, valSet=, handlePVMatch=, \ + tolerance= , timeout=, printFlag=)" + #Synchronous groups + print "handleList[]=cafe.defineGroup(gname, pvList)" + print "list[]=cafe.PVGroupValuesToList(pvgroup)" + print "vectorList,status,statusList = cafe.getGroup(self, ghandleName, dt='native')" + print "pvdataList[],status = cafe.getPVGroup(self, ghandleName, dt='native')" + print "cafe.setGroup(ghandleName, vectorList)" + + return + + +cdef int PYCAFE_PRINT_HIGH=9 +cdef int PYCAFE_PRINT_MED=5 +cdef int PYCAFE_PRINT_LOW=1 + +cdef int PYCAFE_PRINT_LEVEL=PYCAFE_PRINT_MED + +ctypedef shared_ptr[vector [double]] vdouble_ptr +ctypedef shared_ptr[vector [float]] vfloat_ptr + +cdef object py_cb = None +cdef object py_cb_handle = None +cdef object py_cb_ctrl = None + + +''' +def py_cb(pvdata pv1, unsigned int handle, str pvname): + print "PV:", pvname, " Handle:", handle + pv1.showMax(10) + return + +def py_cb_handle(unsigned int handle): + print " Handle:", handle + return + +#Add control callback! + +def py_cb_ctrl(pvctrl c1, unsigned int handle, str pvname): + print "PV:", pvname, " Handle:", handle + c1.showMax(10) + return +''' + +#***********api*************** + +cdef public void py_cb_wrapper(PVDataHolder pvd, unsigned int handle, string pvname) with gil: + cdef pvdata pv1 = PVDataHolderToStruct(pvd) + py_cb(pv1, handle, pvname) + with nogil: + return + +cdef public void py_cb_ctrl_wrapper(PVCtrlHolder pvc, unsigned int handle, string pvname) with gil: + cdef pvctrl c1 = PVCtrlHolderToStruct(pvc) + py_cb_ctrl(c1, handle, pvname) + with nogil: + return + +cdef public void py_cb_handle_wrapper(unsigned int handle) with gil: + + py_cb_handle(handle) + + with nogil: + return + + +cdef public void py_cb_handle_monid_wrapper(unsigned int handle, unsigned long monid) with gil: + + + cbobjt=monDictGlobal[monid] + + cbobjt(handle) + + with nogil: + return + + +#***********api*************** +''' +cdef object callbackHandlerMonitor = None + + +cdef void callbackHandlerMonitor_wrapper(event_handler_args args) with gil: + handle= args.usr + py_cb_handle(handle) + with nogil: + return +''' +#Correct memory management a la KWSmith p.190 +cdef class _finalizer: + cdef void *_data + def __dealloc__(self): + if self._data is not NULL: + free(self._data) + return + +cdef void set_base(cnp.ndarray arr, void * carr): + cdef _finalizer fin = _finalizer() + fin._data = carr + cnp.set_array_base(arr, fin) + return + +cdef class CyCa: + cpdef readonly unsigned int CY_DBE_VALUE + cpdef readonly unsigned int CY_DBE_LOG + cpdef readonly unsigned int CY_DBE_ARCHIVE + cpdef readonly unsigned int CY_DBE_ALARM + cpdef readonly unsigned int CY_DBE_PROPERTY + cpdef readonly unsigned int CY_DBR_PRIMITIVE + cpdef readonly unsigned int CY_DBR_PLAIN + cpdef readonly unsigned int CY_DBR_STS + cpdef readonly unsigned int CY_DBR_TIME + cpdef readonly unsigned int CY_DBR_GR + cpdef readonly unsigned int CY_DBR_CTRL + cpdef readonly unsigned int CY_DBR_PUT + cpdef readonly unsigned int CY_DBR_STSACK + cpdef readonly unsigned int CY_DBR_CLASS + cpdef readonly unsigned int CY_DBR_NONE + cpdef readonly unsigned int CY_DBR_STRING #returns a NULL terminated string + cpdef readonly unsigned int CY_DBR_SHORT #returns an unsigned short + cpdef readonly unsigned int CY_DBR_INT #returns an unsigned short + cpdef readonly unsigned int CY_DBR_FLOAT #returns an IEEE floating point value + cpdef readonly unsigned int CY_DBR_ENUM #returns an unsigned short which is the enum item + cpdef readonly unsigned int CY_DBR_CHAR #returns an unsigned char + cpdef readonly unsigned int CY_DBR_LONG #returns an unsigned long + cpdef readonly unsigned int CY_DBR_DOUBLE #returns a double precision floating point number + cpdef readonly unsigned int CY_DBR_STS_STRING #returns a string status structure (dbr_sts_string) + cpdef readonly unsigned int CY_DBR_STS_SHORT #returns a short status structure (dbr_sts_short) + cpdef readonly unsigned int CY_DBR_STS_INT #returns a short status structure (dbr_sts_int) + cpdef readonly unsigned int CY_DBR_STS_FLOAT #returns a float status structure (dbr_sts_float) + cpdef readonly unsigned int CY_DBR_STS_ENUM #returns an enum status structure (dbr_sts_enum) + cpdef readonly unsigned int CY_DBR_STS_CHAR #returns a char status structure (dbr_sts_char) + cpdef readonly unsigned int CY_DBR_STS_LONG #returns a long status structure (dbr_sts_long) + cpdef readonly unsigned int CY_DBR_STS_DOUBLE #returns a double status structure (dbr_sts_double) + cpdef readonly unsigned int CY_DBR_TIME_STRING #returns a string time structure (dbr_time_string) + cpdef readonly unsigned int CY_DBR_TIME_SHORT #returns a short time structure (dbr_time_short) + cpdef readonly unsigned int CY_DBR_TIME_INT #returns a short time structure (dbr_time_short) + cpdef readonly unsigned int CY_DBR_TIME_FLOAT #returns a float time structure (dbr_time_float) + cpdef readonly unsigned int CY_DBR_TIME_ENUM #returns an enum time structure (dbr_time_enum) + cpdef readonly unsigned int CY_DBR_TIME_CHAR #returns a char time structure (dbr_time_char) + cpdef readonly unsigned int CY_DBR_TIME_LONG #returns a long time structure (dbr_time_long) + cpdef readonly unsigned int CY_DBR_TIME_DOUBLE #returns a double time structure (dbr_time_double) + cpdef readonly unsigned int CY_DBR_GR_STRING #returns a graphic string structure (dbr_gr_string) + cpdef readonly unsigned int CY_DBR_GR_SHORT #returns a graphic short structure (dbr_gr_short) + cpdef readonly unsigned int CY_DBR_GR_INT #returns a graphic short structure (dbr_gr_int) + cpdef readonly unsigned int CY_DBR_GR_FLOAT #returns a graphic float structure (dbr_gr_float) + cpdef readonly unsigned int CY_DBR_GR_ENUM #returns a graphic enum structure (dbr_gr_enum) + cpdef readonly unsigned int CY_DBR_GR_CHAR #returns a graphic char structure (dbr_gr_char) + cpdef readonly unsigned int CY_DBR_GR_LONG #returns a graphic long structure (dbr_gr_long) + cpdef readonly unsigned int CY_DBR_GR_DOUBLE #returns a graphic double structure (dbr_gr_double) + cpdef readonly unsigned int CY_DBR_CTRL_STRING #returns a control string structure (dbr_ctrl_int) + cpdef readonly unsigned int CY_DBR_CTRL_SHORT #returns a control short structure (dbr_ctrl_short) + cpdef readonly unsigned int CY_DBR_CTRL_INT #returns a control short structure (dbr_ctrl_int) + cpdef readonly unsigned int CY_DBR_CTRL_FLOAT #returns a control float structure (dbr_ctrl_float) + cpdef readonly unsigned int CY_DBR_CTRL_ENUM #returns a control enum structure (dbr_ctrl_enum) + cpdef readonly unsigned int CY_DBR_CTRL_CHAR #returns a control char structure (dbr_ctrl_char) + cpdef readonly unsigned int CY_DBR_CTRL_LONG #returns a control long structure (dbr_ctrl_long) + cpdef readonly unsigned int CY_DBR_CTRL_DOUBLE #returns a control double structure (dbr_ctrl_double) + + def __cinit__(self): + self.CY_DBE_VALUE =DBE_VALUE + self.CY_DBE_LOG =DBE_LOG + self.CY_DBE_ARCHIVE =DBE_ARCHIVE + self.CY_DBE_ALARM =DBE_ALARM + self.CY_DBE_PROPERTY =DBE_PROPERTY + self.CY_DBR_PRIMITIVE =DBR_PRIMITIVE + self.CY_DBR_PLAIN =DBR_PLAIN + self.CY_DBR_STS =DBR_STS + self.CY_DBR_TIME =DBR_TIME + self.CY_DBR_GR =DBR_GR + self.CY_DBR_CTRL =DBR_CTRL + self.CY_DBR_PUT =DBR_PUT # DBR_PUT_ACKT and DBR_PUT_ACKS Write only - used from global alarm acknowledge. + self.CY_DBR_STSACK =DBR_STSACK # is DBR_STSACK_STRING + self.CY_DBR_CLASS =DBR_CLASS # is DBR_CLASS_NAME, + self.CY_DBR_NONE =DBR_NONE + self.CY_DBR_STRING =DBR_STRING + self.CY_DBR_SHORT =DBR_SHORT #returns an unsigned short + self.CY_DBR_INT =DBR_INT #returns an unsigned short + self.CY_DBR_FLOAT =DBR_FLOAT #returns an IEEE floating point value + self.CY_DBR_ENUM =DBR_ENUM #returns an unsigned short which is the enum item + self.CY_DBR_CHAR =DBR_CHAR #returns an unsigned char + self.CY_DBR_LONG =DBR_LONG #returns an unsigned long + self.CY_DBR_DOUBLE =DBR_DOUBLE #returns a double precision floating point number + self.CY_DBR_STS_STRING=DBR_STS_STRING #returns a string status structure (dbr_sts_string) + self.CY_DBR_STS_SHORT =DBR_STS_SHORT #returns a short status structure (dbr_sts_short) + self.CY_DBR_STS_INT =DBR_STS_INT #returns a short status structure (dbr_sts_int) + self.CY_DBR_STS_FLOAT =DBR_STS_FLOAT #returns a float status structure (dbr_sts_float) + self.CY_DBR_STS_ENUM =DBR_STS_ENUM #returns an enum status structure (dbr_sts_enum) + self.CY_DBR_STS_CHAR =DBR_STS_CHAR #returns a char status structure (dbr_sts_char) + self.CY_DBR_STS_LONG =DBR_STS_LONG #returns a long status structure (dbr_sts_long) + self.CY_DBR_STS_DOUBLE=DBR_STS_DOUBLE #returns a double status structure (dbr_sts_double) + self.CY_DBR_TIME_STRING=DBR_TIME_STRING #returns a string time structure (dbr_time_string) + self.CY_DBR_TIME_SHORT =DBR_TIME_SHORT #returns a short time structure (dbr_time_short) + self.CY_DBR_TIME_INT =DBR_TIME_INT #returns a short time structure (dbr_time_short) + self.CY_DBR_TIME_FLOAT =DBR_TIME_FLOAT #returns a float time structure (dbr_time_float) + self.CY_DBR_TIME_ENUM =DBR_TIME_ENUM #returns an enum time structure (dbr_time_enum) + self.CY_DBR_TIME_CHAR =DBR_TIME_CHAR #returns a char time structure (dbr_time_char) + self.CY_DBR_TIME_LONG =DBR_TIME_LONG #returns a long time structure (dbr_time_long) + self.CY_DBR_TIME_DOUBLE=DBR_TIME_DOUBLE #returns a double time structure (dbr_time_double) + self.CY_DBR_GR_STRING =DBR_GR_STRING #returns a graphic string structure (dbr_gr_string) + self.CY_DBR_GR_SHORT =DBR_GR_SHORT #returns a graphic short structure (dbr_gr_short) + self.CY_DBR_GR_INT =DBR_GR_INT #returns a graphic short structure (dbr_gr_int) + self.CY_DBR_GR_FLOAT =DBR_GR_FLOAT #returns a graphic float structure (dbr_gr_float) + self.CY_DBR_GR_ENUM =DBR_GR_ENUM #returns a graphic enum structure (dbr_gr_enum) + self.CY_DBR_GR_CHAR =DBR_GR_CHAR #returns a graphic char structure (dbr_gr_char) + self.CY_DBR_GR_LONG =DBR_GR_LONG #returns a graphic long structure (dbr_gr_long) + self.CY_DBR_GR_DOUBLE =DBR_GR_DOUBLE #returns a graphic double structure (dbr_gr_double) + self.CY_DBR_CTRL_STRING=DBR_CTRL_STRING #returns a control string structure (dbr_ctrl_int) + self.CY_DBR_CTRL_SHORT =DBR_CTRL_SHORT #returns a control short structure (dbr_ctrl_short) + self.CY_DBR_CTRL_INT =DBR_CTRL_INT #returns a control short structure (dbr_ctrl_int) + self.CY_DBR_CTRL_FLOAT =DBR_CTRL_FLOAT #returns a control float structure (dbr_ctrl_float) + self.CY_DBR_CTRL_ENUM =DBR_CTRL_ENUM #returns a control enum structure (dbr_ctrl_enum) + self.CY_DBR_CTRL_CHAR =DBR_CTRL_CHAR #returns a control char structure (dbr_ctrl_char) + self.CY_DBR_CTRL_LONG =DBR_CTRL_LONG #returns a control long structure (dbr_ctrl_long) + self.CY_DBR_CTRL_DOUBLE=DBR_CTRL_DOUBLE #returns a control double structure (dbr_ctrl_double) + return + + + +cdef class channelInfo: + cdef readonly long channelID + cdef readonly bint connectFlag + cdef readonly string hostName + cdef readonly unsigned int nelem #native + cdef readonly int dataType; #native + cdef readonly unsigned short accessRead; #0 or 1 + cdef readonly unsigned short accessWrite; #0 or 1 + cdef readonly string className; #dbr_class_name_t + cdef readonly int connectionState; #as given by CA_OP_ + cdef readonly int cafeConnectionState; #as given by cafe_cs_state + cdef readonly string connectionStateAsString; #as given by CA_OP_ + cdef readonly string cafeConnectionStateAsString; #as given by cafe_cs_state + cdef CAFEDataTypeCode cdt + cdef CAFEStatusCode csc + cdef CAOPCodes caop + + def __cinit__(self): + self.channelID=0 + self.connectFlag=False + self.hostName='' + self.nelem=0 + self.dataType=ICAFE_TYPENOTCONN + self.accessRead=0 + self.accessWrite=0 + self.className='' + self.connectionState=ICAFE_CA_OP_CONN_DOWN + self.cafeConnectionState=ICAFE_CS_NEVER_CONN + self.connectionStateAsString='ICAFE_CA_OP_CONN_DOWN' + self.cafeConnectionStateAsString='ICAFE_CS_NEVER_CONN' + + def show(self): + print ("channelID = %x" % self.channelID) + print ("connectFlag = %d" % self.connectFlag) + print ("hostName = %s" % self.hostName) + print ("nelem = %d" % self.nelem) + print ("dataType = %s (%d)" % (self.cdt.message(self.dataType), self.dataType)) + print ("accessRead = %d" % self.accessRead) + print ("accessWrite = %d" % self.accessWrite) + print ("className = %s" % self.className) + #print ("connectionState = %s (%d)" % (self.connectionStateAsString, self.connectionState)) + #print ("cafeConnectionState = %s (%d)" % (self.cafeConnectionStateAsString,self.cafeConnectionState)) + print ("connectionState = %s (%d)" % (self.caop.message(self.connectionState),self.connectionState)) + print ("cafeConnectionState = %s (%d)" % (self.csc.message(self.cafeConnectionState),self.cafeConnectionState)) + return + + + +################################################################################## +cdef class _epicsTimeStampAsDate: + cdef epicsTime *_time + cdef local_tm_nano_sec local + cdef list etsDate + def __cinit__(self, epicsTimeStamp ts): + self._time = new epicsTime(ts) + self.local = (self._time) + + print "ts====== ", ts.secPastEpoch, ts.nsec + + print "year=== ", ( ( (&(&self.local).ansi_tm).tm_year) + 1900) + + self.etsDate=[] + self.etsDate.append( (self.local.ansi_tm.tm_year + 1900)) + self.etsDate.append( (self.local.ansi_tm.tm_mon + 1)) + self.etsDate.append( self.local.ansi_tm.tm_mday) + self.etsDate.append( self.local.ansi_tm.tm_hour) + self.etsDate.append( self.local.ansi_tm.tm_min) + self.etsDate.append( self.local.ansi_tm.tm_sec) + self.etsDate.append( ts.nsec) + self.etsDate.append( self.local.nSec) + def get(self): + return self.etsDate + + +################################################################################## + +################################################################################## +cdef class pvctrl: + cdef readonly unsigned int nelem + cdef readonly int alarmStatus + cdef readonly int alarmSeverity + cdef readonly unsigned short precision + cdef readonly string units + cdef readonly unsigned short noEnumStrings + cdef readonly list enumStrings + cdef readonly upperDisplayLimit + cdef readonly lowerDisplayLimit + cdef readonly upperAlarmLimit + cdef readonly upperWarningLimit + cdef readonly lowerWarningLimit + cdef readonly lowerAlarmLimit + cdef readonly upperControlLimit + cdef readonly lowerControlLimit + cdef readonly list value + cdef readonly int status + + def __cinit__(self): + self.nelem= 1 + self.alarmStatus=-1 + self.alarmSeverity=-1 + self.precision=0 + self.units="" + self.noEnumStrings=0 + self.enumStrings=[] + self.upperDisplayLimit=0 + self.lowerDisplayLimit=0 + self.upperAlarmLimit=0 + self.lowerAlarmLimit=0 + self.upperControlLimit=0 + self.lowerControlLimit=0 + self.value=[] + self.status=1 + + + def show(self): + self.showPrint(self.nelem) + return + + def showMax(self, nelem): + if nelem > self.nelem: + #print "----------------------" + #print "Note: Max. Nelem =", self.nelem + #print "----------------------" + nelem=self.nelem + self.showPrint(nelem) + return + + cdef showPrint(self, nelem): + cdef unsigned int i + #is self.value[0] a list + if nelem==1: + if isinstance (self.value[0], list): + print "value =", self.value[0][0], + else: + print "value =", self.value[0], + else: + print "values =", + if isinstance (self.value[0], list): + for i in range(0, nelem): + print self.value[0][i],"[%d]" %i, + else: + for i in range(0, nelem): + print self.value[i],"[%d]" %i, + print "" + print ("status = %d" % self.status) + print ("alarmStatus = %d" % self.alarmStatus) + print ("alarmSeverity = %d" % self.alarmSeverity) + print ("precision = %d" % self.precision) + print ("units = %s" % self.units) + print ("noEnumStrings = %d" % self.noEnumStrings) + + if self.noEnumStrings > 0: + print "enumStrings =", + for i in range(0, self.noEnumStrings): + print self.enumStrings[i],"[%s]" %i, + print "" + + print ("upperDisplayLimit = %f" % self.upperDisplayLimit) + print ("lowerDisplayLimit = %f" % self.lowerDisplayLimit) + print ("upperAlarmLimit = %f" % self.upperAlarmLimit) + print ("lowerAlarmLimit = %f" % self.lowerAlarmLimit) + print ("upperWarningLimit = %f" % self.upperWarningLimit) + print ("lowerWarningLimit = %f" % self.lowerWarningLimit) + print ("upperControlLimit = %f" % self.upperControlLimit) + print ("lowerControlLimit = %f" % self.lowerControlLimit) + + return +################################################################################## + + +################################################################################## +cdef class pvdata: + cdef readonly unsigned int nelem + cdef readonly int alarmStatus + cdef readonly int alarmSeverity + cdef readonly list ts + cdef readonly list tsDate + cdef readonly list value + cdef readonly int status + + + def __cinit__(self): + self.nelem= 1 + + self.alarmStatus=-1 + self.alarmSeverity=-1 + self.ts=[] + self.tsDate=[] + self.value=[] + self.status=1 + + + def show(self): + self.showPrint(self.nelem) + return + + def showMax(self, nelem): + if nelem > self.nelem: + #print "----------------------" + #print "Note: Max. Nelem =", self.nelem + #print "----------------------" + nelem=self.nelem + self.showPrint(nelem) + return + + cdef showPrint(self, nelem): + cdef unsigned int i + #is self.value[0] a list + + if nelem==1: + if isinstance (self.value[0], list): + print "value =", self.value[0][0], + else: + print "value =", self.value[0], + else: + print "values =", + if isinstance (self.value[0], list): + for i in range(0, nelem): + print self.value[0][i],"[%d]" %i, + else: + for i in range(0, nelem): + print self.value[i],"[%d]" %i, + print "" + print ("status = %d" % self.status) + #if self.alarmStatus != -1: + print ("alarmStatus = %d" % self.alarmStatus) + print ("alarmSeverity = %d" % self.alarmSeverity) + #if self.ts[0] != 0: + print "ts =", self.ts[0], self.ts[1] + print "tsDate =", self.tsDate[0], self.tsDate[1], \ + self.tsDate[2], self.tsDate[3],\ + self.tsDate[4], self.tsDate[5], self.tsDate[6] + return + +################################################################################## + + + + +################################################################################## +cdef class pvgroup: + cdef readonly list pvdata + cdef readonly unsigned int npv + cdef readonly string name + cdef readonly int groupStatus + cdef readonly unsigned int groupHandle + + def __cinit__(self): + self.groupStatus=ICAFE_NORMAL + return + + def show(self): + self.showPrint(npv=self.npv, grouplist=None) + return + + def showWithPV(self,glist): + if len(glist) != self.npv: + print "ERROR: GROUP MEMBER MISMATCH!!" + print glist, "has", len(glist), "members while group has", self.npv,"!!" + return + self.showPrint(self.npv, grouplist=glist) + return + + + def showMax(self, _npv): + if _npv > self.npv: + #print "----------------------" + #print "Note: Max. Npv =", self.npv + #print "----------------------" + _npv=self.npv + self.showPrint(npv=_npv, grouplist=None) + return + + cdef showPrint(self, npv, grouplist): + print "GROUP NAME = ", self.name + print "GROUP HANDLE = ", self.groupHandle + print "GROUP STATUS = ", self.groupStatus + cdef unsigned int i,j + #if nelem==1: + # print "value =", self.value[0], + #else: + + + for i in range(0, npv): + print "Member: ", i, "---------------------------------" + if grouplist: + print "PV =", grouplist[i] + + print "values =", + for j in range(0, len(self.pvdata[i].value)): + print self.pvdata[i].value[j],"[%d]" %j, + print "" + print ("status = %d" % self.pvdata[i].status) + print ("alarmStatus = %d" % self.pvdata[i].alarmStatus) + print ("alarmSeverity = %d" % self.pvdata[i].alarmSeverity) + print "ts =", self.pvdata[i].ts[0], self.pvdata[i].tsDate[1] + print "tsDate =", self.pvdata[i].tsDate[0], self.pvdata[i].tsDate[1], \ + self.pvdata[i].tsDate[2], self.pvdata[i].tsDate[3],\ + self.pvdata[i].tsDate[4], self.pvdata[i].tsDate[5], self.pvdata[i].tsDate[6] + print "--------------------------------------------" + return + + + ''' + cdef showPrintWithPVName(self, npv, pvlist): + print "GROUP NAME = ", self.name + print "GROUP HANDLE = ", self.groupHandle + print "GROUP STATUS = ", self.groupStatus + cdef unsigned int i,j + + for i in range(0, npv): + print "pv =", pvlist[i] + for j in range(0, len(self.pvdata[i].value)): + print self.pvdata[i].value[j],"[%d]" %j, + print "" + print ("status = %d" % self.pvdata[i].status) + print ("alarmStatus = %d" % self.pvdata[i].alarmStatus) + print ("alarmSeverity = %d" % self.pvdata[i].alarmSeverity) + print "ts =", self.pvdata[i].ts[0], self.pvdata[i].tsDate[1] + print "tsDate =", self.pvdata[i].tsDate[0], self.pvdata[i].tsDate[1], \ + self.pvdata[i].tsDate[2], self.pvdata[i].tsDate[3],\ + self.pvdata[i].tsDate[4], self.pvdata[i].tsDate[5], self.pvdata[i].tsDate[6] + return + ''' +################################################################################## + + + +################################################################################## +cdef getMatchedDataType(dt, dtn): + #dt: input from user + #dtn: native type + #dtcheck: matching data type for pvd convert method + + cdef unsigned int dtcheck=dtn; + + if dt in ['int','long','short','uint','ulong','ushort','int32','int64','uint32','uint64']: + dtcheck=CAFE_LONG + elif dt=='double': + dtcheck=CAFE_DOUBLE + elif dt=='float': + dtcheck=CAFE_DOUBLE + elif dt in ['string','str']: + dtcheck=CAFE_STRING + elif dt in ['native','']: + dtcheck=dtn #need a line here + else: + print "Valid input parameters for data type are: 'int', 'float', 'str', or 'native'" + print "Data to be presented in native data type" + + return dtcheck +################################################################################## + + + +################################################################################# + +#cdef pvdata p1 = pvdata() +#cdef pvctrl c1 = pvctrl() + + +################################################################################# + +cdef pvdata PVDataHolderToStruct(PVDataHolder pvd, dt=None): + + #global p1 + cdef pvdata p1 = pvdata() + + cdef unsigned int dtn = pvd.getDataType(); + cdef unsigned int dtcheck=dtn + cdef localList=[] + + if dt: + dtcheck=getMatchedDataType(dt, dtn) + + if dtcheck==CAFE_STRING: + for i in range(0, pvd.getNelem()): + localList.append(pvd.getAsString(i)) + elif dtcheck==CAFE_SHORT: + for i in range(0, pvd.getNelem()): + localList.append(pvd.getAsLong(i)) #getAsShort(i) + elif dtcheck==CAFE_FLOAT: + for i in range(0, pvd.getNelem()): + localList.append(pvd.getAsDouble(i)) #getAsFloat(i) + elif dtcheck==CAFE_ENUM: + #if enum, string taken as native + #if self._c_cafe.isEnum(handle)==1: + for i in range(0, pvd.getNelem()): + localList.append(pvd.getAsString(i)) + #else: + # for i in range(0, pvd.getNelem()): + # localList.append(pvd.getAsLong(i)) #getAsUShort(i) + elif dtcheck==CAFE_CHAR: + for i in range(0, pvd.getNelem()): + localList.append(pvd.getAsLong(i)) # pvd.getAsChar(i) + elif dtcheck==CAFE_LONG: + for i in range(0, pvd.getNelem()): + localList.append(pvd.getAsLong(i)) + elif dtcheck==CAFE_DOUBLE: + for i in range(0, pvd.getNelem()): + localList.append(pvd.getAsDouble(i)) + else: + localList.append(0) + #print "This line in PyCafe def getDataHolderToStruct should never appear!" + #print "No Data! Error. Is channel connected?" + + p1.value=localList + p1.status=pvd.getStatus() + p1.nelem=pvd.getNelem() + p1.alarmStatus=pvd.getAlarmStatus() + p1.alarmSeverity=pvd.getAlarmSeverity() + + pvd._etsNorm=pvd.getEpicsTimeStampAsUInt32() + + cpdef ll=[] + ll.append((pvd._etsNorm).secPastEpoch) + ll.append((pvd._etsNorm).nsec) + p1.ts=ll + + pvd._etsDate=pvd.getEpicsTimeStampAsDate() + + cpdef ld=[] + ld.append( (pvd._etsDate).year ) + ld.append( (pvd._etsDate).mon ) + ld.append( (pvd._etsDate).day ) + ld.append( (pvd._etsDate).hour ) + ld.append( (pvd._etsDate).min ) + ld.append( (pvd._etsDate).sec ) + ld.append( (pvd._etsDate).nsec ) + p1.tsDate=ld + + return p1 +################################################################################## + + + +################################################################################# + +cdef pvctrl PVCtrlHolderToStruct(PVCtrlHolder pvc, dt=None): + + #global c1 + cdef pvctrl c1 = pvctrl() + + cdef unsigned int dtn = pvc.getDataType(); + + cdef unsigned int dtcheck=dtn + + cdef localList=[] + + if dt: + dtcheck=getMatchedDataType(dt, dtn) + + if dtcheck==CAFE_STRING: + for i in range(0, pvc.getNelem()): + localList.append(pvc.getAsString(i)) + elif dtcheck==CAFE_SHORT: + for i in range(0, pvc.getNelem()): + localList.append(pvc.getAsLong(i)) #getAsShort(i) + elif dtcheck==CAFE_FLOAT: + for i in range(0, pvc.getNelem()): + localList.append(pvc.getAsDouble(i)) #getAsFloat(i) + elif dtcheck==CAFE_ENUM: + #if enum, string taken as native + #if self._c_cafe.isEnum(handle)==1: + for i in range(0, pvc.getNelem()): + localList.append(pvc.getAsString(i)) + #else: + # for i in range(0, pvd.getNelem()): + # localList.append(pvd.getAsLong(i)) #getAsUShort(i) + elif dtcheck==CAFE_CHAR: + for i in range(0, pvc.getNelem()): + localList.append(pvc.getAsLong(i)) # pvd.getAsChar(i) + elif dtcheck==CAFE_LONG: + for i in range(0, pvc.getNelem()): + localList.append(pvc.getAsLong(i)) + elif dtcheck==CAFE_DOUBLE: + for i in range(0, pvc.getNelem()): + localList.append(pvc.getAsDouble(i)) + else: + localList.append(0) + #print "This line in PyCafe def getDataHolderToStruct should never appear!" + #print "No Data! Error. Is channel connected?" + c1.value=localList + c1.status=pvc.getStatus() + c1.nelem=pvc.getNelem() + c1.alarmStatus=pvc.getAlarmStatus() + c1.alarmSeverity=pvc.getAlarmSeverity() + + c1.precision=pvc.getPrecision() + c1.noEnumStrings=pvc.getNoEnumStrings() + + enumList=[] + for i in range(0, pvc.getNoEnumStrings()): + enumList.append(pvc.getEnumStrings()[i]) + + c1.enumStrings=enumList + + c1.units=pvc.getUnitsAsString() + + c1.upperDisplayLimit=pvc.getUpperDispLimit_AsDouble() + c1.lowerDisplayLimit=pvc.getLowerDispLimit_AsDouble() + c1.upperAlarmLimit =pvc.getUpperAlarmLimit_AsDouble() + c1.upperWarningLimit=pvc.getUpperWarningLimit_AsDouble() + c1.lowerWarningLimit=pvc.getLowerWarningLimit_AsDouble() + c1.lowerAlarmLimit =pvc.getLowerAlarmLimit_AsDouble() + c1.upperControlLimit=pvc.getUpperCtrlLimit_AsDouble() + c1.lowerControlLimit=pvc.getLowerCtrlLimit_AsDouble() + + return c1 +################################################################################## + + +################################################################################# + +cdef channelInfo channelRegaliaToStruct(ChannelRegalia cr): + + cdef channelInfo ci = channelInfo() + + ci.channelID = ( cr.getChannelID()) + ci.connectFlag=cr.getConnectFlag() + ci.hostName =cr.getHostNameAsString() + ci.dataType =cr.getDataType() + ci.className =cr.getClassNameAsString() + ci.accessRead =cr.getAccessRead() + ci.accessWrite=cr.getAccessWrite() + ci.nelem =cr.getNelem() + ci.connectionState =cr.getConnectionState() + ci.cafeConnectionState=cr.getCafeConnectionState() + ci.connectionStateAsString =cr.getConnectionStateAsString() + ci.cafeConnectionStateAsString =cr.getCafeConnectionStateAsString() + return ci +################################################################################# + diff --git a/cNodes.xml b/cNodes.xml new file mode 100644 index 0000000..200fd08 --- /dev/null +++ b/cNodes.xml @@ -0,0 +1,3230 @@ + + + Collection of Nodes at SwissFEL + + X + Y + X0 + Y0 + REF-X + REF-Y + REFOFF-X + REFOFF-Y + REFORB-X + REFORB-Y + SET-GAIN + I + FB-STAT + FB-ENABLE + STAT + ENABLE + + + SINEG01-DBPM340 + + + SINSB01-DBPM150 + + + SINSB02-DBPM150 + + + SINLH01-DBPM060 + + + SINLH02-DBPM210 + + + SINLH02-DBPM240 + + + SINLH03-DBPM010 + + + SINLH03-DBPM050 + + + SINLH03-DBPM090 + + + SINSB03-DBPM120 + + + SINSB03-DBPM220 + + + SINSB04-DBPM120 + + + SINSB04-DBPM220 + + + SINSB05-DBPM120 + + + SINSB05-DBPM220 + + + SINXB01-DBPM120 + + + SINBC01-DBPM010 + + + SINBC01-DBPM030 + + + SINBC01-DBPM080 + + + SINBC01-DBPM100 + + + SINBC02-DBPM140 + + + SINBC02-DBPM320 + + + SINDI01-DBPM010 + + + SINDI01-DBPM060 + + + SINDI02-DBPM010 + + + SINDI02-DBPM040 + + + SINDI02-DBPM080 + + + S10CB01-DBPM220 + + + S10CB01-DBPM420 + + + S10CB02-DBPM220 + + + S10CB02-DBPM420 + + + S10DI01-DBPM110 + + + S10CB03-DBPM220 + + + S10CB03-DBPM420 + + + S10CB04-DBPM220 + + + S10CB04-DBPM420 + + + S10CB05-DBPM220 + + + S10CB05-DBPM420 + + + S10CB06-DBPM220 + + + S10CB06-DBPM420 + + + S10CB07-DBPM220 + + + S10CB07-DBPM420 + + + S10CB08-DBPM220 + + + S10CB08-DBPM420 + + + S10CB09-DBPM220 + + + S10BC01-DBPM010 + + + S10BC01-DBPM050 + + + S10BC01-DBPM090 + + + S10BC02-DBPM140 + + + S10BC02-DBPM320 + + + S10MA01-DBPM010 + + + S10MA01-DBPM060 + + + S10MA01-DBPM120 + + + S20CB01-DBPM420 + + + S20CB02-DBPM420 + + + S20CB03-DBPM420 + + + S20SY01-DBPM010 + + + S20SY01-DBPM040 + + + S20SY01-DBPM060 + + + S20SY02-DBPM080 + + + S20SY02-DBPM120 + + + S20SY02-DBPM150 + + + S20SY03-DBPM010 + + + S20SY03-DBPM040 + + + S20SY03-DBPM080 + + + S30CB01-DBPM420 + + + S30CB02-DBPM420 + + + S30CB03-DBPM420 + + + S30CB04-DBPM420 + + + S30CB05-DBPM420 + + + S30CB06-DBPM420 + + + S30CB07-DBPM420 + + + S30CB08-DBPM420 + + + S30CB09-DBPM420 + + + S30CB10-DBPM420 + + + S30CB11-DBPM420 + + + S30CB12-DBPM420 + + + S30CB13-DBPM420 + + + S30CB14-DBPM420 + + + S30CB15-DBPM420 + + + SARCL01-DBPM010 + + + SARCL01-DBPM060 + + + SARCL01-DBPM120 + + + SARCL01-DBPM150 + + + SARCL02-DBPM110 + + + SARCL02-DBPM220 + + + SARCL02-DBPM260 + + + SARCL02-DBPM330 + + + SARCL02-DBPM470 + + + SARMA01-DBPM040 + + + SARMA01-DBPM100 + + + SARMA02-DBPM010 + + + SARMA02-DBPM020 + + + SARMA02-DBPM040 + + + SARMA02-DBPM110 + + + SARUN01-DBPM070 + + + SARUN02-DBPM070 + + + SARUN03-DBPM070 + + + SARUN04-DBPM070 + + + SARUN05-DBPM070 + + + SARUN06-DBPM070 + + + SARUN07-DBPM070 + + + SARUN08-DBPM070 + + + SARUN09-DBPM070 + + + SARUN10-DBPM070 + + + SARUN11-DBPM070 + + + SARUN12-DBPM070 + + + SARUN13-DBPM070 + + + SARUN14-DBPM070 + + + SARUN15-DBPM070 + + + SARUN16-DBPM070 + + + SARUN17-DBPM070 + + + SARUN18-DBPM070 + + + SARUN19-DBPM070 + + + SARUN20-DBPM070 + + + SATSY01-DBPM010 + + + SATSY01-DBPM060 + + + SATSY01-DBPM100 + + + SATSY01-DBPM240 + + + SATSY01-DBPM290 + + + SATSY02-DBPM020 + + + SATSY02-DBPM210 + + + SATSY03-DBPM030 + + + SATSY03-DBPM060 + + + SATSY03-DBPM090 + + + SATSY03-DBPM120 + + + SATCL01-DBPM140 + + + SATDI01-DBPM030 + + + SATDI01-DBPM060 + + + SATDI01-DBPM210 + + + SATDI01-DBPM240 + + + SATDI01-DBPM270 + + + SATDI01-DBPM310 + + + SATCB01-DBPM220 + + + SATCB01-DBPM420 + + + SATCB02-DBPM220 + + + SATCB02-DBPM420 + + + SATMA01-DBPM010 + + + SATMA01-DBPM020 + + + SATMA01-DBPM040 + + + S10BD01-DBPM020 + + + SARBD01-DBPM040 + + + SARBD02-DBPM010 + + + SARBD02-DBPM040 + + + + Collection of Nodes at SwissFEL + + I-SET + I-READ + PS-MODE + + + SINEG01-MCRX120 + + + SINEG01-MCRX160 + + + SINEG01-MCRX180 + + + SINEG01-MCRX200 + + + SINEG01-MCRX220 + + + SINSB01-MCRX010 + + + SINSB02-MCRX010 + + + SINLH01-MCRX020 + + + SINLH01-MCRX050 + + + SINLH02-MCRX010 + + + SINLH02-MCRX100 + + + SINLH02-MCRX200 + + + SINLH02-MCRX300 + + + SINLH02-MCRX400 + + + SINLH02-MCRX410 + + + SINLH03-MCRX040 + + + SINLH03-MCRX080 + + + SINSB03-MCRX130 + + + SINSB03-MCRX230 + + + SINSB04-MCRX130 + + + SINSB04-MCRX230 + + + SINSB05-MCRX130 + + + SINSB05-MCRX230 + + + SINBC01-MCRX020 + + + SINBC01-MCRX050 + + + SINBC01-MCRX070 + + + SINBC01-MCRX090 + + + SINBC01-MCRX110 + + + SINBC02-MCRX100 + + + SINBC02-MCRX200 + + + SINBC02-MCRX300 + + + SINBC02-MCRX400 + + + SINDI01-MCRX020 + + + SINDI01-MCRX070 + + + SINDI02-MCRX020 + + + SINDI02-MCRX030 + + + SINDI02-MCRX050 + + + SINDI02-MCRX060 + + + SINDI02-MCRX090 + + + S10CB01-MCRX230 + + + S10CB01-MCRX430 + + + S10CB02-MCRX230 + + + S10CB02-MCRX430 + + + S10DI01-MCRX100 + + + S10DI01-MCRX120 + + + S10CB03-MCRX230 + + + S10CB03-MCRX430 + + + S10CB04-MCRX230 + + + S10CB04-MCRX430 + + + S10CB05-MCRX230 + + + S10CB05-MCRX430 + + + S10CB06-MCRX230 + + + S10CB06-MCRX430 + + + S10CB07-MCRX230 + + + S10CB07-MCRX430 + + + S10CB08-MCRX230 + + + S10CB08-MCRX430 + + + S10CB09-MCRX230 + + + S10BC01-MCRX020 + + + S10BC01-MCRX040 + + + S10BC01-MCRX060 + + + S10BC01-MCRX080 + + + S10BC01-MCRX100 + + + S10BC02-MCRX100 + + + S10BC02-MCRX200 + + + S10BC02-MCRX300 + + + S10BC02-MCRX400 + + + S10MA01-MCRX020 + + + S10MA01-MCRX050 + + + S10MA01-MCRX070 + + + S10MA01-MCRX100 + + + S10MA01-MCRX110 + + + S10MA01-MCRX130 + + + S20CB01-MCRX430 + + + S20CB02-MCRX430 + + + S20CB03-MCRX430 + + + S20SY01-MCRX020 + + + S20SY01-MCRX030 + + + S20SY01-MCRX050 + + + S20SY01-MCRX080 + + + S20SY02-MCRX060 + + + S20SY02-MCRX090 + + + S20SY02-MCRX130 + + + S20SY02-MCRX170 + + + S20SY03-MCRX020 + + + S20SY03-MCRX030 + + + S20SY03-MCRX050 + + + S20SY03-MCRX060 + + + S20SY03-MCRX100 + + + S30CB01-MCRX430 + + + S30CB02-MCRX430 + + + S30CB03-MCRX430 + + + S30CB04-MCRX430 + + + S30CB05-MCRX430 + + + S30CB06-MCRX430 + + + S30CB07-MCRX430 + + + S30CB08-MCRX430 + + + S30CB09-MCRX430 + + + S30CB10-MCRX430 + + + S30CB11-MCRX430 + + + S30CB12-MCRX430 + + + S30CB13-MCRX430 + + + S30CB14-MCRX430 + + + S30CB15-MCRX430 + + + SARCL01-MCRX020 + + + SARCL01-MCRX040 + + + SARCL01-MCRX070 + + + SARCL01-MCRX090 + + + SARCL01-MCRX130 + + + SARCL01-MCRX180 + + + SARCL02-MCRX100 + + + SARCL02-MCRX120 + + + SARCL02-MCRX200 + + + SARCL02-MCRX230 + + + SARCL02-MCRX240 + + + SARCL02-MCRX320 + + + SARCL02-MCRX340 + + + SARCL02-MCRX400 + + + SARCL02-MCRX450 + + + SARCL02-MCRX480 + + + SARCL02-MCRX500 + + + SARMA01-MCRX020 + + + SARMA01-MCRX050 + + + SARMA01-MCRX070 + + + SARMA01-MCRX110 + + + SARMA01-MCRX130 + + + SARMA02-MCRX050 + + + SARMA02-MCRX120 + + + SARUN01-MCRX080 + + + SARUN02-MCRX080 + + + SARUN03-MCRX010 + + + SARUN03-MCRX040 + + + SARUN03-MCRX080 + + + SARUN04-MCRX010 + + + SARUN04-MCRX040 + + + SARUN04-MCRX080 + + + SARUN05-MCRX010 + + + SARUN05-MCRX040 + + + SARUN05-MCRX080 + + + SARUN06-MCRX010 + + + SARUN06-MCRX040 + + + SARUN06-MCRX080 + + + SARUN07-MCRX010 + + + SARUN07-MCRX040 + + + SARUN07-MCRX080 + + + SARUN08-MCRX010 + + + SARUN08-MCRX040 + + + SARUN08-MCRX080 + + + SARUN09-MCRX010 + + + SARUN09-MCRX040 + + + SARUN09-MCRX080 + + + SARUN10-MCRX010 + + + SARUN10-MCRX040 + + + SARUN10-MCRX080 + + + SARUN11-MCRX010 + + + SARUN11-MCRX040 + + + SARUN11-MCRX080 + + + SARUN12-MCRX010 + + + SARUN12-MCRX040 + + + SARUN12-MCRX080 + + + SARUN13-MCRX010 + + + SARUN13-MCRX040 + + + SARUN13-MCRX080 + + + SARUN14-MCRX010 + + + SARUN14-MCRX040 + + + SARUN14-MCRX080 + + + SARUN15-MCRX010 + + + SARUN15-MCRX040 + + + SARUN15-MCRX080 + + + SARUN16-MCRX080 + + + SARUN17-MCRX080 + + + SARUN18-MCRX080 + + + SARUN19-MCRX080 + + + SARUN20-MCRX080 + + + SATSY01-MCRX020 + + + SATSY01-MCRX040 + + + SATSY01-MCRX070 + + + SATSY01-MCRX090 + + + SATSY01-MCRX210 + + + SATSY01-MCRX230 + + + SATSY01-MCRX260 + + + SATSY01-MCRX280 + + + SATSY01-MCRX300 + + + SATSY02-MCRX010 + + + SATSY02-MCRX110 + + + SATSY02-MCRX120 + + + SATSY02-MCRX230 + + + SATSY03-MCRX010 + + + SATSY03-MCRX040 + + + SATSY03-MCRX070 + + + SATSY03-MCRX100 + + + SATSY03-MCRX130 + + + SATCL01-MCRX100 + + + SATCL01-MCRX120 + + + SATCL01-MCRX130 + + + SATCL01-MCRX180 + + + SATCL01-MCRX190 + + + SATCL01-MCRX300 + + + SATDI01-MCRX040 + + + SATDI01-MCRX050 + + + SATDI01-MCRX220 + + + SATDI01-MCRX230 + + + SATDI01-MCRX250 + + + SATDI01-MCRX260 + + + SATDI01-MCRX280 + + + SATDI01-MCRX300 + + + SATCB01-MCRX230 + + + SATCB01-MCRX430 + + + SATCB02-MCRX230 + + + SATCB02-MCRX430 + + + SATMA01-MCRX050 + + + SARBD01-MCRX020 + + + + Collection of Nodes at SwissFEL + + I-SET + I-READ + PS-MODE + + + SINEG01-MCRY120 + + + SINEG01-MCRY160 + + + SINEG01-MCRY180 + + + SINEG01-MCRY200 + + + SINEG01-MCRY220 + + + SINSB01-MCRY010 + + + SINSB02-MCRY010 + + + SINLH01-MCRY020 + + + SINLH01-MCRY050 + + + SINLH02-MCRY010 + + + SINLH02-MCRY410 + + + SINLH03-MCRY040 + + + SINLH03-MCRY080 + + + SINSB03-MCRY130 + + + SINSB03-MCRY230 + + + SINSB04-MCRY130 + + + SINSB04-MCRY230 + + + SINSB05-MCRY130 + + + SINSB05-MCRY230 + + + SINBC01-MCRY020 + + + SINBC01-MCRY050 + + + SINBC01-MCRY070 + + + SINBC01-MCRY090 + + + SINBC01-MCRY110 + + + SINDI01-MCRY020 + + + SINDI01-MCRY070 + + + SINDI02-MCRY020 + + + SINDI02-MCRY030 + + + SINDI02-MCRY050 + + + SINDI02-MCRY060 + + + SINDI02-MCRY090 + + + S10CB01-MCRY230 + + + S10CB01-MCRY430 + + + S10CB02-MCRY230 + + + S10CB02-MCRY430 + + + S10DI01-MCRY120 + + + S10CB03-MCRY230 + + + S10CB03-MCRY430 + + + S10CB04-MCRY230 + + + S10CB04-MCRY430 + + + S10CB05-MCRY230 + + + S10CB05-MCRY430 + + + S10CB06-MCRY230 + + + S10CB06-MCRY430 + + + S10CB07-MCRY230 + + + S10CB07-MCRY430 + + + S10CB08-MCRY230 + + + S10CB08-MCRY430 + + + S10CB09-MCRY230 + + + S10BC01-MCRY020 + + + S10BC01-MCRY040 + + + S10BC01-MCRY060 + + + S10BC01-MCRY080 + + + S10BC01-MCRY100 + + + S10MA01-MCRY020 + + + S10MA01-MCRY050 + + + S10MA01-MCRY070 + + + S10MA01-MCRY110 + + + S10MA01-MCRY130 + + + S20CB01-MCRY430 + + + S20CB02-MCRY430 + + + S20CB03-MCRY430 + + + S20SY01-MCRY020 + + + S20SY01-MCRY030 + + + S20SY01-MCRY050 + + + S20SY01-MCRY080 + + + S20SY02-MCRY060 + + + S20SY02-MCRY090 + + + S20SY02-MCRY130 + + + S20SY02-MCRY170 + + + S20SY03-MCRY020 + + + S20SY03-MCRY030 + + + S20SY03-MCRY050 + + + S20SY03-MCRY060 + + + S20SY03-MCRY100 + + + S30CB01-MCRY430 + + + S30CB02-MCRY430 + + + S30CB03-MCRY430 + + + S30CB04-MCRY430 + + + S30CB05-MCRY430 + + + S30CB06-MCRY430 + + + S30CB07-MCRY430 + + + S30CB08-MCRY430 + + + S30CB09-MCRY430 + + + S30CB10-MCRY430 + + + S30CB11-MCRY430 + + + S30CB12-MCRY430 + + + S30CB13-MCRY430 + + + S30CB14-MCRY430 + + + S30CB15-MCRY430 + + + SARCL01-MCRY020 + + + SARCL01-MCRY040 + + + SARCL01-MCRY070 + + + SARCL01-MCRY090 + + + SARCL01-MCRY130 + + + SARCL01-MCRY180 + + + SARCL02-MCRY120 + + + SARCL02-MCRY230 + + + SARCL02-MCRY240 + + + SARCL02-MCRY320 + + + SARCL02-MCRY340 + + + SARCL02-MCRY450 + + + SARCL02-MCRY480 + + + SARMA01-MCRY020 + + + SARMA01-MCRY050 + + + SARMA01-MCRY070 + + + SARMA01-MCRY110 + + + SARMA01-MCRY130 + + + SARMA02-MCRY050 + + + SARMA02-MCRY120 + + + SARUN01-MCRY080 + + + SARUN02-MCRY080 + + + SARUN03-MCRY010 + + + SARUN03-MCRY040 + + + SARUN03-MCRY080 + + + SARUN04-MCRY010 + + + SARUN04-MCRY040 + + + SARUN04-MCRY080 + + + SARUN05-MCRY010 + + + SARUN05-MCRY040 + + + SARUN05-MCRY080 + + + SARUN06-MCRY010 + + + SARUN06-MCRY040 + + + SARUN06-MCRY080 + + + SARUN07-MCRY010 + + + SARUN07-MCRY040 + + + SARUN07-MCRY080 + + + SARUN08-MCRY010 + + + SARUN08-MCRY040 + + + SARUN08-MCRY080 + + + SARUN09-MCRY010 + + + SARUN09-MCRY040 + + + SARUN09-MCRY080 + + + SARUN10-MCRY010 + + + SARUN10-MCRY040 + + + SARUN10-MCRY080 + + + SARUN11-MCRY010 + + + SARUN11-MCRY040 + + + SARUN11-MCRY080 + + + SARUN12-MCRY010 + + + SARUN12-MCRY040 + + + SARUN12-MCRY080 + + + SARUN13-MCRY010 + + + SARUN13-MCRY040 + + + SARUN13-MCRY080 + + + SARUN14-MCRY010 + + + SARUN14-MCRY040 + + + SARUN14-MCRY080 + + + SARUN15-MCRY010 + + + SARUN15-MCRY040 + + + SARUN15-MCRY080 + + + SARUN16-MCRY080 + + + SARUN17-MCRY080 + + + SARUN18-MCRY080 + + + SARUN19-MCRY080 + + + SARUN20-MCRY080 + + + SATSY01-MCRY020 + + + SATSY01-MCRY040 + + + SATSY01-MCRY070 + + + SATSY01-MCRY090 + + + SATSY01-MCRY210 + + + SATSY01-MCRY230 + + + SATSY01-MCRY260 + + + SATSY01-MCRY280 + + + SATSY01-MCRY300 + + + SATSY02-MCRY010 + + + SATSY02-MCRY100 + + + SATSY02-MCRY110 + + + SATSY02-MCRY120 + + + SATSY02-MCRY200 + + + SATSY02-MCRY230 + + + SATSY03-MCRY010 + + + SATSY03-MCRY040 + + + SATSY03-MCRY070 + + + SATSY03-MCRY100 + + + SATSY03-MCRY130 + + + SATCL01-MCRY120 + + + SATCL01-MCRY130 + + + SATCL01-MCRY180 + + + SATCL01-MCRY190 + + + SATDI01-MCRY040 + + + SATDI01-MCRY050 + + + SATDI01-MCRY220 + + + SATDI01-MCRY230 + + + SATDI01-MCRY250 + + + SATDI01-MCRY260 + + + SATDI01-MCRY280 + + + SATDI01-MCRY300 + + + SATCB01-MCRY230 + + + SATCB01-MCRY430 + + + SATCB02-MCRY230 + + + SATCB02-MCRY430 + + + SATMA01-MCRY050 + + + SARBD01-MCRY020 + + + + Collection of Nodes at SwissFEL + + I-SET + I-READ + PS-MODE + + + SINEG01-MSOL010 + + + SINEG01-MSOL130 + + + SINSB01-MSOL110 + + + SINSB01-MSOL120 + + + SINSB01-MSOL130 + + + SINSB01-MSOL140 + + + SINSB02-MSOL110 + + + SINSB02-MSOL120 + + + SINSB02-MSOL130 + + + SINSB02-MSOL140 + + + + Collection of Nodes at SwissFEL + + + SINEG01-MCOR120 + + + SINEG01-MCOR160 + + + SINEG01-MCOR180 + + + SINEG01-MCOR200 + + + SINEG01-MCOR220 + + + SINSB01-MCOR010 + + + SINSB02-MCOR010 + + + S20SY02-MCOR060 + + + S20SY02-MCOR090 + + + S20SY02-MCOR130 + + + S20SY02-MCOR170 + + + SARCL01-MCOR040 + + + SARCL01-MCOR070 + + + SARCL01-MCOR090 + + + SARCL01-MCOR130 + + + SARCL01-MCOR180 + + + SARCL02-MCOR120 + + + SARCL02-MCOR230 + + + SARCL02-MCOR240 + + + SARCL02-MCOR320 + + + SARCL02-MCOR340 + + + SARCL02-MCOR450 + + + SARCL02-MCOR480 + + + SARMA01-MCOR020 + + + SARMA01-MCOR050 + + + SARMA01-MCOR070 + + + SARMA01-MCOR110 + + + SARMA01-MCOR130 + + + SARUN03-MCOR010 + + + SARUN03-MCOR040 + + + SARUN04-MCOR010 + + + SARUN04-MCOR040 + + + SARUN05-MCOR010 + + + SARUN05-MCOR040 + + + SARUN06-MCOR010 + + + SARUN06-MCOR040 + + + SARUN07-MCOR010 + + + SARUN07-MCOR040 + + + SARUN08-MCOR010 + + + SARUN08-MCOR040 + + + SARUN09-MCOR010 + + + SARUN09-MCOR040 + + + SARUN10-MCOR010 + + + SARUN10-MCOR040 + + + SARUN11-MCOR010 + + + SARUN11-MCOR040 + + + SARUN12-MCOR010 + + + SARUN12-MCOR040 + + + SARUN13-MCOR010 + + + SARUN13-MCOR040 + + + SARUN14-MCOR010 + + + SARUN14-MCOR040 + + + SARUN15-MCOR010 + + + SARUN15-MCOR040 + + + + Collection of Nodes at SwissFEL + + I-SET + I-READ + PS-MODE + DEGAUSS + + + SINEG01-MQUA140 + + + SINEG01-MQUA150 + + + SINEG01-MQUA310 + + + SINEG01-MQUA320 + + + SINLH01-MQUA020 + + + SINLH01-MQUA030 + + + SINLH01-MQUA040 + + + SINLH01-MQUA050 + + + SINLH01-MQUA070 + + + SINLH02-MQUA010 + + + SINLH02-MQUA410 + + + SINLH03-MQUA030 + + + SINLH03-MQUA040 + + + SINLH03-MQUA060 + + + SINLH03-MQUA080 + + + SINSB03-MQUA130 + + + SINSB03-MQUA230 + + + SINSB04-MQUA130 + + + SINSB04-MQUA230 + + + SINSB05-MQUA130 + + + SINSB05-MQUA230 + + + SINBC01-MQUA020 + + + SINBC01-MQUA050 + + + SINBC01-MQUA070 + + + SINBC01-MQUA090 + + + SINBC01-MQUA110 + + + SINBC02-MQUA110 + + + SINBC02-MQUA120 + + + SINBC02-MQUA340 + + + SINBC02-MQUA350 + + + SINDI01-MQUA020 + + + SINDI01-MQUA030 + + + SINDI01-MQUA070 + + + SINDI02-MQUA020 + + + SINDI02-MQUA030 + + + SINDI02-MQUA050 + + + SINDI02-MQUA060 + + + SINDI02-MQUA070 + + + SINDI02-MQUA090 + + + S10CB01-MQUA230 + + + S10CB01-MQUA430 + + + S10CB02-MQUA230 + + + S10CB02-MQUA430 + + + S10DI01-MQUA030 + + + S10DI01-MQUA120 + + + S10CB03-MQUA230 + + + S10CB03-MQUA430 + + + S10CB04-MQUA230 + + + S10CB04-MQUA430 + + + S10CB05-MQUA230 + + + S10CB05-MQUA430 + + + S10CB06-MQUA230 + + + S10CB06-MQUA430 + + + S10CB07-MQUA230 + + + S10CB07-MQUA430 + + + S10CB08-MQUA230 + + + S10CB08-MQUA430 + + + S10CB09-MQUA230 + + + S10BC01-MQUA020 + + + S10BC01-MQUA040 + + + S10BC01-MQUA060 + + + S10BC01-MQUA080 + + + S10BC01-MQUA100 + + + S10BC02-MQUA110 + + + S10BC02-MQUA120 + + + S10BC02-MQUA340 + + + S10BC02-MQUA350 + + + S10MA01-MQUA020 + + + S10MA01-MQUA050 + + + S10MA01-MQUA070 + + + S10MA01-MQUA110 + + + S10MA01-MQUA130 + + + S20CB01-MQUA430 + + + S20CB02-MQUA430 + + + S20CB03-MQUA430 + + + S20SY01-MQUA020 + + + S20SY01-MQUA030 + + + S20SY01-MQUA050 + + + S20SY01-MQUA080 + + + S20SY02-MQUA070 + + + S20SY02-MQUA100 + + + S20SY02-MQUA140 + + + S20SY02-MQUA180 + + + S20SY03-MQUA020 + + + S20SY03-MQUA030 + + + S20SY03-MQUA050 + + + S20SY03-MQUA060 + + + S20SY03-MQUA100 + + + S30CB01-MQUA430 + + + S30CB02-MQUA430 + + + S30CB03-MQUA430 + + + S30CB04-MQUA430 + + + S30CB05-MQUA430 + + + S30CB06-MQUA430 + + + S30CB07-MQUA430 + + + S30CB08-MQUA430 + + + S30CB09-MQUA430 + + + S30CB10-MQUA430 + + + S30CB11-MQUA430 + + + S30CB12-MQUA430 + + + S30CB13-MQUA430 + + + S30CB14-MQUA430 + + + S30CB15-MQUA430 + + + SARCL01-MQUA020 + + + SARCL01-MQUA050 + + + SARCL01-MQUA080 + + + SARCL01-MQUA100 + + + SARCL01-MQUA140 + + + SARCL01-MQUA190 + + + SARCL02-MQUA130 + + + SARCL02-MQUA150 + + + SARCL02-MQUA160 + + + SARCL02-MQUA210 + + + SARCL02-MQUA250 + + + SARCL02-MQUA300 + + + SARCL02-MQUA310 + + + SARCL02-MQUA350 + + + SARCL02-MQUA420 + + + SARCL02-MQUA430 + + + SARCL02-MQUA460 + + + SARMA01-MQUA010 + + + SARMA01-MQUA060 + + + SARMA01-MQUA080 + + + SARMA01-MQUA120 + + + SARMA01-MQUA140 + + + SARMA02-MQUA050 + + + SARMA02-MQUA120 + + + SARUN01-MQUA080 + + + SARUN02-MQUA080 + + + SARUN03-MQUA020 + + + SARUN03-MQUA050 + + + SARUN03-MQUA080 + + + SARUN04-MQUA020 + + + SARUN04-MQUA050 + + + SARUN04-MQUA080 + + + SARUN05-MQUA020 + + + SARUN05-MQUA050 + + + SARUN05-MQUA080 + + + SARUN06-MQUA020 + + + SARUN06-MQUA050 + + + SARUN06-MQUA080 + + + SARUN07-MQUA020 + + + SARUN07-MQUA050 + + + SARUN07-MQUA080 + + + SARUN08-MQUA020 + + + SARUN08-MQUA050 + + + SARUN08-MQUA080 + + + SARUN09-MQUA020 + + + SARUN09-MQUA050 + + + SARUN09-MQUA080 + + + SARUN10-MQUA020 + + + SARUN10-MQUA050 + + + SARUN10-MQUA080 + + + SARUN11-MQUA020 + + + SARUN11-MQUA050 + + + SARUN11-MQUA080 + + + SARUN12-MQUA020 + + + SARUN12-MQUA050 + + + SARUN12-MQUA080 + + + SARUN13-MQUA020 + + + SARUN13-MQUA050 + + + SARUN13-MQUA080 + + + SARUN14-MQUA020 + + + SARUN14-MQUA050 + + + SARUN14-MQUA080 + + + SARUN15-MQUA020 + + + SARUN15-MQUA050 + + + SARUN15-MQUA080 + + + SARUN16-MQUA080 + + + SARUN17-MQUA080 + + + SARUN18-MQUA080 + + + SARUN19-MQUA080 + + + SARUN20-MQUA080 + + + SATSY01-MQUA020 + + + SATSY01-MQUA030 + + + SATSY01-MQUA040 + + + SATSY01-MQUA070 + + + SATSY01-MQUA090 + + + SATSY01-MQUA210 + + + SATSY01-MQUA230 + + + SATSY01-MQUA260 + + + SATSY01-MQUA270 + + + SATSY01-MQUA280 + + + SATSY01-MQUA300 + + + SATSY02-MQUA010 + + + SATSY02-MQUA110 + + + SATSY02-MQUA120 + + + SATSY02-MQUA230 + + + SATSY03-MQUA010 + + + SATSY03-MQUA040 + + + SATSY03-MQUA070 + + + SATSY03-MQUA100 + + + SATSY03-MQUA130 + + + SATCL01-MQUA120 + + + SATCL01-MQUA130 + + + SATCL01-MQUA180 + + + SATCL01-MQUA190 + + + SATDI01-MQUA040 + + + SATDI01-MQUA050 + + + SATDI01-MQUA220 + + + SATDI01-MQUA230 + + + SATDI01-MQUA250 + + + SATDI01-MQUA260 + + + SATDI01-MQUA280 + + + SATDI01-MQUA300 + + + SATCB01-MQUA230 + + + SATCB01-MQUA430 + + + SATCB02-MQUA230 + + + SATCB02-MQUA430 + + + SATMA01-MQUA050 + + + S10BD01-MQUA010 + + + SARBD01-MQUA020 + + + SARBD02-MQUA030 + + + + Collection of Nodes at SwissFEL + + I-SET + I-READ + PS-MODE + DEGAUSS + + + SINEG01-MBND300 + + + SINLH02-MBND100 + + + SINLH02-MBND200 + + + SINLH02-MBND300 + + + SINLH02-MBND400 + + + SINBC02-MBND100 + + + SINBC02-MBND200 + + + SINBC02-MBND300 + + + SINBC02-MBND400 + + + S10DI01-MBND100 + + + S10BC02-MBND100 + + + S10BC02-MBND200 + + + S10BC02-MBND300 + + + S10BC02-MBND400 + + + S10MA01-MBND100 + + + S20SY02-MBND200 + + + SARCL02-MBND100 + + + SARCL02-MBND200 + + + SARCL02-MBND400 + + + SARCL02-MBND500 + + + SARMA02-MBND100 + + + SATSY01-MBND200 + + + SATSY01-MBND400 + + + SATSY02-MBND100 + + + SATSY02-MBND200 + + + SATCL01-MBND100 + + + SATCL01-MBND300 + + + SATMA01-MBND100 + + + SARBD01-MBND100 + + + SARBD01-MBND200 + + + + Collection of Nodes at SwissFEL + + CAV-AMPLT-AVG + CAV-POWER-AVG + CAV-PHASE-AVG + + + SINEG01-RGUN100 + + + + Collection of Nodes at SwissFEL + + FOR-AMPLT-AVG + FOR-POWER-AVG + FOR-PHASE-AVG + + + SINEG01-RWVG100 + + + SINSB01-RWVG100 + + + SINSB02-RWVG100 + + + SINSB03-RWVG100 + + + SINSB04-RWVG100 + + + SINXB01-RWVG100 + + + SINDI01-RWVG100 + + + S10CB01-RWVG100 + + + S10CB01-RWVG300 + + + S10CB02-RWVG100 + + + S10CB02-RWVG300 + + + S10CB03-RWVG100 + + + S10CB03-RWVG300 + + + S10CB04-RWVG100 + + + S10CB04-RWVG300 + + + S10CB05-RWVG100 + + + S10CB05-RWVG300 + + + S10CB06-RWVG100 + + + S10CB06-RWVG300 + + + S10CB07-RWVG100 + + + S10CB07-RWVG300 + + + S10CB08-RWVG100 + + + S10CB08-RWVG300 + + + S10CB09-RWVG100 + + + S10CB09-RWVG300 + + + S20CB01-RWVG100 + + + S20CB01-RWVG300 + + + S20CB02-RWVG100 + + + S20CB02-RWVG300 + + + S20CB03-RWVG100 + + + S20CB03-RWVG300 + + + S20CB04-RWVG100 + + + S20CB04-RWVG300 + + + S30CB01-RWVG100 + + + S30CB01-RWVG300 + + + S30CB02-RWVG100 + + + S30CB02-RWVG300 + + + S30CB03-RWVG100 + + + S30CB03-RWVG300 + + + S30CB04-RWVG100 + + + S30CB04-RWVG300 + + + S30CB05-RWVG100 + + + S30CB05-RWVG300 + + + S30CB06-RWVG100 + + + S30CB06-RWVG300 + + + S30CB07-RWVG100 + + + S30CB07-RWVG300 + + + S30CB08-RWVG100 + + + S30CB08-RWVG300 + + + S30CB09-RWVG100 + + + S30CB09-RWVG300 + + + S30CB10-RWVG100 + + + S30CB10-RWVG300 + + + S30CB11-RWVG100 + + + S30CB11-RWVG300 + + + S30CB12-RWVG100 + + + S30CB12-RWVG300 + + + S30CB13-RWVG100 + + + S30CB13-RWVG300 + + + S30CB14-RWVG100 + + + + Collection of Nodes at SwissFEL + + CAV-AMPLT-AVG + CAV-POWER-AVG + CAV-PHASE-AVG + + + SINSB01-RACC100 + + + SINSB02-RACC100 + + + SINSB03-RACC100 + + + SINSB03-RACC200 + + + SINSB04-RACC100 + + + SINSB04-RACC200 + + + SINXB01-RACC100 + + + SINXB01-RACC200 + + + S10CB01-RACC100 + + + S10CB01-RACC200 + + + S10CB01-RACC300 + + + S10CB01-RACC400 + + + S10CB02-RACC100 + + + S10CB02-RACC200 + + + S10CB02-RACC300 + + + S10CB02-RACC400 + + + S10CB03-RACC100 + + + S10CB03-RACC200 + + + S10CB03-RACC300 + + + S10CB03-RACC400 + + + S10CB04-RACC100 + + + S10CB04-RACC200 + + + S10CB04-RACC300 + + + S10CB04-RACC400 + + + S10CB05-RACC100 + + + S10CB05-RACC200 + + + S10CB05-RACC300 + + + S10CB05-RACC400 + + + S10CB06-RACC100 + + + S10CB06-RACC200 + + + S10CB06-RACC300 + + + S10CB06-RACC400 + + + S10CB07-RACC100 + + + S10CB07-RACC200 + + + S10CB07-RACC300 + + + S10CB07-RACC400 + + + S10CB08-RACC100 + + + S10CB08-RACC200 + + + S10CB08-RACC300 + + + S10CB08-RACC400 + + + S10CB09-RACC100 + + + S10CB09-RACC200 + + + S10CB09-RACC300 + + + S10CB09-RACC400 + + + S20CB01-RACC100 + + + S20CB01-RACC200 + + + S20CB01-RACC300 + + + S20CB01-RACC400 + + + S20CB02-RACC100 + + + S20CB02-RACC200 + + + S20CB02-RACC300 + + + S20CB02-RACC400 + + + S20CB03-RACC100 + + + S20CB03-RACC200 + + + S20CB03-RACC300 + + + S20CB03-RACC400 + + + S20CB04-RACC100 + + + S20CB04-RACC200 + + + S20CB04-RACC300 + + + S20CB04-RACC400 + + + S30CB01-RACC100 + + + S30CB01-RACC200 + + + S30CB01-RACC300 + + + S30CB01-RACC400 + + + S30CB02-RACC100 + + + S30CB02-RACC200 + + + S30CB02-RACC300 + + + S30CB02-RACC400 + + + S30CB03-RACC100 + + + S30CB03-RACC200 + + + S30CB03-RACC300 + + + S30CB03-RACC400 + + + S30CB04-RACC100 + + + S30CB04-RACC200 + + + S30CB04-RACC300 + + + S30CB04-RACC400 + + + S30CB05-RACC100 + + + S30CB05-RACC200 + + + S30CB05-RACC300 + + + S30CB05-RACC400 + + + S30CB06-RACC100 + + + S30CB06-RACC200 + + + S30CB06-RACC300 + + + S30CB06-RACC400 + + + S30CB07-RACC100 + + + S30CB07-RACC200 + + + S30CB07-RACC300 + + + S30CB07-RACC400 + + + S30CB08-RACC100 + + + S30CB08-RACC200 + + + S30CB08-RACC300 + + + S30CB08-RACC400 + + + S30CB09-RACC100 + + + S30CB09-RACC200 + + + S30CB09-RACC300 + + + S30CB09-RACC400 + + + S30CB10-RACC100 + + + S30CB10-RACC200 + + + S30CB10-RACC300 + + + S30CB10-RACC400 + + + S30CB11-RACC100 + + + S30CB11-RACC200 + + + S30CB11-RACC300 + + + S30CB11-RACC400 + + + S30CB12-RACC100 + + + S30CB12-RACC200 + + + S30CB12-RACC300 + + + S30CB12-RACC400 + + + S30CB13-RACC100 + + + S30CB13-RACC200 + + + S30CB13-RACC300 + + + S30CB13-RACC400 + + + + Collection of Nodes at SwissFEL + + GAP-READ + GAP_SP + EAB + + + SARUN03-UIND030 + + + SARUN04-UIND030 + + + SARUN05-UIND030 + + + SARUN06-UIND030 + + + SARUN07-UIND030 + + + SARUN08-UIND030 + + + SARUN09-UIND030 + + + SARUN10-UIND030 + + + SARUN11-UIND030 + + + SARUN12-UIND030 + + + SARUN13-UIND030 + + + SARUN14-UIND030 + + + SARUN15-UIND030 + + + diff --git a/examples.py b/examples.py new file mode 100644 index 0000000..eaec66d --- /dev/null +++ b/examples.py @@ -0,0 +1,1099 @@ +# python + +import time +import timeit +import numpy as np +import array +import inspect +import os +import operator +import sys +import PyCafe + + +cafe=PyCafe.CyCafe() +cyca=PyCafe.CyCa() + +############################################################## +# (1) Establishing connections to EPICS Process Variables (PVs) +# (2) Simple single channel operations +# (3) Waveforms and Arrays +# (4) Multiple scalar operations, i.e. operations on several PVs with scalar values +# (5) Multiple compound operations, i.e. operations on several PVS with either scalar values or arrays +# (6) Synchronous group operations +# (7) Control system parameters, i.e. operating limits, engineerimg units +# (8) Monitors, either with or without user supplied callbacks +# (9) Asynchronous interactions and retrieving data from Cache +#(10) Synchronous group operations, with externally defined groups +#(11) Special Methods, match, setAndMatch +#(END) Gracefully terminate CAFE +############################################################## + + +PY2=True +PY3=False + +if sys.version_info >= (3,0): + PY3=True + PY2=False + +print("This is Python Version:\n",sys.version_info) + +################################################################# +# Test channels +################################################################# +## For use in office network cao +PV1 ='ARIDI-BPM-01LE:X-AVG' +PV2 ='ARIDI-BPM-01LE:Y-AVG' +PV3 ='ARIDI-BPM-01LB:X-AVG' +PV4 ='ARIDI-BPM-01LB:Y-AVG' +PVWF1='ARIDI-BPM-01LE:WF-INT-2' +PVWF2='ARIDI-BPM-01LB:WF-INT-2' +PVWF3='ARIDI-BPM-01SE:WF-INT-2' +PVWF4='ARIDI-BPM-01SB:WF-INT-2' + +PVS='ARIDI-BPM-01SB:SET-ENABLE.DESC' + +PV_JOKE='PV-DOES-NOT:EXIST' + +PV_REAL='SAR-CMON-MAG4531:VOLTAGE-5' + +pvlist1 =[PV1,PV2,PV3,PV4] +pvlistWF =[PVWF1, PVWF2,PVWF3,PVWF4] +pvlistAll=[PV1,PV2,PV3,PV4,PVWF1,PVWF2,PVWF3,PVWF4,PVS,PV_JOKE] + +################################################################# + + +################################################################# +# A user supplied callback function to be (optionally) used in (8) Monitors +# (or puts and gets if required) +################################################################# +def py_callback(handle): + #operations permitted from within handle are getCache, set and close + #open, get and monitorStart are not permitted + try: + print ("") + print ("START: MONITOR CALLBACK HANDLER INVOKED FOR HANDLE:", handle) + #Usual action is to get the updated value + print ("isConnected?", cafe.isConnected(handle)); + print ("Channel=", cafe.getPVNameFromHandle(handle)) + print ("Value =", cafe.getCache(handle)) #native format + print ("Value =", cafe.getCache(handle, dt='str')) #else dt='int', dt='float' + #print ("DbrDataType =", cafe.getDbrDataTypeInCallback(handle) ) + #print ("DataType =", cafe.getDataTypeInCallback(handle) ) + #print ("DbrBase =", cafe.getDbrBaseInCallback(handle) ) + + #This retrieves all the parameters that acted as input to the monitor + #Input is handle and monitorId + monid= cafe.getMonitorIDInCallback(handle) + print ("monid ", monid) + #mp=cafe.getMonitorPolicyVector(handle, monid) + #mp.show() + + #get PVData + p1=cafe.getPVCache(handle) + p1.showMax(10) #if waveform print only first 10 elements + #alternatively: + print ("Value =", p1.value[0]) + print ("status = %d" % p1.status) + print ("alarmStatus = %d" % p1.alarmStatus) + print ("alarmSeverity = %d" % p1.alarmSeverity) + print ("ts =", p1.ts[0], p1.ts[1]) + print ("tsDate =", p1.tsDate[0], p1.tsDate[1], \ + p1.tsDate[2], p1.tsDate[3],\ + p1.tsDate[4], p1.tsDate[5], p1.tsDate[6] ) + + #Increment value - set to this channel + #newValue=1+pv.value[0] + #if newValue < 10: + # cafe.set(handle, newValue) + + except Exception as inst: + print ("ERROR IN CALLBACK HANDLER:") + if isinstance(inst.args[0],PyCafe.CyCafeException): + cafeEx=inst.args[0] + cafeEx.show() + #or + cafeEx.reveal() + #or + print (cafeEx.pv,"(handle=", cafeEx.handle,")") + print (cafeEx.errorCode,":", cafeEx.errorText,cafeEx.errorInfo) + else: + print (inst) + + print ("END: MONITOR CALLBACK HANDLER COMPLETED FOR HANDLE:", handle) + print ("") + return +############################################################## + +################################################################# +# A user supplied callback function for put operations (optional) +################################################################# +def py_callback_put(handle): + print ("Put HANDLER COMPLETED FOR HANDLE:", handle) + return + +################################################################# +# A user supplied callback function for get operations (optional) +################################################################# +def py_callback_get(handle): + print ("Channel=", cafe.getPVNameFromHandle(handle)) + print ("Value =", cafe.getCache(handle)) #native format + print ("Get HANDLER COMPLETED FOR HANDLE:", handle) + return +############################################################## + + +############################################################## +#(1) Establishing connections to EPICS Process Variables (PVs) +############################################################## +#Explicitly opening channels is good practice even if only optional + + +print("INFO: pend time for open",cafe.getOpenDefaultPendTime()) +#open a single channel +try: + handleS=cafe.open(PVS); +except Exception as inst: + if isinstance(inst.args[0],PyCafe.CyCafeException): + cafeEx=inst.args[0] + cafeEx.show() + #or + cafeEx.reveal() + #or + print (cafeEx.errorCode,":", cafeEx.errorText,cafeEx.errorInfo) + +#better practice is to open all channels at once + +start=time.time() + +cafe.openPrepare() + +try: + #return list of handles + hlist1 =cafe.open(pvlist1) + hlistWF =cafe.open(pvlistWF) + hlistAll=cafe.open(pvlistAll) #Note: only one handle per channel is created +except Exception as inst: + + print(inst.args) + +cafe.openNowAndWait(0.5) #wait 500ms for channels to connect + +end=time.time() +print(end-start) + +if cafe.allConnected()==False: + cafe.printDisconnected() + +#Alternatively +if cafe.allConnected()==False: + h,pv=cafe.getDisconnectedHandles() + print("---------------------") + print("DISCONNECTED CHANNELS") + print("---------------------") + for i in range (0,len(h)): + print (h[i], " ", pv[i]) + +#Alternatively - show all handles +#cafe.printHandles() +h,pv=cafe.getHandles() +print("---------------------") +print("ALL CHANNELS") +print("---------------------") +for i in range (0,len(h)): + print (h[i], " ", pv[i]) +h,pv,state=cafe.getHandleStates() +print("---------------------") +print("ALL CHANNELS AND CONNECTION STATE") +print("---------------------") +for i in range (0,len(h)): + print (h[i], " ", pv[i], " " , state[i]) +print("") +#END (1) Establishing connections to EPICS Process Variables (PVs) +############################################################## + +############################################################## +#(2) Simple single channel operations +############################################################## +#Now perform some get/set operations + +#input to get method can be the handle to the PV, or the PV name + +#If you prefer to check on the value (which will return +#a Python None in the event of a failed operation) rather +#than catch exceptions then it is possible to turn off exceptions: + +cafe.withExceptions(False); + +#get 'ARIDI-BPM-01SB:SET-ENABLE' by handle +val=cafe.get(hlistAll[8]); +#or +val=cafe.get(PVS); +if val == None: + #print ErrorCode by calling cafe.getStatus with handle or PVName as input argument + print (cafe.getStatus(hlistAll[8])) + #or + print (cafe.getStatus(PVS)) + #print meaning of error message + cafe.printStatusIfError(hlistAll[8],cafe.getStatus(hlistAll[8])) +else: + print ("Value=",val) + +#enumValue=cafe.getEnumFromString(PVS, val) +#print ("enumValue=",enumValue) +#enumString=cafe.getStringFromEnum(PVS, enumValue) +#print ("enumString=",enumString) + + +#This channel does not exist hence None will be returned +#The status code and error message will indicate that the channel was never connected +val=cafe.get(PV_JOKE) +if val == None: + cafe.printStatusIfError(PV_JOKE,cafe.getStatus(PV_JOKE)) +else: + print ("Value=", val) + +#Now use exceptions for single channel get/set operations +cafe.withExceptions(True); + +#Now perform some get operations +try: + val=cafe.get(hlistAll[8]) + print ("Channel: ", cafe.getPVNameFromHandle(hlistAll[8])," value=", val) +except Exception as inst: + print ("ERROR IN cafe.get") + print (inst) + +#Retrun pvdata struct, i.e., val, alarms, timestamps +try: + pv=cafe.getPV(hlistAll[8]) + pv.show() +except Exception as inst: + if isinstance(inst.args[0],PyCafe.CyCafeException): + cafeEx=inst.args[0] + cafeEx.show() + cafeEx.reveal() + else: + print (inst) + +#Now perform a get operations on a disconnected channel +#and catche the exception being thrown +try: + val=cafe.get(PV_JOKE) #will throw an exception + print ("Channel: ", PV_JOKE," value=", val) +except Exception as inst: + print ("ERROR IN cafe.get for channel:", PV_JOKE) + + if isinstance(inst.args[0],PyCafe.CyCafeException): + cafeEx=inst.args[0] + cafeEx.show() + #or + cafeEx.reveal() + else: + print (inst) + +try: + val=cafe.get(hlistAll[3]) + print ("Channel: ", pvlistAll[3]," value=", val) + #or + print ("Channel: ", cafe.getPVNameFromHandle(hlistAll[3])," value=", val) +except Exception as inst: + print ("ERROR IN cafe.get for channel:", PV_JOKE) + if isinstance(inst.args[0],PyCafe.CyCafeException): + cafeEx=inst.args[0] + #cafeEx.show() + cafeEx.reveal() + else: + print (inst) + + +#cafe.get on a WF will return first element only (see(3) fro WFs) +try: + val=cafe.get('ARIDI-BPM-01SE:WF-INT-2') #will throw an exception + print ('ARIDI-BPM-01SE:WF-INT-2 has val=',val) +except Exception as inst: + + if isinstance(inst.args[0],PyCafe.CyCafeException): + cafeEx=inst.args[0] + cafeEx.show() + #or + cafeEx.reveal() + #or + print (cafeEx.pv,"(handle=", cafeEx.handle,")") + print (cafeEx.errorCode,":", cafeEx.errorText,cafeEx.errorInfo) + else: + print (inst) + +#Now perform a set operation on a waveform + +try: + print ("set") + cafe.set(PV1, 1.234) #set by pvname; value can be in any format + print ("get") + val=cafe.get(PV1,dt='native') #dt='native' (defulat) may be omitted + print ("Value (should be 1.234) =", val) #default dt='native' + + cafe.set(hlistAll[0], [4.321]) #set by handle + val=cafe.get(PV1, dt='str') #dt='int', dt='float' are other options + print ("Value (should be 4.321) =", val) + + #get pvdata struct + pv=cafe.getPV(PV1) + pv.show() + #or + print("Value =", pv.value[0]) + print("TS =", pv.ts[0], " " , pv.ts[1]) + print("tsDate =", pv.tsDate[0], pv.tsDate[1], \ + pv.tsDate[2], pv.tsDate[3],\ + pv.tsDate[4], pv.tsDate[5], pv.tsDate[6] ) + print ("") + +except Exception as inst: + if isinstance(inst.args[0],PyCafe.CyCafeException): + cafeEx=inst.args[0] + cafeEx.show() + #or + cafeEx.reveal() + #or + print (cafeEx.pv,"(handle=", cafeEx.handle,")") + print (cafeEx.errorCode,":", cafeEx.errorText,cafeEx.errorInfo) + else: + print (inst) + + +#Now perform a set/get operation with user supplied callbacks +try: + cafe.setCallbackGet(hlist1[0],cb=py_callback_get) + cafe.setCallbackPut(hlist1[0],cb=py_callback_put) + + s=cafe.set(hlist1[0],7.777) + v=cafe.get(hlist1[0]) + + print("Can you see if the callback functions were called for set/get?") + print("Value should be 7.777", v) + + print("Waiting 5 seconds to allow data to be viewed") + time.sleep(5) + #return to default callbacks + cafe.setCallbackGet(hlist1[0],cb=None) + cafe.setCallbackPut(hlist1[0],cb=None) + +except Exception as inst: + if isinstance(inst.args[0],PyCafe.CyCafeException): + cafeEx=inst.args[0] + cafeEx.show() + #or + cafeEx.reveal() + #or + print (cafeEx.pv,"(handle=", cafeEx.handle,")") + print (cafeEx.errorCode,":", cafeEx.errorText,cafeEx.errorInfo) + else: + print (inst) + + + +#END (2) Simple single channel operations +############################################################## + +############################################################## +#(3) Waveforms and Arrays +############################################################## +try: + NWF=5 + print ('setting no of elements for wf to ', cafe.setNelem(PVWF1,4084)) + #time.sleep(5) + + #waveform as Python List + print("Waveform as a Python List and native data type") + start = time.time() + for i in range (0,NWF): + valList=cafe.getList(PVWF1, dt='native'); + end = time.time() + print (end - start) + #print (valList) + #waveform as int and as numpy + print("Waveform as a numpy and dt='float'") + start = time.time() + for i in range (0,NWF): + valNumpy=cafe.getArray(hlistWF[0], dt='native', art='numpy'); #PVWF1, + end = time.time() + print (end - start) + #print (valNumpy) + # + #cafe.setNelem(PVWF1, 5) + + #waveform as a float and as a Python array.array + print("Waveform as a Python array.array and dt='float'") + start = time.time() + for i in range (0,NWF): + valArray=cafe.getArray(hlistWF[0], dt='native', art='array') #PVWF1, + end = time.time() + print (end - start) + #print (valArray) + for i in range (0,min(10,len(valArray))): + #print (valArray[i], " [",i,"] ", sep='', end="") + print (valArray[i], " [",i,"] ",) + print (" ") + #waveform as a and as a Python memoryview + print("Waveform as a Python memoryview and dt='native' (default)") + + start = time.time() + for i in range (0,NWF): + mv=cafe.getArray(hlistWF[0], dt='native', art='memoryview'); + end = time.time() + print (end - start) + + print (type(mv)) + print (type(mv[0])) + print (mv[0]) + + + #cafe.terminate() + #exit(1) + + #ml=memoryview(mv) + #print (type(ml)) + #print (type(ml[0])) + #print (ml[0], ml[1], ml[4]) + #print (ml[2:4].tolist()) + status=cafe.set(hlistWF[0], mv) + #Did set work? Check on first element + print("Value (should be what?)=", cafe.get(PVWF1, dt='float')) + + + ''' + #for PY3 + for i in range (0,len(mv)): + print (mv[i], " ",end="") + print (" ") + ''' + + mv_a=np.ndarray(4) + + #mv_a=mv + + for i in range (0,4):#len(mv)): + mv[i]=3.456+i + #print (mv[i], " ", sep="", end="") + mv_a[i]=mv[i] + + print (" ") + + #set first element of wf using memoryview + #mv_a[0]=4.567 + #mv[0]=4.567 + + + status=cafe.set(PVWF1,mv) + #Did set work? Check on first element + print("Value (should be 1.23)=", cafe.get(PVWF1, dt='float')) + + ''' + valArrayI=cafe.getArray(PVWF1, dt='int', art='array') + print (valArrayI) + for i in range (0,min(4,len(valArrayI))): + print (valArrayI[i], " ",) + print (" ") + + + valArrayI=cafe.getArray(PVWF1, dt='int', art='array') + print (valArrayI) + for i in range (0,min(4,len(valArrayI))): + print (valArrayI[i], " ",) + print (" ") + ''' + + print ('nelemCtrl=', cafe.setNelemCtrl(PVWF1, 20) ) + + valC=cafe.getCtrl(PVWF1, dt='int') + print (valC) + #for i in range (0,min(50,len(valC.value))): + #print (valC.value[i], " [",i,"] ", sep='', end="") + #print (valC.value[i], " [",i,"] ",) + #print (" ") + + + + #set wf using array.array + valArray[0]=5.678 + status=cafe.set(PVWF1,valArray) + print("Value (should be 5.678)=", cafe.get(PVWF1, dt='float')) + + #set wf using numpy array + valNumpy[0]=6.543 + status=cafe.set(PVWF1,valNumpy) + print("Value (should be 6)=", cafe.get(PVWF1, dt='int')) + + #set wf using Python List + valList[0]='1.23' + valList[1]='2.10' + status=cafe.set(PVWF1,valList) + + vL=cafe.getList(PVWF1, dt='float') + if vL[0] != None: + print("Values (should be 1.23, 2.1)=", vL[0], vL[1]) + + +except Exception as inst: + if isinstance(inst.args[0],PyCafe.CyCafeException): + cafeEx=inst.args[0] + cafeEx.show() + #or + cafeEx.reveal() + #or + print (cafeEx.pv,"(handle=", cafeEx.handle,")") + print (cafeEx.errorCode,":", cafeEx.errorText,cafeEx.errorInfo) + else: + print (inst) + +############################################################## + +#cafe.terminate() +#exit(1) + +############################################################## +#(4) Multiple scalar operations +############################################################## +#Now work with multiple scalars - far far more efficient to get multiple data-sets with one call +#If a channel is not connected (or other error) then it is reported in the statusList! +#These methods do not throw exceptions + +valueList,status,statusList=cafe.getScalarList(hlist1,'str') #hlist1 or pvlist1 + +if status != cyca.ICAFE_NORMAL: + cafe.printStatusIfError(hlist1,statusList) + +for i in range (0, len(valueList)): + print (valueList[i], " [",i,"] ",) +print(" ") +if status != cyca.ICAFE_NORMAL: + for i in range (0, len(statusList)): + print (cafe.getStatusCodeAsText(statusList[i]), "[",i,"]") + print(" ") + +valueList,status,statusList=cafe.getScalarList(hlistAll,dt='float') #hlistAll or pvlistALL +print("--------------------------------------------------------") +print("valueList from cafe.getScalarList(hlistAll,dt='native') ") +print("Note the different data types appearing in the list ") +print("If a WF is among the list, only the first element is returned") +print("--------------------------------------------------------") + +a=float('2') +print ('a=', a) + +if status != cyca.ICAFE_NORMAL: + cafe.printStatusIfError(hlistAll,statusList) +''' +if PY3: + for i in range (0, len(valueList)): + print (valueList[i], " [",i,"] ", end="") + print(" ") + if status != cyca.ICAFE_NORMAL: + for i in range (0, len(statusList)): + print (cafe.getStatusCodeAsText(statusList[i]), " [",i,"] ",end="") + print(" ") +''' + +#if PY2: + +for i in range (0, len(valueList)): + print (valueList[i], " [",i,"] ",) + print(type(valueList[i])) +print(" ") +if status != cyca.ICAFE_NORMAL: + for i in range (0, len(statusList)): + print (cafe.getStatusCodeAsText(statusList[i]), " [",i,"] ") + print(" ") +print("--------------------------------------------------------") + +print("--------------------------------------------------------") +print("valueList from cafe.getScalarList(hlist1,dt='float') ") +print("Values returned should be 5.6, 6.389, 7.7, 22 ") +print("--------------------------------------------------------") +#Note that different data types are allowed within the input List +llist=[5,6.389,'7.7',22] +status,statusList=cafe.setScalarList(hlist1,llist) +valueList,status,statusList=cafe.getScalarList(hlist1,dt='float') #hlist1 or pvlist1 + +if status != cyca.ICAFE_NORMAL: + cafe.printStatusIfError(hlist1,statusList) + +for i in range (0, len(valueList)): + print (valueList[i], " [",i,"] ",) +print(" ") +print("--------------------------------------------------------") + +############################################################## + +############################################################## +#(5) Mulitple compound operations +############################################################## +print("--------------------------------------------------------") +print("valueList from cafe.getCompoundList(hlistAll,dt='native') ") +print("A WF is returned as a List within the List ") +print("--------------------------------------------------------") +val,s,sl=cafe.getCompoundList(hlistAll,dt='native') + +print(val) +print(sl) +#print one of the waveforms in above val List +''' +if PY3: + for i in range (0, len(val[4])): + print (val[4][i], end=" ") + print(" ") +''' + +mval=10 +if isinstance(val[4],(list)): + mval=len(val[4]) + + +#print 10 first elements of WF +for i in range (0, min(10,mval)): + print (val[4][i],) +print(" ") + +cafe.printStatusIfError(hlistAll, sl) +#or +''' +if PY3: + for i in range (0, len(sl)): + print (cafe.getStatusCodeAsText(sl[i]), " [",i,"] ",end=" ") + print(" ") +''' + +val[2]=0.7123 +s,sl=cafe.setCompoundList(hlistAll, val) +if (s != cyca.ICAFE_NORMAL): + cafe.printStatusIfError(hlistAll, sl) + +#readback to check that above set worked +print ("Readback value should be", val[2], " val=", cafe.get(hlistAll[2])) +print("--------------------------------------------------------") +print("--------------------------------------------------------") +############################################################## + + +############################################################## +#(6) Synchronous group operations and like +############################################################## +print("--------------------------------------------------------") +print(" Synchronous group operations ") +print("--------------------------------------------------------") + +#define a group on the fly +cafe.defineGroup('gBPM', pvlist1) + +groupHandle1=cafe.groupOpen('gBPM') +glist=cafe.groupMemberList('gBPM') + +#Return a group of PV structs +pvg =cafe.getPVGroup(groupHandle1) +pvg.show() +#or +pvg.showWithPV(glist) +#or +for i in range (0, pvg.npv): + print(glist[i], " value=", pvg.pvdata[i].value[0],) +print(" ") +print("--------------------------------------------------------") + +#extract all values from pvgroup into a list +setList=[] +setList=cafe.PVGroupValuesToList(pvg) + +#modify values +setList[0]=setList[0]+0.1234567 +setList[1]=setList[1]+0.9876543 + +#set new values +s, sL=cafe.setGroup(groupHandle1,setList) + +#readback new values +values,s,sl=cafe.getGroup(groupHandle1) #by group handle +print(values) +values,s,sl=cafe.getGroup('gBPM') #by group name +print(values) + +#Now define another group +cafe.defineGroup('gAll', pvlistAll) + +groupHandle2=cafe.groupOpen('gAll') +pvg =cafe.getPVGroup(groupHandle2) +#pvg.show() +#or +pvg.showWithPV(pvlistAll) +#or +#for i in range (0, pvg.npv): +# print(glist[i], " value=", pvg.pvdata[i].value[0],) +#print(" " +print("--------------------------------------------------------") + +values,s,sl=cafe.getGroup(groupHandle2) #by group handle +print (values) +if s != cyca.ICAFE_NORMAL: + cafe.printStatusIfError(pvlistAll, sl) + +#change some values: +values[0]=values[0]+ 0.234 +values[1]=values[1]+ 0.456 +values[8]="monitor" + +s,sl=cafe.setGroup(groupHandle2, values) +if s != cyca.ICAFE_NORMAL: + cafe.printStatusIfError(pvlistAll, sl) + +newValues,s,sl=cafe.getGroup(groupHandle2) #by group handle +print (newValues[0], newValues[1]) +if s != cyca.ICAFE_NORMAL: + cafe.printStatusIfError(pvlistAll, sl) + + +print("--------------------------------------------------------") +print("Note: getCompoundPVGroup does a collective asynchronous get on all group members") +print("--------------------------------------------------------") +print("Data from getCompoundPVGroup") +pvg=cafe.getCompoundPVGroup('gAll', dt='str') +pvg.showWithPV(pvlistAll) +#or +glist=cafe.groupMemberList('gAll') +pvg.showWithPV(glist) + +print ("Values of first element:") +for i in range (0, pvg.npv): + print(glist[i], " value=", pvg.pvdata[i].value[0],) +print(" ") + + +print ("Data from getCompoundPVGroup by groupHandle") +pvg=cafe.getCompoundPVGroup(groupHandle2, dt='float') +pvg.showWithPV(pvlistAll) +#or +print ("Values of first element:") +for i in range (0, pvg.npv): + print(pvlistAll[i], " value=", pvg.pvdata[i].value[0],) +print(" ") + + +############################################################## + + +############################################################## +#(7) Get Ctrl Parameters +############################################################## + +pvctrl = cafe.getCtrl (hlistAll[8]) +#or from Cache would normally suffice as we are not interested in .value +pvctrl = cafe.getCtrlCache (hlistAll[8]) +pvctrl.show() + +print (pvctrl.enumStrings) +print (pvctrl.units) #if any + +############################################################## + +cafe.withExceptions(False); + +############################################################## +#(8) Monitors +############################################################## +cafe.openMonitorPrepare(); + +#user supplied callback +m0 =cafe.monitorStart(hlist1[0], cb=py_callback, dbr=cyca.CY_DBR_PLAIN, mask=cyca.CY_DBE_VALUE|cyca.CY_DBE_ALARM) +print(m0) +#default input parameters fro dbr and mask +m1 =cafe.monitorStart(hlist1[0], cb=py_callback ) +print(m1) + + +#optional, getCache methods get from cache without pre-checks, i.e. isChannel Connected +#cafe.setGetCacheWaitPolicy(hlist[0], cyca.GET_CACHE_NO_CHECK) +#cafe.setGetCacheWaitPolicy(hlist[1], cyca.GET_CACHE_NO_CHECK) + +print ("Monitor STARTING ------------------------------------------------------------- ",m0,m1) + +cafe.openMonitorNowAndWait(1.0); + +val=-2.0 + +#watch the callbacks being invoked +for i in range (0,10): + cafe.set(hlist1[0], val+i) + #cafe.set(hlist1[1], val+i+0.373) + time.sleep(2.0) + + #print (" ") + #print ("Latest Value for channel",cafe.getPVNameFromHandle(hlist1[0]), " is", cafe.getCache(hlist1[0], dt='native')) + #print (" ") + + + +print ('getNoMonitors ' , cafe.getNoMonitors(hlist1[0])); +cafe.close(hlist1[0]) +time.sleep(2); + +#cafe.monitorStop(hlist1[0], mpid=m0) # mpid=m0 is optional and may be omitted +#cafe.monitorStop(hlist1[0]) + +#optional, getCache methods get from cache with pre-checks (back to default) +#cafe.setGetCacheWaitPolicy(hlist[0], cyca.GET_CACHE_WAIT) +#cafe.setGetCacheWaitPolicy(hlist[1], cyca.GET_CACHE_WAIT) + +cafe.terminate(); +exit(1); + + +############################################################## + +############################################################## +#(9) Asynchronous interactions and retrieving data from Cache +############################################################## + + +print("--------------------------------------------------------") +print("Asynchronous interactions and retrieving data from Cache") +print("--------------------------------------------------------") + +#Check on return value or status instead of exceptions + +cafe.withExceptions(False); +s=cafe.set(hlistAll[0],1.111789) + +s,sl=cafe.getAsyn(hlistAll) +print("status of cafe.getAsyn(hlistAll)",s) + +if s != cyca.ICAFE_NORMAL: + print(sl) + +#optional - may be omitted +s,sl=cafe.waitForBundledEvents(hlistAll) + +#will wait for callback to be invoked if above omitted +v=cafe.getCache(hlistAll[0]) +if v != None: + print("Value from Cache ", v) + +#get array +v=cafe.getArrayCache(hlistAll[4],art='numpy') +if v[0] != None: + print("Value from Cache ", v) + +pv=cafe.getPVCache(hlistAll[4]) +print (cafe.getPVNameFromHandle(hlistAll[4]),":") +pv.showMax(4) #show max 4 elements of wf + +############################################################## + +############################################################# +#(10) More on groups +############################################################## +#loads groups defined by virtual accelerator (SF network only) +#SF specific, please delete +''' +cafe.loadSFGroups() +print ("loadSFGroups") + +ll=cafe.groupList() +print ("----------------/") +print (ll ) +print ("----------------/") +inl=['MQUA080','PS-MODE'] +ll2=cafe.getChannelList(inl) #search for channels containing inl in pc name +print ("--------------------//") +print (ll2) +print ("--------------------//") +#View members of group ll[3] +gml=cafe.groupMemberList(ll[3]) +print ("------------------------///") +print (gml) +print ("------------------------///") + +''' + +#See that a number of groups have been added to the groupList +ll=cafe.groupList() +print ("----------------------------////") +print (ll) +print ("----------------------------////") + +try: + gHandle=cafe.groupOpen(ll[0]) + pvg=cafe.getPVGroup(gHandle) + #or + pvg=cafe.getPVGroup(ll[0]) + print ("--------------------------------/") + pvg.showWithPV(cafe.groupMemberList(ll[0])) #'gBRPM' + print ("--------------------------------/") + + #Start a Collective monitor on all group memebers with the same user supplied cb function + cbf=[] + for i in range (0, len(ll[0])): + cbf.append(py_callback) + s,sV=cafe.groupMonitorStartWithCBList(gHandle,cbf) + #or + #s,sV=cafe.groupMonitorStartWithCBList(ll[0],cbf) + + #Start a monitor on all group members with default callback + #If a channel is disconnected, then the monitor will start automatically on connection + s,sV=cafe.groupMonitorStart('gAll') + + val,s,sl=cafe.getGroupCache(gHandle) + #wait a tick for callbacks to complete before sets are done + time.sleep(0.5) + print ("--------------------------------/") + print ("SET to monitored channels") + print ("--------------------------------/") + for i in range (0,len(val)): + val[i]= val[i]+0.9099999 + s,sl = cafe.setGroup(gHandle,val) + time.sleep(0.5) + + s,sV=cafe.groupMonitorStop(gHandle) + s,sV=cafe.groupMonitorStop('gAll') + + +except Exception as inst: + if isinstance(inst.args[0],PyCafe.CyCafeException): + cafeEx=inst.args[0] + cafeEx.show() + #or + cafeEx.reveal() + #or + print (cafeEx.pv,"(handle=", cafeEx.handle,")") + print (cafeEx.errorCode,":", cafeEx.errorText,cafeEx.errorInfo) + else: + print (inst) + + +''' + +#load collections and groups from external file +cafe.loadCollectionsFromXML("Collections/collection_swissfel.xml"); +cafe.loadGroupsFromXML("Groups/group_swissfel.xml"); + +cafe.loadCollectionsFromXML ("cNodes.xml") +cafe.loadGroupsFromXML ("gDBPM.xml") + +# get static BPM data, i.e., names/positions +BPMdev, BPMpos=cafe.devicePositionMap("cDBPM") + +nDBPM=len(BPMdev) +print ("No. of DBPs devices =", nDBPM) +for i in range (0, len(BPMdev)): + print (i, " " + BPMdev[i], " " , BPMpos[i] +''' + +############################################################## +#(11) Special methods: +############################################################## +#int match(valueToReach, handleMatch, tolerance, timeout, printFlag) +#This method does not do a set, just waits until valueToReach +#for channel hlist1[0] is reached +print (" ") +print ("START cafe.match------------------------------------------------------") +try: + cafe.set(hlist1[0], 2.001) + s=cafe.match(2.34,hlist1[0],0.0011,10.0,True) + #s=cafe.match(cafe.getEnumFromString(PVS,"monitor"),hlist1[0],0.0011,10.0,True) + print ("Status of match method: ", cafe.getStatusCodeAsText(s)) +except Exception as inst: + print ("Exception for cafe match ") + print ("Status of match method: ", cafe.getStatusCodeAsText(cafe.getStatus(hlist1[0]))) +print ("END cafe.match------------------------------------------------------") + + +#int setAndMatch(handlePVtoSet, valueToSet, handlePVtoReadback, tolerance, timeout, printFlag) +#Set Channel1 followed by a readback of Channel 2 \n +#Method verifies whether or not the 2 values agree within the given tolerance and timeout +#Method returns with ECA_NORMAL as soon as a match is reached +print (" ") +print ("START cafe.setAndMatch------------------------------------------------------") +try: + cafe.set(hlist1[1], 2.0201) + s=cafe.setAndMatch(hlist1[0],2.02,hlist1[1],0.001,10.0,True) + #s=cafe.setAndMatch(hlist1[0],cafe.getEnumFromString(PVS,"monitor"),hlist1[1],0.001,1,True) + print ("Status of set and match method: ", cafe.getStatusCodeAsText(s)) +except Exception as inst: + print ("EXCEPTION AT SET AND MATCH" ) + print ("Status of set and match method: ", cafe.getStatusCodeAsText(cafe.getStatus(hlist1[0]))) +print ("END cafe.setAndMatch------------------------------------------------------") + +#Throw exception +try: + cafe.getEnumFromString(PVS,"Monitor") +except Exception as inst: + print (inst) + +#Set Channels followed by a corresponding readback of Channels \n +#Method verifies whether or not the set/readback values agree within the given tolerance and timeout \n +#Method returns with ECA_NORMAL as soon as a match is reached + +magnetSetList =['ARIMA-CV-12LB:I-SET', 'ARIMA-CV-12LE:I-SET'] +magnetReadList=['ARIMA-CV-12LB:I-READ','ARIMA-CV-12LE:I-READ'] +cafe.openPrepare() +mSetHandleList=cafe.open(magnetSetList) +mReadHandleList=cafe.open(magnetReadList) +cafe.openNowAndWait(0.4) +valInput=[] +valInput.append(3.5) +valInput.append(3.6) + + + +#int setAndMatchMany(handlePVArraytoSet, valueArrayToSet, handlePVArraytoReadback, tolerance, timeout, printFlag) +print (" ") +print ("START cafe.setAndMatchMany------------------------------------------------------") +try: + s,sL=cafe.setScalarList(mSetHandleList, valInput) + s,sL=cafe.setScalarList(mReadHandleList, [3.501,3.599]) + s=cafe.setAndMatchMany(mSetHandleList,valInput,mReadHandleList,0.002,10.0,True) + print ("Status of set and match method: ", cafe.getStatusCodeAsText(s)) + +except Exception as inst: + if isinstance(inst.args[0],PyCafe.CyCafeException): + cafeEx=inst.args[0] + cafeEx.show() + #or + cafeEx.reveal() + #or + print (cafeEx.pv,"(handle=", cafeEx.handle,")") + print (cafeEx.errorCode,":", cafeEx.errorText,cafeEx.errorInfo) + else: + print (inst) + + + + +print ("END cafe.setAndMatch------------------------------------------------------") + + + +############################################################## + + +##Test with attaching context (would do this from another thread) +print ( cafe.getStatusCodeAsText(cafe.attachContext(1)) ); +print ( cafe.getStatusCodeAsText(cafe.attachContext(999999))); + +if (cafe.attachContext(1) == cyca.CY_ECA_ISATTACHED): + print (cafe.getStatusCodeAsText(cafe.attachContext(1))); + +if (cafe.attachContext(99999) == cyca.ECAFE_NULLCONTEXT): + print (cafe.getStatusCodeAsText(cafe.attachContext(999))); + + + +############################################################## +#END Gracefully terminate CAFE +############################################################## +cafe.terminate() +exit(0) +############################################################## + + + + diff --git a/gDBPM.xml b/gDBPM.xml new file mode 100644 index 0000000..85906e1 --- /dev/null +++ b/gDBPM.xml @@ -0,0 +1,39 @@ + + + + + + + DBPM configuration + + cDBPM + X1 + + + + cDBPM + Y1 + + + cDBPM + Q1 + + + cDBPM + X1-VALID + + + cDBPM + Y1-VALID + + + cDBPM + Q1-VALID + + + cDBPM + ENERGY + + + + diff --git a/python-3.5/PyCafe.pxd b/python-3.5/PyCafe.pxd new file mode 120000 index 0000000..9c5f8ad --- /dev/null +++ b/python-3.5/PyCafe.pxd @@ -0,0 +1 @@ +../PyCafe.pxd \ No newline at end of file diff --git a/python-3.5/PyCafe.pyx b/python-3.5/PyCafe.pyx new file mode 120000 index 0000000..416c394 --- /dev/null +++ b/python-3.5/PyCafe.pyx @@ -0,0 +1 @@ +../PyCafe.pyx \ No newline at end of file diff --git a/python-3.5/PyCafeDefs.pxi b/python-3.5/PyCafeDefs.pxi new file mode 120000 index 0000000..ce7529d --- /dev/null +++ b/python-3.5/PyCafeDefs.pxi @@ -0,0 +1 @@ +../PyCafeDefs.pxi \ No newline at end of file diff --git a/python-3.5/PyCafe_api.h b/python-3.5/PyCafe_api.h new file mode 100644 index 0000000..379bf2a --- /dev/null +++ b/python-3.5/PyCafe_api.h @@ -0,0 +1,115 @@ +/* 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 */ diff --git a/python-3.5/README_Py3_release b/python-3.5/README_Py3_release new file mode 100644 index 0000000..1ea0102 --- /dev/null +++ b/python-3.5/README_Py3_release @@ -0,0 +1,4 @@ +source /opt/gfa/python 3.5 +python setup3.5_release.py build_ext -i +export PYTHONPATH=.:/opt/gfa/cafe/python/python-3.5/pycafe-1.3.0-final-/lib +export LD_LIBRARY_PATH=./ diff --git a/python-3.5/cNodes.xml b/python-3.5/cNodes.xml new file mode 120000 index 0000000..1cf6978 --- /dev/null +++ b/python-3.5/cNodes.xml @@ -0,0 +1 @@ +../sf_ar_cNodes.xml \ No newline at end of file diff --git a/python-3.5/examples.py b/python-3.5/examples.py new file mode 120000 index 0000000..7f4266d --- /dev/null +++ b/python-3.5/examples.py @@ -0,0 +1 @@ +../examples.py \ No newline at end of file diff --git a/python-3.5/examples.sh b/python-3.5/examples.sh new file mode 100755 index 0000000..4efab8a --- /dev/null +++ b/python-3.5/examples.sh @@ -0,0 +1,7 @@ +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 + diff --git a/python-3.5/examplesTest.py b/python-3.5/examplesTest.py new file mode 120000 index 0000000..cfcf70a --- /dev/null +++ b/python-3.5/examplesTest.py @@ -0,0 +1 @@ +../examplesTest.py \ No newline at end of file diff --git a/python-3.5/gDBPM.xml b/python-3.5/gDBPM.xml new file mode 120000 index 0000000..d32d8ae --- /dev/null +++ b/python-3.5/gDBPM.xml @@ -0,0 +1 @@ +../gDBPM.xml \ No newline at end of file diff --git a/python-3.5/makefile b/python-3.5/makefile new file mode 100644 index 0000000..f4cf161 --- /dev/null +++ b/python-3.5/makefile @@ -0,0 +1,36 @@ +# +# Jan Chrin +# July 2015 +# + +##### CHANGE AS APPROPRIATE ################# +#Cython Version to install +CYCAFE_VERSION=pycafe-1.3.0-final-1 + +#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) + diff --git a/python-3.5/setup3.5_release.py b/python-3.5/setup3.5_release.py new file mode 100644 index 0000000..578b52c --- /dev/null +++ b/python-3.5/setup3.5_release.py @@ -0,0 +1,31 @@ +from distutils.core import setup +from distutils.extension import Extension +from Cython.Build import cythonize +from numpy import get_include + +#runtime_library_dirs do not override LD_LIBRARY_PATH! + +setup( + ext_modules = cythonize([Extension('PyCafe',['PyCafe.pyx'], + language="c++", + include_dirs=[ '/opt/gfa/python-3.5/latest/include/python3.5m', + '/usr/local/epics/base/include', + '/usr/local/epics/base/include/os/Linux', + '/opt/gfa/cafe/boost/boost_1_61_0/include', + '/opt/gfa/cafe/boost/boost_1_61_0/include/boost', + '/opt/gfa/cafe/python/python-3.5/pycafe-1.3.0-final-1/include', + '.', get_include()], + library_dirs=[ '/usr/local/epics/base/lib/SL6-x86_64', + '/opt/gfa/cafe/python/python-3.5/pycafe-1.3.0-final-1/lib', + '/opt/gfa/python-3.5/latest/lib' + ], + runtime_library_dirs=['/usr/local/epics/base/lib/SL6-x86_64', + '/opt/gfa/cafe/python/python-3.5/pycafe-1.3.0-final-1/lib', + '/opt/gfa/python-3.5/latest/lib' + ], + libraries=['ca','Com','dl','cafe']) + ], annotate=False, + compiler_directives={'embedsignature': False, 'language_level': 3, 'c_string_type': 'str', + 'c_string_encoding' : 'ascii', 'warning_errors' : False, 'py2_import': False, 'warn.unreachable': False, + 'remove_unreachable': False}) +) diff --git a/setup3.5_win.py b/setup3.5_win.py new file mode 100644 index 0000000..fb66fb5 --- /dev/null +++ b/setup3.5_win.py @@ -0,0 +1,48 @@ +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! +#, +# 'C:/local/boost_1_62_0/lib64-msvc-10.0/libboost_thread-vc100-mt-s-1_62.lib', +# 'C:/local/boost_1_62_0/lib64-msvc-10.0/libboost_system-vc100-mt-s-1_62.lib', +# 'C:/local/boost_1_62_0/lib64-msvc-10.0/libboost_date_time-vc100-mt-s-1_62.lib', +# 'C:/local/boost_1_62_0/lib64-msvc-10.0/libboost_chrono-vc100-mt-s-1_62.lib' + + +setup( + ext_modules = cythonize([Extension('PyCafe',['PyCafe.pyx'], + language="c++", + include_dirs=[ + 'C:/Users/chrin/AppData/Local/Continuum/Anaconda3/env/py345/include', + 'C:/epics/base-3.14.12.5/include', + 'C:/epics/base-3.14.12.5/include/os/WIN32', + 'C:/local/boost_1_62_0', + 'C:/local/boost_1_62_0/boost', + 'C:/CAFE/CAFE/cpp/include', 'C:/CAFE/CAFE/cpp','C:/Qt/qt-4.8.6-x64-msvc2010/include' + '.', get_include()], + extra_compile_args = ["-MT", "-EHsc"], + library_dirs=[ + 'C:/epics/base-3.14.12.5/lib/windows-x64', + 'C:/CAFE/CAFE/cpp', + 'C:/Users/chrin/AppData/Local/Continuum/Anaconda3/envs/py345/libs', + 'C:/local/boost_1_62_0/lib64-msvc-10.0', + 'C:/Qt/qt-4.8.6-x64-msvc2010/lib' + ], + extra_link_args=["-Release","-Manifest","-NoLogo"], + #runtime_library_dirs=['C:/epics/base-3.14.12.5/lib/windows-x64', + # 'C:/CAFE/CAFE/cpp/lib', + # 'C:/Users/chrin/AppData/Local/Continuum/Anaconda3/envs/py345/libs' + # ], + libraries=['ca','Com','cafe','python3','libboost_thread-vc100-mt-s-1_62', + 'libboost_system-vc100-mt-s-1_62','libboost_date_time-vc100-mt-s-1_62', + 'libboost_chrono-vc100-mt-s-1_62', + 'QtCore4','QtXml4' + ] + ) + ], 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}) +) diff --git a/sf_ar_cNodes.xml b/sf_ar_cNodes.xml new file mode 100644 index 0000000..e49692d --- /dev/null +++ b/sf_ar_cNodes.xml @@ -0,0 +1,2804 @@ + + + Collection of Nodes at SwissFEL + + X + Y + X0 + Y0 + REF-X + REF-Y + REFOFF-X + REFOFF-Y + REFORB-X + REFORB-Y + SET-GAIN + I + FB-STAT + FB-ENABLE + STAT + ENABLE + + + SINEG01-DBPM340 + + + SINSB01-DBPM150 + + + SINSB02-DBPM150 + + + SINLH01-DBPM060 + + + SINLH02-DBPM210 + + + SINLH02-DBPM240 + + + SINLH03-DBPM010 + + + SINLH03-DBPM050 + + + SINLH03-DBPM090 + + + SINSB03-DBPM120 + + + SINSB03-DBPM220 + + + SINSB04-DBPM120 + + + SINSB04-DBPM220 + + + SINSB05-DBPM120 + + + SINSB05-DBPM220 + + + SINXB01-DBPM120 + + + SINBC01-DBPM010 + + + SINBC01-DBPM030 + + + SINBC01-DBPM080 + + + SINBC01-DBPM100 + + + SINBC02-DBPM140 + + + SINBC02-DBPM320 + + + SINDI01-DBPM010 + + + SINDI01-DBPM060 + + + SINDI02-DBPM010 + + + SINDI02-DBPM040 + + + SINDI02-DBPM080 + + + S10CB01-DBPM220 + + + S10CB01-DBPM420 + + + S10CB02-DBPM220 + + + S10CB02-DBPM420 + + + S10DI01-DBPM110 + + + S10CB03-DBPM220 + + + S10CB03-DBPM420 + + + S10CB04-DBPM220 + + + S10CB04-DBPM420 + + + S10CB05-DBPM220 + + + S10CB05-DBPM420 + + + S10CB06-DBPM220 + + + S10CB06-DBPM420 + + + S10CB07-DBPM220 + + + S10CB07-DBPM420 + + + S10CB08-DBPM220 + + + S10CB08-DBPM420 + + + S10CB09-DBPM220 + + + S10BC01-DBPM010 + + + S10BC01-DBPM050 + + + S10BC01-DBPM090 + + + S10BC02-DBPM140 + + + S10BC02-DBPM320 + + + S10MA01-DBPM010 + + + S10MA01-DBPM060 + + + S10MA01-DBPM120 + + + S20CB01-DBPM420 + + + S20CB02-DBPM420 + + + S20CB03-DBPM420 + + + S20SY01-DBPM010 + + + S20SY01-DBPM040 + + + S20SY01-DBPM060 + + + S20SY02-DBPM080 + + + S20SY02-DBPM120 + + + S20SY02-DBPM150 + + + S20SY03-DBPM010 + + + S20SY03-DBPM040 + + + S20SY03-DBPM080 + + + S30CB01-DBPM420 + + + S30CB02-DBPM420 + + + S30CB03-DBPM420 + + + S30CB04-DBPM420 + + + S30CB05-DBPM420 + + + S30CB06-DBPM420 + + + S30CB07-DBPM420 + + + S30CB08-DBPM420 + + + S30CB09-DBPM420 + + + S30CB10-DBPM420 + + + S30CB11-DBPM420 + + + S30CB12-DBPM420 + + + S30CB13-DBPM420 + + + S30CB14-DBPM420 + + + S30CB15-DBPM420 + + + SARCL01-DBPM010 + + + SARCL01-DBPM060 + + + SARCL01-DBPM120 + + + SARCL01-DBPM150 + + + SARCL02-DBPM110 + + + SARCL02-DBPM220 + + + SARCL02-DBPM260 + + + SARCL02-DBPM330 + + + SARCL02-DBPM470 + + + SARMA01-DBPM040 + + + SARMA01-DBPM100 + + + SARMA02-DBPM010 + + + SARMA02-DBPM020 + + + SARMA02-DBPM040 + + + SARMA02-DBPM110 + + + SARUN01-DBPM070 + + + SARUN02-DBPM070 + + + SARUN03-DBPM070 + + + SARUN04-DBPM070 + + + SARUN05-DBPM070 + + + SARUN06-DBPM070 + + + SARUN07-DBPM070 + + + SARUN08-DBPM070 + + + SARUN09-DBPM070 + + + SARUN10-DBPM070 + + + SARUN11-DBPM070 + + + SARUN12-DBPM070 + + + SARUN13-DBPM070 + + + SARUN14-DBPM070 + + + SARUN15-DBPM070 + + + SARUN16-DBPM070 + + + SARUN17-DBPM070 + + + SARUN18-DBPM070 + + + SARUN19-DBPM070 + + + SARUN20-DBPM070 + + + S10BD01-DBPM020 + + + SARBD01-DBPM040 + + + SARBD02-DBPM010 + + + SARBD02-DBPM040 + + + + Collection of Nodes at SwissFEL + + I-SET + I-READ + PS-MODE + + + SINEG01-MCRX120 + + + SINEG01-MCRX160 + + + SINEG01-MCRX180 + + + SINEG01-MCRX200 + + + SINEG01-MCRX220 + + + SINSB01-MCRX010 + + + SINSB02-MCRX010 + + + SINLH01-MCRX020 + + + SINLH01-MCRX050 + + + SINLH02-MCRX010 + + + SINLH02-MCRX100 + + + SINLH02-MCRX200 + + + SINLH02-MCRX300 + + + SINLH02-MCRX400 + + + SINLH02-MCRX410 + + + SINLH03-MCRX040 + + + SINLH03-MCRX080 + + + SINSB03-MCRX130 + + + SINSB03-MCRX230 + + + SINSB04-MCRX130 + + + SINSB04-MCRX230 + + + SINSB05-MCRX130 + + + SINSB05-MCRX230 + + + SINBC01-MCRX020 + + + SINBC01-MCRX050 + + + SINBC01-MCRX070 + + + SINBC01-MCRX090 + + + SINBC01-MCRX110 + + + SINBC02-MCRX100 + + + SINBC02-MCRX200 + + + SINBC02-MCRX300 + + + SINBC02-MCRX400 + + + SINDI01-MCRX020 + + + SINDI01-MCRX070 + + + SINDI02-MCRX020 + + + SINDI02-MCRX030 + + + SINDI02-MCRX050 + + + SINDI02-MCRX060 + + + SINDI02-MCRX090 + + + S10CB01-MCRX230 + + + S10CB01-MCRX430 + + + S10CB02-MCRX230 + + + S10CB02-MCRX430 + + + S10DI01-MCRX100 + + + S10DI01-MCRX120 + + + S10CB03-MCRX230 + + + S10CB03-MCRX430 + + + S10CB04-MCRX230 + + + S10CB04-MCRX430 + + + S10CB05-MCRX230 + + + S10CB05-MCRX430 + + + S10CB06-MCRX230 + + + S10CB06-MCRX430 + + + S10CB07-MCRX230 + + + S10CB07-MCRX430 + + + S10CB08-MCRX230 + + + S10CB08-MCRX430 + + + S10CB09-MCRX230 + + + S10BC01-MCRX020 + + + S10BC01-MCRX040 + + + S10BC01-MCRX060 + + + S10BC01-MCRX080 + + + S10BC01-MCRX100 + + + S10BC02-MCRX100 + + + S10BC02-MCRX200 + + + S10BC02-MCRX300 + + + S10BC02-MCRX400 + + + S10MA01-MCRX020 + + + S10MA01-MCRX050 + + + S10MA01-MCRX070 + + + S10MA01-MCRX100 + + + S10MA01-MCRX110 + + + S10MA01-MCRX130 + + + S20CB01-MCRX430 + + + S20CB02-MCRX430 + + + S20CB03-MCRX430 + + + S20SY01-MCRX020 + + + S20SY01-MCRX030 + + + S20SY01-MCRX050 + + + S20SY01-MCRX080 + + + S20SY02-MCRX060 + + + S20SY02-MCRX090 + + + S20SY02-MCRX130 + + + S20SY02-MCRX170 + + + S20SY03-MCRX020 + + + S20SY03-MCRX030 + + + S20SY03-MCRX050 + + + S20SY03-MCRX060 + + + S20SY03-MCRX100 + + + S30CB01-MCRX430 + + + S30CB02-MCRX430 + + + S30CB03-MCRX430 + + + S30CB04-MCRX430 + + + S30CB05-MCRX430 + + + S30CB06-MCRX430 + + + S30CB07-MCRX430 + + + S30CB08-MCRX430 + + + S30CB09-MCRX430 + + + S30CB10-MCRX430 + + + S30CB11-MCRX430 + + + S30CB12-MCRX430 + + + S30CB13-MCRX430 + + + S30CB14-MCRX430 + + + S30CB15-MCRX430 + + + SARCL01-MCRX020 + + + SARCL01-MCRX040 + + + SARCL01-MCRX070 + + + SARCL01-MCRX090 + + + SARCL01-MCRX130 + + + SARCL01-MCRX180 + + + SARCL02-MCRX100 + + + SARCL02-MCRX120 + + + SARCL02-MCRX200 + + + SARCL02-MCRX230 + + + SARCL02-MCRX240 + + + SARCL02-MCRX320 + + + SARCL02-MCRX340 + + + SARCL02-MCRX400 + + + SARCL02-MCRX450 + + + SARCL02-MCRX480 + + + SARCL02-MCRX500 + + + SARMA01-MCRX020 + + + SARMA01-MCRX050 + + + SARMA01-MCRX070 + + + SARMA01-MCRX110 + + + SARMA01-MCRX130 + + + SARMA02-MCRX050 + + + SARMA02-MCRX120 + + + SARUN01-MCRX080 + + + SARUN02-MCRX080 + + + SARUN03-MCRX010 + + + SARUN03-MCRX040 + + + SARUN03-MCRX080 + + + SARUN04-MCRX010 + + + SARUN04-MCRX040 + + + SARUN04-MCRX080 + + + SARUN05-MCRX010 + + + SARUN05-MCRX040 + + + SARUN05-MCRX080 + + + SARUN06-MCRX010 + + + SARUN06-MCRX040 + + + SARUN06-MCRX080 + + + SARUN07-MCRX010 + + + SARUN07-MCRX040 + + + SARUN07-MCRX080 + + + SARUN08-MCRX010 + + + SARUN08-MCRX040 + + + SARUN08-MCRX080 + + + SARUN09-MCRX010 + + + SARUN09-MCRX040 + + + SARUN09-MCRX080 + + + SARUN10-MCRX010 + + + SARUN10-MCRX040 + + + SARUN10-MCRX080 + + + SARUN11-MCRX010 + + + SARUN11-MCRX040 + + + SARUN11-MCRX080 + + + SARUN12-MCRX010 + + + SARUN12-MCRX040 + + + SARUN12-MCRX080 + + + SARUN13-MCRX010 + + + SARUN13-MCRX040 + + + SARUN13-MCRX080 + + + SARUN14-MCRX010 + + + SARUN14-MCRX040 + + + SARUN14-MCRX080 + + + SARUN15-MCRX010 + + + SARUN15-MCRX040 + + + SARUN15-MCRX080 + + + SARUN16-MCRX080 + + + SARUN17-MCRX080 + + + SARUN18-MCRX080 + + + SARUN19-MCRX080 + + + SARUN20-MCRX080 + + + SARBD01-MCRX020 + + + + Collection of Nodes at SwissFEL + + I-SET + I-READ + PS-MODE + + + SINEG01-MCRY120 + + + SINEG01-MCRY160 + + + SINEG01-MCRY180 + + + SINEG01-MCRY200 + + + SINEG01-MCRY220 + + + SINSB01-MCRY010 + + + SINSB02-MCRY010 + + + SINLH01-MCRY020 + + + SINLH01-MCRY050 + + + SINLH02-MCRY010 + + + SINLH02-MCRY410 + + + SINLH03-MCRY040 + + + SINLH03-MCRY080 + + + SINSB03-MCRY130 + + + SINSB03-MCRY230 + + + SINSB04-MCRY130 + + + SINSB04-MCRY230 + + + SINSB05-MCRY130 + + + SINSB05-MCRY230 + + + SINBC01-MCRY020 + + + SINBC01-MCRY050 + + + SINBC01-MCRY070 + + + SINBC01-MCRY090 + + + SINBC01-MCRY110 + + + SINDI01-MCRY020 + + + SINDI01-MCRY070 + + + SINDI02-MCRY020 + + + SINDI02-MCRY030 + + + SINDI02-MCRY050 + + + SINDI02-MCRY060 + + + SINDI02-MCRY090 + + + S10CB01-MCRY230 + + + S10CB01-MCRY430 + + + S10CB02-MCRY230 + + + S10CB02-MCRY430 + + + S10DI01-MCRY120 + + + S10CB03-MCRY230 + + + S10CB03-MCRY430 + + + S10CB04-MCRY230 + + + S10CB04-MCRY430 + + + S10CB05-MCRY230 + + + S10CB05-MCRY430 + + + S10CB06-MCRY230 + + + S10CB06-MCRY430 + + + S10CB07-MCRY230 + + + S10CB07-MCRY430 + + + S10CB08-MCRY230 + + + S10CB08-MCRY430 + + + S10CB09-MCRY230 + + + S10BC01-MCRY020 + + + S10BC01-MCRY040 + + + S10BC01-MCRY060 + + + S10BC01-MCRY080 + + + S10BC01-MCRY100 + + + S10MA01-MCRY020 + + + S10MA01-MCRY050 + + + S10MA01-MCRY070 + + + S10MA01-MCRY110 + + + S10MA01-MCRY130 + + + S20CB01-MCRY430 + + + S20CB02-MCRY430 + + + S20CB03-MCRY430 + + + S20SY01-MCRY020 + + + S20SY01-MCRY030 + + + S20SY01-MCRY050 + + + S20SY01-MCRY080 + + + S20SY02-MCRY060 + + + S20SY02-MCRY090 + + + S20SY02-MCRY130 + + + S20SY02-MCRY170 + + + S20SY03-MCRY020 + + + S20SY03-MCRY030 + + + S20SY03-MCRY050 + + + S20SY03-MCRY060 + + + S20SY03-MCRY100 + + + S30CB01-MCRY430 + + + S30CB02-MCRY430 + + + S30CB03-MCRY430 + + + S30CB04-MCRY430 + + + S30CB05-MCRY430 + + + S30CB06-MCRY430 + + + S30CB07-MCRY430 + + + S30CB08-MCRY430 + + + S30CB09-MCRY430 + + + S30CB10-MCRY430 + + + S30CB11-MCRY430 + + + S30CB12-MCRY430 + + + S30CB13-MCRY430 + + + S30CB14-MCRY430 + + + S30CB15-MCRY430 + + + SARCL01-MCRY020 + + + SARCL01-MCRY040 + + + SARCL01-MCRY070 + + + SARCL01-MCRY090 + + + SARCL01-MCRY130 + + + SARCL01-MCRY180 + + + SARCL02-MCRY120 + + + SARCL02-MCRY230 + + + SARCL02-MCRY240 + + + SARCL02-MCRY320 + + + SARCL02-MCRY340 + + + SARCL02-MCRY450 + + + SARCL02-MCRY480 + + + SARMA01-MCRY020 + + + SARMA01-MCRY050 + + + SARMA01-MCRY070 + + + SARMA01-MCRY110 + + + SARMA01-MCRY130 + + + SARMA02-MCRY050 + + + SARMA02-MCRY120 + + + SARUN01-MCRY080 + + + SARUN02-MCRY080 + + + SARUN03-MCRY010 + + + SARUN03-MCRY040 + + + SARUN03-MCRY080 + + + SARUN04-MCRY010 + + + SARUN04-MCRY040 + + + SARUN04-MCRY080 + + + SARUN05-MCRY010 + + + SARUN05-MCRY040 + + + SARUN05-MCRY080 + + + SARUN06-MCRY010 + + + SARUN06-MCRY040 + + + SARUN06-MCRY080 + + + SARUN07-MCRY010 + + + SARUN07-MCRY040 + + + SARUN07-MCRY080 + + + SARUN08-MCRY010 + + + SARUN08-MCRY040 + + + SARUN08-MCRY080 + + + SARUN09-MCRY010 + + + SARUN09-MCRY040 + + + SARUN09-MCRY080 + + + SARUN10-MCRY010 + + + SARUN10-MCRY040 + + + SARUN10-MCRY080 + + + SARUN11-MCRY010 + + + SARUN11-MCRY040 + + + SARUN11-MCRY080 + + + SARUN12-MCRY010 + + + SARUN12-MCRY040 + + + SARUN12-MCRY080 + + + SARUN13-MCRY010 + + + SARUN13-MCRY040 + + + SARUN13-MCRY080 + + + SARUN14-MCRY010 + + + SARUN14-MCRY040 + + + SARUN14-MCRY080 + + + SARUN15-MCRY010 + + + SARUN15-MCRY040 + + + SARUN15-MCRY080 + + + SARUN16-MCRY080 + + + SARUN17-MCRY080 + + + SARUN18-MCRY080 + + + SARUN19-MCRY080 + + + SARUN20-MCRY080 + + + SARBD01-MCRY020 + + + + Collection of Nodes at SwissFEL + + I-SET + I-READ + PS-MODE + + + SINEG01-MSOL010 + + + SINEG01-MSOL130 + + + SINSB01-MSOL110 + + + SINSB01-MSOL120 + + + SINSB01-MSOL130 + + + SINSB01-MSOL140 + + + SINSB02-MSOL110 + + + SINSB02-MSOL120 + + + SINSB02-MSOL130 + + + SINSB02-MSOL140 + + + + Collection of Nodes at SwissFEL + + + SINEG01-MCOR120 + + + SINEG01-MCOR160 + + + SINEG01-MCOR180 + + + SINEG01-MCOR200 + + + SINEG01-MCOR220 + + + SINSB01-MCOR010 + + + SINSB02-MCOR010 + + + S20SY02-MCOR060 + + + S20SY02-MCOR090 + + + S20SY02-MCOR130 + + + S20SY02-MCOR170 + + + SARCL01-MCOR040 + + + SARCL01-MCOR070 + + + SARCL01-MCOR090 + + + SARCL01-MCOR130 + + + SARCL01-MCOR180 + + + SARCL02-MCOR120 + + + SARCL02-MCOR230 + + + SARCL02-MCOR240 + + + SARCL02-MCOR320 + + + SARCL02-MCOR340 + + + SARCL02-MCOR450 + + + SARCL02-MCOR480 + + + SARMA01-MCOR020 + + + SARMA01-MCOR050 + + + SARMA01-MCOR070 + + + SARMA01-MCOR110 + + + SARMA01-MCOR130 + + + SARUN03-MCOR010 + + + SARUN03-MCOR040 + + + SARUN04-MCOR010 + + + SARUN04-MCOR040 + + + SARUN05-MCOR010 + + + SARUN05-MCOR040 + + + SARUN06-MCOR010 + + + SARUN06-MCOR040 + + + SARUN07-MCOR010 + + + SARUN07-MCOR040 + + + SARUN08-MCOR010 + + + SARUN08-MCOR040 + + + SARUN09-MCOR010 + + + SARUN09-MCOR040 + + + SARUN10-MCOR010 + + + SARUN10-MCOR040 + + + SARUN11-MCOR010 + + + SARUN11-MCOR040 + + + SARUN12-MCOR010 + + + SARUN12-MCOR040 + + + SARUN13-MCOR010 + + + SARUN13-MCOR040 + + + SARUN14-MCOR010 + + + SARUN14-MCOR040 + + + SARUN15-MCOR010 + + + SARUN15-MCOR040 + + + + Collection of Nodes at SwissFEL + + I-SET + I-READ + PS-MODE + DEGAUSS + + + SINEG01-MQUA140 + + + SINEG01-MQUA150 + + + SINEG01-MQUA310 + + + SINEG01-MQUA320 + + + SINLH01-MQUA020 + + + SINLH01-MQUA030 + + + SINLH01-MQUA040 + + + SINLH01-MQUA050 + + + SINLH01-MQUA070 + + + SINLH02-MQUA010 + + + SINLH02-MQUA410 + + + SINLH03-MQUA030 + + + SINLH03-MQUA040 + + + SINLH03-MQUA060 + + + SINLH03-MQUA080 + + + SINSB03-MQUA130 + + + SINSB03-MQUA230 + + + SINSB04-MQUA130 + + + SINSB04-MQUA230 + + + SINSB05-MQUA130 + + + SINSB05-MQUA230 + + + SINBC01-MQUA020 + + + SINBC01-MQUA050 + + + SINBC01-MQUA070 + + + SINBC01-MQUA090 + + + SINBC01-MQUA110 + + + SINBC02-MQUA110 + + + SINBC02-MQUA120 + + + SINBC02-MQUA340 + + + SINBC02-MQUA350 + + + SINDI01-MQUA020 + + + SINDI01-MQUA030 + + + SINDI01-MQUA070 + + + SINDI02-MQUA020 + + + SINDI02-MQUA030 + + + SINDI02-MQUA050 + + + SINDI02-MQUA060 + + + SINDI02-MQUA070 + + + SINDI02-MQUA090 + + + S10CB01-MQUA230 + + + S10CB01-MQUA430 + + + S10CB02-MQUA230 + + + S10CB02-MQUA430 + + + S10DI01-MQUA030 + + + S10DI01-MQUA120 + + + S10CB03-MQUA230 + + + S10CB03-MQUA430 + + + S10CB04-MQUA230 + + + S10CB04-MQUA430 + + + S10CB05-MQUA230 + + + S10CB05-MQUA430 + + + S10CB06-MQUA230 + + + S10CB06-MQUA430 + + + S10CB07-MQUA230 + + + S10CB07-MQUA430 + + + S10CB08-MQUA230 + + + S10CB08-MQUA430 + + + S10CB09-MQUA230 + + + S10BC01-MQUA020 + + + S10BC01-MQUA040 + + + S10BC01-MQUA060 + + + S10BC01-MQUA080 + + + S10BC01-MQUA100 + + + S10BC02-MQUA110 + + + S10BC02-MQUA120 + + + S10BC02-MQUA340 + + + S10BC02-MQUA350 + + + S10MA01-MQUA020 + + + S10MA01-MQUA050 + + + S10MA01-MQUA070 + + + S10MA01-MQUA110 + + + S10MA01-MQUA130 + + + S20CB01-MQUA430 + + + S20CB02-MQUA430 + + + S20CB03-MQUA430 + + + S20SY01-MQUA020 + + + S20SY01-MQUA030 + + + S20SY01-MQUA050 + + + S20SY01-MQUA080 + + + S20SY02-MQUA070 + + + S20SY02-MQUA100 + + + S20SY02-MQUA140 + + + S20SY02-MQUA180 + + + S20SY03-MQUA020 + + + S20SY03-MQUA030 + + + S20SY03-MQUA050 + + + S20SY03-MQUA060 + + + S20SY03-MQUA100 + + + S30CB01-MQUA430 + + + S30CB02-MQUA430 + + + S30CB03-MQUA430 + + + S30CB04-MQUA430 + + + S30CB05-MQUA430 + + + S30CB06-MQUA430 + + + S30CB07-MQUA430 + + + S30CB08-MQUA430 + + + S30CB09-MQUA430 + + + S30CB10-MQUA430 + + + S30CB11-MQUA430 + + + S30CB12-MQUA430 + + + S30CB13-MQUA430 + + + S30CB14-MQUA430 + + + S30CB15-MQUA430 + + + SARCL01-MQUA020 + + + SARCL01-MQUA050 + + + SARCL01-MQUA080 + + + SARCL01-MQUA100 + + + SARCL01-MQUA140 + + + SARCL01-MQUA190 + + + SARCL02-MQUA130 + + + SARCL02-MQUA150 + + + SARCL02-MQUA160 + + + SARCL02-MQUA210 + + + SARCL02-MQUA250 + + + SARCL02-MQUA300 + + + SARCL02-MQUA310 + + + SARCL02-MQUA350 + + + SARCL02-MQUA420 + + + SARCL02-MQUA430 + + + SARCL02-MQUA460 + + + SARMA01-MQUA010 + + + SARMA01-MQUA060 + + + SARMA01-MQUA080 + + + SARMA01-MQUA120 + + + SARMA01-MQUA140 + + + SARMA02-MQUA050 + + + SARMA02-MQUA120 + + + SARUN01-MQUA080 + + + SARUN02-MQUA080 + + + SARUN03-MQUA020 + + + SARUN03-MQUA050 + + + SARUN03-MQUA080 + + + SARUN04-MQUA020 + + + SARUN04-MQUA050 + + + SARUN04-MQUA080 + + + SARUN05-MQUA020 + + + SARUN05-MQUA050 + + + SARUN05-MQUA080 + + + SARUN06-MQUA020 + + + SARUN06-MQUA050 + + + SARUN06-MQUA080 + + + SARUN07-MQUA020 + + + SARUN07-MQUA050 + + + SARUN07-MQUA080 + + + SARUN08-MQUA020 + + + SARUN08-MQUA050 + + + SARUN08-MQUA080 + + + SARUN09-MQUA020 + + + SARUN09-MQUA050 + + + SARUN09-MQUA080 + + + SARUN10-MQUA020 + + + SARUN10-MQUA050 + + + SARUN10-MQUA080 + + + SARUN11-MQUA020 + + + SARUN11-MQUA050 + + + SARUN11-MQUA080 + + + SARUN12-MQUA020 + + + SARUN12-MQUA050 + + + SARUN12-MQUA080 + + + SARUN13-MQUA020 + + + SARUN13-MQUA050 + + + SARUN13-MQUA080 + + + SARUN14-MQUA020 + + + SARUN14-MQUA050 + + + SARUN14-MQUA080 + + + SARUN15-MQUA020 + + + SARUN15-MQUA050 + + + SARUN15-MQUA080 + + + SARUN16-MQUA080 + + + SARUN17-MQUA080 + + + SARUN18-MQUA080 + + + SARUN19-MQUA080 + + + SARUN20-MQUA080 + + + S10BD01-MQUA010 + + + SARBD01-MQUA020 + + + SARBD02-MQUA030 + + + + Collection of Nodes at SwissFEL + + I-SET + I-READ + PS-MODE + DEGAUSS + + + SINEG01-MBND300 + + + SINLH02-MBND100 + + + SINLH02-MBND200 + + + SINLH02-MBND300 + + + SINLH02-MBND400 + + + SINBC02-MBND100 + + + SINBC02-MBND200 + + + SINBC02-MBND300 + + + SINBC02-MBND400 + + + S10DI01-MBND100 + + + S10BC02-MBND100 + + + S10BC02-MBND200 + + + S10BC02-MBND300 + + + S10BC02-MBND400 + + + S10MA01-MBND100 + + + S20SY02-MBND200 + + + SARCL02-MBND100 + + + SARCL02-MBND200 + + + SARCL02-MBND400 + + + SARCL02-MBND500 + + + SARMA02-MBND100 + + + SARBD01-MBND100 + + + SARBD01-MBND200 + + + + Collection of Nodes at SwissFEL + + CAV-AMPLT-AVG + CAV-POWER-AVG + CAV-PHASE-AVG + + + SINEG01-RGUN100 + + + + Collection of Nodes at SwissFEL + + FOR-AMPLT-AVG + FOR-POWER-AVG + FOR-PHASE-AVG + + + SINEG01-RWVG100 + + + SINSB01-RWVG100 + + + SINSB02-RWVG100 + + + SINSB03-RWVG100 + + + SINSB04-RWVG100 + + + SINXB01-RWVG100 + + + SINDI01-RWVG100 + + + S10CB01-RWVG100 + + + S10CB01-RWVG300 + + + S10CB02-RWVG100 + + + S10CB02-RWVG300 + + + S10CB03-RWVG100 + + + S10CB03-RWVG300 + + + S10CB04-RWVG100 + + + S10CB04-RWVG300 + + + S10CB05-RWVG100 + + + S10CB05-RWVG300 + + + S10CB06-RWVG100 + + + S10CB06-RWVG300 + + + S10CB07-RWVG100 + + + S10CB07-RWVG300 + + + S10CB08-RWVG100 + + + S10CB08-RWVG300 + + + S10CB09-RWVG100 + + + S10CB09-RWVG300 + + + S20CB01-RWVG100 + + + S20CB01-RWVG300 + + + S20CB02-RWVG100 + + + S20CB02-RWVG300 + + + S20CB03-RWVG100 + + + S20CB03-RWVG300 + + + S20CB04-RWVG100 + + + S20CB04-RWVG300 + + + S30CB01-RWVG100 + + + S30CB01-RWVG300 + + + S30CB02-RWVG100 + + + S30CB02-RWVG300 + + + S30CB03-RWVG100 + + + S30CB03-RWVG300 + + + S30CB04-RWVG100 + + + S30CB04-RWVG300 + + + S30CB05-RWVG100 + + + S30CB05-RWVG300 + + + S30CB06-RWVG100 + + + S30CB06-RWVG300 + + + S30CB07-RWVG100 + + + S30CB07-RWVG300 + + + S30CB08-RWVG100 + + + S30CB08-RWVG300 + + + S30CB09-RWVG100 + + + S30CB09-RWVG300 + + + S30CB10-RWVG100 + + + S30CB10-RWVG300 + + + S30CB11-RWVG100 + + + S30CB11-RWVG300 + + + S30CB12-RWVG100 + + + S30CB12-RWVG300 + + + S30CB13-RWVG100 + + + S30CB13-RWVG300 + + + S30CB14-RWVG100 + + + + Collection of Nodes at SwissFEL + + CAV-AMPLT-AVG + CAV-POWER-AVG + CAV-PHASE-AVG + + + SINSB01-RACC100 + + + SINSB02-RACC100 + + + SINSB03-RACC100 + + + SINSB03-RACC200 + + + SINSB04-RACC100 + + + SINSB04-RACC200 + + + SINXB01-RACC100 + + + SINXB01-RACC200 + + + S10CB01-RACC100 + + + S10CB01-RACC200 + + + S10CB01-RACC300 + + + S10CB01-RACC400 + + + S10CB02-RACC100 + + + S10CB02-RACC200 + + + S10CB02-RACC300 + + + S10CB02-RACC400 + + + S10CB03-RACC100 + + + S10CB03-RACC200 + + + S10CB03-RACC300 + + + S10CB03-RACC400 + + + S10CB04-RACC100 + + + S10CB04-RACC200 + + + S10CB04-RACC300 + + + S10CB04-RACC400 + + + S10CB05-RACC100 + + + S10CB05-RACC200 + + + S10CB05-RACC300 + + + S10CB05-RACC400 + + + S10CB06-RACC100 + + + S10CB06-RACC200 + + + S10CB06-RACC300 + + + S10CB06-RACC400 + + + S10CB07-RACC100 + + + S10CB07-RACC200 + + + S10CB07-RACC300 + + + S10CB07-RACC400 + + + S10CB08-RACC100 + + + S10CB08-RACC200 + + + S10CB08-RACC300 + + + S10CB08-RACC400 + + + S10CB09-RACC100 + + + S10CB09-RACC200 + + + S10CB09-RACC300 + + + S10CB09-RACC400 + + + S20CB01-RACC100 + + + S20CB01-RACC200 + + + S20CB01-RACC300 + + + S20CB01-RACC400 + + + S20CB02-RACC100 + + + S20CB02-RACC200 + + + S20CB02-RACC300 + + + S20CB02-RACC400 + + + S20CB03-RACC100 + + + S20CB03-RACC200 + + + S20CB03-RACC300 + + + S20CB03-RACC400 + + + S20CB04-RACC100 + + + S20CB04-RACC200 + + + S20CB04-RACC300 + + + S20CB04-RACC400 + + + S30CB01-RACC100 + + + S30CB01-RACC200 + + + S30CB01-RACC300 + + + S30CB01-RACC400 + + + S30CB02-RACC100 + + + S30CB02-RACC200 + + + S30CB02-RACC300 + + + S30CB02-RACC400 + + + S30CB03-RACC100 + + + S30CB03-RACC200 + + + S30CB03-RACC300 + + + S30CB03-RACC400 + + + S30CB04-RACC100 + + + S30CB04-RACC200 + + + S30CB04-RACC300 + + + S30CB04-RACC400 + + + S30CB05-RACC100 + + + S30CB05-RACC200 + + + S30CB05-RACC300 + + + S30CB05-RACC400 + + + S30CB06-RACC100 + + + S30CB06-RACC200 + + + S30CB06-RACC300 + + + S30CB06-RACC400 + + + S30CB07-RACC100 + + + S30CB07-RACC200 + + + S30CB07-RACC300 + + + S30CB07-RACC400 + + + S30CB08-RACC100 + + + S30CB08-RACC200 + + + S30CB08-RACC300 + + + S30CB08-RACC400 + + + S30CB09-RACC100 + + + S30CB09-RACC200 + + + S30CB09-RACC300 + + + S30CB09-RACC400 + + + S30CB10-RACC100 + + + S30CB10-RACC200 + + + S30CB10-RACC300 + + + S30CB10-RACC400 + + + S30CB11-RACC100 + + + S30CB11-RACC200 + + + S30CB11-RACC300 + + + S30CB11-RACC400 + + + S30CB12-RACC100 + + + S30CB12-RACC200 + + + S30CB12-RACC300 + + + S30CB12-RACC400 + + + S30CB13-RACC100 + + + S30CB13-RACC200 + + + S30CB13-RACC300 + + + S30CB13-RACC400 + + + + Collection of Nodes at SwissFEL + + GAP-READ + GAP_SP + EAB + + + SINLH02-UIND230 + + + SARUN03-UIND030 + + + SARUN04-UIND030 + + + SARUN05-UIND030 + + + SARUN06-UIND030 + + + SARUN07-UIND030 + + + SARUN08-UIND030 + + + SARUN09-UIND030 + + + SARUN10-UIND030 + + + SARUN11-UIND030 + + + SARUN12-UIND030 + + + SARUN13-UIND030 + + + SARUN14-UIND030 + + + SARUN15-UIND030 + + +

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ý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%0DqV3anb+j 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%0A1b zJ%xGtxxS0%HUrP3%tNlh&yA_4&sTmRo6E`D|)F$%CGmpS?YimpLpq^ITXOzb$(&>|Oqw-iB$RmgU zvmOP|_OqS*wGld@uXi(wSGp!5f3mTTN!nN!&NTfykhQM5&~*R%k;|;sp|34|1f)$2 zwC78=^4Ifl#43&B^u(p+Z!Spr8%Q5tfLw#K=9qpJNLdJSJd}jurW7~BxVZ1ty~2L~ zEB+gCv+}b+es{Ri;-o>wz5XiGZv`oLgBBInJBY*o7aHQ(^Q*JU#LKDQpli&}(bt)u zPe6{d@Aand3{u})I{h=QV{k2pzA3*?_5HAT4P}r|aG#={kpJsI%2Mg{N$CkPk3rHI zKZgI43ALp`)+h(s^RyQ;%g%{a|FHJ6GIp+91k&I8Acg-Ae`ocGf~-dztRBes zJVX5VJba%N`;D=M?lGSuLCP4AekOv60>B zrd=Mok3l_jzm0PQNI6wHeNt8`kJU}&F@VP3m){T0`$YS}yY?*93YW)FyC*?C`+()~ z2}tSspy~8UX%BK-_0nA(99=zFhbU~y%}a|q}(8#J}IM> z$Al*G;JhSZQ*K_aaCt1Vdeokz<3NydnsoZ4%vK)ro5+Lnl7$WPapKlT z&1c2Or>M(A^FlqZxUH939)m#EoIWWlmB;EP^6=}hzWlr_U><>and%!5k56(*zHs$7J?{&rV5^;HGUZ}?(v+-X7QWi_6Ps(WJF`-85DMv`BPs(iNF~5mCScfcZn2!^;KE@W5hvp^e@)%>s zb?SM=ZI`t?wgp*p`lPH>9;=(kgY)8TC_gW2m`7lLS>*E2yiiXo?la2c6Y2CxX%G7A zL%LfRj+L60>Ac}!>`56(*xHs$8! zGna?vWxdNo^Flqm%brX5`b@;LTy!^yG0{hD-mxtzsdQx%kRvvFi_u!M#9`x6Tbhj=X zD`C@cet}K7dAaCo<)L{=xI8p3)Z@!-{8xaKyQN1JceL`D&_o`bmn3Y;%}cv)isxmX z%VVhRx75Q=Sso)n%8AnHlQLU*%-@VWvYW``>XJONC3#TKD(*+hqv~m`55--nJXSZ6 zhhK-E%Fj!WZ;R(;t;<96LOrIq=Yf=)q66kP^w)=Uw=Nvr`d}TRuqih$%bCY6d=9Cm;W?rVV&8y1 z!OwWP&3n%B83j_#l}_K3(aL9H6Zvp{lCUW^KV#P;pPiUbr-po1A@=3yLt@X_@=Z6ImVvS z-I{T%L|enT2R7yA%GbaLKk6%H` z)~}dOpOlr#V|5dG__g@8{2blt^3d^ah08tzO9-J3E5npy*mNSpQyi9d@XkMttR#_frgOvHw>66kP^w)=Uw=NtjVbkzF z2R7yA<-lKx=OyLxm}b|H)T6Ik9;bnn8>B}SceL`D&_o`bmn3Y;&C9DU56#O%E)UHM z_2g>H<4%zBl63l{%vK)ro5+Lnl7$WPapKm;k-rwtOWx(7d7++q!}53#q^y=spOlr# zV|5dG_;si#KQHeykHG#?d3y2wLOrp@^0*14JTKjYPfB~xUmw!lx^Q&sgLR0)rrf-o z>ie}3 zQhBUyA`ia~&C1V9i)O|1vdHD3d7+-kTOMmb%CFKr_@uN4{q-T;tqVuDJ~%H?*p!=> zE0{-MUUDuE%?tJHJC?^sAf@VE)9I5kT6s)pA`iw-!iMwX#LY`h^Wu7}cX_BD)YFRl z0!UdWojxhEmB;+e$RoRnJQkGX5uR53zK?qPJsbZEAZ49&`lPH>9;=(kgY)7wFF!AR zTNKaBD3^!kg?j3J%i}?ivRXQQQrd(5`jGC{g`-;^oR27M%IzGVk%tvn_)k%zxNU{h{=3~O1uKIXYRv_7b(Kh(T{ly%aRiaT3*%x@wO z&Px_H<@T3HnMYuM$+|o=FVr(1Sst%}lnv79ld@8Itd{OSe=!-KSGw=b@OQWax<6kn ztZx|PoJK)=2IOe}8IZMz`&F}zp8;{7D<{9OoE`%yUrTSZ&h$?~`W;uW&tU%yQcr=D zq2E}4w{{%e8e+}j$f;b-3ayH37CJ-wlxjvjA^+Ebl%>+?lX8m2eXevD-!Yg+dJ}of zXkDDg@RB^JhrYFO?gUaMNT*NAUCLwWX5^9IL>^vcaUSuKJgBD?_Zj8!iFEp;e6Bn; zY(^g8mgVPVR!JVSO7fr{{m$xfJV?1rI(<@xfLtfLNO$w$7@U{*Ch`ciDXvGRBoFF& z#cln)|Om-1M;8F}P4kw>_y zxE|j0;{Ansc)g8(BuF_?I(ew;)en{zeNu*i z{`!#a)`ery`q)Gsk+!HuPyC&yo9&t{R+0zxxZ=(NDR)SZEAA=E5lf(RRgoq)YOkUQpa_KUyBUfUG%vQa)E6 z8#W`4aO?8xV?{|GD@yX9o>knBlt(NgmWw ziu({qc|&?!aZgbm=Wa$G=}qLZsw9uvGmH0I>hYg#{IfvH9n$HOa+mU0x*2)oH<3rY zLvcN#C3#Sf{9<{G2PuD$PM?&|mB)t7$Rk`?etoQE9(abCe?yh`fTtqvAK*K9518A$ zUoDs2K+06<^h+56`fEgbMJ@jhaGn2mfVocM+MbkM8pNfLmj(IETOMpdM{Roe&wq!- zC>Z>k=_%y$+-5xQ=&q?Y#b~n{e_uNdr2HLZ{;z|~Yf?+oPXQ@^06C7?Aluutw)Soy zr60)loj|tFQv0=Pzg6uIsJ*7r`u7GY5s>{yfb2h8?Ki0XcC|mE_Q`Fme*&cZ5oG@q z$o>mK*7Z)1b?sPXdQXt;TZ0_$&LCwZ$o_|ew4Va?VVhQ>6R9 zQ$E@ApMOrlj$=t;?NBmgck4F_q$EJ*m)7=RoSgdS&@ZF*57lo&8GG++T$A=R|J#9- zW2M{o1N!*;Rt9!e2+G{TRXx1CY%cC)eZC8uk9J#{z5__x1EkNAzEJun(tnoTrnlMm z04al|H~eiK{f4mpy`O%5PI=^1ubiUDDb&w=4DD||jscm&InwtWVEW-8r69feK+`*d zwC^o_sB}Mv5m*PzVJ3d3Ebwe_lv||-fA2Ud`#9_~YTs$7*&hrt zzKyY`KgI;?UxqJkPohtBnAx=7!TQ8^H2rLlGFSTFr9UVAE$JUh-ypqeC&l#tuIxxZ zW*RXEVMk!hG-8rjF)w;;ZF^XZg6Sj7*P};TF0X;?TQ||x>oAb|B_QQe>5oazO0S!2 z`{C{&?FSxX_FIG0@0n`*>%T$j$Dd&BCxFzuonrg-t|0XrPPP62agh3y)6Cw!M`dHq zY0P=F(dMUw*>pSI^us~!bJL|i15%!q{)=>Pn(WWAF`N(5-w9`%{YfD84(Hn#hJw_W zgOsPG|K$Q3!~G!JyIg2v*cqh02BZYX;GJXh7Q4u7PX4pmTmrJsvmnRtzVw|gw)UMt zwx23JA^q9QYz&`+Y=8Z7vws7me#~EN43~h^>*iW}caZw?*Vq`=fz%Ja&c<*CNWFHR z*$2lE(HK%_qs^Vyo6R#I^)~Zu41GcBXM>b;r2j*DMtYl@Yz#v{+SjF(BS?MW-)s!a zKJ^J^4E;drf4;-Ua63r-z&p)8IEJ{!kVPA9*4$+_--Fb5{)dfWEJ*z} zkaD~9x1{H#?|iR~VIoNT{q8gS13>C49=0)j22%gyQfp6w)cZYVW7rR*e*5D#hLs@o zMAqzsV@PQXd9=~yrzgy&+cMJ+2mSp)`ZFNqS?Rw>_nwsfGuj_O`a5BT*`EYb@A9IJ zVP}x~^B`rV^qXF`F+2&fz0a#QhLIrk&p?WOPhjhY?+Iivj`+XLX21WK%~+7RPXck6 z^IEPlJp@v^gY;SIs{mgywe9@6+3pR}*TEotty^vS29VP74f9pegWrkX(*I6$so(Iq zb`D7lvU7e4q|Xc(`N;a$tu=prLAGrRGTuuco4y*Pd;pfqJ%$*ePps_+kkaB)>)R2e zue(1peJMzJ3iN&P@3*{b*C$Ek8prWI`nk1F0x8>mA^V>E+dN(T>zRz~ldz|xb-o}Y zUz`1(LCWJG$M&)GZ>2Z;#`5a~`uXrZ@?^^=FaJ6C%dWTf&p=AsA58bZ*VDWBeL?aM zc<&VWP9b$C%z>{&_rYG&Z3GL5!TXQVpUm%ZAmwi9Y^VGTvj3LtOb`CPaRzZXh6vhX zKbxOhLCPD_gV%F;*oS{HyWK&`VbX(kq4RK$Q`=|C?nY-9s8gLY}yMKR~}eGW)jBt2-CgI%PV*_{AV=1C9M$vfZj4Dq*f z)qYZQv!4Yrj{h6No!Tb+@3Ak_-{_uc>ms85IgB&e!t7rKDQ#Pt9;{y+_F-+`9i$vq z#x4cBgtpI=-HpyJQ0J`TCpgcoEZ(Ic!kwBVSlfgBLw~YyXVgE(^&z`u>c3L`-!9WX zivEc%7H=jm{2b>0 zQ0JT#P$x3f!H!K4ka`T{d*6ig6lm80m;3JprgrJ??T#yS>c+^ay2?FH#u46rdD4|0ru zmwq2e`&I*O%m;(KUvYu-D?zp|-MWi^KjR0GIwga#P;z2H425i7BOoOP(q}??3go?z zjF=M(p#Pil)jj;*`i+3Ji-DAcm=ZIf)$$Pkx0N44EzgC6rfT+o)t(t_wK{Kz&CP=# z>z0$=Y#W=St{~<2U^8%z^gPJ98n~^^%~X*3Ss-Nv$huZXY;N`fsUHGTh7RrG*Y8G< z_nOy8KV?ga98^xN!UdN+{m{Xp6;2KgKR;T=ssbSH~9 zXXh^d@9nPyDF^P>#sA&?%R$OFd*JUXgWLbk^kpFHLCIq-Nw1SJ46+tc>2Z+zQBryu z4DLsH%zbYR{=Yl7;i%;j+S79D3o@T$K<-Biq<;Z2uboC{EA2XPl3U)S9blM9Yd1)S}uu^Huj4^#(fgx z*ng6K&?p=0bs*Q_f26+;(tgMNY^;9*xeo7<{y50?*AK9?OTnru^$X_>=#JC5@h@B<8AC8g48K#jVUYUL5|()s{J42 z*rU?pViL3(+~uD?lc>R%|G|Fmju)xJEw|(ZtHsqI^LzzlE!rJn`cWYBybWY6K9v5A z+V?%uYH=mVT09~BC6N9;Jj!a(XOij1fjp+3C;k5q*J~NoItSYC;M?z`EJCeay&RKM zZ5(@@pfv&x?KWNr+D2ow_wn3u8iOC$=2^Zkn)Z6&rdbKTbpcb8?VLm1=jDFnO2wSAbsq2k=5lwkUAwHzo`blw#G-5@f-fL^?MJb zd?WqyOSBeeHTuoUZ@$EDqKx0H`dxUb`MnxsZnG~pzt4cwDWQ6+Lj(-&JM+r;jbCB? z`ph=J!$A5Na;5n_9;8l*%WqOlgSN);w}o*vr?0rpR&Uy6nrMtbK41@F?1?_j0>~9r@ zYBydZrQ?Xp?GOGzdF?aL^g}_m9|clQ09{@w<&{xhIptL-$!peTBoRDzJ*{3*kT!9UK9XRtUYX6vD=ojzD9+0ueZC3O=cgd^ zI(EM4XMk+~BS^Uvba`czS5A2qlvikr;=EREMqU~DeNA!R1sV5qka_(GGOsglF#ST1 z?Q=lN^`OfuiujZ`NSh=`AL)|3yt=0M$E^H*q&Q!J^!YPLpKTXdUVjFuUj?##AxOC$ zba~~JS3!A&dRbl(FgT9`HY2Z`{C=-E&2F@~?Lp?z9b~<(k$#KX{{d1S23=lp#HS=1 z^03bm@)#&2BxE|H(PApN$v+5Fak&Tm?Nvn76O>o;E4QT01sex`x+`?2(I)K1@d`SrFe zu5YxA-|#J#&q$Cm2BhC-rN63n`VGS$C0gQlY8k)Yt>$+tkTMjc-`l0%r*`^{%Wo32 z-|5}f?q$O7WOOP$$L7_y?r-LMr`yf<{vhRs#eo_(jhZSQaF=k<0qw|JG^8|N}2yTd@r&PyBnMN0Zb0{!B$y9A`{`*>r&cuBwU zfqn_uT?bOmUEbI))zELC|Ji0T&@U~!XF$q>&o=hUHuTebxIn+W>{>r({XToKv0nlG zD4{;a2xxx?x{n_}7w}U$-=UYx&vqbXHORG8oilwL$YbX5(jWYn*}nu*zLxH4rRPJnMfWkI2jB_Yjb>0c0NAy<+-VAoI9H`rvg(!Zd4zj3 zuA9<&q~+%c`91MJmd9T~%7-BH_+I+LRhGvCAZ4|5<`G3)N?c5q( zygr%uuGyUgQqBTtccr%92=cz$l=sYT8b~=Gq}{dJek;g(0w=w1cISYUi$L1lsO@)v zyr(ej1G7tll*>Wd-Kyo*1fMR2d}mE zT|m}r6i7J~q@M-S`Tr#5nvxc?pdI6EpU(cq8qUh!JMwqg#}@AikkaZCo0o1NW$C9D z|7DQ!opk0=Q2fwVI@W^0Jl6h39+A(??;#*%1ITf2_qpk3fm|P#NZ)3i+3yQdPL$3( z;*87peMF7cb*4seZSC^w;J)^VbbDZ#YH_&@loG<~OU1zo_~h57OWB>&@Tmp!1iI zzf_68Oc{UP57uuhkp3?H(fnNpI)7RD%a{0DRmNXd{XPQeuir1`Z+p=B3k}pd0)ylA zwrHGBHy?5Jy9A`akG!t<*YmywoxiyJB}@DbDB~|&Vf{ve^mlu6^YL z#$R6jTDLHNC$%zv=YaI*KVNk-j?a8Pn(R>Fb(mc8ycPWV&s)v3b)AInggNq+kCr@d zh1~q_>~^p?Ye7nzj;0qhhMz(9@1^JGg3o7U5GPS>_A^1sZ0W)8iR4T2qwd7zm)x^B zzX;+nzqI^Sb~671LDq%sl-)u4nB?;Ff6KV>8O2a9Oaa;FG_V=iv6t!f zAf+G37^Qz>Bnn^W;^e`$B>u(4_fz4Ted1pMdK z_UvG@eHCP`Z-dPBPurM&8A!PXESGCqxn|YgV_UPoHDdjTZD)G>ovnW#kkW70^10>U zFQ&GgcQf0)LFRTa$lSi%-SnS8O6xt!=jMg2juEwA0a9wB*8f(Ja{egme-%i%ZhzDL zePUV3GimS{9%t<_kaC6e;Imh8*o6)=yC_IGPrC1S1pEe`T};6~ak$z44WzsyJ!qGO zT|wLXO)$HoL4R(lnt4_FzH|Y0{&(^x+rCQO32VvM6?+%&3pwozp^4^iSCH}t>1?OG zsePft)}{yd!SI%f`>w^M?!?7yu}^W_F#K>IOexMSM_Jr$Cs`hBrwjq<f*RVvw1J@%Hj-zY4Li zd^f6nE@i&*e=*;`fb755T#I=)NS%_GZ!cmo!eFqb-fq7=zghXpU1hPp0O@z!)fVeI zkor#`Yr4xdrq_k}{f=tSjWej@PbT|)V#tM(09mV4LvGLd;~#+BhPK*x{B8|KuCrKE zK*~`!n0_`$d0P70(mw|o=g%T$jw=6XKdq9qbl2vYb<>qZ?pGk#5TMuvg&$7ml zze6SRG*wqKy_i$K=7!!2F?`$Q>_`mKMn zeoH_~7NkE)3^`L0AbqF6;QP%P7=z2Rl-}RX&sHF1C`ccZq@Sqvq_#f+GM_i3x46yv zbp$ONtaIg)Q$B@~eA2&>PegtWli$f8^SM&`e6?q^{Y#Mfv|VI&!$8XKK$lNwsMRL| z(pL<$`tEkWwAFKT*ZU4*dmd_m^?Op{bZ-XwMr1D8CpDbu= z&c4%JKtA|-z^3PHvH3a(q|Cj;Vm$-07H>*l3sPp?*%&*o*xvS5i!jJOQIPi~<6!W3 zSi5`q<6-GKa(Y&=egHZC4tH5jxBtV|^IIVAYknjBSCH{G8FHj;P$Dzc;hvruSDjmj7+0Fm{gnan)eRW2TP;DH9&I z8l3^M4zobk;U$p!;0Mz8e6p*@&k&}AY+nkpF5iOuETHXj)9XOCw|UC^bptsk{Xok0 zAoCdw(k>3No-cv?OyH2GO`rH|SO0qqb3nH5{#;kTzE^?#zQZ%p7d>z7onPqcf6pNT z(tZr+`v*C$Q$gl&9!R+iWF8fr?U^?IKgK!hk9(5udj5V8!JM54TQ?_}mDXp%i{|4L zkp1e0@b7wc@vn2{!JgX^^fip@x6b!99=?_YedVn0_Ai^SeL>&X0QTwb`^wT@`MGev?W|`fLCzn=k?SwDt8LGS zIgpb5*ASoH@E+b&`=2)t+cNkvObouzr$u+q}c@TR}VWcYU6! zs7{39e6Dgm#@QLycXjPrc)!cD&Y@BWCO{>q_Af?4yrk@FN%*)<3 z{SA=%AK$foatTO%%6qo&%>${AdEeIlb0GEWKD7R<38f>*FIY^}xIAEdPS*mU=sDE>O0iT=1R z+3j7M`!HfKR+O>!Y~l5(c(0lJo8_Yruc}*PJQp|nh54Pn&f+Wr>Enlj?dL=VBtIK*XMilyBo-w9R$)Q4zjk>LHY{%&pQ9VlmDpvgGt%{ zRetUT>Gvs+@|xQH`>@M&KUMycs0$?yM%G*02_XA_3sUML&Acu+S8~0Eqd3=K8}rMk zZw?IoV11(?DW!7}Zcjh%Fkg~h<;5eeN4}K;^-H98|^dpML5!E8al+hr4oK_~! z1meV6cJu2$8Kj&dJ(yp*BtPm-Tz)l27U!2#e%bcse?SNGzaQw&xAK{-{O*<>jGHTo zOWlc!dqqjytm1}47H1Ynxm`NjDJvCsor}9Q&eQMOdD$Cb=Vj&@-oxxYFj-?h9|IYG z$1djEKi^EoJ`(T|k&i5F=;s%Zea`9{=rf}D^OHFG&^Crxv0Cf*AV_&ex*w}I)^>MZ z6Vw&mcTAyw@V6wWJ8|`TbYk&5B@m1E9kW9%-iIJ%+wDzfJLP%E!`!pQmMDm*3Uwy6k3l2Z4+gw9CUTuI<;z?!_{8p}pZx+q>*8 ze<1z&=htP$_q(I853W1vuCC3HGygvC>{U=D@ zIqAVVClEg;`|7CWKNzH+ks$j`2L1ZrH)3k$h7w#)Y4qc^D9)#ey{!Eikn)=J;JV6j z+$Io`kM8!=>5AJU%#EFhF`vge2U3$gX1W09D(mNQKxVWT!Z9+#}wBut8p-AH2adqHm7G5XRYE^9AN8uPmppDNL%`$ ztOObBed)n*g!jeqWwhC6K+4C`gLX046|_Bkkl7s$GEQ*38Q29sucz+B&D(BMipLus zVe7?WKb1$@vSFFW3hDV}Cz4;z|h<^^F&g*@?_&$-o zwmcAJQJktQy^_V1sQMQ5w`tykTUN`>&JMM z-9hGbI50z7ioce>Q{Mf6IK5E z{sQ97EECVgbqt?q{*xzL{JTKL`rBz1|1FUE?1atlN|5@Vr`tTA15&T(#P|>T@u{bk zTb8+%)S@;~z80xV%~#?w%jFJ`zJ8aoT+RlmQws7Q+E+CZW1!XImWEnH5w96;61XvM zin+g-|H#!Ae~#s%Qj;_%;n90KeoQjy;_#o+W}-hO17czVGVu92l_@U z%=Y$5>-z@Ce&yz(;WsAu%MI+(f>o_F{f zc5?AKEsrtqIyfeOGv)st>1?Nb4zj@S6*py|<;=?+kLDC~5Sm+s;1g;(0CydrWcTT9a+x-q!aU(0XF6mGoU- z(l^}4Y^Q*fVSO9>=1cm9&nS)?m+h?}WqQBHzTW=G+5Zfpn}5%76#Cu_8@GR?W&0UO znYC48-!S|7pN&}GL`mPQY+Dboz84H^>>Ed4N|Zh#6<+PTcHJ=#J|<(ki|?2mWPP6l zIj4JUZ9e_?$-V8GBjx*QynkBTe?U?FBiovfi$KbI5!1g0DL+eZzn$q_KsP@b<(m@= zV(0)HM+D?GTnx1DGTrOfGm0E8+l=$A8>eGTu@@_sowm1JVjyLr^s}U2x3ksdWstJX zF17x#aX*l9Imlz`neU)oYyES~??LL@>}K{?f*kv8(w9j0>pjBioy1salLo8% z@EY%U|J>rA-!X1C7RTuB=JU<{EJo}7P2U&foKBFw0HiFG9v*KxW91NwQV>H2s{Ww; zhQ|GV-BXA^cQfi9gKzr1Rxw&0Znghe zvb_bQJaTkn-%Ls0NJ-yw2O0J}DqNH#5RI@z>q>MhTv2UTI@4S+}N!dOLQtnJN_6;3W zJcrqmzIoa9Iou(7LpE=BS) zoefeByxw&C?0GwX{|F5l;GK(wpH*9*`DXi9ko!X(q`zRFsQN^2u(n%3%9abPPaG`m zlW=j=*5^jW0sS~&X`i(EaC_)rom;@@Ld6CBxHl;-Sn4C^;;OArT5&-?E?C;f+uCXp z{j1`Dew>>X2lV>{zPA%WpWx@2)SWO6Uwh9ex$ebShGTnVk@=ekQXZBb)0iiM?Efd} z!RzgKNnGkqT---X;-(ZgyV&9mxWnS^2Xb6&r`)Kxk4yLWm6;d|pEJOPVeoo9g}BMA z_0NEmFQfj9r}2fJH2-^pls7e= z)-fAjFiv=IaUAMST$~o?7RL$0&u|#!6sN^f7cdX&x#%V`!0OXRJjL^zX;}zd!@|4KYi@}yu}#+*ZX|h#1SX> zH-W|<)OcJ^{>%Kl4^qayVmkY!lxK$hYdMG8`}eYwf&MPfg!=9LZ}amvkUmy|%geNT{f3qaQ4X^_uYRp-?sGN?Hv2U2(R z#_IW5kYkKVPl6mvS~}_X0~xyja!y0P*YAmoF)<;gKs-k4WkCKubxtgRo!EbzF#__h zRm4Dk>pmf!q+JT+>}9|@Felxy!0p@e`z!nT&+q22rglMs|J!Tn|CPU(=JGa>@+`>9&PTQWbHO))?0@Lm zTK{*?F9xYM|G3s)Pt_pT)1hEBc)Ii}K(3b;LHX9B@S{9k|1NJLC!%| z%!7D57C&TZ`(_wq&QXxHjEhN-HB3t7c+t+^Z_qFxd*OvT0cvk+ux-TYF^XEaz zn;`4`E69Cj|AOh`K2stn1i2Re0n*P?Ut644K(33=KyGjLjcxxs$a%dF3XM^;c0@?5HAlJd8AlK^9?``ew0dgH24{}ZaQTiPq*TXW9>)<1hPhs|0Z~E3C z`|Sd9J?#t9?^uv=CWDNd0GZ#PK;}0aq$~iL-~Ax{?!3YLjsofTFpz$a0qOU2kbeIJ z((i1LeiwlByBMTA4AL*9fVE2rO|X3}0&=cnAm=(Ero;@$xy?y0fSk+F5xTYksV6|j zPJy;>jP&=7@J9o^K}hDmx>oK}k?{~DycDI-C~rGycS5(Q}!FNvLKB6d=~?w0SzLHhX~~Vs1DV^q zAme-sGESe?b^dXxSEcDgK(-GDX}=dpIRs?x!S}|QwFB+m#xnbilsfzHMIU7N(&G2V zQH*Oiw$oP_|1XtDmBl#|q+A8kPeI$+pE4R`jJWjRGv|5a5ov3FMu5J(^x)t14ShV& z&m$opX)xBo`pp9=SeA!t~&?qIuYbwf$(2a-Orp7hu~= zws{VJVs(okR!;3-%D#Co^BWv@4EFxBa5Jqxbti7zqb@HVcMQHc?%bB-KaM!eBMH(bt@v4O&x_vCcFi6J?eq5?{A02A*+6eTIyP0C zO|?gq%c~&eOX<~HS*O0|PMTn_;)9G35qXjQ(5Om<|Ey_Y{z0I0xkQ z@RY%3#~2yK%z?BmfE;&da`8Gyf6??h3~gh6w*e_Pf%JI~NS{xE%;R;Cu_;l+p~OMj zCPCV!OX9ECjQ9olJ$hSwbG3g?6wQ$AOf;fb@G8$oYF1B@?!?t4b5(I&(yEKMpZVJw zq?{z3?UcJzm$#$`;|?f^OWlc!JK*Z#xCO;cD$X5>yG}aWDL*T2#^AJOv#Qv6d z8l=1~owZ4-PZVSxanRmVbn(w)Yk$Rg4BJbO8%~cLV7|`=+5ZcWb5L=h=?8%n#>&8V z(Z1jfYVezc9c>oMzUOGuxh+@HZ+M_zM0S4#Dfb5Y70{3UL&w?JA|P{%f!v+|?bvyX zKh`+>R^epm#?};bigocp7W)>EexC$ciyuJ7+v;FjkNbnv4+q&k6{P(vkjJN%G1G&` z&NOnQWI^`HODEZvWMA)iU59{nf5QF-(JYK<3_3P77S|p-)N)t?Qt}|<{seNLYCG0) zJr<-KFFpEuyN-Am!Bx|Q1%0iH_g2#s>^Q^`1 z91N@Us>ZbPzhB2~PF#)$&MVF>G}VsTvAD%J6QtZCo$ZvKAbkX5E-Dj~+nl(V*^-!1 z#mp+k2a4JGXv=}^l+lV=?T@QX!?+?XY`zm{PaI=?o&YKDNiXd)9(}wiW_t)oIYWAN zXZ!~0m{t)!uNZ1M$SWLYb_0($yVF3r##3t6*|Ef26`z~9Zmvie?Q3n{{}gRBTj9)PU%)QZ+VP|bt-`D>z!!ziHK2tkZOmF&+RJ<2jIZ%1hrRVeR{YeoT-t z{{k}R-$2%Bo%C=riv#sJ7Q(Y^sZc1C!rmCSfm6cYTH1dtjuskjXDQBGH@@nq2sp#Z2(>W%hJ{k03 z-dQmx=EZ{OoosgWNqaIY-#49Wu@-@B`zOd6JuQ6=$Xb0M{dI&0*`u~ZRfT~@L0s}2u9(m zx@VPFgYPXB9jju^{A1^M)g^@S#*>!ct{2$&*3C5iOOUd|g{CvV$l@N}zIf$tL4GZp zc`c{6D&7X01llhyu_@XHn+)2YF0m=v2AcxfTisC{E4Zy1&q=nJY-?~-n?YXq&z5Ht zq#PkVXqSLpLfccayTjR)>@V|Rn^oIqvTc2_#VFmkvapS)?E;W;q4a%bnLZNay4mhB z(+>oxPnBL5Y2)?Ad2@?lUGY7>PM&{uiP`ngTKJy{pR|u^jmAN)zZ4j~!hBr^QvM~q z<7``_bs+mb4q{b#?`V6~9NTWOyCXI}cdV!>iXE;R}C9BxpDcBd~BMUO0 z&q2yp(zm?QV&0b0{sK~h^D+uCk~i7Dmj)@1NDta2V8=Ydh@Vq?LH2Fa)<0-J5B6bg zkAjpVq*pYn@S35%LHn%yhcK>$>{9A?hxF>Mt-P+o+If{@u)oFa+`m@+`m-L_SWV9Y zDIZ9$=-A5ZIHk4MaTqwXZKCu#YCu~X+fewRi~xVS)_nE3&T2Ohr0fQ=4%Hp;+}0S| zr(^0r2K}a}Jtg}C=51`Bl>Je#zZLr#{bfPQTIm&?D!oo)tG!OcI(VJtcF6LH#$dg2 z?JVaL;bYcc&BuI@^04%Z`Ziwun)rs>Ts^88`C9QQ3riG^eNECw#IgxCx&8sTO9wU z+3~NUrj=KNI@h4BW+?pGJ#c&j%7m=w(GKrB+Iv05g2UQ+J%-j6y5<$XAur^FxD9#v z^VbgZ*VgMet!<*BrV?@5c{OA0JXJGIv8FYPwZXH5wM%Lu!}qQC_la%qtMd-V>pIkl ztQ%70^}zR+i;m4YcBgStsOZ$n>oh%tx_9(CEomFGSRD|nJ;sHY_??dm9P{huc1l!7 zLRiK2{-~mRrPqCGbFT}=)&+TXnO2>s>w`R}a_x0S?w!1jFSkwb95J4KdbRU7HPj(iUDw>J8_^|EgSm3!=)SzpI}EQkF%BmcEpQyh!wS{@++cpDXugJa z$#>3GXIB*H+u})(y3)c&5(lgIB%m+H|S(x=gRanA%`W`2Uzj zpYOo#juklH!S-&D5}fDi9;h?Ul|3-F9*tv5xSZOq#9X{s=N+Y3uD`!VI#zfcaek?b zv_);+_Ig#k>V*m&^6hd}S^H%>{4O5qnBoN^gng>D)|~%;t;XLB!fU1*bJ4m(Zh>`I zU57P29WSh1x2~O^58tZuHsE!m{8amE9P_F*?(C+%jT-0cya%0K#}*C88)q}~ojPw0 zUd1*zF5#HuY)*W)&g=eOop;0;Hdl@DuwP-Ha(46Iuk#k;)nHeP{RR7MaDR5TGd`&E zKEvzP)8*4&FYPd1?B}@7!~R`x>xJj29Y3n`&c*9r8q3cg)_GS!uQ*Np{jnA2{XW{i zz^fsjGB&TQ#rnmo!KO#09Sg8u^%zr|>zb`;7~hs3*Li#6)k87cbZg~x8`j?IHm!4( zzj^4!_6OKpjn^pHkrh=fyeh0!-Y=*d(te*_(>r#vj7uy-b`-z=`V4$Zs{L#rapg?0O8 zL!DRqW1aWAX;!E0@&5^UO_E;GttFoG@0{oqua1SVZ`(1o%(2$brw#I{^g52g@y=hn z*pF}w>S48NIA+%M=e1_Z`(j*ca%_3zWc$!)jA2CCeTa$I^=*S|k9sfg&Ke$UoLTs= z<4gPCdTBVm@H%^a>w2$GWxaQ)=IV0%|9iY{m;N%^YueO%&q}ZBUFr26vqhmtzCKr* z<*z8(@tQRp+7@KKc%Nyg0gpe!L-pQ8 z)ppLA1-2=<=5XuvKWN*xliB&~R^@dY+sR*_-R5@ASLZrr+b7z^{k1Wyi&wV<`)0#d zoR9jo_4*C#>Gi{!tS{8&yXI=LI1|NrCbIK-2b|a2<2caHtDS~3KhNttr!DV{^BS%v zUTzz!_K)j0N8xzU1?PWvTxb1v-lE<+0xx&0h~xj$1Nx?pM>qDW_wK~Y?b~(RwDEdQ zS?={5_9VUo@tEgd!5~L}UGh9z!*e*+F0L{7KD=g3C{fL8p1BVf?i`!=o%{Og=*o;L$) zC@}bn4t@qButFQXk4QY#G&LLj+u`#dvu!Hd%d;5D9 z*~TA5q5X64v}O_inhW#N6W0Mf$96=$I(R+j))l(tx@7CRx5D=#sy+W+m-gud=BT2+ z%B#n5t$tXwS3kFNp*r6&*FM`eR#)57YxAzNwpel4*Y#}Wb@)p6%mRL@{bOY-{;i~h zJBIDDSG~74UhWunIR2l+%N@h2`8%4!T6>*`c5LXA-@D#xzfWVIUikkwyj-7(a62!I zV{mwE$O~h9;b}bz^?5tqw<(#6(WC0UL-680MV7Wt!?v^3?z3B^*A3Sv-Nu5*tJ~1d z2|MOZ!7*<_*<;=c*1vm|*L`{j^VAV@)WPdM*Po$S>D-?^q28N~*SYQ(&g(o}2Y1JH zaCgM(KC~w0uA6Ic&4_hebfr>Jjb{PowvYI~n}h4aR+#g;t=oD%XW)1`wFCCQKKPE} z7G71NO}tY3M;2qZ%fNV%Q0PY zZtZ__a=n*6CE$x|4acnxFWZRdCk{Uqp;lf9Yaq0wO%~tWiuwBV)`*MkL)&F5+BEap z3~d>y=z-(*bUbH1wi}M$U2(16$+N3j`0$UZcn^T%x_@5ukI6hQ;aUdAd;eNy8s3xm z#}*t@#s=Ptxa$I}^@?`V>>nLH>|o@zly46rPo){5PX)oh8%N4y*Cjrcb@sJxECy__wL8b#jUPx}KgB-4_sAja0~^18s?as3y??}eM;yOO-#^+p1;-ei zUwh*G+7sv3oIkdYmWgaLtF`t54V*rjchI+wdKyPQ$vR4bPRUEyK26 zExq>G-X7aq1-7HfKUUY_H{f|skZUl^jSzo5j{sXY^IBKj;M;L6`>(E5Ue~c5{QEgw z$8;)$a=OQ{i8a}OC9a!ZY+RGSHSedtRPWt_mz(#^c^?pEUViNMIKE&XncEic-*HTs z-UY{o8n4S&ZTyK+6V~F|V#rSK- z)D$}9-HcYn{Pn*a=h^9jePC`4?sMRrvK;p;rWd{U&b#B#9-X^;lkmFT?U(-Xz5|Z; zIOb!H>ZUc`=Ri5Vi8bB5i||@5`xf~B-@0`7-j`m{qm9?&=A!HANEHfQ&HWSSknT8s zbsyTTU|#L|hHG^}&+gufc)9gtV{eDCx5d~ohtn|jzExgd>{ETeD!wZBuk*$4~}TiMj9DN!O8E@?IkDXJMW?O|$)sYb?^xZ=+*{fBk9K)K%z*{zI)Fx)e!b zB0q)0=XMVcF4|6obFv=W!w+rT_Ru5tw-9*mleV>ZWO}Og zomwUqKl@2x`$Kr;@hX>(^A&omIIjWhd)~%*RX$P1?hhN=MIJ4-<2YkSZEWZAAMo(T zwPGDNmG|<+R*U#1`pv-ha^s!)&yDk%TBfeCH!Rm|8UMWfwx0f%Hr90%{-40>w}kT% zdZsu&k1+|w3ieGtRcseUWAg5e>la%##9u>hJ^Ax?^~QGVH6QfDJSy>u-M6uww?^as zjj^zAVWRP`0KMwJ;KVt*^&7&^$7D1h?K|-)Pv&c!F5+C zQ;%rLdiU4o`5XJIEVGUy$82nuQO*U_p;TC};g1gX;&{!%>wi+O@QUK`asA}V)GPLM zv0W5)*)sLYl&M$vnvKU7f77<*kbkLge6|0?vq*SN#p{1EzD$|%B^5guH&bSO@q0GT zJ6~peu`=UJb>lbG@HsK^FBLv_;XO9k8-P~~uNioy@p8we75IMvugw*%`|u0J^OM51 z*dvxh&`;jOF&X0r-Ea z%>L$%Kg|EPjz8{vF#Pe2>&bhr!L9h3a_1!{iqW~p$$r?`3E)PB$FUA8$pu7^!s@0Qw?yWUM6 zZ@G-exJ!lgNn!g#c(FctaC7V9tu7u9>%(V4OC?^WK71CnR33V5<8eoi+}LjYeA_l) z`Nren@op5hyKAe`7}Qs+DbAbq9e%^caUw_9wp5uo+}{>qd%69MTB+)W%H zb`>kdZ@#v8?~1RAOU1?Fd~v3DqBus}Q4EV!V&N}a7<;BOuIg0m~_=y-&Ub~1B#Cc*y%!?bunza^Zs5o9cPfUx?iQkE} zA6vgY#L41O%4eQ*SGUQZnEf!Zp!OHVJHab@f|6S5C@1M(Gx#=+s3%}VZt2O37FTNly z6&H*1#EZm)I8GcP4iMXkU%a9G#rwpY#aZGsae}zNxQjSQ>?;1W+Wf8+b7EG^h-vX+ z@hmYejuH0|BVs#o{p+fa_=5O=c&j)^oFPsTM~M-!R;(1iStbACbK-sC0x>C05%(2$ z6bFd4;xDh6--5VCd`^5+TrAEPXNo6_87Vi`BWpSx^t9Y$AOPnqq zC&t96*k5cXe)VsQ^OpF6_^9{~F)hv&&l8UmM~K^q^eiFb+%#F^s%$KKn($5qwo<0ol>R0|APG39lTf+-dlpkfNe z+|aZn*p_LVwgJJ+G?{ir@^YC>N`e&!ESO@!0V|}6I%utd?drIT7_`dBBBnnpJF8s{ zi0mj8Q$ZaSHI)MY=iKw0yxh*2+k)(V_VeHH`SLvXp68yI@A;l{&pmf$Y7;}mrNsHf zD&jGm$Mw7%6D{H9mhN~w(vfIx>Fh{EdJ_0mM0s{?TX$EqIo2t9<&hofXl;(HhfLf! zc8o;)D_uwpClcY7=vW4y5v^<1Hp{%4TVw6`29ngYN4mPg>mvC53Z%wWYOG^@xGmO- z-(4O%hwqt=admY|_}tdEHvDFTsHwRuV#iv#8e{Dd%UZVZvf7&3m2I6Z;kM>Pdviy) zqqDgy(qdUn_@~3(0(D@Ly0+G;U3l5bv2!aD;da}ytgFR0MNM}H^104(5|?zN>N5Y@ z+9qUmho~{8E$D1_DmSk@*n8!g4@FuM&6h_KwTVO=zh5VUy$j><<`t2IN)oThGd(TM z?~llYPH6s&>l(Z5wn%d@+;SbhGskPLY;igTp7}V=)WuZ34T(tm>R2MGF21=e*tVW zY_E&pOlOO@a9nfwg65SSjd2+aX|!%}XUDo`DP7Tpi<;4zl_+C@?98Q+8}L0MSqmqA zPTNIZy=@G(0 zJ)8rl-cL@{$fiPa2hKU8V5yv-?$Spq;1tn>t1oX@tV$m1pC8Cv(E8Pg(#Xn=csSM- zUegv49TUcb<5(3+;w#h#5m^b8xN2gq3p={H;}LNwGz%7WceEs8ogK|i_ljk*?vqa4 zs%wXtK#o}a;)p(jk)_U5PpAdv5Ictr#1Jm;~ReuiFHfGCfP`*?&oAY#ilF9|1FqLD8A z8)vvy#hvoPow6)B7deMN!O@aPBHG!ij?>KNa>P={L77!SJ$6#gmNNV!Yn=IT8?Rg{ zV_1%xF`*D=xvyIg?v^97YP?-C<~a8*96#%f*p{|%SC@EEwnG+o8H%GP8^@Jn{q+U( zP4l8~BHX4%$#e2LHBZFVjG(59pN*dnw_M*Hi*pJYMO~M6x39qr($EoXLxFPAK*1Q7 zN8%c$jh(yzdeytmJki-LLsxtrXUAp)Nu-I-xzFNX~c76XL5b zB5w%TFQ0HumZYO@zw|q1{)TqDGoDawz8<-%W1e2p+1lL}S&UVIcCy%v>o`s^J3WOf zlt|tc<$3%IUb40_Qk?ng4>+3am)h1=F*1Hu9*RmF%i65$Sku|v(YjdP@l~BJM|lgv zb{Fd5WcV1AxEo-aRx|5&dAvj&ikPdtdT#u!?6!|c^%TtVGUM8KJlxwHX}1%-&0T8xtQsq`wrg^pXEH@yq-KlLCX`d#Rl8zA zLj#+0&ZLx;jf<-BI$O?MdI^J$ZSBQx_>TLdp-WC`;uZLTk>vEz%j3t+(nE-QaK`CR zR8ikele!ni)=PVFM#h?40mar}C8z>TtQ;@V@gzP}sC#4)RtlnKLe16aa@vJYa2?zm z_?;733hquzJJs3+V+HwfMsZ?Q-bU5x=Nr7&K%UZz zS4ZNVb+Pp^IRum=A7sn97{kh6d16rnw-#~xgz{AG_sTZNRgk{~q2 z;@JnkQ7+Fp$)ClQe6}5Xdfhs94*%kj^dj#_a7C~av%Rdtg30IQB3vw*aIT?imGdb4 z%y|28xg*23kx_csnRV@M)aI&5$IZAKwmHkCRpaN^MW93CchmFHU=?>2XJujy)u z$DHLIehb}6k&C~{2`PCVk&}RbJ}P-UV#`$w-QOIKt&1kQxIrLRNJY368wPrC>6CR& z{;K4bXt<*z(k32~G2PG+OT?TNo@jM6YA=Gd#P?H>V~bNSeVK?%)V1Q-F5Zbd!>#b2 zGv~p3YCKGbmuute@Pr-jif|s>BFnt2JJ!|;ujB5q9U3_wJF9=uIUbqn*2>@bgk1(6`Oe6iWrpszQZ}j z>Lc8S-2kOsv+2yxQIwOPSc3F#MP3>(B9XMRk*&T1e-pNYrZOE#mbn1$j zoX(bGL`CA`$>L9CHF!4ZidZs-gEh@dYZqR&>Y&`Qr6N|B*K|b^i!g%mA{_}%UZT5*2c}J=B4o9+smbYbsKc{o1NUXRP8*i8dJ&o z%`B7kn{-`p;bnD5nm@e;yDDL|+|%W)#AX-LS1!YIl}>WnaosUB*C(*Kh7GuIS7KaV z3wbR(o}g-Lo2aT^Jy$*@S(7rZ$F=fu)Fz9T%WXev87t((PV-X7Nei76$KOv< zhc;urE2ci*a$ocN<7?!;Qe0&-R=^Uu@#bjdMjumUA(tFk(-Os)HR>0Pr%L_hN7b}+ zW6!7Ec)@rBzK*;*F(0+y2Aqhk?Hz9ctK&HG^op9+Sl1y4#rxh`6YEk7GC8r0yZo|R zCvJ{Cx~3D`cH`%3aeh_JtYz}9-es+xdnHma?>KjPYuSWwlr39}+O~Ddaj9ZVj%T@7 zdG*mXcIQ}-%Aje!0;k0fkE@Y4yKy-aF7jcNMy?w_FKf|!1xmR8h?;O>VMptD5-Tpg zdTdQRg0VfZQnGxfS>lgJ)U1&YAGPblu{OEmGFirQ|4db5r?Wp(R5KNA40p&WX>qLM z;B4gJ6YqO_%?;sL0!ve=>y`hToR_RtJ(?pf8dEyYMzUDUFvZ1xI0h{Yx7Oi#UpHR{ zLGu*|$~wn8e^&}wu@b6wlqpv&#Uz)hjKmSsYSv;#S=h18X{7E>IodI~)vm#94Z8&L zG$qcce*v?{`4jqHp8U9;%j+U*!&uzw$#ZP77qxoMb1U?;C001IZ(V0gw_N?m2W{+_ zI@7QF5+~xEI^xcth0aWHJ@QC|;|ZOM@p30%8p~?1|9oiL1al6?BWq(lT&tJJe$wqF zAfsTlQ`+mg9+!W#tOmE?&bSQg)lqb8myI>hp;kbae?)nW9q*J&SUhFOwYc1(#`6A9 z^N@}B5WH|*414~q3$ZPqz)Xc6DAql^JL`LlEPoB!FW)@yT=6UAYnAbv6(Z}wa*VQg z2deB<7HZ-wv&NpPoZDwJOMQJ;N6Ko}j_tg?zAVIV%W670v3!NA@of34(oz6z3HDRTBS?vUW`o6yIv~J$NFdiUbL-x>%o z8oC<`0X_4nH^sOLHCdLx(C3ravcv+s4^#)qay&4q7h!VMS=%LVxsr*`$dtxd%XJIX zUch2`9K9+;>ZV(Zy*Ht@FPs%7j{k|rD7jfzu zG3|)eYALe<6Kxw`B4Q8bMNx-0d@!xCR#VHKmo|?L%EfTTC z&&ul~VO#AmEz`AzSe_MlpV!#dRqMQf6ni9hg#RfSvRBW=-;%k?YROxkvl_=*azg29 z$Fc#>!9SRAmUY7E^;6_BR{P-iso3=!tL0B+NyuK6^b@D9syY?2u8Z+F!(Fc*P95)< z#?G;h5l3l{al?{6>yjH+S^9fY<>B)yrpUz#-aTT^wxvw%X)b|J@X-XMJ}_ljcO>2$ z#2ak+#t9o`PN!o7$A84?SZicKG#qd2bc&M!j`s;;97|aW@UO;>ZxJlO0uX)IwgOKU zxci773vATkx!!&LPXdEH5_g}*`}@Tayq`Yk{O_Tc?{M@6(+`pF#N*SZE>B=x)_GmG ztzS=~fH-zY&Xg%DJ8p<|w8BvjO<9gtqZ8k&oi5XZEy~dd73>Iz50ovM&{vzCzQ&x2 z$8)&^t`(=cN5E?QmTTFP+rP>vHYS%( zY3Qnptm$62E)vJeuq%QMzq6zdR>k6p?l4`2w@~sNw)W(PhO^^Bns_+g3vZ^K*ig|X+w?CJj^$%D z{+-Gx@^R7W43Us+l2i{TaV@-z4?xLt>Xi%Td0W*VFYwmMO>va+wBwiM5!D@ElIbh4 z<;>Oi;sp(L_#~1%JKoc1-|=M&JG$G|oTd`GaP}DOb#)5+pnTas7VoXHmJ?dPDjbi= ziMdv6ktq|#PakJLS^Zjk{y_DQ9D^<5wO^ zG|8h2M(0fWeUK^~&w&MC_T?4gQlM~lwAV(?wR>AZ*SBG+gTeUA^Hb-)vUIrt>XIHhi@Lmru8BG;Si0OOb!iV>4|QT$>HPYr3wh}Jsmprk z2B`BdFJ0~+bx9B15OsME-7t05iqhqdP?z@5jZ!BXOXpYd8^)i9u9CW}hpvh`|H{(k zR#TVs(A86y_s}&_XRRt-Zj`#Thb~E-SY0~5e(FLVx&i949=a@b{-)C9=BP`0=ICGDZ}Qzx!2onJL|ArDe3#%JayvQ()ksr3wh|oKGkno51o%X{|8H#>!&X1p$kx#_t06?SERL`&)X zs;LWk=z`Q`J#-=J{H>+SwW&*b==!M3d+5^CS&`D^4pNu)(B-HTYfI;sr!M576EAT5 zdg%Pr`PY>$x0<@7hb}~2-b2?%ofR!zZic$Fhb~JUHi}EG&vVp;Jah%>vL3pM7nPs= zA1Yn0pSq-nu9~{Mhb~B+bzSLlqtvB6bV=$&Tj~7zsSA1N2B^z==mx3tx0fz=h`OYQ zE>B(FLsy{A>L^{V_#Njz51o%X(OEjbD(XTWI*Yojhb~B+-!5Hlh`OYQE=gV9L)TB8 zb$#h_2dPVY=!U5i@zVJfs0(@MDt^!T&qL>@&fitK+-mBQ9=afPc@LdUos}qEZXb1N z4_%r%(Oo*f40Rz7-4JzI58ViL{`IBH6@O6uk@V12QkVD8)l+BPP`cbGb!iV>A9bRq zbbe{-LLRyy>arfX0(Ji0(&hRJ^q+^Wn!3D)u8BJ9#?s{`sY`q4`l%BiE}dV7x{!x1 zM_txKm#5CZp>(+g>XIHh@kiz7yob(5o%NB@<@%{hd*}kxiJMC2*F;^&Lzkp3>!C|i z=l^Kwaa1kxa(#bN{gL+2`Kc2(m(DLhUC2XcQJ3}51*!AjQo7s_ zbx9AMO!&W{p&Ots>!BN@&VOs^a)+o(dgz9! z%X{cXsIzV>UG6A#X%Ah+pH+W|kC)ERM_tH6chJ7S#|hK>96!tJalPQnyh-mdJgSMW z@w~D3IpRdu`<$uglziUvs!#e&dapHye$O0xgj2u6ZFM!T&w9j3J$3%R(s9>BT_~vD zf13QV`zRI10gwEm%rE7k>!GgTq3feAxT$nI`l-u$v}1s}j7NTh)cI~NU2cv#|FY8l z8=)@gp)>j4blx<+D_&ClRqqm{7gW5Vabc>5=lM4{zH_Hc9?!m0Cm(y3?-KZKRpZZf z`VAk>8C9QONWMpXzTj}jx2wCx>f_h_Id+ER%s1z~v%8psj_W43%w|2(hghG?>2Iw6 z-1P}mmmYs^{h=OP^n3c2;-8zSXL^R|hx_@BjTLH~+8*;vkmck&bRp^jpC~;x zbPr8a^-HZN?cXHxD|qCWqR#f0{@h4f*Uv*YNL|K5m!mG{q03WO@X(D?=R3W0JA8lP zebYndr!MHBtESHO(9L)Y`^`i5(0(;v1vi(Dmmtf{c;t7e<4WsH^IeGL4Qe4V{|~-@ zy0SMPy5_sQp6A|mX!CFKjLGv|-gRs)*pO2B=G?z*9bZqXc$hrP3$a(n%bmsNLql!H zPWLeXoJSlT_`8bBf`@L$%SxB=h~N3VFZVh7+F$Z}N z(|F0SoO;*wzS)NspRUW^_~9E|@7Yz8$4kz2e7F_Nze($ZA^P3_$=5d?a=hO5h_?~y zavr)->H>F`j^8?cfAG*v{j0i<6g+f3>VlsvUG9tn9Iqa_1ncKZmCn!4a%~S?HFZf3 zU68tzhb}~2+Cz7^acUahJuJ_1Wmx!MI=<8Io;<$uu47j-JrC`F(EREyC`G^fKUI8u z_cJ}f^ut~MKQvv9ul!x5<2UMbK=k71BW7GJ`u{?ZHY0{r{_W#iR)3x3d?^g9l5+_x%$U*Wv*Z6WB z7rCV5smwokp3{Z-{-)w4^PS@3tCHzirn|>i71MKubX|@Kr@yM=G0Qj$8RGI9j+cy1 zzohu{aDeqmH>&jf%;M|xYU+GjN{@qj>TK#PL%EIG57gxi`G%7FT=IY1p=G$*xijTiOru&9ey8L&>CjRv^J$aRibNBd6Gu`6%tlZC&8K&EY^eofU zhV)^k=M3ouru+V%s=vE_6{9N73ru&{&(C!0OUnQ5^eU#OnC{NMn(4`H>Uwv2km>f9 zi{~F=dY0+#>wB1Pb*TMjcX}VwLq9Cu{(h#XJB#mE4=_DvNFQW+{$^EwcYF*pJ$PI3 z^bw}peZ|v9b-JPc75lmFV7j}1Dw&=#q*pOLZOGqZdTw`d{{@+z`H@O@mmgw!){t)N z{5KUJKPjF6-_?BW?%%Y&{>R1ZH^}thPl~7Kn4W&WD&JlIJkzs=@<(;~hIHTGRsZA- z>D5dx7}A4Gx3{bKaJPT%+g1MJ<>LOad42Nd#rr3z)0w}!{VArW4CSYFx*`8Trl$?* z!%WW@(npx?Gqi7%>4D!C_fN&k%0K=Si}$ae>Gti#ko&Njc=_5M*kHyo)0nSe^sdRVz zRx;iHw&ML4V0z&$_1@Nfy``@=v@ghXF+=&s-M%Q()3wFt-z3vBC#dTW8Xrv0GTmLj z0jB$B7SDf>>7kQ~w|_{df4cbfd8ViDEq=XtMfpF_U;KJM)9ud`zrLR7*2<%t^`ErW5+rI~xo|;lTy@~lJk0_qrrk^{i-{O?-&OfT_e^l}LuSe%^Nbh5M%8=gA z^w1^6%TF^s&FkIu%P>9omg4QpGF=>9JUz#B-}{P}pJ#gJ*y8OkFg(^(sN7?8PZ3Xo@4p$_Kz|>87=Ogiq};C`MQetpP%Wrq5J^T zlZJGQ=_x~ckm>1LrWGB(A)U_a-R6ufC_umlH zvxf9xrsoXlBl`O8;{G3HdSOfP{uAO<_1t}L@pK>4gP$oL-&IV{y;6L9SWFM`dbj_Z zn4bJx@$!3^o;S3=kLd+NdOy>}sm1+2!1TcV#mgVm<$tMo`ViB7hWv+_?l+{5=<*He zqfEDZiuZ3tnd(3Phl{6IGTk!dA7Faw+r|6WVtQa_@%9Iq?t8R&dWh+vcNAYg+DtEe zuXy=MrY8;aXNu{9`xEZ4A%jr;Bpc|Ao5Z^N)||VsY_wzfNCXJblB7oZp*@rw4d_etz-#SxooW z6i*K_JyfgG-TfD3x@|~LF+It2_xzG!y6=hN`!5ss+KO@0erlHa_8d9+sz6G$WAfSm zh9lR0s_z`NpK1}kY7n~UjqRVh^A9Y1ll(A6#k=)hHJ{hJ3-&nn@%q5M>Ut0P>rPG` zqTk&GWc}(ss?VF^uafPswUC(o^y_PvwOIB4uqYh|*?T7EpW=0I^!o*w_fIaj;5v3S z)AKNS$z(rzUT}y4Q-4&kKPp}M*ykSF`_1gInx9;kzy3qle2`~7eCHinef;k4dmLs> z0zY%L=MepHn8k=F{hpeo`rCbf?qPb`kiL=We#85Xex?Tu>0b5S%=Lj-SvnpESWb49 z+Q%~GJLe>IKTh^f9*1syhWVvDbc58TJ#>##m+{c$sPko}#uKT|#F zPwT|nRel5fT<4{eR4A6m{YNNWRk_OVM1wB+7NzqSO1ES9D5a~Qe~&liSFUuGY{x8@ zPFFBJP3d0b@3y+WJ`0&@NwiYwdieSDV_f-ZT_yV?!*b7X>2$djuP8qcQ}2@&w zj&kXA`~`*5Rj?iIb*t7@vAsTiUTL-~KV9x1+fh%QyMMLL|5jCQ731aYhWv7j`|J_Q z&!-u5ebZHbHp}fa=$fb#wJN`l8+3yQR2*ceyUC!d=J*X_!|98ozc(iw>nTs{7kwG;~-mCx_&*Jcddm=XNpt7as!K$uG`Sw z9Ca!B#T3uO93TFRRDKH$`SsB+8R|^!EpXnj->dR7#eI(DifX01+)!>m=ldXartwk5 z`kZYOZre zxvqPMq1+JHe<8-p=>}bt@hABCuk#JMYToxP>g2zWG4W5&_bEL-j#Pf}PZWV`T{Y+N zB=7sD8gv=nXGXZ*Jo?5t>pMZU;{%5La*WduON@5&&PH45Z4i=ap~tg zlw*FT_7=Dv%Ca4%@n-QpUBUH+JMOh#s#(7QexKE6XvZk;=Y_wib+$9R4x=wKa@vR2k zD4)0b8TaozNT*Kt7=Pj&s($Zw>2!b8GoAy~eb%58oHugR1zb8kAtZTU@Ehg>t;?_- z10M5fHT}}hese!>>2?fry=!^+d4%(UpU+Vz8QKxj>&Yp~f9~gQ-Hrj?7pkdqKbPtH z^)vniKR;!9ULE9o8s+-xJVX7`6)LW(nV;$Tt(x&Xga1B``}thYL<4#qVR-)4aT;W~ zA(rcYzSMq+vK>wQ_j63+H_3Ut;`eG?PIa|c`>%@Qd^&aR_s079Jj3~_NvM7^-B$x# zkMHq#?oM)^>}Pu~G}Nzx@sgv?Jw9|hY|fKnrmCOmJ{Z;aed-zw8u7>8Qa_1WI%TkwR zekQ*NK1XGY^SCNtbiZ2fX6fgkq1-{nK^1lG@vHsP#PR0i=P*p`-2&(5dg@GmsbZY= zQD@pGtmZsEM4jorKg75i`l}jmZ*jF($ALv%m0>?ow|9v1S_R*8oqkY$>O`LLQcay{ z-Py4C>tXbKTx5uCL~M=$h!44b++LzbVdZNB&mL8@e3bY<-+# z{Ppp^Z>pb9KTlKFpfe)s{PJw?Fz;J44Z1$YK_A~Qm~^9@CkGAhA@uw=q}RJ1^UDy+ z4SK9Qn>ddTv0T%9m1cj8uw3`LN!M?b{V~jStb2W`{nx{Fan@sYWzm!mFVxPNHf23Mm18Nmt}v1JamY?-Veq{(ebx4;Uz+*#cSvtx^Etq@ z&k$l<4RL*MT0b{2zo211Ot+(tan4tXHQo-b2hu){2k5(GW9b~@+PEop92Hh~@RMaS)Y5yR_^+6N!JKK<7lJiC%byWu40N0a2 zmTP(s5#+vEmd|CTefa^dvn}rDnEX<~@iD^uOmUUsb5DltSZrvAV1D9Mr*aRqz<+LAE30;g>weo8bFeQ@msuS3PX6X(9Z!Z*YuvGpZiiizv?&BeomhAX~v^|Df*?J`I-Du&H5#&GtGY) zt~&>*GtE~?mYb)}{eD5ulY`V{YE*l}2LJW5Kk^>qV}$YSJ6+{xYVRn=M?H0>_V)08 zl%&qsUalv5Jnl19yl-WgpJ_i#upJfeRPDIX;FliyC1@#K#Gp%ap0t>s>3w&Q<9FCA zt{8t&=4YA@(j4cN{5^BieP8hYn`VBd{kj0}mpST8^K*dnm0-LWKPSlN9{(B2f6EO1 z>*sx;g71l^8+1X=FQcsAy9~N2_D7QCn&u%t_fIp_nc_6h_KtEt=XgW81@>DdpQDWX ziF%)!{xj`c4DkNe!}XeJKWvcu2P15U$u9wpwhwF{NnW|hEw291x(eo(^=QW^{c??Ae?vbX1sDef z##-l3=W|ce<2gRhd8pv=Je}ozE5&iX)D`#IFIAim_8R=G$43?8 zz~=mC>bD-wYt@|BOzWHxj-wYn%1yC;CY_Fhey-PM(a-MpoVp!J#>-2FatJ^Wi{6;*=4YC~pkA2KO zwnKP)F0GRDK_%BOruo^&{mv>6-7wp`!NV_pj>~H1=l;Bzj)Mx$&px)pw7weD``#Yw zuxieee&%N?*T?(<9_0?}eHD*(4Aak+M}C#eugxP4Y}U{6h=T#nGzL)IX{B2B!S#xqeA|wS)7nNvGS<$9=f_JnA>V{mB|c{k=hx4;%6aVH_t7sVoz5@Ba{XNIy1y5w>sLYlnRGh8DDPVX zhJMpJKl2;$XosKeuz5c>?K4=MPt%5VyDm4#{Hi?emj&LB@?5`|KCfc2e+NCD1L|3B z6Z12E-i-e9ou$^|0KGOGdoA<$C4_%P^R~fH(=5ymVk9lp7AK> z>*qeU!#HnnKHccCZV#}%KCUM#T*xADzqoD`(=i4V0p|hS(Y2}7#|~Cw+9U6>iPxf=X&Z)&zB>5zGs}8=CvH>$%0}1tml^; z`=g(6W!k^8IB)cEKhbnwt>^u%iTz=EPZDK&tN6WW)BA-c)-TO?G3}owS+33Yn)ZE$ zIDRV`r|#!&9j673qd|{#Ns#mSOCEl%;{Ea=k9n<$>pGK8_uDY8b=(5z= zhHqs?Ux!?Qg`xLG4v1qMTob8P5m% zMd>Q_I)dvBQ-Acce}f+Ft>$>kv3@Ov`i-*OgyDX!Nb>d<}9O(Mx7*{!uxEf{unsj6N@x5Az_m7he{;Onrhq-<>J#Q80zb21< z>*sth>Jg^}-p_~GUUz@!xKDB%<*75R>q5NmHyZprmLJ>O#QDJVUed?@2r};7pDWPu z;$s{LeqO~iK5~4n?J>mZSp7J!g*^OR&2{GtgMfCa%|_9)3ykzMuEF&t&v-1^dn2zq;HU=Vzbc`!2d2 zNw%Yc?@dkdT+KM$;1LHt#;NVm-ah7+cE#9xy0RnqX>qw}leb3l-B;9l=)U6k{9lgB=51;=@T{kGoFZ+`kY^={R_ zA2R6bxqhiO%r82g2RV-FJ#;;ctF+P2s>PM8Up0Ss^&CU}{2XtBp9^yDZ|M4s^8Pz) z+;>#vW|&`|`-vwURIbuBF+VX!`Oj3p0-rCd*&pX0l%G0bv)}yuovhOhx>4R220iji z(|=J9{|#v!ArTqsM)wTHlX6 z=F=?uce6)+1@>FOqaBr;UwS;|$pHH!>9H>w;5w(;qg)ZtBRxO& zu-~R~9btMd>*KtUVmnOt^D34*%5iCWpIpy=+v3q5Ros`l&qLSG`W-Obe|201d4IF$ zXZQT9{gUN1WgPrH|{4$36OEl+V*?kNP!n991#?OzRE7{vGsK|M_`8+UT*4 zjWWLh*3Z4(PHG#5e|tRg6Re*}r}K+4 zzh^x1OLDzo(&_wcJ~uWQ{H(`iisRR$)A?l>2O*FA@?5t^J#;?KFSbFa%dKa*LmuNY z&-nB6dyA&`20pGk16+rlbo>sl%P{L_n%9O{ziQ@Zy1$KZzUt>X z>`Yhv^t>^`akSSXUYa;xRq^@KeP7V|jdH%qd%Rx=ah)^jp&Mqu`3(0XU2Y%ep#k3a zjq45G&tLRt?(hQt>G!K1<@R$v@OkJe=;tKYf2Pm% z4KPld4A0X#{(>AImT|vH#q$v7p-PYXRdars>aqTFO=HHx;bYEDYF|pxxiz(`)`VM| z!)+JB*wRNtGwKPZK@y_^|vRHoc?v6yPJu*pIOt&`N z5=mI7U$`xzGc2N8*^=nBBh72VU1KUCis)9wI=ft|;<}ny%?+JhYpi-*C_Gavzm~Sn z4wgISqUP2}A{=Y8)^v7uCE(Ly*LB&=EuHW|q*YbNb%~Jw)=shOWPi1Uk?nYQ70qAj zq)TG0r+oJV$GIWWH<=frSYRtHpenIV`g$wnVXzsKl9UMG{ zIH{S1*u=;{M8qTEcB^h>&8(JaINqFyhhvE@t4?*(cxQR!1HT?p9?~<#>aXh)JB<3s zyyRc;{3b+ntle&Fwp*>>!rDgZsOGxb#@fcKf(x5hE^WASsbx8hkF;Ee=nu!^;a-fG zwn!opw~EX4NV43c#8{u#S%5LWRp>1_oOC}q!eV~t>g`HI+9wBGCD)TGca#5Ae5meN z)4lePd)G6+SjV~&`JrXb{2xwW#;&t2uqK6|v7Hm+2L+UlB9AhP`EhJA)qRhe6w$4e z^IR(e2y;h!XGbDxt&2z2b;e`ij`0gk*Y!ri@x#%Z3Mi64THMjy-fVX#tU7RxdUQi` z3}LQ(U1|oH)CuPN*WunM^XDjjo%!qU(dqcq@1^wjx%7Gc{>yz{f3M1YUVrXYe~(}1 z^Lo$g-<5Rd^WS}5zhBnh7p&IrA6T*C{WU)SzX{_7vE;0|nqwVnJMq5{MOx%|UR7k7 zWsMCj_c}%UwMhL9`5(gY^DeIFxGvrvr@Z3BwnRCH*&f3%Hy2POe~d}BGL*MMdAobV zy<;xEnEwu`{5R5jC93nr>T{UATdE!<;`z}1bGXq^qC&;v1osKMyQ2jYxt{ck=_ao$ zoJGdi4X&6z5ydjIwRvo;kBQ-wVtPDbUB^|6erzeKW4`f7S7&#;ML)ldUE;W0@8fI# z>wRzt!co?OXs)ml2O6~{h&d}%e z{*d0s(x0pSN3B!zzKy$Fz3-#X>+d7!_r3bOuBZOot^2(G{R@3w=c9jr9n8{kO)-5-XImSdF|Z-LB+|YHJ2$cd{41u{`vur2c%zR$MeDEg$G+I1 zY_Rbc^i_pR)i<{Gkn+<_cd%4`Yh!JZ61y>a30NYZmd@5l%X%yq>-64qvGS;zwAWos z*BV(LYl$ov>&-)pk9G0RZu?5T=~*n_npws71Fs6yE#cNyvHibUvo2E#ytQkbl*7OsEYTmtnWg+a!T|r$D>Od-Xe^5fhpg`k)9adJ59=4c9=(nT%f-V< z#roH|?hqPdjHAiVUvH$VingmrC>%mCin{$5LMi;TP6*#3^rj+Rcl zH@pV3_XOVTy3~06#Qhh%fMxMDwSk`Sdn2vk_f%h0ye=}sVsW!B(h-U4H|2+zVX1N4 zytuOkdyTF)omhblC*vo%IeVZ>YUf~I^p^KIy-=aGUGPSuh-qHyd7V}T@iU}{$ zie4qe$Xoe&hG_}|(-l?{qeQ{<3ZniDM6q()A|2}z(aG=cMt7a&d~TvXqfmME&HKOm z_a_%1aO1Ic(S*OMWw!tPdGjtf=Yl|Bu76FhKX~pH=lX+f;qG;j_#A&5mU10kkye>f z7wfpLyZwf6JTk|>IMI5pzjpCr|MG^*>l;`2moHqgaQUi*b^HhIi}}I%IE8$ffZJqu zzYtw8{U)8zN$behap zUMo><`^bFd)F98v&x^|6WRxb)pAM7f-^1ft9xvc=5Gb!%&hsmX@^?36{#U_d*=;bH zPdm&HvtjbP{c)JAt89nVCtCDBK$APVAW zm8xffI6}-5hlx4j5HU*}Bn}W$#3a!s>ik1I4iYV56|s^ih$D>8XNY@E$u2z!A`gd@8 zc&vX<#^$lS$H~7akM-{thIlORo${}V$NGCjK_0(TC5y#8K7+^gJf6klIv(rqHO=R- z{vK9<$4XxKsKQZs`@r8Hc&xoCoO=|reiOlG{8NScjel=qrT!bU4zFoxjjUZ4jeY34 zw)T!r`}%lSqI>-fJ-s)oO4MGqpl;!!%j+Aic>m%hORo$rTfU-k<*L<9S6%(zSjjiJ zC}RjP7>yy|f0HZrKa>6c@{rK?kFxTq&R4>>O%Wn=OYbdup5Ojo%B}Z*S>erJ$RCi* zx+&@40QBGc($in^tK@_JfAg#Altui;A?j+o+y6(#gQ+5z?}b0_d8cC z!wqHG(;s}=FPfkJ(9;(jtpCaIv-$l(oPU$9nUv`HRXv}`88+$O*gGhvH+I6kHgF%i zb9bk^j}KRWxYxhg`Mc}mK6aP?|JP#~o2R1jm%!vrr3ZE|>>IE>us_3&gYyEgrLcB7 zQeSs5(&b*l4X}G)55ax{`xDFu?Rl^zur^+o52*F$5OILmPwXLvh!(Mm=p&Avr}D`Y z2Z?E7AF+q%dyCRXdE7*-Csq@yh?PV^%%9786VpVUZ;Hn~#3(UHw1@$spIAZE`HY;S z%F)L;9uE@xiAiFVsP*rL-{qflx7??v+vO?eZ;M_K>J#!g_P}ee$$ccb*0o@-VUA1! zZ$>A}^{Sl6{V*;P!T$IDm3jP?yZ)x|@1Pc^%dN3%Qq@Joso} z^@(?0IrD{&S=Zn5vrjKL=7>9Hf9>sG#N-W`9l^BXSP`HMTB-T%3lU%2VPWee_qe*JU1|1|r& zjW?fFSLJ)hgQH*dJ@@^`|6cdPSN8n*Z!i4viW@)u?+YWle{k0^+rOHg`P`Ql9UXbc z^zNH)>t4UBeo511d%yCjd6&Fr@LztnV#!y2eeI>+zxI+(eE#mMU%PgD;eLO%@ynav z8~%@1K5_LYhR?iq)Bc~Yd+^hve}31aUmUvj7s-yryFPob|Mv3bp~uhcMtjANcK>L% z`g^(N`b*#PvoG25f1@>5w_fsJSKe`N$MGNgOU=LiWKLw}ubSTR&HwmgP43t;HePZPM^6BSy)!hB~ic7ldel+8|pZQwNv+KUKW!}PnKK1MWzNKc?8BhFb=eI67 zKm3UsYr-q9`rb`nU$No%Z#UQc?Dyy0apZUJzV+=d*VW9b`SQMbUw+qbKRR%B%|~|J zzjtTrhDEtwtbAX~hmYKSM&k`1d+n~9FTLyU7tg%0<;(@=XLrm$ebawb-*WlAgW{E+ zUGhv{Q^iSNA9?P!?Ncs!V&lTgj(T`&_j`YS?!^~gfAWvd`1u9DZ%AD|Z~Mo;n_d0% zmv7nr#cy2jtLVQR_m$;esJrT$zBy+$>^XX-<`N^xMZp%LV*hgL-dE(U1 z|EBNi)pyN*H2AT1RxW*iWX&rd`{dV--13p*_MY?X7oPm_(9~aSA9hwCa$ivXNngL7 zzW`R{_rRKNK3f!kXW{`j1RelJU{UZi@JBEkTy9vO2itth*}?*@hArNBwn&~R#4cDP zcn-J^b`5v|c-%=sw1WGA^I&aK5Bv@+A@#twC|-tsS-v zJPn+28ukd}dEg${L*RMfji+O80Xzx(H`s1)8xP$_o&g=W4|oCW8E}br!A8I(ZiO8H zPXk-=AU^%pvqc8@SJ=tmcu6Qiuvy?XFa?_fo(2xX=7Q&ef5n_UU+Ui_#1w3vF9!Dk z-w$g9m-q|VHQ*ATgW2E(;6=DB32p&9V13{c{|HNgOZ*#b8@RyDAr5;8JPDjP2m9;b z7Vu8kZtyhlh;z_ha3AnO*j}jt-UNFQJOz9K_7b?f$$U`WXl_FrfjL+OcwU}64{HE$ zAFv))2_6JK2J?gGfExl>TY#s4FTkq7#re>~>ZBex8~@lzBX|IKH|!elH1N)w5O0zL z8$OD>q#pS2&1gG#7C8GBAqK!hz;@U};1aKg?F5(jk&mI?;1a(A8wHn`h50^?e1Lz3 z%>tJ=Wh43y+y{IKRtGL_g>PYv;7Q<5V6EVJ;EdZ4!{C14-LM3B8hHE1QD^Wh@YlB^ zhQSNK_RZ)oslP*rFf0ph1OFMe8(iWaVZ-1OkGd260`3DYfgJ#sco(dq53vf|20Ix% z1FT9R4#5M!%w4$WgJ*$D@5ZfHq8Qf)9aDegi^?*x!csu$9JPRBifWN@=z<2&L`T{%v?1DW5o&-Jy+Y6op9{*Lu2e=>je%RF8 zF_wV?Fdw+YpTp*W7l7~i8s-6TiMPWRgG+oC)(S5153n9^kwG0`ec%$CVJUEl3D`Dp ziQj|`f=he~wi{ex0hR}sIQQ$QC%D8W*wjy;{=ifI1!ERm;#sg+;1Z*-YH*1gV2i;e zZh~C{o&x?1)&?&A75;-Iz>qhEjp*mQ7-yS|07050)q*j(^D@U?Ga zEQ9-Y3NiCL@CA4Z_>S+Q{@{M#OR%KWJSxO#ur1&LU=8d(@F1`mwhi0{eiXI?JO%s$ z>>=8aDL~!RCMmfpOSeaEaglH;gH8 ziMwD;;1ZvO+29fnz&3(QJmGQ758x8dfb9Se0B3$5Z3p)Q?|?lHo(6vS3A7zN1zht3 zv>n_At{FnxB?k_|3gB7b)&CFWfro&w-GqW!pkfm^_PU_S6P@UO5+aPfEK5A%bEfDgl}z_Y*;UdDX^+z(t2s|HU3 ze+sj}^T2rr(C^?Da4Rebo(ArRHGzv)u(tsVfro&Pz@p$;;LKOye{esr7uExw1U>~z zg6DzrUW5O^E#OvI3Oo(m59QBBd`JREO2I7naF_qfxWOn@FeglSQb1F zoL62ZhQKZ0R#*-^4creK1{YJ1KP(R(0zLv80nY+wPAwA!a6hmYHVU2uJ_QqZA%Eb! zBg#YtxCPt_^MR*<`(c&f;z;BV^Mi+gkHD(Hv%r~0m5BhjAJ_}422TQ?f?42s;Jk`5 zQ4ekbx59$pY2bcX6S$a${9z&R5bzOL6g&%@`Ia(agZqKKupaOv@F`dlJP(}r)-urt zZUMK#Qs8Oeepo-an2!8mY48y65!e8D7C7^0_#fO4?1c@2CxK7Fvfz2(ykp>ha0|E< zmIF@%_rr$4#j(gAmIn_3AAya4XMr=ZIaUDo1AAek;7Q<9FmX5X2hPLBTLriU+zRu7 zr-A!nmEhudQ61>6ctfv17{Vg2Bu z68Xc@;3426umSKaaOO<-AKVY@g$;ryfltA*;CbM@6XAbw3%C`Q15X3@!-m1dNys0T z2M+-sfsKG?fiq8r|H1vhUf3vj68IEMd1=MFh6(* z_z0{DJPVw88vGCL2lm3M!IQwJU>0~DIL{CNgImC@upoFExF6O8E>1`Oun>3%_y{Zt zo(0Z)C;SiY2lm2xz>~nIU`g;iaNZg4Kez?l3QK{ff%{?o;9?f?ho!+oz(-&M;920z zGvR-5Kd=`z2%ZE!11wW1Uw6zSq1-t z`+>c%QSc=2DVW%T{DJdk!~ftGa4XCQo(ArRRf3DNkw4529s)iBs{+pgXTBT$2loTl z!>YlPz(2z*a51M$tb)~phky^mg5X);iRZxo;C|qZun>3>_)}OEJP*9+T=*Z{0=B&e zJ_k<&AH1kc>;TUIzXclvm-s++nRpyr;$yHpcn)~hJoo`T0K5%03Z4Q!4-=op8UuL6 z#qa}o5cnX>C(mC}CK~3$58yU1xd46u&jHV>L))buxE)q4^}zcVqV3=r;M!oBSPX6h zpMW)i=YVG|Lwmskz}sL^@D%WQmr^9PpPR z)Cs%*Jg*gg0Jnfwz>?q+t+i!hvpf&H3N`?q1YWofZIS1Jn_!QFr-0AHc7qpyi=t&> z4|ou`9rg@(26#rSOzZ^@0H1-qDD}XW523x_Ht^)@5GVIS1N;(fI(PzrcpT#riT4f#tw$;M1^S@I3JSH(-2$hk!qXjmY!B)*g&CsRvfw2p@t6fH!S` z-};e1u>PhpF$+8h{CpBV0nY$my#?_A?)zAo_~5N*FSrf7_Ty-yFrwqV9k^@h95V7oGfX{vvaROcdzVGWO8$1a7{J)|O;2Gen-@u#z?t2(@7{u5Iw}DmPLZ5;M zfFs{76Fb2Rz=7|e4&WK!AZ#zVMEf!H5xB%nu*%P3ECaW}=738qd!kIt2loM&z*@mW zz<>S$t_RNokKR=#HiG+s?f(z`0-gju_e0Fj;055E-58JH64$_XgG>A>>?LrCyI~dg zo$cVS!7ITFz?vVSZQw!RFQ0^ey2b{DMpT z04xn|13wDOfJ^*1Y$v$H>;8uR1(&!HRsfgy1(^8!*$zGj?gRIYmWdDl9rXlH0aqPB zJ;6i3DX*4^MyUaw3X6hEJo2b=>;<0f;CsOD1DCiKmI1ecRTbqT3myPI_ttW;8{9X& zT-*rDgC~JUA6+g+z%Ah2umZTmuldTw)GwUv;BUcC2ABBlPJQaKZT;heWo!}Bb0NV{N@x!n@cnY|72I>QD1OIqJxu{5E z-g`&6_`!+g!VjJU4#VbyOFZVJa#0U1@kb|@izv9n*I-F-i7%gm`hZJZdn)P!E^#Al z5IhAu02>1LomMVB4aA@ZnkIVpMYArDvAottB+T(JIs# zT+A*P%jT4e8Q>w{tLMO<;J$N_CoBLi@zV3kg#|A0Q?MrRH1Mqfv;|z^*)SVi;#IJX z;3426u=~Iz4#T#AORP8_?E;rL2bKf3fLmdCaEXJk5pV~=4}gyVr(b|Ne-U#CuopH9 zTw*_L4!Fc2m<2BJMOYKKxDa)NMZqQZz-(}d1F((Y5_iMy1J48J%`F!@z$G@p9s-xx z2O9#HxC534&jM$@2mS|_SPdHmml%aj{}T3Qftz8oz|+9}u({w8D=$LKfJ>~01;Hh@ z!J^I1bHODJ!{&oathg9;2A4Po76rF}&%k=XCB6(xf=hhY zC8#sF#2{=3cnCOkKI#lE@l4p`;1ZX?hQTGSf)%75IOS5*`O6r~z|&zB;1ZX@P6n5_ z0yY;s1pF1O4qRgS``|BdiF08gaEVQ@9;pXTsX>2(OFSKx0++ZHwhdh33fNAm2X@pV zhQO1+Ph5uh15X40X#x5SJPZ6`9oo4aF$R2LVY%>ui$&$)ZLpKU1Hjv0v%pip=V5ce z3&2H}qpsjV;C9%2@C@+CdbA7N2V4tV3~mFTfHi{WfM+$7i)+9Gz}sN0;3?qqur}}l zaM2Z*C&7cj?XV5t8Q_uc#~1u-~r%mu)W|Z;PbE-!3)4e z!E*5uco4W9b^tsBoVE-;{|fR4#$eOIZQw504DcLq_Hy_iJOJDTn+2W%?t{$%F8~`> z!2jSu-~+Jv;2GewM))7x2aLfMgWJGeutxA4aP~_0A3Olu1ZxFP0r$b$zze{JRq#J} z5cmLW19%2FZ8iK4?gPePo55}1F4z|E9B_6M{0|-gZh~zCPXYJAc7PXv4OhYc;6dO6 zu$|x;;IymZe{df#2HOp819!ppfaid-KLG!O2Y{Pkd%;t{eXtk73&4hJ;D7KS@B!EX z@C3KG+WM07u(K3E%g0oc$1|APmC55P8nXMoc>;eT)+Fb3NUZUcA0 zwt(k=vu*evJOJDT+XkKj?t|?BF8~{^hyTHYzz1ME!85>VarhtH2aLgXgWJGeusz^8 z;Os8=A3Olu1ltRq0`7yo2wng-B;bGWAn*a$0q_iPS~vXvAo2&sVAH{E;4at<@EmaV zdiWna0Nezd1)c)#gUtai02^+A|G|U62VnETGr(y*@ISZ@7=tYaw}HE0jo>-p>|XdE zJOJDTYXwgM_rco03&4gO;eYTT@B!Ec@C;4au6@EmaVN8x|)0B{p* zFL(;L5B4H>0k|j$|AU8s55o?CXMrc&4FCTV){Vd$Vbj5rz^7p|!1KV1Zh`;7E#N({ zS>RdV2_J+1!TrGXu({w#;7?)m!Sle2H^Tqm7VtB$#o%e+epn;8xV2o||8e*qJOf;C zC)QrzA>hNX4d7Ye37>?Y!2`hCV4J~Hz~^CGzze`dDfk&Y2;2_a2A%;Pc^CW)?gOrc zJp^t8pMdQI&jHW68-AAOfyaFceg?OI_P4RV0#5>e3M+u;ffwz>xm@^;dME8igUZfB2ca0^dB z`)fYm;UVafPTCG{-NL-^Fg#9r;?~yY@(SsL$KfU0*aLV7-b5T+dHr|XcervaiQ+E& zlEiT3f+WF}^<)#CfICS8u3Y{zpOtXs7Lu`$HHUwaHn?)gUakeMe1P=9BXHawyx&!a z_z^c91dP7JQd1$6dIQti_eL9OH8wuAD#);1T!?Nnh02;{(mo#KM&` zNDz;~htkr-#-s4w7HLv}N8l~3(j=@k(9TSgYCHr}*=aHlmz*?-<)w*>TUMH!KpJpm zNpYGq;>vSKcAS2o-6l=i;~|(jAx*mB(vE&kOp`&l-62hyoy2)@3w9uraOH)h8dpAc zN}9~Ym9LUIT)C30#a(#XscEtW55ifb0gu5q$!=Wvb|=PxD>o2pG1nKq(>YB7xC=Lv zZn*NZE@{#mSN=#w<0-hIE91nI@azlHB#MWX7p6%K9)q={4p$al#Jb_iAZf&H*pD2> zm4Dl5lKx(2kNLgQq#XB%_r}ZN6{G@>z-?p{o`mOJ${K1r9DZ4vjK{<9lHO@jg@<6r zD;XaigyZ|9$pSnESCh54au?ZzEBjoPCP`d5oE*TF^GW&=?lpL*Z<-Y0%1iq*W?VU# z*tqgJ62fC}0~vuQU?UlgE1$VKO(MARFH(ccHED7^sl^?*jKpylmJCRf<#+%-KwLZm zw~=~03A={UB!S!Td9odk!9yg8%eC}R8gU0MBPra4CD(CX@Bn;(NFDvdZ6pIv!mb0^ zKe!E_CvET;JVXMx45EM133uQ!62x6tGMGJv2jBz5#v^bW>4PU>*Xvm~+=kDS3Ooi6 z5eJtW=%0+j9k`5yaTk_UaEyO)T4rznO;1LqQ`GF6)k#xcxxPk<67q%V7`r`pOf!KHi z?jU{eByO)T4rznO;1LqQWiYyO)T4ynLn@Cb2md5r$aDBOW7NEmlvNj2+_2jMgl!K3gOQjMoz-^W>hJOtk+HFzAh ze1i4IEqFVr#lvttiQ@@)`jf0b9)#0~i$~#aq#jSfzSCKMJOtk&+wnMT`4sDqTkv+$ zh=<{NlEM@4^ru;WJP4-|ey~NN@E4MSr{EROu>N=mzCqgHao94-`r{V7opjQ6_{FoV zKc0kLXR!Xb4WB1A9)pKSA6%Z}wUvZ$2hJxIcpSEz$@=3Kyq%1~!*D$b<4Kr5i}lBY za2Sc;5xAIC<1QTkJnOIRa0RK+cG!6~>yHQF!z7MJ;r%tNIUa{C=djMW1#cq>t$__> zJD!5`UtpcJ9v&f$xV*@^kpp-LzD8svHL&?y))u$maAM(MxQ?{J6L9FutgW`g7dNnm zcpNt0$XekRbiQD%@CZEppERk&Z8(EWS3k=8O-YxTcmj^kNtXp$4|59Br5+E!JdiGZ@FYBba=JLUa`!3eQi&@^otiGw@i2U>W4g@6<8UKc zfGcl0CtX(K%JC$LD`%4fcno&zmM-b5xh`-!3E)YX?4B+`JOz(jn9gT+*11QzoJ0EH zHXKVrctqQJrb`7Lf{&9?coeQCVO)9i;&hpWD@!j)mwCAIe6k!@UQ6n62fjyAxC;yH zbUBO%;5Z^5a9+5TWZ+47Zm)E)a2w7bZSWY}b{X^18u-C#&rj_%8N@CZEKKb?OQ zK>t^#%RASwhPVs+h0?{v9rzyEqV2HY+H`5qdN_{k#v^bmX~L5*_d3=YS5^&7mt(l{ z31WT7`oLWzfT!TIgVLoF9)o|8Af6bUE-wvDmu`3*emp!~25CF|aTIHdr{F(iIeH$o{}(a=KhWy5J%BF6oK8 z@Wh8$Pdo_2q(2^k-%MegcoO!R#=gZvaA-B-#KUmX6X{ZmN8!?ESXk@M*j55qW_j=OO98{F@B47Od&dg1|i!8*>hhCX4xjoc%j zFizOxGp-9Bf|q|uy*fO$m729YXSTtgXvZD6s*$x_$F+th|HiR+5Z06J+75^AO_xSI z43CjE>*=S7=K<-1$KkIB89$za8xFH?@dT_r%6fiE4P5sx*8@+$pO14cJOxv^EhM|1 zwaRNDuaX703x`=P_%|D!`Pt?c(xae-Y{5hDE7E2I*BuTkY#|--Fx*FixD>UJw@X?` zPuztSr380i6LGYrO$*uHwuOwwlQ92;7E*}^VR^e2Qia=acE1+VxRLS0(Koh`+D%+L zm~|`te9pCi%kOC+))$-$jvUiMYVa_u3%8KoU(ya=9@|0^cpRQKf$=0b7d-w*3+eI| z>-i{N)j}H7r?!yk(^^PqGuIuie!PVo!xM1S6D=hCHT}bVWIP^tk};4f+=Uy-bX49Jh!kW@Y&B;!>ybPUhoZTgxhd+NlV$Zjq}2~o-L*0cKU~Hu4pNP zc5q&J`+%0R9S_51gK7Vk@xwQUx0Hx5Tn`;MOCJngqb<&6{7xic*$8hBa(&lIWjS}2NI^ik!AL)iG(|Wd& z-ncT)ZY34C@(famD=#HgcnID?X5z~GNDNor+Pjt1;mQeQ6Rw;=8t@ogNSbivC*&}$ zT+pYLWdFkVu5dl+h%0xJE_e#Q*N<`HF3bqEl2Nz?D+aZa)wlzj4Q|Chgwku*O3o+Q zcnIzt&at@M#&}1vo_GR=M=>@$0t0t59y|ztd!m($Zsfc$IkT0N|BA!tY=Xz2{Q~30 z9XR2oR#J~gV24**$!3-0;2mGs1A4Rcz{oV5n7?UEsLe`hZ6!3#1ZoMH^H^Mx5Q9S_29duB*2o`fZr zWXM`P0I%<8HUaBDfN4kwpp%CUb~e>jJXKE}^P!I#K*T)Fn7Oqq@=e;^BR<=iP*yo*>%$|V99e@O%gU6=eskW>qzw2 zBs@sk@Jj}i?IvVOI<7o}95~MU!@)#rloLr8T=_WZh{xauMEi8%PUA_~^Fe=oY&gbv z7|tQ1IaWD!BIC!EPm(@(6n;*0%@gp^Nv!Glw8L+Rw+CR_WPk1!JcZ~Olvj`{`cd{L zm3Rn_C0Y}K&ly*~Pim=Aen4vQz(edeqV);5-?;T~rkqD~&29K7(eb$O2+?}}VViU! z9d9r5I2YeUpUP!qHSWS+NqVy~kIoeC2ilbrNfM92dUYKG9QKHRuF#|0e^p!;j!nWn zQ#ltd)7S$Cwx!A8=mw%48Jy>gx#n6?Kb?Lc-I$}KAkCZ=`#RZ zKf}4`(}LHLME^36yYU6ID-V#lcq+>M_^jV&a7L!gCOV$fbL{PzX1?%F<5Bpd@f6IT z<*!2k_A(xVV~t1PK5}e9IY0By_=&EY1E(2}!a=kBb2;$EnoQZw7@{w*2Z+|Y@R)IV zk+GBBXy%3*4h+sJNQdF)kQKXB!_ud%kc1LH)GO~96~`+ZvQM$*4Una44BH(WWBbi|eK zkRn{UjilpAc=bG93-A#9jCf;)7tA+fhOZk>!pq+9+e2_YiE?ZLme+Dm;X!yk*{$vB zZ~50K_%^Ro#9JR2Hm=OaG7xz+ROZQ2fkrE4ukKTdbojj_aJ;=6?=g5Mn7cFlTEnw5wC+Jn8CWi zn_T9J$Kkaf`^P%)6Qbj^*JR2aL_G}ajJxpUPyG5I46fzB(U0<1vK_bA@mwW?TC*nW zc_xzt?!pnDviCB}_?-jHh3J^$aD6>%OM3$5ZloT!VE$)3x8vm!fLCqupMfFR|8wK; z`!9HoP@ja&zU0`fGLKi_t8wK}vH*ABcSK(clJJVJ{AX_njwO1mav4eC%1tDRCt$zL z{;?sr!FU2*^tE|?fz>2En`Z*-v4y>k+i=o0Uf1vlT(q6*ox|MWe>*azeJ*SDZKhoF z9dpA&a18O*A08%?w5B0bP9oYKfVE^E?Q!^}X-~k4?-@7k4t$tseFSFwz*^C6!M;S- zKLnQ;ci}(AWoM?`Mzkgj-!>kHg-O3X0Bil$0-n&sexN1*?DlKBwTWY`-pyAxa=tRNhuDW|CjyQ zhHC`J9_L!LWli99&9bE135*k-o0i3QK&%feZIQ*l^JZ<~UoEqw=tS14RhDed$dZf> z+-tByW)}bMg&O!jvi2nUgjQCTx5t#_MBlqAD@aD5%;RnNVd}&1DWda=!uHwzu>shV z=&{OCq?}`w_mTE^1m@+KbHN(pf!r+att_#%1~w6Wua$y5^0K^rV#6nmN8xwIlklwk zEa}g&LAbauOR8`ewlDI>8Gtj%TH0fux1nm)6-ih@&m3r8@Gk@-g!-g{YIju~RaA!H^#RF$%NiU*v48ebm z%UN0SDAD#P{E+Cqtjs+-OIDv==CK3501v>vY@Rs@ z*x?-30uR73MBBq~&AI*<60lVl-z_+VXg?0zPdegqewI8(`r|QpUe_$C#BF%`1^!yu zu&Enkrac9p?#_9o%;Oh$v{RWVJ6)K??*?ED@G;`813asTU$4BE)KR0XC-d+Gbb9)G zNqOo;{5RTz@F=kO1QBsF16Qlum?xmKbm(veSl5$+x zY>Yo<3!Y=#h98j8)VRILG;=s;6KK#iCOXsiBXe+izjid&t^^F%ad6jJO+n7lqH++Fg){N z?$aQ9118B@TzTaq+%xBJjbOJ&d4A$H>{R7@5O$hs9Cn&!99~?_b6o4;xlb5}pOHG+ z6L8N{>`6QYZ+a$6!sl|0;QDBm)Zz)4H-jMe{axR&PD;JR}JPy~923%SG7IVavXOZQ25Pm=!@dTXqHv6+H`yZb84toy|z89)oEgFn8R7T|Uf`Ew~Mrk)Aym5B!;U=Y^kq=~d>ja69{k8fAZyz?EZ& ziz^=@aXbQt?%*EeSO-2$s$VMi_$%(xu8cNtkKoErNDZ$1fmGv3_#e^xNICd>#z4Dr zB-w(8;VzPKDRY4ne_$Q)2yEENGXzh<%aS~=@DQy0k-2FNJWfVj#@u)D9*pR^1!0&p zUPk}0-A_ETF6Vn%xa<$Eac@3X!Y#zYmFcN03E&=aZ4bao(;k6k`}}^CqyHt;D4!sG zaOKMXc-_I3+ljU-%a8l*LHHff@hGdZvSl7M%GbzDT)8*-K(t*MZ0ENtza!pwVCDa1OA&o4XOI;2$~B#`MQB$h ziMA`doZ+|Ia4*q*lxKF$mQlE}AF05V6E9#6xUz<5yRyl&r{L&r+5Tr$m;%O9>?Gd@CZzcGf(!C1^*x^+EXxdF=L*_vjV>GUbYOqn(@GPOZ@f#TtX(% z?n0@fA6(g;WL(2I;Vs%u{|=l*^t;v=+(Gp3ERwKzsox%eHxg}k;4IS~gF8%n5*9Br z_3%dG)x%k)JqCA}_9QHR-_*k!iB}JIe~~S1I9CeJ{Uuxa4`6Jtn^<=|rDJQFvP)d@%PT%)Kf{mS0Z|Tu64~aX6=Mjt4N3%SKCMft~|egj@0AIc30;}99KR-YH(#0sm7!5wQF+ZFdl~k z2jqCKK@Q9b<#_K0ESPz1j*PBgoN)T}Inr$&pH1MU6*)4Oc4g-q=@VCuBIEHeY`Vp- zPr=t5zh3#oFy>B;vYyo93E2M*zdi(;-|5#YeNC5uSph@AuCehNt|`uUBS{&yhaVc*MKmA-HL> zU!Q=FJnYvi?~2eDHOg8t6nA0IDgGX?VffJ;ekO(WfmK9b_m!WJ1vl~90sB^Qy>R6K zQjIGIlkvC%`%cZ_-zYF1*k@Xf98-sn5$`=eeAjp!E`E%0CQpdHK^hl6?#3h5wSdxIB}?`&xhhDBmHv|KsqM zDEpNf2mX)fxgu}{8G0*YP(I5(!yWj;b2c@%EmEWH@Nc5)DWB&^FH%o?2>#!fTrWHbhY+oC;JIHhhC7%GoJ_p$0pP4H zT+>lJXW;y;tRWtUw|vj_zLR6&I&uI{zz=t_CU}!IhJK^=p)8|CS>eoLA|R!_+8y zHkt9jKS?`^hnTPW z-?SfQzW3npYqAzk!W)jTZny(G{NrDX0332WM}qg#4yO@)wnyRAX1Ow&_9$$bo-6S& z>=XDm*&U|;7P)dC(eJM!a6bu-rM)HX#A}E9jZ3Rs8B4r&cz}5I8M*R)X0Eq4T-Y)jT*N0(~@f4hr!++BnxPs`sT$q_hJ?$1eazd_j8ONC0 z<;t(8=SnS}f;-O5mG<|sZg9iJx%}IA_8VN$H&@ClxxTQ8==TpP*uJ0d0odPo2u?B{ zfeVbs;h<}BrICJ=PY+;iab+OH*l^|A>--w!e*<%63+>A2ApRS!>~e!&qrA5wSF-Of z^C&mw$}wt`^M?2}${&WZ=F}*|H*-E*S>*UN%4>!(KH8N@(i>N{A8zIdhZ=X_T;nmg z!*~+jc^mZ{t9+h}$Cb;-DBOij#9KqyeuU{C_BS4alZ;2;0^@P`#RHt1eiE>8cCJ)E zpwG`-S+q2lUy96g175ZwS2|7PSp?5p$=c#J9KI@7GPrhOxPa&w;;_kh3YM?-+kT(t_T7Tlku5QvA+Yb)9QzP+g!d4Ay$His$gwqy0Va$qAKv1(yYK+9 zZ{~ZIt?VVDZo^9B5m;y3g$InwHtLC24=asFV4ZOn9xyK7P*1#iSZO>0>x{ebUn0F3 z&vxpGR}U+VM_`?C7alM!JE$jKJ*+eyfpx}Rc)+-POFi-GVWsg1tTXPy1IFb$)|^B} z@VNl)CG%MG6m0h^>xl>8L{eGE^AKkJ#(niL&l&jh@6<=QAOFaeC&?t*qwuSJetQz$ z{TI(w+Qaa%L%DMJR-VJK-QU~~9222rG%UM_|@}+|Q5D4=g@T|LnH_?9nVw*3xdn_sHt+=pXiLp2zQmpnv#i zTAnwrC~TXa=dEV|zC#+RNkFGXo`kA+eSsHb=E-v0hI8`hACJL-MR}6Y8aS(M9zPF6 zJ3Rj+`q6s0wPPOtzZ0HC@czzu{GJKM4>u5@<;j-qtQEYIXnPpGXWWGch+cOo z&yz01+XJxDcm&oNci{o!awhe}tB0SFPI_Kgbe4av0DOl;X^+FEk&GWt!HKssW?su8 za4qr13_IMJCrR3a@Xfne+iH%5iEy3-pJ2Z5lW}=6{z=XSKe~?^b@tsDaHM z;Jmm6&mlFq4eul|JPhZMT090n`d=PD>rFrK&+&QuKPlLs6Y}H|G71mDg(Qr-@HiQd zTMu$gNdynWMWkA5pf!;(-~o6SsnHr(M`Bt7%V#hK+=h*>=Sdt-!T08|H?#)+KwMnr z=Sf$h_mmBQ`Q_0!*}XgbKHeTH?ZcowUKdt#+Y#jp8GlL zjN35(%RJeH2jKk)u0fPN277!>KX?ev*^(!_@fiGdEBg{p!O7d$-*^;u*pVmc&$18U zhHvwvH=clV8dzsM1~-$TcoG(T&%E#e9GA?K(Rc*D|5Kh!!d;jm({b6&^Wm2~nW^<~ zD4C0g;i_MGhTsXfxruuNPr@_)U{B6qJa8ZBh|8Zm6H>Z|m^*x9ANM34hXwodq$eJL z2ahratv{A0FQr@ju5xPNFWHv#pUK=|?-ENo&0>Av=94UbZ!_nG|2x@|1RjAa|Igxg z8Z#I8!WowI#AEQqGc6g4$6??c>hT~vbgsp}?cu!VS+c$h{o@JPsw>Ch7W|A%!jrJ> z0!ylJ7p~}T$y{}~|3XWS;nKt6yJyBchjYQrmsqk1Pr~NCEa~zBeZnzhIv#;NF12JW z9)g`NqaQp7Z|+U~i>x_(>2ga(<8gTR6`U83z-3o4CftQ>uePLUF6#*=ge3=gG$t${hWTKq0n`iE~ij0cay z3x-=V54Yj6krw~PgZ|-Pqv-P$&U+{4y~~oBxC_IhStC3G58Z3Y0<9TCO_+0O4a^#6 z@%v6W7o1zk`e^(8mh2(=9w`Oajc09XPrykNxvspwa^W80)xdF+_;0jF;HyNRGjaHp zahYt%$wb?O53vUxX5DypC162>b=%Gu;FU!C48iA!zUC%j(G zk`sw~06N4w7Jf>Sj57iE60J$W@@e=4zW;|Ib=s9Pi9VBKu->#MV59LAEPu?B!v!1* zAFuY$6@?!X9cKdmZCoDbx)E<|u$S==e3UfI;5`-GO0>_w6P8>{wB3PmV!g_`!Fr2`wr6q1ri_x1juW<<;g2~0?;$$hFpL{l{!DZ|Q?UJWe*XbDm}t8LA0c|ZqR=(2 zY%$ZXv7k+~MmfQF1lAE9vkMOxmsvdPo@YL_)WgS#zNSav4&zC9#%#Ym2uBd@Ck*Eq zkHg)@Q?O%=UlW8QjECVo<8ip#cnWr$W9s3f#-s3aqHC3ae-WLRyr9o)zutzG#v`!K zxC>jq=#M!7-yu=1MI3%dw4WrrdoJrndl(sylMDIa)mDeJo zW3%BHqQ{2e)YsW7)JNg``PATX_}Ux({)xjLZ?eZ|ci>)9F^}hbEn^@qo`iS5#cR)e z`h;~vpL;Is_cn8(Jp^YGZI8jScbE(9K{$lycpSKwIB&3rVaWnBFZd3rr#%jTdzW!W zsDTp}`fD43S&Mi*dXqlkDpG^HFg@;{*Mct+VgJP7ZquHESxcA~?Ll}g(fi1OQ;bL9 zV&g9Sr_O(l$x=&BAv*pboJjQf7J==TnQIE~CEl9DN$>l6I06q6-Ji1DlBe&iEgPqiIhx|Y{dJOuwFn{ZiY$u6=5Pr>qfo{hK-Pu;*;<3ZSZ z6JvObK4I%Gc@Llt_mkzgB)Gnt=?722U$?RjZ{u+FHs15#3Apwf)<_-B-Ol*&xN-;2 zDRnshTaLjaFwnp;co6pZp64bWg42GmWIG;(>vu9vJOMW(+4JhK|1S0_?!bnh82>wr z2kzg)YX>fkmXz+L4iCUXB%}@;*tBglsl8n}K!C+=SzqgS2 z!V$!K4#Sm1UxQrOGRt=h_9j{rf>p+&aINtKOwTrBfW3`}V3qMGTx&c5({oHc>}@;* ztBglsyWD))#5isE8R_ya>jo$0<;z?=2Fon^TF6{rCGoyXfm!*?mv##dBHHf2y<`jR zDcGgJZ@1xRq~{{87tAm8+XL_&GLQB++-KUQD4(B|&i9`!uv;nhamER^5q-8N;nQvN zMh81hdZ0_rF_!w;2z^vY_7{gae3< zIRs}BZ;o&s(XrX*7Mpd(!*EP5 z?yqIE!-JPnkIQ9@r#H`m_o;z5UC#Ae&b5XgT*3Xag6jom_hSrr3}%M%rTpVO%SkbWMcZ&HohaA0-5#Bc{b`8azFkHHI{ z;Mw;PHSkx`4Nt+v(-{x$!d}sQ>4Q7)d7{@k4jYK>ha?>SEMul74vS`RO?eFsz_G-8 zj{$3l*2mzNMEgm=XP@)$uNWLQ)Aum!JInVFe3p2h#o(_*k4?cdp7)=bL3k6XBm&dtKX%Dbqm1=(Hdoq zwsUL@CW!Z}gXs(XwX$Gu;~`jOJPLm%`nfCxuUX_@-w>=Ky3SF!)_4N8iTm#X0&pbp z_5)mM+=VR``|TDSY}|p55FK+AUi6-SUK`#_wB3O-iJmtGw-`^tq9uNN0A9L`=N0=l z1PkBy_f-H6B6_R?XBv;e*2`HR-b-6>g7FC4WIO@eukdREFmokq_X*D*IE3gN9rz&e z_5i$OmD$hGB|3iPA)>D-{DUp&PPE;IcNh=D@Q3unb&SCQANe&QIEHBdVfZ@Hxy0d@ zMEgm=Y}bE{v*2LjjSVJ=_Z|aw{upPzLHIV&&tGx)#u~pS4v&A5FHNkWtYuBe2$#JC zGuQe1$AZ0yjv)fKlDYbR0KU53zjkr>Bhi`^ocJkYqaPRctLONSxkm6IqT`RitPMQ> zX}92$MBAhAOQLg0z?_Z#_$|1G=(98dhkV99px%KaH~H%yhDXUH+U0ZZqc8mV+Hg40 z{=;y{m;N<%;1^^I?Fm?%@Xs57Hxpeq2hKO`arimWeiHDMul%_O;bX?5a2@f!Pk^g7 z`{#1uexk?9*Yr=k{^5H>?>iTsw#9D`!oKS4fe;*HJPel+?Z<_Oh_}bK^2{gRcSo@2 zH@vQ2#rFoVY`Z^(Ae>0N>j-b%;h)!mSAOe{*@0!>aSyQPgYd+kXvYKaBBJB5;Y3ou zmg@*#Av&HId|?m!kMIe-f=p!KWK(XU|9BykGsj6o=>k#`9|({lh27c03B- zCE8CMp1#-LlR-FucTG{YkqQ{2ees#tpzvs(6#Cwjx z8N}-c2LAACls^-_Uh-$YTui+0XW+v`kBz{krrm`<5&hg0Nb&lWRv;nH8-rG9fz*A< z+QJbR7f81aj0cYCT_8;xSz9O-1=4;KHE`aD0{$L}b$}0!ERX|u1ZLk+Ajj|kTp2Eq zE?= z=lL@phd0bFkR+rP-ppQw{a-JTLAV3Q%wukN1ZK`JkV@QwOUNYL zh4;NtAXQoebKhhPcmRG%X5tC>SZ#sK#iQ_qw^$3UfuE2CS_2<_oAuNhSo%(ZtkxRn zlC@d`BMS;-lh(kt?-s}wt$}MugVw-D78b~Et%1LjCR`R3$XId!kHDkk7;eQ2~{g8D725A3~) zdOQTDucjW4!J{8=EpY3@0vZ1i`(!I)gRaXs@B}=24Qq(oaKR@9lE7VfY%Sy5#`SMz0!&|;#zO*}V z;ttNcgE7M?-?7iXB3O~A^_Fc>!PM=)J_i@y~HV@G!9)L9@@)Pawl!xhaH~S5~TFv?JIK1`oLaD>U zaOKm5vITcx{d4sBGyTK6<`l|mJPiLL{eNLiUMQ5!G1~DYOn;5`J%wK7T@nzKf#&}@2<*XNO!!|1lrF<`Q zgkO_7JPGez$+c)={b9wbLRpJDuy8eF`<;5Ym~6paSn~m6`-AbofgcviZrp+U$ml55TWU(O=ZVv7azsJOV4$7D~tc^bZTy zu}|;-TuizgU_9{B^{gizf`5|U2N}bs)RIlO3v23G+e3^24%|>E4Y&jMkr97WzmfI( ztWcWp7;N`BV?NBafRn!{l~O>;SE2t2hw@Z38TNT2k;ntZ4Y~(1%1NljqCwD28(~=y0qkZ0&mz$pST0x zZDLJu7f$$tKJf?~a)3R9hhejW?1@%<4uUgC43EKc4zbP|Ja6GwB#tNH*uUA|t?38m zA1)LZ55UEwPbTMr*BmM2cb+f?c2L|`4!_qs0pj%a-n{%c&?70KIV3-xhW(7s5D=qCUd6a6gX z!mJbhV=Y)odQ%gD3r%|*{$M-_d!JGyqjfy+84`Vf{QxsN7D}*5xu^0UXh&BrO5j`WgDJy0dt@x2&WL8 zOB607+J7AWXI#1!$s@$u1F&!RBJcA~2(C2l!vBc(KIcM6w9hzvqK97}g=h8jYl5)o zA~Q$$5Ai-jUCg+MuAyAQIuSjua;*ND_6S^0^!`o2*0$en!7KX|dEZ-x;98=`%2h=& zgy^vje3K4EN# zf31~U#uU*7&uZAeiWGBS!0H;FnI-H`xOxF~xC@hRk<^q@4~K3gZ5Ti7wOyYn91F|7 zy9M_)@%%c0=MwDxyT67uyzCF|DcVDD9PzFNlt2A> zDI>;}FA=SY!PEEi-&pe??0$f?q8}ShKJ4#@2#gW$+QAQuyRi63k)*fd83nH=+NT2_ zBU&GazYx9OoqvjC8RE{x)1e`s=Z<@4tR~2>wj! zXivco|M~p{;4reA_Ap#PvfFbn!yk$6y%g+l+|V{YRlo^jPJ&S;bP`f$IXpM8~Flj%ZB` zUYG6n^<{?a4D&x-G%q$aqI-n1#8vmCk~TDUn7*aS$<6zR;yDJ zg|)`xu-LrE1i4qQs~yKxr=+b}QMZMcf8#uLzPTg>kb=SYTkHDkk7;c?d%=@ikNe^({VO9s$9}mDN zDZ*p0-AUYcco4=&M?4P80_;QFhP_Vbxq*k^-11_6e-|~-vWsQrDf9^+yn=o^G6uN3 zKhKlXm^-uwaxG8iSmlkZ&;KzV_~)(sxfA1e7(W?t2FJpqWHfFKWBjBNkHW0s?0Gx@ zqofLt!FIQCE<6ZhWF{VmWg{3XZo@d4hr6)HNS-Np2)d*WPr!b+b6s!;CdgVm35VRl zb-}|hNw(lAc=sr-3m$>iXx1MO!1x%RU7a}>oH>Q{FJqiAcPjHKrv}EWi)B0R!q9Z~ z$C;cLrk-I~5@vkKp2ID8(q`_>ZuA3ZZe>037;L$N ze!5cwD;tWX29Ln!cJd6mkQ!Lm$eQCWJf(?yttb7!=l^6qFQNv%ouVC&!@Ku$zg$c| z@VrCxi`($vVfGI$M~Y?1QRaIIeZm3%u_m|!^P81O9Ug#RrkHHSD zO1z)93BZ?)$6$vH(+*!Y9)lfPn|AoJ@fhroY1&~W(f7|0xW#x9cFFSFZ8(PLvoQ*P zCi)z+vP)znQ4hly(Ha*P=lJabcwcUb_dYfPSLBt*YU*9sGT(2v;7H>2qa+=BF<-c& zphSk^NqBmZUmt{1iPlHqwZ$dg=LH9zT;h8W?lT@JEs;xzzAo6XSsTB`f;B|nW5;2V zc&`O*OXOpspFt8Z?SvBVb=iV7MC)Vl{C1{KIF{&ZcLXjr?!sa1so`}t4Evo_B5RpT z2qw!)#JZGu!BuCKNEmlvs0ZtVE6=>RM6xeqzri(qOQZr%z;69$=Ug_dH6Dj;`uptx zILvq$E;jDMW>@<)7QEKD179^Bhi$Gg{lIGDQTRF0&+-YFKESLA>}@;*pCVclg=UmupMp|A?+<5Z++if%AzT8;1vt%XN&Ic(40#B+;5MY&DQI zV%;qGrtvtua**F1f_sdo;A4aR_BhPH-roZO_$-OjPYgD@!R#M6g>0ui3V$bhAEn?G z6~2eyBI9vbc%#2Q0eF}3F#LsNux=@M`%NVh#KZ7Q;(fM-rw#GX8-!DhN8!)LQ}FVk zeoY9@Hy($XH~alqa4H$4*9gAnuorO`?z)XVb~$5!1$UH40uR7mca=z=E7+6pu6s(v z#lvtB@va5@o#=H>!PoBP*}~t&$Kmh9Ylp9mG41eo;Cp(R(=rUn5!*ht2Qz-GUWFYaIB# zX?Nj4(=HE`$aO@Ib>REPU6}Dd|5yuNZaf6X5q-`?;0og|42@^pS27-0{vgL+#X3Wo z$ljw}*)Yj(4@{!@X|;9b{Bq6^xlyw zp7})YI~xusI?gbhXWHX%vuRJlqN#p;0A5P8J_M^wdlbHB+FjUf8qXBQV8dC&dzQjB zk1-$G1Mq&L?Gd<-Y^PnSOJo4?t`~HP^kv_|?8p6f3ts;u2b>ukG;X zEhVxXPr>iEmPoxid~6%{J|2Zzw=)Jj3E%p*MA~0ZKk%CGnJ4bR$H`ng3fKKoB0XW!=e{GE)# zQ}Fb|ym#TVc@SnE;aJ)&xR|7H7j7roPZAzCF8{FKi1&H{2a=vQF&FqM(LLtECgR-} zN2w=XJ$#LfralgTAv%T>>~YM09@_AJqTfG6;BMkQyI`+>{hAOw;Xm#L`U$}P#2UhN zhc6yyui`GuZdU4z$AL?l`|iR4X{FwM8iV`O{dQ?lD!qt4lS6P4Sx!GO_yN)JyRc`= zQtv*s;mt(b9XOA8&vW=wt5WZomV#$w_~#13n~2`y4t&OV6uQQheOmkD3BkQY`%l5H znWf%y$%ger*Eszx^CsY*##6Aou++Q0K{(oY7=A%? z4HK|!k-u&Mct6qChzJ}~Tq+69>%cmq^)7s|q*RLV7(76IK;S%F6+^Np`C*f5c{4s~%wv*{o=LO{y zzed@UjHlg(cMu(C7|u2xgP$5t!0S)<`*Gl0qSrJAzwgX7;5}Os{!4TWQdTM#o$a^V z@DAej51%4h6NQV6$KmJ36Yx*tDVP)V>n+%yc;89Fi_hVj7BGG|iFnTnc<;G>dl;@F z-rj)S&nuN0oiD8HS}N8p>?OFJXiXAccmZodyA4;6IPSvs-Abhs`zHVg5uJ+z-!vYF z&Aa>8&Vpl&N8lf%f@4$g+Y3v*pLb2dUOoK!5L|3L2?zG1oq7j;O=|HZ9C#6XUfba! zqI)t9&$`&(+d-Hh-tW_ZtuHb6HN3#M4ObD%;r@c7?NW*2VfYWx^^{(v(vRpIL$Jzt z6n;r`tr9TjQmza8(}HV=KA(e^v7d=|t>GS0PyZ=6v3IFt4CCH}!OKe}j4S7pMm!E* zxWZqb7~Dg&pA@|F%2IKLGfwzE(RLSh>Eo}V4HuGnYEtmhtIXQMH;u>PVWR6MeM{wh zqHe>5B*n2VtmwzJzKwN;Gl`xn2A}Njk1Y!SpS?SdlIkoB{(nuuu0rdms0)iaD#SGq zGu5Q7h3crF+k$meqN|{e3c3o_NhG=!qN75(3hJmtw}LvrE)47f6PxH-(2NSY7FtIo zx(d~)g06+?M6s@d_4j#Zp8o3F*YDkVs%Ut3gVcgF)`K5pMu%r==!?z;bFGW6%*3a@ZTKCIy+_MPhljGYEo{1%{Ana4+ zU!isWIqM-h!+OX=&oj2(@lwyXZXoQF=clfU2C z<6pnfvu2&K>hl~yIG-$ULhGMRm?;w2N2G4&=u zl`n1YljEIejX9r=-QcTU*4`(@uf_aV`7ZozEYl6XDj)aZX>71PdHKVVuc93G;Rn9f zHPC7Pg~* zdEl%5@7KC6{N&TdP-pqo-!QLqfgk@(pBuLG=Ni7huJhM^_^{-dZtxTC)0r$=Zy)Zx zUuRO(IsWCW&g4#=%&e*&ou_UBm- z>TKV?oX3Fe!FQmwX7c?W+}XMoDZUA<=P%#)VcPsp@oI$q^Zb!6=jK^Z=5q+wvB|$T z-)EV_DZVathMyff$J-Is@Djh};hn9yTI4$sj#J|&KcX|KI?pWMgs}b;`6OEF62JJ7 z?Vru_1$6(pbKvXKovnZFG0Phfj#=lYJj!>mPnO?}aPO4(G{Qa&e&}O-u6@${f(4z) zMV;plE_D3YSs(b0$95)bb&U@`uG4=jz`0%1nY?n5vCsv6KU&XCUbMJ<{uzD^!ea(3xax&+(6z+FvJs+?ia9Qo(oRrG1@A zMd$dBUecK?zR7kz@ltb1*ZIc0^VE4h_wvr9=VoKbZ+NA#(?y=K&Y0*F?|79l(Pe&2 zzcG1(wVnU^HO55O_(kh|uFmr(H#mOS&JTN?<8L&!{KnTizAo}T1;^J7{==IcUuXG) zZ*crud=~#~qvPx37U%p%W3Kc3Zk!JL@N3^~Ug-jFDs}ohPF!E!`2ojyqqT?+f6zUk zOCRb?zK`(F$u#+yL+#G-y1(j7hHNkJr_s7c_^CVHceZEwGrN2*UE`;G)U|k%?fjXK zIZs{Vr|dQkVLN|jk8=y#`N6~OxtHdfN7`NFFYRl0ogY(acZOecz;z#RKK!YJ?d>)G z#i;YNJv-K!ybR&K%kvb%+-~v%4z=fDj$e99|eNAGHPmDi8AyTDyX+nweMpN{);<}>j-@>;a+i?A(r zmCwa)@`AhD`(*gf5!QqPABtV&Os##+!M7k>yCVM-Dd(Ad);OR?7x)muSXKEP!Z|c~ z!RO*<@%s?g!!qCJ^X*RYP7F9somU_4Od7h(7ts2%P5$NypY<2!HvjH~bzZ0Vd03_M zyaVBL%X~U^gV%ql)1PTMH{N*4@pX}(_+`(DO|CnCqi#Oy2LJw7+($aiw_scs`K4bo zZ*_q`_jTjH**SC9H#?I)o#y2Y_lwT)%YN)U-)et8|4YYwyD{Mx&X}8=+UlHn0NsD- z_&kJ+F7t+&bCX=y&MWV0f1T%BJLV>RgSPW05#BLse4qQxZH<45pC3EVyJJ`R9KxJz z@`C%%Z9OkC{7YPM%w*QwtzBP1s=JE-&p1J&c^V{1~d?Uj4Jnukj z4)giAy~%}#w~rZoD70f%`4NxsGd?%Xx8Ybg2mS)WIM;dZBVGHj58sT|I|=_I!f~4X z^mKcBj_*R)UgP^es@*BR39X;yQwU>N=lrA1r)|!kzlmMC!8bl;ZZc=P?R+c3{zbkM z;XBs&2eF&{$^~afCj{NEC<|e0gogaU_`CW4F^L=la>+dnLKWCmaH%Y(GXYpIHLl^mX zdyK74@%wN^m-*`mpVi=pKDpg#z8m5D*0{FB7`k7AXa8}WGrTllE@k-xPib#2bN5r* zo#B%RbF$70vh8DL_-#+~S$?+34|sZepAVQh1JZ`kg0Q_pZ;Bb-l$Hz3U60^fz! zbD4jIaNYff>HPOJ+Q-TA#@I#vG+J|mXD)C5Y>GdC@L6U4BEmV;`Pyf;_s{U#5#~>c z{}tz)L-MS-{(I%^?FBxD*75m?y^j9@cR-;viM zoI`=XjScq6teBg;d8PGA7x}Tzo||;sZaaS-SzYIi&$AZmB0v54?&}X4PhQ&RI6BL3 zM7ZunK7jDKResou<|e5Rx!3sPXkB-H=8GNQ_UvlsfbtCQ{QMb&zo)v!--_Mf`>b)C zJ6t=y9<9H>onMad_fZ#k;3e%Y^2p2FJC0xFDTIA;dFv_`44HfUsF(X*I>Rdwj+x^< z2>Vz05wB>UTbgf1*k0rx#qEVxnpe2uILTV`5ShPnO}T4bd;ct-jNRlfzN)>w&OeUb zkG)K#YK(u(_vKHbp=0%KgyU!V_3t+(&vsq-n+V&_@~;ujIr+fcWCg;1hifGd zB3#GdafJPY{{dnD20v{_d)$`sn-KOH;D3nQ8~otg+xySwKSS6j$5)W?S-}taV0)iV zeh-l-HCwcs1 zp1ZaO50!lv9sJJS?cUyUd!K>5bCY)=jPrKBZrFQ|{d@QiM$9w4ly@Wi9s9#v3mvWt zr}wox_>T^l&tZRl8^YM0;;RqNP3pFH^K%f+ImfrgF7k1N?|7R36{){AuSVx4Pe$0j zlwXDLv;F+e*xUI8!afuHeYED-n0byV`!{$_)pJ}2uRz%6EPvq+>x1nR{10e-FaBBV zX@2m>+n+m!uZx}GGe`}a+x*JEwl?XtJoC=Et^amR2fqlbY+u7$?{b_w7bk;!GPKV< z#s3;R`Gom~@Llqp`=sZHpAG&VcIb2bsPXprEZ`p_{5|kZzVD~n&xHki9OJeJPoZ<) z;+D7ljr(EDy2l?rYQEZM7oSG>?!hnkw6)9jKK}jBw6Ei0z8j}pml{9t?l>lVSL|_K z@LAja>|*}V=Y5tQ;t7OjR`45+JD(BjF#iZy-Q*{pXdm->e##f-CcU<2`GpAQ*2f3G z=zYNUG5+F&vCN{i*xt)8 zjXl6eV;|!mBmB2(oBX&_?d!Fe&%{2<>;K++l+W71e}iz$I_JM^99)Y6KeldO>TX_% zaE*fJeKXuw)?RL)R|miCTkY?-g@25dwomiqnfCF6e~mC!$ysv};d9sW?XhS4gLUuQ zo?m{p#E<-ranWi1!-n^7-NVoL$M*MH#(Qzr_F-Q1-8dgO^F3?we&@-X5a#V>e%3kX zV6Euo<5*yy;9rF8&g}}{|NGA0_Sw7@VXYYC(+KArT>F9b%09urGi5&O6u%4Mv$pe3 zaMt!q-1kH0Q!#IO4;Jex|K2~fkC_U-*gm)5h5y|C+;09HR@whJzo+Rs=@MUkukq2{ z{7QuLU(4S`xR1{9D}K`Mwfx=K=lB&rjoW$4&#lFd6MPimILG)>?BJWH+w*oK|2+0I z-};O8_9A!u(s!_iCO@92pntM9K z_e%LpVhY-%K%1@p> zFPXN_Qhp1rKWHxTrxEt4@dtiyUb4#e9lY-W^OAzD@WBTAdw~B2;hpC+&+IY&hZZLt{A;9j z@?@X6)SS@4Z+^o$gXcc2JwEd}i|{TK{6>U(e1NZdy7P3L z+5E)N&N<7Q&{}hN1mU}n^FJW$)8N~mG0)#MB(2 z`s40RzTd9)_{`=XW0~zue(Xou$LZ!@qhNdTQS%>RJcHl*F>9&qC4Nr1y?>4m?>5f1 zSNZXKtjl+K4)Wh3{Ol?I*xvTJmHF!7c%J;BBh~~zJH)sBwdaocGsus+b6%3@1zbY- zT_$+?6RwdCzG}R^{|p{K=6cy4eEp}}=N5btVNP~@W?u5o*r=OayxW@dDr3mc{+!RS zJ;!hPyz|#Z?mXT;PVhToZ{e4JvHjdB@(mN#1pD{!R}kLqo1FQQpVfKZf+=0%3Yxmg zci@t)@n=i!qW#eG`S$_Xl z+TVQ_U;3(jY!80%*TR@uZ}}akU8B(aj(cKr?(6Mq7yQs~7_0kOyZG-g9*)mTCfoCH zDJS2Wm(*}a4h>@;V<6X z?g@U}FU?`w7xR8B)5rLy2=o6EFTdRWtX}>u!e^c1$@_LC{q_%@fB&vzyAB>fn5z{Y zoz;~b(_`HGfUcyjgLh;4LGERq`@pVb%Jv2P6@>NYG{5CRU9GuVomU#;W$