private void 添加ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            AreaSetting _userActionName = new AreaSetting();

            _userActionName.LbName = "命令名称";
            if (_userActionName.ShowDialog() == DialogResult.OK)
            {
                if (_definedNames != null)
                {
                    foreach (UserDefinedOperation area in _definedNames)
                    {
                        if (area.Name == _userActionName.AreaName)
                        {
                            Helper.ShowMessageBox("提示", "已存在相同名称!");
                            return;
                        }
                    }
                    UserDefinedOperation command = new UserDefinedOperation(_userActionName.AreaName);
                    AddCommand(command);
                }
                else
                {
                    UserDefinedOperation command = new UserDefinedOperation(_userActionName.AreaName);
                    _definedNames = new List <UserDefinedOperation>();
                    _definedNames.Add(command);
                    RefreshAreaList();
                }
            }
        }
 private void  除ToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (Helper.ShowMessageBox("确认", "确认删除此项?") == DialogResult.OK)
     {
         if (_definedNames != null && _definedNames.Count > 0 && _selectRowIndex != -1)
         {
             UserDefinedOperation command = _definedNames[_selectRowIndex];
             DeleteArea(command);
         }
     }
 }
        public void DeleteArea(UserDefinedOperation area)
        {
            lock (_lock)
            {
                if (_definedNames != null)
                {
                    _definedNames.Remove(area);
                }

                RefreshAreaList();
            }
        }
        //添加命令
        public void AddCommand(UserDefinedOperation area)
        {
            lock (_lock)
            {
                if (_definedNames != null)
                {
                    _definedNames.Add(area);
                }
                else
                {
                    Helper.ShowMessageBox("添加失败!", "添加展区失败!");
                }

                RefreshAreaList();
            }
        }
        private void dbCommandList_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            _selectRowIndex = e.RowIndex;
            if (e.Clicks == 1 && e.Button == MouseButtons.Right && e.RowIndex >= 0)
            {
                contextMenuStrip.Show(Cursor.Position);
            }

            if (_selectRowIndex >= 0 && _currentUserDefinedName != _definedNames[_selectRowIndex])
            {
                _currentUserDefinedName = _definedNames[_selectRowIndex];
                if (OnCurrentUserDefinedChanged != null)
                {
                    OnCurrentUserDefinedChanged(this, null);
                }

                dbAreaList.Rows[_selectRowIndex].Selected = true;
            }
        }
        public void RefreshAreaList()
        {
            dbAreaList.Rows.Clear();
            _currentUserDefinedName = null;

            if (_definedNames != null)
            {
                foreach (UserDefinedOperation area in _definedNames)
                {
                    dbAreaList.Rows.Add(area.Name);
                }
            }

            if (dbAreaList.Rows.Count > 0)
            {
                dbAreaList.Rows[dbAreaList.Rows.Count - 1].Selected = true;
                _currentUserDefinedName = _definedNames[dbAreaList.Rows.Count - 1];
            }

            if (OnCurrentUserDefinedChanged != null)
            {
                OnCurrentUserDefinedChanged(this, null);
            }
        }
Beispiel #7
0
        public List <UserDefinedOperation> LoadUserDefinedData()
        {
            try
            {
                #region LoadUserDefinedData
                XmlDocument config = new XmlDocument();
                config.Load(_userdefinedConfigFile);
                XmlNode     root    = config.SelectSingleNode("Root");
                XmlNodeList actions = root.SelectNodes("Action");
                _userdefineNames.Clear();
                foreach (XmlNode action in actions)
                {
                    string _actionName              = action.Attributes["Name"].Value;
                    UserDefinedOperation _deName    = new UserDefinedOperation(_actionName);
                    XmlNodeList          operations = action.SelectNodes("Operation");
                    foreach (XmlNode operation in operations)
                    {
                        string            operationName       = operation.SelectSingleNode("OperationName").InnerText;
                        string            operationTypeString = operation.SelectSingleNode("OperationType").InnerText;
                        CommunicationType operationType       = (CommunicationType)Enum.Parse(typeof(CommunicationType), operationTypeString, true);
                        XmlNode           operationSetting    = operation.SelectSingleNode("OperationSetting");
                        object            setting             = null;
                        if (operationType == CommunicationType.Com)
                        {
                            ComSetting cs = new ComSetting();
                            cs.ComNumber = operationSetting.SelectSingleNode("ComNumber").InnerText;
                            cs.BaudRate  = int.Parse(operationSetting.SelectSingleNode("BaudRate").InnerText);
                            cs.DataBits  = int.Parse(operationSetting.SelectSingleNode("DataBit").InnerText);
                            cs.StopBits  = int.Parse(operationSetting.SelectSingleNode("StopBit").InnerText);
                            cs.Parity    = (Parity)Enum.Parse(typeof(Parity), operationSetting.SelectSingleNode("Parity").InnerText);

                            setting = cs;
                        }
                        else if (operationType == CommunicationType.TCP || operationType == CommunicationType.UDP)
                        {
                            NetworkSetting ns = new NetworkSetting();
                            ns.Ip   = operationSetting.SelectSingleNode("IP").InnerText;
                            ns.Port = int.Parse(operationSetting.SelectSingleNode("Port").InnerText);
                            setting = ns;
                        }

                        string   dataTypeString = operation.SelectSingleNode("OperationDataType").InnerText;
                        DataType dataType       = (DataType)Enum.Parse(typeof(DataType), dataTypeString, true);
                        string   data           = operation.SelectSingleNode("OperationData").InnerText;
                        int      time           = int.Parse(operation.SelectSingleNode("OperationTime").InnerText);

                        UserOperation userOperation = new UserOperation(operationName, operationType, dataType, setting, data, time);
                        _deName.AddOperation(userOperation);
                    }
                    _userdefineNames.Add(_deName);
                }
                return(_userdefineNames);

                #endregion
            }
            catch (Exception ex)
            {
                Helper.ShowMessageBox("提示", "未找到自定义配置文件");
                return(null);
            }
        }
Beispiel #8
0
        //保存自定义配置
        public void SaveUserDefinedData(List <UserDefinedOperation> p_userdefineNames)
        {
            if (p_userdefineNames != null && p_userdefineNames.Count > 0)
            {
                XmlDocument config = new XmlDocument();
                XmlNode     root   = config.CreateNode(XmlNodeType.Element, "Root", null);
                config.AppendChild(root);
                for (int i = 0; i < p_userdefineNames.Count; i++)
                {
                    UserDefinedOperation _currentName = p_userdefineNames[i];
                    XmlNode      action = config.CreateNode(XmlNodeType.Element, "Action", null);
                    XmlAttribute _name  = config.CreateAttribute("Name");
                    _name.Value = _currentName.Name;
                    action.Attributes.Append(_name);
                    for (int _operationcout = 0; _operationcout < _currentName.Operations.Count; _operationcout++)
                    {
                        UserOperation operation     = _currentName.Operations[_operationcout];
                        XmlNode       operationNode = config.CreateNode(XmlNodeType.Element, "Operation", null);
                        XmlNode       operationName = config.CreateNode(XmlNodeType.Element, "OperationName", null);
                        operationName.InnerText = operation.Name;

                        XmlNode operationType = config.CreateNode(XmlNodeType.Element, "OperationType", null);
                        operationType.InnerText = operation.OpreationType.ToString();

                        XmlNode operationDataType = config.CreateNode(XmlNodeType.Element, "OperationDataType", null);
                        operationDataType.InnerText = operation.DataType.ToString();

                        XmlNode operationData = config.CreateNode(XmlNodeType.Element, "OperationData", null);
                        if (operation.DataType == DataType.Hex)
                        {
                            operationData.InnerText = operation.Data.Replace(" ", "").Trim();
                        }
                        else
                        {
                            operationData.InnerText = operation.Data;
                        }

                        XmlNode operationTime = config.CreateNode(XmlNodeType.Element, "OperationTime", null);
                        operationTime.InnerText = operation.DelayTime.ToString();

                        XmlNode operationSetting = config.CreateNode(XmlNodeType.Element, "OperationSetting", null);
                        if (operation.Setting as ComSetting != null)
                        {
                            SaveComSetting(config, operation, operationSetting);
                        }
                        else if (operation.Setting as NetworkSetting != null)
                        {
                            SaveIPSetting(config, operation, operationSetting);
                        }

                        operationNode.AppendChild(operationName);
                        operationNode.AppendChild(operationType);
                        operationNode.AppendChild(operationDataType);
                        operationNode.AppendChild(operationData);
                        operationNode.AppendChild(operationTime);
                        operationNode.AppendChild(operationSetting);
                        action.AppendChild(operationNode);
                    }
                    root.AppendChild(action);
                }

                config.Save(_userdefinedConfigFile);
            }
        }