?? icandllheader.h
字號:
#ifndef ICANDLLHEADER_H
#define ICANDLLHEADER_H
//接口卡類型定義
#define VCI_PCI5121 1
#define VCI_PCI9810 2
#define VCI_USBCAN1 3
#define VCI_USBCAN2 4
#define VCI_PCI9820 5
#define VCI_CAN232 6
#define VCI_PCI5110 7
#define VCI_CANLITE 8
#define VCI_ISA9620 9
#define VCI_ISA5420 10
#define VCI_PC104CAN 11
#define VCI_CANETE 12
#define VCI_DNP9810 13
#define VCI_PCI9840 14
#define VCI_PC104CAN2 15
#define ICANOK 0
#define ICANERR_FUNCNOTEXIST 0x01
#define ICANERR_SRCNOTEXIST 0x02//資源不存在
#define ICANERR_CMDNOTSUPPORT 0x03
#define ICANERR_CMDILLEGAL 0x04
#define ICANERR_CONNECTNOTEXIST 0x05
#define ICANERR 0xf1
#define ICANERR_USING 0xf3//資源被占用
#define ICANERR_SETCAN 0xf4//打開設備失敗或初始化CAN失敗
#define ICANERR_SRVSTARTED 0xf5//服務已啟動,無法進行此項操作
#define ICANERR_TIMEOUT 0xf6
#define ICANERR_ITEMEXIST 0xf7//目標已經存在
#define MASTER_CYCLEUNIT 10
#define IOCTL_ROUTE_SETSRCPORT 1
#define IOCTL_ROUTE_SETDESIP 2
#define IOCTL_ROUTE_SETDESPORT 3
typedef struct _tagRouteCfg
{
int iCardType;//CAN接口卡類型
int iCardInd;//CAN接口卡序號
int iCANInd;//CAN路數
WORD wCANBaud;//0x311c - 10K,0x041c - 100K,0x001c - 500K
WORD wMasterID;//ICAN網絡主站ID
int iMasterCycle;//ICAN網絡主站定時循環參數
}ROUTECFG;
#ifdef __cplusplus
extern "C"
{
#endif
//添加一個ICAN網絡,并設定ICAN網絡參數
DWORD __stdcall Mgr_AddRoute(ROUTECFG &cfg,HANDLE* phRoute);
//刪除一個ICAN網絡
DWORD __stdcall Mgr_DelRoute(HANDLE hRoute);
//刪除所有ICAN網絡
DWORD __stdcall Mgr_DelAllRoute();
//啟動系統
DWORD __stdcall Mgr_StartSys();
//停止系統
DWORD __stdcall Mgr_StopSys();
//系統是否已啟動
DWORD __stdcall Mgr_IsStarted();
//往指定ICAN網絡中添加從站
DWORD __stdcall Route_AddSlave(HANDLE hRoute,DWORD SlaveID,HANDLE* phSlave);
//刪除指定ICAN網絡中的從站
DWORD __stdcall Route_DelSlave(HANDLE hRoute,HANDLE hSlave);
//刪除指定ICAN網絡中所有從站
DWORD __stdcall Route_DelAllSlave(HANDLE hRoute);
//設置指定ICAN網絡配置參數
DWORD __stdcall Route_SetConfig(HANDLE hRoute,ROUTECFG &cfg);
//獲取指定ICAN網絡配置參數
DWORD __stdcall Route_GetConfig(HANDLE hRoute,ROUTECFG* pcfg);
//通過從站ID在指定ICAN網絡中獲取該從站句柄
DWORD __stdcall Route_GetSlavebyID(HANDLE hRoute,DWORD SlaveID,HANDLE* phSlave);
DWORD __stdcall Route_ConnectAllSlaveAsync(HANDLE hRoute);
DWORD __stdcall Route_IOCtl(HANDLE hRoute,DWORD code,BYTE* pinbuff=NULL,
int inlen=0,BYTE* poutbuff=NULL,int outlen=0);
//連接指定從站
DWORD __stdcall Slave_Connect(HANDLE hSlave);
//斷開指定從站
DWORD __stdcall Slave_Disconnect(HANDLE hSlave);
//從站是否已連接
DWORD __stdcall Slave_IsConnected(HANDLE hSlave);
//獲取指定從站ID
DWORD __stdcall Slave_GetID(HANDLE hSlave);
//獲取指定從站IO數據長度
DWORD __stdcall Slave_GetIODataLen(HANDLE hSlave,DWORD *pDI,DWORD* pDO,DWORD* pAI,DWORD* pAO);
//獲取指定從站AI數據
DWORD __stdcall Slave_GetAIData(HANDLE hSlave,BYTE* pRecbuf,DWORD* pReclen);
//獲取指定從站DI數據
DWORD __stdcall Slave_GetDIData(HANDLE hSlave,BYTE* pRecbuf,DWORD* pReclen);
//從指定從站接收AI/DI數據
DWORD __stdcall Slave_GetData(HANDLE hSlave,DWORD SourceID,BYTE* pRecbuf,DWORD* pReclen);
//往指定從站發送AO/DO數據
DWORD __stdcall Slave_SendData(HANDLE hSlave,DWORD SourceID,BYTE* pSendbuf,DWORD Sendlen);
//設置指定從站配置參數
DWORD __stdcall Slave_SetConfig(HANDLE hSlave,DWORD SourceID,DWORD* pSubsourceID,
BYTE* pSendbuf,DWORD Sendlen);
//獲取指定從站配置參數
DWORD __stdcall Slave_GetConfig(HANDLE hSlave,DWORD SourceID,DWORD* pSubsourceID,
BYTE* pRecbuf,DWORD Reclen);
//設置從站的數據刷新周期,默認為ROUTECFG.iMasterCycle,單位10ms
DWORD __stdcall Slave_SetCycle(HANDLE hSlave,DWORD dwCycle);
DWORD __stdcall Slave_GetCycle(HANDLE hSlave);
#ifdef __cplusplus
}
#endif
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -