/// <summary>
        /// Convert fields to string
        /// </summary>
        /// <returns></returns>
        public string FieldsToString()
        {
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.Append("\r\n");
            foreach (KeyValuePair <int, byte[]> item in dataElements)
            {
                stringBuilder
                .Append(FIELDS.ValueOf(item.Key))
                .Append(" : ")
                .Append(StringUtil.FromByteArray(item.Value))
                .Append("\r\n");
            }

            stringBuilder.Append("\r\n");
            return(stringBuilder.ToString());
        }
        /// <summary>
        /// Parse body
        /// </summary>
        private void parseBody()
        {
            BitArray pb = StringUtil.BitArrayFromHexString(StringUtil.FromByteArray(primaryBitmap));

            MessageParser parser = new MessageParser(body);

            for (int i = 1; i < pb.Count; i++)
            {
                int o = i + 1;
                if (!pb.Get(i))
                {
                    continue;
                }

                FIELDS field = FIELDS.ValueOf(o);

                byte[] fieldData = parser.parse(field);

                AddElement(field, fieldData);
            }
        }
 /// <summary>
 /// Get string representation of field no
 /// </summary>
 /// <param name="fieldNo">Field number</param>
 /// <returns>Field value in string</returns>
 public string GetStringField(int fieldNo)
 {
     return(GetStringField(FIELDS.ValueOf(fieldNo)));
 }
 /// <summary>
 /// Get string representation of field no
 /// </summary>
 /// <param name="fieldNo">Field no</param>
 /// <param name="asciiFix">Fix ascii characters</param>
 /// <returns>Field value in string</returns>
 public string GetStringField(int fieldNo, bool asciiFix)
 {
     return(GetStringField(FIELDS.ValueOf(fieldNo), asciiFix));
 }
 public DataElement <T> SetField(int no, byte[] value)
 {
     SetField(FIELDS.ValueOf(no), value);
     return(this);
 }