Esempio n. 1
0
        /// <summary>
        /// 通知资源状态信息,登录用户回调状态
        /// </summary>
        /// <param name="structResStaIndi"></param>
        private void CallbackResStatusDelegateFun(ref strResourceStatusIndicator structResStaIndi)
        {
            NLogEx.LoggerEx logEx = new NLogEx.LoggerEx(log);
            logEx.Trace("Enter: CallbackResStatusDelegateFun.status_type = {0},status_value = {1}", Enum.GetName(typeof(resource_status_t), structResStaIndi.status_type),
                         Enum.GetName(typeof(res_status_value_t), structResStaIndi.status_value));
            if (structResStaIndi.status_type == resource_status_t.RESREGSTATUS_PROXY && structResStaIndi.status_value == res_status_value_t.STATUS_REGOK)
            {
                logEx.Trace("{0} Login eLTE Success", structResStaIndi.ResId);

                ////休息2秒,等缓存回调上来后查设备,否则设备为0
                //Thread.Sleep(2000);

                //Thread th = new Thread(new ThreadStart(() =>
                //{
                //    //开始获取摄像机 
                //    this.GetAllCamerasTimer(null, null);

                //    //启动定时器
                //    this.updateCameraTimer.Start();
                //}));
                //th.Start();
            }
            else if (structResStaIndi.status_type == resource_status_t.RESREGSTATUS_PROXY && structResStaIndi.status_value == res_status_value_t.STATUS_NOT_FOUND)//密码不正确,不进行重连
            {
                logEx.Info("{0} Login eLTE Failed,STATUS_NOT_FOUND",structResStaIndi.ResId);
            }
            else if (structResStaIndi.status_type == resource_status_t.RESREGSTATUS_PROXY && structResStaIndi.status_value != res_status_value_t.STATUS_UNAUTHORIZED)
            {
                logEx.Trace("{0} Login eLTE Failed", structResStaIndi.ResId);
                if (IsNeedLogin)//判断是否需要登录
                {
                    eLTELoginInfo loginInfo = new eLTELoginInfo();
                    loginInfo.Ip = ip;
                    loginInfo.Port = iPort;
                    loginInfo.User = user;
                    //loginInfo.Pwd = password;
                    loginInfo.Pwd = CommonFunction.DecryptByte2Str(pwdByte, CgwConst.PASSWORD_TAG);
                    loginInfo.PTTUSER = bPttUser;
                    loginInfo.FIXEDCAMERA = bFixedCamera;
                    loginInfo.NotFirstLogin = true;

                    //使用线程轮询加载监控平台
                    Thread loaderThread = new Thread(LoginThread);
                    loaderThread.IsBackground = true;
                    loaderThread.Start(loginInfo);
                    loaderThread.Join(20000);
                }              
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 服务用户状态信息回调
        /// </summary>
        /// <param name="modSta"></param>
        private void CallModuleStatusDelegateFun(ref strDCModuleStatusIndicator modSta)
        {
            NLogEx.LoggerEx logEx = new NLogEx.LoggerEx(log);
            logEx.Info("Enter:CallModuleStatusDelegateFun, Type : {0},Status : {1}. ", Enum.GetName(typeof(dc_module_t), modSta.m_module_type), Enum.GetName(typeof(module_status_t), modSta.m_status_value));
            if (dc_module_t.SIP_MODULE == modSta.m_module_type)
            {
                if (module_status_t.SIP_RECONNECT == modSta.m_status_value ||
                    module_status_t.KICK_OFF == modSta.m_status_value ||
                    module_status_t.SIP_KEEPALIVE_REJECT==modSta.m_status_value)
                {
                    eLTELoginInfo loginInfo = new eLTELoginInfo();
                    loginInfo.Ip = ip;
                    loginInfo.Port = iPort;
                    loginInfo.User = user;
                    //loginInfo.Pwd = password;
                    loginInfo.Pwd = CommonFunction.DecryptByte2Str(pwdByte, CgwConst.PASSWORD_TAG);
                    loginInfo.PTTUSER = bPttUser;
                    loginInfo.FIXEDCAMERA = bFixedCamera;
                    loginInfo.NotFirstLogin = true;

                    //使用线程轮询加载监控平台
                    Thread loaderThread = new Thread(LoginThread);
                    loaderThread.IsBackground = true;
                    loaderThread.Start(loginInfo);
                    loaderThread.Join(20000);
                }
                else if (module_status_t.PASSWORD_CHANGE == modSta.m_status_value ||
                         module_status_t.USER_DELETE == modSta.m_status_value)
                {
                    logEx.Error("User Status Exception,Not ReConnect");
                }
            }            
        }
Esempio n. 3
0
        /// <summary>
        /// 初始化eLTE台
        /// </summary>
        /// <param name="monitorConfigElement">监控平台配置节点</param>
        /// <returns></returns>
        public SmcError.SmcErr Load(System.Xml.XmlElement monitorConfigElement)
        {
            NLogEx.LoggerEx logEx = new NLogEx.LoggerEx(log);
            logEx.Info("Enter: eLTEVideoMonitor.Load().");
            SmcErr err = new CgwError();

            try
            {
                //解析xml节点,获取所需参数    
                this.monitorId = CommonFunction.GetSingleNodeValue(monitorConfigElement, CgwConst.ID_TAG);
                string port = CommonFunction.GetSingleNodeValue(monitorConfigElement, CgwConst.PORT_TAG);
                string localPort = CommonFunction.GetSingleNodeValue(monitorConfigElement, CgwConst.LOCAL_ELTE_PORT);
                user = CommonFunction.GetSingleNodeValue(monitorConfigElement, CgwConst.USER_TAG);

                pwdByte = CommonFunction.EncryptStr2Byte(CommonFunction.GetSingleNodeValue(monitorConfigElement, CgwConst.PASSWORD_TAG),CgwConst.PASSWORD_TAG);
                ip = CommonFunction.GetSingleNodeValue(monitorConfigElement, CgwConst.IP_TAG);

                bPttUser = bool.Parse(LoadElTEParamters(monitorConfigElement, CgwConst.PTT_USER, boolArrays));
                bFixedCamera = bool.Parse(LoadElTEParamters(monitorConfigElement, CgwConst.FIXED_CAMERA, boolArrays));

                fmtValue = LoadElTEParamters(monitorConfigElement, CgwConst.FMT_VALUE, fmtValueArrays);
                cameraType = LoadElTEParamters(monitorConfigElement, CgwConst.CAMERA_TYPE, cameraTypeArrays);

                userConfirmType = LoadElTEParamters(monitorConfigElement, CgwConst.USER_CONFIRM_TYPE,userConfirmTypeArrays);
                muteType = LoadElTEParamters(monitorConfigElement, CgwConst.MUTE_TYPE,muteTypeArrays);

                iPort = 0;
                if (!int.TryParse(port, out iPort))
                {
                    err.SetErrorNo(CgwError.MONITOR_CONFIG_FILE_INVALID);
                    logEx.Error("Load eLTE monitor failed.Execption PORT_TAG:{0}.", port);
                    return err;
                }

                ilocalPort = 0;
                if (!int.TryParse(localPort, out ilocalPort))
                {
                    err.SetErrorNo(CgwError.MONITOR_CONFIG_FILE_INVALID);
                    logEx.Error("Load eLTE monitor failed.Execption PORT_TAG:{0}.", localPort);
                    return err;
                }
                //用户名是数值
                int iUserName = 0;
                if (!int.TryParse(user, out iUserName))
                {
                    err.SetErrorNo(CgwError.MONITOR_CONFIG_FILE_INVALID);
                    logEx.Error("Load eLTE monitor failed.Execption PORT_TAG:{0}.", user);
                    return err;
                }

                eLTELoginInfo loginInfo = new eLTELoginInfo();
                loginInfo.Ip = ip;
                loginInfo.Port = iPort;
                loginInfo.User = user;
                loginInfo.Pwd = CommonFunction.DecryptByte2Str(pwdByte,CgwConst.PASSWORD_TAG);
                loginInfo.PTTUSER = bPttUser;
                loginInfo.FIXEDCAMERA = bFixedCamera;

                IsNeedLogin = true;
                //使用线程轮询加载监控平台
                Thread loaderThread = new Thread(LoginThread);
                loaderThread.IsBackground = true;
                loaderThread.Start(loginInfo);

            }
            catch (Exception e)
            {
                err.SetErrorNo(CgwError.MONITOR_CONFIG_FILE_INVALID);
                logEx.Error("Load eLTEVideoMonitor failed.Execption message:{0}.", e.Message);
                return err;
            }

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