WINCE系統(tǒng)IO驅(qū)動(dòng)說(shuō)明
- 設(shè)備名稱:GPIO,設(shè)備驅(qū)動(dòng)文件名是GPIOnnnnxxxxxx.dll, nnnn是產(chǎn)品型號(hào),xxxxxx是驅(qū)動(dòng)文件生成日期
- 本驅(qū)動(dòng)能夠管理DI、DO、AI、AO、PI、PO、運(yùn)行指示燈、告警指示燈、蜂鳴器。運(yùn)行指示燈、告警指示燈、蜂鳴器的IO類型是IO_TYPE_SYS,編號(hào)為1-3.
- 驅(qū)動(dòng)需要在應(yīng)用程序中動(dòng)態(tài)加載
- 驅(qū)動(dòng)操作主要通過(guò)填充IO_CMD結(jié)構(gòu)數(shù)據(jù)進(jìn)行。IO_CMD結(jié)構(gòu)詳見(jiàn)設(shè)備驅(qū)動(dòng)頭文件。
- IO__CMD結(jié)構(gòu)變量通過(guò)GIO_IOControl接口寫(xiě)入和讀取
- 函數(shù)原型:GIO_IOControl(DWORD hOpenContext,DWORD dwCode,PBYTE pBufIn,DWORD dwLenIn,PBYTE pBufOut,DWORD dwLenOut,PDWORD pdwActualOut);
- 參數(shù)說(shuō)明:
- hOpenContext,設(shè)備句柄,執(zhí)行CreateFile時(shí)得到
- dwCode,操作代碼
- pBufIn,dwLenIn:寫(xiě)入驅(qū)動(dòng)的數(shù)據(jù)
- pBufOut,dwLenOut:讀取驅(qū)動(dòng)的數(shù)據(jù)
- pdwActualOut,不使用。
- 初始化
- IO使用前必須先進(jìn)行初始化,以便建立正確的IO功能配置
- 初始化步驟
- 聲明操作數(shù)據(jù)結(jié)構(gòu)
- 填寫(xiě)IO類型、通道號(hào)、初始變量值到IO_CMD結(jié)構(gòu)變量
- 調(diào)用IOControl命令將數(shù)據(jù)寫(xiě)入驅(qū)動(dòng)
- 編程示例(初始化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);
- 數(shù)據(jù)讀取編程示例,讀取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設(shè)置編程示例,設(shè)置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);
|