Bläddra i källkod

1. 解决RMQ内存增加问题
2. 新增微秒延时

Shun 2 år sedan
förälder
incheckning
75840dc2b5

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

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

+ 2 - 2
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.45</Version>
+    <Version>1.0.0.47</Version>
     <Authors>Shun</Authors>
     <Company>YSAI</Company>
     <Product>SCADA</Product>
@@ -17,7 +17,7 @@
 		<PackageReference Include="Microsoft.ClearScript" Version="7.4.3" />
 		<PackageReference Include="System.IO.Ports" Version="7.0.0" />
 		<PackageReference Include="YSAI.Log" Version="1.0.0.9" />
-		<PackageReference Include="YSAI.Unility" Version="1.0.0.14" />
+		<PackageReference Include="YSAI.Unility" Version="1.0.0.15" />
 	</ItemGroup>
 
 </Project>

+ 2 - 2
src/YSAI.DAQ/YSAI.Core/interface/IOrAbstract.cs

@@ -26,7 +26,7 @@ namespace YSAI.Core.@interface
         /// <returns>返回方法名</returns>
         protected string Depart(string MethodName)
         {
-            RunTimeTool.Instance($"{TAG}.{MethodName}").StartRecord();
+            TimeTool.Instance($"{TAG}.{MethodName}").StartRecord();
             return MethodName;
         }
 
@@ -68,7 +68,7 @@ namespace YSAI.Core.@interface
         protected OperateResult Break(string MethodName, bool State, string? Message = null, object? RData = null, ResultType RType = ResultType.Null, Exception? Exception = null)
         {
             //返回运行时间(毫秒)
-            double runTime = RunTimeTool.Instance($"{TAG}.{MethodName}").StopRecord().milliseconds;
+            double runTime = TimeTool.Instance($"{TAG}.{MethodName}").StopRecord().milliseconds;
             //消息数据组织
             string message = $"[ {TAG} ]( {MethodName} {(State ? "成功" : "异常")} ){(string.IsNullOrEmpty(Message) ? "" : $" : {Message}")}";
             //异常则输出日志

+ 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.45" />
+		<PackageReference Include="YSAI.Core" Version="1.0.0.46" />
 	</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.45" />
+		<PackageReference Include="YSAI.Core" Version="1.0.0.46" />
 	</ItemGroup>
 
 	<!--<ItemGroup>

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

@@ -14,7 +14,7 @@
 
   <ItemGroup>
     <PackageReference Include="Confluent.Kafka" Version="2.2.0" />
-    <PackageReference Include="YSAI.Core" Version="1.0.0.45" />
+    <PackageReference Include="YSAI.Core" Version="1.0.0.46" />
   </ItemGroup>
 	
 	<!--<ItemGroup>

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

@@ -15,7 +15,7 @@
 	<ItemGroup>
     <PackageReference Include="NModbus" Version="3.0.80" />
     <PackageReference Include="NModbus.Serial" Version="3.0.80" />
-    <PackageReference Include="YSAI.Core" Version="1.0.0.45" />
+    <PackageReference Include="YSAI.Core" Version="1.0.0.46" />
   </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.45" />
+    <PackageReference Include="YSAI.Core" Version="1.0.0.46" />
   </ItemGroup>
 
 	<!--<ItemGroup>

+ 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.56" />
-	<PackageReference Include="YSAI.Core" Version="1.0.0.45" />
+	<PackageReference Include="YSAI.Core" Version="1.0.0.46" />
   </ItemGroup>
 
 

+ 4 - 0
src/YSAI.DAQ/YSAI.RabbitMQ/RabbitMQOperate.cs

@@ -1,6 +1,7 @@
 using RabbitMQ.Client;
 using RabbitMQ.Client.Events;
 using System.Collections.Concurrent;
+using System.Diagnostics;
 using System.Text;
 using YSAI.Core.data;
 using YSAI.Core.@interface;
@@ -159,6 +160,8 @@ namespace YSAI.RabbitMQ
                     }
                     // 发布消息
                     Channels[basics.ExChangeName].BasicPublish(basics.ExChangeName, RoutingKey, QueueAndBasicProperties[Queue].BasicProperties, Encoding.UTF8.GetBytes(Content));
+                    //延时
+                    TimeTool.DelayUs(0.2);
                     //返回
                     return Break("Publish", true);
                 }
@@ -168,6 +171,7 @@ namespace YSAI.RabbitMQ
                 return Break("Publish", false, ex.Message, Exception: ex);
             }
         }
+
         /// <summary>
         /// 发布 一个交换机可以发布多个消息
         /// </summary>

+ 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.45" />
+    <PackageReference Include="YSAI.Core" Version="1.0.0.46" />
   </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.2.0" />
-		<PackageReference Include="YSAI.Core" Version="1.0.0.45" />
+		<PackageReference Include="YSAI.Core" Version="1.0.0.46" />
 		<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.45" />
+    <PackageReference Include="YSAI.Core" Version="1.0.0.46" />
   </ItemGroup>
 
 	<!--<ItemGroup>

+ 13 - 6
src/YSAI.DAQ/YSAI.Test.Console/Program.cs

@@ -1,10 +1,15 @@
-using YSAI.Core.data;
+using System.Runtime.InteropServices;
+using YSAI.Core.data;
 using YSAI.RabbitMQ;
 using YSAI.Unility;
 
+
+[DllImport("kernel32")]
+static extern uint GetTickCount();
+
 RabbitMQOperate rabbitMQOperate = RabbitMQOperate.Instance(new RabbitMQData.Basics()
 {
-    ExChangeName = "VariableExchangeRead",
+    ExChangeName = "exchang200",
     HostName = "192.168.2.200",
     UserName = "ys",
     Password = "ys123456",
@@ -22,13 +27,15 @@ Console.WriteLine(operateResult.ToJson());
 
 while (true)
 {
-    Console.ReadLine();
-    operateResult = rabbitMQOperate.Produce("test",$"{new Random().NextDouble()}");
-    Console.WriteLine(operateResult.ToJson());
+    operateResult = rabbitMQOperate.Produce("test", $"{new Random().NextDouble()}");
 }
+
+
+
+
 void RabbitMQOperate_OnEvent(object? sender, EventResult e)
 {
-    Console.WriteLine(e.ToJson());
+    //Console.WriteLine(e.ToJson());
 }
 
 

+ 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.45" />
+	<PackageReference Include="YSAI.Core" Version="1.0.0.46" />
   </ItemGroup>
 
   <ItemGroup>

+ 20 - 7
src/YSAI.DAQ/YSAI.Unility/RunTimeTool.cs

@@ -3,30 +3,30 @@
 namespace YSAI.Unility
 {
     /// <summary>
-    /// 运行耗
+    /// 时间工具
     /// </summary>
-    public class RunTimeTool
+    public class TimeTool
     {
         /// <summary>
         /// 标识符
         /// </summary>
         private string ID { get; set; }
-        public RunTimeTool(string ID)
+        public TimeTool(string ID)
         {
             this.ID = ID;
         }
 
         private static readonly object Lock = new object();  //锁
-        private static List<RunTimeTool> ThisObjList = new List<RunTimeTool>(); //自身对象集合
+        private static List<TimeTool> ThisObjList = new List<TimeTool>(); //自身对象集合
         /// <summary>
         /// 单例模式
         /// </summary>
         /// <returns></returns>
-        public static RunTimeTool Instance(string ID)
+        public static TimeTool Instance(string ID)
         {
             lock (ThisObjList)
             {
-                RunTimeTool? exp = ThisObjList.FirstOrDefault(c => c.ID.Equals(ID));
+                TimeTool? exp = ThisObjList.FirstOrDefault(c => c.ID.Equals(ID));
                 if (exp == null)
                 {
                     lock (Lock)
@@ -37,7 +37,7 @@ namespace YSAI.Unility
                         }
                         else
                         {
-                            RunTimeTool exp2 = new RunTimeTool(ID);
+                            TimeTool exp2 = new TimeTool(ID);
                             ThisObjList.Add(exp2);
                             return exp2;
                         }
@@ -73,5 +73,18 @@ namespace YSAI.Unility
             double milliseconds = timespan.Milliseconds;  //  总毫秒数
             return (hours, minutes, seconds, milliseconds);
         }
+
+        /// <summary>
+        ///  微秒延时
+        /// </summary>
+        /// <param name="time">延时时间,单位:ms</param>
+        /// <returns></returns>
+        public static void DelayUs(double time)
+        {
+            Stopwatch stopTime = new Stopwatch();
+            stopTime.Start();
+            while (stopTime.Elapsed.TotalMilliseconds < time) { }
+            stopTime.Stop();
+        }
     }
 }

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

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