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 ;
2024-07-12 19:44:56 +00:00
using System.Diagnostics ;
2024-02-19 13:11:53 +00:00
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 ( ) ;
2024-07-12 19:44:56 +00:00
FuncoesGlobais . DefinirEventosPicBtn ( picOperacao , async ( ) = >
{
frmInicioOperacao frm = new frmInicioOperacao ( ) ;
frm . ShowDialog ( ) ;
} ) ;
FuncoesGlobais . DefinirEventosPicBtn ( picDiagnosticos , async ( ) = >
{
} ) ;
/ * FuncoesGlobais . DefinirEventosPicBtn ( picComunicacao , async ( ) = >
{
if ( LoRaService . Iniciado )
{
frmLoraConfig frm = new frmLoraConfig ( Variaveis . ConexaoLoRa ) ;
frm . Show ( ) ;
}
else
{
MessageBox . Show ( "Módulo LoRa de comunicação não está conectado ou não está no modo de parametrização!" , "Aviso" , MessageBoxButtons . OK , MessageBoxIcon . Information ) ;
}
} ) ; * /
FuncoesGlobais . DefinirEventosPicBtn ( picAjustes , async ( ) = >
{
frmAjustes frm = new frmAjustes ( Variaveis . ConexaoLoRa ) ;
frm . ShowDialog ( ) ;
} ) ;
FuncoesGlobais . DefinirEventosPicBtn ( picDesligar , async ( ) = >
{
if ( MessageBox . Show ( "Deseja desligar o equipamento?" , "Desligar" , MessageBoxButtons . YesNo , MessageBoxIcon . Question ) = = DialogResult . Yes )
{
Process . Start ( "shutdown" , "/s /t 0" ) ;
}
} ) ;
2024-02-19 13:11:53 +00:00
}
private void TmrDispositivos_Tick ( object sender , EventArgs e )
{
2024-05-24 20:05:51 +00:00
SerialService . RealizarVarreduraPortasUSB ( ) . ConfigureAwait ( false ) ;
2024-02-19 13:11:53 +00:00
var Labels = this . Controls . OfType < Label > ( ) . Where ( y = > y . Name . Contains ( "lblD_" ) ) . ToList ( ) ;
Labels . ForEach ( lbl = >
{
2024-07-12 19:44:56 +00:00
T_Code Dispositivo = ( T_Code ) Enum . Parse ( typeof ( T_Code ) , lbl . Name . Split ( '_' ) [ 1 ] ) ;
string Mod_ID = lbl . Name . Split ( '_' ) . Length = = 3 ? lbl . Name . Split ( '_' ) [ 2 ] : lbl . Name . Split ( '_' ) [ 1 ] ;
2024-02-19 13:11:53 +00:00
2024-07-12 19:44:56 +00:00
if ( Dispositivo = = T_Code . Cam )
2024-02-19 13:11:53 +00:00
{
2024-07-12 19:44:56 +00:00
var listaCameras = CameraService . AtualizaListaCameras ( ) ;
2024-02-19 13:11:53 +00:00
2024-07-12 19:44:56 +00:00
var CameraCaminho = Variaveis . OperacaoEmAndamento . CameraCaminho ;
if ( CameraCaminho ! = null & & Mod_ID = = CameraCaminho . ID )
2024-05-24 20:05:51 +00:00
{
2024-07-12 19:44:56 +00:00
lbl . ForeColor = ! listaCameras . Any ( x = > x . Value = = CameraCaminho . CameraSelecionada ) ? Color . DarkRed : CameraCaminho . camera . selectedCamera = = 0 ? Color . Gold : Color . DarkGreen ;
2024-04-02 18:33:15 +00:00
}
2024-07-12 19:44:56 +00:00
else
2024-05-28 13:58:25 +00:00
{
2024-07-12 19:44:56 +00:00
var CameraSolo = Variaveis . OperacaoEmAndamento . CamerasSolo . FirstOrDefault ( x = > x . ID = = Mod_ID ) ;
if ( CameraSolo ! = null )
{
lbl . ForeColor = ! listaCameras . Any ( x = > x . Value = = CameraSolo . CameraSelecionada ) ? Color . DarkRed : CameraSolo . camera . selectedCamera = = 0 ? Color . Gold : Color . DarkGreen ;
}
2024-05-28 13:58:25 +00:00
}
2024-07-12 19:44:56 +00:00
}
else
{
var Modulo = SerialService . DispositivosMapeados . FirstOrDefault ( x = > x . Dispositivo = = Dispositivo & & ( x . Mod_ID = = Mod_ID | | x . Mod_ID = = null ) ) ;
if ( Modulo ! = null )
2024-06-03 23:05:50 +00:00
{
2024-07-12 19:44:56 +00:00
lbl . ForeColor = Modulo . Erro ? Color . Gold : Modulo . Conectado ? Color . DarkGreen : Color . DarkRed ;
2024-06-03 23:05:50 +00:00
}
2024-02-19 13:11:53 +00:00
else
{
2024-07-12 19:44:56 +00:00
lbl . ForeColor = Color . Black ;
2024-02-19 13:11:53 +00:00
}
}
} ) ;
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
}
2024-07-12 19:44:56 +00:00
private void lblModulo_Click ( object sender , EventArgs e )
2024-02-19 13:11:53 +00:00
{
2024-07-12 19:44:56 +00:00
Label lbl = ( Label ) sender ;
T_Code Dispositivo = ( T_Code ) Enum . Parse ( typeof ( T_Code ) , lbl . Name . Split ( '_' ) [ 1 ] ) ;
string Mod_ID = lbl . Name . Split ( '_' ) . Length = = 3 ? lbl . Name . Split ( '_' ) [ 2 ] : lbl . Name . Split ( '_' ) [ 1 ] ;
var Modulo = SerialService . DispositivosMapeados . FirstOrDefault ( x = > x . Dispositivo = = Dispositivo & & ( x . Mod_ID = = Mod_ID | | x . Mod_ID = = null ) ) ;
string msg = "Módulo: " + Dispositivo +
"\r\nID: " + Mod_ID +
"\r\nConectado: " + ( Modulo ! = null ? "Sim" : "Não" ) +
"\r\nInicializado: " + ( Modulo ! = null & & Modulo . Conectado ? "Sim" : "Não" ) +
"\r\nVersão: " + ( Modulo ! = null ? Modulo . Versao : "" ) +
"\r\nErro: " + ( Modulo ! = null & & Modulo . Erro ? "Sim" : "Não" ) +
"\r\nStatus: " + (
lbl . ForeColor = = Color . Black ? "Não conectado" :
lbl . ForeColor = = Color . DarkRed ? "Não inicializado" :
lbl . ForeColor = = Color . DarkGreen ? "Inicializado" :
lbl . ForeColor = = Color . Gold ? "Não configurado" :
""
) ;
var res = MessageBox . Show (
msg ,
"Detalhes" ,
Modulo ! = null & & Modulo . Conectado ? MessageBoxButtons . OK : MessageBoxButtons . RetryCancel ,
Modulo ! = null & & Modulo . Erro ? MessageBoxIcon . Error : Modulo ! = null & & Modulo . Conectado ? MessageBoxIcon . Information : MessageBoxIcon . Exclamation
) ;
2024-02-19 13:11:53 +00:00
}
}
}