?? registerthread.cs
字號:
using System;
using System.Threading;
using MonitorSystem.BasicClass;
namespace MonitorSystem.MonitorInterface
{
/// <summary>
/// 用于平臺向監控中心注冊,并處理各監控節點的注冊請求。
/// </summary>
public class RegisterThread
{
private Thread m_Thread;
private bool m_Pause;
private bool m_Exit;
private ConfigFile m_ConfigFile;
private MonitorSystem.BasicClass.SystemLog m_SysLog=new MonitorSystem.BasicClass.SystemLog();
public RegisterThread()
{
m_Pause = false;
m_Exit = false;
}
public void Init(ref ConfigFile iCfgFile )
{
m_ConfigFile = iCfgFile;
}
public void Run()
{
while(true)
{
while(m_Pause)
{
try
{
Thread.Sleep(1000);
}
catch(Exception)
{
}
continue;
}
if(m_Exit)
{
break;
}
char[] headflag = new Char[]{'O','P','E','N','E','T'};
try
{
MonitorPlatform interReg = new MonitorPlatform();
InterRegNodePackage RegNode = new InterRegNodePackage();
InterRegNodeRespPackage RegNodeResp = new InterRegNodeRespPackage();
NodeRegRespPackage NodeRegResp = new NodeRegRespPackage();
//interReg.ListenPort = m_ConfigFile.PlatformPort;
//接受節點的注冊
interReg.ReceiveRegNode();
if(RegNode.CommandID == 0x00000001)
{
//中心的節點注冊
interReg.RegInit(headflag,208,0x10000002,'0',001,0,null);
interReg.RegPlatformNode();
if(RegNodeResp.iResult == 0 && RegNodeResp.CommandID == 0x70000002
&& RegNodeResp.PacketType == 1)
{
interReg.RegInit(headflag,656,0x80000001,'1',001,0,null);
NodeRegResp.Result = 0;
interReg.SendRegNodeResp();
}
interReg.RegInit(headflag,656,0x80000001,'1',001,0,null);
NodeRegResp.Result = 1;
interReg.SendRegNodeResp();
}
}
catch(Exception e)
{
string msg = String.Format("注冊節點錯誤.{0}", e.Message);
m_SysLog.WriteToSysLog(0,msg);
}
if(m_Exit)
{
break;
}
try
{
//規則鏈表遍歷完畢,線程休眠一分鐘
Thread.Sleep(100);
}
catch(Exception)
{
}
}
}
public void Startup()
{
m_Thread = new Thread(new ThreadStart(this.Run));
// Start the thread
m_Pause = false;
m_Exit = false;
m_Thread.Start();
}
public void Join()
{
if(m_Thread != null)
{
m_Thread.Interrupt();
m_Thread.Join();
}
else
{
return;
}
}
public bool IsAlive()
{
if(m_Thread != null)
{
return m_Thread.IsAlive;
}
else
{
return false;
}
}
public void Suspend()
{
if(m_Pause == false)
m_Pause = true;
}
public void Resume()
{
if(m_Pause == true)
m_Pause = false;
}
public void SetExit()
{
if(m_Exit == false)
m_Exit = true;
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -