/// <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); }
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; }
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) //{ //} }
/// <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) { } }