吉特日化MES&WMS系统--三色灯控制协议转http
2021-04-23 16:11
1286 查看
关于硬件控制大部分都是使用CS客户端程序,一般连接口都是用网口,串口,USB口等,应用通讯是不支持HTTp协议操作的,而目前一般做技术的人员都在于BS开发,使用HTTP 协议,所以在硬件交互上可能觉得很复杂。最近在实施牙膏车间地磅称重过程中使用到了三色灯的控制,在开发控制的过程中将三色灯的控制转换了一下协议:
1. 首先使用CS端程序 开发了一个控制客户端,在操作界面上可以控制灯光
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Web.Http; namespace Git.WMS.LightSDK.Server { public partial 3ff8 class LightController: ApiController { /// <summary> /// 连接报警灯 /// </summary> [HttpGet] public DataResult Con() { DataResult dataResult=LampServer.Instance().Init(); return dataResult; } /// <summary> /// 关闭报警灯连接 /// </summary> [HttpGet] public DataResult DisCon() { DataResult dataResult = LampServer.Instance().Close(); return dataResult; } /// <summary> /// 打开红灯 /// </summary> [HttpGet] public DataResult OpenRed() { DataResult dataResult = LampServer.Instance().OpenRed(); return dataResult; } /// <summary> /// 打开黄灯 /// </summary> [HttpGet] public DataResult OpenYellow() { DataResult dataResult = LampServer.Instance().OpenYellow(); return dataResult; } /// <summary> /// 打开绿灯 /// </summary> [HttpGet] public DataResult OpenGreen() { DataResult dataResult = LampServer.Instance().OpenGreen(); return dataResult; } /// <summary> /// 关闭所有灯 /// </summary> [HttpGet] public DataResult CloseAll() { DataResult dataResult = LampServer.Instance().CloseAll(); return dataResult; } } }View Code
5. 添加 Startup 配置指令,代码如下:
using Newtonsoft.Json; using Newtonsoft.Json.Serialization; using Owin; using System; using System.Collections.Generic; using System.Linq; using System.Net.Http.Formatting; using System.Text; using System.Threading.Tasks; using System.Web.Http; namespace Git.WMS.LightSDK.Server { public class Startup { public void Configuration(IAppBuilder appBuilder) { HttpConfiguration config = new HttpConfiguration(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{action}" ); config.Formatters.Clear(); config.Formatters.Add(new JsonMediaTypeFormatter()); config.Formatters.JsonFormatter.SerializerSettings = new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }; appBuilder.UseWebApi(config); } } }View Code
6. 在CS端添加一个启动服务
/// <summary> /// 开启API服务 /// </summary> public void Start() { string baseAddress = ResourceManager.GetSettingEntity("API_URL").Value; Microsoft.Owin.Hosting.WebApp.Start<Startup>(url: baseAddress); Console.WriteLine("程序已启动,按任意键退出"); LampServer.Instance().Init(); Console.ReadLine(); }View Code
启动服务之后就可以根据配置使用的地址来访问了,访问方式和WebAPI模式一样,相当于使用CS程序托管了一个小型IIS服务,由于工作网络环境较差,无法上传到GitHub,百度网盘分享一下代码
链接:https://pan.baidu.com/s/1-6OlB8UppsTgHhVCMAIjPw
提取码:1w4d
复制这段内容后打开百度网盘手机App,操作更方便哦
GitHub地址: https://github.com/hechenqingyuan/LightSDK.git
通过URL请求响应如下
相关文章推荐
- HTTP协议及其POST与GET操作差异 & C#中如何使用POST、GET等
- 在与sap系统集成时遇到的问题.sap系统发布一webservice,java(xfire)作为客户端调用,调用时抛出如下异常: Wrong Content-Type and empty HTTP-Body received: ("HTTP Code 20
- Ubuntu远程桌面登录协议xrdp && 配置系统服务 && Ubuntu安装virtualbox
- 常用网络术语 && HTTP协议的几个重要概念 && HTTPS传输协议
- 吉特仓储管系统(开源WMS)--分享两月如何做到10W+的项目
- 10047--http协议无状态中的 "状态" 到底指的是什么?!
- 几种通讯协议的比较:RMI>HttpInvoker>=Hessian>Burlap>Web Service
- HTTP协议开发应用-HTTP&XML协议栈开发
- C语言系统资源控制(getrlimit && setrlimit)
- 几种通讯协议的比较RMI > Httpinvoker >= Hessian >> Burlap >> web service
- LD编辑距离算法-->可用于聊天系统的刷屏控制
- C语言系统资源控制(getrlimit && setrlimit)
- 几种通讯协议比较RMI>HttpInvoker>=Hessian>>Burlap>>web service
- Android6.0 开机动画(二) AMS通知系统启动&WMS通知SurfaceFlinger关闭开机动画
- MES系统模块设计之物料控制 Material Control -- 1
- C语言系统资源控制(getrlimit && setrlimit)
- HTTP协议及其POST与GET操作差异 & C#中如何使用POST、GET等
- HTTP协议:web应用的通信与控制
- (转)HTTP协议及其POST与GET操作差异 & C#中如何使用POST、GET等
- HTTP协议及其POST与GET操作差异 & C#中如何使用POST、GET等