|
|
@@ -1,4 +1,12 @@
|
|
|
-using Microsoft.AspNetCore.Mvc;
|
|
|
+using Microsoft.AspNetCore.Http;
|
|
|
+using Microsoft.AspNetCore.Mvc;
|
|
|
+using System.Drawing;
|
|
|
+using System.Text;
|
|
|
+using YSAI.Core.data;
|
|
|
+using YSAI.Opc.ua.client;
|
|
|
+using YSAI.Unility;
|
|
|
+using static System.Net.Mime.MediaTypeNames;
|
|
|
+
|
|
|
namespace YSAI.Manage.Controllers
|
|
|
{
|
|
|
/// <summary>
|
|
|
@@ -16,6 +24,12 @@ namespace YSAI.Manage.Controllers
|
|
|
/// 统一操作结果
|
|
|
/// </summary>
|
|
|
private readonly Or operateResult;
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 配置路径
|
|
|
+ /// </summary>
|
|
|
+ private readonly string configPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "config//AMConfig.json");
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 点位地址信息操作
|
|
|
/// </summary>
|
|
|
@@ -27,60 +41,161 @@ namespace YSAI.Manage.Controllers
|
|
|
operateResult.ClassName = "DaqLibOperate";
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
/// <summary>
|
|
|
- /// 上传配置,自动实例与订阅
|
|
|
+ /// 配置内容示例
|
|
|
/// </summary>
|
|
|
- /// <returns></returns>
|
|
|
+ /// <returns>统一返回结果</returns>
|
|
|
+ [HttpGet]
|
|
|
+ public IActionResult Sample()
|
|
|
+ {
|
|
|
+ //开始记录运行时间
|
|
|
+ RunTimeTool.Instance($"{operateResult.ClassName}.Sample").StartRecord();
|
|
|
+ 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;
|
|
|
+ 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");
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 上传配置
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="ConfigFile">配置文件</param>
|
|
|
+ /// <returns>统一返回结果</returns>
|
|
|
[HttpPost]
|
|
|
- public IActionResult UploadConfig()
|
|
|
+ public async Task<IActionResult> Setting(IFormFile? ConfigFile)
|
|
|
{
|
|
|
- return Ok();
|
|
|
+ //开始记录运行时间
|
|
|
+ RunTimeTool.Instance($"{operateResult.ClassName}.Setting").StartRecord();
|
|
|
+ try
|
|
|
+ {
|
|
|
+ if (ConfigFile == null || ConfigFile.Length == 0)
|
|
|
+ {
|
|
|
+ return Ok(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 Ok(operateResult.Break("Setting", true));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return Ok(operateResult.Break("Setting", false, "配置文件已存在,请执行修改配置接口"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ return Ok(operateResult.Break("Setting", false, $"设置配置异常:{ex.Message}"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 修改配置,将重新初始化库操作函数
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="ConfigFile">配置文件</param>
|
|
|
+ /// <returns>统一返回结果</returns>
|
|
|
+ [HttpPost]
|
|
|
+ public async Task<IActionResult> Update(IFormFile? ConfigFile)
|
|
|
+ {
|
|
|
+ //开始记录运行时间
|
|
|
+ RunTimeTool.Instance($"{operateResult.ClassName}.Update").StartRecord();
|
|
|
+ try
|
|
|
+ {
|
|
|
+ if (ConfigFile == null || ConfigFile.Length == 0)
|
|
|
+ {
|
|
|
+ return Ok(operateResult.Break("Update", false, "请选择要上传的文件"));
|
|
|
+ }
|
|
|
+ //判断文件夹是否存在,不存在则创建
|
|
|
+ FileTool.GetPathFolderPath(configPath,true);
|
|
|
+ using (var stream = System.IO.File.Create(configPath))
|
|
|
+ {
|
|
|
+ await ConfigFile.CopyToAsync(stream);
|
|
|
+ }
|
|
|
+ return Ok(operateResult.Break("Update", true));
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ return Ok(operateResult.Break("Update", false, $"修改配置异常:{ex.Message}"));
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 通过上传的配置进行初始化
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ public IActionResult Init()
|
|
|
+ {
|
|
|
+ //开始记录运行时间
|
|
|
+ RunTimeTool.Instance($"{operateResult.ClassName}.Init").StartRecord();
|
|
|
+ try
|
|
|
+ {
|
|
|
+
|
|
|
+
|
|
|
+ return Ok(operateResult.Break("Init", true));
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ return Ok(operateResult.Break("Init", false, $"初始化异常:{ex.Message}"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 打开
|
|
|
/// </summary>
|
|
|
- /// <param name="name">库名称</param>
|
|
|
- /// <param name="sn">库实例SN</param>
|
|
|
+ /// <param name="Name">库名称</param>
|
|
|
+ /// <param name="SN">库实例SN</param>
|
|
|
/// <returns>统一返回结果</returns>
|
|
|
[HttpPost]
|
|
|
- public IActionResult On(string name, string sn)
|
|
|
+ public IActionResult On(string Name, string SN)
|
|
|
{
|
|
|
return Ok();
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 关闭
|
|
|
/// </summary>
|
|
|
- /// <param name="name">库名称</param>
|
|
|
- /// <param name="sn">库实例SN</param>
|
|
|
+ /// <param name="Name">库名称</param>
|
|
|
+ /// <param name="SN">库实例SN</param>
|
|
|
/// <returns>统一返回结果</returns>
|
|
|
[HttpPost]
|
|
|
- public IActionResult Off(string name, string sn)
|
|
|
+ public IActionResult Off(string Name, string SN)
|
|
|
{
|
|
|
return Ok();
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 读取
|
|
|
/// </summary>
|
|
|
- /// <param name="name">库名称</param>
|
|
|
- /// <param name="sn">库实例SN</param>
|
|
|
- /// <param name="addressName">地址</param>
|
|
|
+ /// <param name="Name">库名称</param>
|
|
|
+ /// <param name="SN">库实例SN</param>
|
|
|
+ /// <param name="AddressName">地址</param>
|
|
|
/// <returns>统一返回结果</returns>
|
|
|
[HttpPost]
|
|
|
- public IActionResult Read(string name, string sn, string addressName)
|
|
|
+ public IActionResult Read(string Name, string SN, string AddressName)
|
|
|
{
|
|
|
return Ok();
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 写入
|
|
|
/// </summary>
|
|
|
- /// <param name="name">库名称</param>
|
|
|
- /// <param name="sn">库实例SN</param>
|
|
|
- /// <param name="addressName">地址</param>
|
|
|
- /// <param name="value">值</param>
|
|
|
+ /// <param name="Name">库名称</param>
|
|
|
+ /// <param name="SN">库实例SN</param>
|
|
|
+ /// <param name="AddressName">地址</param>
|
|
|
+ /// <param name="Value">值</param>
|
|
|
/// <returns>统一返回结果</returns>
|
|
|
[HttpPost]
|
|
|
- public IActionResult Write(string name, string sn, string addressName, string value)
|
|
|
+ public IActionResult Write(string Name, string SN, string AddressName, string Value)
|
|
|
{
|
|
|
return Ok();
|
|
|
}
|