⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spromeps.h

📁 VC环境下电力系统故障录波数据管理系统
💻 H
📖 第 1 页 / 共 2 页
字号:
#define _RB_STDCALL
#define _RB_FASTCALL __fastcall
#define _RB_PASCAL   __pascal
#define _RB_CDECL    __cdecl
#define _RB_FAR
#define _RB_NEAR
#define _RB_HUGE
#define _RB_API      EXPENTRY
#define _RB_PTR      _RB_FAR *
#elif defined(_NW_)
#define _RB_STDCALL
#define _RB_FASTCALL __fastcall
#define _RB_PASCAL   __pascal
#define _RB_CDECL    __cdecl
#define _RB_FAR
#define _RB_NEAR
#define _RB_HUGE
#define _RB_API      _RB_CDECL
#define _RB_PTR      *
#elif defined(_QNX_)
#define _RB_STDCALL
#define _RB_FASTCALL __fastcall
#define _RB_PASCAL   __pascal
#define _RB_CDECL    __cdecl
#if defined(__FLAT__)
#define _RB_FAR
#define _RB_NEAR
#define _RB_HUGE
#define _RB_PTR      *
#define _RB_API      _RB_CDECL
#else
#define _RB_FAR      __far
#define _RB_NEAR     __near
#define _RB_HUGE     __huge
#define _RB_PTR      _RB_FAR *
#define _RB_API      _RB_FAR _RB_CDECL
#endif
#else
#define _RB_STDCALL
#define _RB_FASTCALL __fastcall
#define _RB_PASCAL   __pascal
#define _RB_CDECL    __cdecl
#define _RB_FAR
#define _RB_NEAR
#define _RB_HUGE
#define _RB_API      _RB_CDECL
#define _RB_PTR      *
#endif
#endif
/***************************************************************************/

#define SP_LOADDS   _RB_LOADDS
#define SP_SYSCALL  _RB_SYSCALL
#define SP_STDCALL  _RB_STDCALL
#define SP_FASTCALL _RB_FASTCALL
#define SP_PASCAL   _RB_PASCAL
#define SP_CDECL    _RB_CDECL
#define SP_FAR      _RB_FAR
#define SP_NEAR     _RB_NEAR
#define SP_HUGE     _RB_HUGE
#if ( defined(_DOS4GW_) && defined(__BORLANDC__) && defined(_WATC_) )
#define SP_API      __cdecl
#else
#define SP_API      _RB_API
#endif
#define SP_PTR      _RB_PTR
#define SP_IN
#define SP_OUT
#define SP_IO

#if !defined(_RBTYPES_INC)

typedef                void  RB_VOID;
typedef unsigned       char  RB_BOOLEAN;
typedef unsigned       char  RB_BYTE;
typedef unsigned short int   RB_WORD;
typedef unsigned long  int   RB_DWORD;

typedef RB_VOID    SP_PTR RBP_VOID;
typedef RB_BYTE    SP_PTR RBP_BYTE;
typedef RB_BOOLEAN SP_PTR RBP_BOOLEAN;
typedef RB_WORD    SP_PTR RBP_WORD;
typedef RB_DWORD   SP_PTR RBP_DWORD;

#endif


typedef RB_DWORD RB_SPRO_APIPACKET[SPRO_APIPACKET_SIZE/sizeof(RB_DWORD)];
typedef RB_WORD  SP_STATUS;
typedef RBP_VOID RBP_SPRO_APIPACKET;

/* define a unit info structure */
typedef struct _RB_UNIT_INFO {
RB_WORD devID;
RB_WORD serialNum;
RB_WORD port;
RB_BYTE reserved[18];
} RB_UNIT_INFO;
typedef RB_UNIT_INFO SP_PTR RBP_UNIT_INFO;

/* provided for packward compatibility for OS/2 spromeps.h */
#undef RNBO_SPRO_API
#define RNBO_SPRO_APIPACKET     RB_SPRO_APIPACKET
#define RNBO_SPRO_APIPACKET_PTR RBP_SPRO_APIPACKET
#define RNBO_SPRO_API           SP_API
#define RNBO_USHORT_PTR         RBP_WORD
#define RNBO_UCHAR_PTR          RBP_BYTE
#define RNBO_QUERY_PTR          RBP_BYTE
#define RNBO_ULONG_PTR          RBP_DWORD

/* machine types */
#define RB_MIN_MACH_TYPE          0
#define RB_AUTODETECT_MACHINE     0          /* Autodetect machine type    */
#define RB_IBM_MACHINE            1          /* defines IBM type hw        */
#define RB_NEC_MACHINE            2          /* defines NEC PC-9800 hw     */
#define RB_FMR_MACHINE            3          /* defines Fujitsu FMR hw     */
#define RB_MAX_MACH_TYPE          3

/* OS types */
#define RB_MIN_OS_TYPE            0
#define RB_AUTODETECT_OS_TYPE     0          /* Autodetect OS type         */
#define RB_OS_DOS                 1          /* DOS operating system       */
#define RB_OS_RSRV1               2          /* reserved                   */
#define RB_OS_RSRV2               3          /* reserved                   */
#define RB_OS_WIN3x               4          /* Windows 3.x operating env  */
#define RB_OS_WINNT               5          /* Windows NT operating system*/
#define RB_OS_OS2                 6          /* OS/2 operating system      */
#define RB_OS_WIN95               7          /* Windows 95 operating system*/
#define RB_OS_WIN32s              8          /* Windows WIN32s env         */
#define RB_OS_NW                  9          /* Netware operating system   */
#define RB_OS_QNX                 10
#define RB_MAX_OS_TYPE            9

/* Driver types */
#define RB_DOSRM_LOCAL_DRVR       1          /* DOS Real Mode local driver */
#define RB_WIN3x_LOCAL_DRVR       2          /* Windows 3.x local driver   */
#define RB_WIN32s_LOCAL_DRVR      3          /* Win32s local driver        */
#define RB_WIN3x_SYS_DRVR         4          /* Windows 3.x system driver  */
#define RB_WINNT_SYS_DRVR         5          /* Windows NT system driver   */
#define RB_OS2_SYS_DRVR           6          /* OS/2 system driver         */
#define RB_WIN95_SYS_DRVR         7          /* Windows 95 system driver   */
#define RB_NW_LOCAL_DRVR          8          /* Netware local driver       */
#define RB_QNX_LOCAL_DRVR         9          /* QNX local driver           */

/* Router Flags */
#define RB_ROUTER_USE_LOCAL_DRVR  0x0001     /* use linked in driver       */
#define RB_ROUTER_USE_SYS_DRVR    0x0002     /* use system driver          */
#define RB_ROUTER_AUTODETECT_DRVR (RB_ROUTER_USE_LOCAL_DRVR | \
                                   RB_ROUTER_USE_SYS_DRVR)      
#define RB_MAX_ROUTER_FLAGS       (RB_ROUTER_USE_LOCAL_DRVR | \
                                   RB_ROUTER_USE_SYS_DRVR)

/* Port Params flags */
#define RB_FIRST_LOG_PORT         0          /* first logical port         */
#define RB_LAST_LOG_PORT          3          /* last logical port          */
#define RB_VALIDATE_PORT          0x00000001 /* I/O validate port exsitence*/
#define RB_CONT_HNDLR_INSTALLED   0x00000002 /* OUT    system contention   */
#define RB_USER_DEFINED_PORT      0x00000004 /* OUT    user defined port   */
#define RB_FLAGS_DRVR_DEFINED     0x80000000 /* I/O driver defined flags   */
#define RB_RSRV_PORT_FLAGS        0x7FFFFFF8 /* reserved                   */
#define RB_DEFAULT_PORT_FLAGS     (RB_VALIDATE_PORT | RB_FLAGS_DRVR_DEFINED)
#define RB_USE_AUTOTIMING         0

/* Port types */
#define RB_MIN_PORT_TYPE          0
#define RB_AUTODETECT_PORT_TYPE   0          /* IN   autodetect port type  */
#define RB_NEC_PORT_TYPE          1          /* I/O NEC-PC9800 series port */
#define RB_FMR_PORT_TYPE          2          /* I/O Fujitus FMR series port*/
#define RB_PS2_PORT_TYPE          3          /* I/O IBM/AT/PS2 series port */
#define RB_PS2_DMA_PORT_TYPE      4          /* I/O IBM PS2 DMA series port*/
#define RB_MAX_PORT_TYPE          4

/* Contention Methods (bit mask) */
#define RB_CONT_METH_SYS_ALLOC    0x00000001 /* I/O System port allocation */     
#define RB_CONT_METH_NT_RIRQL     0x00000002 /* OUT    NT Raise IRQ level  */    
#define RB_CONT_METH_SYS_INT      0x00000004 /* I/O Disable System Ints    */ 
#define RB_CONT_METH_MASK_INT     0x00000008 /* I/O Mask ints at PIC       */     
#define RB_CONT_METH_WIN_CS       0x00000010 /* I/O Windows Critical Sect  */   
#define RB_CONT_METH_POLL_HW      0x00000020 /* I/O H/W polling of port    */
#define RB_CONT_METH_RBW          0x00000040 /* I/O Read Before Write      */
#define RB_CONT_METH_DRVR_DEFINED 0x80000000 /* Contention defined by drvr.*/

/* Interrupts to mask (bit mask) */
#define RB_IRQ_MASK_LPT1      0x0001         /* mask LPT1  interrupt       */
#define RB_IRQ_MASK_LPT2      0x0002         /* mask LPT2  interrupt       */
#define RB_IRQ_MASK_TIMER     0x0004         /* mask TIMER interrupt       */
#define RB_IRQ_MAX_MASK       (RB_IRQ_MASK_LPT1 | \
                               RB_IRQ_MASK_LPT2 | \
                               RB_IRQ_MASK_TIMER)
#define RB_IRQ_MASK_DEF       (RB_IRQ_MASK_LPT1 | \
                               RB_IRQ_MASK_TIMER)

/* Define default retry counts and intervals */
#define RB_PORT_CONT_RETRY_CNT_DEF 100       /* 100 retries for port cont  */
#define RB_PORT_CONT_RETRY_INT_DEF 300       /* 300 ms retry interval      */
#define RB_DEV_RETRY_CNT_DEF       100       /* 100 retries for device     */

/* Define the cmd field values for RB_SPRO_LIB_PARAMS  */
#define RB_SET_LIB_PARAMS_CMD      0x0001    /* Set library parameters     */
#define RB_GET_LIB_PARAMS_CMD      0x0002    /* Get library parameters     */

/* define the func field values for RB_SPRO_LIB_PARAMS */
#define RB_MACHINE_TYPE_FUNC       0x0001    /* Set/Get Machine type       */
#define RB_DELAY_FUNC              0x0002    /* Set/Get Delay value        */
#define RB_MASK_INTS_FUNC          0x0003    /* Set/Get Mask interrupts    */
#define RB_ROUTER_FLAGS_FUNC       0x0004    /* Set/Get Router flags       */
#define RB_OS_PARAMS_FUNC          0x0005    /* Set/Get O/S parameters     */
#define RB_PORT_PARAMS_FUNC        0x0006    /* Set/Get Port Parameters    */

typedef struct _RB_SP_OS_PARAMS {
SP_IO  RB_WORD osType;                       /* type of Operating System   */
SP_OUT RB_WORD osVer;                        /* version of Operating System*/
} RB_SP_OS_PARAMS;
typedef RB_SP_OS_PARAMS SP_PTR RBP_SP_OS_PARAMS;

typedef struct _RB_SP_PORT_PARAMS {
SP_IO  RB_WORD  logPortNum;                  /* logical port number         */
SP_IO  RB_WORD  sysPortNum;                  /* system  port number         */
SP_IO  RB_WORD  portType;                    /* port type                   */
SP_IO  RB_WORD  phyAddr;                     /* physcial address            */
SP_OUT RB_WORD  mappedAddr;                  /* map address                 */
SP_IO  RB_WORD  deviceRetryCnt;              /* device retry count          */
SP_IO  RB_WORD  contentionRetryCnt;          /* port contention retry count */
SP_IO  RB_WORD  padding1;
SP_IO  RB_DWORD contentionMethod;            /* port contention method      */
SP_IO  RB_DWORD contentionRetryInterval;     /* port contention retry int   */
SP_IO  RB_DWORD flags1;                      /* port flags                  */
} RB_SP_PORT_PARAMS;
typedef RB_SP_PORT_PARAMS SP_PTR RBP_SP_PORT_PARAMS;

typedef union  _RB_SP_CFG_PARAMS {
SP_IO RB_WORD        machineType;      /* machine type: IBM, NEC, or FMR   */
SP_IO RB_WORD        delay;            /* number of loops for 2us delay    */
SP_IO RB_WORD        maskInterrupts;   /* interrupts to mask               */
SP_IO RB_WORD        routerFlags;      /* request routing flags            */
SP_IO RB_SP_OS_PARAMS   osParams;      /* OS parameters                    */
SP_IO RB_SP_PORT_PARAMS portParams;    /* port parameters                  */
} RB_SP_CFG_PARAMS;
typedef RB_SP_CFG_PARAMS SP_PTR RBP_SP_CFG_PARAMS;

typedef struct _RB_SPRO_LIB_PARAMS {
SP_IN RB_WORD   cmd;                   /* command - set/get parameters     */
SP_IN RB_WORD   func;                  /* function to set/get              */
SP_IO RB_SP_CFG_PARAMS params;
} RB_SPRO_LIB_PARAMS;
typedef RB_SPRO_LIB_PARAMS SP_PTR RBP_SPRO_LIB_PARAMS;

/* Define the extern routines */
SP_EXPORT
SP_STATUS SP_API RNBOsproCfgLibParams( SP_IO RBP_SPRO_APIPACKET  thePacket,
                                       SP_IO RBP_SPRO_LIB_PARAMS params );
SP_EXPORT
SP_STATUS SP_API RNBOsproFormatPacket( SP_OUT RBP_SPRO_APIPACKET thePacket,
                                       SP_IN  RB_WORD            thePacketSize );
SP_EXPORT
SP_STATUS SP_API RNBOsproInitialize( SP_OUT RBP_SPRO_APIPACKET packet );

SP_EXPORT
SP_STATUS SP_API RNBOsproFindFirstUnit( SP_IN RBP_SPRO_APIPACKET packet,
                                        SP_IN RB_WORD            devleoperID );
SP_EXPORT
SP_STATUS SP_API RNBOsproFindNextUnit( SP_IN RBP_SPRO_APIPACKET packet );

SP_EXPORT
SP_STATUS SP_API RNBOsproRead( SP_IN  RBP_SPRO_APIPACKET packet,
                               SP_IN  RB_WORD            address,
                               SP_OUT RBP_WORD           data );
SP_EXPORT
SP_STATUS SP_API RNBOsproExtendedRead( SP_IN  RBP_SPRO_APIPACKET packet,
                                       SP_IN  RB_WORD            address,
                                       SP_OUT RBP_WORD           data,
                                       SP_OUT RBP_BYTE           accessCode );
SP_EXPORT
SP_STATUS SP_API RNBOsproWrite( SP_IN RBP_SPRO_APIPACKET packet,
                                SP_IN RB_WORD            writePassword,
                                SP_IN RB_WORD            address,
                                SP_IN RB_WORD            data,
                                SP_IN RB_BYTE            accessCode );
SP_EXPORT
SP_STATUS SP_API RNBOsproOverwrite( SP_IN RBP_SPRO_APIPACKET packet,
                                    SP_IN RB_WORD            writePassword,
                                    SP_IN RB_WORD            overwritePassword1,
                                    SP_IN RB_WORD            overwritePassword2,
                                    SP_IN RB_WORD            address,
                                    SP_IN RB_WORD            data,
                                    SP_IN RB_BYTE            accessCode );
SP_EXPORT
SP_STATUS SP_API RNBOsproDecrement( SP_IN RBP_SPRO_APIPACKET packet,
                                    SP_IN RB_WORD            writePassword,
                                    SP_IN RB_WORD            address );
SP_EXPORT
SP_STATUS SP_API RNBOsproActivate( SP_IN RBP_SPRO_APIPACKET packet,
                                   SP_IN RB_WORD            writePassword,
                                   SP_IN RB_WORD            activatePassword1,
                                   SP_IN RB_WORD            activatePassword2,
                                   SP_IN RB_WORD            address );
SP_EXPORT
SP_STATUS SP_API RNBOsproQuery( SP_IN  RBP_SPRO_APIPACKET packet,
                                SP_IN  RB_WORD            address,
                                SP_IN  RBP_VOID           queryData,
                                SP_OUT RBP_VOID           response,
                                SP_OUT RBP_DWORD          response32,
                                SP_IN  RB_WORD            length );
SP_EXPORT
RB_WORD SP_API RNBOsproGetFullStatus( SP_IN RBP_SPRO_APIPACKET thePacket );

SP_EXPORT
SP_STATUS SP_API RNBOsproGetVersion( SP_IN  RBP_SPRO_APIPACKET thePacket,
                                     SP_OUT RBP_BYTE           majVer,
                                     SP_OUT RBP_BYTE           minVer,
                                     SP_OUT RBP_BYTE           rev,
                                     SP_OUT RBP_BYTE           osDrvrType );


SP_EXPORT
SP_STATUS SP_API RNBOsproGetUnitInfo( SP_IO  RBP_SPRO_APIPACKET thePacket,
                                      SP_OUT RBP_UNIT_INFO      unitInfo );
SP_EXPORT
SP_STATUS SP_API RNBOsproSetUnitInfo( SP_IO RBP_SPRO_APIPACKET thePacket,
                                      SP_IN RBP_UNIT_INFO      unitInfo );
#endif                                       /* _SPROMEPS_H                */
/* end of file */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -