Example #1
0
        /// <summary>
        /// 添加寄存器的按钮点击事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void addRegButton_Click(object sender, EventArgs e)
        {
            RegInf newRegInf = new RegInf();

            MakeNewRegInfForm(newRegInf, "newReg" + regInfCount.ToString());
            regInfSet.Add(newRegInf);
            newRegInf.Show();
        }
Example #2
0
 /// <summary>
 /// 创建新的regInf显示控件,并且排版
 /// </summary>
 /// <param name="newRegInf"></param>
 /// <param name="regInfName"></param>
 private void MakeNewRegInfForm(RegInf newRegInf, string regInfName)
 {
     this.regInfShowPanel.Controls.Add(newRegInf);
     if (regInfCount == 0)
     {
         newRegInf.Location = new System.Drawing.Point(0, 0);
     }
     else
     {
         newRegInf.Location = new System.Drawing.Point(0, regInfSet[regInfCount - 1].Location.Y + 640);  //640是一个regInf的高度,其实也可以直接读取,但是没必要
     }
     newRegInf.Name = regInfName;
     regInfCount++;
 }
Example #3
0
        /// <summary>
        /// 读取,分析这个设备信息标签化文本,不做解释了,直接运行看看结果就知道了
        /// </summary>
        /// <param name="fileContent"></param>
        public void ReadFile_DevInf(string fileContent)
        {
            string devInfStr;
            string regInfSetStr;

            int regInfIndex = 0;

            regInfIndex = fileContent.IndexOf("[regInf]");
            string[] regInfStrSet;

            if (regInfIndex == -1)
            {
                regInfStrSet = fileContent.Split('\n');

                devInfStr = GetValueInFileString(regInfStrSet[0]);
                multipleDevCheckBox.Checked = (devInfStr == "True");

                if (multipleDevCheckBox.Checked)
                {
                    baseAddrNameTextBox.Enabled         = false;
                    baseAddrNumTextBox.Enabled          = false;
                    configSameDevBaseAddrButton.Enabled = true;
                }
                else
                {
                    baseAddrNameTextBox.Enabled         = true;
                    baseAddrNumTextBox.Enabled          = true;
                    configSameDevBaseAddrButton.Enabled = false;
                }

                devInfStr = GetValueInFileString(regInfStrSet[1]);
                baseAddrNameTextBox.Text = (devInfStr == "%" ? "" : devInfStr);

                devInfStr = GetValueInFileString(regInfStrSet[2]);
                baseAddrNumTextBox.Text = (devInfStr == "%" ? "" : devInfStr);

                if (multipleDevCheckBox.Checked)
                {
                    sameDevBaseAddrTable.ReadFile_SameDevBaseAddrTable(regInfStrSet);
                }
                return;
            }

            devInfStr    = fileContent.Substring(0, regInfIndex - 2);
            regInfStrSet = devInfStr.Split('\n');

            devInfStr = GetValueInFileString(regInfStrSet[0]);
            multipleDevCheckBox.Checked = (devInfStr == "True");

            if (multipleDevCheckBox.Checked)
            {
                baseAddrNameTextBox.Enabled         = false;
                baseAddrNumTextBox.Enabled          = false;
                configSameDevBaseAddrButton.Enabled = true;
            }
            else
            {
                baseAddrNameTextBox.Enabled         = true;
                baseAddrNumTextBox.Enabled          = true;
                configSameDevBaseAddrButton.Enabled = false;
            }

            devInfStr = GetValueInFileString(regInfStrSet[1]);
            baseAddrNameTextBox.Text = (devInfStr == "%" ? "" : devInfStr);

            devInfStr = GetValueInFileString(regInfStrSet[2]);
            baseAddrNumTextBox.Text = (devInfStr == "%" ? "" : devInfStr);

            if (multipleDevCheckBox.Checked)
            {
                sameDevBaseAddrTable.ReadFile_SameDevBaseAddrTable(regInfStrSet);
            }

            regInfSetStr = fileContent.Substring(regInfIndex);

            for (int i = 0; i < regInfSet.Count; i++)
            {
                regInfSet[i].Hide();
                regInfSet[i].Dispose();
            }
            regInfSet.Clear();
            int regNameLabelStartIndex = 0;
            int regNameLabelEndIndex   = regInfSetStr.IndexOf("[#regInf]");

            while (true)
            {
                RegInf newRegInf = new RegInf();
                MakeNewRegInfForm(newRegInf, "newReg" + regInfSet.Count);
                newRegInf.ReadFile_RegInf(regInfSetStr.Substring(regNameLabelStartIndex + 10, regNameLabelEndIndex - regNameLabelStartIndex - 2 - 10));

                regNameLabelStartIndex = regInfSetStr.IndexOf("[regInf]", regNameLabelEndIndex + 2);
                regInfSet.Add(newRegInf);

                if (regNameLabelStartIndex == -1)
                {
                    break;
                }
                regNameLabelEndIndex = regInfSetStr.IndexOf("[#regInf]", regNameLabelStartIndex);
            }
        }