国产精品成人网站,日韩视频二区,亚洲成人手机电影,怡红院国产

產(chǎn)品推薦:水表|流量計|壓力變送器|熱電偶|液位計|冷熱沖擊試驗箱|水質(zhì)分析|光譜儀|試驗機|試驗箱


儀表網(wǎng)>技術(shù)中心>使用指南>正文

歡迎聯(lián)系我

有什么可以幫您? 在線咨詢

C++開發(fā)BacnetIP主站程序

來源:上海迅饒自動化科技有限公司   2013年08月06日 13:38  

C++開發(fā)BacnetIP主站程序
這里要說的方法就是調(diào)用Bacnet IP主站快速開發(fā)工具OMBacnetIPMaster.dll。
步驟1、引用頭文件和LiB文件

#Include "OM_BacnetIP_API.h"
#pragma comment (lib, "OMBacnetIPMaster.lib")
把OMBacnetIPMaster.dll放到新建的VC++工程的同一個文件夾
步驟2、創(chuàng)建通道,通道管理所有的Bacnet屬性對象
void CBacnetDemoDlg::OnBtnCreateChannel()
{
UpdateData(TRUE);
m_hChannel = CreateChannel(m_strIP, m_nPort);
}
步驟3、創(chuàng)建要訪問的屬性對象。一些是訪問Analog Output 1的當前值屬性。
void CBacnetDemoDlg::OnBtnBacnetObject()
{
if (m_hChannel && !m_hBacnetObj)
{
m_hBacnetObj = CreateBacnetObject(m_hChannel, OBJECT_ANALOG_OUTPUT, 1, PROP_PRESENT_VALUE);
}
}
步驟4、讀寫屬性對象的值
void CBacnetDemoDlg::OnBtnReadObject()
{
if (m_hBacnetObj && m_hBacnetObj)
{
VARIANT variant;
VariantInit(&variant);
BOOL bIsOK = ReadBacnetObject(m_hBacnetObj, &variant);
m_strPV.Format("%f", variant.fltVal);
VariantClear(&variant);
UpdateData(FALSE);
}
}
寫1000到Analog Output 1
void CBacnetDemoDlg::OnBtnWriteObject()
{
if (m_hBacnetObj)
{
VARIANT variant;
VariantInit(&variant);
variant.vt = GetBacnetObjType(m_hBacnetObj);
variant.fltVal = 1000;
BOOL bIsOK = WriteBacnetObject(m_hBacnetObj, &variant);
VariantClear(&variant);
}
}
步驟4、關(guān)閉程序釋放創(chuàng)建的資源
zui后還有幾個輔助的API函數(shù),可以選擇性地使用。

具體的頭文件申明如下:

typedef VOID (CALLBACK *ERRORHANDLERPROC)(LPCTSTR lpErrorMsg);
typedef VOID (CALLBACK *ABORTHANDLERPROC)(LPCTSTR lpAbortMsg);
typedef VOID (CALLBACK *REJECTHANDLERPROC)(LPCTSTR lpRejectMsg);
#Ifdef __cplusplus
extern "C" {
#Endif
//通道管理用于創(chuàng)建、修改、刪除通道。創(chuàng)建通道以后,才能創(chuàng)建Bacnet屬性對象
//創(chuàng)建一個通道對象只要是為了設(shè)置不同設(shè)備的IP地址和端口號。網(wǎng)絡(luò)超時等待時間默認是100毫秒
//同時管理通道下的Bacnet屬性對象
//參數(shù) hChannel 為通道對象的句柄
HANDLE OMOPCSVRAPI WINAPI CreateChannel(LPCTSTR lpIP, WORD wPort, DWORD dwTimeOut =100);
BOOL OMOPCSVRAPI WINAPI ConfigureChannel(HANDLE hChannel, LPCTSTR lpIP, WORD wPort, DWORD dwTimeOut=100);
BOOL OMOPCSVRAPI WINAPI RemoveChannel (HANDLE hChannel);
//Bacnet對象管理,創(chuàng)建、修改、刪除
//參數(shù) eObjType 為Bacent屬性對象的類型ID,譬如0表示 Analog Input,1表示Analog Output
//參數(shù) wInstanceNum 為指明哪一個對象,譬如要訪問Analog Input 1。則 nInstanceNum為1
//參數(shù) ePropID 為要訪問屬性的ID,譬如當前值的屬性ID是85
//參數(shù) hBacnetObj 為Bacnet對象的句柄
HANDLE OMOPCSVRAPI WINAPI CreateBacnetObject(HANDLE hChannel, BACNET_OBJECT_TYPE eObjType, WORD wInstanceNum, BACNET_PROPERTY_ID ePropID = PROP_PRESENT_VALUE );
BOOL OMOPCSVRAPI WINAPI ConfigureBacnetObject(HANDLE hBacnetObj, BACNET_OBJECT_TYPE eObjType, WORD wInstanceNum, BACNET_PROPERTY_ID ePropID);
BOOL OMOPCSVRAPI WINAPI RemoveBacnetObject (HANDLE hBacnetObj);
// Bacnet對象屬性值讀寫
//參數(shù) eTegNumber 為Bacnet對象的Tag Number。也就是要寫的對象屬性的數(shù)據(jù)類型。當操作過ReadBacnet以后,這個參數(shù)可以為空。
//當只寫操作的時候,則需要用戶自己指明是什么數(shù)據(jù)類型。譬如Analog Output為4.也就是單精度浮點型。
BOOL OMOPCSVRAPI WINAPI ReadBacnetObject(HANDLE hBacnetObj, VARIANT *pValue);
BOOL OMOPCSVRAPI WINAPI WriteBacnetObject(HANDLE hBacnetObj,VARIANT* pValue, BACNET_APPLICATION_TAG eTegNumber = BACNET_APPLICATION_TAG_NULL);

//以下是輔助函數(shù),可以選擇性使用

//設(shè)置寫操作的優(yōu)先等級
BOOL OMOPCSVRAPI WINAPI SetBacnetPriority(HANDLE hBacnetObj, WORD wPriority);
//返回Bacnet對象屬性的數(shù)據(jù)類型,一般用于寫操作
VARTYPE OMOPCSVRAPI WINAPI GetBacnetObjType(HANDLE hBacnetObj);
//通信故障狀況回調(diào)函數(shù)
BOOL OMOPCSVRAPI WINAPI EnableErrorMsgNofity(ERRORHANDLERPROC fnCallback);

免責聲明

  • 凡本網(wǎng)注明“來源:儀表網(wǎng)”的所有作品,均為浙江興旺寶明通網(wǎng)絡(luò)有限公司-儀表網(wǎng)合法擁有版權(quán)或有權(quán)使用的作品,未經(jīng)本網(wǎng)授權(quán)不得轉(zhuǎn)載、摘編或利用其它方式使用上述作品。已經(jīng)本網(wǎng)授權(quán)使用作品的,應(yīng)在授權(quán)范圍內(nèi)使用,并注明“來源:儀表網(wǎng)”。違反上述聲明者,本網(wǎng)將追究其相關(guān)法律責任。
  • 本網(wǎng)轉(zhuǎn)載并注明自其它來源(非儀表網(wǎng))的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或和對其真實性負責,不承擔此類作品侵權(quán)行為的直接責任及連帶責任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品第一來源,并自負版權(quán)等法律責任。
  • 如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
聯(lián)系我們

客服熱線: 15267989561

加盟熱線: 15267989561

媒體合作: 0571-87759945

投訴熱線: 0571-87759942

關(guān)注我們
  • 下載儀表站APP

  • Ybzhan手機版

  • Ybzhan公眾號

  • Ybzhan小程序

企業(yè)未開通此功能
詳詢客服 : 0571-87759942