| Version | Date | Description | 
|---|---|---|
| 2.8 | 2014/09/26 | File change notification. First review of VNumberArray to better support intensity graphs. | 
| 2.7 | 2014/07/31 | File change notification. First review of VNumberArray to better support intensity graphs. | 
| 2.6 | 2014/05/23 | Graphene integration of new plots. | 
| 2.5 | 2014/03/27 | PVA services support. | 
| 2.4 | 2014/01/25 | Integration framework for ca regression tests. | 
| 2.3 | 2013/10/14 | Exec service. Finalized operator support in formula. | 
| 2.2 | 2013/06/27 | Service integration. Formula updates (including dynamic function registration). Better Graphene integration. | 
| 2.1 | 2013/03/27 | Stabilization. Bugfixes and improvements | 
| 2.0 | 2013/02/12 | Internal refactoring | 
| Type | Changes | By | 
|---|---|---|
![]()  | file: use ServiceLoader to find supported FileFormats | carcassi | 
![]()  | file-json: adding JSON serialization support for file datasource | carcassi | 
![]()  | vtype-json: adding JSON serialization for vTypes | carcassi | 
![]()  | core: improve throughput of creating readers | carcassi | 
![]()  | core: printing stack trace for unclosed pvs | carcassi | 
![]()  | core: passive scanning | carcassi | 
| Type | Changes | By | 
|---|---|---|
![]()  | formula: better range handling for histogramOf function | carcassi | 
![]()  | file: .list format for string and number arrays | carcassi | 
![]()  | file: notification if file changes | carcassi | 
![]()  | vtype: adding VBooleanArray | carcassi | 
![]()  | vtype: VNumberArray review (support for inverted DimensionInfo) | carcassi | 
![]()  | file: adding pluggable support adding functions to compose VNumberArray metadata from different pvs | carcassi | 
![]()  | formula: adding TRUE, FALSE, E, PI as constants | carcassi | 
![]()  | file: pluggable file format | shroffk | 
![]()  | formula: indexOf(VEnum) | tonlyttt | 
| Type | Changes | By | 
|---|---|---|
![]()  | formula: better range detection for histogramOf function | carcassi | 
![]()  | core: errors on background threads are now logged | carcassi | 
![]()  | timecache: first work on working prototype | arnaud | 
![]()  | formula: added a couple of function to filter tables based on values and numeric ranges | carcassi | 
![]()  | jca: disconnected value should hole the time of the disconnect | carcassi | 
![]()  | graphene: integrated intensity and multi-line graphs | carcassi | 
![]()  | sim: adding a couple channels to test 2D array based widgets | carcassi | 
| Type | Changes | By | 
|---|---|---|
![]()  | vtype: factory cleanup | carcassi | 
![]()  | pva: adding support for rpc services | sekoranja | 
![]()  | io: using new epics-util CSV parser | carcassi | 
![]()  | formula: formula function testing cleanup | carcassi | 
![]()  | formula: review and cleanup of function implementations; better null/alarm/time handling | carcassi | 
![]()  | formula: adding element-wise operations for array calculation | sfnrendra3 | 
| Type | Changes | By | 
|---|---|---|
![]()  | vtype: adding display information to VNumberArray | carcassi | 
![]()  | formula: adding function to calculate histograms | carcassi | 
![]()  | jca: handling time with nanosec out of range | carcassi | 
![]()  | jca: better handling of reconnects with type change and metadata monitors | carcassi | 
![]()  | integration: adding framework for regression tests for channel access | carcassi | 
![]()  | formula: tableOf better handles unconnected arguments | carcassi | 
| Type | Changes | By | 
|---|---|---|
![]()  | formula: better handling of time and alarm for operators | carcassi | 
![]()  | exec: adding service for command line execution | carcassi | 
![]()  | jdbc: more DB types supported in the mapping | carcassi | 
![]()  | formula: adding boolean operators and logical operators | carcassi | 
![]()  | formula: added support for stateful functions, such as pv(VString) and pvs(String) | carcassi | 
![]()  | vtype: adding standard color map | carcassi | 
![]()  | vtype: adding VBoolean | carcassi | 
| Type | Changes | By | 
|---|---|---|
![]()  | formula: basic numeric math function return highest alarm and latest time of arguments; also handle null better | carcassi | 
![]()  | exec: first draft for services that execute commands; if output is a CSV, it's parsed to a VTable | carcassi | 
![]()  | vtype: add alarm and time compare, toString and other utility functions | carcassi | 
![]()  | formula: significant refactoring in test code | carcassi | 
![]()  | vtype/file: adding temporary support for images in file; review VImage conversion routines | carcassi | 
![]()  | jdbc: adding support for Timestamp/numeric/boolean/bit null, temporary support for images in file; review VImage conversion routines | carcassi | 
![]()  | vtype: VTable can handle timestamps | carcassi | 
![]()  | jca: using the not sharing of channels to prevent concurrency issues | carcassi | 
![]()  | jdbc: ability to create database services from XML descriptions | carcassi | 
![]()  | vtype: VBoolean support | carcassi | 
![]()  | vtype: added color definitions for Alarm | carcassi | 
![]()  | formula: highestSeverity | carcassi | 
![]()  | formula: added comparative operators, bitwise operator, logical operator | carcassi | 
![]()  | formula: added a few operators for arrays | carcassi | 
![]()  | formula: added toString/toRadians/toDegrees | carcassi | 
![]()  | formula: added dynamic pv and pvs functions (pointer like function) | carcassi | 
![]()  | formula: added concat function for string concatenation | carcassi | 
![]()  | formula: support for stateful and dynamic functions | carcassi | 
![]()  | vtype/formula: adding natural join | carcassi | 
![]()  | vtype: adding alarm logic that uses both value and connection information | carcassi | 
![]()  | jca: support for Integer[], Double[] and long String with warnings | carcassi | 
![]()  | jdbc services: prototype for introducting database services | carcassi | 
![]()  | jca: partial fix to double connection on the same channel with the different qualifiers | carcassi | 
![]()  | loc: default value is null, allow typed pvs, discard value when disconnect | carcassi | 
![]()  | formula: single quotes allows for simple pv names | carcassi | 
![]()  | sim: adding new channels (intermittent channel and delayed connection channel, sine/square/sawtooth/triangle waveforms) | carcassi | 
![]()  | vtype: valueOf returns UNDEFINED for null values | carcassi | 
![]()  | graphene: support for bubble graph expression | carcassi | 
![]()  | graphene: graph result returns original data and selection index | carcassi | 
![]()  | formula: formula now uses syntax with '=' before an actual formula | carcassi | 
![]()  | formula: adding functions tableOf/column/range/step to generate tables from column data | carcassi | 
![]()  | vtype: utilities to assemble vTables | carcassi | 
![]()  | core: better error message if a type is not setup for notification | carcassi | 
![]()  | vtype: utilities to compare values (only value, no timestamp/alarm/display) | carcassi | 
![]()  | graphene: line/scatter graphs now work on tables instead of multiple waveforms | carcassi | 
![]()  | vtype: added toString implementation for VTable | carcassi | 
![]()  | core: moved StringUtils and ListNumbers to epics-util | carcassi | 
![]()  | file: new datasource to read files; can read a csv table | carcassi | 
![]()  | vtype: changing VTable definition so that returns List and ListNumbers instead of arrays | carcassi | 
![]()  | vtype: adding CSV import/export for most types | carcassi | 
![]()  | service: first cut for service integration | carcassi | 
![]()  | formula: formula functions dynamic registration; modularized all implemented functions | carcassi | 
![]()  | formula: all single argument functions from java.util.Math are registered as formula functions | carcassi | 
![]()  | core: don't send TimeoutException if another exception was sent before | carcassi | 
![]()  | loc: add support for all VTypes | carcassi | 
![]()  | sim: add table simulation | carcassi | 
![]()  | pva: enum and array write support | msekoranja | 
| Type | Changes | By | 
|---|---|---|
![]()  | jca: better behavior if native library is not found | carcassi | 
![]()  | formula: read/write expression, allows write only if it's a single channel, if not reports exception | carcassi | 
![]()  | core: adding machinery to support Exception handling while creating expressions, so that exceptions are reported on the reader/writer | carcassi | 
![]()  | jca: workaround if Channel.getFieldType() returns UNKNOWN | carcassi | 
![]()  | jca: workaround, accessright callback dispatched to a separate thread for JNI (needs to be removed) | carcassi | 
![]()  | formula: added function to create array from expressions | carcassi | 
| Type | Changes | By | 
|---|---|---|
![]()  | core: expression using the same channel twice now work properly | carcassi |