diff --git a/AgroBase/OperationControl/ViewModels/Windows/DockWindowViewModel.cs b/AgroBase/OperationControl/ViewModels/Windows/DockWindowViewModel.cs index dbd7c6577..38b2ddd87 100644 --- a/AgroBase/OperationControl/ViewModels/Windows/DockWindowViewModel.cs +++ b/AgroBase/OperationControl/ViewModels/Windows/DockWindowViewModel.cs @@ -970,46 +970,39 @@ namespace OperationControl.ViewModels bool telaPulverizador = _viewOperacaoCenter?._vm?.ConteudoAtual == OperacaoCenterConteudo.Pulverizador; var bomba = obj.Atuador?.Bombas?.FirstOrDefault(x => x.ID == "BMBLN"); var agitador = obj.Atuador?.Bombas?.FirstOrDefault(x => x.ID == "BMBAGT"); + var bicosAtivos = obj.Atuador?.Bicos?.Where(x => x.ComandoEstado == true).ToArray(); + int quantidadeBicosAtivos = bicosAtivos?.Length ?? 0; + int quantidadeTotalBicos = obj.Atuador?.Bicos?.Count ?? 0; + double vazaoMediaBicosAtivos = bicosAtivos is { Length: > 0 } ? bicosAtivos.Average(x => x.VazaoInstantaneaMLs) : 0.0; if (telaPulverizador) { - _viewOperacaoCenter?.Pulverizador?._vm?.AtualizarParametrosTela(new Views.Operacao.Monitoramento.PulverizadorSnapshot() + var moduloAtu = obj.ModulosSaude?.FirstOrDefault(x => x.modulo == T_Code.Atu); + _viewOperacaoCenter?.Pulverizador?._vm?.AtualizarParametrosTela(new Views.Operacao.Monitoramento.PulverizadorSnapshot { - StatusGeralPulverizador = (obj?.ModulosSaude?.FirstOrDefault(x => x.modulo == T_Code.Atu)?.status ?? StatusModulo.Desconectado).ToString(), - + StatusGeralPulverizador = (moduloAtu?.status ?? StatusModulo.Desconectado).ToString(), CameraErvasStatus = _viewOperacaoCenter?.Monitoramento?._vm?.CameraErvasStatus ?? "", - - ModoPulverizacaoTexto = (rover?.Controle?.PulverizadorAutomatico ?? false) ? "Automático" : "Manual", - PulverizacaoLiberadaTexto = (obj?.ModulosSaude?.FirstOrDefault(x => x.modulo == T_Code.Atu)?.motivos?.Any() ?? false) ? "Liberado" : "Bloqueado", - - StatusBombaTexto = (bomba?.ComandoEstado ?? false) ? "Ligado": "Desligado", - StatusBombaTextoLido = (bomba?.LeituraEstado ?? false) ? "Ligado": "Desligado", + ModoPulverizacaoTexto = (rover.Controle?.PulverizadorAutomatico ?? false) ? "Automático" : "Manual", + StatusBombaTexto = (bomba?.ComandoEstado ?? false) ? "Ligado" : "Desligado", + StatusBombaTextoLido = (bomba?.LeituraEstado ?? false) ? "Ligado" : "Desligado", PotenciaBombaValor = $"{(bomba?.ComandoPotencia ?? 0):F2} %", - PotenciaBombaValorLido = $"{(bomba?.ComandoPotencia ?? 0):F2} %", - - ModoAgitadorTexto = (rover?.Controle?.AtuAgitadorModo ?? ModoAgitadorCalda.SemAgitacao).ToString(), - PotenciaAgitadorValor = $"{agitador?.ComandoPotencia ?? 0} %", - PotenciaAgitadorValorLido = $"{agitador?.LeituraPotencia ?? 0} %", - - NivelTanqueValor = $"{(obj?.Atuador?.PercentualReservatorio ?? 0):F2} %", - NivelTanqueLitrosValor = $"{(obj?.Atuador?.VolumeReservatorioL ?? 0):F2} L", - - PressaoLinhaValor = $"{(rover?.Controle?.AtuPressaoLinha ?? 0):F2} psi", - PressaoLinhaPsiValor = $"{(obj?.Atuador?.PressaoLinhaPsi ?? 0):F2} psi", - - VazaoInstantaneaValor = $"{(obj?.Atuador?.VazaoInstantaneaMLs ?? 0):F2} mL/s", - VazaoMediaValor = $"média {(obj?.Atuador?.VazaoMediaMLs ?? 0):F2} mL/s", - - AutonomiaDistanciaValor = $"{(obj?.Atuador?.DistanciaEstimadaRestanteMetros ?? 0):F2} m", - AutonomiaTempoValor = $"{FuncoesGlobais.ConverterSegundosParaHHmmss((int)(obj?.Atuador?.TempoEstimadoRestanteMinutos ?? 0) * 60)}", - - VolumeVazadoValor = $"{(obj?.Atuador?.VolumeVazaoMl ?? 0):F2} mL", - TempoLigadoPulverizacaoValor = $"{FuncoesGlobais.ConverterSegundosParaHHmmss((int)(bomba?.TempoAtuado ?? 0) / 1000)}", - - BicosAtivosValor = $"{(obj?.Atuador?.Bicos?.Count(x => x.ComandoEstado == true) ?? 0)} / {obj?.Atuador?.Bicos?.Count ?? 0}", - InfoComplementarBicosValor = $"vazão média: {(obj?.Atuador?.Bicos?.Where(x => x.ComandoEstado == true)?.Average(x => x.VazaoInstantaneaMLs) ?? 0)} mL/s", - - PercentualErvasRadar = $"radar: {(obj?.Atuador?.PercentualErvasNoRadar ?? 0)} %", - PercentualErvasTerreno = $"terreno: {(obj?.Atuador?.PercentualErvasTerreno ?? 0)} %", + PotenciaBombaValorLido = $"{(bomba?.LeituraPotencia ?? 0):F2} %", + ModoAgitadorTexto = (rover.Controle?.AtuAgitadorModo ?? ModoAgitadorCalda.SemAgitacao).ToString(), + PotenciaAgitadorValor = $"{agitador?.ComandoPotencia ?? 0:F2} %", + PotenciaAgitadorValorLido = $"{agitador?.LeituraPotencia ?? 0:F2} %", + NivelTanqueValor = $"{(obj.Atuador?.PercentualReservatorio ?? 0):F2} %", + NivelTanqueLitrosValor = $"{(obj.Atuador?.VolumeReservatorioL ?? 0):F2} L", + PressaoLinhaValor = $"{(rover.Controle?.AtuPressaoLinha ?? 0):F2} psi", + PressaoLinhaPsiValor = $"{(obj.Atuador?.PressaoLinhaPsi ?? 0):F2} psi", + VazaoInstantaneaValor = $"{(obj.Atuador?.VazaoInstantaneaMLs ?? 0):F2} mL/s", + VazaoMediaValor = $"média {(obj.Atuador?.VazaoMediaMLs ?? 0):F2} mL/s", + AutonomiaDistanciaValor = $"{(obj.Atuador?.DistanciaEstimadaRestanteMetros ?? 0):F2} m", + AutonomiaTempoValor = FuncoesGlobais.ConverterSegundosParaHHmmss((int)Math.Round((obj.Atuador?.TempoEstimadoRestanteMinutos ?? 0) * 60.0)), + VolumeVazadoValor = $"{(obj.Atuador?.VolumeVazaoMl ?? 0):F2} mL", + TempoLigadoPulverizacaoValor = FuncoesGlobais.ConverterSegundosParaHHmmss((int)((bomba?.TempoAtuado ?? 0) / 1000.0)), + BicosAtivosValor = $"{quantidadeBicosAtivos} / {quantidadeTotalBicos}", + InfoComplementarBicosValor = $"vazão média: {vazaoMediaBicosAtivos:F2} mL/s", + PercentualErvasRadar = $"radar: {(obj.Atuador?.PercentualErvasNoRadar ?? 0):F2} %", + PercentualErvasTerreno = $"terreno: {(obj.Atuador?.PercentualErvasTerreno ?? 0):F2} %" }); } var ATU = telaPulverizador ? _viewOperacaoCenter.Pulverizador.areaPulverizador : _viewOperacaoCenter.Monitoramento.Pulverizador;