ajuste contador de carga

This commit is contained in:
Diego Freitas 2024-12-17 13:16:55 -03:00
parent 0de0e13d65
commit 41ce45ede7
9 changed files with 83 additions and 42 deletions

Binary file not shown.

View File

@ -1,12 +1,54 @@
{ {
"Version": 1, "Version": 1,
"WorkspaceRootPath": "C:\\ZendionINC\\agrobot_base\\AgroBase\\", "WorkspaceRootPath": "C:\\ZendionINC\\agrobot_base\\AgroBase\\",
"Documents": [], "Documents": [
{
"AbsoluteMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|c:\\zendioninc\\agrobot_base\\agrobase\\agrobase\\services\\dispositivosservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\services\\dispositivosservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|c:\\zendioninc\\agrobot_base\\agrobase\\agrobase\\models\\operacoes\\operacaomapagpsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\models\\operacoes\\operacaomapagpsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}
],
"DocumentGroupContainers": [ "DocumentGroupContainers": [
{ {
"Orientation": 0, "Orientation": 0,
"VerticalTabListWidth": 256, "VerticalTabListWidth": 256,
"DocumentGroups": [] "DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": 0,
"Children": [
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "DispositivosService.cs",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Services\\DispositivosService.cs",
"RelativeDocumentMoniker": "AgroBase\\Services\\DispositivosService.cs",
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Services\\DispositivosService.cs",
"RelativeToolTip": "AgroBase\\Services\\DispositivosService.cs",
"ViewState": "AQIAAAAAAAAAAAAAAAAAAJsAAAAAAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-17T16:08:08.254Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 1,
"Title": "OperacaoMapaGPSModel.cs",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Operacoes\\OperacaoMapaGPSModel.cs",
"RelativeDocumentMoniker": "AgroBase\\Models\\Operacoes\\OperacaoMapaGPSModel.cs",
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Operacoes\\OperacaoMapaGPSModel.cs",
"RelativeToolTip": "AgroBase\\Models\\Operacoes\\OperacaoMapaGPSModel.cs",
"ViewState": "AQIAABcAAAAAAAAAAAAwwCoAAAAMAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-17T16:03:54.404Z",
"EditorCaption": ""
}
]
}
]
} }
] ]
} }

View File

@ -58,7 +58,16 @@ namespace AgroBase.Models.Operacoes
// Atualiza o PID com o erro combinado // Atualiza o PID com o erro combinado
if (statusCarroRua != StatusCarroMapa.Parado) if (statusCarroRua != StatusCarroMapa.Parado)
{ {
Variaveis.OperacaoEmAndamento.Controle.PIDdirecional.Atualizar(erroCombinado, 0); var PID = Variaveis.OperacaoEmAndamento.Controle.PIDdirecional;
if (Variaveis.OperacaoEmAndamento.OpMapaGPS.ReferencialRuaGPS.ManobrandoEntreRuas)
{
PID.LimiteSaida = Variaveis.OperacaoEmAndamento.Controle.Angulo_Max * 0.75;
}
else
{
PID.LimiteSaida = Variaveis.OperacaoEmAndamento.Controle.Angulo_Max;
}
PID.Atualizar(erroCombinado, 0);
} }
double correcaoAngulo = Variaveis.OperacaoEmAndamento.Controle.PIDdirecional.Saida; double correcaoAngulo = Variaveis.OperacaoEmAndamento.Controle.PIDdirecional.Saida;

View File

@ -16,7 +16,6 @@ public class MqttService
private AsyncTaskTimerModel tmrCheck; private AsyncTaskTimerModel tmrCheck;
public List<MqttTopicosModel> Topicos; public List<MqttTopicosModel> Topicos;
public readonly object _topicosLock = new object();
public MqttService(string brokerAddress, int brokerPort) public MqttService(string brokerAddress, int brokerPort)
{ {
@ -31,14 +30,11 @@ public class MqttService
_client.UseConnectedHandler(async e => _client.UseConnectedHandler(async e =>
{ {
Console.WriteLine("Connected to MQTT Broker."); Console.WriteLine("Connected to MQTT Broker.");
lock (_topicosLock) if (Topicos.Any(x => x.Inscrever))
{ {
if (Topicos.Any(x => x.Inscrever)) foreach (var topic in Topicos)
{ {
foreach (var topic in Topicos) await SubscribeAsync(topic);
{
Task.Run(async () => await SubscribeAsync(topic));
}
} }
} }
@ -55,11 +51,8 @@ public class MqttService
//Console.WriteLine($"Message received on topic {e.ApplicationMessage.Topic}"); //Console.WriteLine($"Message received on topic {e.ApplicationMessage.Topic}");
// Aqui você pode adicionar o código para lidar com a mensagem recebida // Aqui você pode adicionar o código para lidar com a mensagem recebida
MqttTopicosModel topico = null; MqttTopicosModel topico = Topicos.FirstOrDefault(x => x.Topico == e.ApplicationMessage.Topic);
lock (_topicosLock)
{
Topicos.FirstOrDefault(x => x.Topico == e.ApplicationMessage.Topic);
}
if (topico != null) if (topico != null)
{ {
var Mensagem = new MqttTopicosMensagensModel() var Mensagem = new MqttTopicosMensagensModel()
@ -83,10 +76,8 @@ public class MqttService
} }
}); });
lock (_topicosLock) Topicos = new List<MqttTopicosModel>();
{
Topicos = new List<MqttTopicosModel>();
}
Task.Run(async () => Task.Run(async () =>
{ {
await AdicionarNovoTopico(MapasVariaveisModel.TopicoCoordenadasGPS); await AdicionarNovoTopico(MapasVariaveisModel.TopicoCoordenadasGPS);
@ -208,32 +199,29 @@ public class MqttService
{ {
MqttTopicosModel _mqttTopico = null; MqttTopicosModel _mqttTopico = null;
lock (_topicosLock) Topicos.Remove(null);
_mqttTopico = Topicos.FirstOrDefault(x => x.Topico == topico);
if (_mqttTopico == null)
{ {
Topicos.Remove(null); _mqttTopico = new MqttTopicosModel()
_mqttTopico = Topicos.FirstOrDefault(x => x.Topico == topico);
if (_mqttTopico == null)
{ {
_mqttTopico = new MqttTopicosModel() Topico = topico,
{ Mensagens = new List<MqttTopicosMensagensModel>(),
Topico = topico, Inscrever = inscrever,
Mensagens = new List<MqttTopicosMensagensModel>(), MensagensManter = mensagensManter,
Inscrever = inscrever, Callback = callback
MensagensManter = mensagensManter, };
Callback = callback
};
Topicos.Add(_mqttTopico); Topicos.Add(_mqttTopico);
if (_mqttTopico.Inscrever) if (_mqttTopico.Inscrever)
{ {
Task.Run(async () => await SubscribeAsync(_mqttTopico)); await SubscribeAsync(_mqttTopico);
}
Task.Run(async () => await LimparMensagensRetidas(_mqttTopico.Topico));
} }
await LimparMensagensRetidas(_mqttTopico.Topico);
} }
return _mqttTopico; return _mqttTopico;

View File

@ -74,6 +74,8 @@ namespace AgroBase.Services
if (Iniciado) if (Iniciado)
{ {
DefinirDispositivo(); DefinirDispositivo();
UltimaLeitura.DataHora = DateTime.Now;
PenultimaLeitura.DataHora = UltimaLeitura.DataHora;
return Iniciado; return Iniciado;
} }

File diff suppressed because one or more lines are too long