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();
开发中
https://localhost:5001/short/holdingregisters
GET
application/json
{
"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]