|
|
@@ -4,6 +4,7 @@ using System.Drawing;
|
|
|
using System.Text;
|
|
|
using YSAI.Core.data;
|
|
|
using YSAI.Core.@interface.only;
|
|
|
+using YSAI.Manage.Core;
|
|
|
using YSAI.Opc.ua.client;
|
|
|
using YSAI.Unility;
|
|
|
using static System.Net.Mime.MediaTypeNames;
|
|
|
@@ -15,7 +16,7 @@ namespace YSAI.Manage.Controllers
|
|
|
/// </summary>
|
|
|
[ApiController]
|
|
|
[Route("api/[controller]/[action]")]
|
|
|
- public class DaqLibOperateController : Controller,IManage
|
|
|
+ public class DaqLibOperateController : Controller
|
|
|
{
|
|
|
/// <summary>
|
|
|
/// 配置
|
|
|
@@ -24,179 +25,145 @@ namespace YSAI.Manage.Controllers
|
|
|
/// <summary>
|
|
|
/// 统一操作结果
|
|
|
/// </summary>
|
|
|
- private readonly Or operateResult;
|
|
|
+ private readonly ManageOperate manageOperate;
|
|
|
+
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// 配置路径
|
|
|
- /// </summary>
|
|
|
- private readonly string configPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "config//AMConfig.json");
|
|
|
|
|
|
/// <summary>
|
|
|
/// 点位地址信息操作
|
|
|
/// </summary>
|
|
|
- public DaqLibOperateController(IConfiguration configuration, Or operateResult)
|
|
|
+ public DaqLibOperateController(IConfiguration configuration, ManageOperate manageOperate)
|
|
|
{
|
|
|
this.configuration = configuration;
|
|
|
- this.operateResult = operateResult;
|
|
|
- operateResult.LogHead = "[ DaqLibOperate 操作 ]";
|
|
|
- operateResult.ClassName = "DaqLibOperate";
|
|
|
+ this.manageOperate = manageOperate;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+ /// <summary>
|
|
|
+ /// 示例
|
|
|
+ /// </summary>
|
|
|
+ /// <returns>配置文件</returns>
|
|
|
[HttpGet]
|
|
|
- public async Task<IActionResult> Sample()
|
|
|
+ public IActionResult Sample()
|
|
|
{
|
|
|
- Address address = JsonTool.StringToJsonEntity<Address>(FileTool.FileToString("Sample.json"));
|
|
|
- AddressManage addressManage = new AddressManage();
|
|
|
- addressManage.SN = address.SN;
|
|
|
- addressManage.AddressArray = address.AddressArray;
|
|
|
- addressManage.CreationTime = DateTime.Now.ToLocalTime();
|
|
|
- addressManage.DaqType = Core.@enum.DaqType.OpcUa;
|
|
|
- addressManage.InstanceParam = new OpcUaClientData.Basics() { Name = $"YSAI-OpcUa", UserName = "123", Password = "123", ServerUrl = "opc.tcp://127.0.0.1:4840", SamplingInterval = 100 };
|
|
|
- return File(System.Text.Encoding.Default.GetBytes(new List<AddressManage> { addressManage, addressManage, addressManage, addressManage, addressManage, addressManage }.ToJson().JsonFormatting()), "application/octet-stream");
|
|
|
+ return manageOperate.Sample();
|
|
|
}
|
|
|
-
|
|
|
+ /// <summary>
|
|
|
+ /// 设置配置
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="ConfigFile">配置文件</param>
|
|
|
+ /// <returns>统一出参</returns>
|
|
|
[HttpPost]
|
|
|
- public async Task<OperateResult> Setting(IFormFile? ConfigFile)
|
|
|
+ public OperateResult Setting(IFormFile? ConfigFile)
|
|
|
{
|
|
|
- //开始记录运行时间
|
|
|
- operateResult.Depart("Setting");
|
|
|
- try
|
|
|
- {
|
|
|
- if (ConfigFile == null || ConfigFile.Length == 0)
|
|
|
- {
|
|
|
- return operateResult.Break("Setting", false, "请选择要上传的文件");
|
|
|
- }
|
|
|
- if (!System.IO.File.Exists(configPath))
|
|
|
- {
|
|
|
- //判断文件夹是否存在,不存在则创建
|
|
|
- FileTool.GetPathFolderPath(configPath, true);
|
|
|
-
|
|
|
- using (var stream = System.IO.File.Create(configPath))
|
|
|
- {
|
|
|
- await ConfigFile.CopyToAsync(stream);
|
|
|
- }
|
|
|
-
|
|
|
- return operateResult.Break("Setting", true);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- return operateResult.Break("Setting", false, "配置文件已存在,请执行修改配置接口");
|
|
|
- }
|
|
|
- }
|
|
|
- catch (Exception ex)
|
|
|
- {
|
|
|
- return operateResult.Break("Setting", false, $"设置配置异常:{ex.Message}");
|
|
|
- }
|
|
|
+ return manageOperate.Setting(ConfigFile);
|
|
|
}
|
|
|
-
|
|
|
+ /// <summary>
|
|
|
+ /// 修改配置
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="ConfigFile">配置文件</param>
|
|
|
+ /// <returns>统一出参</returns>
|
|
|
[HttpPost]
|
|
|
- public async Task<OperateResult> Update(IFormFile? ConfigFile)
|
|
|
+ public OperateResult Update(IFormFile? ConfigFile)
|
|
|
{
|
|
|
- //开始记录运行时间
|
|
|
- operateResult.Depart("Update");
|
|
|
- try
|
|
|
- {
|
|
|
- if (ConfigFile == null || ConfigFile.Length == 0)
|
|
|
- {
|
|
|
- return operateResult.Break("Update", false, "请选择要上传的文件");
|
|
|
- }
|
|
|
- //判断文件夹是否存在,不存在则创建
|
|
|
- FileTool.GetPathFolderPath(configPath,true);
|
|
|
- using (var stream = System.IO.File.Create(configPath))
|
|
|
- {
|
|
|
- await ConfigFile.CopyToAsync(stream);
|
|
|
- }
|
|
|
- return operateResult.Break("Update", true);
|
|
|
- }
|
|
|
- catch (Exception ex)
|
|
|
- {
|
|
|
- return operateResult.Break("Update", false, $"修改配置异常:{ex.Message}");
|
|
|
- }
|
|
|
+ return manageOperate.Update(ConfigFile);
|
|
|
}
|
|
|
-
|
|
|
+ /// <summary>
|
|
|
+ /// 初始化
|
|
|
+ /// </summary>
|
|
|
+ /// <returns>统一出参</returns>
|
|
|
[HttpPost]
|
|
|
- public async Task<OperateResult> Init()
|
|
|
+ public OperateResult Init()
|
|
|
{
|
|
|
- //开始记录运行时间
|
|
|
- operateResult.Depart("Init");
|
|
|
- try
|
|
|
- {
|
|
|
-
|
|
|
-
|
|
|
- return operateResult.Break("Init", true);
|
|
|
- }
|
|
|
- catch (Exception ex)
|
|
|
- {
|
|
|
- return operateResult.Break("Init", false, $"初始化异常:{ex.Message}");
|
|
|
- }
|
|
|
+ return manageOperate.Init();
|
|
|
}
|
|
|
-
|
|
|
+ /// <summary>
|
|
|
+ /// 打开
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="Name">库名称</param>
|
|
|
+ /// <param name="SN">库实例SN</param>
|
|
|
+ /// <returns>统一返回结果</returns>
|
|
|
[HttpPost]
|
|
|
- public async Task<OperateResult> On(string Name, string SN)
|
|
|
+ public OperateResult On(string Name, string SN)
|
|
|
{
|
|
|
- //开始记录运行时间
|
|
|
- operateResult.Depart("On");
|
|
|
- try
|
|
|
- {
|
|
|
-
|
|
|
-
|
|
|
- return operateResult.Break("On", true);
|
|
|
- }
|
|
|
- catch (Exception ex)
|
|
|
- {
|
|
|
- return operateResult.Break("On", false, $"打开异常:{ex.Message}");
|
|
|
- }
|
|
|
+ return manageOperate.On(Name, SN);
|
|
|
}
|
|
|
+ /// <summary>
|
|
|
+ /// 关闭
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="Name">库名称</param>
|
|
|
+ /// <param name="SN">库实例SN</param>
|
|
|
+ /// <returns>统一返回结果</returns>
|
|
|
[HttpPost]
|
|
|
- public async Task<OperateResult> Off(string Name, string SN)
|
|
|
+ public OperateResult Off(string Name, string SN)
|
|
|
{
|
|
|
- //开始记录运行时间
|
|
|
- operateResult.Depart("Off");
|
|
|
- try
|
|
|
- {
|
|
|
-
|
|
|
-
|
|
|
- return operateResult.Break("Off", true);
|
|
|
- }
|
|
|
- catch (Exception ex)
|
|
|
- {
|
|
|
- return operateResult.Break("Off", false, $"关闭异常:{ex.Message}");
|
|
|
- }
|
|
|
+ return manageOperate.Off(Name, SN);
|
|
|
}
|
|
|
-
|
|
|
+ /// <summary>
|
|
|
+ /// 读取
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="Name">库名称</param>
|
|
|
+ /// <param name="SN">库实例SN</param>
|
|
|
+ /// <param name="AddressName">地址</param>
|
|
|
+ /// <returns>统一返回结果</returns>
|
|
|
[HttpPost]
|
|
|
- public async Task<OperateResult> Read(string Name, string SN, string AddressName)
|
|
|
+ public OperateResult Read(string Name, string SN, string AddressName)
|
|
|
{
|
|
|
- //开始记录运行时间
|
|
|
- operateResult.Depart("Read");
|
|
|
- try
|
|
|
- {
|
|
|
-
|
|
|
-
|
|
|
- return operateResult.Break("Read", true);
|
|
|
- }
|
|
|
- catch (Exception ex)
|
|
|
- {
|
|
|
- return operateResult.Break("Read", false, $"读取异常:{ex.Message}");
|
|
|
- }
|
|
|
+ return manageOperate.Read(Name, SN, AddressName);
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 写入浮点型数据
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="Name">库名称</param>
|
|
|
+ /// <param name="SN">库实例SN</param>
|
|
|
+ /// <param name="AddressName">地址</param>
|
|
|
+ /// <param name="Value">值</param>
|
|
|
+ /// <returns>统一返回结果</returns>
|
|
|
+ [HttpPost]
|
|
|
+ public OperateResult WriteDouble(string Name, string SN, string AddressName, string Value)
|
|
|
+ {
|
|
|
+ return manageOperate.Write(Name, SN, AddressName, Value, YSAI.Core.@enum.DataType.Double);
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 写入整数型数据
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="Name">库名称</param>
|
|
|
+ /// <param name="SN">库实例SN</param>
|
|
|
+ /// <param name="AddressName">地址</param>
|
|
|
+ /// <param name="Value">值</param>
|
|
|
+ /// <returns>统一返回结果</returns>
|
|
|
[HttpPost]
|
|
|
- public async Task<OperateResult> Write(string Name, string SN, string AddressName, string Value)
|
|
|
+ public OperateResult WriteInt(string Name, string SN, string AddressName, string Value)
|
|
|
{
|
|
|
- //开始记录运行时间
|
|
|
- operateResult.Depart("Write");
|
|
|
- try
|
|
|
- {
|
|
|
+ return manageOperate.Write(Name, SN, AddressName, Value, YSAI.Core.@enum.DataType.Int);
|
|
|
+ }
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 写入字符串类型数据
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="Name">库名称</param>
|
|
|
+ /// <param name="SN">库实例SN</param>
|
|
|
+ /// <param name="AddressName">地址</param>
|
|
|
+ /// <param name="Value">值</param>
|
|
|
+ /// <returns>统一返回结果</returns>
|
|
|
+ [HttpPost]
|
|
|
+ public OperateResult WriteString(string Name, string SN, string AddressName, string Value)
|
|
|
+ {
|
|
|
+ return manageOperate.Write(Name, SN, AddressName, Value, YSAI.Core.@enum.DataType.String);
|
|
|
+ }
|
|
|
|
|
|
- return operateResult.Break("Write", true);
|
|
|
- }
|
|
|
- catch (Exception ex)
|
|
|
- {
|
|
|
- return operateResult.Break("Write", false, $"写入异常:{ex.Message}");
|
|
|
- }
|
|
|
+ /// <summary>
|
|
|
+ /// 写入布尔类型数据
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="Name">库名称</param>
|
|
|
+ /// <param name="SN">库实例SN</param>
|
|
|
+ /// <param name="AddressName">地址</param>
|
|
|
+ /// <param name="Value">值</param>
|
|
|
+ /// <returns>统一返回结果</returns>
|
|
|
+ [HttpPost]
|
|
|
+ public OperateResult WriteBool(string Name, string SN, string AddressName, string Value)
|
|
|
+ {
|
|
|
+ return manageOperate.Write(Name, SN, AddressName, Value, YSAI.Core.@enum.DataType.Bool);
|
|
|
}
|
|
|
}
|
|
|
}
|