otimizado timers

This commit is contained in:
Diego Freitas 2024-11-25 16:26:00 -03:00
parent 13217e3d41
commit 6870306166
48 changed files with 337 additions and 115 deletions

Binary file not shown.

View File

@ -57,13 +57,13 @@ namespace AgroBase.Forms.Atuador
grdSensoriamento.Rows.Add(new object[] { "Percentual", "0" }); grdSensoriamento.Rows.Add(new object[] { "Percentual", "0" });
tmrLeitura = new AsyncTaskTimerModel(tmrLeitura_Tick, 1000, this); tmrLeitura = new AsyncTaskTimerModel("tmrLeitura", tmrLeitura_Tick, 1000, this);
tmrLeitura.Start(); tmrLeitura.Start();
} }
private void frmAtuCalibragem_FormClosing(object sender, FormClosingEventArgs e) private void frmAtuCalibragem_FormClosing(object sender, FormClosingEventArgs e)
{ {
tmrLeitura.Stop(); tmrLeitura.Dispose();
} }
private void PopularBicos() private void PopularBicos()

View File

@ -103,7 +103,7 @@ namespace AgroBase.Forms
cameraSolo.tmrProcesso cameraSolo.tmrProcesso
); );
tmrLeitura = new AsyncTaskTimerModel(tmrLeitura_Tick, 200); tmrLeitura = new AsyncTaskTimerModel("tmrLeitura", tmrLeitura_Tick, 200);
tmrLeitura.Start(); tmrLeitura.Start();
} }

View File

@ -313,11 +313,9 @@ namespace AgroBase.Forms.IHM
private void cmbCentro_SelectedIndexChanged(object sender, EventArgs e) private void cmbCentro_SelectedIndexChanged(object sender, EventArgs e)
{ {
if (tmrKinect == null) tmrKinect?.Dispose();
{ tmrKinect = new AsyncTaskTimerModel("tmrKinect", tmrKinect_Tick, 100, this);
tmrKinect = new AsyncTaskTimerModel(tmrKinect_Tick, 100, this); tmrKinect.Start();
tmrKinect.Start();
}
} }
private void cmbCameraSolo_SelectedIndexChanged(object sender, EventArgs e) private void cmbCameraSolo_SelectedIndexChanged(object sender, EventArgs e)

View File

@ -56,13 +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 = new AsyncTaskTimerModel("tmrLeitura", 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.Dispose();
Variaveis.OperacaoEmAndamento.DesligarCameras(); Variaveis.OperacaoEmAndamento.DesligarCameras();
} }

View File

@ -97,10 +97,10 @@ namespace AgroBase.Forms.IHM
private void frmIHM_Load(object sender, EventArgs e) private void frmIHM_Load(object sender, EventArgs e)
{ {
lblVersao.Text = "v " + Variaveis.Versao; lblVersao.Text = "v " + Variaveis.Versao;
tmrDispositivos = new AsyncTaskTimerModel(tmrDispositivos_Tick, 5000, this); tmrDispositivos = new AsyncTaskTimerModel("tmrDispositivos", tmrDispositivos_Tick, 5000, this);
tmrDispositivos.Start(); tmrDispositivos.Start();
tmrAtualizacaoArquivos = new AsyncTaskTimerModel(tmrAtualizacaoArquivos_Tick, 300, this); tmrAtualizacaoArquivos = new AsyncTaskTimerModel("tmrAtualizacaoArquivos", tmrAtualizacaoArquivos_Tick, 300, this);
tmrAtualizacaoArquivos.Start(); tmrAtualizacaoArquivos.Start();
lblCodigoFalha.Click += LblCodigoFalha_Click; lblCodigoFalha.Click += LblCodigoFalha_Click;

View File

@ -49,13 +49,13 @@ namespace AgroBase.Forms.Operacoes
PopularBicos(); PopularBicos();
Variaveis.OperacaoEmAndamento.chartGraficos = chartGraficos; Variaveis.OperacaoEmAndamento.chartGraficos = chartGraficos;
tmrLeitura = new AsyncTaskTimerModel(tmrLeitura_Tick, 500, this); tmrLeitura = new AsyncTaskTimerModel("tmrLeitura", tmrLeitura_Tick, 500, this);
tmrLeitura.Start(); tmrLeitura.Start();
} }
private void frmOperacaoManual_FormClosing(object sender, FormClosingEventArgs e) private void frmOperacaoManual_FormClosing(object sender, FormClosingEventArgs e)
{ {
tmrLeitura.Stop(); tmrLeitura.Dispose();
Variaveis.OperacaoEmAndamento.FinalizarOperacao(); Variaveis.OperacaoEmAndamento.FinalizarOperacao();
Variaveis.OperacaoEmAndamento.DesligarCameras(); Variaveis.OperacaoEmAndamento.DesligarCameras();
} }

View File

@ -37,7 +37,7 @@ namespace AgroBase.Forms.Operacoes
private void frmOperacaoMapaGPS_Load(object sender, EventArgs e) private void frmOperacaoMapaGPS_Load(object sender, EventArgs e)
{ {
tmrLeituras = new AsyncTaskTimerModel(tmrLeituras_Tick, 200, this); tmrLeituras = new AsyncTaskTimerModel("tmrLeitura", tmrLeituras_Tick, 200, this);
tmrLeituras.Start(); tmrLeituras.Start();
AtualizarDispositivos(); AtualizarDispositivos();
@ -46,7 +46,7 @@ namespace AgroBase.Forms.Operacoes
private void frmOperacaoMapaGPS_FormClosing(object sender, FormClosingEventArgs e) private void frmOperacaoMapaGPS_FormClosing(object sender, FormClosingEventArgs e)
{ {
tmrLeituras.Stop(); tmrLeituras.Dispose();
Variaveis.OperacaoEmAndamento.FinalizarOperacao(); Variaveis.OperacaoEmAndamento.FinalizarOperacao();
Variaveis.OperacaoEmAndamento.DesligarCameras(); Variaveis.OperacaoEmAndamento.DesligarCameras();
} }

View File

@ -64,7 +64,7 @@ namespace AgroBase.Forms.Operacoes
nudAnguloMaximo.Value = Convert.ToInt32(Variaveis.OperacaoEmAndamento.Controle.Angulo_Max); nudAnguloMaximo.Value = Convert.ToInt32(Variaveis.OperacaoEmAndamento.Controle.Angulo_Max);
nudAnguloMinimo.Value = Convert.ToInt32(Variaveis.OperacaoEmAndamento.Controle.Angulo_Min); nudAnguloMinimo.Value = Convert.ToInt32(Variaveis.OperacaoEmAndamento.Controle.Angulo_Min);
nudVelocidadeMP.Value = Convert.ToInt32(Variaveis.OperacaoEmAndamento.Controle.VelocidadeMP); nudVelocidadeMP.Value = Convert.ToInt32(Variaveis.OperacaoEmAndamento.Controle.VelocidadeMP);
nudTemposalvarlog.Value = (decimal)OperacaoModel.tmrLogsInterval / 1000; nudTemposalvarlog.Value = (decimal)Variaveis.OperacaoEmAndamento.tmrLogsInterval / 1000;
nudQtdBicos.Value = Variaveis.OperacaoEmAndamento.DispAtu.Dados.QuantidadeBicos; nudQtdBicos.Value = Variaveis.OperacaoEmAndamento.DispAtu.Dados.QuantidadeBicos;
nudQtdCameras.Value = Variaveis.OperacaoEmAndamento.QuantidadeCamerasSolo; nudQtdCameras.Value = Variaveis.OperacaoEmAndamento.QuantidadeCamerasSolo;
nudCapacidadereservatorio.Value = Convert.ToInt32(Variaveis.OperacaoEmAndamento.CapacidadeReservatorio); nudCapacidadereservatorio.Value = Convert.ToInt32(Variaveis.OperacaoEmAndamento.CapacidadeReservatorio);
@ -131,7 +131,7 @@ namespace AgroBase.Forms.Operacoes
Variaveis.OperacaoEmAndamento.Controle.Angulo_Max = (int)(nudAnguloMaximo.Value); Variaveis.OperacaoEmAndamento.Controle.Angulo_Max = (int)(nudAnguloMaximo.Value);
Variaveis.OperacaoEmAndamento.Controle.Angulo_Min = (int)(nudAnguloMinimo.Value); Variaveis.OperacaoEmAndamento.Controle.Angulo_Min = (int)(nudAnguloMinimo.Value);
Variaveis.OperacaoEmAndamento.Controle.VelocidadeMP = (int)(nudVelocidadeMP.Value); Variaveis.OperacaoEmAndamento.Controle.VelocidadeMP = (int)(nudVelocidadeMP.Value);
OperacaoModel.tmrLogsInterval = (double)(nudTemposalvarlog.Value * 1000); Variaveis.OperacaoEmAndamento.tmrLogsInterval = (double)(nudTemposalvarlog.Value * 1000);
Variaveis.OperacaoEmAndamento.DispAtu.Dados.QuantidadeBicos = (int)nudQtdBicos.Value; Variaveis.OperacaoEmAndamento.DispAtu.Dados.QuantidadeBicos = (int)nudQtdBicos.Value;
Variaveis.OperacaoEmAndamento.QuantidadeCamerasSolo = (int)nudQtdCameras.Value; Variaveis.OperacaoEmAndamento.QuantidadeCamerasSolo = (int)nudQtdCameras.Value;
Variaveis.OperacaoEmAndamento.CapacidadeReservatorio = (double)nudCapacidadereservatorio.Value; Variaveis.OperacaoEmAndamento.CapacidadeReservatorio = (double)nudCapacidadereservatorio.Value;

View File

@ -86,7 +86,7 @@ namespace AgroBase.Forms.Operacoes
private void frmResultadosOperacao_Load(object sender, EventArgs e) private void frmResultadosOperacao_Load(object sender, EventArgs e)
{ {
tmrPlay = new AsyncTaskTimerModel(tmrPlay_Tick, 1000, this); tmrPlay = new AsyncTaskTimerModel("tmrPlay", tmrPlay_Tick, 1000, this);
picDIR_DF.Image = FuncoesGlobais.EspelharImagemHorizontalmente(Resources.roda_superior); picDIR_DF.Image = FuncoesGlobais.EspelharImagemHorizontalmente(Resources.roda_superior);
picDIR_DT.Image = FuncoesGlobais.EspelharImagemHorizontalmente(Resources.roda_superior); picDIR_DT.Image = FuncoesGlobais.EspelharImagemHorizontalmente(Resources.roda_superior);

View File

@ -29,13 +29,13 @@ namespace AgroBase.Forms
picDF.Paint += pic_Paint; picDF.Paint += pic_Paint;
picDT.Paint += pic_Paint; picDT.Paint += pic_Paint;
tmrAtualizacao = new AsyncTaskTimerModel(tmrAtualizacao_Tick, 500, this); tmrAtualizacao = new AsyncTaskTimerModel("tmrAtualizacao", tmrAtualizacao_Tick, 500, this);
tmrAtualizacao.Start(); tmrAtualizacao.Start();
} }
private void frmAcompanhamento_FormClosing(object sender, FormClosingEventArgs e) private void frmAcompanhamento_FormClosing(object sender, FormClosingEventArgs e)
{ {
tmrAtualizacao.Stop(); tmrAtualizacao.Dispose();
} }
public async Task tmrAtualizacao_Tick() public async Task tmrAtualizacao_Tick()
@ -86,7 +86,7 @@ namespace AgroBase.Forms
d0 = sensor.Leituras?[0] ?? 0; d0 = sensor.Leituras?[0] ?? 0;
d1 = sensor.Leituras?[1] ?? 0; d1 = sensor.Leituras?[1] ?? 0;
} }
lbl.Text = "Barramento 3V: " + d0.ToString("0.00") + " V " + d1.ToString("0.00") + " mA"; lbl.Text = id.Replace("AB", "Barramento ") + ": " + d1.ToString("0.00") + " V " + d0.ToString("0.00") + " mA";
} }
private void AtualzarDadosMovimentacao() private void AtualzarDadosMovimentacao()

View File

@ -30,13 +30,13 @@ namespace AgroBase.Forms
private void frmGPS_Load(object sender, EventArgs e) private void frmGPS_Load(object sender, EventArgs e)
{ {
IniciarMapa(); IniciarMapa();
tmrLeitura = new AsyncTaskTimerModel(tmrLeitura_Tick, 1000, this); tmrLeitura = new AsyncTaskTimerModel("tmrLeitura", tmrLeitura_Tick, 1000, this);
tmrLeitura.Start(); tmrLeitura.Start();
} }
private void frmGPS_FormClosing(object sender, FormClosingEventArgs e) private void frmGPS_FormClosing(object sender, FormClosingEventArgs e)
{ {
tmrLeitura.Stop(); tmrLeitura.Dispose();
} }
private async Task tmrLeitura_Tick() private async Task tmrLeitura_Tick()

View File

@ -22,7 +22,7 @@ namespace AgroBase.Forms
private void frmLoraConfig_Load(object sender, EventArgs e) private void frmLoraConfig_Load(object sender, EventArgs e)
{ {
tmrLeitura = new AsyncTaskTimerModel(tmrLeitura_Tick, 1000, this); tmrLeitura = new AsyncTaskTimerModel("tmrLeitura", tmrLeitura_Tick, 1000, this);
tmrLeitura.Start(); tmrLeitura.Start();
//Parametros = loraService.CarregarParametros(); //Parametros = loraService.CarregarParametros();

View File

@ -75,6 +75,7 @@ namespace AgroBase
this.gpbControleDirecional = new System.Windows.Forms.GroupBox(); this.gpbControleDirecional = new System.Windows.Forms.GroupBox();
this.gpbAtalhos = new System.Windows.Forms.GroupBox(); this.gpbAtalhos = new System.Windows.Forms.GroupBox();
this.pnlAtalhos = new System.Windows.Forms.Panel(); this.pnlAtalhos = new System.Windows.Forms.Panel();
this.btnEthernet = new System.Windows.Forms.Button();
this.btnMKS = new System.Windows.Forms.Button(); this.btnMKS = new System.Windows.Forms.Button();
this.btnBLD300R = new System.Windows.Forms.Button(); this.btnBLD300R = new System.Windows.Forms.Button();
this.btnWT901C = new System.Windows.Forms.Button(); this.btnWT901C = new System.Windows.Forms.Button();
@ -96,7 +97,8 @@ namespace AgroBase
this.lblProgressoAtualizacao = new System.Windows.Forms.Label(); this.lblProgressoAtualizacao = new System.Windows.Forms.Label();
this.pgbAtualizacaoArquivos = new System.Windows.Forms.ProgressBar(); this.pgbAtualizacaoArquivos = new System.Windows.Forms.ProgressBar();
this.btnForcarAtualizacao = new System.Windows.Forms.Button(); this.btnForcarAtualizacao = new System.Windows.Forms.Button();
this.btnEthernet = new System.Windows.Forms.Button(); this.clbRotinas = new System.Windows.Forms.CheckedListBox();
this.btnAtualizarRotinas = new System.Windows.Forms.Button();
this.gpbAcoes.SuspendLayout(); this.gpbAcoes.SuspendLayout();
this.erroStrip.SuspendLayout(); this.erroStrip.SuspendLayout();
this.pnlLateral.SuspendLayout(); this.pnlLateral.SuspendLayout();
@ -634,6 +636,17 @@ namespace AgroBase
this.pnlAtalhos.Size = new System.Drawing.Size(112, 286); this.pnlAtalhos.Size = new System.Drawing.Size(112, 286);
this.pnlAtalhos.TabIndex = 0; this.pnlAtalhos.TabIndex = 0;
// //
// btnEthernet
//
this.btnEthernet.Location = new System.Drawing.Point(5, 391);
this.btnEthernet.Margin = new System.Windows.Forms.Padding(2);
this.btnEthernet.Name = "btnEthernet";
this.btnEthernet.Size = new System.Drawing.Size(84, 20);
this.btnEthernet.TabIndex = 30;
this.btnEthernet.Text = "Ethernet";
this.btnEthernet.UseVisualStyleBackColor = true;
this.btnEthernet.Click += new System.EventHandler(this.btnEthernet_Click);
//
// btnMKS // btnMKS
// //
this.btnMKS.Location = new System.Drawing.Point(5, 367); this.btnMKS.Location = new System.Drawing.Point(5, 367);
@ -858,6 +871,7 @@ namespace AgroBase
// //
// btnForcarAtualizacao // btnForcarAtualizacao
// //
this.btnForcarAtualizacao.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.btnForcarAtualizacao.Location = new System.Drawing.Point(293, 532); this.btnForcarAtualizacao.Location = new System.Drawing.Point(293, 532);
this.btnForcarAtualizacao.Margin = new System.Windows.Forms.Padding(2); this.btnForcarAtualizacao.Margin = new System.Windows.Forms.Padding(2);
this.btnForcarAtualizacao.Name = "btnForcarAtualizacao"; this.btnForcarAtualizacao.Name = "btnForcarAtualizacao";
@ -867,22 +881,35 @@ namespace AgroBase
this.btnForcarAtualizacao.UseVisualStyleBackColor = true; this.btnForcarAtualizacao.UseVisualStyleBackColor = true;
this.btnForcarAtualizacao.Click += new System.EventHandler(this.btnForcarAtualizacao_Click); this.btnForcarAtualizacao.Click += new System.EventHandler(this.btnForcarAtualizacao_Click);
// //
// btnEthernet // clbRotinas
// //
this.btnEthernet.Location = new System.Drawing.Point(5, 391); this.clbRotinas.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
this.btnEthernet.Margin = new System.Windows.Forms.Padding(2); | System.Windows.Forms.AnchorStyles.Left)));
this.btnEthernet.Name = "btnEthernet"; this.clbRotinas.FormattingEnabled = true;
this.btnEthernet.Size = new System.Drawing.Size(84, 20); this.clbRotinas.Location = new System.Drawing.Point(9, 417);
this.btnEthernet.TabIndex = 30; this.clbRotinas.Name = "clbRotinas";
this.btnEthernet.Text = "Ethernet"; this.clbRotinas.Size = new System.Drawing.Size(457, 94);
this.btnEthernet.UseVisualStyleBackColor = true; this.clbRotinas.TabIndex = 49;
this.btnEthernet.Click += new System.EventHandler(this.btnEthernet_Click); //
// btnAtualizarRotinas
//
this.btnAtualizarRotinas.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.btnAtualizarRotinas.Location = new System.Drawing.Point(9, 516);
this.btnAtualizarRotinas.Margin = new System.Windows.Forms.Padding(2);
this.btnAtualizarRotinas.Name = "btnAtualizarRotinas";
this.btnAtualizarRotinas.Size = new System.Drawing.Size(109, 22);
this.btnAtualizarRotinas.TabIndex = 50;
this.btnAtualizarRotinas.Text = "Atualizar Rotinas";
this.btnAtualizarRotinas.UseVisualStyleBackColor = true;
this.btnAtualizarRotinas.Click += new System.EventHandler(this.btnAtualizarRotinas_Click);
// //
// frmPrincipal // frmPrincipal
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1089, 609); this.ClientSize = new System.Drawing.Size(1089, 609);
this.Controls.Add(this.btnAtualizarRotinas);
this.Controls.Add(this.clbRotinas);
this.Controls.Add(this.btnForcarAtualizacao); this.Controls.Add(this.btnForcarAtualizacao);
this.Controls.Add(this.lblProgressoAtualizacao); this.Controls.Add(this.lblProgressoAtualizacao);
this.Controls.Add(this.pgbAtualizacaoArquivos); this.Controls.Add(this.pgbAtualizacaoArquivos);
@ -998,6 +1025,8 @@ namespace AgroBase
private System.Windows.Forms.ProgressBar pgbAtualizacaoArquivos; private System.Windows.Forms.ProgressBar pgbAtualizacaoArquivos;
private System.Windows.Forms.Button btnForcarAtualizacao; private System.Windows.Forms.Button btnForcarAtualizacao;
private System.Windows.Forms.Button btnEthernet; private System.Windows.Forms.Button btnEthernet;
private System.Windows.Forms.CheckedListBox clbRotinas;
private System.Windows.Forms.Button btnAtualizarRotinas;
} }
} }

View File

@ -28,10 +28,10 @@ namespace AgroBase
private void Form1_Load(object sender, EventArgs e) private void Form1_Load(object sender, EventArgs e)
{ {
tmrLoopDispositivos = new AsyncTaskTimerModel(tmrLoopDispositivos_Tick, SerialService.InteraloVerificacao, this); tmrLoopDispositivos = new AsyncTaskTimerModel("tmrLoopDispositivos", tmrLoopDispositivos_Tick, SerialService.InteraloVerificacao, this);
tmrLoopDispositivos.Start(); tmrLoopDispositivos.Start();
tmrAtualizacaoArquivos = new AsyncTaskTimerModel(tmrAtualizacaoArquivos_Tick, 300, this); tmrAtualizacaoArquivos = new AsyncTaskTimerModel("tmrAtualizacaoArquivos", tmrAtualizacaoArquivos_Tick, 300, this);
tmrAtualizacaoArquivos.Start(); tmrAtualizacaoArquivos.Start();
btnJoyAtt_Click(new object(), new EventArgs()); btnJoyAtt_Click(new object(), new EventArgs());
@ -48,6 +48,17 @@ namespace AgroBase
} }
private void btnAtualizarRotinas_Click(object sender, EventArgs e)
{
AtualizarListaRotinas();
}
private void AtualizarListaRotinas()
{
clbRotinas.Items.Clear();
clbRotinas.Items.AddRange(AsyncTaskTimerModel.Timers.Select(x => $"{x.StackTrace} -> {x.Id} - Interval: {x.Interval} - Running: {x.IsRunning}").ToArray());
}
#region DISPOSITIVOS #region DISPOSITIVOS
private void btnNovoDispositivo_Click(object sender, EventArgs e) private void btnNovoDispositivo_Click(object sender, EventArgs e)
@ -169,6 +180,8 @@ namespace AgroBase
FuncoesGlobais.PreencheValorTrackBar(trkRPM, Variaveis.OperacaoEmAndamento.Controle.RPM_SP); FuncoesGlobais.PreencheValorTrackBar(trkRPM, Variaveis.OperacaoEmAndamento.Controle.RPM_SP);
int percentual = Convert.ToInt32((trkRPM.Value / (double)VariaveisEquipamento.RPM_Max_Roda) * 100.0); int percentual = Convert.ToInt32((trkRPM.Value / (double)VariaveisEquipamento.RPM_Max_Roda) * 100.0);
AtualizaRPM(percentual); AtualizaRPM(percentual);
AtualizarListaRotinas();
} }
#endregion #endregion
@ -438,8 +451,9 @@ namespace AgroBase
#endregion #endregion
} }
} }

View File

@ -120,6 +120,9 @@
<metadata name="erroStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="erroStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>11, 10</value> <value>11, 10</value>
</metadata> </metadata>
<metadata name="erroStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>11, 10</value>
</metadata>
<metadata name="generalStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="generalStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>133, 16</value> <value>133, 16</value>
</metadata> </metadata>

View File

@ -34,7 +34,7 @@ namespace AgroBase.Forms
private void frmSimulacaoMapaGPS_Load(object sender, EventArgs e) private void frmSimulacaoMapaGPS_Load(object sender, EventArgs e)
{ {
tmrLeitura = new AsyncTaskTimerModel(tmrLeitura_Tick, 500, this); tmrLeitura = new AsyncTaskTimerModel("tmrLeitura", tmrLeitura_Tick, 500, this);
tmrLeitura.Start(); tmrLeitura.Start();
Variaveis.OperacaoEmAndamento.Mapa = new MapasModel() Variaveis.OperacaoEmAndamento.Mapa = new MapasModel()
@ -47,7 +47,7 @@ namespace AgroBase.Forms
private void frmSimulacaoMapaGPS_FormClosing(object sender, FormClosingEventArgs e) private void frmSimulacaoMapaGPS_FormClosing(object sender, FormClosingEventArgs e)
{ {
tmrLeitura.Stop(); tmrLeitura.Dispose();
Variaveis.OperacaoEmAndamento.Iniciado = false; Variaveis.OperacaoEmAndamento.Iniciado = false;
} }

View File

@ -44,13 +44,13 @@ namespace AgroBase.Forms
{ {
PopularDadosGrid(); PopularDadosGrid();
tmrLeitura = new AsyncTaskTimerModel(tmrLeitura_Tick, 500, this); tmrLeitura = new AsyncTaskTimerModel("tmrLeitura", tmrLeitura_Tick, 500, this);
tmrLeitura.Start(); tmrLeitura.Start();
} }
private void frmWT901C_FormClosing(object sender, FormClosingEventArgs e) private void frmWT901C_FormClosing(object sender, FormClosingEventArgs e)
{ {
tmrLeitura.Stop(); tmrLeitura.Dispose();
} }
private async Task tmrLeitura_Tick() private async Task tmrLeitura_Tick()

View File

@ -1,18 +1,24 @@
using AgroBase.Services; using OpenTK.Platform.Windows;
using System; using System;
using System.Collections.Generic;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
namespace AgroBase.Models namespace AgroBase.Models
{ {
public class AsyncTaskTimerModel public class AsyncTaskTimerModel : IDisposable
{ {
public static List<AsyncTaskTimerModel> Timers { get; set; } = new List<AsyncTaskTimerModel>();
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 string _stackTrace;
public string StackTrace { get { return _stackTrace; } }
private string _id;
public string Id { get { return _id; } }
private Control _uiControl; private Control _uiControl;
private bool DebugMessages = true; private bool DebugMessages = true;
@ -23,15 +29,19 @@ namespace AgroBase.Models
/// <param name="taskToExecute">A tarefa assíncrona que será executada periodicamente.</param> /// <param name="taskToExecute">A tarefa assíncrona que será executada periodicamente.</param>
/// <param name="interval">Intervalo em milissegundos entre as execuções.</param> /// <param name="interval">Intervalo em milissegundos entre as execuções.</param>
/// <param name="uiControl">Controle para executar tarefas relacionadas à UI. Opcional.</param> /// <param name="uiControl">Controle para executar tarefas relacionadas à UI. Opcional.</param>
public AsyncTaskTimerModel(Func<Task> taskToExecute, int interval, Control uiControl = null) public AsyncTaskTimerModel(string id, Func<Task> taskToExecute, int interval, Control uiControl = null)
{ {
if (string.IsNullOrEmpty(id)) throw new ArgumentNullException(nameof(id));
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(); _id = id;
_stackTrace = ObterIdDoChamador();
_taskToExecute = taskToExecute; _taskToExecute = taskToExecute;
_interval = interval; _interval = interval;
_uiControl = uiControl; _uiControl = uiControl;
Timers.Add(this);
} }
/// <summary> /// <summary>
@ -144,6 +154,26 @@ namespace AgroBase.Models
ExibirConsole($"ENCERRADO"); ExibirConsole($"ENCERRADO");
} }
private bool _disposed = false;
public void Dispose()
{
if (_disposed) return;
// Cancela o token de cancelamento
Stop();
// Remove o timer da lista estática
Timers.Remove(this);
// Libera o CancellationTokenSource
_cancellationTokenSource?.Dispose();
_disposed = true;
ExibirConsole($"DISPOSED");
}
private string ObterIdDoChamador() private string ObterIdDoChamador()
{ {
@ -157,7 +187,7 @@ namespace AgroBase.Models
{ {
if (DebugMessages) if (DebugMessages)
{ {
Console.WriteLine($"AsyncTaskTimer id = {_id} - {msg}"); Console.WriteLine($"AsyncTaskTimer id = {_stackTrace} - {msg}");
} }
} }

View File

@ -57,31 +57,25 @@ namespace AgroBase.Models
public void InicializarCamera() public void InicializarCamera()
{ {
if (tmrProcesso == null) var timers = AsyncTaskTimerModel.Timers.Where(x => x.StackTrace.Contains("CameraCaminhoModel") && x.Id.Contains(ID)).ToList();
foreach (var timer in timers)
{ {
tmrProcesso = new AsyncTaskTimerModel(tmrProcesso_Tick, 500); timer.Dispose();
tmrProcesso.Start();
} }
if (tmrLeitura == null) tmrProcesso = new AsyncTaskTimerModel("tmrProcesso_" + ID, tmrProcesso_Tick, 500);
{ tmrProcesso.Start();
tmrLeitura = new AsyncTaskTimerModel(tmrLeitura_Tick, 100);
tmrLeitura.Start(); tmrLeitura = new AsyncTaskTimerModel("tmrLeitura_" + ID, tmrLeitura_Tick, 100);
} tmrLeitura.Start();
} }
public void DesligarCamera() public void DesligarCamera()
{ {
try try
{ {
if (tmrLeitura != null) tmrLeitura?.Dispose();
{ tmrProcesso?.Dispose();
tmrLeitura.Stop();
}
if (tmrProcesso != null)
{
tmrProcesso.Stop();
}
Iniciada = false; Iniciada = false;
Variaveis.MqttService.Topicos.Remove(camera._mqttTopico); Variaveis.MqttService.Topicos.Remove(camera._mqttTopico);
@ -109,8 +103,6 @@ namespace AgroBase.Models
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)
{ {
tmrProcesso.Stop();
camera.ProntoEm = Mensagem.Momento; camera.ProntoEm = Mensagem.Momento;
if (browser == null) if (browser == null)
@ -125,6 +117,8 @@ namespace AgroBase.Models
browser.Dock = DockStyle.Fill;*/ browser.Dock = DockStyle.Fill;*/
} }
} }
tmrProcesso.Dispose();
} }
} }
} }

View File

@ -13,7 +13,12 @@ namespace AgroBase.Models
public CameraSoloModel() public CameraSoloModel()
{ {
tmrProcesso = new AsyncTaskTimerModel(tmrProcesso_Tick, 500);
}
public void IniciarRotinaProcesso()
{
tmrProcesso = new AsyncTaskTimerModel("tmrProcesso", tmrProcesso_Tick, 500);
tmrProcesso.Start(); tmrProcesso.Start();
} }
@ -24,8 +29,6 @@ namespace AgroBase.Models
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)
{ {
tmrProcesso.Stop();
camera.ProntoEm = Mensagem.Momento; camera.ProntoEm = Mensagem.Momento;
if (browser == null) if (browser == null)
@ -35,6 +38,8 @@ namespace AgroBase.Models
panel.Controls.Add(browser); panel.Controls.Add(browser);
browser.Dock = DockStyle.Fill; browser.Dock = DockStyle.Fill;
} }
tmrProcesso.Dispose();
} }
} }
} }

View File

@ -57,7 +57,7 @@ namespace AgroBase
public static void IniciarRotinas() public static void IniciarRotinas()
{ {
tmrJoystick = new AsyncTaskTimerModel(tmrJoystick_Tick, 100); tmrJoystick = new AsyncTaskTimerModel("tmrJoystick", tmrJoystick_Tick, 100);
} }
public static void AtualizaDispositivo() public static void AtualizaDispositivo()

View File

@ -537,7 +537,8 @@ namespace AgroBase.Models
picLoading.Visible = true; picLoading.Visible = true;
pnlMapa.Controls.Add(picLoading); pnlMapa.Controls.Add(picLoading);
tmrCarregamento = new AsyncTaskTimerModel(tmrCarregamento_Tick, 500, pnlMapa); tmrCarregamento?.Dispose();
tmrCarregamento = new AsyncTaskTimerModel("tmrCarregamento", tmrCarregamento_Tick, 500, pnlMapa);
tmrCarregamento.Start(); tmrCarregamento.Start();
} }
} }
@ -556,7 +557,8 @@ namespace AgroBase.Models
} }
mapaService.CarregarMapaGPS(MapasVariaveisModel.NomeArquivoMapaGPS); mapaService.CarregarMapaGPS(MapasVariaveisModel.NomeArquivoMapaGPS);
tmrCarregamento = new AsyncTaskTimerModel(tmrCarregamento_Tick, 500, pnlMapa); tmrCarregamento?.Dispose();
tmrCarregamento = new AsyncTaskTimerModel("tmrCarregamento", tmrCarregamento_Tick, 500, pnlMapa);
tmrCarregamento.Start(); tmrCarregamento.Start();
} }
@ -600,13 +602,13 @@ namespace AgroBase.Models
mapaService.pythonProcess = null; mapaService.pythonProcess = null;
} }
tmrCarregamento.Stop(); tmrCarregamento.Dispose();
} }
catch (InvalidOperationException ex) catch (InvalidOperationException ex)
{ {
Console.WriteLine($"Erro ao verificar o estado do processo: {ex.Message}"); Console.WriteLine($"Erro ao verificar o estado do processo: {ex.Message}");
picLoading.Visible = false; picLoading.Visible = false;
tmrCarregamento.Stop(); tmrCarregamento.Dispose();
} }
} }

View File

@ -296,7 +296,8 @@ namespace AgroBase.Models
public void IniciarRegistrador() public void IniciarRegistrador()
{ {
tmrRegistrador = new AsyncTaskTimerModel(tmrRegistrador_Tick, 1000); tmrRegistrador?.Dispose();
tmrRegistrador = new AsyncTaskTimerModel("tmrRegistrador", tmrRegistrador_Tick, 1000);
tmrRegistrador.Start(); tmrRegistrador.Start();
} }

View File

@ -27,19 +27,24 @@ namespace AgroBase.Models
{ {
this.Modo = Modo; this.Modo = Modo;
tmrLogs = new AsyncTaskTimerModel(tmrLogs_Tick, 1000); if (Variaveis.OperacaoEmAndamento != null)
tmrLogs.Start(); {
tmrLogs?.Dispose();
tmrLogs = new AsyncTaskTimerModel("tmrLogs", tmrLogs_Tick, 1000);
tmrLogs.Start();
tmrLeituras = new AsyncTaskTimerModel(tmrLeituras_Tick, 500, chartGraficos); tmrLeituras?.Dispose();
tmrLeituras.Start(); tmrLeituras = new AsyncTaskTimerModel("tmrLeitura", tmrLeituras_Tick, 500, chartGraficos);
tmrLeituras.Start();
}
if (computer == null) if (computer == null)
{ {
computer = new Computer() computer = new Computer()
{ {
CPUEnabled = true, CPUEnabled = true,
GPUEnabled = true, GPUEnabled = true,
RAMEnabled = true, RAMEnabled = true,
HDDEnabled = true, HDDEnabled = true,
}; };
computer.Open(); computer.Open();
@ -274,7 +279,7 @@ namespace AgroBase.Models
public CameraCaminhoModel CameraCaminhoKinect { get; set; } public CameraCaminhoModel CameraCaminhoKinect { get; set; }
public int TempoIniciarOperacao { get; set; } = 25; public int TempoIniciarOperacao { get; set; } = 25;
public string ID { get; set; } public string ID { get; set; }
public static double tmrLogsInterval public double tmrLogsInterval
{ {
get get
{ {
@ -519,7 +524,7 @@ namespace AgroBase.Models
var AtuConectado = (DispositivosService<AtuadorModel>)Variaveis.DispositivosConectados.FirstOrDefault(x => x.Dispositivo == T_Code.Atu); var AtuConectado = (DispositivosService<AtuadorModel>)Variaveis.DispositivosConectados.FirstOrDefault(x => x.Dispositivo == T_Code.Atu);
var MvdConectado = (DispositivosService<MovimentacaoUnificadaModel>)Variaveis.DispositivosConectados.FirstOrDefault(x => x.Dispositivo == T_Code.Mvd); var MvdConectado = (DispositivosService<MovimentacaoUnificadaModel>)Variaveis.DispositivosConectados.FirstOrDefault(x => x.Dispositivo == T_Code.Mvd);
tmrLogs.Stop(); tmrLogs?.Stop();
OperacaoModel OperacaoCarregar = new OperacaoModel(Modo) OperacaoModel OperacaoCarregar = new OperacaoModel(Modo)
{ {
@ -962,7 +967,7 @@ namespace AgroBase.Models
for (int i = 0; i < QuantidadeCamerasSolo; i++) for (int i = 0; i < QuantidadeCamerasSolo; i++)
{ {
string CamNome = "Cam_Solo_" + i.ToString(); string CamNome = "Cam_Solo_" + i.ToString();
CameraSoloModel CameraSolo = CameraSolo = new CameraSoloModel() CameraSoloModel CameraSolo = new CameraSoloModel()
{ {
ID = "S" + i.ToString(), ID = "S" + i.ToString(),
Nome = CamNome, Nome = CamNome,
@ -1017,6 +1022,8 @@ namespace AgroBase.Models
{ {
VersaoArquivoModel ArquivoVersao = VersionamentoService.ArquivoModeloWeedDetector; VersaoArquivoModel ArquivoVersao = VersionamentoService.ArquivoModeloWeedDetector;
CameraSolo.IniciarRotinaProcesso();
CameraSolo.camera.IniciarCamera( CameraSolo.camera.IniciarCamera(
Variaveis.OperacaoEmAndamento.DispAtu.Dados.ScriptDeteccaoErvas, Variaveis.OperacaoEmAndamento.DispAtu.Dados.ScriptDeteccaoErvas,
new string[] { new string[] {

View File

@ -189,10 +189,10 @@ namespace AgroBase.Services
public static void IniciarRotinas() public static void IniciarRotinas()
{ {
tmrLoopComandos = new AsyncTaskTimerModel(tmrLoopComandos_Tick, 100); tmrLoopComandos = new AsyncTaskTimerModel("tmrLoopComandos", tmrLoopComandos_Tick, 100);
tmrLoopComandos.Start(); tmrLoopComandos.Start();
tmrReceberDados = new AsyncTaskTimerModel(tmrReceberDados_Tick, TaxaAmostragem); tmrReceberDados = new AsyncTaskTimerModel("tmrReceberDados", tmrReceberDados_Tick, TaxaAmostragem);
tmrReceberDados.Start(); tmrReceberDados.Start();
} }

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, frmInstancial.frmPrincipal); tmrLimpeza = new AsyncTaskTimerModel("tmrLimpeza", tmrLimpeza_Tick, 1000, frmInstancial.frmPrincipal);
Button btnConfig = new Button() Button btnConfig = new Button()
{ {

View File

@ -28,7 +28,7 @@ namespace AgroBase.Services
public static void Inicializar() public static void Inicializar()
{ {
MensagensFila = new List<MensagemFilaModel>(); MensagensFila = new List<MensagemFilaModel>();
tmrFila = new AsyncTaskTimerModel(tmrFila_Tick, 10); tmrFila = new AsyncTaskTimerModel("tmrFila", tmrFila_Tick, 10);
tmrFila.Start(); tmrFila.Start();
} }

View File

@ -72,7 +72,7 @@ namespace AgroBase.Services
public static void InicializarRotinas() public static void InicializarRotinas()
{ {
tmrLeitura = new AsyncTaskTimerModel(tmrLeitura_Tick, 200); tmrLeitura = new AsyncTaskTimerModel("tmrLeitura", tmrLeitura_Tick, 200);
tmrLeitura.Start(); tmrLeitura.Start();
} }

View File

@ -202,13 +202,15 @@ namespace AgroBase.Services
if (!RotinaEnvioIniciada) if (!RotinaEnvioIniciada)
{ {
RotinaEnvioIniciada = true; RotinaEnvioIniciada = true;
tmrEnvio = new AsyncTaskTimerModel(tmrEnvio_Tick, 500); tmrEnvio?.Dispose();
tmrEnvio = new AsyncTaskTimerModel("tmrEnvio", tmrEnvio_Tick, 500);
tmrEnvio.Start(); tmrEnvio.Start();
} }
if (!RotinaPingsIniciada && !Variaveis.IsAgroMonitor) if (!RotinaPingsIniciada && !Variaveis.IsAgroMonitor)
{ {
RotinaPingsIniciada = true; RotinaPingsIniciada = true;
tmrPing = new AsyncTaskTimerModel(tmrPing_Tick, VariaveisEquipamento.TempoEntrePingsConexao); tmrPing?.Dispose();
tmrPing = new AsyncTaskTimerModel("tmrPing", tmrPing_Tick, VariaveisEquipamento.TempoEntrePingsConexao);
tmrEnvio.Start(); tmrEnvio.Start();
} }
} }

View File

@ -42,8 +42,10 @@ namespace AgroBase.Services
public static void IniciarRotinas() public static void IniciarRotinas()
{ {
tmrLoopComandos = new AsyncTaskTimerModel(tmrLoopComandos_Tick, 100); tmrLoopComandos = new AsyncTaskTimerModel("tmrLoopComandos", tmrLoopComandos_Tick, 100);
tmrReceberDados = new AsyncTaskTimerModel(tmrReceberDados_Tick, TaxaAmostragem); tmrLoopComandos.Start();
tmrReceberDados = new AsyncTaskTimerModel("tmrReceberDados", tmrReceberDados_Tick, TaxaAmostragem);
tmrReceberDados.Start();
} }
// Inicializa o serviço Ethernet com IP e porta específicos // Inicializa o serviço Ethernet com IP e porta específicos

View File

@ -49,9 +49,9 @@ namespace AgroBase.Services
public static void IniciarRotinas() public static void IniciarRotinas()
{ {
tmrLoopComandos = new AsyncTaskTimerModel(tmrLoopComandos_Tick, 100); tmrLoopComandos = new AsyncTaskTimerModel("tmrLoopComandos", tmrLoopComandos_Tick, 100);
tmrLoopComandos.Start(); tmrLoopComandos.Start();
tmrReceberDados = new AsyncTaskTimerModel(tmrReceberDados_Tick, TaxaAmostragem); tmrReceberDados = new AsyncTaskTimerModel("tmrReceberDados", tmrReceberDados_Tick, TaxaAmostragem);
tmrReceberDados.Start(); tmrReceberDados.Start();
} }

View File

@ -112,7 +112,7 @@ public class MqttService
} }
}); });
tmrCheck = new AsyncTaskTimerModel(tmrCheck_Tick, 1000); tmrCheck = new AsyncTaskTimerModel("tmrCheck", tmrCheck_Tick, 1000);
tmrCheck.Start(); tmrCheck.Start();
} }

View File

@ -92180,3 +92180,141 @@ Parameter name: values
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: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: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 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
25/11/2024 16:13:21:153 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 16:13:21:358 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 16:13:21:562 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 16:13:21:767 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 16:13:21:972 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 16:13:22:175 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 16:13:22:393 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 16:13:22:599 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 16:13:22:804 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 16:13:23:007 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 16:13:23:211 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 16:13:23:416 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 16:13:23:639 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 16:13:23:842 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 16:13:24:049 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 16:13:24:251 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 16:13:24:454 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 16:13:24:657 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 16:13:24:859 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 16:13:25:065 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 16:13:25:581 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 16:13:26:083 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 16:13:26:284 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 16:13:26:490 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 16:13:26:691 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 16:13:26:897 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 16:13:27:102 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 16:13:27:305 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 16:13:27:508 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 16:13:27:709 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 16:13:27:913 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 16:13:28:131 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 16:13:28:334 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 16:13:28:540 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 16:13:28:757 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 16:13:28:961 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 16:13:29:176 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 16:13:29:378 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 16:13:29:594 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 16:13:29:797 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 16:13:30:000 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 16:13:30:204 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 16:13:30:716 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 16:13:31:230 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 16:13:31:433 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 16:13:31:639 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 16:13:31:842 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 16:13:32:045 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 16:13:32:247 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 16:13:32:451 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 16:13:32:657 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 16:13:32:859 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 16:13:33:065 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 16:13:33:269 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 16:13:33:473 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 16:13:33:695 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 16:13:33:899 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 16:13:34:104 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 16:13:34:307 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 16:13:34:510 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 16:13:34:716 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 16:13:34:920 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 16:13:35:125 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 16:13:35:329 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 16:13:35:834 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 16:13:36:352 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 16:13:36:556 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 16:13:36:761 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 16:13:36:964 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 16:13:37:166 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 16:13:37:371 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 16:13:37:576 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 16:13:37:781 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 16:13:37:987 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 16:13:38:191 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 16:13:38:406 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 16:13:38:610 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 16:13:38:814 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 16:13:39:020 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 16:13:39:225 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 16:13:39:430 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 16:13:39:636 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 16:13:39:839 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 16:13:40:042 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 16:13:40:244 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 16:13:40:450 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 16:13:40:951 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 16:13:41:466 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 16:13:41:683 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 16:13:41:886 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 16:13:42:090 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 16:13:42:294 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 16:13:42:498 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 16:13:42:703 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 16:13:42:906 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 16:13:43:109 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 16:13:43:313 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 16:13:43:520 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 16:13:43:724 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 16:13:43:929 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 16:13:44:133 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 16:13:44:338 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 16:13:44:540 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 16:13:44:743 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 16:13:44:946 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 16:13:45:151 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 16:13:45:354 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 16:13:45:557 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 16:13:46:061 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 16:13:46:564 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 16:13:46:769 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 16:13:46:974 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 16:13:47:179 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 16:13:47:382 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 16:13:47:600 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 16:13:47:804 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 16:13:48:020 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 16:13:48:225 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 16:13:48:430 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 16:13:48:633 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 16:13:48:837 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 16:13:49:040 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 16:13:49:242 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 16:13:49:444 - Endereço 2 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 16:13:49:649 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 16:13:49:866 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 16:13:50:068 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10
25/11/2024 16:13:50:270 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=RPM_Max, Valor=500
25/11/2024 16:13:50:477 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 16:13:50:679 - Endereço 4 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 16:13:51:191 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 16:13:51:695 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Direction, Valor=1
25/11/2024 16:13:51:899 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Rampa, Valor=0
25/11/2024 16:13:52:103 - Endereço 1 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=Enabled, Valor=0
25/11/2024 16:13:52:306 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=ControleRS485, Valor=1
25/11/2024 16:13:52:509 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=AlarmeCode, Valor=0
25/11/2024 16:13:52:537 - Endereço 3 (192.168.105.10): Resposta inválida. C6
25/11/2024 16:13:52:537 - Endereço 3 (192.168.105.10): Timeout ou erro ao receber resposta. GET=False, Parametro=NumPolos, Valor=10

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_c0646fcc30e5ebc340aad57d9997eeaa { #map_de44fd37fbf21ae6dc8f3a06c1c22698 {
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_c0646fcc30e5ebc340aad57d9997eeaa" ></div> <div class="folium-map" id="map_de44fd37fbf21ae6dc8f3a06c1c22698" ></div>
</body> </body>
<script> <script>
var map_c0646fcc30e5ebc340aad57d9997eeaa = L.map( var map_de44fd37fbf21ae6dc8f3a06c1c22698 = L.map(
"map_c0646fcc30e5ebc340aad57d9997eeaa", "map_de44fd37fbf21ae6dc8f3a06c1c22698",
{ {
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_a54cbd724f392a4729cd1021017950dd = L.tileLayer( var tile_layer_128bbe7678c39ac9692430482343ca46 = 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_a54cbd724f392a4729cd1021017950dd.addTo(map_c0646fcc30e5ebc340aad57d9997eeaa); tile_layer_128bbe7678c39ac9692430482343ca46.addTo(map_de44fd37fbf21ae6dc8f3a06c1c22698);
</script> </script>
@ -87,7 +87,7 @@
} }
trajeto_json_add({"features": []}); trajeto_json_add({"features": []});
trajeto_json.addTo(map_c0646fcc30e5ebc340aad57d9997eeaa); trajeto_json.addTo(map_de44fd37fbf21ae6dc8f3a06c1c22698);
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_c0646fcc30e5ebc340aad57d9997eeaa); }).addTo(map_de44fd37fbf21ae6dc8f3a06c1c22698);
// 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_c0646fcc30e5ebc340aad57d9997eeaa.setView(novaPosicao, map_c0646fcc30e5ebc340aad57d9997eeaa.getZoom()); map_de44fd37fbf21ae6dc8f3a06c1c22698.setView(novaPosicao, map_de44fd37fbf21ae6dc8f3a06c1c22698.getZoom());
}); });
function calcularOrientacao(P1latitude, P1longitude, P2latitude, P2longitude) { function calcularOrientacao(P1latitude, P1longitude, P2latitude, P2longitude) {

View File

@ -35,10 +35,7 @@ namespace AgroMonitor.Forms
private void frmAjustesOperacao_FormClosing(object sender, FormClosingEventArgs e) private void frmAjustesOperacao_FormClosing(object sender, FormClosingEventArgs e)
{ {
if (tmrDadosMapa != null) tmrDadosMapa?.Dispose();
{
tmrDadosMapa.Stop();
}
} }
@ -103,7 +100,7 @@ namespace AgroMonitor.Forms
if (tmrDadosMapa != null && !tmrDadosMapa.IsRunning) if (tmrDadosMapa != null && !tmrDadosMapa.IsRunning)
{ {
tmrDadosMapa = new AsyncTaskTimerModel(tmrDadosMapa_Tick, 500, this); tmrDadosMapa = new AsyncTaskTimerModel("tmrDadosMapa", tmrDadosMapa_Tick, 500, this);
tmrDadosMapa.Start(); tmrDadosMapa.Start();
} }
} }
@ -167,7 +164,7 @@ namespace AgroMonitor.Forms
MessageBox.Show("Operação carregada com sucesso!", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Information); MessageBox.Show("Operação carregada com sucesso!", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Information);
tmrDadosMapa = new AsyncTaskTimerModel(tmrDadosMapa_Tick, 500, this); tmrDadosMapa = new AsyncTaskTimerModel("tmrDadosMapa", tmrDadosMapa_Tick, 500, this);
tmrDadosMapa.Start(); tmrDadosMapa.Start();
await Task.Delay(1000); await Task.Delay(1000);

View File

@ -47,7 +47,7 @@ namespace AgroMonitor
private void frmInicial_Load(object sender, EventArgs e) private void frmInicial_Load(object sender, EventArgs e)
{ {
tmrDispositivos = new AsyncTaskTimerModel(tmrDispositivos_Tick, 1000, this); tmrDispositivos = new AsyncTaskTimerModel("tmrDispositivos", tmrDispositivos_Tick, 1000, this);
} }
private void IniciarDependencias() private void IniciarDependencias()

View File

@ -26,7 +26,7 @@ namespace AgroMonitor.Forms
private void frmMonitoramento_Load(object sender, EventArgs e) private void frmMonitoramento_Load(object sender, EventArgs e)
{ {
tmrLeituras = new AsyncTaskTimerModel(tmrLeituras_Tick, 1000, this); tmrLeituras = new AsyncTaskTimerModel("tmrLeituras", tmrLeituras_Tick, 1000, this);
tmrLeituras.Start(); tmrLeituras.Start();
cmbTipoMovimento.Items.Clear(); cmbTipoMovimento.Items.Clear();