Beispiel #1
0
 ///<summary>
 ///Get UTF string value from DLMS data.
 ///</summary>
 ///<param name="buff">
 ///Received DLMS data.
 ///</param>
 ///<param name="info">
 ///Data info.
 ///</param>
 ///<returns>
 ///Parsed UTF string value.
 ///</returns>
 private static object GetUtfString(GXByteBuffer buff, GXDataInfo info, bool knownType)
 {
     object value;
     int len;
     if (knownType)
     {
         len = buff.Size;
     }
     else
     {
         len = GXCommon.GetObjectCount(buff);
         // If there is not enough data available.
         if (buff.Size - buff.Position < len)
         {
             info.Complete = false;
             return null;
         }
     }
     if (len > 0)
     {
         value = buff.GetStringUtf8(buff.Position, len);
     }
     else
     {
         value = "";
     }
     if (info.xml != null)
     {
         info.xml.AppendLine(info.xml.GetDataType(info.Type), "Value", value);
     }
     return value;
 }