using Net462DllTest.Enums; using Net462DllTest.Signal; using Net462DllTest.Trigger; using Serein.Library; using Serein.Library.Utils; using Serein.Library.Web; using System; namespace Net462DllTest.Web { [WebApiController] public class FlowController : ControllerBase { private readonly SiemensPlcDevice plcDevice; private readonly ViewManagement viewManagement; public FlowController(SiemensPlcDevice plcDevice, ViewManagement viewManagement) { this.plcDevice = plcDevice; this.viewManagement = viewManagement; } /* * 类型 :POST * url : http://127.0.0.1:8089/flow/plcop?var= * url : http://127.0.0.1:8089/flow/plcop?var=SpaceNum * body :[JSON] * * { * "value":0, * } */ [WebApi(ApiType.POST)] public dynamic PlcOp([Url] string var, int value) { if (EnumHelper.TryConvertEnum(var, out var signal)) { SereinEnv.WriteLine(InfoType.INFO, $"外部触发 {signal} 信号,信号内容 : {value} "); _ = plcDevice.InvokeTriggerAsync(signal, value);// 通过 Web Api 模拟外部输入信号 return new { state = "succeed" }; } else { return new { state = "fail" }; } } /* * 类型 :POST * url : http://127.0.0.1:8089/flow/trigger?command= * url : http://127.0.0.1:8089/flow/trigger?command=Command_1 * body :[JSON] * * { * "value":0, * } */ [WebApi(ApiType.POST)] public dynamic Trigger([Url] string command, int value) { if (EnumHelper.TryConvertEnum(command, out var signal)) { SereinEnv.WriteLine(InfoType.INFO, $"外部触发 {signal} 信号,信号内容 : {value} "); _ = viewManagement.InvokeTriggerAsync(signal, value);// 通过 Web Api 模拟外部输入信号 return new { state = "succeed" }; } else { return new { state = "fail" }; } } } }