Exemplo n.º 1
0
        public bool ReadParamFromXml(string path)
        {
            try
            {
                if (File.Exists(path))
                {
                    System.Diagnostics.Debug.WriteLine("start ReadParamFromXml\n");
                    xmlDocument.Load(path);
                    XmlElement root = xmlDocument.DocumentElement;
                    if (root == null)
                    {
                        return(false);
                    }
                    XmlNodeList clsMotionList = xmlDocument.SelectNodes("/ParamCfg/ParamSet");//(XmlElement)root.SelectSingleNode(" / SystemCfg / Motion");
                    if (clsMotionList == null || clsMotionList.Count == 0)
                    {
                        return(false);
                    }

                    XmlNodeList xmlNodeList = clsMotionList.Item(0).ChildNodes;
                    string      strType;
                    string      strParamName  = "";
                    string      strParamVal   = "";
                    string      strParamRight = "";
                    ClearAllParam();
                    _dicTypeParamset.Clear();
                    foreach (XmlNode temp in xmlNodeList)
                    {
                        ParamSet paramSet = new ParamSet();
                        strParamName         = temp.Attributes["ParamName"].Value.Trim();
                        strType              = temp.Attributes["ParamType"].Value.Trim();
                        strParamVal          = temp.Attributes["ParamVal"].Value.Trim();
                        paramSet._enuValType = (ParamSetUnit)Enum.Parse(typeof(ParamSetUnit), strType);
                        strParamRight        = temp.Attributes["ParamRight"].Value.Trim();
                        paramSet._ParamRight = (UserRight)Enum.Parse(typeof(UserRight), strParamRight);
                        //paramSet._strParamVal = strParamVal;
                        //paramSet._strParamValMax = temp.Attributes["ParamValMax"].Value;
                        //paramSet._strParamValMin = temp.Attributes["ParamValMin"].Value;
                        paramSet._ParamClass = temp.Attributes["ParamValClass"].Value.Trim();
                        if (paramSet._enuValType == ParamSetUnit.boolUnit)
                        {
                            paramSet._strParamVal    = Convert.ToBoolean(strParamVal);
                            paramSet._strParamValMax = Convert.ToBoolean(temp.Attributes["ParamValMax"].Value.Trim());
                            paramSet._strParamValMin = Convert.ToBoolean(temp.Attributes["ParamValMin"].Value.Trim());
                            SetBoolParam(strParamName, Convert.ToBoolean(strParamVal));
                        }
                        if (paramSet._enuValType == ParamSetUnit.intUnit)
                        {
                            paramSet._strParamVal    = Convert.ToInt32(strParamVal);
                            paramSet._strParamValMax = Convert.ToInt32(temp.Attributes["ParamValMax"].Value.Trim());
                            paramSet._strParamValMin = Convert.ToInt32(temp.Attributes["ParamValMin"].Value.Trim());
                            SetIntParam(strParamName, Convert.ToInt32(strParamVal));
                        }
                        if (paramSet._enuValType == ParamSetUnit.doubleUnit)
                        {
                            paramSet._strParamVal    = Convert.ToDouble(strParamVal);
                            paramSet._strParamValMax = Convert.ToDouble(temp.Attributes["ParamValMax"].Value.Trim());
                            paramSet._strParamValMin = Convert.ToDouble(temp.Attributes["ParamValMin"].Value.Trim());
                            SetDoubleParam(strParamName, Convert.ToDouble(strParamVal));
                        }
                        if (paramSet._enuValType == ParamSetUnit.stringUnit)
                        {
                            paramSet._strParamVal    = Convert.ToString(strParamVal);
                            paramSet._strParamValMax = Convert.ToString(temp.Attributes["ParamValMax"].Value.Trim());
                            paramSet._strParamValMin = Convert.ToString(temp.Attributes["ParamValMin"].Value.Trim());
                            SetStringParam(strParamName, strParamVal);
                        }
                        SetParam(strParamName, paramSet);
                        SetTypeDic(paramSet._ParamClass, strParamName, paramSet);
                    }
                    System.Diagnostics.Debug.WriteLine("end ReadParamFromXml\n");
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("读取:" + path + " 文件时:" + ex.Message, "Err", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(false);
            }
        }