for old device support that doesnt know about eoff
This commit is contained in:
@@ -11,7 +11,25 @@
|
||||
<body>
|
||||
<h1 style="text-align: center">EPICS base R3.13.0beta1: Known Problems</h1>
|
||||
|
||||
<p> </p>
|
||||
<h2>Device Support, which does not implement special_linconv, is broken</h2>
|
||||
<p>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.<p>
|
||||
<p>To fix aiRecord.c, in init_record replace</p>
|
||||
<pre> if ((pai->linr == menuConvertLINEAR) && pdset->special_li
|
||||
nconv) {
|
||||
</pre>
|
||||
<p>by</p>
|
||||
<pre> if ((pai->eslo==1.0) && (pai->eoff==0.0)) {
|
||||
</pre>
|
||||
<p>To fix aoRecord.c, in init_record replace</p>
|
||||
<pre> if ((pao->linr == menuConvertLINEAR) && pdset->special_li
|
||||
nconv) {
|
||||
</pre>
|
||||
<p>by</p>
|
||||
<pre> if ((pao->eslo==1.0) && (pao->eoff==0.0)) {
|
||||
</pre>
|
||||
|
||||
<h2>CA puts to disabled record</h2>
|
||||
<p>If a CA client issues a put to a disabled record then, when the record is ena
|
||||
|
||||
@@ -16,6 +16,21 @@
|
||||
|
||||
<h2>Changes since beta1</h2>
|
||||
|
||||
<p><strong>aiRecord and aoRecord: Setting eoff=egul</strong></p>
|
||||
|
||||
<p>Instead of init_record executing code like</p>
|
||||
<pre> if ((pai->linr == menuConvertLINEAR) && pdset->special_linconv) {
|
||||
pai->eoff = pai->egul;
|
||||
}
|
||||
</pre>
|
||||
|
||||
<p>It now executes:</p>
|
||||
<pre> if ((pai->eslo==1.0) && (pai->eoff==0.0)) {
|
||||
pai->eoff = pai->egul;
|
||||
}
|
||||
</pre>
|
||||
<p>aoRecord has a similar change</p>
|
||||
|
||||
<p><strong>CA puts to disabled record</strong></p>
|
||||
|
||||
<p>If a CA client issues a put to a disabled record then, when the record is ena
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user