#include "StdAfx.h" #include "DevLink.h" #include "MsgCenter.h" CDevLink::CDevLink(void) : m_pDevLink(NULL), m_LineExtNum(0), m_LineTrunkNum(0), m_FaxNum(0), m_VoipNum(0) { } CDevLink::~CDevLink(void) { } /***************************************************************** **【函数名称】 __onDevResourceDetail **【函数功能】 设备资源明细通知事件的处理函数 **【参数】 pERD:事件内容 **【返回值】 ****************************************************************/ void CDevLink::__onDevResourceDetail( EventResDetail* pERD ) { ASSERT(pERD != NULL); switch(pERD->nResType) { case DEV_RES_TYPE_EXT: // 内线分机 { UINT nExt = pERD->nResID; if (nExt & DEL_EXT_DETAIL) { m_LineExtNum--; } else { m_LineExtNum++; } } break; case DEV_RES_TYPE_TRUNK: // 外线 { m_LineTrunkNum++; } break; case DEV_RES_TYPE_FAX: { m_FaxNum++; // 传真个数 } break; case DEV_RES_TYPE_VOIP: { m_VoipNum++; // VOIP个数 } break; default: // 未知线路类型 break; } // end switch } /***************************************************************** **【函数名称】 onDeviceEvent **【函数功能】 设备事件的处理函数 **【参数】 EvtType:事件类型 Content:事件内容 **【返回值】 ****************************************************************/ void CDevLink::onDeviceEvent( UINT EvtType, PARAM Content ) { if(EvtType == DEV_EVENT_RES_DETAIL) __onDevResourceDetail((EventResDetail*)Content); CMsgCenter::GetInstance().pushMsg(EvtType, Content); } /***************************************************************** **【函数名称】 open **【函数功能】 打开与设备的连接 **【参数】 **【返回值】 成功true,失败false ****************************************************************/ bool CDevLink::open( void ) { IDeviceLink* pDevLink = &IDeviceLink::getInstance(); if(pDevLink->open(this)) { m_pDevLink = pDevLink; return true; } else return false; } /***************************************************************** **【函数名称】 close **【函数功能】 关闭与设备的连接 **【参数】 **【返回值】 ****************************************************************/ void CDevLink::close( void ) { if(m_pDevLink != NULL) { m_pDevLink->close(); m_pDevLink = NULL; } } /***************************************************************** **【函数名称】 exec **【函数功能】 设备控制接口 **【参数】 **【返回值】 成功true,失败false ****************************************************************/ bool CDevLink::exec( LONG Instance, LINE_OP OpType, ULONG ResID, LineOpParam* pLineOpParam ) { return m_pDevLink->operate(Instance, OpType, ResID, pLineOpParam); }