/// <summary>
        /// 
        /// </summary>
        /// <param name="node"></param>
        /// <returns></returns>
        static public ModbusParameterDefine Build(XmlNode node)
        {
            ModbusParameterDefine mpd = null;

            string temp = string.Empty;
            string name = string.Empty;
            string converter = string.Empty;
            string unit = string.Empty;
            int offset = 0;
            TypeCode tp = TypeCode.Int32;
            bool enableNameValue = false;

            //Xdgk.Common
            name = XmlHelper.GetAttribute(node, ParameterNodeNames.Name, false);
            temp = XmlHelper.GetAttribute(node, ParameterNodeNames.Offset, false);
            offset = int.Parse(temp);

            Debug.Assert(offset > 0, "offset must > 0");

            temp = XmlHelper.GetAttribute(node, ParameterNodeNames.TypeCode);
            tp = (TypeCode)Enum.Parse(typeof(TypeCode), temp, true);
            unit = XmlHelper.GetAttribute(node, ParameterNodeNames.Unit, true);
            converter = XmlHelper.GetAttribute(node, ParameterNodeNames.Converter, false);
            temp = XmlHelper.GetAttribute(node, ParameterNodeNames.EnableNameValues, true);
            if (temp != null && temp.Trim().Length > 0)
            {
                enableNameValue = bool.Parse(temp);
            }

            mpd = new ModbusParameterDefine(name, tp, converter, offset);
            mpd.EnableNameValue = enableNameValue;
            mpd.Unit = unit;
            
            // parse NameValueCollection
            //
            XmlNode nameValuesNode = node.SelectSingleNode(NameValueNodeNames.NameValueCollection);
            if (nameValuesNode != null)
            {
                NameValueCollection nameValueCollectioin = XmlNameValueBuilder.BuildNameValueCollection(nameValuesNode);
                mpd.NameValueCollection = nameValueCollectioin;
            }

            // TODO: 2010-07-29 Parse constraint
            //
            XmlNode constraintNode = node.SelectSingleNode(ConstraintNodeNames.Constraint);
            if (constraintNode != null)
            {
                Constraint c = ConstraintBuilder.Build(constraintNode, tp);
                mpd.Constraint = c; 
            }

            return mpd;

        }
예제 #2
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="node"></param>
        /// <returns></returns>
        public static ModbusParameterDefine Build(XmlNode node)
        {
            ModbusParameterDefine mpd = null;

            string temp = string.Empty;
            string name = string.Empty;
            string converter = string.Empty;
            string unit = string.Empty;
            int offset = 0;
            TypeCode tp = TypeCode.Int32;
            bool enableNameValue = false;

            //Xdgk.Common
            name = XmlHelper.GetAttribute(node, ParameterNodeNames.Name, false);
            temp = XmlHelper.GetAttribute(node, ParameterNodeNames.Offset, false);
            offset = int.Parse(temp);

            Debug.Assert(offset > 0, "offset must > 0");

            temp = XmlHelper.GetAttribute(node, ParameterNodeNames.TypeCode);
            tp = (TypeCode)Enum.Parse(typeof(TypeCode), temp, true);
            unit = XmlHelper.GetAttribute(node, ParameterNodeNames.Unit, true);
            converter = XmlHelper.GetAttribute(node, ParameterNodeNames.Converter, false);
            temp = XmlHelper.GetAttribute(node, ParameterNodeNames.EnableNameValues, true);
            if (temp != null && temp.Trim().Length > 0)
            {
                enableNameValue = bool.Parse(temp);
            }

            mpd = new ModbusParameterDefine(name, tp, converter, offset);
            mpd.EnableNameValue = enableNameValue;
            mpd.Unit = unit;

            // parse NameValueCollection
            //
            XmlNode nameValuesNode = node.SelectSingleNode(NameValueNodeNames.NameValueCollection);
            if (nameValuesNode != null)
            {
                NameValueCollection nameValueCollectioin = XmlNameValueBuilder.BuildNameValueCollection(nameValuesNode);
                mpd.NameValueCollection = nameValueCollectioin;
            }

            // TODO: 2010-07-29 Parse constraint
            //
            XmlNode constraintNode = node.SelectSingleNode(ConstraintNodeNames.Constraint);
            if (constraintNode != null)
            {
                Constraint c = ConstraintBuilder.Build(constraintNode, tp);
                mpd.Constraint = c;
            }

            return mpd;
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="noe"></param>
        /// <returns></returns>
        static public ModbusParamterDefineCollection BuildParameterDefineCollection(XmlNode node)
        {
            if( node == null )
                throw new ArgumentNullException("node");

            ModbusParamterDefineCollection mpdc = new ModbusParamterDefineCollection();
            XmlNodeList parameterNodeList = node.SelectNodes(ParameterNodeNames.ParameterDefine);
            foreach (XmlNode pn in parameterNodeList)
            {
                ModbusParameterDefine mpd = Build(pn);
                mpdc.Add(mpd);
            }

            return mpdc;
        }
예제 #4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void cmbParamName_SelectedIndexChanged(object sender, EventArgs e)
        {
            ModbusParameterDefine pd = this.cmbParamName.SelectedItem as ModbusParameterDefine;

            this.cmbParamValue.Text = string.Empty;
            if (pd.EnableNameValue)
            {
                this.cmbParamValue.DataSource    = pd.NameValueCollection;
                this.cmbParamValue.DisplayMember = "Name";
                this.cmbParamValue.ValueMember   = "Value";
                this.cmbParamValue.DropDownStyle = ComboBoxStyle.DropDownList;
            }
            else
            {
                this.cmbParamValue.DataSource    = null;
                this.cmbParamValue.DropDownStyle = ComboBoxStyle.DropDown;
            }
            this.txtUnit.Text = pd.Unit;
        }