Beispiel #1
0
        public bool LoadMPT(Rastr rst, string mptpath, Dictionary <string, DataTable> DTables)
        {
            Cursor.Current = Cursors.WaitCursor;

            try
            {
                rst.Load(ASTRALib.RG_KOD.RG_REPL, mptpath, "");
            }
            catch (Exception Err)
            {
                Cursor.Current = Cursors.Default;
                MessageBox.Show("Не удалось загрузить файл мегаточки " + mptpath + "\r\n" + Err.Message);
                return(false);
            }

            rst.OutZero = 1;

            RastrRetCode retcode = rst.CheckMegapoint();

            if (retcode != RastrRetCode.AST_OK)
            {
                Cursor.Current = Cursors.Default;
                MessageBox.Show("Мегаточка не загружена");
                return(false);
            }
            FillMpt(rst, DTables); // DTABLES формируется при распарсивании xml
            return(true);
        }
Beispiel #2
0
        public void FillMpt(Rastr rst, Dictionary <string, DataTable> DTables)
        {
            MTables.Clear();
            foreach (KeyValuePair <string, DataTable> kvp in DTables)
            {
                DataTable newdt = kvp.Value.Copy();
                MTables.Add(kvp.Key, newdt);
            }

            int scp1 = GetStartColPOint(rst);

            for (int i = scp1; i <= 24; i++)
            {
                rst.ReadPnt(i, 0);

                foreach (KeyValuePair <string, DataTable> kvp in MTables)
                {
                    ASTRALib.table GenTab = (ASTRALib.table)rst.Tables.Item(kvp.Value.TableName);

                    int colcount = kvp.Value.Columns.Count;

                    //Object[] Myrow = new object[colcount];
                    int x = GenTab.get_FindNextSel(-1);
                    while (x >= 0)
                    {
                        Object[] mycells     = new Object[colcount];
                        string   KeyName     = kvp.Value.Columns[0].ColumnName;
                        object   key         = (int)((ASTRALib.col)GenTab.Cols.Item(kvp.Value.Columns[0].ColumnName)).get_Z(x);
                        object   KeyNameDecs = (object)((ASTRALib.col)GenTab.Cols.Item(kvp.Value.Columns[1].ColumnName)).get_Z(x);

                        var colT    = (ASTRALib.col)GenTab.Cols.Item(3);
                        var colType = colT.get_Prop(ASTRALib.PropType.FL_TIP).ToString();

                        mycells[0] = key;
                        mycells[1] = KeyNameDecs;
                        mycells[2] = i;


                        for (int c = 3; c < colcount; c++)  // читаем остальные параметры
                        {
                            mycells[c] =
                                (Object)((ASTRALib.col)GenTab.Cols.Item(kvp.Value.Columns[c].ColumnName)).get_Z(x);
                        }
                        kvp.Value.Rows.Add(mycells);
                        x = GenTab.get_FindNextSel(x);
                    }
                }
            }
        }
Beispiel #3
0
        public void FillMpt(Rastr rst, Dictionary<string, DataTable> DTables)
        {
            MTables.Clear();
            foreach (KeyValuePair<string, DataTable> kvp in DTables)
            {
                DataTable newdt = kvp.Value.Copy();
                MTables.Add(kvp.Key, newdt);
            }

            int scp1 = GetStartColPOint(rst);
            for (int i = scp1; i <= 24; i++)
            {
                rst.ReadPnt(i, 0);

                foreach (KeyValuePair<string, DataTable> kvp in MTables)
                {
                    ASTRALib.table GenTab = (ASTRALib.table)rst.Tables.Item(kvp.Value.TableName);

                    int colcount = kvp.Value.Columns.Count;

                    //Object[] Myrow = new object[colcount];
                    int x = GenTab.get_FindNextSel(-1);
                    while (x >= 0)
                    {
                        Object[] mycells = new Object[colcount];
                        string KeyName = kvp.Value.Columns[0].ColumnName;
                        object key = (int)((ASTRALib.col)GenTab.Cols.Item(kvp.Value.Columns[0].ColumnName)).get_Z(x);
                        object KeyNameDecs = (object)((ASTRALib.col)GenTab.Cols.Item(kvp.Value.Columns[1].ColumnName)).get_Z(x);

                        var colT = (ASTRALib.col)GenTab.Cols.Item(3);
                        var colType = colT.get_Prop(ASTRALib.PropType.FL_TIP).ToString();

                        mycells[0] = key;
                        mycells[1] = KeyNameDecs;
                        mycells[2] = i;

                        for (int c = 3; c < colcount; c++)  // читаем остальные параметры
                        {
                            mycells[c] =
                                (Object)((ASTRALib.col)GenTab.Cols.Item(kvp.Value.Columns[c].ColumnName)).get_Z(x);
                        }
                        kvp.Value.Rows.Add(mycells);
                        x = GenTab.get_FindNextSel(x);
                    }
                }
            }
        }
Beispiel #4
0
        // получить двумерный массив для растра
        private Array getModeObj(Rastr rst)
        {
            string modeMessage = string.Empty;;

            RastrCalc(rst);

            string[,] paramsArr = new string[2, 24 - startPoint + 1];


            for (int i = startPoint - 1; i < 24; i++)
            {
                paramsArr[ModeNormal, i] = "0";
                paramsArr[ModeFlat, i]   = "0";

                if (rst.rgm("") == RastrRetCode.AST_NB)
                {
                    modeMessage += String.Format("Режим не сбалансирован в точке {0} проверить с плоского старта \n", i);

                    if (rst.rgm("p") == RastrRetCode.AST_NB)
                    {
                        modeMessage += String.Format("Режим не сбалансирован в точке {0} проверить с плоского старта \n", i);
                    }
                    else
                    {
                        modeMessage           += String.Format("режим в точке {0} сошёлся с плоского старта \n", i);
                        paramsArr[ModeFlat, i] = "5";
                    }
                    rst.Printp(String.Format("Режим в точке {0} не сбалансирован", i));
                }
                else
                {
                    paramsArr[ModeNormal, i] = "5";
                }

                if (modeMessage == string.Empty)   //если режим сбалансирован
                {
                    rst.WritePnt(i);
                }
                else
                {
                    MessageBox.Show(modeMessage);
                }
            }

            return(paramsArr);
        }
Beispiel #5
0
        // получить список мегаточек в нужной последовательности
        public static void SetMptList(Rastr rst1, TMpt Mpt1, Rastr rst2, TMpt Mpt2)
        {
            ASTRALib.table t1 = (ASTRALib.table)rst1.Tables.Item("MltPntSettings");
            ASTRALib.col c1 = (ASTRALib.col)t1.Cols.Item("AbsTime");
            Double mpt1StartDate = (Double)c1.get_Z(0);

            ASTRALib.table t2 = (ASTRALib.table)rst2.Tables.Item("MltPntSettings");
            ASTRALib.col c2 = (ASTRALib.col)t2.Cols.Item("AbsTime");
            Double mpt2StartDate = (Double)c2.get_Z(0);
            if (mpt1StartDate < mpt2StartDate)
            {
                MPTList.Add(Mpt1);
                MPTList.Add(Mpt2);
            }
            else
            {
                MPTList.Add(Mpt2);
                MPTList.Add(Mpt1);
            }
        }
Beispiel #6
0
        // получить список мегаточек в нужной последовательности
        public static void SetMptList(Rastr rst1, TMpt Mpt1, Rastr rst2, TMpt Mpt2)
        {
            ASTRALib.table t1            = (ASTRALib.table)rst1.Tables.Item("MltPntSettings");
            ASTRALib.col   c1            = (ASTRALib.col)t1.Cols.Item("AbsTime");
            Double         mpt1StartDate = (Double)c1.get_Z(0);

            ASTRALib.table t2            = (ASTRALib.table)rst2.Tables.Item("MltPntSettings");
            ASTRALib.col   c2            = (ASTRALib.col)t2.Cols.Item("AbsTime");
            Double         mpt2StartDate = (Double)c2.get_Z(0);

            if (mpt1StartDate < mpt2StartDate)
            {
                MPTList.Add(Mpt1);
                MPTList.Add(Mpt2);
            }
            else
            {
                MPTList.Add(Mpt2);
                MPTList.Add(Mpt1);
            }
        }
Beispiel #7
0
 // получить номер точки начала расчета
 public int GetStartColPOint(Rastr rst)
 {
     ASTRALib.table t = (ASTRALib.table)rst.Tables.Item("MltPntSettings");
     ASTRALib.col   c = (ASTRALib.col)t.Cols.Item("StartCalcPoint");
     return((int)c.get_Z(0));
 }
Beispiel #8
0
 // вычисление по формуле (0) ?
 public void RastrCalc(Rastr rst)
 {
     ASTRALib.table tableRst = (ASTRALib.table)rst.Tables.Item("MultiPntConfig");
     ASTRALib.col colRst = (ASTRALib.col)tableRst.Cols.Item("Significance");
     colRst.Calc("0");
 }
Beispiel #9
0
        // получить двумерный массив для растра
        private Array getModeObj(Rastr rst)
        {
            string modeMessage = string.Empty; ;
            RastrCalc(rst);

            string[,] paramsArr = new string[2, 24 - startPoint + 1];

            for (int i = startPoint - 1; i < 24; i++)
            {
                paramsArr[ModeNormal,i] = "0";
                paramsArr[ModeFlat, i] = "0";

                if (rst.rgm("") == RastrRetCode.AST_NB)
                {
                    modeMessage += String.Format("Режим не сбалансирован в точке {0} проверить с плоского старта \n", i);

                    if (rst.rgm("p") == RastrRetCode.AST_NB)
                        modeMessage += String.Format("Режим не сбалансирован в точке {0} проверить с плоского старта \n", i);
                    else
                    {
                        modeMessage += String.Format("режим в точке {0} сошёлся с плоского старта \n", i);
                        paramsArr[ModeFlat, i] = "5";
                    }
                    rst.Printp(String.Format("Режим в точке {0} не сбалансирован", i));
                }
                else
                    paramsArr[ModeNormal, i] = "5";

                if (modeMessage == string.Empty)   //если режим сбалансирован
                    rst.WritePnt(i);
                else
                    MessageBox.Show(modeMessage);
            }

            return paramsArr;
        }
Beispiel #10
0
 private void Form1_Load(object sender, EventArgs e)
 {
     try
     {
         rst1 = new Rastr();
         rst2 = new Rastr();
     }
     catch (Exception Err)
     {
         MessageBox.Show("Ошибка создания объекта actopus.\r\n Возможно, программа actopus не установлена.\r\n Ошибка:" + Err.Message.ToString());
         Close();
     }
     LoadXmlConfig();
 }
Beispiel #11
0
        public bool LoadMPT(Rastr rst, string mptpath, Dictionary<string, DataTable> DTables)
        {
            Cursor.Current = Cursors.WaitCursor;

            try
            {
                rst.Load(ASTRALib.RG_KOD.RG_REPL, mptpath, "");
            }
            catch (Exception Err)
            {
                Cursor.Current = Cursors.Default;
                MessageBox.Show("Не удалось загрузить файл мегаточки " + mptpath + "\r\n" + Err.Message);
                return false;
            }

            rst.OutZero = 1;

            RastrRetCode retcode = rst.CheckMegapoint();
            if (retcode != RastrRetCode.AST_OK)
            {
                Cursor.Current = Cursors.Default;
                MessageBox.Show("Мегаточка не загружена");
                return false;
            }
            FillMpt(rst, DTables); // DTABLES формируется при распарсивании xml
            return true;
        }
Beispiel #12
0
 // получить номер точки начала расчета
 public int GetStartColPOint(Rastr rst)
 {
     ASTRALib.table t = (ASTRALib.table)rst.Tables.Item("MltPntSettings");
     ASTRALib.col c = (ASTRALib.col)t.Cols.Item("StartCalcPoint");
     return (int)c.get_Z(0);
 }
Beispiel #13
0
 // вычисление по формуле (0) ?
 public void RastrCalc(Rastr rst)
 {
     ASTRALib.table tableRst = (ASTRALib.table)rst.Tables.Item("MultiPntConfig");
     ASTRALib.col   colRst   = (ASTRALib.col)tableRst.Cols.Item("Significance");
     colRst.Calc("0");
 }