亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pci8408.h

?? PCI8408的驅動接口源文件(帶示例)
?? H
字號:
#ifndef PCI8408_H
#define PCI8408_H

#ifdef PCI8KPLX_EXPORTS
#define ZT_API __declspec(dllexport)
#else
#define ZT_API __declspec(dllimport)

//定義錯誤號
#define ZT_SUCCESS 0  //無錯誤
#define ERR_PARAMETER1 1 //參數1錯
#define ERR_PARAMETER2 2 //參數2錯
#define ERR_PARAMETER3 3 //參數3錯
#define ERR_PARAMETER4 4 //參數4錯
#define ERR_PARAMETER5 5 //參數5錯
#define ERR_PARAMETER6 6 //參數6錯
#define ERR_PARAMETER7 7 //參數7錯
#define ERR_PARAMETER8 8 //參數8錯
#define ERR_PARAMETER9 9 //參數9錯
#define ERR_PARAMETER10 10 //參數10錯
#define ERR_PARAMETER11 11 //參數11錯
#define ERR_PARAMETER12 12 //參數12錯
#define ERR_PARAMETER13 13 //參數13錯
#define ERR_PARAMETER14 14 //參數14錯
#define ERR_PARAMETER15 15 //參數15錯
#define ERR_PARAMETER16 16 //參數16錯
#define ERR_PARAMETER17 17 //參數17錯
#define ERR_PARAMETER18 18 //參數18錯
#define ERR_PARAMETER19 19 //參數19錯
#define ERR_PARAMETER20 20 //參數20錯
#define ERR_PARAMETER_BASEADDR 21 //針對ISA卡,板卡基地址超出范圍,基地址應該為0x100至0x3F0之間未被系統占用的地址
#define ERR_PARAMETER_CARDNO 22 //針對PCI卡,板卡索引號超出范圍,這版驅動中板卡索引號默認從1開始
#define ERR_PARAMETER_CHMODE 23 //通道方式參數錯誤,通道方式超出范圍,一般只有0--3共4種方式
#define ERR_PARAMETER_CH 24 //通道號參數錯誤,通道號超出范圍
#define ERR_PARAMETER_CHIP 25 //芯片號參數錯誤,芯片號超出范圍
#define ERR_PARAMETER_PORT 26 //口號參數錯誤,口號超出范圍
#define ERR_PARAMETER_AI_RANGE 27 //AD量程參數錯,此卡不支持這種AD輸入量程
#define ERR_PARAMETER_AI_AMP 28 //AD增益參數錯
#define ERR_PARAMETER_AI_STARTMODE 29 //AD啟動方式參數錯
#define ERR_PARAMETER_AO_RANGE 30 //DA量程參數錯,此卡不支持這種DA輸出量程
#define ERR_PARAMETER_ADFREQ 31 //AD采集頻率(或AD分頻系數)參數錯
#define ERR_PARAMETER_IRQ 32 //與中斷相關參數錯,可能是此卡不支持這種中斷方式或中斷號
#define ERR_PARAMETER_NULL_POINTER 33 //空指針錯。原因:緩沖區首地址為空或者用戶傳入的參數導致引用到空指針
#define ERR_AD_OVERTIME 34 //AD超時。對于ISA卡,出錯原因可能是:未插卡或IO地址與板卡上設置不匹配。當用定時啟動AD或外觸發啟動AD時,一般不應檢查AD是否超時
#define ERR_OPEN_DEVICE 35 //打開設備失敗,對于PCI卡,出錯原因可能是:未插卡或未裝驅動,或dll與sys版本不一致
#define ERR_CLOSE_DEVICE 36 //關閉設備失敗
#define ERR_TIMING 37 //定時未到或外觸發脈沖未到
#define ERR_IOADDR_DA_OVERTIME 38 //帶光隔DA寫過程超時
#define ERR_OPEN_IRQ 39 //打開中斷出錯
#define ERR_FUNC_CANNT_RUN 40 //此函數不能在這臺計算機上運行
#define ERR_ASYNC_FUNC_FAILED 41 //異步函數調用失敗
#define ERR_FUNC_OPERATE 42 //在當前的卡的設置狀態下,不應該調用此函數
#define ERR_EXCHANGE_DATA 43 //與底層驅動之間交換數據出錯

#endif

extern "C" 
{
ZT_API unsigned long _stdcall ZT8408_GetLastErr();
//函數名稱:ZT8408_GetLastErr
//函數功能:得到當前錯誤號。如果錯誤號為0表示無錯誤
//返回值:錯誤代碼,錯誤代碼含義請看宏定義
ZT_API void _stdcall ZT8408_ClearLastErr();
//函數名稱:ZT8408_ClearLastErr
//函數功能:清除錯誤號。
//          注意:一旦產生錯誤,為了使函數重新正常執行,必須清除錯誤號
//返回值:無
ZT_API long _stdcall ZT8408_OpenDevice(unsigned long cardNO);
//函數名稱:ZT8408_OpenDevice
//函數功能:打開設備。必須在調用其他函數之前調用。
//          放在程序初始化時調用比較恰當,只調用一次即可
//入口參數:
//          cardNO:板卡號默認從 1 開始
//                    如果系統中只用了一塊這種型號的板卡,令這個參數為1就行了
//                    如果系統中用了多塊這種型號的板卡,基地址最小的板卡索引號為1,基地址次小的板卡索引號為2,以此類推
//                    注意:用戶一般不用關心板卡基地址的具體值
//返回值:  0  表成功
//         -1  表失敗,應該進一步調用 ZT8408_GetLastErr 判斷出錯原因
ZT_API long _stdcall ZT8408_CloseDevice(unsigned long cardNO);
//函數名稱:ZT8408_CloseDevice
//函數功能:關閉指定的設備
//
//入口參數:
//          cardNO:板卡號默認從 1 開始
//                    如果系統中只用了一塊這種型號的板卡,令這個參數為1就行了
//                    如果系統中用了多塊這種型號的板卡,基地址最小的板卡索引號為1,基地址次小的板卡索引號為2,以此類推
//返回值:  0  表成功
//         -1  表失敗,應該進一步調用 ZT8408_GetLastErr 判斷出錯原因
ZT_API long _stdcall ZT8408_GetBaseAddr(unsigned long cardNO);
//函數名稱:ZT8408_GetBaseAddr
//函數功能:得到指定板卡的基地址。
//          在2K或XP下用戶不能用得到的基地址直接訪問端口
//入口參數:
//          cardNO:板卡號默認從 1 開始,有關這個參數的詳細說明,請參考 ZT8408_OpenDevice 函數
//
//返回值:  大于0  表示返回板卡的基地址
//            -1   表失敗,應該進一步調用 ZT8408_GetLastErr 判斷出錯原因
ZT_API unsigned short _stdcall ZT8408_ReadW(unsigned long cardNO,
                                            unsigned long nOffset);
//函數名稱:ZT8408_ReadW
//函數功能:以IO方式,對板卡寄存器進行16位讀
//入口參數:
//          cardNO:板卡號默認從 1 開始,有關這個參數的詳細說明,請參考 ZT8408_OpenDevice 函數
//         nOffset:偏移地址,在硬件說明書上可以查到
//返回值:  返回大于等于0的數,表讀出的具體值
//          -1  表失敗,應該進一步調用 ZT8408_GetLastErr 判斷出錯原因
ZT_API long _stdcall ZT8408_WriteW(unsigned long cardNO,
                                   unsigned long nOffset,
                                   unsigned long dataWord);
//函數名稱:
//函數功能:以IO方式,對板卡寄存器進行16位寫
//入口參數:
//          cardNO:板卡號默認從 1 開始,有關這個參數的詳細說明,請參考 ZT8408_OpenDevice 函數
//         nOffset:偏移地址,在硬件說明書上可以查到
//        dataWord:要寫入寄存的值
//返回值:  0  表成功
//         -1  表失敗,應該進一步調用 ZT8408_GetLastErr 判斷出錯原因
ZT_API long _stdcall ZT8408_ClearIRQ(unsigned long cardNO, unsigned long clearIrqStatusMask);
//函數名稱:ZT8408_ClearIRQ
//函數功能:清前8路開關量輸入中斷狀態標志。
//            對于變化頻率小于 0.1Hz 的DI通道必須清中斷狀態標志;
//            對于變化頻率大于 0.1Hz 的DI通道不要清中斷狀態標志。
//入口參數:
//            cardNO:板卡號默認從 1 開始,有關這個參數的詳細說明,請參考 ZT8408_OpenDevice 函數
//clearIrqStatusMask:相應的bit置1表示清該通道中斷狀態標志
//                      對于變化頻率小于 0.1Hz 的DI通道必須清中斷;
//                      對于變化頻率大于 0.1Hz 的DI通道不要清中斷。
//                      例如:
//                            0x01 = 表清第1路DI中斷狀態標志;
//                            0x02 = 表清第2路DI中斷狀態標志;
//                            0x80 = 表清第8路DI中斷狀態標志;
//                            0xFF = 表清全部8路DI中斷狀態標志;
//返回值:  0  表成功
//         -1  表失敗,應該進一步調用 ZT8408_GetLastErr 判斷出錯原因
ZT_API long _stdcall ZT8408_OpenIRQ(unsigned long cardNO, long hEventDI);
//函數名稱:ZT8408_OpenIRQ
//函數功能:打開8408開關量輸入中斷。
//入口參數:
//          cardNO:板卡號默認從 1 開始,有關這個參數的詳細說明,請參考 ZT8408_OpenDevice 函數
//        hEventDI:是“開關量輸入中斷”事件句柄
//                    由用戶建立一個事件,然后把事件句柄傳入驅動,當開關量輸入中斷產生后,
//                    驅動會將這個事件設置為有信號狀態,從而喚醒用戶建立的用來等待的線程。
//                    如果用戶不需要用到多線程,請保持這個參數為0
//返回值:  0  表示成功
//          -1  表失敗,應該進一步調用 ZT8408_GetLastErr 判斷出錯原因
ZT_API long _stdcall ZT8408_CloseIRQ(unsigned long cardNO);
//函數名稱:ZT8408_CloseIRQ
//函數功能:關閉8408開關量輸入中斷
//入口參數:
//          cardNO:板卡號默認從 1 開始,有關這個參數的詳細說明,請參考 ZT8408_OpenDevice 函數
//返回值:  0  表成功
//         -1  表失敗,應該進一步調用 ZT8408_GetLastErr 判斷出錯原因
ZT_API long _stdcall ZT8408_ReadIRQstatus(unsigned long cardNO,
                                          unsigned long* DIirqStatusMask,
                                          unsigned long* DIvalinIrq);
//函數名稱:ZT8408_ReadIRQstatus
//函數功能:讀中斷時開關量輸入(DI)的狀態及前8路中斷狀態標志
//入口參數:
//          cardNO:板卡號默認從 1 開始,有關這個參數的詳細說明,請參考 ZT8408_OpenDevice 函數
// DIirqStatusMask:進入中斷后,前8路開關量輸入通道的中斷狀態標志,每2個bit表示一個通道的中斷狀態標志
//                    例如:
//                          0x0001 = 表第1路DI產生中斷;
//                          0x0004 = 表第2路DI產生中斷;
//                          0x0010 = 表第3路DI產生中斷;
//                          0x0040 = 表第4路DI產生中斷;
//                          0x0100 = 表第5路DI產生中斷;
//                          0x0400 = 表第6路DI產生中斷;
//                          0x1000 = 表第7路DI產生中斷;
//                          0x4000 = 表第8路DI產生中斷;
//      DIvalinIrq:產生中斷時刻,所有開關量輸入的狀態
//返回值:  0  表成功
//         -1  表失敗,應該進一步調用 ZT8408_GetLastErr 判斷出錯原因
ZT_API long _stdcall ZT8408_ReadDIirqCnt(unsigned long cardNO);
//函數名稱:ZT8408_ReadDIirqCnt
//函數功能:讀開關量輸入引發的中斷次數。
//            注意:只有前8路開關量輸入能夠產生中斷
//入口參數:
//          cardNO:板卡號默認從 1 開始,有關這個參數的詳細說明,請參考 ZT8408_OpenDevice 函數
//返回值:  大于等于0  表DI中斷次數
//         -1  表失敗,應該進一步調用 ZT8408_GetLastErr 判斷出錯原因
ZT_API long _stdcall ZT8408_ClearDIirqCnt(unsigned long cardNO);
//函數名稱:ZT8408_ClearDIirqCnt
//函數功能:將開關量輸入引發的中斷次數清零。
//            注意:只有前8路開關量輸入能夠產生中斷
//入口參數:
//          cardNO:板卡號默認從 1 開始,有關這個參數的詳細說明,請參考 ZT8408_OpenDevice 函數
//返回值:  0  表成功
//         -1  表失敗,應該進一步調用 ZT8408_GetLastErr 判斷出錯原因
ZT_API long _stdcall ZT8408_DIBit(unsigned long cardNO, unsigned long chNO);
//函數名稱:ZT8408_DIBit
//函數功能:得到指定通道的開關量輸入狀態
//入口參數:
//          cardNO:板卡號默認從 1 開始,有關這個參數的詳細說明,請參考 ZT8408_OpenDevice 函數
//            chNO:通道號:1--16
//返回值:
//          0 表示低電平
//          1 表示高電平
//         -1 表示調用出錯,應該進一步調用ZT8408_GetLastErr函數查找出錯原因
ZT_API long _stdcall ZT8408_DIAll(unsigned long cardNO);
//函數名稱:ZT8408_DIAll
//函數功能:得到所有通道的開關量輸入狀態
//入口參數:
//          cardNO:板卡號默認從 1 開始,有關這個參數的詳細說明,請參考 ZT8408_OpenDevice 函數
//返回值:
//             0   表示所有通道的開關量輸入狀態為低電平
//          0xFFFF 表示所有通道的開關量輸入狀態為高電平
//            -1   表示調用出錯,應該進一步調用ZT8408_GetLastErr函數查找出錯原因
ZT_API long _stdcall ZT8408_DOBit(unsigned long cardNO, unsigned long chNO, unsigned long nState);
//函數名稱:ZT8408_DOBit
//函數功能:指定某通道的開關量輸出狀態
//入口參數:
//          cardNO:板卡號默認從 1 開始,有關這個參數的詳細說明,請參考 ZT8408_OpenDevice 函數
//            chNO:通道號:1--16
//          nState:指定某通道的開關量輸出狀態:
//                    nState =    0    ,指定輸出低電平
//                    nState = 1(或非0),指定輸出高電平
//返回值:  
//           0      表示成功
//          -1      表示失敗,應該進一步調用ZT8408_GetLastErr函數查找出錯原因
ZT_API long _stdcall ZT8408_DOAll(unsigned long cardNO, unsigned long nStateAll);
//函數名稱:ZT8408_DOAll
//函數功能:指定所有通道的開關量輸出狀態
//入口參數:
//          cardNO:板卡號默認從 1 開始,有關這個參數的詳細說明,請參考 ZT8408_OpenDevice 函數
//       nStateAll:指定所有通道的開關量輸出狀態:
//                    nStateAll =   0   ,指定所有通道輸出低電平
//                    nStateAll = 0xFFFF,指定所有通道輸出高電平
//返回值:   0      表示成功
//          -1      表示失敗,應該進一步調用ZT8408_GetLastErr函數查找出錯原因
ZT_API long _stdcall ZT8408_GetLastDO(unsigned long cardNO);
//函數名稱:ZT8408_GetLastDO
//函數功能:得到所有開關量輸出(DO)通道的最后一次開關量輸出的值。
//          注意:1. 如果系統重啟后,未調用任何開關量輸出函數之前,調用此函數會返回0
//                2. 此函數不進行任何開關量輸出操作,而只是查詢一下上次的值
//入口參數:
//          cardNO:板卡號默認從 1 開始,有關這個參數的詳細說明,請參考 ZT8408_OpenDevice 函數
//返回值:
//           0   表示程序最后一次指定所有通道DO輸出低電平
//        0xFFFF 表示所有通道的開關量輸入狀態為高電平
//                 注意:對于有符號32位整數,0xFFFFFFFF = -1,當返回這個值時,
//                       應該進一步調用 ZT8408_GetLastErr 函數判斷是否產生了一個錯誤
}
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品vⅰdeose4hd| 波多野结衣中文一区| 亚洲免费看黄网站| 亚洲男帅同性gay1069| 精品久久一二三区| 日韩一区二区三区四区五区六区| 色婷婷久久一区二区三区麻豆| 成人免费的视频| 国产成人午夜精品影院观看视频 | 天堂久久久久va久久久久| 亚洲激情校园春色| 亚洲欧洲av一区二区三区久久| 国产欧美一区二区三区网站| 国产精品护士白丝一区av| 国产精品美女久久久久久久| 国产精品久久久久影院色老大| 欧美高清在线视频| 自拍视频在线观看一区二区| 亚洲美女偷拍久久| 视频在线观看一区二区三区| 日韩高清在线一区| 国产激情91久久精品导航| 国产高清视频一区| 91丨九色丨蝌蚪丨老版| 欧美三区免费完整视频在线观看| 欧美日韩一区精品| 精品电影一区二区三区| 国产精品每日更新| 一卡二卡三卡日韩欧美| 丝袜亚洲另类欧美| 激情五月激情综合网| av一区二区三区在线| 欧美色图第一页| 日韩视频在线一区二区| 国产精品视频线看| 亚洲一卡二卡三卡四卡无卡久久| 日本在线观看不卡视频| 国产一区二区三区免费播放| 99国产精品国产精品毛片| 欧美日韩国产一二三| 久久夜色精品国产噜噜av| 亚洲日本护士毛茸茸| 日韩av一级片| 成人av第一页| 日韩午夜电影在线观看| 亚洲欧美一区二区视频| 麻豆免费看一区二区三区| 成人免费视频caoporn| 欧美男人的天堂一二区| 久久精品一区二区| 午夜视黄欧洲亚洲| 成人av动漫在线| 欧美成人精品高清在线播放| 亚洲精品免费视频| 风间由美性色一区二区三区| 欧美视频一区二区三区在线观看| 国产亚洲综合在线| 视频一区二区中文字幕| 97久久精品人人爽人人爽蜜臀| 国产成人高清视频| 精品国产区一区| 爽好久久久欧美精品| 91蜜桃在线观看| 国产亚洲欧美激情| 国产一区二区0| 欧美一级搡bbbb搡bbbb| 亚洲网友自拍偷拍| 精品88久久久久88久久久| 一区二区三区久久久| 成人黄页在线观看| 国产亚洲欧美中文| 国产一区二区三区四区在线观看| 5858s免费视频成人| 一区二区三区国产精品| 91丨国产丨九色丨pron| 国产欧美一区二区精品秋霞影院 | 精品一区二区免费视频| 69堂成人精品免费视频| 亚洲成在人线在线播放| 色欧美日韩亚洲| 亚洲精品视频免费看| 91丨porny丨中文| 亚洲日本在线看| 在线视频综合导航| 亚洲一线二线三线久久久| 91国产成人在线| 亚洲国产综合色| 欧美精品在线观看播放| 日韩福利视频导航| 欧美电影免费观看高清完整版在线观看 | 日韩国产精品91| 欧美久久一二三四区| 日韩中文字幕一区二区三区| 7777精品伊人久久久大香线蕉最新版| 日韩久久一区二区| 欧美日韩精品一区二区三区| 精品99一区二区| 99久久99久久精品国产片果冻| 亚洲欧美成人一区二区三区| 三级一区在线视频先锋 | 欧美精品久久久久久久久老牛影院| 一区二区三区在线视频免费| 欧美亚洲一区二区在线观看| 日韩国产在线一| 精品国产123| 99这里只有精品| 婷婷国产v国产偷v亚洲高清| 欧美成人乱码一区二区三区| 成人三级伦理片| 午夜精品久久久久久久久久| 精品日产卡一卡二卡麻豆| 国产成人免费视频一区| 国产精品成人一区二区艾草| 精品视频在线看| 风间由美一区二区三区在线观看| 亚洲精选一二三| 日韩欧美三级在线| 99re免费视频精品全部| 日韩av高清在线观看| 日本一区二区不卡视频| 欧美精品日韩一区| 成人一级视频在线观看| 亚洲不卡在线观看| 国产精品日韩精品欧美在线| 欧美日韩亚洲综合一区二区三区| 中文字幕在线观看不卡| 极品少妇一区二区三区精品视频 | 一区二区三区四区在线播放| 欧美成人一区二区三区片免费| 99精品国产99久久久久久白柏 | 韩国三级中文字幕hd久久精品| 亚洲视频中文字幕| 精品99久久久久久| 4hu四虎永久在线影院成人| 99热精品国产| 国产资源在线一区| 免费成人av在线| 亚洲一区二区三区小说| 国产亚洲成av人在线观看导航| 欧美日韩国产高清一区| 91麻豆免费观看| 国产91在线|亚洲| 另类调教123区| 日本中文在线一区| 丝袜美腿亚洲色图| 亚洲国产精品视频| 中文字幕五月欧美| 国产日产欧美一区| www日韩大片| 国产精品66部| 国产美女精品一区二区三区| 日本三级韩国三级欧美三级| 日韩精品色哟哟| 视频一区二区三区在线| 亚洲一区二区av电影| 洋洋av久久久久久久一区| 国产精品久久久久久久久久久免费看 | 日韩欧美专区在线| 欧美浪妇xxxx高跟鞋交| 欧美这里有精品| 欧美吻胸吃奶大尺度电影| 色综合久久天天| 欧美在线制服丝袜| 欧美欧美欧美欧美首页| 日韩欧美激情在线| 精品99999| 国产精品三级在线观看| 亚洲视频电影在线| 亚洲成人在线免费| 麻豆精品新av中文字幕| 精品亚洲免费视频| 国产精品色婷婷| 亚洲欧美另类在线| 亚洲综合色区另类av| 丝袜美腿亚洲一区| 国产原创一区二区| 99re热视频这里只精品| 欧美视频一区二区三区| 精品欧美久久久| 国产午夜亚洲精品不卡| 亚洲色图视频网| 三级成人在线视频| 国产精品一区二区久久不卡| 97精品视频在线观看自产线路二| 日本成人在线一区| 综合电影一区二区三区| 婷婷中文字幕综合| 国产精品99久久久久久似苏梦涵| 99re免费视频精品全部| 91精品婷婷国产综合久久| 国产日韩在线不卡| 亚洲国产精品尤物yw在线观看| 国产最新精品免费| 欧美自拍偷拍午夜视频| 成人开心网精品视频| 蜜臀国产一区二区三区在线播放| 一区二区三区在线视频观看58| 久久99热这里只有精品| 91老司机福利 在线| 精品国产一区二区国模嫣然|