From f98d74b0640e9f25c74b05f644dbfe969faf7b5c Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Wed, 25 Mar 2009 23:06:18 +0000 Subject: [PATCH] Long string support. --- documentation/RELEASE_NOTES.html | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/documentation/RELEASE_NOTES.html b/documentation/RELEASE_NOTES.html index b46f7db42..516fc2fc8 100644 --- a/documentation/RELEASE_NOTES.html +++ b/documentation/RELEASE_NOTES.html @@ -2,9 +2,6 @@ "http://www.w3.org/TR/html4/loose.dtd"> - - - EPICS Base R3.14.x Release Notes @@ -15,9 +12,26 @@

Changes between 3.14.10 and 3.14.11

-

+

Long string support

-

Darwin no longer uses _environ

+

The IOC now provides support for strings longer than 40 characters through +Channel Access in a manner that is fully backwards compatible with older +versions of the CA library, although not all CA clients can make use of this at +the moment.

+ +

Adding the suffix '$' to the field name of an IOC PV name (through either +Channel Access or Database Access) causes the native type of that field to be +reported as an array of DBF_CHAR, as long as the field type is DBF_STRING, +DBF_INLINK, DBF_OUTLINK or DBF_FWDLINK. It is then possible to use a DBF_CHAR +array to read, write and monitor values from that field, and the 40 character +string length limit imposed by the DBF_STRING type is replaced by the amount of +storage allocated for the string on the IOC (for link fields the limit is +related to the maximum length of a record name). Both MEDM and EDM can already +present such DBF_CHAR arrays as strings in their text widgets (although you do +have to configure the widget to format it as text), so this solution already +works with some CA clients, although by no means all clients support it yet.

+ +

Darwin no longer uses _environ

The Darwin version of epicsEnvShow (in src/libCom/osi/os/Darwin/osdEnv.c) now uses _NSGetEnviron() to get the pointer to the environment string @@ -27,6 +41,7 @@ table.

The existing routines used to hash strings have been replaced by a new pair of functions that are prototyped in the epicsString.h header file:

+
unsigned int epicsStrHash(const char *str, unsigned int seed);
 unsigned int epicsMemHash(const char *str, size_t length, unsigned int seed);