iniciado implantacao das cameras

This commit is contained in:
Diego Freitas 2025-02-20 17:01:28 -03:00
parent e7926a19fd
commit 0317926990
60 changed files with 1975 additions and 779 deletions

Binary file not shown.

View File

@ -457,6 +457,7 @@
<Compile Include="Models\MotorComum.cs" />
<Compile Include="Models\MPCController.cs" />
<Compile Include="Models\MPCControllerSimple.cs" />
<Compile Include="Models\OAKCameraModel.cs" />
<Compile Include="Models\OIDModel.cs" />
<Compile Include="Models\Operacoes\OperacaoManualModel.cs" />
<Compile Include="Models\Operacoes\OperacaoMapaGPSModel.cs" />
@ -500,6 +501,7 @@
<Compile Include="Services\MKS057DService.cs" />
<Compile Include="Services\ModbusService.cs" />
<Compile Include="Services\MqttService.cs" />
<Compile Include="Services\OAKCameraService.cs" />
<Compile Include="Services\OIDService.cs" />
<Compile Include="Services\PythonService.cs" />
<Compile Include="Services\PZEMService.cs" />

View File

@ -31,7 +31,7 @@ namespace AgroBase.Forms
ArquivoLeitura = "ervas_T.json",
browser = null,
camera = new CameraService(),
CameraSelecionada = "",
DeviceID = "",
combo = cmbCameras,
MaxLeituras = 10,
VideoPorta = (VariaveisPortas.CameraSolo + Variaveis.OperacaoEmAndamento.CamerasSolo.Count()).ToString(),
@ -76,7 +76,7 @@ namespace AgroBase.Forms
else
{
btnSalvar.Text = "Editar";
cameraSolo.camera.selectedCamera = cmbCameras.SelectedIndex;
cameraSolo.camera.cameraIndex = cmbCameras.SelectedIndex;
}
btnIniciar.Enabled = btnSalvar.Text == "Editar" && cmbCameras.SelectedIndex > 0;
cmbCameras.Enabled = btnSalvar.Text == "Salvar";
@ -95,7 +95,7 @@ namespace AgroBase.Forms
ArquivoLeitura = "ervas_" + CamNome + ".json",
browser = null,
camera = new CameraService(),
CameraSelecionada = "123",
DeviceID = "123",
combo = new ComboBox(),
MaxLeituras = 1,
VideoPorta = (VariaveisPortas.CameraSolo + 0).ToString(),
@ -103,7 +103,7 @@ namespace AgroBase.Forms
MqttTopico = "green_objects_" + CamNome,
};
CameraSolo.panel = pnlCamera;
CameraSolo.camera.selectedCamera = 1;
CameraSolo.camera.cameraIndex = 1;
IniciarCameraSolo(CameraSolo);
tmrLeitura = new AsyncTaskTimerModel("tmrLeitura", tmrLeitura_Tick, 200);
@ -114,7 +114,7 @@ namespace AgroBase.Forms
{
CameraSolo.DesligarCamera();
if (CameraSolo.camera.selectedCamera > 0)
if (CameraSolo.camera.cameraIndex > 0)
{
VersaoArquivoModel ArquivoVersao = VersionamentoService.ArquivoModeloWeedDetector;
@ -166,14 +166,14 @@ namespace AgroBase.Forms
private void AtualizaListaCameras()
{
cameraSolo.camera.selectedCamera = cmbCameras.SelectedIndex > 0 ? cmbCameras.SelectedIndex : 0;
cameraSolo.camera.cameraIndex = cmbCameras.SelectedIndex > 0 ? cmbCameras.SelectedIndex : 0;
cmbCameras.Items.Clear();
cmbCameras.Items.AddRange(CameraService.ObterListaCameras().Keys.ToArray());
if (cmbCameras.Items.Count == 1)
{
cameraSolo.camera.selectedCamera = 0;
cameraSolo.camera.cameraIndex = 0;
}
cmbCameras.SelectedIndex = cameraSolo.camera.selectedCamera;
cmbCameras.SelectedIndex = cameraSolo.camera.cameraIndex;
}
private void ListarObjetosDetectados()

View File

@ -29,17 +29,8 @@
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmAjustes));
this.pnlEsquerda = new System.Windows.Forms.Panel();
this.picEsquerda = new System.Windows.Forms.PictureBox();
this.lblEsquerda = new System.Windows.Forms.Label();
this.lblDireita = new System.Windows.Forms.Label();
this.pnlDireita = new System.Windows.Forms.Panel();
this.picDireita = new System.Windows.Forms.PictureBox();
this.pnlCentro = new System.Windows.Forms.Panel();
this.picCentro = new System.Windows.Forms.PictureBox();
this.cmbS0 = new System.Windows.Forms.ComboBox();
this.pnlCaminho = new System.Windows.Forms.Panel();
this.cmbC = new System.Windows.Forms.ComboBox();
this.cmbS1 = new System.Windows.Forms.ComboBox();
this.lblComunicacao = new System.Windows.Forms.Label();
this.picVoltar = new System.Windows.Forms.PictureBox();
this.picSalvar = new System.Windows.Forms.PictureBox();
@ -63,131 +54,36 @@
this.picGravar = new System.Windows.Forms.PictureBox();
this.picAtualizar = new System.Windows.Forms.PictureBox();
this.cmbComunicacao = new System.Windows.Forms.ComboBox();
this.btnCalibrarKinect = new System.Windows.Forms.Button();
this.chbKinect = new System.Windows.Forms.CheckBox();
this.trkKinect = new System.Windows.Forms.TrackBar();
this.btnCalibrarSonar = new System.Windows.Forms.Button();
this.chbSonarAtivado = new System.Windows.Forms.CheckBox();
this.gpbComunicacao = new System.Windows.Forms.GroupBox();
this.gpbCameras = new System.Windows.Forms.GroupBox();
this.pnlEsquerda.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.picEsquerda)).BeginInit();
this.pnlDireita.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.picDireita)).BeginInit();
this.pnlCentro.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.picCentro)).BeginInit();
this.flwCamerasSolo = new System.Windows.Forms.FlowLayoutPanel();
((System.ComponentModel.ISupportInitialize)(this.picVoltar)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.picSalvar)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.picLer)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.picGravar)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.picAtualizar)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.trkKinect)).BeginInit();
this.gpbComunicacao.SuspendLayout();
this.gpbCameras.SuspendLayout();
this.SuspendLayout();
//
// pnlEsquerda
// pnlCaminho
//
this.pnlEsquerda.Controls.Add(this.picEsquerda);
this.pnlEsquerda.Location = new System.Drawing.Point(94, 53);
this.pnlEsquerda.Name = "pnlEsquerda";
this.pnlEsquerda.Size = new System.Drawing.Size(270, 200);
this.pnlEsquerda.TabIndex = 0;
//
// picEsquerda
//
this.picEsquerda.BackColor = System.Drawing.Color.Black;
this.picEsquerda.Dock = System.Windows.Forms.DockStyle.Fill;
this.picEsquerda.Location = new System.Drawing.Point(0, 0);
this.picEsquerda.Name = "picEsquerda";
this.picEsquerda.Size = new System.Drawing.Size(270, 200);
this.picEsquerda.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.picEsquerda.TabIndex = 0;
this.picEsquerda.TabStop = false;
//
// lblEsquerda
//
this.lblEsquerda.AutoSize = true;
this.lblEsquerda.Font = new System.Drawing.Font("Microsoft Sans Serif", 12.25F);
this.lblEsquerda.Location = new System.Drawing.Point(105, 24);
this.lblEsquerda.Name = "lblEsquerda";
this.lblEsquerda.Size = new System.Drawing.Size(248, 20);
this.lblEsquerda.TabIndex = 3;
this.lblEsquerda.Text = "PULVERIZADOR - ESQUERDA";
//
// lblDireita
//
this.lblDireita.AutoSize = true;
this.lblDireita.Font = new System.Drawing.Font("Microsoft Sans Serif", 12.25F);
this.lblDireita.Location = new System.Drawing.Point(734, 24);
this.lblDireita.Name = "lblDireita";
this.lblDireita.Size = new System.Drawing.Size(219, 20);
this.lblDireita.TabIndex = 5;
this.lblDireita.Text = "PULVERIZADOR - DIREITA";
//
// pnlDireita
//
this.pnlDireita.Controls.Add(this.picDireita);
this.pnlDireita.Location = new System.Drawing.Point(716, 53);
this.pnlDireita.Name = "pnlDireita";
this.pnlDireita.Size = new System.Drawing.Size(270, 200);
this.pnlDireita.TabIndex = 4;
//
// picDireita
//
this.picDireita.BackColor = System.Drawing.Color.Black;
this.picDireita.Dock = System.Windows.Forms.DockStyle.Fill;
this.picDireita.Location = new System.Drawing.Point(0, 0);
this.picDireita.Name = "picDireita";
this.picDireita.Size = new System.Drawing.Size(270, 200);
this.picDireita.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.picDireita.TabIndex = 1;
this.picDireita.TabStop = false;
//
// pnlCentro
//
this.pnlCentro.Controls.Add(this.picCentro);
this.pnlCentro.Location = new System.Drawing.Point(378, 53);
this.pnlCentro.Name = "pnlCentro";
this.pnlCentro.Size = new System.Drawing.Size(270, 200);
this.pnlCentro.TabIndex = 1;
//
// picCentro
//
this.picCentro.BackColor = System.Drawing.Color.Black;
this.picCentro.Dock = System.Windows.Forms.DockStyle.Fill;
this.picCentro.Location = new System.Drawing.Point(0, 0);
this.picCentro.Name = "picCentro";
this.picCentro.Size = new System.Drawing.Size(270, 200);
this.picCentro.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.picCentro.TabIndex = 1;
this.picCentro.TabStop = false;
//
// cmbS0
//
this.cmbS0.Font = new System.Drawing.Font("Microsoft Sans Serif", 20.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cmbS0.FormattingEnabled = true;
this.cmbS0.Location = new System.Drawing.Point(94, 267);
this.cmbS0.Name = "cmbS0";
this.cmbS0.Size = new System.Drawing.Size(270, 39);
this.cmbS0.TabIndex = 7;
this.pnlCaminho.Location = new System.Drawing.Point(137, 53);
this.pnlCaminho.Name = "pnlCaminho";
this.pnlCaminho.Size = new System.Drawing.Size(320, 200);
this.pnlCaminho.TabIndex = 1;
//
// cmbC
//
this.cmbC.Enabled = false;
this.cmbC.Font = new System.Drawing.Font("Microsoft Sans Serif", 20.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cmbC.FormattingEnabled = true;
this.cmbC.Location = new System.Drawing.Point(378, 267);
this.cmbC.Location = new System.Drawing.Point(137, 259);
this.cmbC.Name = "cmbC";
this.cmbC.Size = new System.Drawing.Size(181, 39);
this.cmbC.TabIndex = 8;
//
// cmbS1
//
this.cmbS1.Font = new System.Drawing.Font("Microsoft Sans Serif", 20.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cmbS1.FormattingEnabled = true;
this.cmbS1.Location = new System.Drawing.Point(716, 267);
this.cmbS1.Name = "cmbS1";
this.cmbS1.Size = new System.Drawing.Size(270, 39);
this.cmbS1.TabIndex = 9;
this.cmbC.SelectedIndexChanged += new System.EventHandler(this.cmbCameraCaminho_SelectedIndexChanged);
//
// lblComunicacao
//
@ -433,38 +329,31 @@
this.cmbComunicacao.TabIndex = 36;
this.cmbComunicacao.SelectedIndexChanged += new System.EventHandler(this.cmbComunicacao_SelectedIndexChanged);
//
// btnCalibrarKinect
// btnCalibrarSonar
//
this.btnCalibrarKinect.Enabled = false;
this.btnCalibrarKinect.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F);
this.btnCalibrarKinect.Location = new System.Drawing.Point(566, 267);
this.btnCalibrarKinect.Name = "btnCalibrarKinect";
this.btnCalibrarKinect.Size = new System.Drawing.Size(133, 39);
this.btnCalibrarKinect.TabIndex = 37;
this.btnCalibrarKinect.Text = "CALIBRAR";
this.btnCalibrarKinect.UseVisualStyleBackColor = true;
this.btnCalibrarKinect.Click += new System.EventHandler(this.btnCalibrarKinect_Click);
this.btnCalibrarSonar.Enabled = false;
this.btnCalibrarSonar.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F);
this.btnCalibrarSonar.Location = new System.Drawing.Point(324, 259);
this.btnCalibrarSonar.Name = "btnCalibrarSonar";
this.btnCalibrarSonar.Size = new System.Drawing.Size(133, 39);
this.btnCalibrarSonar.TabIndex = 37;
this.btnCalibrarSonar.Text = "CALIBRAR";
this.btnCalibrarSonar.UseVisualStyleBackColor = true;
this.btnCalibrarSonar.Click += new System.EventHandler(this.btnCalibrarSonar_Click);
//
// chbKinect
// chbSonarAtivado
//
this.chbKinect.AutoSize = true;
this.chbKinect.Font = new System.Drawing.Font("Microsoft Sans Serif", 12.25F);
this.chbKinect.Location = new System.Drawing.Point(451, 23);
this.chbKinect.Name = "chbKinect";
this.chbKinect.Size = new System.Drawing.Size(165, 24);
this.chbKinect.TabIndex = 38;
this.chbKinect.Text = "SONAR ATIVADO";
this.chbKinect.UseVisualStyleBackColor = true;
this.chbKinect.CheckedChanged += new System.EventHandler(this.chbKinect_CheckedChanged);
//
// trkKinect
//
this.trkKinect.Location = new System.Drawing.Point(654, 53);
this.trkKinect.Name = "trkKinect";
this.trkKinect.Orientation = System.Windows.Forms.Orientation.Vertical;
this.trkKinect.Size = new System.Drawing.Size(45, 200);
this.trkKinect.TabIndex = 39;
this.trkKinect.TickFrequency = 4;
this.chbSonarAtivado.AutoSize = true;
this.chbSonarAtivado.Checked = true;
this.chbSonarAtivado.CheckState = System.Windows.Forms.CheckState.Checked;
this.chbSonarAtivado.Font = new System.Drawing.Font("Microsoft Sans Serif", 12.25F);
this.chbSonarAtivado.Location = new System.Drawing.Point(210, 23);
this.chbSonarAtivado.Name = "chbSonarAtivado";
this.chbSonarAtivado.Size = new System.Drawing.Size(165, 24);
this.chbSonarAtivado.TabIndex = 38;
this.chbSonarAtivado.Text = "SONAR ATIVADO";
this.chbSonarAtivado.UseVisualStyleBackColor = true;
this.chbSonarAtivado.CheckedChanged += new System.EventHandler(this.chbSonarAtivado_CheckedChanged);
//
// gpbComunicacao
//
@ -497,20 +386,14 @@
//
// gpbCameras
//
this.gpbCameras.Controls.Add(this.pnlEsquerda);
this.gpbCameras.Controls.Add(this.flwCamerasSolo);
this.gpbCameras.Controls.Add(this.picVoltar);
this.gpbCameras.Controls.Add(this.picSalvar);
this.gpbCameras.Controls.Add(this.chbKinect);
this.gpbCameras.Controls.Add(this.chbSonarAtivado);
this.gpbCameras.Controls.Add(this.picAtualizar);
this.gpbCameras.Controls.Add(this.lblEsquerda);
this.gpbCameras.Controls.Add(this.trkKinect);
this.gpbCameras.Controls.Add(this.pnlDireita);
this.gpbCameras.Controls.Add(this.btnCalibrarKinect);
this.gpbCameras.Controls.Add(this.lblDireita);
this.gpbCameras.Controls.Add(this.pnlCentro);
this.gpbCameras.Controls.Add(this.cmbS0);
this.gpbCameras.Controls.Add(this.btnCalibrarSonar);
this.gpbCameras.Controls.Add(this.pnlCaminho);
this.gpbCameras.Controls.Add(this.cmbC);
this.gpbCameras.Controls.Add(this.cmbS1);
this.gpbCameras.Location = new System.Drawing.Point(12, 12);
this.gpbCameras.Name = "gpbCameras";
this.gpbCameras.Size = new System.Drawing.Size(1000, 322);
@ -518,6 +401,13 @@
this.gpbCameras.TabStop = false;
this.gpbCameras.Text = "CÂMERAS";
//
// flwCamerasSolo
//
this.flwCamerasSolo.Location = new System.Drawing.Point(463, 19);
this.flwCamerasSolo.Name = "flwCamerasSolo";
this.flwCamerasSolo.Size = new System.Drawing.Size(531, 297);
this.flwCamerasSolo.TabIndex = 39;
//
// frmAjustes
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@ -534,18 +424,11 @@
this.TopMost = true;
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmAjustes_FormClosing);
this.Load += new System.EventHandler(this.frmAjustes_Load);
this.pnlEsquerda.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.picEsquerda)).EndInit();
this.pnlDireita.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.picDireita)).EndInit();
this.pnlCentro.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.picCentro)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.picVoltar)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.picSalvar)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.picLer)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.picGravar)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.picAtualizar)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.trkKinect)).EndInit();
this.gpbComunicacao.ResumeLayout(false);
this.gpbComunicacao.PerformLayout();
this.gpbCameras.ResumeLayout(false);
@ -555,15 +438,8 @@
}
#endregion
private System.Windows.Forms.Panel pnlEsquerda;
private System.Windows.Forms.Label lblEsquerda;
private System.Windows.Forms.Label lblDireita;
private System.Windows.Forms.Panel pnlDireita;
private System.Windows.Forms.Panel pnlCentro;
private System.Windows.Forms.ComboBox cmbS0;
private System.Windows.Forms.Panel pnlCaminho;
private System.Windows.Forms.ComboBox cmbC;
private System.Windows.Forms.ComboBox cmbS1;
private System.Windows.Forms.Label lblComunicacao;
private System.Windows.Forms.PictureBox picVoltar;
private System.Windows.Forms.PictureBox picSalvar;
@ -586,14 +462,11 @@
private System.Windows.Forms.PictureBox picLer;
private System.Windows.Forms.PictureBox picGravar;
private System.Windows.Forms.PictureBox picAtualizar;
private System.Windows.Forms.PictureBox picEsquerda;
private System.Windows.Forms.PictureBox picDireita;
private System.Windows.Forms.PictureBox picCentro;
private System.Windows.Forms.ComboBox cmbComunicacao;
private System.Windows.Forms.Button btnCalibrarKinect;
private System.Windows.Forms.CheckBox chbKinect;
private System.Windows.Forms.TrackBar trkKinect;
private System.Windows.Forms.Button btnCalibrarSonar;
private System.Windows.Forms.CheckBox chbSonarAtivado;
private System.Windows.Forms.GroupBox gpbComunicacao;
private System.Windows.Forms.GroupBox gpbCameras;
private System.Windows.Forms.FlowLayoutPanel flwCamerasSolo;
}
}

View File

@ -16,7 +16,7 @@ namespace AgroBase.Forms.IHM
{
//LoRaParametrosModel loraParametrosBase;
Dictionary<string, string> Cameras = new Dictionary<string, string>();
List<OAKCameraModel> Cameras = new List<OAKCameraModel>();
public frmAjustes()
{
@ -36,12 +36,17 @@ namespace AgroBase.Forms.IHM
FuncoesGlobais.DefinirEventosPicBtn(picSalvar, "Erro ao salvar parâmetros!", async () =>
{
Variaveis.OperacaoEmAndamento.DispSen.Dados.CameraID_Caminho = cmbC.Text;
List<ComboBox> cmbs = new List<ComboBox>();
foreach (Panel pnlCam in flwCamerasSolo.Controls)
{
cmbs.Add(pnlCam.Controls.OfType<ComboBox>().FirstOrDefault());
}
Variaveis.OperacaoEmAndamento.DispSen.Dados.CameraID_Solo.Clear();
Variaveis.OperacaoEmAndamento.DispSen.Dados.CameraID_Solo.AddRange(new string[] { cmbS0.Text, cmbS1.Text });
Variaveis.OperacaoEmAndamento.DispSen.Dados.CameraID_Solo.AddRange(cmbs.Select(x => x.Text).ToArray());
if (KinectService.Iniciado)
{
Variaveis.OperacaoEmAndamento.Controle.SonarAtivado = chbKinect.Checked;
KinectService.Parametros.Angulo = trkKinect.Value;
Variaveis.OperacaoEmAndamento.Controle.SonarAtivado = chbSonarAtivado.Checked;
KinectService.SalvarParametros();
}
@ -93,18 +98,16 @@ namespace AgroBase.Forms.IHM
await AtualizarParametros();
}
chbKinect.Enabled = KinectService.Iniciado;
trkKinect.Enabled = KinectService.Iniciado;
chbSonarAtivado.Enabled = KinectService.Iniciado;
if (KinectService.Iniciado)
{
chbKinect.Checked = Variaveis.OperacaoEmAndamento.Controle.SonarAtivado;
KinectService.AtualizarTrackBar(trkKinect);
chbSonarAtivado.Checked = Variaveis.OperacaoEmAndamento.Controle.SonarAtivado;
}
}
private void frmAjustes_FormClosing(object sender, FormClosingEventArgs e)
{
tmrKinect?.Dispose();
Variaveis.OperacaoEmAndamento.AtualizaListaCameras(pnlCaminho, Variaveis.OperacaoEmAndamento.CamerasSolo.Select(x => x.panel).ToList(), false);
}
#region COMUNICACAO
@ -191,162 +194,139 @@ namespace AgroBase.Forms.IHM
#region CAMERAS
private FilterInfoCollection videoDevices;
private VideoCaptureDevice videoSourceEsquerda;
private VideoCaptureDevice videoSourceDireita;
private AsyncTaskTimerModel tmrKinect;
private void AtualizarCameras()
{
Variaveis.OperacaoEmAndamento.CamerasSolo[0].combo = cmbS0;
Variaveis.OperacaoEmAndamento.CamerasSolo[1].combo = cmbS1;
cmbC.SelectedIndexChanged -= cmbCentro_SelectedIndexChanged;
cmbC.SelectedIndexChanged += cmbCentro_SelectedIndexChanged;
cmbS0.SelectedIndexChanged -= cmbCameraSolo_SelectedIndexChanged;
cmbS0.SelectedIndexChanged += cmbCameraSolo_SelectedIndexChanged;
cmbS1.SelectedIndexChanged -= cmbCameraSolo_SelectedIndexChanged;
cmbS1.SelectedIndexChanged += cmbCameraSolo_SelectedIndexChanged;
Cameras = CameraService.ObterListaCameras();
flwCamerasSolo.Controls.Clear();
Cameras = OAKCameraService.GetConnectedCameras();
for (int i = 0; i < Variaveis.OperacaoEmAndamento.QuantidadeCamerasSolo; i++)
{
GerarCameraSolo(i);
}
cmbC.Items.Clear();
if (KinectService.Iniciado)
cmbC.Items.AddRange(Cameras.Select(x => x.Id).ToArray());
var cameraSelecionada = Cameras.FirstOrDefault(x => x.Id == Variaveis.OperacaoEmAndamento.DispSen.Dados.CameraID_Caminho);
if (cameraSelecionada != null)
{
cmbC.Items.Add("Sonar Frontal");
cmbC.SelectedIndex = 0;
cmbC.SelectedIndex = Cameras.IndexOf(cameraSelecionada);
}
var CamerasSolo = Variaveis.OperacaoEmAndamento.DispSen.Dados.CameraID_Solo;
cmbS0.Items.Clear();
cmbS0.Items.AddRange(Cameras.Values.ToArray());
string IDsoloE = CamerasSolo.Count() > 0 ? CamerasSolo[0] : "";
if (Cameras.Any(x => x.Value == IDsoloE))
{
cmbS0.SelectedIndex = cmbS0.Items.IndexOf(IDsoloE);
}
else
{
cmbS0.Text = IDsoloE;
}
cmbS1.Items.Clear();
cmbS1.Items.AddRange(Cameras.Values.ToArray());
string IDsoloD = CamerasSolo.Count() > 1 ? CamerasSolo[1] : "";
if (Cameras.Any(x => x.Value == IDsoloD))
{
cmbS1.SelectedIndex = cmbS1.Items.IndexOf(IDsoloD);
}
else
{
cmbS1.Text = IDsoloD;
}
IniciarCameras();
}
private void IniciarCameras()
{
Bitmap blackBitmap = new Bitmap(picCentro.Width, picCentro.Height);
using (Graphics g = Graphics.FromImage(blackBitmap))
{
g.Clear(Color.Black);
}
if (videoSourceEsquerda != null)
{
videoSourceEsquerda.Stop();
videoSourceEsquerda = null;
picEsquerda.Image = blackBitmap;
}
if (videoSourceDireita != null)
{
videoSourceDireita.Stop();
videoSourceDireita = null;
picDireita.Image = blackBitmap;
}
videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
List<string> CamerasIDs = new List<string>();
foreach (FilterInfo info in videoDevices)
{
CamerasIDs.Add(info.MonikerString.ToLower());
}
string IDcamSoloE = cmbS0.Text; //.ToLower().Replace("\\", "#");
if (!string.IsNullOrEmpty(IDcamSoloE) && CamerasIDs.Any(x => x.Contains(IDcamSoloE)))
{
videoSourceEsquerda = new VideoCaptureDevice(CamerasIDs.First(x => x.Contains(IDcamSoloE)));
videoSourceEsquerda.NewFrame += new NewFrameEventHandler(videoSourceEsquerda_NewFrame);
videoSourceEsquerda.Start();
}
string IDcamSoloD = cmbS1.Text; //.ToLower().Replace("\\", "#");
if (!string.IsNullOrEmpty(IDcamSoloD) && CamerasIDs.Any(x => x.Contains(IDcamSoloD)))
{
videoSourceDireita = new VideoCaptureDevice(CamerasIDs.First(x => x.Contains(IDcamSoloD)));
videoSourceDireita.NewFrame += new NewFrameEventHandler(videoSourceDireita_NewFrame);
videoSourceDireita.Start();
}
}
private async Task tmrKinect_Tick()
{
Bitmap bitmap = (Bitmap)(chbKinect.Checked ? KinectService.bitmapMap : KinectService.bitmapRGB).Clone();
picCentro.Image = bitmap;
}
private void videoSourceCentro_NewFrame(object sender, NewFrameEventArgs eventArgs)
{
Bitmap bitmap = (Bitmap)eventArgs.Frame.Clone();
picCentro.Image = bitmap;
}
private void videoSourceEsquerda_NewFrame(object sender, NewFrameEventArgs eventArgs)
{
Bitmap bitmap = (Bitmap)eventArgs.Frame.Clone();
picEsquerda.Image = bitmap;
}
private void videoSourceDireita_NewFrame(object sender, NewFrameEventArgs eventArgs)
{
Bitmap bitmap = (Bitmap)eventArgs.Frame.Clone();
picDireita.Image = bitmap;
Variaveis.OperacaoEmAndamento.AtualizaListaCameras(pnlCaminho, Variaveis.OperacaoEmAndamento.CamerasSolo.Select(x => x.panel).ToList(), true);
}
private void cmbCentro_SelectedIndexChanged(object sender, EventArgs e)
private void cmbCameraCaminho_SelectedIndexChanged(object sender, EventArgs e)
{
tmrKinect?.Dispose();
tmrKinect = new AsyncTaskTimerModel("tmrKinect", tmrKinect_Tick, 100, this);
tmrKinect.Start();
ComboBox cmb = (ComboBox)sender;
CameraCaminhoModel CameraCaminho = Variaveis.OperacaoEmAndamento.CameraCaminho;
if (CameraCaminho != null)
{
CameraCaminho.combo = cmb;
CameraCaminho.panel = pnlCaminho;
CameraCaminho.panel.Tag = cmb.Text;
}
if (CameraCaminho.combo.SelectedIndex > 0 && (Variaveis.OperacaoEmAndamento.CamerasSolo.Any(x => x.combo.SelectedIndex == CameraCaminho.combo.SelectedIndex)))
{
MessageBox.Show("Essa câmera já está sendo usada por outro processo!", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Warning);
CameraCaminho.combo.SelectedIndex = CameraCaminho.camera.cameraIndex;
return;
}
CameraCaminho.camera.cameraIndex = CameraCaminho.combo.SelectedIndex;
IniciarCameras();
}
private void GerarCameraSolo(int idx)
{
Panel pnlFundo = new Panel()
{
Name = "pnlCamSolo_S" + idx,
Width = 300,
Height = 284
};
Label lblTitulo = new Label()
{
Name = "lblCamSolo_S" + idx,
Text = "PULVERIZADOR - " + (idx + 1).ToString(),
Width = 168,
Height = 20,
Location = new Point(66, 6),
Font = new Font("Microsoft Sans Serif", 12.25f, FontStyle.Regular)
};
Panel pnlCamera = new Panel()
{
Name = "pnlCamSoloFundo_S" + idx,
Width = 286,
Height = 200,
Location = new Point(7, 31),
BackgroundImageLayout = ImageLayout.Stretch,
BackColor = Color.Black,
};
ComboBox cmbCamera = new ComboBox()
{
Name = "cmbCamSolo_S" + idx,
Width = 286,
Height = 39,
Location = new Point(7, 237),
Font = new Font("Microsoft Sans Serif", 20.25f, FontStyle.Regular)
};
cmbCamera.SelectedIndexChanged += cmbCameraSolo_SelectedIndexChanged;
cmbCamera.Items.Clear();
cmbCamera.Items.AddRange(Cameras.Select(x => x.Id).ToArray());
pnlFundo.Controls.Add(lblTitulo);
pnlFundo.Controls.Add(pnlCamera);
pnlFundo.Controls.Add(cmbCamera);
flwCamerasSolo.Controls.Add(pnlFundo);
string cameraSelecionada = Variaveis.OperacaoEmAndamento.DispSen.Dados.CameraID_Solo.Count() > idx ? Variaveis.OperacaoEmAndamento.DispSen.Dados.CameraID_Solo[idx] : "";
if (Cameras.Any(x => x.Id == cameraSelecionada))
{
cmbCamera.SelectedIndex = cmbCamera.Items.IndexOf(cameraSelecionada);
}
else
{
cmbCamera.Text = cameraSelecionada;
}
}
private void cmbCameraSolo_SelectedIndexChanged(object sender, EventArgs e)
{
ComboBox cmb = (ComboBox)sender;
string CamID = cmb.Name.Replace("cmb", "");
string CamID = cmb.Name.Replace("cmbCamSolo_", "");
CameraSoloModel CameraSolo = Variaveis.OperacaoEmAndamento.CamerasSolo.FirstOrDefault(x => x.ID == CamID);
if (CameraSolo != null)
{
CameraSolo.combo = cmb;
CameraSolo.panel = FuncoesGlobais.FindControlRecursive<Panel>(flwCamerasSolo, "pnlCamSoloFundo_" + CamID);
CameraSolo.panel.Tag = cmb.Text;
}
if (CameraSolo.combo.SelectedIndex > 0 && (cmbC.SelectedIndex == CameraSolo.combo.SelectedIndex || Variaveis.OperacaoEmAndamento.CamerasSolo.Any(x => x.Nome != CameraSolo.Nome && x.combo.SelectedIndex == CameraSolo.combo.SelectedIndex)))
{
MessageBox.Show("Essa câmera já está sendo usada por outro processo!", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Warning);
CameraSolo.combo.SelectedIndex = CameraSolo.camera.selectedCamera;
CameraSolo.combo.SelectedIndex = CameraSolo.camera.cameraIndex;
return;
}
CameraSolo.camera.selectedCamera = CameraSolo.combo.SelectedIndex;
CameraSolo.camera.cameraIndex = CameraSolo.combo.SelectedIndex;
IniciarCameras();
}
#endregion
private async void cmbComunicacao_SelectedIndexChanged(object sender, EventArgs e)
@ -357,14 +337,14 @@ namespace AgroBase.Forms.IHM
}
}
private void btnCalibrarKinect_Click(object sender, EventArgs e)
private void btnCalibrarSonar_Click(object sender, EventArgs e)
{
KinectService.RecalibrarSubdivisoes();
//KinectService.RecalibrarSubdivisoes();
}
private void chbKinect_CheckedChanged(object sender, EventArgs e)
private void chbSonarAtivado_CheckedChanged(object sender, EventArgs e)
{
btnCalibrarKinect.Enabled = ((CheckBox)sender).Checked;
btnCalibrarSonar.Enabled = ((CheckBox)sender).Checked;
}

View File

@ -132,9 +132,9 @@ namespace AgroBase.Forms.IHM
{
lblUltimaLeituraSolo.Text = "Última Leitura Solo: " + FuncoesGlobais.TimestampToDate(ultimaLeitura.Leitura.timestamp);
}
if (Variaveis.OperacaoEmAndamento.CameraCaminhoKinect != null)
if (Variaveis.OperacaoEmAndamento.CameraCaminho != null)
{
lblUltimaLeituraCaminho.Text = "Última Leitura Caminho: " + FuncoesGlobais.TimestampToDate(Variaveis.OperacaoEmAndamento.CameraCaminhoKinect.Leitura.timestamp);
lblUltimaLeituraCaminho.Text = "Última Leitura Caminho: " + FuncoesGlobais.TimestampToDate(Variaveis.OperacaoEmAndamento.CameraCaminho.Leitura.timestamp);
}
lblPerformance.Text = _Sensoriamento.DadosPerformance.PerformanceStr;

View File

@ -186,7 +186,7 @@ namespace AgroBase.Forms.IHM
CodFalha = Variaveis.OperacaoEmAndamento.RetornaCodigoFalha();
var Labels = this.Controls.OfType<Label>().Where(y => y.Name.Contains("lblD_")).ToList();
var listaCameras = CameraService.ObterListaCameras();
var listaCameras = OAKCameraService.GetConnectedCameras();
Labels.ForEach(lbl =>
{
T_Code Dispositivo = (T_Code)Enum.Parse(typeof(T_Code), lbl.Name.Split('_')[1]);
@ -194,12 +194,12 @@ namespace AgroBase.Forms.IHM
if (Dispositivo == T_Code.Cam)
{
var CameraCaminho = Variaveis.OperacaoEmAndamento.CameraCaminhoKinect;
var CameraCaminho = Variaveis.OperacaoEmAndamento.CameraCaminho;
if (CameraCaminho != null && Mod_ID == CameraCaminho.ID)
{
lbl.ForeColor = !listaCameras.Any(x => x.Value == CameraCaminho.CameraSelecionada)
lbl.ForeColor = !listaCameras.Any(x => x.Id == CameraCaminho.DeviceID)
? Color.DarkRed
: CameraCaminho.camera.selectedCamera == 0
: CameraCaminho.camera.cameraIndex == 0
? Color.Gold
: Color.DarkGreen;
}
@ -208,9 +208,9 @@ namespace AgroBase.Forms.IHM
var CameraSolo = Variaveis.OperacaoEmAndamento.CamerasSolo.FirstOrDefault(x => x.ID == Mod_ID);
if (CameraSolo != null)
{
lbl.ForeColor = !listaCameras.Any(x => x.Value == CameraSolo.CameraSelecionada) ?
lbl.ForeColor = !listaCameras.Any(x => x.Id == CameraSolo.DeviceID) ?
Color.DarkRed :
CameraSolo.camera.selectedCamera == 0 ?
CameraSolo.camera.cameraIndex == 0 ?
Color.Gold :
Color.DarkGreen;
}

View File

@ -272,7 +272,7 @@ namespace AgroBase.Forms.Movimentacao
else
{
btnSalvar.Text = "Editar";
cameraService.selectedCamera = cmbCameras.SelectedIndex;
cameraService.cameraIndex = cmbCameras.SelectedIndex;
}
btnIniciar.Enabled = btnSalvar.Text == "Editar" && cmbCameras.SelectedIndex > 0;
cmbCameras.Enabled = btnSalvar.Text == "Salvar";
@ -305,14 +305,14 @@ namespace AgroBase.Forms.Movimentacao
private void AtualizaListaCameras()
{
cameraService.selectedCamera = cmbCameras.SelectedIndex > 0 ? cmbCameras.SelectedIndex : 0;
cameraService.cameraIndex = cmbCameras.SelectedIndex > 0 ? cmbCameras.SelectedIndex : 0;
cmbCameras.Items.Clear();
cmbCameras.Items.AddRange(CameraService.ObterListaCameras().Keys.ToArray());
if (cmbCameras.Items.Count == 1)
{
cameraService.selectedCamera = 0;
cameraService.cameraIndex = 0;
}
cmbCameras.SelectedIndex = cameraService.selectedCamera;
cmbCameras.SelectedIndex = cameraService.cameraIndex;
}

View File

@ -32,9 +32,6 @@
System.Windows.Forms.DataVisualization.Charting.Legend legend1 = new System.Windows.Forms.DataVisualization.Charting.Legend();
System.Windows.Forms.DataVisualization.Charting.Series series1 = new System.Windows.Forms.DataVisualization.Charting.Series();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmOperacaoManual));
this.pnlCamerasSolo = new System.Windows.Forms.Panel();
this.pnlCameraSoloE = new System.Windows.Forms.Panel();
this.pnlCameraSoloD = new System.Windows.Forms.Panel();
this.pnlAtuadores = new System.Windows.Forms.Panel();
this.btnIniciarOperacao = new System.Windows.Forms.Button();
this.chartGraficos = new System.Windows.Forms.DataVisualization.Charting.Chart();
@ -85,7 +82,7 @@
this.cmbTipoMovimento = new System.Windows.Forms.ComboBox();
this.lblTipoMovimento = new System.Windows.Forms.Label();
this.chbPulverizador = new System.Windows.Forms.CheckBox();
this.pnlCamerasSolo.SuspendLayout();
this.flwCamerasSolo = new System.Windows.Forms.FlowLayoutPanel();
((System.ComponentModel.ISupportInitialize)(this.chartGraficos)).BeginInit();
this.tabControl1.SuspendLayout();
this.tabMapa.SuspendLayout();
@ -102,33 +99,6 @@
this.pnlDir_DF.SuspendLayout();
this.SuspendLayout();
//
// pnlCamerasSolo
//
this.pnlCamerasSolo.BackColor = System.Drawing.Color.White;
this.pnlCamerasSolo.Controls.Add(this.pnlCameraSoloE);
this.pnlCamerasSolo.Controls.Add(this.pnlCameraSoloD);
this.pnlCamerasSolo.Location = new System.Drawing.Point(23, 328);
this.pnlCamerasSolo.Margin = new System.Windows.Forms.Padding(2);
this.pnlCamerasSolo.Name = "pnlCamerasSolo";
this.pnlCamerasSolo.Size = new System.Drawing.Size(588, 184);
this.pnlCamerasSolo.TabIndex = 0;
//
// pnlCameraSoloE
//
this.pnlCameraSoloE.Location = new System.Drawing.Point(2, 2);
this.pnlCameraSoloE.Margin = new System.Windows.Forms.Padding(2);
this.pnlCameraSoloE.Name = "pnlCameraSoloE";
this.pnlCameraSoloE.Size = new System.Drawing.Size(289, 178);
this.pnlCameraSoloE.TabIndex = 24;
//
// pnlCameraSoloD
//
this.pnlCameraSoloD.Location = new System.Drawing.Point(296, 2);
this.pnlCameraSoloD.Margin = new System.Windows.Forms.Padding(2);
this.pnlCameraSoloD.Name = "pnlCameraSoloD";
this.pnlCameraSoloD.Size = new System.Drawing.Size(289, 178);
this.pnlCameraSoloD.TabIndex = 23;
//
// pnlAtuadores
//
this.pnlAtuadores.BackColor = System.Drawing.Color.White;
@ -703,12 +673,20 @@
this.chbPulverizador.UseVisualStyleBackColor = true;
this.chbPulverizador.CheckedChanged += new System.EventHandler(this.chbPulverizador_CheckedChanged);
//
// flwCamerasSolo
//
this.flwCamerasSolo.Location = new System.Drawing.Point(22, 341);
this.flwCamerasSolo.Name = "flwCamerasSolo";
this.flwCamerasSolo.Size = new System.Drawing.Size(597, 172);
this.flwCamerasSolo.TabIndex = 36;
//
// frmOperacaoManual
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.White;
this.ClientSize = new System.Drawing.Size(1243, 649);
this.Controls.Add(this.flwCamerasSolo);
this.Controls.Add(this.chbPulverizador);
this.Controls.Add(this.lblTipoMovimento);
this.Controls.Add(this.cmbTipoMovimento);
@ -728,7 +706,6 @@
this.Controls.Add(this.pnlCameraRua);
this.Controls.Add(this.chartGraficos);
this.Controls.Add(this.pnlAtuadores);
this.Controls.Add(this.pnlCamerasSolo);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Margin = new System.Windows.Forms.Padding(2);
this.Name = "frmOperacaoManual";
@ -736,7 +713,6 @@
this.Text = "Operação Manual";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmOperacaoManual_FormClosing);
this.Load += new System.EventHandler(this.frmOperacaoManual_Load);
this.pnlCamerasSolo.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.chartGraficos)).EndInit();
this.tabControl1.ResumeLayout(false);
this.tabMapa.ResumeLayout(false);
@ -764,8 +740,6 @@
}
#endregion
private System.Windows.Forms.Panel pnlCamerasSolo;
private System.Windows.Forms.Panel pnlAtuadores;
private System.Windows.Forms.DataVisualization.Charting.Chart chartGraficos;
private System.Windows.Forms.Label lblDir_EF;
@ -785,8 +759,6 @@
private System.Windows.Forms.Panel pnlAnguloMagnetometro;
private System.Windows.Forms.Panel pnlCameraRua;
private System.Windows.Forms.Panel pnlDir_EF;
private System.Windows.Forms.Panel pnlCameraSoloE;
private System.Windows.Forms.Panel pnlCameraSoloD;
private System.Windows.Forms.Panel pnlDir_ET;
private System.Windows.Forms.Panel pnlDir_DT;
private System.Windows.Forms.Panel pnlDir_DF;
@ -818,5 +790,6 @@
private System.Windows.Forms.Label lblMov_DF;
private System.Windows.Forms.CheckBox chbSonarAtivado;
private System.Windows.Forms.CheckBox chbMostrarGrade;
private System.Windows.Forms.FlowLayoutPanel flwCamerasSolo;
}
}

View File

@ -40,7 +40,20 @@ namespace AgroBase.Forms.Operacoes
cmbTipoMovimento.Items.AddRange(Enum.GetNames(typeof(TipoMovimentoDirecional)));
cmbTipoMovimento.SelectedIndex = (int)Variaveis.OperacaoEmAndamento.Controle.TipoMovimento;
Variaveis.OperacaoEmAndamento.AtualizaListaCameras(pnlCameraRua, new List<Panel>() { pnlCameraSoloE, pnlCameraSoloD }, true);
flwCamerasSolo.Controls.Clear();
for (int i = 0; i < Variaveis.OperacaoEmAndamento.CamerasSolo.Count(); i++)
{
Panel pnlCam = new Panel()
{
Name = "pnlCamSolo_" + Variaveis.OperacaoEmAndamento.CamerasSolo[i].Nome,
Width = 290,
Height = 166,
BackgroundImageLayout = ImageLayout.Stretch,
};
flwCamerasSolo.Controls.Add(pnlCam);
}
Variaveis.OperacaoEmAndamento.AtualizaListaCameras(pnlCameraRua, flwCamerasSolo.Controls.OfType<Panel>().ToList(), true);
chbPulverizador.Checked = Variaveis.OperacaoEmAndamento.Controle.PulverizadorAutomatico;
chbMostrarGrade.Checked = KinectService.MostrarGrade;

View File

@ -80,7 +80,7 @@ namespace AgroBase.Forms.Operacoes
lblUltimaLeituraSolo.Text = "Ultima Leitura Solo: " + FuncoesGlobais.TimestampToDate(ultimaLeitura.Leitura.timestamp);
}
lblUltimaLeituraRua.Text = "Ultima Leitura Rua: " + FuncoesGlobais.TimestampToDate(Variaveis.OperacaoEmAndamento.CameraCaminhoKinect.Leitura.timestamp);
lblUltimaLeituraRua.Text = "Ultima Leitura Rua: " + FuncoesGlobais.TimestampToDate(Variaveis.OperacaoEmAndamento.CameraCaminho.Leitura.timestamp);
btnCarregarMapa.Enabled = !Variaveis.OperacaoEmAndamento.Iniciado;
@ -189,7 +189,7 @@ namespace AgroBase.Forms.Operacoes
private void pnlCaminho_Paint(object sender, PaintEventArgs e)
{
var cameraCaminho = Variaveis.OperacaoEmAndamento.CameraCaminhoKinect;
var cameraCaminho = Variaveis.OperacaoEmAndamento.CameraCaminho;
Panel pnlContornos = (Panel)sender;
if (cameraCaminho.Leitura == null) return;

View File

@ -98,6 +98,22 @@
this.lblAutomatico = new System.Windows.Forms.Label();
this.pnlAutomatico = new System.Windows.Forms.Panel();
this.tabDirecional = new System.Windows.Forms.TabPage();
this.txtDIR_Status_DT = new System.Windows.Forms.TextBox();
this.label126 = new System.Windows.Forms.Label();
this.txtDIR_AgPot_DT = new System.Windows.Forms.TextBox();
this.lblDIR_AgPot_DT = new System.Windows.Forms.Label();
this.txtDIR_Status_ET = new System.Windows.Forms.TextBox();
this.label124 = new System.Windows.Forms.Label();
this.txtDIR_AgPot_ET = new System.Windows.Forms.TextBox();
this.lblDIR_AgPot_ET = new System.Windows.Forms.Label();
this.txtDIR_Status_DF = new System.Windows.Forms.TextBox();
this.label122 = new System.Windows.Forms.Label();
this.txtDIR_AgPot_DF = new System.Windows.Forms.TextBox();
this.lblDIR_AgPot_DF = new System.Windows.Forms.Label();
this.txtDIR_Status_EF = new System.Windows.Forms.TextBox();
this.label78 = new System.Windows.Forms.Label();
this.txtDIR_AgPot_EF = new System.Windows.Forms.TextBox();
this.lblDIR_AgPot_EF = new System.Windows.Forms.Label();
this.txtDIR_Controlar_ET = new System.Windows.Forms.TextBox();
this.label39 = new System.Windows.Forms.Label();
this.txtDIR_Velocidade_ET = new System.Windows.Forms.TextBox();
@ -290,8 +306,6 @@
this.chbDesenharErvas = new System.Windows.Forms.CheckBox();
this.chartAtuador = new System.Windows.Forms.DataVisualization.Charting.Chart();
this.pnlAtuadores = new System.Windows.Forms.Panel();
this.picCameraSoloD = new System.Windows.Forms.PictureBox();
this.picCameraSoloE = new System.Windows.Forms.PictureBox();
this.tabErvas = new System.Windows.Forms.TabPage();
this.chartErvas = new System.Windows.Forms.DataVisualization.Charting.Chart();
this.tabSensoriamento = new System.Windows.Forms.TabPage();
@ -443,6 +457,7 @@
this.label36 = new System.Windows.Forms.Label();
this.txtMomento = new System.Windows.Forms.TextBox();
this.btnPlay = new System.Windows.Forms.Button();
this.flwCameras = new System.Windows.Forms.FlowLayoutPanel();
((System.ComponentModel.ISupportInitialize)(this.trbMomento)).BeginInit();
this.panel1.SuspendLayout();
this.tabControl4.SuspendLayout();
@ -484,8 +499,6 @@
((System.ComponentModel.ISupportInitialize)(this.chartMovGeral)).BeginInit();
this.tabAtuador.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.chartAtuador)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.picCameraSoloD)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.picCameraSoloE)).BeginInit();
this.tabErvas.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.chartErvas)).BeginInit();
this.tabSensoriamento.SuspendLayout();
@ -998,6 +1011,22 @@
//
// tabDirecional
//
this.tabDirecional.Controls.Add(this.txtDIR_Status_DT);
this.tabDirecional.Controls.Add(this.label126);
this.tabDirecional.Controls.Add(this.txtDIR_AgPot_DT);
this.tabDirecional.Controls.Add(this.lblDIR_AgPot_DT);
this.tabDirecional.Controls.Add(this.txtDIR_Status_ET);
this.tabDirecional.Controls.Add(this.label124);
this.tabDirecional.Controls.Add(this.txtDIR_AgPot_ET);
this.tabDirecional.Controls.Add(this.lblDIR_AgPot_ET);
this.tabDirecional.Controls.Add(this.txtDIR_Status_DF);
this.tabDirecional.Controls.Add(this.label122);
this.tabDirecional.Controls.Add(this.txtDIR_AgPot_DF);
this.tabDirecional.Controls.Add(this.lblDIR_AgPot_DF);
this.tabDirecional.Controls.Add(this.txtDIR_Status_EF);
this.tabDirecional.Controls.Add(this.label78);
this.tabDirecional.Controls.Add(this.txtDIR_AgPot_EF);
this.tabDirecional.Controls.Add(this.lblDIR_AgPot_EF);
this.tabDirecional.Controls.Add(this.txtDIR_Controlar_ET);
this.tabDirecional.Controls.Add(this.label39);
this.tabDirecional.Controls.Add(this.txtDIR_Velocidade_ET);
@ -1063,13 +1092,173 @@
this.tabDirecional.Text = "Direcional";
this.tabDirecional.UseVisualStyleBackColor = true;
//
// txtDIR_Status_DT
//
this.txtDIR_Status_DT.Location = new System.Drawing.Point(438, 501);
this.txtDIR_Status_DT.Margin = new System.Windows.Forms.Padding(2);
this.txtDIR_Status_DT.Name = "txtDIR_Status_DT";
this.txtDIR_Status_DT.ReadOnly = true;
this.txtDIR_Status_DT.Size = new System.Drawing.Size(54, 20);
this.txtDIR_Status_DT.TabIndex = 210;
this.txtDIR_Status_DT.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
// label126
//
this.label126.AutoSize = true;
this.label126.Location = new System.Drawing.Point(436, 486);
this.label126.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label126.Name = "label126";
this.label126.Size = new System.Drawing.Size(37, 13);
this.label126.TabIndex = 209;
this.label126.Text = "Status";
//
// txtDIR_AgPot_DT
//
this.txtDIR_AgPot_DT.Location = new System.Drawing.Point(438, 466);
this.txtDIR_AgPot_DT.Margin = new System.Windows.Forms.Padding(2);
this.txtDIR_AgPot_DT.Name = "txtDIR_AgPot_DT";
this.txtDIR_AgPot_DT.ReadOnly = true;
this.txtDIR_AgPot_DT.Size = new System.Drawing.Size(54, 20);
this.txtDIR_AgPot_DT.TabIndex = 208;
this.txtDIR_AgPot_DT.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
// lblDIR_AgPot_DT
//
this.lblDIR_AgPot_DT.AutoSize = true;
this.lblDIR_AgPot_DT.Location = new System.Drawing.Point(436, 450);
this.lblDIR_AgPot_DT.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.lblDIR_AgPot_DT.Name = "lblDIR_AgPot_DT";
this.lblDIR_AgPot_DT.Size = new System.Drawing.Size(39, 13);
this.lblDIR_AgPot_DT.TabIndex = 207;
this.lblDIR_AgPot_DT.Text = "Ag Pot";
//
// txtDIR_Status_ET
//
this.txtDIR_Status_ET.Location = new System.Drawing.Point(180, 501);
this.txtDIR_Status_ET.Margin = new System.Windows.Forms.Padding(2);
this.txtDIR_Status_ET.Name = "txtDIR_Status_ET";
this.txtDIR_Status_ET.ReadOnly = true;
this.txtDIR_Status_ET.Size = new System.Drawing.Size(54, 20);
this.txtDIR_Status_ET.TabIndex = 206;
this.txtDIR_Status_ET.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
// label124
//
this.label124.AutoSize = true;
this.label124.Location = new System.Drawing.Point(178, 486);
this.label124.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label124.Name = "label124";
this.label124.Size = new System.Drawing.Size(37, 13);
this.label124.TabIndex = 205;
this.label124.Text = "Status";
//
// txtDIR_AgPot_ET
//
this.txtDIR_AgPot_ET.Location = new System.Drawing.Point(180, 466);
this.txtDIR_AgPot_ET.Margin = new System.Windows.Forms.Padding(2);
this.txtDIR_AgPot_ET.Name = "txtDIR_AgPot_ET";
this.txtDIR_AgPot_ET.ReadOnly = true;
this.txtDIR_AgPot_ET.Size = new System.Drawing.Size(54, 20);
this.txtDIR_AgPot_ET.TabIndex = 204;
this.txtDIR_AgPot_ET.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
// lblDIR_AgPot_ET
//
this.lblDIR_AgPot_ET.AutoSize = true;
this.lblDIR_AgPot_ET.Location = new System.Drawing.Point(178, 450);
this.lblDIR_AgPot_ET.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.lblDIR_AgPot_ET.Name = "lblDIR_AgPot_ET";
this.lblDIR_AgPot_ET.Size = new System.Drawing.Size(39, 13);
this.lblDIR_AgPot_ET.TabIndex = 203;
this.lblDIR_AgPot_ET.Text = "Ag Pot";
//
// txtDIR_Status_DF
//
this.txtDIR_Status_DF.Location = new System.Drawing.Point(438, 241);
this.txtDIR_Status_DF.Margin = new System.Windows.Forms.Padding(2);
this.txtDIR_Status_DF.Name = "txtDIR_Status_DF";
this.txtDIR_Status_DF.ReadOnly = true;
this.txtDIR_Status_DF.Size = new System.Drawing.Size(54, 20);
this.txtDIR_Status_DF.TabIndex = 202;
this.txtDIR_Status_DF.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
// label122
//
this.label122.AutoSize = true;
this.label122.Location = new System.Drawing.Point(436, 226);
this.label122.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label122.Name = "label122";
this.label122.Size = new System.Drawing.Size(37, 13);
this.label122.TabIndex = 201;
this.label122.Text = "Status";
//
// txtDIR_AgPot_DF
//
this.txtDIR_AgPot_DF.Location = new System.Drawing.Point(438, 206);
this.txtDIR_AgPot_DF.Margin = new System.Windows.Forms.Padding(2);
this.txtDIR_AgPot_DF.Name = "txtDIR_AgPot_DF";
this.txtDIR_AgPot_DF.ReadOnly = true;
this.txtDIR_AgPot_DF.Size = new System.Drawing.Size(54, 20);
this.txtDIR_AgPot_DF.TabIndex = 200;
this.txtDIR_AgPot_DF.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
// lblDIR_AgPot_DF
//
this.lblDIR_AgPot_DF.AutoSize = true;
this.lblDIR_AgPot_DF.Location = new System.Drawing.Point(436, 190);
this.lblDIR_AgPot_DF.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.lblDIR_AgPot_DF.Name = "lblDIR_AgPot_DF";
this.lblDIR_AgPot_DF.Size = new System.Drawing.Size(39, 13);
this.lblDIR_AgPot_DF.TabIndex = 199;
this.lblDIR_AgPot_DF.Text = "Ag Pot";
//
// txtDIR_Status_EF
//
this.txtDIR_Status_EF.Location = new System.Drawing.Point(180, 241);
this.txtDIR_Status_EF.Margin = new System.Windows.Forms.Padding(2);
this.txtDIR_Status_EF.Name = "txtDIR_Status_EF";
this.txtDIR_Status_EF.ReadOnly = true;
this.txtDIR_Status_EF.Size = new System.Drawing.Size(54, 20);
this.txtDIR_Status_EF.TabIndex = 198;
this.txtDIR_Status_EF.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
// label78
//
this.label78.AutoSize = true;
this.label78.Location = new System.Drawing.Point(178, 226);
this.label78.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label78.Name = "label78";
this.label78.Size = new System.Drawing.Size(37, 13);
this.label78.TabIndex = 197;
this.label78.Text = "Status";
//
// txtDIR_AgPot_EF
//
this.txtDIR_AgPot_EF.Location = new System.Drawing.Point(180, 206);
this.txtDIR_AgPot_EF.Margin = new System.Windows.Forms.Padding(2);
this.txtDIR_AgPot_EF.Name = "txtDIR_AgPot_EF";
this.txtDIR_AgPot_EF.ReadOnly = true;
this.txtDIR_AgPot_EF.Size = new System.Drawing.Size(54, 20);
this.txtDIR_AgPot_EF.TabIndex = 196;
this.txtDIR_AgPot_EF.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
// lblDIR_AgPot_EF
//
this.lblDIR_AgPot_EF.AutoSize = true;
this.lblDIR_AgPot_EF.Location = new System.Drawing.Point(178, 190);
this.lblDIR_AgPot_EF.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.lblDIR_AgPot_EF.Name = "lblDIR_AgPot_EF";
this.lblDIR_AgPot_EF.Size = new System.Drawing.Size(39, 13);
this.lblDIR_AgPot_EF.TabIndex = 195;
this.lblDIR_AgPot_EF.Text = "Ag Pot";
//
// txtDIR_Controlar_ET
//
this.txtDIR_Controlar_ET.Location = new System.Drawing.Point(122, 501);
this.txtDIR_Controlar_ET.Margin = new System.Windows.Forms.Padding(2);
this.txtDIR_Controlar_ET.Name = "txtDIR_Controlar_ET";
this.txtDIR_Controlar_ET.ReadOnly = true;
this.txtDIR_Controlar_ET.Size = new System.Drawing.Size(41, 20);
this.txtDIR_Controlar_ET.Size = new System.Drawing.Size(54, 20);
this.txtDIR_Controlar_ET.TabIndex = 194;
this.txtDIR_Controlar_ET.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
@ -1089,7 +1278,7 @@
this.txtDIR_Velocidade_ET.Margin = new System.Windows.Forms.Padding(2);
this.txtDIR_Velocidade_ET.Name = "txtDIR_Velocidade_ET";
this.txtDIR_Velocidade_ET.ReadOnly = true;
this.txtDIR_Velocidade_ET.Size = new System.Drawing.Size(41, 20);
this.txtDIR_Velocidade_ET.Size = new System.Drawing.Size(54, 20);
this.txtDIR_Velocidade_ET.TabIndex = 192;
this.txtDIR_Velocidade_ET.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
@ -1185,18 +1374,18 @@
//
// txtDIR_Controlar_DT
//
this.txtDIR_Controlar_DT.Location = new System.Drawing.Point(452, 501);
this.txtDIR_Controlar_DT.Location = new System.Drawing.Point(380, 501);
this.txtDIR_Controlar_DT.Margin = new System.Windows.Forms.Padding(2);
this.txtDIR_Controlar_DT.Name = "txtDIR_Controlar_DT";
this.txtDIR_Controlar_DT.ReadOnly = true;
this.txtDIR_Controlar_DT.Size = new System.Drawing.Size(41, 20);
this.txtDIR_Controlar_DT.Size = new System.Drawing.Size(54, 20);
this.txtDIR_Controlar_DT.TabIndex = 182;
this.txtDIR_Controlar_DT.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
// label23
//
this.label23.AutoSize = true;
this.label23.Location = new System.Drawing.Point(449, 486);
this.label23.Location = new System.Drawing.Point(377, 486);
this.label23.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label23.Name = "label23";
this.label23.Size = new System.Drawing.Size(49, 13);
@ -1205,18 +1394,18 @@
//
// txtDIR_Velocidade_DT
//
this.txtDIR_Velocidade_DT.Location = new System.Drawing.Point(452, 466);
this.txtDIR_Velocidade_DT.Location = new System.Drawing.Point(380, 466);
this.txtDIR_Velocidade_DT.Margin = new System.Windows.Forms.Padding(2);
this.txtDIR_Velocidade_DT.Name = "txtDIR_Velocidade_DT";
this.txtDIR_Velocidade_DT.ReadOnly = true;
this.txtDIR_Velocidade_DT.Size = new System.Drawing.Size(41, 20);
this.txtDIR_Velocidade_DT.Size = new System.Drawing.Size(54, 20);
this.txtDIR_Velocidade_DT.TabIndex = 180;
this.txtDIR_Velocidade_DT.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
// label24
//
this.label24.AutoSize = true;
this.label24.Location = new System.Drawing.Point(449, 450);
this.label24.Location = new System.Drawing.Point(377, 450);
this.label24.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label24.Name = "label24";
this.label24.Size = new System.Drawing.Size(33, 13);
@ -1225,7 +1414,7 @@
//
// txtDIR_Sentido_DT
//
this.txtDIR_Sentido_DT.Location = new System.Drawing.Point(394, 501);
this.txtDIR_Sentido_DT.Location = new System.Drawing.Point(322, 501);
this.txtDIR_Sentido_DT.Margin = new System.Windows.Forms.Padding(2);
this.txtDIR_Sentido_DT.Name = "txtDIR_Sentido_DT";
this.txtDIR_Sentido_DT.ReadOnly = true;
@ -1236,7 +1425,7 @@
// label25
//
this.label25.AutoSize = true;
this.label25.Location = new System.Drawing.Point(392, 486);
this.label25.Location = new System.Drawing.Point(320, 486);
this.label25.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label25.Name = "label25";
this.label25.Size = new System.Drawing.Size(43, 13);
@ -1245,7 +1434,7 @@
//
// txtDIR_Angulo_DT
//
this.txtDIR_Angulo_DT.Location = new System.Drawing.Point(336, 501);
this.txtDIR_Angulo_DT.Location = new System.Drawing.Point(264, 501);
this.txtDIR_Angulo_DT.Margin = new System.Windows.Forms.Padding(2);
this.txtDIR_Angulo_DT.Name = "txtDIR_Angulo_DT";
this.txtDIR_Angulo_DT.ReadOnly = true;
@ -1256,7 +1445,7 @@
// label27
//
this.label27.AutoSize = true;
this.label27.Location = new System.Drawing.Point(334, 486);
this.label27.Location = new System.Drawing.Point(262, 486);
this.label27.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label27.Name = "label27";
this.label27.Size = new System.Drawing.Size(40, 13);
@ -1265,7 +1454,7 @@
//
// txtDIR_SentidoSP_DT
//
this.txtDIR_SentidoSP_DT.Location = new System.Drawing.Point(394, 466);
this.txtDIR_SentidoSP_DT.Location = new System.Drawing.Point(322, 466);
this.txtDIR_SentidoSP_DT.Margin = new System.Windows.Forms.Padding(2);
this.txtDIR_SentidoSP_DT.Name = "txtDIR_SentidoSP_DT";
this.txtDIR_SentidoSP_DT.ReadOnly = true;
@ -1276,7 +1465,7 @@
// label32
//
this.label32.AutoSize = true;
this.label32.Location = new System.Drawing.Point(392, 450);
this.label32.Location = new System.Drawing.Point(320, 450);
this.label32.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label32.Name = "label32";
this.label32.Size = new System.Drawing.Size(60, 13);
@ -1285,7 +1474,7 @@
//
// txtDIR_AnguloSP_DT
//
this.txtDIR_AnguloSP_DT.Location = new System.Drawing.Point(336, 466);
this.txtDIR_AnguloSP_DT.Location = new System.Drawing.Point(264, 466);
this.txtDIR_AnguloSP_DT.Margin = new System.Windows.Forms.Padding(2);
this.txtDIR_AnguloSP_DT.Name = "txtDIR_AnguloSP_DT";
this.txtDIR_AnguloSP_DT.ReadOnly = true;
@ -1296,7 +1485,7 @@
// label33
//
this.label33.AutoSize = true;
this.label33.Location = new System.Drawing.Point(334, 450);
this.label33.Location = new System.Drawing.Point(262, 450);
this.label33.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label33.Name = "label33";
this.label33.Size = new System.Drawing.Size(57, 13);
@ -1305,18 +1494,18 @@
//
// txtDIR_Controlar_DF
//
this.txtDIR_Controlar_DF.Location = new System.Drawing.Point(452, 241);
this.txtDIR_Controlar_DF.Location = new System.Drawing.Point(380, 241);
this.txtDIR_Controlar_DF.Margin = new System.Windows.Forms.Padding(2);
this.txtDIR_Controlar_DF.Name = "txtDIR_Controlar_DF";
this.txtDIR_Controlar_DF.ReadOnly = true;
this.txtDIR_Controlar_DF.Size = new System.Drawing.Size(41, 20);
this.txtDIR_Controlar_DF.Size = new System.Drawing.Size(54, 20);
this.txtDIR_Controlar_DF.TabIndex = 170;
this.txtDIR_Controlar_DF.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
// label16
//
this.label16.AutoSize = true;
this.label16.Location = new System.Drawing.Point(449, 226);
this.label16.Location = new System.Drawing.Point(377, 226);
this.label16.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label16.Name = "label16";
this.label16.Size = new System.Drawing.Size(49, 13);
@ -1325,18 +1514,18 @@
//
// txtDIR_Velocidade_DF
//
this.txtDIR_Velocidade_DF.Location = new System.Drawing.Point(452, 206);
this.txtDIR_Velocidade_DF.Location = new System.Drawing.Point(380, 206);
this.txtDIR_Velocidade_DF.Margin = new System.Windows.Forms.Padding(2);
this.txtDIR_Velocidade_DF.Name = "txtDIR_Velocidade_DF";
this.txtDIR_Velocidade_DF.ReadOnly = true;
this.txtDIR_Velocidade_DF.Size = new System.Drawing.Size(41, 20);
this.txtDIR_Velocidade_DF.Size = new System.Drawing.Size(54, 20);
this.txtDIR_Velocidade_DF.TabIndex = 168;
this.txtDIR_Velocidade_DF.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
// label17
//
this.label17.AutoSize = true;
this.label17.Location = new System.Drawing.Point(449, 190);
this.label17.Location = new System.Drawing.Point(377, 190);
this.label17.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label17.Name = "label17";
this.label17.Size = new System.Drawing.Size(33, 13);
@ -1345,7 +1534,7 @@
//
// txtDIR_Sentido_DF
//
this.txtDIR_Sentido_DF.Location = new System.Drawing.Point(394, 241);
this.txtDIR_Sentido_DF.Location = new System.Drawing.Point(322, 241);
this.txtDIR_Sentido_DF.Margin = new System.Windows.Forms.Padding(2);
this.txtDIR_Sentido_DF.Name = "txtDIR_Sentido_DF";
this.txtDIR_Sentido_DF.ReadOnly = true;
@ -1356,7 +1545,7 @@
// label18
//
this.label18.AutoSize = true;
this.label18.Location = new System.Drawing.Point(392, 226);
this.label18.Location = new System.Drawing.Point(320, 226);
this.label18.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label18.Name = "label18";
this.label18.Size = new System.Drawing.Size(43, 13);
@ -1365,7 +1554,7 @@
//
// txtDIR_Angulo_DF
//
this.txtDIR_Angulo_DF.Location = new System.Drawing.Point(336, 241);
this.txtDIR_Angulo_DF.Location = new System.Drawing.Point(264, 241);
this.txtDIR_Angulo_DF.Margin = new System.Windows.Forms.Padding(2);
this.txtDIR_Angulo_DF.Name = "txtDIR_Angulo_DF";
this.txtDIR_Angulo_DF.ReadOnly = true;
@ -1376,7 +1565,7 @@
// label20
//
this.label20.AutoSize = true;
this.label20.Location = new System.Drawing.Point(334, 226);
this.label20.Location = new System.Drawing.Point(262, 226);
this.label20.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label20.Name = "label20";
this.label20.Size = new System.Drawing.Size(40, 13);
@ -1385,7 +1574,7 @@
//
// txtDIR_SentidoSP_DF
//
this.txtDIR_SentidoSP_DF.Location = new System.Drawing.Point(394, 206);
this.txtDIR_SentidoSP_DF.Location = new System.Drawing.Point(322, 206);
this.txtDIR_SentidoSP_DF.Margin = new System.Windows.Forms.Padding(2);
this.txtDIR_SentidoSP_DF.Name = "txtDIR_SentidoSP_DF";
this.txtDIR_SentidoSP_DF.ReadOnly = true;
@ -1396,7 +1585,7 @@
// label21
//
this.label21.AutoSize = true;
this.label21.Location = new System.Drawing.Point(392, 190);
this.label21.Location = new System.Drawing.Point(320, 190);
this.label21.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label21.Name = "label21";
this.label21.Size = new System.Drawing.Size(60, 13);
@ -1405,7 +1594,7 @@
//
// txtDIR_AnguloSP_DF
//
this.txtDIR_AnguloSP_DF.Location = new System.Drawing.Point(336, 206);
this.txtDIR_AnguloSP_DF.Location = new System.Drawing.Point(264, 206);
this.txtDIR_AnguloSP_DF.Margin = new System.Windows.Forms.Padding(2);
this.txtDIR_AnguloSP_DF.Name = "txtDIR_AnguloSP_DF";
this.txtDIR_AnguloSP_DF.ReadOnly = true;
@ -1416,7 +1605,7 @@
// label22
//
this.label22.AutoSize = true;
this.label22.Location = new System.Drawing.Point(334, 190);
this.label22.Location = new System.Drawing.Point(262, 190);
this.label22.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label22.Name = "label22";
this.label22.Size = new System.Drawing.Size(57, 13);
@ -1429,7 +1618,7 @@
this.txtDIR_Controlar_EF.Margin = new System.Windows.Forms.Padding(2);
this.txtDIR_Controlar_EF.Name = "txtDIR_Controlar_EF";
this.txtDIR_Controlar_EF.ReadOnly = true;
this.txtDIR_Controlar_EF.Size = new System.Drawing.Size(41, 20);
this.txtDIR_Controlar_EF.Size = new System.Drawing.Size(54, 20);
this.txtDIR_Controlar_EF.TabIndex = 158;
this.txtDIR_Controlar_EF.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
@ -1449,7 +1638,7 @@
this.txtDIR_Velocidade_EF.Margin = new System.Windows.Forms.Padding(2);
this.txtDIR_Velocidade_EF.Name = "txtDIR_Velocidade_EF";
this.txtDIR_Velocidade_EF.ReadOnly = true;
this.txtDIR_Velocidade_EF.Size = new System.Drawing.Size(41, 20);
this.txtDIR_Velocidade_EF.Size = new System.Drawing.Size(54, 20);
this.txtDIR_Velocidade_EF.TabIndex = 156;
this.txtDIR_Velocidade_EF.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
@ -1476,7 +1665,7 @@
// picDIR_DT
//
this.picDIR_DT.Image = global::AgroBase.Properties.Resources.roda_superior;
this.picDIR_DT.Location = new System.Drawing.Point(336, 276);
this.picDIR_DT.Location = new System.Drawing.Point(298, 275);
this.picDIR_DT.Margin = new System.Windows.Forms.Padding(2);
this.picDIR_DT.Name = "picDIR_DT";
this.picDIR_DT.Size = new System.Drawing.Size(158, 171);
@ -1497,7 +1686,7 @@
// picDIR_DF
//
this.picDIR_DF.Image = global::AgroBase.Properties.Resources.roda_superior;
this.picDIR_DF.Location = new System.Drawing.Point(336, 18);
this.picDIR_DF.Location = new System.Drawing.Point(298, 18);
this.picDIR_DF.Margin = new System.Windows.Forms.Padding(2);
this.picDIR_DF.Name = "picDIR_DF";
this.picDIR_DF.Size = new System.Drawing.Size(158, 171);
@ -1558,7 +1747,7 @@
// picDIR_ET
//
this.picDIR_ET.Image = global::AgroBase.Properties.Resources.roda_superior;
this.picDIR_ET.Location = new System.Drawing.Point(4, 276);
this.picDIR_ET.Location = new System.Drawing.Point(43, 275);
this.picDIR_ET.Margin = new System.Windows.Forms.Padding(2);
this.picDIR_ET.Name = "picDIR_ET";
this.picDIR_ET.Size = new System.Drawing.Size(158, 171);
@ -1619,7 +1808,7 @@
// picDIR_EF
//
this.picDIR_EF.Image = global::AgroBase.Properties.Resources.roda_superior;
this.picDIR_EF.Location = new System.Drawing.Point(4, 18);
this.picDIR_EF.Location = new System.Drawing.Point(43, 18);
this.picDIR_EF.Margin = new System.Windows.Forms.Padding(2);
this.picDIR_EF.Name = "picDIR_EF";
this.picDIR_EF.Size = new System.Drawing.Size(158, 171);
@ -3129,13 +3318,12 @@
//
// tabAtuador
//
this.tabAtuador.Controls.Add(this.flwCameras);
this.tabAtuador.Controls.Add(this.lblATU_LatenciaLoop);
this.tabAtuador.Controls.Add(this.lblATU_QualidadeWifi);
this.tabAtuador.Controls.Add(this.chbDesenharErvas);
this.tabAtuador.Controls.Add(this.chartAtuador);
this.tabAtuador.Controls.Add(this.pnlAtuadores);
this.tabAtuador.Controls.Add(this.picCameraSoloD);
this.tabAtuador.Controls.Add(this.picCameraSoloE);
this.tabAtuador.Location = new System.Drawing.Point(4, 22);
this.tabAtuador.Margin = new System.Windows.Forms.Padding(2);
this.tabAtuador.Name = "tabAtuador";
@ -3201,26 +3389,6 @@
this.pnlAtuadores.TabIndex = 3;
this.pnlAtuadores.Paint += new System.Windows.Forms.PaintEventHandler(this.pnlAtuadores_Paint);
//
// picCameraSoloD
//
this.picCameraSoloD.Location = new System.Drawing.Point(252, 18);
this.picCameraSoloD.Margin = new System.Windows.Forms.Padding(2);
this.picCameraSoloD.Name = "picCameraSoloD";
this.picCameraSoloD.Size = new System.Drawing.Size(242, 171);
this.picCameraSoloD.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
this.picCameraSoloD.TabIndex = 2;
this.picCameraSoloD.TabStop = false;
//
// picCameraSoloE
//
this.picCameraSoloE.Location = new System.Drawing.Point(4, 18);
this.picCameraSoloE.Margin = new System.Windows.Forms.Padding(2);
this.picCameraSoloE.Name = "picCameraSoloE";
this.picCameraSoloE.Size = new System.Drawing.Size(242, 171);
this.picCameraSoloE.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
this.picCameraSoloE.TabIndex = 1;
this.picCameraSoloE.TabStop = false;
//
// tabErvas
//
this.tabErvas.Controls.Add(this.chartErvas);
@ -4854,6 +5022,13 @@
this.btnPlay.UseVisualStyleBackColor = true;
this.btnPlay.Click += new System.EventHandler(this.btnPlay_Click);
//
// flwCameras
//
this.flwCameras.Location = new System.Drawing.Point(4, 18);
this.flwCameras.Name = "flwCameras";
this.flwCameras.Size = new System.Drawing.Size(489, 170);
this.flwCameras.TabIndex = 97;
//
// frmResultadosOperacao
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@ -4934,8 +5109,6 @@
this.tabAtuador.ResumeLayout(false);
this.tabAtuador.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.chartAtuador)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.picCameraSoloD)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.picCameraSoloE)).EndInit();
this.tabErvas.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.chartErvas)).EndInit();
this.tabSensoriamento.ResumeLayout(false);
@ -5030,8 +5203,6 @@
private System.Windows.Forms.Label label31;
private System.Windows.Forms.TextBox txtMOV_Sentido_EF;
private System.Windows.Forms.Panel panel6;
private System.Windows.Forms.PictureBox picCameraSoloD;
private System.Windows.Forms.PictureBox picCameraSoloE;
private System.Windows.Forms.PictureBox picCameraCaminho;
private System.Windows.Forms.Panel pnlAtuadores;
private System.Windows.Forms.Label label35;
@ -5366,5 +5537,22 @@
private System.Windows.Forms.Label label71;
private System.Windows.Forms.ComboBox cmbMOV_Alimentacao_Filtro;
private System.Windows.Forms.Label label72;
private System.Windows.Forms.TextBox txtDIR_Status_DF;
private System.Windows.Forms.Label label122;
private System.Windows.Forms.TextBox txtDIR_AgPot_DF;
private System.Windows.Forms.Label lblDIR_AgPot_DF;
private System.Windows.Forms.TextBox txtDIR_Status_EF;
private System.Windows.Forms.Label label78;
private System.Windows.Forms.TextBox txtDIR_AgPot_EF;
private System.Windows.Forms.Label lblDIR_AgPot_EF;
private System.Windows.Forms.TextBox txtDIR_Status_DT;
private System.Windows.Forms.Label label126;
private System.Windows.Forms.TextBox txtDIR_AgPot_DT;
private System.Windows.Forms.Label lblDIR_AgPot_DT;
private System.Windows.Forms.TextBox txtDIR_Status_ET;
private System.Windows.Forms.Label label124;
private System.Windows.Forms.TextBox txtDIR_AgPot_ET;
private System.Windows.Forms.Label lblDIR_AgPot_ET;
private System.Windows.Forms.FlowLayoutPanel flwCameras;
}
}

View File

@ -27,14 +27,14 @@ namespace AgroBase.Forms.Operacoes
List<WitSensoriamentoLogModel> LogsWt901C = new List<WitSensoriamentoLogModel>();
List<UltrasonicA05Model> LogsA05 = new List<UltrasonicA05Model>();
List<KinectModel> LogsKinect = new List<KinectModel>();
List<CamSoloSensoriamentoLogModel> LogsCam_Solo_E = new List<CamSoloSensoriamentoLogModel>();
List<CamSoloSensoriamentoLogModel> LogsCam_Solo_D = new List<CamSoloSensoriamentoLogModel>();
List<List<CamSoloSensoriamentoLogModel>> LogsCam_Solo = new List<List<CamSoloSensoriamentoLogModel>>();
List<string> pathImagensSolo = new List<string>();
List<PictureBox> picsCamSolo = new List<PictureBox>();
List<CamCaminhoSensoriamentoLogModel> LogsCam_Caminho = new List<CamCaminhoSensoriamentoLogModel>();
string pathImagensCaminho = "";
string pathImagensSonarRGB = "";
string pathImagensMapaCalor = "";
string pathImagensSoloE = "";
string pathImagensSoloD = "";
DateTime MomentoAtual = DateTime.Now;
AsyncTaskTimerModel tmrPlay;
MapasModel Mapa = new MapasModel();
@ -137,14 +137,29 @@ namespace AgroBase.Forms.Operacoes
LogsWt901C = JsonConvert.DeserializeObject<WitSensoriamentoLogModel[]>(DeserializarDadosOperacao(ofd.FileName, data.wit ?? Enums.T_Code.Wit.ToString())).ToList();
LogsA05 = JsonConvert.DeserializeObject<UltrasonicA05Model[]>(DeserializarDadosOperacao(ofd.FileName, data.a05 ?? Enums.T_Code.A05.ToString())).ToList();
LogsKinect = JsonConvert.DeserializeObject<KinectModel[]>(DeserializarDadosOperacao(ofd.FileName, data.knt ?? Enums.T_Code.Knt.ToString())).ToList();
LogsCam_Solo_E = JsonConvert.DeserializeObject<CamSoloSensoriamentoLogModel[]>(DeserializarDadosOperacao(ofd.FileName, data.soloE)).ToList();
LogsCam_Solo_D = JsonConvert.DeserializeObject<CamSoloSensoriamentoLogModel[]>(DeserializarDadosOperacao(ofd.FileName, data.soloD)).ToList();
LogsCam_Caminho = JsonConvert.DeserializeObject<CamCaminhoSensoriamentoLogModel[]>(DeserializarDadosOperacao(ofd.FileName, data.caminho)).ToList();
LogsCam_Caminho = JsonConvert.DeserializeObject<CamCaminhoSensoriamentoLogModel[]>(DeserializarDadosOperacao(ofd.FileName, data.cam_caminho)).ToList();
pathImagensSonarRGB = ofd.FileName.Replace("data.lgop", data.knt + "/rgb_");
pathImagensMapaCalor = ofd.FileName.Replace("data.lgop", data.knt + "/heat_");
pathImagensCaminho = ofd.FileName.Replace("data.lgop", data.caminho + "/");
pathImagensSoloE = ofd.FileName.Replace("data.lgop", data.soloE + "/");
pathImagensSoloD = ofd.FileName.Replace("data.lgop", data.soloD + "/");
pathImagensCaminho = ofd.FileName.Replace("data.lgop", data.cam_caminho + "/");
LogsCam_Solo = new List<List<CamSoloSensoriamentoLogModel>>();
pathImagensSolo = new List<string>();
picsCamSolo = new List<PictureBox>();
flwCameras.Controls.Clear();
foreach (string cam in data.cam_solo)
{
LogsCam_Solo.Add(JsonConvert.DeserializeObject<CamSoloSensoriamentoLogModel[]>(DeserializarDadosOperacao(ofd.FileName, cam)).ToList());
pathImagensSolo.Add(ofd.FileName.Replace("data.lgop", cam + "/"));
PictureBox pic = new PictureBox()
{
Name = "picCamSolo_" + cam,
Width = 250,
Height = 166,
SizeMode = PictureBoxSizeMode.StretchImage
};
flwCameras.Controls.Add(pic);
picsCamSolo.Add(pic);
}
Mapa = new MapasModel()
{
@ -927,35 +942,23 @@ namespace AgroBase.Forms.Operacoes
picCameraCaminho.Image = CarregarImagemCamera(pathImagensCaminho);
AtualizarInformacoesCameraCaminho();
Bitmap bitmapSoloE = CarregarImagemCamera(pathImagensSoloE);
if (chbDesenharErvas.Checked)
for (int i = 0; i < LogsCam_Solo.Count(); i++)
{
var LogCamSoloE = LogsCam_Solo_E.FirstOrDefault(x => x.Momento == MomentoAtual);
if (LogCamSoloE != null)
Bitmap bitmapSolo = CarregarImagemCamera(pathImagensSolo[i]);
if (chbDesenharErvas.Checked)
{
bitmapSoloE = DesenharDeteccoesErvas(LogCamSoloE.Leitura, bitmapSoloE);
picCameraSoloE.Image = bitmapSoloE;
var LogCamSolo = LogsCam_Solo[i].FirstOrDefault(x => x.Momento == MomentoAtual);
if (LogCamSolo != null)
{
bitmapSolo = DesenharDeteccoesErvas(LogCamSolo.Leitura, bitmapSolo);
picsCamSolo[i].Image = bitmapSolo;
}
}
}
else
{
picCameraSoloE.Image = bitmapSoloE;
}
Bitmap bitmapSoloD = CarregarImagemCamera(pathImagensSoloD);
if (chbDesenharErvas.Checked)
{
var LogCamSoloD = LogsCam_Solo_D.FirstOrDefault(x => x.Momento == MomentoAtual);
if (LogCamSoloD != null)
else
{
bitmapSoloD = DesenharDeteccoesErvas(LogCamSoloD.Leitura, bitmapSoloD);
picCameraSoloD.Image = bitmapSoloD;
picsCamSolo[i].Image = bitmapSolo;
}
}
else
{
picCameraSoloD.Image = bitmapSoloD;
}
}
private void AtualizarInformacoesGPS()
@ -1008,6 +1011,8 @@ namespace AgroBase.Forms.Operacoes
private void AtualizarInformacoesMotorDirecional(string ID)
{
var Log = LogsDirecional.Where(x => x.Modulo_ID == ID).FirstOrDefault(x => x.Momento == MomentoAtual);
var LogSen = LogsSensoriamento.FirstOrDefault(x => x.Momento == MomentoAtual);
var SensorPot = LogSen?.SensoresPotenciometro?.FirstOrDefault(x => x.ID.Contains(ID));
double Angulo = Log?.Angulo ?? 0;
double Multiplicador = 1;
@ -1036,6 +1041,12 @@ namespace AgroBase.Forms.Operacoes
txtVelocidade.Text = (Log?.Velocidade ?? 0).ToString();
TextBox txtControlar = FuncoesGlobais.FindControlRecursive<TextBox>(tabDirecional, "txtDIR_Controlar_" + ID);
txtControlar.Text = (Log?.Controlar ?? false) ? "Sim" : "Não";
TextBox txtStatus = FuncoesGlobais.FindControlRecursive<TextBox>(tabDirecional, "txtDIR_Status_" + ID);
txtStatus.Text = (SensorPot?.Status ?? Enums.StatusSensorPotenciometro.Indefinido).ToString();
TextBox txtAgPot = FuncoesGlobais.FindControlRecursive<TextBox>(tabDirecional, "txtDIR_AgPot_" + ID);
txtAgPot.Text = (SensorPot?.Angulo ?? -1).ToString("0.00");
Label lblAgPot = FuncoesGlobais.FindControlRecursive<Label>(tabDirecional, "lblDIR_AgPot_" + ID);
lblAgPot.ForeColor = (SensorPot?.Iniciado ?? false) ? Color.Green : Color.Red;
}
private void AtualizarInformacoesMovimentacao()

View File

@ -63,7 +63,7 @@ namespace AgroBase.Forms.Sensoriamento
else
{
btnSalvar.Text = "Editar";
cameraService.selectedCamera = cmbCameras.SelectedIndex;
cameraService.cameraIndex = cmbCameras.SelectedIndex;
}
btnIniciar.Enabled = btnSalvar.Text == "Editar" && cmbCameras.SelectedIndex > 0;
cmbCameras.Enabled = btnSalvar.Text == "Salvar";
@ -96,14 +96,14 @@ namespace AgroBase.Forms.Sensoriamento
private void AtualizaListaCameras()
{
cameraService.selectedCamera = cmbCameras.SelectedIndex > 0 ? cmbCameras.SelectedIndex : 0;
cameraService.cameraIndex = cmbCameras.SelectedIndex > 0 ? cmbCameras.SelectedIndex : 0;
cmbCameras.Items.Clear();
cmbCameras.Items.AddRange(CameraService.ObterListaCameras().Keys.ToArray());
if (cmbCameras.Items.Count == 1)
{
cameraService.selectedCamera = 0;
cameraService.cameraIndex = 0;
}
cmbCameras.SelectedIndex = cameraService.selectedCamera;
cmbCameras.SelectedIndex = cameraService.cameraIndex;
}
private void ListarObjetosDetectados()

View File

@ -29,7 +29,7 @@ namespace AgroBase.Models
public int MaxLeituras { get; set; }
public string VideoPorta { get; set; }
public string VideoUrl { get; set; }
public string CameraSelecionada { get; set; }
public string DeviceID { get; set; }
public Dictionary<string, Color> ClassMap = new Dictionary<string, Color>()
{

View File

@ -52,7 +52,7 @@ namespace AgroBase.Models
public string VideoPorta { get; set; }
public string VideoUrl { get; set; }
public string MqttTopico { get; set; } = "weed_detector";
public string CameraSelecionada { get; set; }
public string DeviceID { get; set; }
public CameraCoordenadasFrameModel Leitura { get; set; } = new CameraCoordenadasFrameModel();
public int ErvasNoRadar { get; set; }

View File

@ -234,6 +234,7 @@ namespace AgroBase.Models
Script_MapFollow = 12,
Script_GpsViewer = 13,
ArquivoModelo3D = 14,
ScriptListOAKCaneras = 15,
}
public enum TipoConexao

View File

@ -1398,8 +1398,8 @@ namespace AgroBase.Models.Modules
_iniciado = value;
}
}
private int _leitura;
public int Leitura
private double _leitura;
public double Leitura
{
get { return _leitura; }
set
@ -1448,11 +1448,18 @@ namespace AgroBase.Models.Modules
{
if (double.TryParse(Sensor.Parametros[0][1].Replace(".", ","), out double fatorCalibracao))
{
double temperaturaAtual = FuncoesMatematicas.CalcularTemperatura(_leitura, fatorCalibracao);
if (_leitura == 0)
{
_atual = -1;
}
else
{
double temperaturaAtual = FuncoesMatematicas.CalcularTemperatura(_leitura, fatorCalibracao);
_atual = filtroKalman.Filtrar(temperaturaAtual);
_atual = Math.Round(filtroKalman.Filtrar(temperaturaAtual), 2);
AtualizarExtremos();
AtualizarExtremos();
}
}
else
{

View File

@ -0,0 +1,10 @@
namespace AgroBase.Models
{
public class OAKCameraModel
{
public int Index { get; set; }
public string Id { get; set; }
public string Model { get; set; }
public string Usb_Speed { get; set; }
}
}

View File

@ -265,7 +265,7 @@ namespace AgroBase.Models
public double CapacidadeReservatorio { get; set; } = 30;
public int QuantidadeCamerasSolo { get; set; } = 1;
public List<CameraSoloModel> CamerasSolo { get; set; } = new List<CameraSoloModel>();
public CameraCaminhoModel CameraCaminhoKinect { get; set; }
public CameraCaminhoModel CameraCaminho { get; set; }
public int TempoIniciarOperacao { get; set; } = 25;
public string ID { get; set; }
public double tmrLogsInterval
@ -287,7 +287,7 @@ namespace AgroBase.Models
#region PARAMETRIZACAO
public bool SalvarParametrizacaoOperacao(string descricao, string capacidade, string pressao, string duracao, string percentual, string angulo, string velocidadeMp, int velocidadeServasPercent, int velocidadeCervasPercent, UltrasonicA05Configuracoes ConfigUltrassom, bool sonarAtivado)
public bool SalvarParametrizacaoOperacao(string descricao, string capacidade, string pressao, string duracao, string percentual, string angulo, string velocidadeMp, int velocidadeServasPercent, int velocidadeCervasPercent, UltrasonicA05Configuracoes ConfigUltrassom, bool sonarAtivado, int qtdCamerasSolo)
{
if (string.IsNullOrEmpty(descricao))
{
@ -317,7 +317,8 @@ namespace AgroBase.Models
ModulosMandatorios = Variaveis.OperacaoEmAndamento.ModulosMandatorios,
Mapa = Variaveis.OperacaoEmAndamento.Mapa,
ConfiguracaoUltrassom = ConfigUltrassom,
SonarAtivado = sonarAtivado
SonarAtivado = sonarAtivado,
QtdCamerasSolo = qtdCamerasSolo
};
Parametros.Mapa.lblMapa = null;
Parametros.Mapa.pnlMapa = null;
@ -381,6 +382,7 @@ namespace AgroBase.Models
SegmentacaoSemantica = Parametros.Modo == ModoOperacao.MapaGPS,
};
Variaveis.OperacaoEmAndamento.QuantidadeCamerasSolo = Parametros.QtdCamerasSolo;
Variaveis.OperacaoEmAndamento.ModulosMandatorios = Parametros.ModulosMandatorios.ToList();
Variaveis.OperacaoEmAndamento.CapacidadeReservatorio = Parametros.AtuCapacidadeReservatorio;
Variaveis.OperacaoEmAndamento.Controle = controle;
@ -435,6 +437,7 @@ namespace AgroBase.Models
DispSen = SenConectado,
DispMvd = MvdConectado,
Sensoriamento = new OperacaoSensoriamentoLogModel(),
QuantidadeCamerasSolo = 1,
};
@ -982,21 +985,30 @@ namespace AgroBase.Models
return;
}
var listaCameras = CameraService.ObterListaCameras().Values.ToArray();
//var listaCameras = CameraService.ObterListaCameras().Values.ToArray();
var listaCameras = OAKCameraService.GetConnectedCameras();
CamerasSolo.ForEach(cam => cam.DesligarCamera());
CamerasSolo.Clear();
for (int i = 0; i < QuantidadeCamerasSolo; i++)
{
string CamNome = "Cam_Solo_" + i.ToString();
string deviceId =
pnlCameraSolo.Count() > i && pnlCameraSolo[i].Tag != null && !string.IsNullOrEmpty(pnlCameraSolo[i].Tag.ToString()) ? pnlCameraSolo[i].Tag.ToString() :
DispSen.Dados.CameraID_Solo.Count > i ? DispSen.Dados.CameraID_Solo[i] :
null;
CameraSoloModel CameraSolo = new CameraSoloModel()
{
ID = "S" + i.ToString(),
Nome = CamNome,
DeviceID = deviceId,
Posicao = CamerasSolo.Count(),
ArquivoLeitura = "ervas_" + CamNome + ".json",
browser = null,
camera = new CameraService(),
CameraSelecionada = DispSen.Dados.CameraID_Solo.Count > i ? DispSen.Dados.CameraID_Solo[i] : null,
combo = new ComboBox(),
MaxLeituras = 1,
VideoPorta = (VariaveisPortas.CameraSolo + CamerasSolo.Count()).ToString(),
@ -1004,18 +1016,24 @@ namespace AgroBase.Models
MqttTopico = "green_objects_" + CamNome,
};
CamerasSolo.Add(CameraSolo);
CameraSolo.camera.selectedCamera = true ? 1 : 0;
if (CameraSolo.camera.selectedCamera > 0 && Iniciar)
//CameraSolo.camera.selectedCamera = true ? 1 : 0;
CameraSolo.camera.cameraIndex = listaCameras.FirstOrDefault(x => x.Id == CameraSolo.DeviceID)?.Index ?? -1;
if (CameraSolo.camera.cameraIndex > -1 && Iniciar)
{
CameraSolo.panel = pnlCameraSolo[i];
IniciarCameraSolo(CameraSolo);
}
}
string deviceIdCaminho =
pnlCameraCaminho != null && pnlCameraCaminho.Tag != null && !string.IsNullOrEmpty(pnlCameraCaminho.Tag.ToString()) ? pnlCameraCaminho.Tag.ToString() :
DispSen.Dados.CameraID_Caminho;
var cameraCaminho = new CameraCaminhoModel()
{
ID = "C",
Nome = "Cam_Caminho",
DeviceID = deviceIdCaminho,
ArquivoLeitura = "leitura_ruas.json",
browser = null,
camera = new CameraService(),
@ -1026,12 +1044,13 @@ namespace AgroBase.Models
Leitura = new CameraDeepLabV3PlusModel(),
PontosExtremos = new List<System.Drawing.Point>()
};
CameraCaminhoKinect = cameraCaminho;
CameraCaminhoKinect.camera.selectedCamera = KinectService.Iniciado ? 1 : 0;
if (CameraCaminhoKinect.camera.selectedCamera > 0 && Iniciar && Variaveis.OperacaoEmAndamento.Controle.SegmentacaoSemantica)
CameraCaminho = cameraCaminho;
//CameraCaminhoKinect.camera.selectedCamera = KinectService.Iniciado ? 1 : 0;
CameraCaminho.camera.cameraIndex = listaCameras.FirstOrDefault(x => x.Id == CameraCaminho.DeviceID)?.Index ?? -1;
if (CameraCaminho.camera.cameraIndex > -1 && Iniciar && Variaveis.OperacaoEmAndamento.Controle.SegmentacaoSemantica)
{
CameraCaminhoKinect.panel = pnlCameraCaminho;
IniciarCameraCaminho(CameraCaminhoKinect);
CameraCaminho.panel = pnlCameraCaminho;
IniciarCameraCaminho(CameraCaminho);
}
}
@ -1039,7 +1058,7 @@ namespace AgroBase.Models
{
DesligarCameraSolo(CameraSolo);
if (CameraSolo.camera.selectedCamera > 0)
if (CameraSolo.camera.cameraIndex > -1)
{
VersaoArquivoModel ArquivoVersao = VersionamentoService.ArquivoModeloWeedDetector;
@ -1097,7 +1116,7 @@ namespace AgroBase.Models
{
DesligarCameraCaminho(cameraCaminho);
if (cameraCaminho.camera.selectedCamera > 0)
if (cameraCaminho.camera.cameraIndex > -1)
{
cameraCaminho.InicializarCamera();
@ -1134,8 +1153,8 @@ namespace AgroBase.Models
{
try
{
Bitmap bitmap = Variaveis.OperacaoEmAndamento.CameraCaminhoKinect.ExtraiImagemDaMensagem(Mensagem.Mensagem);
await Variaveis.OperacaoEmAndamento.CameraCaminhoKinect.AtualizarBitmapTela(bitmap);
Bitmap bitmap = Variaveis.OperacaoEmAndamento.CameraCaminho.ExtraiImagemDaMensagem(Mensagem.Mensagem);
await Variaveis.OperacaoEmAndamento.CameraCaminho.AtualizarBitmapTela(bitmap);
}
catch (Exception ex)
{
@ -1158,7 +1177,7 @@ namespace AgroBase.Models
{
Camera.DesligarCamera();
});
Variaveis.OperacaoEmAndamento.CameraCaminhoKinect.DesligarCamera();
Variaveis.OperacaoEmAndamento.CameraCaminho.DesligarCamera();
}
#endregion
@ -1542,7 +1561,7 @@ namespace AgroBase.Models
{
try
{
var cameraCaminho = Variaveis.OperacaoEmAndamento.CameraCaminhoKinect;
var cameraCaminho = Variaveis.OperacaoEmAndamento.CameraCaminho;
if (cameraCaminho == null || !cameraCaminho.Iniciada)
{
@ -1795,197 +1814,204 @@ namespace AgroBase.Models
public void SalvarLogs(bool Fim)
{
if (!string.IsNullOrEmpty(Variaveis.OperacaoEmAndamento.ID))
try
{
DateTime Agora = DateTime.Now;
OperacaoSensoriamentoLogModel logGeral = Variaveis.OperacaoEmAndamento.Sensoriamento.Clone();
logGeral.Momento = Agora;
SalvarLog("operacao", logGeral, Fim);
GPSModel logGps = GPSService.UltimaLeitura.Clone();
logGps.Momento = Agora;
SalvarLog(T_Code.Gps.ToString(), logGps, Fim);
Variaveis.OperacaoEmAndamento.DispMvd.Dados.Modulos.ForEach(Modulo =>
if (!string.IsNullOrEmpty(Variaveis.OperacaoEmAndamento.ID))
{
MovSensoriamentoLogModel logMov = new MovSensoriamentoLogModel()
DateTime Agora = DateTime.Now;
OperacaoSensoriamentoLogModel logGeral = Variaveis.OperacaoEmAndamento.Sensoriamento.Clone();
logGeral.Momento = Agora;
SalvarLog("operacao", logGeral, Fim);
GPSModel logGps = GPSService.UltimaLeitura.Clone();
logGps.Momento = Agora;
SalvarLog(T_Code.Gps.ToString(), logGps, Fim);
Variaveis.OperacaoEmAndamento.DispMvd.Dados.Modulos.ForEach(Modulo =>
{
MovSensoriamentoLogModel logMov = new MovSensoriamentoLogModel()
{
Momento = Agora,
Modulo_ID = Modulo.Modulo_ID,
Inicializado = Modulo.MovMotor.Inicializado,
RPM_SP = Modulo.MovMotor.RPM_SP,
RPM_Motor = Modulo.MovMotor.RPM_Motor,
RPM_Roda = Modulo.MovMotor.RPM_Roda,
Corrente_Motor = Modulo.MovMotor.Corrente_Motor,
Temperatura = Modulo.MovMotor.Temperatura,
TemperaturaDriver = Modulo.MovMotor.TemperaturaDriver,
Tensao = Modulo.MovMotor.Tensao,
Sentido_SP = Modulo.MovMotor.Sentido_SP,
Sentido = Modulo.MovMotor.Sentido,
Velocidade = Modulo.MovMotor.VelocidadeInstantanea,
CodAlarme = Modulo.MovMotor.CodigoAlarme,
EmFreio = Modulo.MovMotor.ConfigFreio.Leitura,
Ativado = Modulo.MovMotor.LeituraLigado,
UltimoComandoRespondido = Modulo.MovMotor.Leitura?.UltimoComandoRecebido ?? DateTime.MinValue,
Corrente_Barramento = Modulo.MovMotor.Corrente_Barramento,
Potencia = Modulo.MovMotor.Potencia,
CicloTrabalho = Modulo.MovMotor.CicloTrabalho
};
SalvarLog(T_Code.Mov.ToString(), logMov, false);
DirSensoriamentoLogModel logDir = new DirSensoriamentoLogModel()
{
Momento = Agora,
Modulo_ID = Modulo.Modulo_ID,
Inicializado = Modulo.DirMotor.Inicializado,
Angulo = Modulo.DirMotor.Angulo,
Angulo_SP = Modulo.DirMotor.Angulo_SP,
Controlar = Modulo.DirMotor.Comandar,
Sentido_SP = Modulo.DirMotor.Sentido_SP,
Sentido = Modulo.DirMotor.Sentido,
Velocidade = (Modulo.DirMotor.Velocidade / Modulo.DirMotor.Velocidade_Max) * 100.0,
UltimoComandoRespondido = Modulo.DirMotor.Leitura?.UltimoComandoRecebido ?? DateTime.MinValue,
};
SalvarLog(T_Code.Dir.ToString(), logDir, false);
});
AtuSensoriamentoLogModel logAtu = new AtuSensoriamentoLogModel()
{
Momento = Agora,
Modulo_ID = Modulo.Modulo_ID,
Inicializado = Modulo.MovMotor.Inicializado,
RPM_SP = Modulo.MovMotor.RPM_SP,
RPM_Motor = Modulo.MovMotor.RPM_Motor,
RPM_Roda = Modulo.MovMotor.RPM_Roda,
Corrente_Motor = Modulo.MovMotor.Corrente_Motor,
Temperatura = Modulo.MovMotor.Temperatura,
TemperaturaDriver = Modulo.MovMotor.TemperaturaDriver,
Tensao = Modulo.MovMotor.Tensao,
Sentido_SP = Modulo.MovMotor.Sentido_SP,
Sentido = Modulo.MovMotor.Sentido,
Velocidade = Modulo.MovMotor.VelocidadeInstantanea,
CodAlarme = Modulo.MovMotor.CodigoAlarme,
EmFreio = Modulo.MovMotor.ConfigFreio.Leitura,
Ativado = Modulo.MovMotor.LeituraLigado,
UltimoComandoRespondido = Modulo.MovMotor.Leitura?.UltimoComandoRecebido ?? DateTime.MinValue,
Corrente_Barramento = Modulo.MovMotor.Corrente_Barramento,
Potencia = Modulo.MovMotor.Potencia,
CicloTrabalho = Modulo.MovMotor.CicloTrabalho
Inicializado = Variaveis.OperacaoEmAndamento.DispAtu.Dados.Conectado,
QualidadeWifi = Variaveis.OperacaoEmAndamento.DispAtu.Dados.DadosLeitura.QualidadeWifi,
LatenciaLoop = Variaveis.OperacaoEmAndamento.DispAtu.Dados.DadosLeitura.LatenciaLoop,
MassaReservatorio = Variaveis.OperacaoEmAndamento.DispAtu.Dados.MassaReservatorio,
PercentualReservatorio = Variaveis.OperacaoEmAndamento.DispAtu.Dados.PercentualReservatorio,
VolumeReservatorio = Variaveis.OperacaoEmAndamento.DispAtu.Dados.VolumeReservatorio,
PressaoLinha_SP = Variaveis.OperacaoEmAndamento.Controle.PressaoLinha,
PressaoLinha = Variaveis.OperacaoEmAndamento.DispAtu.Dados.PressaoLinha,
PotenciaBomba = Variaveis.OperacaoEmAndamento.DispAtu.Dados.BombaPressurizadora.LeituraPotencia,
BombaLigada = Variaveis.OperacaoEmAndamento.DispAtu.Dados.BombaPressurizadora.ComandoAtuar,
VazaoFluxoMLpSInstantanea = Variaveis.OperacaoEmAndamento.DispAtu.Dados.VazaoFluxoMLpSInstantanea,
VazaoFluxoMLpSMedia = Variaveis.OperacaoEmAndamento.DispAtu.Dados.VazaoFluxoMLpSMedia,
VolumeVazaoML = Variaveis.OperacaoEmAndamento.DispAtu.Dados.VolumeVazaoML,
QuantidadeBicos = Variaveis.OperacaoEmAndamento.DispAtu.Dados.QuantidadeBicos,
TempoPulverizadorAtuado = Variaveis.OperacaoEmAndamento.DispAtu.Dados.TempoAtuado,
Bicos = Variaveis.OperacaoEmAndamento.DispAtu.Dados.BicosPulverizadores.Select(Bico => new AtuBicoSensoriamentoLogModel()
{
ID = Bico.ID,
Inicializado = Bico.Inicializado,
Comandar = Bico.Comandar,
Atuado = Bico.ComandoAtuar,
MediaNivelFluxo = Bico.MediaNivelFluxo,
Posicao = Bico.Posicao,
StatusBico = Bico.LeituraStatusBico,
Atuacoes = Bico.Atuacoes,
TempoAtuado = Bico.TempoAtuado,
}).ToList(),
UltimoComandoRespondido = Variaveis.OperacaoEmAndamento.DispAtu.Dados.DadosLeitura.Momento,
};
SalvarLog(T_Code.Mov.ToString(), logMov, false);
SalvarLog(T_Code.Atu.ToString(), logAtu, false);
DirSensoriamentoLogModel logDir = new DirSensoriamentoLogModel()
var senLeitura = Variaveis.OperacaoEmAndamento.DispSen.Dados.DadosLeitura;
SensoriamentoMensagemJsonModel logSen = new SensoriamentoMensagemJsonModel()
{
Momento = Agora,
Modulo_ID = Modulo.Modulo_ID,
Inicializado = Modulo.DirMotor.Inicializado,
Angulo = Modulo.DirMotor.Angulo,
Angulo_SP = Modulo.DirMotor.Angulo_SP,
Controlar = Modulo.DirMotor.Comandar,
Sentido_SP = Modulo.DirMotor.Sentido_SP,
Sentido = Modulo.DirMotor.Sentido,
Velocidade = (Modulo.DirMotor.Velocidade / Modulo.DirMotor.Velocidade_Max) * 100.0,
UltimoComandoRespondido = Modulo.DirMotor.Leitura?.UltimoComandoRecebido ?? DateTime.MinValue,
Conectado = senLeitura.Conectado,
LatenciaLoop = senLeitura.LatenciaLoop,
QualidadeWifi = senLeitura.QualidadeWifi,
Mod_ID = senLeitura.Mod_ID,
Reles = new List<FirmwareRele>(senLeitura.Reles),
SensoresCorrente = new List<FirmwareSensorCorrente>(senLeitura.SensoresCorrente),
SensoresTemperatura = new List<FirmwareSensorTemperatura>(senLeitura.SensoresTemperatura),
ServoFreios = new List<FirmwareServoFreio>(senLeitura.ServoFreios),
Sinaleiros = new List<FirmwareSinaleiro>(senLeitura.Sinaleiros),
SensoresPotenciometro = new List<FirmwareSensorPotenciometro>(senLeitura.SensoresPotenciometro),
UltimoComandoRespondido = senLeitura.Momento,
};
SalvarLog(T_Code.Dir.ToString(), logDir, false);
});
SalvarLog(T_Code.Sen.ToString(), logSen, false);
AtuSensoriamentoLogModel logAtu = new AtuSensoriamentoLogModel()
{
Momento = Agora,
Inicializado = Variaveis.OperacaoEmAndamento.DispAtu.Dados.Conectado,
QualidadeWifi = Variaveis.OperacaoEmAndamento.DispAtu.Dados.DadosLeitura.QualidadeWifi,
LatenciaLoop = Variaveis.OperacaoEmAndamento.DispAtu.Dados.DadosLeitura.LatenciaLoop,
MassaReservatorio = Variaveis.OperacaoEmAndamento.DispAtu.Dados.MassaReservatorio,
PercentualReservatorio = Variaveis.OperacaoEmAndamento.DispAtu.Dados.PercentualReservatorio,
VolumeReservatorio = Variaveis.OperacaoEmAndamento.DispAtu.Dados.VolumeReservatorio,
PressaoLinha_SP = Variaveis.OperacaoEmAndamento.Controle.PressaoLinha,
PressaoLinha = Variaveis.OperacaoEmAndamento.DispAtu.Dados.PressaoLinha,
PotenciaBomba = Variaveis.OperacaoEmAndamento.DispAtu.Dados.BombaPressurizadora.LeituraPotencia,
BombaLigada = Variaveis.OperacaoEmAndamento.DispAtu.Dados.BombaPressurizadora.ComandoAtuar,
VazaoFluxoMLpSInstantanea = Variaveis.OperacaoEmAndamento.DispAtu.Dados.VazaoFluxoMLpSInstantanea,
VazaoFluxoMLpSMedia = Variaveis.OperacaoEmAndamento.DispAtu.Dados.VazaoFluxoMLpSMedia,
VolumeVazaoML = Variaveis.OperacaoEmAndamento.DispAtu.Dados.VolumeVazaoML,
QuantidadeBicos = Variaveis.OperacaoEmAndamento.DispAtu.Dados.QuantidadeBicos,
TempoPulverizadorAtuado = Variaveis.OperacaoEmAndamento.DispAtu.Dados.TempoAtuado,
Bicos = Variaveis.OperacaoEmAndamento.DispAtu.Dados.BicosPulverizadores.Select(Bico => new AtuBicoSensoriamentoLogModel()
PzmSensoriamentoLogModel logPzm = new PzmSensoriamentoLogModel()
{
ID = Bico.ID,
Inicializado = Bico.Inicializado,
Comandar = Bico.Comandar,
Atuado = Bico.ComandoAtuar,
MediaNivelFluxo = Bico.MediaNivelFluxo,
Posicao = Bico.Posicao,
StatusBico = Bico.LeituraStatusBico,
Atuacoes = Bico.Atuacoes,
TempoAtuado = Bico.TempoAtuado,
}).ToList(),
UltimoComandoRespondido = Variaveis.OperacaoEmAndamento.DispAtu.Dados.DadosLeitura.Momento,
};
SalvarLog(T_Code.Atu.ToString(), logAtu, false);
var senLeitura = Variaveis.OperacaoEmAndamento.DispSen.Dados.DadosLeitura;
SensoriamentoMensagemJsonModel logSen = new SensoriamentoMensagemJsonModel()
{
Momento = Agora,
Conectado = senLeitura.Conectado,
LatenciaLoop = senLeitura.LatenciaLoop,
QualidadeWifi = senLeitura.QualidadeWifi,
Mod_ID = senLeitura.Mod_ID,
Reles = new List<FirmwareRele>(senLeitura.Reles),
SensoresCorrente = new List<FirmwareSensorCorrente>(senLeitura.SensoresCorrente),
SensoresTemperatura = new List<FirmwareSensorTemperatura>(senLeitura.SensoresTemperatura),
ServoFreios = new List<FirmwareServoFreio>(senLeitura.ServoFreios),
Sinaleiros = new List<FirmwareSinaleiro>(senLeitura.Sinaleiros),
UltimoComandoRespondido = senLeitura.Momento,
};
SalvarLog(T_Code.Sen.ToString(), logSen, false);
PzmSensoriamentoLogModel logPzm = new PzmSensoriamentoLogModel()
{
Momento = Agora,
Inicializado = PZEMService.Iniciado,
DataHora = PZEMService.UltimaLeitura.DataHora,
Tensao = PZEMService.UltimaLeitura.Tensao,
Corrente = PZEMService.UltimaLeitura.Corrente,
Potencia = PZEMService.UltimaLeitura.Potencia,
Energia = PZEMService.UltimaLeitura.Energia,
AlarmeTensaoMin = PZEMService.UltimaLeitura.AlarmeTensaoMin,
AlarmeTensaoMax = PZEMService.UltimaLeitura.AlarmeTensaoMax,
CargaAtualAmp = PZEMService.ContadorCarga.CargaAtualAmp,
CargaConsumidaAmp = PZEMService.ContadorCarga.ConsumidoAmp,
CargaConsumidaPercentual = PZEMService.ContadorCarga.PercentualConsumido,
UltimoComandoRespondido = PZEMService.UltimaLeitura.DataHora,
};
SalvarLog(T_Code.Pzm.ToString(), logPzm, Fim);
WitSensoriamentoLogModel logWit = new WitSensoriamentoLogModel()
{
Momento = Agora,
Inicializado = WT901CService.Iniciado,
DataHora = WT901CService.DadosLeitura.DataHora,
AccM = WT901CService.DadosLeitura.AccM,
Altitude = WT901CService.DadosLeitura.Altitude,
AngleX = WT901CService.DadosLeitura.AngleX,
AngleY = WT901CService.DadosLeitura.AngleY,
AngleZ = WT901CService.DadosLeitura.AngleZ,
AsM = WT901CService.DadosLeitura.AsM,
HM = WT901CService.DadosLeitura.HM,
Pressao = WT901CService.DadosLeitura.Pressao,
Temperatura = WT901CService.DadosLeitura.Temperatura,
UltimoComandoRespondido = WT901CService.DadosLeitura.Momento,
};
SalvarLog(T_Code.Wit.ToString(), logWit, Fim);
UltrasonicA05Model logA05 = new UltrasonicA05Model()
{
Momento = Agora,
Endereco = UltrasonicA05Service.slaveAddress,
Conectado = UltrasonicA05Service.Iniciado,
U1 = UltrasonicA05Service.DadosLeitura.U1,
U2 = UltrasonicA05Service.DadosLeitura.U2,
U3 = UltrasonicA05Service.DadosLeitura.U3,
U4 = UltrasonicA05Service.DadosLeitura.U4,
Configuracao = UltrasonicA05Service.DadosLeitura.Configuracao ?? Variaveis.OperacaoEmAndamento.DispSen.Dados.ConfiguracaoSensorUltrassom,
UltimoComandoRespondido = UltrasonicA05Service.DadosLeitura.Momento,
};
SalvarLog(T_Code.A05.ToString(), logA05, Fim);
SalvarLogKinect(Agora);
Task.Run(async () => await SalvarLogCameras(Agora));
string ArquivoOp = Variaveis.CaminhoOperacoes + Variaveis.OperacaoEmAndamento.ID + "/data.lgop";
if (!File.Exists(ArquivoOp))
{
var data = new OperacaoDadosModel()
{
id = Variaveis.OperacaoEmAndamento.ID,
operacao = "operacao",
gps = T_Code.Gps.ToString(),
dir = T_Code.Dir.ToString(),
mov = T_Code.Mov.ToString(),
atu = T_Code.Atu.ToString(),
sen = T_Code.Sen.ToString(),
pzm = T_Code.Pzm.ToString(),
wit = T_Code.Wit.ToString(),
a05 = T_Code.A05.ToString(),
knt = T_Code.Knt.ToString(),
caminho = Variaveis.OperacaoEmAndamento.CameraCaminhoKinect.Nome,
soloE = Variaveis.OperacaoEmAndamento.CamerasSolo.FirstOrDefault()?.Nome ?? "solo0",
soloD = Variaveis.OperacaoEmAndamento.CamerasSolo.Skip(1)?.FirstOrDefault()?.Nome ?? "solo1"
Momento = Agora,
Inicializado = PZEMService.Iniciado,
DataHora = PZEMService.UltimaLeitura.DataHora,
Tensao = PZEMService.UltimaLeitura.Tensao,
Corrente = PZEMService.UltimaLeitura.Corrente,
Potencia = PZEMService.UltimaLeitura.Potencia,
Energia = PZEMService.UltimaLeitura.Energia,
AlarmeTensaoMin = PZEMService.UltimaLeitura.AlarmeTensaoMin,
AlarmeTensaoMax = PZEMService.UltimaLeitura.AlarmeTensaoMax,
CargaAtualAmp = PZEMService.ContadorCarga.CargaAtualAmp,
CargaConsumidaAmp = PZEMService.ContadorCarga.ConsumidoAmp,
CargaConsumidaPercentual = PZEMService.ContadorCarga.PercentualConsumido,
UltimoComandoRespondido = PZEMService.UltimaLeitura.DataHora,
};
File.WriteAllText(ArquivoOp, JsonConvert.SerializeObject(data));
SalvarLog(T_Code.Pzm.ToString(), logPzm, Fim);
WitSensoriamentoLogModel logWit = new WitSensoriamentoLogModel()
{
Momento = Agora,
Inicializado = WT901CService.Iniciado,
DataHora = WT901CService.DadosLeitura.DataHora,
AccM = WT901CService.DadosLeitura.AccM,
Altitude = WT901CService.DadosLeitura.Altitude,
AngleX = WT901CService.DadosLeitura.AngleX,
AngleY = WT901CService.DadosLeitura.AngleY,
AngleZ = WT901CService.DadosLeitura.AngleZ,
AsM = WT901CService.DadosLeitura.AsM,
HM = WT901CService.DadosLeitura.HM,
Pressao = WT901CService.DadosLeitura.Pressao,
Temperatura = WT901CService.DadosLeitura.Temperatura,
UltimoComandoRespondido = WT901CService.DadosLeitura.Momento,
};
SalvarLog(T_Code.Wit.ToString(), logWit, Fim);
UltrasonicA05Model logA05 = new UltrasonicA05Model()
{
Momento = Agora,
Endereco = UltrasonicA05Service.slaveAddress,
Conectado = UltrasonicA05Service.Iniciado,
U1 = UltrasonicA05Service.DadosLeitura.U1,
U2 = UltrasonicA05Service.DadosLeitura.U2,
U3 = UltrasonicA05Service.DadosLeitura.U3,
U4 = UltrasonicA05Service.DadosLeitura.U4,
Configuracao = UltrasonicA05Service.DadosLeitura.Configuracao ?? Variaveis.OperacaoEmAndamento.DispSen.Dados.ConfiguracaoSensorUltrassom,
UltimoComandoRespondido = UltrasonicA05Service.DadosLeitura.Momento,
};
SalvarLog(T_Code.A05.ToString(), logA05, Fim);
SalvarLogKinect(Agora);
Task.Run(async () => await SalvarLogCameras(Agora));
string ArquivoOp = Variaveis.CaminhoOperacoes + Variaveis.OperacaoEmAndamento.ID + "/data.lgop";
if (!File.Exists(ArquivoOp))
{
var data = new OperacaoDadosModel()
{
id = Variaveis.OperacaoEmAndamento.ID,
operacao = "operacao",
gps = T_Code.Gps.ToString(),
dir = T_Code.Dir.ToString(),
mov = T_Code.Mov.ToString(),
atu = T_Code.Atu.ToString(),
sen = T_Code.Sen.ToString(),
pzm = T_Code.Pzm.ToString(),
wit = T_Code.Wit.ToString(),
a05 = T_Code.A05.ToString(),
knt = T_Code.Knt.ToString(),
cam_caminho = Variaveis.OperacaoEmAndamento.CameraCaminho.Nome,
cam_solo = Variaveis.OperacaoEmAndamento.CamerasSolo.Select( x=> x.Nome).ToList(),
};
File.WriteAllText(ArquivoOp, JsonConvert.SerializeObject(data));
}
Variaveis.OperacaoEmAndamento.idxLog++;
if (Variaveis.OperacaoEmAndamento.idxLog % 5 == 0)
{
LoRaService.EnviarDadosParaBase();
}
}
Variaveis.OperacaoEmAndamento.idxLog++;
if (Variaveis.OperacaoEmAndamento.idxLog % 5 == 0)
{
LoRaService.EnviarDadosParaBase();
}
}
catch (Exception ex)
{
Console.WriteLine("Erro ao salvar log: " + ex.Message);
}
}
@ -2012,7 +2038,7 @@ namespace AgroBase.Models
private async Task SalvarLogCameras(DateTime Agora)
{
var cameraCaminho = Variaveis.OperacaoEmAndamento.CameraCaminhoKinect;
var cameraCaminho = Variaveis.OperacaoEmAndamento.CameraCaminho;
var Cameras = Variaveis.OperacaoEmAndamento.CamerasSolo.Select(x => new
{
@ -2881,9 +2907,8 @@ namespace AgroBase.Models
public string wit { get; set; }
public string knt { get; set; }
public string a05 { get; set; }
public string caminho { get; set; }
public string soloE { get; set; }
public string soloD { get; set; }
public string cam_caminho { get; set; }
public List<string> cam_solo { get; set; }
}
public class OperacaoSensoriamentoLogModel

View File

@ -19,5 +19,6 @@ namespace AgroBase.Models.Operacoes
public MapasModel Mapa { get; set; }
public UltrasonicA05Configuracoes ConfiguracaoUltrassom { get; set; }
public bool SonarAtivado { get; set; }
public int QtdCamerasSolo { get; set; }
}
}

View File

@ -21,7 +21,7 @@ namespace AgroBase.Services
private string Endereco = "localhost";
public string ArquivoLeitura = "leitura.json";
public int selectedCamera = 0;
public int cameraIndex = 0;
private double conf_threshold = 0.5;
private double nms_threshold = 0.4;
public string URLcamera = "";
@ -40,7 +40,9 @@ namespace AgroBase.Services
URLcamera = "http://" + Endereco + ":" + FlaskPorta + "/" + FlaskUrl +
"?conf_threshold=" + conf_threshold.ToString().Replace(",", ".") +
"&nms_threshold=" + nms_threshold.ToString().Replace(",", ".") +
"&camera_index=" + (selectedCamera - 1);
"&camera_index=" + cameraIndex;
Console.WriteLine(URLcamera);
});
}

View File

@ -0,0 +1,48 @@
using AgroBase.Models;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
namespace AgroBase.Services
{
public class OAKCameraService
{
public static List<OAKCameraModel> GetConnectedCameras()
{
var cameras = new List<OAKCameraModel>()
{
new OAKCameraModel()
{
Id = "Sem video",
Index = -1,
Model = "",
Usb_Speed = ""
}
};
try
{
string output = PythonService.RunScriptWithCallback(PythonService.ScriptListOAK, new string[] { });
if (string.IsNullOrWhiteSpace(output))
{
Console.WriteLine("Nenhuma saída do script Python.");
return cameras;
}
// Converte o JSON para uma lista de objetos OakCamera
List<OAKCameraModel> _cameras = JsonConvert.DeserializeObject<OAKCameraModel[]>(output).ToList();
cameras.AddRange(_cameras);
return cameras;
}
catch (Exception ex)
{
Console.WriteLine($"Erro ao executar script Python: {ex.Message}");
return cameras;
}
}
}
}

View File

@ -56,6 +56,14 @@ namespace AgroBase.Services
return VersionamentoService.ArquivoScript(Enums.TipoArquivoVersionado.Script_GpsViewer).NomeArquivoLocal;
}
}
public static string ScriptListOAK
{
get
{
return VersionamentoService.ArquivoScript(Enums.TipoArquivoVersionado.ScriptListOAKCaneras).NomeArquivoLocal;
}
}
private static List<Process> processosIniciados = new List<Process>();
@ -121,6 +129,41 @@ namespace AgroBase.Services
return true;
}
public static string RunScriptWithCallback(string Script, string[] Argumentos)
{
try
{
string ScriptPath = CaminhoGeral + CaminhoScripts + Script;
string Args = string.Join(" ", Argumentos.Select(arg => $"\"{arg.Replace("\\", "/")}\""));
Process pythonProcess = new Process
{
StartInfo = new ProcessStartInfo
{
FileName = "python",
Arguments = $"{ScriptPath} {Args}",
UseShellExecute = false,
RedirectStandardOutput = true,
RedirectStandardError = true,
CreateNoWindow = true,
Verb = Variaveis.NomeAplicacao
}
};
pythonProcess.Start();
string output = pythonProcess.StandardOutput.ReadToEnd();
pythonProcess.WaitForExit();
return output;
}
catch (Exception ex)
{
Console.WriteLine($"Erro ao iniciar script Python: {ex.Message}");
return null;
}
}
private static void PythonProcess_ErrorDataReceived(object sender, DataReceivedEventArgs e)
{
if (!string.IsNullOrWhiteSpace(e.Data))

View File

@ -310,3 +310,5 @@
29/01/2025 10:31:26:832 - Porta COM20 - 0: Erro ao processar fila de comandos. Erro=The port is closed.
29/01/2025 14:06:11:484 - Porta COM20 - 0: Erro ao processar fila de comandos. Erro=The port is closed.
29/01/2025 14:28:23:051 - Porta COM20 - 0: Erro ao processar fila de comandos. Erro=The port is closed.
19/02/2025 16:02:07:001 - Porta COM - 0: Erro ao processar fila de comandos. Erro=The port is closed.
19/02/2025 16:05:23:105 - Porta COM77 - 0: Erro ao processar fila de comandos. Erro=The port is closed.

View File

@ -20282,3 +20282,887 @@ Parameter name: source
14/02/2025 16:17:40:530 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
14/02/2025 16:18:04:814 - Endereço 222 (192.168.105.11): Dados inválidos recebidos: [FB-DE-26-F5-22-F4-20-E6]
14/02/2025 16:18:04:815 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:13:15:369 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:13:15:370 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:13:20:346 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:13:20:346 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:13:25:436 - Endereço 99 (192.168.105.11): Dados inválidos recebidos: [FB-63-6A-7F-00-00-00-30]
19/02/2025 13:13:25:437 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:13:35:474 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [03-F5-02-F5]
19/02/2025 13:13:35:475 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:13:35:478 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:13:35:478 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:13:50:521 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [FB-F5-9A-1F-FF]
19/02/2025 13:13:50:522 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:14:00:621 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:14:00:621 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:14:05:605 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:14:05:606 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:14:10:688 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:14:10:688 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:14:15:740 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:14:15:741 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:14:20:736 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:14:20:736 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:14:20:768 - Endereço 2 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
19/02/2025 13:14:25:730 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:14:25:730 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:14:25:744 - Endereço 2 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
19/02/2025 13:14:30:727 - Endereço 145 (192.168.105.11): Dados inválidos recebidos: [FB-91-FF-EA]
19/02/2025 13:14:30:728 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:14:35:732 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [02-F5]
19/02/2025 13:14:35:733 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:14:35:741 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:14:35:742 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:14:40:735 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:14:40:736 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:14:45:776 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [03-F5-02-F5]
19/02/2025 13:14:45:776 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:14:45:780 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:14:45:781 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:14:45:786 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:14:45:787 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:14:45:790 - Endereço 64 (192.168.105.11): Dados inválidos recebidos: [0F-40]
19/02/2025 13:14:45:790 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:14:45:801 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:14:45:802 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:14:50:851 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:14:50:852 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:14:55:829 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:14:55:829 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:14:55:832 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:14:55:833 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:15:00:840 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:15:00:841 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:15:05:855 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:15:05:856 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:15:10:959 - Endereço 255 (192.168.105.11): Dados inválidos recebidos: [50-FF]
19/02/2025 13:15:10:960 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:15:15:915 - Endereço 130 (192.168.105.11): Dados inválidos recebidos: [FB-82-BF-AF-BF]
19/02/2025 13:15:15:916 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:15:20:973 - Endereço 160 (192.168.105.11): Dados inválidos recebidos: [BF-A0-9F-F5]
19/02/2025 13:15:20:974 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:15:25:949 - Endereço 2 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
19/02/2025 13:15:31:041 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:15:31:041 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:15:36:001 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:15:36:001 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:15:51:110 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:15:51:111 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:15:56:190 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [9F-F5]
19/02/2025 13:15:56:190 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:16:01:146 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:16:01:146 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:16:06:220 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:16:06:220 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:16:11:221 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:16:11:221 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:16:11:249 - Endereço 4 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
19/02/2025 13:16:16:236 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:16:16:237 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:16:21:223 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [02-F5]
19/02/2025 13:16:21:224 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:16:26:308 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:16:26:309 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:16:31:295 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:16:31:296 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:16:41:423 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:16:41:424 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:16:51:484 - Endereço 86 (192.168.105.11): Dados inválidos recebidos: [FB-56-D3-FD-FF]
19/02/2025 13:16:51:484 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:16:56:429 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:16:56:429 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:16:56:433 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:16:56:433 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:17:01:509 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:17:01:509 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:17:01:525 - Endereço 2 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
19/02/2025 13:17:11:533 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:17:11:535 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:17:16:563 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:17:16:563 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:17:21:523 - Endereço 255 (192.168.105.11): Dados inválidos recebidos: [50-FF]
19/02/2025 13:17:21:523 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:17:26:589 - Endereço 127 (192.168.105.11): Dados inválidos recebidos: [FB-7F-BF-FB-40]
19/02/2025 13:17:26:589 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:17:31:549 - Endereço 110 (192.168.105.11): Dados inválidos recebidos: [FB-6E-BD-0A-F5]
19/02/2025 13:17:31:549 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:17:41:613 - Endereço 162 (192.168.105.11): Dados inválidos recebidos: [FB-A2-BF-A0-9F-F7-82-FE]
19/02/2025 13:17:41:614 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:17:46:683 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [02-F5]
19/02/2025 13:17:46:683 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:17:56:714 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:17:56:714 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:18:01:700 - Endereço 255 (192.168.105.11): Dados inválidos recebidos: [FF-FF]
19/02/2025 13:18:01:700 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:18:01:705 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:18:01:705 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:18:01:708 - Endereço 0 (192.168.105.11): Dados inválidos recebidos: [33-00-00-00-00]
19/02/2025 13:18:01:709 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:18:01:716 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:18:01:716 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:18:11:797 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [9F-F5]
19/02/2025 13:18:11:798 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:18:16:853 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:18:16:853 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:18:21:831 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:18:21:832 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:18:26:885 - Endereço 2 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
19/02/2025 13:18:31:896 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:18:31:896 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:18:46:990 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [03-F5-02-F5]
19/02/2025 13:18:46:991 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:18:57:020 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:18:57:022 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:19:02:016 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:19:02:017 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:19:02:023 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:19:02:023 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:19:02:029 - Endereço 64 (192.168.105.11): Dados inválidos recebidos: [0F-40]
19/02/2025 13:19:02:029 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:19:02:040 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:19:02:040 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:19:12:157 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:19:12:158 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:19:17:131 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:19:17:131 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:19:27:184 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [02-F5]
19/02/2025 13:19:27:184 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:19:32:281 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:19:32:281 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:19:37:259 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [03-F5-02-F5]
19/02/2025 13:19:37:259 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:19:37:266 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:19:37:267 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:19:54:339 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:19:54:339 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:20:01:323 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:20:01:324 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:20:01:327 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:20:01:328 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:20:06:375 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:20:06:376 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:20:11:418 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:20:11:419 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:20:16:401 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:20:16:403 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:20:21:489 - Endereço 160 (192.168.105.11): Dados inválidos recebidos: [7D-A0-FF]
19/02/2025 13:20:21:489 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:20:41:547 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:20:41:548 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:20:51:615 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:20:51:615 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:20:56:621 - Endereço 55 (192.168.105.11): Dados inválidos recebidos: [FB-37-7D-50-1F-00-30]
19/02/2025 13:20:56:621 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:21:01:711 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:21:01:712 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:21:08:644 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:21:08:644 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:21:08:660 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:21:08:661 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:21:15:684 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [02-F5]
19/02/2025 13:21:15:684 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:21:20:753 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:21:20:754 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:21:25:765 - Endereço 63 (192.168.105.11): Dados inválidos recebidos: [FB-3F-F5-D3-FD]
19/02/2025 13:21:25:766 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:21:30:852 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:21:30:853 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:21:40:949 - Endereço 2 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
19/02/2025 13:21:45:918 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [02-F5]
19/02/2025 13:21:45:918 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:21:50:984 - Endereço 160 (192.168.105.11): Dados inválidos recebidos: [BF-A0-9F-F5]
19/02/2025 13:21:50:986 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:21:55:956 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:21:55:956 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:22:01:046 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:22:01:046 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:22:11:069 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:22:11:069 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:22:16:110 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:22:16:111 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:22:21:066 - Endereço 160 (192.168.105.11): Dados inválidos recebidos: [BF-A0-9F-F5]
19/02/2025 13:22:21:066 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:22:26:157 - Endereço 218 (192.168.105.11): Dados inválidos recebidos: [FB-DA-27-F5-22-F5-20-FE]
19/02/2025 13:22:26:158 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:22:36:202 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:22:36:203 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:22:46:302 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:22:46:302 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:22:56:341 - Endereço 2 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
19/02/2025 13:23:01:333 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:23:01:333 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:23:01:345 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:23:01:345 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:23:16:429 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:23:16:430 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:23:21:413 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:23:21:414 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:23:21:425 - Endereço 2 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
19/02/2025 13:23:26:508 - Endereço 2 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
19/02/2025 13:23:31:484 - Endereço 178 (192.168.105.11): Dados inválidos recebidos: [FB-B2-BF-A0-9F-F7-C1]
19/02/2025 13:23:31:484 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:23:41:555 - Endereço 19 (192.168.105.11): Dados inválidos recebidos: [FF-13-BF-EA]
19/02/2025 13:23:41:555 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:24:01:646 - Endereço 2 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
19/02/2025 13:24:06:644 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:24:06:644 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:24:06:647 - Endereço 48 (192.168.105.11): Dados inválidos recebidos: [00-30]
19/02/2025 13:24:06:647 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:24:11:679 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:24:11:679 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:24:16:799 - Endereço 210 (192.168.105.11): Dados inválidos recebidos: [FB-D2-50-9F-50-1F-30]
19/02/2025 13:24:16:799 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:24:21:807 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:24:21:807 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:24:41:891 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:24:41:892 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:24:51:876 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:24:51:877 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:24:51:887 - Endereço 2 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
19/02/2025 13:24:56:982 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:24:56:982 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:24:56:996 - Endereço 2 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
19/02/2025 13:25:01:954 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:25:01:954 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:25:06:965 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:25:06:965 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:25:06:970 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:25:06:970 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:25:06:973 - Endereço 15 (192.168.105.11): Dados inválidos recebidos: [34-0F-40]
19/02/2025 13:25:06:973 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:25:06:990 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:25:06:990 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:25:12:004 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:25:12:004 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:25:16:989 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:25:16:989 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:25:22:071 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:25:22:071 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:25:27:032 - Endereço 191 (192.168.105.11): Dados inválidos recebidos: [FB-BF-D9-9F-F7-02-30]
19/02/2025 13:25:27:032 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:25:37:152 - Endereço 253 (192.168.105.11): Dados inválidos recebidos: [FF-FD]
19/02/2025 13:25:37:152 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:25:37:157 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:25:37:157 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:25:37:161 - Endereço 0 (192.168.105.11): Dados inválidos recebidos: [33-00-00-00-00]
19/02/2025 13:25:37:162 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:25:42:151 - Endereço 2 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
19/02/2025 13:25:47:229 - Endereço 251 (192.168.105.11): Dados inválidos recebidos: [FB-FB]
19/02/2025 13:25:47:230 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:25:52:202 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:25:52:203 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:26:02:256 - Endereço 161 (192.168.105.11): Dados inválidos recebidos: [FF-A1-03-F5-01-00-30]
19/02/2025 13:26:02:257 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:26:07:359 - Endereço 2 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
19/02/2025 13:26:12:377 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:26:12:377 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:26:17:342 - Endereço 253 (192.168.105.11): Dados inválidos recebidos: [FF-FD]
19/02/2025 13:26:17:342 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:26:17:347 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:26:17:347 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:26:17:350 - Endereço 0 (192.168.105.11): Dados inválidos recebidos: [33-00-00-00-00]
19/02/2025 13:26:17:350 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:26:22:327 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:26:22:327 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:26:27:406 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:26:27:407 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:26:32:399 - Endereço 2 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
19/02/2025 13:26:42:522 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:26:42:523 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:26:47:501 - Endereço 2 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
19/02/2025 13:26:52:598 - Endereço 162 (192.168.105.11): Dados inválidos recebidos: [FB-A2-9F-AF-BF]
19/02/2025 13:26:52:598 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:26:57:579 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:26:57:581 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:27:07:575 - Endereço 194 (192.168.105.11): Dados inválidos recebidos: [FB-C2-5F-DF-50]
19/02/2025 13:27:07:575 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:27:12:573 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:27:12:573 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:27:17:624 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:27:17:625 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:27:22:680 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [9F-F5]
19/02/2025 13:27:22:680 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:27:27:771 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [03-F5-02-F5]
19/02/2025 13:27:27:772 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:27:27:782 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:27:27:782 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:27:27:799 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:27:27:799 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:27:42:808 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [02-F5]
19/02/2025 13:27:42:809 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:27:47:824 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:27:47:824 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:27:52:839 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:27:52:839 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:27:57:827 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:27:57:828 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:28:02:901 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:28:02:902 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:28:07:892 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:28:07:892 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:28:12:922 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [FB-F5-9A-1F-FF]
19/02/2025 13:28:12:922 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:28:17:923 - Endereço 130 (192.168.105.11): Dados inválidos recebidos: [FB-82-FF-83-7D-A0-1F-FE]
19/02/2025 13:28:17:923 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:28:23:017 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:28:23:017 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:28:33:020 - Endereço 255 (192.168.105.11): Dados inválidos recebidos: [FF-FF]
19/02/2025 13:28:33:020 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:28:33:037 - Endereço 2 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
19/02/2025 13:28:38:070 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:28:38:070 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:28:43:133 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [03-F5-02-F5]
19/02/2025 13:28:43:133 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:28:48:081 - Endereço 2 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
19/02/2025 13:29:33:795 - Endereço 2 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
19/02/2025 13:29:43:856 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:29:43:860 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:29:58:915 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:29:58:916 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:30:18:965 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:30:18:965 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:30:28:951 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:30:28:952 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:30:34:068 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:30:34:068 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:40:59:671 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [02-F5]
19/02/2025 13:40:59:672 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:41:04:655 - Endereço 2 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
19/02/2025 13:41:09:645 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:41:09:645 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:41:14:710 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:41:14:710 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:41:24:769 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:41:24:770 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:41:29:755 - Endereço 161 (192.168.105.11): Dados inválidos recebidos: [FF-A1-7D-AA-FF]
19/02/2025 13:41:29:756 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:41:44:809 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:41:44:810 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:41:59:887 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [03-F5-02-F5]
19/02/2025 13:41:59:888 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:42:05:006 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:42:05:006 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:42:05:009 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:42:05:010 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:42:09:978 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:42:09:978 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:42:14:993 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:42:14:993 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:42:20:012 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:42:20:013 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:42:25:004 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:42:25:005 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:42:30:117 - Endereço 159 (192.168.105.11): Dados inválidos recebidos: [A0-9F-F5]
19/02/2025 13:42:30:117 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:42:35:059 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:42:35:059 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:42:40:091 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:42:40:091 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:42:45:177 - Endereço 2 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
19/02/2025 13:43:05:245 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:43:05:246 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:43:10:233 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:43:10:233 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:43:10:237 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:43:10:237 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:43:15:271 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:43:15:273 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:43:25:301 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:43:25:301 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:43:25:304 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:43:25:304 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:43:30:361 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [9F-F5]
19/02/2025 13:43:30:361 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:43:35:391 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:43:35:391 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:43:45:410 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [03-F5-02-F5]
19/02/2025 13:43:45:410 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:43:55:472 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:43:55:472 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:44:00:513 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:44:00:515 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:44:00:531 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:44:00:532 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:44:05:611 - Endereço 2 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
19/02/2025 13:44:10:524 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:44:10:524 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:44:15:648 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:44:15:649 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:44:20:631 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [03-F5-02-F5]
19/02/2025 13:44:20:631 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 13:44:20:643 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:44:20:643 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:44:20:661 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:44:20:662 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:44:25:623 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:44:25:623 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:44:25:676 - Endereço 4 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
19/02/2025 13:44:30:702 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 13:44:30:702 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 13:44:35:767 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [9F-F5]
19/02/2025 13:44:35:767 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 14:13:50:408 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:13:50:408 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 14:13:50:422 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:13:50:422 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 14:13:50:455 - Endereço 4 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
19/02/2025 14:14:04:431 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [02-F5]
19/02/2025 14:14:04:431 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 14:14:04:445 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:14:04:446 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 14:14:04:463 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:14:04:464 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 14:14:18:488 - Endereço 178 (192.168.105.11): Dados inválidos recebidos: [FB-B2-13-F5-12-F5-10-FE]
19/02/2025 14:14:18:489 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 14:14:25:501 - Endereço 160 (192.168.105.11): Dados inválidos recebidos: [BF-A0-9F-F5]
19/02/2025 14:14:25:501 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 14:14:32:538 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:14:32:538 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 14:14:39:587 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:14:39:588 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 14:14:46:619 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [02-F5]
19/02/2025 14:14:46:620 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 14:14:53:660 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:14:53:661 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 14:15:00:757 - Endereço 2 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
19/02/2025 14:15:07:716 - Endereço 2 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
19/02/2025 14:15:14:802 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:15:14:803 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 14:15:21:871 - Endereço 118 (192.168.105.11): Dados inválidos recebidos: [FB-76-BF-FD-30]
19/02/2025 14:15:21:872 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 14:15:35:882 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [02-F5]
19/02/2025 14:15:35:882 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 14:15:49:944 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [02-F5]
19/02/2025 14:15:49:944 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 14:15:49:950 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:15:49:950 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 14:15:56:991 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:15:56:991 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 14:16:04:008 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:16:04:009 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 14:16:11:041 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:16:11:042 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 14:16:18:126 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:16:18:126 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 14:16:25:168 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:16:25:168 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 14:16:32:173 - Endereço 161 (192.168.105.11): Dados inválidos recebidos: [FF-A1-03-F5-00-00-30]
19/02/2025 14:16:32:173 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 14:16:39:148 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:16:39:148 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 14:16:46:190 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:16:46:191 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 14:17:21:425 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:17:21:426 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 14:17:28:431 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:17:28:432 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 14:17:35:525 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [02-F5]
19/02/2025 14:17:35:525 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 14:17:42:574 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:17:42:574 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 14:17:56:646 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:17:56:646 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 14:18:03:685 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:18:03:686 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 14:18:10:736 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:18:10:736 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 14:18:10:753 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:18:10:753 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 14:18:17:778 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [03-F5-02-F5]
19/02/2025 14:18:17:778 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 14:18:17:790 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:18:17:791 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 14:18:17:827 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:18:17:828 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 14:18:38:868 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:18:38:869 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 14:18:45:943 - Endereço 159 (192.168.105.11): Dados inválidos recebidos: [A0-9F-F5]
19/02/2025 14:18:45:944 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 14:18:52:963 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:18:52:964 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 14:18:59:921 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:18:59:922 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 14:19:06:942 - Endereço 159 (192.168.105.11): Dados inválidos recebidos: [50-9F-F5]
19/02/2025 14:19:06:942 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 14:19:14:063 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:19:14:064 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 14:19:28:010 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:19:28:010 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 14:19:35:089 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:19:35:090 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 14:19:49:171 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:19:49:171 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 14:19:56:146 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:19:56:147 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 14:19:56:151 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:19:56:151 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 14:20:03:210 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:20:03:210 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 14:20:10:273 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:20:10:274 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 14:20:24:256 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:20:24:256 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 14:20:31:288 - Endereço 238 (192.168.105.11): Dados inválidos recebidos: [FB-EE-4F-9F-55]
19/02/2025 14:20:31:289 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 14:20:38:352 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:20:38:353 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 14:20:38:363 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:20:38:364 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 14:20:38:382 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:20:38:383 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 14:20:45:398 - Endereço 251 (192.168.105.11): Dados inválidos recebidos: [FB-FB-33-F5-02-F5-80-30]
19/02/2025 14:20:45:399 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 14:20:52:445 - Endereço 160 (192.168.105.11): Dados inválidos recebidos: [7D-A0-FF]
19/02/2025 14:20:52:446 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 14:20:59:407 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:20:59:408 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 14:21:06:439 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 14:21:06:440 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 15:11:08:995 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 15:11:08:995 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 15:11:09:014 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 15:11:09:014 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 15:11:37:186 - Endereço 86 (192.168.105.11): Dados inválidos recebidos: [FB-56-A1-3F-00-00-30]
19/02/2025 15:11:37:187 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 15:11:44:209 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 15:11:44:209 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 15:11:51:317 - Endereço 2 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
19/02/2025 15:11:58:319 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 15:11:58:319 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 15:12:05:307 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 15:12:05:308 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 15:12:12:373 - Endereço 238 (192.168.105.11): Dados inválidos recebidos: [FB-EE-AA-42-F5-40-FE]
19/02/2025 15:12:12:374 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 15:12:26:381 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [03-F5-02-F5]
19/02/2025 15:12:26:382 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 15:12:26:385 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 15:12:26:385 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 16:34:59:700 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 16:34:59:701 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 16:36:58:757 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 16:36:58:758 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 16:36:58:786 - Endereço 1 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
19/02/2025 16:36:59:817 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 16:36:59:818 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 16:43:52:272 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 16:43:52:273 - Endereço 3 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 16:43:58:294 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 16:43:58:295 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 16:43:58:298 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 16:43:58:298 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 16:46:17:952 - Endereço 191 (192.168.105.11): Dados inválidos recebidos: [DB-BF-A0-9F-F5]
19/02/2025 16:46:17:952 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 16:49:31:031 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 16:49:31:031 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 16:51:26:534 - Endereço 159 (192.168.105.11): Dados inválidos recebidos: [50-9F-F5]
19/02/2025 16:51:26:534 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 16:52:27:398 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 16:52:27:398 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 16:52:27:403 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 16:52:27:403 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 16:54:09:657 - Endereço 160 (192.168.105.11): Dados inválidos recebidos: [BF-A0-9F-F5]
19/02/2025 16:54:09:657 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 17:02:32:692 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 17:02:32:693 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
19/02/2025 17:03:45:714 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 17:03:45:714 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
19/02/2025 17:05:40:635 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
19/02/2025 17:05:40:635 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 07:57:45:765 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 07:57:45:765 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:13:24:982 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:13:24:983 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 08:13:34:000 - Endereço 251 (192.168.105.11): Dados inválidos recebidos: [FB-FB-67-7D-70]
20/02/2025 08:13:34:000 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:13:34:019 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:13:34:020 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 08:13:34:032 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:13:34:032 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:13:35:029 - Endereço 130 (192.168.105.11): Dados inválidos recebidos: [FB-82]
20/02/2025 08:13:35:030 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:13:49:187 - Endereço 3 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=13
20/02/2025 08:13:49:196 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:13:49:196 - Endereço 3 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=13
20/02/2025 08:13:49:201 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:13:49:202 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=13
20/02/2025 08:13:49:235 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:13:49:236 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 08:13:49:239 - Endereço 51 (192.168.105.11): Dados inválidos recebidos: [01-33-00-00-00-00-2F]
20/02/2025 08:13:49:239 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 08:13:49:242 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:13:49:243 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:14:17:461 - Endereço 2 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
20/02/2025 08:14:17:481 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:14:17:481 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 08:18:20:749 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [01-F5-02-F3]
20/02/2025 08:18:20:749 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=13
20/02/2025 08:18:57:294 - Endereço 243 (192.168.105.11): Dados inválidos recebidos: [02-F3]
20/02/2025 08:18:57:295 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=13
20/02/2025 08:18:57:300 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:18:57:301 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=13
20/02/2025 08:19:29:559 - Endereço 3 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=13
20/02/2025 08:19:29:606 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [04-F5-02-F6-FF]
20/02/2025 08:19:29:606 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=13
20/02/2025 08:19:29:627 - Endereço 243 (192.168.105.11): Dados inválidos recebidos: [02-F3]
20/02/2025 08:19:29:627 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 08:19:29:631 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:19:29:631 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 08:24:20:379 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=13
20/02/2025 08:24:24:481 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=13
20/02/2025 08:24:25:517 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=13
20/02/2025 08:24:25:544 - Endereço 255 (192.168.105.11): Dados inválidos recebidos: [FB-FF]
20/02/2025 08:24:25:544 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=13
20/02/2025 08:24:25:559 - Endereço 246 (192.168.105.11): Dados inválidos recebidos: [9F-F6]
20/02/2025 08:24:25:560 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 08:24:39:672 - Endereço 1 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
20/02/2025 08:24:50:731 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:24:50:732 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 08:25:00:879 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:25:00:879 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 08:25:22:083 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:25:22:084 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 08:25:40:361 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:25:40:361 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 08:25:40:376 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:25:40:376 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:25:40:399 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:25:40:399 - Endereço 3 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:25:40:422 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:25:40:423 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:25:40:445 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:25:40:446 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:25:41:340 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:25:41:340 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:25:41:353 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:25:41:353 - Endereço 3 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 08:26:07:599 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [03-F5-02-F5]
20/02/2025 08:26:07:600 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=13
20/02/2025 08:26:31:999 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:26:32:000 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 08:26:40:078 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:26:40:079 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=13
20/02/2025 08:26:40:092 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:26:40:092 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 08:27:59:202 - Endereço 1 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
20/02/2025 08:28:34:699 - Endereço 160 (192.168.105.11): Dados inválidos recebidos: [7D-A0-FF]
20/02/2025 08:28:34:699 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 08:28:34:707 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:28:34:707 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 08:29:10:148 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:29:10:148 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 08:29:10:155 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:29:10:155 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:29:17:243 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:29:17:245 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:29:25:298 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [9F-F5]
20/02/2025 08:29:25:298 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=13
20/02/2025 08:29:25:314 - Endereço 209 (192.168.105.11): Dados inválidos recebidos: [FB-D1-04-F5-02-F6-7A-FE]
20/02/2025 08:29:25:314 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 08:30:40:364 - Endereço 83 (192.168.105.11): Dados inválidos recebidos: [FB-53-9F-B2-9F]
20/02/2025 08:30:40:364 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:30:40:381 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:30:40:382 - Endereço 3 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:30:40:396 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:30:40:397 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:30:40:415 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:30:40:416 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:30:42:417 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=13
20/02/2025 08:30:42:439 - Endereço 4 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
20/02/2025 08:30:42:457 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:30:42:457 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=13
20/02/2025 08:30:42:511 - Endereço 4 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
20/02/2025 08:30:42:538 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:30:42:539 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 08:31:03:753 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:31:03:755 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:31:03:774 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:31:03:774 - Endereço 3 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:31:03:800 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:31:03:800 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:31:03:818 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:31:03:818 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:31:04:709 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:31:04:709 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=13
20/02/2025 08:31:04:714 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:31:04:714 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=13
20/02/2025 08:31:14:855 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [02-F5]
20/02/2025 08:31:14:856 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:31:14:866 - Endereço 251 (192.168.105.11): Dados inválidos recebidos: [F6-FB-01-34-0E]
20/02/2025 08:31:14:867 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:31:36:121 - Endereço 227 (192.168.105.11): Dados inválidos recebidos: [FB-E3]
20/02/2025 08:31:36:121 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=13
20/02/2025 08:32:29:263 - Endereço 255 (192.168.105.11): Dados inválidos recebidos: [20-FF]
20/02/2025 08:32:29:263 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 08:34:00:359 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:34:00:359 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=33
20/02/2025 08:34:01:375 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=33
20/02/2025 08:34:01:398 - Endereço 0 (192.168.105.11): Dados inválidos recebidos: [00-00-00-2F]
20/02/2025 08:34:01:398 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 08:34:06:764 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:34:06:764 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=38
20/02/2025 08:34:06:769 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:34:06:769 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=38
20/02/2025 08:34:10:823 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:34:10:823 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=33
20/02/2025 08:34:11:831 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=33
20/02/2025 08:34:11:875 - Endereço 0 (192.168.105.11): Dados inválidos recebidos: [00-00-00-2F]
20/02/2025 08:34:11:875 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 08:36:10:519 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=13
20/02/2025 08:36:18:659 - Endereço 1 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
20/02/2025 08:51:33:482 - Endereço 1 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
20/02/2025 08:51:34:351 - Endereço 254 (192.168.105.11): Dados inválidos recebidos: [81-FE]
20/02/2025 08:51:34:351 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:52:07:963 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:52:07:963 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 08:52:07:979 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:52:07:980 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:52:09:049 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:52:09:049 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:52:09:071 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:52:09:071 - Endereço 3 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:52:09:090 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:52:09:090 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:52:09:108 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:52:09:108 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:52:09:996 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:52:09:997 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:52:11:057 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:52:11:059 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:52:31:470 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:52:31:470 - Endereço 3 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:52:31:486 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:52:31:487 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:52:31:507 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:52:31:507 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:52:59:003 - Endereço 251 (192.168.105.11): Dados inválidos recebidos: [FB-FB-02-F5-01]
20/02/2025 08:52:59:003 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=13
20/02/2025 08:52:59:020 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:52:59:020 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:53:25:347 - Endereço 159 (192.168.105.11): Dados inválidos recebidos: [50-9F-F3]
20/02/2025 08:53:25:348 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 08:53:25:356 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:53:25:357 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 08:53:26:388 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:53:26:390 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 08:53:37:604 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:53:37:604 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 08:55:44:266 - Endereço 2 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
20/02/2025 08:56:12:821 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:56:12:821 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:56:12:842 - Endereço 3 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
20/02/2025 08:56:38:300 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [01-F5-02-F3]
20/02/2025 08:56:38:301 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=13
20/02/2025 08:56:38:312 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:56:38:313 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 08:56:38:325 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:56:38:325 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:56:38:348 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:56:38:348 - Endereço 3 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:56:38:366 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:56:38:366 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:56:38:385 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:56:38:385 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:56:47:545 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:56:47:545 - Endereço 3 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 08:56:50:535 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:56:50:536 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 08:56:50:542 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:56:50:542 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:56:51:581 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [01-F5-02-F3]
20/02/2025 08:56:51:582 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 08:57:20:157 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 08:57:20:158 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 08:57:21:224 - Endereço 254 (192.168.105.11): Dados inválidos recebidos: [D0-FE]
20/02/2025 08:57:21:225 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 09:08:06:455 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 09:08:06:456 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 09:08:42:922 - Endereço 132 (192.168.105.11): Dados inválidos recebidos: [FB-84-3F-A0-9F-F6-32]
20/02/2025 09:08:42:923 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 09:09:58:611 - Endereço 255 (192.168.105.11): Dados inválidos recebidos: [FB-FF]
20/02/2025 09:09:58:611 - Endereço 3 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 09:09:58:616 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 09:09:58:616 - Endereço 3 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 09:09:58:618 - Endereço 65 (192.168.105.11): Dados inválidos recebidos: [0F-41]
20/02/2025 09:09:58:619 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 09:09:58:632 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 09:09:58:633 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 09:09:58:651 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 09:09:58:651 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 09:09:59:646 - Endereço 217 (192.168.105.11): Dados inválidos recebidos: [FB-D9-04-F5-02-F6-D0-F9]
20/02/2025 09:09:59:647 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 09:10:08:728 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [03-F5-02-F5]
20/02/2025 09:10:08:728 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 09:10:08:740 - Endereço 246 (192.168.105.11): Dados inválidos recebidos: [02-F6]
20/02/2025 09:10:08:740 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 09:10:22:883 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 09:10:22:883 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 10:18:45:363 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [03-F5-02-F5]
20/02/2025 10:18:45:363 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 10:20:26:355 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 10:20:26:355 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 10:20:30:035 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 10:21:51:157 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 10:21:51:157 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 10:22:15:316 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=13
20/02/2025 10:22:15:348 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 10:22:15:349 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=13
20/02/2025 10:22:41:629 - Endereço 251 (192.168.105.11): Dados inválidos recebidos: [FB-FB-03-F5-02-F5-00-2F]
20/02/2025 10:22:41:629 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 10:22:41:636 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 10:22:41:636 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 10:23:00:828 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 10:23:00:828 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 10:45:11:005 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 10:45:11:005 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 10:45:27:107 - Endereço 3 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
20/02/2025 10:46:34:847 - Endereço 129 (192.168.105.11): Dados inválidos recebidos: [FB-81]
20/02/2025 10:46:34:847 - Endereço 3 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 10:46:58:545 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [02-F5-02-F4-FF]
20/02/2025 10:46:58:546 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=13
20/02/2025 10:46:58:560 - Endereço 4 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 10:46:58:561 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 10:47:21:728 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 10:47:21:728 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=13
20/02/2025 10:47:21:743 - Endereço 244 (192.168.105.11): Dados inválidos recebidos: [02-F4]
20/02/2025 10:47:21:743 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=13
20/02/2025 10:47:21:765 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 10:47:21:766 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 10:47:26:836 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=13
20/02/2025 10:47:26:873 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [04-F5-02-F6]
20/02/2025 10:47:26:874 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=13
20/02/2025 10:48:00:193 - Endereço 245 (192.168.105.11): Dados inválidos recebidos: [03-F5-02-F5]
20/02/2025 10:48:00:194 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=13
20/02/2025 10:48:00:199 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 10:48:00:199 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=13
20/02/2025 10:48:00:228 - Endereço 237 (192.168.105.11): Dados inválidos recebidos: [FB-ED-04-F5-02]
20/02/2025 10:48:00:228 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 10:48:17:309 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 10:48:17:310 - Endereço 3 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 10:48:37:561 - Endereço 246 (192.168.105.11): Dados inválidos recebidos: [02-F6]
20/02/2025 10:48:37:561 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 11:00:20:987 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 11:00:20:987 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 11:00:21:016 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 11:00:21:016 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 11:00:21:046 - Endereço 2 (192.168.105.11): Erro ao enviar comando: Index was outside the bounds of the array.
20/02/2025 11:00:21:963 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 11:00:21:964 - Endereço 2 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=13
20/02/2025 11:00:21:982 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 11:00:21:982 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 11:00:31:093 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 11:00:31:094 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=13
20/02/2025 11:00:31:111 - Endereço 129 (192.168.105.11): Dados inválidos recebidos: [FB-81-3F-50-9F-F6-7A-FE]
20/02/2025 11:00:31:111 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 11:00:44:439 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 11:00:44:440 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=13
20/02/2025 11:00:57:592 - Endereço 2 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 11:00:57:592 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 11:00:57:595 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 11:00:57:596 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 11:01:13:798 - Endereço 255 (192.168.105.11): Dados inválidos recebidos: [FB-FF]
20/02/2025 11:01:13:798 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=1
20/02/2025 11:01:13:804 - Endereço 1 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 11:01:13:805 - Endereço 1 (192.168.105.11): Timeout ao receber resposta. GET=True, Parametro=46
20/02/2025 11:01:25:860 - Endereço 3 (192.168.105.11): Erro de checksum na resposta recebida.
20/02/2025 11:01:25:860 - Endereço 4 (192.168.105.11): Timeout ao receber resposta. GET=False, Parametro=13

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
{"ExpansorGPIO":false,"EnderecoExpansor":"","Pinos":[{"Controlador":1,"Barramento":0,"Pino":99,"Descricao":"1","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":98,"Descricao":"2","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":36,"Descricao":"3","Funcao":12,"Habilitado":true,"ComponenteID":"TMVET"},{"Controlador":1,"Barramento":0,"Pino":39,"Descricao":"4","Funcao":12,"Habilitado":true,"ComponenteID":"TMVDT"},{"Controlador":1,"Barramento":0,"Pino":34,"Descricao":"5","Funcao":12,"Habilitado":true,"ComponenteID":"TMVEF"},{"Controlador":1,"Barramento":0,"Pino":35,"Descricao":"6","Funcao":12,"Habilitado":true,"ComponenteID":"TMVDF"},{"Controlador":1,"Barramento":0,"Pino":32,"Descricao":"7","Funcao":46,"Habilitado":true,"ComponenteID":"POTET"},{"Controlador":1,"Barramento":0,"Pino":33,"Descricao":"8","Funcao":46,"Habilitado":true,"ComponenteID":"POTDT"},{"Controlador":1,"Barramento":0,"Pino":25,"Descricao":"9","Funcao":46,"Habilitado":true,"ComponenteID":"POTEF"},{"Controlador":1,"Barramento":0,"Pino":26,"Descricao":"10","Funcao":46,"Habilitado":true,"ComponenteID":"POTDF"},{"Controlador":1,"Barramento":0,"Pino":27,"Descricao":"11","Funcao":45,"Habilitado":true,"ComponenteID":"FRO_ET"},{"Controlador":1,"Barramento":0,"Pino":14,"Descricao":"12","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":12,"Descricao":"13","Funcao":45,"Habilitado":true,"ComponenteID":"FRO_DT"},{"Controlador":1,"Barramento":0,"Pino":97,"Descricao":"14","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":13,"Descricao":"15","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":9,"Descricao":"16","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":10,"Descricao":"17","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":11,"Descricao":"18","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":96,"Descricao":"19","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":6,"Descricao":"26","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":7,"Descricao":"27","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":8,"Descricao":"28","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":15,"Descricao":"29","Funcao":38,"Habilitado":true,"ComponenteID":"LEDMN"},{"Controlador":1,"Barramento":0,"Pino":2,"Descricao":"30","Funcao":38,"Habilitado":true,"ComponenteID":"LEDOP"},{"Controlador":1,"Barramento":0,"Pino":0,"Descricao":"31","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":4,"Descricao":"32","Funcao":38,"Habilitado":true,"ComponenteID":"LEDAT"},{"Controlador":1,"Barramento":0,"Pino":16,"Descricao":"33","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":17,"Descricao":"34","Funcao":26,"Habilitado":true,"ComponenteID":"RLPOTDF"},{"Controlador":1,"Barramento":0,"Pino":5,"Descricao":"35","Funcao":26,"Habilitado":true,"ComponenteID":"RLPOTEF"},{"Controlador":1,"Barramento":0,"Pino":18,"Descricao":"36","Funcao":26,"Habilitado":true,"ComponenteID":"RLPOTDT"},{"Controlador":1,"Barramento":0,"Pino":19,"Descricao":"37","Funcao":26,"Habilitado":true,"ComponenteID":"RLPOTET"},{"Controlador":1,"Barramento":0,"Pino":95,"Descricao":"38","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":21,"Descricao":"39","Funcao":33,"Habilitado":true,"ComponenteID":"Sen"},{"Controlador":1,"Barramento":0,"Pino":3,"Descricao":"40","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":1,"Descricao":"41","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":22,"Descricao":"42","Funcao":34,"Habilitado":true,"ComponenteID":"Sen"},{"Controlador":1,"Barramento":0,"Pino":23,"Descricao":"43","Funcao":26,"Habilitado":true,"ComponenteID":"RLLRA"},{"Controlador":1,"Barramento":0,"Pino":94,"Descricao":"44","Funcao":0,"Habilitado":false,"ComponenteID":""}]}

View File

@ -0,0 +1 @@
{"ExpansorGPIO":false,"EnderecoExpansor":"","Pinos":[{"Controlador":0,"Barramento":0,"Pino":99,"Descricao":"1","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":98,"Descricao":"2","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":97,"Descricao":"3","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":4,"Descricao":"4","Funcao":12,"Habilitado":true,"ComponenteID":"TMVET"},{"Controlador":0,"Barramento":0,"Pino":5,"Descricao":"5","Funcao":12,"Habilitado":true,"ComponenteID":"TMVDT"},{"Controlador":0,"Barramento":0,"Pino":6,"Descricao":"6","Funcao":12,"Habilitado":true,"ComponenteID":"TMVEF"},{"Controlador":0,"Barramento":0,"Pino":7,"Descricao":"7","Funcao":12,"Habilitado":true,"ComponenteID":"TMVDF"},{"Controlador":0,"Barramento":0,"Pino":15,"Descricao":"8","Funcao":46,"Habilitado":true,"ComponenteID":"POTET"},{"Controlador":0,"Barramento":0,"Pino":16,"Descricao":"9","Funcao":46,"Habilitado":true,"ComponenteID":"POTDT"},{"Controlador":0,"Barramento":0,"Pino":17,"Descricao":"10","Funcao":46,"Habilitado":true,"ComponenteID":"POTEF"},{"Controlador":0,"Barramento":0,"Pino":18,"Descricao":"11","Funcao":46,"Habilitado":true,"ComponenteID":"POTDF"},{"Controlador":0,"Barramento":0,"Pino":8,"Descricao":"12","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":3,"Descricao":"13","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":46,"Descricao":"14","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":9,"Descricao":"15","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":10,"Descricao":"16","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":11,"Descricao":"17","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":12,"Descricao":"18","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":13,"Descricao":"19","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":14,"Descricao":"20","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":96,"Descricao":"21","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":95,"Descricao":"22","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":94,"Descricao":"23","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":93,"Descricao":"24","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":19,"Descricao":"25","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":20,"Descricao":"26","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":21,"Descricao":"27","Funcao":45,"Habilitado":true,"ComponenteID":"FRO_DF"},{"Controlador":0,"Barramento":0,"Pino":47,"Descricao":"28","Funcao":45,"Habilitado":true,"ComponenteID":"FRO_EF"},{"Controlador":0,"Barramento":0,"Pino":48,"Descricao":"29","Funcao":45,"Habilitado":true,"ComponenteID":"FRO_DT"},{"Controlador":0,"Barramento":0,"Pino":45,"Descricao":"30","Funcao":45,"Habilitado":true,"ComponenteID":"FRO_ET"},{"Controlador":0,"Barramento":0,"Pino":0,"Descricao":"31","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":35,"Descricao":"32","Funcao":38,"Habilitado":true,"ComponenteID":"LEDAT"},{"Controlador":0,"Barramento":0,"Pino":36,"Descricao":"33","Funcao":38,"Habilitado":true,"ComponenteID":"LEDOP"},{"Controlador":0,"Barramento":0,"Pino":37,"Descricao":"34","Funcao":38,"Habilitado":true,"ComponenteID":"LEDMN"},{"Controlador":0,"Barramento":0,"Pino":38,"Descricao":"35","Funcao":26,"Habilitado":true,"ComponenteID":"RLPOTDF"},{"Controlador":0,"Barramento":0,"Pino":39,"Descricao":"36","Funcao":26,"Habilitado":true,"ComponenteID":"RLPOTEF"},{"Controlador":0,"Barramento":0,"Pino":40,"Descricao":"37","Funcao":26,"Habilitado":true,"ComponenteID":"RLPOTDT"},{"Controlador":0,"Barramento":0,"Pino":41,"Descricao":"38","Funcao":26,"Habilitado":true,"ComponenteID":"RLPOTET"},{"Controlador":0,"Barramento":0,"Pino":42,"Descricao":"39","Funcao":26,"Habilitado":true,"ComponenteID":"RLLRA"},{"Controlador":0,"Barramento":0,"Pino":2,"Descricao":"40","Funcao":34,"Habilitado":true,"ComponenteID":"Sen"},{"Controlador":0,"Barramento":0,"Pino":1,"Descricao":"41","Funcao":33,"Habilitado":true,"ComponenteID":"Sen"},{"Controlador":0,"Barramento":0,"Pino":44,"Descricao":"42","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":43,"Descricao":"43","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":92,"Descricao":"44","Funcao":0,"Habilitado":false,"ComponenteID":""}]}

View File

@ -96,10 +96,10 @@
"Diretorio": "Parametros/",
"Arquivo": "pinoutSen",
"Extensao": ".pin",
"Versao": "1_1",
"ArquivoDownload": "pinoutSen-1_1.pin",
"NomeArquivoLocal": "pinoutSen-1_1.pin",
"CaminhoCompleto": "Parametros/pinoutSen-1_1.pin",
"Versao": "1_2",
"ArquivoDownload": "pinoutSen-1_2.pin",
"NomeArquivoLocal": "pinoutSen-1_2.pin",
"CaminhoCompleto": "Parametros/pinoutSen-1_2.pin",
"Atualizado": true,
"ArquivoAtualizado": true,
"TipoArquivo": 7
@ -203,5 +203,18 @@
"Atualizado": true,
"ArquivoAtualizado": false,
"TipoArquivo": 14
},
{
"id": 18,
"Diretorio": "Python\\Scripts\\",
"Arquivo": "list_oak",
"Extensao": ".py",
"Versao": "1_0",
"ArquivoDownload": "list_oak-1_0.py",
"NomeArquivoLocal": "list_oak-1_0.py",
"CaminhoCompleto": "Python\\Scripts\\list_oak-1_0.py",
"Atualizado": true,
"ArquivoAtualizado": true,
"TipoArquivo": 15
}
]

File diff suppressed because one or more lines are too long

View File

@ -25,7 +25,7 @@
<meta name="viewport" content="width=device-width,
initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<style>
#map_a557472d0c26c4288938132609c4ed90 {
#map_d0dbf46f67163f94fe15580c6e5bb263 {
position: relative;
width: 100.0%;
height: 100.0%;
@ -39,14 +39,14 @@
<body>
<div class="folium-map" id="map_a557472d0c26c4288938132609c4ed90" ></div>
<div class="folium-map" id="map_d0dbf46f67163f94fe15580c6e5bb263" ></div>
</body>
<script>
var map_a557472d0c26c4288938132609c4ed90 = L.map(
"map_a557472d0c26c4288938132609c4ed90",
var map_d0dbf46f67163f94fe15580c6e5bb263 = L.map(
"map_d0dbf46f67163f94fe15580c6e5bb263",
{
center: [0.0, 0.0],
crs: L.CRS.EPSG3857,
@ -60,13 +60,13 @@
var tile_layer_fdcada12119d5faa3c86771431d37018 = L.tileLayer(
var tile_layer_da2b6f9ae365eadeb6f0473c9e2f5ecc = L.tileLayer(
"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}
);
tile_layer_fdcada12119d5faa3c86771431d37018.addTo(map_a557472d0c26c4288938132609c4ed90);
tile_layer_da2b6f9ae365eadeb6f0473c9e2f5ecc.addTo(map_d0dbf46f67163f94fe15580c6e5bb263);
</script>
@ -87,7 +87,7 @@
}
trajeto_json_add({"features": []});
trajeto_json.addTo(map_a557472d0c26c4288938132609c4ed90);
trajeto_json.addTo(map_d0dbf46f67163f94fe15580c6e5bb263);
function adicionarGeometria(novaGeometria) {
trajeto_json.addData(novaGeometria);
@ -145,7 +145,7 @@
var marcadorDinamico = L.marker([0, 0], {
icon: customIcon
}).addTo(map_a557472d0c26c4288938132609c4ed90);
}).addTo(map_d0dbf46f67163f94fe15580c6e5bb263);
// Conectar ao broker MQTT
const client = mqtt.connect('ws://localhost:9001'); // Use wss para conexão segura
@ -183,7 +183,7 @@
marcadorDinamico.setRotationAngle(angulo);
adicionarCoordenada("Tj", [novaLongitude, novaLatitude]);
map_a557472d0c26c4288938132609c4ed90.setView(novaPosicao, map_a557472d0c26c4288938132609c4ed90.getZoom());
map_d0dbf46f67163f94fe15580c6e5bb263.setView(novaPosicao, map_d0dbf46f67163f94fe15580c6e5bb263.getZoom());
});
function calcularOrientacao(P1latitude, P1longitude, P2latitude, P2longitude) {

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,25 @@
import os
import sys
# 🔹 Desativar logs do DepthAI
os.environ["DEPTHAI_LEVEL"] = "ERROR"
import depthai
import json
devices = depthai.Device.getAllAvailableDevices()
device_list = []
for idx, device in enumerate(devices):
device_info = {
"index": idx,
"id": device.mxid,
"model": device.name,
"usb_speed": str(device.protocol)
}
device_list.append(device_info)
# 🔹 Imprime apenas o JSON, sem logs extras
json_output = json.dumps(device_list, indent=4)
sys.stdout.write(json_output)
sys.stdout.flush()

View File

@ -32,57 +32,81 @@ app = Flask(__name__)
# Caminho do modelo convertido
blob_path = os.path.join(model_folder, f'model-{script_version}.blob')
def detect_oak():
print("a")
def detect_oak(camera_index):
width, height, model_resolution = 1280, 720, 640
labelMap = ['chenopodio', 'grama-azul', 'tiririca', 'erva-daninha', 'videira', 'mostarda-preta', 'milho', 'amaranta', 'farinha-seca', 'guanxuma']
pipeline = dai.Pipeline()
# Criando um nó de câmera
# Listar todas as câmeras conectadas
devices = dai.Device.getAllAvailableDevices()
if len(devices) == 0:
print("Nenhuma câmera OAK conectada.")
return
if camera_index >= len(devices):
print(f"Índice da câmera ({camera_index}) inválido. Apenas {len(devices)} câmeras disponíveis.")
return
selected_device_info = devices[camera_index] # Seleciona a câmera correta pelo índice
print(f"Usando câmera: {selected_device_info.name} (ID: {selected_device_info.mxid})")
# Criando um nó de câmera otimizado
cam = pipeline.create(dai.node.ColorCamera)
cam.setPreviewSize(640, 640)
cam.setResolution(dai.ColorCameraProperties.SensorResolution.THE_1080_P)
cam.setVideoSize(width, height)
cam.setInterleaved(False)
cam.setColorOrder(dai.ColorCameraProperties.ColorOrder.BGR)
cam.setFps(30)
cam.setFps(35) # FPS aumentado
cam.setIspScale(2, 3) # Reduz carga no pipeline
# Criando um nó de inferência YOLO
# Criando um nó de manipulação de imagem otimizado
manip = pipeline.create(dai.node.ImageManip)
manip.initialConfig.setResize(model_resolution, model_resolution)
manip.initialConfig.setKeepAspectRatio(True)
manip.initialConfig.setFrameType(dai.RawImgFrame.Type.RGB888p) # Força formato RGB correto
manip.setMaxOutputFrameSize(1228800)
cam.video.link(manip.inputImage)
# Criando um nó de inferência YOLO otimizado
nn = pipeline.create(dai.node.YoloDetectionNetwork)
nn.setBlobPath(blob_path)
nn.setConfidenceThreshold(0.25) # Ajuste conforme necessário
nn.setNumClasses(10)
nn.setConfidenceThreshold(0.25)
nn.setNumClasses(len(labelMap))
nn.setCoordinateSize(4)
nn.setIouThreshold(0.45)
# 🔹 Define âncoras e máscaras corretamente
nn.setAnchors([
12, 16, 19, 36, 40, 28, # Pequenos
36, 75, 76, 55, 72, 146, # Médios
142, 110, 192, 243, 459, 401 # Grandes
12, 16, 19, 36, 40, 28,
36, 75, 76, 55, 72, 146,
142, 110, 192, 243, 459, 401
])
nn.setAnchorMasks({
"side80": [1, 2, 3],
"side40": [3, 4, 5],
"side20": [5, 6, 7]
"side52": [0, 1, 2],
"side26": [3, 4, 5],
"side13": [6, 7, 8]
})
nn.setNumInferenceThreads(2) # Usa 2 threads para inferência
nn.input.setBlocking(False) # Não bloqueia a entrada de frames
#nn.setReusePreviousInferenceResults(True) # Reutiliza inferências para não travar o pipeline
manip.out.link(nn.input)
# Conectando câmera ao modelo
cam.preview.link(nn.input)
# Saída de vídeo
# Saída de vídeo otimizada
xout_cam = pipeline.create(dai.node.XLinkOut)
xout_cam.setStreamName("video")
cam.preview.link(xout_cam.input)
#xout_cam.setMetadataOnly(True) # Reduz tráfego de vídeo
cam.video.link(xout_cam.input)
# Saída da inferência
xout_nn = pipeline.create(dai.node.XLinkOut)
xout_nn.setStreamName("detections")
nn.out.link(xout_nn.input)
labelMap = ['chenopodio', 'grama-azul', 'tiririca', 'erva-daninha', 'videira',
'mostarda-preta', 'milho', 'amaranta', 'farinha-seca', 'guanxuma']
with dai.Device(pipeline) as device:
with dai.Device(pipeline, selected_device_info) as device: # 🔹 Agora usa a câmera correta
video_queue = device.getOutputQueue("video", maxSize=1, blocking=False)
detections_queue = device.getOutputQueue("detections", maxSize=1, blocking=False)
width, height = 640, 640
readings = []
while True:
@ -114,12 +138,12 @@ def detect_oak():
if mostrar_linhas:
label = f'{descricao} {confidence:.2f}'
cv2.rectangle(frame, (x1, y1), (x2, y2), (0, 255, 0), 2)
cv2.putText(frame, label, (x1, y1 - 10),
cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)
cv2.putText(frame, label, (x1, y1 - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)
global json_data
timestamp = time.time()
json_data = {'timestamp': timestamp, 'x_max': width, 'y_max': height, 'objetos': current_readings}
print(json_data)
readings.append(json_data)
if len(readings) >= max_readings:
@ -139,11 +163,12 @@ def send_script_ready():
mqtt_client.publish(mqtt_topic, "OK")
def run_flask_server():
app.run(host='0.0.0.0', port=porta, threaded=True, debug=True)
app.run(host='0.0.0.0', port=porta, threaded=True, debug=False)
@app.route('/' + url, methods=['GET'])
def video_feed():
return Response(detect_oak(), mimetype='multipart/x-mixed-replace; boundary=frame')
camera_index = int(request.args.get('camera_index'))
return Response(detect_oak(camera_index), mimetype='multipart/x-mixed-replace; boundary=frame')
if __name__ == '__main__':
mqtt_thread = threading.Thread(target=send_script_ready)

View File

@ -1 +1 @@
81fe9c78cbc1f5ab2cd3f9316a5d613f1f4cb124703ffa6ef0eaf8cf91c94c6e
07c6bb0653ed4366f0cd4e7c9a8e20d266183ca4b30de0ccc664981039497537

View File

@ -45,9 +45,9 @@ class MqttService {
messageCallback = callback;
}
bool InicializarComunicacaoMqtt() {
bool InicializarComunicacaoMqtt(bool forcar = false) {
// Verifica se já passou o intervalo necessário para uma nova tentativa
if (millis() - ultimaTentativaConexao < intervaloTentativa) {
if ((millis() - ultimaTentativaConexao) < intervaloTentativa && !forcar) {
PrintTela("Aguardando para próxima tentativa de conexão MQTT...");
return MqttIsConnected; // Retorna o estado atual sem tentar reconectar
}
@ -86,12 +86,12 @@ class MqttService {
if (mqttClient.connected()) {
// Publica uma mensagem vazia com o flag Retain para limpar mensagens retidas
if (mqttClient.publish(topico.c_str(), "", true)) {
Serial.println("Mensagem retida limpa no tópico: " + topico);
PrintTela("Mensagem retida limpa no tópico: " + topico);
} else {
Serial.println("Falha ao limpar mensagem retida no tópico: " + topico);
PrintTela("Falha ao limpar mensagem retida no tópico: " + topico);
}
} else {
Serial.println("Broker MQTT desconectado, não foi possível limpar mensagens retidas.");
PrintTela("Broker MQTT desconectado, não foi possível limpar mensagens retidas.");
}
}

View File

@ -58,14 +58,19 @@ class PinoModel {
}
}
int get() {
int get(int leituras = 0) {
if (Definido()) {
if (barramento == CONTROLADOR) {
if (leitura == DIGITAL) {
return digitalRead(num);
}
else if (leitura == ANALOGICO) {
return analogRead(num);
double l = 0;
for (int i = 0; i < leituras; i++) {
l += analogRead(num);
delay(1);
}
return l / leituras;
}
}
else if (barramento == EXPANSORI2C) {

View File

@ -74,17 +74,17 @@ class SensorPotenciometro {
}
void AferirAngulo() {
leitura = _pino.get();
leitura = _pino.get(5);
double leituraNormalizada = filtro.updateEstimate(leitura);
angulo = map(leituraNormalizada, 0, 4095, -_limitePotenciometro, _limitePotenciometro);
sentido =
(angulo < (_anguloMeio - _margem)) ? Antihorario :
(angulo > (_anguloMeio + _margem)) ? Horario :
(angulo <= (_anguloMeio - _margem)) ? Antihorario :
(angulo >= (_anguloMeio + _margem)) ? Horario :
Parado;
limiteExcedido = angulo < (_anguloMin - _margem) || angulo > (_anguloMax + _margem);
limiteExcedido = angulo <= (_anguloMin - _margem) || angulo >= (_anguloMax + _margem);
}
void RequisitarDados() {
@ -162,24 +162,23 @@ void SensorPotenciometro::InicializarLista(std::vector<SensorPotenciometro*>& li
sensor->_pino = PinoModel(pino, pinoB, _INPUT, ANALOGICO);
sensor->releControle = nullptr;
if (partes.size() >= 8) {
double angMin = partes[4].toDouble();
double angMeio = partes[5].toDouble();
double angMax = partes[6].toDouble();
double angMargem = partes[7].toDouble();
sensor->_anguloMin = angMin;
sensor->_anguloMeio = angMeio;
sensor->_anguloMax = angMax;
sensor->_margem = angMargem;
}
// Atribui um rele de controle
for (auto* _rele : listaReles) {
String idRele = _rele->_ID;
if (idRele.length() > 2 && idRele.startsWith("RL") && idRele.substring(2) == id) {
sensor->releControle = _rele;
if (partes.size() >= 8) {
double angMin = partes[4].toDouble();
double angMeio = partes[5].toDouble();
double angMax = partes[6].toDouble();
double angMargem = partes[7].toDouble();
sensor->_anguloMin = angMin;
sensor->_anguloMeio = angMeio;
sensor->_anguloMax = angMax;
sensor->_margem = angMargem;
}
break;
}
}

View File

@ -1,6 +1,7 @@
#include "SerialService.h"
#include "Pinout.h"
#include "Utils.h"
#include <SimpleKalmanFilter.h>
#ifndef SensorTemperaturaModel
#define SensorTemperaturaModel
@ -22,6 +23,8 @@ class SensorTemperatura {
double leitura = 0;
SimpleKalmanFilter filtro = SimpleKalmanFilter(5, 15, 0.01);
bool Iniciado = false;
bool Checando = false;
@ -54,7 +57,8 @@ class SensorTemperatura {
}
void AferirTemperatura() {
leitura = _pino.get();
leitura = _pino.get(5);
leitura = filtro.updateEstimate(leitura);
}
void RequisitarDados() {

View File

@ -4,7 +4,7 @@
#ifndef SerialService
#define SerialService
bool DebugMode = true;
bool DebugMode = false;
const char BeginLine = '@';
const char EndLine = '$';

View File

@ -58,7 +58,7 @@ void InicializarConexaoWifi(IPAddress ip, IPAddress gateway, IPAddress subnet, I
// Configurar IP fixo
if (!WiFi.config(ip, gateway, subnet, dns)) {
Serial.println("Falha ao configurar IP estático!");
PrintTela("Falha ao configurar IP estático!");
}
if (ssid[0] != '\0') { // Verificar se há SSID salvo
@ -84,5 +84,19 @@ bool verificaInternet() {
}
}
void changeWifiStatus(bool conectar) {
if (conectar) {
WiFi.mode(WIFI_MODE_STA);
while (WiFi.status() != WL_CONNECTED) {
delay(10);
}
PrintTela("Wifi reconectado");
}
else {
WiFi.mode(WIFI_MODE_NULL);
delay(10);
PrintTela("Wifi desconectado");
}
}
#endif

View File

@ -1,7 +1,7 @@
// Dispositivo: Sensoriamento
// Versão Firmware: 14
// Ultima atualização: 13/02/2025
// Atualização: Inclusão de leitura dos potenciometros angulares
// Ultima atualização: 20/02/2025
// Atualização: Troca do controlador para o S3 e implementacao de filtragem nas leituras analogica
#include <ArduinoJson.h>
#include "C:\ZendionInc\agrobot_base\Firmware\Modulos\MqttService.h"
@ -42,8 +42,10 @@ int _TaxaAmostragem = 1000;
volatile bool RequisitarDados = false;
int latenciaLoop = 0;
PinoModel _pinoSDA = PinoModel(21, CONTROLADOR, _INPUT);
PinoModel _pinoSCL = PinoModel(22, CONTROLADOR, _INPUT);
//PinoModel _pinoSDA = PinoModel(21, CONTROLADOR, _INPUT);
PinoModel _pinoSDA = PinoModel(1, CONTROLADOR, _INPUT);
//PinoModel _pinoSCL = PinoModel(22, CONTROLADOR, _INPUT);
PinoModel _pinoSCL = PinoModel(2, CONTROLADOR, _INPUT);
std::vector<SensorTemperatura*> listaSensoresTemperatura;
@ -69,7 +71,7 @@ void InicializarComunicacaoMQTT(bool RenovarConexao) {
void setup() {
Serial.begin(_baudRate);
iniciarMCP(D_Code, Mod_ID, _pinoSDA.num, _pinoSCL.num, 0x20, false);
//iniciarMCP(D_Code, Mod_ID, _pinoSDA.num, _pinoSCL.num, 0x20, false);
InicializarConexaoWifi(local_IP, gateway, subnet, primaryDNS);
@ -128,6 +130,8 @@ void enviarDadosSensores() {
if (Conectado && !Verificando) {
PrintTela("Atualizando dados dos sensores...");
//changeWifiStatus(false);
// Aferir dados dos sensores
for (auto* sensor : listaSensoresTemperatura) {
sensor->AferirTemperatura();
@ -153,6 +157,9 @@ void enviarDadosSensores() {
sensor->AferirAngulo();
}
//changeWifiStatus(true);
//mqttService.InicializarComunicacaoMqtt(true);
String jsonString = MontarMensagemSensores() + String(EndLine);
mqttService.EnviarDados(Mod_ID, jsonString);

View File

@ -0,0 +1,24 @@
import torch
import onnx
import network.modeling as models # 🔹 Usar a mesma biblioteca do treinamento!
# 🔹 Criar o modelo EXATO usado no treinamento
num_classes = 4
output_stride = 16
model = models.deeplabv3plus_resnet50(num_classes=num_classes, output_stride=output_stride) # 🔹 Backbone correto
# 🔹 Carregar os pesos salvos
checkpoint_path = "C:/AgroBaseModels/Ruas/model-1_0.pth"
checkpoint = torch.load(checkpoint_path, map_location=torch.device('cpu'))
model.load_state_dict(checkpoint) # 🔹 Agora os pesos vão carregar corretamente!
# 🔹 Colocar o modelo em modo de inferência
model.eval()
# 🔹 Criar entrada fictícia para exportação
dummy_input = torch.randn(1, 3, 512, 512) # 🔹 Ajustado para o tamanho usado no treinamento
# 🔹 Exportar para ONNX
onnx_path = "C:/AgroBaseModels/Ruas/model-1_0.onnx"
torch.onnx.export(model, dummy_input, onnx_path, opset_version=11, input_names=["input"], output_names=["output"])
print(f"Modelo salvo como {onnx_path}")

View File

@ -0,0 +1,17 @@
import depthai
import json
devices = depthai.Device.getAllAvailableDevices()
device_list = []
for idx, device in enumerate(devices):
device_info = {
"index": idx,
"id": device.mxid, # ID único da câmera
"model": device.name, # Nome correto do modelo
"usb_speed": str(device.protocol) # Informação da conexão USB
}
device_list.append(device_info)
# Retorna a lista em formato JSON
print(json.dumps(device_list, indent=4))