WINCE系統IO驅動說明
- 設備名稱:GPIO,設備驅動文件名是GPIOnnnnxxxxxx.dll, nnnn是產品型號,xxxxxx是驅動文件生成日期
- 本驅動能夠管理DI、DO、AI、AO、PI、PO、運行指示燈、告警指示燈、蜂鳴器。運行指示燈、告警指示燈、蜂鳴器的IO類型是IO_TYPE_SYS,編號為1-3.
- 驅動需要在應用程序中動態加載
- 驅動操作主要通過填充IO_CMD結構數據進行。IO_CMD結構詳見設備驅動頭文件。
- IO__CMD結構變量通過GIO_IOControl接口寫入和讀取
- 函數原型:GIO_IOControl(DWORD hOpenContext,DWORD dwCode,PBYTE pBufIn,DWORD dwLenIn,PBYTE pBufOut,DWORD dwLenOut,PDWORD pdwActualOut);
- 參數說明:
- hOpenContext,設備句柄,執行CreateFile時得到
- dwCode,操作代碼
- pBufIn,dwLenIn:寫入驅動的數據
- pBufOut,dwLenOut:讀取驅動的數據
- pdwActualOut,不使用。
- 初始化
- IO使用前必須先進行初始化,以便建立正確的IO功能配置
- 初始化步驟
- 聲明操作數據結構
- 填寫IO類型、通道號、初始變量值到IO_CMD結構變量
- 調用IOControl命令將數據寫入驅動
- 編程示例(初始化AI1):
- struct IO_CMD BufIn;
- BufIn.type=IO_TYPE_AI;
- BufIn.channel=1;
- GIO_IOControl(hOpenContext,IOCTL_CMD_INIT,&BufIn,sizeof(BufIn),NULL,NULL,NULL);
- 數據讀取編程示例,讀取DI2電平
- struct IO_CMD BufIn;
- BufIn.type=IO_TYPE_DI;
- BufIn.channel=2;
- GIO_IOControl(hOpenContext,IOCTL_CMD_READ,&BufIn,sizeof(BufIn),&BufIn,sizeof(BufIn),NULL);
- BufIn.value即為返回值
- IO設置編程示例,設置AO3輸出為5V
- struct IO_CMD BufIn;
- BufIn.type=IO_TYPE_AO;
- BufIn.channel=3;
- BufIn.value=0x7fff; //AO滿幅輸出為0xffff
- GIO_IOControl(hOpenContext,IOCTL_CMD_READ,&BufIn,sizeof(BufIn),NULL,NULL,NULL);
|