Release Notes

0.7.1 (12-01-2018)

  • 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)
  • Changed SimplePV.writeValue() to post the update event only on the this specific PV. (Issue #48)
  • Changed Driver.setParamInfo() and Driver.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 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_backack requests with 0 count. (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 (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)

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/ so that MTEST:STATUS and MTEST:RAND are writable.

0.5.0 (06-10-2014)

  • Fixed that 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:

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/ provides an example and better explained in UserDocuments
  • Added new type char.
    It is used to represent a long string (>40 chars). And it behaves just like string parameters in driver. example/ 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

0.1 (19-07-2011)

  • Initial release.