214 lines
8.5 KiB
C#
214 lines
8.5 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.Tasks;
|
|
using System.Windows.Forms;
|
|
|
|
namespace AgroBase.Forms
|
|
{
|
|
public partial class frmOID : Form
|
|
{
|
|
byte Addr = 0x01;
|
|
OIDModoControle ModoControle = OIDModoControle.Velocidade;
|
|
|
|
public frmOID()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void frmOID_Load(object sender, EventArgs e)
|
|
{
|
|
nudEndereco.Value = Convert.ToInt32(Addr);
|
|
cmbModo.Items.Clear();
|
|
cmbModo.Items.AddRange(new string[] { "ControleCorrente", "ControleVelocidade", "ControleCicloTrabalho" });
|
|
cmbModo.SelectedIndex = (int)ModoControle;
|
|
}
|
|
|
|
private async Task EnviarComando(bool get, int tamanho, string parametro, bool aguarda = true, float? val = null)
|
|
{
|
|
Addr = Convert.ToByte(nudEndereco.Value);
|
|
|
|
var Comando = new Models.OIDComandoModel()
|
|
{
|
|
Endereco = Addr,
|
|
AguardaResposta = aguarda,
|
|
TamanhoEsperado = tamanho,
|
|
Get = get,
|
|
Parametro = OIDRs485Service.Parametros.First(x => x.Chave == parametro),
|
|
};
|
|
|
|
if (val != null)
|
|
{
|
|
Comando.Valor = (float)val;
|
|
}
|
|
|
|
await OIDRs485Service.EnviarComandoControle(Comando);
|
|
|
|
txtConsole.Text += SerialService.MostrarComandoResposta(Enums.T_Code.Oid, Comando.Comando, Comando.Resposta) + Environment.NewLine;
|
|
}
|
|
|
|
private async void btnERPM_Click(object sender, EventArgs e)
|
|
{
|
|
await EnviarComando(true, 9, "VelocidadeAngular");
|
|
txtERPM.Text = (OIDRs485Service.DadosLeitura.FirstOrDefault(x => x.EnderecoTx == Addr)?.ERPM ?? 0).ToString();
|
|
}
|
|
|
|
private async void button3_Click(object sender, EventArgs e)
|
|
{
|
|
await EnviarComando(true, 9, "CorrenteMotor");
|
|
txtCorrente.Text = (OIDRs485Service.DadosLeitura.FirstOrDefault(x => x.EnderecoTx == Addr)?.CorrenteMotor ?? 0).ToString();
|
|
}
|
|
|
|
private async void button4_Click(object sender, EventArgs e)
|
|
{
|
|
await EnviarComando(true, 9, "Tensao");
|
|
txtTensao.Text = (OIDRs485Service.DadosLeitura.FirstOrDefault(x => x.EnderecoTx == Addr)?.Tensao ?? 0).ToString();
|
|
}
|
|
|
|
private async void button5_Click(object sender, EventArgs e)
|
|
{
|
|
await EnviarComando(true, 9, "Potencia");
|
|
txtPotencia.Text = (OIDRs485Service.DadosLeitura.FirstOrDefault(x => x.EnderecoTx == Addr)?.Potencia ?? 0).ToString();
|
|
}
|
|
|
|
private async void button6_Click(object sender, EventArgs e)
|
|
{
|
|
await EnviarComando(true, 9, "CicloTrabalho");
|
|
txtCicloTrabalho.Text = (OIDRs485Service.DadosLeitura.FirstOrDefault(x => x.EnderecoTx == Addr)?.CicloTrabalho ?? 0).ToString();
|
|
}
|
|
|
|
private async void button7_Click(object sender, EventArgs e)
|
|
{
|
|
await EnviarComando(true, 7, "Temperatura");
|
|
txtTemperatura.Text = (OIDRs485Service.DadosLeitura.FirstOrDefault(x => x.EnderecoTx == Addr)?.Temperatura ?? 0).ToString();
|
|
}
|
|
|
|
private async void button1_Click(object sender, EventArgs e)
|
|
{
|
|
await EnviarComando(true, 7, "CodErro");
|
|
txtCodErro.Text = (OIDRs485Service.DadosLeitura.FirstOrDefault(x => x.EnderecoTx == Addr)?.CodigoAlarme ?? 0).ToString();
|
|
}
|
|
|
|
private async void button2_Click(object sender, EventArgs e)
|
|
{
|
|
btnERPM_Click(sender, e);
|
|
await Task.Delay(300);
|
|
button3_Click(sender, e);
|
|
await Task.Delay(300);
|
|
button4_Click(sender, e);
|
|
await Task.Delay(300);
|
|
button5_Click(sender, e);
|
|
await Task.Delay(300);
|
|
button6_Click(sender, e);
|
|
await Task.Delay(300);
|
|
button7_Click(sender, e);
|
|
await Task.Delay(300);
|
|
button1_Click(sender, e);
|
|
}
|
|
|
|
private void checkBox1_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
timer1.Enabled = checkBox1.Checked;
|
|
}
|
|
|
|
private async void timer1_Tick(object sender, EventArgs e)
|
|
{
|
|
var p = OIDRs485Service.Parametros.First(x => x.Chave == "Heartbeat");
|
|
int v = OIDRs485Service.DadosLeitura.FirstOrDefault(x => x.EnderecoTx == Addr)?.Heartbeat ?? 0;
|
|
int nV = v == 0 ? 1 : 0;
|
|
await EnviarComando(false, 7, "Heartbeat", false, nV);
|
|
}
|
|
|
|
private async void button8_Click(object sender, EventArgs e)
|
|
{
|
|
float vel = (float)nudVelocidade.Value;
|
|
if (chbControle.Checked)
|
|
{
|
|
//var Mod = Variaveis.OperacaoEmAndamento.DispMvd.Dados.Modulos.FirstOrDefault(x => x.MovMotor.EnderecoByte == Addr);
|
|
//Mod.MovMotor.EnviarComandoControle(Enums.Direcao.Frente);
|
|
GeneralJoystick.EnviaComandoMotor(Keys.Up, Enums.T_Code.Mov);
|
|
}
|
|
else
|
|
{
|
|
await EnviarComando(false, 8, cmbModo.Text, false, vel);
|
|
}
|
|
}
|
|
|
|
private async void button9_Click(object sender, EventArgs e)
|
|
{
|
|
float vel = (float)nudVelocidade.Value * -1;
|
|
if (chbControle.Checked)
|
|
{
|
|
//var Mod = Variaveis.OperacaoEmAndamento.DispMvd.Dados.Modulos.FirstOrDefault(x => x.MovMotor.EnderecoByte == Addr);
|
|
//Mod.MovMotor.EnviarComandoControle(Enums.Direcao.Tras);
|
|
GeneralJoystick.EnviaComandoMotor(Keys.Down, Enums.T_Code.Mov);
|
|
}
|
|
else
|
|
{
|
|
await EnviarComando(false, 8, cmbModo.Text, false, vel);
|
|
}
|
|
}
|
|
|
|
private async void button10_Click(object sender, EventArgs e)
|
|
{
|
|
if (chbControle.Checked)
|
|
{
|
|
//var Mod = Variaveis.OperacaoEmAndamento.DispMvd.Dados.Modulos.FirstOrDefault(x => x.MovMotor.EnderecoByte == Addr);
|
|
//Mod.MovMotor.EnviarComandoControle(Enums.Direcao.Parado);
|
|
GeneralJoystick.EnviaComandoMotor(Keys.Escape, Enums.T_Code.Mov);
|
|
}
|
|
else
|
|
{
|
|
await EnviarComando(false, 8, cmbModo.Text, false, 0);
|
|
}
|
|
}
|
|
|
|
private async void button11_Click(object sender, EventArgs e)
|
|
{
|
|
if (chbControle.Checked)
|
|
{
|
|
//var Mod = Variaveis.OperacaoEmAndamento.DispMvd.Dados.Modulos.FirstOrDefault(x => x.MovMotor.EnderecoByte == Addr);
|
|
//Mod.MovMotor.EnviarComandoControle(Enums.Direcao.EmFreio);
|
|
GeneralJoystick.EnviaComandoMotor(Keys.Space, Enums.T_Code.Mov);
|
|
}
|
|
else
|
|
{
|
|
if (ModoControle != OIDModoControle.Freio)
|
|
{
|
|
await EnviarComando(false, 8, "ModoControle", false, (int)OIDModoControle.Freio);
|
|
ModoControle = OIDModoControle.Freio;
|
|
}
|
|
}
|
|
}
|
|
|
|
private async void cmbModo_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
ModoControle = (OIDModoControle)cmbModo.SelectedIndex;
|
|
await EnviarComando(false, 8, "ModoControle", false, (int)ModoControle);
|
|
}
|
|
|
|
private void timer2_Tick(object sender, EventArgs e)
|
|
{
|
|
txtERPM.Text = (OIDRs485Service.DadosLeitura.FirstOrDefault(x => x.EnderecoTx == Addr)?.ERPM ?? 0).ToString();
|
|
txtCorrente.Text = (OIDRs485Service.DadosLeitura.FirstOrDefault(x => x.EnderecoTx == Addr)?.CorrenteMotor ?? 0).ToString();
|
|
txtTensao.Text = (OIDRs485Service.DadosLeitura.FirstOrDefault(x => x.EnderecoTx == Addr)?.Tensao ?? 0).ToString();
|
|
txtPotencia.Text = (OIDRs485Service.DadosLeitura.FirstOrDefault(x => x.EnderecoTx == Addr)?.Potencia ?? 0).ToString();
|
|
txtCicloTrabalho.Text = (OIDRs485Service.DadosLeitura.FirstOrDefault(x => x.EnderecoTx == Addr)?.CicloTrabalho ?? 0).ToString();
|
|
txtTemperatura.Text = (OIDRs485Service.DadosLeitura.FirstOrDefault(x => x.EnderecoTx == Addr)?.Temperatura ?? 0).ToString();
|
|
txtCodErro.Text = (OIDRs485Service.DadosLeitura.FirstOrDefault(x => x.EnderecoTx == Addr)?.CodigoAlarme ?? 0).ToString();
|
|
}
|
|
|
|
private void checkBox2_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
timer2.Enabled = chbLeitura.Checked;
|
|
}
|
|
|
|
}
|
|
}
|