Exemple #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="val"></param>
        public static TagViewModel LoadFromCSVString(string val)
        {
            string[]        stmp    = val.Split(new char[] { ',' });
            Cdy.Tag.TagType tp      = (Cdy.Tag.TagType)Enum.Parse(typeof(Cdy.Tag.TagType), stmp[4]);
            var             realtag = TagTypeExtends.GetTag(tp);

            realtag.Id            = int.Parse(stmp[0]);
            realtag.Name          = stmp[1];
            realtag.Desc          = stmp[2];
            realtag.Group         = stmp[3];
            realtag.LinkAddress   = stmp[5];
            realtag.ReadWriteType = (ReadWriteMode)(int.Parse(stmp[6]));
            if (stmp[7] != null)
            {
                realtag.Conveter = stmp[7].DeSeriseToValueConvert();
            }

            if (realtag is NumberTagBase)
            {
                (realtag as NumberTagBase).MaxValue = double.Parse(stmp[8], System.Globalization.NumberStyles.Any);
                (realtag as NumberTagBase).MinValue = double.Parse(stmp[9], System.Globalization.NumberStyles.Any);
            }

            if (realtag is FloatingTagBase)
            {
                (realtag as FloatingTagBase).Precision = byte.Parse(stmp[10]);
            }
            if (stmp.Length > 11)
            {
                Cdy.Tag.HisTag histag = new HisTag();
                histag.Type = (Cdy.Tag.RecordType)Enum.Parse(typeof(Cdy.Tag.RecordType), stmp[11]);

                histag.Circle                 = int.Parse(stmp[12]);
                histag.CompressType           = int.Parse(stmp[13]);
                histag.Parameters             = new Dictionary <string, double>();
                histag.TagType                = realtag.Type;
                histag.Id                     = realtag.Id;
                histag.MaxValueCountPerSecond = short.Parse(stmp[14]);

                for (int i = 15; i < stmp.Length; i++)
                {
                    string skey = stmp[i];
                    if (string.IsNullOrEmpty(skey))
                    {
                        break;
                    }
                    double dval = double.Parse(stmp[i + 1]);

                    if (!histag.Parameters.ContainsKey(skey))
                    {
                        histag.Parameters.Add(skey, dval);
                    }

                    i++;
                }
                return(new TagViewModel(realtag, histag));
            }

            return(new TagViewModel(realtag, null));
        }
Exemple #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="val"></param>
        public static Tuple <Tagbase, HisTag> LoadFromCSVString(string val)
        {
            string[]        stmp    = val.Split(new char[] { ',' });
            Cdy.Tag.TagType tp      = (Cdy.Tag.TagType)Enum.Parse(typeof(Cdy.Tag.TagType), stmp[4]);
            var             realtag = TagTypeExtends.GetTag(tp);

            realtag.Id          = int.Parse(stmp[0]);
            realtag.Name        = stmp[1];
            realtag.Desc        = stmp[2];
            realtag.Group       = stmp[3];
            realtag.LinkAddress = stmp[5];

            if (stmp.Length > 6)
            {
                Cdy.Tag.HisTag histag = new HisTag();
                histag.Type = (Cdy.Tag.RecordType)Enum.Parse(typeof(Cdy.Tag.RecordType), stmp[6]);

                histag.Circle       = long.Parse(stmp[7]);
                histag.CompressType = int.Parse(stmp[8]);
                histag.Parameters   = new Dictionary <string, double>();
                histag.TagType      = realtag.Type;
                histag.Id           = realtag.Id;

                for (int i = 9; i < stmp.Length; i++)
                {
                    string skey = stmp[i];
                    if (string.IsNullOrEmpty(skey))
                    {
                        break;
                    }
                    double dval = double.Parse(stmp[i + 1]);

                    if (!histag.Parameters.ContainsKey(skey))
                    {
                        histag.Parameters.Add(skey, dval);
                    }

                    i++;
                }
                return(new Tuple <Tagbase, HisTag>(realtag, histag));
            }

            return(new Tuple <Tagbase, HisTag>(realtag, null));
        }