前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[C#] 支持API的边缘网关开发笔记8-miniAPI的实现

[C#] 支持API的边缘网关开发笔记8-miniAPI的实现

作者头像
科控物联
发布2022-03-29 20:17:42
2640
发布2022-03-29 20:17:42
举报
文章被收录于专栏:科控自动化科控自动化
视频内容
代码语言:javascript
复制
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddSwaggerGen();
builder.Services.AddEndpointsApiExplorer();
var app = builder.Build();
if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI();
}
 
app.UseHttpsRedirection();
app.MapGet("/", () => "Hello World!");
 
 
app.MapGet("bool/{devicetype}", (string devicetype, [FromBody] request req) =>
{
 
    try
    {
        switch (devicetype.ToLower())
        {
            case "coils":
                return Coils.Instance.Read(req);
            case "inputs":
                return Inputs.Instance.Read(req);
            case "coilsn":
                return  Coils.Instance.ReadN(req);
 
            case "inputsn":
                return Inputs.Instance.ReadN(req);
        }
    }
    catch (Exception ex)
    {
        Log.Error("{txt}",ex);
    }
return null;
});
app.MapGet("short/{devicetype}", (string devicetype, [FromBody] request req) =>
{
 
    try
    {
        switch (devicetype.ToLower())
        {
 
            case "holdingregisters":
                return HoldingRegisters.Instance.Read(req);
            case "inputregisters":
                return InputRegisters.Instance.Read(req);
 
 
            case "holdingregistersn":
                return HoldingRegisters.Instance.ReadN(req);
            case "inputregistersn":
                return InputRegisters.Instance.ReadN(req);
 
        }
    }
    catch (Exception ex)
    {
        Log.Error("{txt}", ex);
    }
    return null;
});
 
app.MapPut(pattern: "/bool/{wtype}", handler: (string wtype, [FromBody] writerequest<bool[]> cwreq) =>
{
    OperateResult rst = null;
    switch (wtype.ToLower())
    {
        case "coils":
            rst = (Coils.Instance.HslWrite((writerequest<bool[]>)cwreq));
 
            break;
        //case "coilsn":
        //    Coils.Instance.WriteN((writerequest<bool[]>)cwreq);
        //    break;
 
    }
 
    if (rst != null && rst.IsSuccess)
    {
        return DateTime.Now+ $" 写入{wtype}成功";
    }
    else
    {
        return DateTime.Now + $" 写入{wtype}失败" + (rst?.Message);
 
    }
 
});
app.MapPut("/short/{wbtype}", (string wbtype, [FromBody] writerequest<ushort[]> cwreq) =>
{
    switch (wbtype.ToLower())
    {
        case "holdingregisters":
            return HoldingRegisters.Instance.HslWrite((writerequest<ushort[]>)cwreq);
 
 
    }
    return null;
 
});
 
app.Run();

miniAPI批量读holdingregisters 复制接口更新时间:2022-02-02 19:43:06

基本信息

  • 接口状态: 开发中
  • 接口URL: https://localhost:5001/short/holdingregisters
  • 请求方式: GET
  • Content-Type: application/json

请求参数

body参数及说明
代码语言:javascript
复制
{
	"destination": "192.168.0.112:502",
	"connectiontype": 2,
	"slaveid": 12,
	"address": 0,
	"count": 125
}
字段描述

参数名

示例值

参数类型

是否必填

参数描述

destination

127.0.0.1:502

Number

链接IP和端号

connectiontype

2

Number

通讯链接类型

slaveid

1

Number

从站

address

0

Number

起始地址

count

10

Number

读取数据长度

响应示例

成功响应示例

[2247,2249,2173,2249,1199,377,1086,1474,2092,1161,2179,1716,919,745,1846,1674,2237,2018,1488,2188,1313,1041,1719,3802,3732,3741,5011,5002,4990,1,5118,0,384,2245,2196,1223,1899,2060,1163,1646,1024,278,1565,1824,1232,2122,1360,2011,1610,581,1310,1436,1504,888,1239,3739,2245,2196,1223,1899,2060,1163,1646,1024,278,1565,1824,1232,2122,1360,2011,1610,581,1310,1436,1504,888,1239,3739,2245,2196,1223,1899,2060,1163,1646,1024,278,1565,1824,1232,2122,1360,2011,1610,581,1310,1436,1504,888,1239,3739,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-02-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 科控物联 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • miniAPI批量读holdingregisters 复制接口更新时间:2022-02-02 19:43:06
    • 基本信息
      • 请求参数
        • body参数及说明
        • 字段描述
      • 响应示例
        • 成功响应示例
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档