服務熱線
4006-598-119
午夜免费视频DH-GST-COM電氣火災監控設備集成應(yīng)用編(biān)程接口(kǒu)
目 錄
3.2.4啟動電(diàn)氣火災監控設(shè)備巡檢(jiǎn)命令(lìng)
4.2 VC編(biān)程環(huán)境中GstCom 的創建
4.4 Delphi編程環(huán)境中GstCom 的創建
午夜免费视频GSTCOM火災報(bào)警(jǐng)控(kòng)製器集(jí)成應(yīng)用(yòng)軟件接口(kǒu)(以下簡稱接口(kǒu))是用於第三方(fāng)進行係統集成的專用編程接口,它可與GST-DH9000電氣(qì)火災監控(kòng)設備(以下簡稱電氣火(huǒ)災監控設備)進行通訊。本(běn)接口為方便用戶進行二次(cì)開發,附帶了VB、VC、C#、Delphi編程樣例程序,供用戶參考。
Windows XP、Windows 7、Windows 10
軟(ruǎn)件:本控件使用前需要對GstCom.Dll進行注冊,安裝程序已(yǐ)經自動將此控件注冊。
硬件:需要(yào)一塊與電氣火災監控設備相適應的標準RS232通訊(xùn)接口板,標準RS232通訊接口板與計算機用串口線連接。
將安(ān)裝(zhuāng)文件拷貝到任意目錄下,運行GstLDCom_Setup.exe 即可。
安裝(zhuāng)完成後查看用戶選擇的安裝目錄下(xià)是否有如圖1文件。
圖1
目錄下的GstCom.Dll是GstCom消防通訊接口控件, GstComVbSample.exe是VB應用程序,GstLDCom.doc文件為用戶手冊,Include目錄下為GstCom消防通訊接口控件在(zài)VC編(biān)程應用環境下所需的頭文件,Samples目錄下為示例(lì)程(chéng)序(xù)的源(yuán)碼。
安裝完成後,開始(shǐ)菜單欄“程序”子菜單出現GstCom-> GstCom Test Sample。啟動係(xì)統能(néng)正常運(yùn)行。
用戶 次使用接口時,若該控件未注冊,將彈出未注冊對話框。若用(yòng)戶希望注冊該控件,請將注冊對話框中的用戶(hù)信息通過電話、Email、傳真等方(fāng)式傳遞給我公司,我們將生成注冊碼傳給用戶,填入正確的注冊(cè)碼後,控件注冊成功。
OpenGstCom m_nCom, m_nControllerID, m_nProtocol, Resevered,lResult;
m_nCom 串口標識變量的index;
m_nControllerID 電氣火災監(jiān)控設備地址;
m_nProtocol 協議變量(即:電氣火災監控設備類型,數值如下(xià));
200 表示(shì)GstDH9000中文通訊板(bǎn)
Resevered 保留(liú)參(cān)數(shù)(0);
LResult 返回狀態(參見返回狀態參數說明);
ResetController m_nControllerID, lResult;
m_nControllerID 電氣火災監控設備地址;
lResult 返回狀態(參見返回狀態參數說明);
MuteController m_nControllerID, lResult;
m_nControllerID 電氣火災監(jiān)控設備地址;
lResult 返回狀態(參見返回狀態參數說明);
StartQuery m_nControllerID, nType,Reserved,lResult;
m_nControllerID 電氣火災(zāi)監控設備地址;
nType 啟動類型;(0 停止查詢(xún),2 啟動查詢)
Reserved 保留參數(0);
LResult 返回狀態(參見返回狀態參數說明(míng));
CloseGstCom m_nControllerID,lResult;
m_nControllerID 電氣火災(zāi)監控(kòng)設備地址(zhǐ);
LResult 返回狀態(參見返回狀態參數說明);
返回狀態參數說明如表1.
表1
返回(huí)參數 | 說(shuō)明 |
LResult=0 (RET_Successfu)l | 命令執行成(chéng)功 |
LResult=1 (RET_Busy) | 電氣火災監控設備忙 |
LResult =2 (RET_ParamInvalide) | 參數非(fēi)法 |
LResult =3 (RET_ShakeHandFail) | 通訊握手失敗 |
LResult =4 (RET_GstComError) | 命令執行內部錯誤 |
LResult =5 (RET_ReplyError) | 命令執行應答錯誤 |
LResult =6 (RET_ReplyTimeout) | 命令發送應答超時(shí) |
LResult =10 (RET_Rs232Error) | 串口打開失敗(bài) |
LResult =255(RET_NotCommand) | 不支持此命令(lìng) |
UpLDDeviceCurrent nControllerID, nLoop, nAddress, lCurrent, pResult
m_nControllerID 電氣火災監(jiān)控設備地址;
nLoop 回路號;
nAddress 一次碼;
lCurrent 返回電流值;
lResult 返回狀態(tài)(參見返回狀態參數說明);
UpLDDeviceTemperature ControllerID, nLoop, nAddress, lCurrent, pResult
m_nControllerID 電(diàn)氣火災監控設備地址;
nLoop 回路號;
nAddress 一次(cì)碼;
lCurrent 返回溫度(dù)值(zhí);
lResult 返回狀態(參見返(fǎn)回狀態參數說明);
GstCom_AlarmEvent(ByVal nControllerID As Long, ByVal nEventType As Long, ByVal
bstrDeviceID As String, ByVal Value As Long)
nControllerID 電氣(qì)火災監控設備地址;
nEventType 事件的類(lèi)型;
bstrDeviceID 相關(guān)設備編碼(設備二次碼);
Value 對應事件類(lèi)型的(de)相關數據;
參(cān)數詳細描述如表2。
表2
事件的類型 (nEventType) | 相關設備編碼(bstrDeviceID) | 對應事件類型的相(xiàng)關數據(Value ) | 說(shuō)明 |
AE_CommNormal (0) | --------- | ---------- | 消防係統正常,無報警(jǐng)、故障等信息 |
AE_CommRetryFault (2) | ---------- | --------- | 應答錯(cuò)誤 |
AE_CommTimeout (1) | ------------ | ----------- | 超時錯誤 |
AE_ControllerReset(3) | ------------ | ------------ | 電氣火災監控設備消音複位 |
AE_ControllerStatus(4) | Value=狀態代碼:(H->L) bit7-自動 (1允許, 0不允許) bit6-手動(dòng) (1允許, 0不允許) bit5-噴灑 (1允許, 0不允(yǔn)許) 狀態代碼低四位值為: 1H 主電故障 2H 主電恢複 3H 備(bèi)電故障(zhàng) 4H 備電恢複 5H 開(kāi)機 例如: 67 表示 手動允許(xǔ),備電故障 | 電氣火災監控設備消音狀態置位(wèi) | |
AE_ControllerMute (5) | ------------ | ------------ | 電氣火災監控設備消音 |
AE_DeviceRestore (8) | 設備編碼 | ------------ | 設(shè)備恢複 |
AE_DeviceAlarm (16) | 設備編(biān)碼
| ------------ | 設備報(bào)警 |
AE_DeviceStart (32) | 設備編(biān)碼 | ------------ | 設備啟動 |
AE_DeviceStop (64) | 設備編碼 | ------------ | 設(shè)備停止(zhǐ) |
AE_DeviceAction (128) | 設備編碼 | ------------ | 設備動作 |
AE_DeviceFault (256) | 設備編碼
| Value=1:一般故障 Value=2:設(shè)備損(sǔn)壞故障(zhàng) Value=4: 停電故(gù)障Value=8: 傳感器故障 | 設備故(gù)障 |
AE_DeviceIsolate (512) | 設備編碼 | ---------- | 設備隔離 |
AE_DeviceRelease (1024) | 設備編碼 | ---------- | 設備釋(shì)放 |
l 在VB編程環境(jìng)中(zhōng)引用GstCom控件;
l 在應(yīng)用程(chéng)序(xù)頭部定義GstCom,如:Public WithEvents MyGstCom As GstComCtl;
l 在程序初始化階段,創建GstCom對象,如:Set MyGstCom = New GstComCtl。
l 在應用程(chéng)序的(de)頭文件中加(jiā)入如(rú)下文(wén)件
#include "GstCom.h"
#include "GstComDefines.h"
#include "GstComEventSink.h"
l 在應用程序的代碼文件中加入如下文件(jiàn)
#include "GstCom_i.c"
l 在應用程序中定義GstCom的引用及相關變量,
IGstComCtl *m_IGstComCtl;
CGstComEventSink* m_pGstComEventSink;
IUnknown* m_pControlUnk;
l 在應用程(chéng)序中創(chuàng)建接口實(shí)例
HRESULT hr;
hr = CoInitialize(0);
hr = CoCreateInstance( CLSID_GstComCtl , NULL, CLSCTX_INPROC_SERVER,
IID_IGstComCtl, (void**) &m_IGstComCtl);
if (!SUCCEEDED(hr))
{
AfxMessageBox("CoCreateInstance Failed.");
return FALSE;
}
m_IGstComCtl->QueryInterface(IID_IGstComCtl, (void**)&m_pControlUnk);
m_pGstComEventSink = new CGstComEventSink();
if (m_pGstComEventSink)
hr = m_pGstComEventSink->DispEventAdvise(m_pControlUnk);
else
AfxMessageBox("Event Creater Failed.");
執行成(chéng)功後應(yīng)用程序就會得(dé)到GstCom的(de)引用m_IGstComCtl。同時用戶將報(bào)警事件處理(lǐ)代碼添(tiān)加到GstComEventSink.h文件的“用戶代碼”處
l 應用程序退出,斷開連接釋放資源:
m_pIRayRtdb->Release(); //一定要釋(shì)放,否則退出(chū)時,會有內存泄露
m_pIUnknown->Release(); //一定(dìng)要釋放,否(fǒu)則退出時,會有內存(cún)泄露
if(m_pRtdbEventSink)
delete m_pRtdbEventSink;
CoUninitialize();
if (m_pGstComEventSink)
{
m_pGstComEventSink->DispEventUnadvise(m_pControlUnk);//斷開(kāi)事件
m_pControlUnk->Release(); //釋放查詢指針
delete m_pGstComEventSink;//刪除事件接(jiē)收對象
}
if (m_IGstComCtl)
m_IGstComCtl->Release();
l 在C#的“解決方(fāng)案資源(yuán)管理器中”引用GstCom.dll控件,在“引用(yòng)”中可(kě)得到GSTCOMLIB庫。
l 在應用程序頭部定義GstCom,即:using GSTCOMLIB;
l 在(zài)程序初始化階段,創(chuàng)建GstComCtl對象(xiàng),即:
GstComCtl myGstComCtl=new GstComCtl();
myGstComCtl.OpenGstCom(m_nCom, m_nControllerID, m_nProtocol, 100, out hResult);
用於打開COM接口,在調用方法的(de)時候(hòu)傳進參數的類型必須和要求的一致。
l 在應用程序中創建事件響應
處理COM 接口的事件時需要(yào)引入下列代碼:
gstComCtl.AlarmEvent +=new
_IGstComCtlEvents_AlarmEventEventHandler(gstComCtl_AlarmEvent);
創建時間(jiān)處(chù)理方法gstComCtl_AlarmEvent,如:
private void gstComCtl_AlarmEvent(byte nCom, int nControllerID, int nEventType, string bstrDeviceID, int Value)
{
//用戶(hù)代碼
}
l 在(zài)Delphi的引用GstCom.dll控件,得到GStCOMLib_TLB庫。即:注冊GstCom.dll—>打開Delphi7—>component—>Impot ActiveX Contrl—>選擇GstCom1.0 Type Library—>createUnit。得(dé)到GStCOMLib_TLB;
l 在應用程序頭部使用GStCOMLib_TLB、,即:uses GStCOMLib_TLB,ComObj;
l 在程序(xù)初始化(huà)階段,創建GstComCtl對象,即:
var
GstComCtl : IGstComCtl;
GstComCtl:=CreateComObject(CLASS_GstComCtl) as IGstComCtl;