/* devSkidel.c */
/*
 *      Author: Makoto Tobiyama
 *      Date:   28/Jul/2017
 */
#include <epicsStdio.h>
#include <devCommonGpib.h>
#include <string.h>
#include <strings.h>
/***********************************************************************
* asynDriver is distributed subject to a Software License Agreement
* found in file LICENSE that is included with this distribution.
***********************************************************************/
#defineDSET_AIdevAiSKIDEL
#defineDSET_AOdevAoSKIDEL
#defineDSET_BIdevBiSKIDEL
#defineDSET_BOdevBoSKIDEL
#defineDSET_LIdevLiSKIDEL
#defineDSET_LOdevLoSKIDEL
#defineDSET_MBBOdevMbboSKIDEL
#defineDSET_MBBIdevMbbiSKIDEL
#defineDSET_MBBODdevMbbodSKIDEL
#defineDSET_MBBIDdevMbbidSKIDEL
#defineDSET_SIdevSiSKIDEL
#defineDSET_SOdevSoSKIDEL
#include <devGpib.h> /* must be included after DSET defines */ #define TIMEOUT 0.01 /* I/O must complete within this time */ #define TIMEWINDOW 0.001 /* Wait this long after device timeout */ /* * Define end-of-string character(s) here to allow * easier changes when testing the driver. */ static char *OnOffList[]={"ON","OFF"}; static struct devGpibNames OnOffState={2, OnOffList,0,1}; static char *(CH01OnOffState[])={"CH01:ON\n","CH01:OFF\n",0}; static char *(CH02OnOffState[])={"CH02:ON\n","CH02:OFF\n",0}; static char *(CH03OnOffState[])={"CH03:ON\n","CH03:OFF\n",0}; static char *(CH04OnOffState[])={"CH04:ON\n","CH04:OFF\n",0}; static char *(CH05OnOffState[])={"CH05:ON\n","CH05:OFF\n",0}; static char *(CH06OnOffState[])={"CH06:ON\n","CH06:OFF\n",0}; static char *(CH07OnOffState[])={"CH07:ON\n","CH07:OFF\n",0}; static char *(CH08OnOffState[])={"CH08:ON\n","CH08:OFF\n",0}; static char *(CH09OnOffState[])={"CH09:ON\n","CH09:OFF\n",0}; static char *(CH10OnOffState[])={"CH10:ON\n","CH10:OFF\n",0}; static char *(CH11OnOffState[])={"CH11:ON\n","CH11:OFF\n",0}; static char *(CH12OnOffState[])={"CH12:ON\n","CH12:OFF\n",0}; static char *(CH13OnOffState[])={"CH13:ON\n","CH13:OFF\n",0}; static char *(CH14OnOffState[])={"CH14:ON\n","CH14:OFF\n",0}; static char *(CH15OnOffState[])={"CH15:ON\n","CH15:OFF\n",0}; static char *(CH16OnOffState[])={"CH16:ON\n","CH16:OFF\n",0}; static char *(CH17OnOffState[])={"CH17:ON\n","CH17OFF\n",0}; static char *(CH18OnOffState[])={"CH18:ON\n","CH18:OFF\n",0}; static char *(CH19OnOffState[])={"CH19:ON\n","CH19:OFF\n",0}; static char *(CH20OnOffState[])={"CH20:ON\n","CH20:OFF\n",0}; static char *(CH21OnOffState[])={"CH21:ON\n","CH21:OFF\n",0}; static char *(CH22OnOffState[])={"CH22:ON\n","CH22:OFF\n",0}; static char *(CH23OnOffState[])={"CH23:ON\n","CH23:OFF\n",0}; static char *(CH24OnOffState[])={"CH24:ON\n","CH24:OFF\n",0}; static char *(CH25OnOffState[])={"CH25:ON\n","CH25:OFF\n",0}; static char *(CH26OnOffState[])={"CH26:ON\n","CH26:OFF\n",0}; static char *(CH27OnOffState[])={"CH27:ON\n","CH27:OFF\n",0}; static char *(CH28OnOffState[])={"CH28:ON\n","CH28OFF\n",0}; static char *(CH29OnOffState[])={"CH29:ON\n","CH29:OFF\n",0}; static char *(CH30OnOffState[])={"CH30:ON\n","CH30:OFF\n",0}; static char *(CH31OnOffState[])={"CH31:ON\n","CH31:OFF\n",0}; static char *(CH32OnOffState[])={"CH32:ON\n","CH32:OFF\n",0}; static char *(ROnOffState[])={"ON","OFF",0}; #define EOSNL NULL static struct gpibCmd gpibCmds[] = { /* Command 0 ch1 delay set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH01:DEL %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 1 ch1 delay read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH01:DEL?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 2 ch1 width set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH01:WID %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 3 ch1 width read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH01:WID?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 4 ch1 enable/disable set */ {&DSET_BO, GPIBEFASTO, IB_Q_LOW, NULL, NULL, 0, 2047, NULL, 0, 0,CH01OnOffState, &OnOffState, EOSNL}, /* Command 5 ch1 on/off read */ {&DSET_BI, GPIBEFASTI, IB_Q_LOW,"CH01?\n",NULL, 0, 2047, NULL, 0, 0, ROnOffState, &OnOffState, EOSNL}, /* Command 6 ch2 delay set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH02:DEL %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 7 ch2 delay read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH02:DEL?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 8 ch2 width set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH02:WID %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 9 ch2 width read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH02:WID?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 10 ch2 enable/disable set */ {&DSET_BO, GPIBEFASTO, IB_Q_LOW, NULL, NULL, 0, 2047, NULL, 0, 0,CH02OnOffState, &OnOffState, EOSNL}, /* Command 11 ch2 on/off read */ {&DSET_BI, GPIBEFASTI, IB_Q_LOW,"CH02?\n",NULL, 0, 2047, NULL, 0, 0, ROnOffState, &OnOffState, EOSNL}, /* Command 12 ch3 delay set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH03:DEL %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 13 ch3 delay read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH03:DEL?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 14 ch3 width set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH03:WID %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 15 ch3 width read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH03:WID?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 16 ch3 enable/disable set */ {&DSET_BO, GPIBEFASTO, IB_Q_LOW, NULL, NULL, 0, 2047, NULL, 0, 0,CH03OnOffState, &OnOffState, EOSNL}, /* Command 17 ch3 on/off read */ {&DSET_BI, GPIBEFASTI, IB_Q_LOW,"CH03?\n",NULL, 0, 2047, NULL, 0, 0, ROnOffState, &OnOffState, EOSNL}, /* Command 18 ch4 delay set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH04:DEL %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 19 ch4 delay read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH04:DEL?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 20 ch4 width set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH04:WID %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 21 ch4 width read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH04:WID?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 22 ch4 enable/disable set */ {&DSET_BO, GPIBEFASTO, IB_Q_LOW, NULL, NULL, 0, 2047, NULL, 0, 0,CH04OnOffState, &OnOffState, EOSNL}, /* Command 23 ch4 on/off read */ {&DSET_BI, GPIBEFASTI, IB_Q_LOW,"CH04?\n",NULL, 0, 2047, NULL, 0, 0, ROnOffState, &OnOffState, EOSNL}, /* Command 24 ch5 delay set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH05:DEL %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 25 ch5 delay read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH05:DEL?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 26 ch5 width set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH05:WID %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 27 ch5 width read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH05:WID?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 28 ch5 enable/disable set */ {&DSET_BO, GPIBEFASTO, IB_Q_LOW, NULL, NULL, 0, 2047, NULL, 0, 0,CH05OnOffState, &OnOffState, EOSNL}, /* Command 29 ch5 on/off read */ {&DSET_BI, GPIBEFASTI, IB_Q_LOW,"CH05?\n",NULL, 0, 2047, NULL, 0, 0, ROnOffState, &OnOffState, EOSNL}, /* Command 30 ch6 delay set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH06:DEL %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 31 ch6 delay read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH06:DEL?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 32 ch6 width set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH06:WID %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 33 ch6 width read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH06:WID?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 34 ch6 enable/disable set */ {&DSET_BO, GPIBEFASTO, IB_Q_LOW, NULL, NULL, 0, 2047, NULL, 0, 0,CH06OnOffState, &OnOffState, EOSNL}, /* Command 35 ch6 on/off read */ {&DSET_BI, GPIBEFASTI, IB_Q_LOW,"CH06?\n",NULL, 0, 2047, NULL, 0, 0, ROnOffState, &OnOffState, EOSNL}, /* Command 36 CH07 delay set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH07:DEL %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 37 CH07 delay read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH07:DEL?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 38 CH07 width set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH07:WID %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 39 CH07 width read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH07:WID?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 40 CH07 enable/disable set */ {&DSET_BO, GPIBEFASTO, IB_Q_LOW, NULL, NULL, 0, 2047, NULL, 0, 0,CH07OnOffState, &OnOffState, EOSNL}, /* Command 41 CH07 on/off read */ {&DSET_BI, GPIBEFASTI, IB_Q_LOW,"CH07?\n",NULL, 0, 2047, NULL, 0, 0, ROnOffState, &OnOffState, EOSNL}, /* Command 42 CH08 delay set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH08:DEL %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 43 CH08 delay read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH08:DEL?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 44 CH08 width set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH08:WID %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 45 CH08 width read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH08:WID?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 46 CH08 enable/disable set */ {&DSET_BO, GPIBEFASTO, IB_Q_LOW, NULL, NULL, 0, 2047, NULL, 0, 0,CH08OnOffState, &OnOffState, EOSNL}, /* Command 47 CH08 on/off read */ {&DSET_BI, GPIBEFASTI, IB_Q_LOW,"CH08?\n",NULL, 0, 2047, NULL, 0, 0, ROnOffState, &OnOffState, EOSNL}, /* Command 48 CH09 delay set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH09:DEL %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 49 CH09 delay read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH09:DEL?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 50 CH09 width set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH09:WID %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 51 CH09 width read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH09:WID?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 52 CH09 enable/disable set */ {&DSET_BO, GPIBEFASTO, IB_Q_LOW, NULL, NULL, 0, 2047, NULL, 0, 0,CH09OnOffState, &OnOffState, EOSNL}, /* Command 53 CH09 on/off read */ {&DSET_BI, GPIBEFASTI, IB_Q_LOW,"CH09?\n",NULL, 0, 2047, NULL, 0, 0, ROnOffState, &OnOffState, EOSNL}, /* Command 54 CH10 delay set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH10:DEL %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 55 CH10 delay read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH10:DEL?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 56 CH10 width set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH10:WID %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 57 CH10 width read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH10:WID?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 58 CH10 enable/disable set */ {&DSET_BO, GPIBEFASTO, IB_Q_LOW, NULL, NULL, 0, 2047, NULL, 0, 0,CH10OnOffState, &OnOffState, EOSNL}, /* Command 59 CH10 on/off read */ {&DSET_BI, GPIBEFASTI, IB_Q_LOW,"CH10?\n",NULL, 0, 2047, NULL, 0, 0, ROnOffState, &OnOffState, EOSNL}, /* Command 60 CH11 delay set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH11:DEL %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 61 CH11 delay read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH11:DEL?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 62 CH11 width set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH11:WID %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 63 CH11 width read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH11:WID?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 64 CH11 enable/disable set */ {&DSET_BO, GPIBEFASTO, IB_Q_LOW, NULL, NULL, 0, 2047, NULL, 0, 0,CH11OnOffState, &OnOffState, EOSNL}, /* Command 65 CH11 on/off read */ {&DSET_BI, GPIBEFASTI, IB_Q_LOW,"CH11?\n",NULL, 0, 2047, NULL, 0, 0, ROnOffState, &OnOffState, EOSNL}, /* Command 66 CH12 delay set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH12:DEL %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 67 CH12 delay read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH12:DEL?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 68 CH12 width set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH12:WID %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 69 CH12 width read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH12:WID?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 70 CH12 enable/disable set */ {&DSET_BO, GPIBEFASTO, IB_Q_LOW, NULL, NULL, 0, 2047, NULL, 0, 0,CH12OnOffState, &OnOffState, EOSNL}, /* Command 71 CH12 on/off read */ {&DSET_BI, GPIBEFASTI, IB_Q_LOW,"CH12?\n",NULL, 0, 2047, NULL, 0, 0, ROnOffState, &OnOffState, EOSNL}, /* Command 72 CH13 delay set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH13:DEL %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 73 CH13 delay read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH13:DEL?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 74 CH13 width set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH13:WID %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 75 CH13 width read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH13:WID?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 76 CH13 enable/disable set */ {&DSET_BO, GPIBEFASTO, IB_Q_LOW, NULL, NULL, 0, 2047, NULL, 0, 0,CH13OnOffState, &OnOffState, EOSNL}, /* Command 77 CH13 on/off read */ {&DSET_BI, GPIBEFASTI, IB_Q_LOW,"CH13?\n",NULL, 0, 2047, NULL, 0, 0, ROnOffState, &OnOffState, EOSNL}, /* Command 78 CH14 delay set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH14:DEL %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 79 CH14 delay read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH14:DEL?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 80 CH14 width set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH14:WID %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 81 CH14 width read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH14:WID?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 82 CH14 enable/disable set */ {&DSET_BO, GPIBEFASTO, IB_Q_LOW, NULL, NULL, 0, 2047, NULL, 0, 0,CH14OnOffState, &OnOffState, EOSNL}, /* Command 83 CH14 on/off read */ {&DSET_BI, GPIBEFASTI, IB_Q_LOW,"CH14?\n",NULL, 0, 2047, NULL, 0, 0, ROnOffState, &OnOffState, EOSNL}, /* Command 84 CH15 delay set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH15:DEL %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 85 CH15 delay read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH15:DEL?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 86 CH15 width set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH15:WID %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 87 CH15 width read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH15:WID?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 88 CH15 enable/disable set */ {&DSET_BO, GPIBEFASTO, IB_Q_LOW, NULL, NULL, 0, 2047, NULL, 0, 0,CH15OnOffState, &OnOffState, EOSNL}, /* Command 89 CH15 on/off read */ {&DSET_BI, GPIBEFASTI, IB_Q_LOW,"CH15?\n",NULL, 0, 2047, NULL, 0, 0, ROnOffState, &OnOffState, EOSNL}, /* Command 90 CH16 delay set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH16:DEL %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 91 CH16 delay read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH16:DEL?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 92 CH16 width set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH16:WID %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 93 CH16 width read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH16:WID?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 94 CH16 enable/disable set */ {&DSET_BO, GPIBEFASTO, IB_Q_LOW, NULL, NULL, 0, 2047, NULL, 0, 0,CH16OnOffState, &OnOffState, EOSNL}, /* Command 95 CH16 on/off read */ {&DSET_BI, GPIBEFASTI, IB_Q_LOW,"CH16?\n",NULL, 0, 2047, NULL, 0, 0, ROnOffState, &OnOffState, EOSNL}, /* Command 96 CH17 delay set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH17:DEL %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 97 CH17 delay read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH17:DEL?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 98 CH17 width set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH17:WID %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 99 CH17 width read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH17:WID?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 100 CH17 enable/disable set */ {&DSET_BO, GPIBEFASTO, IB_Q_LOW, NULL, NULL, 0, 2047, NULL, 0, 0,CH17OnOffState, &OnOffState, EOSNL}, /* Command 101 CH17 on/off read */ {&DSET_BI, GPIBEFASTI, IB_Q_LOW,"CH17?\n",NULL, 0, 2047, NULL, 0, 0, ROnOffState, &OnOffState, EOSNL}, /* Command 102 CH18 delay set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH18:DEL %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 103 CH18 delay read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH18:DEL?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 104 CH18 width set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH18:WID %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 105 CH18 width read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH18:WID?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 106 CH18 enable/disable set */ {&DSET_BO, GPIBEFASTO, IB_Q_LOW, NULL, NULL, 0, 2047, NULL, 0, 0,CH18OnOffState, &OnOffState, EOSNL}, /* Command 107 CH18 on/off read */ {&DSET_BI, GPIBEFASTI, IB_Q_LOW,"CH18?\n",NULL, 0, 2047, NULL, 0, 0, ROnOffState, &OnOffState, EOSNL}, /* Command 108 CH19 delay set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH19:DEL %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 109 CH19 delay read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH19:DEL?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 110 CH19 width set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH19:WID %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 111 CH19 width read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH19:WID?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 112 CH19 enable/disable set */ {&DSET_BO, GPIBEFASTO, IB_Q_LOW, NULL, NULL, 0, 2047, NULL, 0, 0,CH19OnOffState, &OnOffState, EOSNL}, /* Command 113 CH19 on/off read */ {&DSET_BI, GPIBEFASTI, IB_Q_LOW,"CH19?\n",NULL, 0, 2047, NULL, 0, 0, ROnOffState, &OnOffState, EOSNL}, /* Command 114 CH20 delay set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH20:DEL %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 115 CH20 delay read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH20:DEL?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 116 CH20 width set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH20:WID %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 117 CH20 width read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH20:WID?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 118 CH20 enable/disable set */ {&DSET_BO, GPIBEFASTO, IB_Q_LOW, NULL, NULL, 0, 2047, NULL, 0, 0,CH20OnOffState, &OnOffState, EOSNL}, /* Command 119 CH20 on/off read */ {&DSET_BI, GPIBEFASTI, IB_Q_LOW,"CH20?\n",NULL, 0, 2047, NULL, 0, 0, ROnOffState, &OnOffState, EOSNL}, /* Command 120 CH21 delay set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH21:DEL %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 121 CH21 delay read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH21:DEL?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 122 CH21 width set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH21:WID %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 123 CH21 width read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH21:WID?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 124 CH21 enable/disable set */ {&DSET_BO, GPIBEFASTO, IB_Q_LOW, NULL, NULL, 0, 2047, NULL, 0, 0,CH21OnOffState, &OnOffState, EOSNL}, /* Command 125 CH21 on/off read */ {&DSET_BI, GPIBEFASTI, IB_Q_LOW,"CH21?\n",NULL, 0, 2047, NULL, 0, 0, ROnOffState, &OnOffState, EOSNL}, /* Command 126 CH22 delay set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH22:DEL %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 127 CH22 delay read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH22:DEL?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 128 CH22 width set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH22:WID %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 129 CH22 width read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH22:WID?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 130 CH22 enable/disable set */ {&DSET_BO, GPIBEFASTO, IB_Q_LOW, NULL, NULL, 0, 2047, NULL, 0, 0,CH22OnOffState, &OnOffState, EOSNL}, /* Command 131 CH22 on/off read */ {&DSET_BI, GPIBEFASTI, IB_Q_LOW,"CH22?\n",NULL, 0, 2047, NULL, 0, 0, ROnOffState, &OnOffState, EOSNL}, /* Command 132 CH23 delay set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH23:DEL %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 133 CH23 delay read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH23:DEL?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 134 CH23 width set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH23:WID %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 135 CH23 width read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH23:WID?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 136 CH23 enable/disable set */ {&DSET_BO, GPIBEFASTO, IB_Q_LOW, NULL, NULL, 0, 2047, NULL, 0, 0,CH23OnOffState, &OnOffState, EOSNL}, /* Command 137 CH23 on/off read */ {&DSET_BI, GPIBEFASTI, IB_Q_LOW,"CH23?\n",NULL, 0, 2047, NULL, 0, 0, ROnOffState, &OnOffState, EOSNL}, /* Command 138 CH24 delay set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH24:DEL %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 139 CH24 delay read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH24:DEL?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 140 CH24 width set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH24:WID %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 141 CH24 width read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH24:WID?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 142 CH24 enable/disable set */ {&DSET_BO, GPIBEFASTO, IB_Q_LOW, NULL, NULL, 0, 2047, NULL, 0, 0,CH24OnOffState, &OnOffState, EOSNL}, /* Command 143 CH24 on/off read */ {&DSET_BI, GPIBEFASTI, IB_Q_LOW,"CH24?\n",NULL, 0, 2047, NULL, 0, 0, ROnOffState, &OnOffState, EOSNL}, /* Command 144 CH25 delay set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH25:DEL %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 145 CH25 delay read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH25:DEL?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 146 CH25 width set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH25:WID %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 147 CH25 width read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH25:WID?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 148 CH25 enable/disable set */ {&DSET_BO, GPIBEFASTO, IB_Q_LOW, NULL, NULL, 0, 2047, NULL, 0, 0,CH25OnOffState, &OnOffState, EOSNL}, /* Command 149 CH25 on/off read */ {&DSET_BI, GPIBEFASTI, IB_Q_LOW,"CH25?\n",NULL, 0, 2047, NULL, 0, 0, ROnOffState, &OnOffState, EOSNL}, /* Command 150 CH26 delay set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH26:DEL %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 151 CH26 delay read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH26:DEL?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 152 CH26 width set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH26:WID %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 153 CH26 width read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH26:WID?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 154 CH26 enable/disable set */ {&DSET_BO, GPIBEFASTO, IB_Q_LOW, NULL, NULL, 0, 2047, NULL, 0, 0,CH26OnOffState, &OnOffState, EOSNL}, /* Command 155 CH26 on/off read */ {&DSET_BI, GPIBEFASTI, IB_Q_LOW,"CH26?\n",NULL, 0, 2047, NULL, 0, 0, ROnOffState, &OnOffState, EOSNL}, /* Command 156 CH27 delay set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH27:DEL %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 157 CH27 delay read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH27:DEL?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 158 CH27 width set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH27:WID %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 159 CH27 width read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH27:WID?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 160 CH27 enable/disable set */ {&DSET_BO, GPIBEFASTO, IB_Q_LOW, NULL, NULL, 0, 2047, NULL, 0, 0,CH27OnOffState, &OnOffState, EOSNL}, /* Command 161 CH27 on/off read */ {&DSET_BI, GPIBEFASTI, IB_Q_LOW,"CH27?\n",NULL, 0, 2047, NULL, 0, 0, ROnOffState, &OnOffState, EOSNL}, /* Command 162 CH28 delay set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH28:DEL %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 163 CH28 delay read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH28:DEL?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 164 CH28 width set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH28:WID %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 165 CH28 width read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH28:WID?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 166 CH28 enable/disable set */ {&DSET_BO, GPIBEFASTO, IB_Q_LOW, NULL, NULL, 0, 2047, NULL, 0, 0,CH28OnOffState, &OnOffState, EOSNL}, /* Command 167 CH28 on/off read */ {&DSET_BI, GPIBEFASTI, IB_Q_LOW,"CH28?\n",NULL, 0, 2047, NULL, 0, 0, ROnOffState, &OnOffState, EOSNL}, /* Command 168 CH29 delay set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH29:DEL %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 169 CH29 delay read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH29:DEL?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 170 CH29 width set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH29:WID %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 171 CH29 width read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH29:WID?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 172 CH29 enable/disable set */ {&DSET_BO, GPIBEFASTO, IB_Q_LOW, NULL, NULL, 0, 2047, NULL, 0, 0,CH29OnOffState, &OnOffState, EOSNL}, /* Command 173 CH29 on/off read */ {&DSET_BI, GPIBEFASTI, IB_Q_LOW,"CH29?\n",NULL, 0, 2047, NULL, 0, 0, ROnOffState, &OnOffState, EOSNL}, /* Command 174 CH30 delay set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH30:DEL %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 175 CH30 delay read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH30:DEL?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 176 CH30 width set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH30:WID %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 177 CH30 width read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH30:WID?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 178 CH30 enable/disable set */ {&DSET_BO, GPIBEFASTO, IB_Q_LOW, NULL, NULL, 0, 2047, NULL, 0, 0,CH30OnOffState, &OnOffState, EOSNL}, /* Command 179 CH30 on/off read */ {&DSET_BI, GPIBEFASTI, IB_Q_LOW,"CH30?\n",NULL, 0, 2047, NULL, 0, 0, ROnOffState, &OnOffState, EOSNL}, /* Command 180 CH31 delay set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH31:DEL %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 181 CH31 delay read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH31:DEL?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 182 CH31 width set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH31:WID %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 183 CH31 width read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH31:WID?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 184 CH31 enable/disable set */ {&DSET_BO, GPIBEFASTO, IB_Q_LOW, NULL, NULL, 0, 2047, NULL, 0, 0,CH31OnOffState, &OnOffState, EOSNL}, /* Command 185 CH31 on/off read */ {&DSET_BI, GPIBEFASTI, IB_Q_LOW,"CH31?\n",NULL, 0, 2047, NULL, 0, 0, ROnOffState, &OnOffState, EOSNL}, /* Command 186 CH32 delay set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH32:DEL %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 187 CH32 delay read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH32:DEL?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 188 CH32 width set */ {&DSET_LO, GPIBWRITE, IB_Q_LOW, NULL, "CH32:WID %ld\n", 0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 189 CH32 width read */ {&DSET_LI, GPIBREAD, IB_Q_LOW, "CH32:WID?\n","%ld\n", 0, 2047, NULL, 0, 0, NULL,NULL, EOSNL}, /* Command 190 CH32 enable/disable set */ {&DSET_BO, GPIBEFASTO, IB_Q_LOW, NULL, NULL, 0, 2047, NULL, 0, 0,CH32OnOffState, &OnOffState, EOSNL}, /* Command 191 CH32 on/off read */ {&DSET_BI, GPIBEFASTI, IB_Q_LOW,"CH32?\n",NULL, 0, 2047, NULL, 0, 0, ROnOffState, &OnOffState, EOSNL}, /* Command 192 EP195 set */ {&DSET_LO,GPIBWRITE,IB_Q_LOW,NULL,"EXTD %ld\n",0, 2047, NULL, 0,0, NULL, NULL, EOSNL}, /* Command 193 EP195 read */ {&DSET_LI,GPIBREAD,IB_Q_LOW,"EXTD?\n","%ld\n",0, 2047, NULL, 0, 0, NULL, NULL, EOSNL}, /* Command 194 save */ {&DSET_LO,GPIBWRITE,IB_Q_LOW,NULL,"SAV\n",0,2047,NULL, 0, 0, NULL, NULL, EOSNL} }; /* The following is the number of elements in the command array above. */
#define NUMPARAMSsizeof(gpibCmds)/sizeof(struct gpibCmd)
/****************************************************************************** * * Initialization for device support * This is called one time before any records are initialized with a parm * value of 0. And then again AFTER all record-level init is complete * with a param value of 1. * ******************************************************************************/ static long init_ai(int parm) { if(parm==0) { devSupParms.name = "devSKIDEL"; devSupParms.gpibCmds = gpibCmds; devSupParms.numparams = NUMPARAMS; devSupParms.timeout = TIMEOUT; devSupParms.timeWindow = TIMEWINDOW; devSupParms.respond2Writes = -1.0; } return(0); }