Beispiel #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="node"></param>
        /// <returns></returns>
        static internal ReceivePart CreateReceivePart(XmlNode receivePartNode)
        {
            XmlElement e        = receivePartNode as XmlElement;
            string     str      = XmlHelper.GetAttribute(e, DeviceDefineNodeNames.ReceivePartDataLength);
            int        rpLength = int.Parse(str);

            string name = XmlHelper.GetAttribute(e, DeviceDefineNodeNames.ReceivePartName, true);

            ReceivePart rp = new ReceivePart(name, rpLength);

            rp.DataFieldManager.CRCBegin = MyOperaFactory.GetCRCBegin(e);

            foreach (XmlNode node in receivePartNode.ChildNodes)
            {
                switch (node.Name)
                {
                case DeviceDefineNodeNames.DataField:
                    DataField df = MyOperaFactory.CreateDataField(node);
                    df.IsBytesVolatile = true;
                    rp.Add(df);
                    break;
                }
            }
            ICRCer crcer = MyOperaFactory.GetCRCer(receivePartNode);

            rp.DataFieldManager.CRCer = crcer;

            if (rp.DataFieldManager.CRCer == null &&
                rp.DataFieldManager.GetCRCDataField() != null)
            {
                throw new ConfigException("not exist CRCer");
            }
            return(rp);
        }
Beispiel #2
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public IOpera CreateOpera(string operaName)
        {
            IOpera opera = MyOperaFactory.Create(
                this.DeviceType,
                operaName,
                this.OperaDefineNode
                );

            if (opera == null)
            {
                string s = string.Format(
                    "can not create opera with '{0} {1}'",
                    this.DeviceType, operaName);

                throw new InvalidOperationException(s);
            }

            return(opera);
        }
Beispiel #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        public IPicker Create(string name)
        {
            IPicker r = MyOperaFactory.CreatePicker(this.DeviceType, this.Node);

            return(r);
        }
Beispiel #4
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="receivePartNode"></param>
 /// <returns></returns>
 static public ReceivePart Create(XmlNode receivePartNode)
 {
     return(MyOperaFactory.CreateReceivePart(receivePartNode));
 }