public string GetRadarString(Radar radar)
        {
            string            result  = string.Empty;
            FormDisplay       display = null;
            DataFrameMessages infos   = null;

            if (radar != null && (display = this.DictForms[radar]) != null && (infos = display.Infos) != null)
            {
                ObjectGeneral obj = infos.ObjectMostThreat;
                result = string.Format(@"
  ""radar_{0}"": [
  ""effective"": {1},
  ""distance"": {2},
  ""threat"": {3}
  ],", radar.PortLocal + "_" + radar.Name /*radar.Id*/, infos.RadarState.Working, obj == null ? 0 : obj.DistanceToBorder, obj == null ? 0 : obj.ThreatLevel);
            }

            return(result);
        }
        private void Init(Radar radar)
        {
            //this.OpcHelper = radar == null ? null : radar.OpcHelper;
            this.IpAddress      = radar == null ? BaseConst.IpAddress : radar.IpAddress;
            this.Port           = radar == null ? BaseConst.Port : radar.Port;
            this.ConnectionMode = radar == null ? BaseConst.ConnectionMode : radar.ConnectionMode;
            this.UsingLocal     = radar == null ? BaseConst.UsingLocal : radar.UsingLocal;
            //this.IpAddress_Local = radar == null ? BaseConst.IpAddress_Local : radar.IpAddressLocal;
            this.IpAddress_Local = BaseConst.IpAddress_Local;
            this.Port_Local      = radar == null ? BaseConst.Port_Local : radar.PortLocal;
            //TODO RCS值由何决定
            //this.RcsMinimum = radar == null ? BaseConst.RcsMinimum : radar.RcsMinimum;
            //this.RcsMaximum = radar == null ? BaseConst.RcsMaximum : radar.RcsMaximum;
            //this.RcsMinimum = BaseConst.RcsMinimum;
            //this.RcsMaximum = BaseConst.RcsMaximum;
            this.ProbOfExistMinimum = radar == null ? BaseConst.ProbOfExistMinimum : radar.ProbOfExistMinimum;

            //this.TcpClient = new DerivedTcpClient() { HoldLocalPort = true };
            this.TcpClient = new DerivedTcpClient();
            this.TcpClient.DataReceived       += new DataReceivedHandler(TcpClient_DataReceived);
            this.TcpClient.ReconnTimerChanged += new ReconnTimerChangedHandler(this.ReconnTimerChanged);
            this.thread_writeitems             = new Thread(new ThreadStart(this.WriteItemValuesLoop))
            {
                IsBackground = true
            };
            this.AddGroupItemsAsync();

            this.column_width = this.tableLayoutPanel_Main.ColumnStyles[0].Width;
            //this.infos = new DataFrameMessages(this);
            this.infos            = new DataFrameMessages(this, this.Radar);
            this.list_cluster     = this.Infos.ListTrigger_Cluster;
            this.list_object      = this.Infos.ListTrigger_Object;
            this.Send_AsString    = BaseConst.IniHelper.ReadData("SerialPort", "SendAsString").Equals("1");
            this.Receive_AsString = BaseConst.IniHelper.ReadData("SerialPort", "ReceiveAsString").Equals("1");
            this.Name             = this.Title;
            this.Text             = this.Title;
            this.S = this.scale_original;
            //this.RcsMinimum = int.Parse(BaseConst.IniHelper.ReadData("Detection", "RcsMinimum"));
            //this.RcsMaximum = int.Parse(BaseConst.IniHelper.ReadData("Detection", "RcsMaximum"));

            this.InitControls();
        }