diff --git a/Examples/Program.cs b/Examples/Program.cs index c442672..39fbe84 100644 --- a/Examples/Program.cs +++ b/Examples/Program.cs @@ -32,7 +32,7 @@ class Program { Task.Factory.StartNew(async () => { //attaching the logger - Logger.LogLevel = LogLevel.Critical; + Logger.LogLevel = LogLevel.Verbose; Logger.OnNewLogMessage((date, msg) => { Console.WriteLine($"{date.ToString("HH:mm:ss")} {msg}"); }); diff --git a/Examples/TestRegisters.cs b/Examples/TestRegisters.cs index 91db748..acfc887 100644 --- a/Examples/TestRegisters.cs +++ b/Examples/TestRegisters.cs @@ -68,6 +68,8 @@ namespace Examples { [Register(50)] public CurrentState TestEnum { get; private set; } + [Register(100)] + public TimeSpan TsTest2 { get; private set; } } } diff --git a/MewtocolNet/Mewtocol/Subregisters/Register.cs b/MewtocolNet/Mewtocol/Subregisters/Register.cs index fc1b98a..8d46524 100644 --- a/MewtocolNet/Mewtocol/Subregisters/Register.cs +++ b/MewtocolNet/Mewtocol/Subregisters/Register.cs @@ -115,9 +115,14 @@ namespace MewtocolNet.Registers { public string GetValueString () { if (enumType != null && this is NRegister intEnumReg) { + var dict = new Dictionary(); + foreach (var name in Enum.GetNames(enumType)) { - dict.Add((int)Enum.Parse(enumType, name), name); + int enumKey = (int)Enum.Parse(enumType, name); + if(!dict.ContainsKey(enumKey)) { + dict.Add(enumKey, name); + } } if(dict.ContainsKey(intEnumReg.Value)) { @@ -125,6 +130,7 @@ namespace MewtocolNet.Registers { } else { return $"{intEnumReg.Value} (Missing Enum)"; } + } if (this is NRegister shortReg) { return $"{shortReg.Value}{(isUsedBitwise ? $" [{shortReg.GetBitwise().ToBitString()}]" : "")}";