diff --git a/HTCoreServiceApp/Common/WritePara.cs b/HTCoreServiceApp/Common/WritePara.cs
new file mode 100644
index 0000000..99e490a
--- /dev/null
+++ b/HTCoreServiceApp/Common/WritePara.cs
@@ -0,0 +1,15 @@
+namespace HTCoreServiceApp.Common
+{
+ public class WritePara
+ {
+ public string TagName { get; set; }
+ public string GroupName { get; set; }
+ public string WriteAddress { get; set; }
+ public byte DataType { get; set; }
+ public string Value { get; set; }
+
+ }
+ //public record WritePara(string TagName, string GroupName, string WriteAddress, byte DataType, string Value)
+ //{
+ //}
+}
diff --git a/HTCoreServiceApp/Communicate/AllenBradleyEIP/ABClientExample.cs b/HTCoreServiceApp/Communicate/AllenBradleyEIP/ABClientExample.cs
index 6e7cedf..33929df 100644
--- a/HTCoreServiceApp/Communicate/AllenBradleyEIP/ABClientExample.cs
+++ b/HTCoreServiceApp/Communicate/AllenBradleyEIP/ABClientExample.cs
@@ -485,15 +485,15 @@ namespace HTCoreServiceApp.Communicate.AllenBradleyEIP
///
///
///
- public int Write(string writePara)
+ public int Write(WritePara writePara)
{
Result reCode = new Result() { ErrCode = 0} ;
- JObject valueJson = JObject.Parse(writePara);
- var srcValue = valueJson[propertyName: "Value"].ToString();
- var writeAddress = valueJson[propertyName: "WriteAddress"].ToString();
- var dataType =short.Parse(valueJson[propertyName: "DataType"].ToString());
- var groupName = valueJson[propertyName: "GroupName"].ToString();
- var tagName = valueJson[propertyName: "TagName"].ToString();
+ //JObject valueJson = JObject.Parse(writePara);
+ var srcValue = writePara.Value; //valueJson[propertyName: "Value"].ToString();
+ var writeAddress = writePara.WriteAddress;//valueJson[propertyName: "WriteAddress"].ToString();
+ var dataType = writePara.DataType;//short.Parse(valueJson[propertyName: "DataType"].ToString());
+ var groupName = writePara.GroupName; //valueJson[propertyName: "GroupName"].ToString();
+ var tagName = writePara.TagName; //valueJson[propertyName: "TagName"].ToString();
decimal value = decimal.Parse(srcValue);
lock (_lock)
diff --git a/HTCoreServiceApp/Communicate/AllenBradleyEIPTag/ABTagClientExample.cs b/HTCoreServiceApp/Communicate/AllenBradleyEIPTag/ABTagClientExample.cs
index dea071f..35e1149 100644
--- a/HTCoreServiceApp/Communicate/AllenBradleyEIPTag/ABTagClientExample.cs
+++ b/HTCoreServiceApp/Communicate/AllenBradleyEIPTag/ABTagClientExample.cs
@@ -460,15 +460,15 @@ namespace HTCoreServiceApp.Communicate.AllenBradleyEIPTag
///
///
///
- public int Write(string writePara)
+ public int Write(WritePara writePara)
{
Result reCode = new Result() { ErrCode = 0} ;
- JObject valueJson = JObject.Parse(writePara);
- var srcValue = valueJson[propertyName: "Value"].ToString();
- var writeAddress = valueJson[propertyName: "WriteAddress"].ToString();
- var dataType =short.Parse(valueJson[propertyName: "DataType"].ToString());
- var groupName = valueJson[propertyName: "GroupName"].ToString();
- var tagName = valueJson[propertyName: "TagName"].ToString();
+ //JObject valueJson = JObject.Parse(writePara);
+ var srcValue = writePara.Value; //valueJson[propertyName: "Value"].ToString();
+ var writeAddress = writePara.WriteAddress;//valueJson[propertyName: "WriteAddress"].ToString();
+ var dataType = writePara.DataType;//short.Parse(valueJson[propertyName: "DataType"].ToString());
+ var groupName = writePara.GroupName; //valueJson[propertyName: "GroupName"].ToString();
+ var tagName = writePara.TagName; //valueJson[propertyName: "TagName"].ToString();
decimal value = decimal.Parse(srcValue);
lock (_lock)
diff --git a/HTCoreServiceApp/Communicate/DriverSiemensS7/S7ClientExample.cs b/HTCoreServiceApp/Communicate/DriverSiemensS7/S7ClientExample.cs
index 6fe6f83..c971062 100644
--- a/HTCoreServiceApp/Communicate/DriverSiemensS7/S7ClientExample.cs
+++ b/HTCoreServiceApp/Communicate/DriverSiemensS7/S7ClientExample.cs
@@ -104,6 +104,7 @@ namespace HTCoreServiceApp.Communicate.DriverSiemensS7
scanTagsPara.UpdateRate = MetaGroups.Where(x => x.GroupId == metaGroup.Key.GroupId).ToList().First().UpdateRate;
scanTagsPara.IsConsecutive = (bool)MetaGroups.Where(x => x.GroupId == metaGroup.Key.GroupId).ToList().First().IsActive;
scanTagsPara.IsActive = MetaGroups.Where(x => x.GroupId == metaGroup.Key.GroupId).ToList().First().IsActive;
+ //scanTagsPara.IsActive = false;
scanTagsPara.ScanTags = MetaTags.Where(x => x.GroupId == metaGroup.Key.GroupId).ToList();
short driverID = (short)MetaGroups.Where(x => x.GroupId == metaGroup.Key.GroupId).ToList().First().DriverId;
scanTagsPara.DriverName = DriverName;
@@ -703,15 +704,17 @@ namespace HTCoreServiceApp.Communicate.DriverSiemensS7
///
///
///
- public int Write(string writePara)
+ public int Write(WritePara writePara)
{
+ //var t1 = DateTime.Now;
int reCode = 0;
- JObject valueJson = JObject.Parse(writePara);
- var srcValue = valueJson[propertyName: "Value"].ToString();
- var writeAddress = valueJson[propertyName: "WriteAddress"].ToString();
- var dataType =short.Parse(valueJson[propertyName: "DataType"].ToString());
- var groupName = valueJson[propertyName: "GroupName"].ToString();
-
+ //JObject valueJson = JObject.Parse(writePara);
+ var srcValue = writePara.Value; //valueJson[propertyName: "Value"].ToString();
+ var writeAddress = writePara.WriteAddress;//valueJson[propertyName: "WriteAddress"].ToString();
+ var dataType = writePara.DataType;//short.Parse(valueJson[propertyName: "DataType"].ToString());
+ var groupName = writePara.GroupName; //valueJson[propertyName: "GroupName"].ToString();
+ var windex = writeAddress.IndexOf(".");
+ writeAddress = writeAddress.Remove(windex, 1).Insert(windex, ",");
var array = writeAddress.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
var DBNum_string = array[0].ToString();
var DBNum = int.Parse(Regex.Replace(DBNum_string, "[a-z]", "", RegexOptions.IgnoreCase));
@@ -805,6 +808,9 @@ namespace HTCoreServiceApp.Communicate.DriverSiemensS7
}
}
Console.WriteLine(writePara);
+ //var t2 = DateTime.Now;
+ //var timediff = t2 - t1;
+ //Console.WriteLine($"S7写入耗时:{timediff}");
return reCode;
}
@@ -844,7 +850,7 @@ namespace HTCoreServiceApp.Communicate.DriverSiemensS7
value = "0";
}
}
- var writePara = new
+ var writePara = new WritePara
{
TagName = tagName,
GroupName = groupName,
@@ -852,9 +858,9 @@ namespace HTCoreServiceApp.Communicate.DriverSiemensS7
DataType = dataType,
Value = value
};
- string serJson = JsonConvert.SerializeObject(writePara);
+ //string serJson = JsonConvert.SerializeObject(writePara);
- Write(serJson);
+ Write(writePara);
}
else
diff --git a/HTCoreServiceApp/Communicate/Modbus/ModbusClientExample.cs b/HTCoreServiceApp/Communicate/Modbus/ModbusClientExample.cs
index 02a930f..fdd0b1e 100644
--- a/HTCoreServiceApp/Communicate/Modbus/ModbusClientExample.cs
+++ b/HTCoreServiceApp/Communicate/Modbus/ModbusClientExample.cs
@@ -492,7 +492,7 @@ namespace HTCoreServiceApp.Communicate.Modbus
}
- public int Write(string writePara)
+ public int Write(WritePara writePara)
{
throw new NotImplementedException();
}
diff --git a/HTCoreServiceApp/Communicate/ModbusTcp/ModbusTcpClientExample.cs b/HTCoreServiceApp/Communicate/ModbusTcp/ModbusTcpClientExample.cs
index ad7577f..1872d73 100644
--- a/HTCoreServiceApp/Communicate/ModbusTcp/ModbusTcpClientExample.cs
+++ b/HTCoreServiceApp/Communicate/ModbusTcp/ModbusTcpClientExample.cs
@@ -501,7 +501,7 @@ namespace HTCoreServiceApp.Communicate.ModbusTcp
}
- public int Write(string writePara)
+ public int Write(WritePara writePara)
{
throw new NotImplementedException();
}
diff --git a/HTCoreServiceApp/DriverInterface/IDriverEntity.cs b/HTCoreServiceApp/DriverInterface/IDriverEntity.cs
index 2395243..79b9da9 100644
--- a/HTCoreServiceApp/DriverInterface/IDriverEntity.cs
+++ b/HTCoreServiceApp/DriverInterface/IDriverEntity.cs
@@ -1,4 +1,5 @@
-using Microsoft.Extensions.Logging;
+using HTCoreServiceApp.Common;
+using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -29,7 +30,7 @@ namespace HTCoreServiceApp.DriverInterface
/// 往cpu中写入
///
///
- public int Write(string writePara);
+ public int Write(WritePara writePara);
///
/// 无用暂留
diff --git a/HTCoreServiceApp/DriverThread.cs b/HTCoreServiceApp/DriverThread.cs
index 6b1e4ff..b235b8f 100644
--- a/HTCoreServiceApp/DriverThread.cs
+++ b/HTCoreServiceApp/DriverThread.cs
@@ -161,7 +161,7 @@ namespace HTCoreServiceApp
}
- public int DriverWrite(string para)
+ public int DriverWrite(WritePara para)
{
return DriverEntity.Write(para);
}
diff --git a/HTCoreServiceApp/Program.cs b/HTCoreServiceApp/Program.cs
index bef5425..f4f44c6 100644
--- a/HTCoreServiceApp/Program.cs
+++ b/HTCoreServiceApp/Program.cs
@@ -40,8 +40,8 @@ namespace HTCoreServiceApp
//builder.Services.AddEndpointsApiExplorer();
- builder.Services.AddScoped();
- builder.Services.AddScoped();
+ builder.Services.AddSingleton();
+ builder.Services.AddSingleton();
var app = builder.Build();
@@ -105,4 +105,5 @@ namespace HTCoreServiceApp
{
}
+
}
diff --git a/HTCoreServiceApp/WebApis/DeviceController.cs b/HTCoreServiceApp/WebApis/DeviceController.cs
index 47befe8..19da2c0 100644
--- a/HTCoreServiceApp/WebApis/DeviceController.cs
+++ b/HTCoreServiceApp/WebApis/DeviceController.cs
@@ -6,7 +6,7 @@ using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.ModelBinding.Validation;
using Microsoft.Extensions.Caching.Distributed;
using Microsoft.Extensions.Caching.Memory;
-using Newtonsoft.Json;
+//using Newtonsoft.Json;
using SqlSugar;
using System;
using System.Collections.Generic;
@@ -14,6 +14,8 @@ using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Linq.Expressions;
using System.Security.Cryptography.X509Certificates;
+using System.Text.Json;
+using System.Text.Json.Serialization;
using System.Text.RegularExpressions;
namespace HTCoreServiceApp.WebApi
@@ -49,16 +51,16 @@ namespace HTCoreServiceApp.WebApi
//[HttpGet]
public async Task SetDeviceData(string groupName,string tagName,string value)
{
+ //var t1 = DateTime.Now;
+ //var ip = HttpContext.GetClientUserIp();
+ //var cache = StaticLibrary.MemoryCacheHelper.Get>(driverName).Where(x=>x.GroupName == groupName).First();
+ //var val = new List();
+ //StaticLibrary.MemoryCacheHelper.TryGetValue(driverName,out val);
+ //return LiveJsonIntegrate.MetaValues2Json(val.FirstOrDefault());
- //var ip = HttpContext.GetClientUserIp();
- //var cache = StaticLibrary.MemoryCacheHelper.Get>(driverName).Where(x=>x.GroupName == groupName).First();
- //var val = new List();
- //StaticLibrary.MemoryCacheHelper.TryGetValue(driverName,out val);
- //return LiveJsonIntegrate.MetaValues2Json(val.FirstOrDefault());
+ //var userAgent = HttpContext.
- //var userAgent = HttpContext.
-
- int reCode = 0;
+ int reCode = 0;
//直接返回,取消后续写入步骤
//return reCode;
@@ -78,8 +80,8 @@ namespace HTCoreServiceApp.WebApi
reCode = 1;
return reCode.ToString();
}
- var windex = writeAddress.IndexOf(".");
- writeAddress = writeAddress.Remove(windex, 1).Insert(windex, ",");
+ //var windex = writeAddress.IndexOf(".");
+ //writeAddress = writeAddress.Remove(windex, 1).Insert(windex, ",");
//var valueHandle = 0;
if (dataType == (short)DataType.BOOL)
{
@@ -97,22 +99,25 @@ namespace HTCoreServiceApp.WebApi
var iFloatPlaces = (int)metaTags.Where(x => x.TagName == tagName && x.GroupId == groupID).First().IFloatPlaces;
value = ((int)(float.Parse(value) * (int)Math.Pow(10.0f, iFloatPlaces))).ToString();
}
- var writePara = new
- {
+ var writePara = new WritePara
+ {
TagName = tagName,
GroupName = groupName,
WriteAddress = writeAddress,
DataType = dataType,
Value = value
};
- string serJson = JsonConvert.SerializeObject(writePara);
+ //string serJson = JsonSerializer.Serialize(writePara); //JsonConvert.SerializeObject(writePara);
+ //var t2 = DateTime.Now;
+ //var timediff = t2 - t1;
+ //Console.WriteLine($"写入参数初始化耗时:{timediff}");
- foreach (var driverThread in _driverService.DriverThreads)
+ foreach (var driverThread in _driverService.DriverThreads)
{
if (driverThread.driverName == driverName)
{
- reCode = driverThread.DriverWrite(serJson);
+ reCode = driverThread.DriverWrite(writePara);
}
}
}
@@ -124,7 +129,9 @@ namespace HTCoreServiceApp.WebApi
catch (Exception ex)
{
reCode = 1;
+ GC.Collect();
}
+ GC.Collect();
return reCode.ToString();
}
}
diff --git a/HTCoreServiceApp/WebApis/Extension.cs b/HTCoreServiceApp/WebApis/Extension.cs
index d9b9137..a9b32e3 100644
--- a/HTCoreServiceApp/WebApis/Extension.cs
+++ b/HTCoreServiceApp/WebApis/Extension.cs
@@ -22,4 +22,8 @@ namespace HTCoreServiceApp.WebApi
return ip;
}
}
+
+ //public record WritePara(string TagName, string GroupName, string WriteAddress, byte DataType, string Value)
+ //{
+ //}
}
diff --git a/HTCoreServiceApp/appsettings.json b/HTCoreServiceApp/appsettings.json
index 6ad0882..307c4cf 100644
--- a/HTCoreServiceApp/appsettings.json
+++ b/HTCoreServiceApp/appsettings.json
@@ -1,7 +1,7 @@
{
"ConnectionStrings": {
"Type": "SqlServer",
- "SqlServer": "Zk48ARnbLq1Lk+lzxvCij/8Pt/tnmDwn+rE3IgYGjblF9G4nGtc0SdFjHwyesdp8uVH2ffnIhBBhZ4UAb8vy3t7LPWJUEb12fVMorU1o2h9vdd+2yPnv3Y7J4FI0mIFUtw6Pb2l37+KmJdGCN2JX/lQvZvJ3YxGt5OCJPbEH/R2XrtZoLtZ5dj/EEVhGxtrt/v65G8u14+Hsa6LpnchUmw=="
+ "SqlServer": "Zk48ARnbLq1Lk+lzxvCij/8Pt/tnmDwn+rE3IgYGjbm+C8BGXKBFaf7hraUiRoNfatF6eAiz2tK7uKmJVdp0NSLHsd5WiUB9dZ05VUn7ddOJqlxnIdmCERpNOuWW6zTH5gzFjvz0gHp2YRMwvwfeavVIuwxq1D1UYL9poZrBy9k9LIERYOVAfeYdaZb6AzQKFNz+6yOszCxvEhQOuQcBMw=="
},
"Logging": {
"LogLevel": {