Esempio n. 1
0
        /* ======================================================================================== */
        #endregion

        /// <summary>
        ///
        /// </summary>
        /// <param name="device"></param>
        public TreeNode_EthernetDevice(LogixDevice device)
            : base()
        {
            // Проверка входных параметров.
            if (device == null)
            {
                //throw new ArgumentNullException("TreeNode_EthernetDevice constructor contains a null argument!");
                return;
            }

            // Присваиваем устройство ассоциированное с данным узлом и создаем под него задачу.
            this.Device = device;
            this.Task   = new LogixTask(device);

            // Вызываем прорисовку анимации узла.
            this.Refresh();

            // Подписываемся на события.
            this.Device.PropertyWasChanged += device_PropertyWasChanged;
            this.Device.Message            += message;

            this.Task.StateWasChanged     += task_StateWasChanged;
            this.Task.TagsValueWasChanged += task_TagsValueWasChanged;
            this.Task.TagsValueWasReaded  += task_TagsValueWasReaded;
            this.Task.TagsValueWasWrited  += task_TagsValueWasWrited;
            this.Task.Message             += message;
        }
Esempio n. 2
0
 /// <summary>
 /// Вызывает "Событие при изменении значения одного из свойств устройства".
 /// </summary>
 /// <param name="device"></param>
 private void Event_DevicePropertyWasChanged(LogixDevice device)
 {
     if (this.DevicePropertyWasChanged != null)
     {
         this.DevicePropertyWasChanged(this, new DeviceEventArgs(device));
     }
 }
Esempio n. 3
0
        /// <summary>
        /// Подписка на событие : ToolStripButton : Нажата кнопка.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void toolStripButton_Add_Click(object sender, EventArgs e)
        {
            string plcName = "NewPLC_";

            for (int ix = 0; ix < 1000; ix++)
            {
                if (!this.CLXDevicesByName.ContainsKey(plcName + ix.ToString()))
                {
                    plcName = plcName + ix.ToString();
                    break;
                }
            }

            LogixDevice             newCLXDevice           = new LogixDevice(plcName, new System.Net.IPAddress(new byte[] { 0, 0, 0, 0 }), 0);
            TreeNode_EthernetDevice treeNodeEthernetDevice = new TreeNode_EthernetDevice(newCLXDevice);

            this.Add(treeNodeEthernetDevice);
            this.treeView.SelectedNode = treeNodeEthernetDevice;
        }
Esempio n. 4
0
        /* ======================================================================================== */
        #endregion

        #region [ PUBLIC METHODS ]
        /* ======================================================================================== */
        /// <summary>
        /// Добавляет новое устройство по умолчанию в контейнер.
        /// </summary>
        /// <param name="namePrefix">Префикс имени по умолчанию для добваления. После текущего имени следуют символы цифр.</param>
        /// <param name="defaultIpAddress">IP Адрес устройства по умолчанию.</param>
        /// <returns></returns>
        public bool Add(string namePrefix, byte [] defaultIpAddress)
        {
            bool   result;
            string plcName = namePrefix;

            for (int ix = 0; ix < 1000; ix++)
            {
                if (!this.CLXDevicesByName.ContainsKey(plcName + ix.ToString()))
                {
                    plcName = plcName + ix.ToString();
                    break;
                }
            }

            LogixDevice             newCLXDevice           = new LogixDevice(plcName, new System.Net.IPAddress(defaultIpAddress), 0);
            TreeNode_EthernetDevice treeNodeEthernetDevice = new TreeNode_EthernetDevice(newCLXDevice);

            result = this.Add(treeNodeEthernetDevice);
            this.treeView.SelectedNode = treeNodeEthernetDevice;

            return(result);
        }
Esempio n. 5
0
        /// <summary>
        /// Устанавливает настройки из xml объекта.
        /// </summary>
        /// <param name="xelem">Xml объект Settings.</param>
        /// <returns>Возвращает true при успешном результате.</returns>
        public bool SetXSettings(XElement xelem)
        {
            // Проверяем входные параметры.
            if (!xelem.ExistAs("Devices"))
            {
                return(false);
            }

            // Очищаем все устройства в списке.
            this.Clear();

            // Добавляем новые устройства из списка.
            foreach (XElement xDevice in xelem.Elements("Device"))
            {
                LogixDevice newCLXDevice = new LogixDevice();
                if (newCLXDevice.SetXElement(xDevice))
                {
                    this.Add(new TreeNode_EthernetDevice(newCLXDevice));
                }
            }

            return(true);
        }
Esempio n. 6
0
 /// <summary>
 /// Создает новый аргумент события.
 /// </summary>
 /// <param name="device"></param>
 public DeviceEventArgs(LogixDevice device)
 {
     this.Device = device;
 }