論利用OOP設(shè)計(jì)思想的通訊接口類(lèi)的設(shè)計(jì)與應(yīng)用
2.3 接口類(lèi)用例
假設(shè),現(xiàn)在有一個(gè)頻譜測(cè)量系統(tǒng),各個(gè)測(cè)量?jī)x器與主控PC 采用了GPIB 進(jìn)行系統(tǒng)的構(gòu)建[10],則使用類(lèi)族如圖2 所示,流程圖如3所示,可以設(shè)計(jì)如下的類(lèi)族偽代碼:
class COM
{
public:
virtual BOOL Open()=0;
virtual int Write(BYTE* pBuff,int CountToWrite)=0;
virtual int Read(BYTE* pBuff,int CountTORead)=0;
virtual void Close()= 0;
};
而派生類(lèi)GPIB 接口的實(shí)現(xiàn),就是將該接口的各個(gè)API進(jìn)行封裝,然后由COM 的接口提供出統(tǒng)一的訪問(wèn)方式。
在實(shí)現(xiàn)了具體的具體的儀器的類(lèi)的編寫(xiě)后,就可以采用圖3的流程來(lái)完成,下面是C++偽代碼:
COM *pc = new GPIB(1,0,0);
Device pDevice = new FreqMeasureInstrumen(t pc);
i(f TRUE == pDevice->Open())
{
開(kāi)始與儀器的交互和測(cè)量數(shù)據(jù)的采集;
}
else
{
打開(kāi)出錯(cuò),錯(cuò)誤處理;
}
測(cè)量完成,關(guān)閉儀器;
pDevice->Close();
在這段偽代碼中,首先,定義了一個(gè)通信口的指針,但是所指的對(duì)象是一個(gè)動(dòng)態(tài)產(chǎn)生的GPIB類(lèi)的對(duì)象。然后再定義一個(gè)儀器類(lèi)的指針pDevice,所指的對(duì)象是動(dòng)態(tài)產(chǎn)生的一個(gè)頻譜測(cè)量?jī)x的對(duì)象。然后通過(guò)pDevice,就可以調(diào)用接口完成具體的測(cè)量任務(wù)。
3 結(jié)語(yǔ)
基于這樣的面向?qū)ο蟮乃枷朐O(shè)計(jì)出來(lái)的測(cè)控系統(tǒng)的通訊接口類(lèi),在某個(gè)銀行終端的模擬測(cè)試中,可以很好地適應(yīng)串口和網(wǎng)口的測(cè)試,代碼思路清晰,非常有利于擴(kuò)展和維護(hù)。
pid控制相關(guān)文章:pid控制原理
通信相關(guān)文章:通信原理
評(píng)論