- Fixed spurious value update after startup. (Issue #50)
- Mitigated the race condition in . It could cause one event to fire twice in rare cases. This is not a total fix but good enough. (PR #49)
SimplePV.writeValue()to post the update event only on the this specific PV. (Issue #48)
Driver.setParamEnums()not to call meth:Driver.updatePVs, and leave that to the user.
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.
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)
Driver.getParamInfo()to retrieve the current PV configuration. (PR #45)
- Added an example rpi_gpio.py to control GPIO on RaspberryPi.
- Fixed the anaconda upload on Travis Linux.
- Rebuilt PyPI/Anaconda packages to fix the wrong number of elements transfer when
0count. (Issue #43)
- 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.
- 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 220.127.116.11. (Issue #25 and #29)
- Continuous integration/deployment configured at Travis and AppVeyor.
- 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)
- 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
Driver.setParamInfo()to set PV graphics/control meta properties, e.g. limits, units, precision.
- 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)
- 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.
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.
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.
- 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.
- 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 UserDocuments https://code.google.com/p/pcaspy/wiki/UserDocuments#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.
- 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
- 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
- Initial release.