This commit is contained in:
2018-04-17 12:05:48 +02:00
parent 14edc0e745
commit 58a1260003
428 changed files with 41350 additions and 477 deletions
+49
View File
@@ -0,0 +1,49 @@
#!/usr/bin/env python
## @package ca: EPICS-CA interface module for Python.
"""CA modlue : EPICS-CA interface module for Python.
This module provide a version of EPICS-CA and Python interface.
It users C module _ca. _ca module basically maps C-API in EPICS ca library into python. Interface between ca.py and _ca module is subject for change. You should not depend on it. API in ca.py will be preserved in future releases as much as possible.
Author: Noboru Yamamoto, KEK, JAPAN. -2007.
$Revision: 1.4 $
"""
__version__ = "$Revision: 1.4 $"
# $Source: /cvs/G/EPICS/extensions/src/PythonCA/src/ca.py,v $
import time,gc,sys,atexit
if sys.hexversion >= 0x03000000:
import _thread as thread
else:
import thread
# autGIL is not compatible with Tkinter and wx. So code was removed
# force thread module to call PyEval_InitThread in it.
__foo_lock=thread.allocate_lock()
def __foo():
"""
test function foo
This function is used to ensure thread module is initialized before
loading _ca module.
"""
global __foo_lock
__foo_lock.release()
thread.exit_thread()
# See Python/Include/ceval.h
__foo_lock.acquire()
thread.start_new_thread(__foo,()) # __foo release lock
__foo_lock.acquire() # make sure threading is activated
import _ca
# version from _ca314.cpp
version=_ca.version
revision=_ca.release
# some constants for EPICS channel Access library
from cadefs import *
from caError import *
# for FNAL version you need to provide _ca_fnal.py and import every thin from them
from _ca_fnal import *