Example #1
0
        /// <summary>
        /// Инициализирует новый экземпляр класса
        /// </summary>
        /// <param name="View">Параметр для отображения</param>
        /// <param name="gView">График который отображает параметр</param>
        public GraphicPanelParameter(Parameter View, Graphic gView)
            : this()
        {
            graphic = gView;
            parameter = View;

            InitializeGraphic();
        }
Example #2
0
        /// <summary>
        /// Отрисовать линию
        /// <param name="graphic">График который выводится на шкале</param>
        /// <param name="number">Порядковый номер графика на шкале</param>
        /// </summary>
        private void DrawLine(Graphic graphic, int number)
        {
            using (Pen pen = new Pen(graphic.Color))
            {
                // ------------ получить область в которую выводить шкалу для графика ------------

                PointF g_point = new PointF(point.X, size.Height - areaHeight * number);
                SizeF g_size = new SizeF(parent.BaseWidth * parent.WidthCoef, areaHeight);

                PointF pt = new PointF(g_point.X + g_size.Width, g_point.Y);
                SizeF sz = new SizeF(size.Width - g_size.Width, areaHeight);

                RectangleF rect = new RectangleF(pt, sz);       // область в которую необходимо выводить шкалу графика

                //if (graphic.Actived)
                {
                    // ------------ отрисовать шкалу графика ------------

                    float Y = (float)Math.Round((double)(rect.Location.Y + (rect.Height / 1.6f)));  // Y координата
                    // линии шкалы графика
                    parent.Drawter.Graphics.DrawLine(pen, new PointF(rect.Location.X + 5, Y),
                        new PointF((rect.Location.X + rect.Width) - 10, Y));

                    // ------------ отрисовать единицы в которых измеряется параметр ------------

                    using (Font fnt = new Font(FontFamily.GenericSansSerif, 7.9f, FontStyle.Regular))
                    {
                        // определяем размер строки

                        int ost = parent.GradCount % 2;

                        PointF uPt = new PointF();
                        SizeF uSize = parent.Drawter.Graphics.MeasureString(graphic.Units, fnt);

                        uPt.Y = Y - uSize.Height - 3;

                        if (ost > 0)
                        {
                            uPt.X = (((rect.Width - 15) / 2.0f) - (uSize.Width / 2.0f)) + rect.X;
                        }
                        else
                        {
                            float del = parent.GradCount + 1;
                            uPt.X = ((((rect.Width - 15) / parent.GradCount) / 2) - ((uSize.Width / parent.GradCount) / 2)) + rect.X;
                        }

                        parent.Drawter.Graphics.DrawString(graphic.Units, fnt, graphic.Brush, uPt);

                        // ----------------------------------

                        DrawRange(pen, fnt, rect, Y, graphic);
                    }
                }
                /*else
                {
                    using (SolidBrush brush = new SolidBrush(color))
                    {
                        parent.Drawter.Graphics.FillRectangle(brush, rect);
                    }
                }*/
            }
        }
Example #3
0
        /// <summary>
        /// отрисовать графики в тестовом режиме. то есть просто нарисовать ченить
        /// </summary>
        protected void TestDrawGraphics()
        {
            Color[] cols = { Color.Red, Color.Green, Color.Blue, Color.Brown, Color.Black };
            for (int i = 1; i < 6; i++)
            {
                if (parent != null)
                {
                    Graphic graphic = new Graphic();

                    graphic.Range.Min = 0;
                    graphic.Range.Max = 50;

                    graphic.Current = 3;

                    graphic.Color = cols[i - 1];

                    graphic.Units = "[кг/см]";
                    graphic.Description = "Объем" + i.ToString();

                    DrawDescription(graphic, i);
                    DrawLine(graphic, i);
                }
            }
        }
Example #4
0
        /// <summary>
        /// Отрисовать значения шкал для графика
        /// </summary>
        /// <param name="pen">Объект используемый для отрисоки линий</param>
        /// <param name="fnt">Шрифт которым выводить отрисовку значений</param>
        /// <param name="rect">Область в которую необходимо выводить значения диапазона</param>
        /// <param name="Y">Координата Y по которой вычислять координаты Y для вывода значений</param>
        /// <param name="graphic">График для которого осуществляется вывод значений<param>
        /// <param name="index">Номер выводимого значения из диапазона</param>
        protected void DrawRangeValues(Pen pen, Font fnt, RectangleF rect, Single Y, Graphic graphic, int index)
        {
            if (index == 0)     // отрисовываем первое значение из диапазона
            {
                string s_val = string.Format("{0:F1}", graphic.Range.Min);

                SizeF _size = parent.Drawter.Graphics.MeasureString(s_val, graphic.Font);
                PointF _pt = new PointF(rect.Location.X + 5, Y - _size.Height);

                parent.Drawter.Graphics.DrawString(s_val, fnt, graphic.Brush, _pt);
            }
            else
                if (index == parent.GradCount)      // отрисовываем последнее значение из диапазона
                {
                    string s_val = string.Format("{0:F1}", graphic.Range.Max);

                    SizeF _size = parent.Drawter.Graphics.MeasureString(s_val, graphic.Font);
                    PointF _pt = new PointF((rect.Location.X + rect.Width) - _size.Width - 5, Y - _size.Height);

                    parent.Drawter.Graphics.DrawString(s_val, fnt, graphic.Brush, _pt);
                }
                else
                {
                    // отрисовываем промежуточные значения из диапазона

                    float step = (graphic.Range.Max - graphic.Range.Min) / parent.GradCount;
                    float current = graphic.Range.Min + step * index;

                    float stepPt = (float)Math.Round((((rect.Location.X + rect.Width) - 10) - (rect.Location.X + 5))
                        / parent.GradCount);

                    string s_val = string.Format("{0:F1}", current);

                    SizeF _size = parent.Drawter.Graphics.MeasureString(s_val, graphic.Font);
                    PointF _pt = new PointF(((rect.Location.X + 5) + stepPt * index) - (float)Math.Round(_size.Width / 2.0f),
                        Y - _size.Height);

                    parent.Drawter.Graphics.DrawString(s_val, fnt, graphic.Brush, _pt);
                }
        }
Example #5
0
        /// <summary>
        /// Отрисовать диапазон шкалы для графика
        /// </summary>
        /// <param name="pen">Объек используемый для отрисовки линий</param>
        /// <param name="fnt">Шрифт которым выводить значения интервала</param>
        /// <param name="rect">Область в которой выводится шкала графика</param>
        /// <param name="Y">Y координата линии шкалы графика</param>
        /// <param name="graphic">График для которого отрисовывется шкала</param>
        protected void DrawRange(Pen pen, Font fnt, RectangleF rect, Single Y, Graphic graphic)
        {
            PointF _pt = new PointF(rect.Location.X + 5, Y + 2);
            float step = (float)Math.Round((((rect.Location.X + rect.Width) - 10) - (rect.Location.X + 5)) / parent.GradCount);

            for (int i = 0; i < parent.GradCount; i++)
            {
                if (i == 0)
                {
                    PointF pt_f = new PointF(_pt.X, _pt.Y - 4);
                    parent.Drawter.Graphics.DrawLine(pen, _pt, pt_f);

                    DrawRangeValues(pen, fnt, rect, Y, graphic, i);
                    _pt.X += step;
                }
                else
                {
                    _pt.Y = Y + 1;

                    PointF pt = new PointF(_pt.X, _pt.Y - 2);
                    parent.Drawter.Graphics.DrawLine(pen, _pt, pt);

                    DrawRangeValues(pen, fnt, rect, Y, graphic, i);
                    _pt.X += step;
                }
            }

            _pt.Y = Y + 2;

            PointF __pt = new PointF(rect.Location.X + rect.Width - 10, _pt.Y - 4);
            _pt.X = __pt.X;

            parent.Drawter.Graphics.DrawLine(pen, _pt, __pt);
            DrawRangeValues(pen, fnt, rect, Y, graphic, parent.GradCount);

            // ------------ отрисовать текущее значение графика ------------

            string pred = string.Empty;
            float curveValue = float.NaN;

            if (Mode)
            {
                curveValue = graphic.Current;
            }
            else
            {
                pred = _Time.ToLongTimeString().Trim();
                curveValue = graphic.Passive;
            }

            if (!float.IsNaN(curveValue))
            {
                float curveCalc = curveValue;
                if (curveCalc < graphic.Range.Min) curveCalc = graphic.Range.Min;
                else
                    if (curveCalc > graphic.Range.Max) curveCalc = graphic.Range.Max;

                float pixels = (((rect.Location.X + rect.Width) - 10) - (rect.Location.X + 5)) /
                    (graphic.Range.Max - graphic.Range.Min);

                //float curve = pixels * (graphic.Current - graphic.Range.Min) + (rect.Location.X + 5);
                float curve = pixels * (curveCalc - graphic.Range.Min) + (rect.Location.X + 5);

                PointF[] pts = new PointF[3];

                pts[0] = new PointF(curve, Y);
                pts[1] = new PointF(curve - 3, Y - 7);
                pts[2] = new PointF(curve + 3, Y - 9);

                parent.Drawter.Graphics.FillPolygon(graphic.Brush, pts);
                parent.Drawter.Graphics.DrawLine(pen, new PointF(pts[0].X, Y), new PointF(pts[0].X, Y - 11));

                if (Panel.DrawNumericInScale)
                {
                    using (SolidBrush curBrush = new SolidBrush(parent.Color))
                    {
                        using (Font sFnt = new Font(FontFamily.GenericSansSerif, 7.15f, FontStyle.Regular))
                        {
                            string curVal = string.Empty;
                            if (Mode)
                            {
                                curVal = string.Format("{0:F2}", curveValue).Trim();
                            }
                            else
                                curVal = string.Format("{0:F2} Время {1}", curveValue, pred).Trim();

                            PointF ptCur = new PointF(pts[2].X, pts[2].Y - 10);
                            SizeF szText = parent.Drawter.Graphics.MeasureString(curVal, sFnt);

                            if ((rect.Location.X + rect.Width - 5) < (ptCur.X + szText.Width))
                            {
                                ptCur.X = ptCur.X - szText.Width - 8;
                            }

                            if (Mode == false)
                            {
                                using (Pen pin = new Pen(graphic.Color))
                                {
                                    parent.Drawter.Graphics.DrawRectangle(pin, ptCur.X, ptCur.Y, szText.Width + 1, szText.Height);
                                }
                            }

                            parent.Drawter.Graphics.FillRectangle(curBrush, new RectangleF(ptCur, szText));
                            parent.Drawter.Graphics.DrawString(curVal, sFnt, graphic.Brush, ptCur);
                        }
                    }
                }
            }
        }
Example #6
0
        /// <summary>
        /// Отрисовать описание графика на шкале
        /// </summary>
        /// <param name="graphic">График описание которого вывести на шкалу</param>
        /// <param name="number">Порядковый номер графика на шкале</param>
        protected void DrawDescription(Graphic graphic, int number)
        {
            SizeF g_size = new SizeF(parent.BaseWidth * parent.WidthCoef, areaHeight);
            PointF g_point = new PointF(point.X, size.Height - areaHeight * number);

            StringFormat format = new StringFormat();

            format.Alignment = StringAlignment.Center;
            format.LineAlignment = StringAlignment.Center;

            RectangleF rect = new RectangleF(g_point, g_size);
            parent.Drawter.Graphics.DrawString(graphic.Description, graphic.Font, graphic.Brush, rect, format);

            /*//if (graphic.Actived)
            {
                //parent.Drawter.Graphics.DrawString(graphic.Description, graphic.Font, graphic.Brush, rect, format);
            }
            //else
            {
                using (SolidBrush brush = new SolidBrush(color))
                {
                    parent.Drawter.Graphics.DrawString(graphic.Description, graphic.Font, brush, rect, format);
                }
            }*/
        }
Example #7
0
File: Panel.cs Project: slawer/skc
        /// <summary>
        /// Инициализировать новый график
        /// </summary>
        /// <returns>Если график создан и инициализирован то график, в противном случае null</returns>
        public Graphic InstanceGraphic()
        {
            if (g_locker.TryEnterWriteLock(500))
            {
                try
                {
                    if (graphics.Count < MaxGraphics)
                    {
                        Graphic graphic = new Graphic();
                        graphics.Add(graphic);

                        return graphic;
                    }
                }
                finally
                {
                    g_locker.ExitWriteLock();
                }
            }
            return null;
        }
Example #8
0
File: Panel.cs Project: slawer/skc
 /// <summary>
 /// Удалить график
 /// </summary>
 /// <param name="graphic">Удаляемый график</param>
 public void DeleteGraphic(Graphic graphic)
 {
     if (g_locker.TryEnterWriteLock(500))
     {
         try
         {
             graphics.Remove(graphic);
         }
         finally
         {
             g_locker.ExitWriteLock();
         }
     }
     else
     {
         throw new TimeoutException("Не удалось удалить график!");
     }
 }
Example #9
0
        /// <summary>
        /// выполнить инициализацию второй группы графиков
        /// </summary>
        protected void InitializeSGraphics()
        {
            graphic_gasnavihode = manager2.InstanceGraphic();
            if (loaded == false)
            {
                graphic_gasnavihode.Units = "м";
                graphic_gasnavihode.Description = "Газ1";

                graphic_gasnavihode.Range.Min = 0;
                graphic_gasnavihode.Range.Max = 50;

                graphic_gasnavihode.Color = Color.Firebrick;
            }
            else
                if (gr_gasnavihode != null)
                {
                    graphic_gasnavihode.Units = gr_gasnavihode.Units;
                    graphic_gasnavihode.Description = gr_gasnavihode.Description;

                    graphic_gasnavihode.Range.Min = gr_gasnavihode.Range.Min;
                    graphic_gasnavihode.Range.Max = gr_gasnavihode.Range.Max;

                    graphic_gasnavihode.Color = gr_gasnavihode.Color;

                    gr_gasnavihode.Font.Dispose();
                    gr_gasnavihode.Brush.Dispose();

                    gr_gasnavihode = null;
                }

            graphic_gasnaplosadke = manager2.InstanceGraphic();
            if (loaded == false)
            {
                graphic_gasnaplosadke.Units = "м";
                graphic_gasnaplosadke.Description = "Газ2";

                graphic_gasnaplosadke.Range.Min = 0;
                graphic_gasnaplosadke.Range.Max = 50;

                graphic_gasnaplosadke.Color = Color.SeaGreen;
            }
            else
                if (gr_gasnaplosadke != null)
                {
                    graphic_gasnaplosadke.Units = gr_gasnaplosadke.Units;
                    graphic_gasnaplosadke.Description = gr_gasnaplosadke.Description;

                    graphic_gasnaplosadke.Range.Min = gr_gasnaplosadke.Range.Min;
                    graphic_gasnaplosadke.Range.Max = gr_gasnaplosadke.Range.Max;

                    graphic_gasnaplosadke.Color = gr_gasnaplosadke.Color;

                    gr_gasnaplosadke.Font.Dispose();
                    gr_gasnaplosadke.Brush.Dispose();

                    gr_gasnaplosadke = null;
                }

            graphic_gaspodrotorom = manager2.InstanceGraphic();
            if (loaded == false)
            {
                graphic_gaspodrotorom.Units = "м";
                graphic_gaspodrotorom.Description = "Газ3";

                graphic_gaspodrotorom.Range.Min = 0;
                graphic_gaspodrotorom.Range.Max = 50;

                graphic_gaspodrotorom.Color = Color.Blue;
            }
            else
                if (gr_gaspodrotorom != null)
                {
                    graphic_gaspodrotorom.Units = gr_gaspodrotorom.Units;
                    graphic_gaspodrotorom.Description = gr_gaspodrotorom.Description;

                    graphic_gaspodrotorom.Range.Min = gr_gaspodrotorom.Range.Min;
                    graphic_gaspodrotorom.Range.Max = gr_gaspodrotorom.Range.Max;

                    graphic_gaspodrotorom.Color = gr_gaspodrotorom.Color;

                    gr_gaspodrotorom.Font.Dispose();
                    gr_gaspodrotorom.Brush.Dispose();

                    gr_gaspodrotorom = null;
                }

            graphic_gaspriemnaemk = manager2.InstanceGraphic();
            if (loaded == false)
            {
                graphic_gaspriemnaemk.Units = "м";
                graphic_gaspriemnaemk.Description = "Газ4";

                graphic_gaspriemnaemk.Range.Min = 0;
                graphic_gaspriemnaemk.Range.Max = 50;

                graphic_gaspriemnaemk.Color = Color.SaddleBrown;
            }
            else
                if (gr_gaspriemnaemk != null)
                {
                    graphic_gaspriemnaemk.Units = gr_gaspriemnaemk.Units;
                    graphic_gaspriemnaemk.Description = gr_gaspriemnaemk.Description;

                    graphic_gaspriemnaemk.Range.Min = gr_gaspriemnaemk.Range.Min;
                    graphic_gaspriemnaemk.Range.Max = gr_gaspriemnaemk.Range.Max;

                    graphic_gaspriemnaemk.Color = gr_gaspriemnaemk.Color;

                    gr_gaspriemnaemk.Font.Dispose();
                    gr_gaspriemnaemk.Brush.Dispose();

                    gr_gaspriemnaemk = null;
                }

            graphic_gasvibrosit = manager2.InstanceGraphic();
            if (loaded == false)
            {
                graphic_gasvibrosit.Units = "м";
                graphic_gasvibrosit.Description = "Газ5";

                graphic_gasvibrosit.Range.Min = 0;
                graphic_gasvibrosit.Range.Max = 50;

                graphic_gasvibrosit.Color = Color.Black;
            }
            else
                if (gr_gasvibrosit != null)
                {
                    graphic_gasvibrosit.Units = gr_gasvibrosit.Units;
                    graphic_gasvibrosit.Description = gr_gasvibrosit.Description;

                    graphic_gasvibrosit.Range.Min = gr_gasvibrosit.Range.Min;
                    graphic_gasvibrosit.Range.Max = gr_gasvibrosit.Range.Max;

                    graphic_gasvibrosit.Color = gr_gasvibrosit.Color;

                    gr_gasvibrosit.Font.Dispose();
                    gr_gasvibrosit.Brush.Dispose();

                    gr_gasvibrosit = null;
                }

            manager2.StartTime = DateTime.Now;
            manager2.Orientation = GraphicComponent.Orientation.Vertical;

            manager2.Update();
            manager2.UpdatePeriod = 1000;
            manager2.Mode = GraphicComponent.DrawMode.Activ;

            manager2.OnDataNeed += new EventHandler(manager2_OnData);
        }
Example #10
0
        /// <summary>
        /// выполнить инициализацию первой группы графиков
        /// </summary>
        protected void InitializeFGraphics()
        {
            if (manager1 != null)
            {
                graphic_talblok = manager1.InstanceGraphic();

                if (loaded == false)
                {
                    graphic_talblok.Units = "м";
                    graphic_talblok.Description = "Т/блок";

                    graphic_talblok.Range.Min = 0;
                    graphic_talblok.Range.Max = 45;

                    graphic_talblok.Color = Color.Red;
                }
                else
                    if (gr_talblok != null)
                    {
                        graphic_talblok.Units = gr_talblok.Units;
                        graphic_talblok.Description = gr_talblok.Description;

                        graphic_talblok.Range.Min = gr_talblok.Range.Min;
                        graphic_talblok.Range.Max = gr_talblok.Range.Max;

                        graphic_talblok.Color = gr_talblok.Color;

                        gr_talblok.Font.Dispose();
                        gr_talblok.Brush.Dispose();

                        gr_talblok = null;
                    }

                graphic_glybina = manager1.InstanceGraphic();
                if (loaded == false)
                {
                    graphic_glybina.Units = "м";
                    graphic_glybina.Description = "Гл.Инст";

                    graphic_glybina.Range.Min = 0;
                    graphic_glybina.Range.Max = 6500;

                    graphic_glybina.Color = Color.Green;
                }
                else
                    if (gr_glybina != null)
                    {
                        graphic_glybina.Units = gr_glybina.Units;
                        graphic_glybina.Description = gr_glybina.Description;

                        graphic_glybina.Range.Min = gr_glybina.Range.Min;
                        graphic_glybina.Range.Max = gr_glybina.Range.Max;

                        graphic_glybina.Color = gr_glybina.Color;

                        gr_glybina.Font.Dispose();
                        gr_glybina.Brush.Dispose();

                        gr_glybina = null;
                    }

                graphic_skorostSpo = manager1.InstanceGraphic();
                if (loaded == false)
                {
                    graphic_skorostSpo.Units = "м/с";
                    graphic_skorostSpo.Description = "Ск.СПО";

                    graphic_skorostSpo.Range.Min = -2;
                    graphic_skorostSpo.Range.Max = 2;

                    graphic_skorostSpo.Color = Color.Blue;
                }
                else
                    if (gr_skorostSpo != null)
                    {
                        graphic_skorostSpo.Units = gr_skorostSpo.Units;
                        graphic_skorostSpo.Description = gr_skorostSpo.Description;

                        graphic_skorostSpo.Range.Min = gr_skorostSpo.Range.Min;
                        graphic_skorostSpo.Range.Max = gr_skorostSpo.Range.Max;

                        graphic_skorostSpo.Color = gr_skorostSpo.Color;

                        gr_skorostSpo.Font.Dispose();
                        gr_skorostSpo.Brush.Dispose();

                        gr_skorostSpo = null;
                    }

                manager1.StartTime = DateTime.Now;
                manager1.Orientation = GraphicComponent.Orientation.Vertical;

                manager1.Update();
                manager1.UpdatePeriod = 1000;
                manager1.Mode = GraphicComponent.DrawMode.Activ;

                manager1.OnDataNeed += new EventHandler(manager1_OnData);
            }
        }
Example #11
0
        /// <summary>
        /// Загрузить настройки панели
        /// </summary>
        /// <param name="Root">Корневой узел в котром находятся настройки панели</param>
        public override void Load(XmlNode Root)
        {
            if (slim.TryEnterWriteLock(500))
            {
                try
                {
                    if (Root != null && Root.Name == "SpoPanel")
                    {
                        if (Root.HasChildNodes)
                        {
                            loaded = true;
                            foreach (XmlNode child in Root.ChildNodes)
                            {
                                switch (child.Name)
                                {
                                    case "graphic_talblok":

                                        try
                                        {
                                            gr_talblok = new Graphic();
                                            gr_talblok.DeSerializeToXml(child);
                                        }
                                        catch { }
                                        break;

                                    case "graphic_glybina":

                                        try
                                        {
                                            gr_glybina = new Graphic();
                                            gr_glybina.DeSerializeToXml(child);
                                        }
                                        catch { }
                                        break;

                                    case "graphic_skorostSpo":

                                        try
                                        {
                                            gr_skorostSpo = new Graphic();
                                            gr_skorostSpo.DeSerializeToXml(child);
                                        }
                                        catch { }
                                        break;

                                    case "graphic_gasnavihode":

                                        try
                                        {
                                            gr_gasnavihode = new Graphic();
                                            gr_gasnavihode.DeSerializeToXml(child);
                                        }
                                        catch { }
                                        break;

                                    case "graphic_gasnaplosadke":

                                        try
                                        {
                                            gr_gasnaplosadke = new Graphic();
                                            gr_gasnaplosadke.DeSerializeToXml(child);
                                        }
                                        catch { }
                                        break;

                                    case "graphic_gaspodrotorom":

                                        try
                                        {
                                            gr_gaspodrotorom = new Graphic();
                                            gr_gaspodrotorom.DeSerializeToXml(child);
                                        }
                                        catch { }
                                        break;

                                    case "graphic_gaspriemnaemk":

                                        try
                                        {
                                            gr_gaspriemnaemk = new Graphic();
                                            gr_gaspriemnaemk.DeSerializeToXml(child);
                                        }
                                        catch { }
                                        break;

                                    case "graphic_gasvibrosit":

                                        try
                                        {
                                            gr_gasvibrosit = new Graphic();
                                            gr_gasvibrosit.DeSerializeToXml(child);
                                        }
                                        catch { }
                                        break;

                                    case "split":

                                        try
                                        {
                                            splitterDistance = float.Parse(child.InnerText);
                                        }
                                        catch { }
                                        break;

                                    default:
                                        break;
                                }
                            }
                        }
                    }
                }
                finally
                {
                    slim.ExitWriteLock();
                }
            }
        }
Example #12
0
        /// <summary>
        /// выполнить инициализацию второй группы графиков
        /// </summary>
        protected void InitializeSGraphicPanel()
        {
            graphic_summObem = manager2.InstanceGraphic();         // график суммарный объем в емкостях
            if (loaded == false)
            {
                graphic_summObem.Units = "м.куб";
                graphic_summObem.Description = "Об.Сумм";

                graphic_summObem.Range.Min = 0;
                graphic_summObem.Range.Max = 550;

                graphic_summObem.Color = Color.Red;
            }
            else
                if (gr_summObem != null)
                {
                    graphic_summObem.Units = gr_summObem.Units;
                    graphic_summObem.Description = gr_summObem.Description;

                    graphic_summObem.Range.Min = gr_summObem.Range.Min;
                    graphic_summObem.Range.Max = gr_summObem.Range.Max;

                    graphic_summObem.Color = gr_summObem.Color;

                    gr_summObem.Font.Dispose();
                    gr_summObem.Brush.Dispose();

                    gr_summObem = null;
                }

            graphic_hodi1 = manager2.InstanceGraphic();            // график ходы насоса 1
            if (loaded == false)
            {
                graphic_hodi1.Units = "ход/мин";
                graphic_hodi1.Description = "Ходы 1";

                graphic_hodi1.Range.Min = 0;
                graphic_hodi1.Range.Max = 130;

                graphic_hodi1.Color = Color.Green;
            }
            else
                if (gr_hodi1 != null)
                {
                    graphic_hodi1.Units = gr_hodi1.Units;
                    graphic_hodi1.Description = gr_hodi1.Description;

                    graphic_hodi1.Range.Min = gr_hodi1.Range.Min;
                    graphic_hodi1.Range.Max = gr_hodi1.Range.Max;

                    graphic_hodi1.Color = gr_hodi1.Color;

                    gr_hodi1.Font.Dispose();
                    gr_hodi1.Brush.Dispose();

                    gr_hodi1 = null;
                }

            graphic_hodi2 = manager2.InstanceGraphic();            // график ходы насоса 2
            if (loaded == false)
            {
                graphic_hodi2.Units = "ход/мин";
                graphic_hodi2.Description = "Ходы 2";

                graphic_hodi2.Range.Min = 0;
                graphic_hodi2.Range.Max = 130;

                graphic_hodi2.Color = Color.Blue;
            }
            else
                if (gr_hodi2 != null)
                {
                    graphic_hodi2.Units = gr_hodi2.Units;
                    graphic_hodi2.Description = gr_hodi2.Description;

                    graphic_hodi2.Range.Min = gr_hodi2.Range.Min;
                    graphic_hodi2.Range.Max = gr_hodi2.Range.Max;

                    graphic_hodi2.Color = gr_hodi2.Color;

                    gr_hodi2.Font.Dispose();
                    gr_hodi2.Brush.Dispose();

                    gr_hodi2 = null;
                }

            graphic_potok = manager2.InstanceGraphic();            // график поток на выходе
            if (loaded == false)
            {
                graphic_potok.Units = "%";
                graphic_potok.Description = "Поток";

                graphic_potok.Range.Min = 0;
                graphic_potok.Range.Max = 100;

                graphic_potok.Color = Color.Brown;
            }
            else
                if (gr_potok != null)
                {
                    graphic_potok.Units = gr_potok.Units;
                    graphic_potok.Description = gr_potok.Description;

                    graphic_potok.Range.Min = gr_potok.Range.Min;
                    graphic_potok.Range.Max = gr_potok.Range.Max;

                    graphic_potok.Color = gr_potok.Color;

                    gr_potok.Font.Dispose();
                    gr_potok.Brush.Dispose();

                    gr_potok = null;
                }

            manager2.StartTime = DateTime.Now;
            manager2.Orientation = GraphicComponent.Orientation.Vertical;

            manager2.Update();
            manager2.UpdatePeriod = 1000;
            manager2.Mode = GraphicComponent.DrawMode.Activ;

            manager2.OnDataNeed += new EventHandler(manager2_OnData);
        }
Example #13
0
        // ------------------------ вспомогательные функции ------------------------
        /// <summary>
        /// Инициализировать графическую панель
        /// </summary>
        protected void InitializeFGraphicPanel()
        {
            graphic_plPriemna = manager1.InstanceGraphic();        // график плотность приемная емкость
            if (loaded == false)
            {
                graphic_plPriemna.Units = "г/см3";
                graphic_plPriemna.Description = "Плот1";

                graphic_plPriemna.Range.Min = 0.8f;
                graphic_plPriemna.Range.Max = 2.2f;

                graphic_plPriemna.Color = Color.Red;
            }
            else
                if (gr_plPriemna != null)
                {
                    graphic_plPriemna.Units = "г/см3";
                    graphic_plPriemna.Description = "Плот1";

                    graphic_plPriemna.Range.Min = gr_plPriemna.Range.Min;
                    graphic_plPriemna.Range.Max = gr_plPriemna.Range.Max;

                    graphic_plPriemna.Color = gr_plPriemna.Color;

                    gr_plPriemna.Font.Dispose();
                    gr_plPriemna.Brush.Dispose();

                    gr_plPriemna = null;
                }

            graphic_plBlokaOchi = manager1.InstanceGraphic();      // график плотность блока очистки
            if (loaded == false)
            {
                graphic_plBlokaOchi.Units = "г/см3";
                graphic_plBlokaOchi.Description = "Плот2";

                graphic_plBlokaOchi.Range.Min = 0.8f;
                graphic_plBlokaOchi.Range.Max = 2.2f;

                graphic_plBlokaOchi.Color = Color.Green;
            }
            else
                if (gr_plBlokaOchi != null)
                {
                    graphic_plBlokaOchi.Units = "г/см3";
                    graphic_plBlokaOchi.Description = "Плот2";

                    graphic_plBlokaOchi.Range.Min = gr_plBlokaOchi.Range.Min;
                    graphic_plBlokaOchi.Range.Max = gr_plBlokaOchi.Range.Max;

                    graphic_plBlokaOchi.Color = gr_plBlokaOchi.Color;

                    gr_plBlokaOchi.Font.Dispose();
                    gr_plBlokaOchi.Brush.Dispose();

                    gr_plBlokaOchi = null;
                }

            graphic_plEmnsek2 = manager1.InstanceGraphic();        // график плотность емкости приготовления отсек2
            if (loaded == false)
            {
                graphic_plEmnsek2.Units = "г/см3";
                graphic_plEmnsek2.Description = "Плот3";

                graphic_plEmnsek2.Range.Min = 0.8f;
                graphic_plEmnsek2.Range.Max = 2.2f;

                graphic_plEmnsek2.Color = Color.Blue;
            }
            else
                if (gr_plEmnsek2 != null)
                {
                    graphic_plEmnsek2.Units = "г/см3";
                    graphic_plEmnsek2.Description = "Плот3";

                    graphic_plEmnsek2.Range.Min = gr_plEmnsek2.Range.Min;
                    graphic_plEmnsek2.Range.Max = gr_plEmnsek2.Range.Max;

                    graphic_plEmnsek2.Color = gr_plEmnsek2.Color;

                    gr_plEmnsek2.Font.Dispose();
                    gr_plEmnsek2.Brush.Dispose();

                    gr_plEmnsek2 = null;
                }

            manager1.StartTime = DateTime.Now;
            manager1.Orientation = GraphicComponent.Orientation.Vertical;

            manager1.Update();
            manager1.UpdatePeriod = 1000;
            manager1.Mode = GraphicComponent.DrawMode.Activ;

            manager1.OnDataNeed += new EventHandler(manager1_OnData);
        }
Example #14
0
        /// <summary>
        /// Загрузить настройки панели
        /// </summary>
        /// <param name="Root">Корневой узел в котром находятся настройки панели</param>
        public override void Load(XmlNode Root)
        {
            if (slim.TryEnterWriteLock(500))
            {
                try
                {
                    if (Root != null && Root.Name == "SolutionPanel")
                    {
                        if (Root.HasChildNodes)
                        {
                            loaded = true;
                            foreach (XmlNode child in Root.ChildNodes)
                            {
                                switch (child.Name)
                                {
                                    case "graphic_plPriemna":

                                        try
                                        {
                                            gr_plPriemna = new Graphic();
                                            gr_plPriemna.DeSerializeToXml(child);
                                        }
                                        catch { }
                                        break;

                                    case "graphic_plBlokaOchi":

                                        try
                                        {
                                            gr_plBlokaOchi = new Graphic();
                                            gr_plBlokaOchi.DeSerializeToXml(child);
                                        }
                                        catch { }
                                        break;

                                    case "graphic_plEmnsek2":

                                        try
                                        {
                                            gr_plEmnsek2 = new Graphic();
                                            gr_plEmnsek2.DeSerializeToXml(child);
                                        }
                                        catch { }
                                        break;

                                    case "graphic_summObem":

                                        try
                                        {
                                            gr_summObem = new Graphic();
                                            gr_summObem.DeSerializeToXml(child);
                                        }
                                        catch { }
                                        break;

                                    case "graphic_hodi1":

                                        try
                                        {
                                            gr_hodi1 = new Graphic();
                                            gr_hodi1.DeSerializeToXml(child);
                                        }
                                        catch { }
                                        break;

                                    case "graphic_hodi2":

                                        try
                                        {
                                            gr_hodi2 = new Graphic();
                                            gr_hodi2.DeSerializeToXml(child);
                                        }
                                        catch { }
                                        break;

                                    case "graphic_potok":

                                        try
                                        {
                                            gr_potok = new Graphic();
                                            gr_potok.DeSerializeToXml(child);
                                        }
                                        catch { }
                                        break;

                                    case "plPriemna":

                                        try
                                        {
                                            plPriemna.Identifier = new Guid(child.InnerText);
                                        }
                                        catch { }
                                        break;

                                    case "plBlocka":

                                        try
                                        {
                                            plBlocka.Identifier = new Guid(child.InnerText);
                                        }
                                        catch { }
                                        break;

                                    case "plEmkOts2":

                                        try
                                        {
                                            plEmkOts2.Identifier = new Guid(child.InnerText);
                                        }
                                        catch { }
                                        break;

                                    case "tempVihod":

                                        try
                                        {
                                            tempVihod.Identifier = new Guid(child.InnerText);
                                        }
                                        catch { }
                                        break;

                                    case "temVhod":

                                        try
                                        {
                                            temVhod.Identifier = new Guid(child.InnerText);
                                        }
                                        catch { }
                                        break;

                                    case "split":

                                        try
                                        {
                                            splitterDistance = float.Parse(child.InnerText);
                                        }
                                        catch { }
                                        break;

                                    default:
                                        break;
                                }
                            }
                        }
                    }
                }
                finally
                {
                    slim.ExitWriteLock();
                }
            }
        }
Example #15
0
        /// <summary>
        /// Инициализировать графическую панель
        /// </summary>
        protected void InitializeGraphicPanel()
        {
            manager.StartTime = DateTime.Now;

            manager.OnData += new OnDataEventHander(manager_OnData);
            manager.OnDataNeed += new EventHandler(manager_OnDataNeed);

            manager.Orientation = GraphicComponent.Orientation.Vertical;

            graphic_glybina = manager.InstanceGraphic();          // отображаемый график Глубина скважины
            if (loaded == false)
            {
                graphic_glybina.Description = "Забой";

                graphic_glybina.Range.Min = 0;
                graphic_glybina.Range.Max = 6500;

                graphic_glybina.Units = "м";

                graphic_glybina.Color = Color.Red;
            }
            else
            {
                if (gr_glybina != null)
                {
                    graphic_glybina.Description = gr_glybina.Description;

                    graphic_glybina.Range.Min = gr_glybina.Range.Min;
                    graphic_glybina.Range.Max = gr_glybina.Range.Max;

                    graphic_glybina.Units = gr_glybina.Units;
                    graphic_glybina.Color = gr_glybina.Color;

                    gr_glybina.Font.Dispose();
                    gr_glybina.Brush.Dispose();

                    gr_glybina = null;
                }
            }

            graphic_mehskorost = manager.InstanceGraphic();       // отображаемый график Мех.скорость проходки
            if (loaded == false)
            {
                graphic_mehskorost.Range.Min = 0;
                graphic_mehskorost.Range.Max = 200;

                graphic_mehskorost.Units = "м/ч";
                graphic_mehskorost.Description = "СК.Мех";

                graphic_mehskorost.Color = Color.Green;
            }
            else
                if (gr_mehskorost != null)
                {
                    graphic_mehskorost.Description = gr_mehskorost.Description;

                    graphic_mehskorost.Range.Min = gr_mehskorost.Range.Min;
                    graphic_mehskorost.Range.Max = gr_mehskorost.Range.Max;

                    graphic_mehskorost.Units = gr_mehskorost.Units;
                    graphic_mehskorost.Color = gr_mehskorost.Color;

                    gr_mehskorost.Font.Dispose();
                    gr_mehskorost.Brush.Dispose();

                    gr_mehskorost = null;
                }

            graphic_vesnakruke = manager.InstanceGraphic();       // отображаемый график вес на крюке
            if (loaded == false)
            {
                graphic_vesnakruke.Range.Min = 0;
                graphic_vesnakruke.Range.Max = 450;

                graphic_vesnakruke.Units = "тс";
                graphic_vesnakruke.Description = "Вес";

                graphic_vesnakruke.Color = Color.Blue;
            }
            else
                if (gr_vesnakruke != null)
                {
                    graphic_vesnakruke.Description = gr_vesnakruke.Description;

                    graphic_vesnakruke.Range.Min = gr_vesnakruke.Range.Min;
                    graphic_vesnakruke.Range.Max = gr_vesnakruke.Range.Max;

                    graphic_vesnakruke.Units = gr_vesnakruke.Units;
                    graphic_vesnakruke.Color = gr_vesnakruke.Color;

                    gr_vesnakruke.Font.Dispose();
                    gr_vesnakruke.Brush.Dispose();

                    gr_vesnakruke = null;
                }

            graphic_davlenienaman = manager.InstanceGraphic();    // отображаемый график давления на манифольде
            if (loaded == false)
            {
                graphic_davlenienaman.Range.Min = 0;
                graphic_davlenienaman.Range.Max = 400;

                graphic_davlenienaman.Units = "кг/см2";
                graphic_davlenienaman.Description = "Давление";

                graphic_davlenienaman.Color = Color.Brown;
            }
            else
                if (gr_davlenienaman != null)
                {
                    graphic_davlenienaman.Description = gr_davlenienaman.Description;

                    graphic_davlenienaman.Range.Min = gr_davlenienaman.Range.Min;
                    graphic_davlenienaman.Range.Max = gr_davlenienaman.Range.Max;

                    graphic_davlenienaman.Units = gr_davlenienaman.Units;
                    graphic_davlenienaman.Color = gr_davlenienaman.Color;

                    gr_davlenienaman.Font.Dispose();
                    gr_davlenienaman.Brush.Dispose();

                    gr_davlenienaman = null;
                }

            graphic_rashodnavhode = manager.InstanceGraphic();    // отображаемый график расход на входе
            if (loaded == false)
            {
                graphic_rashodnavhode.Range.Min = 0;
                graphic_rashodnavhode.Range.Max = 100;

                graphic_rashodnavhode.Units = "л/с";
                graphic_rashodnavhode.Description = "Расход";

                graphic_rashodnavhode.Color = Color.DarkOrange;
            }
            else
                if (gr_rashodnavhode != null)
                {
                    graphic_rashodnavhode.Description = gr_rashodnavhode.Description;

                    graphic_rashodnavhode.Range.Min = gr_rashodnavhode.Range.Min;
                    graphic_rashodnavhode.Range.Max = gr_rashodnavhode.Range.Max;

                    graphic_rashodnavhode.Units = gr_rashodnavhode.Units;
                    graphic_rashodnavhode.Color = gr_rashodnavhode.Color;

                    gr_rashodnavhode.Font.Dispose();
                    gr_rashodnavhode.Brush.Dispose();

                    gr_rashodnavhode = null;
                }
        }
Example #16
0
        /// <summary>
        /// Загрузить настройки панели
        /// </summary>
        /// <param name="Root">Корневой узел в котром находятся настройки панели</param>
        public override void Load(XmlNode Root)
        {
            if (slim.TryEnterWriteLock(500))
            {
                try
                {
                    if (Root != null && Root.Name == "DrillingPanel")
                    {
                        if (Root.HasChildNodes)
                        {
                            loaded = true;
                            foreach (XmlNode child in Root.ChildNodes)
                            {
                                switch (child.Name)
                                {
                                    case "numericPanel":

                                        try
                                        {
                                            n_panelNode = child.Clone();
                                        }
                                        catch { }
                                        break;

                                    case "graphic_glybina":

                                        try
                                        {
                                            gr_glybina = new Graphic();
                                            gr_glybina.DeSerializeToXml(child);
                                        }
                                        catch { }
                                        break;

                                    case "graphic_mehskorost":

                                        try
                                        {
                                            gr_mehskorost = new Graphic();
                                            gr_mehskorost.DeSerializeToXml(child);
                                        }
                                        catch { }
                                        break;

                                    case "graphic_vesnakruke":

                                        try
                                        {
                                            gr_vesnakruke = new Graphic();
                                            gr_vesnakruke.DeSerializeToXml(child);
                                        }
                                        catch { }
                                        break;

                                    case "graphic_davlenienaman":

                                        try
                                        {
                                            gr_davlenienaman = new Graphic();
                                            gr_davlenienaman.DeSerializeToXml(child);
                                        }
                                        catch { }
                                        break;

                                    case "graphic_rashodnavhode":

                                        try
                                        {
                                            gr_rashodnavhode = new Graphic();
                                            gr_rashodnavhode.DeSerializeToXml(child);
                                        }
                                        catch { }
                                        break;

                                    case "svp":

                                        try
                                        {
                                            svp.Identifier = new Guid(child.InnerText);
                                        }
                                        catch { }
                                        break;

                                    case "m_svp":

                                        try
                                        {
                                            m_svp.Identifier = new Guid(child.InnerText);
                                        }
                                        catch { }
                                        break;

                                    case "kmb":

                                        try
                                        {
                                            kmb.Identifier = new Guid(child.InnerText);
                                        }
                                        catch { }
                                        break;

                                    case "rotor":

                                        try
                                        {
                                            rotor.Identifier = new Guid(child.InnerText);
                                        }
                                        catch { }
                                        break;

                                    case "mom1":

                                        try
                                        {
                                            mom1.Identifier = new Guid(child.InnerText);
                                        }
                                        catch { }
                                        break;

                                    case "mom2":

                                        try
                                        {
                                            mom2.Identifier = new Guid(child.InnerText);
                                        }
                                        catch { }
                                        break;

                                    case "split":

                                        try
                                        {
                                            splitterDistance = float.Parse(child.InnerText);
                                        }
                                        catch { }
                                        break;

                                    default:
                                        break;
                                }
                            }
                        }
                    }
                }
                finally
                {
                    slim.ExitWriteLock();
                }
            }
        }