agrobot_base/AgroBase/AgroMonitor/Forms/frmMonitoramento.cs

132 lines
6.7 KiB
C#

using AgroBase.Models;
using AgroBase.Services;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace AgroMonitor.Forms
{
public partial class frmMonitoramento : Form
{
Timer tmrLeituras = new Timer();
DateTime MomentoLog = DateTime.Now;
public frmMonitoramento()
{
InitializeComponent();
}
private void frmMonitoramento_Load(object sender, EventArgs e)
{
tmrLeituras.Interval = 1000;
tmrLeituras.Tick += tmrLeituras_Tick;
tmrLeituras.Start();
}
private void tmrLeituras_Tick(object sender, EventArgs e)
{
string EquipamentoSelecionado = cmbEquipamento.Text;
if (cmbEquipamento.Items.Count != VariaveisMonitoramento.EquipamentosConectados.Count())
{
cmbEquipamento.Items.Clear();
cmbEquipamento.Items.AddRange(VariaveisMonitoramento.EquipamentosConectados.Keys.Select(x => x.ToString()).ToArray());
if (cmbEquipamento.Items.Contains(EquipamentoSelecionado))
{
cmbEquipamento.SelectedIndex = cmbEquipamento.Items.IndexOf(EquipamentoSelecionado);
}
}
if (cmbEquipamento.SelectedIndex > -1)
{
AtualizarDadosTela();
}
}
private void cmbEquipamento_SelectedIndexChanged(object sender, EventArgs e)
{
MomentoLog = MomentoLog.AddSeconds(-15);
AtualizarDadosTela();
}
private void AtualizarDadosTela()
{
byte Endereco = Convert.ToByte(cmbEquipamento.Text);
if (Endereco == VariaveisMonitoramento.ComunicacaoLoRa.parametros.address)
{
MomentoLog = DateTime.Now;
txtLeitura.Text = MomentoLog.ToString("ddd HH:mm:ss");
txtOrientacao.Text = GPSService.UltimaLeitura.Orientacao.ToString("0.00");
txtLatitude.Text = GPSService.UltimaLeitura.Latitude.ToString();
txtLongitude.Text = GPSService.UltimaLeitura.Longitude.ToString();
txtStatusOperacao.Text = "";
txtStatusCarro.Text = "";
txtTempoDecorrido.Text = "";
txtTempoEstimado.Text = "";
FuncoesGlobais.PreencheValorProgressBar(pgbProgressoOperacao, 0);
FuncoesGlobais.PreencheValorProgressBar(pgbProgressoRua, 0);
FuncoesGlobais.PreencheValorProgressBar(pgbBateria, 0);
lblBateriaDados.Text = "0,00%";
FuncoesGlobais.PreencheValorProgressBar(pgbReservatorio, 0);
lblReservatorioDados.Text = "0,00%";
FuncoesGlobais.PreencheValorProgressBar(pgbHerbicidaAplicado, 0);
lblHerbicidaDados.Text = "0,00 L (0,00 ml/erva)";
lblErvasIdentificadas.Text = "0 ervas";
FuncoesGlobais.PreencheValorProgressBar(pgbPressao, 0);
lblPressaoDados.Text = "0,00 psi";
FuncoesGlobais.PreencheValorProgressBar(pgbTemperaturaMotores, 0);
lblTemperaturaMotoresDados.Text = "0,00 ºC";
FuncoesGlobais.PreencheValorProgressBar(pgbTemperaturaCampo, 0);
lblTemperaturaCampoDados.Text = "0,00 ºC";
FuncoesGlobais.PreencheValorProgressBar(pgbVelocidade, 0);
lblVelocidadeDados.Text = "0,00 km/h";
}
else if (Endereco > 0x00 && VariaveisMonitoramento.EquipamentosConectados.Any(x => x.Key == Endereco))
{
var Equipamento = VariaveisMonitoramento.EquipamentosConectados[Endereco];
if (Equipamento.Momento > MomentoLog)
{
MomentoLog = Equipamento.Momento;
txtLeitura.Text = Equipamento.Momento.ToString("ddd HH:mm:ss");
txtOrientacao.Text = Equipamento.Coordenadas.Orientacao.ToString("0.00");
txtLatitude.Text = Equipamento.Coordenadas.Latitude.ToString();
txtLongitude.Text = Equipamento.Coordenadas.Longitude.ToString();
txtStatusOperacao.Text = Equipamento.Operacao.statusOperacao.ToString();
txtStatusCarro.Text = Equipamento.Operacao.statusCarro.ToString();
txtTempoDecorrido.Text = TimeSpan.FromSeconds(Equipamento.Operacao.TempoOperacao).ToString(@"hh\:mm\:ss");
txtTempoEstimado.Text = Equipamento.Operacao.TempoEstimado;
FuncoesGlobais.PreencheValorProgressBar(pgbProgressoOperacao, Equipamento.Operacao.PercentualOperacao);
FuncoesGlobais.PreencheValorProgressBar(pgbProgressoRua, Equipamento.Operacao.PercentualRua);
FuncoesGlobais.PreencheValorProgressBar(pgbBateria, Equipamento.Sensores.PercentualBateria);
lblBateriaDados.Text = $"{Equipamento.Sensores.PercentualBateria.ToString("0.00")}%";
FuncoesGlobais.PreencheValorProgressBar(pgbReservatorio, Equipamento.Sensores.PercentualReservatorio);
lblReservatorioDados.Text = $"{Equipamento.Sensores.PercentualReservatorio.ToString("0.00")}%";
FuncoesGlobais.PreencheValorProgressBar(pgbHerbicidaAplicado, Equipamento.Sensores.HerbicidaConsumido);
lblHerbicidaDados.Text = $"{Equipamento.Sensores.HerbicidaConsumido.ToString("0.00")} L ({Equipamento.Sensores.HerbicidaPorErva.ToString("0.00")} ml/erva)";
lblErvasIdentificadas.Text = $"{Equipamento.Sensores.ErvasIdentificadas} ervas";
FuncoesGlobais.PreencheValorProgressBar(pgbPressao, Equipamento.Sensores.PressaoLinha);
lblPressaoDados.Text = $"{Equipamento.Sensores.PressaoLinha.ToString("0.00")} psi";
FuncoesGlobais.PreencheValorProgressBar(pgbTemperaturaMotores, Equipamento.Sensores.TemperaturaMotores);
lblTemperaturaMotoresDados.Text = $"{Equipamento.Sensores.TemperaturaMotores.ToString("0.00")} ºC";
FuncoesGlobais.PreencheValorProgressBar(pgbTemperaturaCampo, Equipamento.Sensores.TemperaturaCampo);
lblTemperaturaCampoDados.Text = $"{Equipamento.Sensores.TemperaturaCampo.ToString("0.00")} ºC";
FuncoesGlobais.PreencheValorProgressBar(pgbVelocidade, Equipamento.Sensores.Velocidade);
lblVelocidadeDados.Text = $"{Equipamento.Sensores.Velocidade.ToString("0.00")} km/h";
}
}
}
}
}