for old device support that doesnt know about eoff

This commit is contained in:
Marty Kraimer
2002-05-29 12:03:23 +00:00
parent 9093fe8385
commit 6884793f40
4 changed files with 38 additions and 4 deletions

View File

@@ -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-&gt;linr == menuConvertLINEAR) &amp;&amp; pdset-&gt;special_li
nconv) {
</pre>
<p>by</p>
<pre> if ((pai-&gt;eslo==1.0) &amp;&amp; (pai-&gt;eoff==0.0)) {
</pre>
<p>To fix aoRecord.c, in init_record replace</p>
<pre> if ((pao-&gt;linr == menuConvertLINEAR) &amp;&amp; pdset-&gt;special_li
nconv) {
</pre>
<p>by</p>
<pre> if ((pao-&gt;eslo==1.0) &amp;&amp; (pao-&gt;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

View File

@@ -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-&gt;linr == menuConvertLINEAR) &amp;&amp; pdset-&gt;special_linconv) {
pai-&gt;eoff = pai-&gt;egul;
}
</pre>
<p>It now executes:</p>
<pre> if ((pai-&gt;eslo==1.0) &amp;&amp; (pai-&gt;eoff==0.0)) {
pai-&gt;eoff = pai-&gt;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

View File

@@ -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;
}

View File

@@ -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;