From 016454d4f5b6bfecd55377181ee86dd40daefc69 Mon Sep 17 00:00:00 2001 From: Marty Kraimer Date: Thu, 6 Dec 1990 11:40:53 +0000 Subject: [PATCH] Initial revision --- src/dev/devAiSoftRaw.c | 95 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 src/dev/devAiSoftRaw.c diff --git a/src/dev/devAiSoftRaw.c b/src/dev/devAiSoftRaw.c new file mode 100644 index 000000000..e6297b68f --- /dev/null +++ b/src/dev/devAiSoftRaw.c @@ -0,0 +1,95 @@ +/* devAiSoftRaw.c */ +/* share/src/dev $Id$ */ + +/* devAiSoftRaw.c - Device Support Routines for soft Analog Input Records*/ + + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +/* Create the dset for devAiSoftRaw */ +long init_record(); +long read_ai(); +struct { + long number; + DEVSUPFUN report; + DEVSUPFUN init; + DEVSUPFUN init_record; + DEVSUPFUN get_ioint_info; + DEVSUPFUN read_ai; + DEVSUPFUN special_linconv; +}devAiSoftRaw={ + 6, + NULL, + NULL, + init_record, + NULL, + read_ai, + NULL}; + + +static long init_record(pai) + struct aiRecord *pai; +{ + char message[100]; + + /* ai.inp must be a CONSTANT or a PV_LINK or a DB_LINK or a CA_LINK*/ + switch (pai->inp.type) { + case (CONSTANT) : + pai->rval = pai->inp.value.value; + break; + case (PV_LINK) : + break; + case (DB_LINK) : + break; + case (CA_LINK) : + break; + default : + strcpy(message,pai->name); + strcat(message,": devAiSoftRaw (init_record) Illegal INP field"); + errMessage(S_db_badField,message); + return(S_db_badField); + } + return(0); +} + +static long read_ai(pai) + struct aiRecord *pai; +{ + char message[100]; + long status,options,nRequest; + + /* ai.inp must be a CONSTANT or a DB_LINK or a CA_LINK*/ + switch (pai->inp.type) { + case (CONSTANT) : + break; + case (DB_LINK) : + options=0; + nRequest=1; + (void)dbGetLink(&(pai->inp.value.db_link),pai,DBR_LONG, + &(pai->rval),&options,&nRequest); + break; + case (CA_LINK) : + break; + default : + if(pai->nsevnsev = MAJOR_ALARM; + pai->nsta = SOFT_ALARM; + if(pai->stat!=SOFT_ALARM) { + strcpy(message,pai->name); + strcat(message,": devAiSoftRaw (read_ai) Illegal INP field"); + errMessage(S_db_badField,message); + } + } + } + return(2); /*don't convert*/ +}