138 lines
6.1 KiB
C#
138 lines
6.1 KiB
C#
using AgroBase.Comum;
|
|
using AgroBase.Models;
|
|
using AgroBase.Models.Modules;
|
|
using System;
|
|
using System.Linq;
|
|
using System.Windows.Forms;
|
|
using static AgroBase.Models.Enums;
|
|
|
|
namespace AgroBase.Forms.Movimentacao
|
|
{
|
|
public partial class frmMovConfig : Form
|
|
{
|
|
DispositivosService<MovimentacaoUnificadaModel> Disp = (DispositivosService<MovimentacaoUnificadaModel>)Variaveis.DispositivosConectados.FirstOrDefault(x => x.Dispositivo == T_Code.Mvd);
|
|
|
|
public frmMovConfig()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void frmMovConfig_Load(object sender, EventArgs e)
|
|
{
|
|
if (Disp == null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
cmbTipoMovimento.Items.Clear();
|
|
cmbTipoMovimento.Items.AddRange(Enum.GetNames(typeof(TipoMovimentoDirecional)));
|
|
cmbTipoMovimento.SelectedIndex = (int)Variaveis.OperacaoEmAndamento.Controle.TipoMovimento;
|
|
|
|
AtualizarConfiguracaoSentido();
|
|
}
|
|
|
|
private void AtualizarConfiguracaoSentido()
|
|
{
|
|
var cmbsSentido = gpbET.Controls.OfType<ComboBox>().ToList().Union(gpbEF.Controls.OfType<ComboBox>().ToList()).Union(gpbDT.Controls.OfType<ComboBox>().ToList()).Union(gpbDF.Controls.OfType<ComboBox>().ToList()).ToList();
|
|
foreach (var cmb in cmbsSentido)
|
|
{
|
|
cmb.Items.Clear();
|
|
cmb.Items.AddRange(Enum.GetNames(typeof(Sentido)).ToArray());
|
|
cmb.SelectedIndex = 0;
|
|
|
|
var Modulo = Disp.Dados.Modulos.FirstOrDefault(x => x.Modulo_ID == cmb.Name.Substring(3, 2));
|
|
if (Modulo != null)
|
|
{
|
|
Sentido sentido = Sentido.Parado;
|
|
if (cmb.Name.Contains("Frente"))
|
|
{
|
|
sentido = Modulo.MovMotor.ConfigSentidos[Variaveis.OperacaoEmAndamento.Controle.TipoMovimento].Frente;
|
|
}
|
|
else if (cmb.Name.Contains("Tras"))
|
|
{
|
|
sentido = Modulo.MovMotor.ConfigSentidos[Variaveis.OperacaoEmAndamento.Controle.TipoMovimento].Tras;
|
|
}
|
|
else if (cmb.Name.Contains("Esquerda"))
|
|
{
|
|
sentido = Modulo.MovMotor.ConfigSentidos[Variaveis.OperacaoEmAndamento.Controle.TipoMovimento].Esquerda;
|
|
}
|
|
else if (cmb.Name.Contains("Direita"))
|
|
{
|
|
sentido = Modulo.MovMotor.ConfigSentidos[Variaveis.OperacaoEmAndamento.Controle.TipoMovimento].Direita;
|
|
}
|
|
|
|
cmb.SelectedItem = Enum.GetName(typeof(Sentido), sentido);
|
|
|
|
nudNumPolos.Value = Modulo.MovMotor.NumeroPolos;
|
|
nudRampa.Value = Modulo.MovMotor.Rampa;
|
|
txtOffsetLeitura.Text = Modulo.MovMotor.OffsetLeitura.ToString();
|
|
|
|
TextBox txtEndereco = FuncoesGlobais.FindControlRecursive<TextBox>(gpbSentido, "txt" + Modulo.Modulo_ID + "Endereco");
|
|
txtEndereco.Text = Modulo.MovMotor.Endereco;
|
|
}
|
|
}
|
|
|
|
nudRPMMax.Value = (int)Disp.Dados.RPM_Max_MotorBLDC;
|
|
nudReducao.Value = (int)Disp.Dados.ReducaoMotorBLDC;
|
|
nudDiametroRoda.Value = (int)(Disp.Dados.DiametroRoda * 1000);
|
|
txtIP.Text = Disp.Dados.IP_Bld;
|
|
}
|
|
|
|
private void frmMovConfig_FormClosing(object sender, FormClosingEventArgs e)
|
|
{
|
|
e.Cancel = true;
|
|
this.Visible = false;
|
|
}
|
|
|
|
private void btnSalvar_Click(object sender, EventArgs e)
|
|
{
|
|
var cmbsSentido = gpbET.Controls.OfType<ComboBox>().ToList().Union(gpbEF.Controls.OfType<ComboBox>().ToList()).Union(gpbDT.Controls.OfType<ComboBox>().ToList()).Union(gpbDF.Controls.OfType<ComboBox>().ToList()).ToList();
|
|
foreach (var cmb in cmbsSentido)
|
|
{
|
|
var Modulo = Disp.Dados.Modulos.FirstOrDefault(x => x.Modulo_ID == cmb.Name.Substring(3, 2));
|
|
if (Modulo != null)
|
|
{
|
|
Sentido sentido = (Sentido)cmb.SelectedIndex;
|
|
if (cmb.Name.Contains("Frente"))
|
|
{
|
|
Modulo.MovMotor.ConfigSentidos[Variaveis.OperacaoEmAndamento.Controle.TipoMovimento].Frente = sentido;
|
|
}
|
|
else if (cmb.Name.Contains("Tras"))
|
|
{
|
|
Modulo.MovMotor.ConfigSentidos[Variaveis.OperacaoEmAndamento.Controle.TipoMovimento].Tras = sentido;
|
|
}
|
|
else if (cmb.Name.Contains("Esquerda"))
|
|
{
|
|
Modulo.MovMotor.ConfigSentidos[Variaveis.OperacaoEmAndamento.Controle.TipoMovimento].Esquerda = sentido;
|
|
}
|
|
else if (cmb.Name.Contains("Direita"))
|
|
{
|
|
Modulo.MovMotor.ConfigSentidos[Variaveis.OperacaoEmAndamento.Controle.TipoMovimento].Direita = sentido;
|
|
}
|
|
|
|
Modulo.MovMotor.NumeroPolos = Convert.ToInt32(nudNumPolos.Value);
|
|
Modulo.MovMotor.Rampa = Convert.ToInt32(nudRampa.Value);
|
|
Modulo.MovMotor.OffsetLeitura = Convert.ToDouble(txtOffsetLeitura.Text);
|
|
|
|
TextBox txtEndereco = FuncoesGlobais.FindControlRecursive<TextBox>(gpbSentido, "txt" + Modulo.Modulo_ID + "Endereco");
|
|
Modulo.MovMotor.Endereco = txtEndereco.Text;
|
|
}
|
|
}
|
|
|
|
Disp.Dados.RPM_Max_MotorBLDC = Convert.ToInt32(nudRPMMax.Value);
|
|
Disp.Dados.ReducaoMotorBLDC = Convert.ToInt32(nudReducao.Value);
|
|
Disp.Dados.DiametroRoda = Convert.ToDouble(nudDiametroRoda.Value / 1000);
|
|
Disp.Dados.IP_Bld = txtIP.Text;
|
|
|
|
Disp.SalvarParametros(Disp.Dados);
|
|
}
|
|
|
|
private void cmbTipoMovimento_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
Variaveis.OperacaoEmAndamento.Controle.TipoMovimento = (TipoMovimentoDirecional)cmbTipoMovimento.SelectedIndex;
|
|
AtualizarConfiguracaoSentido();
|
|
}
|
|
|
|
}
|
|
}
|