146 lines
6.8 KiB
C#
146 lines
6.8 KiB
C#
using AgroBase.Models;
|
|
using CefSharp.WinForms;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Windows.Forms;
|
|
using static AgroBase.Models.Enuns;
|
|
|
|
namespace AgroBase.Forms.Operacoes
|
|
{
|
|
public partial class frmParametrizacaoOperacao : Form
|
|
{
|
|
List<OperacaoModulosMandatoriosModel> ModulosMandatorios = new List<OperacaoModulosMandatoriosModel>();
|
|
|
|
public frmParametrizacaoOperacao()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void frmParametrizacaoOperacao_Load(object sender, EventArgs e)
|
|
{
|
|
CarregarParametros();
|
|
}
|
|
|
|
void CarregarParametros()
|
|
{
|
|
ModulosMandatorios = Variaveis.OperacaoEmAndamento.ModulosMandatorios.ToList();
|
|
|
|
cmbOperacao.Items.Clear();
|
|
cmbOperacao.Items.AddRange(Enum.GetNames(typeof(ModoOperacao)));
|
|
cmbOperacao.SelectedIndex = (int)Variaveis.OperacaoEmAndamento.Modo;
|
|
|
|
var chbModulos = gpbModulos.Controls.OfType<CheckBox>().Where(x => x.Name.Contains("chbD_")).ToList();
|
|
chbModulos.ForEach(chb =>
|
|
{
|
|
T_Code chbDisp = (T_Code)Enum.Parse(typeof(T_Code), chb.Name.Replace("chbD_", ""), ignoreCase: true);
|
|
chb.Checked = ModulosMandatorios.Any(x => x.Dispositivo == chbDisp);
|
|
CheckBox chbO = gpbModulos.Controls.OfType<CheckBox>().FirstOrDefault(x => x.Name == chb.Name.Replace("chbD_", "chbO_"));
|
|
chbO.Enabled = ModulosMandatorios.Any(x => x.Dispositivo == chbDisp);
|
|
if (chbO.Enabled)
|
|
{
|
|
chbO.Checked = !ModulosMandatorios.First(x => x.Dispositivo == chbDisp).Mandatorio;
|
|
}
|
|
GroupBox gpb = gpbModulos.Controls.OfType<GroupBox>().FirstOrDefault(x => x.Name == chb.Name.Replace("chbD_", "gpbP_"));
|
|
if (gpb != null)
|
|
{
|
|
gpb.Enabled = chb.Checked;
|
|
}
|
|
});
|
|
|
|
nudVelocidadeComErvas.Value = Convert.ToInt32(Variaveis.OperacaoEmAndamento.Controle.RPM_Min);
|
|
nudVelocidadeSemErvas.Value = Convert.ToInt32(Variaveis.OperacaoEmAndamento.Controle.RPM_Max);
|
|
lblKmhCErvas.Text = MovimentacaoModel.CalculaVelocidadeRPM(Variaveis.OperacaoEmAndamento.Controle.RPM_Min).ToString("0.00") + " Km/h";
|
|
lblKmhSErvas.Text = MovimentacaoModel.CalculaVelocidadeRPM(Variaveis.OperacaoEmAndamento.Controle.RPM_Max).ToString("0.00") + " Km/h";
|
|
nudAnguloMaximo.Value = Convert.ToInt32(Variaveis.OperacaoEmAndamento.Controle.Angulo_Max);
|
|
nudAnguloMinimo.Value = Convert.ToInt32(Variaveis.OperacaoEmAndamento.Controle.Angulo_Min);
|
|
nudVelocidadeMP.Value = Convert.ToInt32(Variaveis.OperacaoEmAndamento.Controle.VelocidadeMP);
|
|
nudTemposalvarlog.Value = Variaveis.OperacaoEmAndamento.tmrLogs.Interval / 1000;
|
|
}
|
|
|
|
private void chbD_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
CheckBox chbD = (CheckBox)sender;
|
|
CheckBox chbO = gpbModulos.Controls.OfType<CheckBox>().FirstOrDefault(x => x.Name == chbD.Name.Replace("chbD_", "chbO_"));
|
|
if (chbO != null)
|
|
{
|
|
chbO.Enabled = chbD.Checked;
|
|
}
|
|
T_Code chbDisp = (T_Code)Enum.Parse(typeof(T_Code), chbD.Name.Replace("chbD_", ""), ignoreCase: true);
|
|
if (!ModulosMandatorios.Any(x => x.Dispositivo == chbDisp))
|
|
{
|
|
ModulosMandatorios.Add(new OperacaoModulosMandatoriosModel()
|
|
{
|
|
Dispositivo = chbDisp,
|
|
Mandatorio = !chbO.Checked,
|
|
});
|
|
}
|
|
ModulosMandatorios.First(x => x.Dispositivo == chbDisp).Utilizar = chbD.Checked;
|
|
GroupBox gpb = gpbModulos.Controls.OfType<GroupBox>().FirstOrDefault(x => x.Name == chbD.Name.Replace("chbD_", "gpbP_"));
|
|
if (gpb != null)
|
|
{
|
|
gpb.Enabled = chbD.Checked;
|
|
}
|
|
}
|
|
|
|
private void chbO_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
CheckBox chbO = (CheckBox)sender;
|
|
T_Code Disp = (T_Code)Enum.Parse(typeof(T_Code), chbO.Name.Replace("chbO_", ""), ignoreCase: true);
|
|
ModulosMandatorios.First(x => x.Dispositivo == Disp).Utilizar = true;
|
|
ModulosMandatorios.First(x => x.Dispositivo == Disp).Mandatorio = !chbO.Checked;
|
|
}
|
|
|
|
private void btnSalvar_Click(object sender, EventArgs e)
|
|
{
|
|
SalvarOperacao();
|
|
|
|
this.Close();
|
|
}
|
|
|
|
private void nudVelocidadeSemErvas_ValueChanged(object sender, EventArgs e)
|
|
{
|
|
lblKmhSErvas.Text = MovimentacaoModel.CalculaVelocidadeRPM((double)nudVelocidadeSemErvas.Value).ToString("0.00") + " Km/h";
|
|
}
|
|
|
|
private void nudVelocidadeComErvas_ValueChanged(object sender, EventArgs e)
|
|
{
|
|
lblKmhCErvas.Text = MovimentacaoModel.CalculaVelocidadeRPM((double)nudVelocidadeComErvas.Value).ToString("0.00") + " Km/h";
|
|
}
|
|
|
|
void SalvarOperacao()
|
|
{
|
|
Variaveis.OperacaoEmAndamento.ModulosMandatorios = ModulosMandatorios.Where(x => x.Utilizar).ToList();
|
|
Variaveis.OperacaoEmAndamento.Controle.RPM_Max = Convert.ToInt32(nudVelocidadeSemErvas.Value);
|
|
Variaveis.OperacaoEmAndamento.Controle.RPM_Min = Convert.ToInt32(nudVelocidadeComErvas.Value);
|
|
Variaveis.OperacaoEmAndamento.Controle.Angulo_Max = Convert.ToInt32(nudAnguloMaximo.Value);
|
|
Variaveis.OperacaoEmAndamento.Controle.Angulo_Min = Convert.ToInt32(nudAnguloMinimo.Value);
|
|
Variaveis.OperacaoEmAndamento.Controle.VelocidadeMP = Convert.ToInt32(nudVelocidadeMP.Value);
|
|
Variaveis.OperacaoEmAndamento.tmrLogs.Interval = Convert.ToInt32(nudTemposalvarlog.Value * 1000);
|
|
|
|
if (chbSalvar.Checked)
|
|
{
|
|
OperacaoModel.SalvarOperacaoPersonalizada(Variaveis.OperacaoEmAndamento);
|
|
MessageBox.Show("Operação " + Enum.GetName(typeof(ModoOperacao), Variaveis.OperacaoEmAndamento.Modo) + " salva com sucesso!", "Sucesso");
|
|
}
|
|
}
|
|
|
|
private void btnCarregar_Click(object sender, EventArgs e)
|
|
{
|
|
OpenFileDialog ofd = new OpenFileDialog();
|
|
ofd.Filter = "Arquivos de Operação|*.opr";
|
|
ofd.InitialDirectory = Application.StartupPath;
|
|
if (ofd.ShowDialog() == DialogResult.OK)
|
|
{
|
|
string operacaoPath = ofd.FileName;
|
|
Variaveis.OperacaoEmAndamento = OperacaoModel.CarregarOperacaoPersonalizada(operacaoPath);
|
|
MessageBox.Show("Operação " + Enum.GetName(typeof(ModoOperacao), Variaveis.OperacaoEmAndamento.Modo) + " carregada com sucesso!", "Sucesso");
|
|
|
|
CarregarParametros();
|
|
}
|
|
}
|
|
}
|
|
}
|