吉特日化MES&WMS系统--三色灯控制协议转http
关于硬件控制大部分都是使用CS客户端程序,一般连接口都是用网口,串口,USB口等,应用通讯是不支持HTTp协议操作的,而目前一般做技术的人员都在于BS开发,使用HTTP 协议,所以在硬件交互上可能觉得很复杂。最近在实施牙膏车间地磅称重过程中使用到了三色灯的控制,在开发控制的过程中将三色灯的控制转换了一下协议:
1. 首先使用CS端程序 开发了一个控制客户端,在操作界面上可以控制灯光
2. 我想通网页浏览器或者手机端来控制灯光,需要将按钮操作的动作转换为HTTP 协议
3. 在项目中添加 Microsoft.AspNet.WebApi.OwinSelfHost
4. 新建一个Web API 的Controller ,具体代码如下:


- 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 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;
- }
- }
- }
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);
- }
- }
- }
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();
- }
启动服务之后就可以根据配置使用的地址来访问了,访问方式和WebAPI模式一样,相当于使用CS程序托管了一个小型IIS服务
吉特日化MES&WMS系统--三色灯控制协议转http的更多相关文章
- 吉特仓储管理系统-ERP或WMS系统中常见术语
MPS---主生产计划(Master Production schedules) MTO---订货生产(Make-to-Order) BOM---物料清单或产品结构表(Bill of material ...
- 吉特日化MES-工业生产盲区
工业生产的几大盲区 1 重硬件忽略软件 : 目前只要提到智能化,大家都是想到的是一大堆自动执行的设备,什么机器人,输送线,人脸识别摄像头等,在一成套的系统中可能硬件几百万上千万,软件可以是几万几千几 ...
- 定义制造业操作(定义 MES/MOM 系统)
定义制造业操作(定义 MES/MOM 系统) 制造业操作包含众多工厂级活动,涉及设备(定义.使用.时间表和维护).材料(识别.属性.位置和状态).人员(资格.可用性和时间表),以及这些资源与包含其信息 ...
- 基于Vue实现后台系统权限控制
原文地址:http://refined-x.com/2017/08/29/基于Vue实现后台系统权限控制/,转载请注明出处. 用Vue/React这类双向绑定框架做后台系统再适合不过,后台系统相比普通 ...
- 直流电机PWM调速系统中控制电压非线性研究_控制元件_工业自动化控制_文章
直流电机PWM调速系统中控制电压非线性研究_控制元件_工业自动化控制_文章_e-works数字化企业网 http://articles.e-works.net.cn/Component/Article ...
- 【系统设计】WMS系统中 库存、盘点、移库、拆库功能的设计(库内管理)
最近负责WMS系统 盘点 移库 两个功能模块的功能及数据库设计. 物流仓储系统的搭建,要基于仓库的实际情况,整理内部员工需求,再参考其他WMS系统,经过长时间的讨论和研究,最终转化为产品需求. 这里先 ...
- LACP链路聚合控制协议
LACP链路聚合控制协议 来源: https://www.cnblogs.com/taosim/articles/4378691.html http://storage.chinabyte.com/6 ...
- RTSP/RTP 媒体传输和控制协议
1 前言 本文档主要描述了 NewStream Vision 系统中前端视频服务器(DVR, 网络摄像机), 中心转发服务器以及客户端之间的多媒体通信以及控制协议. 本协议主要基于标准的 IETE 的 ...
- 运输层3——传输控制协议TCP概述
目录 1. TCP最主要的特点 2. TCP的连接 3. socket在不同场景中的含义 写在前面:本文章是针对<计算机网络第七版>的学习笔记 运输层1--运输层协议概述 运输层2--用户 ...
随机推荐
- alpakka-kafka(2)-consumer
alpakka-kafka-consumer的功能描述很简单:向kafka订阅某些topic然后把读到的消息传给akka-streams做业务处理.在kafka-consumer的实现细节上,为了达到 ...
- c# 打印面单
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { ...
- HTTP/1.1报文详解
本文为<三万长文50+趣图带你领悟web编程的内功心法>第三个章节. 3.HTTP/1.1报文详解 在RFC2616中心详细的描述了HTTP/1.1[1]的报文,感兴趣的朋友也可以前往阅读 ...
- cartographer 调参(1)-lua文件配置参考文档
cartographer 调参(1)-lua文件配置参考文档 https://blog.csdn.net/SimileciWH/article/details/84861718 Lua configu ...
- QT实现输入框与下拉框提示并可模糊匹配
功能:支持下拉框选择.手动输入更改和模糊匹配 组件:QLineEdit.QComboBox.QCompleter.QStringListModel 一.组件介绍 1.1 QLineEdit QLine ...
- Java RPC 框架 Solon 1.3.7 发布,增强Cloud接口能力范围
Solon 是一个微型的Java RPC开发框架.项目从2018年启动以来,参考过大量前人作品:历时两年,4000多次的commit:内核保持0.1m的身材,超高的跑分,良好的使用体验.支持:RPC. ...
- Flask:Jinjia模板
Jinja2是Python下一个被广泛应用的模版引擎,他的设计思想来源于Django的模板引擎,并扩展了其语法和一系列强大的功能. 一.变量 1.1 手动传入的变量: 基本类型:{{ var }} 字 ...
- Hi3559AV100 NNIE RFCN开发:V4L2->VDEC->VPSS->NNIE->VGS->VO系统整体动态调试实现
下面随笔将给出Hi3559AV100 NNIE RFCN开发:V4L2->VDEC->VPSS->NNIE->VGS->VO系统整体动态调试实现,最终的效果是:USB摄像 ...
- Docker系列——InfluxDB+Grafana+Jmeter性能监控平台搭建(一)
在做性能测试的时候,重点关注点是各项性能指标,用Jmeter工具,查看指标数据,就是借助于聚合报告,但查看时也并不方便.那如何能更直观的查看各项数据呢?可以通过InfluxDB+Grafana+Jme ...
- centos系统mysql忘记密码
安装 mysql 之后,注意添加软连接 mysql 忘记密码操作, vim /etc/my.cnf 在 [mysqld] 的段中加上一句:skip-grant-tables 重启 mysql 服务, ...