From 1b0e890ddda2ffc2925f53f787656d527f28e4a0 Mon Sep 17 00:00:00 2001 From: Dirk Zimoch Date: Mon, 20 Aug 2018 15:05:55 +0200 Subject: [PATCH] Treat ENUM as signed to allow things like %#{A=-1|B=0|C=1} --- src/devaaiStream.c | 4 ++-- src/devaaoStream.c | 4 ++-- src/devcalcoutStream.c | 2 +- src/devlonginStream.c | 2 +- src/devlongoutStream.c | 2 +- src/devmbbiStream.c | 1 + src/devmbboDirectStream.c | 2 +- src/devscalcoutStream.c | 2 ++ src/devwaveformStream.c | 4 ++-- 9 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/devaaiStream.c b/src/devaaiStream.c index 74c8842..451cdd7 100644 --- a/src/devaaiStream.c +++ b/src/devaaiStream.c @@ -188,10 +188,10 @@ static long writeData(dbCommon *record, format_t *format) dval = ((epicsUInt32 *)aai->bptr)[nowd]; break; case DBF_SHORT: + case DBF_ENUM: dval = ((epicsInt16 *)aai->bptr)[nowd]; break; case DBF_USHORT: - case DBF_ENUM: dval = ((epicsUInt16 *)aai->bptr)[nowd]; break; case DBF_CHAR: @@ -231,10 +231,10 @@ static long writeData(dbCommon *record, format_t *format) lval = ((epicsUInt32 *)aai->bptr)[nowd]; break; case DBF_SHORT: + case DBF_ENUM: lval = ((epicsInt16 *)aai->bptr)[nowd]; break; case DBF_USHORT: - case DBF_ENUM: lval = ((epicsUInt16 *)aai->bptr)[nowd]; break; case DBF_CHAR: diff --git a/src/devaaoStream.c b/src/devaaoStream.c index 14a071d..86d964b 100644 --- a/src/devaaoStream.c +++ b/src/devaaoStream.c @@ -217,10 +217,10 @@ static long writeData(dbCommon *record, format_t *format) dval = ((epicsUInt32 *)aao->bptr)[nowd]; break; case DBF_SHORT: + case DBF_ENUM: dval = ((epicsInt16 *)aao->bptr)[nowd]; break; case DBF_USHORT: - case DBF_ENUM: dval = ((epicsUInt16 *)aao->bptr)[nowd]; break; case DBF_CHAR: @@ -260,10 +260,10 @@ static long writeData(dbCommon *record, format_t *format) lval = ((epicsUInt32 *)aao->bptr)[nowd]; break; case DBF_SHORT: + case DBF_ENUM: lval = ((epicsInt16 *)aao->bptr)[nowd]; break; case DBF_USHORT: - case DBF_ENUM: lval = ((epicsUInt16 *)aao->bptr)[nowd]; break; case DBF_CHAR: diff --git a/src/devcalcoutStream.c b/src/devcalcoutStream.c index 2a7cb7f..18febb1 100644 --- a/src/devcalcoutStream.c +++ b/src/devcalcoutStream.c @@ -78,11 +78,11 @@ static long writeData(dbCommon *record, format_t *format) return streamPrintf(record, format, co->oval); } case DBF_ULONG: - case DBF_ENUM: { return streamPrintf(record, format, (unsigned long)co->oval); } case DBF_LONG: + case DBF_ENUM: { return streamPrintf(record, format, (long)co->oval); } diff --git a/src/devlonginStream.c b/src/devlonginStream.c index eafcd95..ebb91bc 100644 --- a/src/devlonginStream.c +++ b/src/devlonginStream.c @@ -47,9 +47,9 @@ static long writeData(dbCommon *record, format_t *format) switch (format->type) { case DBF_ULONG: - case DBF_ENUM: return streamPrintf(record, format, (unsigned long)li->val); case DBF_LONG: + case DBF_ENUM: return streamPrintf(record, format, (long)li->val); } return ERROR; diff --git a/src/devlongoutStream.c b/src/devlongoutStream.c index 31aba3a..f417041 100644 --- a/src/devlongoutStream.c +++ b/src/devlongoutStream.c @@ -68,9 +68,9 @@ static long writeData(dbCommon *record, format_t *format) switch (format->type) { case DBF_ULONG: - case DBF_ENUM: return streamPrintf(record, format, lo->val); case DBF_LONG: + case DBF_ENUM: return streamPrintf(record, format, (long)lo->val); } return ERROR; diff --git a/src/devmbbiStream.c b/src/devmbbiStream.c index 430712d..474a0db 100644 --- a/src/devmbbiStream.c +++ b/src/devmbbiStream.c @@ -80,6 +80,7 @@ static long writeData(dbCommon *record, format_t *format) switch (format->type) { case DBF_LONG: + case DBF_ULONG: { /* print VAL or RVAL ? Look if any value is defined */ val = mbbi->val; diff --git a/src/devmbboDirectStream.c b/src/devmbboDirectStream.c index fb7c3ca..597c8ed 100644 --- a/src/devmbboDirectStream.c +++ b/src/devmbboDirectStream.c @@ -86,11 +86,11 @@ static long writeData(dbCommon *record, format_t *format) switch (format->type) { case DBF_ULONG: - case DBF_ENUM: val = mbboD->rval; if (mbboD->mask) val &= mbboD->mask; break; case DBF_LONG: + case DBF_ENUM: val = (epicsInt32)mbboD->rval; if (mbboD->mask) val &= (epicsInt32)mbboD->mask; break; diff --git a/src/devscalcoutStream.c b/src/devscalcoutStream.c index d2dfaae..19e70b9 100644 --- a/src/devscalcoutStream.c +++ b/src/devscalcoutStream.c @@ -42,6 +42,7 @@ static long readData(dbCommon *record, format_t *format) return OK; } case DBF_LONG: + case DBF_UONG: case DBF_ENUM: { long lval; @@ -71,6 +72,7 @@ static long writeData(dbCommon *record, format_t *format) return streamPrintf(record, format, sco->oval); } case DBF_LONG: + case DBF_UONG: case DBF_ENUM: { return streamPrintf(record, format, (long)sco->oval); diff --git a/src/devwaveformStream.c b/src/devwaveformStream.c index f2fb328..1bb63c5 100644 --- a/src/devwaveformStream.c +++ b/src/devwaveformStream.c @@ -189,10 +189,10 @@ static long writeData(dbCommon *record, format_t *format) dval = ((epicsUInt32 *)wf->bptr)[nowd]; break; case DBF_SHORT: + case DBF_ENUM: dval = ((epicsInt16 *)wf->bptr)[nowd]; break; case DBF_USHORT: - case DBF_ENUM: dval = ((epicsUInt16 *)wf->bptr)[nowd]; break; case DBF_CHAR: @@ -232,10 +232,10 @@ static long writeData(dbCommon *record, format_t *format) lval = ((epicsUInt32 *)wf->bptr)[nowd]; break; case DBF_SHORT: + case DBF_ENUM: lval = ((epicsInt16 *)wf->bptr)[nowd]; break; case DBF_USHORT: - case DBF_ENUM: lval = ((epicsUInt16 *)wf->bptr)[nowd]; break; case DBF_CHAR: