agrobot_base/AgroBase/AgroBase/Forms/frmInstancial.cs

98 lines
2.5 KiB
C#

using AgroBase.Forms.IHM;
using AgroBase.Forms.Movimentacao;
using AgroBase.Models;
using AgroBase.Models.Modules;
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;
using static AgroBase.Models.Enuns;
namespace AgroBase.Forms
{
public partial class frmInstancial : Form
{
public bool DebugMode = true;
public static bool Fechando = false;
public static frmPrincipal frmPrincipal = new frmPrincipal();
public static frmJoystick frmJoystick = new frmJoystick();
public static frmAcompanhamento frmAcompanhamento = new frmAcompanhamento();
public static frmIHM frmIHM = new frmIHM()
{
FormBorderStyle = FormBorderStyle.None,
WindowState = FormWindowState.Maximized,
TopMost = true
};
public frmInstancial()
{
InitializeComponent();
FilaService.Inicializar();
}
private void frmInstancial_Shown(object sender, EventArgs e)
{
if (DebugMode)
{
frmPrincipal.FormClosing += frmPrincipal_FormClosing;
frmPrincipal.Show();
}
else
{
frmIHM.FormClosing += frmPrincipal_FormClosing;
frmIHM.Show();
}
this.Hide();
}
private void frmInstancial_Load(object sender, EventArgs e)
{
FuncoesGlobais.AddApplicationToStartup();
IniciarConexaoMqtt();
}
private async void IniciarConexaoMqtt()
{
await Variaveis.MqttService.ConnectAsync();
}
public static async Task EncerrarProcessos()
{
Fechando = true;
foreach (var Disp in Variaveis.DispositivosConectados)
{
if (Disp._Porta.IsOpen)
{
Disp.btnConectar_Click(new object(), new EventArgs());
}
Disp.SalvarParametros(Disp.Dados);
}
while (!FilaService.Liberado)
{
await Task.Delay(500);
}
Environment.Exit(0);
}
private void frmPrincipal_FormClosing(object sender, FormClosingEventArgs e)
{
EncerrarProcessos().ConfigureAwait(false);
e.Cancel = true;
}
}
}