98 lines
2.5 KiB
C#
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;
|
|
}
|
|
|
|
}
|
|
}
|