Forced to compile with ANSI compiler

This commit is contained in:
John Winans
1993-07-28 16:36:10 +00:00
parent 800a6675cd
commit 925ad53846
18 changed files with 300 additions and 493 deletions

View File

@@ -42,21 +42,18 @@
#include <drvGpibInterface.h>
#include <devCommonGpib.h>
#ifndef VALID_ALARM
#define VALID_ALARM INVALID_ALARM
#endif
#define STATIC static
long devGpibLib_initWf();
long devGpibLib_readWf();
int devGpibLib_wfGpibWork();
long init_dev_sup(), report();
int aiGpibSrq(), liGpibSrq(), biGpibSrq(), mbbiGpibSrq(), stringinGpibSrq();
static struct devGpibParmBlock devSupParms;
STATIC long init_dev_sup(), report();
STATIC struct devGpibParmBlock devSupParms;
int getamprange(); /* used to get signal amplitude range */
int getrange(); /* used to get signal range */
int getoffset(); /* used to get signal offset */
STATIC int getamprange(); /* used to get signal amplitude range */
STATIC int getrange(); /* used to get signal range */
STATIC int getoffset(); /* used to get signal offset */
int convertWave(); /* parses waveform data from analytek digitizer */
@@ -593,9 +590,8 @@ static struct devGpibParmBlock devSupParms = {
* This function will no longer be required after epics 3.3 is released
*
******************************************************************************/
static long
init_dev_sup(parm)
int parm;
STATIC long
init_dev_sup(int parm)
{
return(devGpibLib_initDevSup(parm, &DSET_AI));
}
@@ -608,17 +604,13 @@ int parm;
* This function will no longer be required after epics 3.3 is released
*
******************************************************************************/
static long
report()
STATIC long
report(void)
{
return(devGpibLib_report(&DSET_AI));
}
static int getamprange(pdpvt, p1, p2, p3)
struct gpibDpvt *pdpvt;
int p1;
int p2;
char **p3;
STATIC int getamprange(struct gpibDpvt *pdpvt, int p1, int p2, char **p3)
{
int amprange;
int i;
@@ -657,9 +649,9 @@ char **p3;
}
else
{
if (pai->nsev < VALID_ALARM)
if (pai->nsev < INVALID_ALARM)
{
pai->nsev = VALID_ALARM;
pai->nsev = INVALID_ALARM;
pai->nsta = READ_ALARM;
}
}
@@ -670,11 +662,7 @@ char **p3;
/* conversion routine */
static int getrange(pdpvt, p1, p2, p3)
struct gpibDpvt *pdpvt;
int p1;
int p2;
char **p3;
STATIC int getrange(struct gpibDpvt *pdpvt, int p1, int p2, char **p3)
{
int range;
int i;
@@ -709,9 +697,9 @@ char **p3;
}
else
{
if (pai->nsev < VALID_ALARM)
if (pai->nsev < INVALID_ALARM)
{
pai->nsev = VALID_ALARM;
pai->nsev = INVALID_ALARM;
pai->nsta = READ_ALARM;
}
}
@@ -721,11 +709,7 @@ char **p3;
/* conversion routine */
static int getoffset(pdpvt, p1, p2, p3)
struct gpibDpvt *pdpvt;
int p1;
int p2;
char **p3;
STATIC int getoffset(struct gpibDpvt *pdpvt, int p1, int p2, char **p3)
{
float offset;
int i;
@@ -760,9 +744,9 @@ char **p3;
}
else
{
if (pai->nsev < VALID_ALARM)
if (pai->nsev < INVALID_ALARM)
{
pai->nsev = VALID_ALARM;
pai->nsev = INVALID_ALARM;
pai->nsta = READ_ALARM;
}
}
@@ -770,11 +754,7 @@ char **p3;
return(OK);
}
convertWave(pdpvt, p1, p2, p3)
struct gpibDpvt *pdpvt;
int p1;
int p2;
char **p3;
STATIC convertWave(struct gpibDpvt *pdpvt, int p1, int p2, char **p3)
{
struct waveformRecord *pwf = (struct waveformRecord *) (pdpvt->precord);
short *raw;
@@ -793,7 +773,7 @@ char **p3;
craw = pdpvt->msg;
if (*craw != '#')
{ /* don't have a valid analytek waveform */
devGpibLib_setPvSevr(pwf,READ_ALARM,VALID_ALARM);
devGpibLib_setPvSevr(pwf,READ_ALARM,INVALID_ALARM);
printf("Got an invalid waveform back!\n");
return(ERROR);
@@ -812,7 +792,7 @@ char **p3;
if (sscanf (asciiLen, "%d", &numElem) != 1)
{
devGpibLib_setPvSevr(pwf,READ_ALARM,VALID_ALARM);
devGpibLib_setPvSevr(pwf,READ_ALARM,INVALID_ALARM);
printf("Got an invalid waveform back!!\n");
return(ERROR);

View File

@@ -90,14 +90,17 @@ int bbMsgDly = 0;
extern int bbDebug;
static int replyIsBack;
int sendMsg();
int bbWork();
int configMsg();
int getInt();
int getChar();
int getString();
int showBbMsg();
int timingStudy();
static int sendMsg();
static int bbWork();
static int configMsg();
static int getInt();
static int getChar();
static int getString();
static int showBbMsg();
static int timingStudy();
static int pingEm();
static int downLoadCode();
static int hex2bin();
static int firstTime = 1;
static FAST_LOCK msgReply;
@@ -309,7 +312,7 @@ timingStudy()
*/
static int
sendMsg()
sendMsg(void)
{
int msgNum; /* index to array of messages */
@@ -543,7 +546,7 @@ downLoadCode()
/* read the file 1 line at a time & send the code to the bug */
msgBytes=0;
while (fgets(hexBuf, sizeof(hexBuf), fp) > 0)
while (fgets(hexBuf, sizeof(hexBuf), fp) != NULL)
{
/* parse the headers in the hex record */
if (hexBuf[0] != ':' || (hex2bin(&(hexBuf[7]) ,&recType) == ERROR))

View File

@@ -48,16 +48,21 @@
*/
#include <vxWorks.h>
#if 0 /* COMMENTED OUT */
#include <rngLib.h>
#include <semLib.h>
/*
#include <sysLib.h>
#include <iosLib.h>
#include <types.h>
#include <stdioLib.h>
#include <strLib.h>
#include <semLib.h>
#include <taskLib.h>
#endif /* COMMENTED OUT */
#include <rngLib.h>
*/
#include <stdlib.h>
#include <stdio.h>
#include <limits.h>
#include <string.h>
#include <math.h>
#include <alarm.h>
#include <cvtTable.h>
@@ -80,7 +85,7 @@
int GITime = 60; /* shell-setable DMA timeout value */
extern struct drvGpibSet drvGpib; /* entry points to driver functions */
int gpibWork();
static int gpibWork();
struct gpibIntCmd {
struct dpvtGpibHead head;
@@ -106,14 +111,16 @@ BOOL replyIsBack; /* reset by sender, set by replyReceived() */
extern int ibDebug;
int GIDebug = 0;
int sendMsg();
int gpibWork();
int configMsg();
int getInt();
int getChar();
int getString();
int showGpibMsg();
int timingStudy();
static int sendMsg();
static int gpibWork();
static int configMsg();
static int getInt();
static int getChar();
static int getString();
static int showGpibMsg();
static int timingStudy();
static void hexDump(unsigned char *string, int indent);
static int firstTime = 1;
static int hexmode = 1;
@@ -128,7 +135,7 @@ GI()
if(firstTime)
{
firstTime = 0;
msgReply = semCreate();
msgReply = semBCreate(SEM_Q_FIFO, SEM_EMPTY);
for (cnt=0; cnt < LIST_SIZE; cnt++)
{ /* init the elements of the command table */
@@ -138,7 +145,7 @@ GI()
gpibIntCmds[cnt].head.workStart = gpibWork;
gpibIntCmds[cnt].head.link = 0;
gpibIntCmds[cnt].head.device = 0;
gpibIntCmds[cnt].head.bitBusDpvt= NULL; /* not supported yet */
gpibIntCmds[cnt].head.bitBusDpvt= NULL;
gpibIntCmds[cnt].type = 'R';
gpibIntCmds[cnt].cmd[0] = '\0';
@@ -254,9 +261,9 @@ timingStudy()
printf("Enter the number of messages to send > ");
if (!getInt(&inInt))
return; /* if no entry, return to main menu */
return(0); /* if no entry, return to main menu */
if(inInt < 0)
return;
return(0);
reps = inInt;
Reps = reps;
@@ -296,7 +303,7 @@ timingStudy()
else
i = LIST_SIZE; /* force an exit from the loop */
}
semTake(msgReply);
semTake(msgReply, WAIT_FOREVER);
}
endTime = tickGet();
@@ -315,7 +322,7 @@ timingStudy()
else
i = LIST_SIZE;
}
return(OK);
return(0);
}
/* sendMsg() ***************************************************
@@ -434,9 +441,9 @@ configMsg()
printf("\nEnter Message # to Configure (1 thru 5) > ");
if (!getInt(&inInt))
return; /* if no entry, return to main menu */
return(0); /* if no entry, return to main menu */
if((inInt >= LIST_SIZE) || (inInt < 0))
return;
return(0);
msgNum = inInt;
pCmd = &gpibIntCmds[msgNum]; /* assign pointer to desired entry */
@@ -628,9 +635,7 @@ char *pString;
}
/* utility fuinction to print a hex dump */
static void hexDump(string, indent)
unsigned char *string;
int indent;
static void hexDump(unsigned char *string, int indent)
{
char ascBuf[17]; /* for the ascii xlation part of the dump */
int strLength;

View File

@@ -55,6 +55,8 @@
#define DSET_SI devSiDc5009Gpib
#define DSET_SO devSoDc5009Gpib
#define STATIC static
#include <vxWorks.h>
#include <taskLib.h>
#include <rngLib.h>
@@ -85,10 +87,9 @@
#include <drvGpibInterface.h>
#include <devCommonGpib.h>
long init_dev_sup(), report();
int srqHandler();
int aiGpibSrq(), liGpibSrq(), biGpibSrq(), mbbiGpibSrq(), stringinGpibSrq();
static struct devGpibParmBlock devSupParms;
STATIC long init_dev_sup(), report();
STATIC int srqHandler();
STATIC struct devGpibParmBlock devSupParms;
/******************************************************************************
*
@@ -280,7 +281,7 @@ static struct gpibCmd gpibCmds[] =
* scanned"... not passive.
*
******************************************************************************/
static struct devGpibParmBlock devSupParms = {
STATIC struct devGpibParmBlock devSupParms = {
&Dc5009Debug, /* debugging flag pointer */
-1, /* device does not respond to writes */
TIME_WINDOW, /* # of clock ticks to skip after a device times out */
@@ -304,9 +305,8 @@ static struct devGpibParmBlock devSupParms = {
* with a param value of 1.
*
******************************************************************************/
static long
init_dev_sup(parm)
int parm;
STATIC long
init_dev_sup(int parm)
{
return(devGpibLib_initDevSup(parm,&DSET_AI));
}
@@ -317,8 +317,8 @@ int parm;
* module.
*
******************************************************************************/
static long
report()
STATIC long
report(void)
{
return(devGpibLib_report(&DSET_AI));
}
@@ -351,9 +351,7 @@ report()
#define DC5009_OPC 66 /* operation just completed */
#define DC5009_USER 67 /* user requested SRQ */
static int srqHandler(phwpvt, srqStatus)
struct hwpvt *phwpvt;
int srqStatus; /* The poll response from the device */
STATIC int srqHandler(struct hwpvt *phwpvt, int srqStatus)
{
int status = IDLE; /* assume device will be idle when finished */
@@ -393,9 +391,9 @@ int srqStatus; /* The poll response from the device */
printf("dc5009 srqHandler: Unsolicited SRQ being handled from link %d, device %d, status = 0x%02.2X\n",
phwpvt->link, phwpvt->device, srqStatus);
((struct gpibDpvt*)(phwpvt->unsolicitedDpvt))->head.header.callback.finishProc = ((struct gpibDpvt *)(phwpvt->unsolicitedDpvt))->process;
((struct gpibDpvt*)(phwpvt->unsolicitedDpvt))->head.header.callback.callback = ((struct gpibDpvt *)(phwpvt->unsolicitedDpvt))->process;
((struct gpibDpvt *)(phwpvt->unsolicitedDpvt))->head.header.callback.priority = ((struct gpibDpvt *)(phwpvt->unsolicitedDpvt))->processPri;
callbackRequest(phwpvt->unsolicitedDpvt);
callbackRequest((CALLBACK*)phwpvt->unsolicitedDpvt);
}
else
{

View File

@@ -78,13 +78,16 @@
#include <drvGpibInterface.h>
#include <devCommonGpib.h>
#ifndef VALID_ALARM
#define VALID_ALARM INVALID_ALARM
#endif
long init_dev_sup(), report();
int srqHandler();
int aiGpibSrq(), liGpibSrq(), biGpibSrq(), mbbiGpibSrq(), stringinGpibSrq();
static struct devGpibParmBlock devSupParms;
#define STATIC static
STATIC long init_dev_sup(), report();
STATIC int srqHandler();
STATIC struct devGpibParmBlock devSupParms;
/* forward declarations of some custom convert routines */
STATIC int setDelay();
STATIC int rdDelay();
/******************************************************************************
*
@@ -231,9 +234,6 @@ static char *(userOffOn[]) = {"USER OFF;", "USER ON;", NULL};
*
******************************************************************************/
/* forward declarations of some custom convert routines */
int setDelay();
int rdDelay();
static struct gpibCmd gpibCmds[] =
{
@@ -700,9 +700,8 @@ static struct devGpibParmBlock devSupParms = {
* with a param value of 1.
*
******************************************************************************/
static long
init_dev_sup(parm)
int parm;
STATIC long
init_dev_sup(int parm)
{
return(devGpibLib_initDevSup(parm, &DSET_AI));
}
@@ -713,8 +712,8 @@ int parm;
* module.
*
******************************************************************************/
static long
report()
STATIC long
report(void)
{
return(devGpibLib_report(&DSET_AI));
}
@@ -739,11 +738,7 @@ report()
* in the val field of the SI record. (ex: T + .000000500000)
*****************************************************************************/
static int rdDelay(pdpvt, p1, p2, p3)
struct gpibDpvt *pdpvt;
int p1;
int p2;
char **p3;
STATIC int rdDelay(struct gpibDpvt *pdpvt, int p1, int p2, char **p3)
{
int status;
double delay;
@@ -783,9 +778,9 @@ char **p3;
}
else
{
if (prec->si.nsev < VALID_ALARM)
if (prec->si.nsev < INVALID_ALARM)
{
prec->si.nsev = VALID_ALARM;
prec->si.nsev = INVALID_ALARM;
prec->si.nsta = READ_ALARM;
}
}
@@ -802,9 +797,9 @@ char **p3;
}
else
{
if (prec->ai.nsev < VALID_ALARM)
if (prec->ai.nsev < INVALID_ALARM)
{
prec->ai.nsev = VALID_ALARM;
prec->ai.nsev = INVALID_ALARM;
prec->ai.nsta = READ_ALARM;
}
}
@@ -820,9 +815,9 @@ char **p3;
}
else
{
if (prec->mbbi.nsev < VALID_ALARM)
if (prec->mbbi.nsev < INVALID_ALARM)
{
prec->mbbi.nsev = VALID_ALARM;
prec->mbbi.nsev = INVALID_ALARM;
prec->mbbi.nsta = READ_ALARM;
}
}
@@ -843,11 +838,7 @@ char **p3;
*
*************************************************************************/
static int setDelay(pdpvt, p1, p2, p3)
struct gpibDpvt *pdpvt;
int p1;
int p2;
char **p3;
STATIC int setDelay(struct gpibDpvt *pdpvt, int p1, int p2, char **p3)
{
int status;
char curChan;

View File

@@ -72,11 +72,12 @@
#define DSET_BP devBpdig500Msg232
#define STATIC static
int dig500MsgDebug = 0;
static long init(), report();
static msgParmBlock parmBlock;
STATIC long init(), report();
STATIC msgParmBlock parmBlock;
/*****************************************************************************
*
@@ -85,9 +86,8 @@ static msgParmBlock parmBlock;
******************************************************************************/
static msgRecEnum local_bp = { "PE dig500" };
static long
local_initBp(pbp)
struct brownpileRecord *pbp;
STATIC long
local_initBp(struct brownpileRecord *pbp)
{
char message[100];
long status;
@@ -111,9 +111,8 @@ struct brownpileRecord *pbp;
}
/*****************************************************************************/
static long
local_procBp(pbp)
struct brownpileRecord *pbp;
STATIC long
local_procBp(struct brownpileRecord *pbp)
{
if (dig500MsgDebug > 10)
printf("local_procBp entered\n");
@@ -210,10 +209,8 @@ static msgCmd cmds[] = {
#define REC_BP_CHOICE_PUMP_220 3 /* 220 Liter/sec */
static long
local_xactWork(pxact, pop)
msgXact *pxact;
msgCmdOp *pop;
STATIC long
local_xactWork(msgXact *pxact, msgCmdOp *pop)
{
char msg[100]; /* A place to format error messages */
char buf[100]; /* A place to build & parse strings */
@@ -684,14 +681,13 @@ static msgParmBlock parmBlock = {
local_xactWork,
&parmBB232extension
};
static long
init(parm)
int parm;
STATIC long
init(int parm)
{
return(drvMsg_initMsg(parm, &devAidig500Msg232));
}
static long
report()
STATIC long
report(void)
{
return(drvMsg_reportMsg(&devAidig500Msg232));
}

View File

@@ -33,8 +33,6 @@
*
* Modification Log:
* -----------------
* .01 05-30-91 jrw Initial Release
* .02 01-06-92 nda dg535 support under EPICS 3.3
*/
#define DSET_AI devAiK196Gpib
@@ -78,7 +76,7 @@
#include <drvGpibInterface.h>
#include <devCommonGpib.h>
long init_dev_sup(), report();
static long init_dev_sup(), report();
static struct devGpibParmBlock devSupParms;
/******************************************************************************
@@ -222,10 +220,6 @@ static char *(userOffOn[]) = {"USER OFF;", "USER ON;", NULL};
*
******************************************************************************/
/* forward declarations of some custom convert routines */
int setDelay();
int rdDelay();
static struct gpibCmd gpibCmds[] =
{
/* Param 0, (model) */
@@ -284,8 +278,7 @@ static struct devGpibParmBlock devSupParms = {
*
******************************************************************************/
static long
init_dev_sup(parm)
int parm;
init_dev_sup(int parm)
{
return(devGpibLib_initDevSup(parm, &DSET_AI));
}
@@ -299,7 +292,7 @@ int parm;
*
******************************************************************************/
static long
report()
report(void)
{
return(devGpibLib_report(&DSET_AI));
}

View File

@@ -78,7 +78,7 @@
#include <drvGpibInterface.h>
#include <devCommonGpib.h>
long init_dev_sup(), report();
static long init_dev_sup(), report();
static struct devGpibParmBlock devSupParms;
/******************************************************************************
@@ -149,72 +149,7 @@ int K263Debug = 0; /* debugging flags */
#define TIME_WINDOW 600 /* 10 seconds on a getTick call */
#define DMA_TIME 30 /* 1/2 second on a watchdog time */
/*
* Strings used by the init routines to fill in the znam, onam, ...
* fields in BI, BO, MBBI, and MBBO record types.
*/
static char *offOnList[] = { "Off", "On" };
static struct devGpibNames offOn = { 2, offOnList, NULL, 1 };
static char *disableEnableList[] = { "Disable", "Enable" };
static struct devGpibNames disableEnable = { 2, disableEnableList, NULL, 1 };
static char *resetList[] = { "Reset", "Reset" };
static struct devGpibNames reset = { 2, resetList, NULL, 1 };
static char *lozHizList[] = { "50 OHM", "IB_Q_HIGH Z" };
static struct devGpibNames lozHiz = {2, lozHizList, NULL, 1};
static char *invertNormList[] = { "INVERT", "NORM" };
static struct devGpibNames invertNorm = { 2, invertNormList, NULL, 1 };
static char *fallingRisingList[] = { "FALLING", "RISING" };
static struct devGpibNames fallingRising = { 2, fallingRisingList, NULL, 1 };
static char *singleShotList[] = { "SINGLE", "SHOT" };
static struct devGpibNames singleShot = { 2, singleShotList, NULL, 1 };
static char *clearList[] = { "CLEAR", "CLEAR" };
static struct devGpibNames clear = { 2, clearList, NULL, 1 };
static char *tABCDList[] = { "T", "A", "B", "C", "D" };
static unsigned long tABCDVal[] = { 1, 2, 3, 5, 6 };
static struct devGpibNames tABCD = { 5, tABCDList, tABCDVal, 3 };
static char *ttlNimEclVarList[] = { "TTL", "NIM", "ECL", "VAR" };
static unsigned long ttlNimEclVarVal[] = { 0, 1, 2, 3 };
static struct devGpibNames ttlNimEclVar = { 4, ttlNimEclVarList,
ttlNimEclVarVal, 2 };
static char *intExtSsBmStopList[] = { "INTERNAL", "EXTERNAL",
"SINGLE SHOT", "BURST MODE", "STOP" };
static unsigned long intExtSsBmStopVal[] = { 0, 1, 2, 3, 2 };
static struct devGpibNames intExtSsBm = { 4, intExtSsBmStopList,
intExtSsBmStopVal, 2 };
static struct devGpibNames intExtSsBmStop = { 5, intExtSsBmStopList,
intExtSsBmStopVal, 3 };
/******************************************************************************
*
* String arrays for EFAST operations. Note that the last entry must be
* NULL.
*
* On input operations, only as many bytes as are found in the string array
* elements are compared. If there are more bytes than that in the input
* message, they are ignored. The first matching string found (starting
* from the 0'th element) will be used as a match.
*
* NOTE: For the input operations, the strings are compared literally! This
* can cause problems if the instrument is returning things like \r and \n
* characters. You must take care when defining input strings so you include
* them as well.
*
******************************************************************************/
static char *(userOffOn[]) = {"USER OFF;", "USER ON;", NULL};
/******************************************************************************
*
* Array of structures that define all GPIB messages
@@ -222,10 +157,6 @@ static char *(userOffOn[]) = {"USER OFF;", "USER ON;", NULL};
*
******************************************************************************/
/* forward declarations of some custom convert routines */
int setDelay();
int rdDelay();
static struct gpibCmd gpibCmds[] =
{
/* Param 0, (model) */
@@ -283,8 +214,7 @@ static struct devGpibParmBlock devSupParms = {
*
******************************************************************************/
static long
init_dev_sup(parm)
int parm;
init_dev_sup(int parm)
{
return(devGpibLib_initDevSup(parm, &DSET_AI));
}
@@ -298,7 +228,7 @@ int parm;
*
******************************************************************************/
static long
report()
report(void)
{
return(devGpibLib_report(&DSET_AI));
}

View File

@@ -85,8 +85,10 @@
#include <drvGpibInterface.h>
#include <devCommonGpib.h>
long init_dev_sup(), report();
int srqHandler();
#define STATIC static
STATIC long init_dev_sup(), report();
STATIC int srqHandler();
static struct devGpibParmBlock devSupParms;
/******************************************************************************
@@ -307,9 +309,8 @@ static struct devGpibParmBlock devSupParms = {
* with a param value of 1.
*
******************************************************************************/
static long
init_dev_sup(parm)
int parm;
STATIC long
init_dev_sup(int parm)
{
return(devGpibLib_initDevSup(parm,&DSET_AI));
}
@@ -322,12 +323,11 @@ int parm;
* This function will no longer be required after epics 3.3 is released
*
******************************************************************************/
static long
report()
STATIC long
report(void)
{
return(devGpibLib_report(&DSET_AI));
}
/******************************************************************************
*
* A sample SRQ handler. This one is taken from the DC5009 gpib device support
@@ -358,50 +358,59 @@ report()
*
******************************************************************************/
#define DC5009_GOODBITS 0xef /* I only care about these bits from the poll*/
#define DC5009_GOODBITS 0xef /* I only care about these bits */
#define DC5009_PON 65 /* power just turned on */
#define DC5009_OPC 66 /* operation just completed */
#define DC5009_USER 67 /* user requested SRQ */
static int srqHandler(phwpvt, srqStatus)
struct hwpvt *phwpvt;
int srqStatus; /* The poll response from the device */
STATIC int srqHandler(struct hwpvt *phwpvt, int srqStatus)
{
int status = IDLE; /* assume device will be idle when finished */
if (SkeletonDebug || ibSrqDebug)
logMsg("srqHandler(0x%08.8X, 0x%02.2X): called\n", phwpvt, srqStatus);
if (Dc5009Debug || ibSrqDebug)
printf("dc5009 srqHandler(0x%08.8X, 0x%02.2X): called\n", phwpvt, srqStatus);
switch (srqStatus & DC5009_GOODBITS) {
case DC5009_OPC:
/* Invoke the command-type specific SRQ handler (in the library code) */
/* Invoke the command-type specific SRQ handler */
if (phwpvt->srqCallback != NULL)
status = ((*(phwpvt->srqCallback))(phwpvt->parm, srqStatus));
else
logMsg("Unsolicited operation complete from DC5009 device support!\n");
printf("dc5009 srqHandler: Unsolicited operation complete from DC5009 device support!\n");
break;
/* BUG - I have to clear out the error status by doing an err? read operation */
case DC5009_USER:
/* user requested srq event is specific to the Dc5009 */
printf("dc5009 srqHandler: Dc5009 User requested srq event link %d, device %d\n", phwpvt->link, phwpvt->device);
break;
/* BUG - I have to clear out the error status by doing an err? read operation */
case DC5009_PON:
logMsg("Power cycled on DC5009\n");
printf("dc5009 srqHandler: Power cycled on DC5009\n");
break;
/* BUG - I have to clear out the error status by doing an err? read operation */
default:
default: /* unsolicited SRQ */
if (phwpvt->unsolicitedDpvt != NULL)
{ /* If a record spec'd the magic parm number, process it. */
if(SkeletonDebug || ibSrqDebug)
logMsg("Unsolicited SRQ being handled from link %d, device %d, status = 0x%02.2X\n",
{
if(Dc5009Debug || ibSrqDebug)
printf("dc5009 srqHandler: Unsolicited SRQ being handled from link %d, device %d, status = 0x%02.2X\n",
phwpvt->link, phwpvt->device, srqStatus);
((struct gpibDpvt*)(phwpvt->unsolicitedDpvt))->head.header.callback.finishProc = ((struct gpibDpvt *)(phwpvt->unsolicitedDpvt))->process;
((struct gpibDpvt*)(phwpvt->unsolicitedDpvt))->head.header.callback.callback = ((struct gpibDpvt *)(phwpvt->unsolicitedDpvt))->process;
((struct gpibDpvt *)(phwpvt->unsolicitedDpvt))->head.header.callback.priority = ((struct gpibDpvt *)(phwpvt->unsolicitedDpvt))->processPri;
callbackRequest(phwpvt->unsolicitedDpvt);
}
else
{
logMsg("Unsolicited SRQ ignored from link %d, device %d, status = 0x%02.2X\n",
printf("dc5009 srqHandler: Unsolicited SRQ ignored from link %d, device %d, status = 0x%02.2X\n",
phwpvt->link, phwpvt->device, srqStatus);
}
}

View File

@@ -77,9 +77,10 @@
#include <drvGpibInterface.h>
#include <devCommonGpib.h>
long init_dev_sup(), report();
int srqHandler();
int aiGpibSrq(), liGpibSrq(), biGpibSrq(), mbbiGpibSrq(), stringinGpibSrq();
#define STATIC static
STATIC long init_dev_sup(), report();
STATIC int srqHandler();
static struct devGpibParmBlock devSupParms;
/******************************************************************************
@@ -258,9 +259,7 @@ static struct devGpibParmBlock devSupParms = {
#define SR620_MAV 0x10
#define SR630_ESB 0x20
static int srqHandler(phwpvt, srqStatus)
struct hwpvt *phwpvt;
int srqStatus; /* The poll response from the device */
STATIC int srqHandler(struct hwpvt *phwpvt, int srqStatus)
{
int status = IDLE; /* assume device will be idle when finished */
@@ -283,9 +282,9 @@ int srqStatus; /* The poll response from the device */
logMsg("Unsolicited SRQ being handled from link %d, device %d, status = 0x%02.2X\n",
phwpvt->link, phwpvt->device, srqStatus);
((struct gpibDpvt*)(phwpvt->unsolicitedDpvt))->head.header.callback.finishProc = ((struct gpibDpvt *)(phwpvt->unsolicitedDpvt))->process;
((struct gpibDpvt*)(phwpvt->unsolicitedDpvt))->head.header.callback.callback = ((struct gpibDpvt *)(phwpvt->unsolicitedDpvt))->process;
((struct gpibDpvt *)(phwpvt->unsolicitedDpvt))->head.header.callback.priority = ((struct gpibDpvt *)(phwpvt->unsolicitedDpvt))->processPri;
callbackRequest(phwpvt->unsolicitedDpvt);
callbackRequest((CALLBACK*)phwpvt->unsolicitedDpvt);
}
else
{
@@ -305,9 +304,8 @@ int srqStatus; /* The poll response from the device */
* with a param value of 1.
*
******************************************************************************/
static long
init_dev_sup(parm)
int parm;
STATIC long
init_dev_sup(int parm)
{
return(devGpibLib_initDevSup(parm, &DSET_AI));
}
@@ -318,8 +316,8 @@ int parm;
* module.
*
******************************************************************************/
static long
report()
STATIC long
report(void)
{
return(devGpibLib_report(&DSET_AI));
}