2024-02-19 13:11:53 +00:00
|
|
|
|
using AgroBase.Comum;
|
|
|
|
|
|
using AgroBase.Forms.Operacoes;
|
|
|
|
|
|
using AgroBase.Models;
|
|
|
|
|
|
using AgroBase.Services;
|
|
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.ComponentModel;
|
|
|
|
|
|
using System.Data;
|
|
|
|
|
|
using System.Drawing;
|
|
|
|
|
|
using System.IO.Ports;
|
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
using System.Windows.Forms;
|
|
|
|
|
|
using static AgroBase.Models.Enuns;
|
|
|
|
|
|
|
|
|
|
|
|
namespace AgroBase.Forms.IHM
|
|
|
|
|
|
{
|
|
|
|
|
|
public partial class frmIHM : Form
|
|
|
|
|
|
{
|
|
|
|
|
|
Timer tmrDispositivos = new Timer() { Interval = 5000, Enabled = false };
|
|
|
|
|
|
|
|
|
|
|
|
public frmIHM()
|
|
|
|
|
|
{
|
|
|
|
|
|
InitializeComponent();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void frmIHM_Load(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
tmrDispositivos.Tick += TmrDispositivos_Tick;
|
|
|
|
|
|
tmrDispositivos.Start();
|
|
|
|
|
|
|
|
|
|
|
|
cmbOperacao.Items.Clear();
|
|
|
|
|
|
cmbOperacao.Items.AddRange(Enum.GetNames(typeof(ModoOperacao)));
|
|
|
|
|
|
cmbOperacao.SelectedIndex = (int)Variaveis.OperacaoEmAndamento.Modo;
|
|
|
|
|
|
|
|
|
|
|
|
Variaveis.OperacaoEmAndamento = OperacaoModel.CarregarOperacaoPersonalizada(Application.StartupPath + "\\operacao" + Enum.GetName(typeof(ModoOperacao), Variaveis.OperacaoEmAndamento.Modo) + ".opr");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void TmrDispositivos_Tick(object sender, EventArgs e)
|
|
|
|
|
|
{
|
2024-03-07 19:08:37 +00:00
|
|
|
|
SerialService.RealizarVarreduraPortasUSB();
|
2024-02-19 13:11:53 +00:00
|
|
|
|
|
|
|
|
|
|
var Labels = this.Controls.OfType<Label>().Where(y => y.Name.Contains("lblD_")).ToList();
|
|
|
|
|
|
Labels.ForEach(lbl =>
|
|
|
|
|
|
{
|
|
|
|
|
|
lbl.ForeColor = Color.Black;
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
SerialService.DispositivosMapeados.ForEach(Modulo =>
|
|
|
|
|
|
{
|
|
|
|
|
|
Label lblDisp = Labels.Where(y => y.Name.Replace("lblD_", "") == Enum.GetName(typeof(T_Code), Modulo.Dispositivo)).FirstOrDefault();
|
|
|
|
|
|
if (lblDisp != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
bool DispositivoConectado = false;
|
|
|
|
|
|
|
|
|
|
|
|
if (Modulo.Dispositivo == T_Code.Gps)
|
|
|
|
|
|
{
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!GPSService.PortaGPS.IsOpen)
|
|
|
|
|
|
{
|
|
|
|
|
|
GPSService.IniciarRecepcaoDados();
|
|
|
|
|
|
}
|
|
|
|
|
|
DispositivoConectado = GPSService.PortaGPS.IsOpen;
|
|
|
|
|
|
}
|
|
|
|
|
|
catch
|
|
|
|
|
|
{
|
|
|
|
|
|
DispositivoConectado = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
IDispositivosService dispositivoService = Variaveis.DispositivosConectados.FirstOrDefault(x => x.Dispositivo == Modulo.Dispositivo && x._Porta.PortName == Modulo.PortaCOM);
|
2024-03-07 19:08:37 +00:00
|
|
|
|
if (dispositivoService != null)
|
2024-02-19 13:11:53 +00:00
|
|
|
|
{
|
2024-03-07 19:08:37 +00:00
|
|
|
|
if (!dispositivoService._Porta.IsOpen)
|
|
|
|
|
|
{
|
|
|
|
|
|
dispositivoService.btnConectar_Click(new object(), new EventArgs());
|
|
|
|
|
|
}
|
|
|
|
|
|
DispositivoConectado = dispositivoService._Porta.IsOpen;
|
2024-02-19 13:11:53 +00:00
|
|
|
|
}
|
2024-03-07 19:08:37 +00:00
|
|
|
|
else
|
2024-02-19 13:11:53 +00:00
|
|
|
|
{
|
2024-03-07 19:08:37 +00:00
|
|
|
|
DispositivoConectado = false;
|
2024-02-19 13:11:53 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
lblDisp.ForeColor = DispositivoConectado ? Color.Green : Color.Red;
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
if (SerialService.DispositivosMapeados.Count == 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
Variaveis.DispositivosConectados.Where(x => x.Dados.GetStatusConexao()).ToList().ForEach(x => x.AcaoDesconectar());
|
|
|
|
|
|
}
|
2024-03-07 19:08:37 +00:00
|
|
|
|
|
|
|
|
|
|
lblMqtt.Text = "MQTT: " + (Variaveis.MqttService.StatusConexao() ? "Conectado" : "Desconectado");
|
|
|
|
|
|
lblMqtt.ForeColor = Variaveis.MqttService.StatusConexao() ? Color.Green : Color.Red;
|
2024-02-19 13:11:53 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void btnConfigurar_Click(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
frmParametrizacaoOperacao frmParametrizacaoOperacao = new frmParametrizacaoOperacao();
|
|
|
|
|
|
frmParametrizacaoOperacao.ShowDialog();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void cmbOperacao_SelectedIndexChanged(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
Variaveis.OperacaoEmAndamento = OperacaoModel.CarregarParametrosOperacaoPadrao((ModoOperacao)cmbOperacao.SelectedIndex);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void btnIniciar_Click(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (Variaveis.OperacaoEmAndamento.Iniciado)
|
|
|
|
|
|
{
|
|
|
|
|
|
Variaveis.OperacaoEmAndamento.FinalizarOperacao();
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
2024-03-07 19:08:37 +00:00
|
|
|
|
if (Variaveis.OperacaoEmAndamento.ModulosConectados)
|
2024-02-19 13:11:53 +00:00
|
|
|
|
{
|
2024-03-11 20:04:48 +00:00
|
|
|
|
Variaveis.OperacaoEmAndamento.frmOperacao = (Form)Activator.CreateInstance(Variaveis.OperacaoEmAndamento.frmOperacao.GetType());
|
2024-03-07 19:08:37 +00:00
|
|
|
|
Variaveis.OperacaoEmAndamento.frmOperacao.ShowDialog();
|
2024-02-19 13:11:53 +00:00
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
2024-03-07 19:08:37 +00:00
|
|
|
|
MessageBox.Show(Variaveis.OperacaoEmAndamento.ErroOperacaoLiberada, "Conexão de módulos pendentes", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
2024-02-19 13:11:53 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
btnIniciar.Text = Variaveis.OperacaoEmAndamento.Iniciado ? "Finalizar" : "Iniciar";
|
|
|
|
|
|
cmbOperacao.Enabled = !Variaveis.OperacaoEmAndamento.Iniciado;
|
|
|
|
|
|
lblOperacaoStatus.Text = "Operação: " + Enum.GetName(typeof(ModoOperacao), Variaveis.OperacaoEmAndamento.Modo) + " " + (Variaveis.OperacaoEmAndamento.Iniciado ? "Iniciado" : "Não iniciado");
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|