/// <summary>
 /// 构造TLV结构
 /// </summary>
 /// <param name="tag">标签</param>
 /// <param name="len">长度</param>
 /// <param name="val">值</param>
 public TLV_Structure(C_Global.CEnum.TagName tag, C_Global.CEnum.TagFormat format, uint len, byte[] val)
 {
     this.m_Tag          = tag;
     this.m_TagFormat    = format;
     this.m_uiValueLen   = len;
     this.m_bValueBuffer = new byte[this.m_uiValueLen];
     this.init(len, val);
 }
Esempio n. 2
0
 public TagStruct(C_Global.CEnum.TagName _tag, C_Global.CEnum.TagFormat _format, uint _len, byte[] _tag_buf)
 {
     tag     = _tag;
     format  = _format;
     len     = _len;
     tag_buf = new byte[len];
     tag_buf = _tag_buf;
 }
Esempio n. 3
0
        public void AddTagKey(C_Global.CEnum.TagName tag, C_Global.CEnum.TagFormat style, uint len, byte[] val)
        {
            int i = 0;

            for (i = 0; i < structLen; i++)
            {
                if (null == m_tagList[i])
                {
                    break;
                }
            }
            m_tagList[i] = new TagStruct(tag, style, len, val);
        }
        /// <summary>
        /// 构造TLV结构体
        /// </summary>
        /// <param name="tlv">TLV结构体</param>
        /// <param name="len">长度</param>
        public TLV_Structure(byte[] tlv, uint len)            //返回整个TLV的长度
        {
            if (tlv == null || tlv.Length < 4)
            {
                return;
            }
            try
            {
                this.m_Tag          = (CEnum.TagName)(tlv[0] + (tlv[1] << 8));
                this.m_uiValueLen   = (uint)tlv[2] * 255 + (uint)tlv[3];
                this.m_bValueBuffer = new byte[this.m_uiValueLen];

                byte[] val = new byte[tlv.Length - 4];
                System.Array.Copy(tlv, 4, val, 0, tlv.Length - 4);

                this.init((uint)tlv.Length - 4, val);
            }
            catch (System.Exception)
            {
            }
            //if (tlv == null || tlv.Length < 4)
            //    return;
            //try
            //{
            //    this.m_Tag = (CEnum.TagName)(tlv[0] + (tlv[1] << 8));
            //    this.m_TagFormat = (CEnum.TagFormat)(tlv[2] + (tlv[3] << 8));

            //    byte[] pLengthBuffer = new byte[4];

            //    pLengthBuffer[0] = tlv[4];
            //    pLengthBuffer[1] = tlv[5];
            //    pLengthBuffer[2] = tlv[6];
            //    pLengthBuffer[3] = tlv[7];

            //    this.m_uiValueLen = BitConverter.ToUInt32(pLengthBuffer, 0);

            //    this.m_bValueBuffer = new byte[this.m_uiValueLen];

            //    byte[] val = new byte[tlv.Length - MAX_TLV_HEADLENGTH];
            //    Array.Copy(tlv, MAX_TLV_HEADLENGTH, val, 0, tlv.Length - MAX_TLV_HEADLENGTH);

            //    this.init((uint)tlv.Length - MAX_TLV_HEADLENGTH, val);
            //}
            //catch (System.Exception)
            //{

            //}
        }
Esempio n. 5
0
        /// <summary>
        /// 构造TLV结构体
        /// </summary>
        /// <param name="tlv">TLV结构体</param>
        /// <param name="len">长度</param>
        public TLV_Structure(byte[] tlv, uint len)            //返回整个TLV的长度
        {
            if (tlv == null || tlv.Length < 4)
            {
                return;
            }
            try
            {
                this.m_Tag          = (C_Global.CEnum.TagName)(tlv[0] + (tlv[1] << 8));
                this.m_uiValueLen   = (uint)tlv[2] * 255 + (uint)tlv[3];
                this.m_bValueBuffer = new byte[this.m_uiValueLen];

                byte[] val = new byte[tlv.Length - 4];
                System.Array.Copy(tlv, 4, val, 0, tlv.Length - 4);

                this.init((uint)tlv.Length - 4, val);
            }
            catch (System.Exception)
            {
            }
        }