Release Notes

Changes since R5-0

  • make it build with base-3.15 and base-7

Changes since R4-7

  • cvtRecord: use typed rset
  • adapt to EPICS 7

Changes since R4-6

  • CSM is now published under license GPL v.3.

Changes since R4-5

  • build documentation only if required explicitly (make docs)
  • csmbase: include EPICS shareLib.h and define epicsExportSharedSymbols
  • csmbase: indent CPP directives if nested inside #if or #else
  • csmbase: remove header generation, move docs for public entities to header
  • remove outdated header comment and history from csmbase.c

Changes since R4-4

This version compiles (and should work) with base version 3.14.12 and later (including 3.15 and 3.16).

  • added more base versions to configure/RELEASE

  • cvtRecord: removed separate header generation for menus

    These cause problems with base-3.15 or later.

  • cvtRecord: slightly more intelligent path concatenation

    It gets rid of extraneous slashes (and adds missing ones) at the concatenation points.

Changes since R4-3

  • removed doxygen from Makefile

    It seems that doxygen config file format is an ever moving target and I can no longer be bothered to adapt the Makefile so that it works.

Changes since R4-2

  • cvtRecord: added BDIR/NBDI fields

    The directory where a table file is located is now constructed by concatenating the new BDIR with the TDIR fields (with a “/” in between). This is a work-around for the 40 character string limitation in EPICS. Specifically, there is currently no existing record type that can calculate a string concatenation such that the result is longer than 40 characters.

Changes since R4-1

  • fix in cvtRecord support: must not pass 0 to epicsMessageQueueCreate
  • added documentation of file format to index page

Changes since R4-0

Csmbase optimized for speed.

  • The search for a matching interval in a table of break-points was optimized. The lookup function now looks first to the previous interval, then the intervals below and above the previous one. Only if these intervals don’t match it performs a binary search across the while break point table.
  • If the functions csm_x, csm_y or csm_z are called with the same values as the last time, they do not perform any calculation but return the previous value from their internal cache.

Changes since R3-6

Only internal changes.

Changes since R3-5

  • default base dependency changed to 3-14-12-1-1
  • added dir dependencies for parallel make

Changes since R3-4

  • The csm library now handles one-dimensional tables with just one point correctly as a constant function. Previously they returned NAN, except if the input was exactly at the specified point.
  • Empty one-dimensional tables (with no points defined) now return NAN instead of zero.

Changes since R3-3

  • cvtRecord: removed “invalid pv link” error messages. This is consistent with how the records in base work and avoids misleading error messages at startup time when CA input links have not yet connected.
  • removed dir creation from upload target actions
  • cvtRecord: layout changes, renamed csm_alarm to checkAlarms
  • removed obsolete cvtRecord.html

Changes since R3-2

  • fixed performance problem by moving inactive mode related link parsing from process to init_record
  • moved db_post_events call for X and Y fields to monitor routine
  • replaced DBF_FLOAT with DBF_DOUBLE in cvt limit fields
  • added sphinx generated documentation/download website
  • added boringfile
  • added hgen.pl to make module self-contained