|
@@ -1,369 +0,0 @@
|
|
|
-using Google.Protobuf.WellKnownTypes;
|
|
|
|
|
-using Microsoft.AspNetCore.Http;
|
|
|
|
|
-using Microsoft.AspNetCore.Mvc;
|
|
|
|
|
-using Microsoft.Extensions.Configuration;
|
|
|
|
|
-using System.Collections.Concurrent;
|
|
|
|
|
-using System.Drawing;
|
|
|
|
|
-using System.Text;
|
|
|
|
|
-using YSAI.Core.data;
|
|
|
|
|
-using YSAI.Core.@enum;
|
|
|
|
|
-using YSAI.Core.@interface.only;
|
|
|
|
|
-using YSAI.Core.@interface.unify;
|
|
|
|
|
-using YSAI.DaqManage;
|
|
|
|
|
-using YSAI.DB;
|
|
|
|
|
-using YSAI.Kafka;
|
|
|
|
|
-using YSAI.Modbus.client;
|
|
|
|
|
-using YSAI.Mqtt.client;
|
|
|
|
|
-using YSAI.Opc.da.client;
|
|
|
|
|
-using YSAI.Opc.da.http;
|
|
|
|
|
-using YSAI.Opc.ua.client;
|
|
|
|
|
-using YSAI.RabbitMQ;
|
|
|
|
|
-using YSAI.RelayManage;
|
|
|
|
|
-using YSAI.S7.client;
|
|
|
|
|
-using YSAI.Unility;
|
|
|
|
|
-using static System.Net.Mime.MediaTypeNames;
|
|
|
|
|
-
|
|
|
|
|
-namespace YSAI.Manage.Controllers
|
|
|
|
|
-{
|
|
|
|
|
- /// <summary>
|
|
|
|
|
- /// 采集库操作
|
|
|
|
|
- /// </summary>
|
|
|
|
|
- [ApiController]
|
|
|
|
|
- [Route("api/[controller]/[action]")]
|
|
|
|
|
- public class OperateController : Controller
|
|
|
|
|
- {
|
|
|
|
|
- /// <summary>
|
|
|
|
|
- /// 统一操作结果
|
|
|
|
|
- /// </summary>
|
|
|
|
|
- private readonly DaqManageOperate daqManageOperate = Program.daqManageOperate;
|
|
|
|
|
-
|
|
|
|
|
- /// <summary>
|
|
|
|
|
- /// 参数
|
|
|
|
|
- /// </summary>
|
|
|
|
|
- /// <param name="DType">数采库类型</param>
|
|
|
|
|
- /// <returns>统一出参</returns>
|
|
|
|
|
- [HttpGet]
|
|
|
|
|
- public object Param(LibType DType)
|
|
|
|
|
- {
|
|
|
|
|
- switch (DType)
|
|
|
|
|
- {
|
|
|
|
|
- case LibType.DB:
|
|
|
|
|
- return new DBData.Basics();
|
|
|
|
|
- case LibType.Modbus:
|
|
|
|
|
- return new ModbusClientData.Basics();
|
|
|
|
|
- case LibType.OpcUa:
|
|
|
|
|
- return new OpcUaClientData.Basics();
|
|
|
|
|
- case LibType.OpcDa:
|
|
|
|
|
- return new OpcDaClientData.Basics();
|
|
|
|
|
- case LibType.OpcDaHttp:
|
|
|
|
|
- return new OpcDaHttpData.Basics();
|
|
|
|
|
- case LibType.S7:
|
|
|
|
|
- return new S7ClientData.Basics();
|
|
|
|
|
- case LibType.Kafka:
|
|
|
|
|
- return new KafkaData.Basics();
|
|
|
|
|
- case LibType.Mqtt:
|
|
|
|
|
- return new MqttClientData.Basics();
|
|
|
|
|
- case LibType.RabbitMQ:
|
|
|
|
|
- return new RabbitMQData.Basics();
|
|
|
|
|
- default:
|
|
|
|
|
- return new OperateResult(false, "输入有误", 0.1);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- /// <summary>
|
|
|
|
|
- /// 参数详情
|
|
|
|
|
- /// </summary>
|
|
|
|
|
- /// <param name="DType">数采库类型</param>
|
|
|
|
|
- /// <returns>统一出参</returns>
|
|
|
|
|
- [HttpGet]
|
|
|
|
|
- public OperateResult ParamDetails(LibType DType)
|
|
|
|
|
- {
|
|
|
|
|
- switch (DType)
|
|
|
|
|
- {
|
|
|
|
|
- case LibType.DB:
|
|
|
|
|
- return new OperateResult(true, string.Empty, 0.1, RData: ReflexTool.GetClassAllPropertyData<DBData.Basics>(), RType: ResultType.Json);
|
|
|
|
|
- case LibType.Modbus:
|
|
|
|
|
- return new OperateResult(true, string.Empty, 0.1, RData: ReflexTool.GetClassAllPropertyData<ModbusClientData.Basics>(), RType: ResultType.Json);
|
|
|
|
|
- case LibType.OpcUa:
|
|
|
|
|
- return new OperateResult(true, string.Empty, 0.1, RData: ReflexTool.GetClassAllPropertyData<OpcUaClientData.Basics>(), RType: ResultType.Json);
|
|
|
|
|
- case LibType.OpcDa:
|
|
|
|
|
- return new OperateResult(true, string.Empty, 0.1, RData: ReflexTool.GetClassAllPropertyData<OpcDaClientData.Basics>(), RType: ResultType.Json);
|
|
|
|
|
- case LibType.OpcDaHttp:
|
|
|
|
|
- return new OperateResult(true, string.Empty, 0.1, RData: ReflexTool.GetClassAllPropertyData<OpcDaHttpData.Basics>(), RType: ResultType.Json);
|
|
|
|
|
- case LibType.S7:
|
|
|
|
|
- return new OperateResult(true, string.Empty, 0.1, RData: ReflexTool.GetClassAllPropertyData<S7ClientData.Basics>(), RType: ResultType.Json);
|
|
|
|
|
- case LibType.Kafka:
|
|
|
|
|
- return new OperateResult(true, string.Empty, 0.1, RData: ReflexTool.GetClassAllPropertyData<KafkaData.Basics>(), RType: ResultType.Json);
|
|
|
|
|
- case LibType.Mqtt:
|
|
|
|
|
- return new OperateResult(true, string.Empty, 0.1, RData: ReflexTool.GetClassAllPropertyData<MqttClientData.Basics>(), RType: ResultType.Json);
|
|
|
|
|
- case LibType.RabbitMQ:
|
|
|
|
|
- return new OperateResult(true, string.Empty, 0.1, RData: ReflexTool.GetClassAllPropertyData<RabbitMQData.Basics>(), RType: ResultType.Json);
|
|
|
|
|
- default:
|
|
|
|
|
- return new OperateResult(false, "输入有误", 0.1);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- /// <summary>
|
|
|
|
|
- /// 设置库文件
|
|
|
|
|
- /// </summary>
|
|
|
|
|
- /// <param name="FormFiles">文件集合</param>
|
|
|
|
|
- /// <returns>统一出参</returns>
|
|
|
|
|
- [HttpPost]
|
|
|
|
|
- public OperateResult SettingLib(List<IFormFile> FormFiles)
|
|
|
|
|
- {
|
|
|
|
|
- return daqManageOperate.SettingLib(FormFiles);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- /// <summary>
|
|
|
|
|
- /// 删除库文件
|
|
|
|
|
- /// </summary>
|
|
|
|
|
- /// <param name="LibNames">库文件名集合</param>
|
|
|
|
|
- /// <returns>统一出参</returns>
|
|
|
|
|
- [HttpPost]
|
|
|
|
|
- public OperateResult DeleteLib(List<string> LibNames)
|
|
|
|
|
- {
|
|
|
|
|
- return daqManageOperate.DeleteLib(LibNames);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- /// <summary>
|
|
|
|
|
- /// 设置库配置文件
|
|
|
|
|
- /// </summary>
|
|
|
|
|
- /// <param name="FormFiles">文件集合</param>
|
|
|
|
|
- /// <returns>统一出参</returns>
|
|
|
|
|
- [HttpPost]
|
|
|
|
|
- public OperateResult SettingLibConfig(List<IFormFile> FormFiles)
|
|
|
|
|
- {
|
|
|
|
|
- return daqManageOperate.SettingLibConfig(FormFiles);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /// <summary>
|
|
|
|
|
- /// 修改库配置文件
|
|
|
|
|
- /// </summary>
|
|
|
|
|
- /// <param name="FormFiles">文件集合</param>
|
|
|
|
|
- /// <returns>统一出参</returns>
|
|
|
|
|
- [HttpPost]
|
|
|
|
|
- public OperateResult UpdateLibConfig(List<IFormFile> FormFiles)
|
|
|
|
|
- {
|
|
|
|
|
- return daqManageOperate.UpdateLibConfig(FormFiles);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- /// <summary>
|
|
|
|
|
- /// 批量读取
|
|
|
|
|
- /// </summary>
|
|
|
|
|
- /// <param name="FormFile">地址数据文件</param>
|
|
|
|
|
- /// <param name="ISn">实例唯一标识符</param>
|
|
|
|
|
- /// <returns>统一出参</returns>
|
|
|
|
|
- [HttpPost]
|
|
|
|
|
- public OperateResult BatchRead(IFormFile FormFile, string ISn)
|
|
|
|
|
- {
|
|
|
|
|
- return daqManageOperate.Read(FormFile, ISn);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- /// <summary>
|
|
|
|
|
- /// 单点读取
|
|
|
|
|
- /// </summary>
|
|
|
|
|
- /// <param name="AddressName">地址名称</param>
|
|
|
|
|
- /// <param name="ISn">实例唯一标识符</param>
|
|
|
|
|
- /// <returns>统一出参</returns>
|
|
|
|
|
- [HttpPost]
|
|
|
|
|
- public OperateResult Read(string AddressName, string ISn)
|
|
|
|
|
- {
|
|
|
|
|
- return daqManageOperate.Read(AddressName, ISn);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- /// <summary>
|
|
|
|
|
- /// 单点写入
|
|
|
|
|
- /// </summary>
|
|
|
|
|
- /// <param name="AddressName">地址名称</param>
|
|
|
|
|
- /// <param name="Value">值</param>
|
|
|
|
|
- /// <param name="DaType">数据类型</param>
|
|
|
|
|
- /// <param name="ISn">实例唯一标识符</param>
|
|
|
|
|
- /// <returns>统一出参</returns>
|
|
|
|
|
- [HttpPost]
|
|
|
|
|
- public OperateResult Write(string AddressName, string Value, DataType DaType, string ISn)
|
|
|
|
|
- {
|
|
|
|
|
- return daqManageOperate.Write(AddressName, Value, DaType, ISn);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- /// <summary>
|
|
|
|
|
- /// 订阅
|
|
|
|
|
- /// </summary>
|
|
|
|
|
- /// <param name="FormFile">地址数据文件</param>
|
|
|
|
|
- /// <param name="ISn">实例唯一标识符</param>
|
|
|
|
|
- /// <returns>统一出参</returns>
|
|
|
|
|
- [HttpPost]
|
|
|
|
|
- public OperateResult Subscribe(IFormFile FormFile, string ISn)
|
|
|
|
|
- {
|
|
|
|
|
- return daqManageOperate.Subscribe(FormFile, ISn);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- /// <summary>
|
|
|
|
|
- /// 取消订阅
|
|
|
|
|
- /// </summary>
|
|
|
|
|
- /// <param name="FormFile">地址数据文件</param>
|
|
|
|
|
- /// <param name="ISn">实例唯一标识符</param>
|
|
|
|
|
- /// <returns></returns>
|
|
|
|
|
- [HttpPost]
|
|
|
|
|
- public OperateResult UnSubscribe(IFormFile FormFile, string ISn)
|
|
|
|
|
- {
|
|
|
|
|
- return daqManageOperate.UnSubscribe(FormFile, ISn);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- /// <summary>
|
|
|
|
|
- /// 程序集唯一标识符集合
|
|
|
|
|
- /// </summary>
|
|
|
|
|
- /// <returns>统一出参</returns>
|
|
|
|
|
- [HttpPost]
|
|
|
|
|
- public List<string>? TypeSns()
|
|
|
|
|
- {
|
|
|
|
|
- return daqManageOperate.TypeSns();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /// <summary>
|
|
|
|
|
- /// 实例唯一标识符集合
|
|
|
|
|
- /// </summary>
|
|
|
|
|
- /// <returns>统一出参</returns>
|
|
|
|
|
- [HttpPost]
|
|
|
|
|
- public List<string>? InstanceSns()
|
|
|
|
|
- {
|
|
|
|
|
- return daqManageOperate.InstanceSns();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /// <summary>
|
|
|
|
|
- /// 释放指定实例
|
|
|
|
|
- /// </summary>
|
|
|
|
|
- /// <param name="ISn">实例唯一标识符</param>
|
|
|
|
|
- /// <returns>统一出参</returns>
|
|
|
|
|
- [HttpPost]
|
|
|
|
|
- public OperateResult DisposeISn(string ISn)
|
|
|
|
|
- {
|
|
|
|
|
- return daqManageOperate.DisposeISn(ISn);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /// <summary>
|
|
|
|
|
- /// 移除指定实例
|
|
|
|
|
- /// </summary>
|
|
|
|
|
- /// <param name="ISn">实例唯一标识符</param>
|
|
|
|
|
- /// <returns>统一出参</returns>
|
|
|
|
|
- [HttpPost]
|
|
|
|
|
- public OperateResult Remove(string ISn)
|
|
|
|
|
- {
|
|
|
|
|
- return daqManageOperate.RemoveISn(ISn);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /// <summary>
|
|
|
|
|
- /// 打开
|
|
|
|
|
- /// </summary>
|
|
|
|
|
- /// <param name="ISn">实例唯一标识符</param>
|
|
|
|
|
- /// <returns>统一出参</returns>
|
|
|
|
|
- [HttpPost]
|
|
|
|
|
- public OperateResult On(string ISn)
|
|
|
|
|
- {
|
|
|
|
|
- return daqManageOperate.On(ISn);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /// <summary>
|
|
|
|
|
- /// 关闭
|
|
|
|
|
- /// </summary>
|
|
|
|
|
- /// <param name="ISn">实例唯一标识符</param>
|
|
|
|
|
- /// <returns>统一出参</returns>
|
|
|
|
|
- [HttpPost]
|
|
|
|
|
- public OperateResult Off(string ISn)
|
|
|
|
|
- {
|
|
|
|
|
- return daqManageOperate.Off(ISn);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- //***********************************
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- /// <summary>
|
|
|
|
|
- /// 打开
|
|
|
|
|
- /// </summary>
|
|
|
|
|
- /// <param name="ISn">实例唯一标识符</param>
|
|
|
|
|
- /// <returns>统一出参</returns>
|
|
|
|
|
- [HttpPost]
|
|
|
|
|
- public OperateResult RelayOn(string ISn)
|
|
|
|
|
- {
|
|
|
|
|
- return AddressHandler.On(ISn);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /// <summary>
|
|
|
|
|
- /// 关闭
|
|
|
|
|
- /// </summary>
|
|
|
|
|
- /// <param name="ISn">实例唯一标识符</param>
|
|
|
|
|
- /// <returns>统一出参</returns>
|
|
|
|
|
- [HttpPost]
|
|
|
|
|
- public OperateResult RelayOff(string ISn)
|
|
|
|
|
- {
|
|
|
|
|
- return AddressHandler.Off(ISn);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /// <summary>
|
|
|
|
|
- /// 程序集唯一标识符集合
|
|
|
|
|
- /// </summary>
|
|
|
|
|
- /// <returns>统一出参</returns>
|
|
|
|
|
- [HttpPost]
|
|
|
|
|
- public List<string>? RelayTypeSns()
|
|
|
|
|
- {
|
|
|
|
|
- return AddressHandler.TypeSns();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /// <summary>
|
|
|
|
|
- /// 实例唯一标识符集合
|
|
|
|
|
- /// </summary>
|
|
|
|
|
- /// <returns>统一出参</returns>
|
|
|
|
|
- [HttpPost]
|
|
|
|
|
- public List<string>? RelayInstanceSns()
|
|
|
|
|
- {
|
|
|
|
|
- return AddressHandler.InstanceSns();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /// <summary>
|
|
|
|
|
- /// 释放指定实例
|
|
|
|
|
- /// </summary>
|
|
|
|
|
- /// <param name="ISn">实例唯一标识符</param>
|
|
|
|
|
- /// <returns>统一出参</returns>
|
|
|
|
|
- [HttpPost]
|
|
|
|
|
- public OperateResult RelayDisposeISn(string ISn)
|
|
|
|
|
- {
|
|
|
|
|
- return AddressHandler.DisposeISn(ISn);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /// <summary>
|
|
|
|
|
- /// 移除指定实例
|
|
|
|
|
- /// </summary>
|
|
|
|
|
- /// <param name="ISn">实例唯一标识符</param>
|
|
|
|
|
- /// <returns>统一出参</returns>
|
|
|
|
|
- [HttpPost]
|
|
|
|
|
- public OperateResult RelayRemove(string ISn)
|
|
|
|
|
- {
|
|
|
|
|
- return AddressHandler.RemoveISn(ISn);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /// <summary>
|
|
|
|
|
- /// 数据转发
|
|
|
|
|
- /// </summary>
|
|
|
|
|
- /// <param name="Topic">主题</param>
|
|
|
|
|
- /// <param name="Content">内容</param>
|
|
|
|
|
- /// <returns>统一出参</returns>
|
|
|
|
|
- [HttpPost]
|
|
|
|
|
- public OperateResult Relay(string Topic, string Content)
|
|
|
|
|
- {
|
|
|
|
|
- return AddressHandler.Produce(Topic, Content);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-}
|
|
|