Bläddra i källkod

core 枚举更新

林豪 左 2 år sedan
förälder
incheckning
ce0d82ee47
7 ändrade filer med 62 tillägg och 37 borttagningar
  1. 8 4
      WCS.Core/Data.cs
  2. 6 6
      WCS.Core/DataBlock.cs
  3. 14 1
      WCS.Core/Extentions.cs
  4. 18 10
      WCS.Core/Ltc.cs
  5. 2 2
      WCS.Core/ProtocolProxyBase.cs
  6. 11 11
      WCS.Core/System.cs
  7. 3 3
      WCS.Core/World.cs

+ 8 - 4
WCS.Core/Data.cs

@@ -1,6 +1,7 @@
 using System;
 using System.Collections;
 using System.Collections.Generic;
+using System.ComponentModel;
 using System.Linq;
 using System.Reflection;
 using System.Runtime.InteropServices;
@@ -10,10 +11,13 @@ using System.Threading.Tasks;
 namespace WCS.Core
 {
     public enum PLCType
-    {
-        西门子 = 1,
-        三菱 = 2,
-        欧姆龙 = 3,
+    { 
+        [Description("西门子")]
+        Siemens = 1,
+        [Description("三菱")]
+        Mitsubishi = 2,
+        [Description("欧姆龙")]
+        Omron = 3,
     }
 
     public struct PLCInfo

+ 6 - 6
WCS.Core/DataBlock.cs

@@ -144,7 +144,7 @@ namespace WCS.Core
             }
             else if (type.IsPrimitive)
             {
-                var revers = Entity.PLCInfo.Type == PLCType.西门子;
+                var revers = Entity.PLCInfo.Type == PLCType.Siemens;
 
                 return ReadPrimitive(type, ref bitStart, revers);
 
@@ -191,7 +191,7 @@ namespace WCS.Core
 
         private string ReadString(ref int bitStart, int strLen)
         {
-            if (Entity.PLCInfo.Type == PLCType.西门子)
+            if (Entity.PLCInfo.Type == PLCType.Siemens)
             {
                 var data = ReadBytes(ref bitStart, (ushort)(strLen + 2));
 
@@ -216,7 +216,7 @@ namespace WCS.Core
 
             if (enumType.GetCustomAttribute<FlagsAttribute>() == null)
             {
-                reverse = Entity.PLCInfo.Type == PLCType.西门子;
+                reverse = Entity.PLCInfo.Type == PLCType.Siemens;
             }
 
             var value = ReadPrimitive(type, ref bitStart, reverse);
@@ -341,7 +341,7 @@ namespace WCS.Core
             }
             else if (type.IsPrimitive)
             {
-                var revers = Entity.PLCInfo.Type == PLCType.西门子;
+                var revers = Entity.PLCInfo.Type == PLCType.Siemens;
                 WritePrimitive(ref bitStart, value, revers);
             }
             else
@@ -353,7 +353,7 @@ namespace WCS.Core
             var data = Configs.StringEncoding.GetBytes(value);
             if (data.Length > strLen)
                 throw new Exception("字符串长度超出");
-            if (Entity.PLCInfo.Type == PLCType.西门子)
+            if (Entity.PLCInfo.Type == PLCType.Siemens)
             {
                 var title = new byte[] { (byte)strLen, (byte)data.Length };
                 data = title.Concat(data).ToArray();
@@ -369,7 +369,7 @@ namespace WCS.Core
             var reverse = false;
             if (etype.GetCustomAttribute<FlagsAttribute>() == null)
             {
-                reverse = Entity.PLCInfo.Type == PLCType.西门子;
+                reverse = Entity.PLCInfo.Type == PLCType.Siemens;
             }
             WritePrimitive(ref bitStart, obj, reverse);
         }

+ 14 - 1
WCS.Core/Extentions.cs

@@ -2,8 +2,10 @@
 using System.Collections;
 using System.Collections.Concurrent;
 using System.Collections.Generic;
+using System.ComponentModel;
 using System.Linq;
 using System.Linq.Expressions;
+using System.Reflection;
 using System.Text;
 using System.Threading.Tasks; 
 
@@ -80,7 +82,18 @@ namespace WCS.Core
             {
                 source.AddRange(item);
             }
-        } 
+        }
+
+        public static string Description<T>(this T source) where T : struct, Enum
+        {
+            var name = Enum.GetName<T>(source);
+            var f = source.GetType().GetField(name);
+            var attr = f.GetCustomAttribute<DescriptionAttribute>();
+            if (attr == null)
+                return source.ToString();
+            else
+                return attr.Description;
+        }
 
     }
 

+ 18 - 10
WCS.Core/Ltc.cs

@@ -1,6 +1,7 @@
 using FreeRedis;
 using System;
 using System.Collections.Concurrent;
+using System.ComponentModel;
 using System.Linq.Expressions;
 using System.Threading;
 using System.Threading.Channels;
@@ -123,7 +124,7 @@ namespace WCS.Core
             }
             finally
             {
-                Log(msg, LogLevel.低, ErrorType.已知);
+                Log(msg, LogLevel.Low, ErrorType.Kown);
             }
         }
 
@@ -150,7 +151,7 @@ namespace WCS.Core
             }
             finally
             {
-                Log(msg, LogLevel.低, ErrorType.已知);
+                Log(msg, LogLevel.Low, ErrorType.Kown);
             }
         }
 
@@ -170,7 +171,7 @@ namespace WCS.Core
             }
             finally
             {
-                Log(msg, LogLevel.低, ErrorType.已知);
+                Log(msg, LogLevel.Low, ErrorType.Kown);
             }
         }
 
@@ -190,7 +191,7 @@ namespace WCS.Core
             }
             finally
             {
-                Log(msg, LogLevel.低, ErrorType.已知);
+                Log(msg, LogLevel.Low, ErrorType.Kown);
             }
         }
     }
@@ -204,7 +205,8 @@ namespace WCS.Core
 
         public override string ToString()
         {
-            return $"类型:{Type},级别:{Level},内容:{Message}";
+            //var a = ErrorType.Unkown;
+            return $"类型:{Type.Description()},级别:{Level.Description()},内容:{Message}";
         }
     }
 
@@ -216,21 +218,27 @@ namespace WCS.Core
 
         public override string ToString()
         {
+            
             return $"{World}-{System}-{Item}";
         }
     }
 
     public enum ErrorType
     {
-        未知 = 0,
-        已知 = 1
+        [Description("未知")]
+        Unkown = 0,
+        [Description("已知")]
+        Kown = 1
     }
 
     public enum LogLevel
     {
-        低 = 0,
-        中 = 1,
-        高 = 2
+        [Description("低")]
+        Low = 0,
+        [Description("中")]
+        Mid = 1,
+        [Description("高")]
+        High = 2
     }
 
     public class KnownException : Exception

+ 2 - 2
WCS.Core/ProtocolProxyBase.cs

@@ -135,7 +135,7 @@ namespace WCS.Core
         {
             var item = Items[propertyName] as PlcItem<T>;
             var res = item.Value;
-            Ltc.Log($"{propertyName}:{res}", LogLevel.低, ErrorType.已知);
+            Ltc.Log($"{propertyName}:{res}", LogLevel.Low, ErrorType.Kown);
             return res;
         }
 
@@ -143,7 +143,7 @@ namespace WCS.Core
         {
             var item = Items[propertyName] as PlcItem<T>;
             item.Value = value;
-            Ltc.Log($"{propertyName}={value}", LogLevel.低, ErrorType.已知);
+            Ltc.Log($"{propertyName}={value}", LogLevel.Low, ErrorType.Kown);
         }
         #endregion
     }

+ 11 - 11
WCS.Core/System.cs

@@ -29,7 +29,7 @@ namespace WCS.Core
 
         public void Log(string msg)
         { 
-            Ltc.Log(msg, LogLevel.低, ErrorType.已知);
+            Ltc.Log(msg, LogLevel.Low, ErrorType.Kown);
         } 
         public void Error(string msg,LogLevel level)
         {
@@ -89,7 +89,7 @@ namespace WCS.Core
             }
             if (SaveLogsToFile)
             { 
-                var arr = logs.GroupBy(v => v.Channel).Select(v => new LogInfo { Channel = v.Key, Level = v.Max(d => d.Level), Type = v.Any(d => d.Type == ErrorType.未知) ? ErrorType.未知 : ErrorType.已知, Message = "\n"+string.Join('\n', v.Select(d => d.Message)) }).ToArray(); 
+                var arr = logs.GroupBy(v => v.Channel).Select(v => new LogInfo { Channel = v.Key, Level = v.Max(d => d.Level), Type = v.Any(d => d.Type == ErrorType.Unkown) ? ErrorType.Unkown : ErrorType.Kown, Message = "\n"+string.Join('\n', v.Select(d => d.Message)) }).ToArray(); 
                 Configs.OnLog?.Invoke(arr);
             }
         }
@@ -106,21 +106,21 @@ namespace WCS.Core
             { 
                 Ltc.SetChannel(channel);
                 Ltc.ClearChannel();
-                Ltc.Log("开始", LogLevel.低, ErrorType.已知);
+                Ltc.Log("开始", LogLevel.Low, ErrorType.Kown);
                 Do(obj);
             }
             catch (KnownException ex)
             {
-                Ltc.Log(ex.Message, ex.Level, ErrorType.已知);
+                Ltc.Log(ex.Message, ex.Level, ErrorType.Kown);
             }
             catch (Exception ex)
             {
                 //Console.WriteLine($"{channel}:\n{ex.GetBaseException().Message}");
-                Ltc.Log(ex.GetBaseException().Message, LogLevel.高, ErrorType.未知);
+                Ltc.Log(ex.GetBaseException().Message, LogLevel.High, ErrorType.Unkown);
             }
             finally
             {
-                Ltc.Log("结束", LogLevel.低, ErrorType.已知);
+                Ltc.Log("结束", LogLevel.Low, ErrorType.Kown);
                 Ltc.Publish(this.World);
             }
         }
@@ -201,7 +201,7 @@ namespace WCS.Core
             }
             if (logs.Count > 0)
             {
-                var arr = logs.GroupBy(v => v.Channel).Select(v => new LogInfo { Channel = v.Key, Level = v.Max(d => d.Level), Type = v.Any(d => d.Type == ErrorType.未知) ? ErrorType.未知 : ErrorType.已知, Message = "\n" + string.Join('\n', v.Select(d => d.Message)) }).ToArray();
+                var arr = logs.GroupBy(v => v.Channel).Select(v => new LogInfo { Channel = v.Key, Level = v.Max(d => d.Level), Type = v.Any(d => d.Type == ErrorType.Unkown) ? ErrorType.Unkown : ErrorType.Kown, Message = "\n" + string.Join('\n', v.Select(d => d.Message)) }).ToArray();
                 Configs.OnLog?.Invoke(arr);
             }
         }
@@ -218,23 +218,23 @@ namespace WCS.Core
             {
                 Ltc.SetChannel(channel);
                 Ltc.ClearChannel();
-                Ltc.Log("开始", LogLevel.低, ErrorType.已知);
+                Ltc.Log("开始", LogLevel.Low, ErrorType.Kown);
                 return Do(obj);
             }
             catch (KnownException ex)
             { 
-                Ltc.Log(ex.Message, ex.Level, ErrorType.已知);
+                Ltc.Log(ex.Message, ex.Level, ErrorType.Kown);
                 throw;
             }
             catch (Exception ex)
             {
                 //Console.WriteLine($"{channel}:\n{ex.GetBaseException().Message}");
-                Ltc.Log(ex.GetBaseException().Message, LogLevel.高, ErrorType.未知);
+                Ltc.Log(ex.GetBaseException().Message, LogLevel.High, ErrorType.Unkown);
                 throw;
             }
             finally
             {
-                Ltc.Log("结束", LogLevel.低, ErrorType.已知);
+                Ltc.Log("结束", LogLevel.Low, ErrorType.Kown);
                 Ltc.Publish(this.World);
             }
         }

+ 3 - 3
WCS.Core/World.cs

@@ -143,7 +143,7 @@ namespace WCS.Core
             }
             catch (Exception ex)
             {
-                Ltc.Log(ex.GetBaseException().Message, LogLevel.高, ErrorType.未知);
+                Ltc.Log(ex.GetBaseException().Message, LogLevel.High, ErrorType.Unkown);
                 throw;
             }
             finally 
@@ -259,12 +259,12 @@ namespace WCS.Core
                 }
                 catch (KnownException ex)
                 {
-                    logs.AddSafe(new LogInfo { Channel = channel, Message = $"{ex.GetBaseException().Message}", Level = ex.Level, Type = ErrorType.已知 });
+                    logs.AddSafe(new LogInfo { Channel = channel, Message = $"{ex.GetBaseException().Message}", Level = ex.Level, Type = ErrorType.Kown });
                     this.Ex().Publish(channel, ex.GetBaseException().Message);
                 }
                 catch (Exception ex)
                 {
-                    logs.AddSafe(new LogInfo { Channel = channel, Message = $"{ex.GetBaseException().Message}", Level = LogLevel.高, Type = ErrorType.未知 });
+                    logs.AddSafe(new LogInfo { Channel = channel, Message = $"{ex.GetBaseException().Message}", Level = LogLevel.High, Type = ErrorType.Unkown });
                     this.Ex().Publish(channel, ex.GetBaseException().Message);
                 }
                 sw.Stop();