/// <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); }
/// <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); }
/// <summary> /// /// </summary> /// <param name="name"></param> /// <returns></returns> public IPicker Create(string name) { IPicker r = MyOperaFactory.CreatePicker(this.DeviceType, this.Node); return(r); }
/// <summary> /// /// </summary> /// <param name="receivePartNode"></param> /// <returns></returns> static public ReceivePart Create(XmlNode receivePartNode) { return(MyOperaFactory.CreateReceivePart(receivePartNode)); }