using AgroBase.Forms; using AgroBase.Forms.Operacoes; using AgroBase.Models; using AgroBase.Services; using AgroMonitor.Forms; using System; using System.Drawing; using System.Windows.Forms; namespace AgroMonitor { public partial class frmInicial : Form { System.Timers.Timer tmrDispositivos = new System.Timers.Timer() { Interval = 5000, Enabled = false }; public frmInicial() { InitializeComponent(); IniciarDependencias(); FuncoesGlobais.DefinirEventosPicBtn(picAjustes, "Erro ao definir ajustes!", async () => { frmAjustesOperacao frm = new frmAjustesOperacao(); frm.ShowDialog(); }, true); FuncoesGlobais.DefinirEventosPicBtn(picRede, "Erro ao parametrizar módulo de comunicação!", async () => { if (LoRaService.Iniciado) { frmLoraConfig frm = new frmLoraConfig(VariaveisMonitoramento.ComunicacaoLoRa); frm.ShowDialog(); } else { MessageBox.Show("Módulo LoRa de comunicação não está conectado ou não está no modo de parametrização!", "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Warning); } }, true); FuncoesGlobais.DefinirEventosPicBtn(picRastreamento, "Erro ao carregar monitoramento!", async () => { frmMonitoramento frm = new frmMonitoramento(); frm.ShowDialog(); }, true); tmrDispositivos.Elapsed += TmrDispositivos_Elapsed; tmrDispositivos.Start(); } private void IniciarDependencias() { tmrDispositivos.Elapsed += TmrDispositivos_Elapsed; tmrDispositivos.Start(); } private async void TmrDispositivos_Elapsed(object sender, EventArgs e) { ((System.Timers.Timer)sender).Stop(); //SerialService.RealizarVarreduraPortasUSB().ConfigureAwait(false); Func funcao = new Func(() => { lblMqtt.Text = "MQTT: " + (Variaveis.MqttService.StatusConexao() ? "Conectado" : "Desconectado"); lblMqtt.ForeColor = Variaveis.MqttService.StatusConexao() ? Color.Green : Color.Red; lblLoRa.Text = "LoRa: " + (LoRaService.Iniciado ? "Conectado" : "Desconectado"); lblLoRa.ForeColor = LoRaService.Iniciado ? Color.Green : Color.Red; lblGps.Text = "GPS: " + (GPSService.Iniciado ? "Conectado" : "Desconectado"); lblGps.ForeColor = GPSService.Iniciado ? Color.Green : Color.Red; return true; }); FuncoesGlobais.ExecutarMetodoComVerificacaoCrossThread(this, funcao); await SerialService.RealizarVarreduraPortasUSB(tmrDispositivos); ((System.Timers.Timer)sender).Start(); } } }