예제 #1
0
        public void AddOperation(UserOperation operation)
        {
			//添加元素
            _operations.Add(operation);
        }
예제 #2
0
        public void RemoveOperation(UserOperation operation)
        {
			//删除元素
            _operations.Remove(operation);
        }
        /// <summary>
        /// 加载配置文件
        /// </summary>
        private void LoadConfig()
        {
            try
            {
                XmlDocument config = new XmlDocument();
                config.Load(_configFile);

                XmlNode root = config.SelectSingleNode("Root");

                #region LoadNormalCommand
                XmlNodeList areas = root.SelectNodes("Area");
                _areas.Clear();
                foreach (XmlNode area in areas)
                {
                    string areaName = area.SelectSingleNode("AreaName").InnerText;
                    Area tempArea = new Area(areaName);
                    _areas.Add(tempArea);

                    XmlNodeList actions = area.SelectNodes("Action");
                    foreach (XmlNode action in actions)
                    {
                        string actionName = action.SelectSingleNode("ActionName").InnerText;
                        string actionReceiveData = action.SelectSingleNode("ActionReceiveData").InnerText;
                        UserAction useraction = new UserAction(actionName,actionReceiveData);
                        //tempArea.Actions.Add(useraction);
                        _userAction.Add(useraction);
                        XmlNodeList oprations = action.SelectNodes("Operation");
                        foreach (XmlNode operation in oprations)
                        {
                            string operationName = operation.SelectSingleNode("OperationName").InnerText;
                            string operationTypeString = operation.SelectSingleNode("OperationType").InnerText;
                            OprationType operationType = (OprationType)Enum.Parse(typeof(OprationType),operationTypeString,true);
                            XmlNode operationSetting = operation.SelectSingleNode("OperationSetting");
                            object setting = null;
                            if (operationType == OprationType.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 == OprationType.TCP || operationType == OprationType.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);
                            _userOperation.Add(userOperation);
                        }
                    }

                }
                _arealist.Refresh();
                #endregion
            }
            catch(Exception ex)
            {
                MessageBox.Show("未找到配置命令!");
                
            }

        }
        private static void SaveComSetting(XmlDocument config, UserOperation operation, XmlNode operationSetting)
        {
            ComSetting cs = operation.Setting as ComSetting;
            XmlNode comNumber = config.CreateNode(XmlNodeType.Element, "ComNumber", null);
            comNumber.InnerText = cs.ComNumber;

            XmlNode baudRate = config.CreateNode(XmlNodeType.Element, "BaudRate", null);
            baudRate.InnerText = cs.BaudRate.ToString();

            XmlNode dataBit = config.CreateNode(XmlNodeType.Element, "DataBit", null);
            dataBit.InnerText = cs.DataBits.ToString();

            XmlNode stopBit = config.CreateNode(XmlNodeType.Element, "StopBit", null);
            stopBit.InnerText = cs.StopBits.ToString();

            XmlNode parity = config.CreateNode(XmlNodeType.Element, "Parity", null);
            parity.InnerText = cs.Parity.ToString();

            operationSetting.AppendChild(comNumber);
            operationSetting.AppendChild(baudRate);
            operationSetting.AppendChild(dataBit);
            operationSetting.AppendChild(stopBit);
            operationSetting.AppendChild(parity);
        }
        private static void SaveIPSetting(XmlDocument config, UserOperation operation, XmlNode operationSetting)
        {
            NetworkSetting ns = operation.Setting as NetworkSetting;
            XmlNode ip = config.CreateNode(XmlNodeType.Element, "IP", null);
            ip.InnerText = ns.Ip;

            XmlNode port = config.CreateNode(XmlNodeType.Element, "Port", null);
            port.InnerText = ns.Port.ToString();

            operationSetting.AppendChild(ip);
            operationSetting.AppendChild(port);
        }
예제 #6
0
 public void RemoveOperation(UserOperation operation)
 {
     //删除元素
     _operations.Remove(operation);
 }
예제 #7
0
 public void AddOperation(UserOperation operation)
 {
     //添加元素
     _operations.Add(operation);
 }