Cgw.T28181.T28181VideoMonitor.Load C# (CSharp) Method

Load() public method

初始化T28181监控平台
public Load ( System monitorConfigElement ) : SmcErr
monitorConfigElement System 监控平台配置节点
return Cgw.SmcError.SmcErr
        public SmcErr Load(System.Xml.XmlElement monitorConfigElement)
        {
            NLogEx.LoggerEx logEx = new NLogEx.LoggerEx(log);
            logEx.Trace("Enter: T28181VideoMonitor.Load().");
            SmcErr err = new CgwError();

            try
            {
                //解析xml节点,获取所需参数
                string queryDeviceTimeOut = string.Empty;
                monitorId = CommonFunction.GetSingleNodeValue(monitorConfigElement, CgwConst.ID_TAG);
                domain = CommonFunction.GetSingleNodeValue(monitorConfigElement, CgwConst.IP_TAG);
                sipPort = CommonFunction.GetSingleNodeValue(monitorConfigElement, CgwConst.SIP_PORT);
                deviceID = CommonFunction.GetSingleNodeValue(monitorConfigElement, CgwConst.Device_ID);
                username = CommonFunction.GetSingleNodeValue(monitorConfigElement, CgwConst.USER_TAG);
                password = CommonFunction.GetSingleNodeValue(monitorConfigElement, CgwConst.PASSWORD_TAG);
                localPort = CommonFunction.GetSingleNodeValue(monitorConfigElement, CgwConst.LOCAL_PORT);
                queryDeviceTimeOut = CommonFunction.GetSingleNodeValue(monitorConfigElement, CgwConst.QueryDeviceTimeOut);

                //检测配置文件是否有错误
                int iSipPort = 0;
                bool bRet = int.TryParse(sipPort, out iSipPort);

                if (bRet == false)
                {
                    err.SetErrorNo(CgwError.MONITOR_CONFIG_FILE_INVALID);
                    logEx.Error("Load T28181 monitor failed.Execption sipPort:{0}.", sipPort);
                    return err;
                }

                int iLocalPort = 0;
                bRet = int.TryParse(localPort, out iLocalPort);

                if (bRet == false)
                {
                    err.SetErrorNo(CgwError.MONITOR_CONFIG_FILE_INVALID);
                    logEx.Error("Load T28181 monitor failed.Execption localPort:{0}.", localPort);
                    return err;
                }

                bRet = int.TryParse(queryDeviceTimeOut, out iQueryDeviceTimeOut);
                //转为毫秒
                iQueryDeviceTimeOut *= 1000;

                if (bRet == false)
                {
                    err.SetErrorNo(CgwError.MONITOR_CONFIG_FILE_INVALID);
                    logEx.Error("Load T28181 monitor failed.Execption QueryDeviceTimeOut:{0}.", iQueryDeviceTimeOut);
                    return err;
                }

                //开始连接、注册Sip服务器
                StartConnectRegisterSip(domain, iSipPort, iLocalPort, username, password);

                //开始查询设备列表
                Thread th = new Thread(new ThreadStart(()
                    =>
                    {
                         GetAllCamerasTimer(null, null);
                    }));
                th.Start();
                //启动定时器
                updateCameraTimer.Start();
            }
            catch (Exception e)
            {
                err.SetErrorNo(CgwError.MONITOR_CONFIG_FILE_INVALID);
                logEx.Error("Load T28181 monitor failed.Execption message:{0}.", e.Message);
                return err;
            }

            logEx.Info("Load T28181 monitor success.Monitor id:{0}.", this.monitorId);
            return err;
        }