版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
前言在上位机开发过程中,有时候会遇到需要提供数据接口给MES或者其他系统,今天跟大家分享一下,如何在Winform等桌面应用程序中,开发WebApi接口,提供对外数据服务。为了更好地演示应用场景,本案例以读取ModbusTCP设备为例,开发好WeiApi接口后,第三方系统可以通过该接口读取到设备数据。实现过程1、创建一个Winform程序,设计UI界面如下,主要包括ModbusTCP的设备IP及端口,以及本地WepApi的Http服务及端口:2、实现ModbusTCP连接(1)Nuget搜索xktComm并安装,便于后续可以实现ModbusTCP连接(2)建立ModbusTCP连接
privatevoidbtn_Connect_Click(objectsender,
EventArgse)
{
if
(CommonMethods.modbusTcp.Connect(this.txt_DevIp.Text,
this.txt_DevPort.Text))
{
MessageBox.Show("设备连接成功");
}
else
{
MessageBox.Show("设备连接失败");
}
}(3)断开ModbusTCP连接
privatevoidbtn_DisConn_Click(objectsender,
EventArgse)
{
CommonMethods.modbusTcp.DisConnect();
}3、创建HttpServer首先通过Nuget搜索这两个库,添加一下引用:Microsoft.AspNet.WebApi.ClientMicrosoft.AspNet.WebApi.SelfHostHttpServer主要是对HttpSelfHostServer的封装,HttpServer类如下:
publicclassHttpServer
{
privateHttpSelfHostServerserver;
publicHttpServer(stringip,
intport)
{
varconfig
=
newHttpSelfHostConfiguration($"http://{ip}:{port}");
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute("DefaultApi",
"api/{controller}/{action}");
server
=
newHttpSelfHostServer(config);
}
publicTask
StartHttpServer()
{
return
server.OpenAsync();
}
publicTask
CloseHttpServer()
{
return
server.CloseAsync();
}
}4、创建Controller创建一个控制器HomeController,以读取保持寄存器为例,编写了一个方法可以读取一个保持寄存器存储区数据,代码如下所示:
publicclassHomeController
:
ApiController
{
[HttpGet]
publicIHttpActionResultReadKeepReg(intaddress)
{
byte[]
res
=
CommonMethods.modbusTcp.ReadKeepReg(address,
1);
return
Json(res[0]*256+res[1]);
}
}5、开启HttpServer(1)创建HttpServer对象
privateHttpServerhttpServer
=
null;(2)开启HttpServer服务
privateasyncvoidbtn_Start_Click(objectsender,
EventArgse)
{
try
{
httpServer
=
newHttpServer(this.txt_Ip.Text,
int.Parse(this.txt_Port.Text));
awaithttpServer.StartHttpServer();
MessageBox.Show("开始服务成功");
}
catch
(Exceptionex)
{
MessageBox.Show("开始服务失败:"+ex.Message);
}
}(3)停止HttpServer服务
privateasyncvoidbtn_Stop_Click(objectsender,
EventArgse)
{
try
{
awaithttpServer.CloseHttpServer();
}
catch
(Exceptionex)
{
MessageBox.Show("停止服务失败:"
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络学习平台课后资源方案
- 餐饮投资合作协议书
- 屋顶风力发电系统安装方案
- 2024年卫生与健康知识竞赛试题库及答案(共400题)
- 团队培养课件教学课件
- 2024-2025学年八年级物理上册2.2运动的描述同步课堂含解析新版教科版
- 2024-2025学年新教材高中数学第3章不等式3.2.1基本不等式的证明课后素养落实含解析苏教版必修第一册
- 2024-2025学年新教材高中生物课时作业10生态系统的信息传递含解析新人教版选择性必修2
- 2024年大型设备运输承揽合同
- 安徽省芜湖市2023-2024学年高二上学期期末考试 历史 含解析
- 扬州树人学校2024-2025七年级上学期9月月考数学试卷及答案
- 课件:七年级道德与法治上册(统编版2024)-【新教材解读】义务教育教材内容解读课件
- 002医疗器械质量安全关键岗位人员岗位说明
- 2024年高考浙江省历史试题(有答案)
- 沪科版(2024新版)八年级全册物理第一学期期中学情评估测试卷(含答案)
- 2024-2030年中国木制品行业市场深度发展趋势与前景展望战略分析报告
- 2024年新人教版部编本四年级上数学教材深度解读
- 《新时代公民道德建设实施纲要》、《新时代爱国主义教育实施纲要》知识竞赛试题库55题(含答案)
- 《追求远大理想坚定崇高信念》课件
- DL∕T 5210.4-2018 电力建设施工质量验收规程 第4部分:热工仪表及控制装置
- 2024-2025学年牛津版小学六年级英语上册期中检查试题及答案
评论
0/150
提交评论