diff --git a/KnownProblems.html b/KnownProblems.html index 7f273aef3..e4e49dbbb 100644 --- a/KnownProblems.html +++ b/KnownProblems.html @@ -11,7 +11,25 @@

EPICS base R3.13.0beta1: Known Problems

-

+

Device Support, which does not implement special_linconv, is broken

+

In release beta1 changes were made to allow ESLO EOFF to be +database design fields. Because of changes that were made to aiRecord and +aoRecord device support that does not implement special_linconv +may no longer work.

+

To fix aiRecord.c, in init_record replace

+
    if ((pai->linr == menuConvertLINEAR) && pdset->special_li
+nconv) {
+
+

by

+
    if ((pai->eslo==1.0) && (pai->eoff==0.0)) {
+
+

To fix aoRecord.c, in init_record replace

+
    if ((pao->linr == menuConvertLINEAR) && pdset->special_li
+nconv) {
+
+

by

+
    if ((pao->eslo==1.0) && (pao->eoff==0.0)) {
+

CA puts to disabled record

If a CA client issues a put to a disabled record then, when the record is ena diff --git a/RELEASE_NOTES.html b/RELEASE_NOTES.html index 1e28b18ec..098d2335c 100644 --- a/RELEASE_NOTES.html +++ b/RELEASE_NOTES.html @@ -16,6 +16,21 @@

Changes since beta1

+

aiRecord and aoRecord: Setting eoff=egul

+ +

Instead of init_record executing code like

+
    if ((pai->linr == menuConvertLINEAR) && pdset->special_linconv) {
+        pai->eoff = pai->egul;
+    }
+
+ +

It now executes:

+
    if ((pai->eslo==1.0) && (pai->eoff==0.0)) {
+        pai->eoff = pai->egul;
+    }
+
+

aoRecord has a similar change

+

CA puts to disabled record

If a CA client issues a put to a disabled record then, when the record is ena diff --git a/src/rec/aiRecord.c b/src/rec/aiRecord.c index 1a6fc9ede..90bdf4118 100644 --- a/src/rec/aiRecord.c +++ b/src/rec/aiRecord.c @@ -183,7 +183,8 @@ static long init_record(void *precord,int pass) return(S_dev_missingSup); } pai->init = TRUE; - if ((pai->linr == menuConvertLINEAR) && pdset->special_linconv) { + /*The following is for old device support that doesnt know about eoff*/ + if ((pai->eslo==1.0) && (pai->eoff==0.0)) { pai->eoff = pai->egul; } diff --git a/src/rec/aoRecord.c b/src/rec/aoRecord.c index 116b9569c..9fa07adb2 100644 --- a/src/rec/aoRecord.c +++ b/src/rec/aoRecord.c @@ -180,7 +180,8 @@ static long init_record(struct aoRecord *pao, int pass) return(S_dev_missingSup); } pao->init = TRUE; - if ((pao->linr == menuConvertLINEAR) && pdset->special_linconv) { + /*The following is for old device support that doesnt know about eoff*/ + if ((pao->eslo==1.0) && (pao->eoff==0.0)) { pao->eoff = pao->egul; } @@ -212,7 +213,6 @@ static long init_record(struct aoRecord *pao, int pass) default: recGblRecordError(S_dev_badInitRet,(void *)pao,"ao: init_record"); return(S_dev_badInitRet); - break; } } pao->oval = pao->pval = pao->val;