200 lines
7.6 KiB
C#
200 lines
7.6 KiB
C#
using AgroBase.Models;
|
|
using AgroBase.Models.Operacoes;
|
|
using AgroBase.Services;
|
|
using Newtonsoft.Json;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
using static AgroBase.Models.Enuns;
|
|
|
|
namespace AgroMonitor.Forms
|
|
{
|
|
public partial class frmAjustesOperacao : Form
|
|
{
|
|
OperacaoParametrosModel Parametros = new OperacaoParametrosModel();
|
|
Timer tmrDadosMapa = new Timer();
|
|
string path = Variaveis.CaminhoSistema + Variaveis.CaminhoOperacoes + "\\" + MapasVariaveisModel.NomeArquivoMapaInterativoSaida;
|
|
|
|
public frmAjustesOperacao()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void frmAjustesOperacao_Load(object sender, EventArgs e)
|
|
{
|
|
cmbModosOperacao.Items.Clear();
|
|
cmbModosOperacao.Items.AddRange(Enum.GetNames(typeof(ModoOperacao)));
|
|
cmbModosOperacao.SelectedIndex = 0;
|
|
}
|
|
|
|
private void frmAjustesOperacao_FormClosing(object sender, FormClosingEventArgs e)
|
|
{
|
|
tmrDadosMapa.Stop();
|
|
}
|
|
|
|
|
|
|
|
private void cmbModosOperacao_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
AtualizarDadosOperacao(true);
|
|
}
|
|
|
|
private void AtualizarDadosOperacao(bool CarregarOperacao)
|
|
{
|
|
if (CarregarOperacao)
|
|
{
|
|
Variaveis.OperacaoEmAndamento = OperacaoModel.CarregarParametrosOperacaoPadrao((ModoOperacao)cmbModosOperacao.SelectedIndex);
|
|
}
|
|
|
|
foreach (var chb in pnlModulos.Controls.OfType<CheckBox>())
|
|
{
|
|
string disp = chb.Name.Replace("chb", "");
|
|
T_Code Dispositivo = (T_Code)Enum.Parse(typeof(T_Code), disp);
|
|
chb.Checked = Variaveis.OperacaoEmAndamento.ModulosMandatorios.Any(x => x.Dispositivo == Dispositivo);
|
|
}
|
|
|
|
double velocidadeMax = MovimentacaoModel.CalculaVelocidadeRPM(Variaveis.OperacaoEmAndamento.Controle.RPM_Max);
|
|
double velocidadeMin = MovimentacaoModel.CalculaVelocidadeRPM(Variaveis.OperacaoEmAndamento.Controle.RPM_Min);
|
|
|
|
txtDescricao.Text = Variaveis.OperacaoEmAndamento.Descricao;
|
|
txtVelocidadeSemErvas.Text = velocidadeMax.ToString("0.00");
|
|
txtVelocidadeComErvas.Text = velocidadeMin.ToString("0.00");
|
|
txtAnguloMaximo.Text = Variaveis.OperacaoEmAndamento.Controle.Angulo_Max.ToString("0");
|
|
txtVelocidadeDirecional.Text = Variaveis.OperacaoEmAndamento.Controle.VelocidadeMP.ToString("0");
|
|
txtPercentualAtuacao.Text = (Variaveis.OperacaoEmAndamento.Controle.PercentualInicioPulverizacao * 100).ToString("0");
|
|
txtCapacidadeReservatorio.Text = Variaveis.OperacaoEmAndamento.CapacidadeReservatorio.ToString("0");
|
|
txtPressaoLinha.Text = Variaveis.OperacaoEmAndamento.Controle.PressaoLinha.ToString("0");
|
|
txtDuracaoAtuacao.Text = Variaveis.OperacaoEmAndamento.Controle.TempoAtuacao.ToString("0");
|
|
}
|
|
|
|
private void btnProximo_Click(object sender, EventArgs e)
|
|
{
|
|
tabControl1.SelectedIndex = 1;
|
|
}
|
|
|
|
private void btnCarregarMapa_Click(object sender, EventArgs e)
|
|
{
|
|
List<string> ruasSelecionadas = new List<string>();
|
|
|
|
Variaveis.OperacaoEmAndamento.Mapa = new MapasModel();
|
|
Variaveis.OperacaoEmAndamento.Mapa.pnlMapa = pnlMapa;
|
|
Variaveis.OperacaoEmAndamento.Mapa.lblMapa = lblMapaCarregado;
|
|
|
|
tabControl1.SelectedIndex = 1;
|
|
|
|
Variaveis.OperacaoEmAndamento.Mapa.btnCarregar_Click(sender, e);
|
|
|
|
if (!tmrDadosMapa.Enabled)
|
|
{
|
|
tmrDadosMapa = new Timer() { Interval = 500 };
|
|
tmrDadosMapa.Tick += tmrDadosMapa_Tick;
|
|
tmrDadosMapa.Start();
|
|
}
|
|
}
|
|
|
|
private void tmrDadosMapa_Tick(object sender, EventArgs e)
|
|
{
|
|
if (Variaveis.OperacaoEmAndamento.Mapa.mapaService.DadosMapa == null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
//GPSService.AtualizarRuasSelecionadas(new List<string>() { "183", "182", "181" });
|
|
|
|
Variaveis.OperacaoEmAndamento.OpMapaGPS.AtualizarRuasSelecionadas();
|
|
|
|
lblDistanciaTotal.Text = $"Distância total: {Variaveis.OperacaoEmAndamento.Mapa.mapaService.DadosMapa.features.Sum(x => x.properties.Length).ToString("0.00")} m";
|
|
lblDistanciaOperacao.Text = $"Distância da operação: {Variaveis.OperacaoEmAndamento.Mapa.DistanciaTotal.ToString("0.00")} m";
|
|
|
|
double.TryParse(txtVelocidadeSemErvas.Text, out double velocidadeSemErvas);
|
|
double.TryParse(txtVelocidadeComErvas.Text, out double velocidadeComErvas);
|
|
|
|
string tempo = Variaveis.OperacaoEmAndamento.TempoEstimado(velocidadeSemErvas, velocidadeComErvas);
|
|
|
|
lblTempoEstimado.Text = $"Tempo estimado: {tempo}";
|
|
}
|
|
|
|
|
|
private void btnSalvar_Click(object sender, EventArgs e)
|
|
{
|
|
bool sucesso = Variaveis.OperacaoEmAndamento.SalvarParametrizacaoOperacao(
|
|
txtDescricao.Text,
|
|
txtCapacidadeReservatorio.Text,
|
|
txtPressaoLinha.Text,
|
|
txtDuracaoAtuacao.Text,
|
|
txtPercentualAtuacao.Text,
|
|
txtAnguloMaximo.Text,
|
|
txtVelocidadeDirecional.Text,
|
|
txtVelocidadeSemErvas.Text,
|
|
txtVelocidadeComErvas.Text
|
|
);
|
|
if (!sucesso)
|
|
{
|
|
txtDescricao.Focus();
|
|
}
|
|
}
|
|
|
|
private void btnCarregar_Click(object sender, EventArgs e)
|
|
{
|
|
CarregarOperacao().ConfigureAwait(false);
|
|
}
|
|
|
|
private async Task CarregarOperacao()
|
|
{
|
|
(bool carregado, List<string> ruasSelecionadas) = Variaveis.OperacaoEmAndamento.CarregarParametrizacaoOperacao(pnlMapa, lblMapaCarregado);
|
|
if (carregado)
|
|
{
|
|
tabControl1.SelectedIndex = 1;
|
|
|
|
AtualizarDadosOperacao(false);
|
|
|
|
MessageBox.Show("Operação carregada com sucesso!", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
|
|
|
tmrDadosMapa = new Timer() { Interval = 500 };
|
|
tmrDadosMapa.Tick += tmrDadosMapa_Tick;
|
|
tmrDadosMapa.Start();
|
|
|
|
await Task.Delay(1000);
|
|
|
|
if (ruasSelecionadas.Any())
|
|
{
|
|
await Task.Delay(1000);
|
|
GPSService.AtualizarRuasSelecionadas(ruasSelecionadas);
|
|
File.Delete(path);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void chbModulo_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
CheckBox chb = (CheckBox)sender;
|
|
string ModID = chb.Name.Replace("chb", "");
|
|
T_Code Dispositivo = (T_Code)Enum.Parse(typeof(T_Code), ModID);
|
|
|
|
if (Variaveis.OperacaoEmAndamento.ModulosMandatorios.Any(x => x.Dispositivo == Dispositivo))
|
|
{
|
|
Variaveis.OperacaoEmAndamento.ModulosMandatorios.First(x => x.Dispositivo == Dispositivo).Mandatorio = chb.Checked;
|
|
}
|
|
else
|
|
{
|
|
Variaveis.OperacaoEmAndamento.ModulosMandatorios.Add(new OperacaoModulosMandatoriosModel()
|
|
{
|
|
Dispositivo = Dispositivo,
|
|
Conectado = false,
|
|
Mandatorio = chb.Checked,
|
|
Utilizar = chb.Checked,
|
|
});
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|