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,
"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": [
{
"Orientation": 0,
"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
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;

View File

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

View File

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

File diff suppressed because one or more lines are too long