Ejemplo n.º 1
0
        public void Load(string FileName)
        {
            this.FileName = FileName;
            using (StreamReader sr = new StreamReader(FileName))
            {
                sr.ReadLine();
                int noofsamples = int.Parse(sr.ReadLine().Trim());
                int noofpars    = int.Parse(sr.ReadLine().Trim());
                sr.ReadLine();
                List <double[]> data = new List <double[]>();

                for (int i = 0; i < noofpars; i++)
                {
                    data.Add(new double[noofsamples]);
                }

                for (int i = 0; i < noofsamples; i++)
                {
                    var splits = sr.ReadLine().Split(new string[] { "\t" }, StringSplitOptions.None);
                    for (int j = 0; j < noofpars; j++)
                    {
                        data[j][i] = double.Parse(splits[j]);
                    }
                }

                int k = 0;
                while (!sr.EndOfStream && sr.ReadLine().ToLower() != "Default Truncations:".ToLower())
                {
                    ;
                }

                if (!sr.EndOfStream)
                {
                    sr.ReadLine();
                    sr.ReadLine();
                    sr.ReadLine();

                    for (int i = 0; i < noofpars; i++)
                    {
                        sr.ReadLine();
                        CalibrationParameter par = new CalibrationParameter();
                        par.ShortName = sr.ReadLine().Trim();
                        Samples.Add(par, data[i]);
                        sr.ReadLine();
                        sr.ReadLine();
                        sr.ReadLine();
                    }
                }
            }
        }
Ejemplo n.º 2
0
        private void Load()
        {
            int noOfParameters;

            using (StreamReader sr = new StreamReader(FileName))
            {
                Upper.AppendLine(sr.ReadLine());
                Upper.AppendLine(sr.ReadLine());
                Upper.AppendLine(sr.ReadLine());
                string s = sr.ReadLine();
                Upper.AppendLine(s);
                noOfParameters = int.Parse(s.Trim().Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries)[0]);

                while ((s = sr.ReadLine()) != "* parameter data")
                {
                    Upper.AppendLine(s);
                }

                Upper.AppendLine(s);

                for (int i = 0; i < noOfParameters; i++)
                {
                    string[]             splitted = sr.ReadLine().Split(new string[] { "\t" }, StringSplitOptions.None);
                    CalibrationParameter cp       = new CalibrationParameter();
                    cp.ShortName = splitted[0];

                    ParameterType p;
                    if (Enum.TryParse <ParameterType>(splitted[1], true, out p))
                    {
                        cp.ParType = p;
                    }
                    cp.ParChgLim    = splitted[2];
                    cp.CurrentValue = double.Parse(splitted[3]);
                    cp.MinValue     = double.Parse(splitted[4]);
                    cp.MaxValue     = double.Parse(splitted[5]);

                    var g = Groups.FirstOrDefault(var => var.Name.ToLower() == splitted[6].ToLower());
                    if (g == null)
                    {
                        g      = new ParameterGroup();
                        g.Name = splitted[6];
                        Groups.Add(g);
                    }
                    cp.Group = g;

                    cp.Scale  = double.Parse(splitted[7]);
                    cp.Offset = double.Parse(splitted[8]);
                    cp.Dercom = double.Parse(splitted[9]);
                    Parameters.Add(cp);
                }

                for (int i = 0; i < Parameters.Count(var => var.ParType == ParameterType.tied); i++)
                {
                    string[] splitted = sr.ReadLine().Split(new string[] { " ", "\t" }, StringSplitOptions.None);
                    var      cp       = Parameters.Single(var => var.ShortName == splitted[0]);
                    cp.TiedTo = Parameters.Single(var => var.ShortName == splitted[1]);
                }

                Lower.Append(sr.ReadToEnd());
            }
        }