Treat ENUM as signed to allow things like %#{A=-1|B=0|C=1}
This commit is contained in:
@ -188,10 +188,10 @@ static long writeData(dbCommon *record, format_t *format)
|
|||||||
dval = ((epicsUInt32 *)aai->bptr)[nowd];
|
dval = ((epicsUInt32 *)aai->bptr)[nowd];
|
||||||
break;
|
break;
|
||||||
case DBF_SHORT:
|
case DBF_SHORT:
|
||||||
|
case DBF_ENUM:
|
||||||
dval = ((epicsInt16 *)aai->bptr)[nowd];
|
dval = ((epicsInt16 *)aai->bptr)[nowd];
|
||||||
break;
|
break;
|
||||||
case DBF_USHORT:
|
case DBF_USHORT:
|
||||||
case DBF_ENUM:
|
|
||||||
dval = ((epicsUInt16 *)aai->bptr)[nowd];
|
dval = ((epicsUInt16 *)aai->bptr)[nowd];
|
||||||
break;
|
break;
|
||||||
case DBF_CHAR:
|
case DBF_CHAR:
|
||||||
@ -231,10 +231,10 @@ static long writeData(dbCommon *record, format_t *format)
|
|||||||
lval = ((epicsUInt32 *)aai->bptr)[nowd];
|
lval = ((epicsUInt32 *)aai->bptr)[nowd];
|
||||||
break;
|
break;
|
||||||
case DBF_SHORT:
|
case DBF_SHORT:
|
||||||
|
case DBF_ENUM:
|
||||||
lval = ((epicsInt16 *)aai->bptr)[nowd];
|
lval = ((epicsInt16 *)aai->bptr)[nowd];
|
||||||
break;
|
break;
|
||||||
case DBF_USHORT:
|
case DBF_USHORT:
|
||||||
case DBF_ENUM:
|
|
||||||
lval = ((epicsUInt16 *)aai->bptr)[nowd];
|
lval = ((epicsUInt16 *)aai->bptr)[nowd];
|
||||||
break;
|
break;
|
||||||
case DBF_CHAR:
|
case DBF_CHAR:
|
||||||
|
@ -217,10 +217,10 @@ static long writeData(dbCommon *record, format_t *format)
|
|||||||
dval = ((epicsUInt32 *)aao->bptr)[nowd];
|
dval = ((epicsUInt32 *)aao->bptr)[nowd];
|
||||||
break;
|
break;
|
||||||
case DBF_SHORT:
|
case DBF_SHORT:
|
||||||
|
case DBF_ENUM:
|
||||||
dval = ((epicsInt16 *)aao->bptr)[nowd];
|
dval = ((epicsInt16 *)aao->bptr)[nowd];
|
||||||
break;
|
break;
|
||||||
case DBF_USHORT:
|
case DBF_USHORT:
|
||||||
case DBF_ENUM:
|
|
||||||
dval = ((epicsUInt16 *)aao->bptr)[nowd];
|
dval = ((epicsUInt16 *)aao->bptr)[nowd];
|
||||||
break;
|
break;
|
||||||
case DBF_CHAR:
|
case DBF_CHAR:
|
||||||
@ -260,10 +260,10 @@ static long writeData(dbCommon *record, format_t *format)
|
|||||||
lval = ((epicsUInt32 *)aao->bptr)[nowd];
|
lval = ((epicsUInt32 *)aao->bptr)[nowd];
|
||||||
break;
|
break;
|
||||||
case DBF_SHORT:
|
case DBF_SHORT:
|
||||||
|
case DBF_ENUM:
|
||||||
lval = ((epicsInt16 *)aao->bptr)[nowd];
|
lval = ((epicsInt16 *)aao->bptr)[nowd];
|
||||||
break;
|
break;
|
||||||
case DBF_USHORT:
|
case DBF_USHORT:
|
||||||
case DBF_ENUM:
|
|
||||||
lval = ((epicsUInt16 *)aao->bptr)[nowd];
|
lval = ((epicsUInt16 *)aao->bptr)[nowd];
|
||||||
break;
|
break;
|
||||||
case DBF_CHAR:
|
case DBF_CHAR:
|
||||||
|
@ -78,11 +78,11 @@ static long writeData(dbCommon *record, format_t *format)
|
|||||||
return streamPrintf(record, format, co->oval);
|
return streamPrintf(record, format, co->oval);
|
||||||
}
|
}
|
||||||
case DBF_ULONG:
|
case DBF_ULONG:
|
||||||
case DBF_ENUM:
|
|
||||||
{
|
{
|
||||||
return streamPrintf(record, format, (unsigned long)co->oval);
|
return streamPrintf(record, format, (unsigned long)co->oval);
|
||||||
}
|
}
|
||||||
case DBF_LONG:
|
case DBF_LONG:
|
||||||
|
case DBF_ENUM:
|
||||||
{
|
{
|
||||||
return streamPrintf(record, format, (long)co->oval);
|
return streamPrintf(record, format, (long)co->oval);
|
||||||
}
|
}
|
||||||
|
@ -47,9 +47,9 @@ static long writeData(dbCommon *record, format_t *format)
|
|||||||
switch (format->type)
|
switch (format->type)
|
||||||
{
|
{
|
||||||
case DBF_ULONG:
|
case DBF_ULONG:
|
||||||
case DBF_ENUM:
|
|
||||||
return streamPrintf(record, format, (unsigned long)li->val);
|
return streamPrintf(record, format, (unsigned long)li->val);
|
||||||
case DBF_LONG:
|
case DBF_LONG:
|
||||||
|
case DBF_ENUM:
|
||||||
return streamPrintf(record, format, (long)li->val);
|
return streamPrintf(record, format, (long)li->val);
|
||||||
}
|
}
|
||||||
return ERROR;
|
return ERROR;
|
||||||
|
@ -68,9 +68,9 @@ static long writeData(dbCommon *record, format_t *format)
|
|||||||
switch (format->type)
|
switch (format->type)
|
||||||
{
|
{
|
||||||
case DBF_ULONG:
|
case DBF_ULONG:
|
||||||
case DBF_ENUM:
|
|
||||||
return streamPrintf(record, format, lo->val);
|
return streamPrintf(record, format, lo->val);
|
||||||
case DBF_LONG:
|
case DBF_LONG:
|
||||||
|
case DBF_ENUM:
|
||||||
return streamPrintf(record, format, (long)lo->val);
|
return streamPrintf(record, format, (long)lo->val);
|
||||||
}
|
}
|
||||||
return ERROR;
|
return ERROR;
|
||||||
|
@ -80,6 +80,7 @@ static long writeData(dbCommon *record, format_t *format)
|
|||||||
switch (format->type)
|
switch (format->type)
|
||||||
{
|
{
|
||||||
case DBF_LONG:
|
case DBF_LONG:
|
||||||
|
case DBF_ULONG:
|
||||||
{
|
{
|
||||||
/* print VAL or RVAL ? Look if any value is defined */
|
/* print VAL or RVAL ? Look if any value is defined */
|
||||||
val = mbbi->val;
|
val = mbbi->val;
|
||||||
|
@ -86,11 +86,11 @@ static long writeData(dbCommon *record, format_t *format)
|
|||||||
switch (format->type)
|
switch (format->type)
|
||||||
{
|
{
|
||||||
case DBF_ULONG:
|
case DBF_ULONG:
|
||||||
case DBF_ENUM:
|
|
||||||
val = mbboD->rval;
|
val = mbboD->rval;
|
||||||
if (mbboD->mask) val &= mbboD->mask;
|
if (mbboD->mask) val &= mbboD->mask;
|
||||||
break;
|
break;
|
||||||
case DBF_LONG:
|
case DBF_LONG:
|
||||||
|
case DBF_ENUM:
|
||||||
val = (epicsInt32)mbboD->rval;
|
val = (epicsInt32)mbboD->rval;
|
||||||
if (mbboD->mask) val &= (epicsInt32)mbboD->mask;
|
if (mbboD->mask) val &= (epicsInt32)mbboD->mask;
|
||||||
break;
|
break;
|
||||||
|
@ -42,6 +42,7 @@ static long readData(dbCommon *record, format_t *format)
|
|||||||
return OK;
|
return OK;
|
||||||
}
|
}
|
||||||
case DBF_LONG:
|
case DBF_LONG:
|
||||||
|
case DBF_UONG:
|
||||||
case DBF_ENUM:
|
case DBF_ENUM:
|
||||||
{
|
{
|
||||||
long lval;
|
long lval;
|
||||||
@ -71,6 +72,7 @@ static long writeData(dbCommon *record, format_t *format)
|
|||||||
return streamPrintf(record, format, sco->oval);
|
return streamPrintf(record, format, sco->oval);
|
||||||
}
|
}
|
||||||
case DBF_LONG:
|
case DBF_LONG:
|
||||||
|
case DBF_UONG:
|
||||||
case DBF_ENUM:
|
case DBF_ENUM:
|
||||||
{
|
{
|
||||||
return streamPrintf(record, format, (long)sco->oval);
|
return streamPrintf(record, format, (long)sco->oval);
|
||||||
|
@ -189,10 +189,10 @@ static long writeData(dbCommon *record, format_t *format)
|
|||||||
dval = ((epicsUInt32 *)wf->bptr)[nowd];
|
dval = ((epicsUInt32 *)wf->bptr)[nowd];
|
||||||
break;
|
break;
|
||||||
case DBF_SHORT:
|
case DBF_SHORT:
|
||||||
|
case DBF_ENUM:
|
||||||
dval = ((epicsInt16 *)wf->bptr)[nowd];
|
dval = ((epicsInt16 *)wf->bptr)[nowd];
|
||||||
break;
|
break;
|
||||||
case DBF_USHORT:
|
case DBF_USHORT:
|
||||||
case DBF_ENUM:
|
|
||||||
dval = ((epicsUInt16 *)wf->bptr)[nowd];
|
dval = ((epicsUInt16 *)wf->bptr)[nowd];
|
||||||
break;
|
break;
|
||||||
case DBF_CHAR:
|
case DBF_CHAR:
|
||||||
@ -232,10 +232,10 @@ static long writeData(dbCommon *record, format_t *format)
|
|||||||
lval = ((epicsUInt32 *)wf->bptr)[nowd];
|
lval = ((epicsUInt32 *)wf->bptr)[nowd];
|
||||||
break;
|
break;
|
||||||
case DBF_SHORT:
|
case DBF_SHORT:
|
||||||
|
case DBF_ENUM:
|
||||||
lval = ((epicsInt16 *)wf->bptr)[nowd];
|
lval = ((epicsInt16 *)wf->bptr)[nowd];
|
||||||
break;
|
break;
|
||||||
case DBF_USHORT:
|
case DBF_USHORT:
|
||||||
case DBF_ENUM:
|
|
||||||
lval = ((epicsUInt16 *)wf->bptr)[nowd];
|
lval = ((epicsUInt16 *)wf->bptr)[nowd];
|
||||||
break;
|
break;
|
||||||
case DBF_CHAR:
|
case DBF_CHAR:
|
||||||
|
Reference in New Issue
Block a user