Release Notes¶
0.8.1 (15-03-2024)¶
Fixed asyn write crash, which was introduced in 0.8.0. (Issue #95)
Building process can use an out-of-tree pcas module given by PCAS environment variable.
0.8.0 (27-03-2023)¶
Added optional argument timestamp to
Driver.setParam(). (Issue #54)Added logging of CA client host and user names in pcaspy.SimplePV.writeValue logger. (Issue #72) To enable it:
logging.getLogger('pcaspy.SimplePV.writeValue').setLevel(logging.INFO)Migrated from travis CI to github actions.
0.7.3 (15-10-2020)¶
Fixed alarm/severity checking for short type. (Issue #62)
0.7.2 (20-12-2018)¶
Added docs about installation on epics base 7+. (Issue #57)
Fixed the alarm limits checking for numeric array type. (Issue #52)
Fixed the exception when decoding non-utf8 PV searches. (Issue #59)
0.7.1 (12-01-2018)¶
Fixed spurious value update after startup. (Issue #50)
Mitigated the race condition in
Driver.updatePV(). It could cause one event to fire twice in rare cases. This is not a total fix but good enough. (PR #49)Changed
SimplePV.writeValue()to post the update event only on the this specific PV. (Issue #48)Changed
Driver.setParamInfo()andDriver.setParamEnums()not to call meth:Driver.updatePVs, and leave that to the user.
0.7.0 (21-09-2017)¶
Changed
gdd.get()to return empty string if char(int8/uin8) type scalar is 0. It used to return'\x00', this confuses the check for an empty string.Changed
Driver.setParam()so that waveform PV always posts monitor/archive events. It used to check the equality.Fixed numpy array checking. (Issue #44)
Added adel/mdel fields in scalar PV configuration in analog to EPICS IOC records. (Issue #46)
Added
Driver.getParamInfo()to retrieve the current PV configuration. (PR #45)Added an example rpi_gpio.py to control GPIO on RaspberryPi.
0.6.5 (09-05-2017)¶
Fixed the anaconda upload on Travis Linux.
Rebuilt PyPI/Anaconda packages to fix the wrong number of elements transfer when
ca_array_get_backackrequests with0count. (Issue #43)
0.6.4 (26-04-2017)¶
Fixed the crash on Windows when epics base libraies are compiled using different visual studio version than python. (Issue #41)
Fixed the sphinx docs build. (Issue #37)
Added a spec file for rpmbuild.
0.6.3 (28-02-2017)¶
Fixed that string type is wrongly converted to number. (Issue #24)
Fixed that gdd.put crashes when input is string but primitiveType is other that Int8 or Uint8. (Issue #26)
Added support of numpy array in gdd.put (Issue #28)
Changed Python 3 support from 2to3 conversion to direct compatible source code. (Issue #30)
Binary packages on PyPI is built with EPICS base 3.14.12.6. (Issue #25 and #29)
Continuous integration/deployment configured at Travis and AppVeyor.
0.6.2 (02-08-2016)¶
Fixed that the alarm/severity of string type PVs remain UDF/INVALID. (Issue #23)
Fixed that the monitor event of string type PVs are wrongly posted as double. (Issue #24)
0.6.1 (01-07-2016)¶
Fixed that PV graphics/control meta properties are not posted. See https://bugs.launchpad.net/epics-base/+bug/1510955 for the failure.
Added support of EPICS 3.15
Added
Driver.setParamInfo()to set PV graphics/control meta properties, e.g. limits, units, precision.
0.6.0 (06-06-2016)¶
Added support of request type DBR_CLASS_NAME in casPV base class. It is not overloaded in
SimplePV. The default implementation returns an empty string.Warns and truncates if enums type PV has more than 16 states or any state string length > 25. (Issue #18)
Fixed that PV of char type cannot be set to empty string. (Issue #14)
Fixed that DBE_ALARM event was not posted. (Issue #13)
0.5.1 (10-10-2014)¶
Fixed that alarm and warn limits are taken from lolo/hihi and low/high fields. (Issue #11).
Fixed example/alarm_severity.py so that MTEST:STATUS and MTEST:RAND are writable.
0.5.0 (06-10-2014)¶
Fixed that cas.py is not installed (Issue #10).
Fixed that put callback may fail if driver invokes
Driver.callbackPV()too soon(Issue #9). Thanks to Kay Kasemir.Added 16bit short integer type.
Added printout of exceptions that are raised inside Python code.
Added
Driver.setParamEnums()to change the states of enumerate PV at runtime (Issue #4).Added basic logging support. To enable console logging:
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(name)s: %(message)s')Changed so that timestamp is updated whenever
Driver.setParam()is called. It was only updated when the values are new. The new behavior is the same as EPICS IOC.
- Packaging changes:
Binary packages are distributed through PyPI.
Document is hosted at Read the Docs.
0.4.1 (23-04-2013)¶
Fixed PV initial status. By startup, it is UDF/INVALID.
Driver.setParam()makes a copy of list/numpy.ndarray objects. This solves the racing condition, in which the value could be in the middle of updating while CA client reads the value. Thanks to Kay Kasemir.
0.4 (14-01-2013)¶
Change from GPL to New BSD License for broader audience.
Added __version__ info
- Added access security control
access security control file can be loaded using
SimpleServer.initAccessSecurityFile(). The loaded rules can then be assigned to PV’s asg field. example/access_control.py provides an example and better explained in Example 5: Access Security Control.
- Added new type char.
It is used to represent a long string (>40 chars). And it behaves just like string parameters in driver. example/pysh.py provides a concrete example, in PV COMMAND and OUTPUT.
- Added timestamp info.
The timestamp is set at each setParam call with new value different to current value.
- Added alarm/severity info.
For enum type PV, the severity is configured by its states field. It is a list of severity states, which can be NO_ALARM, MINOR_ALARM, MAJOR_ALARM, INVALID_ALARM. If current state’s severity is other than NO_ALARM, alarm is STATE_ALARM.
For int or float type PV, the alarm state is configured by its low, high, lolo, hihi fields, in analogue to EPICS database.
example/alarm_severity provides an example.
0.3 (21-09-2011)¶
Fixed gdd vector memory leak introduced in 0.2
Added casPV’s writeNotify method for EPICS base 3.14.11+
Release GIL for each C function call
Added tools.ServerThread running server process in separate thread
Added preliminary Qt GUI integration example using tools.ServerThread
0.2 (16-08-2011)¶
Added Python 3 support
Added numpy data types support
Fixed the driver registration issue.
Rework gdd put/get methods
Added gdd unittest cases
Remove Makefile in favor of setup.py
0.1 (19-07-2011)¶
Initial release.