示例#1
0
        private void ParseHeaders()
        {
            foreach (IMessageHeaderConfig hdrCfg in _msgCfg.Headers)
            {
                CheckToken(hdrCfg.Length, hdrCfg, null);
                MessageElement hdr   = hdrCfg.GetNewHeader();
                byte[]         bytes = new byte[hdrCfg.Length];
                Array.Copy(_bytes, _token, bytes, 0, hdrCfg.Length);
                hdr.SetValue(bytes);
                _struct.Headers.Add(hdr);

                if (hdrCfg is MessageBitMapConfig)
                {
                    MessageBitMap bitMap = bytes;
                    bitMap.FieldSeq = 0;
                    _bitMap.Add(bitMap);
                }
                else if (hdrCfg is MessageTypeConfig)
                {
                    _messageType = bytes;
                }
                else
                {
                    MessageHeaderConfig cfg = (MessageHeaderConfig)hdrCfg;
                    if (!String.IsNullOrEmpty(cfg.Name))
                    {
                        _headers[cfg.Name] = bytes;
                    }
                }

                _token += hdrCfg.Length;
            }
        }
示例#2
0
 internal void Add(MessageBitMap bitMap)
 {
     bitMap.StartBit = _bitMaps.Count > 0 ? _bitMaps.Last().StartBit + _bitMaps.Last().Length * 8 : 1;
     _bitMaps.Add(bitMap);
 }