private static void IncrementTargetValue(Parameter clone)
        {
            if (clone.TagId == ParameterTagId.ServerId)
            {
                var bytesStr = clone.TargetValue.Split('-');
                var bytes = bytesStr.Reverse().Take(4).Select(s => Convert.ToByte(s, 16)).ToArray();
                var val = BitConverter.ToInt32(bytes, 0);
                val++;
                bytes = BitConverter.GetBytes(val).Reverse().ToArray();
                bytesStr[bytesStr.Length - 1] = $"{bytes[3]:X2}";
                bytesStr[bytesStr.Length - 2] = $"{bytes[2]:X2}";
                bytesStr[bytesStr.Length - 3] = $"{bytes[1]:X2}";
                bytesStr[bytesStr.Length - 4] = $"{bytes[0]:X2}";

                clone.TargetValue = string.Join("-", bytesStr);
            }
            else
            {
                long tmp;
                if (long.TryParse(clone.TargetValue, out tmp))
                {
                    tmp++;
                    clone.TargetValue = $"{tmp:D8}";
                }
            }
        }
        public Parameter GetClone()
        {
            var clone = new Parameter()
            {
                Name = this.Name,
                ObisCode = this.ObisCode,
                TargetValue = this.TargetValue,
                TagId = this.TagId,
                IsActive = this.IsActive,
                IsAutoIncrement = this.IsAutoIncrement,
                IsPartOfMatrixCode = this.IsPartOfMatrixCode,
                IsWriteOnly = this.IsWriteOnly,
                IsReadOnly = this.IsReadOnly,
                IsNameplateOnly = this.IsNameplateOnly,
                IsRandomTargetValue = this.IsRandomTargetValue,
                ModifiedAt = new DateTime(1900, 1, 1),
                CreatedAt = DateTime.Now
            };

            return clone;
        }
        private static void RandomizeTargetValue(Parameter param)
        {

            if (param.TagId == ParameterTagId.InitialKeyM)
            {
                var buffer = new byte[16];
                Rnd.NextBytes(buffer);
                param.TargetValue = buffer.AsHexString("-");
            }
            else
            {
                param.TargetValue = $"{Rnd.Next(1, 9999):D4}";
            }
        }