COM組件技術(shù)在現(xiàn)場(chǎng)總線控制系統(tǒng)組態(tài)軟件中的應(yīng)用
//包含其它頭文件
…………
PARAMS pDIOCParams
{
PMAPDEVREQUEST pRea; //自己定義的結(jié)構(gòu)體
switch(pDIOCParams->dioc_IOCtlCode)
{
case DIOC_OPEN:
case DIOC_CLOSEHANDLE:break;
case MDR_SERVICE_MAP:
pReq=*(PMAPDEVREQUEST*)pDIOCParams->dioc_InBuf;
pReq->mdr_LinearAddress=MapPhysToLinear
(pReq->mdr_PhysicalAddress,pReq->mdr_SizeInBytes,0);
if(pReq->mdr_LinearAddress==NULL)
pReq->mdr_Status=MDR_STATUS_ERROR;
else
pReq->mdr_Status=MDR_STATUS_SUCCESS;
break;
case MDR_SERVICE_UNMAP:break;
default:
return ERROR_INVALID_FUNCTION;
}
return DEVIOCTL_NOERROR;
}
在現(xiàn)場(chǎng)總線控制系統(tǒng)中使用COM組件技術(shù),不僅可以使數(shù)據(jù)傳輸部分的功能獨(dú)立于客戶端程序,減小開(kāi)發(fā)難度,而且使其可以被任何支持二進(jìn)制代碼的程序如Excel電子表格等直接調(diào)用。當(dāng)系統(tǒng)中采用服務(wù)器和客戶端方式時(shí),代碼更加易于維護(hù)。即使要升級(jí)服務(wù)器端程序,只要接口不變,其客戶端程序也完全不需要修改,大量后續(xù)工作被減輕。象服務(wù)器端一樣,客店端也只需關(guān)心服務(wù)器的接口,而不必考慮其如何實(shí)現(xiàn)數(shù)據(jù)交換。也就是說(shuō),COM服務(wù)器或客戶機(jī)中的一端功能發(fā)生改變,只要其接口保持不變,另一端不需修改就可以工作。本文所介紹的技術(shù)已在勝利油田某注水站等實(shí)際工程項(xiàng)目中得到成功的應(yīng)用。
評(píng)論