浓毛老太交欧美老妇热爱乱,蜜臀性色av免费,妺妺窝人体色www看美女,久久久久久久久久久大尺度免费视频,麻豆人妻无码性色av专区

位置:51電子網 » 技術資料 » 傳感與控制

DDE與COM技術在組態(tài)軟件開發(fā)中的應用

發(fā)布時間:2007/4/23 0:00:00 訪問次數(shù):825

DDE與COM技術在組態(tài)軟件開發(fā)中的應用 [日期:2005-3-18] 來源:電子技術應用 作者:北京航空航天大學電子信息工程學院 常 青 張卡華 北工學院電子工程系 張志杰 [字體:模塊設計,方便其它應用程序調用,MathWorks公司推薦使用COM builder在Matlab環(huán)境下開發(fā)COM。COM是Component Object Module的簡稱,它是一種通用的對象接口,任何語言只要按照這種接口標準就可以調用它。

這樣,可以使用Matlab開發(fā)COM組件,在VC下開發(fā)DDE服務程序,使其與InTouch進行數(shù)據(jù)通信,而這個DDE服務程序調用Matlab開發(fā)的COM進行數(shù)值處理和算法實現(xiàn)。在實際工業(yè)自動化的組態(tài)軟件開發(fā)中,可以使用VC進行數(shù)據(jù)的采集、命令的發(fā)送和復雜的流程控制;使用Matlab下開發(fā)的COM完成復雜的算法實現(xiàn)和數(shù)字信號處理編程;在InTouch下實現(xiàn)人機對話界面并接收使用者的命令。具體的系統(tǒng)構架如圖1所示。

2 應用實現(xiàn)

Windows DDE功能應用的核心是DDE事務管理庫(DDEML),它負責管理Windows操作系統(tǒng)下應用程序間的DDE會話和通信,還向用戶提供了一系列的應用程序接口API函數(shù)。

DDE實現(xiàn)程序間的通信是通過三個標識約定的:

應用程序名(Application):進行DDE對話雙方的名稱;

主題(Topic):被討論的數(shù)據(jù)域;

項目(Item):被討論的特定數(shù)據(jù)對象。

在DDE服務程序中首先使用DdeInitialize進行初始化,然后調用DdeCreateStringHandle建立應用程序名、主題和項目等標識的句柄,再通過DdeNameService在操作系統(tǒng)中注冊DDE服務程序的名字。根據(jù)這些句柄,客戶程序就可以使用它提供的DDE服務了。在VC++中的程序實現(xiàn)如下:

#include<ddeml.h>……

DWORD idInstc=0,iData;//iDate是項目對應的數(shù)據(jù)

HSZ hszSvr,hszTopic,hszIrem;

DdeInitialize(&idInst,(PFNCALLBACK)DdeCallback,CBF_

FAIL_EXECUTES┃CBF_SKIP_ALLNOTIFICATIONS,0L);

//建立應用程序名、主題和項目等標識的句柄

hszSvr=DdeCreateStringHandle(idInst,“DDEApp”,0);

hszTopic=DdeCreateStringHandle(idInst,“DDEAppTopic”,0);

hszItem=DdeCreateStringHandle(idInst,“DDEApphem”,0);

//在操作系統(tǒng)中注冊該DDE服務

DdeNameService(idInst,hszSvr,0L,DNS_REGISTER);

……

DDE服務程序的核心部分是一個回調函數(shù),它處理所有DDE消息及相應數(shù)據(jù)請求。DDE服務程序回調函數(shù)的代碼如下:

HDDEDATA CALLBACK DdeCallback (WORD usType,WORD usFmt,HCONV hConv,HSZ hsz1,HSZ hsz2, HDDE—DATA hData,DWORD 1Datal,DWORD 1Data2){CHAR sz[5]

if(usType==XTYP_CONNECT){ //得到連接請求return((HDDEDATA)TRUE);

}

//校驗主題、項目的句柄及數(shù)據(jù)格式

if(hszl==hszTopic && hsz2==hszItem && usFmt==CF_TEXT){

if(usType==XTYP_REQUEST‖usType==XTYP_ ADVREQ){//得到數(shù)據(jù)請求

_itoa(iData,sz,10);//將數(shù)據(jù)轉換為文本格式

return DdeCreateDataHandle(idInst,(LPBYTE)sz,

strlen(s2)十1,0L,hszItem,CP_TEXT,0);

}

if(usType==XTYP_POKE){//得到客戶端發(fā)送來的數(shù)據(jù)

DdeGetData(hData,(LPBYTE)sz,strlen(sz)十1,0L);

iData=atoi(sz); //保存數(shù)據(jù)

DdePostAdvise(idInst,hszTopic,hszItem);

return((HDDEDATA)DDE_FACK);

}

}

return 0;

<
DDE與COM技術在組態(tài)軟件開發(fā)中的應用 [日期:2005-3-18] 來源:電子技術應用 作者:北京航空航天大學電子信息工程學院 常 青 張卡華 北工學院電子工程系 張志杰 [字體:模塊設計,方便其它應用程序調用,MathWorks公司推薦使用COM builder在Matlab環(huán)境下開發(fā)COM。COM是Component Object Module的簡稱,它是一種通用的對象接口,任何語言只要按照這種接口標準就可以調用它。

這樣,可以使用Matlab開發(fā)COM組件,在VC下開發(fā)DDE服務程序,使其與InTouch進行數(shù)據(jù)通信,而這個DDE服務程序調用Matlab開發(fā)的COM進行數(shù)值處理和算法實現(xiàn)。在實際工業(yè)自動化的組態(tài)軟件開發(fā)中,可以使用VC進行數(shù)據(jù)的采集、命令的發(fā)送和復雜的流程控制;使用Matlab下開發(fā)的COM完成復雜的算法實現(xiàn)和數(shù)字信號處理編程;在InTouch下實現(xiàn)人機對話界面并接收使用者的命令。具體的系統(tǒng)構架如圖1所示。

2 應用實現(xiàn)

Windows DDE功能應用的核心是DDE事務管理庫(DDEML),它負責管理Windows操作系統(tǒng)下應用程序間的DDE會話和通信,還向用戶提供了一系列的應用程序接口API函數(shù)。

DDE實現(xiàn)程序間的通信是通過三個標識約定的:

應用程序名(Application):進行DDE對話雙方的名稱;

主題(Topic):被討論的數(shù)據(jù)域;

項目(Item):被討論的特定數(shù)據(jù)對象。

在DDE服務程序中首先使用DdeInitialize進行初始化,然后調用DdeCreateStringHandle建立應用程序名、主題和項目等標識的句柄,再通過DdeNameService在操作系統(tǒng)中注冊DDE服務程序的名字。根據(jù)這些句柄,客戶程序就可以使用它提供的DDE服務了。在VC++中的程序實現(xiàn)如下:

#include<ddeml.h>……

DWORD idInstc=0,iData;//iDate是項目對應的數(shù)據(jù)

HSZ hszSvr,hszTopic,hszIrem;

DdeInitialize(&idInst,(PFNCALLBACK)DdeCallback,CBF_

FAIL_EXECUTES┃CBF_SKIP_ALLNOTIFICATIONS,0L);

//建立應用程序名、主題和項目等標識的句柄

hszSvr=DdeCreateStringHandle(idInst,“DDEApp”,0);

hszTopic=DdeCreateStringHandle(idInst,“DDEAppTopic”,0);

hszItem=DdeCreateStringHandle(idInst,“DDEApphem”,0);

//在操作系統(tǒng)中注冊該DDE服務

DdeNameService(idInst,hszSvr,0L,DNS_REGISTER);

……

DDE服務程序的核心部分是一個回調函數(shù),它處理所有DDE消息及相應數(shù)據(jù)請求。DDE服務程序回調函數(shù)的代碼如下:

HDDEDATA CALLBACK DdeCallback (WORD usType,WORD usFmt,HCONV hConv,HSZ hsz1,HSZ hsz2, HDDE—DATA hData,DWORD 1Datal,DWORD 1Data2){CHAR sz[5]

if(usType==XTYP_CONNECT){ //得到連接請求return((HDDEDATA)TRUE);

}

//校驗主題、項目的句柄及數(shù)據(jù)格式

if(hszl==hszTopic && hsz2==hszItem && usFmt==CF_TEXT){

if(usType==XTYP_REQUEST‖usType==XTYP_ ADVREQ){//得到數(shù)據(jù)請求

_itoa(iData,sz,10);//將數(shù)據(jù)轉換為文本格式

return DdeCreateDataHandle(idInst,(LPBYTE)sz,

strlen(s2)十1,0L,hszItem,CP_TEXT,0);

}

if(usType==XTYP_POKE){//得到客戶端發(fā)送來的數(shù)據(jù)

DdeGetData(hData,(LPBYTE)sz,strlen(sz)十1,0L);

iData=atoi(sz); //保存數(shù)據(jù)

DdePostAdvise(idInst,hszTopic,hszItem);

return((HDDEDATA)DDE_FACK);

}

}

return 0;

<
相關IC型號

熱門點擊

 

推薦技術資料

滑雪繞樁機器人
   本例是一款非常有趣,同時又有一定調試難度的玩法。EDE2116AB... [詳細]
版權所有:51dzw.COM
深圳服務熱線:13751165337  13692101218
粵ICP備09112631號-6(miitbeian.gov.cn)
公網安備44030402000607
深圳市碧威特網絡技術有限公司
付款方式


 復制成功!