论利用OOP设计思想的通讯接口类的设计与应用
2.3 接口类用例
假设,现在有一个频谱测量系统,各个测量仪器与主控PC 采用了GPIB 进行系统的构建[10],则使用类族如图2 所示,流程图如3所示,可以设计如下的类族伪代码:
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;
};
而派生类GPIB 接口的实现,就是将该接口的各个API进行封装,然后由COM 的接口提供出统一的访问方式。
在实现了具体的具体的仪器的类的编写后,就可以采用图3的流程来完成,下面是C++伪代码:
COM *pc = new GPIB(1,0,0);
Device pDevice = new FreqMeasureInstrumen(t pc);
i(f TRUE == pDevice->Open())
{
开始与仪器的交互和测量数据的采集;
}
else
{
打开出错,错误处理;
}
测量完成,关闭仪器;
pDevice->Close();
在这段伪代码中,首先,定义了一个通信口的指针,但是所指的对象是一个动态产生的GPIB类的对象。然后再定义一个仪器类的指针pDevice,所指的对象是动态产生的一个频谱测量仪的对象。然后通过pDevice,就可以调用接口完成具体的测量任务。
3 结语
基于这样的面向对象的思想设计出来的测控系统的通讯接口类,在某个银行终端的模拟测试中,可以很好地适应串口和网口的测试,代码思路清晰,非常有利于扩展和维护。
pid控制相关文章:pid控制原理
通信相关文章:通信原理
评论