/// <summary> /// /// </summary> /// <param name="node"></param> /// <returns></returns> static private ReceivePart CreateReceivePart(XmlNode recievepartnode) { XmlElement e = recievepartnode as XmlElement; string str = GetAttribute(e, DeviceDefineNodeNames.ReceivePartDataLength); int rpLength = int.Parse(str); string name = GetAttribute(e, DeviceDefineNodeNames.ReceivePartName, true); ReceivePart rp = new ReceivePart(name, rpLength); foreach (XmlNode node in recievepartnode.ChildNodes) { switch (node.Name) { case DeviceDefineNodeNames.DataField: DataField df = CreateDataField(node); df.IsBytesVolatile = true; rp.Add(df); break; } } ICRCer crcer = GetCRCer(recievepartnode); rp.DataFieldManager.CRCer = crcer; if (rp.DataFieldManager.CRCer == null && rp.DataFieldManager.GetCRCDataField() != null) { throw new ConfigException("not exist CRCer"); } return(rp); }
/// <summary> /// /// </summary> /// <param name="operanode"></param> /// <returns></returns> static private Opera CreateFromOperaNode(string deviceType, XmlNode operaNode) { XmlElement e = operaNode as XmlElement; Opera opera = null; SendPart sp = null; ReceivePartCollection rps = new ReceivePartCollection(); string name = GetAttribute(e, DeviceDefineNodeNames.OperaName); string text = GetAttribute(e, DeviceDefineNodeNames.OperaText, true); //if (text == string.Empty) //{ //} string args = GetAttribute(e, DeviceDefineNodeNames.OperaArgs, true); foreach (XmlNode node in operaNode.ChildNodes) { switch (node.Name) { case DeviceDefineNodeNames.SendPart: sp = CreateSendPart(node); break; case DeviceDefineNodeNames.ReceivePart: ReceivePart rp = CreateReceivePart(node); rps.Add(rp); break; } } opera = new Opera(deviceType, name, text, args); opera.SendPart = sp; opera.ReceiveParts = rps; log.Info("Create opera '{0}', receivepart count '{1}'", name, rps.Count); return(opera); }
private ReceivePart GetReceivePart() { if (_rp == null) { string xmlPath = Application.StartupPath + @"\Config\GateDeviceDefine\DeviceDefine.xml"; ReceivePart rp = ReceivePartFacotry.Create(xmlPath, "vGate100", "receive"); _rp = rp; } return(_rp); }
/// <summary> /// /// </summary> /// <param name="node"></param> /// <returns></returns> private ReceivePart CreateReceivePart(XmlNode recievepartnode) { XmlElement e = recievepartnode as XmlElement; string str = GetAttribute(e, DeviceDefineNodeNames.ReceivePartDataLength); int rpLength = int.Parse(str); string name = GetAttribute(e, DeviceDefineNodeNames.ReceivePartName,true); ReceivePart rp = new ReceivePart(name, rpLength); foreach (XmlNode node in recievepartnode.ChildNodes) { switch (node.Name) { case DeviceDefineNodeNames.DataField: DataField df = CreateDataField(node); df.IsBytesVolatile = true; rp.Add(df); break; } } ICRCer crcer = GetCRCer(recievepartnode); rp.DataFieldManager.CRCer = crcer; if (rp.DataFieldManager.CRCer == null && rp.DataFieldManager.GetCRCDataField() != null) { throw new ConfigException("not exist CRCer"); } return rp; }