oammodule.cpp
来自「基于NMS的video access 3.1编写的DEMO程序 实现2个功能 」· C++ 代码 · 共 52 行
CPP
52 行
#include "oammodule.h"
#include "oamdef.h"
CTAQUEUEHD TOamModule::m_ctaqueuehd;
CTAHD TOamModule::m_ctahd;
bool TOamModule::m_bInited = false;
bool TOamModule::Init()
{
if(m_bInited)
return true;
CTA_EVENT event;
if( 0 != ctaCreateQueue( NULL, 0, &m_ctaqueuehd))
return false;
if( 0!= ctaCreateContext(m_ctaqueuehd, 0, "cta://localhost/oamcontext", &m_ctahd))
return false;
CTA_SERVICE_DESC svcDescriptions[] = {{ { "OAM", "OAMMGR" }, {0},{0},{0} }};
if( 0 != ctaOpenServices( m_ctahd, svcDescriptions, 1/*num*/))
return false;
ctaWaitEvent(m_ctaqueuehd, &event, CTA_WAIT_FOREVER/*forevenr*/);
if((event.id != CTAEVN_OPEN_SERVICES_DONE) || (event.value != CTA_REASON_FINISHED))
return false;
m_bInited = true;
return true;
}
bool TOamModule::GetKeyword(int board, const char *keyword, char *value, int size)
{
if(!Init())
return false;
char boardname[80] = "";
if( 0 != oamBoardLookupByNumber( m_ctahd, board, boardname, sizeof boardname))
return false;
HMOBJ boardobject;
if( 0 != oamOpenObject(m_ctahd, boardname, &boardobject, OAM_READONLY))
return false;
if( 0 != oamGetKeyword( boardobject, keyword, value, size))
{
oamCloseObject(boardobject);
return false;
}
oamCloseObject(boardobject);
return true;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?