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

📄 cifuser.h

📁 PROFIBUS-dp PROGRAMS 主从站源程序
💻 H
📖 第 1 页 / 共 2 页
字号:
/* Device firmware information  */
typedef struct tagFIRMWAREINFO {
  unsigned char   abFirmwareName[16];     /* Firmware name                              */
  unsigned char   abFirmwareVersion[16];  /* Firmware version                           */
} FIRMWAREINFO;

/* Device task state information  */
typedef struct tagTASKSTATE {
  unsigned char   abTaskState[64];        /* Task state field                           */
} TASKSTATE;

/* Device task paramater data */
typedef struct tagTASKPARAM {
  unsigned char   abTaskParameter[64];    /* Task parameter field                       */
} TASKPARAM;

/* Device raw data structure */
typedef struct tagRAWDATA {
  unsigned char   abRawData[1022];        /* Definition of the last kByte               */
} RAWDATA;

/* Device task information */
typedef struct tagTASKINFO {
  struct  {
    unsigned char  abTaskName[8];         /* Task name                                  */
    unsigned short usTaskVersion;         /* Task version                               */
    unsigned char  bTaskCondition;        /* Actual task condition                      */
    unsigned char  abreserved[5];         /* n.c.                                       */
  } tTaskInfo [7];
} TASKINFO;

/* Device operating system (RCS) information */
typedef struct tagRCSINFO {
  unsigned short usRcsVersion;            /* Device operating system (RCS) version      */
  unsigned char  bRcsError;               /* Operating system errors                    */
  unsigned char  bHostWatchDog;           /* Host watchdog value                        */
  unsigned char  bDevWatchDog;            /* Device watchdog value                      */
  unsigned char  bSegmentCount;           /* RCS segment free counter                   */
  unsigned char  bDeviceAdress;           /* RCS device base address                    */
  unsigned char  bDriverType;             /* RCS driver type                            */
} RCSINFO;

/* Device description */
typedef struct tagDEVINFO {
  unsigned char  bDpmSize;                /* Device dpm size (2,8...)                   */
  unsigned char  bDevType;                /* Device type  (manufactor code)             */
  unsigned char  bDevModel;               /* Device model (manufactor code)             */
  unsigned char  abDevIdentifier[3];      /* Device identification characters           */
} DEVINFO;

/* ------------------------------------------------------------------------------------ */
/*  driver info structure definitions                                                   */
/* ------------------------------------------------------------------------------------ */

/* Board information structure */
typedef struct tagBOARD_INFO{
  unsigned char abDriverVersion[16];  /* DRV driver information string  */
  struct {
    unsigned short usBoardNumber;     /* DRV board number               */
    unsigned short usAvailable;       /* DRV board is available         */
    unsigned long  ulPhysicalAddress; /* DRV physical DPM address       */
    unsigned short usIrqNumber;       /* DRV irq number                 */
  } tBoard [MAX_DEV_BOARDS];
} BOARD_INFO;

/* Internal driver state information structure */
typedef struct tagDRIVERINFO{
  unsigned long ulOpenCnt;            /* DevOpen() counter                */
  unsigned long ulCloseCnt;           /* DevClose() counter               */
  unsigned long ulReadCnt;            /* Number of DevGetMessage commands */
  unsigned long ulWriteCnt;           /* Number of DevPutMessage commands */
  unsigned long ulIRQCnt;             /* Number of board interrupts       */
  unsigned char bInitMsgFlag;         /* Actual init sate                 */
  unsigned char bReadMsgFlag;         /* Actual read mailbox state        */
  unsigned char bWriteMsgFlag;        /* Actual write mailbox state       */
  unsigned char bLastFunction;        /* Last driver function             */
  unsigned char bWriteState;          /* Actual write command state       */
  unsigned char bReadState;           /* Actual read command state        */
  unsigned char bHostFlags;           /* Actual host flags                */
  unsigned char bMyDevFlags;          /* Actual device falgs              */
  unsigned char bExIOFlag;            /* Actual IO flags                  */
  unsigned long ulExIOCnt;            /* DevExchangeIO() counter          */
} DRIVERINFO;

/* Extended board information structure */
typedef struct tagBOARD_INFOEX{
  unsigned char     abDriverVersion[16];    /* DRV driver information string */
  struct {
    unsigned short  usBoardNumber;    /* DRV board number                 */
    unsigned short  usAvailable;      /* DRV board is available           */
    unsigned long   ulPhysicalAddress;/* DRV physical DPM address         */
    unsigned short  usIrqNumber;      /* DRV irq number                   */
    DRIVERINFO      tDriverInfo;      /* Driver information               */
    FIRMWAREINFO    tFirmware;
    DEVINFO         tDeviceInfo;
    RCSINFO         tRcsInfo;
    VERSIONINFO     tVersion;
  } tBoard [MAX_DEV_BOARDS];
} BOARD_INFOEX;

/* Communication state field structure */
typedef struct tagCOMSTATE {
  unsigned short    usMode;           /* Actual STATE mode                */
  unsigned short    usStateFlag;      /* State flag                       */
  unsigned char     abState[64];      /* State area                       */
} COMSTATE;

/* state information in bLastFunction */
#define  FKT_OPEN       1;
#define  FKT_CLOSE      2;
#define  FKT_READ       3;
#define  FKT_WRITE      4;
#define  FKT_IO         5;
/* state information in bWriteState and bReadState */
#define  STATE_IN       0x01;
#define  STATE_WAIT     0x02;
#define  STATE_OUT      0x03;
#define  STATE_IN_IRQ   0x04;

/* ------------------------------------------------------------------------------------ */
/*  funcion prototypes                                                                  */
/* ------------------------------------------------------------------------------------ */

short APIENTRY DevOpenDriver        ( unsigned short usDevNumber);

short APIENTRY DevCloseDriver       ( unsigned short usDevNumber);

short APIENTRY DevGetBoardInfo      ( unsigned short usDevNumber,
                                      unsigned short usSize,
                                      void far       *pvData);

short APIENTRY DevInitBoard         ( unsigned short usDevNumber,
                                      void far       *pDevAddress);

short APIENTRY DevInitBoardEx       ( unsigned short usDevNumber,
                                      void far       *pDevAddress,
                                      unsigned short usDpmSize);

short APIENTRY DevExitBoard         ( unsigned short usDevNumber);

short APIENTRY DevPutTaskParameter  ( unsigned short usDevNumber,
                                      unsigned short usNumber,
                                      unsigned short usSize,
                                      void far       *pvData);

short APIENTRY DevReset             ( unsigned short usDevNumber,
                                      unsigned short usMode,
                                      unsigned long  ulTimeout);

short APIENTRY DevPutMessage        ( unsigned short usDevNumber,
                                      MSG_STRUC far  *ptMessage,
                                      unsigned long  ulTimeout);

short APIENTRY DevGetMessage        ( unsigned short usDevNumber,
                                      unsigned short usSize,
                                      MSG_STRUC far  *ptMessage,
                                      unsigned long  ulTimeout);

short APIENTRY DevGetTaskState      ( unsigned short usDevNumber,
                                      unsigned short usNumber,
                                      unsigned short usSize,
                                      void far       *pvData);

short APIENTRY DevGetMBXState       ( unsigned short      usDevNumber,
                                      unsigned short far  *pusDevMBXState,
                                      unsigned short far  *pusHostMBXState);

short APIENTRY DevTriggerWatchDog   ( unsigned short      usDevNumber,
                                      unsigned short      usFunction,
                                      unsigned short far  *usDevWatchDog);

short APIENTRY DevGetInfo           ( unsigned short usDevNumber,
                                      unsigned short usFunction,
                                      unsigned short usSize,
                                      void far       *pvData);

short APIENTRY DevGetTaskParameter  ( unsigned short usDevNumber,
                                      unsigned short usNumber,
                                      unsigned short usSize,
                                      void far       *pvData);

short APIENTRY DevExchangeIO        ( unsigned short usDevNumber,
                                      unsigned short usSendOffset,
                                      unsigned short usSendSize,
                                      void far       *pvSendData,
                                      unsigned short usReceiveOffset,
                                      unsigned short usReceiveSize,
                                      void far       *pvReceiveData,
                                      unsigned long  ulTimeout);

short APIENTRY DevReadSendData      ( unsigned short usDevNumber,
                                      unsigned short usOffset,
                                      unsigned short usSize,
                                      void far       *pvData);

short APIENTRY DevSetHostState      ( unsigned short usDevNumber,
                                      unsigned short usMode,
                                      unsigned long  ulTimeout);
/* Special function do not use */
short APIENTRY DevExtendedData      ( unsigned short usDevNumber,
                                      unsigned short usMode,
                                      unsigned short usSize,
                                      void far       *pvData);
/* Special function do not use */
short APIENTRY DevGetMBXData        ( unsigned short usDevNumber,
                                      unsigned short usHostSize,
                                      void far       *pvHostData,
                                      unsigned short usDevSize,
                                      void far       *pvDevData);
/* Special function do not use */
short APIENTRY DevGetBoardInfoEx    ( unsigned short usDevNumber,
                                      unsigned short usSize,
                                      void far       *pvData);

short APIENTRY DevExchangeIOEx      ( unsigned short usDevNumber,
                                      unsigned short usMode,
                                      unsigned short usSendOffset,
                                      unsigned short usSendSize,
                                      void far       *pvSendData,
                                      unsigned short usReceiveOffset,
                                      unsigned short usReceiveSize,
                                      void far       *pvReceiveData,
                                      unsigned long  ulTimeout);

short APIENTRY DevExchangeIOErr     ( unsigned short usDevNumber,
                                      unsigned short usSendOffset,
                                      unsigned short usSendSize,
                                      void far       *pvSendData,
                                      unsigned short usReceiveOffset,
                                      unsigned short usReceiveSize,
                                      void far       *pvReceiveData,
                                      COMSTATE far   *ptState,
                                      unsigned long  ulTimeout);

short APIENTRY DevReadWriteDPMRaw   ( unsigned short usDevNumber,
                                      unsigned short usMode,
                                      unsigned short usOffset,
                                      unsigned short usSize,
                                      void far       *pvData);

#if defined( _MSC_VER)          /* Microsoft C */
  #pragma pack()                /* Byte Alignment   */
    
  #ifdef __cplusplus
  }
  #endif
#endif

                                      

⌨️ 快捷键说明

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