Ejemplo n.º 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));
        }
Ejemplo n.º 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));
        }
Ejemplo n.º 3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="tagType"></param>
        private void ChangeTagType(Cdy.Tag.TagType tagType)
        {
            Cdy.Tag.Tagbase ntag = null;
            switch (tagType)
            {
            case Cdy.Tag.TagType.Bool:
                ntag = new Cdy.Tag.BoolTag()
                {
                    Id = this.mRealTagMode.Id, Name = mRealTagMode.Name, Desc = mRealTagMode.Desc, LinkAddress = mRealTagMode.LinkAddress, Group = mRealTagMode.Group
                };
                if (mHisTagMode != null)
                {
                    mHisTagMode.TagType = Cdy.Tag.TagType.Bool;
                }
                break;

            case Cdy.Tag.TagType.Byte:
                ntag = new Cdy.Tag.ByteTag()
                {
                    Id = this.mRealTagMode.Id, Name = mRealTagMode.Name, Desc = mRealTagMode.Desc, LinkAddress = mRealTagMode.LinkAddress, Group = mRealTagMode.Group
                };
                if (mHisTagMode != null)
                {
                    mHisTagMode.TagType = Cdy.Tag.TagType.Byte;
                }
                break;

            case Cdy.Tag.TagType.DateTime:
                ntag = new Cdy.Tag.DateTimeTag()
                {
                    Id = this.mRealTagMode.Id, Name = mRealTagMode.Name, Desc = mRealTagMode.Desc, LinkAddress = mRealTagMode.LinkAddress, Group = mRealTagMode.Group
                };
                if (mHisTagMode != null)
                {
                    mHisTagMode.TagType = Cdy.Tag.TagType.DateTime;
                }
                break;

            case Cdy.Tag.TagType.Double:
                ntag = new Cdy.Tag.DoubleTag()
                {
                    Id = this.mRealTagMode.Id, Name = mRealTagMode.Name, Desc = mRealTagMode.Desc, LinkAddress = mRealTagMode.LinkAddress, Group = mRealTagMode.Group
                };
                if (mHisTagMode != null)
                {
                    mHisTagMode.TagType = Cdy.Tag.TagType.Double;
                }
                break;

            case Cdy.Tag.TagType.Float:
                ntag = new Cdy.Tag.FloatTag()
                {
                    Id = this.mRealTagMode.Id, Name = mRealTagMode.Name, Desc = mRealTagMode.Desc, LinkAddress = mRealTagMode.LinkAddress, Group = mRealTagMode.Group
                };
                if (mHisTagMode != null)
                {
                    mHisTagMode.TagType = Cdy.Tag.TagType.Float;
                }
                break;

            case Cdy.Tag.TagType.Int:
                ntag = new Cdy.Tag.IntTag()
                {
                    Id = this.mRealTagMode.Id, Name = mRealTagMode.Name, Desc = mRealTagMode.Desc, LinkAddress = mRealTagMode.LinkAddress, Group = mRealTagMode.Group
                };
                if (mHisTagMode != null)
                {
                    mHisTagMode.TagType = Cdy.Tag.TagType.Int;
                }
                break;

            case Cdy.Tag.TagType.Long:
                ntag = new Cdy.Tag.LongTag()
                {
                    Id = this.mRealTagMode.Id, Name = mRealTagMode.Name, Desc = mRealTagMode.Desc, LinkAddress = mRealTagMode.LinkAddress, Group = mRealTagMode.Group
                };
                if (mHisTagMode != null)
                {
                    mHisTagMode.TagType = Cdy.Tag.TagType.Long;
                }
                break;

            case Cdy.Tag.TagType.Short:
                ntag = new Cdy.Tag.ShortTag()
                {
                    Id = this.mRealTagMode.Id, Name = mRealTagMode.Name, Desc = mRealTagMode.Desc, LinkAddress = mRealTagMode.LinkAddress, Group = mRealTagMode.Group
                };
                if (mHisTagMode != null)
                {
                    mHisTagMode.TagType = Cdy.Tag.TagType.Short;
                }
                break;

            case Cdy.Tag.TagType.String:
                ntag = new Cdy.Tag.StringTag()
                {
                    Id = this.mRealTagMode.Id, Name = mRealTagMode.Name, Desc = mRealTagMode.Desc, LinkAddress = mRealTagMode.LinkAddress, Group = mRealTagMode.Group
                };
                if (mHisTagMode != null)
                {
                    mHisTagMode.TagType = Cdy.Tag.TagType.String;
                }
                break;

            case Cdy.Tag.TagType.UInt:
                ntag = new Cdy.Tag.UIntTag()
                {
                    Id = this.mRealTagMode.Id, Name = mRealTagMode.Name, Desc = mRealTagMode.Desc, LinkAddress = mRealTagMode.LinkAddress, Group = mRealTagMode.Group
                };
                if (mHisTagMode != null)
                {
                    mHisTagMode.TagType = Cdy.Tag.TagType.UInt;
                }
                break;

            case Cdy.Tag.TagType.ULong:
                ntag = new Cdy.Tag.ULongTag()
                {
                    Id = this.mRealTagMode.Id, Name = mRealTagMode.Name, Desc = mRealTagMode.Desc, LinkAddress = mRealTagMode.LinkAddress, Group = mRealTagMode.Group
                };
                if (mHisTagMode != null)
                {
                    mHisTagMode.TagType = Cdy.Tag.TagType.ULong;
                }
                break;

            case Cdy.Tag.TagType.UShort:
                ntag = new Cdy.Tag.UShortTag()
                {
                    Id = this.mRealTagMode.Id, Name = mRealTagMode.Name, Desc = mRealTagMode.Desc, LinkAddress = mRealTagMode.LinkAddress, Group = mRealTagMode.Group
                };
                if (mHisTagMode != null)
                {
                    mHisTagMode.TagType = Cdy.Tag.TagType.UShort;
                }
                break;

            case Cdy.Tag.TagType.IntPoint:
                ntag = new Cdy.Tag.IntPointTag()
                {
                    Id = this.mRealTagMode.Id, Name = mRealTagMode.Name, Desc = mRealTagMode.Desc, LinkAddress = mRealTagMode.LinkAddress, Group = mRealTagMode.Group
                };
                if (mHisTagMode != null)
                {
                    mHisTagMode.TagType = Cdy.Tag.TagType.IntPoint;
                }
                break;

            case Cdy.Tag.TagType.IntPoint3:
                ntag = new Cdy.Tag.IntPoint3Tag()
                {
                    Id = this.mRealTagMode.Id, Name = mRealTagMode.Name, Desc = mRealTagMode.Desc, LinkAddress = mRealTagMode.LinkAddress, Group = mRealTagMode.Group
                };
                if (mHisTagMode != null)
                {
                    mHisTagMode.TagType = Cdy.Tag.TagType.IntPoint3;
                }
                break;

            case Cdy.Tag.TagType.UIntPoint:
                ntag = new Cdy.Tag.UIntPointTag()
                {
                    Id = this.mRealTagMode.Id, Name = mRealTagMode.Name, Desc = mRealTagMode.Desc, LinkAddress = mRealTagMode.LinkAddress, Group = mRealTagMode.Group
                };
                if (mHisTagMode != null)
                {
                    mHisTagMode.TagType = Cdy.Tag.TagType.UIntPoint;
                }
                break;

            case Cdy.Tag.TagType.UIntPoint3:
                ntag = new Cdy.Tag.UIntPoint3Tag()
                {
                    Id = this.mRealTagMode.Id, Name = mRealTagMode.Name, Desc = mRealTagMode.Desc, LinkAddress = mRealTagMode.LinkAddress, Group = mRealTagMode.Group
                };
                if (mHisTagMode != null)
                {
                    mHisTagMode.TagType = Cdy.Tag.TagType.UIntPoint3;
                }
                break;

            case Cdy.Tag.TagType.LongPoint:
                ntag = new Cdy.Tag.LongPointTag()
                {
                    Id = this.mRealTagMode.Id, Name = mRealTagMode.Name, Desc = mRealTagMode.Desc, LinkAddress = mRealTagMode.LinkAddress, Group = mRealTagMode.Group
                };
                if (mHisTagMode != null)
                {
                    mHisTagMode.TagType = Cdy.Tag.TagType.LongPoint;
                }
                break;

            case Cdy.Tag.TagType.LongPoint3:
                ntag = new Cdy.Tag.LongPoint3Tag()
                {
                    Id = this.mRealTagMode.Id, Name = mRealTagMode.Name, Desc = mRealTagMode.Desc, LinkAddress = mRealTagMode.LinkAddress, Group = mRealTagMode.Group
                };
                if (mHisTagMode != null)
                {
                    mHisTagMode.TagType = Cdy.Tag.TagType.LongPoint3;
                }
                break;

            case Cdy.Tag.TagType.ULongPoint:
                ntag = new Cdy.Tag.ULongPointTag()
                {
                    Id = this.mRealTagMode.Id, Name = mRealTagMode.Name, Desc = mRealTagMode.Desc, LinkAddress = mRealTagMode.LinkAddress, Group = mRealTagMode.Group
                };
                if (mHisTagMode != null)
                {
                    mHisTagMode.TagType = Cdy.Tag.TagType.ULongPoint;
                }
                break;

            case Cdy.Tag.TagType.ULongPoint3:
                ntag = new Cdy.Tag.ULongPoint3Tag()
                {
                    Id = this.mRealTagMode.Id, Name = mRealTagMode.Name, Desc = mRealTagMode.Desc, LinkAddress = mRealTagMode.LinkAddress, Group = mRealTagMode.Group
                };
                if (mHisTagMode != null)
                {
                    mHisTagMode.TagType = Cdy.Tag.TagType.ULongPoint3;
                }
                break;

            default:
                break;
            }
            if (ntag != null)
            {
                RealTagMode = ntag;
            }
            IsChanged = true;
        }