From 475fc8e122fe44faf08e959f37085712d4bf7c9c Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Tue, 11 Dec 2012 18:23:17 -0600 Subject: [PATCH] rec: Code format cleanup to mbbi, mbbo records No intentional changes to functionality. --- src/std/rec/mbbiRecord.c | 147 ++++++++++++++++------------------- src/std/rec/mbboRecord.c | 161 ++++++++++++++++++--------------------- 2 files changed, 140 insertions(+), 168 deletions(-) diff --git a/src/std/rec/mbbiRecord.c b/src/std/rec/mbbiRecord.c index 3bdffe12e..e664cc788 100644 --- a/src/std/rec/mbbiRecord.c +++ b/src/std/rec/mbbiRecord.c @@ -94,7 +94,7 @@ struct mbbidset { /* multi bit binary input dset */ static void checkAlarms(mbbiRecord *, epicsTimeStamp *); static void monitor(mbbiRecord *); static long readValue(mbbiRecord *); - + static void init_common(mbbiRecord *prec) { epicsUInt32 *pstate_values = &prec->zrvl; @@ -113,47 +113,44 @@ static void init_common(mbbiRecord *prec) static long init_record(mbbiRecord *prec, int pass) { - struct mbbidset *pdset; - long status; + struct mbbidset *pdset = (struct mbbidset *) prec->dset; + long status = 0; if (pass == 0) return 0; - if (prec->siml.type == CONSTANT) { - recGblInitConstantLink(&prec->siml, DBF_USHORT, &prec->simm); - } - if (prec->siol.type == CONSTANT) { - recGblInitConstantLink(&prec->siol, DBF_USHORT, &prec->sval); - } - pdset = (struct mbbidset *) prec->dset; if (!pdset) { recGblRecordError(S_dev_noDSET, prec, "mbbi: init_record"); return S_dev_noDSET; } - /* must have read_mbbi function defined */ + if ((pdset->number < 5) || (pdset->read_mbbi == NULL)) { recGblRecordError(S_dev_missingSup, prec, "mbbi: init_record"); return S_dev_missingSup; } - /* initialize mask if the user didn't */ + if (prec->siml.type == CONSTANT) + recGblInitConstantLink(&prec->siml, DBF_USHORT, &prec->simm); + + if (prec->siol.type == CONSTANT) + recGblInitConstantLink(&prec->siol, DBF_USHORT, &prec->sval); + + /* Initialize MASK if the user didn't */ if (prec->mask == 0) prec->mask = (1 << prec->nobt) - 1; - if (pdset->init_record) { + if (pdset->init_record) status = pdset->init_record(prec); - } - else - status = 0; init_common(prec); + prec->mlst = prec->val; prec->lalm = prec->val; prec->oraw = prec->rval; return status; } - + static long process(mbbiRecord *prec) { struct mbbidset *pdset = (struct mbbidset *) prec->dset; @@ -169,14 +166,17 @@ static long process(mbbiRecord *prec) timeLast = prec->time; - status = readValue(prec); /* read the new value */ - /* check if device support set pact */ + status = readValue(prec); + + /* Done if device support set PACT */ if (!pact && prec->pact) return 0; - prec->pact = TRUE; + prec->pact = TRUE; recGblGetTimeStamp(prec); - if (status == 0) { /* convert the value */ + + if (status == 0) { + /* Convert RVAL to VAL */ epicsUInt32 *pstate_values; short i; epicsUInt32 rval = prec->rval; @@ -184,9 +184,10 @@ static long process(mbbiRecord *prec) prec->udf = FALSE; if (prec->shft > 0) rval >>= prec->shft; + if (prec->sdef) { pstate_values = &(prec->zrvl); - prec->val = 65535; /* initalize to unknown state*/ + prec->val = 65535; /* Initalize to unknown state*/ for (i = 0; i < 16; i++) { if (*pstate_values == rval) { prec->val = i; @@ -195,39 +196,30 @@ static long process(mbbiRecord *prec) pstate_values++; } } - else { - /* the raw value is the desired value */ + else /* No states defined, set VAL = RVAL */ prec->val = rval; - } - } - else { - if (status == 2) { - status = 0; - } } + else if (status == 2) + status = 0; - /* check for alarms */ checkAlarms(prec, &timeLast); - - /* check event list */ monitor(prec); - /* process the forward scan link record */ + /* Wrap up */ recGblFwdLink(prec); - prec->pact=FALSE; return status; } - static long special(DBADDR *paddr, int after) { mbbiRecord *prec = (mbbiRecord *) paddr->precord; - int special_type = paddr->special; int fieldIndex = dbGetFieldIndex(paddr); - if (!after) return 0; - switch (special_type) { + if (!after) + return 0; + + switch (paddr->special) { case SPC_MOD: init_common(prec); if (fieldIndex >= mbbiRecordZRST && fieldIndex <= mbbiRecordFFST) { @@ -309,14 +301,14 @@ static void checkAlarms(mbbiRecord *prec, epicsTimeStamp *timeLast) epicsEnum16 asev; epicsEnum16 val = prec->val; - /* check for udf alarm */ + /* Check for UDF alarm */ if (prec->udf) { recGblSetSevr(prec, UDF_ALARM, INVALID_ALARM); prec->afvl = 0; return; } - /* check for state alarm */ + /* Check for STATE alarm */ if (val > 15) { /* Unknown state */ alarm = prec->unsv; @@ -352,76 +344,71 @@ static void checkAlarms(mbbiRecord *prec, epicsTimeStamp *timeLast) asev = alarm; recGblSetSevr(prec, STATE_ALARM, asev); - /* check for cos alarm */ - if (val == prec->lalm) + /* Check for COS alarm */ + if (val == prec->lalm || + recGblSetSevr(prec, COS_ALARM, prec->cosv)) return; - recGblSetSevr(prec, COS_ALARM, prec->cosv); prec->lalm = val; } - + static void monitor(mbbiRecord *prec) { - unsigned short monitor_mask; + epicsUInt16 events = recGblResetAlarms(prec); - monitor_mask = recGblResetAlarms(prec); - /* check for value change */ if (prec->mlst != prec->val) { - /* post events for value change and archive change */ - monitor_mask |= (DBE_VALUE | DBE_LOG); - /* update last value monitored */ + events |= DBE_VALUE | DBE_LOG; prec->mlst = prec->val; } - /* send out monitors connected to the value field */ - if (monitor_mask) { - db_post_events(prec, &prec->val, monitor_mask); - } + + if (events) + db_post_events(prec, &prec->val, events); + if (prec->oraw != prec->rval) { - db_post_events(prec, &prec->rval, monitor_mask | DBE_VALUE); + db_post_events(prec, &prec->rval, events | DBE_VALUE | DBE_LOG); prec->oraw = prec->rval; } } - + static long readValue(mbbiRecord *prec) { struct mbbidset *pdset = (struct mbbidset *) prec->dset; long status; - if (prec->pact) { - status = pdset->read_mbbi(prec); - return status; - } + if (prec->pact) + return pdset->read_mbbi(prec); - status = dbGetLink(&prec->siml, DBR_USHORT, &prec->simm, 0, 0); + status = dbGetLink(&prec->siml, DBR_ENUM, &prec->simm, 0, 0); if (status) return status; - if (prec->simm == menuSimmNO) { - status = pdset->read_mbbi(prec); - return status; - } - if (prec->simm == menuSimmYES) { - status=dbGetLink(&prec->siol, DBR_ULONG, &prec->sval, 0, 0); + switch (prec->simm) { + case menuSimmNO: + return pdset->read_mbbi(prec); + + case menuSimmYES: + status = dbGetLink(&prec->siol, DBR_ULONG, &prec->sval, 0, 0); if (status == 0) { prec->val = prec->sval; prec->udf = FALSE; } - status = 2; /* dont convert */ - } - else if (prec->simm == menuSimmRAW) { + status = 2; /* Don't convert */ + break; + + case menuSimmRAW: status = dbGetLink(&prec->siol, DBR_ULONG, &prec->sval, 0, 0); if (status == 0) { prec->rval = prec->sval; - prec->udf = FALSE; + prec->udf = FALSE; } - status = 0; /* convert since we've written RVAL */ - } - else { - status = -1; - recGblSetSevr(prec, SOFT_ALARM, INVALID_ALARM); - return status; - } - recGblSetSevr(prec, SIMM_ALARM, prec->sims); + status = 0; /* Convert RVAL */ + break; + default: + recGblSetSevr(prec, SOFT_ALARM, INVALID_ALARM); + return -1; + } + + recGblSetSevr(prec, SIMM_ALARM, prec->sims); return status; } diff --git a/src/std/rec/mbboRecord.c b/src/std/rec/mbboRecord.c index c2fc5e84c..4668bd575 100644 --- a/src/std/rec/mbboRecord.c +++ b/src/std/rec/mbboRecord.c @@ -10,12 +10,12 @@ /* $Revision-Id$ */ -/* recMbbo.c - Record Support Routines for multi bit binary Output records */ +/* mbboRecord.c - Record Support Routines for multi bit binary Output records */ /* * Original Author: Bob Dalesio * Date: 7-17-87 */ - + #include #include #include @@ -97,7 +97,7 @@ static void convert(mbboRecord *); static void monitor(mbboRecord *); static long writeValue(mbboRecord *); - + static void init_common(mbboRecord *prec) { epicsUInt32 *pstate_values = &prec->zrvl; @@ -113,7 +113,7 @@ static void init_common(mbboRecord *prec) } prec->sdef = FALSE; } - + static long init_record(mbboRecord *prec, int pass) { struct mbbodset *pdset; @@ -124,26 +124,25 @@ static long init_record(mbboRecord *prec, int pass) return 0; } - if (prec->siml.type == CONSTANT) { - recGblInitConstantLink(&prec->siml, DBF_USHORT, &prec->simm); - } - pdset = (struct mbbodset *) prec->dset; if (!pdset) { recGblRecordError(S_dev_noDSET, prec, "mbbo: init_record"); return S_dev_noDSET; } - /* must have write_mbbo function defined */ + if ((pdset->number < 5) || (pdset->write_mbbo == NULL)) { recGblRecordError(S_dev_missingSup, prec, "mbbo: init_record"); return S_dev_missingSup; } - if (prec->dol.type == CONSTANT) { + + if (prec->siml.type == CONSTANT) + recGblInitConstantLink(&prec->siml, DBF_USHORT, &prec->simm); + + if (prec->dol.type == CONSTANT) if (recGblInitConstantLink(&prec->dol, DBF_USHORT, &prec->val)) prec->udf = FALSE; - } - /* initialize mask if the user didn't */ + /* Initialize MASK if the user didn't */ if (prec->mask == 0) prec->mask = (1 << prec->nobt) - 1; @@ -151,7 +150,7 @@ static long init_record(mbboRecord *prec, int pass) status = pdset->init_record(prec); init_common(prec); if (status == 0) { - /* convert initial read-back */ + /* Convert initial read-back */ epicsUInt32 rval = prec->rval; if (prec->shft > 0) @@ -183,15 +182,16 @@ static long init_record(mbboRecord *prec, int pass) init_common(prec); status = 0; } - /* convert val to rval */ + /* Convert VAL to RVAL */ convert(prec); + prec->mlst = prec->val; prec->lalm = prec->val; prec->oraw = prec->rval; prec->orbv = prec->rbv; return status; } - + static long process(mbboRecord *prec) { struct mbbodset *pdset = (struct mbbodset *) prec->dset; @@ -205,33 +205,32 @@ static long process(mbboRecord *prec) } if (!pact) { - if (prec->dol.type != CONSTANT && prec->omsl == menuOmslclosed_loop) { - long status; - unsigned short val; + if (prec->dol.type != CONSTANT && + prec->omsl == menuOmslclosed_loop) { + epicsUInt16 val; - status = dbGetLink(&prec->dol, DBR_USHORT, &val, 0, 0); - if (status == 0) { - prec->val = val; - prec->udf = FALSE; - } else { + if (dbGetLink(&prec->dol, DBR_USHORT, &val, 0, 0)) { recGblSetSevr(prec, LINK_ALARM, INVALID_ALARM); goto CONTINUE; } + prec->val = val; } - if (prec->udf==TRUE) { + else if (prec->udf) { recGblSetSevr(prec, UDF_ALARM, INVALID_ALARM); goto CONTINUE; } - /* convert val to rval */ + + prec->udf = FALSE; + /* Convert VAL to RVAL */ convert(prec); } CONTINUE: - /* check for alarms */ + /* Check for alarms */ checkAlarms(prec); if (prec->nsev < INVALID_ALARM) - status = writeValue(prec); /* write the new value */ + status = writeValue(prec); else { switch (prec->ivoa) { case menuIvoaSet_output_to_IVOV: @@ -239,9 +238,9 @@ CONTINUE: prec->val = prec->ivov; convert(prec); } - /* no break, fall through... */ + /* No break, fall through... */ case menuIvoaContinue_normally: - status = writeValue(prec); /* write the new value */ + status = writeValue(prec); break; case menuIvoaDon_t_drive_outputs: break; @@ -252,32 +251,29 @@ CONTINUE: } } - /* check if device support set pact */ + /* Done if device support set pact */ if (!pact && prec->pact) return 0; + prec->pact = TRUE; - recGblGetTimeStamp(prec); - - /* check event list */ monitor(prec); - /* process the forward scan link record */ + /* Wrap up */ recGblFwdLink(prec); prec->pact = FALSE; return status; } - + static long special(DBADDR *paddr, int after) { mbboRecord *prec = (mbboRecord *) paddr->precord; - int special_type = paddr->special; int fieldIndex = dbGetFieldIndex(paddr); if (!after) return 0; - switch (special_type) { + switch (paddr->special) { case SPC_MOD: init_common(prec); if (fieldIndex >= mbboRecordZRST && fieldIndex <= mbboRecordFFST) { @@ -312,8 +308,8 @@ static long cvt_dbaddr(DBADDR *paddr) static long get_enum_str(DBADDR *paddr, char *pstring) { mbboRecord *prec = (mbboRecord *) paddr->precord; - unsigned short *pfield = paddr->pfield; - int val = *pfield; + epicsEnum16 *pfield = paddr->pfield; + epicsEnum16 val = *pfield; if (dbGetFieldIndex(paddr) != mbboRecordVAL) { strcpy(pstring, "Bad Field"); @@ -328,7 +324,7 @@ static long get_enum_str(DBADDR *paddr, char *pstring) } return 0; } - + static long get_enum_strs(DBADDR *paddr, struct dbr_enumStrs *pes) { mbboRecord *prec = (mbboRecord *) paddr->precord; @@ -339,18 +335,20 @@ static long get_enum_strs(DBADDR *paddr, struct dbr_enumStrs *pes) pstate = prec->zrst; for (i = 0; i < 16; i++) { strncpy(pes->strs[i], pstate, sizeof(prec->zrst)); - if (*pstate) states = i + 1; + if (*pstate) + states = i + 1; pstate += sizeof(prec->zrst); } pes->no_str = states; return 0; } + static long put_enum_str(DBADDR *paddr,char *pstring) { mbboRecord *prec = (mbboRecord *) paddr->precord; const char *pstate; - short i; + int i; if (prec->sdef) { pstate = prec->zrst; @@ -364,12 +362,12 @@ static long put_enum_str(DBADDR *paddr,char *pstring) } return S_db_badChoice; } - + static void checkAlarms(mbboRecord *prec) { epicsEnum16 val = prec->val; - /* check for state alarm */ + /* Check for STATE alarm */ if (val > 15) { /* Unknown state */ recGblSetSevr(prec, STATE_ALARM, prec->unsv); @@ -380,46 +378,42 @@ static void checkAlarms(mbboRecord *prec) recGblSetSevr(prec, STATE_ALARM, severities[prec->val]); } - /* check for cos alarm */ - if (val == prec->lalm) return; - if (recGblSetSevr(prec,COS_ALARM,prec->cosv)) return; + /* Check for COS alarm */ + if (val == prec->lalm || + recGblSetSevr(prec, COS_ALARM, prec->cosv)) + return; + prec->lalm = val; - return; } - + static void monitor(mbboRecord *prec) { - unsigned short monitor_mask; + epicsUInt16 events = recGblResetAlarms(prec); - monitor_mask = recGblResetAlarms(prec); - /* check for value change */ if (prec->mlst != prec->val) { - /* post events for value change and archive change */ - monitor_mask |= (DBE_VALUE | DBE_LOG); - /* update last value monitored */ + events |= DBE_VALUE | DBE_LOG; prec->mlst = prec->val; } - /* send out monitors connected to the value field */ - if (monitor_mask) { - db_post_events(prec, &prec->val, monitor_mask); - } + if (events) + db_post_events(prec, &prec->val, events); + + events |= DBE_VALUE | DBE_LOG; if (prec->oraw != prec->rval) { - db_post_events(prec, &prec->rval, monitor_mask | DBE_VALUE); + db_post_events(prec, &prec->rval, events); prec->oraw = prec->rval; } if (prec->orbv != prec->rbv) { - db_post_events(prec, &prec->rbv, monitor_mask | DBE_VALUE); + db_post_events(prec, &prec->rbv, events); prec->orbv = prec->rbv; } - return; } - + static void convert(mbboRecord *prec) { - epicsUInt32 *pvalues = &prec->zrvl; - - /* convert val to rval */ + /* Convert VAL to RVAL */ if (prec->sdef) { + epicsUInt32 *pvalues = &prec->zrvl; + if (prec->val > 15) { recGblSetSevr(prec, SOFT_ALARM, INVALID_ALARM); return; @@ -431,39 +425,30 @@ static void convert(mbboRecord *prec) if (prec->shft > 0) prec->rval <<= prec->shft; - - return; } - - static long writeValue(mbboRecord *prec) { long status; struct mbbodset *pdset = (struct mbbodset *) prec->dset; - if (prec->pact) { - status = pdset->write_mbbo(prec); - return status; - } + if (prec->pact) + return pdset->write_mbbo(prec); status = dbGetLink(&prec->siml, DBR_USHORT, &prec->simm, 0, 0); if (status) return status; - if (prec->simm == menuYesNoNO) { - status = pdset->write_mbbo(prec); - return status; - } - if (prec->simm == menuYesNoYES) { - status = dbPutLink(&prec->siol, DBR_USHORT, &prec->val, 1); - } - else { - status=-1; - recGblSetSevr(prec, SOFT_ALARM, INVALID_ALARM); - return status; - } - recGblSetSevr(prec, SIMM_ALARM, prec->sims); + switch (prec->simm) { + case menuYesNoNO: + return pdset->write_mbbo(prec); - return status; + case menuYesNoYES: + recGblSetSevr(prec, SIMM_ALARM, prec->sims); + return dbPutLink(&prec->siol, DBR_USHORT, &prec->val, 1); + + default: + recGblSetSevr(prec, SOFT_ALARM, INVALID_ALARM); + return -1; + } }