
.. py:currentmodule:: pcaspy

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 :meth:`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 :class:`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 :meth:`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 :meth:`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 :meth:`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 <https://pypi.python.org/pypi/pcaspy>`_.
        * Document is hosted at `Read the Docs <https://pcaspy.readthedocs.org>`_.

0.4.1 (23-04-2013)
------------------
    * Fixed PV initial status. By startup, it is UDF/INVALID.
    * :meth:`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 :meth:`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.

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.
