diff --git a/AgroBase/AgroBase/Forms/Operacoes/frmOperacaoManual.cs b/AgroBase/AgroBase/Forms/Operacoes/frmOperacaoManual.cs index bfc888be5..5eaa5e3d9 100644 --- a/AgroBase/AgroBase/Forms/Operacoes/frmOperacaoManual.cs +++ b/AgroBase/AgroBase/Forms/Operacoes/frmOperacaoManual.cs @@ -231,6 +231,9 @@ namespace AgroBase.Forms.Operacoes private async Task AtualizarCameraSolo() { + if (CameraWorkerService.CamerasSolo.Count == 0) + return; + ReqFrameCam = true; try { diff --git a/AgroBase/AgroBase/Models/Modules/AtuadorModel.cs b/AgroBase/AgroBase/Models/Modules/AtuadorModel.cs index 3d94fc466..9f21db279 100644 --- a/AgroBase/AgroBase/Models/Modules/AtuadorModel.cs +++ b/AgroBase/AgroBase/Models/Modules/AtuadorModel.cs @@ -1802,7 +1802,7 @@ namespace AgroBase.Models.Modules bool pressaoDivergente = bomba.Sensor_ID_Num > -1 && Math.Abs(bomba._PressaoSP - pressaoEfetiva) > 0.05; - if (estadoDivergente || potenciaDivergente || pressaoDivergente) + if (potenciaDivergente || pressaoDivergente) // estadoDivergente || { EnviarComandoFisicoBomba( bomba, @@ -1859,6 +1859,8 @@ namespace AgroBase.Models.Modules dispAtu.AdicionarMensagemFila(bomba.ID_Num, CanMessagePosicaoDados.Command1, CanMessagePosicaoDados.Command1, data, false); + Variaveis.MostrarLog($"Enviando comando para a bomba {bomba.ID}: potencia={potencia}, pressao={pressao}"); + bomba.UltimoComandoEnviado = DateTime.Now; bomba.UltimoStatusDesejado = status; bomba.UltimaPotenciaDesejada = potencia; diff --git a/Firmware/Modulos/BombaPressurizadoraModel_v2.h b/Firmware/Modulos/BombaPressurizadoraModel_v2.h index b724965d2..f35d17b19 100644 --- a/Firmware/Modulos/BombaPressurizadoraModel_v2.h +++ b/Firmware/Modulos/BombaPressurizadoraModel_v2.h @@ -69,6 +69,12 @@ class BombaPressurizadora_v2 : public ComponenteCAN { sensorFluxo(sensorFluxoLinha), _bicos(bicos), _qtdBicos(qtdBicos) { + if (_bicos == nullptr || _qtdBicos == 0) { + DesligarSemBicosAbertos = false; + HabilitarSupervisorFluxo = false; + HabilitarKickInicial = false; + HabilitarDetectorCavitacao = false; + } } String _ID; @@ -584,7 +590,7 @@ class BombaPressurizadora_v2 : public ComponenteCAN { static_cast(ModoControle) != 0 ); - if (QtdBicosLigados == 0 && DesligarSemBicosAbertos) { + if (TemBicosConfigurados() && QtdBicosLigados == 0 && DesligarSemBicosAbertos) { AplicarSaida(false, 0); ResetarEstadosDeBicosFechados(); AtualizarLeitura(); @@ -1607,6 +1613,10 @@ class BombaPressurizadora_v2 : public ComponenteCAN { return flags; } + bool TemBicosConfigurados() { + return _bicos != nullptr && _qtdBicos > 0; + } + void MostrarLog(String mensagem) { if (DebugMode) { PrintTela("[BMB " + _ID + "] " + mensagem);