示例#1
0
        private void browse_button1_Click(object sender, EventArgs e)
        {
            openTerrainDialog.FileName = null;
            openTerrainDialog.Filter   = "TER文件(*.ter)|*.ter|所有文件|*.*";
            openTerrainDialog.Title    = "添加地形文件";
            if (MainWindow.mProjectFullName != null)
            {
                //当单机确定按钮时
                if (openTerrainDialog.ShowDialog() == DialogResult.OK)
                {
                    //用t存放打开文件的完整路径名
                    locateroute_textBox2.Text = openTerrainDialog.FileName;
                    terrainname_textBox4.Text = openTerrainDialog.FileName.Substring(openTerrainDialog.FileName.LastIndexOf('\\') + 1, openTerrainDialog.FileName.Length - 1 - openTerrainDialog.FileName.LastIndexOf('\\'));
                    try
                    {
                        //如果读取的文件不存在,则会抛出异常,必须处理该异常
                        terrainValueStr = FileOperation.ReadLineFile(openTerrainDialog.FileName + ".terinfo", n);
                    }
                    catch (FileNotFoundException ex)
                    {
                        LogFileManager.ObjLog.fatal(ex.Message, ex);
                        MessageBox.Show("您导入的地形文件存在错误!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                    longtitude_textBox1.Text = terrainValueStr[0];
                    latitude_textBox3.Text   = terrainValueStr[1];

                    MainWindow.longitudeStr = terrainValueStr[0];
                    MainWindow.latitudeStr  = terrainValueStr[1];
                    //将经纬度存储到.setup.info文件中
                    FileOperation.WriteLineFile(SetupContent.longitudeIndeStr + " " + terrainValueStr[0], MainWindow.nodeInfoFullPath, true);
                    FileOperation.WriteLineFile(SetupContent.latitudeIndeStr + " " + terrainValueStr[1], MainWindow.nodeInfoFullPath, true);
                }
                else
                {
                    this.Close();
                    return;
                }
            }
            else
            {
                MessageBox.Show("请先创建一个工程之后再从本地添加地形!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
示例#2
0
 //将结果设定的状态写到信息文件中,返回值为true表示正确写进信息文件,false表示没有正确写进文件
 //第二个参数是写进信息文件的字符串
 bool RecordResultSetted(CheckBox cb, string str)
 {
     try
     {
         if (cb.Checked)
         {
             //若复选框被选中则在索引字符串str后面写1
             FileOperation.WriteLineFile(str + " 1", MainWindow.nodeInfoFullPath, true);
         }
         else
         {
             //若复选框没有被选中则在索引字符串后面写0
             FileOperation.WriteLineFile(str + " 0", MainWindow.nodeInfoFullPath, true);
         }
     }
     catch (Exception ex)
     {
         //没有写进文件则会产生异常,返回false
         LogFileManager.ObjLog.fatal(ex.Message, ex);
         return(false);
     }
     return(true);
 }
示例#3
0
        private void NewProject_ok_Click(object sender, EventArgs e)
        {
            string tipTitle = "错误";
            //对路径后面是否有\做出两种不同的处理

            string slashExist = null;

            if (projectPath.Text[projectPath.Text.Length - 1] == '\\')
            {
                slashExist = null;
            }
            else
            {
                slashExist = "\\";
            }
            MainWindow.projectRealPath = projectPath.Text + slashExist + projectName.Text;
            MainWindow.onlyProjectName = projectName.Text;
            //判断路径的格式是否合法

            //string patten = @"^[a-zA-Z]:(\\)+$|^[a-zA-Z]:(\\(\s*_*[0-9a-zA-Z]+_*\s*[-0-9a-zA-Z]+_*))+$";
            string pattenPath      = @"^[a-zA-Z]:(\\+\w*)*$";
            string pattenName      = @"^\w*$";
            bool   pathMatchResult = Regex.IsMatch(projectPath.Text, pattenPath);
            bool   nameMatchResult = Regex.IsMatch(projectName.Text, pattenName);

            string driver   = Directory.GetDirectoryRoot(projectPath.Text);
            bool   signbool = false;

            DriveInfo[] allDrivers = DriveInfo.GetDrives();
            foreach (DriveInfo d in allDrivers)
            {
                if ((d.Name[0] == driver[0] || driver[0] == d.Name[0] + 32) && (d.DriveType == DriveType.Fixed || d.DriveType == DriveType.Removable))
                {
                    signbool = true;
                }
            }
            if (pathMatchResult && nameMatchResult && signbool)
            {
                //路径格式合法,判断项目名称是否为空
                if (projectName.Text == "")
                {
                    MessageBox.Show("工程名不能为空,请输入工程名", tipTitle, MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    ServiceReference1.Service1Client client         = client = new ServiceReference1.Service1Client();;
                    ServiceReference1.ProjectInfo[]  DBProjectNames = client.iGetProjectInfo();
                    for (int i = 0; i < DBProjectNames.Length; i++)
                    {
                        if (projectName.Text == DBProjectNames[i].Name)
                        {
                            string tipMessage = "该工程名称在数据库中已存在,请重新命名";
                            MessageBox.Show(tipMessage, tipTitle, MessageBoxButtons.OK, MessageBoxIcon.Error);
                            return;
                        }
                    }


                    //路径合法,项目名称不为空,接着判断所建项目是否已经存在
                    if (Directory.Exists(MainWindow.projectRealPath))
                    {
                        string tipMessage = "该工程已存在,请重新命名";
                        MessageBox.Show(tipMessage, tipTitle, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    else
                    {
                        Directory.CreateDirectory(MainWindow.projectRealPath);
                        string nodeName = projectName.Text + ".setup" + ".info";

                        MainWindow.mProjectFullName = MainWindow.projectRealPath + "\\" + projectName.Text + ".setup";
                        MainWindow.nodeInfoFullPath = MainWindow.projectRealPath + "\\" + nodeName;
                        //MainWindow.transInfoFullPath = MainWindow.projectRealPath + "\\" + projectName.Text + ".transinfo";
                        MainWindow.transInfoFullPath = MainWindow.mProjectFullName + ".transinfo";

                        MainWindow.relationOfAntAndWavePath = MainWindow.mProjectFullName + ".match";
                        MainWindow.waveinfoFilePath         = MainWindow.mProjectFullName + ".waveinfo";

                        //将工程名字存到全局字符串
                        MainWindow.setupStr = SetupContent.setupcontent1 + projectName.Text + "\r\n" + SetupContent.setupcontent2;
                        FileOperation.WriteFile(MainWindow.setupStr, MainWindow.mProjectFullName, false);
                        //FileOperation.WriteFile(SetupContent.vwFileStr, MainWindow.projectRealPath + "\\" + projectName.Text + ".vw");
                        //给全局变量projectNameStr赋值
                        projectNameStr = projectName.Text;
                        //FileCopyUI.FileCopy(nodeInfoFullPath, MainWindow.mProjectFullName);
                        //启动WI
                        //Process wiProcess=Process.Start("notepad", MainWindow.mProjectFullName);
                        wiProcess = Process.Start(MainWindow.exePath, MainWindow.mProjectFullName);
                        MainWindow.wiProcessID = wiProcess.Id;

                        FileOperation.WriteLineFile(SetupContent.projectIndeStr + " " + projectName.Text, MainWindow.nodeInfoFullPath, true);
                        //创建子节点
                        MainWindow.staticTreeView.Nodes[0].Nodes.Add(projectName.Text);
                        MainWindow.staticTreeView.Nodes[0].Nodes[0].Nodes.Add("地形");
                        MainWindow.staticTreeView.Nodes[0].Nodes[0].Nodes.Add("波形");
                        MainWindow.staticTreeView.Nodes[0].Nodes[0].Nodes.Add("天线");
                        MainWindow.staticTreeView.Nodes[0].Nodes[0].Nodes.Add("辐射源");
                        MainWindow.staticTreeView.Nodes[0].Nodes[0].Nodes.Add("接收机");
                        MainWindow.staticTreeView.Nodes[0].Nodes[0].Nodes.Add("仿真结果设定");
                        MainWindow.staticTreeView.Nodes[0].Nodes[0].Nodes[4].Nodes.Add("点状分布");
                        MainWindow.staticTreeView.Nodes[0].Nodes[0].Nodes[4].Nodes.Add("区域分布");
                        this.Close();
                    }
                }
            }
            else
            {
                MessageBox.Show("您所输入的路径不合法,请重新输入", tipTitle, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
示例#4
0
        private void newTransmitterOK_Click(object sender, EventArgs e)
        {
            if (MainWindow.mProjectFullName == null)
            {
                this.Close();
                return;
            }
            if (!ConditionIsAll(MainWindow.nodeInfoFullPath))
            {
                MessageBox.Show("请先创建天线和添加波形之后再新建辐射源!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                MainWindow.IsReturnMidwayInNewProcess = true;
                return;
            }
            if (newTransmitterName_textBox2.Text == "" || newTransmitterLongitude_textBox1.Text == "" || newTransmitterLatitude_textBox3.Text == "" || newTransimtterReferencePlane_comboBox2.SelectedItem == null || newTransmitterPower_textBox11.Text == "" || newTransmitterAntennaName_comboBox3.SelectedItem == null || newTransmitterWaveformName_textBox1.Text == "" || newTransmitterAntennaRotationX_textBox4.Text == "" || newTransmitterAntennaRotationY_textBox6.Text == "" || newTransmitterAntennaRotationZ_textBox5.Text == "")
            {
                MessageBox.Show("窗口中有未设置的信息,请您设置完整", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                MainWindow.IsReturnMidwayInNewProcess = true;
                return;
            }
            if (!BoudingLimition.IsScienceFigure(newTransmitterPower_textBox11.Text))
            {
                MessageBox.Show("发射功率值输入必须是实数", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                MainWindow.IsReturnMidwayInNewProcess = true;
                return;
            }
            if (double.Parse(newTransmitterPower_textBox11.Text) < 0.000)
            {
                MessageBox.Show("发射功率值需大于0.000", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                MainWindow.IsReturnMidwayInNewProcess = true;
                return;
            }
            if (!BoudingLimition.IsScienceFigure(newTransmitterAntennaRotationX_textBox4.Text))
            {
                MessageBox.Show("天线关于X轴旋转角度值输入必须是实数", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                MainWindow.IsReturnMidwayInNewProcess = true;
                return;
            }
            if (!BoudingLimition.IsScienceFigure(newTransmitterAntennaRotationY_textBox6.Text))
            {
                MessageBox.Show("天线关于Y轴旋转角度值输入必须是实数", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                MainWindow.IsReturnMidwayInNewProcess = true;
                return;
            }
            if (!BoudingLimition.IsScienceFigure(newTransmitterAntennaRotationZ_textBox5.Text))
            {
                MessageBox.Show("天线关于Z轴旋转角度值输入必须是实数", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                MainWindow.IsReturnMidwayInNewProcess = true;
                return;
            }
            if (BoudingLimition.RotationLimition(newTransmitterAntennaRotationX_textBox4))
            {
                MessageBox.Show("天线关于X轴旋转角度值需在0度至360度之间", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                MainWindow.IsReturnMidwayInNewProcess = true;
                return;
            }
            if (BoudingLimition.RotationLimition(newTransmitterAntennaRotationY_textBox6))
            {
                MessageBox.Show("天线关于Y轴旋转角度值需在0度至360度之间", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                MainWindow.IsReturnMidwayInNewProcess = true;
                return;
            }
            if (BoudingLimition.RotationLimition(newTransmitterAntennaRotationZ_textBox5))
            {
                MessageBox.Show("天线关于Z轴旋转角度值需在0度至360度之间", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                MainWindow.IsReturnMidwayInNewProcess = true;
                return;
            }
            //先判断是否存在.tx文件
            if (File.Exists(MainWindow.projectRealPath + "\\" + MainWindow.onlyProjectName + ".tx"))
            {
                WaveformWriting transm = new WaveformWriting(FileOperation.ReadFile(MainWindow.nodeInfoFullPath));
                //注意 新建的辐射源个数不能超过1000
                string[] transmitterNames = new string[1000];
                //判断是否存在重名的辐射源
                transmitterNames = transm.waveformNames(SetupContent.transmitterIndeStr);
                if (transm.judge(newTransmitterName_textBox2.Text, transmitterNames))
                {
                    MessageBox.Show("此辐射源已存在,请您换一个辐射源名称!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    MainWindow.IsReturnMidwayInNewProcess = true;
                    return;
                }
            }
            string transmitterCount = GetTransmitterNum(MainWindow.projectRealPath + "\\" + MainWindow.onlyProjectName + ".tx", SetupContent.transmitterStr2OfTr);
            string sourceStr        = FileOperation.ReadFile(MainWindow.waveinfoFilePath);

            string trFileStr = SetupContent.transmitterStr1OfTr + " " + newTransmitterName_textBox2.Text + "\r\n"
                               + SetupContent.transmitterStr2OfTr + transmitterCount + "\r\n"
                               + SetupContent.transmitterStr3OfTr + "\r\n" + SetupContent.transmitterStr4OfTr + "\r\n"
                               + SetupContent.transmitterStr5OfTr + "\r\n" + SetupContent.transmitterStr6OfTr + "\r\n"
                               + SetupContent.transmitterStr7OfTr + "\r\n" + SetupContent.transmitterStr8OfTr + "\r\n"
                               + SetupContent.transmitterStr9OfTr + "\r\n" + SetupContent.transmitterStr10OfTr + "\r\n"
                               + SetupContent.transmitterStr11OfTr + "\r\n"
                               + SetupContent.transmitterStr12OfTr + MainWindow.longitudeStr + "\r\n"
                               + SetupContent.transmitterStr13OfTr + MainWindow.latitudeStr + "\r\n"
                               + SetupContent.transmitterStr14OfTr + "\r\n"
                               + Translate.KeyWordsDictionary(newTransimtterReferencePlane_comboBox2) + "\r\n"
                               + SetupContent.transmitterStr15OfTr + "\r\n"
                               + SetupContent.transmitterStr16OfTr + "\r\n"
                               //+ SetupContent.transmitterStr17OfTr + "\r\n"
                               + GetAntennaStr(MainWindow.transInfoFullPath, newTransmitterAntennaName_comboBox3)
                               + SetupContent.transmitterStr18OfTr + newTransmitterAntennaRotationX_textBox4.Text + "\r\n"
                               + SetupContent.transmitterStr19OfTr + newTransmitterAntennaRotationY_textBox6.Text + "\r\n"
                               + SetupContent.transmitterStr20OfTr + newTransmitterAntennaRotationZ_textBox5.Text + "\r\n"
                               + SetupContent.transmitterStr21OfTr + newTransmitterPower_textBox11.Text + "\r\n"
                               + SetupContent.transmitterStr22OfTr + "\r\n"
                               + SetupContent.transmitterStr23OfTr + "\r\n"
                               + SetupContent.transmitterStr24OfTr + " "
                               + WaveformNodeOfConMenu.GetWaveformNumLine(newTransmitterWaveformName_textBox1.Text, sourceStr) + "MHZ" + "\r\n";

            FileOperation.WriteFile(trFileStr, MainWindow.projectRealPath + "\\" + MainWindow.onlyProjectName + ".tx", true);
            //写到setup文件中
            string sourceStrOfTr = FileOperation.ReadFile(MainWindow.projectRealPath + "\\" + MainWindow.onlyProjectName + ".tx");
            //找出辐射源的个数
            int transmitCount = WaveformWriting.GetCountOfMatchStr("begin_<points>", sourceStrOfTr);

            //如果已经存在了transmitter块,则先删除
            if (MainWindow.setupStr.LastIndexOf("end_<transmitter>") != -1)
            {
                MainWindow.setupStr = MainWindow.setupStr.Remove(MainWindow.setupStr.IndexOf("begin_<transmitter>"), MainWindow.setupStr.IndexOf("end_<transmitter>") - MainWindow.setupStr.IndexOf("begin_<transmitter>") + 19);
            }
            int    insertSiteOfTr = MainWindow.setupStr.LastIndexOf("end_<feature>") + 15;//15是end_<feature>\r\n后的第一个字符
            string insertStr      = SetupContent.transmitterStr1Ofsetup + "\r\n" + SetupContent.transmitterStr2Ofsetup
                                    + MainWindow.projectRealPath + "\\" + MainWindow.onlyProjectName + ".tx" + "\r\n"
                                    + SetupContent.transmitterStr3Ofsetup + transmitCount.ToString() + "\r\n"
                                    + SetupContent.transmitterStr4Ofsetup + "\r\n";

            //将字符串插入到全局字符串setupStr中
            MainWindow.setupStr = MainWindow.setupStr.Insert(insertSiteOfTr, insertStr);
            FileOperation.WriteFile(MainWindow.setupStr, MainWindow.mProjectFullName, false);
            //向工程树中添加结点信息
            MainWindow.staticTreeView.Nodes[0].Nodes[0].Nodes[3].Nodes.Add(newTransmitterName_textBox2.Text);
            //将辐射源的信息存储到.setup.info文件中
            FileOperation.WriteLineFile(SetupContent.transmitterIndeStr + " " + newTransmitterName_textBox2.Text, MainWindow.nodeInfoFullPath, true);
            //将辐射源和天线的匹配关系记录到.match文件中
            FileOperation.WriteLineFile(SetupContent.transmitterIndeStr + " " + newTransmitterName_textBox2.Text + "*" + newTransmitterAntennaName_comboBox3.SelectedItem, MainWindow.relationOfAntAndWavePath, true);
            //将辐射源的信息存储到.waveinfo文件中
            string transmitterInfoStr = SetupContent.transmitterStr1Ofsetup + " " + newTransmitterName_textBox2.Text + "\r\n"
                                        + newTransimtterReferencePlane_comboBox2.Text + "\r\n"
                                        + newTransmitterPower_textBox11.Text + "\r\n"
                                        + newTransmitterAntennaName_comboBox3.Text + "\r\n"
                                        + newTransmitterWaveformName_textBox1.Text + "\r\n"
                                        + newTransmitterAntennaRotationX_textBox4.Text + "\r\n"
                                        + newTransmitterAntennaRotationY_textBox6.Text + "\r\n"
                                        + newTransmitterAntennaRotationZ_textBox5.Text + "\r\n"
                                        + "END" + SetupContent.transmitterStr1Ofsetup + " " + newTransmitterName_textBox2.Text + "\r\n";

            FileOperation.WriteFile(transmitterInfoStr, MainWindow.waveinfoFilePath, true);

            if (MainWindow.creatSuccMesDisp)
            {
                MessageBox.Show("\"" + newTransmitterName_textBox2.Text + "\"辐射源创建成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
示例#5
0
        /*第一个string数组总共有8个元素
         * 每个元素都包含两部分,一是标识字符串,另一是内容和"\r\n"*/
        public string InsertAntenna8(string[] contents, string waveNameOfAntenna, string constStr1, string constStr2)
        {
            int    insertSite   = 0;
            bool   firstAntenna = false;
            string antennaCount = null;

            //插入的是第一个天线
            if (sourceString.LastIndexOf(constStr1) == -1)
            {
                insertSite   = sourceString.LastIndexOf(constStr2) + constStr2.Length + 2;
                firstAntenna = true;
                //当是第一次添加天线时,在traninfo文件中写入antenna 0
                antennaCount = "0";
            }
            //插入的不是第一个天线
            else
            {
                //插入的起始位置
                insertSite = sourceString.LastIndexOf(constStr1) + constStr1.Length + 2;
                //插入的不是第一个天线,算出天线的编号
                int antennaSite = sourceString.LastIndexOf("\nantenna") + 9;//10是\nantenna的长度
                while (sourceString[antennaSite] != '\r')
                {
                    antennaCount = antennaCount + sourceString[antennaSite++];
                }
                int b = int.Parse(antennaCount) + 1;
                antennaCount = string.Format("{0:##}", b);
            }
            //用户没有在combox中选择波形名称,则插入默认的正弦波
            //if (waveNameOfAntenna==null)
            //{
            //    string[] sinStr = { "Sinusoid", "Sinusoid", "1000000000", "1000000", "0" };
            //    sourceString = InsertWaveform5(sinStr, SetupContent.waveFormStr2, SetupContent.waveFormStr3,true);

            //}
            //else
            //{
            string[] waveNames = new string[30];
            waveNames = waveformNames(SetupContent.waveFormStr1);
            //插入setup文件中的波形
            sourceString = sourceString.Insert(insertSite, contents[0]);
            insertSite   = insertSite + contents[0].Length;
            //是第一次添加天线,天线的编号
            if (firstAntenna)
            {
                sourceString = sourceString.Insert(insertSite, "antenna " + "0" + "\r\n");
                insertSite   = insertSite + 11;
            }
            //不是第一次添加天线,天线的编号
            else
            {
                sourceString = sourceString.Insert(insertSite, "antenna " + antennaCount + "\r\n");
                insertSite   = insertSite + 10 + antennaCount.Length;
            }
            sourceString = sourceString.Insert(insertSite, contents[1]);
            insertSite   = insertSite + contents[1].Length;
            //找到最大的waveform编号
            //根据选中的波形名称去获得对应的波形编号
            string waveStr      = null;
            int    waveNameSite = sourceString.IndexOf(SetupContent.waveFormStr1 + " " + waveNameOfAntenna);

            if (waveNameSite != -1)
            {
                //由begin_<Waveform>去获取waveform这一行字符串。第二次循环才获得waveform这一行字符串
                for (int j = 0; j < 2; j++)
                {
                    waveStr = null;
                    while (sourceString[waveNameSite + (SetupContent.waveFormStr1 + " " + waveNameOfAntenna).Length + 2] != '\r')
                    {
                        waveStr = waveStr + sourceString[waveNameSite + (SetupContent.waveFormStr1 + " " + waveNameOfAntenna).Length + 2];
                        waveNameSite++;
                    }
                    //跳过\r\n这两个字符
                    waveNameSite = waveNameSite + 2;
                }
            }
            string antennaName = StringFound.FoundBackStr(SetupContent.antennaStr1, contents[0], true);

            //将发射机需要的信息存放到.transinfo文件中
            FileOperation.WriteFile(contents[0] + "antenna " + antennaCount + "\r\n" + waveStr + "\r\n" + SetupContent.antennaStr3 + " " + antennaName + "\r\n", MainWindow.transInfoFullPath, true);

            //将新建的天线和其对应的波形保存在.match文件中
            string antennaNameTemp = StringFound.FoundBackStr(SetupContent.antennaIndeStr, contents[0], true);

            //FileOperation.WriteLineFile(SetupContent.antennaIndeStr +" "+ antennaNameTemp + "#" + waveStr + "#" + waveNameOfAntenna, MainWindow.relationOfAntAndWavePath,true);
            FileOperation.WriteLineFile(SetupContent.antennaIndeStr + " " + antennaNameTemp + "#" + waveNameOfAntenna, MainWindow.relationOfAntAndWavePath, true);

            sourceString = sourceString.Insert(insertSite, waveStr + "\r\n");
            insertSite   = insertSite + waveStr.Length + 2;

            //contents[2]到contents[7]都是按相同的规律插入
            for (int j = 2; j < 8; j++)
            {
                sourceString = sourceString.Insert(insertSite, contents[j]);
                insertSite   = insertSite + contents[j].Length;
            }
            //}
            return(sourceString);
        }
示例#6
0
        private void newTerrainOk__Click(object sender, EventArgs e)
        {
            //确保先创建工程。否则插入数据将会出错
            if (MainWindow.mProjectFullName == null)
            {
                //MessageBox.Show("请先创建一个工程之后再从本地添加地形!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                this.Close();
                return;
            }
            else
            {
                //必须先浏览地形,再单击确定
                if (openTerrainDialog.FileName != "")
                {
                    //查找begin_<project>后面的字符串temp
                    string temp = StringFound.FoundBackStr("begin_<project>", MainWindow.setupStr, true);
                    if (temp == null)
                    {
                        MessageBox.Show("文件被破坏,产生错误错误!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                    else
                    {
                        //从信息文件中读取信息
                        string nodeNamesStr = FileOperation.ReadFile(MainWindow.nodeInfoFullPath);
                        //若信息文件中已经添加了地形,再次添加时要从setup文件先删除原来的地形,从从工程树中删除原来的地形
                        if (nodeNamesStr.LastIndexOf("<terrain>") != -1)
                        {
                            DialogResult result = MessageBox.Show("您确定要替换原来添加的地形吗?", "提醒", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
                            if (result == DialogResult.OK)
                            {
                                if (!TerrainOperation.DeleteTerrain(nodeNamesStr))
                                {
                                    MessageBox.Show("对不起,发生错误,删除失败", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    return;
                                }
                                MessageBox.Show("前一个地图已被替换", "提醒", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            }
                            else
                            {
                                return;
                            }
                        }
                        //向全局字符串setupStr插入<global>段
                        int    startPosiGlobal = MainWindow.setupStr.IndexOf("begin_<project>") + 15 + temp.Length + 3;
                        string globalStr       = SetupContent.terrainGlobalFixedStr1 + longtitude_textBox1.Text + "\r\n"
                                                 + SetupContent.terrainGlobalFixedStr2 + latitude_textBox3.Text + "\r\n"
                                                 + SetupContent.terrainGlobalFixedStr3 + "\r\n";
                        MainWindow.setupStr = MainWindow.setupStr.Insert(startPosiGlobal, globalStr);
                        //向全局字符串插入<studyarea>段
                        int    startPosiStudyArea = MainWindow.setupStr.IndexOf("FirstAvailableStudyAreaNumber") + 33;
                        string studyAreaStr       = SetupContent.terrainStudyAreaStr1 + "\r\n"
                                                    + SetupContent.terrainStudyAreaStr2 + longtitude_textBox1.Text + "\r\n"
                                                    + SetupContent.terrainGlobalFixedStr2 + latitude_textBox3.Text + "\r\n"
                                                    + SetupContent.terrainStudyAreaStr3 + terrainValueStr[2] + "\r\n"
                                                    + SetupContent.terrainStudyAreaStr4 + terrainValueStr[3] + "\r\n"
                                                    + SetupContent.terrainStudyAreaStr5 + "\r\n" + terrainValueStr[4] + "\r\n"
                                                    + terrainValueStr[5] + "\r\n" + terrainValueStr[6] + "\r\n" + terrainValueStr[7] + "\r\n"
                                                    + SetupContent.terrainStudyAreaStr6 + "\r\n";
                        MainWindow.setupStr = MainWindow.setupStr.Insert(startPosiStudyArea, studyAreaStr);
                        //向全局字符串插入<feature>段
                        int    startPosiFeature = MainWindow.setupStr.IndexOf("end_<studyarea>") + 17;
                        string featureStr       = SetupContent.terrainFeatureFixedStr1 + "\r\n"
                                                  + SetupContent.terrainFeatureFixedStr2 + "0" + "\r\n"
                                                  + SetupContent.terrainFeatureFixedStr3 + "\r\n"
                                                  + SetupContent.terrainFeatureFixedStr4
                                                  + MainWindow.projectRealPath + "\\" + terrainname_textBox4.Text + "\r\n"
                                                  + SetupContent.terrainFeatureFixedStr5 + "\r\n";
                        MainWindow.setupStr = MainWindow.setupStr.Insert(startPosiFeature, featureStr);

                        string t           = openTerrainDialog.FileName;
                        string terFileName = t.Substring(t.LastIndexOf('\\') + 1, t.Length - 1 - t.LastIndexOf('\\'));
                        //将ter文件拷贝到工程目录下
                        FileCopyUI.FileCopy(openTerrainDialog.FileName, MainWindow.projectRealPath + "\\" + terFileName);
                        FileCopyUI.FileCopy(openTerrainDialog.FileName + ".terinfo", MainWindow.projectRealPath + "\\" + terFileName + ".terinfo");

                        //将工程树的节点信息写到.info文件中
                        FileOperation.WriteLineFile(SetupContent.terrainIndeStr + " " + terFileName, MainWindow.nodeInfoFullPath, true);
                        FileOperation.WriteFile(MainWindow.setupStr, MainWindow.mProjectFullName, false);

                        MainWindow.staticTreeView.Nodes[0].Nodes[0].Nodes[0].Nodes.Add(terFileName);
                    }
                    this.Close();
                }
                else
                {
                    MessageBox.Show("请您从本地添加地形!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
示例#7
0
        private void newTerrainWindowOk_button1_Click(object sender, EventArgs e)
        {
            addTerrain = client.iGetTer((string)newTerrainName_comboBox1.SelectedItem);
            LogFileManager.ObjLog.info((string)newTerrainName_comboBox1.SelectedItem);
            //确保先创建工程。否则插入数据将会出错
            if (MainWindow.mProjectFullName == null)
            {
                MessageBox.Show("请先创建一个工程之后再从本地添加地形!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                this.Close();
            }
            else
            {
                //必须先选择地形,再单击确定
                if ((string)newTerrainName_comboBox1.SelectedItem != "")
                {
                    string t = addTerrain.path;
                    //将经纬度存储到.setup.info文件中
                    FileOperation.WriteLineFile(SetupContent.longitudeIndeStr + " " + addTerrain.originX, MainWindow.nodeInfoFullPath, true);
                    FileOperation.WriteLineFile(SetupContent.latitudeIndeStr + " " + addTerrain.originY, MainWindow.nodeInfoFullPath, true);
                    if (File.Exists(t) == false)
                    {
                        MessageBox.Show("数据库中已不存在此地图", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                    //查找begin_<project>后面的字符串temp
                    string temp = StringFound.FoundBackStr("begin_<project>", MainWindow.setupStr, true);
                    if (temp == null)
                    {
                        MessageBox.Show("程序内部发生错误!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                    else
                    {
                        //查找begin_<project>后面的字符串temp
                        string nodeNamesStr = FileOperation.ReadFile(MainWindow.nodeInfoFullPath);
                        //若信息文件中已经添加了地形,再次添加时要从setup文件先删除原来的地形,从从工程树中删除原来的地形
                        if (nodeNamesStr.LastIndexOf("<terrain>") != -1)
                        {
                            DialogResult result = MessageBox.Show("您确定要替换原来添加的地形吗?", "提醒", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
                            if (result == DialogResult.OK)
                            {
                                if (!TerrainOperation.DeleteTerrain(nodeNamesStr))
                                {
                                    MessageBox.Show("对不起,程序内部发生错误,删除失败", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    return;
                                }
                                MessageBox.Show("前一个地图已被替换", "提醒", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            }
                            else
                            {
                                return;
                            }
                        }

                        //向全局字符串setupStr插入<global>段
                        int    startPosiGlobal = MainWindow.setupStr.IndexOf("begin_<project>") + 15 + temp.Length + 3;
                        string globalStr       = SetupContent.terrainGlobalFixedStr1 + newTerrainLongtitude_textBox2.Text + "\r\n"
                                                 + SetupContent.terrainGlobalFixedStr2 + newTerrainLatitude_textBox3.Text + "\r\n"
                                                 + SetupContent.terrainGlobalFixedStr3 + "\r\n";
                        MainWindow.setupStr = MainWindow.setupStr.Insert(startPosiGlobal, globalStr);
                        ////向全局字符串插入<studyarea>段  其中zmin zmax及地图顶点先设为默认值
                        int    startPosiStudyArea = MainWindow.setupStr.IndexOf("FirstAvailableStudyAreaNumber") + 33;
                        string studyAreaStr       = SetupContent.terrainStudyAreaStr1 + "\r\n"
                                                    + SetupContent.terrainStudyAreaStr2 + newTerrainLongtitude_textBox2.Text + "\r\n"
                                                    + SetupContent.terrainGlobalFixedStr2 + newTerrainLatitude_textBox3.Text + "\r\n"
                                                    + SetupContent.terrainStudyAreaStr3 + addTerrain.Zmin.ToString() + "\r\n"
                                                    + SetupContent.terrainStudyAreaStr4 + addTerrain.Zmax.ToString() + "\r\n"
                                                    + SetupContent.terrainStudyAreaStr5 + "\r\n"
                                                    + addTerrain.Vertex1X + " " + addTerrain.Vertex1Y + " " + addTerrain.Vertex1Z + "\r\n"
                                                    + addTerrain.Vertex2X + " " + addTerrain.Vertex2Y + " " + addTerrain.Vertex2Z + "\r\n"
                                                    + addTerrain.Vertex3X + " " + addTerrain.Vertex3Y + " " + addTerrain.Vertex3Z + "\r\n"
                                                    + addTerrain.Vertex4X + " " + addTerrain.Vertex4Y + " " + addTerrain.Vertex4Z + "\r\n"
                                                    + SetupContent.terrainStudyAreaStr6 + "\r\n";
                        MainWindow.setupStr = MainWindow.setupStr.Insert(startPosiStudyArea, studyAreaStr);
                        //向全局字符串插入<feature>段
                        int    startPosiFeature = MainWindow.setupStr.IndexOf("end_<studyarea>") + 17;
                        string featureStr       = SetupContent.terrainFeatureFixedStr1 + "\r\n"
                                                  + SetupContent.terrainFeatureFixedStr2 + "0" + "\r\n"
                                                  + SetupContent.terrainFeatureFixedStr3 + "\r\n"
                                                  + SetupContent.terrainFeatureFixedStr4
                                                  + MainWindow.projectRealPath + "\\" + (string)newTerrainName_comboBox1.SelectedItem + "\r\n"
                                                  + SetupContent.terrainFeatureFixedStr5 + "\r\n";
                        MainWindow.setupStr = MainWindow.setupStr.Insert(startPosiFeature, featureStr);



                        string terFileName = t.Substring(t.LastIndexOf('\\') + 1, t.Length - 1 - t.LastIndexOf('\\'));
                        //将ter文件拷贝到工程目录下
                        FileCopyUI.FileCopy(addTerrain.path, MainWindow.projectRealPath + "\\" + terFileName);
                        FileCopyUI.FileCopy(addTerrain.path + ".terinfo", MainWindow.projectRealPath + "\\" + terFileName + ".terinfo");

                        string terainStr = FileOperation.ReadFile(MainWindow.nodeInfoFullPath);
                        if (terainStr.IndexOf(SetupContent.terrainIndeStr) != -1)
                        {
                            terainStr = terainStr.Remove(terainStr.IndexOf(SetupContent.terrainIndeStr), SetupContent.terrainIndeStr.Length + 2);
                            FileOperation.WriteFile(terainStr, MainWindow.nodeInfoFullPath, false);
                        }
                        //将工程树的节点信息写到.info文件中
                        FileOperation.WriteLineFile(SetupContent.terrainIndeStr + " " + terFileName, MainWindow.nodeInfoFullPath, true);
                        FileOperation.WriteFile(MainWindow.setupStr, MainWindow.mProjectFullName, false);
                        MainWindow.staticTreeView.Nodes[0].Nodes[0].Nodes[0].Nodes.Add(terFileName);
                    }
                }
            }
            this.Close();
        }
示例#8
0
        private void addTransmitterOk_button1_Click(object sender, EventArgs e)
        {
            client       = new ServiceReference1.Service1Client();
            matchAntenna = new ServiceReference1.Antenna();
            string matchAntennaName = null;

            if (MainWindow.mProjectFullName == null)
            {
                this.Close();
                return;
            }
            //判断添加辐射源之前是否添加了地形
            if (!ConditionIsAll(MainWindow.nodeInfoFullPath))
            {
                MessageBox.Show("请先添加地形之后再添加辐射源!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                MainWindow.IsReturnMidwayInNewProcess = true;
                return;
            }
            //判断工程波形中是否添加波形
            if (addTransmitterWaveformName_comboBox1.Items.Count > 0)
            {
                if (addTransmitterWaveformName_comboBox1.SelectedItem == null)
                {
                    MessageBox.Show("辐射源未设置波形", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    MainWindow.IsReturnMidwayInNewProcess = true;
                    return;
                }
            }
            else
            {
                MessageBox.Show("请先在工程中添加波形!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                MainWindow.IsReturnMidwayInNewProcess = true;
                return;
            }
            if (addTransmitterName_comboBox4.SelectedItem == null || addTransmitterCoordinateSystem_comboBox1.SelectedItem == null || addTransmitterLongitude_textBox2.Text == "" || addTransmitterLatitude_textBox3.Text == "" || addTransimtterReferencePlane_comboBox2.SelectedItem == null || addTransmitterInputPower_textBox11.Text == "" || addTransmitterAntennaName_textBox1.Text == "" || addTransmitterWaveformName_comboBox1.SelectedItem == null || addTransmitterAntennaRotateX_textBox7.Text == "" || addTransmitterAntennaRotateY_textBox6.Text == "" || addTransmitterAntennaRotateZ_textBox5.Text == "")
            {
                MessageBox.Show("窗口中有未设置的信息", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                MainWindow.IsReturnMidwayInNewProcess = true;
                return;
            }
            if (!BoudingLimition.IsScienceFigure(addTransmitterInputPower_textBox11.Text))
            {
                MessageBox.Show("发射功率值输入必须是实数", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                MainWindow.IsReturnMidwayInNewProcess = true;
                return;
            }
            if (double.Parse(addTransmitterInputPower_textBox11.Text) < 0.000)
            {
                MessageBox.Show("发射功率值需大于0.000", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                MainWindow.IsReturnMidwayInNewProcess = true;
                return;
            }
            if (!BoudingLimition.IsScienceFigure(addTransmitterAntennaRotateX_textBox7.Text))
            {
                MessageBox.Show("天线关于X轴旋转角度值输入必须是实数", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                MainWindow.IsReturnMidwayInNewProcess = true;
                return;
            }
            if (!BoudingLimition.IsScienceFigure(addTransmitterAntennaRotateY_textBox6.Text))
            {
                MessageBox.Show("天线关于Y轴旋转角度值输入必须是实数", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                MainWindow.IsReturnMidwayInNewProcess = true;
                return;
            }
            if (!BoudingLimition.IsScienceFigure(addTransmitterAntennaRotateZ_textBox5.Text))
            {
                MessageBox.Show("天线关于Z轴旋转角度值输入必须是实数", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                MainWindow.IsReturnMidwayInNewProcess = true;
                return;
            }
            if (BoudingLimition.RotationLimition(addTransmitterAntennaRotateX_textBox7))
            {
                MessageBox.Show("天线关于X轴旋转角度值需在0度至360度之间", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                MainWindow.IsReturnMidwayInNewProcess = true;
                return;
            }
            if (BoudingLimition.RotationLimition(addTransmitterAntennaRotateY_textBox6))
            {
                MessageBox.Show("天线关于Y轴旋转角度值需在0度至360度之间", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                MainWindow.IsReturnMidwayInNewProcess = true;
                return;
            }
            if (BoudingLimition.RotationLimition(addTransmitterAntennaRotateZ_textBox5))
            {
                MessageBox.Show("天线关于Z轴旋转角度值需在0度至360度之间", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                MainWindow.IsReturnMidwayInNewProcess = true;
                return;
            }
            //判断是否存在.tx文件
            if (File.Exists(MainWindow.projectRealPath + "\\" + MainWindow.onlyProjectName + ".tx"))
            {
                WaveformWriting transm = new WaveformWriting(FileOperation.ReadFile(MainWindow.nodeInfoFullPath));
                //注意 新建的辐射源个数不能超过1000
                string[] transmitterNames = new string[1000];
                //判断是否存在重名的辐射源
                transmitterNames = transm.waveformNames(SetupContent.transmitterIndeStr);
                if (transm.judge((string)addTransmitterName_comboBox4.SelectedItem, transmitterNames))
                {
                    MessageBox.Show("此辐射源已存在", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
            }

            //将数据库中与辐射源匹配的天线写入setupStr中
            try
            {
                matchAntenna = client.iGetAntenna(addTransmitterAntennaName_textBox1.Text);
                //与辐射源匹配的天线名称
                matchAntennaName = matchAntenna.Name + "_DB" + (string)addTransmitterName_comboBox4.SelectedItem;

                //准备好插入的内容
                string[] AntennaStr = new string[8];
                AntennaStr[0] = SetupContent.antennaStr1 + " " + matchAntennaName + "\r\n";
                AntennaStr[1] = matchAntenna.Type + "\r\n";
                AntennaStr[3] = "power_threshold " + matchAntenna.RecieveThrehold + "\r\n";
                AntennaStr[4] = "cable_loss " + matchAntenna.TransmissionLoss + "\r\n";
                AntennaStr[5] = "VSWR " + matchAntenna.VSWR + "\r\n";
                AntennaStr[6] = "temperature " + matchAntenna.Temperature + "\r\n";
                switch (matchAntenna.Type)
                {
                case "type HalfWaveDipole":
                {
                    AntennaStr[2] = "polarization " + matchAntenna.Polarization + "\r\n";
                    AntennaStr[7] = SetupContent.antennaStr2 + "\r\n" + SetupContent.antennaStr3 + "\r\n";

                    //将天线信息存储到.waveinfo文件中
                    string antennaInfoStr = SetupContent.antennaStr1 + " " + matchAntennaName + "\r\n"
                                            + Translate.KeyWordsDictionary_DB(matchAntenna.Type) + "\r\n"
                                            //+ (string)addTransmitterWaveformName_comboBox1.SelectedItem + "\r\n"
                                            + matchAntenna.MaxGain + "\r\n"
                                            + matchAntenna.Polarization + "\r\n"
                                            + matchAntenna.RecieveThrehold + "\r\n"
                                            + matchAntenna.TransmissionLoss + "\r\n"
                                            + matchAntenna.VSWR + "\r\n"
                                            + matchAntenna.Temperature + "\r\n"
                                            + "END" + SetupContent.antennaStr1 + " " + matchAntennaName + "\r\n";
                    FileOperation.WriteFile(antennaInfoStr, MainWindow.waveinfoFilePath, true);
                }
                break;

                case "type linear_monopole":
                {
                    AntennaStr[2] = "";
                    AntennaStr[7] = SetupContent.antennaStr2 + "\r\n" + "length " + matchAntenna.Length + "\r\n" + SetupContent.antennaStr3 + "\r\n";

                    //将单极天线的参数按相应的顺序记录到waveinfo文件中
                    string antennaInfoStr = SetupContent.antennaStr1 + " " + matchAntennaName + "\r\n"
                                            + Translate.KeyWordsDictionary_DB(matchAntenna.Type) + "\r\n"
                                            + (string)addTransmitterWaveformName_comboBox1.SelectedItem + "\r\n"
                                            + matchAntenna.Length + "\r\n"
                                            + matchAntenna.MaxGain + "\r\n"
                                            + matchAntenna.RecieveThrehold + "\r\n"
                                            + matchAntenna.TransmissionLoss + "\r\n"
                                            + matchAntenna.VSWR + "\r\n"
                                            + matchAntenna.Temperature + "\r\n"
                                            + "END" + SetupContent.antennaStr1 + " " + matchAntennaName + "\r\n";
                    FileOperation.WriteFile(antennaInfoStr, MainWindow.waveinfoFilePath, true);
                }
                break;

                case "type Helical":
                {
                    AntennaStr[2] = "polarization " + matchAntenna.Polarization + "\r\n";
                    AntennaStr[7] = SetupContent.antennaStr2 + "\r\n"
                                    + "radius " + matchAntenna.Radius + "\r\n"
                                    + "length " + matchAntenna.Length + "\r\n"
                                    + "pitch " + matchAntenna.Pitch + "\r\n"
                                    + SetupContent.antennaStr3 + "\r\n";

                    string antennaInfoStr = SetupContent.antennaStr1 + " " + matchAntennaName + "\r\n"
                                            + Translate.KeyWordsDictionary_DB(matchAntenna.Type) + "\r\n"
                                            + (string)addTransmitterWaveformName_comboBox1.SelectedItem + "\r\n"
                                            + matchAntenna.Polarization + "\r\n"
                                            + matchAntenna.MaxGain + "\r\n"
                                            + matchAntenna.Radius + "\r\n"
                                            + matchAntenna.Length + "\r\n"
                                            + matchAntenna.Pitch + "\r\n"
                                            + matchAntenna.RecieveThrehold + "\r\n"
                                            + matchAntenna.TransmissionLoss + "\r\n"
                                            + matchAntenna.VSWR + "\r\n"
                                            + matchAntenna.Temperature + "\r\n"
                                            + "END" + SetupContent.antennaStr1 + " " + matchAntennaName + "\r\n";
                    FileOperation.WriteFile(antennaInfoStr, MainWindow.waveinfoFilePath, true);
                }
                break;

                case "type ParabolicReflector":
                {
                    AntennaStr[2] = "polarization " + matchAntenna.Polarization + "\r\n";
                    AntennaStr[7] = SetupContent.antennaStr2 + "\r\n"
                                    + "radius " + matchAntenna.Radius + "\r\n"
                                    + "blockageradius " + matchAntenna.BlockageRadius + "\r\n"
                                    + "EFieldDistribution " + matchAntenna.ApertureDistribution + "\r\n"
                                    + "EdgeTaper " + matchAntenna.EdgeTeper + "\r\n"
                                    + SetupContent.antennaStr3 + "\r\n";
                    //将抛物线天线相应的参数按控件顺序记录到waveinfo文件中
                    string antennaInfoStr = SetupContent.antennaStr1 + " " + matchAntennaName + "\r\n"
                                            + Translate.KeyWordsDictionary_DB(matchAntenna.Type) + "\r\n"
                                            + (string)addTransmitterWaveformName_comboBox1.SelectedItem + "\r\n"
                                            + matchAntenna.Polarization + "\r\n"
                                            + matchAntenna.Radius + "\r\n"
                                            + matchAntenna.BlockageRadius + "\r\n"
                                            + matchAntenna.ApertureDistribution + "\r\n"
                                            + matchAntenna.EdgeTeper + "\r\n"
                                            + matchAntenna.RecieveThrehold + "\r\n"
                                            + matchAntenna.TransmissionLoss + "\r\n"
                                            + matchAntenna.VSWR + "\r\n"
                                            + matchAntenna.Temperature + "\r\n"
                                            + "END" + SetupContent.antennaStr1 + " " + matchAntennaName + "\r\n";
                    FileOperation.WriteFile(antennaInfoStr, MainWindow.waveinfoFilePath, true);
                }
                break;

                case "对数周期天线":
                {
                }
                break;

                default:
                    break;
                }
                WaveformWriting Annt = new WaveformWriting(MainWindow.setupStr);
                MainWindow.setupStr = Annt.InsertAntenna8(AntennaStr, (string)addTransmitterWaveformName_comboBox1.SelectedItem, SetupContent.antennaStr3, SetupContent.waveFormStr3);
                //将与辐射源匹配的天线添加到工程树子节点
                MainWindow.staticTreeView.Nodes[0].Nodes[0].Nodes[2].Nodes.Add(matchAntennaName);
                //将天线的信息存储到.setup.info文件中
                FileOperation.WriteLineFile(SetupContent.antennaIndeStr + " " + matchAntennaName, MainWindow.nodeInfoFullPath, true);
            }
            catch (System.TimeoutException ex)
            {
                MessageBox.Show(ex.Message);
                LogFileManager.ObjLog.fatal(ex.Message, ex);
                client.Abort();
            }
            catch (FaultException <WcfException> ex)
            {
                MessageBox.Show(ex.Detail.message);
                LogFileManager.ObjLog.fatal(ex.Message, ex);
                client.Abort();
            }
            catch (CommunicationException ex)
            {
                MessageBox.Show(ex.Message);
                LogFileManager.ObjLog.fatal(ex.Message, ex);
                client.Abort();
            }
            catch (Exception exm)
            {
                MessageBox.Show(exm.Message);
                LogFileManager.ObjLog.fatal(exm.Message, exm);
                client.Abort();
            }

            string transmitterCount = GetTransmitterNum(MainWindow.projectRealPath + "\\" + MainWindow.onlyProjectName + ".tx", SetupContent.transmitterStr2OfTr);
            string sourceStr        = FileOperation.ReadFile(MainWindow.waveinfoFilePath);

            string trFileStr = SetupContent.transmitterStr1OfTr + " " + (string)addTransmitterName_comboBox4.SelectedItem + "\r\n"
                               + SetupContent.transmitterStr2OfTr + transmitterCount + "\r\n"
                               + SetupContent.transmitterStr3OfTr + "\r\n" + SetupContent.transmitterStr4OfTr + "\r\n"
                               + SetupContent.transmitterStr5OfTr + "\r\n" + SetupContent.transmitterStr6OfTr + "\r\n"
                               + SetupContent.transmitterStr7OfTr + "\r\n" + SetupContent.transmitterStr8OfTr + "\r\n"
                               + SetupContent.transmitterStr9OfTr + "\r\n" + SetupContent.transmitterStr10OfTr + "\r\n"
                               + SetupContent.transmitterStr11OfTr + "\r\n"
                               + SetupContent.transmitterStr12OfTr + MainWindow.longitudeStr + "\r\n"
                               + SetupContent.transmitterStr13OfTr + MainWindow.latitudeStr + "\r\n"
                               + SetupContent.transmitterStr14OfTr + "\r\n"
                               + Translate.KeyWordsDictionary(addTransimtterReferencePlane_comboBox2) + "\r\n"
                               + SetupContent.transmitterStr15OfTr + "\r\n"
                               + SetupContent.transmitterStr16OfTr + "\r\n"
                               //+ SetupContent.transmitterStr17OfTr + "\r\n"
                               + GetAntennaStr(MainWindow.transInfoFullPath, matchAntennaName)
                               + SetupContent.transmitterStr18OfTr + addTransmitterAntennaRotateX_textBox7.Text + "\r\n"
                               + SetupContent.transmitterStr19OfTr + addTransmitterAntennaRotateY_textBox6.Text + "\r\n"
                               + SetupContent.transmitterStr20OfTr + addTransmitterAntennaRotateZ_textBox5.Text + "\r\n"
                               + SetupContent.transmitterStr21OfTr + addTransmitterInputPower_textBox11.Text + "\r\n"
                               + SetupContent.transmitterStr22OfTr + "\r\n"
                               + SetupContent.transmitterStr23OfTr + "\r\n"
                               + SetupContent.transmitterStr24OfTr + " "
                               + WaveformNodeOfConMenu.GetWaveformNumLine((string)addTransmitterWaveformName_comboBox1.SelectedItem, sourceStr) + "MHZ" + "\r\n";

            FileOperation.WriteFile(trFileStr, MainWindow.projectRealPath + "\\" + MainWindow.onlyProjectName + ".tx", true);
            //写到setup文件中
            string sourceStrOfTr = FileOperation.ReadFile(MainWindow.projectRealPath + "\\" + MainWindow.onlyProjectName + ".tx");
            //找出辐射源的个数
            int transmitCount = WaveformWriting.GetCountOfMatchStr("begin_<points>", sourceStrOfTr);

            //如果已经存在了transmitter块,则先删除
            if (MainWindow.setupStr.LastIndexOf("end_<transmitter>") != -1)
            {
                MainWindow.setupStr = MainWindow.setupStr.Remove(MainWindow.setupStr.IndexOf("begin_<transmitter>"), MainWindow.setupStr.IndexOf("end_<transmitter>") - MainWindow.setupStr.IndexOf("begin_<transmitter>") + 19);
            }
            //将.tx路径信息插入到全局字符串setupStr中
            int    insertSiteOfTr = MainWindow.setupStr.LastIndexOf("end_<feature>") + 15;//15是end_<feature>\r\n后的第一个字符
            string insertStr      = SetupContent.transmitterStr1Ofsetup + "\r\n" + SetupContent.transmitterStr2Ofsetup
                                    + MainWindow.projectRealPath + "\\" + MainWindow.onlyProjectName + ".tx" + "\r\n"
                                    + SetupContent.transmitterStr3Ofsetup + transmitCount.ToString() + "\r\n"
                                    + SetupContent.transmitterStr4Ofsetup + "\r\n";

            MainWindow.setupStr = MainWindow.setupStr.Insert(insertSiteOfTr, insertStr);
            FileOperation.WriteFile(MainWindow.setupStr, MainWindow.mProjectFullName, false);



            //向工程树中添加结点信息
            MainWindow.staticTreeView.Nodes[0].Nodes[0].Nodes[3].Nodes.Add((string)addTransmitterName_comboBox4.SelectedItem);
            //将辐射源的信息存储到.setup.info文件中
            FileOperation.WriteLineFile(SetupContent.transmitterIndeStr + " " + (string)addTransmitterName_comboBox4.SelectedItem, MainWindow.nodeInfoFullPath, true);
            //将辐射源和天线的匹配关系记录到.match文件中
            FileOperation.WriteLineFile(SetupContent.transmitterIndeStr + " " + (string)addTransmitterName_comboBox4.SelectedItem + "*" + matchAntennaName, MainWindow.relationOfAntAndWavePath, true);

            //将辐射源的信息存储到.waveinfo文件中
            string transmitterInfoStr = SetupContent.transmitterStr1Ofsetup + " " + (string)addTransmitterName_comboBox4.SelectedItem + "\r\n"
                                        + addTransimtterReferencePlane_comboBox2.Text + "\r\n"
                                        + addTransmitterInputPower_textBox11.Text + "\r\n"
                                        + matchAntennaName + "\r\n"
                                        + (string)addTransmitterWaveformName_comboBox1.SelectedItem + "\r\n"
                                        + addTransmitterAntennaRotateX_textBox7.Text + "\r\n"
                                        + addTransmitterAntennaRotateY_textBox6.Text + "\r\n"
                                        + addTransmitterAntennaRotateZ_textBox5.Text + "\r\n"
                                        + "END" + SetupContent.transmitterStr1Ofsetup + " " + (string)addTransmitterName_comboBox4.SelectedItem + "\r\n";

            FileOperation.WriteFile(transmitterInfoStr, MainWindow.waveinfoFilePath, true);
            if (MainWindow.creatSuccMesDisp)
            {
                MessageBox.Show("辐射源" + (string)addTransmitterName_comboBox4.SelectedItem + "创建成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
示例#9
0
        private void newReceiverOk_button1_Click(object sender, EventArgs e)
        {
            if (!File.Exists(MainWindow.mProjectFullName))
            {
                this.Close();
                return;
            }
            if (!NewTransmitterWindow.ConditionIsAll(MainWindow.nodeInfoFullPath))
            {
                MessageBox.Show("请先创建天线和添加波形之后再新建接收机!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                MainWindow.IsReturnMidwayInNewProcess = true;
                this.Close();
                return;
            }
            if (newRceiverType_comboBox1.SelectedItem == null)
            {
                MessageBox.Show("窗口中有未设置的信息,请您设置完整", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                MainWindow.IsReturnMidwayInNewProcess = true;
                return;
            }
            else
            {
                string newRceiverType = null;
                newRceiverType = (string)(newRceiverType_comboBox1.SelectedItem);
                switch (newRceiverType)
                {
                case "点状<Points>":
                {
                    if (newReceiverName_textBox2.Text == "" || newReceiverlongitude_textBox1.Text == "" || newReceiverLatitude_textBox3.Text == "" || newReceiverReferencePlane_comboBox2.SelectedItem == null || newReceiverAntennaName_comboBox3.SelectedItem == null || newReceiverAntennaHeight_textBox1.Text == "" || newReceiverAntennaRotationX_textBox4.Text == "" || newReceiverAntennaRotationY_textBox6.Text == "" || newReceiverAntennaRotationXZ_textBox5.Text == "")
                    {
                        MessageBox.Show("窗口中有未设置的信息,请您设置完整", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        MainWindow.IsReturnMidwayInNewProcess = true;
                        return;
                    }
                    if (!BoudingLimition.IsScienceFigure(newReceiverAntennaRotationX_textBox4.Text))
                    {
                        MessageBox.Show("天线关于X轴旋转角度值输入必须是实数", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        MainWindow.IsReturnMidwayInNewProcess = true;
                        return;
                    }
                    if (!BoudingLimition.IsScienceFigure(newReceiverAntennaRotationY_textBox6.Text))
                    {
                        MessageBox.Show("天线关于Y轴旋转角度值输入必须是实数", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        MainWindow.IsReturnMidwayInNewProcess = true;
                        return;
                    }
                    if (!BoudingLimition.IsScienceFigure(newReceiverAntennaRotationXZ_textBox5.Text))
                    {
                        MessageBox.Show("天线关于Z轴旋转角度值输入必须是实数", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        MainWindow.IsReturnMidwayInNewProcess = true;
                        return;
                    }
                    if (BoudingLimition.RotationLimition(newReceiverAntennaRotationX_textBox4))
                    {
                        MessageBox.Show("天线关于X轴旋转角度值需在0度至360度之间", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        MainWindow.IsReturnMidwayInNewProcess = true;
                        return;
                    }
                    if (BoudingLimition.RotationLimition(newReceiverAntennaRotationY_textBox6))
                    {
                        MessageBox.Show("天线关于Y轴旋转角度值需在0度至360度之间", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        MainWindow.IsReturnMidwayInNewProcess = true;
                        return;
                    }
                    if (BoudingLimition.RotationLimition(newReceiverAntennaRotationXZ_textBox5))
                    {
                        MessageBox.Show("天线关于Z轴旋转角度值需在0度至360度之间", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        MainWindow.IsReturnMidwayInNewProcess = true;
                        return;
                    }
                }
                break;

                case "区域状<XYgrid>":
                {
                    if (newReceiverName_textBox2.Text == "" || newReceiverlongitude_textBox1.Text == "" || newReceiverLatitude_textBox3.Text == "" || newReceiverReferencePlane_comboBox2.SelectedItem == null || newReceiverAntennaName_comboBox3.SelectedItem == null || newReceiverAntennaHeight_textBox1.Text == "" || newReceiverSpace_textBox1.Text == "" || newReceiverAntennaRotationX_textBox4.Text == "" || newReceiverAntennaRotationY_textBox6.Text == "" || newReceiverAntennaRotationXZ_textBox5.Text == "")
                    {
                        MessageBox.Show("窗口中有未设置的信息,请您设置完整", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        MainWindow.IsReturnMidwayInNewProcess = true;
                        return;
                    }

                    if (!BoudingLimition.IsScienceFigure(newReceiverAntennaHeight_textBox1.Text))
                    {
                        MessageBox.Show("天线位置关于Z轴旋转角度值输入必须是实数", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        MainWindow.IsReturnMidwayInNewProcess = true;
                        return;
                    }
                    if (BoudingLimition.RotationLimition(newReceiverAntennaHeight_textBox1))
                    {
                        MessageBox.Show("天线位置关于Z轴旋转角度值需在0度至360度之间", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        MainWindow.IsReturnMidwayInNewProcess = true;
                        return;
                    }
                    if (!BoudingLimition.IsScienceFigure(newReceiverSpace_textBox1.Text))
                    {
                        MessageBox.Show("接收机间隔值输入必须是实数", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        MainWindow.IsReturnMidwayInNewProcess = true;
                        return;
                    }
                    if (double.Parse(newReceiverSpace_textBox1.Text) < 0.000)
                    {
                        MessageBox.Show("接收机间隔值需大于0.000", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        MainWindow.IsReturnMidwayInNewProcess = true;
                        return;
                    }
                    if (!BoudingLimition.IsScienceFigure(newReceiverAntennaRotationX_textBox4.Text))
                    {
                        MessageBox.Show("天线关于X轴旋转角度值输入必须是实数", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        MainWindow.IsReturnMidwayInNewProcess = true;
                        return;
                    }
                    if (!BoudingLimition.IsScienceFigure(newReceiverAntennaRotationY_textBox6.Text))
                    {
                        MessageBox.Show("天线关于Y轴旋转角度值输入必须是实数", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        MainWindow.IsReturnMidwayInNewProcess = true;
                        return;
                    }
                    if (!BoudingLimition.IsScienceFigure(newReceiverAntennaRotationXZ_textBox5.Text))
                    {
                        MessageBox.Show("天线关于Z轴旋转角度值输入必须是实数", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        MainWindow.IsReturnMidwayInNewProcess = true;
                        return;
                    }
                    if (BoudingLimition.RotationLimition(newReceiverAntennaRotationX_textBox4))
                    {
                        MessageBox.Show("天线关于X轴旋转角度值需在0度至360度之间", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        MainWindow.IsReturnMidwayInNewProcess = true;
                        return;
                    }
                    if (BoudingLimition.RotationLimition(newReceiverAntennaRotationY_textBox6))
                    {
                        MessageBox.Show("天线关于Y轴旋转角度值需在0度至360度之间", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        MainWindow.IsReturnMidwayInNewProcess = true;
                        return;
                    }
                    if (BoudingLimition.RotationLimition(newReceiverAntennaRotationXZ_textBox5))
                    {
                        MessageBox.Show("天线关于Z轴旋转角度值需在0度至360度之间", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        MainWindow.IsReturnMidwayInNewProcess = true;
                        return;
                    }
                }
                break;

                default:
                    break;
                }
            }
            //先判断是否存在.rx文件
            if (File.Exists(MainWindow.projectRealPath + "\\" + MainWindow.onlyProjectName + ".rx"))
            {
                WaveformWriting receiverm = new WaveformWriting(FileOperation.ReadFile(MainWindow.nodeInfoFullPath));
                //注意 新建的天线个数不能超过1000
                string[] pointReceiverNames = new string[2000];
                string[] gridReceiverNames  = new string[2000];
                //判断是否存在重名的接收机
                pointReceiverNames = receiverm.waveformNames(SetupContent.transmitterStr1OfTr);
                gridReceiverNames  = receiverm.waveformNames(SetupContent.gridReceiverOfRxStr0);
                if (receiverm.judge(newReceiverName_textBox2.Text, pointReceiverNames) || receiverm.judge(newReceiverName_textBox2.Text, gridReceiverNames))
                {
                    MessageBox.Show("此接收机已存在, 请您换个接收机名称!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    MainWindow.IsReturnMidwayInNewProcess = true;
                    return;
                }
            }
            string receiverNum = NewTransmitterWindow.GetTransmitterNum(MainWindow.projectRealPath + "\\" + MainWindow.onlyProjectName + ".rx", SetupContent.gridReceiverOfRxStr1);

            string rxFileStr = null;
            string hasSpace  = "";
            string startStr  = null;

            if (((string)newRceiverType_comboBox1.SelectedItem).Equals("区域状<XYgrid>"))
            {
                rxFileStr = Translate.KeyWordsDictionary(newRceiverType_comboBox1) + newReceiverName_textBox2.Text + "\r\n"
                            + SetupContent.gridReceiverOfRxStr1 + receiverNum + "\r\n"
                            + SetupContent.gridReceiverOfRxStr2 + "\r\n"
                            + SetupContent.gridReceiverOfRxStr3 + MainWindow.longitudeStr + "\r\n"
                            + SetupContent.gridReceiverOfRxStr4 + MainWindow.latitudeStr + "\r\n"
                            + SetupContent.gridReceiverOfRxStr5 + "\r\n"
                            + Translate.KeyWordsDictionary(newReceiverReferencePlane_comboBox2) + "\r\n"
                            + SetupContent.gridReceiverOfRxStr6 + "\r\n"
                            + SetupContent.gridReceiverOfRxStr7 + "\r\n"
                            + SetupContent.gridReceiverOfRxStr8 + newReceiverSpace_textBox1.Text + "\r\n"
                            + SetupContent.gridReceiverOfRxStr9 + "\r\n"
                            + SetupContent.gridpointReceiverOfRxStr0 + newReceiverAntennaHeight_textBox1.Text + "\r\n"
                            + NewTransmitterWindow.GetAntennaStr(MainWindow.transInfoFullPath, newReceiverAntennaName_comboBox3)
                            + SetupContent.gridpointReceiverOfRxStr1 + newReceiverAntennaRotationX_textBox4.Text + "\r\n"
                            + SetupContent.gridpointReceiverOfRxStr2 + newReceiverAntennaRotationY_textBox6.Text + "\r\n"
                            + SetupContent.gridpointReceiverOfRxStr3 + newReceiverAntennaRotationXZ_textBox5.Text + "\r\n"
                            + SetupContent.gridReceiverOfRxStr10 + "\r\n";
                MainWindow.staticTreeView.Nodes[0].Nodes[0].Nodes[4].Nodes[1].Nodes.Add(newReceiverName_textBox2.Text);
                FileOperation.WriteLineFile(SetupContent.gridReceiverIndeStr + " " + newReceiverName_textBox2.Text, MainWindow.nodeInfoFullPath, true);

                hasSpace = newReceiverSpace_textBox1.Text;
                startStr = SetupContent.gridReceiverOfRxStr0 + " " + newReceiverName_textBox2.Text + "\r\n";
                FileOperation.WriteLineFile(SetupContent.gridReceiverOfRxStr0 + " " + newReceiverName_textBox2.Text + "#" + newReceiverAntennaName_comboBox3.SelectedItem, MainWindow.relationOfAntAndWavePath, true);
            }
            else
            {
                rxFileStr = Translate.KeyWordsDictionary(newRceiverType_comboBox1) + newReceiverName_textBox2.Text + "\r\n"
                            + SetupContent.pointReceiverOfRxStr1 + receiverNum + "\r\n"
                            + SetupContent.pointReceiverOfRxStr2 + "\r\n"
                            + SetupContent.pointReceiverOfRxStr3 + "\r\n"
                            + SetupContent.gridReceiverOfRxStr3 + MainWindow.longitudeStr + "\r\n"
                            + SetupContent.gridReceiverOfRxStr4 + MainWindow.latitudeStr + "\r\n"
                            + SetupContent.pointReceiverOfRxStr4 + "\r\n"
                            + Translate.KeyWordsDictionary(newReceiverReferencePlane_comboBox2) + "\r\n"
                            + SetupContent.pointReceiverOfRxStr5 + "\r\n"
                            + SetupContent.gridpointReceiverOfRxStr0 + newReceiverAntennaHeight_textBox1.Text + "\r\n"
                            + NewTransmitterWindow.GetAntennaStr(MainWindow.transInfoFullPath, newReceiverAntennaName_comboBox3)
                            + SetupContent.gridpointReceiverOfRxStr1 + newReceiverAntennaRotationX_textBox4.Text + "\r\n"
                            + SetupContent.gridpointReceiverOfRxStr2 + newReceiverAntennaRotationY_textBox6.Text + "\r\n"
                            + SetupContent.gridpointReceiverOfRxStr3 + newReceiverAntennaRotationXZ_textBox5.Text + "\r\n"
                            + SetupContent.pointReceiverOfRxStr6 + "\r\n";
                MainWindow.staticTreeView.Nodes[0].Nodes[0].Nodes[4].Nodes[0].Nodes.Add(newReceiverName_textBox2.Text);
                FileOperation.WriteLineFile(SetupContent.pointReceiverIndeStr + " " + newReceiverName_textBox2.Text, MainWindow.nodeInfoFullPath, true);

                FileOperation.WriteLineFile(SetupContent.transmitterStr1OfTr + " " + newReceiverName_textBox2.Text + "#" + newReceiverAntennaName_comboBox3.SelectedItem, MainWindow.relationOfAntAndWavePath, true);

                startStr = SetupContent.pointReceiverOfRxStr0 + " " + newReceiverName_textBox2.Text + "\r\n";
            }

            string rxInfoStr = startStr
                               + newRceiverType_comboBox1.Text + "\r\n"
                               + newReceiverReferencePlane_comboBox2.Text + "\r\n"
                               + newReceiverAntennaName_comboBox3.Text + "\r\n"
                               + newReceiverAntennaHeight_textBox1.Text + "\r\n"
                               //+ newReceiverSpace_textBox1.Text + "\r\n"
                               + hasSpace + "\r\n"
                               + newReceiverAntennaRotationX_textBox4.Text + "\r\n"
                               + newReceiverAntennaRotationY_textBox6.Text + "\r\n"
                               + newReceiverAntennaRotationXZ_textBox5.Text + "\r\n"
                               + "END" + startStr;

            FileOperation.WriteFile(rxInfoStr, MainWindow.waveinfoFilePath, true);

            //FileOperation.WriteFile(SetupContent.receiverOfSetupStr0 + " " + newReceiverName_textBox2.Text + "#" + newReceiverAntennaName_comboBox3.SelectedItem+"\r\n" , MainWindow.relationOfAntAndWavePath, true);

            FileOperation.WriteFile(rxFileStr, MainWindow.projectRealPath + "\\" + MainWindow.onlyProjectName + ".rx", true);
            //写到setup文件中
            string sourceStrOfRx = FileOperation.ReadFile(MainWindow.projectRealPath + "\\" + MainWindow.onlyProjectName + ".rx");
            //找出天线的个数
            int receiverCount = WaveformWriting.GetCountOfMatchStr("begin_<grid>", sourceStrOfRx) + WaveformWriting.GetCountOfMatchStr("begin_<points>", sourceStrOfRx) - 1;

            //如果已经存在了receiverr块,则先删除
            if (MainWindow.setupStr.LastIndexOf("end_<receiver>") != -1)
            {
                MainWindow.setupStr = MainWindow.setupStr.Remove(MainWindow.setupStr.IndexOf("begin_<receiver>"), MainWindow.setupStr.IndexOf("end_<receiver>") - MainWindow.setupStr.IndexOf("begin_<receiver>") + 16);
            }

            int insertSiteOfRec = 0;

            if (MainWindow.setupStr.LastIndexOf("end_<transmitter>") != -1)
            {
                insertSiteOfRec = MainWindow.setupStr.LastIndexOf("end_<transmitter>") + 2 + "end_<transmitter>".Length;
            }
            else
            {
                insertSiteOfRec = MainWindow.setupStr.LastIndexOf("end_<feature>") + "end_<feature>".Length + 2;
            }
            string insertStr = SetupContent.receiverOfSetupStr0 + "\r\n"
                               + SetupContent.receiverOfSetupStr1 + MainWindow.projectRealPath + "\\" + MainWindow.onlyProjectName + ".rx" + "\r\n"
                               + SetupContent.receiverOfSetupStr2 + receiverCount.ToString() + "\r\n"
                               + SetupContent.receiverOfSetupStr3 + "\r\n";

            MainWindow.setupStr = MainWindow.setupStr.Insert(insertSiteOfRec, insertStr);
            FileOperation.WriteFile(MainWindow.setupStr, MainWindow.mProjectFullName, false);
            if (MainWindow.creatSuccMesDisp)
            {
                MessageBox.Show("\"" + newReceiverName_textBox2.Text + "\"接收机创建成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            //MessageBox.Show("对接收机" + newReceiverName_textBox2.Text + "操作成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }