139 lines
4.7 KiB
C#
139 lines
4.7 KiB
C#
using JiShe.CollectBus.Common.Enums;
|
||
using JiShe.CollectBus.Common.Extensions;
|
||
using JiShe.CollectBus.Common.Models;
|
||
using JiShe.CollectBus.Protocol.Contracts.Models;
|
||
using JiShe.CollectBus.RabbitMQ.Senders;
|
||
using Microsoft.AspNetCore.Mvc;
|
||
using TouchSocket.Sockets;
|
||
|
||
namespace JiShe.CollectBus.Api.Controllers
|
||
{
|
||
[ApiController]
|
||
[Route("[controller]")]
|
||
public class WeatherForecastController : ControllerBase
|
||
{
|
||
private static readonly string[] Summaries = new[]
|
||
{
|
||
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
|
||
};
|
||
|
||
private readonly ILogger<WeatherForecastController> _logger;
|
||
private readonly INSender _nSender;
|
||
|
||
public WeatherForecastController(INSender nSender, ILogger<WeatherForecastController> logger)
|
||
{
|
||
_nSender = nSender;
|
||
_logger = logger;
|
||
}
|
||
|
||
[HttpGet(Name = "GetWeatherForecast")]
|
||
public IEnumerable<WeatherForecast> Get()
|
||
{
|
||
return Enumerable.Range(1, 5).Select(index => new WeatherForecast
|
||
{
|
||
Date = DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
|
||
TemperatureC = Random.Shared.Next(-20, 55),
|
||
Summary = Summaries[Random.Shared.Next(Summaries.Length)]
|
||
})
|
||
.ToArray();
|
||
}
|
||
|
||
[HttpGet(Name = "AmmeterParameterSend")]
|
||
public async Task<bool> AmmeterParameterSendAsync() {
|
||
|
||
var listMeter = new List<AmmeterParameter>() { new AmmeterParameter(){
|
||
Pn = 1,
|
||
BaudRate = 3,
|
||
Port = 2,
|
||
ProtocolType = CommunicationProtocolType.DLT6452007,
|
||
Address = "312408006642",
|
||
Password = "000000",
|
||
RateNumber = 4,
|
||
IntegerBitNumber = 4,
|
||
DecimalBitNumber = 4,
|
||
CollectorAddress = "000000000000",
|
||
UserCategoryNumber = 0,
|
||
UserSubclassNumber = 0
|
||
}};
|
||
var bytes = HexStringExtensions.BuildAmmeterParameterSetSendCmd(new ReqParameter2()
|
||
{
|
||
AFN = AFN.<EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD><EFBFBD><EFBFBD>,
|
||
FunCode = (int)CMasterStationFunCode.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
|
||
A = "322009872",
|
||
Seq = new Seq()
|
||
{
|
||
TpV = TpV.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǩ,
|
||
FIRFIN = FIRFIN.<EFBFBD><EFBFBD>֡,
|
||
CON = CON.<EFBFBD><EFBFBD>Ҫ<EFBFBD>Ը<EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD>,
|
||
PRSEQ = 10,
|
||
},
|
||
MSA = 13,
|
||
Pn = 0,
|
||
Fn = 10
|
||
}, listMeter);
|
||
|
||
// await _nSender.SendToIssuedAsync(new MessageIssuedEvent { DeviceNo = "322009872", Message = bytes, Type = IssuedEventType.Data,MessageId = Guid.NewGuid().ToString() });
|
||
return true;
|
||
}
|
||
|
||
[HttpGet(Name = "AmmeterParameterReading")]
|
||
public bool AmmeterParameterReading()
|
||
{
|
||
HexStringExtensions.BuildAmmeterParameterReadingSendCmd(new ReqParameter2()
|
||
{
|
||
AFN = AFN.<EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
|
||
FunCode = (int)CMasterStationFunCode.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
|
||
A = "322009872",
|
||
Seq = new Seq()
|
||
{
|
||
TpV = TpV.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǩ,
|
||
FIRFIN = FIRFIN.<EFBFBD><EFBFBD>֡,
|
||
CON = CON.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>Ը<EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD>,
|
||
PRSEQ = 2,
|
||
},
|
||
MSA = 13,
|
||
Pn = 0,
|
||
Fn = 10
|
||
}, new List<int>() { 1, 2 });
|
||
|
||
return true;
|
||
}
|
||
|
||
[HttpGet(Name = "ActivePowerIndicationReading")]
|
||
public bool ActivePowerIndicationReading()
|
||
{
|
||
|
||
//var str = "68A600A6006888203290261A0A6200000201010001000100621E426622082431000000000000040300000000000000CA16";
|
||
//var cmdResult = new BuildCommand().AnalysisCmd(str);
|
||
//if(cmdResult != null)
|
||
//{
|
||
// var list = new BuildCommand().AnalysisAFN04F10DataUnit(cmdResult.HexDatas);
|
||
//}
|
||
HexStringExtensions.BuildSendCommandBytes(new ReqParameter2()
|
||
{
|
||
AFN = AFN.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
|
||
FunCode = (int)CMasterStationFunCode.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
|
||
A = "322009872",
|
||
Seq = new Seq()
|
||
{
|
||
TpV = TpV.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǩ,
|
||
FIRFIN = FIRFIN.<EFBFBD><EFBFBD>֡,
|
||
CON = CON.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>Ը<EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD>,
|
||
PRSEQ = 2,
|
||
},
|
||
MSA = 13,
|
||
Pn = 1,
|
||
Fn = 129
|
||
});
|
||
|
||
//HexStringExtensions.AmmeterValveControl("312408006642", "", "000000", true);
|
||
|
||
return true;
|
||
}
|
||
|
||
|
||
|
||
|
||
}
|
||
}
|