Пример #1
0
 private static int GetPropertySize(string type)
 {
     if (TypeSize.ContainsKey(type))
     {
         return(TypeSize[type]);
     }
     else
     {
         return(0);
     }
 }
Пример #2
0
        private bool readInformation(ushort msglen)
        {
            int    keylen  = reader.ReadByte();
            string key     = readASCIIString(keylen);
            string keytype = key.Substring(0, key.IndexOf(' '));
            string keyname = key.Substring(keytype.Length + 1);
            int    arrlen  = getArrayLength(ref keytype);
            int    len     = msglen - 1 - keylen;

            string info = "";

            if (!TypeSize.ContainsKey(keytype))
            {
                for (int i = 0; i < len; i++)
                {
                    info += reader.ReadByte().ToString("X2");
                }
            }
            else
            {
                if (len != typeSize[keytype] * arrlen)
                {
                    Debug.WriteLine("[I]:msglen not match.");
                    return(false);
                }
                if (keytype == "char")
                {
                    info = readASCIIString(len);
                }
                else
                {
                    for (int i = 0; i < arrlen; i++)
                    {
                        switch (keytype)
                        {
                        case "int8_t":
                            info += reader.ReadSByte().ToString();
                            break;

                        case "uint8_t":
                            info += reader.ReadByte().ToString();
                            break;

                        case "int16_t":
                            info += reader.ReadInt16().ToString();
                            break;

                        case "uint16_t":
                            info += reader.ReadUInt16().ToString();
                            break;

                        case "int32_t":
                            info += reader.ReadInt32().ToString();
                            break;

                        case "uint32_t":
                            info += reader.ReadUInt32().ToString();
                            break;

                        case "int64_t":
                            info += reader.ReadInt64().ToString();
                            break;

                        case "uint64_t":
                            info += reader.ReadUInt64().ToString();
                            break;

                        case "float":
                            info += reader.ReadSingle().ToString();
                            break;

                        case "double":
                            info += reader.ReadDouble().ToString();
                            break;

                        case "bool":
                            info += reader.ReadBoolean().ToString();
                            break;
                        }
                        if (i != arrlen - 1)
                        {
                            info += ",";
                        }
                    }
                }
            }
            infomations.Add(new Tuple <string, string>(keyname, info));
            return(true);
        }