public bool Init(IActionManager manager, IActionConfig config, IActionType type) { mConfig = config; mManager = manager; mType = type; if (!IsInit && Verify(ACOpts.Exec_Init)) { if (mManager.SystemContext.MonitorSystem.IsLocal) { if (InitAction()) { State = ActionState.Init; Config = mConfig; if (!IsActive && mConfig.AutoRun) { this.Start(); } return(true); } } else if (mManager.SystemContext.RemoteManageClient != null) { SystemContext.RemoteManageClient.OnConnected -= new ClientConnectEvent(DoConnected); SystemContext.RemoteManageClient.OnDisconnected -= new ClientConnectEvent(DoDisconnected); SystemContext.RemoteManageClient.OnReceiveData -= new ClientReceiveEvent(DoReceiveData); SystemContext.RemoteManageClient.OnConnected += new ClientConnectEvent(DoConnected); SystemContext.RemoteManageClient.OnDisconnected += new ClientConnectEvent(DoDisconnected); SystemContext.RemoteManageClient.OnReceiveData += new ClientReceiveEvent(DoReceiveData); IRemoteSystem rs = mManager.SystemContext.MonitorSystem as IRemoteSystem; if (rs != null) { StringBuilder sb = new StringBuilder(mManager.SystemContext.RequestHeadInfo); sb.Append(string.Format("{0}<Action>", Name)); sb.Append("Init<Command>"); sb.Append(string.Format("{0}<Type>", mType.ToXml())); sb.Append(string.Format("{0}<Config>", mConfig.ToXml())); return(mManager.SystemContext.RemoteManageClient.WaitReliableSend(rs.Config.IP, rs.Config.Port, sb.ToString())); } } } return(false); }
public bool Init(ITaskManager manager, ITaskConfig config, ITaskType type) { mConfig = config; mManager = manager; mType = type; if (!IsInit && Verify(ACOpts.Exec_Init)) { if (mManager.SystemContext.MonitorSystem.IsLocal) { if (InitTask()) { State = TaskState.Init; Config = mConfig; if (!IsActive && mConfig.AutoRun) { this.Start(); } return(true); } } else if (mManager.SystemContext.RemoteManageClient != null) { SystemContext.RemoteManageClient.OnConnected -= new ClientConnectEvent(DoConnected); SystemContext.RemoteManageClient.OnDisconnected -= new ClientConnectEvent(DoDisconnected); SystemContext.RemoteManageClient.OnReceiveData -= new ClientReceiveEvent(DoReceiveData); SystemContext.RemoteManageClient.OnConnected += new ClientConnectEvent(DoConnected); SystemContext.RemoteManageClient.OnDisconnected += new ClientConnectEvent(DoDisconnected); SystemContext.RemoteManageClient.OnReceiveData += new ClientReceiveEvent(DoReceiveData); IRemoteSystem rs = mManager.SystemContext.MonitorSystem as IRemoteSystem; if (rs != null) { StringBuilder sb = new StringBuilder(mManager.SystemContext.RequestHeadInfo); ISchedulerConfig sc = mManager.SystemContext.SchedulerConfigManager.GetConfig(mConfig.Scheduler); if (sc != null) { ISchedulerType st = mManager.SystemContext.SchedulerTypeManager.GetConfig(sc.Type); if (st != null) { sb.Append(sc.Name + "<Scheduler>"); sb.Append("InitConfig<Command>"); sb.Append(st.ToXml() + "<Type>"); sb.Append(sc.ToXml() + "<Config><CommandSegment>"); } } IActionConfig ac; IActionParam[] apList = mConfig.GetActionList(); if (apList != null) { foreach (IActionParam pc in apList) { ac = mManager.SystemContext.ActionConfigManager.GetConfig(pc.Name); if (ac != null) { IActionType at = mManager.SystemContext.ActionTypeManager.GetConfig(ac.Type); if (at != null) { sb.Append(ac.Name + "<Action>"); sb.Append("Init;Start<Command>"); sb.Append(at.ToXml() + "<Type>"); sb.Append(ac.ToXml() + "<Config><CommandSegment>"); } } } } sb.Append(Name + "<Task>"); sb.Append("Init<Command>"); sb.Append(mType.ToXml() + "<Type>"); sb.Append(mConfig.ToXml() + "<Config>"); return(mManager.SystemContext.RemoteManageClient.WaitReliableSend(rs.Config.IP, rs.Config.Port, sb.ToString())); } } return(false); } else { return(true); } }
public bool InitMonitor(IMonitorConfig config) { IVisionMonitorConfig vmConfig = config as IVisionMonitorConfig; if (vmConfig != null) { IVideoSourceConfig vsConfig = config.SystemContext.GetVideoSourceConfig(vmConfig.Watcher.ActiveVisionParamConfig.VSName); if (vsConfig != null) { IVideoSourceType vsType = config.SystemContext.GetVideoSourceType(vsConfig.Type); StringBuilder sb = new StringBuilder(config.SystemContext.RequestHeadInfo); sb.Append(vsConfig.Name + "<VideoSource>"); sb.Append("Open;Play;InitKernel<Command>"); sb.Append(vsType.ToXml() + "<Type>"); sb.Append(vsConfig.ToXml() + "<Config><CommandSegment>"); IActionConfig ac; IActionParam[] apList; if (!config.Watcher.ActiveActionParamConfig.LocalAlarmAction) { apList = config.Watcher.ActiveActionParamConfig.GetAlarmActionList(); if (apList != null) { foreach (IActionParam pc in apList) { ac = config.SystemContext.ActionConfigManager.GetConfig(pc.Name); if (ac != null) { IActionType at = config.SystemContext.ActionTypeManager.GetConfig(ac.Type); if (at != null) { sb.Append(ac.Name + "<Action>"); sb.Append("Init;Start<Command>"); sb.Append(at.ToXml() + "<Type>"); sb.Append(ac.ToXml() + "<Config><CommandSegment>"); } } } } } if (!config.Watcher.ActiveActionParamConfig.LocalTransactAction) { apList = config.Watcher.ActiveActionParamConfig.GetTransactActionList(); if (apList != null) { foreach (IActionParam pc in apList) { ac = config.SystemContext.ActionConfigManager.GetConfig(pc.Name); if (ac != null) { IActionType at = config.SystemContext.ActionTypeManager.GetConfig(ac.Type); if (at != null) { sb.Append(ac.Name + "<Action>"); sb.Append("Init;Start<Command>"); sb.Append(at.ToXml() + "<Type>"); sb.Append(ac.ToXml() + "<Config><CommandSegment>"); } } } } } IMonitorType vuType = config.SystemContext.GetMonitorType(config.Type); sb.Append(config.Name + "<Monitor>"); sb.Append("Init<Command>"); sb.Append(vuType.ToXml() + "<Type>"); sb.Append(config.ToXml() + "<Config>"); IRemoteSystem rs = config.SystemContext.MonitorSystem as IRemoteSystem; if (rs != null) { return(WaitReliableSend(rs.Config.IP, rs.Config.Port, sb.ToString())); } else { return(WaitReliableSend(config.Host, config.Port, sb.ToString())); } } } else { IMonitorType vuType = config.SystemContext.GetMonitorType(config.Type); StringBuilder sb = new StringBuilder(config.SystemContext.RequestHeadInfo); sb.Append(config.Name + "<Monitor>"); sb.Append("Init<Command>"); sb.Append(vuType.ToXml() + "<Type>"); sb.Append(config.ToXml() + "<Config>"); IRemoteSystem rs = config.SystemContext.MonitorSystem as IRemoteSystem; if (rs != null) { return(WaitReliableSend(rs.Config.IP, rs.Config.Port, sb.ToString())); } else { return(WaitReliableSend(config.Host, config.Port, sb.ToString())); } } return(false); }