소스 검색

版本更新

Shun 2 년 전
부모
커밋
b39219b478

+ 7 - 7
src/YSAI.DAQ/YSAI.Beckhoff/BeckhoffData.cs

@@ -18,15 +18,14 @@ namespace YSAI.Beckhoff
             /// 唯一标识符
             /// </summary>
             [Description("唯一标识符")]
-            [Display(false, true, Core.data.ParamStructure.subset.propertie.dataCate.text)]
             public string? SN { get; set; } = Guid.NewGuid().ToUpperNString();
 
             /// <summary>
             /// 设备的网络ID
             /// </summary>
             [Description("设备的网络ID")]
-            [Verify(@"^(25[0-4]|2[0-4]\d]|[01]?\d{2}|[1-9])\.(25[0-5]|2[0-4]\d]|[01]?\d?\d)\.(25[0-5]|2[0-4]\d]|[01]?\d?\d)\.(25[0-4]|2[0-4]\d]|[01]?\d{2}|[1-9])$", "输入有误")]
-            [Display(true, true, Core.data.ParamStructure.subset.propertie.dataCate.text)]
+            [Verify(@"^(25[0-4]|2[0-4]\d]|[01]?\d{2}|[1-9])\.(25[0-5]|2[0-4]\d]|[01]?\d?\d)\.(25[0-5]|2[0-4]\d]|[01]?\d?\d)\.(25[0-4]|2[0-4]\d]|[01]?\d{2}|[1-9]\.*)$", "输入有误")]
+            [Display(true, true, true, Core.data.ParamStructure.dataCate.text)]
             public string AmsNetID { get; set; } = "192.168.66.130.1.1";
 
             /// <summary>
@@ -34,7 +33,7 @@ namespace YSAI.Beckhoff
             /// </summary>
             [Description("端口")]
             [Verify(@"^[0-9]*[1-9][0-9]*$", "输入有误")]
-            [Display(true, true, Core.data.ParamStructure.subset.propertie.dataCate.unmber)]
+            [Display(true, true, Core.data.ParamStructure.dataCate.unmber)]
             public int Port { get; set; } = 851;
 
             /// <summary>
@@ -42,15 +41,16 @@ namespace YSAI.Beckhoff
             /// </summary>
             [Description("任务数量")]
             [Verify(@"^[0-9]*[1-9][0-9]*$", "输入有误")]
-            [Display(true, true, Core.data.ParamStructure.subset.propertie.dataCate.unmber)]
+            [Display(true, true, Core.data.ParamStructure.dataCate.unmber)]
             public int TaskNumber { get; set; } = 5;
 
             /// <summary>
             /// 任务处理间隔(毫秒)
             /// </summary>
-            [Description("任务处理间隔(ms)")]
+            [Description("任务处理间隔")]
+            [Unit("ms")]
             [Verify(@"^[0-9]*[1-9][0-9]*$", "输入有误")]
-            [Display(true, true, Core.data.ParamStructure.subset.propertie.dataCate.unmber)]
+            [Display(true, true, Core.data.ParamStructure.dataCate.unmber)]
             public int TaskHandleInterval { get; set; } = 100;
         }
     }

+ 31 - 25
src/YSAI.DAQ/YSAI.Beckhoff/BeckhoffOperate.cs

@@ -1,8 +1,10 @@
 using System.Collections.Concurrent;
+using System.Reflection;
 using TwinCAT;
 using TwinCAT.Ads;
 using TwinCAT.PlcOpen;
 using TwinCAT.TypeSystem;
+using YSAI.Core.attribute;
 using YSAI.Core.data;
 using YSAI.Core.@interface;
 using YSAI.Core.virtualAddress;
@@ -731,19 +733,23 @@ namespace YSAI.Beckhoff
             {
                 //通过反射得到参数信息
                 List<LibInstanceParam>? libInstanceParams = ReflexTool.GetClassAllPropertyData<BeckhoffData.Basics>();
-                string message = TAG.Replace("Operate", string.Empty);
+                //名称
+                string name = TAG.Replace("Operate", string.Empty);
+                //命名空间
                 string nameSpace = "YSAI.Beckhoff.BeckhoffOperate";
+                //对象实例
                 BeckhoffData.Basics beckhoffData = new BeckhoffData.Basics();
+                //参数结构体
                 ParamStructure? ParamStructure = new ParamStructure()
                 {
-                    Name = message,
-                    Description = message,
+                    Name = name,
+                    Description = name,
                     Subset = new List<ParamStructure.subset>
                         {
                             new ParamStructure.subset
                             {
-                                Description = message,
-                                Name = message,
+                                Description = name,
+                                Name = name,
                                 Propertie = new List<ParamStructure.subset.propertie>()
                             }
                         }
@@ -751,29 +757,38 @@ namespace YSAI.Beckhoff
                 ParamStructure.Subset[0].Propertie.Add(new ParamStructure.subset.propertie
                 {
                     PropertyName = "ServiceName",
-                    Description = "实现类名",
+                    Description = "命名空间",
                     Show = false,
                     Use = false,
-                    Initial = nameSpace,
                     Default = nameSpace,
-                    DataCate = ParamStructure.subset.propertie.dataCate.text
+                    DataCate = ParamStructure.dataCate.text
                 });
                 foreach (var lib in libInstanceParams)
                 {
-                    string param = ReflexTool.GetModelValue(lib.Name, beckhoffData);
+                    //默认值
+                    string Default = ReflexTool.GetModelValue(lib.Name, beckhoffData);
+                    //前端展示特性
+                    DisplayAttribute? displayAttribute = typeof(BeckhoffData.Basics).GetProperty(lib.Name).GetCustomAttribute<DisplayAttribute>();
+                    //验证特性
+                    VerifyAttribute? verifyAttribute = typeof(BeckhoffData.Basics).GetProperty(lib.Name).GetCustomAttribute<VerifyAttribute>();
+                    //单位特性
+                    UnitAttribute? unitAttribute = typeof(BeckhoffData.Basics).GetProperty(lib.Name).GetCustomAttribute<UnitAttribute>();
+
                     ParamStructure.subset.propertie propertie = new ParamStructure.subset.propertie
                     {
                         PropertyName = lib.Name,
                         Description = lib.Describe,
-                        IsShow = true,
-                        Default = param,
-                        Value = param
+                        Show = displayAttribute?.Show,
+                        Use = displayAttribute?.Use,
+                        DataCate = displayAttribute?.DataCate,
+                        Regex = verifyAttribute?.Regex ?? null,
+                        FailTips = verifyAttribute?.FailTips ?? null,
+                        Default = Default
                     };
 
-                    switch (lib.ParamType)
+                    switch (displayAttribute.DataCate)
                     {
-                        case "Enum":
-                            propertie.DataCate = ParamStructure.subset.propertie.dataCate.select;
+                        case Core.data.ParamStructure.dataCate.select:
                             propertie.Options = new List<ParamStructure.subset.propertie.options>();
                             foreach (var val in lib.EnumArray as List<dynamic>)
                             {
@@ -790,16 +805,7 @@ namespace YSAI.Beckhoff
                             }
                             break;
 
-                        case "Int32":
-                            propertie.DataCate = ParamStructure.subset.propertie.dataCate.unmber;
-                            break;
-
-                        case "String":
-                            propertie.DataCate = ParamStructure.subset.propertie.dataCate.text;
-                            break;
-
-                        case "Boolean":
-                            propertie.DataCate = ParamStructure.subset.propertie.dataCate.radio;
+                        case Core.data.ParamStructure.dataCate.radio:
                             propertie.Options = new List<ParamStructure.subset.propertie.options>();
                             propertie.Options.Add(new ParamStructure.subset.propertie.options
                             {

+ 1 - 1
src/YSAI.DAQ/YSAI.Beckhoff/YSAI.Beckhoff.csproj

@@ -14,7 +14,7 @@
 
 	<ItemGroup>
 		<PackageReference Include="Beckhoff.TwinCAT.Ads" Version="6.1.86" />
-		<PackageReference Include="YSAI.Core" Version="1.0.0.74" />
+		<PackageReference Include="YSAI.Core" Version="1.0.0.75" />
 	</ItemGroup>
 
 	<!--<ItemGroup>

+ 1 - 1
src/YSAI.DAQ/YSAI.Can/YSAI.Can.csproj

@@ -17,7 +17,7 @@
   </ItemGroup>
 
   <ItemGroup>
-    <PackageReference Include="YSAI.Core" Version="1.0.0.74" />
+    <PackageReference Include="YSAI.Core" Version="1.0.0.75" />
   </ItemGroup>
 
   <ItemGroup>

+ 1 - 1
src/YSAI.DAQ/YSAI.Core/YSAI.Core.csproj

@@ -5,7 +5,7 @@
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
     <GeneratePackageOnBuild>True</GeneratePackageOnBuild>
-    <Version>1.0.0.75</Version>
+    <Version>1.0.0.76</Version>
     <Authors>Shun</Authors>
     <Company>YSAI</Company>
     <Product>SCADA</Product>

+ 9 - 3
src/YSAI.DAQ/YSAI.Core/attribute/DisplayAttribute.cs

@@ -4,18 +4,19 @@ using static YSAI.Core.data.ParamStructure;
 namespace YSAI.Core.attribute
 {
     /// <summary>
-    /// WEB端展示特性
+    /// 展示特性
     /// </summary>
     [AttributeUsage(AttributeTargets.All)]
     public class DisplayAttribute : Attribute
     {
         /// <summary>
-        /// WEB端展示
+        /// 展示
         /// </summary>
         /// <param name="Use">是否使用</param>
         /// <param name="Show">是否显示</param>
+        /// <param name="MustFillIn">必须填写</param>
         /// <param name="DataCate">数据类型</param>
-        public DisplayAttribute(bool Use, bool Show, ParamStructure.dataCate DataCate)
+        public DisplayAttribute(bool Use, bool Show,bool MustFillIn, ParamStructure.dataCate DataCate)
         {
             this.Use = Use;
             this.Show = Show;
@@ -36,6 +37,11 @@ namespace YSAI.Core.attribute
         /// </summary>
         public bool Use { get; set; }
 
+        /// <summary>
+        /// 必须填写
+        /// </summary>
+        public bool MustFillIn { get; set; }
+
         /// <summary>
         /// 数据类型
         /// </summary>

+ 19 - 9
src/YSAI.DAQ/YSAI.Core/data/ParamStructure.cs

@@ -32,7 +32,12 @@ namespace YSAI.Core.data
             /// <summary>
             /// 数字框
             /// </summary>
-            unmber
+            unmber,
+
+            /// <summary>
+            /// 上传
+            /// </summary>
+            upload
         }
 
         /// <summary>
@@ -85,7 +90,7 @@ namespace YSAI.Core.data
                 /// 数据类型
                 /// </summary>
                 [JsonConverter(typeof(StringEnumConverter))]
-                public dataCate DataCate { get; set; }
+                public dataCate? DataCate { get; set; }
 
                 /// <summary>
                 /// 默认值
@@ -101,41 +106,46 @@ namespace YSAI.Core.data
                 /// <summary>
                 /// 描述
                 /// </summary>
-                public string Description { get; set; }
+                public string? Description { get; set; }
 
                 /// <summary>
                 /// 属性名称
                 /// </summary>
-                public string PropertyName { get; set; }
+                public string? PropertyName { get; set; }
 
                 /// <summary>
                 /// 是否显示,
                 /// true:展示
                 /// false:隐藏
                 /// </summary>
-                public bool Show { get; set; } = true;
+                public bool Show { get; set; }
 
                 /// <summary>
                 /// 是否使用,
                 /// false:不让输入
                 /// true:正常输入
                 /// </summary>
-                public bool Use { get; set; } = true;
+                public bool Use { get; set; }
+
+                /// <summary>
+                /// 必须填写
+                /// </summary>
+                public bool MustFillIn { get; set; }
 
                 /// <summary>
                 /// 正则表达式
                 /// </summary>
-                public string Regex { get; set; }
+                public string? Regex { get; set; }
 
                 /// <summary>
                 /// 输入错误提示
                 /// </summary>
-                public string FailTips { get; set; }
+                public string? FailTips { get; set; }
 
                 /// <summary>
                 /// 非必填项集合
                 /// </summary>
-                public List<options>? Options { get; set; } = null;
+                public List<options>? Options { get; set; }
 
                 /// <summary>
                 /// 非必填项

+ 1 - 1
src/YSAI.DAQ/YSAI.DB/YSAI.DB.csproj

@@ -18,7 +18,7 @@
 		<PackageReference Include="System.Data.OracleClient" Version="1.0.8" />
 		<PackageReference Include="System.Data.SqlClient" Version="4.8.5" />
 		<PackageReference Include="System.Data.SQLite" Version="1.0.118" />
-		<PackageReference Include="YSAI.Core" Version="1.0.0.74" />
+		<PackageReference Include="YSAI.Core" Version="1.0.0.75" />
 	</ItemGroup>
 	<!--<ItemGroup>
 		<ProjectReference Include="..\YSAI.Core\YSAI.Core.csproj" />

+ 1 - 1
src/YSAI.DAQ/YSAI.DaqManage/YSAI.DaqManage.csproj

@@ -7,7 +7,7 @@
   </PropertyGroup>
 	<ItemGroup>
 		<FrameworkReference Include="Microsoft.AspNetCore.App" />
-		<PackageReference Include="YSAI.Core" Version="1.0.0.74" />
+		<PackageReference Include="YSAI.Core" Version="1.0.0.75" />
 	</ItemGroup>
 
 	<!--<ItemGroup>

+ 1 - 1
src/YSAI.DAQ/YSAI.Kafka/YSAI.Kafka.csproj

@@ -14,7 +14,7 @@
 
   <ItemGroup>
     <PackageReference Include="Confluent.Kafka" Version="2.3.0" />
-    <PackageReference Include="YSAI.Core" Version="1.0.0.74" />
+    <PackageReference Include="YSAI.Core" Version="1.0.0.75" />
   </ItemGroup>
 	
 	<!--<ItemGroup>

+ 1 - 1
src/YSAI.DAQ/YSAI.Modbus/YSAI.Modbus.csproj

@@ -15,7 +15,7 @@
 	<ItemGroup>
     <PackageReference Include="NModbus" Version="3.0.81" />
     <PackageReference Include="NModbus.Serial" Version="3.0.81" />
-    <PackageReference Include="YSAI.Core" Version="1.0.0.74" />
+    <PackageReference Include="YSAI.Core" Version="1.0.0.75" />
   </ItemGroup>
 
 	<!--<ItemGroup>

+ 1 - 1
src/YSAI.DAQ/YSAI.Mqtt/YSAI.Mqtt.csproj

@@ -15,7 +15,7 @@
   <ItemGroup>
     <PackageReference Include="MQTTnet" Version="4.3.1.873" />
     <PackageReference Include="MQTTnet.AspNetCore" Version="4.3.1.873" />
-    <PackageReference Include="YSAI.Core" Version="1.0.0.74" />
+    <PackageReference Include="YSAI.Core" Version="1.0.0.75" />
   </ItemGroup>
 
 	<!--<ItemGroup>

+ 1 - 1
src/YSAI.DAQ/YSAI.Netty/YSAI.Netty.csproj

@@ -14,6 +14,6 @@
 	<ItemGroup>
 		<PackageReference Include="DotNetty.Handlers" Version="0.7.5" />
 		<PackageReference Include="DotNetty.Transport" Version="0.7.5" />
-		<PackageReference Include="YSAI.Core" Version="1.0.0.74" />
+		<PackageReference Include="YSAI.Core" Version="1.0.0.75" />
 	</ItemGroup>
 </Project>

+ 1 - 1
src/YSAI.DAQ/YSAI.Opc/YSAI.Opc.csproj

@@ -13,7 +13,7 @@
   </PropertyGroup>
   <ItemGroup>
     <PackageReference Include="OPCFoundation.NetStandard.Opc.Ua" Version="1.4.372.76" />
-	<PackageReference Include="YSAI.Core" Version="1.0.0.74" />
+	<PackageReference Include="YSAI.Core" Version="1.0.0.75" />
   </ItemGroup>
 
 

+ 1 - 1
src/YSAI.DAQ/YSAI.RabbitMQ/YSAI.RabbitMQ.csproj

@@ -14,7 +14,7 @@
 
   <ItemGroup>
     <PackageReference Include="RabbitMQ.Client" Version="6.6.0" />
-    <PackageReference Include="YSAI.Core" Version="1.0.0.74" />
+    <PackageReference Include="YSAI.Core" Version="1.0.0.75" />
   </ItemGroup>
 
   <ItemGroup>

+ 1 - 1
src/YSAI.DAQ/YSAI.RelayManage/YSAI.RelayManage.csproj

@@ -9,7 +9,7 @@
 	<ItemGroup>
 		<PackageReference Include="RabbitMQ.Client" Version="6.6.0" />
 		<PackageReference Include="Confluent.Kafka" Version="2.3.0" />
-		<PackageReference Include="YSAI.Core" Version="1.0.0.74" />
+		<PackageReference Include="YSAI.Core" Version="1.0.0.75" />
 		<FrameworkReference Include="Microsoft.AspNetCore.App" />
 	</ItemGroup>
 

+ 1 - 1
src/YSAI.DAQ/YSAI.S7/YSAI.S7.csproj

@@ -14,7 +14,7 @@
 
 	<ItemGroup>
     <PackageReference Include="S7netplus" Version="0.20.0" />
-    <PackageReference Include="YSAI.Core" Version="1.0.0.74" />
+    <PackageReference Include="YSAI.Core" Version="1.0.0.75" />
   </ItemGroup>
 
 	<!--<ItemGroup>

+ 1 - 1
src/YSAI.DAQ/YSAI.Test/YSAI.Test.csproj

@@ -17,7 +17,7 @@
       <PrivateAssets>all</PrivateAssets>
       <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
     </PackageReference>
-	<PackageReference Include="YSAI.Core" Version="1.0.0.74" />
+	<PackageReference Include="YSAI.Core" Version="1.0.0.75" />
   </ItemGroup>
 
   <ItemGroup>