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;
}