ajustado ultimos timers

This commit is contained in:
Diego Freitas 2024-11-25 14:49:02 -03:00
parent 80dcf09073
commit 13217e3d41
25 changed files with 604 additions and 285 deletions

Binary file not shown.

View File

@ -12,7 +12,7 @@ namespace AgroBase.Forms.IHM
{ {
public partial class frmDialogoMapa : Form public partial class frmDialogoMapa : Form
{ {
System.Timers.Timer tmrLeitura = new System.Timers.Timer() { Interval = 500 }; AsyncTaskTimerModel tmrLeitura;
private ulong CodigoFalha = 0; private ulong CodigoFalha = 0;
public frmDialogoMapa() public frmDialogoMapa()
@ -28,8 +28,6 @@ namespace AgroBase.Forms.IHM
pnlJoystick.GetType().GetMethod("SetStyle", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).Invoke(pnlJoystick, new object[] { ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, true }); pnlJoystick.GetType().GetMethod("SetStyle", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).Invoke(pnlJoystick, new object[] { ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, true });
pnlFreio.GetType().GetMethod("SetStyle", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).Invoke(pnlFreio, new object[] { ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, true }); pnlFreio.GetType().GetMethod("SetStyle", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).Invoke(pnlFreio, new object[] { ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, true });
tmrLeitura.Elapsed += tmrLeitura_Elapsed;
cmbModoControle.Items.Clear(); cmbModoControle.Items.Clear();
cmbModoControle.Items.AddRange(Enum.GetNames(typeof(Enums.TipoMovimentoDirecional))); cmbModoControle.Items.AddRange(Enum.GetNames(typeof(Enums.TipoMovimentoDirecional)));
cmbModoControle.SelectedIndexChanged += CmbModoControle_SelectedIndexChanged; cmbModoControle.SelectedIndexChanged += CmbModoControle_SelectedIndexChanged;
@ -58,14 +56,13 @@ namespace AgroBase.Forms.IHM
private void frmDialogoMapa_Load(object sender, EventArgs e) private void frmDialogoMapa_Load(object sender, EventArgs e)
{ {
tmrLeitura = new AsyncTaskTimerModel(tmrLeitura_Tick, 500, this);
tmrLeitura.Start(); tmrLeitura.Start();
} }
private void frmDialogoMapa_FormClosing(object sender, FormClosingEventArgs e) private void frmDialogoMapa_FormClosing(object sender, FormClosingEventArgs e)
{ {
tmrLeitura.Stop(); tmrLeitura.Stop();
tmrLeitura.Elapsed -= tmrLeitura_Elapsed;
tmrLeitura.Dispose();
Variaveis.OperacaoEmAndamento.DesligarCameras(); Variaveis.OperacaoEmAndamento.DesligarCameras();
} }
@ -86,61 +83,59 @@ namespace AgroBase.Forms.IHM
}); });
} }
private void tmrLeitura_Elapsed(object sender, EventArgs e) private async Task tmrLeitura_Tick()
{ {
pnlOrientacao.Invoke((MethodInvoker)delegate { pnlOrientacao.Invalidate();
pnlOrientacao.Invalidate(); pnlInclinacao.Invalidate();
pnlInclinacao.Invalidate();
var ultimaLeitura = Variaveis.OperacaoEmAndamento.CamerasSolo.OrderByDescending(x => x.Leitura.timestamp).FirstOrDefault(); var ultimaLeitura = Variaveis.OperacaoEmAndamento.CamerasSolo.OrderByDescending(x => x.Leitura.timestamp).FirstOrDefault();
if (ultimaLeitura != null) if (ultimaLeitura != null)
{ {
lblUltimaLeituraSolo.Text = "Última Leitura Solo: " + FuncoesGlobais.TimestampToDate(ultimaLeitura.Leitura.timestamp); lblUltimaLeituraSolo.Text = "Última Leitura Solo: " + FuncoesGlobais.TimestampToDate(ultimaLeitura.Leitura.timestamp);
} }
if (Variaveis.OperacaoEmAndamento.CameraCaminhoKinect != null) if (Variaveis.OperacaoEmAndamento.CameraCaminhoKinect != null)
{ {
lblUltimaLeituraCaminho.Text = "Última Leitura Caminho: " + FuncoesGlobais.TimestampToDate(Variaveis.OperacaoEmAndamento.CameraCaminhoKinect.Leitura.timestamp); lblUltimaLeituraCaminho.Text = "Última Leitura Caminho: " + FuncoesGlobais.TimestampToDate(Variaveis.OperacaoEmAndamento.CameraCaminhoKinect.Leitura.timestamp);
} }
lblPerformance.Text = Variaveis.OperacaoEmAndamento.PerformanceStr; lblPerformance.Text = Variaveis.OperacaoEmAndamento.PerformanceStr;
lblMapaCarregado.Text = "Operação: " + Variaveis.OperacaoEmAndamento.Descricao; lblMapaCarregado.Text = "Operação: " + Variaveis.OperacaoEmAndamento.Descricao;
txtModoOperacao.Text = Variaveis.OperacaoEmAndamento.Modo.ToString(); txtModoOperacao.Text = Variaveis.OperacaoEmAndamento.Modo.ToString();
bool opLiberada = Variaveis.OperacaoEmAndamento.OperacaoLiberada; bool opLiberada = Variaveis.OperacaoEmAndamento.OperacaoLiberada;
txtOperacaoLiberada.Text = opLiberada ? "Sim" : "Não"; txtOperacaoLiberada.Text = opLiberada ? "Sim" : "Não";
txtOperacaoLiberada.ForeColor = opLiberada ? Color.Black : Color.Red; txtOperacaoLiberada.ForeColor = opLiberada ? Color.Black : Color.Red;
CodigoFalha = Variaveis.OperacaoEmAndamento.RetornaCodigoFalha(); CodigoFalha = Variaveis.OperacaoEmAndamento.RetornaCodigoFalha();
btnCodFalha.Text = CodigoFalha.ToString(); btnCodFalha.Text = CodigoFalha.ToString();
txtStatusAtual.Text = Variaveis.OperacaoEmAndamento.StatusAtual.ToString(); txtStatusAtual.Text = Variaveis.OperacaoEmAndamento.StatusAtual.ToString();
txtIniciadoEm.Text = Variaveis.OperacaoEmAndamento.TimestampInicio == 0 ? "Aguardando" : new DateTime(Variaveis.OperacaoEmAndamento.TimestampInicio).ToString("dd/MM HH:mm:ss"); txtIniciadoEm.Text = Variaveis.OperacaoEmAndamento.TimestampInicio == 0 ? "Aguardando" : new DateTime(Variaveis.OperacaoEmAndamento.TimestampInicio).ToString("dd/MM HH:mm:ss");
txtConcluidoEm.Text = Variaveis.OperacaoEmAndamento.TimestampFim == 0 ? "-" : new DateTime(Variaveis.OperacaoEmAndamento.TimestampFim).ToString("dd/MM HH:mm:ss"); txtConcluidoEm.Text = Variaveis.OperacaoEmAndamento.TimestampFim == 0 ? "-" : new DateTime(Variaveis.OperacaoEmAndamento.TimestampFim).ToString("dd/MM HH:mm:ss");
txtDistanciaPercorrida.Text = Variaveis.OperacaoEmAndamento.Sensoriamento.DistanciaPercorrida.Sum().ToString("0.00") + " m"; txtDistanciaPercorrida.Text = Variaveis.OperacaoEmAndamento.Sensoriamento.DistanciaPercorrida.Sum().ToString("0.00") + " m";
txtTempoOperacao.Text = Variaveis.OperacaoEmAndamento.Tempo.Hours.ToString("00") + ":" + Variaveis.OperacaoEmAndamento.Tempo.Minutes.ToString("00") + ":" + Variaveis.OperacaoEmAndamento.Tempo.Seconds.ToString("00"); txtTempoOperacao.Text = Variaveis.OperacaoEmAndamento.Tempo.Hours.ToString("00") + ":" + Variaveis.OperacaoEmAndamento.Tempo.Minutes.ToString("00") + ":" + Variaveis.OperacaoEmAndamento.Tempo.Seconds.ToString("00");
txtErvasIdentificadas.Text = Variaveis.OperacaoEmAndamento.OpMapaGPS.Sensoriamento.ErvasIdentificadas.ToString(); txtErvasIdentificadas.Text = Variaveis.OperacaoEmAndamento.OpMapaGPS.Sensoriamento.ErvasIdentificadas.ToString();
txtHerbicidaAplicado.Text = Variaveis.OperacaoEmAndamento.OpMapaGPS.Sensoriamento.HerbicidaConsumido.ToString("0.000") + " L"; txtHerbicidaAplicado.Text = Variaveis.OperacaoEmAndamento.OpMapaGPS.Sensoriamento.HerbicidaConsumido.ToString("0.000") + " L";
txtBateriaConsumida.Text = Variaveis.OperacaoEmAndamento.Sensoriamento.BateriaConsumida.ToString("0.00") + " %"; txtBateriaConsumida.Text = Variaveis.OperacaoEmAndamento.Sensoriamento.BateriaConsumida.ToString("0.00") + " %";
FuncoesGlobais.PreencheValorProgressBar(pgbReservatorio, Variaveis.OperacaoEmAndamento.DispAtu.Dados.PercentualReservatorio); FuncoesGlobais.PreencheValorProgressBar(pgbReservatorio, Variaveis.OperacaoEmAndamento.DispAtu.Dados.PercentualReservatorio);
lblReservatorio.Text = "Reservatório: " + (Variaveis.OperacaoEmAndamento.DispAtu.Dados.PercentualReservatorio < 0 ? 0 : Variaveis.OperacaoEmAndamento.DispAtu.Dados.PercentualReservatorio).ToString("0.00") + "%"; lblReservatorio.Text = "Reservatório: " + (Variaveis.OperacaoEmAndamento.DispAtu.Dados.PercentualReservatorio < 0 ? 0 : Variaveis.OperacaoEmAndamento.DispAtu.Dados.PercentualReservatorio).ToString("0.00") + "%";
FuncoesGlobais.PreencheValorProgressBar(pgbBateria, Variaveis.OperacaoEmAndamento.Sensoriamento.PorcentagemBateria); FuncoesGlobais.PreencheValorProgressBar(pgbBateria, Variaveis.OperacaoEmAndamento.Sensoriamento.PorcentagemBateria);
lblBateria.Text = "Bateria: " + (PZEMService.Iniciado && PZEMService.UltimaLeitura != null ? PZEMService.UltimaLeitura.Tensao.ToString("0.00") + "v " + PZEMService.UltimaLeitura.Corrente.ToString("0.00") + "A " : "") + (Variaveis.OperacaoEmAndamento.Sensoriamento.PorcentagemBateria < 0 ? 0 : Variaveis.OperacaoEmAndamento.Sensoriamento.PorcentagemBateria).ToString("0.00") + "%"; lblBateria.Text = "Bateria: " + (PZEMService.Iniciado && PZEMService.UltimaLeitura != null ? PZEMService.UltimaLeitura.Tensao.ToString("0.00") + "v " + PZEMService.UltimaLeitura.Corrente.ToString("0.00") + "A " : "") + (Variaveis.OperacaoEmAndamento.Sensoriamento.PorcentagemBateria < 0 ? 0 : Variaveis.OperacaoEmAndamento.Sensoriamento.PorcentagemBateria).ToString("0.00") + "%";
FuncoesGlobais.PreencheValorProgressBar(pgbOperacao, Variaveis.OperacaoEmAndamento.OpMapaGPS.Sensoriamento.ProgressoTrajeto); FuncoesGlobais.PreencheValorProgressBar(pgbOperacao, Variaveis.OperacaoEmAndamento.OpMapaGPS.Sensoriamento.ProgressoTrajeto);
lblOperacao.Text = "Operação: " + (Variaveis.OperacaoEmAndamento.OpMapaGPS.Sensoriamento.ProgressoTrajeto < 0 ? 0 : Variaveis.OperacaoEmAndamento.OpMapaGPS.Sensoriamento.ProgressoTrajeto).ToString("0.00") + "%"; lblOperacao.Text = "Operação: " + (Variaveis.OperacaoEmAndamento.OpMapaGPS.Sensoriamento.ProgressoTrajeto < 0 ? 0 : Variaveis.OperacaoEmAndamento.OpMapaGPS.Sensoriamento.ProgressoTrajeto).ToString("0.00") + "%";
FuncoesGlobais.PreencheValorProgressBar(pgbRuaAtual, Variaveis.OperacaoEmAndamento.OpMapaGPS.Sensoriamento.ProgressoRua); FuncoesGlobais.PreencheValorProgressBar(pgbRuaAtual, Variaveis.OperacaoEmAndamento.OpMapaGPS.Sensoriamento.ProgressoRua);
lblRuaAtual.Text = "Rua Atual: " + (Variaveis.OperacaoEmAndamento.OpMapaGPS.Sensoriamento.ProgressoRua < 0 ? 0 : Variaveis.OperacaoEmAndamento.OpMapaGPS.Sensoriamento.ProgressoRua).ToString("0.00") + "%"; lblRuaAtual.Text = "Rua Atual: " + (Variaveis.OperacaoEmAndamento.OpMapaGPS.Sensoriamento.ProgressoRua < 0 ? 0 : Variaveis.OperacaoEmAndamento.OpMapaGPS.Sensoriamento.ProgressoRua).ToString("0.00") + "%";
if (Variaveis.OperacaoEmAndamento.Modo != Enums.ModoOperacao.Manual) if (Variaveis.OperacaoEmAndamento.Modo != Enums.ModoOperacao.Manual)
{ {
cmbModoControle.SelectedIndex = (int)Variaveis.OperacaoEmAndamento.Controle.TipoMovimento; cmbModoControle.SelectedIndex = (int)Variaveis.OperacaoEmAndamento.Controle.TipoMovimento;
double Percentual = (Variaveis.OperacaoEmAndamento.Controle.RPM_SP / VariaveisEquipamento.RPM_Max_Roda) * 100.0; double Percentual = (Variaveis.OperacaoEmAndamento.Controle.RPM_SP / VariaveisEquipamento.RPM_Max_Roda) * 100.0;
tkbVelocidade.Value = Convert.ToInt32(Percentual); tkbVelocidade.Value = Convert.ToInt32(Percentual);
tkbAnguloDirecional.Value = Math.Abs(Convert.ToInt32(Variaveis.OperacaoEmAndamento.Controle.Angulo)); tkbAnguloDirecional.Value = Math.Abs(Convert.ToInt32(Variaveis.OperacaoEmAndamento.Controle.Angulo));
} }
});
} }
private void pnlOrientacao_Paint(object sender, PaintEventArgs e) private void pnlOrientacao_Paint(object sender, PaintEventArgs e)

View File

@ -106,30 +106,20 @@ namespace AgroBase
{ {
AtualizaDadosGerais(); AtualizaDadosGerais();
lstDisponiveis.Items.Clear();
lstDisponiveis.Items.AddRange(
SerialService.DispositivosMapeados
.GroupBy(x => x.Dispositivo)
.Select(x => new ListViewItem()
{
Text =
x.FirstOrDefault().Endereco + " - " + Enum.GetName(typeof(T_Code), x.Key) + " v" + x.FirstOrDefault().Versao +
(SerialService.DispositivosMultiplos.Contains(x.FirstOrDefault().Dispositivo) ? (" (" + string.Join(", ", x.Where(y => y.Conectado).Select(y => y.Mod_ID)) + ")") :
"") + " - " +
(x.Any(y => y.Conectado) ? "Conectado" : "Desconectado")
}).ToArray()
);
if (SerialService.DispositivosMapeados.Count == 0) if (SerialService.DispositivosMapeados.Count == 0)
{ {
Variaveis.DispositivosConectados.Where(x => x.Dados.GetStatusConexao()).ToList().ForEach(x => x.AcaoDesconectar()); Variaveis.DispositivosConectados.Where(x => x.Dados.GetStatusConexao()).ToList().ForEach(x => x.AcaoDesconectar());
} }
else
Variaveis.DispositivosConectados.ForEach(x =>
{ {
x.AcaoConexao(); Variaveis.DispositivosConectados.ForEach(x =>
}); {
if (x.Dados.GetStatusConexao())
{
x.AcaoConexao();
}
});
}
lblStripMqtt.Text = "MQTT: " + (Variaveis.MqttService.StatusConexao() ? "Conectado" : "Desconectado"); lblStripMqtt.Text = "MQTT: " + (Variaveis.MqttService.StatusConexao() ? "Conectado" : "Desconectado");
@ -147,6 +137,22 @@ namespace AgroBase
public void AtualizaDadosGerais() public void AtualizaDadosGerais()
{ {
lstDisponiveis.Items.Clear();
lstDisponiveis.Items.AddRange(
SerialService.DispositivosMapeados
.GroupBy(x => x.Dispositivo)
.Select(x => new ListViewItem()
{
Text =
x.FirstOrDefault().Endereco + " - " + Enum.GetName(typeof(T_Code), x.Key) + " v" + x.FirstOrDefault().Versao +
(SerialService.DispositivosMultiplos.Contains(x.FirstOrDefault().Dispositivo) ? (" (" + string.Join(", ", x.Where(y => y.Conectado).Select(y => y.Mod_ID)) + ")") :
"") + " - " +
(x.Any(y => y.Conectado) ? "Conectado" : "Desconectado")
}).ToArray()
);
tkbVelocidade.Minimum = 0; tkbVelocidade.Minimum = 0;
tkbVelocidade.Maximum = 100; tkbVelocidade.Maximum = 100;
FuncoesGlobais.PreencheValorTrackBar(tkbVelocidade, Variaveis.OperacaoEmAndamento.Controle.VelocidadeMP); FuncoesGlobais.PreencheValorTrackBar(tkbVelocidade, Variaveis.OperacaoEmAndamento.Controle.VelocidadeMP);

View File

@ -1,4 +1,5 @@
using System; using AgroBase.Services;
using System;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
@ -10,9 +11,12 @@ namespace AgroBase.Models
private CancellationTokenSource _cancellationTokenSource; private CancellationTokenSource _cancellationTokenSource;
private Func<Task> _taskToExecute; private Func<Task> _taskToExecute;
private int _interval; // Intervalo em milissegundos private int _interval; // Intervalo em milissegundos
private string _id;
public int Interval { get { return _interval; } } public int Interval { get { return _interval; } }
private Control _uiControl; private Control _uiControl;
private bool DebugMessages = true;
/// <summary> /// <summary>
/// Inicializa uma nova instância do AsyncTaskTimerService. /// Inicializa uma nova instância do AsyncTaskTimerService.
/// </summary> /// </summary>
@ -24,6 +28,7 @@ namespace AgroBase.Models
if (taskToExecute == null) throw new ArgumentNullException(nameof(taskToExecute)); if (taskToExecute == null) throw new ArgumentNullException(nameof(taskToExecute));
if (interval <= 0) throw new ArgumentException("Interval must be greater than zero.", nameof(interval)); if (interval <= 0) throw new ArgumentException("Interval must be greater than zero.", nameof(interval));
_id = ObterIdDoChamador();
_taskToExecute = taskToExecute; _taskToExecute = taskToExecute;
_interval = interval; _interval = interval;
_uiControl = uiControl; _uiControl = uiControl;
@ -37,6 +42,7 @@ namespace AgroBase.Models
if (_cancellationTokenSource != null) return; if (_cancellationTokenSource != null) return;
_cancellationTokenSource = new CancellationTokenSource(); _cancellationTokenSource = new CancellationTokenSource();
ExibirConsole($"START");
Task.Run(() => TimerLoopAsync(_cancellationTokenSource.Token)); Task.Run(() => TimerLoopAsync(_cancellationTokenSource.Token));
} }
@ -49,6 +55,8 @@ namespace AgroBase.Models
_cancellationTokenSource.Cancel(); _cancellationTokenSource.Cancel();
_cancellationTokenSource = null; _cancellationTokenSource = null;
ExibirConsole($"STOP");
} }
/// <summary> /// <summary>
@ -58,6 +66,8 @@ namespace AgroBase.Models
{ {
Stop(); Stop();
Start(); Start();
ExibirConsole($"RESTART");
} }
/// <summary> /// <summary>
@ -73,6 +83,8 @@ namespace AgroBase.Models
{ {
Start(); Start();
} }
ExibirConsole($"TOOGLE");
} }
/// <summary> /// <summary>
@ -97,6 +109,8 @@ namespace AgroBase.Models
{ {
while (!cancellationToken.IsCancellationRequested) while (!cancellationToken.IsCancellationRequested)
{ {
//ExibirConsole($"TICK");
try try
{ {
if (_uiControl != null) if (_uiControl != null)
@ -116,16 +130,35 @@ namespace AgroBase.Models
catch (OperationCanceledException) catch (OperationCanceledException)
{ {
// Cancelamento solicitado // Cancelamento solicitado
ExibirConsole($"CANCEL");
break; break;
} }
catch (Exception ex) catch (Exception ex)
{ {
// Tratar erros inesperados // Tratar erros inesperados
ExibirConsole($"ERROR");
Console.WriteLine($"Erro no timer: {ex.Message}"); Console.WriteLine($"Erro no timer: {ex.Message}");
} }
} }
Console.WriteLine("Timer encerrado."); ExibirConsole($"ENCERRADO");
}
private string ObterIdDoChamador()
{
var stackTrace = new System.Diagnostics.StackTrace();
var frame = stackTrace.GetFrame(2); // Obter o chamador que instanciou este objeto
var method = frame.GetMethod();
return $"{method.DeclaringType?.Name}.{method.Name}";
}
private void ExibirConsole(string msg)
{
if (DebugMessages)
{
Console.WriteLine($"AsyncTaskTimer id = {_id} - {msg}");
}
} }

View File

@ -14,8 +14,8 @@ namespace AgroBase.Models
{ {
public class CameraCaminhoModel public class CameraCaminhoModel
{ {
public System.Timers.Timer tmrProcesso; public AsyncTaskTimerModel tmrProcesso;
public System.Timers.Timer tmrLeitura; public AsyncTaskTimerModel tmrLeitura;
public Bitmap bitmapSegmentado; public Bitmap bitmapSegmentado;
public string ID { get; set; } public string ID { get; set; }
@ -59,17 +59,13 @@ namespace AgroBase.Models
{ {
if (tmrProcesso == null) if (tmrProcesso == null)
{ {
tmrProcesso = new System.Timers.Timer(); tmrProcesso = new AsyncTaskTimerModel(tmrProcesso_Tick, 500);
tmrProcesso.Interval = 500;
tmrProcesso.Elapsed += TmrProcesso_Elapsed;
tmrProcesso.Start(); tmrProcesso.Start();
} }
if (tmrLeitura == null) if (tmrLeitura == null)
{ {
tmrLeitura = new System.Timers.Timer(); tmrLeitura = new AsyncTaskTimerModel(tmrLeitura_Tick, 100);
tmrLeitura.Interval = 100;
tmrLeitura.Elapsed += TmrLeitura_Elapsed;
tmrLeitura.Start(); tmrLeitura.Start();
} }
} }
@ -106,14 +102,14 @@ namespace AgroBase.Models
} }
} }
private void TmrProcesso_Elapsed(object sender, EventArgs e) private async Task tmrProcesso_Tick()
{ {
if (camera._mqttTopico != null) if (camera._mqttTopico != null)
{ {
var Mensagem = camera._mqttTopico.Mensagens.FirstOrDefault(y => y.Momento > camera.IniciadoEm && y.Mensagem == "OK"); var Mensagem = camera._mqttTopico.Mensagens.FirstOrDefault(y => y.Momento > camera.IniciadoEm && y.Mensagem == "OK");
if (Mensagem != null) if (Mensagem != null)
{ {
((System.Timers.Timer)sender).Stop(); tmrProcesso.Stop();
camera.ProntoEm = Mensagem.Momento; camera.ProntoEm = Mensagem.Momento;
@ -133,10 +129,8 @@ namespace AgroBase.Models
} }
} }
private async void TmrLeitura_Elapsed(object sender, EventArgs e) private async Task tmrLeitura_Tick()
{ {
((System.Timers.Timer)sender).Stop();
if (Iniciada) if (Iniciada)
{ {
DateTime Agora = DateTime.Now; DateTime Agora = DateTime.Now;
@ -151,8 +145,6 @@ namespace AgroBase.Models
await EnviarBitmapParaProcessamento(bitmap); await EnviarBitmapParaProcessamento(bitmap);
} }
} }
((System.Timers.Timer)sender).Start();
} }
public async Task EnviarBitmapParaProcessamento(Bitmap bitmap) public async Task EnviarBitmapParaProcessamento(Bitmap bitmap)

View File

@ -2,45 +2,39 @@
using CefSharp.WinForms; using CefSharp.WinForms;
using System; using System;
using System.Linq; using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
namespace AgroBase.Models namespace AgroBase.Models
{ {
public class CameraSoloModel public class CameraSoloModel
{ {
public System.Timers.Timer tmrProcesso = new System.Timers.Timer() { Interval = 500, Enabled = false }; public AsyncTaskTimerModel tmrProcesso;
public CameraSoloModel() public CameraSoloModel()
{ {
tmrProcesso.Elapsed += TmrProcesso_Elapsed; tmrProcesso = new AsyncTaskTimerModel(tmrProcesso_Tick, 500);
tmrProcesso.Start(); tmrProcesso.Start();
} }
private void TmrProcesso_Elapsed(object sender, EventArgs e) private async Task tmrProcesso_Tick()
{ {
if (camera._mqttTopico != null) if (camera._mqttTopico != null)
{ {
var Mensagem = camera._mqttTopico.Mensagens.FirstOrDefault(y => y.Momento > camera.IniciadoEm && y.Mensagem == "OK"); var Mensagem = camera._mqttTopico.Mensagens.FirstOrDefault(y => y.Momento > camera.IniciadoEm && y.Mensagem == "OK");
if (Mensagem != null) if (Mensagem != null)
{ {
((System.Timers.Timer)sender).Stop(); tmrProcesso.Stop();
camera.ProntoEm = Mensagem.Momento; camera.ProntoEm = Mensagem.Momento;
Func<bool> func = new Func<bool>(() => if (browser == null)
{ {
if (browser == null) Iniciada = true;
{ browser = new ChromiumWebBrowser(camera.URLcamera);
Iniciada = true; panel.Controls.Add(browser);
browser = new ChromiumWebBrowser(camera.URLcamera); browser.Dock = DockStyle.Fill;
panel.Controls.Add(browser); }
browser.Dock = DockStyle.Fill;
}
return true;
});
FuncoesGlobais.ExecutarMetodoComVerificacaoCrossThread(panel, func);
} }
} }
} }

View File

@ -537,7 +537,7 @@ namespace AgroBase.Models
picLoading.Visible = true; picLoading.Visible = true;
pnlMapa.Controls.Add(picLoading); pnlMapa.Controls.Add(picLoading);
tmrCarregamento = new AsyncTaskTimerModel(tmrCarregamento_Tick, 500); tmrCarregamento = new AsyncTaskTimerModel(tmrCarregamento_Tick, 500, pnlMapa);
tmrCarregamento.Start(); tmrCarregamento.Start();
} }
} }

View File

@ -572,24 +572,24 @@ namespace AgroBase.Models.Modules
string[] Dados = mensagem.Replace(SerialService.BeginSensor, "").Split(SerialService.EndLine[0])[0].Split(';'); string[] Dados = mensagem.Replace(SerialService.BeginSensor, "").Split(SerialService.EndLine[0])[0].Split(';');
int cod = 0; int cod = 0;
int.TryParse(Dados[0], out cod); int.TryParse((Dados[0] ?? ""), out cod);
if (cod == 0) if (cod == 0 || Dados.Length < 3)
{ {
return; return;
} }
S_Code TipoSensor = (S_Code)(cod); S_Code TipoSensor = (S_Code)(cod);
SensorModel Sensor = Sensores.FirstOrDefault(x => x.ID == Dados[1]); SensorModel Sensor = Sensores.FirstOrDefault(x => x.ID == (Dados[1] ?? ""));
SensorSinaleiroModel Sinaleiro = Sinaleiros.FirstOrDefault(x => x.ID == Dados[1]); SensorSinaleiroModel Sinaleiro = Sinaleiros.FirstOrDefault(x => x.ID == (Dados[1] ?? ""));
SensorReleModel Rele = Reles.FirstOrDefault(x => x.ID == Dados[1]); SensorReleModel Rele = Reles.FirstOrDefault(x => x.ID == (Dados[1] ?? ""));
SensorServoModel Servo = Servos.FirstOrDefault(x => x.ID == Dados[1]); SensorServoModel Servo = Servos.FirstOrDefault(x => x.ID == (Dados[1] ?? ""));
if (Sensor == null && Sinaleiro == null && Rele == null && Servo == null) if (Sensor == null && Sinaleiro == null && Rele == null && Servo == null)
{ {
if (Dados[1] == "MD") if ((Dados[1] ?? "") == "MD")
{ {
Conectado = Dados[2] == "1"; Conectado = (Dados[2] ?? "") == "1";
_MensagemConexaoRecebida = true; _MensagemConexaoRecebida = true;
} }
return; return;
@ -601,7 +601,7 @@ namespace AgroBase.Models.Modules
switch (TipoSensor) switch (TipoSensor)
{ {
case S_Code.sCFG: case S_Code.sCFG:
bool iniciado = Dados[2] == "1"; bool iniciado = (Dados[2] ?? "") == "1";
if (Sensor != null) if (Sensor != null)
{ {
Sensor.Inicializado = iniciado; Sensor.Inicializado = iniciado;
@ -622,13 +622,13 @@ namespace AgroBase.Models.Modules
case S_Code.sCOR: case S_Code.sCOR:
{ {
double vBarramento = -1; double vBarramento = -1;
double.TryParse(Dados[2].Replace(".", ","), out vBarramento); double.TryParse((Dados[2] ?? "").Replace(".", ","), out vBarramento);
double vShunt = -1; double vShunt = -1;
double.TryParse(Dados[3].Replace(".", ","), out vShunt); double.TryParse((Dados[3] ?? "").Replace(".", ","), out vShunt);
double corrente = -1; double corrente = -1;
double.TryParse(Dados[4].Replace(".", ","), out corrente); double.TryParse((Dados[4] ?? "").Replace(".", ","), out corrente);
double potencia = -1; double potencia = -1;
double.TryParse(Dados[5].Replace(".", ","), out potencia); double.TryParse((Dados[5] ?? "").Replace(".", ","), out potencia);
Sensor.Leituras = new List<double>() Sensor.Leituras = new List<double>()
{ {
@ -644,7 +644,7 @@ namespace AgroBase.Models.Modules
case S_Code.sTEN: case S_Code.sTEN:
{ {
double leitura = -1; double leitura = -1;
double.TryParse(Dados[2].Replace(".", ","), out leitura); double.TryParse((Dados[2] ?? "").Replace(".", ","), out leitura);
double Vcc = 3.3; double Vcc = 3.3;
double Voffset = double.Parse(Sensor.Parametros[0][1]); double Voffset = double.Parse(Sensor.Parametros[0][1]);
@ -678,7 +678,7 @@ namespace AgroBase.Models.Modules
case S_Code.sTMP: case S_Code.sTMP:
{ {
double temp = -1; double temp = -1;
double.TryParse(Dados[2].Replace(".", ","), out temp); double.TryParse((Dados[2] ?? "").Replace(".", ","), out temp);
double Tc = FuncoesMatematicas.CalcularTemperatura(temp, double.Parse(Sensor.Parametros[0][1].Replace(".", ","))); double Tc = FuncoesMatematicas.CalcularTemperatura(temp, double.Parse(Sensor.Parametros[0][1].Replace(".", ",")));
@ -695,9 +695,9 @@ namespace AgroBase.Models.Modules
case S_Code.sULT: case S_Code.sULT:
{ {
double distancia = -1; double distancia = -1;
double.TryParse(Dados[2].Replace(".", ","), out distancia); double.TryParse((Dados[2] ?? "").Replace(".", ","), out distancia);
int duracao = -1; int duracao = -1;
int.TryParse(Dados[3], out duracao); int.TryParse((Dados[3] ?? ""), out duracao);
Sensor.Leituras = new List<double>() Sensor.Leituras = new List<double>()
{ {
@ -720,13 +720,13 @@ namespace AgroBase.Models.Modules
case S_Code.sMAG: case S_Code.sMAG:
{ {
int x = -1; int x = -1;
int.TryParse(Dados[2], out x); int.TryParse((Dados[2] ?? ""), out x);
int y = -1; int y = -1;
int.TryParse(Dados[3], out y); int.TryParse((Dados[3] ?? ""), out y);
int z = -1; int z = -1;
int.TryParse(Dados[4], out z); int.TryParse((Dados[4] ?? ""), out z);
double angulo = -1; double angulo = -1;
double.TryParse(Dados[5].Replace(".", ","), out angulo); double.TryParse((Dados[5] ?? "").Replace(".", ","), out angulo);
Sensor.Leituras = new List<double>() Sensor.Leituras = new List<double>()
{ {
@ -744,11 +744,11 @@ namespace AgroBase.Models.Modules
case S_Code.sSNR: case S_Code.sSNR:
{ {
int distancia = -1; int distancia = -1;
int.TryParse(Dados[2], out distancia); int.TryParse((Dados[2] ?? ""), out distancia);
int angulo = -1; int angulo = -1;
int.TryParse(Dados[3], out angulo); int.TryParse((Dados[3] ?? ""), out angulo);
int posicao = -1; int posicao = -1;
int.TryParse(Dados[4], out posicao); int.TryParse((Dados[4] ?? ""), out posicao);
Sensor.Leituras = new List<double>() Sensor.Leituras = new List<double>()
{ {
@ -834,16 +834,16 @@ namespace AgroBase.Models.Modules
break; break;
} }
case S_Code.sLED: case S_Code.sLED:
Sinaleiro.Inicializado = Dados[2] == "1"; Sinaleiro.Inicializado = (Dados[2] ?? "") == "1";
Sinaleiro.StatusLED = (StatusLED)Enum.Parse(typeof(StatusLED), Dados[3]); Sinaleiro.StatusLED = (StatusLED)Enum.Parse(typeof(StatusLED), Dados[3]);
break; break;
case S_Code.sRLE: case S_Code.sRLE:
Rele.Inicializado = Dados[2] == "1"; Rele.Inicializado = (Dados[2] ?? "") == "1";
Rele.StatusLeitura = (Estado)Enum.Parse(typeof(Estado), Dados[3]); Rele.StatusLeitura = (Estado)Enum.Parse(typeof(Estado), Dados[3]);
break; break;
case S_Code.sFRO: case S_Code.sFRO:
Servo.Inicializado = Dados[2] == "1"; Servo.Inicializado = (Dados[2] ?? "") == "1";
int.TryParse(Dados[3], out int _angulo); int.TryParse((Dados[3] ?? ""), out int _angulo);
Servo._AnguloLeitura = _angulo; Servo._AnguloLeitura = _angulo;
break; break;

View File

@ -26,21 +26,11 @@ namespace AgroBase.Models
public OperacaoModel(ModoOperacao Modo) public OperacaoModel(ModoOperacao Modo)
{ {
this.Modo = Modo; this.Modo = Modo;
if (tmrLogs == null) tmrLogs = new AsyncTaskTimerModel(tmrLogs_Tick, 1000);
{
tmrLogs = new System.Timers.Timer() { Interval = 1000, Enabled = false };
tmrLogs.Elapsed -= TmrLogs_Elapsed;
tmrLogs.Elapsed += TmrLogs_Elapsed;
}
tmrLogs.Start(); tmrLogs.Start();
if (tmrLeituras == null) tmrLeituras = new AsyncTaskTimerModel(tmrLeituras_Tick, 500, chartGraficos);
{
tmrLeituras = new System.Timers.Timer() { Interval = 500, Enabled = false };
tmrLeituras.Elapsed -= TmrLeituras_Elapsed;
tmrLeituras.Elapsed += TmrLeituras_Elapsed;
}
tmrLeituras.Start(); tmrLeituras.Start();
if (computer == null) if (computer == null)
@ -292,11 +282,11 @@ namespace AgroBase.Models
} }
set set
{ {
tmrLogs.Interval = value; tmrLogs.SetInterval((int)value);
} }
} }
private static System.Timers.Timer tmrLogs = null; private static AsyncTaskTimerModel tmrLogs;
private static System.Timers.Timer tmrLeituras = null; private static AsyncTaskTimerModel tmrLeituras;
public Chart chartGraficos = new Chart(); public Chart chartGraficos = new Chart();
private static Computer computer; private static Computer computer;
public string PerformanceStr public string PerformanceStr
@ -1300,13 +1290,10 @@ namespace AgroBase.Models
Controle.BicosAtuados = new List<AtuadorBicoModel>(Variaveis.OperacaoEmAndamento.DispAtu.Dados.BicosPulverizadores); Controle.BicosAtuados = new List<AtuadorBicoModel>(Variaveis.OperacaoEmAndamento.DispAtu.Dados.BicosPulverizadores);
} }
private void TmrLeituras_Elapsed(object sender, EventArgs e) private async Task tmrLeituras_Tick()
{ {
((System.Timers.Timer)sender).Stop();
if (Variaveis.IsAgroMonitor) if (Variaveis.IsAgroMonitor)
{ {
((System.Timers.Timer)sender).Start();
return; return;
} }
@ -1315,8 +1302,6 @@ namespace AgroBase.Models
if (!Variaveis.OperacaoEmAndamento.OperacaoLiberada && Variaveis.OperacaoEmAndamento.Iniciado) if (!Variaveis.OperacaoEmAndamento.OperacaoLiberada && Variaveis.OperacaoEmAndamento.Iniciado)
{ {
PararCarroOperacaoInterrompida(); PararCarroOperacaoInterrompida();
((System.Timers.Timer)sender).Start();
return; return;
} }
@ -1352,7 +1337,7 @@ namespace AgroBase.Models
try try
{ {
AtualizarGrafico(); //AtualizarGrafico();
} }
catch (Exception ex) catch (Exception ex)
{ {
@ -1363,8 +1348,6 @@ namespace AgroBase.Models
{ {
AtualizaInformacoesControleOperacao(); AtualizaInformacoesControleOperacao();
} }
((System.Timers.Timer)sender).Start();
} }
private void AtualizaLeituraCameraSolo(CameraSoloModel CameraSolo) private void AtualizaLeituraCameraSolo(CameraSoloModel CameraSolo)
@ -1574,76 +1557,69 @@ namespace AgroBase.Models
double Maximo = 0; double Maximo = 0;
Chart chart = Variaveis.OperacaoEmAndamento.chartGraficos; Chart chart = Variaveis.OperacaoEmAndamento.chartGraficos;
Func<bool> funcAttGrafico = new Func<bool>(() => try
{ {
try if (chart.IsDisposed)
{ {
if (chart.IsDisposed) return;
{
return false;
}
chart.Titles.Clear();
chart.Titles.Add("Acompanhamento");
//var Logs = (Motor.LogGrafico.Count > MovimentacaoModel.LogsManter ? Motor.LogGrafico.Skip(Math.Max(0, Motor.LogGrafico.Count - MovimentacaoModel.LogsManter)).Take(MovimentacaoModel.LogsManter).ToList() : Motor.LogGrafico).Where(log => log.Modulo_ID == Modulo.Modulo_ID).ToList();
chart.Series.Clear();
List<string> Momentos = Logs.Select(x => x.Momento.ToString("mm:ss:fff")).ToList();
var serieVelocidade = new Series("Velocidade: " + (Log != null ? Log.Velocidade : 0));
serieVelocidade.Points.DataBindXY(Momentos, Logs.Select(x => x.Velocidade).ToList());
serieVelocidade.ChartType = SeriesChartType.Line;
chart.Series.Add(serieVelocidade);
Minimo = !Logs.Any() ? 0 : Logs.Min(x => x.Velocidade) < Minimo ? Logs.Min(x => x.Velocidade) : Minimo;
Maximo = !Logs.Any() ? 0 : Logs.Min(x => x.Velocidade) > Maximo ? Logs.Min(x => x.Velocidade) : Maximo;
var serieRPMsp = new Series("RPM SP: " + (Log != null ? Log.RPM_SP : 0));
serieRPMsp.Points.DataBindXY(Momentos, Logs.Select(x => x.RPM_SP).ToList());
serieRPMsp.ChartType = SeriesChartType.Spline;
chart.Series.Add(serieRPMsp);
Minimo = !Logs.Any() ? 0 : Logs.Min(x => x.RPM_SP) < Minimo ? Logs.Min(x => x.RPM_SP) : Minimo;
Maximo = !Logs.Any() ? 0 : Logs.Max(x => x.RPM_SP) > Maximo ? Logs.Max(x => x.RPM_SP) : Maximo;
var serieRPM = new Series("RPM Roda: " + (Log != null ? Log.RPM_Roda : 0));
serieRPM.Points.DataBindXY(Momentos, Logs.Select(x => x.RPM_Roda).ToList());
serieRPM.ChartType = SeriesChartType.Spline;
chart.Series.Add(serieRPM);
Minimo = !Logs.Any() ? 0 : Logs.Min(x => x.RPM_Roda) < Minimo ? Logs.Min(x => x.RPM_Roda) : Minimo;
Maximo = !Logs.Any() ? 0 : Logs.Max(x => x.RPM_Roda) > Maximo ? Logs.Max(x => x.RPM_Roda) : Maximo;
var serieMotor = new Series("RPM Motor: " + (Log != null ? Log.RPM_Motor : 0));
serieMotor.Points.DataBindXY(Momentos, Logs.Select(x => x.RPM_Motor).ToList());
serieMotor.ChartType = SeriesChartType.Spline;
chart.Series.Add(serieMotor);
Minimo = !Logs.Any() ? 0 : Logs.Min(x => x.RPM_Motor) < Minimo ? Logs.Min(x => x.RPM_Motor) : Minimo;
Maximo = !Logs.Any() ? 0 : Logs.Max(x => x.RPM_Motor) > Maximo ? Logs.Max(x => x.RPM_Motor) : Maximo;
var serieTemperatura = new Series("Temperatura: " + (Log != null ? Log.Temperatura : 0));
serieTemperatura.Points.DataBindXY(Momentos, Logs.Select(x => x.Temperatura).ToList());
serieTemperatura.ChartType = SeriesChartType.Line;
chart.Series.Add(serieTemperatura);
Minimo = !Logs.Any() ? 0 : Logs.Min(x => x.Temperatura) < Minimo ? Logs.Min(x => x.Temperatura) : Minimo;
Maximo = !Logs.Any() ? 0 : Logs.Max(x => x.Temperatura) > Maximo ? Logs.Max(x => x.Temperatura) : Maximo;
foreach (var legend in chart.Legends)
{
legend.Docking = Docking.Bottom;
}
if (chart.ChartAreas.Any())
{
chart.ChartAreas[0].AxisY.Minimum = Minimo - 5;
chart.ChartAreas[0].AxisY.Maximum = Maximo + 5;
}
}
catch (Exception ex)
{
Console.WriteLine("Erro ao atualizar gráficos da operação: " + ex.Message);
} }
return true; chart.Titles.Clear();
}); chart.Titles.Add("Acompanhamento");
//var Logs = (Motor.LogGrafico.Count > MovimentacaoModel.LogsManter ? Motor.LogGrafico.Skip(Math.Max(0, Motor.LogGrafico.Count - MovimentacaoModel.LogsManter)).Take(MovimentacaoModel.LogsManter).ToList() : Motor.LogGrafico).Where(log => log.Modulo_ID == Modulo.Modulo_ID).ToList();
chart.Series.Clear();
List<string> Momentos = Logs.Select(x => x.Momento.ToString("mm:ss:fff")).ToList();
FuncoesGlobais.ExecutarMetodoComVerificacaoCrossThread(chart, funcAttGrafico); var serieVelocidade = new Series("Velocidade: " + (Log != null ? Log.Velocidade : 0));
serieVelocidade.Points.DataBindXY(Momentos, Logs.Select(x => x.Velocidade).ToList());
serieVelocidade.ChartType = SeriesChartType.Line;
chart.Series.Add(serieVelocidade);
Minimo = !Logs.Any() ? 0 : Logs.Min(x => x.Velocidade) < Minimo ? Logs.Min(x => x.Velocidade) : Minimo;
Maximo = !Logs.Any() ? 0 : Logs.Min(x => x.Velocidade) > Maximo ? Logs.Min(x => x.Velocidade) : Maximo;
var serieRPMsp = new Series("RPM SP: " + (Log != null ? Log.RPM_SP : 0));
serieRPMsp.Points.DataBindXY(Momentos, Logs.Select(x => x.RPM_SP).ToList());
serieRPMsp.ChartType = SeriesChartType.Spline;
chart.Series.Add(serieRPMsp);
Minimo = !Logs.Any() ? 0 : Logs.Min(x => x.RPM_SP) < Minimo ? Logs.Min(x => x.RPM_SP) : Minimo;
Maximo = !Logs.Any() ? 0 : Logs.Max(x => x.RPM_SP) > Maximo ? Logs.Max(x => x.RPM_SP) : Maximo;
var serieRPM = new Series("RPM Roda: " + (Log != null ? Log.RPM_Roda : 0));
serieRPM.Points.DataBindXY(Momentos, Logs.Select(x => x.RPM_Roda).ToList());
serieRPM.ChartType = SeriesChartType.Spline;
chart.Series.Add(serieRPM);
Minimo = !Logs.Any() ? 0 : Logs.Min(x => x.RPM_Roda) < Minimo ? Logs.Min(x => x.RPM_Roda) : Minimo;
Maximo = !Logs.Any() ? 0 : Logs.Max(x => x.RPM_Roda) > Maximo ? Logs.Max(x => x.RPM_Roda) : Maximo;
var serieMotor = new Series("RPM Motor: " + (Log != null ? Log.RPM_Motor : 0));
serieMotor.Points.DataBindXY(Momentos, Logs.Select(x => x.RPM_Motor).ToList());
serieMotor.ChartType = SeriesChartType.Spline;
chart.Series.Add(serieMotor);
Minimo = !Logs.Any() ? 0 : Logs.Min(x => x.RPM_Motor) < Minimo ? Logs.Min(x => x.RPM_Motor) : Minimo;
Maximo = !Logs.Any() ? 0 : Logs.Max(x => x.RPM_Motor) > Maximo ? Logs.Max(x => x.RPM_Motor) : Maximo;
var serieTemperatura = new Series("Temperatura: " + (Log != null ? Log.Temperatura : 0));
serieTemperatura.Points.DataBindXY(Momentos, Logs.Select(x => x.Temperatura).ToList());
serieTemperatura.ChartType = SeriesChartType.Line;
chart.Series.Add(serieTemperatura);
Minimo = !Logs.Any() ? 0 : Logs.Min(x => x.Temperatura) < Minimo ? Logs.Min(x => x.Temperatura) : Minimo;
Maximo = !Logs.Any() ? 0 : Logs.Max(x => x.Temperatura) > Maximo ? Logs.Max(x => x.Temperatura) : Maximo;
foreach (var legend in chart.Legends)
{
legend.Docking = Docking.Bottom;
}
if (chart.ChartAreas.Any())
{
chart.ChartAreas[0].AxisY.Minimum = Minimo - 5;
chart.ChartAreas[0].AxisY.Maximum = Maximo + 5;
}
}
catch (Exception ex)
{
Console.WriteLine("Erro ao atualizar gráficos da operação: " + ex.Message);
}
} }
public void ExecutaComandoDaBase(OperacaoControleBaseModel controleBase) public void ExecutaComandoDaBase(OperacaoControleBaseModel controleBase)
@ -1781,18 +1757,14 @@ namespace AgroBase.Models
private int idxLog = 0; private int idxLog = 0;
private void TmrLogs_Elapsed(object sender, EventArgs e) private async Task tmrLogs_Tick()
{ {
((System.Timers.Timer)sender).Stop();
if (Variaveis.OperacaoEmAndamento.Iniciado) if (Variaveis.OperacaoEmAndamento.Iniciado)
{ {
SalvarLogs(false); SalvarLogs(false);
} }
AtualizarSinaleiroOperacao(); AtualizarSinaleiroOperacao();
((System.Timers.Timer)sender).Start();
} }
public void SalvarLogs(bool Fim) public void SalvarLogs(bool Fim)

View File

@ -25,7 +25,7 @@ namespace AgroBase.Services
public string URLcamera = ""; public string URLcamera = "";
public void IniciarCamera(string Script, string[] Argumentos, string FlaskPorta, string FlaskUrl, string MqttTopico, System.Timers.Timer tmrProcesso) public void IniciarCamera(string Script, string[] Argumentos, string FlaskPorta, string FlaskUrl, string MqttTopico, AsyncTaskTimerModel tmrProcesso)
{ {
if (_mqttTopico == null) if (_mqttTopico == null)
{ {

View File

@ -473,7 +473,7 @@ namespace AgroBase.Comum
Size = new System.Drawing.Size() { Height = 141, Width = 300 }, Size = new System.Drawing.Size() { Height = 141, Width = 300 },
ReadOnly = true ReadOnly = true
}; };
tmrLimpeza = new AsyncTaskTimerModel(tmrLimpeza_Tick, 1000); tmrLimpeza = new AsyncTaskTimerModel(tmrLimpeza_Tick, 1000, frmInstancial.frmPrincipal);
Button btnConfig = new Button() Button btnConfig = new Button()
{ {

View File

@ -519,45 +519,38 @@ namespace AgroBase.Services
public static void AtualizarDispositivos() public static void AtualizarDispositivos()
{ {
Func<bool> funcao = new Func<bool>(() => bool PrimeiraExecucao = !Variaveis.DispositivosConectados.Any();
DispositivosConexaoInicial.ForEach(Dispositivo =>
{ {
bool PrimeiraExecucao = !Variaveis.DispositivosConectados.Any(); IDispositivosService dispositivoService = Variaveis.DispositivosConectados.FirstOrDefault(x => x.Dispositivo == Dispositivo);
DispositivosConexaoInicial.ForEach(Dispositivo => if (dispositivoService == null)
{ {
IDispositivosService dispositivoService = Variaveis.DispositivosConectados.FirstOrDefault(x => x.Dispositivo == Dispositivo); dispositivoService = DispositivosServiceFactory.CreateDispositivoService(
if (dispositivoService == null) Dispositivo,
{ "Nome: " + Enum.GetName(typeof(T_Code), Dispositivo),
dispositivoService = DispositivosServiceFactory.CreateDispositivoService( "Descrição: " + string.Join(", ", DispositivosMapeados.Where(x => x.Dispositivo == Dispositivo).Select(x => x.Mod_ID).ToArray()),
Dispositivo, new SerialPort()
"Nome: " + Enum.GetName(typeof(T_Code), Dispositivo), );
"Descrição: " + string.Join(", ", DispositivosMapeados.Where(x => x.Dispositivo == Dispositivo).Select(x => x.Mod_ID).ToArray()), Variaveis.DispositivosConectados.Add(dispositivoService);
new SerialPort()
);
Variaveis.DispositivosConectados.Add(dispositivoService);
Control controle = dispositivoService.InstanciarDispositivo(Variaveis.DispositivosConectados.Count - 1); Control controle = dispositivoService.InstanciarDispositivo(Variaveis.DispositivosConectados.Count - 1);
controle.Location = new System.Drawing.Point(controle.Location.X, controle.Location.Y + (Variaveis.DispositivosConectados.Count * 50)); controle.Location = new System.Drawing.Point(controle.Location.X, controle.Location.Y + (Variaveis.DispositivosConectados.Count * 50));
frmInstancial.frmPrincipal.pnlLateral.Controls.Add(controle); frmInstancial.frmPrincipal.pnlLateral.Controls.Add(controle);
frmInstancial.frmPrincipal.cmbDispositivos.Items.Add(dispositivoService._Descricao); frmInstancial.frmPrincipal.cmbDispositivos.Items.Add(dispositivoService._Descricao);
}
dispositivoService.AtualizarPortas();
if (dispositivoService.PortaCOM() != "" && !dispositivoService._Porta.IsOpen && (frmInstancial.frmPrincipal.chbConexaoautomatica.Checked || !frmInstancial.DebugMode))
{
dispositivoService.btnConectar_Click(new object(), new EventArgs());
}
});
if (PrimeiraExecucao)
{
Variaveis.OperacaoEmAndamento = OperacaoModel.CarregarParametrosOperacaoPadrao(ModoOperacao.Manual);
} }
return true; dispositivoService.AtualizarPortas();
if (dispositivoService.PortaCOM() != "" && !dispositivoService._Porta.IsOpen && (frmInstancial.frmPrincipal.chbConexaoautomatica.Checked || !frmInstancial.DebugMode))
{
dispositivoService.btnConectar_Click(new object(), new EventArgs());
}
}); });
FuncoesGlobais.ExecutarMetodoComVerificacaoCrossThread(frmInstancial.frmPrincipal, funcao); if (PrimeiraExecucao)
{
Variaveis.OperacaoEmAndamento = OperacaoModel.CarregarParametrosOperacaoPadrao(ModoOperacao.Manual);
}
} }
private static async Task<bool> TentarIdentificarDispositivo(SerialPort porta) private static async Task<bool> TentarIdentificarDispositivo(SerialPort porta)

View File

@ -91839,3 +91839,344 @@ Parameter name: values
22/11/2024 17:19:25:086 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1 22/11/2024 17:19:25:086 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
22/11/2024 17:19:25:099 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0 22/11/2024 17:19:25:099 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
22/11/2024 17:19:25:112 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10 22/11/2024 17:19:25:112 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 13:31:26:116 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=AlarmeCode, Valor=0
25/11/2024 13:31:26:631 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=RPM, Valor=0
25/11/2024 13:31:27:145 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Enabled, Valor=0
25/11/2024 13:31:27:646 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Breaked, Valor=0
25/11/2024 13:31:28:166 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Direction, Valor=0
25/11/2024 13:31:28:585 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Tensao, Valor=0
25/11/2024 13:31:28:604 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Temperatura, Valor=0
25/11/2024 13:31:28:617 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=AlarmeCode, Valor=0
25/11/2024 13:31:28:630 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=RPM, Valor=0
25/11/2024 13:31:28:644 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Enabled, Valor=0
25/11/2024 13:31:28:657 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Breaked, Valor=0
25/11/2024 13:31:28:670 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Direction, Valor=0
25/11/2024 13:31:28:684 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Tensao, Valor=0
25/11/2024 13:31:28:697 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Temperatura, Valor=0
25/11/2024 13:31:28:709 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=AlarmeCode, Valor=0
25/11/2024 13:31:28:723 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=RPM, Valor=0
25/11/2024 13:31:28:737 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Enabled, Valor=0
25/11/2024 13:31:28:749 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Breaked, Valor=0
25/11/2024 13:31:28:763 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Direction, Valor=0
25/11/2024 13:31:28:776 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Tensao, Valor=0
25/11/2024 13:31:28:788 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Temperatura, Valor=0
25/11/2024 13:31:28:802 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=AlarmeCode, Valor=0
25/11/2024 13:31:28:814 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=RPM, Valor=0
25/11/2024 13:31:28:828 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Enabled, Valor=0
25/11/2024 13:31:28:841 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Breaked, Valor=0
25/11/2024 13:31:28:853 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Direction, Valor=0
25/11/2024 13:31:28:866 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Tensao, Valor=0
25/11/2024 13:31:28:880 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Temperatura, Valor=0
25/11/2024 13:34:03:974 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=AlarmeCode, Valor=0
25/11/2024 13:34:04:490 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=RPM, Valor=0
25/11/2024 13:34:05:006 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Enabled, Valor=0
25/11/2024 13:34:05:522 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Breaked, Valor=0
25/11/2024 13:34:06:038 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Direction, Valor=0
25/11/2024 13:34:06:478 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Tensao, Valor=0
25/11/2024 13:34:06:526 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Temperatura, Valor=0
25/11/2024 13:34:06:549 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=AlarmeCode, Valor=0
25/11/2024 13:34:06:575 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=RPM, Valor=0
25/11/2024 13:34:06:602 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Enabled, Valor=0
25/11/2024 13:34:06:619 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Breaked, Valor=0
25/11/2024 13:34:06:634 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Direction, Valor=0
25/11/2024 13:34:06:645 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Tensao, Valor=0
25/11/2024 13:34:06:658 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Temperatura, Valor=0
25/11/2024 13:34:06:673 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=AlarmeCode, Valor=0
25/11/2024 13:34:06:685 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=RPM, Valor=0
25/11/2024 13:34:06:700 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Enabled, Valor=0
25/11/2024 13:34:06:713 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Breaked, Valor=0
25/11/2024 13:34:06:727 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Direction, Valor=0
25/11/2024 13:34:06:740 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Tensao, Valor=0
25/11/2024 13:34:06:752 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Temperatura, Valor=0
25/11/2024 13:34:06:766 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=AlarmeCode, Valor=0
25/11/2024 13:34:06:778 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=RPM, Valor=0
25/11/2024 13:34:06:791 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Enabled, Valor=0
25/11/2024 13:34:06:805 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Breaked, Valor=0
25/11/2024 13:34:06:817 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Direction, Valor=0
25/11/2024 13:34:06:831 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Tensao, Valor=0
25/11/2024 13:34:06:844 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Temperatura, Valor=0
25/11/2024 14:03:30:916 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 14:03:31:134 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:03:31:338 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 14:03:31:541 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 14:03:31:743 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 14:03:31:962 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 14:03:32:165 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 14:03:32:367 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:03:32:572 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 14:03:32:775 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 14:03:32:990 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 14:03:33:192 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 14:03:33:394 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 14:03:33:613 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:03:33:814 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 14:03:34:016 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 14:03:34:235 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 14:03:34:440 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 14:03:34:644 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 14:03:34:860 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:03:35:374 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:03:35:891 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:03:36:095 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 14:03:36:316 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:03:36:533 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 14:03:36:738 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 14:03:36:940 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 14:03:37:144 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 14:03:37:348 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 14:03:37:552 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:03:37:755 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 14:03:37:972 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 14:03:38:178 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 14:03:38:394 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 14:03:38:597 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 14:03:38:799 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:03:39:005 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 14:03:39:208 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 14:03:39:410 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 14:03:39:613 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 14:03:39:816 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 14:03:40:021 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:03:40:539 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:03:41:051 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:03:41:256 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 14:03:41:471 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:03:41:686 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 14:03:41:890 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 14:03:42:096 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 14:03:42:299 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 14:03:42:504 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 14:03:42:709 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:03:42:913 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 14:03:43:128 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 14:03:43:346 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 14:03:43:548 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 14:03:43:751 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 14:03:43:958 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:03:44:174 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 14:03:44:380 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 14:03:44:583 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 14:03:44:789 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 14:03:44:994 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 14:03:45:197 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:03:45:712 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:03:46:239 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:03:46:443 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 14:03:46:650 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:03:46:865 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 14:03:47:076 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 14:03:47:290 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 14:03:47:494 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 14:03:47:709 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 14:03:47:911 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:03:48:117 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 14:03:48:318 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 14:03:48:521 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 14:03:48:724 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 14:03:48:943 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 14:03:49:162 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:03:49:380 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 14:03:49:584 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 14:03:49:787 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 14:03:49:990 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 14:03:50:194 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 14:03:50:397 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:03:50:910 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:03:51:424 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:03:51:628 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 14:03:51:831 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:03:52:034 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 14:03:52:235 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 14:03:52:452 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 14:03:52:656 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 14:03:52:873 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 14:03:53:077 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:03:53:296 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 14:03:53:513 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 14:03:53:715 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 14:03:53:931 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 14:03:54:134 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 14:03:54:338 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:03:54:543 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 14:03:54:747 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 14:03:54:951 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 14:03:55:169 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 14:03:55:373 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 14:03:55:591 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:03:56:096 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:03:56:611 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:03:56:816 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 14:03:57:020 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:03:57:225 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 14:03:57:441 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 14:03:57:645 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 14:03:57:849 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 14:03:58:052 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 14:03:58:258 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:03:58:462 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 14:03:58:672 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 14:03:58:885 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 14:03:59:086 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 14:03:59:303 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 14:03:59:506 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:03:59:710 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 14:03:59:912 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 14:04:00:115 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 14:04:00:320 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 14:04:00:521 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 14:04:00:724 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:04:01:225 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:04:01:736 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:04:01:942 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 14:04:02:145 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:04:02:349 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 14:04:02:554 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 14:04:02:757 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 14:04:02:963 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 14:04:03:165 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 14:04:03:366 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:04:03:567 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 14:04:03:771 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 14:04:03:975 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 14:04:04:180 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 14:04:04:382 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 14:04:04:584 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:04:04:802 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 14:04:05:004 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 14:04:05:208 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 14:04:05:411 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 14:04:05:612 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 14:04:05:816 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:04:06:319 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:04:06:828 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:04:07:048 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 14:04:07:265 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:04:07:466 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 14:04:07:681 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 14:04:07:899 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 14:04:08:101 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 14:04:08:308 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 14:04:08:525 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:04:08:739 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 14:08:31:881 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=AlarmeCode, Valor=0
25/11/2024 14:08:32:397 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=RPM, Valor=0
25/11/2024 14:08:32:941 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Enabled, Valor=0
25/11/2024 14:08:32:998 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Breaked, Valor=0
25/11/2024 14:08:33:034 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Direction, Valor=0
25/11/2024 14:08:33:075 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Tensao, Valor=0
25/11/2024 14:08:33:087 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Temperatura, Valor=0
25/11/2024 14:08:33:100 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=AlarmeCode, Valor=0
25/11/2024 14:08:33:114 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=RPM, Valor=0
25/11/2024 14:08:33:126 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Enabled, Valor=0
25/11/2024 14:08:33:140 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Breaked, Valor=0
25/11/2024 14:08:33:152 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Direction, Valor=0
25/11/2024 14:08:33:165 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Tensao, Valor=0
25/11/2024 14:08:33:178 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Temperatura, Valor=0
25/11/2024 14:08:33:190 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=AlarmeCode, Valor=0
25/11/2024 14:08:33:203 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=RPM, Valor=0
25/11/2024 14:08:33:218 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Enabled, Valor=0
25/11/2024 14:08:33:231 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Breaked, Valor=0
25/11/2024 14:08:33:244 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Direction, Valor=0
25/11/2024 14:08:33:258 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Tensao, Valor=0
25/11/2024 14:08:33:270 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Temperatura, Valor=0
25/11/2024 14:08:33:283 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=AlarmeCode, Valor=0
25/11/2024 14:08:33:297 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=RPM, Valor=0
25/11/2024 14:08:33:311 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Enabled, Valor=0
25/11/2024 14:08:33:324 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Breaked, Valor=0
25/11/2024 14:08:33:340 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Direction, Valor=0
25/11/2024 14:08:33:352 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Tensao, Valor=0
25/11/2024 14:08:33:365 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Temperatura, Valor=0
25/11/2024 14:08:44:913 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=RPM, Valor=0
25/11/2024 14:08:45:428 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=True, Parametro=Enabled, Valor=0
25/11/2024 14:08:45:943 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:08:46:461 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:08:46:976 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:08:47:491 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:08:48:007 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:08:48:507 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:08:49:025 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:08:49:538 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:08:50:054 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:08:50:567 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:08:51:070 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:08:51:585 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:08:52:088 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:08:52:602 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:08:53:116 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:08:53:630 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:08:54:134 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:08:54:648 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:08:55:149 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:08:55:662 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:08:56:164 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:08:56:677 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:08:57:191 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:08:57:706 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:08:58:220 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:08:58:721 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:08:59:237 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:08:59:751 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:09:00:261 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:09:00:765 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:09:01:275 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:09:01:790 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:09:02:305 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:09:02:820 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:09:03:336 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:09:03:853 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:09:04:368 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:09:04:882 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:09:05:398 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:09:05:913 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:09:06:429 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:09:06:959 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:09:07:474 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:09:07:976 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:09:08:478 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:09:08:992 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:09:09:506 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:09:10:022 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:09:10:536 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:09:11:054 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:09:11:570 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:09:12:085 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:09:12:587 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:09:13:101 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:09:13:617 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:09:14:117 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:09:14:633 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:09:15:149 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:09:15:660 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:09:16:176 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:09:16:678 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:09:17:188 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:09:17:696 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:09:18:210 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:09:18:724 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:09:19:235 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:09:19:736 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:09:20:241 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:09:20:752 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:09:21:253 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:09:21:771 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:09:22:275 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:09:22:791 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:09:23:304 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:09:23:819 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:09:24:336 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:09:24:849 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:09:25:352 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:09:25:868 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:09:26:380 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:09:26:897 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:09:27:400 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:09:27:913 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:09:28:413 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:09:28:927 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:09:29:442 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:09:29:954 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:09:30:458 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:09:30:976 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:09:31:506 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 14:09:32:020 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 14:09:32:522 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -25,7 +25,7 @@
<meta name="viewport" content="width=device-width, <meta name="viewport" content="width=device-width,
initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<style> <style>
#map_07a098740876f040ece2bf1f6f913e03 { #map_c0646fcc30e5ebc340aad57d9997eeaa {
position: relative; position: relative;
width: 100.0%; width: 100.0%;
height: 100.0%; height: 100.0%;
@ -39,14 +39,14 @@
<body> <body>
<div class="folium-map" id="map_07a098740876f040ece2bf1f6f913e03" ></div> <div class="folium-map" id="map_c0646fcc30e5ebc340aad57d9997eeaa" ></div>
</body> </body>
<script> <script>
var map_07a098740876f040ece2bf1f6f913e03 = L.map( var map_c0646fcc30e5ebc340aad57d9997eeaa = L.map(
"map_07a098740876f040ece2bf1f6f913e03", "map_c0646fcc30e5ebc340aad57d9997eeaa",
{ {
center: [0.0, 0.0], center: [0.0, 0.0],
crs: L.CRS.EPSG3857, crs: L.CRS.EPSG3857,
@ -60,13 +60,13 @@
var tile_layer_ebd09008a2ea454b658d8ddf7b42809d = L.tileLayer( var tile_layer_a54cbd724f392a4729cd1021017950dd = L.tileLayer(
"https://tile.openstreetmap.org/{z}/{x}/{y}.png", "https://tile.openstreetmap.org/{z}/{x}/{y}.png",
{"attribution": "\u0026copy; \u003ca href=\"https://www.openstreetmap.org/copyright\"\u003eOpenStreetMap\u003c/a\u003e contributors", "detectRetina": false, "maxNativeZoom": 19, "maxZoom": 19, "minZoom": 0, "noWrap": false, "opacity": 1, "subdomains": "abc", "tms": false} {"attribution": "\u0026copy; \u003ca href=\"https://www.openstreetmap.org/copyright\"\u003eOpenStreetMap\u003c/a\u003e contributors", "detectRetina": false, "maxNativeZoom": 19, "maxZoom": 19, "minZoom": 0, "noWrap": false, "opacity": 1, "subdomains": "abc", "tms": false}
); );
tile_layer_ebd09008a2ea454b658d8ddf7b42809d.addTo(map_07a098740876f040ece2bf1f6f913e03); tile_layer_a54cbd724f392a4729cd1021017950dd.addTo(map_c0646fcc30e5ebc340aad57d9997eeaa);
</script> </script>
@ -87,7 +87,7 @@
} }
trajeto_json_add({"features": []}); trajeto_json_add({"features": []});
trajeto_json.addTo(map_07a098740876f040ece2bf1f6f913e03); trajeto_json.addTo(map_c0646fcc30e5ebc340aad57d9997eeaa);
function adicionarGeometria(novaGeometria) { function adicionarGeometria(novaGeometria) {
trajeto_json.addData(novaGeometria); trajeto_json.addData(novaGeometria);
@ -145,7 +145,7 @@
var marcadorDinamico = L.marker([0, 0], { var marcadorDinamico = L.marker([0, 0], {
icon: customIcon icon: customIcon
}).addTo(map_07a098740876f040ece2bf1f6f913e03); }).addTo(map_c0646fcc30e5ebc340aad57d9997eeaa);
// Conectar ao broker MQTT // Conectar ao broker MQTT
const client = mqtt.connect('ws://localhost:9001'); // Use wss para conexão segura const client = mqtt.connect('ws://localhost:9001'); // Use wss para conexão segura
@ -183,7 +183,7 @@
marcadorDinamico.setRotationAngle(angulo); marcadorDinamico.setRotationAngle(angulo);
adicionarCoordenada("Tj", [novaLongitude, novaLatitude]); adicionarCoordenada("Tj", [novaLongitude, novaLatitude]);
map_07a098740876f040ece2bf1f6f913e03.setView(novaPosicao, map_07a098740876f040ece2bf1f6f913e03.getZoom()); map_c0646fcc30e5ebc340aad57d9997eeaa.setView(novaPosicao, map_c0646fcc30e5ebc340aad57d9997eeaa.getZoom());
}); });
function calcularOrientacao(P1latitude, P1longitude, P2latitude, P2longitude) { function calcularOrientacao(P1latitude, P1longitude, P2latitude, P2longitude) {

View File

@ -58,21 +58,14 @@ namespace AgroMonitor
private async Task tmrDispositivos_Tick() private async Task tmrDispositivos_Tick()
{ {
Func<bool> funcao = new Func<bool>(() => lblMqtt.Text = "MQTT: " + (Variaveis.MqttService.StatusConexao() ? "Conectado" : "Desconectado");
{ lblMqtt.ForeColor = Variaveis.MqttService.StatusConexao() ? Color.Green : Color.Red;
lblMqtt.Text = "MQTT: " + (Variaveis.MqttService.StatusConexao() ? "Conectado" : "Desconectado");
lblMqtt.ForeColor = Variaveis.MqttService.StatusConexao() ? Color.Green : Color.Red;
lblLoRa.Text = "LoRa: " + (LoRaService.Iniciado ? "Conectado" : "Desconectado"); lblLoRa.Text = "LoRa: " + (LoRaService.Iniciado ? "Conectado" : "Desconectado");
lblLoRa.ForeColor = LoRaService.Iniciado ? Color.Green : Color.Red; lblLoRa.ForeColor = LoRaService.Iniciado ? Color.Green : Color.Red;
lblGps.Text = "GPS: " + (GPSService.Iniciado ? "Conectado" : "Desconectado"); lblGps.Text = "GPS: " + (GPSService.Iniciado ? "Conectado" : "Desconectado");
lblGps.ForeColor = GPSService.Iniciado ? Color.Green : Color.Red; lblGps.ForeColor = GPSService.Iniciado ? Color.Green : Color.Red;
return true;
});
FuncoesGlobais.ExecutarMetodoComVerificacaoCrossThread(this, funcao);
if (!GPSService.Iniciado || !LoRaService.Iniciado) if (!GPSService.Iniciado || !LoRaService.Iniciado)
{ {