ajustes para centralizar a operacao em andamento sem chamar instancias globais
This commit is contained in:
parent
1e82065e91
commit
36ee632988
|
|
@ -44,8 +44,9 @@ namespace AgroBase.Forms.IHM
|
|||
});
|
||||
FuncoesGlobais.DefinirEventosPicBtn(picManual, "Erro ao carregar modo de controle manual!", async () =>
|
||||
{
|
||||
OperacaoModel.CarregarParametrosOperacaoPadrao(ModoOperacao.Manual, true);
|
||||
if (Variaveis.OperacaoEmAndamento.Sensoriamento.Operacao.OperacaoLiberada)
|
||||
Variaveis.OperacaoEmAndamento = OperacaoModel.CarregarParametrosOperacaoPadrao(ModoOperacao.Manual, CarregarModulos: true);
|
||||
var op = Variaveis.OperacaoEmAndamento;
|
||||
if (op.Sensoriamento.Operacao.OperacaoLiberada)
|
||||
{
|
||||
frmDialogoMapa frm = new frmDialogoMapa();
|
||||
frm.Show();
|
||||
|
|
@ -55,7 +56,7 @@ namespace AgroBase.Forms.IHM
|
|||
{
|
||||
CustomDialog.ShowDialog(
|
||||
"Iniciar Operação Manual",
|
||||
$"{Variaveis.OperacaoEmAndamento.Sensoriamento.Operacao.ErroOperacaoLiberada ?? ""}",
|
||||
$"{op.Sensoriamento.Operacao.ErroOperacaoLiberada ?? ""}",
|
||||
MessageBoxIcon.Error,
|
||||
new Dictionary<(string, dynamic), Action>()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -65,6 +65,8 @@
|
|||
this.lblPotenciaSP = new System.Windows.Forms.Label();
|
||||
this.btnDeslsigarAgitador = new System.Windows.Forms.Button();
|
||||
this.groupBox2 = new System.Windows.Forms.GroupBox();
|
||||
this.lblVazaoInstantanea = new System.Windows.Forms.Label();
|
||||
this.lblPressaoBomba = new System.Windows.Forms.Label();
|
||||
this.label7 = new System.Windows.Forms.Label();
|
||||
this.nudPotenciaBombaMax = new System.Windows.Forms.NumericUpDown();
|
||||
this.label6 = new System.Windows.Forms.Label();
|
||||
|
|
@ -104,8 +106,7 @@
|
|||
this.chbSonarAtivado = new System.Windows.Forms.CheckBox();
|
||||
this.lblPressao = new System.Windows.Forms.Label();
|
||||
this.chbImuAtivado = new System.Windows.Forms.CheckBox();
|
||||
this.lblPressaoBomba = new System.Windows.Forms.Label();
|
||||
this.lblVazaoInstantanea = new System.Windows.Forms.Label();
|
||||
this.lblReservatorio = new System.Windows.Forms.Label();
|
||||
((System.ComponentModel.ISupportInitialize)(this.chartGraficos)).BeginInit();
|
||||
this.tabControl1.SuspendLayout();
|
||||
this.tabMapa.SuspendLayout();
|
||||
|
|
@ -527,6 +528,30 @@
|
|||
this.groupBox2.TabStop = false;
|
||||
this.groupBox2.Text = "Bomba Pressurizadora";
|
||||
//
|
||||
// lblVazaoInstantanea
|
||||
//
|
||||
this.lblVazaoInstantanea.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.lblVazaoInstantanea.AutoSize = true;
|
||||
this.lblVazaoInstantanea.Font = new System.Drawing.Font("Microsoft Sans Serif", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblVazaoInstantanea.Location = new System.Drawing.Point(305, 42);
|
||||
this.lblVazaoInstantanea.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.lblVazaoInstantanea.Name = "lblVazaoInstantanea";
|
||||
this.lblVazaoInstantanea.Size = new System.Drawing.Size(108, 25);
|
||||
this.lblVazaoInstantanea.TabIndex = 49;
|
||||
this.lblVazaoInstantanea.Text = "0,00 ml/s";
|
||||
//
|
||||
// lblPressaoBomba
|
||||
//
|
||||
this.lblPressaoBomba.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.lblPressaoBomba.AutoSize = true;
|
||||
this.lblPressaoBomba.Font = new System.Drawing.Font("Microsoft Sans Serif", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblPressaoBomba.Location = new System.Drawing.Point(305, 17);
|
||||
this.lblPressaoBomba.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.lblPressaoBomba.Name = "lblPressaoBomba";
|
||||
this.lblPressaoBomba.Size = new System.Drawing.Size(76, 25);
|
||||
this.lblPressaoBomba.TabIndex = 48;
|
||||
this.lblPressaoBomba.Text = "80 psi";
|
||||
//
|
||||
// label7
|
||||
//
|
||||
this.label7.AutoSize = true;
|
||||
|
|
@ -822,11 +847,11 @@
|
|||
//
|
||||
this.lblTensao.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.lblTensao.AutoSize = true;
|
||||
this.lblTensao.Font = new System.Drawing.Font("Microsoft Sans Serif", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblTensao.Location = new System.Drawing.Point(1111, 351);
|
||||
this.lblTensao.Font = new System.Drawing.Font("Microsoft Sans Serif", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblTensao.Location = new System.Drawing.Point(1111, 320);
|
||||
this.lblTensao.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.lblTensao.Name = "lblTensao";
|
||||
this.lblTensao.Size = new System.Drawing.Size(136, 37);
|
||||
this.lblTensao.Size = new System.Drawing.Size(121, 33);
|
||||
this.lblTensao.TabIndex = 29;
|
||||
this.lblTensao.Text = "42,00 V";
|
||||
//
|
||||
|
|
@ -834,11 +859,11 @@
|
|||
//
|
||||
this.lblCorrente.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.lblCorrente.AutoSize = true;
|
||||
this.lblCorrente.Font = new System.Drawing.Font("Microsoft Sans Serif", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblCorrente.Location = new System.Drawing.Point(1111, 388);
|
||||
this.lblCorrente.Font = new System.Drawing.Font("Microsoft Sans Serif", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblCorrente.Location = new System.Drawing.Point(1111, 357);
|
||||
this.lblCorrente.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.lblCorrente.Name = "lblCorrente";
|
||||
this.lblCorrente.Size = new System.Drawing.Size(134, 37);
|
||||
this.lblCorrente.Size = new System.Drawing.Size(121, 33);
|
||||
this.lblCorrente.TabIndex = 30;
|
||||
this.lblCorrente.Text = "10,00 A";
|
||||
//
|
||||
|
|
@ -846,11 +871,11 @@
|
|||
//
|
||||
this.lblRPM.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.lblRPM.AutoSize = true;
|
||||
this.lblRPM.Font = new System.Drawing.Font("Microsoft Sans Serif", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblRPM.Location = new System.Drawing.Point(1111, 426);
|
||||
this.lblRPM.Font = new System.Drawing.Font("Microsoft Sans Serif", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblRPM.Location = new System.Drawing.Point(1111, 395);
|
||||
this.lblRPM.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.lblRPM.Name = "lblRPM";
|
||||
this.lblRPM.Size = new System.Drawing.Size(137, 37);
|
||||
this.lblRPM.Size = new System.Drawing.Size(125, 33);
|
||||
this.lblRPM.TabIndex = 31;
|
||||
this.lblRPM.Text = "45 RPM";
|
||||
//
|
||||
|
|
@ -858,11 +883,11 @@
|
|||
//
|
||||
this.lblVelocidade.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.lblVelocidade.AutoSize = true;
|
||||
this.lblVelocidade.Font = new System.Drawing.Font("Microsoft Sans Serif", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblVelocidade.Location = new System.Drawing.Point(1111, 463);
|
||||
this.lblVelocidade.Font = new System.Drawing.Font("Microsoft Sans Serif", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblVelocidade.Location = new System.Drawing.Point(1111, 432);
|
||||
this.lblVelocidade.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.lblVelocidade.Name = "lblVelocidade";
|
||||
this.lblVelocidade.Size = new System.Drawing.Size(101, 37);
|
||||
this.lblVelocidade.Size = new System.Drawing.Size(92, 33);
|
||||
this.lblVelocidade.TabIndex = 32;
|
||||
this.lblVelocidade.Text = "10,00";
|
||||
//
|
||||
|
|
@ -870,7 +895,7 @@
|
|||
//
|
||||
this.lblKmh.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.lblKmh.AutoSize = true;
|
||||
this.lblKmh.Location = new System.Drawing.Point(1208, 480);
|
||||
this.lblKmh.Location = new System.Drawing.Point(1207, 448);
|
||||
this.lblKmh.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.lblKmh.Name = "lblKmh";
|
||||
this.lblKmh.Size = new System.Drawing.Size(32, 13);
|
||||
|
|
@ -933,11 +958,11 @@
|
|||
//
|
||||
this.lblPressao.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.lblPressao.AutoSize = true;
|
||||
this.lblPressao.Font = new System.Drawing.Font("Microsoft Sans Serif", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblPressao.Location = new System.Drawing.Point(1111, 500);
|
||||
this.lblPressao.Font = new System.Drawing.Font("Microsoft Sans Serif", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblPressao.Location = new System.Drawing.Point(1111, 469);
|
||||
this.lblPressao.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.lblPressao.Name = "lblPressao";
|
||||
this.lblPressao.Size = new System.Drawing.Size(109, 37);
|
||||
this.lblPressao.Size = new System.Drawing.Size(99, 33);
|
||||
this.lblPressao.TabIndex = 38;
|
||||
this.lblPressao.Text = "80 psi";
|
||||
//
|
||||
|
|
@ -953,29 +978,17 @@
|
|||
this.chbImuAtivado.UseVisualStyleBackColor = true;
|
||||
this.chbImuAtivado.CheckedChanged += new System.EventHandler(this.chbImuAtivado_CheckedChanged);
|
||||
//
|
||||
// lblPressaoBomba
|
||||
// lblReservatorio
|
||||
//
|
||||
this.lblPressaoBomba.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.lblPressaoBomba.AutoSize = true;
|
||||
this.lblPressaoBomba.Font = new System.Drawing.Font("Microsoft Sans Serif", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblPressaoBomba.Location = new System.Drawing.Point(305, 17);
|
||||
this.lblPressaoBomba.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.lblPressaoBomba.Name = "lblPressaoBomba";
|
||||
this.lblPressaoBomba.Size = new System.Drawing.Size(76, 25);
|
||||
this.lblPressaoBomba.TabIndex = 48;
|
||||
this.lblPressaoBomba.Text = "80 psi";
|
||||
//
|
||||
// lblVazaoInstantanea
|
||||
//
|
||||
this.lblVazaoInstantanea.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.lblVazaoInstantanea.AutoSize = true;
|
||||
this.lblVazaoInstantanea.Font = new System.Drawing.Font("Microsoft Sans Serif", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblVazaoInstantanea.Location = new System.Drawing.Point(305, 42);
|
||||
this.lblVazaoInstantanea.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.lblVazaoInstantanea.Name = "lblVazaoInstantanea";
|
||||
this.lblVazaoInstantanea.Size = new System.Drawing.Size(108, 25);
|
||||
this.lblVazaoInstantanea.TabIndex = 49;
|
||||
this.lblVazaoInstantanea.Text = "0,00 ml/s";
|
||||
this.lblReservatorio.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.lblReservatorio.AutoSize = true;
|
||||
this.lblReservatorio.Font = new System.Drawing.Font("Microsoft Sans Serif", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblReservatorio.Location = new System.Drawing.Point(1111, 502);
|
||||
this.lblReservatorio.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.lblReservatorio.Name = "lblReservatorio";
|
||||
this.lblReservatorio.Size = new System.Drawing.Size(75, 33);
|
||||
this.lblReservatorio.TabIndex = 40;
|
||||
this.lblReservatorio.Text = "60 L";
|
||||
//
|
||||
// frmOperacaoManual
|
||||
//
|
||||
|
|
@ -983,6 +996,7 @@
|
|||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.BackColor = System.Drawing.Color.White;
|
||||
this.ClientSize = new System.Drawing.Size(1243, 649);
|
||||
this.Controls.Add(this.lblReservatorio);
|
||||
this.Controls.Add(this.chbImuAtivado);
|
||||
this.Controls.Add(this.lblPressao);
|
||||
this.Controls.Add(this.chbSonarAtivado);
|
||||
|
|
@ -1118,5 +1132,6 @@
|
|||
private System.Windows.Forms.CheckBox chbImuAtivado;
|
||||
private System.Windows.Forms.Label lblPressaoBomba;
|
||||
private System.Windows.Forms.Label lblVazaoInstantanea;
|
||||
private System.Windows.Forms.Label lblReservatorio;
|
||||
}
|
||||
}
|
||||
|
|
@ -16,6 +16,7 @@ namespace AgroBase.Forms.Operacoes
|
|||
AsyncTaskTimerModel tmrLeitura;
|
||||
bool ReqFrameCam = false;
|
||||
bool ReqFrameSnr = false;
|
||||
OperacaoModel op => Variaveis.OperacaoEmAndamento;
|
||||
|
||||
public frmOperacaoManual()
|
||||
{
|
||||
|
|
@ -40,11 +41,11 @@ namespace AgroBase.Forms.Operacoes
|
|||
|
||||
private void frmOperacaoManual_Load(object sender, EventArgs e)
|
||||
{
|
||||
var pC = Variaveis.OperacaoEmAndamento.Parametros.Controle;
|
||||
var pC = op.Parametros.Controle;
|
||||
|
||||
cmbTipoMovimento.Items.Clear();
|
||||
cmbTipoMovimento.Items.AddRange(Enum.GetNames(typeof(TipoMovimentoDirecional)));
|
||||
cmbTipoMovimento.SelectedIndex = (int)Variaveis.OperacaoEmAndamento.Controle.TipoMovimento;
|
||||
cmbTipoMovimento.SelectedIndex = (int)op.Controle.TipoMovimento;
|
||||
|
||||
cmbModoBomba.Items.Clear();
|
||||
cmbModoBomba.Items.AddRange(Enum.GetNames(typeof(ModoControleBomba)));
|
||||
|
|
@ -54,7 +55,7 @@ namespace AgroBase.Forms.Operacoes
|
|||
cmbModoAgitador.Items.AddRange(Enum.GetNames(typeof(ModoAgitadorCalda)));
|
||||
cmbModoAgitador.SelectedIndex = (int)pC.AtuAgitadorModo;
|
||||
|
||||
var b = Variaveis.OperacaoEmAndamento.DispAtu.Dados.BombaPressurizadora;
|
||||
var b = op.DispAtu.Dados.BombaPressurizadora;
|
||||
if (b != null)
|
||||
{
|
||||
txtKp.Text = b.Controle.Kp.ToString();
|
||||
|
|
@ -98,7 +99,7 @@ namespace AgroBase.Forms.Operacoes
|
|||
private void frmOperacaoManual_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
tmrLeitura.Dispose();
|
||||
Task.Run(async () => await Variaveis.OperacaoEmAndamento.FinalizarOperacao());
|
||||
Task.Run(async () => await op.FinalizarOperacao());
|
||||
}
|
||||
|
||||
private void btnIniciarOperacao_Click(object sender, EventArgs e)
|
||||
|
|
@ -113,7 +114,7 @@ namespace AgroBase.Forms.Operacoes
|
|||
});
|
||||
|
||||
// Executa a finalização da operação
|
||||
Task.Run(async () => await Variaveis.OperacaoEmAndamento.FinalizarOperacao());
|
||||
Task.Run(async () => await op.FinalizarOperacao());
|
||||
|
||||
// Atualiza a UI novamente na thread principal
|
||||
btnIniciarOperacao.Invoke((MethodInvoker)delegate
|
||||
|
|
@ -132,10 +133,10 @@ namespace AgroBase.Forms.Operacoes
|
|||
});
|
||||
|
||||
// Verifica se a operação está liberada
|
||||
if (Variaveis.OperacaoEmAndamento.Sensoriamento.Operacao.OperacaoLiberada)
|
||||
if (op.Sensoriamento.Operacao.OperacaoLiberada)
|
||||
{
|
||||
// Inicia a operação de forma assíncrona
|
||||
Task.Run(async () => await Variaveis.OperacaoEmAndamento.IniciarOperacao());
|
||||
Task.Run(async () => await op.IniciarOperacao());
|
||||
|
||||
// Atualiza a UI após o início da operação
|
||||
btnIniciarOperacao.Invoke((MethodInvoker)delegate
|
||||
|
|
@ -149,7 +150,7 @@ namespace AgroBase.Forms.Operacoes
|
|||
// Mostra a mensagem de erro na thread principal
|
||||
btnIniciarOperacao.Invoke((MethodInvoker)delegate
|
||||
{
|
||||
MessageBox.Show(Variaveis.OperacaoEmAndamento.Sensoriamento.Operacao.ErroOperacaoLiberada, "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
MessageBox.Show(op.Sensoriamento.Operacao.ErroOperacaoLiberada, "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
btnIniciarOperacao.Text = "Iniciar Operação";
|
||||
btnIniciarOperacao.Enabled = true;
|
||||
});
|
||||
|
|
@ -162,7 +163,7 @@ namespace AgroBase.Forms.Operacoes
|
|||
{
|
||||
try
|
||||
{
|
||||
this.Text = Variaveis.OperacaoEmAndamento.TextoFormOperacao("Manual");
|
||||
this.Text = op.TextoFormOperacao("Manual");
|
||||
|
||||
pnlDir_DF.Invalidate();
|
||||
pnlDir_DT.Invalidate();
|
||||
|
|
@ -174,7 +175,7 @@ namespace AgroBase.Forms.Operacoes
|
|||
|
||||
AtualizarInformacoesGerais();
|
||||
|
||||
var _Sensoriamento = Variaveis.OperacaoEmAndamento.Sensoriamento;
|
||||
var _Sensoriamento = op.Sensoriamento;
|
||||
|
||||
lblDistanciaEsquerda.Text = "Distancia Esq: " + _Sensoriamento.Trajetoria.DistanciaEsquerda.ToString("0.00") + " cm";
|
||||
lblDistanciaDireita.Text = "Distancia Dir: " + _Sensoriamento.Trajetoria.DistanciaDireita.ToString("0.00") + " cm";
|
||||
|
|
@ -189,24 +190,25 @@ namespace AgroBase.Forms.Operacoes
|
|||
lblRPM.Text = _Sensoriamento.Movimentacao.RPMRodaMedio.ToString("0") + " rpm";
|
||||
lblVelocidade.Text = (_Sensoriamento.Movimentacao.VelocidadeMediaMs * 3.6).ToString("0.00");
|
||||
lblPressao.Text = $"{(_Sensoriamento.Atuador.PressaoLinha):F0} psi";
|
||||
lblPressaoBomba.Text = $"{(_Sensoriamento.Atuador.PressaoAtualBomba):F0} psi";
|
||||
lblReservatorio.Text = $"{(_Sensoriamento.Atuador.VolumeReservatorio):F1} L";
|
||||
lblPressaoBomba.Text = $"{(_Sensoriamento.Atuador.PressaoAtualBomba):F1} psi";
|
||||
lblVazaoInstantanea.Text = $"{(_Sensoriamento.Atuador.VazaoFluxoMLpSInstantaneaCorrigida):F0} ml/s";
|
||||
|
||||
bool atuadorAtivado = Variaveis.OperacaoEmAndamento.DispAtu.Dados.Conectado;
|
||||
bool atuadorAtivado = op.DispAtu.Dados.Conectado;
|
||||
chbPulverizador.Enabled = atuadorAtivado;
|
||||
if (!atuadorAtivado)
|
||||
{
|
||||
chbPulverizador.Checked = false;
|
||||
}
|
||||
|
||||
bool sonarAtivado = Variaveis.OperacaoEmAndamento.Sensoriamento.OperadorVisual.Status == StatusModulo.Operante;
|
||||
bool sonarAtivado = op.Sensoriamento.OperadorVisual.Status == StatusModulo.Operante;
|
||||
chbSonarAtivado.Enabled = sonarAtivado;
|
||||
if (!sonarAtivado)
|
||||
{
|
||||
chbSonarAtivado.Checked = false;
|
||||
}
|
||||
|
||||
bool imuAtivado = Variaveis.OperacaoEmAndamento.Sensoriamento.IMU.saude.status == StatusModulo.Operante;
|
||||
bool imuAtivado = op.Sensoriamento.IMU.saude.status == StatusModulo.Operante;
|
||||
chbImuAtivado.Enabled = imuAtivado;
|
||||
if (!imuAtivado)
|
||||
{
|
||||
|
|
@ -252,7 +254,7 @@ namespace AgroBase.Forms.Operacoes
|
|||
//var frameSeg = await VisualWorkerService.GetCameraFrame(CameraFrameType.Segmentacao);
|
||||
//AtualizarImagemPainel(pnlDeteccoesRua, frameSeg?.image());
|
||||
|
||||
var dadosSeg = Variaveis.OperacaoEmAndamento.Sensoriamento?.OperadorVisual?.Analises?.segmentacao;
|
||||
var dadosSeg = op.Sensoriamento?.OperadorVisual?.Analises?.segmentacao;
|
||||
lblStatusCarroMapa.Text = $"Status: {dadosSeg?.status_corredor ?? StatusCarroMapa.Indefinido} | Conf: {dadosSeg?.status_corredor_debug?.status_modelo_conf ?? 0}";
|
||||
}
|
||||
finally
|
||||
|
|
@ -299,7 +301,7 @@ namespace AgroBase.Forms.Operacoes
|
|||
Panel pnl = (Panel)sender;
|
||||
string ID = pnl.Name.Replace("pnlDir_", "");
|
||||
|
||||
var Modulo = Variaveis.OperacaoEmAndamento.DispMvd.Dados.Modulos.FirstOrDefault(m => m.Modulo_ID == ID);
|
||||
var Modulo = op.DispMvd.Dados.Modulos.FirstOrDefault(m => m.Modulo_ID == ID);
|
||||
double Angulo = Modulo.DirMotor.AnguloDriver;
|
||||
double AnguloReal = Modulo.DirMotor.AnguloReal;
|
||||
|
||||
|
|
@ -461,8 +463,8 @@ namespace AgroBase.Forms.Operacoes
|
|||
{
|
||||
try
|
||||
{
|
||||
double angulo = Variaveis.OperacaoEmAndamento.Sensoriamento.Gps?.OrientacaoReal ?? 0;
|
||||
double angulo2 = Variaveis.OperacaoEmAndamento.Sensoriamento.Gps?.AnguloCarroDefinido ?? 0;
|
||||
double angulo = op.Sensoriamento.Gps?.OrientacaoReal ?? 0;
|
||||
double angulo2 = op.Sensoriamento.Gps?.AnguloCarroDefinido ?? 0;
|
||||
FuncoesGlobais.DesenharInclinacao((Panel)sender, e, (float)angulo, -90, (float)angulo2);
|
||||
}
|
||||
catch { }
|
||||
|
|
@ -470,7 +472,7 @@ namespace AgroBase.Forms.Operacoes
|
|||
|
||||
private void pnlAnguloMagnetometro_Paint(object sender, PaintEventArgs e)
|
||||
{
|
||||
var imu = Variaveis.OperacaoEmAndamento.Sensoriamento.IMU;
|
||||
var imu = op.Sensoriamento.IMU;
|
||||
try
|
||||
{
|
||||
double angulo = imu?.yaw ?? 0;
|
||||
|
|
@ -550,7 +552,7 @@ namespace AgroBase.Forms.Operacoes
|
|||
|
||||
private void AtualizarInformacoesGerais()
|
||||
{
|
||||
var _Sensoriamento = Variaveis.OperacaoEmAndamento.Sensoriamento;
|
||||
var _Sensoriamento = op.Sensoriamento;
|
||||
var _Bateria = _Sensoriamento?.Bateria;
|
||||
var _Barramentos = _Bateria?.Barramentos;
|
||||
var _Movimentacao = _Sensoriamento?.Movimentacao;
|
||||
|
|
@ -580,7 +582,7 @@ namespace AgroBase.Forms.Operacoes
|
|||
gridDados.Rows[20].Cells[1].Value = (_Barramentos.FirstOrDefault(x => x.ID == "AB24V")?.Corrente ?? 0).ToString("0.00");
|
||||
gridDados.Rows[21].Cells[1].Value = "";
|
||||
gridDados.Rows[22].Cells[1].Value = (_Atuador?.PercentualReservatorio ?? 0).ToString("0.00");
|
||||
gridDados.Rows[23].Cells[1].Value = $"{_Atuador?.MassaReservatorio ?? 0:0.000} ({Variaveis.OperacaoEmAndamento.DispAtu?.Dados?.ContadorCarga?.MassaAtual_Kg_Calc ?? 0:0.000})";
|
||||
gridDados.Rows[23].Cells[1].Value = $"{_Atuador?.MassaReservatorio ?? 0:0.000} ({op.DispAtu?.Dados?.ContadorCarga?.MassaAtual_Kg_Calc ?? 0:0.000})";
|
||||
gridDados.Rows[24].Cells[1].Value = $"{_Atuador?.VolumeReservatorio ?? 0:0.000}";
|
||||
gridDados.Rows[25].Cells[1].Value = (_Atuador?.LPorMetro ?? 0).ToString("0.000");
|
||||
gridDados.Rows[26].Cells[1].Value = (_Atuador?.LPorMinuto ?? 0).ToString("0.000");
|
||||
|
|
@ -594,7 +596,7 @@ namespace AgroBase.Forms.Operacoes
|
|||
gridDados.Rows[34].Cells[1].Value = (_Atuador?.VolumeVazaoML ?? 0).ToString("0.00");
|
||||
gridDados.Rows[35].Cells[1].Value = (_Atuador?.AnguloBarraEsquerda ?? 0).ToString("0.00");
|
||||
gridDados.Rows[36].Cells[1].Value = (_Atuador?.AnguloBarraDireita ?? 0).ToString("0.00");
|
||||
gridDados.Rows[37].Cells[1].Value = (Variaveis.OperacaoEmAndamento.DispAtu?.Dados?.AgitadorDeCalda?._Potencia ?? 0).ToString("0.00");
|
||||
gridDados.Rows[37].Cells[1].Value = (op.DispAtu?.Dados?.AgitadorDeCalda?._Potencia ?? 0).ToString("0.00");
|
||||
gridDados.Rows[38].Cells[1].Value = "";
|
||||
gridDados.Rows[39].Cells[1].Value = (_IMU?.RollSeguro ?? 0).ToString("0.00");
|
||||
gridDados.Rows[40].Cells[1].Value = (_IMU?.PitchSeguro ?? 0).ToString("0.00");
|
||||
|
|
@ -607,11 +609,11 @@ namespace AgroBase.Forms.Operacoes
|
|||
|
||||
private void InicializarMapa()
|
||||
{
|
||||
Variaveis.OperacaoEmAndamento.Mapa = new MapasModel()
|
||||
op.Mapa = new MapasModel()
|
||||
{
|
||||
pnlMapa = pnlMapa,
|
||||
};
|
||||
Variaveis.OperacaoEmAndamento.Mapa.CarregarMapaGPS();
|
||||
op.Mapa.CarregarMapaGPS();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
|
@ -620,15 +622,15 @@ namespace AgroBase.Forms.Operacoes
|
|||
|
||||
private void PopularBicos()
|
||||
{
|
||||
var Atuador = Variaveis.OperacaoEmAndamento.DispAtu;
|
||||
var Atuador = op.DispAtu;
|
||||
|
||||
int panelWidth = pnlAtuadores.Width;
|
||||
int circleDiameter = 40; // Diâmetro dos círculos grandes
|
||||
int spaceBetweenCircles = (panelWidth - (circleDiameter * (Variaveis.OperacaoEmAndamento.Parametros.QtdBicos ?? VariaveisEquipamento.QuantidadeBicosPulverizadores))) / ((Variaveis.OperacaoEmAndamento.Parametros.QtdBicos ?? VariaveisEquipamento.QuantidadeBicosPulverizadores) + 1);
|
||||
int spaceBetweenCircles = (panelWidth - (circleDiameter * (op.Parametros.QtdBicos ?? VariaveisEquipamento.QuantidadeBicosPulverizadores))) / ((op.Parametros.QtdBicos ?? VariaveisEquipamento.QuantidadeBicosPulverizadores) + 1);
|
||||
int yPosition = (pnlAtuadores.Height - circleDiameter) / 3; // Centralizado verticalmente
|
||||
|
||||
|
||||
for (int i = 0; i < Variaveis.OperacaoEmAndamento.Parametros.QtdBicos; i++)
|
||||
for (int i = 0; i < op.Parametros.QtdBicos; i++)
|
||||
{
|
||||
// Calcula a posição x do círculo
|
||||
int xPosition = spaceBetweenCircles + (i * (circleDiameter + spaceBetweenCircles));
|
||||
|
|
@ -662,7 +664,7 @@ namespace AgroBase.Forms.Operacoes
|
|||
{
|
||||
Button btn = (Button)sender;
|
||||
string ID = btn.Name.Replace("btn_", "");
|
||||
var Bico = Variaveis.OperacaoEmAndamento.DispAtu.Dados.BicosPulverizadores.FirstOrDefault(x => x.ID == ID);
|
||||
var Bico = op.DispAtu.Dados.BicosPulverizadores.FirstOrDefault(x => x.ID == ID);
|
||||
if (Bico != null)
|
||||
{
|
||||
bool comando = !Bico.ComandoAtuar;
|
||||
|
|
@ -675,10 +677,10 @@ namespace AgroBase.Forms.Operacoes
|
|||
|
||||
private void btnLigarBomba_Click(object sender, EventArgs e)
|
||||
{
|
||||
var Bomba = Variaveis.OperacaoEmAndamento.DispAtu.Dados.BombaPressurizadora;
|
||||
var Bomba = op.DispAtu.Dados.BombaPressurizadora;
|
||||
if (Bomba != null)
|
||||
{
|
||||
Variaveis.OperacaoEmAndamento.Parametros.Controle.AtuModoControle = (ModoControleBomba)cmbModoBomba.SelectedIndex;
|
||||
op.Parametros.Controle.AtuModoControle = (ModoControleBomba)cmbModoBomba.SelectedIndex;
|
||||
|
||||
double pressao = Convert.ToInt32(nudPressaoSP.Value);
|
||||
double potMin = Convert.ToInt32(nudPotenciaBombaMin.Value);
|
||||
|
|
@ -693,17 +695,17 @@ namespace AgroBase.Forms.Operacoes
|
|||
|
||||
private void btnDesligarBomba_Click(object sender, EventArgs e)
|
||||
{
|
||||
var Bomba = Variaveis.OperacaoEmAndamento.DispAtu.Dados.BombaPressurizadora;
|
||||
var Bomba = op.DispAtu.Dados.BombaPressurizadora;
|
||||
if (Bomba != null)
|
||||
GeneralJoystick.EnviarComandoAtuador(Bomba.Componente, Bomba.ID, Status: false, Comando: CanMessagePosicaoDados.Command1, Forcar: true);
|
||||
}
|
||||
|
||||
private void btnLigarAgitador_Click(object sender, EventArgs e)
|
||||
{
|
||||
var Agitador = Variaveis.OperacaoEmAndamento.DispAtu.Dados.AgitadorDeCalda;
|
||||
var Agitador = op.DispAtu.Dados.AgitadorDeCalda;
|
||||
if (Agitador != null)
|
||||
{
|
||||
Variaveis.OperacaoEmAndamento.Parametros.Controle.AtuAgitadorModo = (ModoAgitadorCalda)cmbModoAgitador.SelectedIndex;
|
||||
op.Parametros.Controle.AtuAgitadorModo = (ModoAgitadorCalda)cmbModoAgitador.SelectedIndex;
|
||||
|
||||
double potencia = Convert.ToInt32(nudPotenciaAgitador.Value);
|
||||
GeneralJoystick.EnviarComandoAtuador(Agitador.Componente, Agitador.ID, Status: true, Valores: new System.Collections.Generic.List<double?>() { potencia }, Comando: CanMessagePosicaoDados.Command1, Forcar: true);
|
||||
|
|
@ -712,7 +714,7 @@ namespace AgroBase.Forms.Operacoes
|
|||
|
||||
private void btnDeslsigarAgitador_Click(object sender, EventArgs e)
|
||||
{
|
||||
var Agitador = Variaveis.OperacaoEmAndamento.DispAtu.Dados.AgitadorDeCalda;
|
||||
var Agitador = op.DispAtu.Dados.AgitadorDeCalda;
|
||||
if (Agitador != null)
|
||||
GeneralJoystick.EnviarComandoAtuador(Agitador.Componente, Agitador.ID, Status: false, Comando: CanMessagePosicaoDados.Command1, Forcar: true);
|
||||
}
|
||||
|
|
@ -729,7 +731,7 @@ namespace AgroBase.Forms.Operacoes
|
|||
|
||||
private void pnlAtuadores_Paint(object sender, PaintEventArgs e)
|
||||
{
|
||||
var Atuador = Variaveis.OperacaoEmAndamento.DispAtu.Dados;
|
||||
var Atuador = op.DispAtu.Dados;
|
||||
|
||||
bool ligado = Atuador.BombaPressurizadora?._BombaLigada ?? false;
|
||||
AtuadorFuncoesGerais.DesenharAtuadores(
|
||||
|
|
@ -759,29 +761,29 @@ namespace AgroBase.Forms.Operacoes
|
|||
|
||||
private void cmbTipoMovimento_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
Variaveis.OperacaoEmAndamento.Controle.TipoMovimento = (TipoMovimentoDirecional)cmbTipoMovimento.SelectedIndex;
|
||||
op.Controle.TipoMovimento = (TipoMovimentoDirecional)cmbTipoMovimento.SelectedIndex;
|
||||
}
|
||||
|
||||
private void chbPulverizador_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
Variaveis.OperacaoEmAndamento.Parametros.Controle.PulverizadorAutomatico = ((CheckBox)sender).Checked;
|
||||
op.Parametros.Controle.PulverizadorAutomatico = ((CheckBox)sender).Checked;
|
||||
|
||||
if (!Variaveis.OperacaoEmAndamento.Parametros.Controle.PulverizadorAutomatico && Variaveis.OperacaoEmAndamento.Controle.Bicos.Any(x => x.ComandoAtuar))
|
||||
if (!op.Parametros.Controle.PulverizadorAutomatico && op.Controle.Bicos.Any(x => x.ComandoAtuar))
|
||||
{
|
||||
Variaveis.OperacaoEmAndamento.Controle.Bicos.ForEach(b => b.ComandoAtuar = false);
|
||||
op.Controle.Bicos.ForEach(b => b.ComandoAtuar = false);
|
||||
}
|
||||
}
|
||||
|
||||
private void chbSonarAtivado_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
var pC = Variaveis.OperacaoEmAndamento.Parametros.Controle;
|
||||
var pC = op.Parametros.Controle;
|
||||
pC.MovAuxilioSonar = ((CheckBox)sender).Checked;
|
||||
pC.DirAuxilioSonar = ((CheckBox)sender).Checked;
|
||||
}
|
||||
|
||||
private void chbImuAtivado_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
var pC = Variaveis.OperacaoEmAndamento.Parametros.Controle;
|
||||
var pC = op.Parametros.Controle;
|
||||
pC.ImuAuxilioMovimento = ((CheckBox)sender).Checked;
|
||||
pC.ImuAuxilioDirecional = ((CheckBox)sender).Checked;
|
||||
pC.ImuDirecionalPreferirArco = ((CheckBox)sender).Checked;
|
||||
|
|
|
|||
|
|
@ -1763,7 +1763,7 @@ namespace AgroBase.Forms.Operacoes
|
|||
}
|
||||
|
||||
// agrupar por tipo
|
||||
var porTipo = dict.GroupBy(kv => CandMpcKey.ParseKey(kv.Key).Tipo);
|
||||
var porTipo = dict.Where(x => x.Key.Contains("_")).GroupBy(kv => CandMpcKey.ParseKey(kv.Key).Tipo);
|
||||
foreach (var g in porTipo.OrderBy(gr => gr.Key.ToString()))
|
||||
{
|
||||
var tipoNode = tv.Nodes.Add(g.Key.ToString());
|
||||
|
|
|
|||
|
|
@ -240,11 +240,9 @@ namespace AgroBase.Forms
|
|||
return EncerrarProcessos(sairProcesso: false);
|
||||
}
|
||||
|
||||
public static async Task EncerrarProcessos(
|
||||
bool sairProcesso)
|
||||
public static async Task EncerrarProcessos(bool sairProcesso)
|
||||
{
|
||||
await _shutdownGate.WaitAsync()
|
||||
.ConfigureAwait(false);
|
||||
await _shutdownGate.WaitAsync().ConfigureAwait(false);
|
||||
|
||||
try
|
||||
{
|
||||
|
|
@ -253,9 +251,7 @@ namespace AgroBase.Forms
|
|||
|
||||
_shutdownIniciado = true;
|
||||
|
||||
await EncerrarProcessosInternoAsync(
|
||||
sairProcesso
|
||||
).ConfigureAwait(false);
|
||||
await EncerrarProcessosInternoAsync(sairProcesso).ConfigureAwait(false);
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
|
@ -263,8 +259,7 @@ namespace AgroBase.Forms
|
|||
}
|
||||
}
|
||||
|
||||
private static async Task EncerrarProcessosInternoAsync(
|
||||
bool sairProcesso)
|
||||
private static async Task EncerrarProcessosInternoAsync(bool sairProcesso)
|
||||
{
|
||||
Variaveis.Fechando = true;
|
||||
|
||||
|
|
@ -276,32 +271,22 @@ namespace AgroBase.Forms
|
|||
*/
|
||||
try
|
||||
{
|
||||
await AsyncTaskTimerModel
|
||||
.PararTimersAsync()
|
||||
.ConfigureAwait(false);
|
||||
await AsyncTaskTimerModel.PararTimersAsync().ConfigureAwait(false);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Variaveis.MostrarLog(
|
||||
"[frmInstancial.Encerrar] Erro ao parar timers: " +
|
||||
ex.Message
|
||||
);
|
||||
Variaveis.MostrarLog("[frmInstancial.Encerrar] Erro ao parar timers: " + ex.Message);
|
||||
}
|
||||
|
||||
tmrVarreduraDispositivos = null;
|
||||
|
||||
try
|
||||
{
|
||||
await SerialService
|
||||
.EncerrarAsync()
|
||||
.ConfigureAwait(false);
|
||||
await SerialService.EncerrarAsync().ConfigureAwait(false);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Variaveis.MostrarLog(
|
||||
"[frmInstancial.Encerrar] Erro ao encerrar SerialService: " +
|
||||
ex.Message
|
||||
);
|
||||
Variaveis.MostrarLog("[frmInstancial.Encerrar] Erro ao encerrar SerialService: " + ex.Message);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -318,19 +303,13 @@ namespace AgroBase.Forms
|
|||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Variaveis.MostrarLog(
|
||||
"[frmInstancial.Encerrar] Erro ao salvar " +
|
||||
disp.Dispositivo + ": " + ex.Message
|
||||
);
|
||||
Variaveis.MostrarLog("[frmInstancial.Encerrar] Erro ao salvar " + disp.Dispositivo + ": " + ex.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Variaveis.MostrarLog(
|
||||
"[frmInstancial.Encerrar] Erro ao percorrer dispositivos: " +
|
||||
ex.Message
|
||||
);
|
||||
Variaveis.MostrarLog("[frmInstancial.Encerrar] Erro ao percorrer dispositivos: " + ex.Message);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -342,19 +321,14 @@ namespace AgroBase.Forms
|
|||
{
|
||||
var timeout = DateTime.Now.AddSeconds(10);
|
||||
|
||||
while (!CanManager.CanService.FilaLiberada &&
|
||||
DateTime.Now < timeout)
|
||||
while (!CanManager.CanService.FilaLiberada && DateTime.Now < timeout)
|
||||
{
|
||||
await Task.Delay(200)
|
||||
.ConfigureAwait(false);
|
||||
await Task.Delay(200).ConfigureAwait(false);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Variaveis.MostrarLog(
|
||||
"[frmInstancial.Encerrar] Erro aguardando fila CAN: " +
|
||||
ex.Message
|
||||
);
|
||||
Variaveis.MostrarLog("[frmInstancial.Encerrar] Erro aguardando fila CAN: " + ex.Message);
|
||||
}
|
||||
|
||||
try
|
||||
|
|
@ -363,10 +337,7 @@ namespace AgroBase.Forms
|
|||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Variaveis.MostrarLog(
|
||||
"[frmInstancial.Encerrar] Erro ao encerrar Livox: " +
|
||||
ex.Message
|
||||
);
|
||||
Variaveis.MostrarLog("[frmInstancial.Encerrar] Erro ao encerrar Livox: " + ex.Message);
|
||||
}
|
||||
|
||||
try
|
||||
|
|
@ -375,10 +346,7 @@ namespace AgroBase.Forms
|
|||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Variaveis.MostrarLog(
|
||||
"[frmInstancial.Encerrar] Erro ao encerrar Python: " +
|
||||
ex.Message
|
||||
);
|
||||
Variaveis.MostrarLog("[frmInstancial.Encerrar] Erro ao encerrar Python: " + ex.Message);
|
||||
}
|
||||
|
||||
try
|
||||
|
|
@ -387,38 +355,25 @@ namespace AgroBase.Forms
|
|||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Variaveis.MostrarLog(
|
||||
"[frmInstancial.Encerrar] Erro ao encerrar UDP: " +
|
||||
ex.Message
|
||||
);
|
||||
Variaveis.MostrarLog("[frmInstancial.Encerrar] Erro ao encerrar UDP: " + ex.Message);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
await GPSService
|
||||
.EncerrarAsync()
|
||||
.ConfigureAwait(false);
|
||||
await GPSService.EncerrarAsync().ConfigureAwait(false);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Variaveis.MostrarLog(
|
||||
"[frmInstancial.Encerrar] Erro ao encerrar GPS: " +
|
||||
ex.Message
|
||||
);
|
||||
Variaveis.MostrarLog("[frmInstancial.Encerrar] Erro ao encerrar GPS: " + ex.Message);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
await Variaveis
|
||||
.EncerrarMqttAsync()
|
||||
.ConfigureAwait(false);
|
||||
await Variaveis.EncerrarMqttAsync().ConfigureAwait(false);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Variaveis.MostrarLog(
|
||||
"[frmInstancial.Encerrar] Erro ao encerrar MQTT: " +
|
||||
ex.Message
|
||||
);
|
||||
Variaveis.MostrarLog("[frmInstancial.Encerrar] Erro ao encerrar MQTT: " + ex.Message);
|
||||
}
|
||||
|
||||
try
|
||||
|
|
@ -440,9 +395,7 @@ namespace AgroBase.Forms
|
|||
}
|
||||
}
|
||||
|
||||
private async void frmPrincipal_FormClosing(
|
||||
object sender,
|
||||
FormClosingEventArgs e)
|
||||
private async void frmPrincipal_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
if (_allowClose)
|
||||
return;
|
||||
|
|
@ -451,9 +404,7 @@ namespace AgroBase.Forms
|
|||
|
||||
try
|
||||
{
|
||||
await EncerrarProcessos(
|
||||
sairProcesso: false
|
||||
);
|
||||
await EncerrarProcessos(sairProcesso: false);
|
||||
|
||||
_allowClose = true;
|
||||
|
||||
|
|
@ -470,9 +421,7 @@ namespace AgroBase.Forms
|
|||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Variaveis.MostrarLog(
|
||||
"[frmInstancial.FormClosing] " + ex
|
||||
);
|
||||
Variaveis.MostrarLog("[frmInstancial.FormClosing] " + ex);
|
||||
|
||||
try
|
||||
{
|
||||
|
|
@ -482,9 +431,7 @@ namespace AgroBase.Forms
|
|||
}
|
||||
}
|
||||
|
||||
private void FrmIHM_FormClosing(
|
||||
object sender,
|
||||
FormClosingEventArgs e)
|
||||
private void FrmIHM_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
/*
|
||||
* Em modo desenvolvimento, fechar a IHM apenas oculta a janela.
|
||||
|
|
|
|||
|
|
@ -208,7 +208,7 @@ namespace AgroBase
|
|||
|
||||
private void cmbModoOperacao_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
OperacaoModel.CarregarParametrosOperacaoPadrao((ModoOperacao)cmbModoOperacao.SelectedIndex, true);
|
||||
Variaveis.OperacaoEmAndamento = OperacaoModel.CarregarParametrosOperacaoPadrao((ModoOperacao)cmbModoOperacao.SelectedIndex, CarregarModulos: true);
|
||||
}
|
||||
|
||||
private void btnIniciarOperacao_Click(object sender, EventArgs e)
|
||||
|
|
|
|||
|
|
@ -38,11 +38,11 @@ namespace AgroBase.Models
|
|||
public void AtualizarDados()
|
||||
{
|
||||
var saude = Variaveis.OperacaoEmAndamento.Sensoriamento?.OperadorSaude?.ModulosSaude;
|
||||
Status = saude.FirstOrDefault(x => x.modulo == Dispositivo)?.status ?? StatusModulo.Desconectado;
|
||||
Saude = saude.FirstOrDefault(x => x.modulo == Dispositivo)?.saude ?? 0;
|
||||
Status = saude?.FirstOrDefault(x => x.modulo == Dispositivo)?.status ?? StatusModulo.Desconectado;
|
||||
Saude = saude?.FirstOrDefault(x => x.modulo == Dispositivo)?.saude ?? 0;
|
||||
|
||||
var motivos = saude.FirstOrDefault(x => x.modulo == Dispositivo)?.motivos ?? new System.Collections.Generic.List<string>();
|
||||
var cond_op = saude.FirstOrDefault(x => x.modulo == Dispositivo)?.condicoes_operacionais?.Select(x => x.descricao) ?? new System.Collections.Generic.List<string>();
|
||||
var motivos = saude?.FirstOrDefault(x => x.modulo == Dispositivo)?.motivos ?? new System.Collections.Generic.List<string>();
|
||||
var cond_op = saude?.FirstOrDefault(x => x.modulo == Dispositivo)?.condicoes_operacionais?.Select(x => x.descricao) ?? new System.Collections.Generic.List<string>();
|
||||
string motivos_str = string.Join(", ", motivos);
|
||||
string cond_op_str = string.Join(", ", cond_op);
|
||||
Erros = motivos_str + (motivos.Any() && cond_op.Any() ? ", " : "") + cond_op_str;
|
||||
|
|
|
|||
|
|
@ -60,10 +60,13 @@ namespace AgroBase.Models.Modules
|
|||
public List<AtuadorBombaModel> BombasPressurizadoras { get; set; }
|
||||
public List<SensorModel> Sensores { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public AsyncTaskTimerModel tmrRegistrador;
|
||||
private int _TempoReconexaoComponentes = 5;
|
||||
private int _VezesLeituraReconexao = 0;
|
||||
public AtuadorMensagemJsonModel DadosLeitura { get; set; } = new AtuadorMensagemJsonModel();
|
||||
|
||||
[JsonIgnore]
|
||||
public AtuHandler _AtuHandler = new AtuHandler();
|
||||
|
||||
[JsonIgnore]
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
using AgroBase.Services;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
|
|
@ -40,8 +41,11 @@ namespace AgroBase.Models.Modules
|
|||
public DateTime UltimoTickRegistrador = DateTime.MinValue;
|
||||
|
||||
public static int LogsManter { get; set; } = 60;
|
||||
[JsonIgnore]
|
||||
public AsyncTaskTimerModel tmrRegistrador;
|
||||
[JsonIgnore]
|
||||
public AsyncTaskTimerModel tmrRegistradorMOV;
|
||||
[JsonIgnore]
|
||||
public AsyncTaskTimerModel tmrRegistradorDIR;
|
||||
|
||||
|
||||
|
|
@ -525,7 +529,10 @@ namespace AgroBase.Models.Modules
|
|||
var DispMvd = op.DispMvd;
|
||||
if (DispMvd != null)
|
||||
{
|
||||
var calMov = op.Sensoriamento.Operacao.ModsCalibragem[T_Code.Mov];
|
||||
var mc = op.Sensoriamento.Operacao.ModsCalibragem;
|
||||
if (!mc.ContainsKey(T_Code.Mov))
|
||||
mc.Add(T_Code.Mov, new Dictionary<string, bool>());
|
||||
var calMov = mc[T_Code.Mov];
|
||||
foreach (var mod in DispMvd.Dados.Modulos)
|
||||
{
|
||||
calMov.TryGetValue(mod.Modulo_ID, out var cal);
|
||||
|
|
@ -546,7 +553,10 @@ namespace AgroBase.Models.Modules
|
|||
var DispMvd = op.DispMvd;
|
||||
if (DispMvd != null)
|
||||
{
|
||||
var calDir = op.Sensoriamento.Operacao.ModsCalibragem[T_Code.Dir];
|
||||
var mc = op.Sensoriamento.Operacao.ModsCalibragem;
|
||||
if (!mc.ContainsKey(T_Code.Dir))
|
||||
mc.Add(T_Code.Dir, new Dictionary<string, bool>());
|
||||
var calDir = mc[T_Code.Dir];
|
||||
foreach (var mod in DispMvd.Dados.Modulos)
|
||||
{
|
||||
calDir.TryGetValue(mod.Modulo_ID, out var cal);
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ using System.Threading.Tasks;
|
|||
using static AgroBase.Models.Enums;
|
||||
using System.Globalization;
|
||||
using System.Data;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace AgroBase.Models.Modules
|
||||
{
|
||||
|
|
@ -53,9 +54,14 @@ namespace AgroBase.Models.Modules
|
|||
public List<SensorReleModel> Reles { get; set; }
|
||||
public List<SensorServoModel> Servos { get; set; }
|
||||
public UltrasonicA05Configuracoes ConfiguracaoSensorUltrassom { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
private SenHandler _SenHandler = new SenHandler();
|
||||
|
||||
public CoulombCounterService ContadorCarga = new CoulombCounterService(VariaveisEquipamento.CorrenteMaximaBateria);
|
||||
public CoolerControlService CoolerControl = new CoolerControlService();
|
||||
|
||||
[JsonIgnore]
|
||||
public AsyncTaskTimerModel tmrRegistrador;
|
||||
private int _TempoReconexaoComponentes = 5;
|
||||
private int _VezesLeituraReconexao = 0;
|
||||
|
|
@ -496,7 +502,7 @@ namespace AgroBase.Models.Modules
|
|||
indice = 1,
|
||||
analise_health = true,
|
||||
maximo = 500,
|
||||
minimo = 50,
|
||||
minimo = 30,
|
||||
nominal = 100,
|
||||
unidade_medida = "mA"
|
||||
},
|
||||
|
|
@ -596,9 +602,9 @@ namespace AgroBase.Models.Modules
|
|||
posicao = CanMessagePosicaoDados.Dados1,
|
||||
indice = 1,
|
||||
analise_health = true,
|
||||
maximo = 1000,
|
||||
minimo = 50,
|
||||
nominal = 300,
|
||||
maximo = 2200,
|
||||
minimo = 1000,
|
||||
nominal = 1700,
|
||||
unidade_medida = "mA"
|
||||
},
|
||||
new SensorValoresLeituraModel()
|
||||
|
|
@ -900,9 +906,9 @@ namespace AgroBase.Models.Modules
|
|||
posicao = CanMessagePosicaoDados.Dados1,
|
||||
indice = 1,
|
||||
analise_health = true,
|
||||
maximo = 4000,
|
||||
minimo = 500,
|
||||
nominal = 1500,
|
||||
maximo = 6000,
|
||||
minimo = 1000,
|
||||
nominal = 5000,
|
||||
unidade_medida = "mA"
|
||||
},
|
||||
new SensorValoresLeituraModel()
|
||||
|
|
@ -992,7 +998,7 @@ namespace AgroBase.Models.Modules
|
|||
indice = 0,
|
||||
analise_health = true,
|
||||
maximo = 24.3,
|
||||
minimo = 23.8,
|
||||
minimo = 23.5,
|
||||
nominal = 24.0,
|
||||
unidade_medida = "V"
|
||||
},
|
||||
|
|
@ -1106,7 +1112,7 @@ namespace AgroBase.Models.Modules
|
|||
analise_health = true,
|
||||
maximo = 75000,
|
||||
minimo = 200,
|
||||
nominal = 2500,
|
||||
nominal = 3500,
|
||||
unidade_medida = "mA"
|
||||
},
|
||||
new SensorValoresLeituraModel()
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -1585,7 +1585,7 @@ namespace AgroBase.Models
|
|||
|
||||
RetornandoBase = false;
|
||||
|
||||
CorredorAtual = _Corredores[0];
|
||||
CorredorAtual = _Corredores.Count > 0 ? _Corredores[0] : null;
|
||||
|
||||
AutonomiaCorredor.Iniciar();
|
||||
|
||||
|
|
@ -1847,8 +1847,8 @@ namespace AgroBase.Models
|
|||
|
||||
LoopAtualizaDados();
|
||||
|
||||
var _p = OperacaoModel.CarregarParametrosOperacaoPadrao(ModoOperacao.RetornoBase, false);
|
||||
op.Parametros = _p;
|
||||
var new_op = OperacaoModel.CarregarParametrosOperacaoPadrao(ModoOperacao.RetornoBase, CarregarModulos: false);
|
||||
op.Parametros = new_op.Parametros;
|
||||
|
||||
if (!op.Sensoriamento.Operacao.OperacaoIniciada)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -95,6 +95,8 @@ namespace AgroBase.Services.Operadores
|
|||
private static void AtualizarDadosContextoLocal()
|
||||
{
|
||||
var op = Variaveis.OperacaoEmAndamento;
|
||||
if (op.Sensoriamento == null) return;
|
||||
|
||||
try
|
||||
{
|
||||
RedisService.AtualizarCampos(
|
||||
|
|
|
|||
|
|
@ -148,7 +148,7 @@ namespace AgroBase.Services.Operadores
|
|||
{
|
||||
AtualizarImu();
|
||||
|
||||
DadosLeitura.Status = Variaveis.OperacaoEmAndamento.Sensoriamento.OperadorSaude?.ModulosSaude?.FirstOrDefault(x => x.modulo == Enums.T_Code.Snr)?.status ?? Enums.StatusModulo.Desconectado;
|
||||
DadosLeitura.Status = Variaveis.OperacaoEmAndamento.Sensoriamento?.OperadorSaude?.ModulosSaude?.FirstOrDefault(x => x.modulo == Enums.T_Code.Snr)?.status ?? Enums.StatusModulo.Desconectado;
|
||||
|
||||
string json = RedisService.Get(CtxKey.DadosVisualWorker);
|
||||
|
||||
|
|
|
|||
|
|
@ -38,12 +38,12 @@ namespace AgroBase.Services
|
|||
|
||||
public static string Get(string chave)
|
||||
{
|
||||
return _db.StringGet(chave);
|
||||
return _db?.StringGet(chave);
|
||||
}
|
||||
|
||||
private static void Set(string chave, string valor)
|
||||
{
|
||||
_db.StringSet(chave, valor);
|
||||
_db?.StringSet(chave, valor);
|
||||
}
|
||||
|
||||
public static void SetObject(string chave, object valor)
|
||||
|
|
@ -157,7 +157,9 @@ namespace AgroBase.Services
|
|||
|
||||
public static void DefinirEquipamentoDesconectado()
|
||||
{
|
||||
var saude = Variaveis.OperacaoEmAndamento.Sensoriamento.OperadorSaude?.ModulosSaude;
|
||||
if (!(Variaveis.OperacaoEmAndamento?.Sensoriamento?.OperadorSaude?.ModulosSaude?.Any() ?? false)) return;
|
||||
|
||||
var saude = Variaveis.OperacaoEmAndamento.Sensoriamento?.OperadorSaude?.ModulosSaude;
|
||||
AtualizarCampos(
|
||||
CtxKey.DadosOperacao,
|
||||
("motivo_nao_liberado", "Sem comunicação com o núcleo de processamento central"),
|
||||
|
|
|
|||
|
|
@ -375,9 +375,11 @@ namespace AgroBase.Services
|
|||
if (!_AtualizacaoGate.Wait(0))
|
||||
return;
|
||||
|
||||
var op = Variaveis.OperacaoEmAndamento;
|
||||
|
||||
try
|
||||
{
|
||||
if (Variaveis.OperacaoEmAndamento != null && Variaveis.OperacaoEmAndamento.Sensoriamento.Operacao.OperacaoIniciada)
|
||||
if (op?.Sensoriamento?.Operacao?.OperacaoIniciada ?? false)
|
||||
{
|
||||
ResultadoAtualizacao =
|
||||
"Atualização ignorada: operação em andamento.";
|
||||
|
|
|
|||
|
|
@ -57,10 +57,10 @@ namespace OperationControl.ViewModels.Views.Operacao.Monitoramento
|
|||
|
||||
private void CarregarParametrosPadrao(AgroBase.Models.Enums.ModoOperacao modo)
|
||||
{
|
||||
var p = OperacaoModel.CarregarParametrosOperacaoPadrao(modo, false);
|
||||
modoOperacaoAtual = p.Modo;
|
||||
p.Descricao = $"{p.Modo} - Padrão";
|
||||
Parametros = p;
|
||||
var new_op = OperacaoModel.CarregarParametrosOperacaoPadrao(modo, false);
|
||||
modoOperacaoAtual = new_op.Parametros.Modo;
|
||||
new_op.Parametros.Descricao = $"{new_op.Parametros.Modo} - Padrão";
|
||||
Parametros = new_op.Parametros;
|
||||
if (VariaveisControleOperacao.RoverEmFoco != null)
|
||||
VariaveisControleOperacao.RoverEmFoco.Modo = modo;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue