Пример #1
0
        private Parameter edited = null; // редактируемый параметр

        #endregion Fields

        #region Constructors

        public EditParameterForm(Parameter parameter)
        {
            InitializeComponent();

            if (parameter != null)
            {
                edited = parameter;
                channel = edited.Channel;
            }
            else
            {
                MessageBox.Show("jnjnjnj");
                this.Close();
            }
        }
Пример #2
0
        /// <summary>
        /// добавить параметр в список
        /// </summary>
        /// <param name="parameter"></param>
        private void InsertToList(Parameter parameter)
        {
            int count = listViewParameters.Items.Count + 1;

            ListViewItem item = new ListViewItem(count.ToString());

            ListViewItem.ListViewSubItem des = new ListViewItem.ListViewSubItem(item, parameter.Name);
            ListViewItem.ListViewSubItem status = new ListViewItem.ListViewSubItem(item, "-----");

            item.Tag = parameter;

            item.SubItems.Add(des);
            item.SubItems.Add(status);

            listViewParameters.Items.Add(item);
        }
Пример #3
0
        protected SaverTechnologyData tech_saver; // реализует сохранение технологических данных

        #endregion Fields

        #region Constructors

        /// <summary>
        /// Инициализирует новый экземпляр класса
        /// </summary>
        public Commutator()
        {
            buffer = new RSliceBuffer();
            parameters = new Parameter[256];

            t_slim = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion);
            p_slim = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion);

            wcf_slim = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion);

            for (int i = 0; i < parameters.Length; i++)
            {
                parameters[i] = new Parameter();
            }

            InitializeWcf();
        }
Пример #4
0
        /// <summary>
        /// добавить параметр в список
        /// </summary>
        /// <param name="parameter">Добавляемый параметр</param>
        private void InsertParameterToList(Parameter parameter)
        {
            int number = listViewParameters.Items.Count + 1;

            ListViewItem item = new ListViewItem(number.ToString());
            ListViewItem.ListViewSubItem des = new ListViewItem.ListViewSubItem(item, parameter.Name);

            item.Tag = parameter;
            item.SubItems.Add(des);

            listViewParameters.Items.Add(item);
        }
Пример #5
0
 public static void setCurrent(Parameter parameter, Single value)
 {
     Parameter.SetCurrentValue(parameter, value);
 }
Пример #6
0
        /// <summary>
        /// Присвоить значение параметру
        /// </summary>
        /// <param name="parameter">Параметр, которому присвоить значение</param>
        /// <param name="value">Присваиваемое значение параметру</param>
        protected static void SetCurrentValue(Parameter parameter, float value)
        {
            try
            {
                if (parameter != null)
                {
                    if (parameter.p_slim.TryEnterWriteLock(500))
                    {
                        try
                        {
                            parameter.lastValue = parameter.calculatedValue;

                            parameter.currentValue = value;
                            if (parameter.transformation != null)
                            {
                                parameter.transformation.Arg = value;
                                parameter.calculatedValue = parameter.transformation.Calculate();
                            }
                            else
                                parameter.calculatedValue = value;
                        }
                        finally
                        {
                            parameter.p_slim.ExitWriteLock();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ErrorHandler.WriteToLog(null, new ErrorArgs(ex.Message, ErrorType.NotFatal));
            }
        }
Пример #7
0
        /// <summary>
        /// Разбор команд, поступивших из АСУ и пультов управления буровой
        /// </summary>
        protected void ParseCommands(float[] slice)
        {
            // Разбор команд, поступивших с пульта управления

            try
            {
                SgtApplication _app = SgtApplication.CreateInstance();
                if (_app != null)
                {
                    Parameter drillerParam = _app.GetParameter(id_driller_console);
                    Parameter drweParam    = _app.GetParameter(id_driller_console_weight_column);

                    if (drillerParam != null && drillerParam.Channel != null)
                    {
                        driller_console = drillerParam.Channel.Number;
                    }
                    else
                    {
                        driller_console = -1;
                    }

                    if (drweParam != null && drweParam.Channel != null)
                    {
                        driller_console_weight_column = drweParam.Channel.Number;
                    }
                    else
                    {
                        driller_console_weight_column = -1;
                    }
                }

                if (driller_console_weight_column > -1 && driller_console_weight_column < slice.Length)
                {
                    // Разбор команд, поступивших с Пульта бурильщика Ореол
                    float _v = slice[driller_console_weight_column];
                    if (!float.IsNaN(_v))
                    {
                        int _cmd = ((int)Math.Round(_v) & 7);        // Вырезаем первых 3 бита!

                        if (_cmd == Маска_ПультаБурильщика_Нагрузка) // Реализация команды Нагрузка
                        {
                            P0200.ResetStartingPoint();
                        }
                        else
                        if (_cmd == Маска_ПультаБурильщика_Поток) // Реализация команды Поток
                        {
                            P0105.StartingPoint = float.NaN;
                        }
                        else
                        if (_cmd == Маска_ПультаБурильщика_Тальблок) // Реализация команды Тальблок
                        {
                            _app.DoTalblock(0);
                        }
                        else
                        if (_cmd == Маска_ПультаБурильщика_Подача) // Реализация команды Подача
                        {
                            P0207.ResetStartingPoint();
                        }
                        else
                        if (_cmd == Маска_АСУ_Объем) // Реализация команды Обьем
                        {
                            P0106.StartingPoint = float.NaN;
                        }
                    }
                }

                if (driller_console > -1 && driller_console < slice.Length)
                {
                    // Разбор команд, поступивших с Пульта Бурильщика АСУ
                    float _v = slice[driller_console];
                    if (!float.IsNaN(_v))
                    {
                        int _cmd = (int)Math.Round(_v);

                        if ((_cmd & Маска_АСУ_Нагрузка) != 0) // Реализация команды Нагрузка
                        {
                            P0200.ResetStartingPoint();
                        }
                        else
                        if ((_cmd & Маска_АСУ_Поток) != 0) // Реализация команды Поток
                        {
                            P0105.StartingPoint = float.NaN;
                        }
                        else
                        if ((_cmd & Маска_АСУ_Тальблок) != 0) // Реализация команды Тальблок
                        {
                            _app.DoTalblock(0);
                        }
                        else
                        if ((_cmd & Маска_АСУ_Подача) != 0) // Реализация команды Подача
                        {
                            P0207.ResetStartingPoint();
                        }
                        else
                        if ((_cmd & Маска_АСУ_Объем) != 0) // Реализация команды Обьем
                        {
                            P0106.StartingPoint = float.NaN;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ErrorHandler.WriteToLog(this, new ErrorArgs(ex.Message, ErrorType.NotFatal));
            }
        }