📄 sicl.h
字号:
int src_increment,
unsigned long dest_handle,
unsigned long dest_offset,
int dest_width,
int dest_increment,
unsigned long cnt,
int swap
);
int SICLAPI ivximacro(INST id, ivximacroelem macro[], int size);
/* GP-IB Specific functions */
int SICLAPI igpibbusstatus (INST id, int request, int _far *result);
int SICLAPI igpibppoll (INST id, unsigned int _far *result);
int SICLAPI igpibppollconfig (INST id, int cval);
int SICLAPI igpibppollresp (INST id, int sval);
int SICLAPI igpibpassctl (INST id, int busaddr);
int SICLAPI igpibrenctl (INST id, int ren);
int SICLAPI igpibatnctl (INST id, int atnval);
int SICLAPI igpibsendcmd (INST id, char _far *buf, int length);
int SICLAPI igpibllo (INST id);
int SICLAPI igpibbusaddr (INST id, int busaddr);
int SICLAPI igpibgett1delay (INST id, int _far *delay);
int SICLAPI igpibsett1delay (INST id, int delay);
int SICLAPI igpibpulseifc (INST id);
/* GPIO Specific functions */
int SICLAPI igpioctrl(INST id,int request,unsigned long setting);
int SICLAPI igpiostat(INST id,int request,unsigned long _far *result);
int SICLAPI igpiosetwidth(INST id,int width);
int SICLAPI igpiogetwidth(INST id,int _far *width);
/* MSIB Specific functions */
int SICLAPI imsibeventmask(INST id,unsigned char mask);
int SICLAPI imsibcmd(INST id,unsigned int cmd,int row,int column,
char _far *resp,unsigned long bufsize,
unsigned long _far *actualcnt);
int SICLAPI imsibseterror(INST id,int row,int column,
char _far *errtext,int errtype,int _far *msiberr);
int SICLAPI imsibclearerror(INST id,int msiberr);
int SICLAPI imsibinfo(INST id,int row,int column,
struct msibinfo _far *info);
int SICLAPI imsibmodule(INST id,int row,int column,int _far *result);
int SICLAPI imsibsetstb(INST id,unsigned char stb);
/* LAN Specific functions */
int SICLAPI ilantimeout(INST id,long tval);
int SICLAPI ilangettimeout(INST id,long _far *tval);
/* Map routines */
char _far * SICLAPI imap(INST id,int mapspace,unsigned int pagestart,unsigned int pagecnt,char _far *suggested);
int SICLAPI iunmap(INST id,char _far *addr,int mapspace,unsigned int pagestart,unsigned int pagecnt);
int SICLAPI imapinfo(INST id,int mapspace,int _far *numwindows,int _far *winsize);
/* block copy and fifo routines */
int SICLAPI ibblockcopy(INST id, unsigned char _far *src, unsigned char _far *dest,
unsigned long cnt);
int SICLAPI iwblockcopy(INST id, unsigned short _far *src, unsigned short _far *dest,
unsigned long cnt, int swap);
int SICLAPI ilblockcopy(INST id, unsigned long _far *src, unsigned long _far *dest,
unsigned long cnt, int swap);
int SICLAPI ibpushfifo(INST id, unsigned char _far *src, unsigned char _far *fifo,
unsigned long cnt);
int SICLAPI iwpushfifo(INST id, unsigned short _far *src,unsigned short _far *fifo,
unsigned long cnt, int swap);
int SICLAPI ilpushfifo(INST id, unsigned long _far *src, unsigned long _far *fifo,
unsigned long cnt, int swap);
int SICLAPI ibpopfifo(INST id, unsigned char _far *fifo, unsigned char _far *dest,
unsigned long cnt);
int SICLAPI iwpopfifo(INST id, unsigned short _far *fifo, unsigned short _far *dest,
unsigned long cnt, int swap);
int SICLAPI ilpopfifo(INST id, unsigned long _far *fifo, unsigned long _far *dest,
unsigned long cnt, int swap);
int SICLAPI icmd(INST,long,int,int,void _far *); /* Send non-standard commands to driver */
/* These are not standard SICL routines */
#if !defined(STD_SICL)
int SICLAPI itrace(int level); /* Turn on tracing */
int SICLAPI isetcscpidata(INST id, void _far *data);
int SICLAPI igetcscpidata(INST id, void _far * _far *data);
int SICLAPI isetsig(int sig_val);
int SICLAPI igetsig(int _far *sig_val);
int SICLAPI _export _siclcleanup(void); /* process cleanup for Win 3.1*/
int SICLAPI _export _setsiclyield(int); /* yield option for Win 3.1 */
int SICLAPI igetblockmode( INST id, short *mode );
#endif
#else /* __STDC__ || __cplusplus || _MS_DOS_WIN || _SICL_WIN32 */
/* Old C (ie. not ANSI C or C++) */
/* Version */
int iversion();
int idrvrversion();
/* Open/Close */
INST iopen();
int iclose();
INST igetintfsess();
/* Read/Write */
int iwrite();
int iread();
int itermchr();
int igettermchr();
/* Formatted I/O */
int iprintf ();
int ivprintf ();
int isprintf ();
int isvprintf ();
int iscanf ();
int ivscanf ();
int isscanf ();
int isvscanf ();
int ipromptf ();
int ivpromptf ();
int ifwrite ();
int ifread ();
int iflush ();
int isetbuf ();
int isetubuf ();
/* Device/Interface Control */
int iclear();
int iabort();
int ilocal ();
int iremote ();
int ireadstb();
int itrigger();
int ixtrig();
int ihint();
/* Commander Sessions */
int isetstb();
/* Service Requests */
int ionsrq();
int igetonsrq();
/* Interrupts */
int ionintr();
int igetonintr();
int isetintr();
/* Asynchronous Events Control */
int iintroff();
int iintron();
int iwaithdlr();
/* Locking */
int ilock();
int iunlock();
int isetlockwait();
int igetlockwait();
/* Timeouts */
int itimeout();
int igettimeout();
/* Misc. Functions */
int igetaddr();
int isetdata();
int igetdata();
int igetintftype();
int igetsesstype();
int igetdevaddr();
int igetlu();
int ibeswap();
int ileswap();
int iswap();
int igetlulist();
int igetluinfo();
int igetgatewaytype();
/* Error Handling */
int ionerror();
int igetonerror();
void I_ERROR_EXIT();
void I_ERROR_NO_EXIT();
int igeterrno ();
char _far *igeterrstr ();
void icauseerr ();
/* RS-232 specific functions */
int iserialmclctrl ();
int iserialmclstat ();
int iserialctrl ();
int iserialstat ();
int iserialbreak ();
/* VXI Specific functions */
int ivxibusstatus();
int ivxiwaitnormop();
int ivxitrigon();
int ivxitrigoff();
int ivxitrigroute();
int ivxigettrigroute();
int ivxiws();
int ivxiservants();
int ivxirminfo();
#if defined(_MS_DOS_WIN) || defined(_SICL_WIN32)
void ibpoke();
void iwpoke();
void ilpoke();
unsigned char ibpeek();
unsigned short iwpeek();
unsigned long ilpeek();
#endif
/* GP-IB Specific functions */
int igpibbusstatus();
int igpibppoll();
int igpibppollconfig();
int igpibppollresp();
int igpibpassctl();
int igpibrenctl();
int igpibatnctl();
int igpibsendcmd();
int igpibbusaddr ();
int igpibllo ();
int igpibpulseifc ();
/* GPIO Specific functions */
int igpioctrl();
int igpiostat();
int igpiosetwidth();
int igpiogetwidth();
/* MSIB Specific functions */
int imsibeventmask();
int imsibcmd();
int imsibseterror();
int imsibclearerror();
int imsibinfo();
int imsibmodule();
int imsibsetstb();
/* LAN Specific functions */
int ilantimeout();
int ilangettimeout();
/* Map routines */
char _far *imap();
int iunmap();
int imapinfo();
int ibblockcopy();
int iwblockcopy();
int ilblockcopy();
int ibpushfifo();
int iwpushfifo();
int ilpushfifo();
int ibpopfifo();
int iwpopfifo();
int ilpopfifo();
int icmd();
/* These are not standard SICL routines */
#if !defined(STD_SICL)
int itrace();
int isetcscpidata();
int igetcscpidata();
int isetsig();
int igetsig();
int igetblockmode();
#endif
#endif /* __STDC__ || __cplusplus || _MS_DOS_WIN || _SICL_WIN32 */
#endif /* ! SICL_NOPROTO */
/* Peek/Poke Macros */
#if !defined(_MS_DOS_WIN) && !defined(_SICL_WIN32)
/* Lynx/Fantasia VXI interface needs a FIFO check before the dereference on
* VXI writes -- BJS
*/
#if defined(_SICL_LYNX_FA)
/* This global (defined and initialized by SICL) is a pointer to the Universe
* MISC_STAT register.
*/
extern volatile unsigned long *sicl_universe_misc_stat;
/* UNIVERSE_FIFO_WAIT waits until the Universe write FIFO is empty */
#define UNIVERSE_FIFO_WAIT \
do { \
} while ((*sicl_universe_misc_stat & 0x00040000L) == 0)
/* In the i*poke macros below, don't even consider removing the outer
* "do { } while (0)" structure. This "trick" makes these macros into a
* single incomplete statement, so they behave like the old i*poke macros.
*/
#define ibpoke(addr,val) \
do { \
UNIVERSE_FIFO_WAIT; \
(*(unsigned volatile char *)(addr)) = ((unsigned char)(val)); \
} while (0)
#define iwpoke(addr,val) \
do { \
UNIVERSE_FIFO_WAIT; \
(*(unsigned volatile short *)(addr)) = ((unsigned short)(val)); \
} while (0)
#define ilpoke(addr,val) \
do { \
UNIVERSE_FIFO_WAIT; \
(*(unsigned volatile long *)(addr)) = ((unsigned long)(val)); \
} while (0)
#define ibpeek(addr) *((unsigned volatile char *)(addr))
#define iwpeek(addr) *((unsigned volatile short *)(addr))
#define ilpeek(addr) *((unsigned volatile long *)(addr))
#else /* ! Lynx/Fantasia */
#define ibpoke(addr,val) (*(unsigned volatile char _far *)(addr))=((unsigned char)(val))
#define iwpoke(addr,val) (*(unsigned volatile short _far *)(addr))=((unsigned short)(val))
#define ilpoke(addr,val) (*(unsigned volatile long _far *)(addr))=((unsigned long)(val))
#define ibpeek(addr) *((unsigned volatile char _far *)(addr))
#define iwpeek(addr) *((unsigned volatile short _far *)(addr))
#define ilpeek(addr) *((unsigned volatile long _far *)(addr))
#endif /* ! Lynx/Fantasia */
#endif /* ! _MS_DOS_WIN */
/* define VXI word serial commands for ivxiws() */
#if defined(I_SICL_VXI) && !defined(STD_SICL)
/* Misc. Word Serial Defines */
#define WS_BNO_TOP_LVL 0x0100
/* Word Serial Commands */
#define WS_CMD_ANO 0xc8ff
#define WS_MASK_ANO 0xffff
#define WS_CMD_AHL 0xa900
#define WS_MASK_AHL 0xff00
#define WS_CMD_AIL 0xaa00
#define WS_MASK_AIL 0xff00
#define WS_CMD_AMC 0xa800
#define WS_MASK_AMC 0xff00
#define WS_CMD_BNO 0xfcff
#define WS_MASK_BNO 0xfeff
#define WS_CMD_BA 0xbc00
#define WS_CMD_BA_END 0xbd00
#define WS_MASK_BA 0xfe00
#define WS_CMD_BR 0xdeff
#define WS_MASK_BR 0xffff
#define WS_CMD_CLR 0xffff
#define WS_MASK_CLR 0xffff
#define WS_CMD_CL 0xefff
#define WS_MASK_CL 0xffff
#define WS_CMD_CE 0xaf00
#define WS_MASK_CE 0xff00
#define WS_CMD_ENO 0xc9ff
#define WS_MASK_ENO 0xffff
#define WS_CMD_RPE 0xcdff
#define WS_MASK_RPE 0xffff
#define WS_CMD_GD 0xbf00
#define WS_MASK_GD 0xff00
#define WS_CMD_IC 0xbe00
#define WS_MASK_IC 0xff00
#define WS_CMD_RHL 0x8c00
#define WS_MASK_RHL 0xff00
#define WS_CMD_RH 0xc7ff
#define WS_MASK_RH 0xffff
#define WS_CMD_RIL 0x8d00
#define WS_MASK_RIL 0xff00
#define WS_CMD_RI 0xcaff
#define WS_MASK_RI 0xffff
#define WS_CMD_RMOD 0xccff
#define WS_MASK_RMOD 0xffff
#define WS_CMD_RP 0xdfff
#define WS_MASK_RP 0xffff
#define WS_CMD_RSTB 0xcfff
#define WS_MASK_RSTB 0xffff
#define WS_CMD_RSA 0xceff
#define WS_MASK_RSA 0xffff
#define WS_CMD_RD 0x8e00
#define WS_MASK_RD 0xff00
#define WS_CMD_CR 0x8f00
#define WS_MASK_CR 0xff00
#define WS_CMD_SL 0xeeff
#define WS_MASK_SL 0xffff
#define WS_CMD_SLMOD 0xae00
#define WS_MASK_SLMOD 0xff00
#define WS_CMD_SUMOD 0xad00
#define WS_MASK_SUMOD 0xff00
#define WS_CMD_TRIG 0xedff
#define WS_MASK_TRIG 0xffff
#define WS_CMD_USER 0x0000
#define WS_MASK_USER 0x8000
#endif /* VXI WS support */
/*
* This is a collection of macros and entry points needed for
* backwards compatability for SICL. They are now a collection
* of non-standard HPIB/GPIB macros.
*/
#if ! defined(STD_SICL)
#define I_SICL_HPIB /* GP-IB ==> HP-IB */
#define I_INTF_HPIB I_INTF_GPIB /* GP-IB ==> HP-IB */
#define I_INTR_HPIB_IFC 16
#define I_INTR_HPIB_PPOLLCONFIG 17
#define I_INTR_HPIB_REMLOC 18
#define I_HPIB_BUS_REM I_GPIB_BUS_REM
#define I_HPIB_BUS_SRQ I_GPIB_BUS_SRQ
#define I_HPIB_BUS_NDAC I_GPIB_BUS_NDAC
#define I_HPIB_BUS_SYSCTLR I_GPIB_BUS_SYSCTLR
#define I_HPIB_BUS_ACTCTLR I_GPIB_BUS_ACTCTLR
#define I_HPIB_BUS_TALKER I_GPIB_BUS_TALKER
#define I_HPIB_BUS_LISTENER I_GPIB_BUS_LISTENER
#define I_HPIB_BUS_ADDR I_GPIB_BUS_ADDR
#define ihpibbusstatus igpibbusstatus
#define ihpibppoll igpibppoll
#define ihpibppollconfig igpibppollconfig
#define ihpibpassctl igpibpassctl
#define ihpibrenctl igpibrenctl
#define ihpibatnctl igpibatnctl
#define ihpibsendcmd igpibsendcmd
#endif
#if defined(__cplusplus)
};
#endif
#endif /* SICL_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -