コード例 #1
0
ファイル: PultModel.cs プロジェクト: atikbif/Relkon6
        /// <summary>
        /// Считываетзначения переменных заводских установок из файла пультов версии 3.3
        /// </summary>
        /// <param name="FileName">Имя файла пультов</param>
        //public static List<ControllerEmbeddedVar> GetEmbeddedVarsFromFpr(string FileName)
        //{
        //    ControllerVarCollection vars = new ControllerVarCollection();
        //    using (StreamReader reader = new StreamReader(FileName, Encoding.Default))
        //    {
        //        for (int i = 0; i < 4; i++)
        //            reader.ReadLine();
        //        AT89C51ED2Solution sln = new AT89C51ED2Solution();
        //        vars.EmbeddedVars.AddRange(sln.GetEmbeddedVarsList());
        //        int K = reader.ReadLine() == "1" ? 0 : 3; // K52 - 16 переменных, K51ED2 - 64; "1" - K51ED2
        //        for (int i = K; i < 4; i++)
        //        {
        //            string prefix = ((char)(((byte)'W') + i)).ToString();
        //            for (int j = 0; j < 16; j++)
        //            {
        //                string s = reader.ReadLine();
        //                vars.GetEmbeddedVar(prefix + j).Value = (s.Contains("h") || s.Contains("H")) ? AppliedMath.HexToDec(s) : int.Parse(s);
        //            }
        //        }
        //    }
        //    return vars.EmbeddedVars;
        //}
        /// <summary>
        /// Устанваливает специальные параметры пульта из файла пультов версии 3.3
        /// </summary>
        /// <param name="FileName">Имя файла пультов</param>
        //public static List<ControllerEmbeddedVar> GetEmbeddedVarsFromPlt37(string FileName)
        //{
        //    ControllerVarCollection vars = new ControllerVarCollection();
        //    AT89C51ED2Solution sln = new AT89C51ED2Solution(); // создается только для получения списка переменных заводских установок; м.б. и MB90F347Solution, т.к. эти списки у них совпадают
        //    vars.EmbeddedVars.AddRange(sln.GetEmbeddedVarsList()); //
        //    XPathDocument xpDoc = new XPathDocument(FileName);
        //    XPathNavigator xpNav = ((IXPathNavigable)xpDoc).CreateNavigator();
        //    XPathNodeIterator xpFactory = xpNav.Select("/fpultProject/factory");
        //    while (xpFactory.MoveNext())
        //    {
        //        int idx = int.Parse(xpFactory.Current.GetAttribute("index", ""));
        //        string prefix = ((char)(((byte)'W') + idx)).ToString();
        //        XPathNodeIterator xpValues = xpFactory.Current.SelectChildren("value", "");
        //        int i = 0;
        //        while (xpValues.MoveNext())
        //        {
        //            vars.GetEmbeddedVar(prefix + i++).Value = (xpValues.Current.Value.Contains("h") || xpValues.Current.Value.Contains("H")) ? AppliedMath.HexToDec(xpValues.Current.Value) : int.Parse(xpValues.Current.Value);
        //        }
        //    }
        //    xpFactory = xpNav.Select("/fpultProject/EEVars");
        //    while (xpFactory.MoveNext())
        //    {
        //        XPathNodeIterator xpValues = xpFactory.Current.SelectChildren("ee", "");
        //        int i = 0;
        //        while (xpValues.MoveNext())
        //        {
        //            vars.GetEmbeddedVar("EE" + i++).Value = (xpValues.Current.Value.Contains("h") || xpValues.Current.Value.Contains("H")) ? AppliedMath.HexToDec(xpValues.Current.Value) : int.Parse(xpValues.Current.Value);
        //        }
        //    }
        //    return vars.EmbeddedVars;
        //}
        /// <summary>
        /// Заменяет в виде маску переменной заводских установок ее значением
        /// </summary>
        private static void ConvertViewTextForEmbeddedVars(View view, List <ControllerEmbeddedVar> EmbeddedVars)
        {
            ControllerVarCollection vars = new ControllerVarCollection();

            vars.EmbeddedVars.AddRange(EmbeddedVars);
            foreach (PultVar var in view.Vars)
            {
                ControllerEmbeddedVar evar = vars.GetEmbeddedVar(var.Name);
                if (evar != null)
                {
                    if (evar.Value.ToString().Length > var.Mask.Replace(".", "").Replace(",", "").Length)
                    {
                        return;
                    }
                    string evalue = evar.Value.ToString();
                    string mask   = "";
                    for (int i = 0, j = 0; i < var.Mask.Length; i++, j++)
                    {
                        if (var.Mask[var.Mask.Length - i - 1] == '.' || var.Mask[var.Mask.Length - i - 1] == ',')
                        {
                            mask = var.Mask[var.Mask.Length - i - 1] + mask;
                            j--;
                        }
                        else
                        {
                            mask = ((evalue.Length - j - 1 >= 0) ? evalue[evalue.Length - j - 1] : '0') + mask;
                        }
                    }
                    mask      = Utils.AddChars('0', mask, var.Mask.Length);
                    var.Mask  = mask;
                    view.Text = view.Text.Remove(var.Position, var.Mask.Length).Insert(var.Position, var.Mask);
                }
            }
        }
コード例 #2
0
        /// <summary>
        /// ¬озвращает DataTable, который отображает указанную переменную
        /// </summary>
        private DataTable GetVarDataTable(ControllerEmbeddedVar var)
        {
            DataTable res = null;

            if (var.Name.Contains("i"))
            {
                res = this.tEEDoubleByte;
            }
            else if (var.Name.Contains("l"))
            {
                res = this.tEETetraByte;
            }
            else
            {
                res = this.tEESingleByte;
            }
            return(res);
        }
コード例 #3
0
        /// <summary>
        /// ¬озвращает позицию (строка, столбец) в DataTable, в которой
        /// выводитс¤ указанна¤ переменна¤
        /// </summary>
        private Point GetVarTableLocation(ControllerEmbeddedVar var)
        {
            Point res = new Point();

            if (var.Name[0] != 'E')
            {
                res.X = (byte)var.Name[0] - (byte)'W';
                if (var.Name.Contains("i"))
                {
                    res.Y = this.solution.Vars.EmbeddedVars.GetEmbeddedVarIndex(var.Name) / 2 + 1;
                }
                else if (var.Name.Contains("l"))
                {
                    res.Y = this.solution.Vars.EmbeddedVars.GetEmbeddedVarIndex(var.Name) / 4 + 1;
                }
                else
                {
                    res.Y = this.solution.Vars.EmbeddedVars.GetEmbeddedVarIndex(var.Name) + 1;
                }
            }
            else
            {
                res.X = 0;
                if (var.Name.Contains("i"))
                {
                    res.Y = this.solution.Vars.EmbeddedVars.GetEmbeddedVarIndex(var.Name) / 2;
                }
                else if (var.Name.Contains("l"))
                {
                    res.Y = this.solution.Vars.EmbeddedVars.GetEmbeddedVarIndex(var.Name) / 4;
                }
                else
                {
                    res.Y = this.solution.Vars.EmbeddedVars.GetEmbeddedVarIndex(var.Name);
                }
            }
            return(res);
        }