Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        /// <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);
        }
Beispiel #3
0
 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);
 }
Beispiel #4
0
        /// <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;
        }