freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

組態(tài)王軟件驅(qū)動程序開發(fā)(編輯修改稿)

2024-08-03 15:37 本頁面
 

【文章內(nèi)容簡介】 用于故障偵探及恢復(fù)嘗試。返回值嘗試通訊成功返回TRUE,否則返回FALSE。參數(shù)pDeviceName[in] 設(shè)備的唯一名字nUnitAddr[in] 需要進行故障偵探及恢復(fù)嘗試的設(shè)備的地址。lpDevAddr[in] 應(yīng)將此參數(shù)轉(zhuǎn)換為結(jié)構(gòu) PDEVADDR。此結(jié)構(gòu)詳情參閱 。備注當(dāng) ProcessPacket 失敗后, TryConnect將被組態(tài)王調(diào)用2次,如果仍然失敗,則該接口將按設(shè)定的嘗試連接間隔被組態(tài)王調(diào)用。XProtocolImp::GetLastErrorXProtocolImp::GetLastError()類型Public目的返回最近一次的錯誤信息。返回值將最近一次的錯誤信息。參數(shù)無XProtocolImp2::GetTransXProtocolImp2::GetTrans( LPVOID* pHm)類型Public目的獲取驅(qū)動打開的設(shè)備句柄,以便其他設(shè)備可以使用此句柄。返回值成功返回TRUE,否則返回FALSE。參數(shù)lpHm[out] 接受設(shè)備句柄的指針XProtocolImp2::SetTransXProtocolImp2::SetTrans( LPVOID* pHm )類型:Public目的:將其他驅(qū)動打開的設(shè)備句柄傳遞給驅(qū)動。返回值:成功返回TRUE,否則返回FALSE。 參數(shù)lpHm[in] 其他驅(qū)動打開的設(shè)備句柄。XProtocolImp2::ProcessPacket2XProtocolImp2:: ProcessPacket2(LPVOID lpPacket)類型Public目的根據(jù)協(xié)議及包狀態(tài)信息進行相應(yīng)的處理,例如進行讀寫處理,如果讀成功則把數(shù)據(jù)寫入pPacvarList。返回值BOOL:如果成功,返回TRUE,否則,返回FALSE。參數(shù)lpPacket[in,out] 包指針 接口函數(shù)的調(diào)用 開發(fā)環(huán)境 新建設(shè)備在向?qū)ы撦斎氲刂纷址畷r,程序加載驅(qū)動,并調(diào)用驅(qū)動的StrToDevAddr當(dāng)向?qū)ы撧D(zhuǎn)向下一頁,也就是點擊下一步時,組態(tài)王會調(diào)用StrDevToAddr,并將用戶輸入傳遞給驅(qū)動。驅(qū)動的功能是進行地址轉(zhuǎn)換,具體解釋參見StrDevToAddr。 新建變量用戶在變量字典里面點擊新建變量時,會彈出如下建立變量的對話框,若用戶有不是驅(qū)動使用域填寫有誤或者有相關(guān)的域(包括驅(qū)動使用域)沒有填寫,組態(tài)王將會給出相應(yīng)的提示,即組態(tài)王不調(diào)用驅(qū)動,直接給出錯誤提示。當(dāng)用戶點擊連接設(shè)備完成設(shè)備連接或者在設(shè)備組合框中選定設(shè)備時,組態(tài)王會調(diào)用GetRegisters,組態(tài)王會將設(shè)備名稱傳遞給驅(qū)動,由驅(qū)動返回給組態(tài)王寄存器列表。具體解釋參見GetRegisters。所有用戶必填域填寫完畢,切換TAB頁或者確定變量時,組態(tài)王會調(diào)用ConvertUserConfigToVar. 由驅(qū)動進行變量校驗。組態(tài)王會將驅(qū)動域的輸入作為MiniDbItem傳遞給驅(qū)動,ConvertUserConfigToVar將結(jié)果返回在組態(tài)王建立的變量PLCVAR中。具體解釋見ConvertUserConfigToVar。 串口設(shè)備測試 若用戶使用的設(shè)備是串口設(shè)備,如下圖所示:當(dāng)用戶進入此對話框時,組態(tài)王立刻調(diào)用GetRegisters獲取設(shè)備可以使用的寄存器列表。當(dāng)用戶點擊添加或者加入變量時,組態(tài)王立刻調(diào)用ConvertUserConfigToVar進行變量校驗。當(dāng)用戶點擊讀取,組態(tài)王就開始變量采集。所有采集步驟與運行環(huán)境一致,只是這兒測試只是測試一個設(shè)備,而運行環(huán)境采集定義的所有的設(shè)備。. 運行環(huán)境以下步驟為特殊目的時,組態(tài)王對于每個設(shè)備都會調(diào)用一次此函數(shù)。 調(diào)用StrToDevAddr,,. 否則組態(tài)王提示用戶地址格式不對,同時中止此設(shè)備的采集,不影響使用同一驅(qū)動的其他設(shè)備。 打開設(shè)備 調(diào)用OpenComDevice,若是串口設(shè)備,驅(qū)動可以在此中完成一次性的初始化工作。若OpenComDevice返回TRUE,組態(tài)王會在信息窗口提示打開設(shè)備成功,并給出成功的設(shè)備名稱。否則組態(tài)王會在信息窗口提示打開設(shè)備失敗,認為設(shè)備存在問題,若是串口設(shè)備,此串口下連接的所有設(shè)備都不能通信,若是其他類型設(shè)備,則此種設(shè)備全部不能通信。OpenComDevice的參數(shù)由用戶配置。 設(shè)備初始化調(diào)用InitialDevice,,同時中止此設(shè)備的采集,不影響使用同一驅(qū)動的其他設(shè)備。 變量校驗調(diào)用ConvertUserConfigToVar對所有變量進行變量校驗。若一個設(shè)備使用的所有變量都成功。若某一個設(shè)備中有一個變量校驗失敗,則組態(tài)王會在信息窗口提示變量校驗無效,同時組態(tài)王會中止此設(shè)備的采集。 變量打包,當(dāng)所有變量打包完成。 設(shè)備通信調(diào)用ProcessPacket2進行設(shè)備通信,若返回TRUE,,。 嘗試恢復(fù)設(shè)備通信調(diào)用TryConnect進行設(shè)備嘗試恢復(fù),若返回TRUE。若返回失敗組態(tài)王會再次調(diào)用TryConnect,若仍然返回FALSE,組態(tài)王認為設(shè)備失敗,會中止設(shè)備采集一段時間,在定義設(shè)備時設(shè)置。 關(guān)閉設(shè)備調(diào)用CloseComDevice關(guān)閉設(shè)備,若CloseComDevice返回FALSE或者遲遲不能完成關(guān)閉設(shè)備動作,將大大影響組態(tài)王的退出速度,甚至可能阻止組態(tài)王退出。8 程序結(jié)構(gòu)程序包含如下幾個主要的類:驅(qū)動工程類 (Cpro): 實現(xiàn)2個接口: IprotocolImp 和 IprotocolImp2。設(shè)備類 (CDev):實現(xiàn)COM接口, 包括2個類,設(shè)備基類和設(shè)備子類。通訊類 (CCom):實現(xiàn)串口,網(wǎng)卡等的通訊,開發(fā)包向?qū)鶕?jù)您的設(shè)置,自動地產(chǎn)生串口通訊類 (CSerialCom) 或者網(wǎng)絡(luò)通訊類 (CNetCom), 您也可以根據(jù)需要添加USB通訊類(CUSBCom)。調(diào)試信息類 (CDebug):該類實現(xiàn)各種調(diào)試信息在組態(tài)王信息窗口中的輸出,比如錯誤信息,接口信息,數(shù)據(jù)信息等。 幫助函數(shù)(CHelper):提供了一系列您在開發(fā)驅(qū)動過程中可能會用到的功能函數(shù)。數(shù)據(jù)楨校驗類 (CCheck):提供了在開發(fā)中會遇到的各種校驗函數(shù),包括和校驗、異或校驗、循環(huán)冗余校驗等。類的調(diào)用與繼承關(guān)系,如下圖: 驅(qū)動工程類 (CPro)該類實現(xiàn)2個接口: IprotocolImp 和 IprotocolImp2。關(guān)于接口函數(shù)目的,見“” 節(jié)。 設(shè)備類 (CDev)實現(xiàn)COM接口,包含2個類,設(shè)備基類(CDevBase)和設(shè)備子類(CDev)。類CDevBase是所有設(shè)備子類的父類。屬性:m_szDevKind:設(shè)備類型.m_pSerialCom:串口通訊類指針m_pCheck:校驗類指針m_pPro:工程類指針操作:GetRegistersBOOL CDev::GetRegisters( LPVOID *ppReg, int *pRegNum )類型Public目的得到由szDeviceName確定的寄存器的名字和個數(shù)。返回值成功返回TRUE,否則返回FALSE。參數(shù)ppReg[out] 返回寄存器信息的指針數(shù)組的指針。pRegNum[out] 返回寄存器的個數(shù)。GetDevicesBOOL CDev::GetDevices(LPVOID *ppDevice, int *pDeviceNum)類型:Public目的:得到設(shè)備的名字和個數(shù)。返回值:成功返回TRUE,否則返回FALSE。參數(shù):ppDevice[out] 返回設(shè)備列表信息的指針。pDeviceNum:[out] 返回設(shè)備的個數(shù)。ConvertUserConfigToVarWORD CDev::ConvertUserConfigToVar( LPVOID lpDbItemItem, LPVOID lpVar)類型:Public目的:將用戶的配置字符串轉(zhuǎn)換為組態(tài)王變量結(jié)構(gòu)返回值:WORD:如果轉(zhuǎn)換成功則返回0,否則返回非零的錯誤代碼。參數(shù)lpDbItem:[in] 指向結(jié)構(gòu)MiniDbItem的指針。lpVar:[in,out] 指向結(jié)構(gòu)PLCVAR的指針,返回變量就存放在這里。AddVarToPacketBOOL CDev::AddVarToPacket( LPVOID lpVar, int nVarAccessType, LPVOID lpPacket)類型Public目的確認變量是否能夠與一個包里的其他變量一起進行采集,以進行變量的打包, 如果可以加入,返回TRUE并修改包的起止地址。否則返回FALSE。返回值BOOL:FALSE表示不能打包,否則能。參數(shù)lpVar [in] 變量指針nVarAccessType[in] 讀寫方式lpPacket[int] 包指針ProcessPacket2BOOL CDev::ProcessPacket2( LPVOID lpPacket )類型Public目的根據(jù)協(xié)議及包狀態(tài)信息進行相應(yīng)的處理,例如進行讀寫處理,如果讀成功則把數(shù)據(jù)寫入pPacvarList。(在新接口中調(diào)用)。返回值BOOL:如果成功,返回TRUE,否則,返回FALSE。參數(shù)lpPacket[in,out] 包指針。TryConnectBOOL CDev::TryConnect ( const TCHAR* szDeviceName, int iUnitAddr, LPVOID lpDevAddr )類型Public目的與地址為UnitAddr的設(shè)備嘗試進行通訊,用于故障偵探及恢復(fù)嘗試。返回值嘗試通訊成功返回TRUE,否則返回FALSE。參數(shù)pDeviceName[in] 設(shè)備的唯一名字。nUnitAddr[in] 需要進行故障偵探及恢復(fù)嘗試的設(shè)備的地址。lpDevAddr[in] 應(yīng)將此參數(shù)轉(zhuǎn)換為結(jié)構(gòu) PDEVADDR。此結(jié)構(gòu)詳情參閱 。備注當(dāng) ProcessPacket 失敗后, TryConnect將被組態(tài)王調(diào)用2次,如果仍然失敗,則該接口將按設(shè)定的嘗試連接間隔被組態(tài)王調(diào)用。StrToDevAddrBOOL CDevBase::StrToDevAddr(const TCHAR* str, LPVOID lpDevAddr)類型:Public目的:實現(xiàn)對地址輸入的整理,判斷用戶輸入的地址是否合法,并將地址的數(shù)值傳給組態(tài)王,如果必要,也可以將地址以字符串的形式傳給組態(tài)王。返回值:成功返回TRUE,否則返回FALSE。參數(shù)str[in] 用戶輸入的地址字符串。lpDevAddr[in,out] 用于保存地址信息的結(jié)構(gòu)。SetProPtrvoid CDevBase::SetProPtr(CProject16Pro* pPro)類型Public目的設(shè)置工程類的指針。 返回值Null參數(shù)pPro[in] 工程類的指針。GetSendTimesint CDevName1::GetSendTimes(PPACKET pPac)類型Public目的獲取與設(shè)備一次交互的次數(shù)。返回值一個整型數(shù)據(jù)。參數(shù)pPac[in,out] 包指針GetSendStringBOOL CDev::GetSendString(PPACKET pPac,intamp。 iLen, intamp。 iRecLen, int iTimes)類型Public目的根據(jù)協(xié)議組合成發(fā)送楨。返回值成功返回TRUE,否則返回FALSE。參數(shù)pPac[in,out] 指向PACKET結(jié)構(gòu)的指針。iLen[out] 發(fā)送數(shù)據(jù)的長度。iRecLen[out] 需要接收的數(shù)據(jù)的長度。iTimes[in] 在一次發(fā)送過程中調(diào)用的次序。TransmissionBOOL CDev::Transmission (int iLen, int iExpectedLen, intamp。 iRecLen)類型Public目的通訊處理函數(shù)。返回值成功返回TRUE,否則返回FALSE。參數(shù)iLen[in] 數(shù)據(jù)的長度iExpectedLen[in,out] 期望接收到數(shù)據(jù)的長度。iRecLen[in,out] 實際接收到數(shù)據(jù)的長度。GetFirstFrameBOOL CDev::GetFirstFrame (int nbyteRead, int nExpectedLen, BYTE chFrameHead)類型Public目的獲取第一個正確的數(shù)據(jù)楨。返回值成功返回TURE,否則,返回FALSE。參數(shù)nbyteRead[in] 實際接收到的數(shù)據(jù)的長度。iExpectedLen[in] 期望接收到的數(shù)據(jù)的長度。chFrameHead[in] 第一個正確數(shù)據(jù)楨的位置。PreProcessDataBOOL CDev::PreProcessData (PPACKET pPac, int nbyteRead ,int nExpectedLen, int iTimes)類型Public目的檢查接收的數(shù)據(jù)。返回值成功返回TURE,否則,返回FALSE。參數(shù)pPac[in,out] 包指針。nbyteRead[in] 實際接收到的數(shù)據(jù)長度。iExpectedLen[in] 期望接收到的數(shù)據(jù)長度。SendDataToKingViewBOOL CDev::SendDataToKingView(PPACKET pPac, int iLen)類型Public目的向組態(tài)王傳送數(shù)據(jù)。返回值成功返回TRUE,否則,返回FALSE。參數(shù)pPac[in,out] 包指針。iLen[Out] 接收到的數(shù)據(jù)長度。 通訊類 (CCom)實現(xiàn)串口,網(wǎng)卡等的通訊,開發(fā)包向?qū)鶕?jù)您的設(shè)置,自動地產(chǎn)生串口通訊類 (CSerialCom) 或
點擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1