agrobot_base/AgroBase/AgroBase/Forms/frmBLD.cs

213 lines
9.3 KiB
C#

using AgroBase.Models;
using AgroBase.Services;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using static AgroBase.Services.BLD300RService;
namespace AgroBase.Forms
{
public partial class frmBLD : Form
{
byte Addr = 0x02;
public frmBLD()
{
InitializeComponent();
}
private void frmBLD_Load(object sender, EventArgs e)
{
btnAtualizar_Click(sender, e);
//LoopAtualizacao().ConfigureAwait(false);
this.Text += " - "; // + BLD300RService._PortaBLD.PortName;
}
private async Task LoopAtualizacao()
{
/*if (BLD300RService.Iniciado)
{
if (btnSalvar.Text == "Editar")
{
AtualizarDadosTela();
}
btnAtivar.Text = BLD300RService.UltimaLeitura.Ativado ? "Desligar" : "Ligar";
btnSentido.Text = BLD300RService.UltimaLeitura.Direcao == Enuns.Sentido.Horario ? "Antihorário" : "Horário";
btnFrear.Text = BLD300RService.UltimaLeitura.Freado ? "Desligar" : "Ligar";
lblRPM.Text = BLD300RService.UltimaLeitura.RPM.ToString();
lblRPMSP.Text = BLD300RService.UltimaLeitura.RPM_SP.ToString();
FuncoesGlobais.PreencheValorProgressBar(pgbRPM, BLD300RService.UltimaLeitura.RPM);
FuncoesGlobais.PreencheValorProgressBar(pgbRPMSP, BLD300RService.UltimaLeitura.RPM_SP);
txtCodAlarme.Text = BLD300RService.UltimaLeitura.CodigoAlarme.ToString();
}*/
btnAtivar.Enabled = btnSalvar.Text == "Editar";
btnSentido.Enabled = btnSalvar.Text == "Editar";
btnFrear.Enabled = btnSalvar.Text == "Editar";
trbRPMSP.Enabled = btnSalvar.Text == "Editar";
chbControleSerial.Enabled = btnSalvar.Text != "Editar";
nudEndereco.Enabled = btnSalvar.Text != "Editar";
nudNumPolos.Enabled = btnSalvar.Text != "Editar";
nudRPMMax.Enabled = btnSalvar.Text != "Editar";
nudRampa.Enabled = btnSalvar.Text != "Editar";
await Task.Delay(200);
await LoopAtualizacao();
}
private void AtualizarDadosTela()
{
/*nudEndereco.Value = BLD300RService.slaveAddress;
trbRPMSP.Maximum = BLD300RService.UltimaLeitura.RPM_Max;
pgbRPM.Maximum = trbRPMSP.Maximum;
pgbRPMSP.Maximum = trbRPMSP.Maximum;
chbControleSerial.Checked = BLD300RService.UltimaLeitura.ControleRS485;
nudNumPolos.Value = BLD300RService.UltimaLeitura.NumeroPolos;
nudRPMMax.Value = BLD300RService.UltimaLeitura.RPM_Max;
nudRampa.Value = BLD300RService.UltimaLeitura.Rampa;
txtTensao.Text = BLD300RService.UltimaLeitura.Tensao.ToString("0.00");
txtTemperatura.Text = BLD300RService.UltimaLeitura.Temperatura.ToString("0.00");
txtCorrente.Text = BLD300RService.UltimaLeitura.CorrenteMax.ToString("0.00");*/
}
private void btnAtualizar_Click(object sender, EventArgs e)
{
/*if (BLD300RService.Iniciado)
{
BLD300RService.AtualizarDadosDriver().ConfigureAwait(false);
}*/
}
private void btnSalvar_Click(object sender, EventArgs e)
{
/*if (btnSalvar.Text == "Editar")
{
btnSalvar.Text = "Salvar";
}
else
{
BLD300RService.slaveAddress = (byte)nudEndereco.Value;
if (chbControleSerial.Checked != BLD300RService.UltimaLeitura.ControleRS485)
{
var parametro = BLD300RService.Parametros.First(x => x.Chave == "ControleRS485");
var comando = ModbusService.ComandoSetParametro(BLD300RService.slaveAddress, parametro, chbControleSerial.Checked ? 1 : 0);
ModbusService.EnviarComando(comando).ConfigureAwait(false);
}
if (Convert.ToInt32(nudNumPolos.Value) != BLD300RService.UltimaLeitura.NumeroPolos)
{
var parametro = BLD300RService.Parametros.First(x => x.Chave == "NumPolos");
var comando = ModbusService.ComandoSetParametro(BLD300RService.slaveAddress, parametro, Convert.ToInt32(nudNumPolos.Value));
ModbusService.EnviarComando(comando).ConfigureAwait(false);
}
if (Convert.ToInt32(nudRPMMax.Value) != BLD300RService.UltimaLeitura.RPM_Max)
{
var parametro = BLD300RService.Parametros.First(x => x.Chave == "RPM_Max");
var comando = ModbusService.ComandoSetParametro(BLD300RService.slaveAddress, parametro, Convert.ToInt32(nudRPMMax.Value));
ModbusService.EnviarComando(comando).ConfigureAwait(false);
}
if (Convert.ToInt32(nudRampa.Value) != BLD300RService.UltimaLeitura.Rampa)
{
var parametro = BLD300RService.Parametros.First(x => x.Chave == "Rampa");
var comando = ModbusService.ComandoSetParametro(BLD300RService.slaveAddress, parametro, Convert.ToInt32(nudRampa.Value));
ModbusService.EnviarComando(comando).ConfigureAwait(false);
}
btnSalvar.Text = "Editar";
}*/
}
private void btnAtivar_Click(object sender, EventArgs e)
{
/*var parametro = BLD300RService.Parametros.First(x => x.Chave == "Enabled");
var comando = ModbusService.ComandoSetParametro(BLD300RService.slaveAddress, parametro, BLD300RService.UltimaLeitura.Ativado ? 0 : 1);
ModbusService.EnviarComando(comando).ConfigureAwait(false);*/
var Leitura = BLD300RService.DadosLeitura.FirstOrDefault(x => x.Endereco == Addr && x.parametros.Any(y => y.Registro == 0x0066));
BLD300RService.AdicionarComandoNaFila(new BLDComandoModel()
{
Endereco = Addr,
Parametro = BLD300RService.Parametros.First(x => x.Chave == "Enabled"),
Valor = Leitura != null ? (Leitura.Ativado ? 0 : 1) : 0,
Get = false,
AguardaResposta = true,
TimeoutResposta = 200,
});
}
private void btnSentido_Click(object sender, EventArgs e)
{
/*var parametro = BLD300RService.Parametros.First(x => x.Chave == "Direction");
var comando = ModbusService.ComandoSetParametro(BLD300RService.slaveAddress, parametro, BLD300RService.UltimaLeitura.Direcao == Enuns.Sentido.Horario ? 0 : 1);
ModbusService.EnviarComando(comando).ConfigureAwait(false);*/
var Leitura = BLD300RService.DadosLeitura.FirstOrDefault(x => x.Endereco == Addr && x.parametros.Any(y => y.Registro == 0x006D));
BLD300RService.AdicionarComandoNaFila(new BLDComandoModel()
{
Endereco = Addr,
Parametro = BLD300RService.Parametros.First(x => x.Chave == "Direction"),
Valor = Leitura != null ? (Leitura.Direcao == Enums.Sentido.Horario ? 0 : 1) : 0,
Get = false,
AguardaResposta = true,
TimeoutResposta = 200,
});
}
private void btnFrear_Click(object sender, EventArgs e)
{
/*var parametro = BLD300RService.Parametros.First(x => x.Chave == "Breaked");
var comando = ModbusService.ComandoSetParametro(BLD300RService.slaveAddress, parametro, BLD300RService.UltimaLeitura.Freado ? 0 : 1);
ModbusService.EnviarComando(comando).ConfigureAwait(false);*/
var Leitura = BLD300RService.DadosLeitura.FirstOrDefault(x => x.Endereco == Addr && x.parametros.Any(y => y.Registro == 0x006A));
BLD300RService.AdicionarComandoNaFila(new BLDComandoModel()
{
Endereco = Addr,
Parametro = BLD300RService.Parametros.First(x => x.Chave == "Breaked"),
Valor = Leitura != null ? (Leitura.Freado ? 0 : 1) : 0,
Get = false,
AguardaResposta = true,
TimeoutResposta = 200,
});
}
private void trbRPMSP_MouseUp(object sender, MouseEventArgs e)
{
/*var parametro = BLD300RService.Parametros.First(x => x.Chave == "RPM_SP");
var comando = ModbusService.ComandoSetParametro(BLD300RService.slaveAddress, parametro, trbRPMSP.Value);
ModbusService.EnviarComando(comando).ConfigureAwait(false);*/
var Leitura = BLD300RService.DadosLeitura.FirstOrDefault(x => x.Endereco == Addr && x.parametros.Any(y => y.Registro == 0x0056));
float rpm = (float)((Leitura != null ? Leitura.RPM_Max : 800.0) * (trbRPMSP.Value / 10.0));
BLD300RService.AdicionarComandoNaFila(new BLDComandoModel()
{
Endereco = Addr,
Parametro = BLD300RService.Parametros.First(x => x.Chave == "RPM_SP"),
Valor = rpm,
Get = false,
AguardaResposta = true,
TimeoutResposta = 200,
});
}
}
}